Saturday, December 10, 2011

HP freeing WebOS, now they better make sure they do it right!

Followers of this blog (read: "nobody") should note that I called for HP to release the code of its mobile WebOS GNU/Linux-based mobile operating system back in August of this year.

This was when, after the TouchPad tablet was not as well received as expected, HP decided to get out of that business altogether.

Now, some four months later, I read the news that, in-fact, HP has announced that they will do just that - free the code.

Though details remain unclear, such as what license they will use, it's important for HP to see this as a strategic opportunity.

As Blaise Alleyne noted, commenting on my original blog post, WebOS could very well go the future of the freed Symbian if its toolchains were not modern, though it seems WebOS's toolchains are exceedingly modern. WebOS further uses mainstream GNU/Linux technology like GStreamer and LibPurple to name a few.

Where issues may arise, then, is whether or not HP will simply release the code into the wild, and hope some major player becomes a major force, akin to Cyanogen with Android or Hexxeh with Chromium OS.

Instead, HP should be very careful and make sure to not just release the code into the wild, but to incubate it as a free software project. There's a lot WebOS to like compared to current offerings, and a lot that can be improved upon, and with the community's help I think WebOS can be come a competitor in the market.

Tuesday, November 22, 2011

Programming: How I choose to calculate and display "time remaining"

Consider this a geeky math post, but I've been discussing a certain algorithm I wrote some time ago. It's for, if a program is doing something like copying files that takes a while, how to figure out what to display to the user for "time remaining." See, time remaining is so arbitrary and difficult to really get a good grip on, but here's how I did it.

You select an interval and after that interval you see how much was done. Let's say your interval is a minute (which I recommend) see how many megabytes were copied in a minute.

Then have your program ask the following question - if I did this amount of work in this amount of time and I have this amount of work left to do, assuming I will go the same speed, how long will it take?

If you set your interval to be a minute, with every minute that passes your measure can get even more accurate, because now it's a question of much was done in two minutes, three minutes, etc.

Of course you can do what people like Microsoft did/do where you set the interval to a second or two, but that leads to the kind of "ten minutes remaining. oh wait now it's 11 minutes remaining. and now it's 5 minutes, and now it's 1 minute" sort of madness.

But make sure when you actually display it to the user you don't display seconds, because the measure is only updating every minute so displaying seconds will seem weird. And when it calculates that there is less than a minute make sure you change it to display a string like "Less than a minute remaining" otherwise it will say "0 minutes remaining" which looks odd.

Why is this necessary? Well for one you want to keep the user informed as best as you can, as to what your program is doing. If they have to look at your window and wonder if the program is frozen you're doing something terribly wrong. This applies to a large number of web-apps as well.

Friday, August 19, 2011

The demise of WebOS

With the recent announcement of their abandonment of WebOS devices, Hewlett-Packard is shifting, it seems, from the computer business altogether.

It's a shame. I like a lot of what HP does. I don't, admittedly, have tons of experience with their computers, but their printers? I love them.

Some companies choose to ignore GNU/Linux and support for their devices is developed by a third-party group (usually the kernel people themselves) or support just doesn't exist.

HP on the other hand has taken an active role in making sure as many of their printers, scanners, and such work well via the HPLIP project. The result is that the number of devices listed as working perfectly is quite big and this is something I appreciate. It builds brand loyalty and I am, if considering a printer, nine times out of ten going to go with HP just because I know I won't have to hassle with it.

But HP is not a free software company by any stretch. Plenty of their products are proprietary, and some are proprietary even though they are built on free software technology and innovation.

The latter was the case with WebOS, an operating system for embedded devices like smartphones and tablet. HP acquired WebOS when it purchased Palm, Inc. in 2010.

WebOS is built on top of the Linux kernel, and indeed uses lots of existing free software - libpurple for instant messaging and Gstreamer for playing media for example, and a slew of other components.

But the operating system is not the GNU operating system and nor it is it any of the various free software operating systems like Android and Meego, both designed for embedded devices. Palm and HP instead focused on creating a proprietary operating system.

Well now that proprietary operating system has failed, in their own estimation. It's time to end the non-sense and free all of the code of WebOS. In doing that it can create a system for OEMs to implement as an alternative or complement to the wildly-popular Android.

