Homemade utility install disks are a lost art

January 19, 2009

floppy8FROM JASON’S HARD DRIVE — Back in the deep recesses of time, in an era of blackest techno-prehistoria of the 1990s, when IBM computers still roamed the Earth and the mighty Megahertzaurus ruled, I had a magic CD full of essential software for clean installs.

I’ve set up several computers in the past month, including one that I’ve formatted and reloaded three times with different operating systems. I’ve found myself missing that old CD, but not needing it.

dysan_floppy_disk_011That disc held all kinds of goodies: system utilities like Zip-It Deluxe, WinAmp, modem drivers, task tray hacks, RAM optimizers, benchmark tools, command.com system.ini backups, and a hard drive rescue program. Several of these were leftovers from the days when the magic utilities were all crammed on a tiny 3.5-inch diskette.

cdromThanks to the ubiquity of the Internet, those fixed mediums aren’t necessary anymore. I still felt myself in the past few weeks reaching for the old canvas CD case under my computer desk, though. Of course, the absolutely must-have apps these days are much different; here are the ones that I install right away on a fresh install:

FireFox
AdBlock Plus
Download Status Bar
PDF Download
Image Zoom

Java, Flash, VLC Media Player, IrfanView

7-Zip, WinRAR, TweakUI, ZoneAlarm Firewall

Digsby, Skype, iTunes, Open Office

RocketDock, Yod’m 3D

NOTE: So if I’m being honest, none of these are revolutionary finds for the computer savvy. But if you’re setting up a Windows machine for the first time and you need the basics, this list will get you there. It’s also going to serve as a checklist for the next time I need a fresh install for myself or friends, which has become disturbingly frequent.

I also realized in writing this post just how many third-party shell hacks have been assimilated into Windows. You used to need seperate programs to make icon text transparent; to make quick-launch bars; to more efficiently manage RAM, to monitor the system benchmarks; to set up drivers; to optimize hard drive efficiency; to do color and gamma management; to tweak power usage or core temperature.

I’m kind of lonely for that mid-90s need for under-the-hood work.


Desktop hacks give me the best that XP, OSX, and Ubuntu could offer

September 23, 2008

FROM JASON’S REPRESSED ARTIST PERSONA — I’ve been toying endlessly with my Windows XP desktop lately, getting rid of the WinDross that’s irritated me for years.

Now, I like a lot of things about Windows. And I like a lot of things about OSX. And I hate a lot of things about both. So I was looking for a happy medium.

What I found were a lot of third-party apps and registry hacks that let me have the best of each OS’ desktop.

First, I installed DeskSpace, a Win32 application that replicates the Ubuntu desktop.

Holding a hotkey and dragging the mouse lets you switch between six desktops, each with its own shortcuts, wallpapers, and applications. It’s not really necessary in the least, unless you want to have Photoshop running on one desktop and then click over to another for web browsing or iTunes.

It’s also helpful for quickly hiding your screen from your wife or boss (sometimes they’re the same) if you’re Christmas or anniversary shopping. Not looking at pr0n. Nope, not that. Never.

But more than anything else, it’s a way to use lots of wallpapers at the same time and switch effortlessly between them.

Our forum friend Sonic from the Geeknights forum shows you how it works:

Next, I co-opted OSX’s launchbar by installing RK Launcher. I have since switched over to RocketDock, which lacks a few features but excels at using docklets (widgets) that make life a lot easier. Those include clocks, weather reports, and menu stacking right on the launch bar.

You’ll notice that’s not the standard XP color and style scheme on the taskbar. I used UXPatcher to crack the Plus! protection for *.msstyles files. (TIP: Once you run the patcher, run it again to enable the patch.) Then I could get skins without having to use another memory hog like Windows Blinds.

Next, I went in search of great wallpaper, but I didn’t want to trawl 4chan until my brain ‘sploded. So I took a clue from another forumite, Dkong1026, who suggested 4scrape. It indexes image boards and delivers lots of wallpapers quickly. There’s no real way to search it — just keep hitting F5 until you see what you want — but bulk wins in this case.

Watch out for the pornography, if you care about such trivial things.

You god-damned prude.

At this point, I started incorporating widgets onto the desktop, both for asthetic and functional reasons. I’m using Yahoo! Widgets here, but Google has a similar service, and third-party programs often do the same thing.

These customizable ones I’m using show hard drive, RAM, and CPU usage, let me control the system volume, and give me an iTunes remote control/cover art viewer. They can be independently anchored on the desktop and come with a bunch of options.

There was still more to be done, though. I’ve always disliked the taskbar, and using its autohide function just wasn’t cutting it. The damned thing kept popping up on mouseover and getting in the way, so I hunted for a reg hack to remove it completely and found KaneBT to do it for me.

Now I have a nice, clean, functional desktop customized to my needs:

