<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>future channel</title>
    <link>http://tobyho.com/tag/future</link>
    <description>future channel</description>
    <language>en-us</language>
    <item>
      <title>online interview questions (III)</title>
      <description>&lt;span class="Apple-style-span" style="font-family: Geneva; font-size: 14px; line-height: 22px; "&gt;1. Difference between heap and stack?&lt;br&gt;2. The difference between structs and classes in c++?&lt;br&gt;3. What is virtual function?&#160;&lt;br&gt;4. How does virtual function implemented?&lt;br&gt;Vtable:&lt;br&gt;5. What&#8217;s abstract class?&lt;br&gt;6. What is pure virtual function?&lt;br&gt;7. What&#8217;s the difference between virtual function and pure virtual&#160;&lt;br&gt;function?&lt;br&gt;8. What&#8217;s the difference between thread and process?&lt;br&gt;9. What&#8217;s the difference between mutex and semaphore?&lt;br&gt;10. What is the difference between new and operator new?&lt;br&gt;11. What is the difference between assignment and initialization?&lt;br&gt;12. What is polymorphism? How does it implemented?&lt;br&gt;13. What is encapsulation?&lt;br&gt;14. Copy constructor&lt;br&gt;15. Difference between copy constructor and assignment.&lt;br&gt;16. What&#8217;s the difference between pointer and reference?&lt;br&gt;17. What is friend function?&lt;br&gt;18. What&#8217;s the binary search tree?&lt;br&gt;19. What&#8217;s the stack?&lt;br&gt;20. What&#8217;s LIFO (Last In First Out)?&lt;br&gt;21. Given a stack, and 5 variables, reqire you put the 5 variables into&#160;&lt;br&gt;the stack. How would you test it before putting them in?&lt;br&gt;22. How would you test your own program?&lt;br&gt;23. Tell me the first three of your most familiar technical skills.&lt;br&gt;24. What&#8217;s the persentage of back-in, middle tier, and front-in&#160;&lt;br&gt;development?&lt;br&gt;25. What do you think a good code is?&lt;br&gt;26. How do you keep you with the latest technologies?&lt;br&gt;27. distance vector routing protocol&lt;br&gt;28. c and c++ difference&lt;br&gt;29. explain constructor and destructor&lt;br&gt;30. what is copy constructor? When it is called?&lt;br&gt;31. overloading and overriding difference&lt;br&gt;32. what is recurcive function? Implement one recurcive funcition.&lt;br&gt;33. declare a pointer point to an interger;&lt;br&gt;point to 20 intergers;&lt;br&gt;point to 20 pointers which point to interger&lt;br&gt;34. What&#8217;s virtual destructor?&lt;br&gt;35. how is the source file compiled to executable(from source file -&gt;&#160;&lt;br&gt;binary file)?&lt;br&gt;36. After the source file is compiled to binary file, how is the binary&#160;&lt;br&gt;file orgnized and stored?&lt;br&gt;37. What is overloading? How does the computer know which function is&#160;&lt;br&gt;according to which implementation since they have the same name?&lt;br&gt;38. Memory leakage:&#160;&lt;br&gt;How you ever met memory leakage program, is it cause severe problem?&lt;br&gt;How did you find the leakage?&lt;br&gt;Have you ever used any software to detect the memory leakage?&lt;br&gt;39. c++ file in Linux: which compiler do you use?&lt;br&gt;40. Given a file, tell me the steps of reading the file.&lt;br&gt;41. What is &#8220;IS&#8221; and &#8220;Has&#8221; in C++? What&#8217;s the difference?&lt;br&gt;42. the disadvantage of using stored procedures with parameters.&lt;br&gt;43. when inserting a record into a table, how can you let the relatived&#160;&lt;br&gt;tables change accordingly?&lt;/span&gt;&lt;br&gt;</description>
      <pubDate>Sun, 21 Sep 2008 12:07:32 -0400</pubDate>
      <guid>http://tobyho.com/online_interview_questions_%28III%29</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/online_interview_questions_%28III%29</link>
    </item>
    <item>
      <title>Getting the Argument Names of Your Function</title>
      <description>In Javascript:&lt;br&gt;&lt;font face="courier new,courier"&gt;myfunction.toString()&lt;/font&gt;&lt;br&gt;This gives you the entire definition of the function as a string, with which you can parse to get the argument names, or in prototype.js you can just do:&lt;br&gt;&lt;font face="courier new,courier"&gt;myfunction.argumentNames()&lt;/font&gt;&lt;br&gt;&lt;br&gt;In Python:&lt;br&gt;&lt;font face="courier new,courier"&gt;myfunction.func_code.co_varnames&lt;/font&gt;&lt;br&gt;&lt;br&gt;In Ruby, there is no easy way to do this, although there is A way, which involves setting a trace function on the function and then executing it to get at the local variables at execution time, see &lt;a href="http://eigenclass.org/hiki/method+arguments+via+introspection" mce_href="http://eigenclass.org/hiki/method+arguments+via+introspection"&gt;here&lt;/a&gt;.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
      <pubDate>Tue, 20 May 2008 23:50:57 -0400</pubDate>
      <guid>http://tobyho.com/Getting_the_Argument_Names_of_Your_Function</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Getting_the_Argument_Names_of_Your_Function</link>
    </item>
    <item>
      <title>Constructor Chaining in Prototype</title>
      <description>Ever wonder how to do constructor chaining in prototype.js?&lt;br&gt;Here's how:&lt;br&gt;&lt;br&gt;var Person = Class.create({&lt;br&gt;&amp;nbsp; initialize: function(){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log('hello world!');&lt;br&gt;&amp;nbsp; }&lt;br&gt;});&lt;br&gt;var Pirate = Class.create(Person,{&lt;br&gt;&amp;nbsp; initialize: function($super){&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log('before super');&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; $super();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; console.log('after super');&lt;br&gt;&amp;nbsp; }&lt;br&gt;});&lt;br&gt;new Person();&lt;br&gt;new Pirate();&lt;br&gt;&lt;br&gt;The $super parameter is "special", and is detected by the library. It gives you a reference to the method of the same name defined in the super class(Ruby style, basically). Notice that unlike Java, you can do stuff before super's constructor is called. For more, see &lt;a href="http://www.prototypejs.org/learn/class-inheritance" mce_href="http://www.prototypejs.org/learn/class-inheritance"&gt;here&lt;/a&gt;.&lt;br&gt;</description>
      <pubDate>Tue, 20 May 2008 21:32:26 -0400</pubDate>
      <guid>http://tobyho.com/Constructor_Chaining_in_Prototype</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Constructor_Chaining_in_Prototype</link>
    </item>
    <item>
      <title>Data mining and KDD</title>
      <description>For the longest time I have known about data mining, I thought it's the same as KDD&#12288;(knowledge discovery in database). Until today, I read some papers, did I find out they're actually two different things. "&lt;i&gt;KDD refers to the overall process of discovering useful knowledge from data, and data mining refers to a particular step in this process&lt;/i&gt;". &lt;br&gt;Data mining is the application of specific algorithms for extracting patterns from data. KDD has evolved, and continues to evolve, from the intersection of research fields such as machine learning, pattern recognition, databases, statistics, AI, knowledge acquisition for expert systems, data visualization, and high-performance computing. The unifying goal is extracting high-level knowledge from low-level data in the context of large data sets. &lt;br&gt;&lt;br&gt;The data-mining component of KDD currently relies heavily on known techniquesfrom machine learning, pattern recognition, and statistics to find patterns from data in the data-mining step of the KDD process. A natural question is, How is KDD different from pattern recognition or machine learning (and related fields)? The answer is that these fields provide some of the data-mining methods that are used in the data-mining step of the KDD process.&lt;br&gt;The KDD process can be viewed as a multidisciplinary activity that encompasses techniques beyond the scope of any one particular discipline such as machine learning.&lt;br&gt;</description>
      <pubDate>Sat, 15 Mar 2008 22:29:04 -0400</pubDate>
      <guid>http://tobyho.com/Data_mining_and_KDD</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Data_mining_and_KDD</link>
    </item>
    <item>
      <title>Hello Haskell</title>
      <description>For the past four days I've been learning Haskell. As my first real program, I wrote a file backup utility - essentially a command line wrapper to rsync. The program was probably around 200 lines, just large enough for me to get comfortable with the language. There are many things I like about the language, and some that I don't, let's get started.&lt;br&gt;&lt;br&gt;&lt;b&gt;Safety of the Type System&lt;/b&gt;&lt;br&gt;After working mainly with ruby for a while it's refreshing to go back to a statically typed language. But Haskell's type system is way better than that in Java. Now, I've used OCaml before, but that was a long time ago and I had a lot of trouble with it, so I must say I didn't "get it" at that time. This is the first time I've really gotten comfortable with this kind of type system, and I love it. When you have a type system like this, you have less need for writting tests, because the compiler catches a large class of errors for you. Like in Ruby, I write tests almost religiously sometimes because I want the luxury of the safety provided by the test suite: so that I can safely refactor my code later. Well, in haskell it's like you &lt;i&gt;have &lt;/i&gt;that safety without having to write those tests. Granted, there are still cases when you should test for logic, but you will never have your code fail due to nil-when-you-didn't-expect-it or no-such-method(with Java it's NullPointerExceptions and ClassCastExceptions). In my short experience, it's mostly true that once you get the program to compile, "It's just works!"&lt;br&gt;&lt;br&gt;&lt;b&gt;Type Inferencing&lt;/b&gt;&lt;br&gt;This works great in practice, not just in theory. All the discussions of static vs dynamic usually ignore type systems with type inference, and so are more of comparisons between &lt;i&gt;old &lt;/i&gt;type systems and dynamic languages, and the dynamic advocates usually point out that it's easier for them to make refactorings involving changing the type of a variable. It's easier to show with an example. Let's say you have a piece of information that you need to pass to many different places in your code. At the beginning you use just a string to store it:&lt;br&gt;&lt;font face="courier new,courier"&gt;String filepath;&lt;br&gt;processFile(String filepath) ...&lt;br&gt;copyFile(String filepath, String filepath) ...&lt;br&gt;updateFile(String filepath) ...&lt;br&gt;processFiles(String[] filepaths) ...&lt;/font&gt;&lt;br&gt;Now let's say at a later time you find that a string is not enough, you need some more information to go along with each file path. you need:&lt;br&gt;&lt;font face="courier new,courier"&gt;FilePath filepath;&lt;/font&gt;&lt;br&gt;Now you are screwed. Even Eclipse can't help you with this type of refactoring. You need to make probably hundreds of changes all through out your code base, including: 1) every method/constructor declaration&amp;nbsp; that references filepath; 2) every instance variable that holds a filepath; 3) every local variable that holds a filepath; 4) all the places where you create a filepath; and 5) all the places where you need to actually perform operations with filepaths. In dynamic languages, you would only have to make changes for items 4 and 5, because type information is not explicitly declared at function and variable definitions. &lt;i&gt;But&lt;/i&gt;, this is true also for type inferencing languages like haskell. Therefore, if you are using one of these languages, the refactoring argument for dynamically typed languages is a moo point. Haskell is like the best of both worlds. What's more, the compiler guides you through the refactorings, whereas with dynamic languages, you need to rely on testing to make sure your refactoring didn't break any thing.&lt;br&gt;&lt;br&gt;&lt;b&gt;The Infamous IO Monad&lt;/b&gt;&lt;br&gt;To do any kind of IO in Haskell, you have to first grok the IO Monad. This is a scary proposition, but once you get it, you will be fine, and you'll be better for it. The way I look at it, there are 2 programming styles in Haskell: the functional style and the imperative style. The imperative style is required for any kind of IO operations, because IO operations are &lt;i&gt;tainted&lt;/i&gt;, 'cause IO is a side effect, and functions shouldn't have side effects in the pure functional sense. To program in Haskell, you will need to be fluent in both programming styles. Now, the imperative style can be use for more than just programming IO, it's used for all monads. What's a monad, you ask? Oh brother, you'll have to ask me another day.&lt;br&gt;&lt;br&gt;&lt;b&gt;Runtime Errors&lt;/b&gt;&lt;br&gt;Now, even though with all it's safety, you can still have runtime exceptions in Haskell. But exceptions can't happen in functional code, only imperative code. So, an example would be file-not-found. Unlike the interpreted languages though, you don't get a stacktrace when you have an exception, so this is actually a minus for Haskell.&lt;br&gt;&lt;br&gt;&lt;b&gt;Weak Regex Support&lt;/b&gt;&lt;br&gt;I found the regex support a lot weaker than say perl/ruby/javascript, in fact even than python and Java. There's no syntax support for it, and the regex library in the standard distro is a bit hard to use. I was told that regex is not in the spirit of Haskell. Haskell hackers are more hip to something called Parsec. Fair enough, but I think having good regex support will help Haskell's popularity.&lt;br&gt;&lt;br&gt;&lt;b&gt;Third Party Libraries&lt;/b&gt;&lt;br&gt;In Haskell, the package system is Cabal. It's closer to Python's Eggs, I would say, but slightly lower level. Because Haskell is a compiled language at heart(although there is a bytecode mode), there are more C-isms in Cabal. Many third party libraries require compiling C code, and I've had problems with many of these on cygwin.&lt;br&gt;&lt;br&gt;&lt;b&gt;Interactive Shell&lt;/b&gt;&lt;br&gt;Give me my interactive shell or give me death! Thank god there's an interactive shell for Haskell. Again, best of both worlds. Although, the shell is limited - not like in ruby or python where you can pretty much type in any thing, in Haskell, you don't really have access to the full power of Haskell at the prompt. But still, it's a very very useful tool during rapid prototyping.&lt;br&gt;&lt;br&gt;&lt;b&gt;Haskell Deserves a Great IDE&lt;/b&gt;&lt;br&gt;It's my opinion that a compiled language nowadays really need an IDE to be pleasant to work with. If for nothing else than the ease of getting error markers inside your code editor; clicking an error to jump to its line number; and having it auto-compile when you save a file. I used the haskell plugin for Eclipse briefly, but it stopped working after the first session - some Java runtime exception =( There's no reason that Haskell can't have all the features of the cool Java IDEs out there and more, other than manpower.&lt;br&gt;&lt;br&gt;&lt;b&gt;Namespace Polution&lt;/b&gt;&lt;br&gt;Haskell is not an OO system. And as such it's more vulnerable to namespace polution, because objects act like little namespaces. This shows up in some of the standard library code for example: hGetContents, hGetLine are actions that read from a file handle. Those are not pretty names. I guess h stands for handle. In an OO system, this could have been h.GetContents. The problem of namespace collison is handled at compile time. If you imported 2 modules that both have a function called map, for example, you'd have to prefix "map" with the name of the module, like Data.List.map. But needless to say, that is not nice. You could alleviate this somewhat by passing functions around as values(ah, caught myself before I said variables).&lt;br&gt;&lt;br&gt;Overall, I really dig Haskell and I plan to use it for more of my work as well as play, and I am sure I will have more to say about it as I learn more. Like, I haven't even dug into testing in Haskell, and QuickTest looks really cool.&lt;br&gt;</description>
      <pubDate>Mon, 21 Jan 2008 16:05:38 -0500</pubDate>
      <guid>http://tobyho.com/Hello_Haskell</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Hello_Haskell</link>
    </item>
    <item>
      <title>When You Think You Are All That</title>
      <description>You learn the ropes. You start with the basics. You learn to walk the walk before you talk the talk. But you learn fast, and you learn often, and very soon you learn to do interesting things. You get beyond the basics. You learn the tools of the trade. But beyond that, slowly, you learn to talk to talk, and not just walk the walk. You learn the frame of reference, the state of mind, the philosophy - if you will - of your beautiful craft(not art) - that's right, &lt;i&gt;your&lt;/i&gt; beautiful craft(not art). It is so called yours, because of all the time you put into it. It is yours because all the thought you put into it. It is yours because you enjoy it, but even more so, because you live and breath it. At this point, you are an expert. You are an elite among your peers. You are no longer a fish in a pond. You are somebody. You grow satisfied with yourself. And you begin to think: that your are &lt;i&gt;all that&lt;/i&gt;.&lt;br&gt;&lt;br&gt;It is at this point, that you stop learning. You stop learning because you don't need to anymore. You think you've seen it all. When new things come along, you dismiss them. Because you &lt;i&gt;know &lt;/i&gt;it all, you can &lt;i&gt;do &lt;/i&gt;it all, and you've been doing it right all along, and so why would you need something else that you haven't heard before? The problem is, as time progresses, other practitioners developed new techniques, new frames of reference, new states of mind, new philosophies, what may seem alien - at first glance - to your own - the one that you had known. Now they all embrace new techniques you ignored, ever since the day when you thought you knew it all. You see that your expert status could be weakened, so you belittle the new, and promote the old. You attack with logic, you attack with examples, you attack with stories that you heard - second hand from your sources. The problem is that since you decided to stop learning, you don't know the new techniques, you refused to learn them. You can speak ill of them but it won't convince the others, because you - although the expert that you are - do not have the benefit of knowing both sides of the story - you know only one.&lt;br&gt;</description>
      <pubDate>Sat, 22 Dec 2007 22:28:29 -0500</pubDate>
      <guid>http://tobyho.com/When_You_Think_You_Are_All_That</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/When_You_Think_You_Are_All_That</link>
    </item>
    <item>
      <title>dad email</title>
      <description>&lt;br&gt;
&#26159;&#21834;&#65292;&#26368;&#36817;&#24537;&#24471;&#19981;&#24471;&#20102;&#12290;&#26412;&#26469;toby&#21487;&#20197;&#35831;&#20004;&#20010;&#26143;&#26399;&#30340;&#20551;&#65292;&#19981;&#36807;&lt;br&gt;
&#20844;&#21496;&#26377;&#25152;&#21464;&#21160;&#65292;&#25152;&#20197;&#20182;&#25552;&#21069;&#22238;&#21435;&#19978;&#29677;&#20102;&#12290;&#23567;&#23453;&#19968;&#20999;&#37117;&#22909;&#65292;&#23601;&#26159;&lt;br&gt;
&#22826;&#27963;&#36291;&#12290;&#36825;&#20960;&#22825;&#38271;&#22823;&#19968;&#20123;&#20102;&#65292;&#20063;&#24320;&#22987;&#21464;&#22351;&#20102;&#12290;&#27599;&#22825;&#20960;&#20046;&#37117;&#35201;&#22823;&lt;br&gt;
&#38393;&#19968;&#22330;&#12290;&#21507;&#23436;&#20102;&#19981;&#30561;&#65292;&#24352;&#30528;&#22068;&#21703;&#21703;&#21703;&#30340;&#21741;&#12290;&#22823;&#23478;&#36718;&#27969;&#25265;&#30528;&#20063;&#27809;&lt;br&gt;
&#21861;&#29992;&#12290;&#23453;&#23453;&#30340;&#21307;&#29983;&#19968;&#30475;&#22905;&#23601;&#35828;&#36825;&#26159;&#20010;&#20197;&#21518;&#28385;&#25151;&#23376;&#20081;&#36305;&#30340;&#23567;&#23401;&#12290;&lt;br&gt;
&#24179;&#26102;&#22909;&#21160;&#24471;&#19981;&#24471;&#20102;&#65292;&#36830;&#21507;&#22902;&#20063;&#26159;&#25163;&#33050;&#25381;&#33310;&#20010;&#19981;&#20572;&#12290;&#21890;&#22905;&#30340;&#26102;&#20505;&lt;br&gt;
&#24471;&#35201;&#19981;&#20572;&#30340;&#22238;&#36991;</description>
      <pubDate>Thu, 22 Nov 2007 15:15:38 -0500</pubDate>
      <guid>http://tobyho.com/dad_email</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/dad_email</link>
    </item>
    <item>
      <title>Fritz Zimmer Riesling Kabinett</title>
      <description>Going to branch out a bit in my quest to find a white wine that I like, and try the German Reislings, because Gary told me to =) This one is an 06. I got a lot more nose after I switched to a smaller glass, the one for tasting white wines. This Reisling is sweet, and sour. So much so that it tastes almost like some kind of lemon extract/syrupy kinda thing. The buttery oak flavor that I don't like is still there, but toned down. The flavor is very tropical and fruity. Not too different than the last German Reisling I tasted, so I am actually a bit disappointed. The score I'll give it is 87.&lt;br&gt;</description>
      <pubDate>Sat, 03 Nov 2007 23:29:20 -0400</pubDate>
      <guid>http://tobyho.com/Fritz_Zimmer_Riesling_Kabinett</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Fritz_Zimmer_Riesling_Kabinett</link>
    </item>
    <item>
      <title>Wario's Smooth Moves</title>
      <description>This WII game is highly recommended. It really shows you all the different possiblities of using the wiimote. Other than wii sports this is the best game I've encountered yet.&lt;br&gt;</description>
      <pubDate>Sat, 03 Nov 2007 22:41:52 -0400</pubDate>
      <guid>http://tobyho.com/Wario%27s_Smooth_Moves</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Wario%27s_Smooth_Moves</link>
    </item>
    <item>
      <title>programming projects</title>
      <description>I program not only for my job but also as a hobby. I blog about programming &lt;a href="http://tobyho.com/tag/programming"&gt;here&lt;/a&gt;. Here are some of my projects. &lt;br&gt;&lt;br&gt;&lt;b&gt;Things that are out there(sort of)&lt;/b&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.justtodolist.com"&gt;justtodolist&lt;/a&gt; - yet another web based todo list&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tobyho.com/twitter_script_with_snarl"&gt;twitterme &lt;/a&gt;- a twitter notify for windows using snarl&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://tobyho.com/BDD_Style_Mocks_in_Javascript"&gt;jsMockB &lt;/a&gt;- a fork of jsMock that adds the ability to stub out individual methods on an object and has a BDD style&lt;br&gt;&lt;/li&gt;&lt;li&gt;This wiki/blog - you are looking at it.&lt;a href="http://wiki.futuretoby.com/wiki/tag/wiki"&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://osspinions.org" mce_href="http://osspinions.org"&gt;osspinions.org&lt;/a&gt; - a place for user ratings and reviews for Open Source Projects&lt;/li&gt;&lt;li&gt;&lt;a href="http://jyaml.sourceforge.net" mce_href="http://jyaml.sourceforge.net"&gt;JYaml&lt;/a&gt; - bringing YAML to the Java community&lt;/li&gt;&lt;li&gt;&lt;a href="http://tobyho.com/MapIt"&gt;MapIt &lt;/a&gt;- a firefox plugin to search google maps easily&lt;/li&gt;&lt;li&gt;&lt;a href="http://autofresh.rubyforge.org/"&gt;Autofresh &lt;/a&gt;- automatically refresh your test browsers the moment you hit 'Save'&lt;/li&gt;&lt;li&gt;&lt;a href="http://rubyforge.org/projects/swing4rb/" mce_href="http://rubyforge.org/projects/swing4rb/"&gt;swing4rb&lt;/a&gt; - program Swing using a declarative syntax in ruby&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Coming soon&lt;/b&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;A web interface for your iTunes Library&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Things not designed for public consumption&lt;/b&gt;&lt;br&gt;&lt;ol&gt;&lt;li&gt;Our personal financial budget app written in rails - closed source =)&lt;/li&gt;&lt;li&gt;Our personal automatic backup solution written in &lt;strike&gt;Java&lt;/strike&gt; Haskell - also closed source&lt;br&gt;&lt;/li&gt;&lt;li&gt;GA400 Traffic Widget - konfabulator widget written specifically for me!&lt;/li&gt;&lt;li&gt;TextSync - a tool to sync text commentary with music.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;</description>
      <pubDate>Wed, 19 Sep 2007 16:53:28 -0400</pubDate>
      <guid>http://tobyho.com/programming_projects</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/programming_projects</link>
    </item>
    <item>
      <title>Toby</title>
      <description>
