Thursday, May 2, 2013

RailsConf 2013



I just wrapped up my first RailsConf in Portland. Overall, it was a great experience with a lot of learnings, mingling with whole bunch of people and getting good beers every night.
here are my notes on the lectures that were worth sharing. the orders are by my best interests.

there are quite few good talks about APIs and gave me few useful tips that we could add to our API.
- How to Write Documentation for People That Don't Read Kevin Burke
tips about writing good documentations for both internally and publicly. Kevin is from Twilio and an engineer of their API. There are good examples from various API docs that we can take good practices (eg: error reference page, breaking up the contents by verbs..) Highly recommended to check the note and the slides.

- "Designing great APIs: Learning from Jony Ive, Orwell, and the Kano" via @jondahl
another API engineer from Twilio. API is an interface. looking from an API user perspective, he talked about how API can delight users. some suggestions are API wrapper, request logs, sandbox API, API builder (Zencoder API Builder). None of them are necessities, but having things like those will differentiate from other APIs and will delight API users. 

- Using Elastic Search with rails app via Brian Gugliemetti
Search is hard, how can we make our search less suck? this is worth checking.

- How Shopify Scales Rails via @JohnDuff
Moved away from DelayedJob to Resque, use of Redis, MySQL tuning, caching gems etc. (presentation video link attached in the end of the note)

- Rails vs. The Client

- Dissecting Ruby with Ruby - Richard Schneeman
described few tipis on how to debug through rails code and potentially become a bug reporter to bug fixer!

- Building Extractable Libraries in Rails via Patrick Robertson

- Testing HTTP APIs in Ruby

The word of the conference was from James Duncan Davidson's keynote.
"Create more value than you capture" via Tim O'Reilly. 
He emphasized the importance of contributing to OpenSource communities and help make a world better place. 

The whole conference was surrounded by very positive atmosphere and felt a lot of open source community love, which was different from Goolge I/O that I attended last year.

Last not least, witnessing Aaron merging one of our teammates' pull requests to rails/rails was one of the most memorable moments of this week.

Time to go enjoy a last night with Portland beer.

Saturday, April 27, 2013

RailsConf 2013 Pre day

I am so stoked to attend this year's RailsConf in Portland. This is my very first RailsConf and the second time attending this type of big developer conferences, since Google I/O last year.

Here is my tentative plan for all talks I am thinking of attending: yup, there are so many talks! Four days of all good talks, mingling and learning all kinds of stuff. Can't be more exciting than this.

Mon 4/29
11:30: How Shopify Scales Rails John Duff
12:20pm: Nobody will Train You but You Zach Briggs
2:00pm: Testing HTTP APIs in Ruby Shai Rosenfeld
2:50pm: Front-end Testing for Skeptics Luke Francl
4:00pm: Real-Time Rails Brian Cardarella
4:50pm: Building Extractable Libraries in Rails Patrick Robertson

Tue 4/30
11:30am: Rails Vs. The Client Side Noel Rappin
12:20pm: Cache = Cash! Stefan Wintermeyer
2:00pm: Introducing Brainstem, your companion for rich Rails APIs Andrew Cantino
2:50pm: Designing great APIs: Learning from Jony Ive, Orwell, and the Kano Jon Dahl
4:00pm: Data Storage: NoSQL Toasters and a Cloud of Kitchen Sinks Casey Rosenthal
4:50pm: How to Write Documentation for People That Don't Read Kevin Burke

Wed 5/01
11:30am: Using Elasticsearch with Rails Apps Brian Gugliemetti
12:20pm: Creating Mountable Engines Patrick Peak
2:00pm: Zero-downtime payment platforms Prem Sichanugrist and Ryan Twomey
2:50pm: Keeping the lights on: Application monitoring with Sensu and BatsD Aaron Pfeifer

Thurs 5/02
10:30am: Datomic, from Ruby, from Rails Yoko Harada
11:20am: TDDing iOS Apps for fun and profit with RubyMotion Brian Sam-Bodden

 Portland, I hope to have few spare time to browse around the city and get good few beers.

The City We Live in

Living in downtown Vancouver for close to two years now, I have yet to know a single neighbour's first name nor have participated in a local community event. I am not alone in this category. Vancouver Foundation published a report on Vancouver's local engagement and connections within a community. This report is trying to show how residents experience life in metro Vancouver.

