Subversion Commands

This glossary of Subversion commands is a work in progress.

My primary interest in creating this is to help people like me, that are not formally educated in programming. The abstract concept of version control is not difficult to understand or appreciate, but I have found that learning to use version control applications like Subversion or GIT without guidance is difficult.

You DO have to be familiar with command line basics. Remind me to write a glossary for the command line similar to this one. 😀

Don’t forget the excellent Subversion book that is FREE: Version Control with Subversion. There is also the very useful act of typing svn help into the terminal.

Create a Repository
svnadmin create /home/jason/mySVNrepo
Create an SVN repository named “mySVNrepo” in my user directory.
Adding a New Project (Set of Files) to Your Repository
svn import /home/jason/genweb [one space] file:///home/jason/mySVNrepo -m "initial import"
Add/Import the directory “genweb” to the “mySVNrepo” repository with the log message (-m) of “initial import”
Log Message
A Log Message is a description of the changes associated with a particular action. A log message can be
A brief statement: -m "initial import"
An entire text file: -F MyLogMessage.txt
Or enter directly from VIM: -m vim
Check Out a Copy from the Repository
svn checkout file:///home/jason/mySVNrepo [one space] /home/jason/MyWorkingCopy

\

You cannot work directly on the files saved in the repository. To make changes you must first Check Out a copy (like a Public Library) of the files in the repository. The checked out copy will be saved in the directory “MyWorkingCopy”
Command Line Basics
Before you go any further it is important that you understand how to use the command line.

  • The Command Line Interface (C.L.I.) is a way of interfacing with a computer operating system by way of commands that are expressed with lines of text. This is in contrast with the much more common Graphical User Interface (G.U.I.), a way of interfacing with a computer operating system by way of commands that are expressed with graphical menu selections or the movement of the mouse.
  • The CLI generally operates in a certain context: a file directory (or “folder” for those of you coming in from a GUI 😀 ). In the world of *NIX the most common CLI is called the “Bash Terminal”. In this terminal the context is stated before the flashing cursor: jason@NEWHOTNESS:?$ This means that the user is jason, the machine is NEWHOTNESS and the ? is shorthand for the active user’s home directory.
  • You can change the directory in which you are working with the change directory command. For example:
    cd ?/Desktop will move the CLI context to my desktop directory and indicate that it has done so like this: jason@NEWHOTNESS:?/Desktop$
  • Similar to HTML, the CLI can refer to files in two ways: absolute locations and relative locations. The change directory command allows you to move to the directory where the files you wish to act on are located. This saves you the trouble of typing out the entire absolute file path every time you execute a command.
  • To accomplish the following, it is necessary to change to the directory of your working copy. Some of these Subversion commands need context.
Check Status
svn status
Will retreive feedback on the status of your working copy files in relationship to those in the repository.
Status/Attribute Shorthand
  • A = Added
  • C = Conflicted
  • D = Deleted
  • I = Ignored
  • M = Modified
  • U = Update
  • R = Replaced
  • X = item is unversioned
  • ? = item is not under version control
  • ! = item is missing
  • ? = versioned item obstructed
Subversion uses letters to represent the relationship of your files to those in the repository. The ones that say a file is “unversioned” or not under version control illustrate that the actions of adding, moving or deleting files in the repository must be accomplished with the SVN application rather than your operating system’s file browser.
Update to Match Repository
svn update
Update your source to match the latest version in the repository, notifying you of every updated/added/deleted file as well as updates that may conflict with your own changes to the source.
Resolve Resulting Conflicts from Update
svn resolved '~/DevFolder/sourceFile.py'
After you have resolved the conflicts identified by Subversion, you have to tell it that you have done so.
Create Patch File
svn diff >> PatchName.patch
If you are not on the developer list for a project, you will most likely not be able to commit your changes directly to the repository. In this situation you can email or post a ‘patch’ file. The patch file is a very concise text file containing a description of the changes you have made, what file they are in and where in that file they can be found.

GRAMPS 3.0 Coming Soon!

I am dabbling in software development with the GRAMPS (Genealogical Research and Analysis Management Programming System) project. It is a genealogical database building program that is available for Linux.

I got involved with the developer group after struggling to make my genealogy site look great. The markup techniques were outdated or wrong and nothing had an ‘id’ or ‘class’. After recommending the change to the devs, they let me know that it wasn’t a top priority and recommended that if I wanted to improve the output, I would have to do it myself. This would involve working with Python and also looking stupid asking dumb questions about version control and compiling GRAMPS myself to check my work. With a little time and patience (as well as being unemployed for three months in Nashville with just my wife for company) I put myself to the task.

I have been updating the ‘Narrative Web’ plugin, written in Python, that exports your genealogical data into a web site. Mostly I just corrected and updated the XHTML markup that was present amidst the Python. I did hack up the code a little so that the navigation could be styled to indicate the active page or section.

My primary focus was to make the sites more accessible to CSS. In the process I created a few style themes to be distributed with the application. I am quite proud of them and excited to hear feedback from the user community once GRAMPS 3.0 is released. Following is a few screen shots of the site output as it was and the four primary styles that I developed so far.

GRAMPS 2.2 Narrative Web Plugin Output

‘Modern’

GRAMPS 2.2 Modern Style

‘Tranquil’

GRAMPS 2.2 Tranquil Style

GRAMPS 3.0 Narrative Web Plugin Output

‘Basic – Ash’

Basic comes in a variety of color schemes and is based on the original ‘Modern’ style. I hate using the word ‘modern’ outside of discussions of philosophy or fine art. The general public in the U.S. is convinced that it means ‘contemporary’. No doubt this is thanks to decades of marketing professionals trying to make their products sound impressive.

GRAMPS 3.0 Basic Style

‘Nebraska’

I named this after my home state. It was my original stylesheet for the new markup. For that reason a lot of id and class solutions in the markup came out of challenges created by this design. I wanted this design to look fresh and inviting while being very easy to read.

GRAMPS 3.0 Nebraska Style

‘Mainz’

Named so for Gutenberg’s birthplace, this design was created to show off the potential of the new markup. It’s a bit repetitious of me, but for some reason the vision of the website as a sheet of paper is very appealing. I started this one based on the name of one of the original GRAMPS styles: Certificate. The original style didn’t really look like a certificate, but this one does.

GRAMPS 3.0 Mainz Style

