Wednesday, October 31, 2007

Daylight Saving Time - Windows Mobile Fix

When I docked my new Pocket PC (HP rx5915) with the PC at a client's office, ActiveSync immediately reset the clock back one hour and all of the new appointments were one hour off.  I made sure that all of the Microsoft DST patches were applied, with the Outlook DST tool/patch.  I would reset the time on the pocket pc device, which would be reset by ActiveSync on the next sync. 
 
The solution, discovered through trial and error:
 
Once you apply the patch, you must manually change your timezone to something else and click apply. After that, change it back to your correct time zone. This forces the Pocket PC to re-read the registry file.
 
From this point onward, neither the trial copies of Pocket Informant or Agenda One could get it right.  However, the default calendar had no problems.

Labels: ,

Thursday, October 25, 2007

Open Embedded Linux Platform (ARM)

I just stumbled on the Linuxstamp project over at opencircuits.

In a nutshell, it is a simple, small, inexpensive ARM (with an MMU) platform that can run Linux. 

The parts cost for qty 1 is $75 from digikey, and $55 for qty 100.

Labels: ,

GNU Internationalization Presentation

Earlier this year I did a brief presentation to a group of C++ developers about internationalization, localization, and the GNU gettext utilities.

Tonight, I uploaded the slide deck to slideshare.  Enjoy.

Labels: , ,

Monday, October 15, 2007

Executing Vista - we hardly knew ye

Yesterday, I realized that one of my Linux boxes died.  When I purchased it years ago (for $200), it was barely adequate, even for running a bare bones Gentoo-powered home server. 

As a replacement, I ended up purchasing the cheapest desktop PC I could find -- the Compaq Presario SR5110NX.  As you might now, the Compaq Presario is the closest thing to an advertiser supported computer platform (with the notable exception that you pay for it and the adware).  The computer comes pre-loaded with lots of crap-ware that I don't need or want.

The PC came with Windows Visa Basic Home Edition pre-loaded.  Since I have one desktop running Windows XP (for Quickbooks and for devices that don't have Linux support), I thought briefly about replacing my windows box with the new arrival.  After 15 minutes, I decided I was better off with my stable XP box.

After an hour of playing around with Vista, I can say is that the graphics are nice, but I pity those of you who are tortured by having to actually use it.  Vista requires so much computing horsepower that the AMD Athlon64 coupled with 512MB of memory was just simply not enough. 

However, since Microsoft is pushing OEMs to install only Vista, there really isn't a choice to go back to XP.  I can only imagine the number of returns of lower-end hardware.

The mouse kept skipping around the screen (the mouse cursor would become unresponsive for about 500ms to 1sec, then catch up and be transported to the new screen coordinates).   Also, when I tried to kill processes to make the system more responsive, I saw that it had a cpu-sapping 55 processes running.  Judiciously killing various processes left the system that was bouncing from 20%-75% CPU bound with an skittish mouse movement.  In a word-- it was totally unusable.

That is, until you repartition the drive and install Linux, which is exactly what I did.  I'm in the finishing stages of installing Gentoo, Apache, TRAC, subversion, MySQL, and various utilities. 

MontaVista Vision 2007

I am back from embedded Linux MontaVista Vision 2007 conference.  The conference was a two day (three days if you count the introductory boot camp) conference at the Santa Clara Marriott, adjacent to Yahoo! campus.

Considering it was the MontaVista conference, I expected lots of sales drivel from MontaVista sales reps.   Not so.  Many of the presenters had an only indirect knowledge MontaVista's upcoming offering (DevRocket 5.0); they mainly focused on bare-knuckle Linux development. 

As a result, I walked away very impressed at both the content of the presentation as well as the caliber of the presentations. 

There were only two negatives about the conference -- 1) the general lack of exhibitors, and 2) I still don't have access to the slide decks. 

At first, it was promised that the slide decks would be printed and available at the back of the room, then it was promised that we would have access to them online.  So far, I haven't received the email with the URL. 

Labels:

Friday, October 12, 2007

Fit PC

http://www.compulab.co.il/all-products/img/enclosure-m.jpgI am always searching for a low cost/low power embedded hardware platform to develop a firewall, router, and other assorted projects.  By low cost, I mean sub-$500.  Oh, and I would like it to be absolutely quiet.

Well, aside from the FreeScale development kit that I found at Vision 2007, I have stumbled on the fit-PC.   

The fit-PC is a fan-less PC about the size of a paperback book, with a power consumption of less than 5 watts of power.  Priced at the price of $285 (plus $40 shipping), the unit comes complete with Linux (Gentoo/2.6.20 kernel) pre-installed on a 40GB hard drive.  

Specifications for the fit-PC:

  • 40 GB hard drive
  • Dual 100 Mbps Ethernet
  • SXGA graphics controller, resolution to 1920 x 1440
  • 2 USB 2.0 high speed ports
  • Audio in/out interfaces
  • RS-232 serial port
  • Single 5V power supply
  • Dimensions -- 4.7 x 4.6 x 1.6 inches (120 x 116 x 40 mm)

Labels:

Fake Listing Service Scam (DLSCORP.NET)