&lt;p mce_serialized="51"&gt;My name is Toby Ho. I am a &lt;strike mce_serialized="51"&gt;software developer&lt;/strike&gt; &lt;i mce_serialized="51"&gt;programmer&lt;/i&gt; of sorts. I am happily married with one child and live in Atlanta. On this site I blog about &lt;a href="/tag/programming" mce_href="/tag/programming"&gt;programming&lt;/a&gt;, &lt;a href="/tag/gadgets" mce_href="/tag/gadgets"&gt;gadgets&lt;/a&gt;, &lt;a href="/tag/tech" mce_href="/tag/tech"&gt;tech&lt;/a&gt;, &lt;a href="/tag/music" mce_href="/tag/music"&gt;music&lt;/a&gt;, &lt;a href="/tag/wine" mce_href="/tag/wine"&gt;wine&lt;/a&gt;, and &lt;a href="/user/airportyh" mce_href="/user/airportyh"&gt;whatever happens to be on my mind&lt;/a&gt;. I subscribe to &lt;a href="http://tobyho.com/Podcasts"&gt;these podcasts&lt;/a&gt;. Checkout my &lt;a href="http://www.last.fm/user/airportyh/"&gt;last.fm profile&lt;/a&gt;, I have great taste =) Have a look at my &lt;a href="http://del.icio.us/airportyh" mce_href="http://del.icio.us/airportyh" mce_serialized="51"&gt;del.icio.us page&lt;/a&gt; and my &lt;a href="http://www.google.com/reader/shared/07850035936453041376" mce_href="http://www.google.com/reader/shared/07850035936453041376" mce_serialized="51"&gt;google shared news feed&lt;/a&gt;. Look for me on Facebook and twitter(airportyh).&lt;br mce_serialized="51"&gt;Take a look at my &lt;a href="/programming_projects" mce_href="/programming_projects"&gt;programming projects&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Sep 2007 16:46:09 -0400</pubDate>
      <guid>http://tobyho.com/Toby</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Toby</link>
    </item>
    <item>
      <title>Dad's Famous Dish</title>
      <description>Dad gave us the recipe for his famous dish, we decided to try making it ourselves. This was the result:&lt;BR mce_serialized="13"&gt;
