Categories
Programming

Friendcare, satisfying a curiosity

Quite often I find services I’m using inadequate. Something is missing, or not working the way I hope, I wish it could be changed. In a fraction of the cases it can actually be changed, and an even smaller fraction I go and change it myself.

This time it was bugging me that while I am always aware if I have new contact established on Facebook (or colloquially “friended someone”), but there’s just no way to know if someone cut ties (“defriended”) me. In some ways that knowledge is just as important, since the first means I succeeded in being interesting to another person in some way, the second means I was actually annoyance – not just being ignored and never talked to but people took the effort to never hear about me again. Recently quite a few people did that to me, or at least it’s only now that I try to find them for this or that but I can’t. I never want to be caught off-guard like this again, so I made Friendcare.

Friendcare interfacing

It was mostly an exercise in web app building, since if it was only for me, I could have just set up a script on my server that monitors things. It’s more fun as well. First I started it a long time ago, tried to work on it and rewrote from scratch a couple of times until getting here.

What does it do?

In this one the site just gets the user’s friendlist (a list of IDs) from Facebook and compares it with the last known friendlist. If there are new IDs, they are considered friend gains, if there are missing ones, those are friend losses.

Actually it got pretty complicated logic (for my usual thinking) inside because of the asynchronous management of good NodeJS apps, had to think a lot about what information is available at what step and what time of the usage. It also didn’t help that I haven’t really planed the user experience (UX) first, just started to code. Some of the things are surely pretty terribly done because of premature optimization and scaling I was doing while only havng a single user of the site. All in all, it’s an absolutely horrendous mess in the inside that still seems to implement a suitably close approximation of what I wanted. Surly will need some refractoring sooner rather than later.

The parts

It’s amazing how many different parts I need to use to make one complete site work, a total web-tech-soup. Everything is in a library or in an external service. It’s good and bad – good because other people did the heavy lifting for me already, bad because every one of them needs a non-trivial effort to learn and all of them different. Nevertheless, trying to keep things minimal. At the moment it’s NodeJS on Heroku, with MongoDB and using Heroku Scheduler to trigger the update service. The other modules and parts are:

Everyauth

Without Everyauth nothing would work, it handles the Facebook authentication on the backend. Also, it gave me ideas how the site can be extended to multiple services / multiple social networks.

Fbgraph

There are so many interfaces to talk to Facebook, and the heroku-nodejs app I started off from uses one of them as well. That just seems to be too specialized for an example app, not in functionality but in implementation. Instead I found myself another library, fbgraph, and so far so good. If I really wanted to, I could even easier interface just the Graph API, but no need to do that at the moment.

Mongoose

I choose Mongoose/MongoDB to store the associated data, well, basically because MongoLab had the largest free database offering of all the databases I have checked. So far so good. I like the schemaless database, though already run into problems when I was updating wrong fields in the dataset I was surprised that the results didn’t show up at the right place. I guess that’s a danger I can live with at the moment. Will have to learn more about it, how to back things up, how to maintain it well, and about mongoose and it’s schemas.

Underscore

The core functionality is basically taking the difference of two sets, and in general there is quite a bit of set manipulation, so Underscore works very well, I used for a couple of other parts as well (reduce, groupBy), and it works well. The whole thing feels like it should be part of the base library.

Twitter Bootstrap

While risking that I’ll look exactly the same as many others, Bootstrap does give some good-looking results with moderate effort. Will have to do some tweaking because I know so little about making good UIs, but it’s a start.

EJS

Used EJS for templating, and it’s great. Fast, flexible, and it’s not too bad that I have to fill in most of the HTML manually. I will know more about the structure of the client facing  side of the page more than I would otherwise.

Lessons learned