Default Print Style

This is probably the style that will be the most overlooked. With XHTML + CSS there is the potential for the browser to automatically switch stylesheets based on the media of representation. You can define one stylesheet as ‘screen’ and another as ‘print’ (there’s actually quite few different defined mediums according to the W3C, including ‘mobile’ and ‘projection’). GRAMPS is the first project where I could form a strong argument for using this feature to its full potential. Now anytime someone prints a page from a Narrative Web site, the output will be well designed for print with an emphasis on efficiency and legibility.

GRAMPS 3.0 Default Print Style

There’s still more work to do, but I wanted to get the word out on this great update to GRAMPS that’s just around the corner. Along with my relatively minor contributions, the other developers have been working very hard to make 3.0 an impressive and powerful update. If you are interested in trying it out, do keep in mind that in the open source world ‘.0’ means ‘submit final work to users and fix a lot of reported bugs’. So, if you are looking for a perfect application, I recommend waiting for GRAMPS 3.1. 😉

Dell XPS 420 with Linux Review

Dell XPS 420Well, it’s not perfect. I think my big mistake was not going with the more expensive NVIDIA video card. Actually, I’m fairly certain that any problems I am having have everything to do with the video card: ATI Radeon HD 2400. On the whole it’s exactly as advertised. Following are some things that I feel are important features.

Packaging

I was disappointed that the box for this beast was so big. I’ve seen the recent Mac Pro tower boxes and they are not much bigger than the machine itself. The XPS 420 box is HUGE. This does mean that the machine arrived in pristine condition though.

Dell is definitely close to Apple in presentation with the XPS systems. Here’s what came with the machine:

  • 1″ thick User Manual
  • Small quick start manual
  • Very nice noise-canceling ear bud headphones
  • Velcro straps to help you keep your many wires and cables under control
  • Dust Towel for the everyday necessity of wiping the dust off the glossy black finish
  • Faux-leather XPS-stuff collection book-ish thing to hold this stuff
  • Dell Multi-media keyboard (extra $25 I think) It’s very nice
  • Dell 2-button mouse with scroll (I am using my trusty Logitech MX310 instead)
  • REAL WINDOWS VISTA INSTALL DISC (not a stupid ‘from recovery partition disc’)
  • ATI Driver disc, basic Dell software disc, Adobe Photoshop and Studio Elements, Microsoft Works

I also bought a $50 speaker set from them with these nice, small speaker panels to put on your desk and a 12″ box sub-woofer to put on the floor. Sounds great, but would rather just have the table speakers alone.

Fit and Finish

The XPS 420 seems well built and solid. Surprisingly, it’s just about as big as my G5. However, it weighs no where near as much. Also, this thing runs very quiet. Now I realize how loud the G5 was. I think I remember them advertising the G5 as a quiet machine, but maybe I’m crazy.

Dell XPS 420 tower tray
There’s a nifty rubber-bottomed tray on top of the tower that is an excellent fit for all of those gadgets that usually end up on top of your tower: Portable Media Player, Digital Camera, and I put my wireless router there as well. They also provide some thin slits to hide you USB cables that run from the devices to the much-appreciated SIX USB PORTS on the back of the XPS. I don’t think Apple would ever do this, but I love it.

Dell Multimedia Keyboard
The Dell keyboard feels good and the multimedia keyboard comes with an attachable palm rest. I highly recommend spending a little extra for this keyboard. The multimedia keys all work in Linux except for the ‘Volume Dial’ which apparently does not have a ‘button push’ input. If you Google it, somebody has written a script to handle the input, but I just remapped the big arrow keys on the left to control the main system volume instead. It’s nice to have keys specific for media player (next track, previous track, play/pause). There are a few additional buttons that can be used for pretty much anything. I was able to set the ‘Close Window’ button to ‘Eject’ the optical drive disc. My wife likes the Calculator button. Also, someone other than Apple has finally caught on to the idea of putting USB ports on the keyboard. That’s excellent.

GNU/Linux Experience

Thanks to the video card, installing Ubuntu wasn’t very slick. Eventually I used the Alternate install disc with the text-based installer and was sure to specify only my optimal screen resolution, a few smaller resolutions and nothing larger than what I planned to use. Once I figured that out everything went fine after installing Envy and getting the direct ATI video driver.

Everything works aside from things related to the video card. What doesn’t work?

  • Fast User Switching: I get a black screen and Ctrl+Alt+Backspace doesn’t help
  • Hibernate and Sleep: Appears to go to sleep fine, but won’t wake up
  • Compiz Fusion with dual-display: It does work, but doesn’t feel stable and playing video suffers with it on

The only thing I use Compiz Fusion for is the Exposé-like window picker and I think the Alt-Tab app switcher in Compiz looks nicer and is larger. So, not a huge loss and I’m confident these issues can be resolved with improved driver offerings from ATI. Fast User Switching would have been nice also.

The ATI Catalyst Controller application for setting up the video card works well enough. Setting up a second monitor with a combined desktop space was simple. It’s seems a little out of wack though. I wouldn’t fiddle with it too much.

Performance

My system sports the Intel Core 2 Quad 2.4 GHz processor with 3 GB of RAM. This machine is fast fast fast. I’m pretty sure most of the speed comes from just one instance of the 2.4 GHz processors. The Quad proc does flex it’s muscles when exporting/converting/compressing video and audio. I don’t have numbers for you, but I was exporting some MP3 files from audio recordings I had made a while back with impressive results. I started the process on my 1.6 GHz 1 MB RAM G5 just to compare. The MP3 compression was at least twice as fast using the latest version of Audacity on both machines. And if you watch the processor activity graphs, the old G5 was peaking the whole time while the Core 2 Quad just hummed along on two of it’s four cores.

Running virtual machines with it is an excellent experience. As mentioned earlier, my wife likes to watch ABC shows online. I tried the Firefox-for-Windows-Over-Wine trick, but that’s not working right. Instead I set my wife up with a Windows XP VM using VirtualBox. I know VMWare is king in virtualization, but installing VMWare server, after agreeing to the legal mumbo-jumbo is a pain and apparently I can’t install VMWare Player via Synaptic on my system (I don’t get it). VirtualBox, because they offer a full open source version, is much easier to install. The performance is good too. I hear the big difference is in networking and that’s not really why I need a virtual server anyway. Regardless, my wife can enjoy a full-screen ABC.com HD video experience on my Linux system via Windows XP via VirtualBox. Fantastic!

