• ## Searching for the Most Flexible Grid System

Every so often, monitor resolutions increase. In tandem, new grid systems are created to support upcoming resolutions. During the era of 1024x960 monitors, we used the 960 grid system for its flexibility. During the era of 1366x768 laptop monitors, we used the 1200 grid system for its flexibility. Now with 4k monitors, what will be the size of the next flexible grid system?

• ## Why not use Bash for Algorithmic Interviews?

During an interview, I asked, in jest, whether I could use Whitespace to solve the problem. The interviewer chuckled and said that if I implemented the algorithm in Bash, I would receive an offer on the spot; jokingly. I did not solve the problem in Bash that day; however, I've been wondering why I haven't tried using Bash for algorithmic interviews. This post is an exploration on the subject.

• ## Harnessing The Grid AI with Support Vector Machines

There are few skeptics of the claim that Artificial Intelligence is used behind The Grid, a tool for generating designs dictated by content.

• ## Being Productive in C with GNU Make

Any such tool for taming the complexity of software helps developers become more productive.

• ## Operational Costs of Printers and Running Times of Arrays with Amortized Analysis

The running time of data structures is not obvious without making assumptions on the current state of the data structure under speculation.

• ## How to Choose a Good AR Drone API

Every now and then, I find myself in a regrettable foray into a deeply technical project for a ridiculous cause. Fortunately, I wasn't alone in this adventure.

• ## Exploring Functional Programming in Scala through HackerRank

Practice is one of the best methods of learning a new language and its idioms. Since HackerRank recently released a new category problems, Functional Programming, I decided to learn Scala by first studying its functional aspects.

• ## Designing a Linux Resource Manager in C++

By the fervor of Linus Torvalds, there does not exist any immediate C++ or OOP interfaces to operating system services. Consequently, it is sometimes necessary to wrap a logical set of Linux system calls in a C++ wrapper.

• ## Historical Problems with Closures in JavaScript and Python

A closure is an inner function has access to the variables defined in the environment of its outer function.

• ## Underscorejs: Text Processing on the Document Object Model (DOM)

Last time, we dove into higher-order functions that Underscorejs provides. This time, we'll be utilizing those higher-order functions to process text on the DOM of a page.

• ## Prelude into Underscorejs: Higher-Order Functions

DocumentCloud's project, Underscorejs, interested me for a while now since I've seen its beautiful documentation produced through Docco.

• ## A Gentle Introduction to Algorithms for Web Developers

The common, self-taught web developer tinkering with their LAMP stack uses algorithms in their daily programming yet several web developers are unaware of it.

• ## How to Teach Programming: an Exploration

I'll be responsible for teaching a few core concepts to my ICS 22 study group for our midterm with Java. However, I plan to teach it effectively. Reflecting on my own learning process and the process of others, I've been exploring programming aptitude with relation to a programmer's abstract capabilities.

• ## Cryptographic Communcation through OpenSSL

Devontrae introduced me to an interesting person a few nights ago: Tyler Diaz. I had no idea who he was or what he was capable of but we easily connected through the most obscure lingo known to hackers: cryptography.

He began the conversation by asking, "Are you a hacker?" Questions like these usually signal some exclusivity. Fortunately for me, I was in that exclusive loop. He followed up by showing me a UNIX command.

• ## Teaching Programming to AP Calculus Students

I was given the opportunity by my AP Calculus teacher, Mr. Kurashige, to teach programming for the final six days of school. What do I teach Calculus students about programming? It wasn't C/C++ or Java. It wasn't PHP or MySQL. It wasn't HTML, CSS, or JavaScript. Instead, I taught TI-Basic on the TI-83 and TI-84 graphing calculators.

• ## Random Logouts for Laptops using Ubuntu 11.04 (Natty Narwhal)

I've been one of the many recent victims using Ubuntu 11.04 x64 on my Thinkpad T410 laptop that has experienced random logout without any crash reports at all.

• ## How StackOverflow Helped Me Become a Better Programmer

I've been engaging a variety of projects with multifarious teams of teenagers that are always hoping to become the next big Facebook. Of course, they never happened and, of course, most of them failed. However, I've begun to outgrow these prepubescent projects with prepubescent kids and I've started engaging broader communities: StackOverflow & StackExchange.

• ## Computer Science AP A Self-Studying Experience

I just finished the Computer Science AP A exam last week at Downtown Magnet High School with a cumulative hour extra by the time I finished. Because I have experience in programming, it wasn't difficult for me.

• ## StackOverflow Meetup and Side Projects

Last night, I went to the StackOverflow Meetup down by Irvine (~1 hour away) from where I live but I was planning to going to UCI next year so I wanted to meet a few hackers, programmers, and designers in the area and also learn a few things about the industry.

• ## Sizzle: Loosely Coupled JavaScript Selector Engine

As lightweight as jQuery already is, sometimes I want something smaller than a 24KB minified JavaScript library for its core functionality: the \$('#id > .class') part. Sizzle offers just that.