There are things that went well and not so well.

  • Maybe the most important: Facebook is unreliable. Sometimes I got missing people in the list that appear in the next update again. This happened when using Graph API, will have to see if FQL is any better. From my experience: not, it just has different problems.
  • For a while I started to write in Coffeescript, but then I just spent too much time trying to figure out how to get the right things, so went back to Javascript, at least until I learn that and can move up again to that higher level.
  • From the app’s point of view, some simplification needed. Too many middleware and helpers, this I quite often not sure about what is the state of my data, what variables were available and what are not.
  • Forums are not always helpful, quite often people have really dumb answers to questions, so have to figure things out myself.
  • Too many successful libraries mean that the library-soup will inevitably cause problems, and people start writing new libraries that connect and unify the old ones: mongoose & backbone, mongodb & everyauth, so much magic (ie. behind the scenes stuff) happens.
  • I still like to make logos and facicons, though I’m sure they are terrible, it makes good playtime in Inkscape and Gimp. Might have to change the colours, it does remind me of a strange toilet logo…
Friendcare logo

Aftermath

In the end, I’m solving a very narrow problem at the moment, a problem that so rarely arises, that I don’t even know if it will happen again. But if it does happen, without this I wouldn’t know about it, so still worth it.

Might extend it later to count Twitter followers, Google+ circles, Github watch/fork, whatnot… But that’s later when I see how does this work, I care much less about those than my “friends” because of the symmetricity of it .

The good thing is that currently it works well enough that I kinda got this off my chest and can back to making a FUSE module for Ge.tt, a group based location sharing mobile app, an app to connect my Goodreads to-read list and bookstore databases,  adding Open Graph and Rich Objects to Octopress, getting out an update for WatchDoc, or even check out the games I just got from HumbleBundle. But will come back to this, will have to make it better (it’s a compulsion).

Finally, if you the site, let me know your suggestions, I’m eager to learn. The source is up on Github.

Categories
Programming Taiwan

Hack+Taiwan

The World Creativity and Innovation week (WCIW) goes on every year April 15-21 (set to coincide with Leonardo da Vinci’s birthday). This year we were making some events in Taiwan as well, first about creativity: Create @ Public, and another one a week later for innovation: Hack+Taiwan, a hackathon.

Of the two events, this one was the trickier to do. For Create@Public, all I had to do is pack a lot of stationery and start making stuff myself. For a hackathon, there’s much more preparation to do. Fortunately, I had some great mentors to get things going, James of Startup Digest Taipei and Volker from Yushan Ventures. They have a lot of experience pulling off great events, and I was glad to hear their advice. I was surprised that in less than 2 weeks something like this could be put together, even under not totally favorable circumstances.

First had to find a place to host it, and preferably with zero budget. Looking at who do I know, ended up at appWorks, a startup accelerator, whose founder, Jamie is indeed a hacker at heart, so wasn’t actually that bad to convince him to give us some space on a weekend day. Even got one of their teams working there, Fandora, to help us.

That’s a good first step, now have to get some people to participate. I set up the Hack+Taiwan blog (on Octopress, just trying something new, that was an “interesting” experience as well), the event, a sign up sheet and started to spread the word. It all went well, until one week before the event it turned out that the Open Source Developers’ Conference has a hackathon pretty much the same day & time as I planned. That freaked me out a little, and after asking around, I got many different advice: cancel so not to compete with them, cancel to take a rest, and give it my best try nonetheless. Of course the craziest option won, so started to spread the word even more, trying to invite mentors, getting catering, figuring out how the day should work and so on.

Let’s get to it

Since people don’t like to fill out sign up sheets, and Facebook event “join” is so easy, I had absolutely no idea how many people will come. It was just winging it, I knew I’ll be there and a couple of people who were helping me, but that’s all so far.

Hack+Taiwan logo posted on the day
Hack+Taiwan logo

I ordered breakfast for 30 (from Magic Bagels), and let’s see what happens. Around 9am, the advertised start time, people started to come, first a couple, then some more, and around 10 o’clock there were almost a dozen people. That’s not bad at all, even considering that a third of that was mentors and other organizers, but they took part just the same. Since most people didn’t bring any ideas (some even didn’t bring a laptop, now that I don’t understand), had to get them to come up with some stuff on the spot. It took a little pushing, some ideas were so specific and pretty much the same they are working on their normal time, but fortunately there were some interesting ones. In about half an hour we had 3 teams working on three completely different. In the afternoon there were even more people who dropped by for some time, and got another project working.