Why is Android so popular? Because any manufacturer can put it on their device. They don't need to ask Google's permission (unless they want to include Google's Android Market, in which case they need to ensure that their device is compatible) to use it and so OEMs are flocking to make many different devices with many different form factors to run this platform.

WebOS, like the iOS used in iPhones and iPads is a proprietary operating system that only one company has the right to commission for devices. This has worked out for Apple mainly because of their loyal fan following and their "first to the market" attitude combined with their brilliant marketing techniques. iOS is certainly by no means the technically superior of the mobile operating systems, but what's "best" won't always be what's popular.

WebOS, which definitely has some advantages over the iOS didn't succeed as a proprietary platform, but it has lots of potential if the code is freed. OEMs can implement it on their devices and with more devices there's more demand for apps and more growth up and up.

I hope HP does the right thing. I tweeted to parties I thought were most relevant that WebOS can become an alternative or complement OS to Android and got a hopeful response from an account representing free software at HP.

As an aside, I'd like to discuss the curious case of the Opera web browser. Opera is major supporter of free and open web standards, but they are also not a free software company by any means. Their support, in my view, is only because, as a small browser, their only hope of staying alive is if web designers do not simply design for one or two browsers alone, but follow established web standards.

Opera's strategy is certainly a curious one, but ultimately, freedom will win out - WebOS (if it is freed), Android, MeeGo, and the various other platforms committed to freedom will win over the platforms designed to keep users divided and helpless and restricting them - the iOS, the Windows Phone, and did I forget the BlackBerry? Well, I'm not the only one.

Wednesday, June 15, 2011

On dancehall

So I'm thinking I almost feel sorry for dancehall as a genre - no one really takes or took it seriously ever. It's like you have the 70s with religious and political protest in roots reggae, then dancehall hits with absolutely none of that (though with a bunch of racism and homophobia), then that turns into like fusion, ragga, and eventually American hip-hop and rap, but everyone glossed over dancehall. Even a bunch of the artists have tried to make more socially-conscious dancehall music.

I did say almost, however, because the racism and homophobia (which still presist in the so-called conscious material very often) are really the antithesis of what a spiritually-minded or politically-minded or motivated person wants to hear about.

It's like they said "Hey we're not selling records, let's pretend to be religious in the music" and then picked a religious sect (Bobo Ashanti) that they felt let them continue their hateful music anyway.

Religious reggae music was popular because it was genuine love for one's self, God, and all of humanity. You can't fake that, no matter how much you try.

Sunday, April 3, 2011

What's the best browser to use when power is low?

The buzzword for web browsers this day seems to be speed.

Every major browser from Google Chrome/Chromium to Apple's Safari to Firefox, Opera, and even Microsoft Internet Explorer are all claiming to be the fastest of the bunch. (OK, Microsoft cheated, but that's besides the point.)

Which of them is correct?

Well, if you just bought your brand new computer yesterday you probably don't care. Your computer comes with a top-of-the-line CPU, plenty of RAM, and of course video hardware that will play well with any browser.

But not everyone is like you. There are plenty of people still running legacy machines that need not be forgotten about. Furthermore, the increase in low-power netbooks, as well as low-power One Laptop Per Child computers and tablets means demand is growing not for more power, but for less.

Let's start off with Internet Explorer. Even if it were as fast as they claim, it's flat out disqualified. It's not available for GNU/Linux which is the only operating system really usable decently on such legacy machines. Want Windows 7 on a netbook? Better be prepared to get 3 GB of RAM. XP may fare better, but of course the latest Internet Explorer, the one which is supposedly so fast, will not work for that system.

Safari is similarly not available for GNU/Linux, so it's equally a waste of my time. OSX is far too inefficient and resource (CPU and RAM) hungry to run on a tablet, netbook, or any kind of legacy machine.

Opera's and and Google's browsers are in about the same boat - lightweight and seeming early leads in the contest. Except for a few things.

