Oculus VR

Just arrived on Friday: an Oculus VR dev kit.

I spent a little while on Saturday unboxing and connecting everything, needed to download TF2 on a windows box to get the VR integration, then a few hours today messing around, firstly with the VR calibration and settings in TF2 and then with the SDK and sample projects.

I’m not a game developer, so I guess my interests are very different to the majority of the other kickstarter backers. I would love to use this for
1. Eye candy. Pull some audio-responsive video patches out into 3d
2. Data visualisation. After working with reams of JSON data, I was thinking of how to assemble into useful visualizations so you could see outliers or interesting stats at a glance. Or even moving through a graph of some kind — either JIRA task relationships or source code analysis.

Anyway, baby steps to get this useful.

First priorities are to put together some Quartz Composer plugins for the sensor input on user head direction,
Secondly another plugin to simplify the user config — Inter-pupillary distance being a big deal in getting the 3d effect to pop out at you. Ideally, use the figures the TF2 calibration gives you, since that seems to have the easiest process for calibrating.
Thirdly, rendering to the goggles. They present as a 1280x800display, one half for each eye. So your render dest is the same scene but with the POV moved by ~64mm and with some focal distortion applied.

I’m going to have to dust off my OpenGL textbook and my C++ skills!

A very useful list

From this MetaFilter comment, a bunch o’links. This was an eye-opener for me about some of the great tools out there.

Github Git hosting and social network around open source projects,

Phabricator: Suite of tools for dealing with source code: code reviews, diff and audit tools, wiki, issue tracker, task tracker. If you did not already know about this, you must check it out. Trying to see if I can run my own instance on Dreamhost, or get it running on OSX.

arcanist (CLI for phabricator),

TextMate: really nice text / source code editor

the Facebook API,

the Twitter API, which I would now replace with the App.Net API  (my app.net account)

Sprintly, Project management

Trello, Collaboration tool

Amazon Web Services, There’s a lot of products beyond cloud servers (EC2) and storage (S3)

Heroku,

Get Satisfaction, customer community builder

ZenDesk, customer support software

Stack Overflow, You’ve already used this, admit it!

Hacker News a reddit-style community supported by the tech startup incubator. High quality tech news and discussion. Can be too obsessed with the new hotness / startup dramas, but generally excellent at tracking technology and business issues.

reddit

 

Gender, story and motivation in games

First up, a trigger warning. If you are sensitive to discussion of (fictional) sex offences, please leave now.

The context for this is the Free Play games conference in Melbourne, and a throwaway tweet that touched on something important.

Female characters in games. They don’t get much of a range of roles. They are the MacGuffins usually, the ostensible reason for the adventure but irrelevant and interchangeable. Leena tweets that she’s tired of female character motivations based on sexual victimisation. Shortly, this tweet appears

WRONG. “@grassisleena How can indies help? Rape Batman and kill Lara Croft’s parents. Mix it the fuck up. #Freeplay12”

original conversation starter

Delicate topic, and Franzicus makes the point that making women into complete humans is not really aided by suggesting that horrible things are done to men. And Leena wound up apologising and backing away from the topic altogether.

I don’t pretend to be anything more than a human male who would like better and bigger stories, and I think Leena was attempting to articulate something that is deeply felt but not understood. It is perhaps part of the wish-fulfilment and narcissism of male-driven gaming culture.

Why is it so unthinkable that Batman could be raped? Why is it so thinkable that Lara Croft would be?

This is starting to play with the high voltage wires, of sexual politics and sexual desire and sexual power. An interesting article on the new Lara backstory

A sidestep

Years ago a friend wrote an article in the student newspaper about the logical inconsistency of laws against bestiality in a country that does not enforce vegetarianism.

Why is it acceptable, he asked, that an animal might be killed in a painful and distressing way, but not used for sexual gratification? Why is the gourmand who enjoys veal perfectly respectable company, but a zoophile with a non-deadly appetite for a baby cow would be shunned? Do you suppose the animal itself would choose a messy death and dismemberment over a non-consensual sexual encounter?

Bestiality laws are not actually about protecting animals. They are about defining normative boundaries on human sexuality. They draw a line that divides deviants from “normal” people and the desirable from the repugnant.

Gaming tropes, where the protagonist seeks bloody vengeance for the treatment of his daughter / wife / sister / mother – this isn’t about protecting women at all. It is about voyeuristic titillation, watching rape fantasies that can’t be expressed in order to disavow them.

The character motivation for the violence is that he is angry with the offenders and seeks revenge. The player motivation is to expunge the guilt around the voyeurism.

Another sidestep

