Category Archives: life

Some Interesting Jobs

If you are looking for a gig that lets you apply your mad GTK skillz, then you should review a few opportunities I discovered recently.

C/C++/UNIX Sr Software Developer (GTK)

From the position description:

Senior Unix C/C++ Software Developer candidates with five+ years of application programming experience in C/C++ on Unix with hands on strong problem solving skills as well as experience in user interface design, user interaction design along with information layout, user flow, navigation and usability and knowledge of GTK.

Some serious math skills are implied and and advanced degree might be helpful.

Shinkuro

Shinkuro makes a secure IM/sharing app. It runs on Windows, Mac, and Linux. It uses Native widget sets (win32, Cocoa, GTK). It is written in C/C++.

Go Native

Jeff's and Miguel's recent remarks regarding Java performance and .Net portability
respectively failed to address the crucial flaw in the Java argument.

I ran starry-eyed into the arms of Java 9 years ago. I build enterprise Java applications in my sad day job. I think I can speak with authority to Java's failings. Both authors of the original documents made claims of 'solution'. I assert that all software exists for the end-user, and a 'solution' that helps the developer, or requires arcane knowledge, solves nothing. Toolkits that allow developers to rapidly create portable code are a necessity to meet business and user needs. But kernels are not simple, and UI is not portable, and the job of the programmer is to make them work for the end-user. Developers must swallow their pride and set aside their ego to make an app that users want.

To the issue of performance, what user knows to switch to a server VM? How many system admins know that tuning the kernel/OS has little affect on the Java VM? I do not relish telling administrators and users that they must set memory and thread parameters in their VM to use an app. Windows 3.0 solved the memory management problem for hundreds of apps, and was in part, responsible for its success. Virtual memory wasn't fixed in Mac OS unit 8.0, but at least the Mac user had an easy means of setting the memory allocation. Tuning the VM's memory and threads is not just an indication of faulty design, it is an impediment to wide adoption. Few users will choose the app that just works with the OS instead of one that requires skilled tinkering to get it right.

Java's portable UI, Swing, is not a solution. Java was quickly adopted by developers, and it is the language of choice for enterprise development. Back in 1995, it was touted as a desktop development solution, it still is in some circles (SUN), but name one desktop app? Limewire is the only app I have ever seen on a normal user's desktop, and that is hardly a killer app. The issue is that the developer is supposed to make an app to satisfy the end-user, and I think the users have rejected Java UI because it is a bad implementation. Does a CHI expert advocate mixing the UI rules? What is the true benefit of an app that can run on any desktop, if the user must constantly pause to consider what he or she must do to make an app do something? Sure a corporation can switch its users from one desktop to another, and the app runs the same, but that is not common. Productivity will still fall because the user is negotiating more rules while working with the computer.

The average user does not switch desktops/OSes. Users do not need an interface that works everywhere. Users need an interface that works with their desktop. Mac users are notorious for this, but Window's user feel the same way too–Java has not succeeded on either desktop. Users want apps the behave like other apps and play well with the desktop. I don't mean look & feel. Java apps that look like an integrated desktop app just delays the user's frustration when their mouse, menu, or keyboard action doesn't work as it does with other apps.

Both Microsoft and Apple had/have very complete native bindings, but even they have failed, in part, because SUN undermines all Java implementations that do not conform to SUN's plans. I have yet to hear SUN speak of gnome-java for creating solutions for it's GNOME-based Java desktop. I'm not criticizing SUN–the Swing interface is perfect for it's native environment, the JavaOS. I'm please with Mono's VM. It seems to behave well with my Linux OS, but I'm certain it will fail if tuning option become a requirement to run an app. As for the GTK# bindings, hurray! My GTK# apps are indistinguishable from my other apps. I don't think about how they were made;
they just work.

So to the Mono developers I say, don't stray from your path, because the end-user is at the heart of your solution. To the Java developer, two words. Go native.

