Tag - freedom

Entries feed - Comments feed

Wednesday, February 18 2015, 06:15 pm

Linux is [Unfortunately] About Choice

Ask anyone to name things they find wrong with the Linux ecosystem. I expect you'll get responses along the line of:

  • GNOME sucks
  • KDE sucks
  • GCC sucks
  • Firefox sucks
  • GPLv2 sucks
  • RPM sucks
  • Gaming sucks


What's the solution most commonly found? "Fork it, bro!"

Forking software is a legitimate reason under specific circumstances:

  • Licensing
  • M.I.A. upstream


Successful, legitimate forks:

  • LibreOffice
  • MariaDB
  • X.org


Forking is not a clear right to do anything you want such as creating a new distribution with a new, cool name and flashy art logos. Bad forking reasons:

  • I want to make a name for myself
  • I want a different desktop environment
  • I want a different desktop wallpaper


"Why not? I certainly am going to fork it!"

Yes, there is enough software produced for one person to be able to quickly and easily create an ISO file for users to download and call a new distribution. Before you say, yes, ask yourself these questions:

  • Do I have at least 5 people to provided a full-time job's worth of time to it?
  • Do I / they have enough time to apply security patches and / or update to the latest upstream version for a majority of the software?
  • Do you serve a product that provides a clear purpose other than a new desktop or flashy art?


All it takes is one "no" answer to put an end to your forking dreams. Just Don't Do It.

Saturday, January 15 2011, 08:00 am

Red Hat Irony

A company devoted to promoting open source initiatives uses one of the largest closed source database engines on the planet. Red Hat uses Oracle, in particular, with their Satellite software (a.k.a. Spacewalk). The bright light at the end of the tunnel is that they are switching to using PostgreSQL, however it is not a high priority so it may take another year or two before the transition is complete.

Thursday, October 28 2010, 12:01 am

Cross-Platform Graphical Library Maddness

An application that provides the user a window with buttons and input boxes is a given in today's graphically driven computer universe. Operating systems of all shapes and sizes provide a programmer the tools and libraries to accomplish their goal of providing such an application. Most of them are pretty boring or are too specialized to be worth taking time to study. The libraries that people should familiarize themselves with are those that can be utilized across operating systems, which include being able to run across multiple types of hardware devices. Two libraries come to mind - GTK+ [has a very interesting history] and Qt (pronounced "cute").

library-maddness

Today, both libraries offer very simple methods of creating a GUI. So, depending on what language your project requires, either one would be able to provide you with a robust and full featured set of options. The current drive to use Qt is entirely commercial driven - by Nokia - who owns Qt. It's the same drive that Sun made with Java. There's no logical reason to use Java. People have just be taught that it [Java] is the best and there is no other language that can do the same job (read: subjective).

I believe the "Qt hate" or "GTK+ hate" stems from the past when Qt didn't offer as many cross-platform routines as Glib (from GTK+) did or vice versa. It has been my observation that people have not spent any time with both libraries and make rash statements about the other library out of ignorance. Most Qt developers view GTK+ as a legacy library that should be abandoned. Don't tell them that there is still active GTK+ development (GTK+ 3.0 is coming soon) driven by a large community, which includes Red Hat.

Need a simple OpenGL widget in your window? There's GtkGLExt, or Clutter for GTK. Starting with Qt 4.0 a similar API for OpenGL handling was implemented.

Need video/audio capability? GTK+ apps can use GStreamer. Qt has phonon.

Need XML or HTML handling? GTK apps can use libxml or GtkWebKit while Qt apps would need to use the Qt APIs.

Nokia is also attempting to drive Qt as a "write once, run anywhere" library. This is great in that it some-what promotes FOSS, but if you wish to use GTK+ you can write once and run anywhere, too. I have done so with a GTK+ app for my $DAYJOB that can compile under Fedora and Windows and does advanced things like TLS encrypted XML packets over a TCP connection and scanning documents (using SANE). Neither library has an advantage.

More recently, Nokia has tried to push the mantra that you can write a Qt app quickly and simply. GTK+ developers can also use Vala to write a GTK+ app quickly and simply. The amount of code to write to accomplish the same goal in each library also ends up being about the same.

I can come up with any more number of examples, but those are ones I have seen used in arguments lately. The person arguing for using Qt has no idea about the matching GTK+ API and vice versa. I think it's great that both Qt and GTK+ offer such a wide range of features that are easy-to-use. You can choose a language (C, C++, Vala, Python, PHP) and write a program that could be used by thousands or millions of people across many different types of devices. Now get out there and start programming.

Saturday, February 6 2010, 10:23 am

Developing Openly on Proprietary Land

My programming adventures continue. Nokia's experiment into Linux with Maemo is very alluring and since I've applied myself into a few Linux projects, I felt it would be worth looking into what Nokia has put together.