A personal admission: I disliked Kill Bill. A lot. The violence against women upset me. Others seemed to think it was fine, because it was women beating up other women, but it did not sit well with me. Yet I have happily eaten popcorn while watching fictional men torture and kill each other. I can watch Pulp Fiction and not have the same visceral reaction to men being shot and killed. So I’m not logically consistent on this – there’s some inclination in me to see violence as only acceptable when it is male-on-male.

It is this inconsistency that is interesting, the crucial difference between what one feels and what one should think.

Imagine if Leena’s suggestion was taken up and we have a Batman who has been the victim of sexual violence, learning to cope, dealing with the emotions, struggling with suicide and identity crisis. Imagine Lara Croft, strong because she chooses to be instead of the product of victimisation, more Indiana Jones than Lorena Bobbit.

Then, we would have some stories that were genuine attempts to explain how to be a complete person, coping with the slings and arrows of outrageous fortune.

Maybe later…

I’m going to leave this here for now. When I can verbalise it better I want to come back to why I think they are linked – why an aesthetic that refuses to imagine sexual violence towards Batman will also refuse to imagine anything but sexual victimhood for Lara Croft.

Using Git in your code demos and presentations

Saw Dan Draper at the Adelaide Rubyist meetup last night, for a presentation on Grape.

During the presentation, he was editing the code to make changes or comment out chunks that he was going to demo later.

It occurred to me (and I’m putting it up here to remind myself later) that this could be done much better with Git.

If you are working on a presentation, when you have got the demos you want working you can make a tagged commit:

git commit -m “First demo, barebones / compilable / doesn’t do anything”

git tag example1

<edit / test cycles>

git commit -m “Second demo, widget API call works”

git tag example2

You can now move back and forth during the demo, no editing required to make sure it all behaves (or at least less chance of things going badly…)

Testing gestures on the iOS Simulator

Learned this tonight while I thought I was beating my head against a wall with an iPad app.

I’m working on an app that uses a two-finger tap to open the admin screen. How do you open that screen on the Simulator?

Turns out, there’s a pinch control that will do the trick.

If you hold down ‘option’, you get two finger markers. Move them to the centre so they overlap. Then hold shift and you can move them to any place on the screen. Now you can click and get a two finger tap.

Some useful programming resources…

I’m waiting on a phone interview with someone from Amazon Web Services, and I’ve been reading and preparing. I have found a few resources that I want to keep around, and spread the word for others.

Firstly, the excellent Steve Yegge and Joel Spolsky on the interview process. Use what they say to reverse-engineer what you should do!

Secondly, some online resources so I don’t make (too much) of an ass of myself in the interview — some quick references on core topics in case I get a brain freeze:

Java quick reference/cheatsheet, Java console/file IO

Wikipedia’s list of data structures

Dictionary of Data Structures/Algorithms

Useful bit operations, but CatOnMat has heaps of other useful articles too.

Finally, sorting and searching algorithms.

I’m astonished how rusty I feel with respect to a few of these big topics: my courses have moved on to stuff like programming paradigms like Scheme and concurrency/threading. I need more time to follow up on my own coding project ideas!

UPDATE: So, it was someone with a background in computer security and operating systems. All I know about OS is stuff I’ve picked up from Slashdot articles and interesting articles on IBM DeveloperWorks 🙁 He scaled down some of the questions to more DSA type things when it became clear how little I knew about network programming, but it was still pretty embarassing for me. I do have a piece of homework to do, so hopefully that means I’m still in the running…

What am I up to now?

A bit of a brain dump about what I’m juggling at the moment:

First up, uni exams and the Duke site coordinator role.

Second, I want to write a Scheme interpreter on the iPhone. Bring together what I’ve read in The Little Schemer, Structure and Interpretation of Computer Programs and the iPhone Developer documentation. It can’t be sold in the App Store (No programming environments, nothing that can process user input) so it’s more of a code kata exercise in sharpening my skills.

To that end, I’m reading a book I picked up from the bargain bin in the USA, C Data Structures. I’ve covered a lot of the topics in Java for uni assignments, but I want to learn the C equivalents so that I can flexibly move between imperative and OO styles in writing the interpreter. The book is well structured, but with annoying typos and bad typesetting all over the place. the decrement operator (–) appears to have been replaced with an em-dash in quite a few places, so the code and explanations get rather cryptic sometimes! Also, Practical C Programming would be next, keeping up the O’Reilly gold standard for technical books so far.

Third, I have some creative projects on my mind. I want to follow up from the Audium experience with a spatial sound experiment, possibly during the Adelaide Fringe next year. Dave Bartholomeusz has said I can use all the equipment that isn’t on hire, so we have maybe two dozen mackies and subs to play with. Routing all the sound is going to be an interesting exercise in concurrency, I’m thinking that I may have to pre-render the audio tracks and then sync in real-time, or have multiple computers and mixing desks if we are doing a real crazy job of it. If anyone knows any elegant solutions, let me know!