One small step for innocence, one giant leap for stupidity

Today I decided to take a few pictures of the area I work in. Innocent enough, but life abhors innocence like nature abhors a vacuum. This is a map of the area I work, posted by the local government I assume.

Carlyle business complex in Alexandria

Both the US Patent and Trademark office and the Alexandria US Federal Court House are across the street from the Time Life building
where I work.

US Federal Court House in Alexandria

If you are accused of treason or terrorism, you may be tried in this Court House; Both Robert Hanson and Zacarias Moussaoui have been here. The snipers on the roof tops will remind you that something is going on inside. I found a nice picture of the Federal Court House, taken shortly after it was built.

The United States Patent and Trademark Office in Alexandria

The United States Patent and Trademark Office in Alexandria

The US PTO is a huge complex that is under construction, and only a third of it is open right now. You'll have to take my word that this is the entrance to one of the building. The guards will not permit any pictures of the lovely etched glass signs. Don't enter with a camera and ask “may I take a picture of the sign”, because the guards will want to confiscate your camera. Saying “No”
to the guards will not endear you to them. They are no doubt on high security alert because the European patent debate happening right now.

PS. If anyone spots a job needing Web service/site design and programming skills in Canada, New Zealand, Australia, or the UK please let me know. I may need to make a get away.

Snorp’s alternate Hackergotchi

Some people can just be difficult…and you know who you are Luis.

                                               *    /$&&&$/    *                      $//****///*$$////                      /$$**/      /$**/                     /$$*/          */*/                   /$&$*    *$*     *///                 /$&&$    $&&%$/   ///*/                $&$$*/  /*&%%&$    ///*/              $&&$$**/  */*$$/   ////**/            $&&&$****/  ///     ////***/          *&&&&$$***///      /////*****          $&&&&$$******/////////////***/        *$&&&&&$*********///////*******/       $$&&&&&$$******/////////*******/       &$&&&&&$$*********//////*******/      /&$&&&&&$$***%#####%$**********$*/     /&$$&&&&&&*&%#######%&*******$***/     /&**&&&&&&&**&&$$$$&&$******$$ /$/     *&/ $&&&&&&&**************$$$/ /$/     *&   $&&&&&&&&&&&&&&&$$$$$$$*   $/     *$    *&&&&&&&&&&&&&&&&&&&$/    */     /$/    /$&&&&&&&&&&&&&&&&*      */     /$/     *$$**$$$$$$$$**$/       */      $/     *$*            $/       */      */     *$/            $/       //      */     *$             **       //      $*/    *$/            $$       /*/     $**/   /$/            &$      /***    /&*/*/  /$*            &$      *$**/    $$  /   $*           /&*      $$*$/     $*     $$           *&*      **$$      /$**   $$/          **/      /$$/          //**$/          $*****// //          /**/$$*          /$***&&***           /$$/$$&/*/         /*$$*&&***     

