TWiki

November 6th, 2008

… or “How Not to Run an Open Source Project”

There are many successful, thriving open source projects. TWiki is no longer one of them.The following two blog entries do a great job of describing the demise of the TWiki wiki platform (they do a great job, so I won’t even bother summarizing what went wrong).

TWiki is dead, long live TWiki!

Hostile Takeover of Open Source Project TWiki

Shell Tricks – Volume 1

November 5th, 2008

I saw a post on Slashdot about “Stupid Unix Tricks” that talked about common things you take for granted in Unix or just flat out forget are there. With my RHCE exam coming up, it got me thinking about how many aliases and shell scripts I’ve written for myself that I use daily that won’t be there on the exam. Between those and my preference for emacs over vim, I need to reacquaint myself with a vanilla Red Hat Enterprise Linux installation so I’m not constantly stumbling over my habits on the exam.

Below are a list of either my favorites that I use constantly (some aren’t mind blowing but just a look into my habits) or ones from the Slashdot article that seemed particularly useful or cool.

  • Colored ls – If your shell doesn’t include this by default, this alias will use color for all of your ls calls.
  • alias ls='ls --color=auto'
    
  • jardump – For each JAR file found in the current directory or any child directories, output its contents to a file named jardump.txt. Very useful when using maven as it can be run in the maven repository directory to get a full listing of all classes in all JARs in the repository.
  • find . -name '*.jar' -exec unzip -l {} \; > jardump.txt
    
  • Change to a real directory from a symlink.
  • cd `pwd -P`
    
  • Commands can be executed on a remote machine through SSH without actually logging in. This is especially useful if you use key based login instead of passwords.
  • ssh [user]@[server] [command]
    

    For example:

    ssh professorjay@novasurv.com ls /var/www
    
  • Human readable listing of disk space.
  • df -h
    
  • List the contents of a zip file without actually unzipping it (tip: pipe it to less to scroll the contents if they are long).
  • unzip -l [zip file]
    
  • Extract a file in a zip to standard output rather than writing it to the disk, letting you read a file without unzipping the zip file. Again, you can pipe this to less to scroll the contents of the file.
  • unzip -p [zip file] [full path to file in the zip]
    

    For example:

    unzip -p dom4j.jar META-INF/MANIFEST.MF | less
    
  • A coworker introduced me to tee, which reads from standard input and writes to standard output and to a file. I use it when building so I can see the build messages in my shell like normal but also have a copy stored somewhere. The easiest way to explain it is with an example:
  • make | tee /tmp/make-results.txt
    
  • Add a new supplementary group to a user without having to respecify all of the user’s existing supplementary groups.
  • usermod -aG [newgroup] [user]
    

Will FOSS get me a job?

November 3rd, 2008

I came across the following e-mail linked from the Planet Fedora feed.

Here is an excerpt:

“Trivial example here. The curricula mandates that you learn about data
structures and prescribes certain books and the like. However, the
actual implications of using various ‘like’ data structures or, an
appreciation of the trade-off between algorithms would come if you start
looking at code beyond what is provided by the syllabus.

And, such an effort would stand you in good stead irrespective of which
company you aspire to join or, what programming language you intend to
become a master at.

Having a scientific temper – the ability to grasp the core of the
problem, figure out a pattern to search and adhere to some logical (and
sometimes illogical) reasoning is what will get you a job.”

As both a teacher and an open source developer, this e-mail really resonates with me. I began this semester of Algorithms & Data Structures II by attempting to describe the difference between a theoretical exploration of computer science and actual “real world” software development. I say “attempting” because I acknowledge that until you’ve been in both areas, it’s difficult to fully understand the distinction.

One of my biggest goals in my classes has been an attempt to expose students to both of these aspects. I make sure to cover the required material for the class. But I also supplement it with my experiences from working on real software projects. Being able to pull up one of the open source projects I work on and show students real applications of the concepts behind a domain model or where recursion would actually be used in a non-trivial example is an extremely valuable aspect of the class.

I recommend reading the entire contents of the original e-mail. It’s not too long and does a great job of explaining the benefits of real project work while pursuing an academic degree.

Read the full e-mail here.

Intel Core i7 Review

November 3rd, 2008

AnandTech reviewed the Intel Core i7, the newest in Intel’s lineup.

In particular, the memory architecture strikes me as interesting:

“With a three-channel DDR3 memory controller, Nehalem requires the use of three DDR3 modules to achieve peak bandwidth – which also means that the memory manufacturers are going to be selling special 3-channel DDR3 kits made specifically for Nehalem. Motherboard makers will be doing one of two things to implement Nehalem’s three-channel memory interface on boards; you’ll either see boards with four DIMM slots or boards with six.”

The number 3 just strikes me as unnatural in computers. With the 32-bit memory limitation of less than 4GB, I’m curious if we’ll see a lot of packages that ship either 3 x 1GB or 6 x 512MB modules, which would fit nicely as 3GB total. The other possibility is that we’ll see a rise in the popularity of 64-bit operating systems to support the rather natural 6 x 1GB orientation, making 6GB the norm for more powerful computers.

Read the rest of the article here.