Chrome is bundled with Adobe Flash. Flash is, by all accounts, a resource hog. One Adobe employee says it's fine compared to other similar technologies but that's missing the point. Flash sucks. Browsers answers is so-called "crash" protection in Firefox and Chromium/Chrome. Technically these can work for any plugin, but let's be honest with ourselves - which plugin dominates the Web today? Exactly. And because of its ubiquity and crummy nature, developers like Google and Mozilla have had to waste their time trying to make sure it doesn't hurt the user experience when (not if) it crashes instead of focusing on more innovative features. Users now have to "live on the edge", always ensuring that they have the latest versions of Flash or other plugins, as more bugs are supposedly fixed with every release. Ridiculous.

On all legacy machines, even if the user wanted to install Flash it is just not possible - believe me, I've tried.

Chromium, the free software project on which Chrome is based, unlike Chrome, does not come bundled with Flash. That's quite nice, and definitely a boost for speed and performance on targeted machines.

What if the user does want Flash? After all, Hulu.com works exclusively with Flash and is unlikely to change due to the implementation of Adobe's DRM. If you want Hulu, as slow as it is, you're stuck on a legacy machine, but on a netbook and maybe on a tablet you have a chance - it might not be full-screen, it might be in the lowest-quality available, but it may work almost decently enough to be enjoyable.

In such a situation, it would seem Chromium/Chrome or Opera are the better options as opposed to Firefox. But think again!

Much of what makes the web slow is not web-videos in Flash, but actually ads. Ads all over the place, all in Flash or something equivalent, all slowing down pages and making them unbearable.

In this regard, it's Firefox with its superb Add-Ons that saves the day.

One you should look at is called Ad-Block Plus - it installs in only a few clicks and once you choose your filter (I use/recommend the one called "EasyList"). Suddenly Chrome/Chromium and Opera's supposed speed advantages disappear when your websites show only the content you want.

Chromium/Chrome has an extension called AdBlock but it pales in comparison, quality-wise.

Conclusion: On a legacy machine, Firefox may not be the best option, and Flash is even more so. I personally prefer and love the Epiphany browser. On a machine that can handle Flash at least semi-decently, however, whether you choose to install it or not (I recommend outright not installing Flash) Firefox with Ad-Block Plus (and NoScript if you're feeling adventurous) is best.

Wednesday, October 6, 2010

Solution to the Israeli-Palestinian conflict

Here's how the Israeli-Palestinian conflict is solved.

Israel, every so often does a freeze on construction in the West Bank. What's expected then is for the Palestinians to reciprocate in putting a freeze on terror. If they did that, the freeze would be more more permanent.

What ends up happening, however, is Israel puts on a temporary freeze, the Palestinians offer nothing, and so Israel let's the freeze run out, waits some period of time, then tries again.

The West Bank construction stopping without any Palestinian commitments regarding terror won't solve anything, because of the splintered nature of Palestinian factions right now. Israelis won't want to negotiate with one party when there's still another one who won't recognize any progress and continue to seek to destroy Israel no matter what.

But that's the solution. Some time will pass and Israel will again temporarily ban construction, Palestinians will get their act together (eventually, hopefully) and temporarily ban terror and then they can actually get to the negotiating table for the rest. If all goes well, the building suspension will become permanent (assuming the terror suspension becomes likewise permanent).

R.

Thursday, September 2, 2010

Lightweight computing: Adding software.

My previous post was a continuation of the posts before it, describing how to build a lightweight operating system based on GNU/Linux and installed the Xfce desktop environment.

If you look at what you have, however, Xfce plain doesn't quite come with a lot of the awesome tools we've come to expect from our operating systems today. So let's add some.

Up to now we've been adding software via the command line. We can install a graphical package manager right now, but keep in mind, depending on how limited your resources are, it may not run reasonably when it's installing. Still, I'd recommend you at least try it and only if it doesn't work will you stick to the terminal.

A nice graphical front-end to APT-Get is called Synaptic Package Manager. Load up your terminal, which is located in the menu (click the menu icon, currently located in the bottom left of the screen as of Karmic, but that can always change - you can right click your Desktop and it should pop up) and terminal will be listed there, and type our trusty command (explained in the previous blog) to install Synaptic.

sudo apt-get install synaptic


Once that finishes you can close the terminal and launch Synaptic from the Applications Menu under the new "System" category. Let's get busy.

A very common use for computers if browsing the web. There are numerous lightweight web browsers, but they are not all equally functional or looking and feeling integrated into the system. Xfce has a web browser called Midori (package name midori), but for whatever reason I can't quite get into it. Google Chromium (package name chromium-browser) is another option, but to me it doesn't feel very integrated. The winner in my view is Epiphany (package name ) is the winner. Though it was developed for the GNOME desktop environment, whose goal isn't necessarily to be conducive to low-power, this browser (and a number of their other programs) stand out as fitting the need. You may also wish to install a few extensions for Epiphany. Depending on the version of Epiphany in your repositories one of the packages may not install for version compatibility reasons. Either way, the packages, marked epipahny-extension-gwget, epiphany-extensions, and epiphany-extensions-more can prove useful.

If you've never used Synaptic the way to install using it is to find your package, and double click on it, or click the box next to it, or right click it and select "Mark for Installation" and click "Apply" to install.

So now you have a web browser, but the globe icon on screen doesn't load it. Let's fix that. Go to the Menu --> Settings --> Preferred Applications and you'll be able to set your default browser.

What now? Well for most users, this still isn't enough. So let's install some more software. Without too much explanation, here are some suggestions for software to install and it's function. Install them all from Synaptic or the terminal.

1) Gdebi which is a graphical program for installing .deb files - the files Debian and Ubuntu use for packages installable.