The Maemo SDK runs under Scratchbox, a virtual environment created in part by Nokia. The Scratchbox toolkit can run under any Linux distribution, and it requires it. If you wish to run the SDK under Windows, your only option is to use a virtual machine. Once your SDK is running, it is nearly identical to a running Maemo device. In order to use the SDK, basic knowledge of Linux goes a long way, but since Maemo is derived from Debian there are some distribution specific programs. I've been using Red Hat based distributions for years, so it took some time to get used to using dpkg and apt-get to handle packages. After a few months of using my N900, creating and handling packages takes less work under an RPM system, but it's adequate.

Since Maemo is Linux, any Linux application has a chance of life. This makes building new applications or porting existing Linux applications a walk in the park. You can literally compile any Linux program for ARM and run it, however, the necessary screen space and physical size of a N900 can make it difficult to use a large application such as Open Office, which has dozens of menus and toolbars. This is where Maemo ports come in. A finger-friendly UI can be designed and added, even sent to the upstream authors, and makes the app you port usable everyday on your device.

I started with building a brand new application. A stopwatch seemed like an easy first project. I noticed several stopwatch applications already existed, however they were written in Python or were not maintained in a long time. The Maemo Garage is a center for Maemo projects, so I created my own project page and began work. I decided to write in C, the native language of many Linux core libraries, and use GTK for the UI, a cross-platform, and the native toolkit for Maemo 5. During the programming process, I learned the Hildon additions to GTK made by Nokia, and the dbus methods to activate and listen for accelerator changes to allow my applications to turn into portrait mode when the user turns their N900. Here's the first incarnation: Stopish 0.9.0

Other programming projects are endless. I wanted to look at fixing a few usability issues. One was the RSS reader, which used a slider that was too thin for a finger. I submitted a patch to Nokia and it will be included in the next major firmware update. The second was the lack of FLAC tags in the media player. I now enjoy FLAC as my music format of choice, and it's possible to use since the Maemo media player uses gstreamer for media codecs and tracker for tags. In order to add FLAC tags, I had to extend the tracker program to be able to read them. Someone had already created such a plugin for vorbis, and so using it as a template, I made one for FLAC.

There are two Maemo repositories for projects, Maemo Devel and Maemo Extras. Finalized applications live in Maemo Extras, while developers can play with new applications in Maemo Devel Adding my projects to Maemo's repositories was a breeze. Just create a Maemo account and request upload access. I can use scp (SSH CoPy) to send my source code to the Maemo build server and it will package my projects and makes them available on the Maemo Devel repository. From this repository a developer can choose to promote it to Maemo Extras. During this promotion, other Maemo users vote on the application and if enough positive votes are made the project is automatically pushed into Maemo Extras.

Although most of Maemo is open source and source provided through gitorious, there's still a lot left closed - such as the phone, contact, and media player. Nokia's plans include more open source goodness in Maemo 6. The future of Maemo definitely looks bright even if they are forcing Qt down everyone's collective throats.

Tuesday, February 2 2010, 11:41 pm

New Face, Same Blood

Hi there. You may remember me from such blogs as The Humble Geek. Due to a recent Blogger change, I've had to set up shop using server-side software. I looked at three different projects and ended up with Dotclear. I'll break down my selection pro/con list:

  • Wordpress

The big man in town. Unfortunately it uses MySQL for a backend and my server is PostgreSQL territory. Poor security is another minus. A Wordpress blog has probably been defaced by the time you've read this sentence.

  • blosxom

I saw this recommended as an alternative to Wordpress. It's Perl based and writes to flat files. Not very flexible for my taste.

  • Dotclear

Written in PHP, supporting PostgreSQL, themeable, plugable, and more. I couldn't ask for anything better. I have customized my own theme and added some plugins. The built-in functionality also allows me to add the Geek Tip as a widget. I don't have to manually edit the template as I had to with Blogger.

I may write about my Maemo programming shenanigans next, but don't hold your breath.

Wednesday, July 8 2009, 03:30 am

Just Say No

... to Government healthcare. I should not have to even take this time to write a post about this subject, but leave it to the powers of Government wanting more power to force my hand. If I dare write another sentence (positive or negative) it will just fortify and aid the power grab of the 2008-2012 American Government. Do yourself a favor and write your congressman, senator, and the President of the United States and tell them you are a voter and you will not re-elect them if they pass a healthcare bill.

P.S. I'm a healthcare software programmer by trade. I have an eye inside of the system.

Saturday, February 28 2009, 07:45 pm

Chug, chug, chug, chug...

How on earth does the world use Vista? Yes, Microsoft Windows Vista. Backstory: I received a new laptop two days ago. An ASUS N80Vn-X5. It came with Vista Home Premium 64-bit. This is my first copy of Vista as I run Linux on all my machines. I did have a copy of XP but I stopped using that a few years ago. Why did I stop using XP? Because I wanted something more out of my computer. XP is fine and all, but I can accomplish more with Linux - not just because it is free.

