Image Image Image Image Image

RSS | Facebook | Twitter | Quora | Tumblr | Pinterest | LinkedIn | Youtube | Vimeo
© Copyright 2014 Daniel Kao

Scroll to Top

To Top

  • Subscribe
  • contact_slider

Tallymark: The Process

On 19, Sep 2013 | No Comments | In Projects | By Daniel Kao

A good friend and I recently released a web application named Tallymark.

After a long development process into the wee hours of the night with a good friend, we were able to create a product that helps divide living expenses among people who live together, by simply adjusting the amount of the final rent check. You can check it out here.

Since it was such a significant project to me, I wanted to document the creation process a little bit. If you want to look at the code, it’s all on Github.

For me, Tallymark was a project where I had to pick up everything as I went along, because I had no prior knowledge of or Django. Setting up the server and repository took nearly two weeks, as figuring out the server setup was probably the difficult barrier of entry.

I picked up on the model, view, template structure pretty quickly, because it made a lot of intuitive sense to me. I quickly realized how powerful Django is, and how it is a lot more flexible and simple compared to PHP.

The first couple weeks were largely dedicated to figuring out how to navigate Django. I made objects in the models file, and started learning how to integrate them into my application. It took me another week or so to generate a dynamic dashboard.

And after about 2 months of work, with all too many visits to StackOverflow, I uploaded it to my server, turned debug mode off, and let it into the wild. Within the first hour, we had 45 people sign up, and people started logging in their houses and items.

For me, seeing the process from concept to reality was extremely exciting, as this is probably the biggest and most significant project that I have done to date. Despite the fact that this was framed as merely a summer project, it feels much more significant to me than that.

We still have features to implement, bugs to fix, but learning how an application is written from start to finish has been a blast for me.

Tags | , , , , , , , , , , , , , , , , ,

Building Tallymark

On 29, Jul 2013 | No Comments | In Projects | By Daniel Kao

I started learning Django this summer, with the goal of creating a web based application with a friend.

Having never worked with Python or Django before, the only appropriate response to building this application was “challenge accepted”.

From the git-go (see what I did there), I had issues getting the right versions of Django and Python set up both locally and on the server. After a whole week installing Arch Linux and living in the terminal, I finally got Django setup and running without errors.

We officially unveiled the pre-launch page yesterday, opening the application up for people to stay updated via email.

To me, this project represents the power of autodidactic learning, or learning on your own, not bound by any requirements, grades, or work hours. In fact, everything I know about the web was completely learned on my own, independent of any academic classes.

About Django

Being the first time that I worked with Python and Django, there were a lot of things I had to get used to, such as the fact that python uses tabs instead of curly braces, giving me weird indentation errors on occasion.

But I’ve really grown to appreciate the framework, because of the way that it makes so many things so simple, and how intuitive the model-view-template philosophy is. I’m definitely beginning to like Python even more than PHP (gasp).

I’ll spare you the rest of the technical details, because there’s still a lot that I’m learning about Python and Django.

About Tallymark

Tallymark is an application designed as a hassle free way to divide costs between people who live together, saving you the trouble of figuring out how to pay each other back. The idea is simple: Have each person log their purchases for the apartment/house/room, and Tallymark will take care of the rest.

If you’re interested, head on over to to stay updated!

Tags | , , , , , , , , , , , , , , , , , , , , ,

Behind The Playground

On 20, Apr 2012 | One Comment | In Projects | By Daniel Kao

My Recent short film, “The Playground”, was created using a combination of camera hacks and heavy post processing.

Taking the Pictures:

With this video, I tried my best to document a wide variety of locations and subjects in my life, including family vacations and school events. The following is a complete list of all the shooting locations in order of appearance.

  1. My Room
  2. Jasper, Alberta
  3. Duckwater, Nevada
  4. Jasper, Alberta
  5. Vasona Park
  6. Angel Island
  7. Waterton Lake, Alberta
  8. My Home
  9. Lynbrook High School Construction
  10. My Home
  11. Saratoga Ave (CCIC-SJ)
  12. Miller Ave
  13. Valco Mall
  14. Rainbow Dr (Calabazes Park)
  15. Saratoga Sunnyvale Rd
  16. Cupertino Library
  17. Mt Rose Ski Resort
  18. Lynbrook High School Wednesday Morning
  19. Rainbow Park
  20. Lynbrook High School Powderpuff
  21. Lynbrook High School Graduation
  22. Miller Middle School Basketball Courts
  23. Rainbow Park
  24. Lake Louise, Alberta
  25. My Home
  26. Waterton Lakes, Alberta
  27. Blue Hills
  28. Overpass between Kevin Moran and Azule Park
  29. Saratoga Ave (CCIC-SJ)
  30. My home

The entire video was made up of small, individual photographs resulting in a folders of pictures totaling over 25GB. Natively, my Canon Powershot S5 IS is unable to take pictures quickly and indefinitely, so I got a little help from a custom firmware known as  CHDK.

CHDK is a simple firmware you can install on top of your current Canon firmware that allows you to go beyond the built in features. Specifically, for “The Playground”, I used a script called fast intervalometer that took a picture approximately every half second.

Besides CHDK, this video would not be possible without the help of my full size tripod and gorillapod.

Processing the Pictures:

Every single frame that you see in this video was processed in Photoshop. That’s right. All 7,600 frames.

To generate the tilt-shift effect, I batched processed all the frames in Photoshop using a gradient on a quick mask layer and then using the lens blur effect. Each frame that was processed was then moved into a separate folder.

Check this out if you want more specific instructions.

Creating a Video

After I had created a folder with all of the frames processed, each scene was imported as a sequence into After Effects and rendered into a 30 frame per second video clip. Each of the scenes were then imported into Adobe Premiere, where I did my final touch-ups, ordering, and time manipulation.

Feel free to contact me if you have any more questions!

Tags | , ,