Windows Vista

For starters, Windows Vista runs just fine on a VirtualBox VM with plenty of allotted RAM. However, now that I’ve had some time to look around, I find Vista to be very cluttered. The main menu has too much stuff displayed immediately and there’s so much crap on the initial desktop including the widgets that I felt claustrophobic. I can only imagine what a less savvy user would think on initial start. I’m confused. I thought they were trying to minimize menus and everything to focus on the average user with the capability to customize for an advanced user. They’re so inconsistent. Windows XP was actually looking good in my opinion. As a Mac user I felt a little threatened at the time. I think Vista may be a step back.

On the other hand, the install experience was a big improvement, but unfortunately most of their users won’t ever experience it. The loading and log in screens look great too. I’m starting to wonder if I should start fiddling with the Linux Gnome log in screen. Somebody, a designer, needs to step in and make it cool like what Windows Vista and Mac OSX offer. Currently the standard ‘enter username and password’ screens can look nice, but the ‘list of users with avatars’ screens look like crap on a stick.

Login Ubuntu Login CleanX
Login OSX Login Windows Vista
Login Linux Gnome User List

Complaints

  1. I can only wait for ATI to improve their Linux driver. Supposedly more ‘openness’ is coming down the pipe. Worst case scenario: I’ll buy another video card. However, it seems like the best open source video support goes to Intel’s integrated video hardware. Since ATI is owned by AMD and NVIDIA is owned by Intel I’m pretty sure Intel is sharing info about the integrated video because it’s their low-end hardware. Somebody tell me what a good 3D and dual-head capable video card is for Linux. It all looks bad outside of older hardware that has been reverse engineered.
  2. The black gloss looks great in photos but is a bitch to keep clean in the real world. Anybody that’s owned a black car knows that.
  3. Frickin’ Windows Sideshow display is completely worthless, even if I was running Windows.
  4. Too many wires and cables. I definitely appreciate why people pay a lot for an iMac.

Dell XPS 420 Lots of Wires

Overall

I’m very pleased with this system. It’s extremely nice and it’s a pleasure to finally use a high-powered machine with plenty of screen real estate to run my favorite open source graphics programs. I apologize for the long review (took WAY too long to finish) but there were a lot of relevant details. I hope this review is helpful for Linux users looking for new hardware especially.

 

Photoshop CS in Linux

Being a freelance Web Designer & Developer is a good career if you are trying to work full time on Linux and open source software. However, you still have to be compatible with your clients’ source files and backups. This means using Photoshop to build layouts or at least slice up the layouts that you get in PSD file formats.

I have been using my aging G5 (boy, saying that makes me and my checkbook cry) to deal with Photoshop files. However, since I have been setting up this beast of a Dell for the Ultimate Linux Desktop I spent some time today in getting the Windows version of Photoshop CS running on top of Wine, the Windows Compatibility Layer.

Wine is so good right now that you can simply throw the Photoshop install disk in your Linux box and run the installer. I’m not kidding, but keep in mind that this is Photoshop CS, not the latest and greatest Photoshop CS3. Wine’s site has a great deal of information about a variety of Photoshop versions running on Wine.

How did I do it specifically? I installed Wine, the Microsoft TrueType Core Fonts Ubuntu: sudo apt-get install msttcorefonts, customized the Wine interface to taste via Applications/Wine/Configure Wine and then ran the Photoshop CS installer.

Hold On, Save For Web Isn’t Working!

Alright, so there is one big fat catch that, if not dealt with, pretty much makes Photoshop worthless to web professionals: The amazing Save For Web plugin doesn’t work. Damn. So close.

Solution: The Magic of Windows Back Slashes

Yeah, it can be fixed! So, the secret is in how you start Photoshop. Either you or Wine setup some kind of shortcut unless you are starting Photoshop from the command line. Here’s how my original shortcut command was written:
env WINEPREFIX="/home/jason/.wine" wine "C:/Program Files/Adobe/Photoshop CS/Photoshop.exe"

and to fix the Save For Web problem, simply replace the forward slashes that follow C: with back slashes:

env WINEPREFIX="/home/jason/.wine" wine "C:\Program Files\Adobe\Photoshop CS\Photoshop.exe"

Huh? What?

Don’t ask. I can only guess that how that particular plugin was written included Windows-directory style references within the code. Sincerely, I have no clue. Thankfully the Wine developers figured it out. On that page it mentions Photoshop 7 specifically, but CS works the same way.

X11: Switch Control Key To Apple/Command Key

One of the major problems with using X11 to run *NIX applications on OSX is switching from using the Apple/Command/⌘ key to using the Control key as your primary modifier key.

First of all, I don’t understand why the Control key is where it is on keyboards for OS’s that use it as the primary modifier key. It is probably the least ergonomic key to use (unless you have the good fortune of using a Thinkpad, since they don’t include the Windows key). Apple, for all its missteps, gets it right by making the primary modifier key easy to press in combination with other keys. Command, Control, Apple, ⌘, whatever you call it, put it in a comfortable spot! That one detail almost prevented me from switching to something other than OSX. Seriously.

With that said, it’s no surprise that Apple puts the rarely-used-in-OSX Control key off to the far corners of the keyboard. As to why Apple doesn’t include an option to switch the Control/Command keys in the X11 preferences, I can only imagine.

Second, making this change isn’t for *NIX purists that like it the way it is. Don’t get pissed at me. I’m just trying to help Mac people enjoy the fruits of the Open Source community because I’m frustrated with Microsoft and Adobe (and even Apple). Their customers take a back seat to their interest in making money.

Let’s Get Started!

