Home

Advertisement

Customize
About this Journal
Current Month
 1234
567891011
12131415161718
19202122232425
2627282930
Apr. 29th, 2009 @ 02:29 am Doing Taxes is Fun! Actually, not really!
This weekend, I came up with a plan for making taxes enjoyable. I converted some PDF tax forms by adding special fields to them (no, not FDF fields - that's for a later code writing adventure) that computer programs could search for and replace. As a result, actually entering my tax information probably took less than 10 minutes. I made a program that automatically multiplies and adds things together, kind of like a spreadsheet. It then automatically goes through my PDF file (which has, by this time, been converted to a ASCII-friendly Postscript file) and fills out the form and saves it.

This "automated" processing actually took me longer than it would have to just manually fill out my forms. But that's not the point. The point is that I enjoy programming, computers, information organization, and even fussing with printers (numerous attempts to try getting LaTeX to print envelopes correctly, and me trying to manually duplex my papers). I enjoy these things a lot more than hand writing tax forms. A type writer also would have been almost as much fun. I love the feeling of raw power when using type writers. Except, it would still leave me to manually multiply and add numbers together.
About this Entry
Apr. 17th, 2009 @ 12:04 am I Didn't Waste My Vote

I attended the Albuquerque Tea Party and it was wonderful. There were many different people there protesting different spending and tax related aspects of the government. I bet there were at least 1,000 people there.

One man asked me who I voted for. He was disappointed to hear that I voted Constitution and told me I had wasted my vote. But, I didn't waste my vote when I voted for the Constitution Party. My vote lets the party know that someone out there supports them. It also sends a message to other politicians that I am Fed up (puns are great).

Here are my spiffy signs. I figured that there would be some programmers who would appreciate the Lisp sign; Sure enough, I ran into a very special family who helped me hold my signs (it was windy and a hard job to do). One of my signs compares the Lisp REPL mantra to a mantra I made up for Congress:

Note: Someone helped me draw the pig :-)

It took me probably an hour to think of something to put on my signs. I originally thought about writing an OS that worked the way Congress worked, but I quickly decided that would require way too much poster board area.

With my signs, I was trying to emphasize that Congress has been acting irresponsibly and perhaps even taking too many responsibilities that are better left to the States. People focus on the President too much, and Congress has been sliding by unnoticed. Congress' actions suggest that they do not care about Social Security or Medicare or excessive spending, even though we are taxed for it. Congress receives special health and retirement benefits (not to mention automatic salary raises) and you can bet that our taxes are paying for that. Try putting them on Social Security and Medicare and see if they like it. Or better yet, vote them out.

I felt honored when an Obama supporter was biking through and stopped to read one of my signs. He had a perplexed look on his face and said, "This sign appears to be non-partisan." I think he was confused that my signs were not anti-Obama signs. Instead, I was criticing Congress for things that both Republicans and Democrats have been responsible for.

The disdain of the Federal Government to our Constitution and to citizens has been shown in many ways. It has been shown with the FISA act in 2008 granting retroactive immunity to telecommunications companies for spying during the Bush administration. The Obama administration is going right ahead with the precedent set by Bush: warantless wiretapping and surveillance. Chuck Schumer has been recorded on video saying that Americans really don't care about pork barrel spending (the sad thing is that he might be correct, but that still doesn't justify Congress' actions). War is only supposed to be declared by Congress. The war in Iraq shows disregard for the Constitution since it was never declared by Congress. Congress supported Fannie Mae and Freddie Mac and ignored warnings to regulate these organizations.

  1. http://www.youtube.com/watch?v=JEfICUoWKBw Schumer: The American People Don't Care About Pork Projects In Stimulus
  2. http://www.youtube.com/watch?v=cMnSp4qEXNM Bush, Greenspan, and McCain warned Congress about Fannie Mae and Freddie Mac. Congress ignored the warnings. Chuck Schumer and Barney Frank commended Fannie Mae and Freddie Mac.
  3. http://www.eff.org/deeplinks/2009/04/obama-doj-worse-than-bush Since Obama has taken office, the DOJ asserts that the govnerment can never be held responsible for conducting illegal surveillance under any federal statutes.
