Tuesday, December 2, 2008

Book Meme

Roppongi Hills is known as the Arteligent City, where art and intelligence are fused.
The Sourcebook of Contemporary Architecture by Alex Sanchez Vidiella

Rules:
* Grab the book closest to you. Now!
* Go to page 56.
* Find the 5th sentence.
* Write that sentence as your status.
* Copy these instructions as a comment to your status.
* Don't go looking for your favorite book, or the coolest one you have - just grab the closest one.

Monday, December 1, 2008

Security Learninatin.

Saturday I sent some time at Noisebridge talking about Android and its security model. In addition to learning a bunch about Android specific issues, I learned a lot about security in general. I think Saturday was the first time that I patched code I wrote with a specific security issue in mind. Never mind the fact that the "flaw" was really just me being dumb and at worst would result in an attacker DOS'ing my app by violating Facebook API rpc limits.

We discussed a couple of other flaws, one of which has an immediate fix though it may take a bit to implement. The other being one that I'm not willing to discuss yet. :D One thing I learned is that talking about security vulnerabilities is something that should be done with careful consideration of its impact: I'm not willing to expose an exploit in my app yet.

Tuesday, November 25, 2008

Losing Steam

I wrote an entry back in early October saying that I had, to some extent, lost steam on my Top Secret Project. Since then, I still haven't worked on my project as the last time I took a serious look at the code I realized I had a serious unmaintainable mess of 20k lines of python, javascript and java. So what do I do now? I am not experienced enough a Java programmer to really re-vamp my Android client and I feel that it is the most important component to get the app ready for use. I have had one person call interest on my project recently and I haven't sync'd up with him primarily because I've been trying to aviod the project. I need to get back to treating this project like a (part-time) job. I have realized how difficult it is to cultivate an idea without someone to discuss it with. Paul Graham wrote an essay (http://www.paulgraham.com/articles.html) a while back about how any successful startup has had two founders: Paul Allen and Bill Gates, Larry and Sergey, the two Steves. Right now I am without a second half to work with and I think more than the messy code base, this is the reason I've been avoiding working on my project. I still don't want to spill the beans on the project yet but I feel I'm going to have to soon if I can't get myself out of this rut. Heck, I've even written two blog entries on this flight and not a lick of code and airplanes is where I get my best thinking done.

With the holidays approaching, I hope I can take some time for myself and buckle down on this problem, attack it with some code and some elusive, ksw-aggravating, stres relieveing blog entries.

There is one other thing sucking up my project time. My other project is taking off (to some extent). While it only has a 40% user retention rate that does mean 3200 people do have the app installed on their phone! I am very excited about this as I have never had this direct an impact on other people before. And again, while I have had people say they were interested in helping out, so far I haven't seen any dedication to the cause.

I suppose this is understandable because I am a terrible leader person. I even went to leadership training last week and they kicked me out. Well... They didn't kick me out, that was a lie. I enjoyed the three days of training but don't feel any better prepared to be less awful when running a project. When I ran the d20mm project for NWN a few years ago I managed to run out the original project lead and one of the primary artists. I had taken over the project before the original lead and I started not getting along so it wasn't a hostile take over or anything like that. I have also alientated people at work when doing "leader" like things. I supposed that could be what causes projects that I work on to fail. I wrote a while back about maintaing a project as a hobby and feel that I cannot live up to the ideas that I set down.

In any case, despair despair, regret regret, scared scared. What do I do now that I've met my coding limits, dedication and stress limits on my project?


Friday, November 21, 2008

Christopher Moore

I just finished reading a book for the first time since July. Really, it was two books and the book I read in July was just a very long online cyberpunk serialization that was book length. I am pretty pleased with myself. It is not often that I read these days. I've been spending so much time working on my projects that I resent taking the time away from them to do something as frivious as reading. Nevertheless I did just spend like 20 hours playing Fallout in the past week, saw the new Bond (disappointing) and spent some time staring at nothing.

Back to the books -- The first I read was Bloodsucking Fiends, by Christoper Moore. I had to read it because I also purchased You Suck by the same. It would not have made any sense to read You Suck and not Bloodsucking Fiends, as the former is a written-twelve-years-later-takes-place-20-minutes-later sequel to the the later. First off, they are very quick reads. I started reading them at 6pm last night and finished this morning -- about 5 hours per book. I tend to read a bit slower than I used to because I noticed myself "speed reading" through the books to suck up the plot (hehe, suck) and ignore the prose. This pattern is even more apparent when I read comic books -- I read them super fast because there is not much dialog; probably the reason I don't enjoy reading them very much.

Both books are about newb vampires being hunted/taunted/attacked/courted by an older vampire. The books take place in San Francisco. I haven't read a book based in San Francisco that I can remember (or cross reference with my list, http://joelapenna.com/vanity.html) then again, I have a terrible memory when it comes to books; hence I keep a list of books I've read.

The things I liked about the books: The dialog was very witty and felt very natural. The characters frequently had this "what the hell?" confusion about them which was funny. Not so great was the lack of "what the hell?" confusion going on in the second book. The saving grace of the second book was a new character "Abby Normal," who if I had to describe using an Internet phenomena is the Robert Hamburger of Vampires; the prototypical high school goth chick. Her chapters in the second book are had me laughing most. I enjoyed that so much of what was going on was just outrageous enough that aside from the vampirism you would keep asking yourself "This probably could happen, huh..."

On odd thing about these stories is that two years ago my friend Josh recommended them both to me. I think I might have to trust his book opinion a little more. The reason I picked these up was that another friend, an avid reader also recommended them to me. When she mentioned the author I recalled Josh's suggestion and their powers combined caused me to read for all of the last ten of my waking hours.

Tuesday, November 11, 2008

Feature Requests

Being able to implement a feature request and push a new version of your software within 24 hours of the request is pretty cool. Hopefully it makes up for the instability my app tends to have.

Thursday, November 6, 2008

Fallout 3

Seems like a fun game so far! I played for two hours last night. I never played the other Fallout games so I don't get some of the contextual jokes but then again, I don't have the-old-game-wasn't-like-this baggage.

Tuesday, November 4, 2008

write in votes still need counting....

Vote for bush 4 more years! ;) let's hope the CA propositions turn out as good as the presidential vote

Monday, October 27, 2008

Android Market is open!

Let the awesomeness begin!

Sunday, October 26, 2008

Synchronization

I have spent the past two weeks procrastinating (to some extent) on working on my top secret project. The problem I've been struggling with is just a really hard one to solve and I've gotten quite used to instant gratification with my code. Much of what I've been working on has ended up with results by the end of a hacking session. Not so much with my current task -- synchronization.

One of the key features of the top secret project is that it is always available. Whether by a browser or a native app like an android client, the user is expected to be able to interact with the app no matter if they have internet connectivity or not. This means I have to spend a lot of time working on offline access as a requirement for letting anyone use the app. I thought I could get away with dogfooding my app while I was in Toronto, but I quickly realized that without 3G data on the phone the top secret project would just not function correctly.

One of the challenges I've faced so far is a temporal one. My first thought when deciding to do offline access was that the client would do the synchronization and call back to the server to push a canonical dataset into the datastore. After several nights of hacking I was fed up. I couldn't get the synchronzation to work at all. I found other things (like Statusinator) to work on instead.