This is simple and if anything goes wrong, it’s easy to get back to where you started. Here’s the meat and potatoes:

  1. Start the X11 application
  2. In X11 go to X11 > Preferences > Input tab. Make sure that the following options are UNCHECKED:
    • Follow system keyboard layout
    • Enable key equivalents under X11
  3. Close X11 Preferences.
  4. Open the Terminal.app (Applications > Utilities > Terminal.app)
  5. Type the following in the Terminal window:
    vi ~/.Xmodmap and press Enter. This will open a file named ‘.Xmodmap’ located in your home folder ‘~/’ with the text editor program called Vi. Don’t be frightened!
  6. Vi is run from within the Terminal, so it won’t look much different. Press ‘a’ to switch to Vi’s Insert Mode (I think the ‘a’ stands for ‘Append’) and then type in or copy/paste the following text:
    ! ~/.Xmodmap
    clear Mod2
    clear control
    keycode 63 = Control_L
    keycode 67 = Control_L
    add control = Control_L
  7. If you have a MacBook and want to use both the left and right ⌘ keys, use this version instead:
    ! ~/.Xmodmap
    clear Mod2
    clear control
    keycode 63 = Control_L
    keycode 67 = Control_L
    keycode 71 = Control_L
    add control = Control_L
  8. Now press ‘esc’ or the Escape key to exit the Insert Mode and return to the Command Mode.
  9. Type :wq and press Enter. This command tells Vi to Write (think ‘Save’) the changes you made to the file and Quit Vi itself.
  10. Type xmodmap ~/.Xmodmap and press Enter to complete this process.
  11. Quit Terminal.app
  12. Open something in Gimpshop, Gimp, OpenOffice, Inkscape or any X11 application that you use to test if you have successfully switched to the Apple/Command key.

If you suddenly cannot get any of your X11 applications to start, you can delete the .Xmodmap text file from your home directory. To do this, open a Terminal in either the X11/terminal or the OSX Terminal.app: rm ~/.Xmodmap and press Enter. The command rm stands for ‘Remove’. Be careful with this command. There is no ‘undo’ in the command line.

This post uses information found at //extrabright blog and The University of Illinois at Chicago’s Unix 101 pages on Vi. This is my attempt to write a more concise how-to.

New Dell XPS 420: Linux Dream Machine?

One week before Christmas my beloved Thinkpad T42 started having motherboard problems. After a little looking around I found that the problem was common. I don’t know what the deal is exactly, but pressing on the keyboard or touchpad too hard causes the display to flicker and the system to freeze. As a bonus it will also freeze at completely random moments. No more reconditioned laptops for this kid.

So I just finished ordering my first Dell desktop. I have been looking around at the Circuit City, Gateway, NewEgg and System 76 sites. They all have great Core 2 Duo-based systems at good prices. I applaud what System 76 is doing selling Ubuntu pre-installed systems only. Unfortunately it looks like they can’t compete with the buying power of the much larger discount computer manufacturers. I can’t deny my financial situation. The price difference is just too great. I even looked at building my own machine with pieces from NewEgg, but after talking to a friend I swallowed my former-Apple-promoting pride and gave Dell a try.

First I looked at the Ubuntu Pre-installed systems that Dell offers. Much to my disappointment the offering is very limited and not high-powered. To me, I would think that Linux users are generally advanced computer users that buy fairly high-end systems. I’m sure they did a lot of market research to determine what systems to offer, but this looks like a misstep to me. Perhaps their target isn’t people that know how to install Linux on any machine. Perhaps their target audience are people looking for an inexpensive alternative to Windows. However, if that indeed is the goal why aren’t they selling the Linux systems along side the Windows systems?

I decided to just shop at the regular Dell store and install Ubuntu myself. From what I’ve read, there are Linux drivers for most of the hardware provided, albeit ‘restricted’ drivers provided by the manufacturer. I don’t have a problem with installing these drivers. I’m grateful that the manufacturers even bother to provide them. Also, the companies will respond to increased demand for their product. They won’t necessarily respond to an extremely small group of people bitching about their drivers being open source. That’s how I look at it.

I settled on the XPS 420 because of its price range and power. Here are my new machine’s specs:

  • Intel® Core 2 Q6600 Quad-Core (8MB L2 cache, 2.4GHz, 1066FSB)
  • 128MB ATI Radeon HD 2400 PRO
  • 3GB Dual Channel DDR2 SDRAM at 667MHz – 4 DIMMs
  • 320GB – 7200RPM, SATA 3.0Gb/s, 16MB Cache
  • CD/DVD Burning Optical Drive
  • External speakers with sub-woofer
  • FINAL PRICE: $974 (after $100 savings, before tax/shipping)

The video card is supposed to be capable of outputting to two displays. However, I am prepared to buy a second video card later if that doesn’t work under Linux. I know that my Apple G5’s video card doesn’t successfully accomplish dual-display under Linux even though it works fine under OSX. Maybe xrandr is more capable with this particular video card. I am very impressed with the potential of xrandr, especially after my S-Video Out setup from a few weeks ago.

I’m expecting this machine to be everything I could ask for in my own personal design/development system. It should be delivered before the end of the week, but with the New Years holiday it might be next week before I can get back to working in Linux. I will report on the outcome asap.

Homework assignment:
If anyone can explain exactly how many ‘cores’ are in the above listed processor, I’d love to know. Due to the 4-DIMM ram setup I am guessing the magic number is four. However, the title ‘Core 2 Quad Core’ is confusing. If a Core Duo has two cores, a Core 2 Duo has four cores, then a Core 2 Quad Core should have eight cores, right?

Watching Internet TV on My TV

Recently, due to our move and lack of willing to pay for a DVR with our cable subscription, my wife has introduced me to how the big networks are offering all their shows online. It’s great. Really.

Unfortunately, this means my wife has been sitting in our bedroom watching her favorite shows on a 19″ computer monitor hooked up to our Apple G5.

Solution: I found an RF modulator at Wal-Mart for $20 (RCA I think) that lets me hook my laptop’s S-Video output up to our old 30″ CRT. I wouldn’t write any letters on it or do lengthy reading, but video and images look pretty good. Using Linux certainly threw a few curve balls into an otherwise simple setup.

So, how can I too enjoy Internet TV on my old CRT Television?

Well, you are in luck, ‘cuz I did all the hunting around for you. At least if you are running Ubuntu Linux 7.10 on a Thinkpad T42.

Here’s how to use the xrandr tools to start your S-Video out:
mfbernardes.com: Finally I Got S-Video Working My Thinkpad T42
XStrikeForce: HowToRandR

I took Mr Bernardes’ terminal commands and created custom application shortcuts for each separate step that I use frequently:

  1. Activate S-Video
    xrandr --output S-video --set load_detection 1
  2. Start S-Video OUT
    xrandr --output S-video --auto
  3. Turn LCD OFF
    xrandr --output LVDS --off
  4. Turn LCD ON
    xrandr --output LVDS --auto