Today, I received a fake solicitation disguised as bill from the Domain Listing Service (a.k.a DLSCORP.NET, a.k.a, the Internet Listing Service).  The solicitation, which looks like a bill in the amount of $65, promises domain submission to 25 major search engines (which can be done for free).

Surprisingly, various postings around the Internet suggest that there are quite a few people who fall for this scam, which is probably why it is still alive, even after several years. 

Don't be fooledIt is an outright scam

Tuesday, October 2, 2007

C++ Web Development Platform

After some serious consideration I've decided to go with an amalgimated approach to developing my web services architecture.  The pretty marketing stuff will be HTML/CSS/Flash, but the main applications will be written entirely in C++. 

Next, I resolved to leverage the Boost C++ Libraries and FastCGI.  FastCGI will remove the process creation from the invokation of a CGI application making the performance way faster. 

Lastly, I need to decide on the last piece or whether or roll my own. There is a limited number of C++ frameworks that are usable right "out of the box."  Some frameworks I am currently evaluating are:

  • Microsoft ATL Server.   The code is now located at: www.codeplex.com/atlserver.  License:  Microsoft Limited Permissive License (MS-LPL).
  • Leverage Apache/Axis & Apache mod.     
  • Microsoft IIS/IIS filters.
  • GNU Cgic.   GNU cgicc is an ANSI C++ compliant class library that greatly simplifies the creation of CGI applications for the World Wide Web.  This is basically a collection of classes and templates that hand you a parsed CGI environment.
  • WT.  Wt (pronounced wit-ty), is a C++ library to develop AJAX aware web applications, built around a graphical UI coneceptual framework.  This looks to be by far the coolest.  The question is will it stand up to some serious scrutany?
  • Requirements

    Given my previous embedded systems development I should be able to build up a system with a minimum linux install that is capable of saturating a 100MB ethernet connection. 

  • Extreamly reliable and robust.  Given the general lack of employees, I simply cannot afford for customers to call me to tell me that something is broken.  It has to work 24/7 without producing java stack dumps or IIS/.NET SQL/odbc error traces.    

  • Highly dynamic site – large portions of the content cannot be cached effectively and need recreating on every view.

  • Huge number of visits (probably not going to happen, but I can dream).

  •  

     

    Labels: , ,

    Monday, October 1, 2007

    Web Platform Smack Down (Choosing a Server Side Development Platform)

    After weeks of fighting administrative fires, and waging a war on paper, I finally carved out enough time to give some serious consideration of what server-side technologies I will be employing for my startup company. 

    Decision day is quickly approaching, where I will just need to pick one.   The question is which one?  There are a multitude of products (open source and otherwise) to design, build, and deploy a working web solution.  

    The question is, which one?  The choices are many: ASP.NET, ColdFusion, Tomcat/JSP, Java Server Faces (JSF), Java J2EE, PHP, PHP-Smarty, Ruby on Rails, Python, Perl, and C++.

    I have own biases, but I recognize that single decision will probably have the biggest lingering effect on my startup.  It will influence who I hire, and thus, indirectly the corporate culture of my business should it grow large enough.

    So follow my rationalizations as I bet my livelihood on my technical decision making abilities.  There are four primary issues/categories in my mental pew chart.  They are: 1) Cost, 2) Performance, 3) Maintenance, and 4) Security.

    First Things First: Pick a Language

    Cost will come in two forms: technology (OS, licenses, hardware) and development talent. 

    Not surprisingly, my kitchen counter math pegs development talent as the biggest single cost.  And after some digging, I found that PHP coders earn the least, .NET is somewhere in the middle of the spectrum, while J2EE programmers earn the most ($93 average billing rate when consulting).

    Considering that the language platform choice will drive the biggest cost, it makes sense to carefully spend time picking it, and drive the rest of the decisions from that.

    So the high cost of J2EE talent as well as the system requires more expensive hardware to run (I've seen a JSF/XML solution bring hardware down to its knees)...  So goodbye Java; it costs too much.  And that goes for any Java scripting derivatives (JSP and JSF).

    Likewise, Coldfusion is simply not a good tool for n-tier solutions.  It is good for simple websites, easy to learn, but not designed for the enterprise.  

    What's left? Ruby on rails, C# .NET, Python, PHP, Perl/CGI, and C++/CGI.  Here, most sane people would focus on C#.NET or PHP and a growing vocal minority would advocate ROR (Ruby on Rails).   However, YouTube was originally crafted in Python.  Google and Amazon.com make use of C++ (or so I've heard).

    Next up: Pick a framework

    Second establish what version and framework to use.  PHP has Smarty and PEAR derivatives.  .NET comes in 3 versions now.

    Lastly, Pick the OS

    I know many people will disagree, but I hold a fairly agnostic view on Linux vs. Microsoft.  I develop embedded software for Linux, but I am equally comfortable pounding out system code under Windows.

    It is a business decision that should be made with rational logic and not emotion. 

    Yes, Microsoft is more expensive, but that cost is almost insignificant compared to the labor costs. How much? Plan on a base cost of about $1,000 for each Server product (SQL, Exchange, Server), plus fees for additional servers, seats and CPUs.  However, you also get a phenomenal amount of support (Empower program, seminars, conventions, partner events).  And if all else fails, you can call Microsoft and someone will answer your question (albeit for a charge).