Arduino hacking
Making an Arduino piano

The projects we had:

  • Mobile reminder app + website
  • Android programming (the team had to leave before demo time)
  • Visualization of the Taiwanese power grid for monitoring and supervision
  • Arduino piano
These are all very different, and fortunately all was pushing the participants a little bit. The first team was mostly mentors, or from different startups working at appWorks, and they haven’t worked together before. It’s a good way to improve collaboration. The second team wanted to try Android out, maybe I should have talked to them more (having done one app at my time), otherwise they looked pretty lost for most of the time, hope they will carry on. The third team I gave some advice, but not sure if that actually took them on a sidetrack, it should be a very useful project if done, and has a lot of potential apparently for the local utilities companies. The last one, a one person team, was making some really cool stuff in a very short time and even with broken and sparse equipment. Not sure if she was really challenged by the task, it looked quite effortless.

At 5:30pm we had a demo time, everyone showing off what they made, people switched to speaking Chinese since I was the only foreigner around, so I got to train a little better next time to be able to follow tings. I could see their demos, though, and it’s so impressive how far people got in pretty much 6 and half hours….

Here’s the photo album of what went down. I’ve also taken a timelapse image series of the event, been planning to make a video of it….and then successfully overwritten all the photos with a bad command of ffmpeg. That’s my way.

Lessons learned

  • Coming up with ideas is hard
  • It is still possible to come up with ideas. Look for issues that kept bugging you for a while, and do something about those
  • Everyone gets out different thing from these events
  • Don’t force things, everything will work out anyway
  • Don’t have to overplan, before one establishes their name in the community as good organizer, it is usually more likely to overestimate how many people will come to an event
  • Everyone loves bagels and cake (okay, that’s not new lesson)
  • Unless there are enough people, don’t have to focus the topic of a hackathon, see whatever people come up with. More difficult brainstorming, but better chances of success
  • Don’t drink too much coffee – I couldn’t get much done from the shakes

I really liked the feedback I had from the participants, and also from other people: there were some who were just working in the background on their own stuff, and when we finished they came and asked what was it, because they’d like to take part next time. That’s the spirit! And we might just do that, for example at the end of the summer. In the meantime, I will try to focus on earning back my own hacker badge.

Categories
Taiwan

Create @ Public

I can hardly believe that it is only about 3 weeks ago, that I first heard about the World Creativity and Innovation Week (WCIW). My friend, Dao Wen (creator and maintainer of the Playtivity 玩 . 創意 blog, where I’m an occasional contributor as well) was telling me about it. Every year, April 15-21, celebrate creativity, timed to coincide with Leonardo di ser Piero da Vinci‘s birthday. She was telling me that even if there’s a short time left (less than 2 weeks at that time) and that she cannot be in Taiwan this time, would like to see if I can help her to set up some activities for that week. Anything’s good, she said. Well, I like creative things so I’m a sucker for this kind of challenges. Quicker than you can say “Leonardo” I was hooked, even if I had no idea what to do, who to do it with, or generally anything.

Of course, these days every project starts with setting up a Facebook page, maybe even a G+ Page, and only then start thinking what to do. Talking to a few people, brainstorming, and generally digging up ideas that I wanted to do for a long time, came up with two ideas: one for creativity and one for innovation.

The idea

Reading about what other people did around the world, one pattern came up: everyone is creative, just not everyone knows it. Some people have to be pushed a little, or more optimistically, have to be given an opportunity when they can try something without the risk of getting hurt trying. I’m not saying “without risk of failure”, because it’s always there, but just because something doesn’t work out, it is usually not bad – and that can be part of the message.