How nice is that? There’s absolutely nothing I like better than a perfectly organized system without a bunch of icon clutter. It’s all streamlined, which looks better and saves me time.


Whoever thought I would be excited about ice?

May 31, 2008

TRANSMITTING AT THE SPEED OF LIGHT, 422 MILLION MILES AWAY — I’m a huge space geek. While I’ve never owned a telescope (never been far away enough from the city for it to be used in a meaningful way), I’ve always been in awe of what scientists have been able to uncover about the mysteries of our universe.

Well, if you haven’t been in the know recently, NASA has sent yet another lander to Mars. Phoenix is assigned the mission to excavate one of the polar caps of the planet to analyze the surface for habitable zones and look for evidence of past life. It’s not a rover like Spirit or Opportunity so it can’t move around, but it’s got tons of awesome equipment.

After it landed last week it’s spent the past week getting it’s equipment up and running and making sure everything is in working order. To our surprise, once it extended it’s arm (a several day process), it captured several pictures with it’s built in camera. Well guess what they found when the took a peak underneath the lander.

What does it look like? Ice! While they aren’t 100% positive, there is a very good change that this could be evidence that we are very close to an ice sheet just a few inches underneath the surface of the planet! We also don’t know if it’s CO2 or water based ice. Scientists believe that the ice was revealed when the retrorockets were fired during landing, removing a couple of inches of dust from the surface. Hopefully this will mean that there is a lot more ice around the area!

Keep updated by checking out the official NASA website and the Phoenix lander twitter. The most recent episode of Skeptics’ Guide to the Universe Podcast also has a great interview with one of the Phoenix team members at the Jet Propulsion Laboratory.

JASON’S EDIT: Andrew and I had a brief but excited discussion the other day about Phoenix and ongoing exploration in our solar system. Neither of us can wait to get some real data on Europa, one of Jupiter’s moons, which was made famous in 2010 and 2069, the sequels to Arthur C. Clarke’s 2001: A Space Odyssey.

Clarke imagined that because of excessive geothermal activity on Europa and theory that it, too, might have vast quantities of hydrogen-based ice, Europa could be suitable for life. Of course it was science fiction, but Clarke (RIP) never did anything half-assed; the science was all plausible.

I’d also like to point out something that Andrew taught me: The photo above is in black and white but many photos being beamed back from Mars are colorized using filters. The shots are amazing, and nothing at all like the red-sky Mars we see in films (QUAID! GET YOUR ASS TO MARS!). Nope, the photos seem almost sunny, which is mind-blowingly refreshing.


Intro to Assembly and a Brainfuck Interpreter

March 5, 2008

LD R0,BLOGPOST —If you’ve listened to March 2nd’s Geeknights, you’ve heard Scott discuss how a high level code is either complied or interpreted into Assembly or machine code.

Well, if you would like to delve further into this subject matter, here is a small lecture which will go over the basics of computing (hastily I’ll admit) and later on we will cover a simple interpreter for the Brainfuck language. The lecture covers a lot of material within a small amount of text, so I have glossed over a lot of information. If you wish, I can delve deeper into any topics you would like to know. This will be a multipost topic within this thread, hopefully I can bang it out in two posts.

I have also assumed that you have at least listened to the Geeknights shows on computers and programming or have a basic knowledge of how computers work which will provide a decent background in which to understand the material. If you would like to listen to shows, try starting here.

With this little project, you will:

  • Learn about the computing process in detail
  • Learn Brainfuck ^__^
  • Understand how assembly works with a processor (The LC-3)
  • Get a basic overview of a simple computer.
  • Impress your friends with awesome knowledge

Alright, let’s begin. First off, let’s go over the scope of the computer hierarchy. Here is a basic flow chart of computing system:

Problem->Algorithm->Language->Machine Architecture->Micro-Architecture->Circuits->Devices

Problem– This is what we wish to do with our computer. What is the task we wish to perform with the computer? Do we want to play a video game, write a paper, or perform calculations? Having a solid grasp of the problem allows us to find a solution to the problem in the quickest and most efficient manner. This stage is the furthest most computer users will ever utilize and will never delve deeper into the computing hierarchy.

Algorithm– The algorithm is the basic overview of the solution to our problem. It is what allows us to transform the solution to the problem from a natural description to some series of steps that progress towards termination and a final solution. So, do we need a program which can take in input from our keyboard and save it in a separate file? Do we need a three dimensional world which can simulate realistic physics? Or do we need a mathematical formula to solve a complex equation? With the correct algorithm we can solve our problem quickly and correctly every time.

Language– This is the level most programmers spend their time. The language consists of any high-level programming language in which one uses to implement their algorithm. There are hundreds of languages out there today, all of which allow you to solve different kinds of problems. Popular examples today are Java, C++, Python, Lisp, C, and the one we will be using today, Brainfuck. These languages are often complex, robust, and allow the programmer to implement their algorithm into a digital form or a series of steps that the computer can follow to create reproducible results.

