Monday, December 21, 2009
Taking Some Time Off
I've been here before. The last time I felt this way, it was burnout. There is a distinct possibility that this is the case again, but it feels different this time even though I can't quite put my finger on it.To put it succinctly, I'm puzzled. This may be just a pause in the journey, but only time will tell.
Thought for the day: when you're at the bottom of a well, don't forget to look up. :-)
Sunday, November 8, 2009
OpenOfficeMouse: An Epic Fail in Usability
This mouse is a usability nightmare and it's so ugly, it's oogly. If you don't want to mess with the press release, I'll give you the lowdown: it's a mouse with 18 buttons, 3 modes, a joystick on the side with 3 modes of its own, tons of optional extras, and tweakability beyond anyone's dreams or worst nightmares. When I first saw a picture of it, I couldn't believe my eyes that someone would come up with a product this bad. Warmouse did.
I've seen quite a few comparisons with Apple's Magic Mouse. I'm not going to go there -- it's been done -- but what I will do is detail what's wrong with the OpenOfficeMouse. There's quite a bit wrong with it, too, and I'm not even referring to its appearance.
The buttons... oh the bevy of buttons available on the OpenOfficeMouse... where should I begin? It's almost as if OOM is a cross between a keyboard and a mouse, possessing two groups of seven buttons with the two primary buttons on the outer corners. The only differences between any of the buttons in each group are minor: slight shape differences, location, and, in the case of the primary buttons, color. It would seem that the designers forgot that a mouse is generally used by touch, not sight.
One original mouse idea went around at the Xerox Palo Alto Research Center (PARC) where it was designed. The concept, if you ask me, was very forward-looking: its three buttons had a different color and texture so that you could tell which button you were pressing by how it felt under your finger but easily specified on screen, e.g. red-click. Aside from the mouse becoming more rounded to fit the hand, not much else has been done to significantly change mouse usage since its inception at the PARC.
Button collections aside, there is also yet another major flaw in the mouse: the abundance of modes. Changing application behavior based on a button press or a checkbox is not generally a good idea because the user needs to adjust his actions according to the mode in use. Adding more kinds of modes places more mental load on the user. More technical users generally don't have a problem with this, but the difficulty they impose increases with the user's lack of expertise. Without appropriate feedback on the current mode -- considering the design flaws elsewhere in the design, is unlikely to be the case -- the different modes available both on the joystick and on the mouse in general will probably cause plenty of input errors, as well.
The intention behind the OpenOfficeMouse is to improve the experience of using the OpenOffice office suite faster and/or more easily. Unfortunately, unless you're an incorrigible tweaker, this mouse isn't going to help. The solution is to fix OpenOffice. Software is MUCH more malleable than hardware.
Wednesday, November 4, 2009
Pondering the Next Moves for Paladin
Friday, October 30, 2009
Karmic Koala is out...shrug
First, there is the usual shiny. The icons are different. This version includes some nice wallpapers, and the boot process was made shinier by replacing Usplash with Xsplash. Of course, there is just this odd-looking Ubuntu logo while you're waiting for it to appear. The Xsplash screen is just plain gorgeous, but vaguely-beige logo that shows up beforehand is at least one step back. It's just ugly.
Once again, boot times seem to have been improved. I can't put my finger on it and I haven't bothered to time the differences, but it certainly feels faster.
A few new apps and some changes to existing ones. Network Tools adds some standard tools like pinging and port scanning, but nothing that wasn't already easily installed by those who needed it (or skipped if using bash). The Disk Utility is a nice addition, but it's only a mild improvement over gparted -- SMART information and a different way of looking at the partitions. The Ubuntu Software Center is even simpler than Add/Remove Programs was. As if IM using Pidgin was hard, as far as I can tell, Empathy makes A/V chat easy. A bunch of programs received upgrades, such as Firefox to 3.5 and OpenOffice.org to 3.1. Aside from these kinds of things, nothing earthshaking.
One notable exception to the otherwise nice-but-not-groundbreaking list is Ubuntu One. Now by default there is cloud storage. For cheap power users like myself, the 2GB storage is just a drop in the bucket and with the US economy being in the toilet, spending $10 or $20 a month for extra storage just isn't an option unless you *really* need it. Dropbox has the exact same storage costs and is cross-platform, unlike Ubuntu One. If you need cloud-base file synchronization with at least one Window$ box, this is a much better option. Still, Ubuntu One is nice, too.
Maybe I was expecting more because some of Canonical's previous releases have been major improvements. Karmic Koala is more of an incremental improvement. There are other big fish to fry, such as simple remote desktop access with FreeNX or a decent entry-level desktop publishing -- sorry, Scribus doesn't cut it in this case. Yes, these are "merely" apps, but there are plenty of improvements that can be made. I'm hoping Lucid Lynx makes some real headlines, but for now, I'm quite content with Karmic.
Saturday, October 10, 2009
One More Feather in Haiku's Cap
Sunday, October 4, 2009
Making Up for Lost Time
Saturday, October 3, 2009
Capital Be... It's About Time!
Paladin 1.1 is Out!
My favorite feature of the release, though, is the code library. It started because I have quite a few classes I've written over the years which are shared between my various projects, but because I don't have a dedicated source control server (something I've been considering more and more lately), keeping these classes in sync with the occasional changes that I've made is more than a little bit annoying and error prone. Check a few classes into the library as a module, and Paladin automatically synchronizes the code.
Saturday, September 26, 2009
Ohio Linux Fest... What a Ride!
I arrived at the Greater Columbus Convention Center at about 7:15 am to set up and was quickly met by Michael Summers, whom I've known since the first WalterCon years ago, and Joe Prostko. We had been concerned about not having a projector, particularly on such short notice, but as we found out, it wasn't really necessary. We had a six-foot table, Joe's MSI Wind netbook, my Thinkpad R40 laptop, some live CDs, a bunch of fliers Urias had sent us, a couple of chairs, and some great neighbors in the non-profit section: the Northeast Ohio Open Source Society (NOOSS) and The Linux Link Tech Show (TLLTS). Setting up didn't take long, and even at that early hour there were already a lot of people there besides the sponsors.
I'd never gone to a computer convention like Ohio Linux Fest before, so I wasn't completely sure of what to expect. It wasn't all that different from some teacher conventions that I'd attended early in my teaching career. The big difference was that I could talk about my favorite operating system with the people around me and they'd actually understand me. :)
To be honest, I wasn't really expecting the kind of foot traffic that we received during the day. The table was in a great location and I can't even remember the number of people that I talked to during the day, let alone Joe and Mike. The live CDs that Joe and I had made didn't last long at all and despite starting with plenty of fliers, after about four hours I ended up running to Kinko's to make some copies of our last one.
After reading about others' experiences at similar events, I thought it was going to be a long day. Nothing could have been further from the truth. The whole day was a blur of talking with great people. It goes to show you that time really flies by when you're having fun.
Having been through my first convention, I'd like to share some of the insights I've gained. First, this is a really exciting time for Haiku. It runs circles around the competition in terms of the feature set in combination with its ease-of-use, low hardware requirements, and performance that it offers. On a machine like a netbook, there is no comparison. The small storage footprint and ease of configuration give Haiku potential for a sort of OS toolkit, similar to how Linux is used as a base for tools, such as CloneZilla. The demand for something like our favorite OS is there. All we really need is critical mass.
Friday, September 11, 2009
Working Harder than Before in the Office
I haven't written a line of code since school started. :( I'm having to learn the Office curriculum I'm teaching, which has been sucking up a lot of time. I also need to expand my IT skills, so I've started studying for an MCSA. Just so you know I haven't drunk the Redmond brand of Kool-Aid, right before I started I had been working on learning CentOS administration, which I still plan on learning. The upshot of the studying is that just in the last week (which is when I started) I've managed to put to use immediately almost everything I've been learning. All of this has seriously cut into my coding time, but with the potential for more money, this is a Really Good Thing (TM).
I'm still planning to go to the Ohio LinuxFest, but I don't know if Haiku will be able to get a table. I'll find out later today, so I guess we'll have to wait and see. Even if we don't get a table, I'm still going and pushing Haiku from the other side of the vendor table. Heh. *evil grin*
Tuesday, September 1, 2009
Ohio LinuxFest, Here I Come!
Saturday, August 22, 2009
CloneZilla: More than a Ghost of a Chance
What is CloneZilla, you ask? It is a Linux-based Live CD project which does the same basic stuff has Norton Ghost 2003 (and a lot that it doesn't), but is free software and -- as far as I can tell -- faster, too. Both allow you to back up your machine to one big file and then clone others from that file. CloneZilla, however, is quite a bit more technical than Ghost, which tries to market itself as both a backup solution for the regular user and a sysadmin's imaging tool. With that said, CZ is quite technical, and there were quite a few options that I had no clue what they were for. It was a wise idea for those behind the project to incorporate both a beginner and an advanced mode. The latter is well-named!
Some of the other things that I really thought were nice to have: backup can be done via SSH, NFS, or Windows file sharing (Samba) or to a local disk. Quite literally, you could clone a machine from the Live CD and a flash drive! Maybe I'm just really happy because Ghost 12 leaves you using PC-DOS and 2003 sticks you with the Vista pre-install environment. While for different reasons, they're both junk. It took 2003 probably a good 5 minutes to boot and the CZ disc about 2. Multiply that by 10 machines and you have something significant.
One thing I did not test out was the server version of CloneZilla. It comes as a part of Diskless Remote Boot Linux and requires loading a machine with Linux to act as a server to handle booting over the network. If the testimonies on the project's website are any measure, not having to buy the
This is not to say that working with CloneZilla is all wine and roses. I did run into one major problem with my first attempt. The first image I created with it was done over the network to a disk I was sharing from Windows XP. The image had somehow gotten corrupted when it was created. However, I made a new one to a USB hard drive I had lying around and it was all fixed from there on.
I can't stand Norton's antivirus package, but Ghost is a solid product. CloneZilla feels like it's based on Linux, full of technical terms and a slew of unfamiliar options. Guess what? When it comes to price, speed, and hardware compatibility, Norton seems to lack the spirit.
Monday, August 17, 2009
Haiku Alpha: More than Pleased
What kinds of applications are we, as a community, missing? Major ones.
- Word processor - the AbiWord port is by no means complete. Productive was lightweight for 2000. It's not even really worth mentioning almost 10 years later.
- Spreadsheet - Sum-it, now that it is open source, is missing features that many office workers need.
- Personal Information Manager - I hate Outlook. Haiku needs something better that fills the void. E-mail is covered with BeMail and Beam and contact management (mostly) with Mr. Peeps, but there is no good, easy-to-use calendar program. Sunbird isn't stable enough to count.
- CD Burning - Helios is the only good one, but it's dead in the water because it's closed source and won't even run on Haiku. Melt is only open source one, it's hard to use, and its code is a mess.
- Photo manager - Think of the many things that Picasa does. BeAndSee in combination with PhotoGrabber is a step in the right direction, but, as a community, we're not there yet. Wonderbrush is a great image editor, but it doesn't to photo-related work like red eye removal or color adjustment.
There are websites that let you do almost all of those, but there are a great many times when you don't have access to the Internet. What do you do then? If you dual boot with another OS like me, you reboot to another OS. If not, you're pretty much stuck.
If you're a developer and even remotely committed to Haiku, find a project, get behind it, and help. Don't know how to code? Try learning. If a moron like me can teach himself how, anyone can learn. I'm not in the realm of Axel or Ingo, but, then again, I didn't go to college for computer science, either.
What if you don't want to learn to write programs or can't for some reason? Help developers in the community by using their programs and telling them about your experience. I don't know about other developers, but it makes me feel good that something I wrote is helping someone else and I want to know about bugs. I probably don't know about some of them. It takes a some time to write a few e-mails, but not nearly that of writing programs, and it helps everyone. Have a blog? Test and review some software. Tell other people of your experiences with it. Can you write well? Help work on documentation.
In some ways, I'm getting a feeling around the community that is probably similar to the days of BeOS DR9. The community is quite small and most people I talk to have never heard of BeOS, let alone Haiku, or they heard of it once and that's it. What makes open source work is people giving back, and not just developers.
Friday, August 14, 2009
Windows Responsiveness (or Lack Thereof)
After spending the summer with my work laptop running Ubuntu, I had to install XP Pro. I didn't want to, but my school is a Windows-only shop. I disliked doing the install and resented having to hunt all over the Web for drivers only to have to install 500MB of system updates, but the last straw was when I was copying over my MP3 collection. Both machines were running XP and the file copy was taking forever. After about fifteen minutes, I rebooted the source machine into Linux, deleted what little had been copied, and started copying the collection using FileZilla to do an SFTP transfer. I had two files being copied at once and each one was taking half the time to copy as the XP file copy had. Somewhere in there, there's a problem. Worse yet, the destination machine was so slow (Athlon 64 3000, 512MB RAM, 80 GB hard drive) as to be unusable. Just plain sad. Man, I'm going to dislike using this machine with Windows again. :(
New Paladin Stable Release and More
I'm not just standing still on Paladin's unstable branch. I'm working on what will probably be the last feature before I release an official build: the code library. What in the world is that, you ask? A feature itch I've had for some time which is now getting scratched. The C++ computer language lets you write code with reusability in mind. I have a bunch of files which I use quite a lot in my projects. The only problem is that if one of those files gets changed, I have to go through all my other projects that use the same files and update them, too. Paladin's code library eliminates this by keeping its own copy and updating projects when you open them. It's a little like using version control (CVS, Subversion, etc.), but much less work for this kind of task.
Despite its name, the unstable branch right now is pretty stable. It should be interesting to see some of the bugs that other people find once it's released. TTFN
Monday, August 3, 2009
Happy Everything
I just recently discovered this picture as a really cruddy jpeg file with lots of artifacts. I liked it so much that I spent several hours yesterday redoing it in Inkscape. While there are small differences, they're not very noticeable. I'm posting the results here so others can enjoy it, too. You can click on it at the left and save it (PNG, 1280x1024 for desktop wallpaper) or save the SVG version.
Tuesday, July 28, 2009
Extracting Clipart from the Office Website
The problem is that clipart from the Office website is downloaded in MPF files. These are simply XML files with the actual file data base64-encoded. There is a Perl script to extract the files, but it requires several modules to be downloaded from CPAN. Not too horrible for me, but definitely not something that, say, the secretary at my church would be able to tackle. No more. I have written a GPL-licensed Python script, mpfextract.py, to extract all clipart from MPF files. This'll also be a nice thing to have once Haiku has WMF support beyond having libwmf ported. :)
Tuesday, July 14, 2009
Time Flies When...Aw, Who am I Kidding?
I do have some good news, though. Frustrated by the lack of a decent packaging system, I've created a self-extracting package. It looks and works much like the installer for SoftwareValet's packages. The nice thing is that these can be invoked to install from the command line, so using this system could be ideal for distribution makers. Now all I have to do is write the tool that puts files into a package, which was the reason for starting it all. I also need to do a public beta of a self-extracting package, so don't be surprised if you see a Paladin release of some kind in the near future. :)
Tuesday, June 30, 2009
Still Here
Codewise, I'm still working on the GUI designer foundations -- list controls, buttons, and checkboxes work right now. There is still a ton of work before it's worth using for anything, but I'm not giving up. I've been working a bit on the development branch of Paladin, too.
The last couple of days I've been working on an alternative using SoftwareValet packages. The reason? Release time for Paladin is a major pain in the neck, mostly because the same set of procedures needs done each time and they have to be done manually. This, on more than one occasion, has led to mistakes in the package, in the build, or something else. This goes back to one of Joel Spolsky's questions in his 12 Steps to Better Code article. If you've not read this article and you are either a developer or work with one, you should definitely read it. To save the rest of you who don't want to bother, you should have it possible to make a build -- from checkout to compiling all the targets -- in one step. The BeOS platform doesn't have something like that... yet.
Thursday, June 18, 2009
It's Official: Paladin 1.0!
For those of you that haven't played around with it, here are some of the differences between BeIDE and Paladin:
- Open source - you can pretty much do anything with its code that you want, except change the copyright on the original sources.
- Group non-code files -- notes, TODO lists, etc. -- in with your code for better organization
- Support for flex and bison out of the box
- More ways to execute your program, including logging debug output and setting run arguments
- Support debugging with gdb in Haiku
- Project files are in an open format
- Projects can be built from the command line
I've also added GCC4-only packages to BeBits so that anyone running it can conveniently get an alternative to just Pe and jam or make. I'm having problems uploading the new release to Haikuware, but I should have that resolved before long.
And for those of you about to code, we salute you. ;-)
Saturday, June 13, 2009
More Component Work Done
The component code allows for something like reflection -- you can get a list of interfaces that an object supports and a list of its properties, so if an object implements the PView interface, you can, for example, expect to be able to change its ViewColor property and see its background color change. One of the coolest parts of the API that I've built is that I changed *one* name in the code and rebuilt the test program and a button became a checkbox! The component API itself doesn't lend itself well to manual coding -- more effort is required to set and get properties, for example -- but it isn't really intended for that. Getting a list of an object's properties, making an editor for each, and modifying the object's values from these editors will be very easy and not require very much effort.
All of this hammering on a project has also exposed some small bugs in Paladin's stable and development branches, including a crash that I fixed last night. As soon as I can get PalEdit's sources fixed to build with GCC4, the official 1.0 release will be going out the door. Man, I love summer vacation!
Sunday, June 7, 2009
Pythonizing C++
PObject *o = NULL;
o = NewObject("PWindow");
StringValue sv("FooWindowTest");
o->SetProperty("Title", &sv);
RectValue rv(BRect(100,100,500,400));
o->SetProperty("Frame",&rv);
BFile file("/boot/home/Desktop/test.plg",B_READ_WRITE | B_CREATE_FILE | B_ERASE_FILE);
BMessage msg;
o->Archive(&msg);
msg.Flatten(&file);
In these reasonably few lines of test code, I not only manage to create a window in the upper left corner of the screen in a thread-safe fashion, but I can even save it to disk and recreate it in the exact same state as I left it, and the code is refreshingly short:
BFile file("/boot/home/Desktop/test.plg",B_READ_ONLY);
BMessage msg;
msg.Unflatten(&file);
PObject *o = (PObject*)UnflattenObject(&msg);
The backend code is only 5 or 6 files of reasonable length, but even so, I'd be hard-pressed to do the same kind of trick using regular BWindow and BMessage code in anywhere near the same amount of code. Then again, maybe I'm just overly excited. *shrug*
What's the significance of this technical rambling? The designer, assuming no other major roadblocks from here, will be very flexible, relatively easy to code, and pretty simple to extend with classes not bundled with the operating system. Code generation may not be all that difficult, either, but only time will tell on that one.
Thursday, June 4, 2009
Keeping Busy
Paladin has seen some renewed development. The last time I was actively developing it, I was in a burst of activity that kind of burned me out a bit. After a little time off, I'm back at it. There have been some bugfixes and it looks like there are enough that a new release isn't far off. There are a bunch of things that have been fixed and there is even work on getting it to build under GCC4.
I've also stumbled into actively looking into something that I thought was going to wait for later: a GUI designer. Yeah, yeah, there's MeTOS, BeBuilder, Bic, BeXL, and probably a few others. Each has their own problems and limitations. The biggest problem I see is a lack of active development, especially in light of the slow-but-steady progress Haiku is making. None of the open source ones seem all that usable -- though each has some nice features -- and there doesn't seem to be anything new brought to the table aside from an easy way to piece together the GUI. Right now, I'm working on a component model that so far seems to do its job pretty well and as far as I can tell is language-agnostic, making the use of something besides C++ (yab, Python, Perl, etc.) not too far-fetched. We'll see what happens.
School lets out for the summer tomorrow, so there should be some significant stuff happening in the next couple of months. Should be fun to see what, um, develops.
Friday, May 15, 2009
Brick Walls Sure Hurt
This discovery more or less puts the clipart manager dead in the water, unfortunately. The upshot to all of this is that I've been slowly getting the hang of working in Python, which is both fun and powerful.
Wednesday, May 13, 2009
Hacking Python
I've liked Python for quite some time, but I never really had any need to use it. Until now. I haven't used BeOS lately because I've been trying to iron out some production limitations for office-related work done at my school and my church. What are they? I need a flashcard program that can handle pictures or text card and can be used in a way as to be done with an LCD projector with a class. Nothing out there does that. There is also a complete lack of a clipart manager for Linux, which for a teacher or church secretary is an automatic no vote.
The state of consumer-level desktop publishing under Linux is abysmal. Yeah, yeah, I know about Scribus. It could be workable if there were WMF support. KWord and OOo Writer can do frames, but neither is very easy to do even somewhat complicated layout work. I'm thinking of something along the lines of Broderbund's The Print Shop or even (blech) Microsoft Publisher.
The major problem with Linux DTP is that unless you're someone who does it professionally and knows the intricacies of things like working with a printer and such, it's not very easy to use. I hate to say it, but Scribus could be a really killer program if it were able to utilize WMF and EMF files. The pro doesn't need them, but a large number of other people depend on them. The part that bugs me most is that the website offers a crappy workaround which, while providing results with varying levels of quality, is too technical for Joe User to really get a handle on and, frankly, too much effort to want to manually bother with.
Barring the Scribus development team to implementing this (fat chance), the solution would be to build a manager which can import and manage collections of clipart from different sources and then export them to the clipboard or to a file in a variety of formats. That is the goal, but first, I must learn to walk before I can run. Alas. The fruits of my first efforts? A script to extract clipart from MPF files served up by the clipart obtainable from the Office website. I'll post it a little later when I have more opportunity. For now, I've got some serious reading and hacking to do.
Thursday, April 30, 2009
Ups and Downs
This would probably be the first time where I've been juggling more than a couple projects at once: a simple whiteboard application (almost done), fixes for BeMines, a few more tweaks remaining before Paladin's 1.0 final release, a small app for reviewing flashcards -- mostly pictures -- in class with my students, and reviving my first project by rewriting it: BePhotoMagic. It's a lot, but I'm not planning for the tools to be used before the end of this year, and it's all been fun stuff, so a timeframe for release isn't really an issue.
Unless you've been under a rock or don't follow Linux at all, the latest release of Ubuntu, Jaunty Jackalope, was released last Thursday. I absolutely *love* it because of the much-improved boot times -- the only real complaint that I've had about Linux up to now. My development box is a Pentium 4 3Ghz with Hyperthreading and 1GB of RAM and it boots in 30 seconds. That's half as long as XP Pro on the same machine!
Also in Jaunty is the dovecot-postfix package, a complete mail server installed in one package, courtesy of the Ubuntu team. If you've never attempted to set up a mail server under Linux, it's not for the faint of heart. In fact, I'd say it's harder than compiling and installing your own Linux kernel, so this is also big news for any would-be beginner sysadmins out there.
It's also easier to work with more than one monitor under Linux using the new release, as well. It's still a little strange and takes some playing around, but it's nowhere near the headache that it used to be. Gone is the need for futzing with xorg.conf files to configure Xinerama. This is also a major improvement in a smaller area.
In other news, Microsoft has conceded defeat on the OOXML vs ODF wars and apparently has included full ODF support in the just-released Service Pack 2 for Office 2007. All I can say is it's about time that Redmond got some sense in this area. Unfortunately, it won't be rolled out via Microsoft Update until August. At least now my coworkers can finally use my OpenOffice.org files without much hassle.
There isn't much else to tell, but when I have something to show, you'll know. TTFN. :-)
Sunday, April 12, 2009
Paladin: BeBits App of the Month
Minesweeper for Haiku
You might be wondering, "why Minesweeper, though?" -- well, actually, you're probably not, but let's pretend anyway. ;-) Like Tetravex, Minesweeper is another one of those little addictive time-waster games that I've had an attachment to at times. Unfortunately, there are only two available for BeOS: the demo shipped with R5 (which is not redistributable) and a browser-based one available on BeBits. Neither seem to really hit the mark. Frankly, the R5 version and its Windows counterparts are kinda hard on the eyes, especially at higher resolutions. The solution? Write my own. It's a relatively simple game conceptually, so why not expose some Paladin bugs writing another fun little game? Thus, BeMines.
The part that I like best is the different themes and how easy it is to make them. The one that probably took the longest was the GNOME one, and even it didn't take long. The middle-click sonar ping is a nice help if you hate to guess and don't want to bomb out on a game you've put some time into (like at the Expert level). I'm pleased with it, so here's to another fun little project born.
Monday, April 6, 2009
Mmm... Dog Food
Writing code with Paladin has been quite nice, actually. Once in a while I'll run into something that makes me say, "Wait, it shouldn't do that," or "What in the world?! Why doesn't that work?!" Some of the features that I've put into place are nice to have, like the Run Logged or the ability to set run arguments. These features -- or ones like them -- might be commonplace in Windows land, they certainly aren't here.
What have I been working on, you ask? Minesweeper, of all things. This is another little time waster that I've enjoyed on other platforms and, like BeIDE, there isn't a version that can be legally redistributed. It's playable and is skinnable, but it's missing some stuff -- high scores and a few other smaller features. It'll be nice to have around once I have it ready to release.
As a result of all this hacking, Paladin is, once again, a better IDE for wear. There is a major regression in RC5 which causes empty files to appear in the editor when you double click on a file in the project window. There are some other bugs that have gotten a good squishing, but there are a few more items on my to-do list before it's quite ready for release. Despite the seemingly endless number of candidates, there will probably be a point where I declare a 1.0 despite outstanding bugs, but in a case like that, none of them will be showstoppers like the one I just described above.
Saturday, March 21, 2009
Friday, March 20, 2009
Presto: Instant-On Linux from Xandros
Downloading and installing Presto from the website is easy enough. The installer is 483MB, so it's smaller than most of the major Linux distributions, but larger than the little ones like DSL and Puppy Linux. It installs (and uninstalls) the same way that Ubuntu can be installed through Wubi and on my machine, everything installed without a hitch. There was one minor bug I had to deal with, but for my purposes here, I'm not going to bother with it here, being a beta version and all.
Boot times are impressive. From the time that I hit Enter at the boot menu to choose Presto, it was literally 10 seconds to the desktop. While I'm not so sure I would call that instant-on, the only OS I've ever seen to boot that fast is BeOS. By comparison, XP SP3 on the same machine takes over a minute. Ubuntu takes somewhere between 1 minute, 30 seconds to 2 minutes. Ouch. The test rig is neither a dinosaur nor a bleeding-edge gaming rig: an AMD64 3000+ with 2GB of RAM on a 320GB Western Digital EIDE hard drive. The major marketing point behind Presto seems to be pretty much valid in this case.
Once booted, you are greeted with a rather spartan desktop with a panel along the left side of the screen. The desktop environment is Xfce4 and immediately available are Firefox for web browsing, Pidgin for instant messaging, Skype for voice chat, the Thunar file manager, and a launcher for the Xandros Application Store and that's it -- sparse, but the Store makes installing other programs a cinch.
The Application Store is nothing new if you're familiar with Click and Run from the days of the Linspire distribution. For the uninitiated, Click and Run is a way to install a program with one click from the Firefox web browser. Many programs in the store are free, but there are also web services and commercial products, as well.
The only real downside to using Presto that I found was the lack of customizability. Having used Xfce and GNOME extensively and experimented with KDE 3 and 4, I'd say that Xfce is a good middle ground between GNOME and KDE for the amount of options offered to the user. Unfortunately, I found none of that available. In fact, the only way to open a terminal window is by right-clicking in a file manager window and choosing Open Terminal Here. It appears that the user is not permitted to add another launcher to the panel or to access the regular control panel that comes with Xfce.
This lack of customization makes me wonder what Presto's target market is. It seems too limited to bother with on a reasonably modern PC and worthwhile only in a semi-embedded role, such as the OS shipped on a netbook. Nontechnical users won't care what's on it as long as they can use Word (which they can't). Power users will probably find it fairly limiting like I did, and Free Software advocates will most likely look elsewhere, being this is a proprietary distro.
Personally, I find the boot and shutdown times amazing -- it boots as fast as BeOS and shuts down faster than Haiku, which is really saying something. Once booted, though, it feels like something's missing. There are some nice choices in the Application Store, but the ones which were unfamiliar to me were almost exclusively the non-free choices. Somehow, I just don't find Presto compelling. Here's to waiting for the Jaunty Jackalope release next month.
Thursday, March 19, 2009
March Madness... Basketball it Ain't
In the fewer-than-usual spare moments that I've had, I've been dogfooding Paladin again. This time? Minesweeper. Once again, I've found yet *more* bugs in the unstable version, but I have a sinking feeling that they're also in the current release candidate (#4), so I'm betting there's going to be yet another one after it. You'd think there'd be fewer of them at some point. Sheesh. BeOS had a Minesweeper clone, but not Haiku -- or at least not an open source one. It's turning out to be a fun way to find bugs in Paladin, so I figured why not?
In unrelated news, courtesy of the illustrious C|Net, Spiralfrog, the ad-supported free(?) DRM-crippled music service has closed its doors. Good riddance. For those who don't know the history, back in October '07 I posted -- at my old site, no less -- about getting shafted by the Digital Restrictions Management included in each song downloaded from SpiralFrog following a reinstall of Windows. I have never forgotten it, either, and I don't intend to. Goodbye, Spiralfrog, no one will miss you.
Saturday, February 28, 2009
Paladin can Bootstrap Itself Now
The primary reason for the complexity with PalEdit are rez files. For those unfamiliar with it, rez is the name of a resource compiler for Macintosh. Maarten Hekkelman, the programmer behind Sum-It and Pe, wrote a version for BeOS which uses text-based resource files for menus, dialog windows, key bindings, and more. Sum-It and Pe -- and by inheritance, PalEdit -- use these files extensively, so until now, jam has been a requirement to build Paladin's text editor. While this is not a shot at jam, for someone who much prefers an IDE to a text editor and a terminal, this is a pain.
It's not all perfect, though. This is the development branch, after all. There are issues in building Sum-It, but this might be because of the speed with which I put the project for building it together. Then again, putting together a project with Paladin should be quick and relatively painless. Either way, the rez resource compiler isn't all that helpful in handling errors in its files. In the process, though, I patched some more bugs in the stable branch. Progress is good. :)
Sunday, February 22, 2009
The Road Ahead for Paladin
Even now I'm pretty surprised by the number of bugs that have been squished since Paladin's first beta release. There will be at least one more release candidate before the final 1.0. There probably wouldn't have been quite so many were it not for so few people actually reporting bugs. The vast majority of bugs fixed have been ones I've noticed.
None of this is to say that Paladin is more or less standing still, feature-wise. The bugs from the release candidates were almost all ones which I discovered while working on the development branch. Some of the new features include support for shell scripts and rez files, lots of internal cleanups, shorter build times, and the ability to recursively add a folder's contents just by dragging and dropping.
Adding entire folders makes migrating from other build systems incredibly simple and fast, especially when groups are also created for the user. Projects which have lots of files and subfolders, like Open Sum-It, for example, all that is needed is to drop the main sources folder onto the project window, add a few include paths, and change the system libraries in the Project Settings window. It won't be much longer and Paladin will be used to build PalEdit instead of jam -- rez support is still under heavy development as of this writing.
I don't know how far I'll be taking Paladin development, really. The future is wide open in that respect, but I'll describe some of the features that I'd like to make happen most. If nothing else, it'll make for some good Sunday evening light reading. ;-)
One feature that will be added, barring unforseen issues, is a one-click backup of a project into an archive. Coupled with a command-line switch, it could make for some simple nightly snapshot files and also provide a good alternative to using revision control for those people who don't have access to CVS, SVN, or whatever.
A personal code library could also be really handy, and it's a feature that I really want to see happen. The idea is that sitting around my hard drive are some reusable classes that I've used in different applications. For me, this includes a C++ wrapper class around SQLite3, a TextFile class that allows reading of a file one line at a time, and a bunch of things that eventually made their way into LibWalter. There aren't really so many classes to warrant my own personal library -- libdw or whatever -- but there are enough of them to be difficult to manage manually, particularly if I find a bug in a frequently-used class. The solution? A personal code library without the overhead inherent with a full-blown revision control system. Not all of the details have been sorted out, but if I think it would help me personally, others probably would, too.
Code generation facilities could also speed things up in a useful way, too. BeOS C++ developers do a lot of subclassing, and it would be nice to have a way to quickly give a class a name, check a few boxes, and have the generator churn out skeleton code. Instead of using cut 'n' paste or manually typing out a MessageReceived function for a BWindow subclass, checking a box could make the genenerator spit out something like this:
void
MyWindow::MessageReceived(BMessage *msg)
{
switch (msg->what) {
default: {
BWindow::MessageReceived(msg);
break;
}
}
}
One checkbox to get this? Sounds like a nice tool to do all the boilerplate code, if you asked me.
Basic makefile and/or jamfile generation is still on my to-do list and would make migrating to a more complex build system easier. Code completion would be a wonderful help -- I'm forever having to look up the parameters to a BListView constructor because I use them enough to want to have them memorized, but not often enough that I actually have memorized them. A preferences window and profiling support are coming, too.
All in all, there are lots of exciting things coming. I'm not crazy enough to think that it'll become the de facto IDE for Haiku developers, but if it helps a few people start developing for BeOS / Zeta / Haiku and helps grow the community a little, that'll be far more than I ever thought would happen.
Sunday, February 8, 2009
Another Paladin Release Hits Light of Day
This release for the stable branch really isn't anything overly exciting except for bugfixes and (finally) some documentation, but that's not entirely a bad thing. It seems like unlike most of my other projects, Paladin has had general stability issues -- almost like there are always these little niggling details which just keep cropping up. Each time something comes up, though, I'm not generally too long in squishing them.
As I am able, I'm also working on the development branch. Right now, I'd say that there are two features that I will be implementing unless there are major issues: support for adding files and groups just by dropping a folder onto the project window and build support for rez files so that I can get rid of the jam system for PalEdit.
Saturday, January 31, 2009
Dust Can Do More Than You Think
Thinking it was a problem limited to Windows -- like a driver problem or something -- I decided to spend quite a bit of time in Linux for a while to confirm my suspicions. As it turns out, there was a different problem -- the screen went black as if it had been put to sleep to save power, only there was no waking it. In fact, I had to do the magical Alt+PrintScreen REISUB reboot. Upon reboot, the boot text was garbled.
I couldn't find anything anywhere on the WWW about it either problem. I figured the card was bad, so eBay to the rescue with a Geforce FX5700 256MB to replace my 5500 for $35. Not bad. I'm still waiting on the card, though, so I was going to grab an old temporary card (ATI All-In-Window Radeon 32MB) to stand in until it arrived. When I pulled the 5500 out of the case, lo and behold, an entire family of dust bunnies had taken up residence in the cooling fan of the card! I figured this might have been the problem, so it got a careful once-over with compressed air, a quick replacement back into the machine, and... everything seems to have gone back to abnormal.
Moral of this story: dust bunnies aren't just cute, they're electrically delicious.
Sunday, January 25, 2009
Viruses, Spyware, and Trojans, Oh My!
Thursday, January 15, 2009
Easy Remote Linux Logins with FreeNX
With my having to fuss with networks at school and having a couple of machines at home, there have been a few instances where being able to remotely log into another machine has been a significant convenience. There aren’t many options out there unless you want to pay money:
- RDP (aka Windows Terminal Services) – Free only for the client. As far as my limited experience has been, this is quite nice, fast, and it even supports audio. The only problem is that the licensing is quite draconian and it only is available on the server editions of Windows or a pay-for version for *NIX.
- X11 – X was designed for network-transparent sessions. The only problem is that it’s not secure and setting it up over SSH is a pain.
- VNC – Lots of good things here – free servers and clients for just about any platform you can think of and setup is pretty easy in most cases. The problem? It’s a bandwidth hog.
Enter the Italian company NoMachine, which offers its commercial NX Server for remote access under for Linux and its ilk with open source libraries. These libraries implement the NX protocol, which is more or less a way to both secure and speed up remote login connections.
As far as my experience has taken me, it hasn’t seen anywhere near the popularity that VNC has. I find this strange – VNC tends to be slow – even with compression – and is not secure on its own. It can also be a little weird to set up sometimes, as was the case for me setting up UltraVNC on a Windows box at school yesterday.
Perhaps it’s just me, but FreeNX deserves more limelight than it has received, if my setup experience from earlier today is any measure. Part of the ease of installation was thanks to http://www.drtek.ca. The main part of the site seems to be in French, but one page was both in French and English. Compliments of its author, I received listings for the repositories that I needed and was able to install the server with one command. Because NoMachine offers NX clients for both Windows, Linux, OS X, and Solaris, I went to NoMachine’s download page and grabbed the Windows and Linux versions. Just to test to see if things worked, I installed the Linux client on the server machine and tried to log into a regular terminal login and it worked – a little too easily for Linux, in my opinion. I tried a GNOME login from my windows box with the same results. I’ve come to accept the amount of tweaking that Linux requires in most cases, so when it just seemed to work, I was a little suspicious, but everything works as expected.
For a short summary, here’s the entire install process:
- Open up /etc/apt/sources.list and add the following lines to the end:
# Ubuntu FreeNX Repository for Hardy
deb http://ppa.launchpad.net/marceloshima/ubuntu hardy main
deb-src http://ppa.launchpad.net/marceloshima/ubuntu hardy main
deb http://ppa.launchpad.net/freenx-team/ubuntu hardy main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu hardy main# Ubuntu FreeNX Repository for Intrepid
deb http://ppa.launchpad.net/marceloshima/ubuntu intrepid main
deb-src http://ppa.launchpad.net/marceloshima/ubuntu intrepid main
deb http://ppa.launchpad.net/freenx-team/ubuntu intrepid main
deb-src http://ppa.launchpad.net/freenx-team/ubuntu intrepid main - Update the list of packages kept on your machine by hitting Reload in Synaptic or sudo apt-get update from the Terminal
- Install the freenx-server package, either from Synaptic or from the Terminal using sudo apt-get install freenx-server .
- Grab the necessary clients from NoMachine’s download page and install on the machine of your choice.
- Marvel at the lack of work required.
There is still the ability to tweak the configuration until the Second Coming of Christ, as is typical of Linux, but this is only needed if you want remote printing (which I haven’t tried… yet), sound, or certain other things like setting up a remote login cluster or something. If you just want to be able to log in, you’re done. Ain’t that nice.
Saturday, January 10, 2009
Will Windows 7 be a Hit for Microsoft?
Right now, I’m sitting in my living room, writing this from Windows Live Writer from within the newly-released Windows 7 that I put on a spare laptop from school. So far, my impressions are largely positive ones. The installer is much less involved than any previous version, though it does have a couple of annoyances. It creates a 200MB System Partition – not sure what that’s for – and it, once again, overwrites the MBR, so if I had another OS on this machine, I’d have to install the bootloader. Again.
Performance was my biggest gripe for Vista. Getting around feels a little more like a battleship than the cruise liner that Vista is. Driver and device handling is much easier. Once again, more stuff has changed, rendering an experienced user like myself a stranger in a strange land. Numerous places, as usual, are two usability steps forward and one step back.
Some of the changes over Vista are truly nice to have. Dragging a window to the top of the screen maximizes it. Dragging it to the right or left edge tiles it to occupy half of the screen. The new taskbar is a nice improvement. Windows Live Writer is a very nice blogging tool that I just might be using quite a bit on my main computer if it’s even possible.
Other changes are… less than ideal. I’m not impressed by the fact that I have to download a separate e-mail client. Even Windows 95 came with Outlook Express. Yeesh. If I want to download an e-mail client, let it be out of choice and not from lack of one. If Microsoft is going for their own answer to iLife, this ain’t it. The whole Windows Live cloud computing thing doesn’t exactly impress me. If you live in Silicon Valley, fine, but there are many people in the US that are stuck with the choice of dial-up or satellite, with neither being a pleasant option.
I’ve only had Windows 7 for about 6 hours now, so I know I haven’t hardly scratched the surface of the entire experience, good or bad. Some general looking around has given me some ideas for Haiku that would make it more pleasant, but for now, the jury’s still out on the next generation out of Redmond.
Monday, January 5, 2009
Back in the Saddle... Sort of
I have put together a new development box which is well-suited to BeOS development: a 2.8 Ghz Pentium 4 with Hyperthreading, 1GB of RAM, an nVidia Quadro-based video card (with BeOS support for 3D-acceleration), and lots of hard drive space. It runs XP, Xubuntu, R5, and Haiku. Paladin's multithreaded compiles seem to have a bit of a speed bump over R5 -- which doesn't recognize the hyperthreading -- but not as much as I'd like. The disk is probably the bottleneck, so I guess it can't be helped. Oh well.
School starts back up today, so it's back to the grind, but because I should be settling back into the usual school routine, I should be back on track for more Paladin development shortly, especially being I found out that it crashes whenever you try to reorder file groups. Oh well. A programmer's work is never done. :-)