Thinking more about the most creative people I know, I remembered Hunter, from whom I always learn new things how to just let it go and make new stuff. Anything goes. He and another friend of mine, Reuben are running Swings Tampa Bay, where they make and hang up swings everywhere around town and engage the people. So I thought, why couldn’t we combine these: go to public and make stuff! Here you go, Create@Public.

Our logo hanging on the tree
Create @ Public logo

The event

Basically one fine Sunday Morning of 2012 April 15, headed out to a park downtown, with a big bag of stationery: paper, crayons, pens, pencils, glue, paperclip, patterned sheets, origami instructions, chalks, other stuff I don’t remember. It was a big bag. Found a nice place, sat down and started to do everything come to our mind.

Cobble stone Scrabble, making a model of the National Taiwan Museum just next to us, drawings, idea wall, collaborative story writing, chatting with passers by, and all kinds of other stuff…. It was such a good feeling for about 5 hours I could totally turn off and try new stuff for the sake of it. I could actually head out there and do this more often than once a year, and maybe will do that…

Group of people in the park, making stuff
People at the event, in the middle of it

Here’s our photo album where you can see all the things that happened.

Also, for the first time, here’s our collaborative story: everyone writes one sentence, then passes it on to another person, and so on. All original with misspelling and that.

The bear was running in the forest. It’s running from a hunter chasing after it. The hunter is called TinYu who likes to eat bear. TinYu is a bad girl who likes to speak bad words, so the only thing she can do is hunting. Suddenly she stopped because she saw a lovely rabbit on the grass, which happens to be another of her favorite food. Same time, Minho (the boy) also is looking for chance to hunt that rabbit. As they both reaching the rabbit, they noticed each other and look into eyes. The boy is not a very handsome one, but exactly TinYu’s type…. Big kiss. When they open their eyes, they both were actually kissing the cheek of the bear, who is smiling now. 1 year pass, they decide to get marry in the forest. The witness is the bear. and Tin-Yu given birth to the child, the child looks like a bear – a cute Teddy bear. The most scary part is about to come…. she relize that it was dream after wake up. And the most horrible part is that: how come “she” dreams about “herself” being a girl named TingYu…? Actually, TingYu is a fictitious girl who is imagined by a sad, lonely and desolate boy named “Ray” who is currently dating a boy called Cliff… So this “bear dream” is it kinda of a self-consciousness that, Ray he wants to be a girl in the real life, so his underground relationship with Cliff can be accepted by the public, and they can get married, have a lovely baby afterwards, happily life afterwards. THE END#

Probably you can guess the names of a few of the people there that day… :)

Chatting with others also had interesting consequence. There was this guy, who came by and started to tell us how the Taiwanese language and English are quite similar, so many expressions have the same pronunciation. Actually, he was twisting things around quite a bit, but apparently it is very funny if you understand Taiwanese. Which I barely do, but it was good enough. One of the guys there took a video of it, and put it up on Youtube:

Apparently it got quite popular on the student message boards, and in a day or two it was up to 20.000 views, and several friends were messaging me, whether it is me in it. Not bad, feature in a viral video – achievement unlocked! I also know the Taiwanese TV channels – they quite often just go on the message boards, pick out the latest popular videos, and present those as news. Didn’t have to wait for long:

Lessons learned

All in all, it was a fun event, and I’m really glad to have done it. Some things I’ve learned from this:

  • Activities which don’t need much preparation can still be very rewarding
  • Many people just freeze when presented with the opportunity of “make something, anything”, they don’t know how to start
  • On the other hand, once you do something yourself, those who are interested and just been watching, will take part and contribute cool things
  • It’s hard to engage the people in public
  • It’s easy to try to engage the people in public
  • Have to find some better way to spread the word than Facebook (this comes up every time, and I don’t have a solution), it is just too limited and too much noise/too little signal
  • I have to check my spelling, because it seems very bad
  • Just a mere couple of good people can turn an event from so-so to great

What’s next

Let’s see if we can do it another time, maybe another place. Also, there was the other event for the week, Hack+Taiwan, just being written up as well.