Snorps hackergotchi as ASCII art

                   #@####@@@#                 @%%%%%@@@%&&&&%%@               @%%%%@@@@@@@%%%%%&&&@             @@@@@@@@##########@@%&$$%@            @@@@@@@@@@@@@#@@######@@&$&#           @@@@@@@%%%%%%%%%%@@#######@@##          @%@@@%&&&&&&$$$$$$&&%@@@@@@@@@##         @%@%%&$*+++++++++++++*$&&%%@@##@@#        %%%@&$*++/////////...//++**$%@@##@@@#        &&%&*++++////////........//*$%%@##@%##       &&&&*+++++////////........../*&%@##@@##       &&&*+++++++////////..........+$&%@@##@##       %&$*+***$**++/++++***++//..../*$&%%@@@##       @&$*$&%%@%&$*++**$$$$**++//...+*&&%@@@##       @&$&&&&&%@%&*+//+*$$*++/////../+$&%@@###       @&$$$&&%%@%&+/../*$&$$*++///...+$%&%@@@#       %&*$&%%@@@%$+/../+$$&&$*++//...+$&&&%%%##       %$*$&&%%&&$*//.../++**+++///.../*&$***$@#       &$+***$$***+//.../////////...../+*+///+&@       &*+++++***++/....///////.......///////+*&
      &*+++**$$$&$*/+///+++//.........//++///*&
      &$***$$$&%%&$*$*+++++//.........//+*+//*%       &$*$$&&$$&&$$$***+++++//........///+///&@       &$*$&&&&&&&$$$*******+//......../+////*%       %$*$&&%%%&&$$*****$$$*//.......//+///+%       %$*$$&&&$$$$*++///+**+/......./////+$@       %&$$$&$$$$&&$*++///+++//...../////+$@       @&$$$$$**$&$$*+///////////..//+///$%        %&&&$$$$$$$$**++//////////++*+++*%        @%&&&&&&&&&&$$**+++////++**$*++*%        @%%%&%%%%%%%&&&$$*++//+*$$$$**$%         @%%%@@#@##@@%&&$*+++++*$$$$&@#         @%%@@@#####@%$$*********$$%##          @%%@#####@%&&&$$$$$$$$&%@##            @@#######@@%&&&&&$$&@###             @@@#####@%%&&&&&%@####              @@@@@@@@%%%%%%@####                   #@@@@###### 

Five Star Stories distractions

Issues 19 and 20 of Five Star Stories arrived for my weekend reading. Five Star Stories #20 I love this manga series. I struggled to read it in Japanese, with little success. It's a grand story of the last age of humanity, wars, chivalry, and awesome machinery, but I read it for the romance.

My DOAP Dealer work was interrupted today by a friend who would like me to review the architecture of his corporate/state/federal grant application service. I told him I would rather spend my time working on free software to free my soul, but he guilted me into a review of the site. Picking a page a random, the ever so critical Tidy found 73 errors and warnings, many are accessibility issues. I understand that these are prototype pages, but honestly, if the tools that made the simple prototype cannot make valid accessible pages, they have little chance of getting the more complex final pages right. I can see by the generator mark that page was made using FrontPage; Why buy a tool if it wont do the job right? So why am I helping him? Because he is in the business of selling governments solutions, and he thinks he can sell my ideas about desktop and user metadata to a government. I hope, but I doubt much will come of it.

Ten Year of Linux; Slackware (1994) vs. Fedora Core 2 Test 3 (2004)

I just upgraded to FC2 T3, for no better reason than I wanted to get GNOME 2.6 without building a second desktop with jhbuild. I really enjoyed spatial nautilus and templates before I had to rebuild my notebook. I hoped that my small orinoco_cs problem would also disappear too.

Damn if that wasn't inconvenient. I know it's a test, but I was surprised by the number of things that did go wrong.

  1. x.org X11 mangled my screen resolution. I want to blame nVidia, but the nv driver for xfree86 did let me have 24bit XGA. I've settled for 16 bits, and I had to edit the config file in vi to get the monitor freq right.
  2. During the refresh of the FC2 packages, I lost network. I traced that to the yenta_socket module wasn't inited. I found a patch in RH's bugzilla to fix the init script. I'm happy to say the network card doesn't block me starting the desktop anymore.
  3. My CDROM also disappeared after the refresh. I had to remove the ide_scsi bridge passed to the kernel. I lost gtoaster, not that I'll miss it. I'll be using command line until I get Coaster working.
  4. My sound card disappeared. I have run detect sound card after each reboot to enable it. But Rhythmbox finally works for me.
  5. Mono was crippled. I didn't expect it to work after the upgrade, but I did expect to dead packages to be removed. I used the Mono yum repository at go-mono to get it back, but Muine is gone; it isn't compatible with my current configuration. Saddly, monodoc wont start anymore. It complains that “System.DllNotFoundException: gtkhtml-3.0”, but /etc/mono/config is right and I have both the lib and devel pakages.

