March 2009 Archives

Serial Ports Rule

| 3 Comments
Every computer should come with a serial port. No, ten serial ports.

http://www.userfriendly.org/cartoons/archives/09mar/uf012531.gif

Object Oriented Programming in C

| 2 Comments
I thought I was a C programmer. A novice C programmer, but a C programmer nonetheless. But I was wrong.

You see, real C programmers know how to do object-oriented programming... in C. Yes, C, not C++. No classes, member functions, or private declarations. Just you, your structs, and 6 billion void pointers.

Here is the introduction I found:

http://www.planetpdf.com/codecuts/pdfs/ooc.pdf

Not exactly the most beginner-friendly document ever written. But I am making progress. I'll let you know how it turns out.



OpenProj - Project Management Software

| 1 Comment
If you have any use for project management software, check out the the open source application OpenProj.  OpenProj is the open-source counterpart to Microsoft Project. OpenProj is free to download and distribute, in contrast to Microsoft Project 2007, which costs (as of today) a mere $599.95 for the standard edition, and $999.95 for the "professional" edition.

I don't personally have much use for project management software. But I am taking an IT tech support class, which is meant mainly to teach us how to help clueless people configure their Windows computers. (Oops, there goes my chances at a good grade...) We were supposed to complete this small assignment with Microsoft Project 2003 using the software trial CD that came with one of our $80 books.

Anyway, I wasn't able to get it working under Wine emulation on my Linux box, so I did the entire project in OpenProj. Then I used OpenProj to convert the project to Project 2003 xml, and turned it in.

As I said, project management isn't really my area of interest, but I played around with OpenProj a little, and it seemed pretty cool. Basically, you create a project and a list of project steps that need to be completed. Then you input in your resources (employees, groups, that sort of thing). Then you click and type in all the variables you know, like when the project should start, how long you think each goal might take, what activities have to be completed before others, and so on. And all the while OpenProj organizes and maintains a project schedule for you, as well as a bunch of nifty graphs and charts.

OpenProj is written in Java, and as far as I know you should be able to run it on any platform with the latest Java installation. There are specialized installation packages for Linux, Windows, and Mac.

So, if you are looking for project management software, you might consider giving OpenProj a try before you send off another thousand dollars to Microsoft.

Linux Tip - Personal Scratch Directory

| No Comments
This is a suggestion which I have seen in various forms elsewhere and have used myself for a long time. The suggestion is to create a personal scratch directory.

There are certain kinds of activities that we do on our Linux computers which involve a lot of temporary files and changes. For example, if you want to install a FOSS program off the internet, you might download a tarball, decompress the files, build the code, install the executables, and then delete the source code directory and tarball.

Some people do this kind of work inside their home directory. The downside to this is that you must be constantly vigilant about what commands your are sending. Mis-spell an "rm -rf" command, and you might delete the contents of your entire home directory. Unzip a file without checking the content structure first, and you might put a lot of temporary files in unexpected places.

So create a scratch directory under the "var" directory, and assign it to yourself. First, go root and then follow these instructions:

(Note: I am assuming a single-user environment.)

cd /var
mkdir scratch
chmod 700 scratch
chown yourusername:yourusergroup scratch

Once you have gone back to normal user mode, you will have a "/var/scratch" directory which can only be accessed by you and root (unless of course there are special permissions settings related to the "/var" directory).

ADVANTAGES

With this set up, you can do work in the "/var/scratch" directory and have less fear of accidentally deleting or overwriting important files. (Assuming, of course, that you keep the important files in your home directory). For example, if you are in the "/var/scratch" directory and you accidently run "rm -rf ../*" instead of "rm -rf *" (yes, I've done it) you will likely not do any damage because you do not have permissions to delete files or directories in the "/var" directory tree. (Assuming, of course, you haven't been granted special privileges.)

