Harry Tormey

June 22, 2009

Py Web SF #1: June 23rd, 6pm @ SF Main Public Library’s Stong Room

Filed under: Education, Interesting, Meetup, Programming, Python — Tags: — admin @ 9:47 pm
My friend Niall O’Higgins has started a new meet up called PyWebSF which he intends to be a Python meet up with a strong focus on Web technology. From frameworks like WSGI/Pylons/TurboGears/Django to libraries like httplib2 to using emerging Web technologies like Amazon’s AWS and Freebase – its all covered.

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. EriksenGeoDjango: Introduction and demos”

June 16, 2009

Facebook and the homeless in San Francisco

Filed under: Education, Interesting, Random, linkedin — Tags: — admin @ 10:52 am
My friend Frances is currently doing an internship with the St. Anthony Foundation, a non profit for homeless people downtown in the tenderloin. Apart from feeding the poor they also have an employment program / tech lab which provides classes in basic computer usage and other skills which are useful for finding a job. Apparently their has been a lot of demand for a class on facebook. Apparently most of the homeless people in San Francisco have facebook accounts.

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

Filed under: Games, Interesting, Meetup, Programming — Tags: — admin @ 8:37 am
The June PyGameSF meet up will be at the STONG conference room on the first floor of the main San Francisco public library beside civic center BART. The library closes at 8pm so we will reconvene to frjtz on hayes street for dinner/drinks afterwords.This month’s presentations are:

  • 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

Filed under: Linux, OpenBSD, Technology, linkedin — Tags: — admin @ 10:12 pm

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:

grep arc0 /var/run/dmesg.boot

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

Filed under: Business, Education, Finance, Games — Tags: — admin @ 11:17 pm
In my spare time over the last couple of months I have been developing a concept for a game. I am currently in the process of preparing a demo for the upcoming casual connect conference this July in Seattle. As part of my demo I have been creating a business plan detailing how I intend on making money. Being a time poor indie developer (read I have a day job) a large part of my planning has involved trying to figure out what platforms I should support.

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.
Granted, the above figures are a little on the pessimistic side. I am sure that people still do make some money from selling quality products for the Iphone but it still makes for grim reading. A slightly more rosy picture is painted in this article where the author claims to have made about 10k in 6 months, not bad but not a living.

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.
So developing a flash game may make more sense than doing one for the Iphone. At present my demo will run on Mac/PC/Linux. A core part of my strategy is to create a flash version of my game at some later date, this has the double win of both being an advertisement for my game and a possible source of cash. My overall goal is not to quit my day job but to sublement my income working on a fun little side project which won’t suck up all of my time.

June 1, 2009

Random Tech Nugget: List all atributes of a python object

Filed under: Education, Programming, Python, Technology — Tags: — admin @ 8:02 pm
One of the nice things about an interpreted language like python is that you can fire up the interpreter, start hacking on an idea one step at a time and instantly check assumptions for each line of code. When ever I am unsure about a few lines of code in a feature I am adding to a project, I take a step to the side and do this. More often than not I will know what I want to do but not the specific function to call or variable to access.

Rather than break the flow of my coding by typing help() and wading through documentation for a particular module, when dealing with a particular object , I prefer to use the dir function. The dir() function allows you to instantly see what attributes/methods are attached to your instance, for example:

 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']

Powered by WordPress