Then simply go to NBC.com, CBS.com or whatever. Hell, YouTube even.

Another good thing that helps position your video window on the TV for optimal viewing is the ZOOM capabilities of Compiz-Fusion. So look into that. You can get it set just right without too much visual noise around the video.

Wait a second, all my favorite shows are on ABC…

If you haven’t figured it out yet, ABC has a custom video player that is not available for Linux. That’s a deal breaker right there. Especially since that’s my wife’s favorite channel currently.

Luckily, the good folks over at WINE are doing a smash-up job. The trick is to install the Windows version of Firefox over WINE and then watch ABC from Firefox/Windows. Check out the following info for details:

JDESLIPPE

It’s a pretty clever solution. Not too many details there.

What about audio?

The RF Modulator that I bought has inputs for component audio that will then pass to your TV via COAX. I actually have a receiver stereo, so I push the audio through that from my laptop for the full experience.

That was simple!

I don’t guarantee this will work, but I wish you luck if you choose this challenge.

IEs4Linux Also for OSX on Intel

I have been using the IEs4Linux system for a while now to assist in developing websites. It allows you to install various versions of Internet Explorer in Linux. It’s great for testing websites against the many bugs in IE as you develop them.

Recently they have developed a version for OSX on Intel machines.

http://www.tatanka.com.br/ies4linux/news/49

You have to install Darwine and X11 on OSX to use it, but after that it seems pretty easy. I am not so fortunate as to own an Intel-based Mac, so I can’t test it for you.

Wine info
http://wiki.winehq.org

Darwine info
http://darwine.sourceforge.net/download.php

Wine on OSX info
http://wiki.winehq.org/MacOSX

Create and Manage Professional Letters with OpenOffice and PDFTK

I have slowly been learning the ropes of professional presentation for my freelance work. Design school taught me a thing or two about designing letterhead and the importance of looking professional and organized (sort of like flexing your muscles before a wrestling match). However, they certainly didn’t teach anybody how to actually put those designs into use in an organized workflow. Word-processing programs were the devil. As a result of their design program zealotry I have a lot of resumes, cover letters and general business letters that are Pagemaker, InDesign, QuarkXpress and Illustrator files. This isn’t what these programs were built to do.

These programs were built for carefully typesetting layouts

This problem makes the process of writing a letter too complex. I know what you’re saying. You think I’m lazy. You’re wrong. I have great powers of determination and focus, but usually I get distracted by details. Suddenly I’m typesetting a bill and not just writing up a bill. Before I know it I’ve shot the afternoon twiddling with letter-spacing on a 6 hour project billing.

The solution to this ease of distraction is to use the right program for the task at hand. A word-processor is a powerful tool and can save you a lot of time without compromising your concern for appearances. How do they save me time?

  1. Page Templates
  2. Style Sheets

“But my layout program has that and MORE!”, you say. Well, that’s my point. You don’t need more to write letters.

WYSIWYM

One of the cool ideas I came across in my Linux/Open-source self-education is the acronym ‘WYSIWYM’. We’re all familiar with WYSIWYG (What You See Is What You Get) and that applies to all of our layout and common word processing programs. WYSIWYM stands for ‘What You See Is What You Mean’. A subtle but important difference.

The program that is most popularly associated with this concept is called TeX (pronounced ‘tek’). If you’re interested in the history, check out Wikipedia. My introduction to TeX was actually through another program called LaTeX which simplifies the creation of TeX markup. In LaTeX you simply see the text with no formatting. All you see is a definition of document structure to the left of your content (this line is a Headline 1 format, that line is a blockquote). No nitpicking about what font and linespacing. Unfortunately, this program had a big learning curve and I don’t recommend it for most people. Plus, when it came to printing and generating PDFs I ran into a lot of missing elements that needed to be installed separately. Not easy to setup.

Okay, so, what’s that have to do with using a word-processor? Well, you can use a w-p in the same way via style sheets. Here’s what you do:

  1. Take an afternoon to design your letterhead in your layout program of choice.
  2. Figure out what the margins on your letter have to be to fit your letterhead format.
  3. Save a pdf of your letterhead design as though you were printing blank letterhead.
  4. Open a new document in OpenOffice (or MSWord if you must…) and set the margins accordingly.
  5. Now type out some example copy or use an existing letter to work out your stylesheet.
  6. Design all the styled elements that you foresee using in your letters. Take your time. Get the after-paragraph-spacing and typefaces all figured out so that it looks beautiful. Make sure that you are using the ‘Styles and Formatting’ palette or window and modifying those elements with your changes.
  7. Delete your test content and save this document as a TEMPLATE somewhere handy.
  8. Every time you want to right a letter just open a new document from this template and write your letter with a WYSIWYM state of mind using your preset styles

Now your letterhead is one file and all of your little letters, bills and requests can be saved in simple word-processor files. If you’re especially concerned about future-proofing your letters, check out OpenOffice and the Open Document Formats. From Wikipedia:

OpenDocument benefits from separation of concerns by separating the content, styles, metadata and application settings into four separate XML files.

So, worst case scenario: after the demise of OpenOffice twenty years from now you are left with an ISO-standard document format that will most likely be supported by any respectable word-processing program that exists at the time.

Actually, even worse: ODF isn’t supported at all so you are left with the option of opening the XML file containing only the basic text content of your letter which you will have to reformat.

Either way what’s the chance of your InDesign CS3 binary format file being accessible that far in the future? Good luck trying to pull the plain text content of your letter out of a binary file!

Merging the Letter with the Letterhead

On Linux there is a great command line program called ‘PDFTK’ or the PDF Took Kit. It does some cool things but my only use for it right now is to merge our Letterhead.pdf with our LetterToBob.pdf. It’s simple as pie, but I want to look into creating a simple GUI for it. A little dialog window can’t be that difficult to program, can it? 😀

First install PDFTK via Apt-Get or Synaptic if you are on a Debian-based Linux distribution. Otherwise, get on Google and look into getting it. Sorry for the lack of support at this stage.

Once you have it installed, open a terminal window. For this example I am going to save my two PDFs to my desktop and then use PDFTK to merge them from there.

Go back to the Terminal, change to your Desktop directory (cd ~/Desktop if you don’t know) and type the following:

pdftk LetterToBob.pdf background Letterhead.pdf output LetterOnLetterhead.pdf

