Sinzui

No matter where you go, there you are.

Curtis C. HoveyWelcome to my homepage. Other than a brief profile, there’s nothing here to see. Sinzui is a collection of pages dedicated to my interested in hacking, and deliberations upon the world in general. Read my journal to keep up with my activities.

Hacking

I work for Canonical on the Launchpad project. I build Web applications with a team of rocket scientists. I work from my home office in my jim-jams, with on my Ubuntu laptops. I often hack on Launchpad in my spare time. I also hack on gedit developer plugins, set of tools I wrote to make hacking with gedit fun.

My group is rebuilding one of our websites, and the UI is getting some serious attention. The business and technical groups came to an early decision that we would not be using multi-select listboxes. They alway require special instruction to use, and they are difficult to use for many users. I don’t know how long that MacOS has supported this feature. Windows has had the feature for more than 15 years. GTK has a similar behavior in the treeview. But Why, oh why, are we perpetuating such a bad solution.

We use radio button for mutually exclusive options, and checkboxes for inclusive options. I have no issue with the listbox to restrict the view of a large list, but why change the rules of the exclusive/inclusive operation? The problem is the size of the list, not how the user interacts with it. The listbox could, maybe should, display exclusive items as radio buttons, and inclusive items as checkboxes. The user should know by the presentation of the items in the list how the listbox will behave.

Using GTK’s treeview to implement the behavior doesn’t take a lot of work–just add use a radio button or a checkbox instead of text, and ignore the SELECTION_MULTIPLE property. Putting the checkboxes/radio buttons in a scrollpane is even easier to implement. regardless of the implementation, all listboxes in my GNOME/GTK desktop should behave consistently.

GTK  exclusive and inclusive listbox examples

Until I thought about this matter I had not noticed that Gecko/gtkmozembed is forging a listbox control for GTK. Since the listbox was removed from GTK few years ago, Gecko must be using a its own widget to imitate the missing behavior. Still, this behavior, while consistent with other OSes, it is not consistent within each OS. I’m considering using a div with fixed dimensions and overflow to fix the behavior. I’m somewhat uncomfortable introducing non-standard UI behavior, particularly to a Web browser. But I feel that things are so broken, that it would be negligent of myself and my group not to take some action.

To anyone who has any influence of the Mac/Windows interface, please help end the control-click to select madness.

I changed ISPs recently, from Cox cable to Verizon. I don't want to dwell on the issue, but let me just say I can think of a homonym for Cox that sums up my opinions of them very well.

With the ISP change comes some email address, website, and blog changes. I've decided to use my .name address for personal mail, and my sinzui.is at verizon for my hacking traffic. My vanity website is now located at annrky+sinzui. My online journal is officially at Sinzui (Essence), and the RSS format is available too at Sinzui (Essence) [RSS]

The hosting service provides a nice Linux/Apache/Python setup that lets me transfer my local pages to the host without the need to pre-render them. It is so nice not having to screen-scrap my localhost, rewrite the files for HTML server, and generate a delta between the new tree and the last push to create a deployment script that ncftp can run.

PS. I have something to say regarding GTK and Web UIs and I hope my next entry is not missed.

NP: Himar Orn Hilmarsson — Children of Nature

I'm looking for two webhackers keen on .NET, one with C++ knowledge and one with XSL knowledge. Hanley-Wood is migrating its business and Web applications to .NET. I think the team needs an infusion of OSS methods and tools. The team is smart, but lacks experience with common team tools like version control, issue trackers, testing, and build systems. The company is open to OSS that solves its problems. The positions are located in Washington DC. If you are interested, please contact me at chovey _AT_ hanleywood.com.

I'm having a lot of fun in my new job. I have an office too. It over-looks Thomas Circle. Though as the picture shows, it is an ex-cicle;
New Hampshire Avenue has bi-sected it (twice).

Thomas (semi) Circle