Machine Architecture or ISA (Instruction Set Architecture)– This is the assembly language which takes the higher level language and transforms it into instructions which the hardware can interpret and operate with. The two ways that high level languages can be converted into Machine Architecture code are compliers or interpreters. One of the most famous ISA’s is the x86, which most of the chips on the market today are based on. Both AMD and Intel use x86 in their processors today. The ISA is made up of various Opcodes, or instructions for the processor. Because the LC-3 is a 16-bit processor, the opcodes are 16 bits long. Let’s say you have a 32 bit processor in your computer right now, it’s opcodes would be 32 bits long. A 64 bit processor would have 64 bit opcodes.

Micro-Architecture
– This is the level that most people think of when they envision a computer. You processor, motherboard, RAM, Video Card, Hard Drive, and input devices such as mice and keyboards fall in this category. This level transforms the Machine Architecture into an actual implementation.

Circuits– The circuit level describes physical construction of each of the components of the Micro-Architecture. The main component of this level are logic gates, simple components of wires and devices which allow simple boolean logic execution.

Devices
Transistors. Only the most advanced electrical engineers will work at this level. Logic gates are constructed using wires and transistors. They are the main units of operation in your computer.

So, what is the LC-3? The LC-3 is a simple implementation of the Von Neumann model computer, a simple but outdated architecture. The LC-3 is also an assembly language (Instruction Set Architecture or ISA) for the specific LC-3 processor (there is only one). The LC-3 processor is a 16-bit processor which means that it can handle bit strings of length 16. This bits are either 1’s or 0’s, your basic binary. However, there are multiple ways to represent numbers with binary. The most common today is Two’s Complement. I won’t be going over the specifics as it is a little more complicated that what I was planning on going over.

Here is the Micro-Architecture diagram of the LC-3 based computer:

LC-3

To most of you, this diagram is extremely confusing and is totally beyond all comprehension. I’ll try to go over the basics and hopefully you will understand some of the aspects of a computer.

A: This is your Register File or Processor Register, it is a small amount of memory on the processor which can be quickly accessed by other aspects of the processor. The LC-3 has eight registers within the Register File.
B: This is your memory, commonly known as RAM. This is where the majority of your operations and instructions are stored.
C: This large black line is your BUS, which is used to carry 16 bit binary numbers to several components within the computer. It is the main system of transit for your computer.
D: The PC or Program Control holds the MEMORY LOCATION of the next instruction to be carried out. This memory location is sent to the memory which then retrieves the instruction (opcode) and sends it to the processor for execution.
E: The ALU or Arithmetic Logic Unit is what performs operations to the bits in your computer. In the LC-3 it can only perform the operations ADD, bitwise AND, and bitwise NOT.
F*: I forgot to mark this component on the diagram, but it is the IR or Instruction Register. This keeps track of the current instruction being executed during the clock cycle and sends the instruction opcode to the Control and eventually the ALU.

Everything else is not necessary for this brief overview, but they all serve an important purpose. Components A and E are what make up the processor, B is your memory, and E and F make up your Control Unit. These are the basic components of a computer.

So how do we interact with the computer? We utilize the processors opcodes, or instructions which when inputed into the computers logic will cause changes in the computers state, which are then saved into the memory. Here is a list of the LC-3’s opcodes:

OPCODES

Let’s look at the first opcode on the list, ADD. The first four bits (15-12) in the opcode are the instruction code, it tells the computer which operation it wants to carry out. The next three bits represent the destination register, where we want to place the result of our operation. Bits 8-6 represent the first source register and bits 2-0 represent the second source register. Bits 5-3 are not used and thus are just zeros, the processor will ignore these bits. The registers are part of the register file, which the processor interacts with directly (the processor never directly interacts with memory). So, what would it look like when we want to add the value at register 1 and register 2 and place it into register 0?

In assembly:
ADD R0,R1,R2

In binary:
0001 000 001 000 010

000 is 0 in binary which represents R0, 001 is 1 in binary which represents R1 and 010 represents R2

So if we had the value 3 stored at R1 and 4 stored at R2, after executing this instruction the value 7 will be inputed into the register at R0.

So, utilizing these opcodes, we can write programs which can be executed directly by the computer hardware in order to perform computing tasks. This covers the basics on how one programs in assembly to perform basic computer executions. Hopefully with this background you will be able to marginally understand the interpreter.

If you have any questions, feel free to ask them and hopefully I can answer them within my next post. Until the next post, I recommend these PDF’s for a more detailed explanation of the LC-3 ISA and the Micro Architecture of the LC-3.
ISA
Micro Architecture