<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7988372</id><updated>2011-07-31T00:09:23.863-07:00</updated><category term='80048051'/><category term='messenger'/><category term='IE'/><category term='Visual Studio 2008'/><category term='VC++'/><category term='offline mode'/><category term='windows 7'/><title type='text'>Lentiltech</title><subtitle type='html'>This is where the tech goes.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>58</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7988372.post-2301925458348741047</id><published>2010-07-29T08:48:00.000-07:00</published><updated>2010-07-29T09:16:36.852-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='80048051'/><category scheme='http://www.blogger.com/atom/ns#' term='IE'/><category scheme='http://www.blogger.com/atom/ns#' term='messenger'/><category scheme='http://www.blogger.com/atom/ns#' term='offline mode'/><title type='text'>Windows Live Messenger error 80048051</title><content type='html'>Sometimes Windows Live Messenger will refuse to log in, returning the error code 80048051. Messenger somehow thinks you are not online and will simply not access the Internet or even try to get online.&lt;br /&gt;&lt;br /&gt;The reason for this is because Windows Live Messenger thinks you are in "offline mode". You probably used Internet Explorer recently and it set an offline mode flag when it shut down. You probably didn't even realize it was doing such a thing.&lt;br /&gt;&lt;br /&gt;Messenger uses this flag to determine whether it should log in. If it sees that the system is in offline mode, it will simply refuse to connect. Why Microsoft tied Messenger to IE's settings is inscrutable to me. It breaks Messenger for no reason whatsoever.&lt;br /&gt;&lt;br /&gt;THE FIX: Start up IE and access a website. Click on a link to activate online mode. If IE does not ask you if you want to go into online mode, keep clicking on links until IE pops up a dialog box asking you about it. Select the option that will put you back into online mode. Then, with IE in online mode, exit IE. This will force the offline/online mode setting to be set, and Messenger will now be able to get online.&lt;br /&gt;&lt;br /&gt;Problem:&lt;br /&gt;Windows Live Messenger does not log in. Error 80048051 is shown&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Reason:&lt;/div&gt;&lt;div&gt;Windows Live Messenger has detected that the system is in Offline Mode&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Solution:&lt;/div&gt;&lt;div&gt;Set the Internet Offline Mode setting to Online Mode&lt;/div&gt;&lt;div&gt;&lt;br /&gt;How to do it:&lt;br /&gt;1) Launch IE&lt;br /&gt;2) Browse until IE asks you to work online (to turn online mode ON)&lt;br /&gt;3) Enter online mode&lt;br /&gt;4) Close IE&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Hopefully Microsoft fixes this or at least provides a method that the user can turn online mode ON from Messenger.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-2301925458348741047?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/2301925458348741047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=2301925458348741047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/2301925458348741047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/2301925458348741047'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2010/07/windows-live-messenger-error-80048051.html' title='Windows Live Messenger error 80048051'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-7288438330038329250</id><published>2010-04-25T18:15:00.000-07:00</published><updated>2010-04-25T18:18:37.984-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows 7'/><category scheme='http://www.blogger.com/atom/ns#' term='messenger'/><title type='text'>A bug with Live Messenger on Windows 7</title><content type='html'>When I am running Windows Live Messenger on this Windows 7 machine, the Start bar shows 2 icons for the application. There seems to be a windows for Me (Available) and Windows Live Messenger.&lt;br /&gt;&lt;br /&gt;Clicking either one takes me to the same application. And as far as I can tell, there is only the one application open.&lt;br /&gt;&lt;br /&gt;It would be nice if I could just click on the start bar icon and not have to deal with a second menu.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-7288438330038329250?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/7288438330038329250/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=7288438330038329250' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/7288438330038329250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/7288438330038329250'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2010/04/bug-with-live-messenger-on-windows-7.html' title='A bug with Live Messenger on Windows 7'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-6065501179934435977</id><published>2009-05-11T11:12:00.000-07:00</published><updated>2009-05-11T11:14:40.593-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='VC++'/><title type='text'>Visual C++ 2008 Express: How to add class member?</title><content type='html'>Yes, I know I can add a class member by hand.&lt;br /&gt;&lt;br /&gt;But since the GUI gives me a wizard to create a class, why doesn't it also give me a wizard to add a member or method to that class?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-6065501179934435977?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/6065501179934435977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=6065501179934435977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/6065501179934435977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/6065501179934435977'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2009/05/visual-c-2008-express-how-to-add-class.html' title='Visual C++ 2008 Express: How to add class member?'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-3053902963017442803</id><published>2008-04-16T11:14:00.000-07:00</published><updated>2008-04-16T11:16:08.392-07:00</updated><title type='text'>Study material: Program structure and interpretation</title><content type='html'>Someone posted a link to the MIT coursework for "Structure and Interpretation of Computer Programs". There is also a full online version of the textbook.&lt;br /&gt;&lt;br /&gt;http://swiss.csail.mit.edu/classes/6.001/abelson-sussman-lectures/&lt;br /&gt;&lt;br /&gt;It would be nice to get the textbook as a PDF.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-3053902963017442803?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/3053902963017442803/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=3053902963017442803' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/3053902963017442803'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/3053902963017442803'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2008/04/study-material-program-structure-and.html' title='Study material: Program structure and interpretation'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-7399819765865666560</id><published>2008-03-09T23:58:00.000-07:00</published><updated>2008-03-10T00:01:35.630-07:00</updated><title type='text'>Firefox feature I would like</title><content type='html'>Sometimes I am using tabs to browse pages in Firefox and come across a page that I would like to open in a new browser. Of course, this is very easily done by right-clicking the link and selecting Open in New Browser.&lt;br /&gt;&lt;br /&gt;However, if I already have the page open in a tab, I would like to be able to right-click the tab and have something like "Move current tag to new browser" and then have the current tab moved to a new browser instance, including all the tab history. The original tab could then be deleted from the original browser instance.&lt;br /&gt;&lt;br /&gt;I bet there's already something like this on the plug-in page.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-7399819765865666560?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/7399819765865666560/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=7399819765865666560' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/7399819765865666560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/7399819765865666560'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2008/03/firefox-feature-i-would-like.html' title='Firefox feature I would like'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-1348664339652994001</id><published>2007-06-05T19:15:00.001-07:00</published><updated>2007-06-05T19:24:55.003-07:00</updated><title type='text'>Trolls hit the BBC</title><content type='html'>If you've been paying attention to the 2012 Olympic bid, you'll have already heard of London's &lt;a href="http://www.london2012.com/"&gt;official Olympic logo&lt;/a&gt;. It's hideously ugly and pretty hard to figure out unless you stare at it for a while.&lt;br /&gt;&lt;br /&gt;The BBC asked its audience to send in alternative logos, and the response was deafening. People did not like the official logo at all. It doesn't represent anything about London, and looks to be thrown together in a rush rather than carefully designed.&lt;br /&gt;&lt;br /&gt;One response in particular was quite an eyeful. If you've ever had the honor of gracing your screen with the "goatse man", you'll recognize the logo in question. Have a &lt;a href="http://www.youtube.com/watch?v=NRzwaaibMx8"&gt;gander&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;And for God's sake, don't search for &lt;a href="http://www.google.com/search?q=goatse+man"&gt;"goatse man"&lt;/a&gt;! Seriously. Don't click on this link.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-1348664339652994001?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/1348664339652994001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=1348664339652994001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/1348664339652994001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/1348664339652994001'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/06/trolls-hit-bbc.html' title='Trolls hit the BBC'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-6343117267776952027</id><published>2007-05-30T19:22:00.001-07:00</published><updated>2007-05-30T20:10:03.643-07:00</updated><title type='text'>Loose coupling/tight coupling: When things go wrong</title><content type='html'>I was thinking about &lt;a href="http://en.wikipedia.org/wiki/Loose_coupling"&gt;coupling&lt;/a&gt; this morning. Loose coupling allows for one part of a system to change without impacting other parts of the system. The other parts are shielded from the impact because the coupling point is a &lt;a href="http://www.agilemodeling.com/artifacts/contractModel.htm"&gt;contract&lt;/a&gt;. As long as the change happens behind the coupling point and the contract is fulfilled correctly, a change in any particular module will not affect any other module that relies on it.&lt;br /&gt;&lt;br /&gt;But that's not really what I was thinking about this morning. I'm thinking more about trains, and the Tokyo train system specifically.&lt;br /&gt;&lt;br /&gt;Every morning I take the Tozai line from Minami-Gyotoku to Nihonbashi. The "東西" line is one of the few train lines that, as its name suggests, travels the entire distance of Tokyo from East to West.&lt;br /&gt;&lt;br /&gt;Before I get too far ahead of myself, I have to explain a little about the train system in Tokyo. There isn't just one train company here. There is the well-known &lt;a href="http://www.jreast.co.jp/e/info/map_a4ol.pdf"&gt;JR lines&lt;/a&gt; (pdf) which has the famous &lt;a href="http://www.japan-guide.com/e/e2370.html"&gt;Yamanote line&lt;/a&gt; which circles the heart of Tokyo and connects at many stations with other lines. There is also the very popular &lt;a href="http://www.tokyometro.jp/rosen/rosenzu/pdf/rosen_eng.pdf"&gt;Tokyo Metro&lt;/a&gt; (pdf) of which the Tozai line is one (the blue line running from east to west). Still relevant and convenient is the &lt;a href="http://www.kotsu.metro.tokyo.jp/english/index.html"&gt;Toei Transportation system&lt;/a&gt; which runs several trains (see the Tokyo Metro map) and a host of buses around the city. Less well-known lines like the &lt;a href="http://hisaai.at.infoseek.co.jp/Tobu/index_eg.html"&gt;Tobu lines&lt;/a&gt; and the &lt;a href="http://www.odakyu.jp/english/railmap/index.html"&gt;Odakyu lines&lt;/a&gt; are also here.&lt;br /&gt;&lt;br /&gt;What brought on this thinking of coupling wasn't the coupling of trains, but the coupling of train lines. If you look at the various maps, you will see that many train lines intersect with each other. These are prime points for coupling, and indeed many of those intersections are coupled by means of a shared station.&lt;br /&gt;&lt;br /&gt;By "loose coupling" here, I mean that the passengers must unboard one train and reboard another to make the transfer. This is very convenient, though sometimes the rush to change trains is overwhelming with so many people needing to transfer at the same station. Also, it requires that the passengers actually leave one train to change direction. This is the standard way this works, and it works well.&lt;br /&gt;&lt;br /&gt;But there are other points in the system that are much more tightly coupled. This means that more than just sharing stations with each other, multiple train lines may actually share the same track. The Tozai line is a prime example of this with its endpoint on the western end shared with the JR Sobu and Chuo lines. The Sobu and Chuo lines themselves share tracks from JR Ochanomizu westward. If you take a close look at the train maps, you'll even notice that the Tozai line and the Sobu line are connected at their endpoints and diverge in the middle, providing a wider area of service with the same terminal stations.&lt;br /&gt;&lt;br /&gt;The benefit to the passenger should be obvious. By being able to board a single train and not have to transfer at stations, the passenger can relax and not be bothered until he reaches his station. From the passenger's point of view, it is less hassle and potentially faster than a series of transfers which loosely coupled train lines would require.&lt;br /&gt;&lt;br /&gt;The downside, as I encountered this morning, is that a system failure in a shared area leads to a total system failure across all coupled systems. I get on the train at Minami-Gyotoku, as I mentioned before. It is on the east end of the Tozai line. An accident on the Chuo line, far on the west end of the lines, caused backups all the way through the entire Tozai line. As a result, I was late to work.&lt;br /&gt;&lt;br /&gt;In a loosely coupled system, I would not have been inconvenienced since the Chuo line is really of no consequence to me personally. Passengers of that line would naturally have problems, but the other lines would run normally (as the Ginza line did when I transferred at Nihonbashi). Loose coupling would have prevented the impact of an event that occurred far away from affecting me.&lt;br /&gt;&lt;br /&gt;But we don't live in a loosely-coupled world. In fact, the world which we live in is highly coupled. Tight coupling adds convenience while potentially compromising the stability of the system as a whole. How many people benefit from the tightly coupled train systems? How many people were harmed by events like today's backups? Where do you draw the line and say "Common convenience with occasional outages outweighs minor inconvenience with guaranteed service"?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-6343117267776952027?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/6343117267776952027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=6343117267776952027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/6343117267776952027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/6343117267776952027'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/05/loose-couplingtight-coupling-when.html' title='Loose coupling/tight coupling: When things go wrong'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-3991036112990108930</id><published>2007-05-08T19:03:00.000-07:00</published><updated>2007-05-08T19:13:28.380-07:00</updated><title type='text'>XP Taskbar covers popup text</title><content type='html'>For a few days now I've been noticing a problem with my WinXP taskbar. The taskbar is forcing itself to the top of the Z-order, so it is always on top. Now, this wouldn't normally be a problem. I don't use the auto-hide feature, so it's not a big deal to have the taskbar always visible. However, with the taskbar at the top most visible layer, stuff like popup text is covered up by the taskbar.&lt;br /&gt;&lt;br /&gt;If I hover my mouse pointer over the Messenger icon, I expect it to show me a little box indicating my login status. I can kind of make out that there is a box being displayed, but since the taskbar covers the box, I can't read the text at all. All context sensitive text bubbles are unreadable.&lt;br /&gt;&lt;br /&gt;I tried auto-minimizing the bar, but since I can only hover my mouse over the icon when the taskbar is shown, that is not a solution.&lt;br /&gt;&lt;br /&gt;I can drag the taskbar to the sides of the screen, and that seems to fix the problem, but I don't like having the taskbar all the way over there.&lt;br /&gt;&lt;br /&gt;Microsoft is patching a bunch of things today. I wonder if this is something they broke earlier and will fix in this update. I can only wait and see.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-3991036112990108930?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/3991036112990108930/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=3991036112990108930' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/3991036112990108930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/3991036112990108930'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/05/xp-taskbar-covers-popup-text.html' title='XP Taskbar covers popup text'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-3997058642669520334</id><published>2007-05-07T03:22:00.000-07:00</published><updated>2007-05-07T09:00:28.810-07:00</updated><title type='text'>Java Japanese font troubles</title><content type='html'>I am trying to get Netbeans working correctly on my PC.&lt;br /&gt;&lt;br /&gt;As you already know, I'm in Japan, so my OS is WinXP Japanese language edition. In default mode, the locale is set to Japanese. Java takes that information and passes it along to Java apps. If an app, like Netbeans, has an internationalized config file, it will load the appropriate language strings and fonts.&lt;br /&gt;&lt;br /&gt;If, on the other hand, a user does not want Japanese menus, the default system locale must be changed to English. This causes Java to interpret the environment as an English system, and all English strings and fonts are loaded. However, this has the side-effect of making Japanese fonts unreadable. Little boxes are displayed where Japanese characters should be. In Netbeans, this is first obvious in the File-&gt;Open-&gt;Browse dialog where "マイコンピュータ" should be displayed, but instead "□□□□□□□□" is.&lt;br /&gt;&lt;br /&gt;On top of that, the editor itself ceases to be able to display Japanese fonts as well.&lt;br /&gt;&lt;br /&gt;I was able to work around the editor problem by setting the editor font to MS Mincho, but I would much rather have the fixed-size fonts available for coding. Unfortunately, this still doesn't fix the problem of broken fonts in the system dialog boxes, but I can probably live with that.&lt;br /&gt;&lt;br /&gt;I know I'm not the first person to run into this problem. The Sun support boards have the same problem repeated several times. It looks like "won't fix" is Sun's plan for this bug.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-3997058642669520334?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/3997058642669520334/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=3997058642669520334' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/3997058642669520334'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/3997058642669520334'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/05/java-language-pains.html' title='Java Japanese font troubles'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-6460601782461621148</id><published>2007-05-06T23:40:00.000-07:00</published><updated>2007-05-07T00:19:30.278-07:00</updated><title type='text'>Which server-side technology?</title><content type='html'>Since joining UIEvolution, I've been dabbling with webserver technologies. This is a huge switch for me, coming from a mostly embedded systems background where the only languages available have been Assembly, C, and C++, and the only technologies were those provided by the hardware makers or self-written.&lt;br /&gt;&lt;br /&gt;When the choices are limited, the boundaries are well-defined and it's easy to focus on the problem at hand. But with servers, there are so many choices that I don't know which direction to go. I started, I suppose as everyone does, with &lt;a href="http://www.apache.org"&gt;Apache&lt;/a&gt;. I'm running on an emulated &lt;a href="http://www.us.debian.org/"&gt;Debian&lt;/a&gt; machine via Microsoft's &lt;a href="http://www.microsoft.com/windows/products/winfamily/virtualpc/default.mspx"&gt;Virtual PC&lt;/a&gt; software. Debian is really nice with their packaging, so Apache automatically came with &lt;a href="http://www.php.net/"&gt;PHP&lt;/a&gt;. It just worked right out of the box (or out of the apt-get, so to speak).&lt;br /&gt;&lt;br /&gt;But then I wondered what else was out there. My experience with &lt;a href="http://www.perl.com/"&gt;Perl&lt;/a&gt; gave me the bright idea to get Perl CGI working on the Apache server. After a bit of hassle, I finally figured out how to get the scripts to run correctly. Unfortunately, I can't figure out how to get &lt;a href="http://www.cpan.org/"&gt;CPAN&lt;/a&gt; to work properly, so my scripts have to run without modules. That kind of sucks. Seeing the ease with which PHP is molded to Apache, I figured there had to be a better way. Perl, despite its goodness, just wasn't going to work out for me.&lt;br /&gt;&lt;br /&gt;But what, then? There are two obvious roads that this question leads down. The first is to stick with CGI (Perl, PHP, Python, Ruby) or to get acquainted with Sun and Java (JSP). Seeing as how I had already messed around with Apache and was pretty fed up with dealing with script locations and file permissions, I installed &lt;a href="http://tomcat.apache.org/"&gt;Tomcat&lt;/a&gt;, the Apache foundation's Java Servlet web server software.&lt;br /&gt;&lt;br /&gt;First thing you notice after apt-getting tomcat5, it doesn't work. Without the Java JDK, you can't do anything with Tomcat. There are no nice apt packages for Java, so the solution was to download the &lt;a href="http://java.sun.com/j2se/1.4.2/install-linux.html"&gt;self-extracting JDK&lt;/a&gt; from Sun and install that. This requires updating the /etc/profile file to define and export the JAVA_HOME environment variable. Log out, log in, voila the envvar is now set. Tomcat works! Hooray!&lt;br /&gt;&lt;br /&gt;Now what? Um... &lt;a href="http://struts.apache.org/"&gt;Struts&lt;/a&gt;? Inline coding? And hey, did PHP stop working? No, it just doesn't work with Tomcat.&lt;br /&gt;&lt;br /&gt;I went to Google with my question. Apparently there are more technologies than problem spaces. Every technology has its adherents, but nothing seems welcoming. Ruby seems to be generating a lot of excitement. Perl seems to be collapsing under the weight of the next version. Python seems to have gone into hibernation. JSP doesn't seem to be anyone's cup of tea. And PHP gives my Perlish brain seizures with its haphazard API. It's all a big mess of technologies, but without any particular one being any better than other ones.&lt;br /&gt;&lt;br /&gt;For the time being, I'll be focusing on JSP since the UIE server-side components are written for JSP and come with some special tags and other niceties that aren't immediately available in other languages. But my question is looking more towards the future (my future). Where is server technology heading? What are the technologies that are in use now telling us about what sorts of technologies we'll be using in the future? What should I study now as to put myself on the front face of the technological wave?&lt;br /&gt;&lt;br /&gt;I just got a message from a friend. He suggests C#.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-6460601782461621148?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/6460601782461621148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=6460601782461621148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/6460601782461621148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/6460601782461621148'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/05/which-server-side-technology.html' title='Which server-side technology?'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-1065827966689898208</id><published>2007-04-07T11:16:00.000-07:00</published><updated>2007-04-07T11:27:11.095-07:00</updated><title type='text'>sImonyi in sPace!</title><content type='html'>I just heard on &lt;a href="http://www.jctv.co.jp/cnnj/index.html"&gt;CNNj&lt;/a&gt; that Microsoft researcher &lt;a href="http://www.intentsoft.com/company/management.html"&gt;Charles Simonyi&lt;/a&gt; has &lt;a href="http://news.com.com/2300-11397_3-6174068-1.html"&gt;blasted off into space&lt;/a&gt;. There are a couple things that surprised me about this.&lt;br /&gt;&lt;br /&gt;First, I had no idea Simonyi was thinking about this. Apparently, I'm the only one, since there was a &lt;a href="http://www.charlesinspace.com/"&gt;website&lt;/a&gt; that covered the whole thing.&lt;br /&gt;&lt;br /&gt;Second, I didn't know that he was dating &lt;a href="http://www.abs-cbnnews.com/storypage.aspx?StoryId=72700"&gt;Martha Stewart&lt;/a&gt;. I always figured she was already married to some poor henpecked guy.&lt;br /&gt;&lt;br /&gt;I suppose dating Stewart is Charles' penance for cursing the world with &lt;a href="http://en.wikipedia.org/wiki/Hungarian_notation"&gt;Hungarian Notation&lt;/a&gt;. I kid, of course. He must have done something much worse.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-1065827966689898208?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/1065827966689898208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=1065827966689898208' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/1065827966689898208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/1065827966689898208'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/04/simonyi-in-space.html' title='sImonyi in sPace!'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-8299615235905867036</id><published>2007-02-13T18:57:00.000-08:00</published><updated>2007-02-13T19:01:40.894-08:00</updated><title type='text'>New computer!</title><content type='html'>For my wife's birthday present (and Christmas present) I got her a new NEC laptop PC. It's running Vista Home Premium. I set it up on Monday afternoon, so she can use it normally.&lt;br /&gt;&lt;br /&gt;I still need to hook up the new printer (Epson), but that shouldn't take too long.&lt;br /&gt;&lt;br /&gt;The big problem is all these boxes that are left over. Cardboard and foam. Is there any use for this stuff?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-8299615235905867036?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/8299615235905867036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=8299615235905867036' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/8299615235905867036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/8299615235905867036'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/02/new-computer.html' title='New computer!'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-7411999892222685372</id><published>2007-01-09T19:45:00.000-08:00</published><updated>2007-01-09T19:48:41.690-08:00</updated><title type='text'>Network share to network share copy</title><content type='html'>Today I am finding my machine bogged down copying files from one network share to another network share. It seems like such a waste to transfer bits to my CPU just to forward them on to another server. You'd think that the fileserver and the destination server could just send the packets directly to each other and send me a notification when finished.&lt;br /&gt;&lt;br /&gt;This is probably something that is easily done by someone with network experience, but I'm stumped. And my PC is crawling.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-7411999892222685372?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/7411999892222685372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=7411999892222685372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/7411999892222685372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/7411999892222685372'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2007/01/network-share-to-network-share-copy.html' title='Network share to network share copy'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-116265588359082818</id><published>2006-11-04T07:50:00.000-08:00</published><updated>2006-11-04T07:58:03.600-08:00</updated><title type='text'>New project idea</title><content type='html'>For reasons that I don't understand, my brother in law wants to download all the images that his sister has uploaded to Flickr for her wedding. He asked me if there was a way to do that from the web interface, and after a few minutes of searching, I don't think there is.&lt;br /&gt;&lt;br /&gt;A quick Google search led me to &lt;a href="http://greggman.com/pages/flickrdown.htm"&gt;FlickrDown&lt;/a&gt; which is exactly what he's looking for. Unfortunately he doesn't have .Net 2.0 installed, so the program is useless until that is installed. This gave me an idea. Wouldn't it be nice to have a non-.Net program that can download images directly from Flickr?&lt;br /&gt;&lt;br /&gt;So that's my new project idea. A reimplementation of FlickrDown with only dependencies on OS components that are guaranteed to be installed in XP. The only caveat is that if done in Java, the JVM needs to be J2SE or better. I can't imagine this would be a terribly long project, but it would be very useful for those who need that functionality.&lt;br /&gt;&lt;br /&gt;I'll let you all know when it's ready.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-116265588359082818?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/116265588359082818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=116265588359082818' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/116265588359082818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/116265588359082818'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/11/new-project-idea.html' title='New project idea'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-116236843357193820</id><published>2006-10-31T23:27:00.000-08:00</published><updated>2006-11-01T00:07:13.640-08:00</updated><title type='text'>Trackman Marble Fx vs Thinkpad T43</title><content type='html'>A long time ago, I bought a &lt;a href="http://www.amazon.com/Logitech-TrackMan-Marble-FX-Trackball/dp/B00000JBUI/sr=8-1/qid=1162365664/ref=pd_bbs_sr_1/002-0819871-7623200?ie=UTF8&amp;s=electronics"&gt;Logitech Trackman Marble Fx&lt;/a&gt; trackball. I brought it with me from Washington DC to Seattle and now to Tokyo. I had completely forgotten about it until last night when I was going through my box of computer peripherals looking for a microphone. It was such a blast from the past to see it again.&lt;br /&gt;&lt;br /&gt;Without hesitation, I brought it to work with me today.&lt;br /&gt;&lt;br /&gt;At work I run a Lenovo (IBM) &lt;a href="http://www.pc.ibm.com/us/notebooks/thinkpad/t-series/index.html"&gt;Thinkpad T43&lt;/a&gt; with a docking station that allows me to hook up my favorite peripherals to the PS/2 adapters as well as hook up a second monitor without always fussing with cables. Until now, I've been pretty happy with my &lt;a href="http://www.microsoft.com/products/info/product.aspx?view=22&amp;pcid=e4eef44d-ef98-44d2-9451-abc336a4ec1b&amp;type=ovr"&gt;Microsoft Natural Multimedia keyboard&lt;/a&gt; and generic PS/2 optical mouse. Not anymore! I've got myself the cream of the trackball crop sitting here begging me to wrap my hand around its sleek form and push its buttons.&lt;br /&gt;&lt;br /&gt;However, what I've found out today is that the T43 and the Marble Fx are not a happy marriage. The Trackman driver software refuses to install the PS/2 drivers on any device that has a built-in trackpad. It will happily install the USB drivers which are TOTALLY USELESS because the Marble Fx does not work well with PS2 to USB adapters.&lt;br /&gt;&lt;br /&gt;So the first idea I had was to just install the USB drivers and see what came up. What came up was that the driver software recognized my Logitech device! Happy day! Until I realized that it couldn't figure out what device it actually was. It let me configure some keys, but the picture shown was for a standard scrollwheel mouse, not a cool 4-button trackball.&lt;br /&gt;&lt;br /&gt;So I uninstalled that driver and thought about the problem some more. Maybe the Logitech driver is sensing the trackpad hardware and is blocking installation. I fired up the T43 BIOS and found the mouse settings. It is normally set to Auto which means that the trackpad will automatically turn itself off in the presence of a PS/2 mouse. The other setting is Disabled which turns the hardware off completely. Since I was running with the setting on Auto until now, I switched it to Disabled to see if I could fool the Logitech driver installation software.&lt;br /&gt;&lt;br /&gt;During bootup, I noticed that the trackball could still move the caret around the screen. The trackpad itself was completely useless and wasn't responding at all. Good news? I started the Logitech software again and the same message as before appeared. We've detected a trackpad installed on this computer, so you're totally out of luck, fella.&lt;br /&gt;&lt;br /&gt;I rolled back the driver again and rebooted, setting the mouse setting back to Auto because in the case of royal hosing, I'd at least like the BIOS to be in the state that I found it.&lt;br /&gt;&lt;br /&gt;Maybe the &lt;a href="http://www-307.ibm.com/pc/support/site.wss/document.do?lndocid=MIGR-42487"&gt;IBM UltraNAV trackpad driver software&lt;/a&gt; had some tricks up its sleeve. Maybe I was working so hard trying to get the Logitech driver working that I totally ignored the possibility that the built in IBM software could do what I wanted.&lt;br /&gt;&lt;br /&gt;Start-&amp;gt;Programs-&amp;gt;Access IBM-&amp;gt;UltraNAV!&lt;br /&gt;&lt;br /&gt;Sorry, we've detected that your trackpad is not working at this time, please hang up and try your call again.&lt;br /&gt;&lt;br /&gt;Ah, with Auto set in the BIOS, the trackpad goes offline while docked in the station. I popped the machine off the docking station and the program worked this time. However, there were no settings whatsoever having to do with my external mouse. Beyond that, the settings available for the trackpad were pretty redundant. There are 5 buttons and 1 trackpoint nub on the T43. 4 of the buttons are pretty much the same and the remaining middle button requires such convoluted usage that keyboard navigation of GUIs seems tolerable.&lt;br /&gt;&lt;br /&gt;Maybe if I remap the trackpad buttons, those same settings will be reflected in the PS/2 mouse behavior. I did my best to figure out which buttons on the trackpad mapped to which buttons on the trackball, but to no avail. When the PS/2 mouse is plugged in, the UltraNAV software turns over control to the OS or something and the default button mapping is used.&lt;br /&gt;&lt;br /&gt;So I sit here now with this great trackball but only three buttons working. I don't know what I need to do to get that fourth button working, much less have it mapped to the functions that I want. I don't even know who to complain to. IBM? Lenovo? Logitech? The device is so old that it's not available except from specialty hardware stores anymore, so I doubt I can get any service on it.&lt;br /&gt;&lt;br /&gt;If you know how to enable all the buttons on the Logitech Trackman Marble Fx trackball on a Thinkpad T43, please let me know.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-116236843357193820?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/116236843357193820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=116236843357193820' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/116236843357193820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/116236843357193820'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/10/trackman-marble-fx-vs-thinkpad-t43.html' title='Trackman Marble Fx vs Thinkpad T43'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115763587188438932</id><published>2006-09-07T05:59:00.000-07:00</published><updated>2006-09-07T06:31:11.926-07:00</updated><title type='text'>Ground floor</title><content type='html'>Do you ever get the feeling like you're in on the ground floor of a technology that is going to make a significant impact? It doesn't have to necessarily be the absolute birth of that technology, though that's probably the easiest time to climb on board. Rather it's when the technology is on the cusp of something great. Whether it be something obvious like a lot of attention suddenly being paid to it, or more subdued like the gradual buildup of industry support, or even when the technology is still undiscovered but answers and solves a difficult problem, the cusp is that point just before rapid growth.&lt;br /&gt;&lt;br /&gt;I've been in the right place at the right time to have caught two rising trends as I saw them about to take off. The first was Java back when it was still very new and just gaining momentum. I sometimes wonder what I'd be doing now if I had grabbed hold of that rocket back then. When I entered the industry later, I tried to recreate that sort of energy with Perl, but with the sudden impact of Python and Ruby, Perl's dominance waned.&lt;br /&gt;&lt;br /&gt;The second rising trend that I spotted and considered jumping aboard was XML. This was a technology that, unlike Java, didn't do anything. You had to write programs to do anything with XML data. It was just data! I lacked the foresight at that time to really see what XML was all about and the possibilities that it had through the ability to write powerful frameworks to make the most of that data just because the markup was so simple.&lt;br /&gt;&lt;br /&gt;Now, at UIEvolution, I believe the technology we've got is something huge. The language itself is up to version 2.0, but there is very little noise about it so far. Being in the cusp is full of energy but not much volume. That in itself doesn't mean that UJML and the UIPlayer are on the cusp, of course, it isn't even really an indicator of such.&lt;br /&gt;&lt;br /&gt;What excites me about UJML and UIPlayer is its ability to solve a very common problem elegantly. It allows for the development of GUI applications very rapidly for memory-constrained devices that typically do not have GUI RAD tools. It is a lot like HTML in that much of the language is dedicated to showing things on the screen, but unlike HTML and other static markup languages, UJML is a real programming language with the capabilities you'd expect of one.&lt;br /&gt;&lt;br /&gt;The biggest benefit is the introduction of states as first class language constructs. Instead of thinking about your embedded program as a series of flowcharts or object diagrams, you can instead think of it as a set of distinct states and state transitions.&lt;br /&gt;&lt;br /&gt;First, this type of state-based thinking allows you to easily design an application. Simply define the screens you expect to show the user. Each screen will support a few selected events which will then transition the screen to either a new state or to a new screen altogether. With the visual element display support, UJML makes drawing your ideas very simple and turning them into active programs simpler still.&lt;br /&gt;&lt;br /&gt;Second, since states may be stacked above each other, it is possible to generate a level of polymorphism in an application which is difficult in another programming paradigm. The application itself is one single active object intercepting events. You don't have to have separate active objects waiting for certain events, the UIPlayer will act as a sieve and pass an event to the appropriate state machine or disregard it completely if no state is requesting it. Since this also means that states may overlap each other's handling, certain state machines may be designed to act as "base behavior" while other state machines may override that behavior when they become active. It's quite different thinking than most other paradigms, but it is also very intuitive once you get past the initial awkwardness of trying to implement standard programming paradigms in this language.&lt;br /&gt;&lt;br /&gt;The UJML language and the UIPlayer are designed to solve a very common problem. How can I quickly create a program that implements multiple layers of functionality and is also portable across multiple platforms? Competing solutions are Flash, AJAX, and Java, but those also come with different sets of issues and learning curves. Their approach to solving this problem space is different, but the results are similar. What UJML lacks is an IDE which makes writing the code a breeze and also a visual editor which makes laying visual elements out easier. Once those are in place, it is only a matter of getting enough industry attention to push this technology over the edge of the cusp. Whether that will be possible is still to be seen.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115763587188438932?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115763587188438932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115763587188438932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115763587188438932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115763587188438932'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/09/ground-floor.html' title='Ground floor'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115555667434535900</id><published>2006-08-14T04:56:00.000-07:00</published><updated>2006-08-14T04:57:54.353-07:00</updated><title type='text'>Dumb tech terminology #1</title><content type='html'>The word &lt;a href="http://en.wikipedia.org/wiki/Mashup_%28web_application_hybrid%29"&gt;mashup&lt;/a&gt; is such a silly word.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115555667434535900?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115555667434535900/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115555667434535900' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115555667434535900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115555667434535900'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/08/dumb-tech-terminology-1.html' title='Dumb tech terminology #1'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115431360183366022</id><published>2006-07-30T19:18:00.000-07:00</published><updated>2006-07-30T19:40:02.053-07:00</updated><title type='text'>Posters in the train station</title><content type='html'>If you've ever had the chance to ride the trains here in Tokyo, you'd be familiar with the overwhelming number of posters both on the train and in the stations. Today I saw some station attendants taking down old posters and putting up some new ones on the station wall.&lt;br /&gt;&lt;br /&gt;Each poster board (where posters get stapled to) can hold up to eight standard posters. Each poster looks to be about &lt;a href="http://home.inter.net/eds/paper/papersize.html"&gt;JIS-B1&lt;/a&gt; size. So the entire area is somewhere on the order of 4m x 1.5m. Not small by any means.&lt;br /&gt;&lt;br /&gt;But what is the cost of something like that? Each poster requires the design and printing run and the costs associate with that. Each station requires two attendants to take down and put up the new signs at least once a week. And the old posters need to be recycled, so the cost of recycling all the posters for all the stations every week is non-negligble.&lt;br /&gt;&lt;br /&gt;I haven't run the numbers, and I expect they do not come out especially favorably in favor of replacing all the posters with large LCD screens, but I wonder what the impact of having electronic billboards rather than paper posters would be.&lt;br /&gt;&lt;br /&gt;Obviously you'd have some drawbacks. The first being that the cost of replacement is going to be enormously high. LCD screens of the size mentioned above are prohibitively expensive. They are prone to break more often than corkboard (which I suppose could fail eventually given the humidity here in Tokyo). And the cost of replacement or repair in the event of defacement is very high. All in all, it's a pretty risky deal.&lt;br /&gt;&lt;br /&gt;Other debatable drawbacks include the putting out of work those poster printers, station attendants, and some staff at the recycling plant. These are some of the social costs involved in replacing human work with machinery.&lt;br /&gt;&lt;br /&gt;On the technical side, it's always risky to put out programmable displays where the public can access. A hacker could find a hole in the security system and display whatever images he wished. This is still possible with posters, all it takes is a printer and some staples, but the ability to attack all vulnerable screens in one fell swoop is pretty enticing.&lt;br /&gt;&lt;br /&gt;So what are the benefits?&lt;br /&gt;&lt;br /&gt;First, it would reduce costs in the long run, if the cost of the screens could be minimized. Lower insurance costs as a result of no more ladder falls and no more staple-pierced fingers could be realized. Paper would not need to be purchased by the advertiser, the poster image can be sent directly to the railway offices for immediate upload rather than to the printers for an expensive printing run. In the back room, a handful of engineers could handle the uploading of all new posters instead of two station attendants per station physically taking the posters down and putting them up.&lt;br /&gt;&lt;br /&gt;Given the cost reductions possible, it seems only a matter of time before rail companies here replace the current system of paper posters with LCD screens that can provide a better experience than paper could. The amount of time it will take is the amount of time it requires to bring LCD screen prices down to levels that would make this a realistic alternative. Unfortunately, that is not yet the case.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115431360183366022?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115431360183366022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115431360183366022' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115431360183366022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115431360183366022'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/posters-in-train-station.html' title='Posters in the train station'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115334459098856335</id><published>2006-07-19T14:27:00.000-07:00</published><updated>2006-07-19T14:29:50.996-07:00</updated><title type='text'>How do I set the time in Outlook?</title><content type='html'>I am currently in Seattle for some meetings and need to reset my Outlook timezone to reflect that I am here rather than in Tokyo. All my appointments look like they are set up for the middle of the night!&lt;br /&gt;&lt;br /&gt;So, how do I set the current time such that all my appointments will be updated to the correct current local time?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115334459098856335?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115334459098856335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115334459098856335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115334459098856335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115334459098856335'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/how-do-i-set-time-in-outlook.html' title='How do I set the time in Outlook?'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115314410337351008</id><published>2006-07-17T06:48:00.000-07:00</published><updated>2006-07-17T06:54:03.653-07:00</updated><title type='text'>IBM ThinkPad noises</title><content type='html'>So I'm sitting here at home using my ThinkPad T43 and just noticed a strange buzzing noise coming from nearby. It happens whenever the screen scrolls, like when scrolling on a webpage.&lt;br /&gt;&lt;br /&gt;I've tracked it down to the AC adapter brick. It buzzes whenever I press a key or use the touch pad. I just touched it and it's very very hot.&lt;br /&gt;&lt;br /&gt;Normal behavior? Or am I risking a fire by using this in my house?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115314410337351008?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115314410337351008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115314410337351008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115314410337351008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115314410337351008'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/ibm-thinkpad-noises.html' title='IBM ThinkPad noises'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115284735449647495</id><published>2006-07-13T20:13:00.000-07:00</published><updated>2006-07-13T20:22:34.536-07:00</updated><title type='text'>Prefs.ini followup</title><content type='html'>I mentioned earlier that I was &lt;a href="http://lentiltech.blogspot.com/2006/07/cant-find-prefsini.html"&gt;having trouble opening web links from within applications&lt;/a&gt;. As is typical, the error code gives absolutely zero information about what is actually wrong.&lt;br /&gt;&lt;br /&gt;After a bit of searching on the Internet, I finally found what I was looking for. Unfortunately, it was in Japanese. Luckily, it pointed to a &lt;a href="http://support.microsoft.com/kb/257464/en-us"&gt;Microsoft KB article&lt;/a&gt;. After poking around the Control Panel applets, as specified in "Method 1", nothing seemed to be working. So I finally bit the bullet and went into File Types as specified in Method 2.&lt;br /&gt;&lt;br /&gt;Aha! It turns out that all my weblink actions were somehow re-mapped to use a program called &lt;a href="http://www20.pos.to/~sleipnir/"&gt;Sleipnir&lt;/a&gt;. In Japan, Sleipnir is a semi-popular IE-based browser that provides a lot of extra features on top of the base IE browser control. However, uninstalling it leaves a lot of garbage registered which causes things like weblinks to fail to open.&lt;br /&gt;&lt;br /&gt;It took a few minutes, but I think I cleaned up the mess it made. At least it seems like weblinks are working properly now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115284735449647495?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115284735449647495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115284735449647495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115284735449647495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115284735449647495'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/prefsini-followup.html' title='Prefs.ini followup'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115277391883741703</id><published>2006-07-12T23:57:00.000-07:00</published><updated>2006-07-13T01:25:39.456-07:00</updated><title type='text'>Hotmail's spam filter is failing</title><content type='html'>I'm getting quite a bit of spam lately in my Hotmail account. For a while there it was almost spam-free, but there's been a sudden influx of spam mails.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115277391883741703?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115277391883741703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115277391883741703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115277391883741703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115277391883741703'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/hotmails-spam-filter-is-failing.html' title='Hotmail&apos;s spam filter is failing'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115275523830622792</id><published>2006-07-12T18:42:00.000-07:00</published><updated>2007-10-21T19:33:03.096-07:00</updated><title type='text'>Virtual PC now free!</title><content type='html'>You may remember when I mentioned that Microsoft was &lt;a href="http://lentiltech.blogspot.com/2006/04/microsoft-is-giving-away-store.html"&gt;giving away the store&lt;/a&gt;. Back then, MS was mostly into giving away Virtual Server in an effort to get people interested in their main server offerings, and also their Express versions of VS 2005 to get people interested in developing for .Net 2.0.&lt;br /&gt;&lt;br /&gt;Now I can't even imagine what they are thinking about &lt;a href="http://www.microsoft.com/windows/virtualpc/downloads/sp1.mspx"&gt;giving away Virtual PC&lt;/a&gt;. Could it be that they want people to test drive Vista beta? Keep people from switching to Linux by giving them the best of both worlds?&lt;br /&gt;&lt;br /&gt;Maybe it will let me &lt;a href="http://lentiltech.blogspot.com/2006/07/cant-find-prefsini.html"&gt;re-image this machine&lt;/a&gt; without losing any data.&lt;br /&gt;&lt;br /&gt;Update: I can't seem to load some DVD iso images directly. The size limit for iso files is 2.2GB, but my iso file is 3.5GB.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115275523830622792?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115275523830622792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115275523830622792' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115275523830622792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115275523830622792'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/virual-pc-now-free.html' title='Virtual PC now free!'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-115262870253848271</id><published>2006-07-11T07:30:00.000-07:00</published><updated>2006-07-11T07:38:22.583-07:00</updated><title type='text'>Can't find prefs.ini</title><content type='html'>I just started at a new company.  I intend to blog about it, but for now I'm just too busy trying to learn the new technology to spend any time doing anything else.&lt;br /&gt;&lt;br /&gt;One nice thing that they did when I joined was give me a \300,000 (300kJPY) limit and let me go hog wild choosing my own work PC.  Oh, I could choose from a tiny Sony handheld or a giant Hitachi desktop replacement, but I really wanted (needed) WinXP Professional so I ended up asking for a Thinkpad with an extra big hard disk and lots of spare RAM.&lt;br /&gt;&lt;br /&gt;I think I've been hornswaggled!  The laptop I received seems to be slightly used and the hard disk is quite a bit smaller than I had anticipated.  In addition, there is a lot of software that is installed that couldn't possibly have come on the recovery CD.&lt;br /&gt;&lt;br /&gt;The worst part of it is, though, that I seem to be missing a file called prefs.ini.  This becomes painfully obvious when I try to open a URL from within any application other than the browser.  I can't even register VS Express because I can't open the registration link from within the installation program.  Hyperlinks also don't work from within Outlook.  Forget about MS Word.&lt;br /&gt;&lt;br /&gt;I'm thinking it may be necessary to get the restore disks out and just blow away the whole installation and start from scratch.  I just wish I had that sort of time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-115262870253848271?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/115262870253848271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=115262870253848271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115262870253848271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/115262870253848271'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/07/cant-find-prefsini.html' title='Can&apos;t find prefs.ini'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114951945211373902</id><published>2006-06-05T07:51:00.000-07:00</published><updated>2006-06-05T07:57:32.126-07:00</updated><title type='text'>Hotmail Live beta works in Firefox</title><content type='html'>If you've been participating in the &lt;a href="http://mail.live.com"&gt;Hotmail Live beta&lt;/a&gt; and using both IE and Firefox, you'd be aware that what works so nicely in IE barely works at all in Firefox.  Niceties like context menus and drag and drop were totally broken and the best that you could do was default to the original Hotmail interface with a few token UI upgrades (mostly nicer graphics).  However in the past couple days that seems to have all changed.&lt;br /&gt;&lt;br /&gt;I'm looking at a Hotmail Live beta session in Firefox as we speak and it has all the features that are normally only available in IE.  It seems like Microsoft finally got their heads straight about browser compatibility and are on the AJAX bandwagon with other webmail clients like &lt;a href="http://www.gmail.com"&gt;Google Mail&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The only drawback is that Hotmail is slow with a capital SLOW.  Whatever AJAX processing they're doing, it's really overkill or something because what takes a moment to display in Gmail takes several seconds in the Live.com interface.  Let's hope they get that worked out and we can finally have a real competitor to Gmail in the webmail biz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114951945211373902?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114951945211373902/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114951945211373902' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114951945211373902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114951945211373902'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/06/hotmail-live-beta-works-in-firefox.html' title='Hotmail Live beta works in Firefox'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114857074266200019</id><published>2006-05-25T07:58:00.000-07:00</published><updated>2006-05-25T09:30:59.080-07:00</updated><title type='text'>A difficult simple test framework</title><content type='html'>I'm working on writing a few unit tests for the latest of my projects and have come up with a fairly simple test code template that allows both easy implementation as well as straightforward extensibility.&lt;br /&gt;&lt;br /&gt;The general idea is to put all the test cases into an array of function pointers.  The following is an example of the code:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;// Define the shape of the function &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;pointer&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;  &lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;typedef void(*fn_ptr)(DataType&amp;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;#define TESTCASE(fn) void (fn)(DataType&amp; param)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TESTCASE(test1); // Declare a testcase&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TESTCASE(test2); // Declare another&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// Define the global array&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;const fn_ptr test_array[] =&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;test1,&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;test2,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;};&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;const int NumOfCases = sizeof(test_array) / sizeof(fn_ptr);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// implement the test case&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;TESTCASE(test1)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Do something&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;// The main test driver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;int main()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;   {&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;for (int i=0; i&amp;lt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:courier new;"&gt;NumOfCases; i++)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;numofcases i=""&gt;&lt;br /&gt;    &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;          &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// do some test case initialization&lt;/span&gt;&lt;br /&gt;          &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;(*test_array[i])(param);&lt;/span&gt;&lt;br /&gt;          &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;// clean up the test case resources&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-family:courier new;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/numofcases&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;The benefit of this code is that once the test case initialization and cleanup are taken care of, the developer/tester can concentrate on implementing test cases rather than trying to worry about those mundanities in every test case. The test case writer just comes up with a good name for a test case, uses the TESTCASE() macro to declare the function, adds the new function to test_array[], and then adds the test implementation. The test will automatically be run the next time through, plus there is no reason why tests can't be injected directly into the array rather than appended to the end. One other benefit that is realizable with this setup is that with good planning, it may be possible to break the array into discrete test areas such that only the test cases specified by offset are run (I may add this functionality later if it is useful and necessary).&lt;br /&gt;&lt;br /&gt;The drawback is (besides its unreadability) is that it is tedious to add a function declaration AND add that new function to test_array[]. What I am trying to think of here is a way to condense those two operations into a single operation which would simplify this test program template even further. It does no one any good if a test case is written but is never entered into the test_array.&lt;br /&gt;&lt;br /&gt;Visual Studio 2003 has macro capabilities, and I may end up relying on that, but I'd much rather be able to implement something using the standard C++ preprocessor and compiler stack rather than anything IDE-specific. As of now, I'm doing it by hand and it is error prone and difficult once the list of test cases becomes longer than half the screen size.&lt;br /&gt;&lt;br /&gt;If there is a better way to do this, I'm all ears.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114857074266200019?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114857074266200019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114857074266200019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114857074266200019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114857074266200019'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/05/difficult-simple-test-framework.html' title='A difficult simple test framework'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114766069071091889</id><published>2006-05-14T18:47:00.000-07:00</published><updated>2006-05-14T19:38:10.770-07:00</updated><title type='text'>How would you test this code?</title><content type='html'>This past weekend I went through a hellish interview with the home office PM for one of the positions I am interviewing for.  Making the interview harder than usual was the fact that it was held early in the morning to synchronize our schedules.  Also, it was a phone interview and that brought with it all the bad reception problems that that brings along.&lt;br /&gt;&lt;br /&gt;Groggy and unable to hear half the interview, I plowed through the best I could.  Unfortunately, I don't think I made the best impression I could.&lt;br /&gt;&lt;br /&gt;One question I got especially hung up on had to do with testing of code.  First, I was asked to code up a fairly simple set of functions that translated some data from one format to another.  Then I was grilled for 15 minutes on the intricacies of the C function call conventions.  He asked me why the incremented parameter in the subfunction was not also updating the passed variable in the calling function and I couldn't wrap my head around what he was asking.  Pass by value, pass by value, pass by value.  It's all I could think of to answer.  After 15 minutes of trying to dig deeper into the question, I finally figured out that he was trying to get me to explain how pass by value works and how it uses the callstack, etc.  That was a big minus, I think.&lt;br /&gt;&lt;br /&gt;After answering the question to his satisfaction (as satisfied he could be with an answer that took 15 minutes to cajole out of me), he asked me how I would test this code.  I don't think I have a good answer for that.&lt;br /&gt;&lt;br /&gt;Obviously there are some general criteria for any testing.  Internal consistency (parameters OK), external consistency (return values OK), performance criteria, thread safety, correct processing, correct error handling, etc.  However, none of these came to mind due to the frazzled state of mind.  What did come to mind were specific test cases that exercised the function as much as necessary, but I don't think that's what he was looking for.&lt;br /&gt;&lt;br /&gt;To be frank, I believe myself to be undertrained in this general area.  I am looking to improve my code testing processes, and am wondering where to begin looking.  &lt;a href="http://www.amazon.com/gp/product/0471358460/sr=8-1/qid=1147659765/ref=pd_bbs_1/102-3015864-6328153?%5Fencoding=UTF8"&gt;Kaner, et al.&lt;/a&gt; is where most of my testing knowledge comes from, but that generally approaches the testing process from a tester's point of view rather than a programmer's point of view.&lt;br /&gt;&lt;br /&gt;I am aware of methodologies such as &lt;a href="http://agilemanifesto.org/"&gt;Agile&lt;/a&gt;, but I am looking for something more basic that can give me a good idea about what code testing is and the useful techniques for approaching the problem.  The ultimate goal isn't just to pass some interview, but rather to improve my efficiency as a programmer.&lt;br /&gt;&lt;br /&gt;Any ideas where to start looking?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114766069071091889?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114766069071091889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114766069071091889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114766069071091889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114766069071091889'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/05/how-would-you-test-this-code.html' title='How would you test this code?'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114603856929005019</id><published>2006-04-26T01:00:00.000-07:00</published><updated>2006-04-26T19:10:51.416-07:00</updated><title type='text'>Good news and bad news</title><content type='html'>&lt;span style="font-weight:bold;"&gt;The good news&lt;/span&gt;&lt;br /&gt;The last two bugs have fallen out of the code and everything runs great.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The bad news&lt;/span&gt;&lt;br /&gt;I haven't the slightest idea what I changed to make this miracle happen.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;The worse news&lt;/span&gt;&lt;br /&gt;The code only seems to work properly in Debug builds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114603856929005019?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114603856929005019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114603856929005019' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114603856929005019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114603856929005019'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/04/good-news-and-bad-news.html' title='Good news and bad news'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114585368586725073</id><published>2006-04-23T21:34:00.000-07:00</published><updated>2006-04-23T21:41:25.876-07:00</updated><title type='text'>Catching a breather</title><content type='html'>For what seems to be an eternity, I've been working on this Symbian device driver.  Just when I think I have it working, suddenly something else pops up elsewhere.  Lately it's mostly been a matter of very poor performance, but before that it was problems with hardware interrupts not firing when they were expected.  Finally, last Thursday the hardware manufacturer popped up out of nowhere and requested that we send our devices back because they'd like to take a look at the things and send us an updated set of devices.&lt;br /&gt;&lt;br /&gt;Is it possible that the performance issues were hardware related?   I hope so.  It alleviates a lot of my pressure if that is the case.&lt;br /&gt;&lt;br /&gt;So I sent the devices out on Friday morning and am expecting the new hardware any minute now.  I've got a few minutes to take a breather and just unwind.  Maybe I'll try to learn a new programming language.  Maybe I'll just pass out on the floor and catch up on some overdue sleep.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114585368586725073?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114585368586725073/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114585368586725073' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114585368586725073'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114585368586725073'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/04/catching-breather.html' title='Catching a breather'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114552374583830059</id><published>2006-04-20T01:55:00.000-07:00</published><updated>2006-04-20T02:02:25.850-07:00</updated><title type='text'>Microsoft is giving away the store</title><content type='html'>Free this, free that, Microsoft is giving its software away for free!  Not all of it, but a lot of the fun stuff, that's for sure.&lt;br /&gt;&lt;br /&gt;The latest one is &lt;a href="http://msdn.microsoft.com/vstudio/express/"&gt;Visual Studio Express&lt;/a&gt;.  It was actually free for download previously, but there was  a $50 price tag that would be invoked a few months down the line.  That sword is no longer dangling over the heads of the casual VSexpress programmer.&lt;br /&gt;&lt;br /&gt;Will they start making express versions of all their products?  Will they release their non-mainline products as free?  We can only hope.&lt;br /&gt;&lt;br /&gt;Dear Microsoft,&lt;br /&gt;&lt;br /&gt;Please release &lt;a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcepbguide5/html/wce50conPlatformBuilderUsersGuide.asp"&gt;Platform Builder&lt;/a&gt; for free without the 180 day time limit.&lt;br /&gt;&lt;br /&gt;Sincerely,&lt;br /&gt;&lt;br /&gt;Lauren&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114552374583830059?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114552374583830059/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114552374583830059' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114552374583830059'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114552374583830059'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/04/microsoft-is-giving-away-store.html' title='Microsoft is giving away the store'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114437929235755954</id><published>2006-04-06T20:01:00.000-07:00</published><updated>2006-04-06T20:10:12.890-07:00</updated><title type='text'>Microsoft Virtual Server Success (so far)</title><content type='html'>I put together a 3Gb virtual hard disk and cobbled together a virtual machine.&lt;br /&gt;&lt;br /&gt;Here's me installing RedHat 9 on the virtual server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/3624/504/1600/RH_on_Win.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/3624/504/320/RH_on_Win.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You'll notice that the title bar is not highlighted. That's because the VM is intercepting the PrintScreen key. I just set another window as the focus screen and took a full-screen screenshot.&lt;br /&gt;&lt;br /&gt;It just finished up the installation and is rebooting now. The system seems to be doing a proper boot up sequence at this point, so it's only a few more moments until I'm running Gnome on Linux on Windows.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114437929235755954?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114437929235755954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114437929235755954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114437929235755954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114437929235755954'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/04/microsoft-virtual-server-success-so.html' title='Microsoft Virtual Server Success (so far)'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114433493322494347</id><published>2006-04-06T07:30:00.000-07:00</published><updated>2006-04-06T07:48:53.266-07:00</updated><title type='text'>Microsoft Virtual Server Part ][</title><content type='html'>OK.  First, you can't use &lt;a href="http://www.mozilla.com/firefox/"&gt;Firefox&lt;/a&gt; as your Virtual Server Manager browser client.  Let alone running it with Javascript disabled.&lt;br /&gt;&lt;br /&gt;But now I've got it working in IE, though it seems to be a pain that I can't set IE as the default browser for this application without setting it system-wide.&lt;br /&gt;&lt;br /&gt;I've gone and created a 3Gb virtual hard disk.  Next up is to create a machine that uses that disk.&lt;br /&gt;&lt;br /&gt;Everything looks good except the following:&lt;br /&gt;&lt;br /&gt;"&lt;br /&gt;&lt;table cellpadding="3" cellspacing="0"&gt; &lt;tbody&gt;&lt;tr class="table_even_row"&gt; &lt;td class="table_cell_normal" colspan="2"&gt; &lt;b&gt;Virtual Machine Additions&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr class="table_even_row"&gt; &lt;td class="table_cell_normal" colspan="2"&gt;Important: We highly recommend that you  install Virtual Machine Additions. Virtual Machine Additions provides  performance and feature enhancements for Windows-based guest operating systems.  These features include: time synchronization between guest and host operating  systems, mouse integration when using the ActiveX control in Virtual Machine  Remote Control (VMRC), and a heartbeat for the guest operating system to monitor  the state of the virtual machine.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt; &lt;/table&gt; "&lt;br /&gt;&lt;br /&gt;Where do I get that?  Hmm... Anyway.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114433493322494347?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114433493322494347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114433493322494347' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114433493322494347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114433493322494347'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/04/microsoft-virtual-server-part.html' title='Microsoft Virtual Server Part ]['/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-114432303432389058</id><published>2006-04-06T04:21:00.000-07:00</published><updated>2006-04-06T07:25:22.096-07:00</updated><title type='text'>Microsoft Virtual Server available for free</title><content type='html'>There is a lot of recent activity on the &lt;a href="http://blogs.msdn.com/"&gt;MSDN Blog&lt;/a&gt; site regarding the recent release of &lt;a href="http://www.microsoft.com/windowsserversystem/virtualserver/software/default.mspx"&gt;Microsoft Virtual Server 2005 R2&lt;/a&gt;.  My machine seems to be up to the minimum specs, so I think I'll give it a go.&lt;br /&gt;&lt;br /&gt;The big deal seems to be that it's free to download, and there's no expiration period on it. Since it seems at least somewhat related to &lt;a href="http://www.microsoft.com/windows/virtualpc/default.mspx"&gt;Virtual PC&lt;/a&gt;, I took a look at that page and found it to be not free.  There is a &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=360cafd6-5098-4c64-9ca7-a30f225859f6&amp;DisplayLang=en"&gt;45-day trial version&lt;/a&gt;, but I think I'll stick with free for now.&lt;br /&gt;&lt;br /&gt;Now why are they releasing it free? Probably some nefarious plot to boost sales and maximize profits. Whatever the case, it's one more toy for me.&lt;br /&gt;&lt;br /&gt;Update:&lt;br /&gt;The "Complete" installation requires IIS to be installed and enabled in order to install the Virtual Server Web management tool (or something to that effect). No big deal. Just choose "Custom" from the installation menu and we're off to the races.&lt;br /&gt;&lt;br /&gt;Update 2:&lt;br /&gt;Nice little no-warning network adapter reset there at the end of installation. That was very freaky. A warning dialog would have been nice.&lt;br /&gt;&lt;br /&gt;Update 3:&lt;br /&gt;It seems like it wants IIS like a 6 year old wants a pony.  Here goes.  Hopefully this doesn't attract attention from IT...&lt;br /&gt;&lt;br /&gt;Update 4:&lt;br /&gt;Hi, I'm your Virtual Server 2005 Manager application.  I don't work or play well with Firefox.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-114432303432389058?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/114432303432389058/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=114432303432389058' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114432303432389058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/114432303432389058'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2006/04/microsoft-virtual-server-available-for.html' title='Microsoft Virtual Server available for free'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-112986299328282812</id><published>2005-10-20T11:41:00.000-07:00</published><updated>2005-10-20T19:49:53.286-07:00</updated><title type='text'>Finalizing an unfinalized DVD-R?</title><content type='html'>So a few weeks ago &lt;a href="http://ryuchan.blogspot.com/2005/09/famous-nationwide.html"&gt;I was on TV&lt;/a&gt; and I decided that it would be cool to share that with all my friends.  I saved the show on my &lt;a href="http://dav.toshiba.co.jp/dvd/e/lineup/recorder/d-vr1.html"&gt;Toshiba DVR&lt;/a&gt; and was able to watch myself repeatedly make a fool of myself on TV.&lt;br /&gt;&lt;br /&gt;I burned a bunch of DVD-R discs and sent them to my friends overseas.  In the past few days, messages have been trickling in from these friends.  The DVDs don't play.&lt;br /&gt;&lt;br /&gt;I did some searching for the possible reasons and it dawned on me that I didn't do any finalization of the DVDs, so they are unreadable on other players.  For some reason, I figured the recorder would automatically finalize each DVD at the end of recording, so I didn't even think about doing it.&lt;br /&gt;&lt;br /&gt;Is there any way to recover those discs, which are all overseas now, using some PC software?  I saw a comment posted in another forum that recommended &lt;a href="http://www.isobuster.com/"&gt;Isobuster&lt;/a&gt;, but their site (which is chock full of information) doesn't address this problem, at least not directly.&lt;br /&gt;&lt;br /&gt;I would like my friends to be able to watch the DVD without having to reburn and resend new discs.  Is this possible?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-112986299328282812?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/112986299328282812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=112986299328282812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/112986299328282812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/112986299328282812'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/10/finalizing-unfinalized-dvd-r.html' title='Finalizing an unfinalized DVD-R?'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-111802315654991085</id><published>2005-06-06T10:51:00.000-07:00</published><updated>2005-06-05T18:59:16.556-07:00</updated><title type='text'>Quicktime annoyances and GNotify.exe memory usage</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Quicktime sucks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I loathe annoying software.  I am reminded of this every time I encounter .MOV formatted media files.  I recently tried to play some movie in Firefox, but it didn't have the QT plug-in, so I went off to install it.  In the process, the setup script installed something called QTTask.EXE in the system tray.  This little program sucks up about 2megs of memory and doesn't seem to have any real purpose.&lt;br /&gt;&lt;br /&gt;Trying to remove it was a hassle, as every time I rebooted it would mysteriously be restored.  Deleting it also didn't work, it would rise from the grave every time.&lt;br /&gt;&lt;br /&gt;Finally, I got it to go away.  It took a little bit of registry hacking, file deleting, and praying to the computer gods to smite Apple.&lt;br /&gt;&lt;br /&gt;To remove QTTask.exe permanently (in WinXP and other NT derivatives):&lt;br /&gt;&lt;br /&gt;1) Open Task Manager and find qttask.exe in the process list.&lt;br /&gt;2) Right click it and Select End Process.  I suppose you could use Exit from the QTTask context menu, but I don't trust it.  Better to let the OS kill it for you.&lt;br /&gt;3) Open RegEdit and navigate to &lt;br /&gt;&lt;br /&gt;     HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run&lt;br /&gt;&lt;br /&gt;4) Locate QTTask and delete it.  This will stop it from reappearing on bootup.&lt;br /&gt;5) Open Explorer and navigate to C:\Program Files\QuickTime&lt;br /&gt;6) Delete qttask.exe&lt;br /&gt;&lt;br /&gt;Now your system should be free of that scourge without any lingering harm to your system.  There may be some psychological damage inflicted on your Apple-worshipping friends, but be strong in your resistance to Apple's evil system-groping software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Google, how much memory do you need?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the process of trying to kill the Quicktime scourge, I noticed something very interesting and not very good.  GNotify.exe, Google's GMail notification applet, uses 10 megabytes of memory.  According to Task Manager, it is currently using 10,420K memory.  All that memory just to authenticate with the server, retrieve new mails, display a snippet of the mail, and launch a browser when asked to?  Something seems amiss.&lt;br /&gt;&lt;br /&gt;There doesn't seem to be much discussion of this on the web, but it is a very significant chunk of memory on a memory-limited machine like mine at home.  In future versions, I hope the memory usage is reduced.  In the meantime, I have no option but to disable it at home.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-111802315654991085?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/111802315654991085/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=111802315654991085' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/111802315654991085'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/111802315654991085'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/06/quicktime-annoyances-and-gnotifyexe.html' title='Quicktime annoyances and GNotify.exe memory usage'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-111500814201989684</id><published>2005-05-01T21:20:00.000-07:00</published><updated>2005-05-01T21:29:02.020-07:00</updated><title type='text'>Screwdriver set comes in handy</title><content type='html'>Last week I talked about the &lt;a href="http://lentiltech.blogspot.com/2005/04/rescuing-data-when-windows-fails.html"&gt;hard disk problems&lt;/a&gt; that someone in the office was having.  I was trying to download &lt;a href="http://www.knoppix.org/"&gt;Knoppix&lt;/a&gt; or &lt;a href="http://www.ubuntulinux.org/"&gt;Ubuntu&lt;/a&gt; as a LiveCD from which to boot off of and save the data.  Unfortunately, the Knoppix image was about 50 megabytes too large to fit on the CD, and the Ubuntu .iso took far too long to download.  Even after downloading, when I tried to write the image to CD-R, my &lt;a href="http://roxio.com/en/index.jhtml;jsessionid=OC0LRBSBQJKM5LAQAMFRVQVMCABQYIV0?_requestid=468172"&gt;CD writing software&lt;/a&gt; decided that it would rather write the image file to the disk as a data file rather than a disk image.  So I ended up burning two disks with bad images.&lt;br /&gt;&lt;br /&gt;Finally, after deciding not to waste any more time and CD-Rs, I got out my screwdriver set and took the hard disk out of the laptop.  We went over to a nearby electronics shop and picked up an external hard disk case and stuck the broken drive in there.  When we plugged the external hard disk USB cable to another PC, the disk came right up and we were able to rescue the data.  Hooray!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-111500814201989684?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/111500814201989684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=111500814201989684' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/111500814201989684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/111500814201989684'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/05/screwdriver-set-comes-in-handy.html' title='Screwdriver set comes in handy'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-111458206531940661</id><published>2005-04-26T22:58:00.000-07:00</published><updated>2005-04-26T23:12:24.066-07:00</updated><title type='text'>Rescuing data when Windows fails</title><content type='html'>A coworker here just had a laptop system crash at 3:00am this morning and needs to get two files off the laptop.  The system is a WindowsXP installation and the disks are all formatted with NTFS.&lt;br /&gt;&lt;br /&gt;The problem is that the system will not boot up.  The Windows splash screen is displayed, but it quickly bluescreens with an "Unmountable boot partition" error.  The laptop itself does not have a floppy drive and though there are PC Card slots, we don't have any PC Cards here.  There is a CD-RW drive that should be bootable and of course there is a LAN port.&lt;br /&gt;&lt;br /&gt;This leads me to think that a Linux LiveCD containing NTFS drivers and an internet browser should be sufficient to read the most important data and mail it to a webmail address for further retrieval.&lt;br /&gt;&lt;br /&gt;One bug in our ointment is that our CD-RW disks are 650MB and the standard Knoppix iso is about 700MB.  I should have verified this, of course, but it seems that the download time was wasted.  Now I am downloading the 620MB Ubuntu LiveCD and pray that it has the NTFS support that I need.&lt;br /&gt;&lt;br /&gt;This would actually be fun if my hands weren't so tied by lack of resources (small CD-Rs).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-111458206531940661?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/111458206531940661/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=111458206531940661' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/111458206531940661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/111458206531940661'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/04/rescuing-data-when-windows-fails.html' title='Rescuing data when Windows fails'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-110801873331913206</id><published>2005-02-10T15:55:00.000-08:00</published><updated>2005-02-09T22:58:53.320-08:00</updated><title type='text'>The DLL problem's solution</title><content type='html'>The problem was that I use a global buffer that is initialized upon DLL load to a certain string.  However, the buffer length I was using was too small to contain the whole string, so it was bombing out with an Access Violation.  Of course, for Debug builds, the compiler adds a little extra space for each buffer, so the problem did not occur there.  Release builds, trying to get things as tight as possible, does not add any extra buffer, and I ran right into the overflow as soon as my program tried to load the DLL.&lt;br /&gt;&lt;br /&gt;The Access Violation should have given me a better clue as to what was going on.  Now it works and I have one more thing to think about when something goes wrong.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-110801873331913206?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/110801873331913206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=110801873331913206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110801873331913206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110801873331913206'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/02/dll-problems-solution.html' title='The DLL problem&apos;s solution'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-110777038802363206</id><published>2005-02-07T18:58:00.000-08:00</published><updated>2005-02-07T02:12:15.193-08:00</updated><title type='text'>Windows DLL problem update</title><content type='html'>I just tried using the Debug version of the DLL, and it works!&lt;br /&gt;&lt;br /&gt;So the problem seems to be the DLL itself.  What could possibly be different between the Debug and Release DLL versions that is causing this?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-110777038802363206?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/110777038802363206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=110777038802363206' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110777038802363206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110777038802363206'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/02/windows-dll-problem-update.html' title='Windows DLL problem update'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-110776919558807795</id><published>2005-02-07T18:31:00.000-08:00</published><updated>2005-02-07T01:39:55.586-08:00</updated><title type='text'>Problem with Windows DLLs</title><content type='html'>I am trying to get a grip on some simple Windows programming.  I've been out of it for too long, doing things that are really incidental to programming.  Before my skills rust away completely, I want to get back on the wagon and try to get these squeaky developer wheels spinning smoothly again.&lt;br /&gt;&lt;br /&gt;My current project is to work with DLLs.  I have a simple DLL that exports two functions and nothing else.  The DLL has a global variable.  The DLL provides a NULL-terminated string back to the client, and provides a facility to free that memory as well (the client will crash if it tries to free the DLL's memory).&lt;br /&gt;&lt;br /&gt;The client test program loads the DLL implicitly, calls the exported function, prints the returned string, then calls the other exported function to free the memory.&lt;br /&gt;&lt;br /&gt;In Debug build, this works fine.  However, when I run it in a Release build, it crashes with a 0xC0000005 Access violation error.  The code between the two is identical, of course.&lt;br /&gt;&lt;br /&gt;The problem seems to be in the loading of the DLL, because it doesn't even get as far as the first executable line in the test client.  I must be missing something here.&lt;br /&gt;&lt;br /&gt;One thing I have tried is to load the DLL explicitly, but that does not change the behavior at all.  The access violation still occurs.  Hopefully I can figure this out.  I'd hate to have to release all my programs as Debug builds.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-110776919558807795?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/110776919558807795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=110776919558807795' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110776919558807795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110776919558807795'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/02/problem-with-windows-dlls.html' title='Problem with Windows DLLs'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-110776858265738775</id><published>2005-02-07T01:25:00.000-08:00</published><updated>2005-02-07T01:29:42.656-08:00</updated><title type='text'>Added a new Wifi node at home</title><content type='html'>At my old apartment I had a single wireless router that allowed PC usage in the living room.  The router was in the office, so the main PC was directly connected with a cable.  When we moved into our new apartment, the phone jack, living room computer, and office computer all moved far away from each other, so I couldn't use an ethernet cable to hook one of them up (not without a lot of problem, at least).&lt;br /&gt;&lt;br /&gt;So finally, after 3 months, I finally went out and got myself a wireless hub for the office computer.  After fiddling with it for a couple hours, it connected successfully to the wifi router, and now I am net-enabled at home.  Yay!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-110776858265738775?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/110776858265738775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=110776858265738775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110776858265738775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110776858265738775'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/02/added-new-wifi-node-at-home.html' title='Added a new Wifi node at home'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-110498513237941299</id><published>2005-01-05T13:19:00.000-08:00</published><updated>2005-01-05T20:18:52.380-08:00</updated><title type='text'>802.11 easy configuration Part ][</title><content type='html'>A while back, I &lt;a href="http://lentiltech.blogspot.com/2004/08/easy-80211-configuration.html"&gt;wrote a little&lt;/a&gt; about getting little devices onto WiFi networks.  Specifically, I was interested in getting digital cameras onto the networks for easy uploading of content to a networked PC.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.livingroom.org.au/photolog/reviews/kodak/kodak_easyshareone.php"&gt;Kodak&lt;/a&gt; has come up with an early solution to this, but it still seems that several problems that I noted in my original post.  First is that it cannot join a password-protected wireless network.  They are going to release their firmware update which will somehow allow this later this year.  However, they do not discuss how they expect the users to input the WEP key.  The second is that since it cannot select which network it wishes to connect to, any time it is broadcasting it is susceptible to hacking.  Until the firmware update, this is going to be a problem.  And the last issue is that  it still relies on connecting to the computer physically in order to do anything more advanced than picture uploading.&lt;br /&gt;&lt;br /&gt;I'm not sold on Microsoft's USB key solution.  I think it has a lot of user interface issues, especially as a USB socket is fairly large in comparison to the actual size of today's digicams.  On the other hand, I am wary of Kodak's ability to deliver a user-friendly method of inputting WEP keys.&lt;br /&gt;&lt;br /&gt;And until some sort of security is possible with the wireless network, there is nothing really interesting about this camera.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-110498513237941299?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/110498513237941299/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=110498513237941299' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110498513237941299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110498513237941299'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2005/01/80211-easy-configuration-part.html' title='802.11 easy configuration Part ]['/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-110394435835296904</id><published>2004-12-25T12:10:00.000-08:00</published><updated>2004-12-24T19:12:38.353-08:00</updated><title type='text'>Excel is unable to Search&amp;Replace double byte characters</title><content type='html'>One thing that has become painfully clear in these last couple weeks of bug translation is that Excel is incredibly bad at Search &amp; Replace.&lt;br /&gt;&lt;br /&gt;Every day new Excel sheets full of bug reports trickles in from the customer, and it is our job to turn those Japanese reports into English.  This is no small feat, and at best we can each only crank out around 30 translations a day.  So among the five of us, the maximum number of bugs to translate is only about 150 bugs a day.  Unfortunately, not all of us speak English fluently (read: only one of us speaks it), so the actual output is around 80 bugs per day.&lt;br /&gt;&lt;br /&gt;I account for about 30 of those, and the others pick up the slack.  Another guy can do about 25 per day, so it's not like I'm some super-translator or anything.  The biggest problem is that we are receiving more than 150 bugs each day and each day we fall further and further behind.  Currently, we are about 180 bugs behind.  Which is why I'm working on Christmas.&lt;br /&gt;&lt;br /&gt;This would all go much faster if we could automate some of this translation.  First off, Japanese engineers love their double-byte characters.  "-&gt;" is not good enough for them, they need to use "→".  They use double byte characters for just about everything.  Including spaces, brackets, and numbering.  If I could just search for each of those and replace it with the appropriate single-byte character, I could cut about 5% off the time it takes to translate.&lt;br /&gt;&lt;br /&gt;In fact, if I could search and replace on whole words that would be great too.  These are bug reports, not literature, so the reoccurence of words is pretty high.&lt;br /&gt;&lt;br /&gt;The problem is that Excel can't treat double-byte characters as characters.  No, it treats them as numbers, and for that reason it doesn't have the first idea about how to Search and Replace for them.  I am able to do it cell by cell, actually, but such a system is incredibly slow and simply typing the characters in by hand would work just fine.  Why can't I do a sheet-wide Search &amp; Replace on double byte characters?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-110394435835296904?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/110394435835296904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=110394435835296904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110394435835296904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/110394435835296904'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/12/excel-is-unable-to-searchreplace.html' title='Excel is unable to Search&amp;Replace double byte characters'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109937055640403142</id><published>2004-11-02T13:38:00.000-08:00</published><updated>2004-11-01T20:42:36.403-08:00</updated><title type='text'>C++ Exception Handling</title><content type='html'>I have become convinced that C++ exception handling is designed to empower programmers with the ability to leak memory like there's no tomorrow.  A way of ensuring job security, so to speak.&lt;br /&gt;&lt;br /&gt;Yes, there are workarounds to avoid leaking objects when throwing and exception, but they require much more work and thinking than simply recognizing an error condition and cleaning up the local objects and returning an error value.  Now you can instantly lose track of all your objects and throw yourself into a completely separate area of code without an explicit jump!  Hooray for this "power".&lt;br /&gt;&lt;br /&gt;Now, with a GC like Java's got, this isn't a big deal.  The object just loses a reference and gets cleaned up if it's no longer useful.  Not so with C++.  The programmer gets all the power he needs to shoot himself repeatedly in the foot with bigger and bigger object leaks.&lt;br /&gt;&lt;br /&gt;Symbian has the CleanupStack which is designed to remove references to abandoned objects in the event of an exception, but it is very ugly and unwieldy and frankly not well documented.  At least they thought of it, though.  The C++ language needs something like this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109937055640403142?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109937055640403142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109937055640403142' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109937055640403142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109937055640403142'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/11/c-exception-handling.html' title='C++ Exception Handling'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109868610854182199</id><published>2004-10-25T16:30:00.000-07:00</published><updated>2004-10-24T23:35:08.540-07:00</updated><title type='text'>Symbian Complaints</title><content type='html'>I work a lot with Symbian OS.  It, unlike most other embedded operating systems, is completely written in C++.  From the ground up, it is designed to be 100% object oriented.  The class library is staggering.&lt;br /&gt;&lt;br /&gt;For some things, the OO abstraction works wonders.  I don't have to know exactly what type of object I'm manipulating, I can just use the base class interface and use objects polymorphically.  But good god, there are a million and a half objects to think about at any given moment.  It's just so much that doesn't fit in my brain.&lt;br /&gt;&lt;br /&gt;Since it is OO and written in C++, the C support is not up to par with other embedded systems.  There is a C library provided, but it is thin and not very completely implemented.  It works for what it does, but the system really forces you to use C++ instead.  C++ for an embedded system?  Yeah, that's a strange one.&lt;br /&gt;&lt;br /&gt;Symbian has this concept of a "CleanupStack".  When you create an object, you push it on the stack.  If an exception occurs, all objects currently on the stack get deleted.  This is implemented because real C++ exception handling is not implemented in Symbian OS.  No 'try/catch' blocks.  Instead, if a function needs to throw an exception, it "Leave"s.  An exception handler is set up at some scope of the program which catches the exception, destroys all objects on the Cleanup stack, and resumes processing.  The cleanup stack is difficult to understand, and difficult to use.&lt;br /&gt;&lt;br /&gt;Symbian provides little stack space.  It is not uncommon to accidentally blow the stack with a recursive function.  The documentation recommends to use the heap rather than the stack.  If the system were really concerned about squeezing every last byte from a platform, would it really have been implemented in C++?&lt;br /&gt;&lt;br /&gt;The documentation is lacking.  Though getting better in the last couple of releases, the documentation still has a long way to go.  The writing style is too colloquial in addition to being incomplete.  Where a user would expect example code, there is only functional specifications.  Symbian provides a lot of example code, actually, but the code is presented as-is without much in the way of comments or descriptions.&lt;br /&gt;&lt;br /&gt;I'm still trying to wrap my head around the whole operating system and only have the vaguest idea of what is going on.  I guess the C programmer in me is going to need to get drilled out of my head to make room for all this C++ object stuff.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109868610854182199?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109868610854182199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109868610854182199' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109868610854182199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109868610854182199'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/10/symbian-complaints.html' title='Symbian Complaints'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109584665860572528</id><published>2004-09-22T18:45:00.000-07:00</published><updated>2004-09-22T02:51:23.643-07:00</updated><title type='text'>The sales volume must be pretty low</title><content type='html'>So I've been given the order to buy some software for the current project we're working on here.&lt;br /&gt;&lt;br /&gt;The first is &lt;a href="http://www.metrowerks.com/MW/Develop/Wireless/Symbian/OEM_Edition.htm"&gt;CodeWarrior for Symbian&lt;/a&gt; (OEM version, of course).  The other is &lt;a href="http://www.lauterbach.com/frames.html?powerview.html"&gt;Lauterbach Trace32&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Both software packages are upwards of $5,000 USD.  So this little purchase order I'm filling out is about the same as a signficant fraction of my salary.&lt;br /&gt;&lt;br /&gt;Apparently, I'm writing the wrong software because my stuff doesn't sell for anything close to that price.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109584665860572528?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109584665860572528/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109584665860572528' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109584665860572528'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109584665860572528'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/09/sales-volume-must-be-pretty-low.html' title='The sales volume must be pretty low'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109540701149260231</id><published>2004-09-17T16:40:00.000-07:00</published><updated>2004-09-17T01:04:34.646-07:00</updated><title type='text'>Slashdot's 7r0117a1k closed</title><content type='html'>In what seems to be an effort to stem the tide of compromised PC IP addresses being blasted into the forum, Rob "CmdrTaco" Malda has shut down the &lt;a href="http://slashdot.org/comments.pl?sid=31337"&gt;7r0117a1k&lt;/a&gt; forum.&lt;br /&gt;&lt;br /&gt;Long known as a respite from the inane banter of the &lt;a href="http://slashdot.org/comments.pl?sid=20721"&gt;other trolltalk&lt;/a&gt;, sid 31337 has finally gone down the &lt;a href="http://bsd.slashdot.org/comments.pl?sid=36307&amp;cid=3913322"&gt;BSD path&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Truly an American icon.  It will be missed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109540701149260231?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109540701149260231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109540701149260231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109540701149260231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109540701149260231'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/09/slashdots-7r0117a1k-closed.html' title='Slashdot&apos;s 7r0117a1k closed'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109418603446455252</id><published>2004-09-03T13:30:00.000-07:00</published><updated>2004-09-02T21:33:54.463-07:00</updated><title type='text'>Google Mail Notifier</title><content type='html'>There is a &lt;a href="http://update.mozilla.org/extensions/"&gt;Firefox extension&lt;/a&gt; that alerts you to incoming emails to your &lt;a href="http://gmail.google.com"&gt;GMail&lt;/a&gt; account.&lt;br /&gt;&lt;br /&gt;Download it &lt;a href="http://update.mozilla.org/extensions/moreinfo.php?id=173&amp;vid=504"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109418603446455252?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109418603446455252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109418603446455252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109418603446455252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109418603446455252'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/09/google-mail-notifier.html' title='Google Mail Notifier'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109417959197334967</id><published>2004-09-03T11:42:00.000-07:00</published><updated>2004-09-02T21:34:19.093-07:00</updated><title type='text'>Google Mail?</title><content type='html'>So I finally got invited to Google Mail.  Actually, over at &lt;a href="http://www.fark.com"&gt;Fark&lt;/a&gt; they had a &lt;a href="http://forums.fark.com/cgi/fark/comments.pl?IDLink=1105557"&gt;GMail free for all&lt;/a&gt; where someone could graciously post GMail invitation offers.&lt;br /&gt;&lt;br /&gt;I snapped one up and am now inviting others.  Well, close friends and family first.&lt;br /&gt;&lt;br /&gt;BTW, Fark is hosting another GMail thread.  &lt;a href="http://forums.fark.com/cgi/fark/comments.pl?IDLink=1107380"&gt;Get your GMail already!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109417959197334967?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109417959197334967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109417959197334967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109417959197334967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109417959197334967'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/09/google-mail.html' title='Google Mail?'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109392984791634287</id><published>2004-08-30T14:21:00.000-07:00</published><updated>2004-08-31T22:40:29.560-07:00</updated><title type='text'>Cygwin complaint</title><content type='html'>&lt;p&gt;I have a confession to make. I use Windows. Yeah, I know, so just keep your boos and hisses to yourself for a moment.&lt;br /&gt;&lt;br /&gt;I also run &lt;a href="http://www.cygwin.com/"&gt;Cygwin&lt;/a&gt; (and &lt;a href="http://www.mingw.org/msys.shtml"&gt;MSYS&lt;/a&gt;) to allow me to use &lt;a href="http://gcc.gnu.org/"&gt;gcc&lt;/a&gt; and other &lt;a href="http://sources.redhat.com/binutils/"&gt;GNU tools&lt;/a&gt; which are infinitely useful in my daily work. Cygwin, in case you aren't aware of it, is a Unix-like shell environment that runs on Windows. Within the Cygwin shell (&lt;a href="http://www.gnu.org/software/bash/bash.html"&gt;bash&lt;/a&gt;) you can pretend you are running on a Unix machine and ps and ls to your heart's content. For what it does, it is pretty nifty, and for what it provides, it is indispensable.&lt;br /&gt;&lt;br /&gt;Which is what brings up the next complaint. There is no reason that the Cygwin shell should be less usable than the &lt;a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/cmd.mspx"&gt;CMD.exe&lt;/a&gt;. Why, then, does Cygwin not provide full directory &lt;a href="http://en.wikipedia.org/wiki/Tab_completion"&gt;tab completion&lt;/a&gt;?&lt;br /&gt;&lt;br /&gt;Tab completion is the feature wherein you can automatically retrieve a filename or directory name by hitting the tab key. In CMD.exe, if you press the tab key you will be presented with the first file in a directory. Hitting tab repeatedly will bring up the next file in succession. By typing a character, you can limit the tab completion search results to only those files that begin with the specified characters. Likewise, if you execute a directory-related command like 'CD' the tab completion engine will only display directories, filtering out files.&lt;br /&gt;&lt;br /&gt;The default Cygwin configuration does not have this ability. It has tab completion, but the tab completion is little more than worthless. The Cygwin tab completion engine can only return one filename. To retrieve that filename it is necessary to specify enough leading characters so that the tab completion engine can distinguish the specified file from others with similar leading characters. That means that the full name of a file must be specified in cases where all the leading characters are the same except for an incremented counter at the end. &lt;/p&gt;&lt;ul&gt;&lt;li&gt;LOGFILE20040801.TXT&lt;/li&gt;&lt;li&gt;LOGFILE20040802.TXT&lt;/li&gt;&lt;li&gt;LOGFILE20040803.TXT&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;li&gt;LOGFILE20040831.TXT&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In order to use Cygwin tab completion on any of the above filenames, it is necessary to type almost the entire filename. It requires typing at least "LOGFILE200408xx" leaving the tab completion to fill in the ".TXT". This is not useful.&lt;/p&gt;&lt;p&gt;CMD.exe allows me to type "LO" and tab completion brings up the first file that begins with the string "lo". Since it is not case-sensitive, I am able to retrieve all files that begin with "lo".&lt;/p&gt;&lt;p&gt;For whatever reason, the better behavior of the CMD.exe shell is not emulated in Cygwin. Why can't Cygwin not act brain-damaged in this situation?&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109392984791634287?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109392984791634287/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109392984791634287' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109392984791634287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109392984791634287'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/cygwin-complaint.html' title='Cygwin complaint'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109357303580057243</id><published>2004-08-26T18:44:00.000-07:00</published><updated>2004-08-26T19:20:17.133-07:00</updated><title type='text'>Portable Media Center stuff</title><content type='html'>Here's a &lt;a href="http://blogs.coreygouker.com/PermaLink.aspx?guid=64fabf6f-8bac-4f2b-90c1-98e162520182"&gt;review&lt;/a&gt; of Microsoft's &lt;a href="http://www.microsoft.com/windowsmobile/portablemediacenter/default.mspx"&gt;Portable Media Center (PMC)&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Basically, the PMC is a small device with a video screen that can play recorded media like music and video.  It is what an &lt;a href="http://www.apple.com/ipod/"&gt;iPod&lt;/a&gt; would be if it had some ambition.  Of course, it is a little larger and a little heavier than the iPod and other MP3 players, but it isn't much larger than a &lt;a href="http://www.apple.com/ipod/"&gt;Gameboy Advance&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;In a previous life, I worked on a PMC project actually.  Obviously I can't say who it was, but according to the PMC website and the OEM's website, that one never hit the market.  Not that I'm surprised, the hardware was severely underpowered.  Basically, they needed more graphics chip horsepower and I don't think we were able to squeeze any more out of the chip they selected.  I loved the demo they had at one trade show, though.  They cut a hole in the back of the device case and ran cables to a more powerful platform underneath the counter.  The device demo ran very fast and everything worked correctly, you just weren't allowed to pick the device up.  ;-)&lt;br /&gt;&lt;br /&gt;There is a lot of really cool stuff that the PMC ought to be able to do but doesn't seem to thus far.  Since it is essentially a media player, it makes sense that it can act as a UPnP Media Renderer when attached to a home network.  It also contains storage (large HDD) so it can also be extended to work as a UPnP Media Server.  As a Control Point, it doesn't work too well, though it ought to have enough controls to act as its own control point, but not really enough to manage connections between other media renderers.&lt;br /&gt;&lt;br /&gt;This device is designed for commuters, the Japanese commuter in particular.  Since the vast majority of people here ride the trains every day, such a device would give them something to do during the commute.  The trains and buses are used here in lieu of cars which are almost impossible to use as a primary means of transportation.  Public transportation is the norm here, not just a means of transportation for lower-income and non-drivers as it is in many American cities.  The disposable income of the typical train commuter is well in the range of such a device as the PMC.  Any short ride on a train and you will see people occupying their time with their cell phone, Gameboy, or a comic book.  The PMC fills a niche here.&lt;br /&gt;&lt;br /&gt;But on the other hand, it doesn't seem to fill a niche in the States.  The vast majority of people over there drive to and from work.  They have large screen TVs at home.  They simply do not have the time for such a small screen device to watch videos.  If they want to listen to music, the iPod or its relatives can offer that in a smaller form factor for a lower price.&lt;br /&gt;&lt;br /&gt;If they can keep the price to around 300 dollars or 37500 yen, this thing could be big here.  It will likely flop in the US.&lt;br /&gt;&lt;br /&gt;Addendum: The &lt;a href="http://us.creative.com/products/welcome.asp?category=210&amp;"&gt;Creative Zen&lt;/a&gt; device looks like a cheap plastic toy compared to the solid metal cased device that I had worked on for a previous customer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109357303580057243?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109357303580057243/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109357303580057243' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109357303580057243'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109357303580057243'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/portable-media-center-stuff.html' title='Portable Media Center stuff'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109331306054550270</id><published>2004-08-24T10:58:00.000-07:00</published><updated>2004-08-23T21:04:39.516-07:00</updated><title type='text'>Some light reading</title><content type='html'>I've got a small library of computer books that I like to pretend are the cream of the crop when it comes to computer books.  I've split them up between work and home so that I have something to read in my downtime at work and something to impress visitors when at home.&lt;br /&gt;&lt;br /&gt;Since I'm here at work, here's what I've got in my mini-library.  Bruce Eckel's &lt;a href="http://mindview.net/Books/TIJ/"&gt;Thinking in Java&lt;/a&gt;.  Steve McConnell's &lt;a href="http://www.stevemcconnell.com/cc1.htm"&gt;Code Complete&lt;/a&gt;.  Bjarne Stroustrup's &lt;a href="http://www.research.att.com/~bs/3rd.html"&gt;The C++ Programming Language&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Additionally, I've got some non-computer-related books laying around.  &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/4770015534/102-5390089-4028112?v=glance"&gt;Kodansha's Compact Kanji Guide&lt;/a&gt;.  &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0870116711/102-5390089-4028112?v=glance"&gt;Kodansha Japanese-English Dictionary&lt;/a&gt;.  &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/4770020384/102-5390089-4028112?v=glance"&gt;Japanese for Professionals&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also keep at least one book in my bag so that I have something to read during the train ride.  For the past week or so it was &lt;a href="http://www.amazon.com/exec/obidos/tg/detail/-/0385504209/qid=1093312718/sr=8-1/ref=sr_8_xs_ap_i1_xgl14/102-5390089-4028112?v=glance&amp;s=books&amp;n=507846"&gt;The DaVinci Code&lt;/a&gt;.  From today it is something a little more technical, &lt;a href="http://www.amazon.com/exec/obidos/ASIN/020161586X/qid=1093312783/sr=ka-1/ref=pd_ka_1/102-5390089-4028112"&gt;The Practice of Programming&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If there's anything that I've really gained here in Japan, it is time to read all these books that I've been collecting over the past 10 years.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109331306054550270?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109331306054550270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109331306054550270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109331306054550270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109331306054550270'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/some-light-reading.html' title='Some light reading'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109281614286430975</id><published>2004-08-18T16:58:00.000-07:00</published><updated>2004-08-18T01:02:22.863-07:00</updated><title type='text'>My Java Presentation is Useful!</title><content type='html'>A few months ago I thought that learning Java would be useful.  I work with cell phone software, so having a little background knowledge of Java would be advantageous, I thought.&lt;br /&gt;&lt;br /&gt;One thing that really helps me learn a subject is to create a presentation on the topic.  I typically use PowerPoint, though I admit my knowledge of that borders on next to nothing.  I can use the application to make titles and bullet points as well as slide notes, and that's all I really need.  So I made a presentation for Java.&lt;br /&gt;&lt;br /&gt;The presentation assumed that the audience didn't know anything about programming.  It started with the concepts of &lt;a href="http://www-106.ibm.com/developerworks/blogs/dw_blog.jspa?blog=317"&gt;Object Oriented analysis and design&lt;/a&gt; and slowly added pertinent Java building blocks where they would most appropriately fit.  Building out from there, I explained core fundamentals like functions, variable declarations, conditionals, and looping, all with the necessary Java syntax added after a clear description of the concept.&lt;br /&gt;&lt;br /&gt;I threw in a blatant plug for &lt;a href="http://eclipse.org/"&gt;Eclipse&lt;/a&gt; which is a first class Java development environment.  I even had a whole slew of philosophical ponderings discussing the concept of the object (namely Plato's theory of Forms as it relates to the concept of a class versus an object).&lt;br /&gt;&lt;br /&gt;At the end of the presentation, the audience ought to be able to write a simple Java program that can do simple string processing and text output.  Obviously, this was just an introductory lesson not designed to explore the depth and breadth of the Java class library.  In its goal, it succeeds.&lt;br /&gt;&lt;br /&gt;But when I brought the presentation to work, no one was interested.  This isn't a Java shop, granted, but to turn away something like this without even a second glance seems a little too tunnel-visioned.  I took my presentation home and sulked about that.  I gloated a little too because I managed to teach myself basic Java in a couple days whereas I absolutely shunned the language my entire college career.&lt;br /&gt;&lt;br /&gt;A friend of mine who works elsewhere mentioned that he might need to teach a Java training class, so I offered my presentation.  He took it and adapted it a little (mostly by removing the Eclipse stuff) and is now using it in his training classes.  He told me the other day that the presentation does a good job of introducing the basics and that his students (technical professionals, mostly) are able to grasp enough of the language in order to grow from there.&lt;br /&gt;&lt;br /&gt;I feel like a proud papa, but I'm a little dismayed that it took someone at a company other than mine to realize the benefits of what I was doing.  We've still got no Java work here, so I guess in that sense my efforts were wasted, but I can't help feeling that doing all this development in C is going to be wasted effort as more and more cell phones integrate J2ME JVMs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109281614286430975?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109281614286430975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109281614286430975' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109281614286430975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109281614286430975'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/my-java-presentation-is-useful.html' title='My Java Presentation is Useful!'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109279209938539141</id><published>2004-08-17T18:21:00.001-07:00</published><updated>2004-08-17T18:21:39.386-07:00</updated><title type='text'>Windows XP SP2 arrives for the masses today</title><content type='html'>The long-awaited Windows XP SP2 is due to hit the main Windows Update page today.  Of course, if you just bought a computer or were part of the beta program, then you've probably already got the RTM version of the SP.&lt;br /&gt;&lt;br /&gt;There are lots of security updates included in the service pack, including network port restrictions and an on-by-default firewall.  Microsoft seems serious about security this time.&lt;br /&gt;&lt;br /&gt;However, there doesn't seem to be a Japanese version available yet.  So far only English, German, and Korean are ready for release.  272Mb is a big download only to find out that the SP doesn't work on Japanese systems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109279209938539141?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109279209938539141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109279209938539141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279209938539141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279209938539141'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/windows-xp-sp2-arrives-for-masses.html' title='Windows XP SP2 arrives for the masses today'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109279208256951279</id><published>2004-08-17T18:21:00.000-07:00</published><updated>2004-08-17T18:21:22.570-07:00</updated><title type='text'>Easy 802.11 Configuration</title><content type='html'>More on the UPnP theme.&lt;br /&gt;&lt;br /&gt;In a world where all things are networked, it stands to reason that we'd want to make as many of those things as possible wireless.  After all, what's the point of requiring an ethernet router just to run our home entertainment center when a couple of S-video jacks will work just as well with less wiring.  Getting things to talk to each other is already doable, getting them to talk securely without requiring cables is really the next step.  We've got 802.11g now which claims to shuttle data at a respectable 56Mbps (still too slow for AV delivery, but the DLNA is working on that), the key is to get the home wifi network up and running and available to every UPnP device in the home.&lt;br /&gt;&lt;br /&gt;According to &lt;a href="http://www.microsoft.com/technet/community/columns/cableguy/cg0604.mspx"&gt;this article&lt;/a&gt;, Microsoft has devised a way to quickly and easily establish a secure wireless network through the use of USB Flash Drive and some XML files which contain the encryption codes to login to the wifi network.  For large electronic appliances like laptops, printers, even TVs, DVD players, and Speakers this seems ideal.  Just plug and play, literally.&lt;br /&gt;&lt;br /&gt;But what about small devices that we'd be interested in enabling wireless LAN communication for, like cameras and PDAs?  The main problem here is that adding this functionality would result in the requirement to add a large USB host controller that would be used very rarely.  It also requires extra software on-board the smaller device that provides the USB Host device driver as well as a program which can read the UFD and decode and initialize the wifi connection.  This is not quite the optimal solution for networking these devices.&lt;br /&gt;&lt;br /&gt;Leaving the devices open to connect to any open wifi network is also very risky.  Any bozo with an 802.11 router could connect to your digicam without your knowledge and download all the naughty pics of your wife or girlfriend (that's why we bought the digicam in the first place, isn't it? :-).  So we obviously need some means of securing the portable device against open networks, but the interface of these small devices is not conducive to inputting such information.&lt;br /&gt;&lt;br /&gt;Until now the primary means of downloading data off of a camera has been to hook it up to a Host PC using a USB or IEEE1394 wire.  This has the benefit of being fairly secure as the connection is a peer-to-peer network (so to speak) with no other entities between the two devices.  It has the detriment that it requires pulling out the USB cable from the desk drawer and sticking the connectors into the appropriate ports.  Not too difficult, but it still needs wires to do all this.&lt;br /&gt;&lt;br /&gt;Before everyone jumps up and yells "Bluetooth!" I would just like to say that I need to read more about the technology before making any comments on that.  Does Bluetooth address the problem of foreign devices intruding on the PAN?  Does Bluetooth provide a mechanism of simple network configuration that doesn't require significant user interaction to register a device into a PAN?  These are the key questions about BT.  But on the flipside, are we going to require that all UPnP devices also require BT?  Event the Host PC?&lt;br /&gt;&lt;br /&gt;So with a wave of my hand I dismiss Bluetooth.  IXI claims to have a solution to these problems, but again, how much is truth, how much is marketing material?&lt;br /&gt;&lt;br /&gt;We're still stuck with the problem that the portable device isn't configured to talk to the wireless network.  What about if we do some sort of auto-configuration the first time we connect the device to a network-registered Host PC?  Brilliant idea, except that it still means that we need to hook up the device with a USB or Firewire cable at least once.  So what, you ask, it's only once per network.  For me, that is once too many.  Using a cable at all requires getting under the desk or a reach to the backside of the PC for too many users.  The ideal solution is to not have to use wires at all.&lt;br /&gt;&lt;br /&gt;The real solution here will be to use something that is proximity-limited like Bluetooth but can internetwork with an 802.11 wireless LAN seamlessly and still require network authentication.  How to do this, I don't know.  What if the routers and hubs had a proximity-limited antenna (to 1 meter or even less) that could allow users to automatically authenticate a device by bringing it within that range?  The device would prompt the user for a button click to accept the network codes.  Since the user expects to receive the codes and knowingly accepts the codes, there is no chance that the camera would auto-configure itself onto an unknown network.  Also, the proximity of 1 meter restricts the device owner from registering on someone else's network either by accident or on purpose.  Once configured, the device would then be free to use the network using those codes until the next time the codes change.&lt;br /&gt;&lt;br /&gt;I'm sure I'm missing some key security element here, but my expertise doesn't lie in that area.  I'm interested in how this will play out in the future because I don't see wires in the future. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109279208256951279?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109279208256951279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109279208256951279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279208256951279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279208256951279'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/easy-80211-configuration.html' title='Easy 802.11 Configuration'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109279206102062018</id><published>2004-08-17T18:20:00.001-07:00</published><updated>2004-08-17T18:21:01.020-07:00</updated><title type='text'>UPnP</title><content type='html'>Lately I've been trying to wrap my head around the &lt;a href="http://www.upnp.org"&gt;UPnP&lt;/a&gt; protocol.  Though slow in coming, it finally seems to be making some baby steps towards the mainstream.  Several companies have or are planning on producing UPnP-enabled devices for the UPnP AV (audio/visual) specification.  Several others are already producing UPnP-enabled routers under the UPnP Internet Gateway Device category.&lt;br /&gt;&lt;br /&gt;In more recent news, the &lt;a href="http://www.dlna.org/home"&gt;Digital Living Network Alliance&lt;/a&gt; was re-formed and seems to be picking up steam on its own with members from just about all the major consumer electronics makers here in Japan.  They are working to bring high speed network communications to the AV category and eventually UPnP networking on top of that.&lt;br /&gt;&lt;br /&gt;It's very exciting stuff, and very unmined as far as development opportunities go.  Microsoft has a Windows-only SDK.  Intel released their UPnP development kit to the OSS community under the BSD license.  I believe Siemens has an SDK also.  A handful of other little companies are providing custom UPnP development.  In Japan there is &lt;a href="http://www.cybergarage.org/blog/skonnoblog.html"&gt;Satoshi Konno&lt;/a&gt; who is working on his own implementation of the UPnP spec and has released some tools for it.&lt;br /&gt;&lt;br /&gt;With all the UPnP activity just starting up, it seems that this is the time to jump in and get a working SDK together for sale to OEMs and make a boatload of money in the process.  Me, I've been trying to get something together in fits and starts, but so far it only "works" on Windows.  There is a lot of opportunity here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109279206102062018?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109279206102062018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109279206102062018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279206102062018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279206102062018'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/upnp.html' title='UPnP'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109279204143115674</id><published>2004-08-17T18:20:00.000-07:00</published><updated>2004-08-17T18:20:41.430-07:00</updated><title type='text'>Learning ARM Programming</title><content type='html'>Write a bootloader, they tell me, that can download an OS image over the debug UART (bonus points for ethernet). Well, first thing's first. I need to learn ARM assembler so that I can understand what all these .s and .inc files contain.&lt;br /&gt;&lt;br /&gt;I found &lt;a href="http://www.heyrick.co.uk/assembler/index.html"&gt;this website&lt;/a&gt; which seems to provide some good information regarding the ARM instruction set. I'll be up late studying, I think.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109279204143115674?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109279204143115674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109279204143115674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279204143115674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279204143115674'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/learning-arm-programming.html' title='Learning ARM Programming'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7988372.post-109279189486626846</id><published>2004-08-17T10:15:00.000-07:00</published><updated>2004-08-17T18:18:14.866-07:00</updated><title type='text'>Welcome to Lentiltech</title><content type='html'>I figured out today that I can have more than one blog in my Blogger dashboard, so I created this blog as a catchall for any technology topics that I might write about.&lt;br /&gt;&lt;br /&gt;First order of the day is moving my existing tech blogs into this one.&lt;br /&gt;&lt;br /&gt;Hope you enjoy it!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7988372-109279189486626846?l=lentiltech.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://lentiltech.blogspot.com/feeds/109279189486626846/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7988372&amp;postID=109279189486626846' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279189486626846'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7988372/posts/default/109279189486626846'/><link rel='alternate' type='text/html' href='http://lentiltech.blogspot.com/2004/08/welcome-to-lentiltech.html' title='Welcome to Lentiltech'/><author><name>Lauren Smith</name><uri>http://www.blogger.com/profile/01523158891010339130</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://photos1.blogger.com/img/158/8299/320/050923_003L1.jpg'/></author><thr:total>0</thr:total></entry></feed>