Categories
Startups Taiwan

No dream too big, or Startup Weekend Taipei 2

Despite that I haven’t started myself any project yet, I’m a big fan of startup events. Startupbus, Entrepreneurship Challenge, Startup Weekend Taipei, they were all really amazing. Because of this, normally I wouldn’t have thought twice about signing up for Startup Weekend 2. Too bad, that it wasn’t normal situation, last weekend it was in the same time as Ignite Taipei #4, which I was co-organizing (and speaking in Chinese, oh the horror!), and wasn’t sure if I can do the two things in the same time. My friend and team member from last time, Pandey, was pushing me quite a bit, and couldn’t show fear or uncertainty – signed up anyway. Thought I will figure out what to do once we get there. As with many things in life, every issue worked out, probably even better than I could have planned, and I had a great (no matter how busy) weekend.

Beginning

It started on Friday, we all been checked in to Taipei 101, through tight security, changing elevators and lots of access cards to the 77th floor to Google Taiwan. It’s a nice place, and a view to kill for, though I wonder if I could work there for a long time.

As at other such events, it started with snacks, exchanging of business cards, trying to gauge each other, who would be a good team mate, what to expect. There were some presentations, introduction, t-shirts and badges of course.

StartupWeekend Taipei 2 badge
Badge for StartupWeekend

After about 2 hours the time came for pitching. From the 60 participants I think at least 20, maybe even more were sharing their ideas. The two language (English and Chinese) made it quite rough to sometimes understand what’s going on, though the 30/90 second time limit for single/dual language pitches is pretty tight as well.

I usually decide by following my intuition, and for the first 10 or so, I haven’t heard anything that ticked my interest really. Then there was one guy who was pitching a subscription based wine discovery service (something like sending people each month some new selection, with a guide, and help them understand those better while discovering new tastes). I thought for a moment of Cerealize (that took home 1st place at this year’s StartupBus), Candy Japan (that just looks such a simple and brilliant idea, and seems to work extremely well), ShoeDazzle (subscription clothes)…… (Semi)-custom food and such service sounds just such a brilliant idea, and wine is very well suited for that. Also, recently I had more exposure to wine and wine tasting, just wanted to use this myself and would know plenty of other people who would too.

I got to say, I pretty much stopped listening to all the other pitches, already been planning this, because I felt this would so easily win the competition – and turning profit by Sunday. Went and talked to the guy, and at the idea voting stage (where people could select the most interesting pitches, so the 11 most voted one will be allowed to build a team) I was canvasing for that anyway. Should have had some feeling, when the idea guy was saying that “good that you are interested, but it’s not sure you can be on the team” – sure, why not, no problem.

In the end the idea was selected, team started to build and we had 7 people altogether. I was really psyched. Since due to Taipei 101 regulations we had to get out of the building in 1 hour, got to work right away. Got the team members emails together, set up organization doc, the others were working on the name (Advintage), once they had one they liked the Facebook page was already set up, sent email to someone I know to know lots of wine-tasting people so we could get good info about what are the good ones to choose and maybe help to write the promotion material. Seen a couple of mentors idling around, and went to talk to them a little before they they kicked us out – running the idea with them, get some feedback, get pretty much a first customer, very interesting info and some thoughts I haven’t considered before.

5 minutes before we had to get out the building, I got back to the team and started to update the idea guy:

“Hey, talked to the mentors and just a quick summary, they said (this and that)”.

“Ah, wait. Wait. Greg, we don’t have much synergy here.”

“What are you talking about?”

“While everyone was working on the things, you didn’t help just went and talked to other people before asking us that we should do that.”

“Come on, we have very short time, we had to talk to them to get feedback. You don’t need me to choose a name ….”

“I’m sorry. We don’t have much synergy here. I don’t want you on the team.”

“Okay, I understand.”