Also, I have a few ideas for Quartz Composer patches using the new Snow Leopard version of QC. I was also thinking it would be cool to set up a github repo so that I  can share them around and other VJs can experiment with them or branch off in their own interesting manners. There’s certainly a lot more room for implementing Quartonian in an elegant way using Xcode and QC now than ever before.

What else? A gigantic stack of books. A talk at the AUC /dev/world conference in September. Friends to catch up with. Snowboarding in Mt Hotham. More books to read.

That’s it for now. I’m going to get a coffee and study my notes for the Advanced Programming Paradigms exam at Cibo.

Some tips for travellers to San Francisco…

This is my second time in SF, and it’s an awesome place. In the spirit of helping others to get the most from the city, here are my tips:

  • Read up beforehand. I recommend the book, “San Francisco Bizarro”, and the LaughingSquid.com blog. BoingBoing.net also covers some cool things in the Bay Area as well. Upcoming.yahoo.com has a great list of events, and there are several street press magazines you can read once you arrive.
  • Public transport is pretty good. The BART is an excellent means for getting from SFO to your accomodation, and the Muni has been fine for getting around places not near the BART.
  • Accommodations can be pretty expensive, but if you know where to look they can also be pretty cheap. I found a good place through AirBnB.com, and some hotel rooms through google searches. The Taylor Hotel (615 Taylor Street) is two blocks away from Union Square but only $60 per night (about $70 with taxes included). It isn’t luxurious, but it is central and it’s a third of the rate at the Marriott I stayed in during WWDC. I’ve also stayed in the Pacific Winds backpacker hostel. It was good and the people were fun, but you don’t get any personal or private space. I find I can cope with this fine for a week or so, but then need a couple of days where I have my own private space to chill out in. After that I can happily return to shared accommodation. Try not to be in denial about your needs for personal space, even if it’s only for a couple of days — it will be a lot less stressful for you and the people around you!
  • Be aware of your surroundings. The Tenderloin is an area in central San Francisco that is just off Market St, and I have been repeatedly warned that it gets dangerous after dark. The cheapest hotels in the city centre tend to be on the edge of the Tenderloin, and will be safer to approach from one direction than another.
  • Usual traveller rules apply: don’t make yourself an obvious target. Talk to other travellers and the reception staff at the hotel. Don’t keep all your valuables in one place: I have money and a credit card in my wallet, in my backpack and in my laptop bag.
  • San Francisco has mild winters and some decent free health clinics, so there’s a significant number of homeless people around. I haven’t seen any of them do anything beyond begging or sleeping in the street, but it is pretty full-on at times. Yesterday in Union Square (Taking photos of Macy’s, Tiffany’s and Victoria’s Secret massive flagship stores) I watched a guy who might have been 18 searching a bin for leftover food. Some of them smell really offensive. Some have mental disorders. Keep your cool and keep walking — unless you really want to spend some time talking to them or you want to give them some money. But decide ahead of time how you will deal with them, because you are in for a pretty upsetting time otherwise.
  • Tipping. I think this is a pretty bullshit way to organise things, but it isn’t my country. The minimum wage is so low here that service staff need tips to cover their rent and food expenses. Not tipping or giving a low tip (less than about 15%) is seen as an insult to the service. This leads to all kinds of predatory behaviour, especially in more expensive restaurants. If they can convince you to get a dessert and a coffee for $13, that’s an extra $2 on their tip. Prepare for some very friendly behaviour followed by a lot of upselling on drinks and desserts.
  • Coffee. I like the Italian-style coffee in Australia (Cibo, Lavazza, Illy, etc…) and the regular American taste is way too bitter. It has been explained to me that they assume you will have a lot of sugar or a syrup shot, as well as cream or milk, so they blend and brew a more bitter coffee to balance the flavours. Go to Caffe Trieste in North Beach or Blue Bottle Cafe in SOMA for (in my opinion) an enjoyable coffee. They will both have lineups continuously, so be prepared to wait for a few minutes to get served. I find that Starbucks can be great if you go in there looking for an adult milkshake!

Most of all, make friends with the locals! SF seems to be the collection point for the smartest, most creative and curious people in the western parts of the US, and if you are open to it you can discover some amazingly cool people very quickly. It isn’t all about Silicon Valley either, there is a lot more culturally active stuff to engage with than you would think. SFMOMA and the Exploratorium need to be experienced, at the very least, and I highly recommend doing the bike ride from Fisherman’s Wharf across the Golden Gate Bridge on a sunny day!