ALL
One interesting story about Chinese software development
I have once seen an interesting complaint written by one foreigner about Beijing South Railway Station (China) on foursquare. It says: "There is simply no way to buy a ticket at the machine unless you have a Chinese ID. What the hell they have English interface for then?"Apparently,the foreigner cannot buy ticket because he doesn’t have Chinese ID but there still presents an English interface for foreigners on the vending machine. Because of my profession, I find this awkward situation worth discussion. The complaint from foreign friends poses a typical question for Chinese software deve...
4,657 0 SOFTWARE DESIGN USER EXPERIENCE IMPORTANCE
Bytes Matter
I love to profile applications, because I always learn something that surprises me.Initial Profiler Surprise: Client SideCase in point, I was recently profiling our Android application, the Famigo Sandbox. This app sends a lot of data back and forth with our API, as we try to determine which of the apps on your phone are safe for your kids. I always assumed that, if app performance suffered during some of the chattier features, it was probably due to slow cell reception.The profiler told me that I was wrong; the tran...
2,816 0 IMPORTANCE OPERATION LOW LEVEL BYTE
Why Python is important for you
I believe that Python is important for software development. Whilethere are more powerful languages (e.g. Lisp), faster languages(e.g. C), more used languages (e.g. Java), and weirder languages(e.g. Haskell), Python gets a lot of different things right, andright in a combination that no other language I know of has done sofar.It recognises that you’ll spend a lot more time reading code thanwriting it, and focuses on guiding developers to write readablecode. It’s possible to write obfuscated code in Python, but theeasiest way to write the code (assuming you know Python) is almosta...
5,570 0 PYTHON IMPORTANCE PARADIGM
Why Data Structures Matter
Our experience on Day 0 of JPR11 yielded a nice example of the need to choose an appropriate implementation of an abstract concept. As I mentioned in the previous post, we experimented with Michael Barker’s Scala implementation of Guy Steele’s parallelizable word-splitting algorithm (slides 51-67). Here’s the core of the issue.Given a type-compatible associative operator and sequence of values, we can fold the operator over the sequence to obtain a single accumulated value. For example, because addition of integers is associative, addition can be folded over the sequence:...
2,460 0 IMPORTANCE DATA STRUCTURE JPR