June 22, 2009
Py Web SF #1: June 23rd, 6pm @ SF Main Public Library’s Stong Room
The first meeting is tomorrow at 6pm in the Stong room at the main San Francisco public library beside civic center BART (same room where I host the PyGameSF meet up). The speakers for this event:
Shannon -jj Behrens – “Techniques for Building Third-party RESTful Web Services”
Marius A. Eriksen – “GeoDjango: Introduction and demos”
June 16, 2009
Facebook and the homeless in San Francisco
Now you might think this is a totally odd or frivolous skill for someone in dire circumstances to learn but its not when you think about it. Consider the difference between email and a social network. With email you obviously need someones address to contact them, with facebook you can find acquaintances or they can find you purely by name or your association with another person. Consider how valuable that could be to someone who has lost contact with relatives/the world due to some mental break down and is now living on the streets. On the surface, from a technical/functional point of view, their is not really that much difference between email/IM and social networks yet in hindsight it seems obvious how being able to find people a little more easily could potentially make a massive difference to those peoples lives.
June 15, 2009
PyGameSF meetup Wednesday June 17th 6pm @ Main San Francisco Public Library
- Bret Truchan (Quotile/GlitchDS/Glitch-Sequencer): Exploring musical interfaces using Processing / OSC / and Chuck. Bret will unveil a new,open source software “synth” written in Processing and Chuck, and briefly
discuss the architecture. He will also present some Processing code samples for drawing simple graphics, sending MIDI notes, sending OSC (Open Sound
Control) messages, and handling timing. The presentation will be tailored to the beginning or intermediate developer who hasn’t been exposed to Processing or Chuck. - Mitch Patenaude: How to confuse people and make enemies on Twitter. Mitch will give talk about what was involved in creating his markov chain based babbling TwitterBot. You can follow her or read her tweets here.
June 3, 2009
Random Tech Nugget: How to find what hardware you are running on with OpenBSD
My website, PyGameSF, email and all of my miscellaneous projects are hosted by a computer cooperative called unworkable which was setup by David Cathcart, Niall O’Higgins, myself and some other friends a couple of years ago after college. The physical manifestation of this coop is a machine running OpenBSD that currently lives in a data center in Santa Clara.
The coop is funded by annual membership fees, the more members we have the less the fee’s are. Only people we know and have an existing real world relationship with can become members. Membership means you get root access and an equal share of the system resources. Unworkable is run as a Doococracy, members generally help out where they can and offer technical advise and support to other members when needed. Anyway, enough back story.
At the moment I am in the process of creating a blog for unworkable , one of the things I wanted to put up on the blog is an accurate description of what hardware we have. Rather than digging up old manuals to find model numbers I decided to take advantage of the excellent infrastructure provided by OpenBSD.
If you want to find out what model mother board you are running on issue the following sysctl command:
sysctl hw.product
This outputs:
w.product=H8DAR-T
A quick google for part number H8DAR-T reveals the following motherboard (Supermicro H8DAR-T-O) and a wealth of handy stats about our system.
Ok so thats the motherboard taken care of now for the hard drives in the system, if you are using a raid controller type the following bioctl command substituting an appropriate value for arc0:
sudo bioctl -h arc0
This command prints out the following:
Volume Status Size Device
arc0 0 Online 2.0T sd0 RAID5
0 Online 699G 0:0.0 noencl
1 Online 699G 0:1.0 noencl
2 Online 699G 0:2.0 noencl
3 Online 699G 0:3.0 noencl
arc0 1 Online 47.5G sd1 RAID5
0 Online 699G 0:0.0 noencl
1 Online 699G 0:1.0 noencl
2 Online 699G 0:2.0 noencl
3 Online 699G 0:3.0 noencl
Searching for one of the serial numbers ST3750640AS 3.AAE, provides the following result. The systems raid controller can be found quite easily by doing the following:
Which spits out:
arc0 at pci2 dev 14 function 0 “Areca ARC-1110″ rev
Likewise the systems cpu can be determined in similar fashion:
grep cpu* /var/run/dmesg.boot
Which yields (most pertinent information highlighted in bold):
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Dual Core AMD Opteron(tm) Processor 275, 2205.29 MHz
cpu0: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 1MB 64b/line 16-way L2 cache
cpu0: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu0: DTLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu0: AMD erratum 89 present, BIOS upgrade may be required
cpu0: apic clock running at 200MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: Dual Core AMD Opteron(tm) Processor 275, 2205.00 MHz
cpu1: FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,HTT,SSE3,NXE,MMXX,FFXSR,LONG,3DNOW2,3DNOW
cpu1: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 1MB 64b/line 16-way L2 cache
cpu1: ITLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu1: DTLB 32 4KB entries fully associative, 8 4MB entries fully associative
cpu1: AMD erratum 89 present, BIOS upgrade may be required
June 2, 2009
Show me the money
While researching my business plan, I came across a number of interesting articles. The following is a distilled list of points I found while roaming around:
The following juicy tidbits come from here
- Recent estimates suggest that Apple has only taken in $20-$45 million in revenue from App Store sales.
- Cross-reference the above figures with metrics on total application sales and you find that Some 40,298 apps have been released for the iPhone as of May 18. Presuming revenue somewhere between those two numbers, with total revenues of $108.3 million (if Apple takes 30%), average gross revenue of $2,688 per app. Apple takes 30% of that, leaving the developer $1,881.
Another interesting report can be found here. The report looks at pricing for the 100 most popular iPhone apps and appears to indicate that prices are clearly going down. In April, the total combined price of all apps in the Top 100 decreased from $265 to $244, down 7.9%. A big factor in the average price drop was the increase of $0.99 apps, with 53 of the top 100 selling for that price. I have not come to any final conclusions yet but from what I have been reading it would appear that the Iphone may not be quite as lucrative as many people imagine.
Apart from developing for the Iphone I have been looking at the economics of flash games. A famous example of a game that is making serious bank is desktop tower defence. According to one article I read this game is making high four figures monthly, the article does not give any figure so I am not sure if this is credible.
A more detailed breakdown of how much money you can expect to make off of a decent flash game can be found here:
- Rough figures in Canadian dollars and taken from May 2008-April 2009.
- Gross Revenue: $35 000 Expenses: $5 750
- Author is university student, does not work full-time on making games all year round. More like 4-5 months out of the year.
- Money all from advertising, the biggest chunk being direct sponsors.
June 1, 2009
Random Tech Nugget: List all atributes of a python object
Rather than break the flow of my coding by typing help(
| Python | | copy code | | ? |
| 1 | >>> dir(Dog) |
| 2 | ['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__getattribute__', '__hash__', '__init__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', '_iter_hypernym_lists', '_lemma_pointers', '_pointers', '_related', '_wordnet_corpus_reader', 'also_sees', 'attributes', 'causes', 'closure', 'common_hypernyms', 'definition', 'entailments', 'examples', 'frame_ids', 'hypernym_distances', 'hypernym_paths', 'hypernyms', 'hyponyms', 'instance_hypernyms', 'instance_hyponyms', 'jcn_similarity', 'lch_similarity', 'lemma_infos', 'lemma_names', 'lemmas', 'lexname', 'lin_similarity', 'lowest_common_hypernyms', 'max_depth', 'member_holonyms', 'member_meronyms', 'min_depth', 'name', 'offset', 'part_holonyms', 'part_meronyms', 'path_similarity', 'pos', 'res_similarity', 'root_hypernyms', 'shortest_path_distance', 'similar_tos', 'substance_holonyms', 'substance_meronyms', 'tree', 'verb_groups', 'wup_similarity'] |