Break It Down!:

  1. First tell the terminal which program to use
  2. Specify your original PDF document by filename
  3. ‘background’ specifies the function of PDFTK to use
  4. Specify the background PDF document by filename
  5. ‘output’ tells the program what to name the product of the indicated action
  6. Specify the filename for the product of the PDFTK background action

Click enter and you will have a new PDF named ‘LetterOnLetterhead.pdf’ on your desktop shortly.

I don’t know, but I can only hope that Adobe Acrobat Professional can also merge PDFs in this way.

Now you have a professional letter on your own custom letterhead in PDF format for emailing or printing. The ODF files are simple to keep organized and your letter head is easy to keep track of on one layout file. This could be accomplished with layout tools as well, but this is how I do it and thought other people might benefit from hearing about it.

Logitech MX310 and Ubuntu

Logitech MX310 Button Map

I spent some time setting up my Logitech MX310 mouse to work with Ubuntu and Beryl. The Beryl Settings Manager provides an amazing amount of customization IF you can find what you are looking for. Beryl is making a lot of progress in the interface, but it’s a very complicated mechanism they’ve built and there really isn’t any way to simplify it. So you simply have to get your hands dirty. However, I am hoping this post can help you out. With a little help, your MX310 will be invoking Beryl’s Window Picker (a lot like Expose in OSX) with the click of a button.

First, you have to know which button is which. My little drawing on the right illustrates how my system sees the MX310 buttons. This may be different for you depending on your X configuration. I can’t recall customizing my setup, so I’m hoping I have a default configuration. Note that the very top button and the scroll-wheel-click register as the same button. 🙁

Second, you have to go to the Beryl Settings Manager. I would start with disabling a few default settings that simply have no purpose and only create confusion when they are accidently invoked: Window Opacity and Window Saturation. It’s cool what Beryl can do with these features to create feedback, but being able to see the window below my active window via transparency is perfectly worthless. Let’s get started:

  1. Open Beryl Settings Manager
  2. Go to:
    General Options/ Shortcuts/ Keyboard and Mouse/ General Options/ Bindings.

    Increase Opacity Disable
    Decrease Opacity Disable
    Increase Saturation Disable
    Decrease Saturation Disable
    Hide All Windows And Focus Desktop <Control>Button2
  3. Go to:
    General Options/ Shortcuts/ Keyboard and Mouse/ Scale/ Bindings.

    Initiate Window Picker for All Workspaces Button2
  4. Congratulations You’re Set!

Let me know if this was helpful or if you have discovered a different configuration.

 

Beryl: OSX Exposé for Linux and a Whole Lot More

I posted a while back about ‘Skippy’ for acquiring that OSX Expose goodness in Linux. Well, since then I’ve had the luxury of using Beryl for about a month. It’s got a few bugs since it’s still developing, but very usable. Some of it is just eye candy, but things like the minimization of all of my active windows so I can find the one I’m looking for is very helpful. I use Expose a lot at work on OSX 10.4 and so having it at home makes for excellent consistency. Here’s a great video of every feature I can think of:

Beryl on Ubuntu via YouTube

And here a few screenshots from my desktop.

Application Switcher
Beryl-AppSwitch

Expose-ish
Beryl-Expose

Desktop Cube
Beryl-Cube

I hope you enjoy the pictures. I’m certainly enjoying the experience.

Linux and OSX: Create a Symbolic Link

‘Symbolic Links’ in Linux are pretty much the same as ‘alias’ files or ‘shortcut’ files in OSX and Windows respectively. And you can create them just as easily in any Linux Gui by right-clicking on a folder or file. However, creating or moving a symbolic link to a location outside of your user folder usually involves being the ‘super user’ or using ‘sudo’. It’s so simple to do with the Terminal, I can’t see trying to work around within the gui. So, I hope you find this helpful.

I found this info here thanks to a good friend:

http://help.hardhathosting.com/question.php/95

It’s such a good note to keep around that I wanted to have it on my own site.

In the Terminal enter the following:

ln -s [TARGET DIRECTORY OR FILE] [SHORTCUT]

For example:

ln -s /xampp/htdocs/work /Users/username/xamppwork

This points a symbolic link located in your home folder (xamppwork) to “/xampp/htdocs/work”

I am finding this to be very useful for using XAMPP to develop dynamic sites or to work the bugs out of WordPress themes. I have my working folder inside my Documents directory and then place a symbolic link to that folder inside the XAMPP server’s ‘htdocs’ directory. Pretty slick.

OSX Exposé for Linux with Skippy

Expose on Linux with Skippy 01

Like any OSX-turned-Linux user, I’ve been missing certain features. The most obvious one is definitely Exposé. At work I’m still using OSX 10.4 with the scroll wheel-click set to invoke Exposé. I have a LOT of windows open plus I have a dual monitor setup, so it’s even worse. Exposé really shines in that situation. Generally, however, I find myself more focused when at home on my good-as-new-used Thinkpad T42 running Ubuntu Edgy. I don’t have anywhere near as many applications running, but that feature seems like it should be there, especially when I have my Logitech MX310 multi-button mouse plugged in.

Last night I found myself getting that I should be installing cool new software instead of doing my work itch. It’s a bad habit that I can only guess plagues many Linux noobs after the long journey of installing every cool free software they can dream of and customizing their desktop to their very exceptional taste. I think it comes out of having almost no such options on commercial operating systems. The software is usually very expensive (though there’s a lot of open-source stuff available lately) and customization is fairly limited. So I started searching for something resembling the title of this post. I found three items with supposed similar functions for Linux:

I would love to have tons of data on all three, but I don’ t have time right now. It looks like Expocity was a Metacity hack and maybe it didn’t work that well. I can’t find much info on it. Kompose is supposed to be very nice, but is for KDE. Granted, I use a lot of KDE applications already on my Gnome desktop, but they have their share of quirks and something like Kompose is very intertwined with the KDE desktop and Qt. Kompose looks pretty sweet. Yet another reason for me to switch to KDE.

Skippy wins by default. The brief research I did on the matter lead me to a blog mentioning that Skippy could be installed in Ubuntu with Synaptic. Shit man, that’s all you had to say!

Expose on Linux with Skippy 02