2) EPDFView is a lightweight PDF viewer. PDFs have become such a common file format that being able to open them is pretty important.

3) Abiword is a lightweight word processor. It is a much more lightweight program than the "Write" program included with OpenOffice.org

4) Gnumeric is a program for viewing and editing spreadsheets. It is much lighter than the Spreadsheet program included with OpenOffice.org.

5) Catfish - a program for searching for files and folders.

6) Galculator - a lightweight calculator.

7) Xfce4-Goodies will help further fill out your system by installing, among other things, a text editor called Mousepad, an image viewer called Ristretto, a task manager (Xfce4-Taskmanager), a program for burning CDs (Xfburn), an archive manager (Squeeze).

8) GNOME-Games a couple of games from the GNOME project - these are relatively simple games - no 3D first-person shooters here. For a few extra themes, also be sure to get GNOME-Games-Extra.

9) Agave - for the artist - this provides similar colors to a chosen one.

10) MtPaint is a program for editing images and drawing pixel art.

11) Shotwell is a program to manage and organize images - photos, etc.

12) Simple-Scan in order to be able to connect and use a scanner.

13) Cheese - a program to take photos and videos and apply some effects from a web camera.

14) Exaile - an audio player and organizer.

15) VLC - an audio and video player for almost every media type imaginable. Note that decoding audio or video, especially if it is high quality, may not be achievable on a machine reasonably.

16) GTKVncViewer is a program to achieve virtual network computing.

17) Pidgin is an instant messaging program that can connect to and interact with many other programs.

18) PyNeighborhood is a program that can be beneficial if you need to use Samba, a program that you can use to connect and use printers connected to a Windows computer.

19) Sylpheed, an email client.

20) Transmission-GTK is a program for downloading bittorrent files. Lots of GNU/Linux distributions and programs and free culture musicians use bit torrent to legally distribute and allow others to do the same for their software - the benefits include that it is decentralized and popular.

21) XChat-IRC is a program for connecting to IRC channels. By default it will connect to the one for Ubuntu where you can discuss the system or ask questions.

22) Osmo - a personal organizer.

23) System-Config-Samba is another configuration utility for Samba.

24) System-Config-Printer-Gnome is a program you can use to connect to and use printers. Please check to see if your printer works in the OpenPrinting Database.

25) USB-Creator-GTK a program to create bootable USB storage-based GNU/Linux distributions.

26) Update-Manager is a program that makes installing software updates easier. You should also install Update-Notifier-Common to be notified of updates.

27) Finally, GNOME-System-Tools will provide tools to do things tlike add users.

You can also read discussions about lightweight software here and here.

So hopefully now you have a system that is able to compete with any other - the functionality is there and it should work reasonably well. But tell me, did you find a program that I left out?

Good luck, and happy computing!

R.