About this Entry
Apr. 9th, 2009 @ 07:08 pm What is With The "Shame On ... Labor Dispute" Picketers?
In Albuquerque, I recently noticed a couple different businesses with protesters standing in front holding a sign that says "Shame On ...". For example, there is one in front of Sunflower Market saying "Shame On Sunflower Market".

So, what is this all about? What horrible thing is Sunflower Market doing?

Well, some people are saying that labor unions are harassing non-unionized businesses, such as Sunflower Market. The people holding the signs are being paid a wage to hold the signs. They are not holding the signs because there is actually a legitimate problem. Labor unions are trying to browbeat businesses into unionizing by paying individuals to picket in front of such businesses. I've got another idea though: how about people get off their lazy butts and start working instead of trying to extort money for a living.

However, other people are saying that companies such as Sunflower Market are misclassifying their employees.  And that is apparently why these companies are being targeted with the "Shame On" picketers.  The misclassification of employees means the business can apparently cut costs (and also cut employee benefits) and thus have an unfair competitive advantage.  I'm more inclined to believe that unions are harassing companies.  But if you have any thoughts, feel free to leave a comment.
About this Entry
Feb. 20th, 2009 @ 01:10 am Review of M-Audio MIDISPORT devices
I hate writing this article, but I feel cheated as a consumer, and I think there are many other people out there who feel the same way. So I am writing this in the hopes of warning future buyers.

I have wasted my time with these M-Audio devices. I expected them to "just work" but they hardly work correctly. M-Audio should have NEVER released some of these devices in the current state they are in. What's really bad is that so many local music stores sell these M-Audio devices, but you should be leery of these! I wish I could recommend a different brand, but I was unfortunately stupid and bought mostly M-Audio devices.

I have gone through three M-Audio products and have had bad results with all of them (whereas I have good results with products from other vendors). Here is a summary (but you are welcome to keep reading beyond this to get the full rant):
  • M-Audio MIDISPORT 2x4
    • The good: Worked great in Linux under Ubuntu 7.10 (or maybe it was earlier, like 7.04). I was using it with an Alesis QS6.1, a Yamaha MU80 module, and a Korg TR-RACK module.
    • The bad: As soon as I upgraded to the next version of Ubuntu, the latency on the MIDISPORT 2x4 became terrible! I still haven't figured out why :-( (Latency of other MIDI interfaces remained very good).  If I switch back to the old version of Ubuntu, the latency of the 2x4 becomes good again.
  • M-Audio MIDISPORT Uno
    • The bad: If you have a Yamaha keyboard, especially a Yamaha PSR keyboard, the MIDISPORT Uno just will not work. It drops MIDI events like crazy. It doesn't matter what OS you are using (supposedly).
    • The good: None.  Sure it is cute, compact, cheap, and has integrated cables.  But it doesn't work with the Yamaha PSR keyboards and potentially other keyboards.
  • M-Audio MIDISPORT 2x2 Anniversary Edition
    • Tested with: Alesis QS6.1 keyboard, Yamaha P-70 keyboard
    • The good: Works great in Linux (Ubuntu 8.10).
    • The bad: Drops MIDI events in OS X (hmmm, this is similar to the Uno...?) (might be because the P-70 keyboard is sending MIDI timing events, but this is not really an excuse)
  • Here is a device from a different vendor, just to test that my setup is okay: AKAI MPD24 (it has a MIDI interface builtin)
    • Works beautifully in Mac OS X and in Linux. It's just what I would expect from any vendor.
    • You don't even have to install drivers! It just automatically gets detected and starts working.
It would be nice if M-Audio could provide some explanation of what is going on here and/or fix their devices.  Couldn't a firmware update solve these issues??  I'm half tempted to crack apart one of these units myself and see if I can write my own firmware+drivers.  I think the units have just a Cypress FX2 microcontroller inside (which is 8051-based and has an integrated USB interface, and is very easy to reprogram).

Read the full rant... )
About this Entry
Dec. 14th, 2008 @ 12:22 am Article V Constitutional Convention
On December 3 (2008), Ohio proposed an Article V Constitutional (i.e. the U.S. Constitution) Convention. A Constitutional Convention allows for a body of non-Congressmen to propose constitutional amendments.