So off I went to Synaptic. It’s that easy. There is no gui management program though. All you need to know is that F11 invokes it to do its thing. I guess that could cause problems with some applications, but I don’ t use my F11 key much at all. Apparently there should be some kind of config file in your home directory called ‘.skippy’ or something similar. My system does not have that to my knowledge and I’ll be damned if I go looking through the entire filesystem searching for it. F11 is fine.

I did have to go to the Terminal and enter ‘skippy’ to get it running. Open a terminal, type ‘skippy’, press enter and then see if pressing F11 invokes a display of all of your open windows in a grid like the screenshots shown here. Once that was figured out, I went to System Preferences/ Sessions and added the command ‘skippy’ to my startup programs. Et Voilá!

To summarize: install Skippy via Synaptic, activate skippy via terminal and set skippy as a startup application from within the System Preferences/ Sessions dialogue.

Caveats: If you use Firefox with tabs, get ready to be disappointed. Apparently skippy takes an initial snapshot of one of the pages and that’s that. Doesn’t matter which one you have active at the moment. Skippy is damn near perfect with full display-filling windows, but small windows effectively get used as part of the preview of whatever window was behind it. I even had a moment when my spreadsheet window was actually represented by an image of a web browser showing a web site.

Now if only I could map one of my unused mouse keys to the F11 key. If I can figure THAT out, I’ll have something to talk about.

Migrate Thunderbird from WindowsXP to Linux or OSX

Using Mozilla Thunderbird over other email applications is mostly a matter of preference. However, the fact that it is an application that runs on Windows, OSX and GNU/Linux is a very big reason for using it rather than other similar applications. Not only is it running on these operating systems, but it is extremely easy to move your mail and all of your settings to another computer and/or operating system.

I discovered this after temporarily moving one of my sisters onto my G5 after her Windows machine stopped booting. I was able to use the Ubuntu 6.06 live cd to access her hard drive and copy all of her important documents to my iPod Mini.

The files you need to retrieve from the Windows PC are in the following directory:

Documents and Settings/
<username>/Application Data/Thunderbird/Profiles/xxxxxx.default/

These are the files you need from there:

Address Book: abook.mab
Preferences: prefs.js
Mail: Mail (folder/directory)

It is probably also a good idea to go to Address Book while in Thunderbird and export your addresses to one of the more universal formats like ldif or csv. I won’t make any promises if you try to import them to another email application, but you can at least open those with a spreadsheet application if all else fails.

Keep those files in a safe place or back them up along with anything else that’s important to you. Now go to the new machine or go ahead and install another operating system, whatever. On the new system install Thunderbird and then load it and walk through the account set up with some dummy info. I do this so that when I go into the directory to find the place for my old files to go there’s something there for me to replace. It also reaffirms that I am putting them in the right place.

Close Thunderbird after you finish the account set up. In your file browser find your Thunderbird files. Following are locations for those files in different OSs to the best of my knowledge:

OSX:
HD/Users/<username>/Library/Application Support/Thunderbird

Windows:
C:/Documents and Settings/<username>/Application Data/Thunderbird

Ubuntu:
/home/<username>/.mozilla-thunderbird
(Most Linux OSs will be similar. Note that .mozilla-thunderbird is a hidden file. In most Linux file browsers there is an option under ‘View/Show Hidden Files’.)

Okay, now all you have to do is copy your old files to this directory and in doing that you will replace or overwrite the existing files:

Address Book: abook.mab
Preferences: prefs.js
Mail: Mail (folder/directory)

Once that is done, load Thunderbird and it should look like you never left home!

I am offering these instructions to be helpful. By attempting to do this you are accepting all responsibility for the outcome. I cannot guarantee success. Make sure that you take notes on any information regarding access to your mail servers and accounts before deleting your existing Thunderbird set up.

Force Quit in Linux

I had a listing a while back for some key commands in Linux. Since my recent move to Ubuntu 6.10 I have discovered that Ctrl-Alt-Esc does not bring up the trusty old skull and crossed bones. A listener tip on the Linux Reality podcast pointed out this little trick for force quitting an uncooperative application/program:

open a terminal and type the following and press enter: xkill

Apparently this changes your cursor into the familiar skull and crossed bones. Then simply click on the window of the application/program that you wish to force quit or kill.

Linux Filesystem Info

I was listening to the podcast ‘Linux Reality’ via iTunes while I was working late this week. There’s some great stuff for Linux noobs. I definitely still fall into that category. The episode on the Linux file system had a lot of info I don’t want to forget.

OSX seems to be similar to Linux as far as the file system goes, but it is certainly much easier to understand by the average person. If you have ever made it so that the Finder shows you all of the hidden files in OSX, you know that Apple hides a lot of folders and files from their users. I found it disappointing. OSX has an illusory feeling to me now. More like a satin sheet covering the gears and pistons of a very complex machine. I have always disliked how Windows hides things from its users, but now I realize that Apple simply does a better job of keeping the wizard’s curtain closed. Here’s a quick break down of a generic Linux file system:

  • bin : Binary
    • Some programs that are used by all users
  • dev : Device
    • A virtual directory that contains folders that represent your computer’s hardware
  • etc : Etcetera
    • Configuration settings for programs
  • home : Home
    • Directories that contain each user’s documents and preferences
  • lib : Library
    • Shared libraries used by some programs
  • mnt : Mount
    • media drives are represented here (sometimes a directory named ‘media’ is used instead)
  • opt : Optional
    • optional programs, testing programs, additional programs
  • proc : Processor
    • A virtual directory containing system hardware information
  • root : Root User Home
    • root user’s home directory
  • sbin : Secure Binary
    • programs used by administrative users
  • temp : Temporary
    • Temporary information is stored here. Temporary means for the duration of time between boots in most cases.
  • usr : Unix System Resources
    • Shared data, images, libraries and applications are found here. You will find program icons here for instance.
  • var : Variable Files or Data
    • log files, databases for websites, etc

The person responsible for the Linux Reality podcast is Chess Griffin. There are many episodes already available. Here’s his site: www.linuxreality.com

Ubuntu 6.06 on 1.6 GHz PowerMac G5 (part 3)

The first thing to do with Ubuntu on a G5 is reconfigure the X server. By doing this you will be able to expand your allowed screen resolution from 1024 x 8XX to 12XX x 1024 or possibly 16XX x whatever. This was a big issue for me. 1024 is just not big enough.

