Monday, January 26, 2009

Gittin' Jiggy Wit It

I've recently become interested fascinated by the technology behind Git.

It has been a while since i switched over to Git – nine months to be approximate. For about seven-and-a-half of them, I treated Git as a SVN clone; code → commit → push → repeat, or CCPR for short. Just keeping the source code alive. Then something happened. I did a branch. Then I did a second one. I kept two separate branches for a while, and then merged them together (although I now know that I should've rebased instead).


Since then, I've begun to really look at what Git can do. The single most teaching experience for me was when I held a one-hour Git intro-workshop at work. Next I was discussing on converting some of our SVN repositories into Git. Next thing I know, I was installing gitosis on a virtual machine.

Today, I bought a Git Internals PDF for a reasonable $9 USD. Although I haven't had the opportunity to read the PDF itself, the accompanying screencasts (actually the same, and more, as the ones I linked to above) seemed well done and informative, although a bit on the high-paced side. But I'll be reading the PDF with gusto, as soon as I get the opportunity. I also have an article called Packaging Software Using Git in my to-read list.

There's simply too much interesting stuff to learn...

Saturday, January 24, 2009

Young Human Locomotion Units

The bad thing is that stuff have recently advanced slowly. But, the good thing is that there is advancement!

Development on LightFrame is on hold. I'm doing documentation (both technical and user, although a user manual has a higher priority), so, aside from the bugs I encounter and subsequently fix, the framework will probably change pretty little.

In the mean time, I created a temporary page for lightframe.org that acts just as a portal between the various sites used for the development. I thought it was silly for the main page to redirect to the ticket system, so there's now a proper HTML page greeting the visitor, while the tickets have been moved to tickets.lightframe.org.

PS: During the smallish projects I've done with LightFrame, the development has seemed pretty nice and effortless. Setting up a project is a bit dull, but that'll change in the future with proper setup scripts to help. Expect those in Alpha3, the latest. This reminds me, I probably should do some gardening at Assembla again.

Thursday, January 22, 2009

Whoops!

A bit later than intended, I'm now switching the blog to a subdomain for lightframe.org. So, if you are reading this from your RSS-reader, visit http://blog.lightframe.org/ and re-add this blog to your feed reader. The old blogger.com-address doesn't work anymore.

If you are too fast, you might still land up on the blogger.com-domain. If you do, wait for a while, until you don't get redirected. The DNS updates take a while to propagate...

Edit: The DNSes seem to have propagated.

Monday, January 12, 2009

Postmortem

I held the presentation today at work. I guess the reception went reasonably well. I forgot to mention a few things, like taking inspiration off Django, and stuff. But hey, I got three-four questions, which is pretty impressive from a standard Finnish male audience, in a Java shop to boot.

Naturally, I displayed an embarrassing regression bug during the demo, but I guess there's a reason to the concept of Demo Effect (not those flashy-blinky-graphicy things).

But, I guess this really closes one milestone in LightFrame's life. And I feel relieved. Next up: documentation. But that'll take a while.

Sunday, January 11, 2009

Kudos to GitHub

GitHub was nominated the Best Bootstrapped Startup in TechCrunch's Crunchies-awards. From where I'm looking, they could've chosen worse – I've been pleased with their services thus far.

Freenode Schmeemode

I had written a semi-lengthy rant about the confusing site Freenode has, the process of getting a registered-yet-left-unused nick I wanted to use unregistered for me, and the overall confusion of the whole deal of registering a channel. But I erased it. The details would be boring.

What I wanted to say is that, as Freenode seems to be the central hub of FOSS on IRC, it's weird that the whole system is as clunky as it is. It's not like they wouldn't have the community and the resources to get a more convenient system coded. Sure, about ten years ago, interfacing with parts of IRC over the web would've seen as overkill. But today, it's just strange. Heck, even I have programmed an IRC bot in PHP, that could communicate with a database or even HTTP-requests if I wanted to.

Anyhow, #lightframe at Freenode is now registered, and it'll probably be the main channel for LightFrame, with a good second at #lightframe @ IRCnet (once my IRCNet server gets out of split-mode and gives ops to newly created channels). Welcome to either.

Update: #lightframe at IRCNet works now too.

Monday, January 5, 2009

Well, That Was Quick...

I did two demo applications, in, amazingly, only 250 lines of code a piece (including blank lines and formatting in both PHP and template files). One is a library application of sorts. It contains a list of books, those who have read each of the books, and their respective comments about said book. There's searching by ISBN and it's designed to work with a barcode scanner. The other app is a basic wiki with page creation capabilities, editing, Markdown parsing and a live preview as-you-write (not included in the LOC count, however, as these were third party libraries).

Me, I'm quite pleased with this fact. Not only is 250 LOC, in my books at least, a pretty small amount of written code compared to what one can achieve with that amount, I was able to do both of them in one sitting each. Or, actually, would have been able to, if I had not encountered some bugs. But I'm absolutely thrilled that I found those bugs, too – I now know that the code is that much better! Additionally, all the bugs I've found thus far have not been anything too difficult, cryptic or even sacrifice-a-black-goat-and-dance-around-naked-y to fix in a decent amount of time, which is always a nice change (to my day-job).

I now have pretty good a feeling about all this. These are the moments when I don't really care whether people start using LightFrame or not (although, that's always a motivational plus). I do this whole thing just for these small and personal victories. And the good part is; I'm not even close to being done with LightFrame. There's tons of stuff to do, and there's just the fun stuff left!