http://www.legislature.state.oh.us/res.cfm?ID=127_HJR_8

2/3 of the State legislatures (meaning: 34 different states) must submit applications before an Article V convention can be set into motion. Sadly, I don't have a clue as to how to figure out what States have currently submitted applications. (Can anyone give my a pointer about how to find this out?)

The supposed intention of this particular convention (according to the resolution proposed by Ohio) is to require the federal government to keep a balanced budget. However! Ohio's legislature, and all other legislature, have absolutely zero authority to control an Article V convention once it is set into motion. Let me repeat: once set into motion, an Article V convention cannot be controlled/limited by the legislature of any state. The convention is essentially free to propose other amendments or they can even simply adjourn without proposing anything.

Here is some more info about an Article V convention (But you should go read the actual text of the Constitution too; It's good for you.):

The convention is only to propose changes however; After proposing changes, the results are still subject to ratification by 3/4 of the States. Many people don't seem to understand that the proposals must yet go through a final step of ratification before becoming part of the Constitution.

First, let me explain the argument against having an Article V convention. Some people are worried that this convention will be used to propose steps towards a North American union (among other things). The worry is that a convention will be called which quickly proposes some amendments, and then the states will quickly ratify those amendments. All of this could occur without sufficient time for the public to be made aware of what is happening. (Keep in mind, this could be complicated since you'd have to get 75% of the States to agree on the amendment).

Now, let me explain the argument in favor of having an Article V convention. The convention could actually propose to impose a true, honest balanced budget restriction upon the federal government. Something that should be infuriating to strict constitutionalists is that Congress has, on numerous occasions, denied the States their Constitutional right to call an Article V convention. There have been cases where ALL 50 States have applied for a convention, but were still denied by Congress. Here is a website dedicated to that topic:

http://www.foavc.org/

A powerful quote from President Eisenhower in 1963 says, "Through their state legislatures and without regard to the federal government, the people can demand conventions to propose amendments that can and will reverse any trends they see as fatal to true representative government."

Note also that ratification can take years or even a century. There is a precedent that once a state has ratified an amendment, then that state may not rescind their ratification (except perhaps by proposing yet another convention that negates the amendment).

So what is the actual truth behind this? Are special interest groups trying to hijack the Constitution while the public is distracted by the recent government bailouts, poor economy, gas prices, thinking about Christmas, etc.? Or is this an honest effort to try and impose more responsibility onto a failing federal government? Or are the Illuminates and Free Masons up to something (j/k)?
About this Entry
Aug. 7th, 2007 @ 09:58 pm Music discoveries
I discovered the names for a couple of categories of music I like: progressive metal and instrumental rock.
About this Entry
Jul. 4th, 2007 @ 05:46 pm Vote Ron Paul for President 2008
Republicans, Democrats, Libertarians, and everyone else: unite and vote for Ron Paul. Many people are not aware that he is running for President. But he is.

Ron Paul needs to make it through the Republican primaries and caucuses. And he has very intense, unfriendly competition. He needs you to register to vote with your county clerk as a Republican and then vote for him at the primaries or caucuses in your state.

Here's the way primaries work: each state gets a certain number of delegates. The delegates from that state are determined by caucuses and by votes at primaries. You need to vote at your state primaries and caucuses for Ron Paul. This is VERY important. You can see a tentative schedule here: Republican Party (United States) presidential primaries, 2008. After all the primaries and caucuses have finished, all of the delegates will meet for a final voting at 2008 Republican National Convention. The delegate votes are predetermined in a winner-takes-all fashion (if I understand it correctly) based upon the results of the primaries and caucuses in your state.

Want to know more about Ron Paul? Go to YouTube and look at the presidential debates. Or go to the site for his campaign: http://www.ronpaul2008.com/. To get involved, go here: http://www.ronpaul2008.com/get-involved/.
About this Entry
Apr. 20th, 2007 @ 04:39 pm Too Much "AI?"

Thus if I say, "John kicked the weasel," you probably cannot think of a purely abstract weasel, but must imagine characteristics of a vaguely particular weasel; it probably has a certain default size, default color, default weight. Perhaps it is a descendant of one you first owned or were injured by. Perhaps it resembles your latest one. In any case your image lacks the sharpness of presence because the processes that inspect and operate upon the weakly-bound default features are very likely to change, adapt, or detach them.

Replacing just one word certainly makes things more exciting. The original, unadulterated source is here: http://web.media.mit.edu/~minsky/papers/Frames/frames.html.

EDIT: fixed the formatting.

About this Entry
Apr. 15th, 2007 @ 11:15 pm A Thought About Unit Testing
One problem with unit testing (and maybe other tests, such as system and regression testing) is that some people (I'm envisioning students who have never before written a program suddenly taking CS111) will hack code together until it passes unit tests, and that's it; Their code will not perform its intended function, but it will pass the unit tests.

Ideally, the programmers should do better work than that. But for some people who are inexperienced or don't enjoy their work, a little extra coaxing may be required. So, I have this idea: design two sets of unit tests. One set is the set which the programmers can see. The other set is kept hidden from the programmers. This second set is the magic that hopefully keeps programmers from just randomly hacking together some code which is barely able to pass the test. I guess that is the role which is played by a teacher/TA/grader for programming classes.

What would this be called? How about "blind unit testing?"

Disclaimer: I'm not an expert on testing and don't have a lot of experience working with many people on a software project.
About this Entry
Apr. 11th, 2007 @ 05:40 pm Adding Some Nifty Keywords to C++: interface, implements, extends, mixin

By simply #define-ing a few keywords, C++ looks a bit more competent. Now it is clear that C++ can handle all of the following:

Here's the code:

#include <stdio.h>

#define interface class
#define implements public virtual
#define extends public
#define mixin public

template <class T>
interface Comparable
{
public:
virtual ~Comparable () { }
virtual bool operator< (const T &x) = 0;
virtual bool operator> (const T &x) = 0;
virtual bool operator<= (const T &x) = 0;
virtual bool operator>= (const T &x) = 0;
virtual bool operator== (const T &x) = 0;
virtual int leg(const T &x) = 0; // -1: less than, 0: equal, 1: greater than
};

template <class T>
class ComparableMixin :
implements Comparable<T>
{
public:
virtual ~ComparableMixin () { }
virtual bool operator< (const T &x) { return (leg(x) < 0)? true : false; }
virtual bool operator> (const T &x) { return (leg(x) > 0)? true : false; }
virtual bool operator<= (const T &x) { return (leg(x) <= 0)? true : false; }
virtual bool operator>= (const T &x) { return (leg(x) >= 0)? true : false; }
virtual bool operator== (const T &x) { return (leg(x) == 0)? true : false; }
};

class Integer :
implements Comparable<Integer>,
mixin ComparableMixin<Integer>
{
private:
int _x;
public:
Integer (int x) : _x(x) { }
virtual ~Integer () { }
virtual int leg(const Integer &x)
{
if (_x < x._x) return -1;
if (_x == x._x) return 0;
if (_x > x._x) return 1;
}
};

class SillyInteger : extends Integer
{
public:
SillyInteger (int x) : Integer(x) { }
virtual ~SillyInteger () { }
virtual void doSomethingSilly (void) { }
};

template <class T>
class AlwaysEqualMixin :
implements Comparable<T>
{
public:
virtual ~AlwaysEqualMixin () { }
virtual int leg(const T &x) { return 0; }
};

class AlwaysEqual :
implements Comparable<AlwaysEqual>,
mixin ComparableMixin<AlwaysEqual>,
mixin AlwaysEqualMixin<AlwaysEqual>
{
public:
virtual ~AlwaysEqual () { }
};

int
main (void)
{
(Integer(42) > Integer(32))? printf("good\n") : printf("bad\n");
(SillyInteger(42) == Integer(42))? printf("good\n") : printf("bad\n");
(AlwaysEqual() > AlwaysEqual())? printf("bad\n") : printf("good\n");
(AlwaysEqual() == AlwaysEqual())? printf("good\n") : printf("bad\n");
return 0;
}

Or, of course, you could just use Ruby ;-)

(EDIT: I added an example to demonstrate SillyInteger.)

(EDIT #2: Added AlwaysEqual to demonstrate multiple mixins which utilize each other)

About this Entry
Mar. 21st, 2007 @ 12:54 am Car Humiliation
Now I think I know what some people feel like when they ask me for help with computers.

This weekend, I decided to wash the engine of my car so that I might be able to see if there were any oil leaks. Well, something bad happened when I was done washing the engine: the car wouldn't start.

Fortunately, there were people everywhere giving me advice and one of my friends came over with some tools to help me out. The advice of everyone was essentially this: I had moisture in my distributor cap and it needed to dry out. Sure enough, my friend unscrewed the distributor cap part-way and some fluid flowed out of it. After we let it dry out for several minutes, we put it back together. And voila, the car started.

I can't believe how clueless I am about cars. I'm glad that there are people around who are teaching me though.

In other news, I have been crazy busy with school/work as I am sure some of you can imagine.
About this Entry
Mar. 8th, 2007 @ 01:29 pm School is Nonsense
School teaches people to be motivated by negative consequences. "If you don't do your homework, you get an F." versus "You can use algebra to help you achieve your long term goals."

School doesn't allow people to work at their own pace. I would have to say this is particularly true for public grade schoolsand that it seems to be less true in college. You are penalized for moving slower than others or you are held back from doing more than others.

School doesn't allow you to study the things you want to study. Again, I think this is more true in public schools than in college. A particular instance of this in my case is that I really wanted to take E&M *before* I took Vector Analysis, and even right now, I think I would have turned out better if I could have swapped the two classes.

Some of these problems are partially a granularity issue. In public grade school, you are associated with a grade in which is a very large, inflexible granule. In college, there is a lot more flexibility to take which classes you want when you want.

Everyone is different. Not everyone thinks or learns the same way.

I have benefited enormously from formal education. Perhaps things are the best that they can be right now considering the current values of our society. But, I personally think things could be a lot better. I admire homeschoolers for being willing to tackle complicated problems such as this.
About this Entry
Feb. 25th, 2007 @ 11:30 am Protege's Installer from Macrovision
I am pretty interested in Protege, but I can't seem to convince myself to run its standard installer which is based on Macrovision's InstallAnywhere program. Anything related to Macrovision just creeps me out and I can't help but wonder if it will resuilt in installing malware on my computer. Fortunately, there are other package options available for Protege (if you look around, e.g. the FaCT++ website) and you can also try your luck at building it from source.
About this Entry
Feb. 13th, 2007 @ 10:43 am Old (but Cool) News About FPGAs

Experience Using a Low-Cost FPGA Design to Crack DES Keys (by Richard Clayton and Mike Bond, published in Cryptographic Hardware and Embedded System - CHES 2002), says this about FPGAs:

...a hardware DES cracker was implemented on a US$995 off-the-shelf FPGA development board. This gave a 20-fold increase in key testing speed over the use of a standard 800 MHz PC.

And that was around 6 years ago. White papers that I have seen from SRC Computers, a company which sells off-the-shelf reconfigurable computers along with compilers, claims speed improvements of 10x to 1000x that of a conventional PC depending on the type of problem to be solved.

And it only gets better: power consumption is very low - the power per performance ratio is only a fraction of what you can get from a normal PC.

And, by the way, I'm sorry to hear the news about Mike Hogan. I'm not sure if I know him (I need to see his picture), but that is sad news nonetheless.

EDIT: The FPGA DES cracker was run in 2001, according to the paper. The EFF also built a machine a few years earlier to demonstrate the insecurity of DES, and a book has been written about the EFF's work, Cracking DES: Secrets of Encryption Research, Wiretap Politics & Chip Design.

About this Entry
Feb. 12th, 2007 @ 01:25 pm More About India

I'm proud of myself because on Google maps, without any help from my friends, I was able to find where I was staying in Mumbai (Bombay), India. This wasn't so easy, because I tried typing in the actual names associated with the place I was staying and Google was turning up zero results. But, I did know that I was staying inbetween Vile Parle and Andheri (two general areas of Mumbai which you can see if you zoom out a little), and with that little bit of knowledge I was able to find this:

http://maps.google.com/...

I stayed very nearby the Vidyanidhi school, which is also the school where I gave a really fun presentation.

I'll just quickly point out some interesting features on that map:

  • Parallel to and just a little south of Vidyanidhi Marg is a river. On the northern bank of the river there are lots of trees (as you should be able to see). On the southern bank are rows of slums characterized by flat-looking gray roofs. While I was there, the slums looked like two story houses made out of bricks and sheet metal and they were falling apart; And yes, people were living in them. People are *everywhere*.
  • To the north of Juhu Vidyandhi Jr College is a big dirt field. When I was there, which was just bordering on the start of the monsoon season in Mumbai, the field was quite muddy. People were often playing cricket in that field.
  • Many of the buildings are several stories high (about 5 to 10 stories I would guess?)
  • The bottom story on several of the buildings contains businesses. I didn't have to walk very far to find stores or restaurants.
  • Some Bollywood stars, supposedly including Amitabh Bachchan, live very near this same area. Very cool :-)
  • A bit to the west, on Guru Nanak Rd I believe, is where I visited the dentist who gave me a filling (which seems to be doing quite well so far) and the eye doctor who gave me a new prescription for some glasses.

Shortly after I left, the monsoons started and Mumbai was flooded - it was like a big wading pool. I find it so interesting that this happens annually (annually, right?) to such a big city and amazing at how they deal with it. It's a completely different experience than anything I've been through in the U.S..

Also, shortly after I left, and unfortunately, some terrorists exploded bombs on the local trains of Mumbai. The trains are a major transport system for people in Mumbai and thus this was a very sick incident. Interestingly, Bruce Schneier has a comment about the bombings of summer 2006. The regularly occuring terrorist incidents around the world can help put some perspective into the terrorist events that occur in the U.S..

About this Entry
Feb. 6th, 2007 @ 10:59 pm Tools, Systems, and Electrostatic Discharge
Sometimes when people are working on a complex system, they focus only on one single part of it, thus leaving the remaining portions incomplete. I can give at least three examples of this: cryptosystems, power supplies, and electrostatic discharge.

Some people might focus only on encryption when they should be considering a cryptosystem as a whole. But encryption does not equal a cryptosystem; It is only one piece of the whole. It doesn't matter if you are using public key cryptography if you can't verify who it is that you are talking to (e.g. SSH host keys). It doesn't matter if you password protect your data if someone can simply use a keystroke logger to steal your passwords. The whole system must be considered to ensure security, not just one piece of the system.

Now, what about power supplies, bypass capacitors, (split) ground/power planes, and high-speed [digital] electronic circuits? All of these pieces work together to provide [at least] two things: (1) a stable, high quality voltage reference shared by all circuits, and (2) a low impedance power distribution system to supply current to devices that need high current. The purpose of bypass capacitors is to reduce impedance (inductance in particular, but also resistance) of the power supply lines being distributed to microchips. It is usually easier to put a capacitor next to a microchip than it is to put a whole power supply next to a microchip. Therefore, "bypass" capacitors are employed to act like miniature power supplies for short periods of time which is perfect for the transient currents required whenever a digital logic gate flips from a 1 to a 0 (or vice versa); When the logic gate flips, it hammers the capacitor for current and then while the signal is remaining stable, the capacitor can slowly recharge via the normal power distribution path. There is a caveat however: this only works well if the capacitors are very close to the chip which requires the high current. Thus, you need to distribute many of these capacitors throughout the circuit, nearby all of the chips. Some "electrical engineers" just don't understand this though, and they will group all the bypass capacitors into a single clump in one spot of a printed circuit board rather than properly distributing them among the chips. Any engineer who makes such a mistake will hopefully be quickly corrected by someone who knows better. And, this is not the only issue to consider! There are many types of capacitors to choose from, but only some types are actually suitable for bypassing (*ahem* monolithic ceramics in parallel with electrolytics). And then there are the power/ground planes to consider: I'll save the details of those for some other time. The point of all this is that you cannot always just blindly design circuits and expect them to magically work; You have to consider the whole system (power distribution networks, signal propagation paths, etc.), not just a single piece of the system (the core electronic chips).

And now I will finally get to the subject of this journal entry: electrostatic discharge (ESD). A lot of people seem to be really guilty of this (possibly even myself) to some extent. Many people believe they have a magical cure to ESD whereas others completely neglect ESD altogether. Some people think that if you have a grounding wrist strap then everything is fine. Others think that if you have a grounding heal strap then nothing bad could happen. Others believe that if they are wearing a conductive shirt (yes, they do make such things), then they're immune to ESD. Anyways, there are lots of tools you can use to assist with ESD protection; But these are just tools!!! Tools are no good if you don't know how to use them. In order to achieve ESD protection, the ultimate goal is to ensure that you are at the same potential (voltage) as the rest of your environment and especially the same potential as any device you are planning to work on or handle. It doesn't matter how many ionizers, conductive mats, fancy shirts, conductive heal straps, wrist straps, rolling chairs with metal casters, conductive floor tiles, or anti-static bags you use if you are not using them in such a way as to ensure that you are at the same potential as the rest of your environment and the devices that you plan to work on.

I think that the people who neglect ESD altogether mostly fall into one of a few camps: (1) people who have not yet learned that ESD is a problem, (2) people who have absolutely no comprehension of latent failure, probability/reliability/statistics, and "the bathtub curve" and outright mock anybody who does attempt to take ESD-protective procedures, or (3) people who cave in to the pressure around them and thus give up with trying to be ESD-safe.

Anyone who believes that a single tool is a panacea substitute for a system is most likely just fooling himself/herself. So, don't do that!!!!! Okay?? :-) And learn/promote ESD safety too! :-)
About this Entry
Jan. 30th, 2007 @ 09:06 pm Xgl/Beryl
I booted Knoppix 5.1.1 last night with the Beryl desktop (using "boot: knoppix desktop=beryl") on an Intel i810-based graphics laptop. It was certainly fun. But what I liked most is the zoom feature. There are countless times when I want to zoom in on the screen and I press C-M-+ or C-M-- in X Windows. The Xgl/Beryl alternative is at least an order of magnitude more pleasant. It's fast and the zoomed screen moves around to follow the center of your cursor.

Unfortunately I don't think there is a default key configured for zooming, but it can be set in "Accessibility" configuration area for Beryl.

I also tried a nVidia-based box, but the Knoppix CD was not acquiescent.
About this Entry
Jan. 27th, 2007 @ 08:20 pm Steffan Andrews Music [is Awesome]
Anyone who likes video game music (*nudge* [info]tonberrygrrl ^_^) will probably enjoy having a listen to Steffan Andrews' music at http://spekko.com/. He has some very nice original compositions of songs from Chrono Trigger, Earth Bound, as well as some other music. And when I say "original," I really mean it - he didn't just create some simplistic MIDI file rip-offs; He knows what he is doing. And not only is he good at music, he is also a multi-talented guy: he built his own set of MIDI keyboard foot pedals like the ones you see on fancy organs.
About this Entry
Jan. 27th, 2007 @ 04:49 pm Parser/Reader for Korg KMP and KSF Files

Once upon a universe (overlapping with our very own), in a parallel time when I was supposed to be working on embedded control systems and combinatorial optimization, something else happened instead.

Don't click this. It's C++. You've been warned. )

This is a bad thing. It is bad because it means I will get a D on my homework instead of an A. But to look on the good side of things, this can lead to future distractions as I try to create an improved, software-based equivalent of the Korg [Trinity-esque] TR-Rack.

About this Entry
Jan. 26th, 2007 @ 07:33 am The Problem of Choosing a Hostname (SOLVED)

I'll try to figure this in Debian sometime, but for now, here is the Gentoo-based solution. This might break something, and it will probably be fun:

# /etc/conf.d/hostname

names="
viggo_mortenson
gopal_junior
harry_potter
pizza_box
dorito_burrito
mog
"

random_index=$(expr $RANDOM % $(echo $names | wc --words))

i=0 
for name in $names; do
  if [ $i == $random_index ]; then
    use_this_one="$name"
  fi
  i=$(expr $i + 1)
done

# Set to the hostname of this machine
HOSTNAME="$use_this_one"
About this Entry