April 30, 2008

What about that word processing program?

This is the first post written using IsolWrite. It is going pretty smoothly, the predictive text system is still pretty useless, if fun. It is still in phase one. The formatting was done in blogger. It's not that sexy yet.

For the 1.0 open source launch, I need to do the following:

Pre-Launch:
  • Font selection and manipulation (ui is there, not exposed yet)
  • Right-click menu reworking. It's pretty awful right now, but the target functions work. (tbd)
  • RTF save/load (tbd)
  • Autosave activation (feature is written, no ui to turn it on)
  • Autoload of last doc (tbd)
  • Phase one of pt system, (functionality: done, ui: icky)
  • Fix Predictive Text (pt) ui. It's terrible. (tbd)
  • Allow user to turn on PT in prefs, default will be off till pt phase 4 (tbd)
  • Apache headers on the code. (tbd)
Post-launch:

1) Further iterations of the pt system.
  • phase 2: User supplied words
  • phase 3: ranking of suggestions
  • phase 4: n grams & ranking thereof
  • phase 5: online sharing of pt updates combined with the google n-gram data, if it is licensed for that. Via google app engine.
2) blogger/lj/blog software api tie ins
3) spell correction
4) Inevitable rewrite and visual improvements.

Oh, and the name? IsolWrite. As in: It's All Right! Got DNS for it and everything. I've put up the code project and grabbed a Google App Engine area for the online components that I'm thinking up for phase 5 of the pt system.

April 29, 2008

April 28, 2008

No, Shame on Daya Baran

First, go read this screed against Tim O'Reilly:

WebGuild: Shame On You Tim O'Reilly

I'd like to point out that we emailed Daya about this continuously leading up to the meeting asking him to talk to us about the name, and he refused to do so. So now he pouts when we boot him.

We were very happy to host the meetings, but when the leadership of a group gets weird, we'd rather not host them anymore. Webguild isn't the first, nor is it the last group, that we'll both host and then not do so.

Google isn't a hotel, for god's sake, we don't have a duty to continue or to ever offer space to a group. Once we do decide to allow a group to be hosted, we make it clear that this privilege can stop at any time and that there are no guarantees. Most groups say "Okay, thanks for the hosting in the past" and find other venues. There are plenty of them in the valley.

I've been on both sides of this problem, hosting dozens of groups over the years at Google and before at VA Linux, and in 2000 I ran a linux users group and we were always vigilant to be a good guest of the companies that hosted us. That included answering any and all queries when posted to us.

Tim did not tell us to remove the Webguild from Google. He doesn't have the power to do so. Daya did by not responding to our queries in a timely fashion. DeWitt, Myself and others decided that Daya's behavior would reflect badly upon Google at some point. We were clearly right.

What Daya says in arrogance is what I call asking people to be accountable for their actions.

Sheeze.

New Keyboards, C# and more...

In an attempt to help my typing be a bit more orderly and less finger-across-the-keyboardy, I've adopted one of those split keyboard things at work. It's been pretty fun actually, I've stopped crossing over as much and am soft of re-learning typing.

Like many developers, I taught myself to type. When I took my keyboarding class in High School, the teacher took one look at my 80+ wpm and sent me to the computer lab, writing me off as a lost cause. My fingers were all over the place, you see. For years, I've had this private conceit that my subconscious has optimized my typing for coding and not writing , you know, more semicolon optimization than for plain old words. I'd imagine that some enterprising linguist has looked into letter frequency for languages and tried for a programmer optimized keyboard. And, yes, I've seen the happy hacking keyboard, and frogpads, and the rest, that's kind of not what I'm talking about.

Speaking of frequency, the current task in the c# program is writing a predictive text input system for the app. Why am I concentrating so much on this tech when it is usually the province of accessibility people or mobile developers. It's easy: I want to type faster. And its a fun, computer sciencey problem. I'm concentrating on basic dictionary and ui stuff right now, next will be frequency weighting, then n-gram frequency. The funny thing bout this is that the app, as it is based on the .net framework, is only 30k (48k with thew about box image) and the starting dictionary that I'm working with is 500k.

Course, I don't use them all. I've biasing out the words less than 3 characters, so that cuts down the dictionary size. At this stage, its mostly program flow and ui work, not computer science. I only started coding c# two weeks ago, so I'm still pretty obtuse about the language. If you looked at the code for the fullscreenexample, you'll have figured that I'm a rank tyro at the language. I'm surprisingly self conscious about my skillz with the language, and programming in general. It's been a long time since I coded this much, but it is very fun.

That said, C# as a language is a little weird for me, I was never a big java person, so the whole world of virtual machines feels a little cheap to me. Visual Studio and C# seem to provide a lot of functionality for not a lot of work, and so it doesn't feel like much of an achievement to have done what I've done to date.