Unpacking:
I unpack it from its box and I plug in the AC adapter and boot the thing. Vista starts to load - and load - and load. 10 minutes later I get to the desktop. Why on earth did it take that long to get to my desktop? Wait a minute... the hard drive is still chugging. Why?

Configuring:
The first thing I do is kill the hideous sidebar that takes an extra 5 minutes to load on startup. Gone. The second thing I do is disable automatic updates. Now, I realize some readers will think better of themselves and call me an idiot, but I rarely use Windows and I know how to update it so I'm quite OK running updates when I should instead of having Windows do it for me.

Updating:
It came with SP1 so I figured it should be pretty harmless. Where to update this thing? Hm, I don't see anything. Ah, I'll just use IE's "Windows Update" link. Oh what's this? There's an update to Windows Update. Oh! It requires a reboot. *Reboot* Ah, that was a nice 10 minute reboot. Windows update has about 30 updates for me. Fine. Downloading/updating takes about 15 minutes thanks to the attrociously large 100 meg .NET update. I'm on 20 megabit Internet mind you. Rebooting again. Seems that I'm up to date now, or am I?

Playing:
The only thing loaded on this thing is about 5 ASUS utilities for the fingerprint reader, webcam, and some software that looks like it encrypts files. Grand total of hard disk space in use? 20 gigabytes. That alone is enough for me to be offended permenently because what does that 20 gigabytes net me? A video player, picture viewer, a web browser, and a movie maker. The features don't match the disk space requirements. It's also using 1 gig of RAM with no programs running. Yes, I uninstalled the Office 2007 trial.

Why would I be offended? Example: My default Fedora install cost me 4.5gigs. What did I get besides the stuff already in Vista? Full office suite, photo manipulation, SELinux, bittorent, GPS mapping, SIP phone, Pidgin, GCC, and a few other of my programming utilities, not to mention Wine, which will allow me to run Windows apps.

Time to reboot just to see that reboot time again. *clicks Restart* "Configuring updates stage 2 of 3..." What's this? WHAT'S THIS? I have updates turned *OFF* and Windows is installing updates. Stealth updates - w00t. The little trust I had with Microsoft is completely gone at this point.

I let it reboot and go back into Vista just to find that after I log in the hard drive is chugging - and chugging - and chugging. 10 minutes later it finally quiets down and I decide to reboot to get into Fedora. *Clicks Restart* "Configuring updates stage 2 of 3..." Yeah. I'm done with Microsoft.

Saturday, January 17 2009, 09:43 pm

Recreational Programming

Usually the best products come about when someone is fed up with the current process of operation. Something like that happened when I was fed up using the command line interface for "uvcdynctrl," which is a tool to manipulate the settings for my Logitech QuickCam 9000 Pro. Fortunately Logitech was kind enough to provide a developer for building an open source library called "libwebcam" that would allow me to build my own interface using GTK+2. Here's the result:

Download: uvcdynctrl-gtk-0.1

I used the git source code management tool for this project so you can grab the latest source (LGPL'd) from my gitweb interface. You will need libwebcam, GTK+2, and gstreamer development libraries and headers to build it.

Please feel free to add any feedback. I also have RPM spec files for Fedora to build libwebcam and my program if you want them. Thanks should really be given to the GTK, gstreamer, and Logitech folks for making this possible.

Wednesday, November 5 2008, 02:36 am

Presidents are for Suckers

Aye, another election passes and it's quite decisive instead of controversial this time around. While I liked neither Hussein Obama or McCain, Obama seems to want to turn our country into one big handout. With his win today, and all of his democratic party winning control of the House and Senate, he, and his party, will have complete reign to do whatever they wish. With all this free money coming from the government soon, what will happen to the national debt? What will the value of the dollar do?

How did BO win? It seems ACORN was a deciding factor. They pushed registration in areas Republicans did not. Voters turned up to vote blue, possibly twice, and that's how it's done. Hopefully the next four years are quiet, smooth, and successful for us, but somehow I fear that will not come to pass.

Tuesday, July 8 2008, 02:47 pm

Standardized Smanderdized, Tests are Obsolete


Being bored can make you think just about anything. With that in mind, I discovered a solution to one of my pet peeves: standardized testing. During my educational career I grew from straight A ace to meager B bum to a little C camper. Testing my academic knowledge through a series of set questions became redundent, but it's the only way, right? We've been reinforced with that idea ever since academics were around. I feel a need for change. Yes, there still needs to be a point of measure for knowledge, but the "how" is all that needs adjusting.

Evals, evaluations I should say, need to be introduced as a replacement. Their structure? Think of it more like an IQ test for a specific academic field. Of course, there will need to be a check against subjectivity, or political correctness, as we know it today. If testing was overhauled, I suspect the satisfaction level of all people of all ages would improve several times over. Heck, I may even go back and finish college. There, I finally finished this blog post.

- page 1 of 2