When doing this make sure you know your G5’s video card and model (my 1.6 GHz G5 has nVidia GeForce FX5200). There are plenty of questions within the set up process where you will simply give the default answer because you don’t know what the hell they’re talking about. If the question sounds over your head, just relax and most likely there’ll be some helpful notes there for you. Open a terminal and enter the following to begin the set up:

sudo dpkg-reconfigure xserver-xorg

After that’s done it’s pretty much business as usual. There are a few sacrifices. The G5 is fast, but I think the video card isn’t being used to it’s potential by Linux. When the screen saver that looks a lot like the standard OSX colored-flare screen saver comes on, it seems to work the machine pretty hard. In fact, any of those more dynamic screen savers run a bit choppy. The G5 should have no problem with those things, but that’s truly the least of my concern.

The other issue is that of sitting at a Mac with a Mac keyboard but not being able to use the ‘Apple’ key like you used to. There is a lot of room for custom key commands, but Linux looks at the Apple-keys as two separate buttons rather than two buttons with the same function. So, the left key can be set up differently than the right key. It makes one wonder about the use of the control key. Well, the location of the control key anyway. The Apple key location makes so much more sense. It’s definitely more ergonomic.

For the record, I plan on reinstalling OSX and selling my G5. I want a Linux-only system and the G5 (with my limited Linux and programming capabilities) is just not the easiest machine to use. There is also the fact that I want a laptop, so my perspective might be distorted. My assessment is similar to others: If you have a Mac, run OSX. There are some things about OSX that I don’t like and there are some things about Linux that I like, want to learn more about and promote. The day the GIMP supports CMYK will be the nail in the coffin for me, but until then I’m going to try hard to make designing for print and the web in Linux work.

Open Source Applications on OSX for Graphic Design and More

This is for people using OSX, but a lot of these are ported to Windows. Actually, in Windows you can get true, native apps, while in OSX you have to use the X11 emulator most of the time. Regardless, here’s a few tidbits that might make open source more attractive and easier to acquire.

X11
X11 or simply ‘X’ predates all of the operating systems us laymen are familiar with. It is the original graphical user interface. When young Steve Jobs went over to Xerox Labs this was what caught his eye (yes, Xerox invented the mouse, if you didn’t know). It started on Unix machines, was adapted slightly for Linux and now you are running an emulator within OSX. OSX install disks come with this since 10.3. If you are doing a fresh install, it’s under the ‘Customize’ button that appears shortly before the ‘Install’ window. Just check a box. Otherwise, you can install it after the fact, but I’m not going to describe that here. If you are using 10.3 there is a download on Apple’s site. Apparently for 10.4 they recommend installing from your original disks. You MUST have this to run the following unless otherwise stated.

GIMPshop
The only thing the GIMP (Gnu Image Manipulation Program) lacks is CMYK support and Layer Sets. Okay, that’s not the only thing, but it’s pretty close to Photoshop 6, and that’s not bad. There is a variant of the GIMP out there that targets Photoshop users. This brilliant individual changed the menues, tool shortcuts and some of the graphics to make the GIMP look and feal more like Photoshop. Google ‘gimpshop’ and download. If you already have X11 installed, installing and using GIMPshop is like using a native application.

FINK
This is cool, but difficult to understand if you are not familiar with Debian or Ubuntu Linux. It’s an application that downloads and installs applications for you. Specifically *NIX applications. It allows you to avoid ‘Dependency Hell’. If you don’t know what that is, revel in that fact. To get Fink, go here: http://fink.sourceforge.net. It installs like a standard application. After that’s installed you’ll want to drop the application ‘Fink Commander’, which comes with Fink, into your applications folder. Follow their instructions. Once that’s all done you can use Fink Commander to review the list of available applications. The GIMP is available this way, but it’s a much older version, so use the above suggestion instead. The next few apps can be installed through Fink. You will have to add any X11 applications installed through Fink to your X11 Applications menu manually, but if you want to know more about that, just ask. To install apps, open Fink Commander and browse the list or use the search feature to look for what you need. When you find the right file, highlight it and click the button on the far top-left. Fink will take it from there.

Scribus
This is a layout application. It’s a little rough around the edges, but worth checking out. I can’t find a kerning function, but it can be a powerful app. The best feature about Scribus is that its document files are actually written using xml. This means that the file can be opened by a text editor and edited. Maybe that doesn’t sound sexy, but it allows you to manage the content more like a web page. Granted, the markup can get complex and messy, but it’s much more future-proof than the closed binary proprietary file formats tha the commercial apps use.

FontForge
Like the name indicates, this application allows you to create or customize your own fonts. Sounds like fun, but in reality is fairly complex. Great tool though. Can also be used to convert PC fonts to Mac fonts and vice versa (so I’m told). A handy tool to keep around. Installs through Fink easily. I’ve successfully created a font with only the first 6 letters finished. It’s cool if you have a little patience.

KDE Games
Okay, not a design tool, but who doesn’t need a little old-school gaming action every now and then? Here’s a few of the games included: Battleship, Poker, Solitaire, Tetris, Connect-4, Putt-Putt Golf (and you can make your own courses! Killer!), Black Jack, Mahjongg, Minesweeper, Tron and Asteroids. Just use Fink Commander to search for ‘KDE Games 3’ and click the little (less than intuitive) button in the top-left to install. The files don’t have little sexy icons though. You will find the files (after you install them) here: /sw/bin/. I’ve found that OSX doesn’t recognize these as applications, so you can’t make a shortcut for your doc by right clicking. However, if you make a shortcut for a native OSX app and then Get Info, you can change where it points to. So, take that shortcut and name it after one of your new KDE games, and then point it at the appropriate binary file in /sw/bin.

Inkscape
Inkscape is a pretty solid vector drawing application. It’s documents are an svg file type and that means written in xml. Sound familiar? SVG is the W3C standard for vector graphics. Which is why SVG stands for Standard Vector Graphics. Unfortunately, you can’t install Inkscape via Fink. However, it’s easy enough to download and install by going here: http://www.inkscape.org/download/?css=css/base.css from there you can download the OSX version. It will work pretty much like the GIMP, which is pretty much like a standard OSX native app.

Well, there you have it: A complete graphic design suite. If only Adobe CS came with Asteroids! There are endless amounts of apps out there, but I need to get some sleep. Let me know if any of this interests you or if you have something to add to the list of information.