&lt;DIV style="TEXT-ALIGN: center" mce_serialized="13"&gt;&lt;IMG src="http://wiki.futuretoby.com/wiki/uploads/Dad%27s%20Dish-web.jpg?1188444666" width=0 name="Dad's Dish-web.jpg" mce_src="/wiki/uploads/Dad%27s%20Dish-web.jpg?1188444666" mce_serialized="13"&gt;&lt;BR mce_serialized="13"&gt;
&lt;DIV align=left mce_serialized="13"&gt;
&lt;DIV style="TEXT-ALIGN: center" mce_serialized="13"&gt;&lt;IMG src="http://wiki.futuretoby.com/uploads/Dad's%20Dish-web.jpg?1188444666" width=480 name="Dad's Dish-web.jpg" mce_serialized="13"&gt;&lt;/DIV&gt;&lt;BR mce_serialized="13"&gt;&#36825;&#36947;&#33756;&#26159;&#25226;&#33510;&#29916;&#21644;&#21335;&#29916;&#19968;&#21516;&#29992;&#33948;&#33993;&#21644;&#35910;&#35913;&#26469;&#28806;&#12290;&#21335;&#29916;&#21644;&#33510;&#29916;&#19968;&#29980;&#19968;&#33510;&#65292;&#20110;&#26159;&#34987;&#21629;&#21517;&#20026;&#29976;&#33510;&#19982;&#20849;&#12290;&#26049;&#36793;&#30340;&#23567;&#34678;&#37324;&#26159;&#29992;&#36771;&#37233;&#65292;&#30058;&#33540;&#37233;&#21644;&#37259;&#37197;&#30340;&#35843;&#26009;&#12290;&#21507;&#30340;&#26102;&#20505;&#27838;&#27838;&#35843;&#30340;&#37233;&#65292;&#21619;&#36947;&#20986;&#22855;&#30340;&#22909;&#12290;&lt;BR mce_serialized="13"&gt;The dish contains 5 flavours: sweet, salty, bitter, sour, and spicy which is analogue to how there are so many different flavours to life.&lt;BR mce_serialized="13"&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Thu, 30 Aug 2007 16:46:08 -0400</pubDate>
      <guid>http://tobyho.com/Dad%27s_Famous_Dish</guid>
      <author>toby ho</author>
      <link>http://tobyho.com/Dad%27s_Famous_Dish</link>
    </item>
  </channel>
</rss>