During these trials I thought, why is this still happening to me. I had video, sound, and network problems during my first install. Then I remembered.

Ten years ago this month, I got my first Internet connection, a SLIP on a dedicated phone line with static IP from digex.net. I telneted into my shell account and realized I could not do a single thing. I wasn't a stranger to command line, but I knew absolutely nothing about UNIX. Well that wouldn't do I thought; three days later I replaced the Windows 3.1 partition with Slackware 1.2. A stupid decision for sure, but it was a great incentive to learn UNIX and the Net.

I swear I had the same configuration problems, but at least the desktop wasn't messed up while I was trying to fix them. That is to say, what desktop? My OS/2 partition had a sweet desktop, and as Windows 3.1 did not have one, switching X11 + Lestif + FVWM was hardly a loss. Even then, Linux could mount HPFS drives so I was never at a loss for my data, only some key apps and a decent way to use them were missing. What I missed most while working on the desklesstop was spatial folders, document templates, context menus, and a network filesystem browser.

Now I have G2.6 as my primary desktop; I have all that I missed from OS/2! It took 10 years.

Join Ross

The instructions are: Grab the nearest book, open it to page 23, find the 5th sentence, post the text of the sentence in your journal along with these instructions

He had discovered a pile of ancient clay tablets – shattered, scattered, and illegible – and he had set himself the impossible task of piecing them together.

With apologies to Dave

There have been accusations of late, implying that Campd has worn a Tutu. We can only image. For those of you with poor imaginations, I offer this:

Dave and Michael

Hobbling and hacking

I dropped and broke my AC adapter a few weeks back on a business trip. Toshiba sent a replacement battery that arrived yesterday, but that didn't let me turn on my notebook. I couldn't bare to go another hour without my computer so I purchased a universal AC adapter at Radio Shack. I can finally do some hacking; by applying that great store of apathy I've built up working overtime for Direct Holdings Americas né Time Life.

In lew of a computer, I've been using my daughter's iBook. It is a very nice computer. Mail is a fine app, and I covet her iTunes. I've spent time watching Indy's play habits. It's a lesson in accessibility and I would like GNOME to allow my children do use a computer as well as a Mac.

Indy is 5, she can read a few words. She likes to draw, type, collect photos, play music and video. MacOS has a text to speech tool. All dialogs are read aloud to her so she has a clue what might be wrong when browsing or playing a disc. Her own game is to type her flash cards into a word processor, select the words, then push the listen key to hear what she typed. She worked that lesson out by herself! I can send her instant messages from work that she can select and hear them. Granted she cannot type much, but it is gratifying. She uses the spoken commands to interact with the desktop, but she could do much more if she had a speech to text tool.

GNOME has a education apps and tools, but children could accomplish a lot more if we treated them as a class of user that needs assistance. On the usability side of the issue, many apps are simply too featured for the average user to master. My daughter has no difficulty using the iPhoto and iTunes to collect photos and music. She can even burn. My point is that the 10% that users really need from apps are all the interface should have. Menus and processes are not nearly as compressible as the hands on interactivity that user has with the UI.

PS. John Flect, high birth rates are common in societies where children can contribute to the families economic welfare. Indeed, extra children are needed because of high mortality rates–adults must have children who will support their parents when the parents are old. It's the same pyramid model that the US welfare system is based upon. Rich societies don't just spend more on children, laws prevent children from working to pay their keep. Fewer children are needed because we have good sanitation and medication ensure that only one or two children to help in old age. The laws that protect children from exploitation also prevent them from earn rewards during the most creative time of their life. I felt utterly stifled in the 80's being a good programmer, but unable earn a decent wage compared to the certificated lusers who were of age. Thankfully, young hackers have open source engage their time and energy, but still no economic rewards. I plan to phase Indy into the open source art and testing world starting in five years, with a full rollout of her talent when she's 18.