It is nice to work with smart people again, but I need more. I'm looking for one or two Web/App developers who know .NET, C++, XML, and ASP. We have a lot of code that is written in undocumented C++ that use the creator's own libs. I want to move that code to .NET (C#). Hanely-Wood wants me to build a developer team that will modernize and sanitize the websites. Most the team development issues can be solved with open source tools and habits–the developers don't know how to contribute to each other's projects. I think the tasks requires hackers with Mono experience. I'm going to rewrite the job description for the Web/app developer
to reflect my changes to the job requirements. The MS dominance in the job description may in part be an indication of why I was asked to build a new team–its hard to collaborate if your dependant upon Microsoft.

Friday was my last day working for Direct Holdings, the company that acquired Time-Life at the start of this year. My friend Jeff described the company's plans to continue without me as a traveshamockery. He uses that word often, though I wasn't sure if he means “travesty, sham, mockery”. A quick consultation with Google confirmed this. But take a look at Google's traveshamockery top matches. Wikipedia's entry about Bush Doctrine is the most relevant page!

I rediscovered Submarine Bells by the NZ band, the Chills It's a cleaver pop album. The title track is quite exquisite. I must check out their later albums.

Living behind a firewall can be a lonely and disparaging place to be. Using ssh's port forwarding capabilities has become an essential task to get through the day. Every few months something is closed off, and I add one more item to my morning startup routine. Opening ports to IRC, streaming music, and most recently mail are the first order of business at my business.

I have a machine in my home's DMZ, and my router will let all ssh traffic go to that machine. There is not a lot on that machine, it just provides extra help to my home machines, and lets my play with Ubuntu Linux.

To connect to IRC, I set host as locahost instead of irc.gnome.org host in Gaim. Every morning I issue the command:
ssh -C -N -f -L 6667:irc.gnome.org:6667 user@my.home.ip

I just login to my IRC account, and ssh sends all my irc traffic over ssh to my computer that can talk over port 6667.

I can connect to irc.freenode.net at the same time. I use 6668:irc.freenode.net:6667 and get the port to 6668 and host to locahost in Gaim.

To listen to Indy Pop Rocks
on SomaFM, I set its address as http://localhost:8076 in Totem. I use:
ssh -C -N -f -L 8076:server1.somafm.com:8076 user@my.home.ip

to do the routing. I could also be streaming from one of my home computers using icecast. I would use something like 8080:transmitter.local:8080 to see it.

I resigned yesterday. I accepted a job to move a company to .NET. Shortly afterwords Monster Government Services called me and asked me to delay my decision until Nov 2. Oh well. I haven't signed anything yet so I may have an awkward moment on Tuesday. Monster uses Linux and wants to move some of their tools to better scaling solutions. It is Java work, but It is also not Windows work.

I took home my Nightmare before Christmas, Sandman, and Tick toys.

I expect to get back the time I've been missing since the start of the year. I've got two things I want to do: put search into Nautilus and Yelp, and move developers.gnome.org to wiki.

I'm at the point where I must make a decision about a job. If it weren't for the fact I must work on Windows, I would say yes immediately. I have had a few job offers in the past month and I have turned them down because they offered me the same RUP-dominated J2EE work that I have grown to dislike. This job offers me a chance to work with .Net, and build a team of agile developers. There is even some small hope of putting Mono into a commercial site.

I spent two hours removing a tag-team of IE spyware apps from my wife's computer last night. I truly do not like working on Windows. With the exception of 6 months, I've developed on Linux and Mac for the past decade. But this job is good offer, and an opportunity that will make it easier to make some Mono contributions.

I had 20 interviews in the past five weeks. One company was very interested in developing metadata collection and search tools, but I did not want to take a massive pay cut to make them. Another company offered me a ridiculously large sum of money; a clue that some was very wrong with the project. How sweet it could have been if I could have gotten the task of the first job and the pay of the second.

Interpol Antics
I cannot stop playing Interpol's new album Antics. I have donned headphones to separate myself from friends and family. There previous album Turn on the Bright Lights was merely an appetizer. I binged upon The Decline and Fall of British Sea Power, the Yeah Yeah Yeahs, and Placebo's Sleeping with Ghosts, but Interpol's latest is better. I'm glad I put off purchasing Bork's latest–I'll dive into her album after I get the headphones off.

I fixed an annoying crash in Medusa. It is now safe to search without an index in msearch-gui. Nothing will happen, and that is better than a crash.

As a rule, I do not study the history of a nation as told by that nation. They tend to omit their atrocities. US history did not teach me about crimes committed against the native Americans. Australian history didn't tell me about similar crimes against the aboriginals. I understand that France tries to ignore Napoleon (who enacted some good laws). And the British never mention their food. So I choose to learn a nation's history from someone else.

Xan was quick to catch that I borked my modernization of Medusa's autotools. I have no idea what inserted the m4 dir into my Makefile.am, but it was very naughty. I do not have any macros to install, so i removed all references to m4. I note that GNOME's macros do not support AC_PROG_LIBTOOL to run libtoolize --force, so I reverted to AM_*.

Sri asked about a command line tool for search. msearch offers find/slocate like functionality. It supports content and mime-type matching in addition to the standard file matching rules.

Oh blast. I lost the mime-type criteria when I updated msearch-gui to GTK 2.4. I better update the glade file.

« Previous PageNext Page »