(Note: advice here is provided without warranty. Don't delete any files on your computer and then blame me...)

Another advantage to this setup is that, if you are setting up a clean system, you can mount the "/var" directory on a separate partition from your "/home" and root directories. This means that if you were to accidently try to overflow the space available to your "/var" directory by downloading too much data into your scratch directory, there will still be space available in system directories and your home directory.

It also provides a safer place to do programming with version control. With Subversion, for example, you can check-out a copy of the code to your scratch directory. Then copy, modify, move, and check-in as much as you wish without worrying out messing up your home file archives or profile.

Microsoft and Disney - Overlords of Evil

| 1 Comment
I found in the historical archives the reason that Disney and Microsoft never merged:

http://www.userfriendly.org/cartoons/archives/04may/uf006720.gif

Calling External Programs in C (Linux)

| No Comments

http://www.gidforums.com/t-3369.html

I wanted to post this link mainly so that I would remember it. One of the few tutorials I could find on how to execute external programs in C without using the "system" command. I've always used the system command, but I wanted to explore other options. The main problem  I have with the system command is that all it is really doing is invoking the shell with /bin/sh -c. Also it takes complete control of your program until it the new program dies. (Sometimes useful, sometimes not.)

Open Source Web Design

| No Comments
The oswd website has got to be one of the coolest web design resources out there, with 2000+ free templates. Furthermore, unlike my experience with many "free" sites, oswd did not inundate me with pop-ups, second-rate flash banner-ads, or offers for malware-laden dowloads.

Also, it is great that many of the templates are available under BSD or GPL licenses. I recently took one template, tweaked some of the code, and integrated it into the Perl/CGI framework of a website design I've been working on.

Kudos to oswd for a quality contribution to the open source community.

25 Reasons to Convert to Linux

| No Comments
I recently noticed a link to this web page in another blog:

25 Reasons to Convert to Linux

It is presented by the Linux Info Project, and seems to be primarily targeted at "businesses, educational institutions, [and] governmental agencies". It is one of the most comprehensive list of reasons for switching to Linux which I have seen.

I like how they brought up a number of issues that don't typically come up in a Linux vs. proprietary software discussion. For example, they mentioned this:

Linux and other free software uses open format file formats. These are formats for word processing, spreadsheet and other file types that conform to industry-wide standards and which can be used by any developer of software to create compatible programs, in contrast to the closed formats commonly used by some proprietary software.
In my personal experience working in IT, I have been amazed at how much trouble some employers will go to in order to ensure that their employees are completely dependent on proprietary file formats (let's hear it for "docx"!), apparently to make certain that the organization will never be able to free itself from a costly license package.

I also really liked the statement regarding academic freedom, another subject which is (surprisingly) rarely brought up:

Linux is a superior choice for use in academic institutions for a number of reasons. Among them is the fact that there are no secrets (in sharp contrast to proprietary software), thereby providing students the opportunity to study how computers really work rather than to just learn how to use them. Many educators are convinced that it is far more important for students to study computer science fundamentals than to practice specific applications (such as Microsoft Word or Microsoft PowerPoint). One reason is that computer science fundamentals will still be valid many years from now, whereas the specific application programs, especially the proprietary ones that do not conform to industry-wide standards, are constantly changing and those currently in use will likely become obsolete in a few years.

Of course, I think any business/organization should avoid jumping into Linux/FOSS blindfolded. Any major systems migration is going to be a challenge, and when coming over from the proprietary world, it means learning an entirely new way of doing things.

Side note: The article mentioned running Linux "on a wristwatch", but did not provide a hyper-link. Here is one:

http://www.research.ibm.com/WearableComputing/linuxwatch/linuxwatch.html

1998 - Netscape vs. IE

| No Comments

Correlation - Causation

| No Comments

Switched to Xfce Desktop

| 1 Comment
How come nobody told me Xfce was such a cool DE? It is lightweight and fast, which is very important to me. And it is very easy to configure: only took me about 15 minutes to set up the desktop just the way I wanted it - workspaces, panels, keyboard shortcuts, background, menus, the works.

I've switched over from Fluxbox to Xfce, and will likely keep it that way unless I run into any serious problems with Xfce in the next few days. I was happy with Fluxbox for a long time, as a windows manager, but it does take a long time to configure, and I occasionally ran into some compatibility issues with modern programs expecting elements of a desktop environment.

Here is my screen shot.

Side note: If you are installing Xfce4 on a Debian Lenny system from the repositories, be sure to install the Xfce "goodies" package as well, which will give you more panel plug-ins.

We Hope This Becomes a Trend in Open Source Development!

| 1 Comment
The site blog for indicium.us.
Linux Projects
Online Games
Unsung Linux Games

RSS Feed

Powered by Movable Type 4.21-en
and GNU/Linux


Creative Commons License
The content of this blog is licensed under a Creative Commons Attribution-Share Alike 3.0 United States License. See my copyleft page for more details.