Oh, goodie, goodie, goodie!

Thursday, January 1, 2009

Happy MMIX

LightFrame has officially turned one. I've tagged something called alpha1rc in the repository. It's, however, outdated already, as the latest master has already a few bugs corrected. The name itself is a monstrosity – how can an alpha-release have a release candidate? It's like saying "this here is buggy, so use it only as a reference. Also, it's not very tested yet, so beware of some potential bugs". I guess I'll make it the real Alpha 1 the day before/after the presentation at work.

The reason I've done it this way is because I've only coded on LightFrame. Just cranked the code, and done some weak testing on the side. I'm now doing some actual demo projects with LF. Nothing hardcore, but still it has already revealed a few bugs (never mind the abysmal ticket descriptions. They're intended just as reminders for myself.)

So, what now?

I'm going to do a couple of demo projects. Eat some of the dog food. This reveals some facepalm-bugs, which get corrected ASAP. By the way, bugs have still the highest priority, and override any other tasks at hand. All*) known bugs need to be solved before new code is written. I have all intentions to keep it that way in the future, too.

*) Of course, the size of a bug will be taken into consideration. A bug that requires a complete rewrite, but has a known two-line workaround doesn't get too high in the priority of things from a sole developer.

Once I've got that alpha release covered, I plan on taking a look at documentation, but I have mixed feelings about this.

Naturally, documentation is many times what makes or breaks a software thingy. But the thing is, it's detached from the code. This leads to the fact that documentation will quickly become obsolete. Of course I have written PHPDoc all over the place, but an API documentation is not something you learn out of – it's a reference! (This reminds me of how much I generally despise JavaDoc, but that's another story.) No, I'm talking about a decent user manual, complete with tutorials, tips, tricks, and best practices. They are a must. But, since I lose my interest very quickly in products with outdated manuals, there probably are some people who think like me. The documentation quickly becomes the combined salvation and evil burden.

Be how it may, once I've got documentation covered, I'll probably get working on some administrative features in LF (eventually forming Alpha 2) as I try to get some sort of community website going on, with documentation, files to download, blue-collar-y news to give a professional face for people to get their impressions of and the like. These will be parked at the main website – lightframe.org, as soon as I figure out some kind of hosting solution (not a priority right now).

...which brings me to my last point: As a result of the mother of all christmas presents, there are some URLs that I intend to use in the future:
  • (www.)lightframe.org – For general information about LightFrame. A portal to all LightFramey, including documentation, downloadable files, forum and the like. This currently points to the Assembla project page.
  • blog.lightframe.org – The official blog of LightFrame. I hope that, in the future, it would not be just me writing here, but other notable contributors also. This currently points to this one, at Blogger.
  • repo.lightframe.org – LightFrame's source repository. This is where the latest source can be fetched from. Currently, this means a git repository at GitHub.
The target of each of the three might change in the future. The main website will definitely be changed to something homebrewn. I can imagine I'll write my own blog engine too, but I might stick with what Blogger is offering me. The repository one is a tricky on, as it's only a repository, and not much more. I might add a fourth as I intend to continue using Assembla as the ticket database for now.

NOTE: On 12.1 I'll switch the URL of this blog to actually be blog.lightframe.org. For now, that address has just been forwared to the Blogger subdomain, but that will stop working on that monday. Blogger is kind enough to give a notification about the move to browser visitors, but I can imagine that RSS readers can't follow that redirect. So: update your RSS readers on monday January 12:th to whatever is offered at blog.lightframe.org. Thank you.