So this is the story of me being fired for the first time. It’s interesting feeling, quite illuminating as well, I haven’t felt a lot of feelings like that before. So 5 minutes after I talked to the mentors, run into them again, and when they told me a couple of things, my only answer could be – sorry, I’m not on that team anymore. “What? They fired you?” “What, they fired him, why?” “Because he did something without asking permission.” “You are probably better off.”

Thus instead of going home to work on the project more, I carried on with the preparation for Ignite the next day. Oh, I needed that.

Drimmit

In the evening I was thinking what other team to join – since I basically didn’t hear anyone else’s pitch, but there was Pandey and his group where I knew a couple of them, maybe will join that team if they want me. For a short while I was thinking of getting the teams try to woo me, but that was just silly. I realized that I was doing the “I’m here to win not to make friends” routine that I previously laughed a lot at, so instead just followed my heart and went with the team where I wanted to know the people more.

And how well that was – I learned a lot of interesting things with them that I wouldn’t have otherwise. So here it is, Drimmit:

The Drimmit team at StartupWeekend Taipei 2
Meet the Drimmit team

It’s more or less a site to collaboratively help you achieve your dreams, give advice to each other, and find and manage milestones along the way to give you a clearer path and higher probablity of succes.

It was weird not to be the tech lead, but good to let some things go. Instead of that I was trying to take care of the front-end, while half the team was working on the model and product pitch for the finals.

So, some lessons learned along the way:

  • We spent a lot of time trying to figure out the model, everything had some problem, nothing was completely logical. Pretty much more than a day went buy, where we had ideas how things would look, what’s the flow, but then had to scrap that. One cannot really develop like that.
  • I overestimated my front-end skills, though it’s usually quite tough to turn a Photoshop mock-up into a working site. Also had to get used to the terminology that when someone asked: “Do we have this page” and the team replied “It’s done!” it meant there’s a picture of it, not at all that it works.
  • For a while I was annoyed by this, but it also gave the spark: for the pitch we don’t have to code down everything, just make a show-and-click: things look like they work, but the functionality doesn’t have to be created. That means we could just scrap (or rather: abandon) the work so far (that’s about Sunday noon, for 5pm start of the finals) and concentrate on looking good. This gave us a demo better than others
  • Learned about coding some more, though I haven’t had to do much this time. One lesson is to practice a lot beforehand. Another is to prepare some tools to make development easier. And of course: do whatever it takes.
  • Because I didn’t do much and I was too cocky in the beginning, I hereby revoke my “hacker” badge until the next time I build something. No problem, I have just the project on my mind I want to do next.
  • One of the strength I seem to have is asking questions, and that way at least I could help. It can be pretty annoying, to also very useful, I could see the gaps in thinking, asking the details, figuring out where we are not good yet. Does that mean that I would be a better mentor or consultant than creator?
  • It’s fun to work with people I know and like, the team is very very important. Also important not to take anything personally, too much stress of the 54 hours drives people to the edge.
  • If I were to start a team outside of such events, I would probably do it with 2-3 people instead of 6-7, it’s easier to get on the same page. On the other hand, much fewer ideas as well, so it might not be a good call.
  • Would have to think how to replicate the pressure of a Startup Weekend outside of it. Amazing how much one can get done when he/she has to.

The guys were practicing a lot our pitch and here’s the result:

Also, there’s a rehearsal video, also good to see the progress (and the tension) people had before we went in.

The results of the finals

Advintage won – which is pretty much making me happy, because I predicted that. It helps that they had about 50x the revenue over the weekend (30 subscriptions at 2000NT) than any other team. They have won on the product, clearly. On the other hand, it also made me happy that I realized I still wouldn’t like to work for the guy. “Work for”, that was my impression, he wanted employees, instead of co-founders out of this weekend. Fair enough.

On the other hand, Drimmit came 2nd. We clearly won on presentation, the energy, the preparation, the polish (as much as you can get in a day) worked. We had the team to pull it off. I was very proud of them, and glad to help no matter how much. Also, the presentation worked since many other people keep asking whether we’ll continue working on it, because they’d like to use such a service.

