Filesystem Snapshots on Android
by Jiang Yio on May.08, 2009, under Android
A recent trick floating around the xda-developers forums involves using UnionFS to layer the microSD storage on top of the existing data partition, effectively allowing the microSD storage to be used for data. This technique originated from MarcusMaximus04 and has made its way into the firmware builds of TheDudeOfLife and JesusFreke.
While most users were playing around with the easy “apps2SD” feature, I decided to explore a different aspect of UnionFS — stackable snapshots. The goal was to be able to make snapshots of the filesystem that could be rolled back at any time, undoing any changes. While this may sound like server-oriented technology, it could be useful on a mobile platform that is collecting a sizable hacker community.
The OK Function
by Jiang Yio on May.04, 2009, under Computing
I encountered a most awesome function today; it’s called OK.
OK accepts no arguments and returns either true or false. When a program needs to make a decision, it could ask if it’s OK or not. Interesting? You bet. But this is only half of the story. How does OK work?
When OK is called, it saves a snapshot of the current program execution state and returns true; it also installs a hook so that it is called at the end of the program. If the program ends successfully, OK does nothing. If the program fails, on the other hand, OK recalls the saved state and returns false.
Hmm…
We Need A Boyfriend
by Jiang Yio on May.04, 2009, under Quotable
On the way to class I passed by a confused-looking male who was besieged by a group of girls. “What’s goin’ on?” he asked.
Girl: We need a boyfriend.
Guy: Wait, what?
Girl: We need a boyfriend, now.
Guy: I don’t understand; I can’t be your boyfriend.
Girl: Why not? You look single.
Guy: Uh, yeah… but there’re so many of you.
Girl: Yeah, so?
The guy happened to look my way for a second, so I could not help winking and giving him a thumbs-up.
Girl: See! This guy agrees.
Guy: Okay, okay, I get it; there’s plenty of me to go ’round.
As hilarity ensued, I found my way into molecular biology class.
New [Liquid Fuel] Burner Design
by Jiang Yio on May.03, 2009, under Hacks
I’d designed few alcohol burners in the past, and they’d all depended on using metal rods or shims to vaporize the fuel. One end of the metal would be submerged in fuel while the other end would be in contact with the flame, thus conducting heat back into the fuel and generating combustible gas in situ. A benefit of this approach is that much more power is generated due to the pressure and mixing with air. Because of this, the alcohol burner has become a useful part of my toolkit.
Recently I spent an hour or so reading up on Bunsen’s design of his gas burner. Though a Bunsen burner relies on pressure from the gas line rather than generating its own pressure, some of the concepts are nonetheless helpful in improving my own design. Incorporating some of Bunsen’s ideas, I came up with yet another alcohol burner design: this one allows fresh air to be drawn into the flame by the Venturi effect, thereby improving efficiency and power output. The result is a clean and non-luminous flame.
Here are a couple of pictures of the burner in action. In the first, it is burning 70% ethanol available at most pharmacies; in the second, it is burning 100% acetone. I also tried 100% ethanol, but the flame is barely visible; it works very well, but it is not worth photographing…
Collaborative Machine Learning
by Jiang Yio on Apr.28, 2009, under General
I’m imagining a computer program running on a basic server cluster (read: Google) that’s able to learn stuff by asking random users random questions. It would be primed with some basic knowledge by the programmer, but every day it would find something interesting (i.e. random dictionary word) and probe its properties. The types of questions would initially be naïve (is an apple a noun or is to apple an action?), but gain depth as knowledge becomes available (how is an apple different from an orange?).
A simple way of sending the program to school would be to expose it on many websites where it could ask questions and accept answers from users. So… would this work?
Using Cupcake Without A Data Plan
by Jiang Yio on Apr.26, 2009, under Android
Really, there is no need for this post… because Cupcake (an updated version of Android found on the HTC Magic and ported over to the G1) is quite friendly to users without data service. The ability to skip activation allows the user to delay activation until the WiFi connection can be initialized. And since rooting is required, the modified recovery image and engineering SPL makes backup-and-restore trivial.
(continue reading…)
Machine Learning in Medicine
by Jiang Yio on Apr.24, 2009, under Computing, Healthcare
Now, this blog is full of technology-related stuff. I’m also interested in medicine, so today I’m going to share some of what I’ve been thinking about.
People are complex creatures, and so medicine is a complex subject encompassing multiple fields of discipline. Many technologies have been developed to advance medicine to its current form, but one particular aspect of medical technology remains elusive: how to supplement physician’s medical knowledge using computers. Now, I know what you’re very likely thinking: when I catch a cold I want to see a doctor, not a machine! I too would much prefer to see a doctor. However, it must be noted that machines are already playing a significant role in medicine and they could propel medicine so much farther if we just knew how to use them properly.
Examining OpenID
by Jiang Yio on Apr.23, 2009, under Computing
I just got my domain renewed. In celebration of this anniversary, I decided to learn more about OpenID and set up my own identity server. With my new identity server is my new self-managed identity. Cool, eh?
What is OpenID?
OpenID eliminates the need for multiple usernames across different websites, simplifying your online experience.
In other words, an OpenID is a universal identifier that can be used at numerous websites. The universality of OpenID is derived from the manifestation of OpenID’s as URL’s. Each user owns a URL, so to speak, and trusts an OpenID provider to assert the ownership and provide details about the user. An OpenID consumer, or an application seeking user identification, relies on providers to identify their users. OpenID is decentralized: there are many providers so users are not locked into any particular vendor. If all this is confusing to you, just head over to the official OpenID website and have a look.