A proper predictive text engine which would be generally usable in windows as well as in a word processor would be something a bit meatier in my mind. Anyhow, once the basic frequency rating stuff is done, I'll do a 1.0 release of the app for everyone to laugh at.

April 27, 2008

It is the poor carpenter who blames his tools...

This week, OLPC had a dust up, a kerfuffle even. Walter Bender, OLPC's former president of sofware, left the organization. Why? Well, some think it was because of the possibility that XP will be installed on the OLPC. Later in the week, Nicolas Negroponte decided to share with the world that he felt it was the fault of the open source community that the OLPC wasn't enjoying the success he promised. Some people even bought it.

You see, when the highly successful Give One Get One lost the orders of 16k people. That was the fault of open source. Clearly. Duh!

Widely reported apparently unfixable (?) problems, with the keyboards, that was clearly the Linux kernel's fault, causing keys to stick to each other.

Significant delays in manufacturing, that have nothing I'm sure to do with the scope and timing of the project, are clearly the fault of the python interpreter that Sugar runs on.

Sarcasm aside, the problems with the OLPC are surmountable and its goals are likely still achievable, given the right kind of ministration. I know this because I was in the Linux hardware business for a while and it's not always easy, but it will take serious, detailed execution, not blaming the community of developers who have done nothing but give away their software to the world for it to use.

Blaming open source developers for the problems of a platform is absurd, blaming your own development cycle, well, maybe that makes more sense, but that's not what happened. I understand that shipping tricky hardware + a new interface on top of Linux, or any kernel, can be hard. But blaming open source for what's going on at OLPC seems, well, distractingly nasty.

Which brings me to this article, it is worth reading as a study in how weird coverage of open source can get.

April 26, 2008

Full Screen Applications in C# (adventures in C#/Windows Forms)

So I've been messing with C#, as you might remember from a previous post, and I thought I'd post a code snippet for folks who hit this problem. It's woefully underexplained online. What am I talking about ? Truly full screening an application in C#, meaning, no taskbar, windows chrome, or anything.

Find the example application with source, released under the Apache license, of course, on code.google.com at http://code.google.com/p/csharpfullscreenexample/

A note about this, I've synthesized this from a variety of documentation and other examples online. To give anyone too much credit would be weird, but there are some alternative sites purporting to describe this. If you find that their advice is falling short pay extra attention to the 'important' comment lines in Form1.cs , that's where all the meat is in the program. Order of operations matters big time, basically.

April 21, 2008

A Short Post

I am timing this post to be as exactly long as the song "Flash" by Queen. You'll remember previous timed posts (14 minutes) and my upside down post. Yes, I'm stunt-blogging, so look out.

I've been traveling a bit, but I'm back through almost July now, which is pretty awesome. I've been in the following countries since I last posted: The UK, Norway, The Netherlands, Switzerland and Austria. It was a pretty awesome trip over about 10 days. Spoke at three conferences, and met with a lot of our European Googlers. Missed the Norway ooxml protest by a day, but I met with the folks who were there the day before at Go Open, a very nice conference in OSLO.

Damn, only 13 seconds left.... lessee, maybe one more song's worth of blogging. Okay, there you go, "Where's your head at" , by APC, 4.5 minutes long. High energy, for sure.

Anyhow, Go Open was fun. The organizer and myself went on morning TV to promote the conference, so you gotta go see that, we all but made omelettes there in the in-studio kitchen. It was very fun. After OSLO, I flew to Amsterdam for Euro Apachecon. I'd never been to Amsterdam before, and its a -fun- town. Great times were had by all, even by a square like me.

Lengthly travel messes with my internal clock a bit though, and while I try to be party fresh, I find that I need to give myself some time to pay back sleep debts, which I always worry will cut into the very reasons that I go to these conferences, namely to learn and then to speak. Regardless, I'm basically domestic boy until September when I might fly back to Zurich for Hackontest, a contest my group is sponsoring.

Finally(ish): You might now know this about me, but every couple of years, I sample the latest compiler/ide's from Microsoft, Eclipse and the rest and try to write a substantive program or two in them. Well, maybe not substantive, but at least interesting. I was spurred on this time by the current vogue in "writing" environments. These are text editors that block out external stimuli, blacking out the screen and such, to encourage non-distracted writing. Sadly, most of those I sampled are quite poor so I won't link to them. The best is maybe Writeroom for OS X, but there are many bad bad bad software packages out there.

For instance, the song changed a little earlier to the DJ Tiesto version of Silence, which gives me another 4 minutes. And there is a x-chat window going to the right of this text area, where summer of code hopefuls wait for us to finalize who is an who is not in the summer of code. The angst is palpable. I mean, you can practically sculpt it, you know?

Anyhow, as is usual, more later....

(editing was done during Nina Simone's Feeling good, coming in at about 3 minutes long.)