It was a great time and let’s see where does it take us later. I was wrong enough times and right enough time this weekend to learn plenty.

Future

Among the most inspiring picture, though, came from another team, posting (literally) their first revenue, regardless of the value:

Another team posting 100TWD revenue at StartupWeekend Taipei
Another team posting their revenue (100TWD = 3.4USD = 2.1GBP)

Also, I’m thinking that next time I would try to pitch as well, been developing enough, now it’s time to see if I could sell my ideas to others, whether I can get them excited about something. You know, it’s not the ideator but the first follower that counts.

The rest of the pictures are in this album, click to see, CC-BY to reuse if liked.

 

Categories
Life Programming

StartupBus rolling again

If there was a place I’d like to be now…. then it would probably be actually 11 different places. It’s that part of the year, that crazy and incredible people get on a some buses, travel across the US to the SXSW festival, while building companies. Altogether dozens of them. While riding freakin’ buses…. I know, I can still hardly get over my own experience last year, though I don’t want to get over it, I want to cultivate, nurture and expand that feeling. Pretty much the whole last year was about that expansion, and it just continues to motivate me.

Fortunately I still keep in touch with some of the people from there, and when they are on the way right now as I write this, I cannot help but show my affiliations.

Wearing my StartupBus shirt for work today
Silicon Valley Bus 2011 represent

I’m really glad that I could contribute something as well. One of the core features of their site is the ability to see where everyone is right now. Cheer all the way as they fight through several states towards their destination, how they converge onto Austin, Texas in the end. For this to work, there has to be some way to track those buses. And as it is the tradition – and inevitable if you have a pile of the best hackers together – everything is pretty much custom built. The site, the virtual stock market game, the map – and the tracking app as well. This last thing is made by me, after a few evenings back last year while hanging out in San Francisco before getting on bus. I can’t believe that I even had time for sight-seeing while doing this…. Anyway, it worked like a charm on 6 buses, and I was quite satisfied. Pretty surprised, but also satisfied. It was great, especially because if something, then I didn’t want to let down this guy – one the craziest and most kick-ass person I had a chance to know.

Then again in the winter there was StartupBus Europe, which worked out fine, beautiful trace on the map from the Netherlands, through Scandinavia, then back to the continent all the way to Paris.

For this year’s event, I wanted to change it a bit around, make it more independent from me – and a bit less hackish. I gave up on improving the looks, but the functionality should be better.

Too bad that this time I wasn’t there in SF, working together with the team, inspiring and motivating each other. This made everything much slower for me, and much more “normal”, in the bad sense of the word. In the end I had a new version that worked, and was kinda okay, but wasn’t as well tested as I hoped to.

BusDroid interface
I wish there was a Taipei bus – not sure how to cross the Pacific, though

Of course bits are rotting when they are not developed, and one year in Android world is more than I’ve expected. Too bad that many of the problems came to light when the buses were about to head off. Turns out that aiming for the oldest version of Android to cover all different versions is not necessarily the right thing to do. I don’t need anything fancy, but the APIs changed a bit, some things got depreciated, and looks like some phones can’t run my very simple app. After all this craziness dies down, will have to investigate and figure out what went wrong.

In the meantime, fortunately 10 out of 11 traces are on the map, there’s only Las Vegas missing last time I’ve checked, and not sure what happened to them. I don’t like unsolved mysteries, especially when it’s my job to get them solved.

Screenshot of live map with buses
Startup Bus buses 2012 on their way

Let’s see if I can get a seat next year again. And also see if that year in the meantime is long enough to figure out some better solution. Will likely need to do things very differently as I was, will likely have to rewrite the whole app onto new foundations, and make it work on iPhones or iPads (do those actually have GPS in them? I actually don’t have any iProducts…), and more reliably work in general. Feels a little sucky, that I’ve let some people down that things didn’t work better. That’s what startups’ life is a little bit as well.

Now let’s pivot, and back to doing awesome.