On the flight to Chicago I had a "breakthrough" that really should have been my first thought. Do synchronization on the server side! My idea is as such:

  1. Client creates local data, assigns hypothetically-unique UUID to record, tags it as existing locally only.


    1. Stores:
      {"key": "possibly-unique-key", "value": "some-value", updated: "2008-10-27 04:41:01", "created": "2008-10-27 04:41:01", "is_pending": true}



  2. Client requests sync session with server, gets data for min/max records to sync. **All further RPCs have a sync_uuid.


    1. Client Sends:

      {"device_uuid": "some-possibly-id"}
    2. Client Recieves:

      {"sync_uuid":
      "some-unique-session-based-on-device-uuid-and-user", "last_sync": null,
      "max_checkin": "2008-10-27 04:41:01"}

  3. Client pushes record to server, is_pending to denote that the server is receiving a note with an unrecognizable key.


    1. Client sends:

      [{"key": "possibly-unique-key", "value": "some-value", updated: "2008-10-27 04:41:01", 
      "created": "2008-10-27 04:41:01", "is_pending": true}]



  4. Server processes record, changes the key to a valid server key, stores the original as an attribute on the record for future book keeping: local_id.


    1. Server Stores:


      {"key": "some-real-key", "local_id": "possibly-unique-key", "value": "some-value", 
      updated: "2008-10-27 04:41:01", "created": "2008-10-27 04:41:01", "is_pending": false}



  5. Client requests updates from the server, Server responds with all new or updated records modified serverside, along with the newly added records from step 3.


    1. Client requests, asking for all records modified after last_sync (or all records, if None) but before max_checkin.
    2. Server responds:


      [{"key": "some-real-key", "local_id":
      "possibly-unique-key", "value": "some-value", updated: "2008-10-27
      04:41:01", "created": "2008-10-27 04:41:01"}]



  6. Client parses record for "local_id" attribute, and replaces the record in the local datastore with the copy from the server, stripping the local_id attribute and removing the pending bit.


    1. Client stores:


      {"key": "some-real-key", "value": "some-value", updated: "2008-10-27 04:41:01", 
      "created": "2008-10-27 04:41:01", "is_pending": false}



  7. Client tells server sync sesison is complete, using the newest record received from the "push/pull" to specifiy the end date of the session. (just as last_sync is the start). To save a write during the server-to-client record update, the client is the one noting the end date for the session here, instead of the server.


    1. Client sends: last_update.
    2. Server stores: stores last_update as last_sync.

I haven't thought this through all the way yet, but I think this will work just fine for a google-gears based browser client just as it will work for my android client. There is something that still bothers me and I'm having a hard time scoping it out in my head: What happens when clock scews occur?

Remaining questions:
  • Do I leave around "local_id?" When is an appropriate time to strip those records? I don't want the server modifying the records withouth confirmation from the client that the info is no longer needed.
  • What are the error condtions when the sync fails at each of the above steps, how does this pattern resolve conflicts that occur when records are modified after a failed sync?

Saturday, October 25, 2008

Voting Resources

Today I spent the afternoon voting. So much voting! I'm not good at this whole thing either since I haven't done it a lot. In California you vote on many many measures at once. I'm not even sure how it was done in Illinois. I have over 45 things to vote on today and I don't think I did every item justice in research and due diligence. I'm giong to try harder next time around but for now, these are some of the resources I used to educate myself on the issues. Any other recommendations?

Tuesday, October 21, 2008

Statusinator

I've updated the first app I wrote for Android, Statusinator. It is a client that you can use to update your status and upload photos to Facebook. It will be up on the Market as soon as it is launched, but until then you can get it from the Project Homepage.

Monday, October 20, 2008

Why its a secret!

Earlier this summer I started work on my top secret project. There are three people besides myself who know what this project is. One person is my partner in crime, the second a close friend of his and the third is someone who put together the pieces based on a conversation I had had in his presence before I had even thought much about what the project would be. Well, I think that is the only people who know what the project is -- there are plenty of people who could know the same things the detective that I just mentioned realized. They might just be acting oblivious to make me feel better.

There are a few reasons I want to keep what I'm working on a secret. The first thing is that, well, I thought I had a pretty unique idea. Treating this project like a job has had a great impact on my desire to follow through. Its an attitude that has propelled me along.

The second reason though, that I don't tell is simply that if you talk about something too much without acting on it, it becomes just a figment of discussion. Like a dream, but even worse because just having the idea isn't as interesting as a dream could be.

Third, keeping the project a secret makes me feel cool. Neener neener. I know, you don't. This means you ksw.

Fourth, if I don't tell anyone what the project is, then when I change things around becuase I have a new idea or because I just don't have the talent to accomplish what I originally set out to do nobody is any the wiser.

Fifth, so I can keep people in suspense and excited about hearing what I have to say, instead of them having to listen to me rant and rave about specific technical challenges that I've been facing.

I'm writing these things because I'm at the point where I really want to tell people what I'm working on. I'm having a bit of a crisis of confidence and a bit of a lack of excitement about the (hard) tasks coming up. I spent the afternoon today staring at documentation for various code libraries I might use to implmeent a feature I feel is needed for launch but I'm not really excited about writing this part. This is part of the reason I've been mentioning needing additional help on the project. There are parts of it that I don't feel very interested in. I lack the experience to make it awesome or unique -- This, though is one of the *key* components of my project and I really can't launch without it.

Saturday, October 18, 2008

Losing Some Steam

Oh no! I just realized the other day that some of the core code in the Android side of my Top Secret Project is going to have to be re-written. I am very sad about this and have started to lose a little steam. It doesn't help that I've spent the past two weeks letting the feeling linger while I hung out with friends in Toronto. I have one week before I'm back in Chicago for a bit and while I don't think I'm going to be able to make my app launch-ready by Wedensday (The G1 Launch Date) I feel like the app *is* coming along to some capacity. I sometimes dream of having a team of Engineers working with me on this project, all as dedicated as I am. If that were true, the past two weeks, each and every one of them would have written a total of 0 code for the app. I guess its a good thing right now that I'm not running a startup or anything like that. Who ever heard of a startup stopped because some crazy country up North decided to abscond the dude in charge?

Tweets for Today

  • 11:50 @superabbey see ya there! #
  • 13:51 Soap box derby is so crowded! #
Automatically shipped by LoudTwitter

Thursday, October 16, 2008

Tweets for Today

Automatically shipped by LoudTwitter

Wednesday, October 15, 2008

Tweets for Today

  • 19:06 Saw the dark knigh toy story. Pretty good. #
  • 19:39 @saydiana mmmmm.... scotch!!!! I'm drinking canadian beer now. #
  • 02:34 Canada conspires against me leaving. Closes exit to highway 427. next on the 5am news. #
Automatically shipped by LoudTwitter

Tuesday, October 14, 2008

Tweets for Today

Automatically shipped by LoudTwitter

Monday, October 13, 2008

Tweets for Today

  • 08:33 Rise Against writes really good rock hooks. #
Automatically shipped by LoudTwitter

Sunday, October 12, 2008

Tweets for Today

  • 21:55 Answering questions on the android-developers group while walking back to my hotel... nerd. #
  • 22:12 Left by laptop bag on the sidewalk an hour ago ... taxi'd back, still there. Thanks for being low crime Toronto. #
  • 09:03 Who let "whoa" back into music and where do they live? #
  • 09:19 Not a fan of "Hero of War." #
Automatically shipped by LoudTwitter

Saturday, October 11, 2008

Tweets for Today

  • 11:42 New rise against is great. #
  • 13:41 Workin in my favorite environment... coffee shop... but in Toronto. Kensington Market is highly recommended. #
  • 16:04 Haunted toronto walking tour. #
Automatically shipped by LoudTwitter

Tuesday, October 7, 2008

Tweets for Today

  • 16:12 Radio is still terrible. Using my phone instead of the car radio for tunes. #
Automatically shipped by LoudTwitter

Sunday, October 5, 2008

Tweets for Today

  • 13:11 Shoe museum in toronto is actually kind of cool. #
Automatically shipped by LoudTwitter

Saturday, October 4, 2008

Tweets for Today

  • 12:57 When using amex, do you try/except or if/else? #
Automatically shipped by LoudTwitter

Friday, October 3, 2008

Tweets for Today

  • 19:21 In Toronto. Now what? #
  • 12:27 @dknowles2 Now go finish your stared items... #
Automatically shipped by LoudTwitter

Thursday, October 2, 2008

Catchup with two hands

its been six days and its time again to leave SF for a new place. I'm going to be in Toronto until the 15th. I'm in for work but ahould have plenty of time for fun. Heck, as I'm good at doing, I am in Toronto over a 3 day weekend too.

I have taken this whole week off of work, including Friday but excluding part of monday. In that time I have  been able to catch up on several months of life. I got a haircut, went clothes shopping and had several Hendricks (great gin, thanks for the recommendation josebiro) Martinis. I have also added a few more needed features to the top-secret prokect and am still looking for someone to do some UI design work, I could also use someone who is interested in mobile applications, python, java and/or javascript because I think I need more people to work on this if I'm going to get this completed in any reasonable amount of time.

On one hand, I see that I am making steady progress. Every day that I sit down and focus on it, I walk away at the end with something newer and better than before. On the otherhand, some of the ideas that propelled me to work on this project seem so far away in the future that I'm worried ill never get to the cool problems that will make this project stand out. Heck, I've no doubt pumped some people (including myself) up about this and I'm sure it won't meet anyone's expectations.

On the other hand, I'm still happy about the work that I have completed, I just wish it hadn't taken four months to get here. My thought is that in the next few days ill start using the app on my own and see if in its current state it is usable. If not, I'm going to have to take a hard look at what it will take to make my project get there. if not I will have several months of rewrite ahead of me and I will surely have lost the first to market edge.

Tweets for Today

  • 23:19 @superabbey yup not great day. #
  • 23:20 @schrierc MSI is great. #
  • 23:21 @saydiana pics or it didnt happen. #
  • 23:27 Anyone interested in working on a top secret cool project? Java, python and javascript skill required. Hurry, apply now. limited time offer. #
Automatically shipped by LoudTwitter

Wednesday, October 1, 2008

Tweets for Today

  • 14:09 if anyone asks, i fell down some stairs. #
  • 14:11 @noisebridge congrats on the new space! i can't wait to come visit when i get back in town! #
  • 14:45 damnit, why is it when i say shortened haircutters think i say cut all the hair off they can? #
Automatically shipped by LoudTwitter

Tuesday, September 30, 2008

Tweets for Today

  • 20:04 android app idea: watch for just connect access points and automagically submit the "click here to agree to the terms of service" type forms #
  • 20:06 @mikal at least it was three weeks of no shows three charges for home setup and no new cable box. #
  • 20:15 @mikal you twitters should go to your blather feed not the other way. i use loudtwitter for example #
Automatically shipped by LoudTwitter

Monday, September 29, 2008

Tweets for Today

  • 18:51 they're playing "The Falcon" at a random bar in SF!!! #
  • 19:13 now they're playing alkaline trio #
  • 20:34 More Falcon! #
  • 20:50 android app idea. intercept twitter SMS and only alert about them. say every 2 hours, customizable and groupable of course. #
  • 14:56 @SayDiana I'm working on other projects though. Like the top secret project. #
Automatically shipped by LoudTwitter

Sunday, September 28, 2008

Tweets for Today

  • 19:43 Have you ever asked yourself, "What is the difference between "Hunan Beef" and "Mongolian Beef?" #
  • 01:52 Mongolian Beef has more vegetables, but that is really up for debate. #
  • 12:24 Sitting around. Going to see comedy later today! #
Automatically shipped by LoudTwitter

Saturday, September 27, 2008

Tweets for Today

  • 18:54 thinking about hiring a ux/graphic designer for a small project. #
  • 10:31 Fixing javascript I thought was fixed. #
  • 12:05 Fixed one of the two problems I thought I had fixed. javascript + same-origin is tough... #
  • 16:37 Stuck on javascript problem #2. #
  • 17:45 LAPTOP IS TOO HOT! WORSE THAN CORNBALLER! #
Automatically shipped by LoudTwitter

Top Secret Project Update


I've spent another weekend hacking away at my top secret project and I feel that every day I work on it that I am getting closer to being able to use it. In fact, I'm just a few major-usability bugs away from using it day to day! After I spend a few weeks working on it, then a few more weeks fixing what I see as show stoppers I hope to be able to show it off to a couple of people.

Looking at what I've done so far this summer leaves me both depressed and excited. I'm a bit sad because I am so far away from what I hoped to have accomplished by this point. At the same time, I'm excited about what I have been able to do. I've learned a ton about Java and realized that it is a pretty awesome language. I feel it is a good way for me to stretch my brain. With python you can throw everything against a wall, 'import antigravity' and have the crap float away, leaving you with something usable. With Java, I feel I have to plan things out a bit better. I have to live with the consequences of my decisions and deal with every shortcut I inevitable take. As a result I'm much more careful about what I do. Even if I do take a shortcut, these days they don't tend to last very long as I get irritated with the way my code looks or interacts and I refactor until I'm happy.

One thing I haven't gotten around to learning is unit testing. I thought I would have more time to work on the project this summer and fully expected to be twice as far along as I am today, with solid unit testing coverage. Instead I'm not even at a usable point with my project and I've not written one Java unit test. The python side of my app has a few tests but still nothing worthy of being called "coverage."

Friday, September 26, 2008

Tweets for Today

  • 13:51 Laughing at saydiana #
Automatically shipped by LoudTwitter

Sunday, September 21, 2008

Tweets for Today

  • 09:15 Boring Sunday... Avoiding writing peer reviews. #
  • 14:13 I lost all my friends to Warhammer. Damn you MMOs!!! #
  • 15:09 @awbassett If I had any power to stop them, I might... If just to say hello. #
  • 15:32 Hating on drying machines in Dublin. #
Automatically shipped by LoudTwitter

Lonely Ramblings

I've spent most of the past few months alone. Most of it has been because I've been abroad, some of it has been because I needed to decompress when I got home. Now I'm out in Dublin again and I've done scarely a thing in a city that I enjoy being in. This weekend and last I spent cooped up in my apartment lazying around and playing on the internet. Now tomorrow starts my last work week in Dublin for a while. I head back to San Francisco on Thursday. When I get back I don't plan on working until around the 6th of October (possibly the 3rd if I feel guilty). Some of this time I'll be in San Francisco, where everyone I know will be at work, as a result I will have even more solitude and time to myself but I am begininng to grow tired of my anti-social behavoir. There comes a time in every person's life where they just want to party like rock starts with their closest friends. Unfortunately, a lot of my friends these days are past the days of rock star parties. As we all grow out of College it seems that the fun parts about rampant drunken hyjinks are replaced by the monotony of pretending you're back in school. Even your drinking habits become habits and its less likely that you have the chance to meet someone new. That, I think was the main reason we had parties back in the day but now even when we go out for drinks its hard to find a place as good as Josh's DeKalb place or Chris' Chicago flat. Now its just loud music and a handful of us drinking away our work sorrows.

I felt like at Gen Con I had the chance to be a rambunctous overly social dufus again but it didn't seem like people were really in the mood for that.  I don't always want to be the guy running through the fountain alone, I miss team driven hijynks!  Bring back

Geeze, I think I just want to hang out and waste time with my friends. Any time I get to see people from Chicago its a special event so I always feel so pressured to make something of it. I miss those kinda-lazy Sundays where we would all hang out by sitting in the same room as eachother doing (home)work. What is it now that makes that not possible? It was great to know that over there Josh was studying for some crazy selling stuff class and steve was over in the other corner trying to catch up on all the classes he didn't go to during the week, all the while I sat and struggled on Calculus. I don't mind doing work, heck I invented a top secret project so that I could treat something like a job but not really have to rely on it for any sort of money or real responsiblity. I know, I know, a paragraph ago I was talking about drowning work-sorrows in alcohol but there is something that is satisfying about it.

I'm sure I've spent several hours in the past few weeks clickin refresh on Facebook and my Google reader shared feeds. I want to know what people are doing these days. Even the mundane is better than me reading another story on Tech Crunch about random tech company Q. I troll people's pictures hoping that I'll see something new going on that I can pretend to have been there.

To my friends who post on Twitter, update their status on Facebook or blag-o-blog about whatever, please keep doing it, its almost-but-not-even-close to those fantastic Sundays where we sat around together and did nothing together.

PS. This is my 500th post.

Saturday, September 20, 2008

Tweets for Today

  • 12:38 Debugging a Null Pointer Exception in the Android Emulator #
  • 17:26 Heading to bed after a successful day of Android-ing #
Automatically shipped by LoudTwitter

Sunday, September 14, 2008

Tweets for Today

  • 17:45 Worried that I'm getting old -- its 2AM and I'm not sleepy! #
Automatically shipped by LoudTwitter

Traveling with a Project

This summer I spent most of my time on the road for work. Somehow, I still managed to find some time to work on my project. While I didn't work on it as much as I did while I was home (probably 2-3 hours a week instead of 8) I was nevertheless able to make valuable progress on it. One of the things that helped was an obligation to my teammate to finish and another was that I kep in contact with my teammate. One of the best things you can do to keep interested in your project is to discuss it with someone who really cares. In my case I called my teammate at midnight (with Skype) a few times to discuss recent changes and code checkins. This allowed me to keep the project at the top of my mind and when an opportunity came around where I wasn't running around a new city drunk off my ass I knew that I should pull out my laptop and get working. It was successful. I was also lucky enough to have great flights both to and from Europe in which to get work done. I've always said that an airplane is one of the best places to concentrate. Even a crying child can be ignored with a decent pair of headphones. There is no internet, no where to walk, nobody to talk to, no toys/tech/games to distract and nothing but your laptop and the carefully prepared contents of its hard drive.

Thursday, September 11, 2008

New Facebook UI

I like the little help "stickies" that are floating around... they help quite a bit. But, I didn't even realize that the app toolbar was ever there, I only noticed the "Online Friends" bit.

Also, the UI really reminds me of windows and I don't think that is a good pattern to follow.

Monday, September 8, 2008

How to work on a Project

This comes from a conversation I was having with my friend Chris the other day
about how you can keep yourself and friends working on a project.

So this is what worked for me... Something that has allowed my project to not die after a day of working on it -- what usually happens to projects that i start.

First and foremost: Get everyone to set aside a specific time each week to work on the project. Ideally it would be everyone at the same time at the same place, but thats not likely to be possible. At the very least you should have pairs of people.  Most of my friends are already highly motivated but having someone to bounce ideas off of is invaluable. If you have to wait until the next time someone is online that idea will probably bounce away instead of back. There are other reasons for this that I will come to shortly.

Because you're working on a personal project, the only initial rewards are going to be the feeling of satisfaction of having produced a good idea or from helping another person on your team.

Make sure everyone shares their ideas, and document those ideas. You'll need some reference material later when you thing "Well, why didn't we do this in the first place?" This is the second reason for having pairs or groups of people working at the same time. At the end of each session you can suggest people show their work with an example or through some documentation. This not only keeps people concentrating on goals but it establishes that each person on the team is working for someone else -- the most important part of this plan is to make sure people are vested in the work everyone is doing. It is vital that each member of the team takes as much or more pride in the work each of their teammates than their own.

Next, spend some time planning what the team is going to focus on. Even if you don't have a clear idea of what the project will be, give people focus area to lead. Have someone investigate javascript frameworks while you have someone else analyze some patterns for the client-server interaction. Or have someone start writing up use cases for how they expect the project to be used. If you immediately jump into writing code you might leave your teammates who have less a clear idea of waht to do in the lurch. Know that each person has some series of talents that nobody else does so be sure to spend the time upfront to realize what those are.

Do not expect the same quantity of work from each person, but do expect each person to make progress, even if that progress is a discussion about how they had to re-write some system for a third time. If someone is not completing any work you can expect that attitude to be more influential than that of the other people completing some tasks. Even if someone's time is spent researching, a short summary to another teammate or in a document will help spread some knowledge and capture some progress.

As the project moves along, the tasks people will be doing will tend to be more tightly coupled with the work from different people. By this point your team is probably working well together and because you've already encouraged people to help each other being a dependency or or dependent on someone else is not a new feeling.

Finally and most importantly, make sure everyone is having fun. The best way to kill a personal project it to treat your teammates poorly. The second best way is to make the work people are doing boring so be sure that people find something they enjoy to work on.

Tuesday, September 2, 2008

Tweets for Today

  • 08:28 A cold and an upset stomach. #
Automatically shipped by LoudTwitter

Google Chrome

Go get Google Chrome. Its fast like LIGHTNING!

Scaring Roommates

From Mark:
I walk into the kitchen and she's looking at me like "who the hell are you and why are you in my house"
I promptly asked her to lock me out, so I figure it was ok

Monday, September 1, 2008

Fancy ice cream

Tweets for Today

  • 19:34 Too many computers: 2 work desktops, 4 work laptops (returning 3 of them soon), 1 mac-min, 1 old laptop, 1 old desktop, 1 pink laptop. #
  • 00:36 Eight coffees today. Still twitching hours later. Can't fall asleep yet. #
  • 01:36 Americano Caffine can kill. Be careful. Courses through my veins. #
Automatically shipped by LoudTwitter

Sunday, August 31, 2008

Tweets for Today

  • 21:57 What cool or useful apps should I be downloading for my mac? I've grabbed Adium, Google Earth, iPhone SDK and Quicksilver. #
  • 10:29 Trying out plex (plexapp.com) as a media center. Very cool looking, but its taking ages to scan my ipod for music. #
  • 17:24 Seeing what happens when Java and Python fight. #
Automatically shipped by LoudTwitter

Android/App Engine prototyping problems

Almost a year ago, Google unleashed its Android SDK in a preview capacity. One of the pain points I experienced with it was the tedium in creating ContentProviders. Today, I'm feeling the same tedium. A ContentProvider is the sole mechanism for an android application to share information with external packages. ContentProviders can be backed by any kind of data, file, database or live server with custom backend. The popular method is creating a ContentProvider that is backed by a database. Creating such a beast is a time consuming operation and making it with a SQL database is quite contrary to the BigTable based datastore API in Google App Engine (GAE).
In my top secret project, I'm using the HttpClientService api that I've defined in my Missing SVN repository (the top-secret project is indeed different than Missing) to interface with my server. Currently, the client does no caching of data -- all information it needs is pulled at user request, from the interwebs. When testing on my local machine, this is not a problem. I have a fast workstation and there isn't much packet loss or latency on a loopback interface.

Unfortunately, this won't work in the "real world." I'm now at the point where I have to implement a sql-lite backed ContentProvider that tries to model a table-based GAE datastore api. Not only does this mean I have to keep track of two different schema, one for GAE and one for Android, but it means I have to implement the same "get my data" api twice, with a layer of abstraction between the android UI and the ContentProvider I'm resenting having to create.

What I'm considering doing is using something like Google's Protocol Buffers or Facebook's Thrift to define my data model and create stub interfaces for both GAE and Android. This seems like a bit of overkill for the current state of my project but even in the not-yet-ready-to-show-anyone stage of this project I'm having to consider these very-high-time-cost coding excersizes. This is going to consume time when I should be iterating on features and trying to get the app in a state where I can finally start to use it. I think I've proto-typed the android app as far as I can go but I don't want to start spending hordes of time on this when I have several core concepts not-yet-implemented.

I'm also feeling the pain of knowing that the stuff I prototyped at the beginning of the project are going to have to be fully re-written and if I don't provide a more featureful content provider.

One of the ways you can provide an abstracted interface to the ContentProvider is by wrapping it in a Service, which of course requires yet another interface declaration, this one with java primatives and simple classes using the AIDL interface spec provided by Android. I figure I'll have to cross that bridge some day, I'm just glad I don't have to do it right now.

Saturday, August 30, 2008

Mac Mini!

I bought a Mac Mini today. It's the first Apple product that I've purchased aside from an iPod. I've already had it hang on shutdown once, fail to boot once (had to unplug my ipod for some reason) and then I clicked the wrong thing in the monitor panel menu and lost my display until I rebooted a couple of times and learned how to use safe mode. Thanks to Francisco for telling me to buy it, then double thanks for him breaking it too. All from 2500 miles away. Great.

Tweets for Today

  • 20:51 Why do I get headaches whenever I drink? #
  • 15:57 Heading to Dublin again, 9/8-9/25. #
  • 17:46 Just purchased a mac mini #
Automatically shipped by LoudTwitter

Friday, August 29, 2008

Tweets for Today

  • 21:16 @ohiophyle good to know, I'll be applying to Berkeley soon. #
  • 21:50 catching up with friends... #
  • 16:54 Used a luch tray as a sled and burned myself going down the slide. #
  • 17:25 Learning how to solve the rubix cube from THE world rubix cube solver. #
  • 17:26 ozcubegirl.com #
Automatically shipped by LoudTwitter

Thursday, August 28, 2008

Google Ajax Search

You see that search box in the upper right? I bet you never use it. I use it all the time though. I think its amazing. I'm glad I added it. It helps me find things I've written about before. Its like my own little search engine, just for me.

Sunday, August 24, 2008

Tweets for Today

  • 14:02 At "Bean There," getting things done! #
  • 17:11 Getting distracted with finances instead of doing project work... Back to work Joe! #
Automatically shipped by LoudTwitter

mint.com

Trying it out now. It has already suggested I open a savings accoutnt with a good interest rate -- Which I've now done. So far so good Mint! Keep it up!

Update: It supports every financial institution I have to deal with!
Update: It doesn't seem to be finding my older (more than 30 days) transactions with my banks. :(

Don't get distracted!

One of the things I've learned from starting my last few projects is that if you get distracted by project infrastructure you get distracted from what made you excited about the project in the first place.

An example would be a project Kevin and I tried starting a few months back -- an everyblock-like appliance that could sit on your mantle and passively provide you intersting information about your neighborhood. After several hours spent setting up an SVN repository, the correct mailing lists, researching frameworks and languages we were tired; not because of the amount of work involved, rather it was because we had grown weary of the boringness of the project.

Even though we hadn't written a single line of code for the project the energy we expended on the infrastructure was the exact energy we should have used to sketch out a more serious design, start prototyping and collaborating. Instead of getting more interested in our project we instead grew tired of it and like so many other projects, it died.

There are a few things you can do to mitigate this problem.

  1. Spend some time *now*, before you have a project, researching project resources. Things like SVN repositories, mailing lists and web sites are easy to get going but suck up the most valuable moments of your project's birth.
  2. Your initial decisions are both temporary and perminent. Think of it this way: You may decide to change from django, to ruby-on-rails, to C# but the design vs feature tradeoffs you think of with any of them will probably have lasting impact on your future design decisions.
  3. Make sure you work on the project you were excited about, not some deriviative of it that you think you need to get working on the real project.

Saturday, August 23, 2008

Tweets for Today

  • 15:51 Seeing Lupe Fiasco at Outlands. #
  • 17:50 Ben Harper? #
  • 18:44 Primus #
  • 19:22 Cake #
  • 21:58 Tom Petty #
Automatically shipped by LoudTwitter

Friday, August 22, 2008

Tweets for Today

  • 19:03 Board game night tonight! Jgib is the traitor!! #
  • 22:39 Just died fighting the dragon! 36 vs 36! Damn it shadows! #
Automatically shipped by LoudTwitter

Game Night!

Wow!! Tonight, Abbey, John, Kevin, Craig and Jen hung out at my place and we played both Shadows over Camelot and Bang! I think in the nearly two years I've been in SF. We've had only one other board-game like day and I am happy to say that it seems like the participants enjoyed themselves. This might very well mean there will in fact be another game night and more chances for jgib to be the traitor!

Highlights: We were down and out making little progress in defeating the Shadows when out of nowhere John took out the Black Knight and won Lancelot's armor. We were progressing well against the dragon when we threw down our third triple and revealed. Since Kevin and I were both at 1 health, it was game over for us even though we tied. Dead. We were dead. How did that happen? Someone played an 11 face down -- Who was it? John . . . Yep . . . It was at that point John accused Craig of being the traitor, drew and played the "Play the next three black cards" card and took the group to 6 black swords. This was when we already had 10 siege engines. Damnit!

Thursday, August 21, 2008

Wednesday, August 20, 2008

I'm back... San Francisco, Gen Con and more.

Wow, I've been on the road, almost all summer and am finally back in San Francisco. I would have to say that my travel bug is back -- Expect to hear from me on the road more frequently than I've been, during the past year. I believe I will be travelling to Chicago, Dublin, Sydney and Toronto in the next couple of months and I will hopefully track that travel a bit better than I did most of this summer's escapades.

It feels good to be back in San Francisco -- after almost two years of living here, it finally feels like home. I was even a bit homesick by the time I hit my last week in Dublin but by the time I left Chicago for San Francisco, I was thinking "Where do I go next." I guess homesickness is fleeting.

Gencon -- Wow! I had such a great time seeing my gaming friends. Even through we didn't play all the games we hoped we would, I still had a great time. Next year though we better execute better. Less standing around, more doing things. Less shopping, more doing things. Less stress, more doing things!

Sunday, August 10, 2008

Switching day and night.

I still feel like people should be asleep right now because I am awake. I'm not used to this whole CST thing. . . IST is the way to go. (I did have to look the abbreviation up though.) It is Eleven PM and I am appropriately getting tired. Jet Lag has nothing on me.

If it wasn't clear -- I am in Chicago(land) now. Two days till Gen Con and by then I'll be seeing a few people I haven't seen in at least a year.

Tweets for Today

  • 03:49 London -> Chicago . . . Gen Con in a few days! #
  • 06:39 Upgraded to business class... Yea! Never had that happen before. #
  • 15:32 In chicago #
Automatically shipped by LoudTwitter

Sunday, July 20, 2008

Design Patterns... BAH!

I started reading "Head First Design Patterns" last week, and taking advantage of my new-found knowledge I tried to refactor Missing's http client stack. Its taken me about eight hours and it works again. Its as ugly as it was before, maybe even more so.

The kookiness of the design stems from the fact that I want the ability to respond to an HTTP response, possibly from a different thread. Android has a cool thread/message-queuing class called a Handler, that allows you to post a Runnable to the handler and it will get executed on the thread in which the handler was instantiated.

Because I wanted to keep my http stack android-agnostic (not that I had a good reason for it, in fact I didn't even think of doing it at first.) I removed the knowledge of the Handler from the .http package.

Instead I created a decorator for the HttpResponseRunnable that does know about Android's handlers. For the sake of re-use on another project, I put it in the .http package... DOH!

On the positive side, I did manage to implement a design that allows me to dynamically create http requests and responses without having to subclass all the time. I don't know if in the long run that will be better.

Things I need to think about:
  1. What is the best way to chain http operations where each request depends on data from the previous request?
  2. How would I design the HttpService from the ground up? Where can I look at code that has similar features to the ones I'm coding up to see what design they used.
  3. Why am I constantly re-writing this stack?
  4. If I am going to have a large number of http callbacks, if there are many types of end points, do I want keep the ability to define them quickly, or do I go with something more verbose and more abstract?

Do you know Java? Want to discuss some of this with me? I'm a newb and could use insight from someone with more experience than I.

Wednesday, July 16, 2008

Tuesday, July 15, 2008

Alkaline Trio breaks my heart

When I started listening to Alkaline Trio (almost) seven years ago, I never expected them to have as great an impact on my life as it has. I fell in love with "From Here to Infirmary," and quickly back-filled my collection, scouring Napster for b-sides which I finally heard many of on the "Remains" release last year. I've been to many shows, the best shows I've been to with my friends Josh and Chris. If you look closely, you might see me in the Halloween show DVD. Chris is right there. He can point us out. I can clearly remember the day we were driving around the suburbs and Chris and I had a great debate about "Cringe" lyrics -- Chris was correct but there aren't many bands where you'll argue about the lyrics of a song and feel bad when you mis-understood them. Its a good indicator when you take the time to find exactly what it is your band is singing about. When that band can provide such powerful emotion that you can nearly lose consciousness at a show. When a band can take you into and out of a year long depression. These things mean something. Well, they mean something close to me.

I have had the unfortunate experience of listening to the new album, "Agony and Irony" all the way through. I can't help but wonder if the band really just said "Fuck it," and felt obligated to put out a new album after three years of re-releases and re-masters. "blah, blah, blah" indeed. Save your spirit, don't listen to the new album.

I don't know what it is, but I can't get over this failure. I am angry. Mostly just angry. Not kick them in the face angry, more angry at everything having changed enough that the music just doesn't fit me anymore. They grew up -- A band can only sing about drunken heartache for so long before it becomes dull and I can only live in my angsty early-twenties for very little time. Never-the-less, I am angry that the band that I love wrote me a very bad break-up notice. I am not cool with that. Its one thing to say "Thats it! We're over!" Its a whole different story when the relationship dawdles on for too long. I will always have the Halloween show, six great albums and many other pretty-good/mostly-good shows to love.

Disclaimer: I am writing this alone in my bedroom, drinking Whiskey and reminicing about the old days.

Alkaline Trio makes more money.

"This and this on the same thing, it makes my life." Matt Skiba in reference to a new Nike/Alkaline Trio shoe. Just, what the fuck.

Al capone chicago style (thick crust)...

Google cafe, Dublin

Friday, July 11, 2008

Tweets for Today

  • 03:26 Wondering when Android is coming out. #
Automatically shipped by LoudTwitter

Thursday, July 10, 2008

Mmmmmm


Delicous Fish and Chips at 1am after six Guninesses.

Thursday, July 3, 2008

Tweets for Today

  • 06:53 My last day in New York! #
Automatically shipped by LoudTwitter

New York Day 10

This is going to be a short entry -- Its my last day here in NYC and for lunch I took the team I was working with to Katz' Deli. I had a delicous (but expensive) pastrami sandwich, pickles (dill and sour), matza ball soup, fries, root beer and cream soda. I did not finish any of those items. See previous posts for pictures.

My ten days in NYC were fantastic and I can't wait to come back here again. I am still amazed that Amy and Josh came to visit and I can't wait to meet up with friends for travel in the future!

I'm in the taxi back to JFK right now and because my plane was delayed I won't even be able to meet up with people tonight in SF. Thats too bad.

Young's double chocolate stout.

At burp's Castle

Katz

Katz DELI!

Wednesday, July 2, 2008

New York Day 7,8,9

Oops. Forgot to update.

On Monday I went to bed almost as soon as I got home. Even though I was sleepy I did go out for Ramen at "Ramen Setagaya" after work. It was very salty but still enjoyable. I thought the Gyoza was delicious!

Yesterday I worked till 6pm then went out with some folks from work to not-so-good Thai. We went to Burp Castle afterwards and I had a couple pints of Young's Double Chocolate Stout. Then we went somewhere else for a drink. Around midnight I took a taxi home. I stopped at Chelsea Papaya for a cheeseburger and fries. It was fantastic fast food. I'd go again.

Tonight I worked late (I got in late too) and got a burger at some fancy looking place "Chelsea Porter" because it was on the way. I wish I had gone to Chelsea Papaya again. I watched a cool documentary on a kid who is blind but uses echolocation to get around. Its inspiring.


PS. I've updated the map: Where I've been in New York


View Larger Map

Tuesday, July 1, 2008

Monday, June 30, 2008

Tweets for Today

  • 09:15 Just ate chocolate covered BACON! #
Automatically shipped by LoudTwitter

Chocolate covered BACON!

Missing

One advantage of being several thousand miles from home is that you have the chance to sit down and work on things that you're normally too distracted to deal with.

As such, out here I've had the chance to work a bit more on Missing. I've re-written the http client stack I was using to use HttpClient 4.x instead of 3.x, with better abstraction and a multithread-but-threadsafe client. I've also gotten the LocationManager code working and the phone now supports a location update round trip. The server component needed a few tweaks to make this work but the majority of my time has been spent working on the Android client.

I became more enthused about this when jgib pointed me at sf0.org where they're running with the whole play-a-game-but-in-real-life-and-get-levels-and-stuff.

Sunday, June 29, 2008

Tweets for Today

  • 20:07 At barbounia #
  • 11:10 Sunday nap before I go and torture my feet again! #
Automatically shipped by LoudTwitter

New York Day 6

Today was the day that Amy and Josh left, the day that I got some sleep and had some not so good BBQ. The highlight of the day was waking up at 9;45am, getting out the door by 10:30. We went to 72nd St Bagels and delivered our breakfast to Central Park where we sat near "The Lake" and ate for a while. We didn't have much time because they had a 3pm flight out of JFK (and wanted to see if they could standby on a direct flight back to Detroit) so we hung out there for an hour and a half then went back.

I got them to the train station, said good bye, walked back to the hotel and slept for 3 hours.

Having Josh and Amy in to visit has made this one of the best trips I've ever been on. I am so glad they visited and I can't wait to do this again. I've wanted to explore New York with my friends for many years and I finally had that chance. Thanks Josh and Amy for making this trip so wonderful!

New York Day 5

On Saturday we woke up at 10:30am and were out the door after figuring out what were were going to do by 11:30. After a subway fiasco because of construction work on the 1 train, we spent a good 45 minutes getting down to the bottom of Manhattan. We walked around a bit through Wall Street then ventured East to Battery Park to purchase a trip to the Statue of Liberty. It was, unfortunately, sold out for from-the-top viewing so after standing in line for 20 minutes we abandoned that mission. We walked to the World Trade Center site, saw the new construction and then walked through the Financial Center buildings for a few minutes for some AC. We walked over to the Brooklyn Bridge but then had to back track to actually get onto it. The bridge is really nice. I loved the cable work and the patterns it displayed and the view of Manhattan was excellent. We got to the other side intent on getting Pizza from Grimaldi's but the line had at least an hour wait so we abandoned that part too. Since none of are big fans of New York style pizza, we weren't too disappointed though, I do plan on going there someday this week just so I can say I tried a some definitive NY style pizza.

After our pizza failure (and little did we know, ice cream failure) we hopped on the subway back to 34th street where we walked around for a bit, found a place to grab some pizza, took a break with our not so tasty pizza then proceeded back to home base for a quick break. We returned to that general area and purchased admission to the Museum of Sex. It was an interesting exhibit but a bit lackluster as the main exhibition was on pornography and that doesn't go too far back into the past. After we left the museum it started raining so we ducked into the first bar we saw, Space Cafe 212 which rocked out the mid-nineties RandB hits (Seal anyone?) and charged extraordinary amounts of money for decent drinks. After one round we left and made our way to the Compleat Strategist but it was closed so we re-directed just one block away to Jim Hanley's Universe for a bit of comic book shopping.

After the shopping we again returned home, showered and made dinner plans at Barbounia. Dinner was incredible: the Hanger steak Amy got and the lamb skewers Josh got were so delicious but my dish was not very good compared to their's. We also shared a beat salad, hummus, baba ganoush and another fish-tasting spread. All were tasty though we thought the bread was too strongly flavored to go with the spreads. We also had a fantastic wine picked by Amy. "Spicy and dry" she told me and that was what I ordered and it was both.

After we had dinner we tried to go to a place called DBA but it was crowded, the bartender was a dufus (dancing instead of telling me they were out of both drinks I tried to order) and it was too loud. We rounded the corner and the block walked into Mars Bar for two shots of Makers. I finished my at-least-3-shots glass (Took me two gulps to complete), Amy abandoned her's and we left. I would have liked to stay longer but there was more to do on Sunday morning. It was only 1am but we headed home.


View Larger Map

New York Day 4, continued

It was quite a fantastic weekend I would have to say. The down sides included: Blisters, a sold out Statue of Liberty a terrible bartender, and Pizza lines. Beyoned that everything we did was fantastic. I have never had a better trip than this one.

I met Josh and Amy at LGA on Friday night, they had purchased their tickets about six hours prior to their arrival in NYC and the plane they were on was delayed so they ended up going to LGA instead of JFK. That meant a train then a taxi. The plane laned a few minutes late but we were back at the hotel by midnight. We left the hotel and proceeded to walk South to Times Square (Note to self, Times Square is North of the office not South.) Along the way we stopped at Grey's Papaya and Josh and Amy had some delicious looking hot dogs and fries. After 30 blocks or so we realized the folly of my directions, had a few shots, turned North and walked all the way to Times square! Along the way we said hello into a guy who had been walking in parallel with us for about 30 blocks. Turns out he is from Switzerland and gave me a few suggestions for what to do when I get to Zurich! We passed the Empire State Building and gave it a wave and then in Times Square we wandered around in a daze. It is like the intersection in Shibuya, but still has its own feel -- I was still quite impressed.

It was about 3am so we decided to head back to the place but we decided that we needed a drink so tried to go to a place called Cafeteria but they had a wait and we were not that desperate for a drink. We stopped at a store and picked up a six-pack of beer and headed in. We probably talked for an hour then at 4am crashed.

Where I've been in New York.


View Larger Map

Josh in cetral park

Friday, June 27, 2008

New York Day 4

Yay! Josh and Amy are visiting me this weekend in New York! We will be sure to paint the town some interesting shade of some color!

Since they don't arrive until 11:10pm, I went out to dinner with some work folk to a steakhouse that I've already forgotten the name of. It was not good. Bad service, expensive steaks and my medium rare was definatly on the darker side of medium as I'm confident it had been sitting under a heat lamp for a while.

We then went to a Hog something-or-another for a beer. Hung out there for 45 minutes, grabbed the E train to Queens Plaza, a taxi to LGA and here I am sitting at the airport waiting anxiously for them to arrive!

Tweets for Today

  • 23:49 Pretty inpressive city. I've never stayed in so central a location in any city. #
Automatically shipped by LoudTwitter

Thursday, June 26, 2008

New York Day 3

Success! I had beer, then fries, then a gyro all in one block. Hung out with a few work people: Salim, trevor and mark among them. Salim has given me some great food suggestions, though, as trevor put it. There is only one good place for anything. I have recommendations for pizza, cuban, beer and ice cream though as Salim mentioned, "There is no good Itallian." I don't find it hard to believe -- The best Itallian food is my Mom's

Wednesday, June 25, 2008

New York Day 2

I had New York style pizza from Patsy's Pizza. Tasty, not as good as Chicago style! I also purchased flights out of and into Dublin. See my calendar for my summer travel plans. Then, buy tickets and meet me some where.

Tuesday, June 24, 2008

New York Day 1

Utter failure. I just worked.

Sunday, June 22, 2008

Agony and Irony (new alk3)

"Preview the new Alkaline Trio Album I hope you don't puke. I did.
This sounds like a mix between Eve 6 and a stick in my ear.
Love Love, Kiss Kiss sounded OK, but that was the best sounding song.

Tuesday, June 17, 2008

Tweets for Today

  • 12:59 In sf #
Automatically shipped by LoudTwitter

Monday, June 16, 2008

Tweets for Today

  • 13:18 7103602 #
Automatically shipped by LoudTwitter

Saturday, June 14, 2008

Tweets for Today

  • 22:36 Applied to 2 schools. Both said too late for fall admissions. #
  • 23:14 Distractng kevin from beer pon g . #
Automatically shipped by LoudTwitter

Friday, June 13, 2008

Tweets for Today

  • 10:45 Showing my sister twitter! #
Automatically shipped by LoudTwitter

Thursday, June 12, 2008

Tweets for Today

  • 07:35 @dknowles2 I was almost able to het android running on my n800 ... Good enough for dev stuff I'm doing with the sdk. #
  • 12:45 Its nice here in Chicago! #
Automatically shipped by LoudTwitter

Tuesday, June 10, 2008

Tweets for Today

  • 20:49 @dknowles2 the iphone is even tempting for me. How easy is it to get jailbreaked... #
  • 20:51 Mmmm... Kk cafe bacon cheeseburger... #
  • 21:23 Watching alk3 goddamnit dvd, the 2006 occult tour. The one I had tickets for but ditched. #
  • 21:50 Watching the halloween show. That one I was at! #
  • 22:43 @ohiopyle where's it at? #
  • 22:56 That's all tonight folks thanks for coming we'll see ya'll next time. #
Automatically shipped by LoudTwitter

Saturday, June 7, 2008

Tweets for Today

  • 22:20 The audiophiles are pretty good.. But damn ther're kids! #
  • 14:25 @uicukie flowbots are cool! They were one of two acts I wanted to see there. #
Automatically shipped by LoudTwitter

Friday, June 6, 2008

Tweets for Today

  • 23:08 Car bombs at 10AM pst ... Inger back me up here. #
  • 23:17 The godfather has abandoned humanity for zombies!!!!!!! #
Automatically shipped by LoudTwitter

Thursday, June 5, 2008

Tweets for Today

  • 20:28 @kevinreedy hungover graduation sounds fine to me! #
Automatically shipped by LoudTwitter

Wednesday, June 4, 2008

Tweets for Today

  • 10:14 "Mix master jamal was laying in a groove trance." From "Daemon." #
Automatically shipped by LoudTwitter

How to run the hacking part of a cyberpunk game. Part I

This was taken from a recent email exchange I had with some friends in regards to running our own cyberpunk game.

First off, to dash Josh's hopes and dreams: This is a cool idea but of all the games we play, this is going to be one of the more expensive ones. Plastic tubes, foam and duct tape are cheap compared to any projectile driving device. Second, if you're going to represent technology, then it has to be to some degree realistic, what game are you playing if your "internets" is just a hand wavy alternate dimension/plane with the minor environmental effects? I think in both cases you'll require some sort of investment in enabling technology. GPS, airsoft guns, light or wireless access points. Something that will bring out the cyber part.

Making the interwebs is a very difficult prospect. I've tried games like "uplink" and have spent much time figuring out how to make "hacking" anything other than a drab and boring experience; mostly because its a drab boring experience. If life were more like the movie Hackers we'd be much better off but there would probably be more capsized oil tankers in the seas and far more dead artists threating the world for 25 million dollars. Row ... row ... row ...

I think one thing that could make this whole game more fun is distributed involvement. Because you have communication devices at your disposal, its possible to involve people who are not physically located at the game. For example. Joe schmoe is busy one weekend and cannot be onsite. He happens to be the puzzle solver sort of person so he knows a lot of what is going on. During game play something comes up, a player calls Joe schmoe and joe schmoe looks up on wikipedia the solution to the puzzle. Winner! Or, do you not want to consider the world wide web at your disposal?

I think another source of inspiration for this sort of game are ARGs. They do a good job of blending reality with gaming and since we're already in a derivative of the cyberpunk, dealing with real world tech in game would not be a bad thing. This game is also going to need much more preparation than another rpg because writing a website is not as easy as writing in script on a parchment.

Because we're not playing a tabletop game we can look at what shadowrun /current/ edition does with Decking. Because of the way networks have firewalled themselves from the internet a lot of decking is done inside. The running team gets the decker into the corp network, then they do their thing. Or they kidnap someone with approprate access and use their accounts. They did a good job of getting a character class that was essentially a solo gig and made it in integral part of the runner team. In otherwords even your hacker characters are going to have to get in there and be involved in modules. This also means that where people are in meatspace is relevant to where they are on the "interwebs."

Now, here is my pitch and Josh is in disagreement with me here. I think that you need a software framework to be easily able to build and interact with virtual puzzles. I think you'll need multiple gps enabled smart phones (iphone, android or s60) or wireless network + PCs, a server, wireless networking to get this game off the ground. Communications play a large part in the cyberpunk world -- especially when they go out and the players who have come to rely on their decker or their off-site drones lose some control. I also think you need some evolution of my software (http://missing.googlecode.com) or something like it (hopefully there is something better than the crap I have put together) to build any sort of technological layer on top of your game. Now the problem is you need this stuff to be accessible which means, like I mentioned earlier smart phones and laptops for the game.

Tuesday, June 3, 2008

Tweets for Today

Automatically shipped by LoudTwitter

Sunday, June 1, 2008

Tweets for Today

  • 18:42 This would go better with milk... Or kaluha. So says kevin about brownies. #
Automatically shipped by LoudTwitter

Thursday, May 29, 2008

Tweets for Today

  • 20:30 Wings again... Booooo! #
  • 08:47 @SayDiana dbl shots go down so quickly. Get two! #
Automatically shipped by LoudTwitter

Monday, May 26, 2008

Statusinator

Last year after the Android SDK was released, I wrote a small app that allowed me to upload photos and update my facebook status with a native application. Here is the result. I re-implemented a subset of the official facebook API because I didn't understand it. (It wasn't "not invented here syndrome" it was more of a "I am not smart syndrome"). Anyways, I've posted the code at statusinator.googlecode.com and there is a Facebook app page as well.

Friday, May 23, 2008

Tweets for Today

  • 00:26 kevinreedy hope the hair cut is better than the castro haircut or my trailer haircut #
  • 00:28 Indiana jones got better as it went on... marian really made a good show. there wasn't too much batton passing that was inappropriate but.. #
  • 00:29 Shia labou is no indy replacement... And the fuckin monkies... Damn ewoks. #
  • 00:34 Props to jgib... Finally visiting me! #
  • 00:34 @andywarner aw, what'd you think? #
Automatically shipped by LoudTwitter

Thursday, May 22, 2008

Tweets for Today

  • 21:14 @codexile can't sleep because of too many twitters? #
Automatically shipped by LoudTwitter

Monday, May 19, 2008

Tweets for Today

  • 07:49 @obeyeater What has been added to friendfeed that made it better? My lack of friends doesn't help. #
Automatically shipped by LoudTwitter

Sunday, May 18, 2008

Tweets for Today

  • 20:17 @cisco dude not my fault we went to paxtis. I told ya. Little star is GREAT #
  • 12:03 b2b........ Whoa #
  • 14:01 Way too many naked. . . I guess this is sf #
  • 16:20 Nobody (this means you reedy, huber) is missing bay to breakers next year #
Automatically shipped by LoudTwitter

Saturday, May 17, 2008

Tweets for Today

  • 22:05 Sooo hot out. #
  • 10:51 Paxtis is not as good as little star. Not even the same class. #
  • 17:35 I am a beer pong failure #
Automatically shipped by LoudTwitter

DSCF1743


DSCF1743
Originally uploaded by codexile
February vacation to a Cabin in the woods

P3130005


P3130005
Originally uploaded by codexile
syn

Thursday, May 15, 2008

Tweets for Today

Automatically shipped by LoudTwitter

The Social Network Wars Begin In Earnest: Facebook Bans Google Friend Connect

The Social Network Wars Begin In Earnest: Facebook Bans Google Friend Connect

I *think* Magoo and I can still be friends.

100 Must-Read Books: The Essential Man’s Library | The Art of Manliness

100 Must-Read Books: The Essential Man’s Library | The Art of Manliness

The books I've read.

  • The Great Gatsby by F. Scott Fitzgerald
  • Slaughterhouse-Five by Kurt Vonnegut
  • 1984 by George Orwell
  • The Catcher in the Rye by J.D. Salinger
  • The Grapes of Wrath by John Steinbeck
  • Brave New World by Aldous Huxley
  • The Iliad and Odyssey of Homer
  • Catch-22 by Joseph Heller
  • Don Quixote by Miguel de Cervantes Saavedra
  • The Hobbit by JRR Tolkien
  • Adventures of Huckleberry Finn by Mark Twain
  • Cyrano de Bergerac by Edmond Rostand
  • Animal Farm by George Orwell
  • Hamlet by Shakespeare
  • On the Road by Jack Kerouac
  • To Kill a Mockingbird by Harper Lee

That said, I thought this list was incomplete and felt like it was a rote listing of books-i-read-in-high-school and boy scout books. I guess since this is on "The art of Manliness" website I think it might be biased a bit towards those boyscout books. I laughed when I ready the quote from the bible, it is the same quote used by Cereal Killer in Hackers.

I think I'll read these next or something.

  • The Count of Monte Cristo (I already own this, but its so long...)
  • The Long Goodbye
  • The Maltese Falcon

And, the full list of books I remember reading

Tuesday, May 13, 2008

Tweets for Today

  • 18:15 Mmmmmm...... #
  • 18:39 I could go for some white castle right now. #
Automatically shipped by LoudTwitter

ADC Round 1 Winners! | Android Phone Fans

ADC Round 1 Winners! | Android Phone Fans: "City Slikkers - a Pervasive Game (alternatively Location Based Game) which takes place in the real-existing city. It is designed to connect a large number of players through-out the world and change the way the surroundings are seen. The central idea behind the concept is to give people the opportunity to symbolically interfere with the everyday urban environment and come into contact with previously unknown people. By PoroCity Media and Virtual Logic Systems."

I'm very excited about this Android contest winner. It'll be exciting to someone else's take on my idea for "Missing."

I think I am most interested in their statement that the game will "affect normal life as the everyday city is no longer the same due to the player's experience." I didn't take into account that masses playing this game will end up having an impact on the non players. Bringing a new landscape into a city, one that isn't people getting from home to work or from point A to point B has great potential to make each city this takes place in a bit more personal. Sure many people will have their own thing to do and many others wouldn't be interested in this fantasy but some people will latch on and every new player will make the game more persvasive.

I was not very keen on the description that "As the playing community will always be a minority they hereby form some kind of elitist, secret society which is based on knowledge, but not financial or political power." That attitude could definitely sour the experience, bringing a futher gap between gamers and the general public. To really make this work there has to be varying levels of involvement and complexity. As a weak game player I don't want the game to run to far above my head which this seems to imply.