Metro Vancouver can be a hard place to make friends. One-third of the people we surveyed say it is difficult to make new friends here. And one in four say they are alone more often than they would like to be. In both cases, people who experience this also report poorer health, lower trust and a hardening of attitudes toward other community members. 
That's not surprising; we talk about this, and we experience it. I am not sure why this is the case though, particularly in this city. What do we do differently from other cities that makes it hard to make new friends? Or else, how do they make new friends in different cities?
While most of us know the names of at least two of our neighbours, the connections typically stop there. Most of us do not do simple favours for our neighbours (like taking care of their mail when they are away) and fewer have visited a neighbour’s home or invited a neighbour over. The most often-cited reason for not knowing neighbours is that people seldom see each other. However, another significant reason seems to be indifference: we prefer to keep to ourselves, or have little interest in getting to know our neighbours. One-third of the people we surveyed do not know if their neighbours trust each other. 

There are limits to how people see diversity as an opportunity to forge meaningful
connections. Over one-third of us have no close friends outside our own ethnic group. 
We found that while people embrace diversity and value what it brings to our community, most think that people prefer to be with others from the same ethnic group as their own.
Another interesting finding is that "people think they have little to offer" when it comes to why they don't participate in the many neighbourhood or community activities. I think this is partly because there are  too few opportunities that they can participate easily and do something 'simple' for a community (or don't know if there is such a community event happening). Every one of us has something to offer and can contribute in our communities, but these are not realized and often have a high bar of making the first step. How can we lower the bar of stepping into community activities and create a chance to connect with neighbours?

How hard it is to get together with your neighbours and make your neighbour street awesome? What if we share a garden with next doors, plant some veggies and have a dinner afterwords? Could we invite my neighbours for a weekend house party?

City won't organize these stuff; we have to make a space for it. See what we can do for this.
OpenVancouver, we will see how we can solve this problem, and make our city awesome.


Sunday, December 2, 2012

OpenVancouver at #RHoKyvr


I was at Ramdom Hack of Kindness organized via PeaceGeeks at GrowLabs this weekend and we made an online platform called OpenVancouver.

The online platform, "Open Vancouver," empowers Vancouverites to shape the future of their own neighbourhoods by allowing them to collectively add suggestions, pictures and comments to an online interactive map. 
Say you are walking down a street and you find a park bench with a broken roof, or if you want to see your neighbourhoods with full of cherry blossoms, for example, you can express those wishes on this platform and Vancouverties can support your ideas, comment on it and have dialogues.

Our current situations of the city are not even close to a full potential of what our city could be and everyone has something to contribute to make our city be a better place, making Vancouver an awesome city to live; not just "livable".

There are similar projects going on in US, like Change By Us; we are particularly inspired by Candy Chang's amazing works in city.

I believe that having an open platform for citizens to interact with their neighbourhoods and cities will bring up awareness of our surroundings and help city planning to align with what citizens actually hope to see.

You can find our problem statement here:
http://www.rhok.org/problems/transformation-projects-openvancouver-rhok-vancouver
and we are open source project:
https://github.com/rafitool/openvancouver

I had super fun time with our team and looking forward to working on this; we are hoping to launch this app by next spring 2013.

oh and we won the first prize at #RHoKyvr!
Like us on Facebook and follow us on Twitter @OpenVancouver for future updates on this project!


Sunday, November 4, 2012

Why I am attending RHoK



I am attending Random Hack of Kindness (RHoK) for few reasons. Primary I am there to contribute whatever I can to help solve technological challenges. I am a software engineer and I am fortunate to be pursuing software development as my profession. At the same time, I am aware that this professional skills could be used to contribute in many of social issues and be a part of changes that I support for. RHoK provides people like me a place to participate in global changes and give us opportunities to make impact to our society using our professional skills. I am also there to connect people with similar interests; people who would like to contribute to greater causes by their professional skills; people who believe technology can make a significant impact to help solve social challenges. I am also very curious what PeaceGeeks are doing and would like be a part of their programs. RHoK is a great place to get started on and be a part of their team.

I am very looking forward to attending RHoK on Dec 2nd with PeaceGeeks and meeting up with great people!

If you have not signed up for RHoK yet, please do!
http://peacegeeks.org/RHoK

Saturday, October 27, 2012

Initial UX with Mint.com


Just wanted to drop a note that I really liked the initial UX of Mint.com. I just signed up mint last night and their seamless introduction to their features to new users is really well designed. Very first time you login, it shows you a little pop up message next to each key feature, giving me a description of the feature and embedded tutorial videos. In the bubble message box, there is a link to start an activity after you read the description; you do that and come back to home page, then you see that next pop-up message highlighting another feature that I have not explored.
There is also completeness status bar in Account page showing how much you have done initial settings and what else I have to do to maximize its service experience.

