<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title>Keith's Web Blog RSS Feed</title>
<language>en-us</language>
<link>http://www.keithwatanabe.net/index.php</link>
<description>Keith Watanabe's Website</description>
<item>
<title>How To Bring Space Exploration and Medical Sciences to a Faster Level</title>
<link>http://www.keithwatanabe.net/blogs/2007/9/5/67b608d1a96c4692d39344787765bcf4.html</link>
<description><![CDATA[For me, computing is probably one of the most explosive and innovative things around.  For an engineering science, I think it's by far the most accessible and I've seen more rules broken and in turn creating new eras of improved computing.  However, I've been pretty disappointed with other sciences.  I've tended to feel that they're more academic and inaccessible.  Whether it's the rote memorization, or the complexity, there seems to be no simple way of bringing sciences outside of computing to the masses.  Think of what CGI and HTML has done for the web.  And now look at Ruby on Rails as well as AJAX.  Why doesn't science have something similar?<br />
<br />
Rather than trying to answer why, I prefer proposing a similar solution: rapid prototyping for space exploration and medical science.  I was looking at Idealabs' Desktop Factory company, thinking that there's something there that has potential.  Also, Lego's Lego Factory software which allows people to model something in 3d, send it off to Lego and have your model be ready.  But this is the thing: we need something that is easy to help us manufactur goods instantly.  Kinda like scripting for physical objects.  You build part of the machine or gadget  and with your prototype generating machine, you get your object in real space.  Take for example a phone.  My phone has two major flaws: one button occasionally turns Yahoo browsing on by accident and another button constantly tries to exit when I'm writing an email.  Perhaps my gadget machine and prototyping software could allow me to redesign my phone so I can place those buttons elsewhere.<br />
<br />
Now take those ideas and apply them to space exploration.  Maybe you can prototype your own rover.  Obviously, it means that you won't have a complete environment to simulate having a rover travelling through hostile Martian environment, but imagine the commercial implications for that.  <br />
<br />
I think we already have a form of medical science scripting; some people might call it Methlabs and such.  But if somehow tools were provided for people to allow people to diagnose themselves and treat themselves, maybe we wouldn't have to wait for a cure for AIDS and the like.  I feel that medicine reminds of the days before all the kiddies got involved in the internet and that only the highest calibre professionals could makea  difference in computing.  But all you really had were the Microsofts of the world controlling the output.  So maybe we're holding ourselves back by allowing only a few elite to participate in these fields.<br />
<br />
Imagine if there were some notions of Design Patterns for medicine.  So some hack can still learn how to be a genetic architect without all the years in a lab.<br />
<br />
Either way, I know we're missing something.  There's something blocking the faster progress for these areas.  I think part of it is the teaching methods and forcing kids to go through this long, arduous and somewhat pointless route rather than allow people to use shortcuts in a meaningful manner.  I'm not saying cheating is the best strategy, but if you get positive results and it helps society, then why not use them?]]></description>
<pubDate>Wed, 05 Sep 2007 14:31:03 -0600</pubDate>
<guid>http://www.keithwatanabe.net/blogs/2007/9/5/67b608d1a96c4692d39344787765bcf4.html</guid>
</item>
<item>
<title>Weakness in Web Programming</title>
<link>http://www.keithwatanabe.net/blogs/2008/4/20/b9d27876c297e0c28ffe88ff6a29c156.html</link>
<description><![CDATA[Although I've been programming for a while, I didn't get serious until I started programming the web.  After that, I found my career and got fed because of that.  However, 8 1/2+ years later after embarking on that journey, one naturally matures and tries to grow (especially as someone like myself easily grows bored doing the same thing over and over!).  Fortunately, I decided to force myself to embrace a higher standard for myself.  <br />
<br />
However, part of me believes that most developers who get onto the web probably don't know a lot more than simple CRUD development.  I mean, it's easy and does take time to get used to initially.  Once you do that, then you can build simple, interactive webpages to your heart's content.  Perhaps, they'll even progress to learn a trick or two in a given language, and maybe progress into a second language and explore AJAX (well these days...).  Maybe even some learn a few things on their Linux desktops .<br />
<br />
Despite this, I consider web development by itself <em>far too easy</em>.  I mean, it's almost brain dead in that you merely map inputs to a record in a database and vice versa.  For the most part, I think this might reach the limit of what a lot of web developers understand, especially those from the dot com days.<br />
<br />
Of course, some companies challenge this paradigm like Google by having fairly sophisticated interview questions to weed out those who lack fundamental knowledge in computer science.  I decided to peruse some of those questions and realized that many come from brain teasers and algorithm analysis.  With regards to some of the brain teasers, a few are derived from the statistical or discrete mathematical disciplines.  Then when you examine another set of questions, they really come from people's projects in CS at universities involving things like solving recursion puzzles, understanding some areas like graph theory, or even AI.  I wasn't particularly strong in th math part and I didn't do hardcore algorithms and AI, but I started doing some self study on these topics and began realizing what Google was asking.<br />
<br />
That said, I started thinking about how the web will eventually progress into next generations of technology.  As I look at many web 1.0 and even 2.0 sites, I see regurgitations of CRUD programming, now with some fancy little interface, but little else in terms of thought process outside of somehow employing social, tagging, etc. into their repetoire of tools for a site.  <br />
<br />
Sure things like Crowd Sourcing, etc. are great but there will a time when those systems hit a limit of information and in turn new tools will be needed to make sense of all that information.  That's where having fundamentals in computer science, math, and other modeling techniques start to really come into play.  I mean, Crowd Sourcing is probably a brute force necessary step to get to the next level of system development, which will most likely involve AI, probability, statistics, etc. and other complex models to determine how to extract that information.<br />
<br />
If that's the case, mere CRUD skills and some simple-but-cool UI tricks are not going to be enough to evolve the web further.  People are focusing on the low hanging fruits rather than going after some larger issues that will be the true challenges of evolving what this web 2.0 foundation has setup.<br />
<br />
In short, we're going to have to start hitting the books again and re-examine the seemingly forgotten disciplines of math and algorithms to see how we can apply those to this flood of information at our doorstep.  As issues of scale decrease and become problems for large hosting facilities like Amazon, Sun, and Google, the next generation of computer engineers will need to cross examine how data (large scales of data) that has been organized slightly better will come together in even more meaningful, discrete units.  Or perhaps what the challenge is not simply do trivial SQL statements like &quot;Select * from BLAH....&quot; but try to answer some real questions that require multitudes of levels of information.  Mere SQL joins themselves will perform abysmally no matter what type of system you'd look at, so it's going to require databases of algorithms themselves to be able to solve certain patterns.<br />
<br />
Maybe the next generation of engineers will be employed to brute force design a multitude of permutations on algorithms for answering numerous variations on questions.  Things like <strong>Yahoo Answers</strong> itself is far too primitive to be a truly scalable solution.  &quot;select * from BLAH where foo = bar&quot; is a terrible solution.  People have to stop looking for a one stop <strong>Golden Hammer</strong> and realize that a lot more groundwork is needed to compile the new design patterns to answer human questions.   That's what I see at least.]]></description>
<pubDate>Sun, 20 Apr 2008 11:39:39 -0600</pubDate>
<guid>http://www.keithwatanabe.net/blogs/2008/4/20/b9d27876c297e0c28ffe88ff6a29c156.html</guid>
</item>
<item>
<title>One Major Defect in Page Rank</title>
<link>http://www.keithwatanabe.net/blogs/2008/4/20/b3865904f730eb612b6bb3340bdcc4d6.html</link>
<description><![CDATA[<strong>Google's Page Rank </strong>really is a bad, not very scalable solution for determining search results on the web.  While in the old days, it supposedly was better than other search engines, these days I think we're starting to see many cracks in the system.  In particular, I want to point out about old, archaic articles interfering with <strong>Page Rank</strong>.<br />
<br />
Supposedly, <strong>Page Rank</strong> works by ranking a page through the number of inbound links to a given page.  So if a hundred articles reference a single link, then it might be quite popular.  This type of ranking works decently for product pages or the core homepage.  However, for finding a particular article, this algorithm is actually its own problem.<br />
<br />
Older articles would naturally have high page ranks because more than likely numerous other sites would link to them over a period of time.  However, these articles would also become irrelevant as well because older articles would precede newer, more relevant articles on a given topic.  Take for example a tech article on a given technology.  You do a search for say mod_security.  The results you'll get are quite outdated and you might be working with a deprecated API.  This is a common incident with <strong>Page Rank</strong> and really is <em>frustrating</em>.  You can easily spend hours going through old, impertinent links trying to find a relevant topic.<br />
<br />
Unfortunately because of the way <strong>Google</strong> spiders pages, I don't think there's any easy way around this at the moment.  However, my suggestion for <strong>Google</strong> (or someone!) to improve upon this would be to have some kind of interactive filter.  Something like a relevance filter or grader where you could decrease a page's relevance.<br />
<br />
Obviously, there are ethical problems with this approach as people might abuse this capability.  And it's not something that you can let AI or a group of 100 trusted people handle either.  The amount of articles and randomness of information simply negates any practical way of handling this.  <br />
<br />
Nonetheless, I just feel that something like this is necessary.  We still need to teach the engines things like this because there's no obvious easy way of handling something like this.  You need context and page contents are far too difficult to analyze at this stage to be able to truly allow a program to independently handle a situation like this.<br />]]></description>
<pubDate>Sun, 20 Apr 2008 11:52:51 -0600</pubDate>
<guid>http://www.keithwatanabe.net/blogs/2008/4/20/b3865904f730eb612b6bb3340bdcc4d6.html</guid>
</item>
</channel>
</rss>