I have installed their app on Andoroid and iPad. Again, it gave me a quick run down of what the app can do by showing a little bubble message at each feature and disappear after you go through them. It takes less than a few minutes, but it is just what-you-need to get started on the mobile app.

I think initial UX is key to retain new users; the initial impression of the service will set an unchangeable bar on users about what users "think" the service could provide, and they would use that impression to decide whether this service could be used to solve whatever issues they wanted to solve via signing up for a particular service. In a case of Mint.com, it gave me a hopeful impression that this service could provide useful tools to better manege my financial behaviours; their efforts to teach me their service is telling me that they actually "care" about how users use their service and suggest us the best practice to maximize the likelihood of reaching whatever goals users set with Mint.com's service.

just a quick note of what my findings with Mint. I would suggest you to give a shot if you haven't already.

Made another ToDo items in our app to improve our initial UX :)

Thursday, July 12, 2012

Tohoku and Fukushima Visit and what I saw

Last week, I drove up to the Northern Japan (Tohoku) and Fukushima to see some of the disaster areas hit by 3.11 great earthquakes and tsunami.
Driving 8 hours straight for two days was nothing but exhausting, but that was a well worth experience overall.
 Closer you get to Tohoku on the highway, you see more road constructions both day; you get a sense that rehabilitation is under way. Although Sendai and surrounding cities seem fine and I don't feel that much difference from rest of the country. Once you get on the coastal road (number 45), you see a totally different world.

These pictures are taken at Minamisanriku-Cho, one of the heavily damaged towns. Only half of people survived and 95% of the town was destroyed (according to Wikipedia). 



A unique characteristic of Sanriku Coast is that coastline is very hilly. When I drive up a hill and pass a certain line, houses are fine and damages are minimal. But once I get to a coast level, there you see badly destroyed scenes. Seawalls are all gone, rail roads are all wiped out, so are all the houses. And what shocking is that this scenery continues all way up to a few hundred kilometers.


The scale of affected areas is daunting. However, I have seen so many construction trucks on the coastal road and got a feeling that they are in active rehabilitation. It seems like a clean-up work is near complete and now it is ready to get into a future city planning and re-construction. Although not many people do not seem to have a good understanding of what the future city-planning would be for these affected towns.

One visible issue is dealing with massive left garbage. there are piles of stuff all over the places.
This would be a very difficult and expensive problem to clear all garbages.



Second day I went to Fukushima. There I have seen similar scenery but have also witnessed different problems from day one. Unlike Sanriku Coast, the coast line in Fukushima is flat, so the damage from tsunami is widely spread. And the nuclear disaster makes problems in Fukushima whole a lot more complicated. In Fukushima, disaster areas could be categorized following: earthquake hit, earthquake followed by tsunami, exclusion zone, used to be exclusion zone but recently re-opened. Each type has its own problems and dealing with all of these problems makes city people harder to work on. Fukushima had to work on nuclear decontamination prior to any rehabilitation, so they are behind Iwate areas (Northern Japan where I visited the first day) in regard to cleaning up garbage and re-constructing the infrastructure. Also I have witnessed a significant shortage of volunteer work in near exclusion zone.
Minami-Souma City is about 25 kilometres north of Fukushima I Nuclear Power Plant and it used to be in an exclusion zone. Although this city is no longer in the exclusion zone, I saw no one on the street. And since institutions like Fukushima University does not let students to volunteer in this city due to a risk in radioactive contamination, volunteer shortage is a serious concern.

City governments are not capable of handling all. A resident I talked to told me that a contact agency for residents is a city office, and Reconstruction Agency, a national government's office to coordinate reconstruction activities, is not reachable. So a small city office, like Minamisoma, is getting over-capacity. I did not feel that this place is in an active rehabilitation phase like I saw in Iwate.

I was fortunate to meet people from Fukushima University Disaster Volunteer Center, where 2012 Sakura Days Japan Fair sent $1146.60 to help them with their volunteer work.


I was happy to meet people who are actively working with local groups for the relief. They emphasized, though, that continuing to work on relief in upcoming years is important and getting people for volunteering is becoming harder.

I am glad that I made this trip. I am not too sure how and what's the best way to get involved with the relief personally, but there are clearly still a lot of work to be done, and I would like to be a part of them, somehow.