« December 2005 | Main | February 2006 »

January 31, 2006

Free Energy : 2

So I was thinking about the article I blogged about earlier and something is just sticking in my head.

By cementing a copper disc on top of a cylinder magnet, and rotating the magnet and disc together, Faraday created an electrical potential. After pondering this phenomenon for many years, he concluded that when a magnet is rotated, its magnetic field remains stationary. Thus, he reasoned, the metal of the magnet moves through its own field, and the relative motion is translated into electrical potential.

So I think it's generally accepted that the Earth is polarized, does this imply that the Earth is a magnet? If so then as the Earth rotates it's magnetic field is stationary and free energy is constantly being drawn from space at a planetary level. If that is the case then how is it we can't tap the energy that is freely available from the Earth's rotation? Hmm, I think something just broke.

Posted by Guy at 8:32 PM | Permalink

January 30, 2006

Free Energy

I just read an article [mufor.org] on the N machine referenced from digg and all I can really say is wow, wouldn't this be cool if it were real. It seems that the US S&Es (Scientists and Engineers) are discouraged to the point of apathy. I mean why wouldn't free energy be on the top of everyone's list of things to understand? Oh the finger pointing games we play.

Posted by Guy at 8:34 PM | Permalink

January 29, 2006

Google dot cn

Google in China has gotten a lot of press lately. It seems that everyone is up in arms about them censoring the results they display to their users. However, I heard that they do say when something has been censored so it's not like they're changing the truth or presenting a false reality, right? I think that Google's algorithms and site designs have helped much more than they've hurt and just the capability that they provide has changed the way business is done.

So now I hear that the US government might step in and slap Google on the wrist for it's foreign practices. This makes as much sense as Sweden slapping Volvo's hand for cowing to the US' emission laws on their US products. Hmm, that doesn't make sense...Oh right, the US government.

Posted by Guy at 8:45 PM | Permalink

January 27, 2006

PSOne LCD : 2

Stupid me for just reading the original bit-tech article, which was a rip-off of Starfox's original article. If I had been smart enough to read the comments by Starfox himself I would have noticed that DCC is not, in fact, optional. DCC is needed to turn the display on, obviously not optional.

The original correct article can be found here [ucc.asn.au].

Posted by Guy at 9:48 PM | Permalink

January 25, 2006

Portable Desktop

I guess I should write a small blurb on just what Codename:Hydrogen is, so here you go. Hydrogen is a cross between all the portable apps that are out there and Portable CE [furrygoat.com]. The concept is that Hydrogen is a portable desktop or virtual machine that you can take with you anywhere on some form of portable storage, i.e. flash drive, USB hard drive, etc.

What this brings to the table is a truly portable computing experience that doesn't rely on USB booting or running resource-intensive virtual machines. Also, it will have an encrypted virtual file system so even if it gets lost your data is reasonably well protected.

Why I thought I should make this announcement now is because eyeOS [eyeos.org] is getting some attention right now and I'm just waiting for some genius to put two and two together and say why can't I run eyeOS under Portable Firefox [portableapps.com]? Well, you probably can, but I think the capabilities are limited since eyeOS doesn't own the container [gadgetopia.com].

Posted by Guy at 3:59 PM | Permalink

January 24, 2006

Java Socket Exceptions

I was playing around with a proxy server of my own, in Java of course, when I started getting the following exception: java.net.SocketException. The reason? Connection reset (sometimes 'by peer'). What the hell?

Just for giggles I tried the app on multiple machines on my LAN with the same results on all. Then I tried it on a different LAN, but with Verizon DSL (same as me) to see if it was my equipment. Long story short, I think it was my equipment.

The HTTP 1.1 spec (RFC 2616 [rfc.net]) states that all HTTP 1.1 servers should be able to accept absolute URIs, right? For the answer see section 5.1.2, so that's what I was passing to each host. And there was no end to the damned 'Connection reset' messages. I thought maybe it was my firewall, nope. I thought I was passing malformed headers, nope.

Then I started playing around with my request line, changing the URI and HTTP versions. Things started happening then and I was able to determine that it was because of the absolute URI handling I was getting those messages. So, like I said, I think that my problem is with my equipment, specifically my router. I have a sneaking suspicion that my router is examining HTTP requests when it NATs things and if it doesn't recognize the request as valid it will just drop the connection.

More investigation needs to be done.

Posted by Guy at 1:25 AM | Permalink

January 23, 2006

More Valentine's Day

After yesterday's post about custom printed M&Ms I thought I would shed some light on additional Valentine's Day stuff. Yes, I know Valentine's Day was invented by Hallmark as something between Easter and Christmas, but that doesn't stop our Significant Others (SO) from buying into it. That being said I thought I would begin a series of posts that elucidate what I've done in the past to help some of the less romantically inclined.

Don't get me wrong, I'm no Casanova, but I've been able to hold my own when it comes to certain things and Valentine's Day is one of them. Last year my SO and I were in the Turks and Caicos for my cousin's wedding so that right there counted for something. No, not much because it didn't circle around my SO, but the nice weather and all-inclusiveness did help. Being that I dropped a lot of cash on the trip I was able to get away with taking her out for a nice dinner and some small gifts.

The gift, however small it is, is kind of important. It can be something you make or buy, this is usually the one time when you can get away with making something. If that's not your style (it's not mine) then you can always pick something small up that let's your SO know that you were thinking of them. Last year it was candles [lunacandle.com] from Lunacandle (no relation to this site). They were small, not very expensive and something out of the ordinary.

That's another tip, try and get something out of the ordinary. Take the candles for example, I could have bought a Yankee Candle, but I found something that I thought she would think was cool. I put some effort into telling her that I loved her. So, in summary:

  1. Gift (bought or made)
  2. Dinner
  3. Out of the ordinary

Posted by Guy at 3:23 PM | Permalink

January 22, 2006

V-Day '06 Style

Want to spice up Valentine's Day this year? I just ordered some custom printed M&Ms [mms.com] that will, with any luck, make for a happy V-Day. The only drawback is that you have to order at least 4 8 oz. packages at $9.50 USD each. I think my order (with shipping) came out to $48 USD. Other than that it's an excellent idea for you sweetheart!

Posted by Guy at 11:00 AM | Permalink

January 21, 2006

GoDaddy Funniness

For the uninitiated GoDaddy.com is a domain name registrar who is known for their extremely funny Super Bowl commnercials. It turns out they're having some trouble [bobparsons.com] getting a commercial approved fo rthis year's Super Bowl. The best part of the article? At the end is a link to GoDaddy's commercials that you can view!

Hilarious!

Posted by Guy at 7:36 PM | Permalink

January 19, 2006

MySpace Crazies

Where do these people [myspace.com] come from? Did that say San Francisco? Okay, I get it.

Posted by Guy at 6:00 PM | Permalink

January 18, 2006

Nerd (or Geek) Test

I found this reference [gadgetopia.com] to a Computer Geek Quiz over on Gadgetopia and scored 97%. Check out my uber-geekiness in the sidebar!

Posted by Guy at 8:39 PM | Permalink

ted

I ran across ted [rulecam.net] today on digg and I think it's a great concept. I guess that it searches torrentspy with some keywords and regexes on the results, but I think something even more useful would be for the various release groups (VTV, PDTV, etc.) to submit their releases to a database detailing what the release actually was.

Posted by Guy at 1:17 PM | Permalink

January 17, 2006

Required Maintenance

My Pathfinder was making some noise last month, kind of a rattling. I had thought it was the last piece of heat shielding that I just couldn't get rid of, so, no problem, I'll just take it to Midas and get them to remove it. Well no, they tell me that it's actually my muffler and it needs to be replaced. Okay, it's old and I've spent a couple winters in a high-salt area, I can float the $300 for a new muffler.

No, actually it's closer to $700 because I actually have 2 mufflers (one's a resonator) and some gaskets. Hold on a minute, $700 because one of my mufflers is "broken". I said I'd think about it and get back to them.

When I got home I checked it out myself and it turns out that the muffler had heat shielding on it too! It was on there pretty well, so I couldn't remove the heat shielding on the muffler without really break the muffler, so I did what most red-blooded Americans do, Google.

Thank goodness I found an About.com article [about.com] describing just this problem. I was able to go to Home Depot to get some hose clamps and tie that bad boy down. Worked like a charm and I was able to save myself about $695!

Posted by Guy at 7:16 PM | Permalink

January 16, 2006

Genetic Engineering to Synthetic Biology

Funny, but I've always consideredgenetic engineering the process of assembling genes (or engineering them) to form something else. You know, the whole scientist vs. engineer thing. Apparently I'm wrong because in this article [msn.com] what I thought genetic engineering was is now called synthetic biology. Those crazy biologists!

It seems crazy that the whole synthetic biology thing is mostly trial-and-error, I thought we were a little bit beyond that in certain fields, genetics being one of them. I look at the whole DNA/gene/chromosome knot as a heirarchical composition of increasing complexity. What does that mean? It means that once you understand the relationships between the different levels in the hierarchy synthetic biology just becomes an abstract form of assembling and programming. For example, genes are an assemblage of DNA pairs in the same way that a function is an assembly of simpler instructions. Given this notation you can consider DNA nothing more than simple instructions for the processor of life.

They need more computer scientists, computer engineers and reverse engineers working on these projects.

Posted by Guy at 7:03 AM | Permalink

January 15, 2006

Old School Gaming

Over at digg.com I found a story [digg.com] about old school gaming and new technology. It was quite thought provacative considering I'm part of the generation directly addressed by this story, I have the Zelda memories and remembrances of some friends and me actually crowding around Mike Tyson's Punch Out.

What did I get out of this? In the coming years we'll see a throwback to classic gaming with indy games, while being able to take advantage of newer technologies, will opt to design and implement their games utilizing older games as templates. For example. the Final Fantasy series 1-6 was some of the best gaming I have ever experienced. I see some of the indy games today that try and duplicate the FF feel of things, but I think they get too involved with new technologies, i.e. isometric tiling, networked gaming, etc.

Posted by Guy at 9:05 PM | Permalink

An Age Old Question

After reading this blog [tekmonkey.org] about Scientist vs. Engineer I was reminded of when I first was looking at colleges. Did I want to be a scientist or an engineer? What was the difference? No one could explain to me the differences to my satisfaction so I decided engineering because I akined engineers to the people who designed and built things people use whereas scientists performed abstract thinking that could one day effect people's lives.

Posted by Guy at 4:38 PM | Permalink

January 12, 2006

RSSOwl

I just checked out RSSOwl [rssowl.org] and all I have to say is Holy Freaking Cow!

I love the Eclipse Rich Client Platform [eclipse.org].

Posted by Guy at 3:19 PM | Permalink

Crossblogging Blues

I wanted to start an additional blog for my various software and hardware projects, but I also wanted this blog to contain some of the entries I made on the new blog. Seems simple enough, especially since both blogs are contained within the same Movable Type (MT) system, right? Well, turns out there's no built-in mechanism for cross-posting entries (aka crossblogging). I found the CrossBlog plugin [sixapart.com], but I'm not sure this is what I'm looking for. I guess I just might have to see how hard building a plugin for MT will be.

Posted by Guy at 10:05 AM | Permalink

January 11, 2006

WebCleaner Proxy

As some of you know I've been searching for a good "personal" proxy that would filter the web for me (removing advertisements, etc.). So far I've analyzed

  • Squid
  • and AnalogX

Of the both of them only Squid performed the filtering functions, but administration was complex and CPU usage sometimes spiked.

The latest proxy that I tested was WebCleaner [sourceforge.net]. At first I had some trouble just installing it, turns out that it depends on Python 2.4 (had it installed) and the Python win32 extensions (didn't know I needed it). After all the dependencies were installed everything was peachy-keen.

The web interface was phenomenal and allowed a plethora of configuration options. It was truly impressive! I then fired up SwitchProxy for FireFox and entered in the info. And after some testing I'm sad to say that it just didn't quite work that well for me.

Specifically, it failed when I was opening lot's of pages at the same time. What I'll do is open an entire FireFox bookmark folder in tabs at one time. This creates a lot of simultaneous connections all hitting the proxy at the same time. I think WebCleaner just couldn't handle that many connections becuase I got proxy connection errors from FireFox, something to the effect of "Proxy refused connection".

The search continues.

Posted by Guy at 6:42 PM | Permalink

January 10, 2006

Digg

I've seen links for Digg [digg.com] all over the place lately so I finally checked it out. Holy crap! I like it, I like it alot. Now if only there was a way to automatically submit stuff to digg instead of redirecting people to a submission page [digg.com].

Posted by Guy at 7:37 PM | Permalink

January 9, 2006

Quality over Quantity

The Philadelphia Inquirer had an interesting piece [philly.com] on the comparison of China's, India's and the US' graduating engineers. The first quote that jumped out at me was:


The Duke engineering-student study, led by executive-in-residence Vivek Wadhwa and sociology professor Gary Gereffi, performed a detailed analysis of the kinds of "engineers" counted in the numbers from India, and they found that in addition to four-year baccalaureate degrees, these numbers contain a significant number of three-year, sub-baccalaureate degrees.

So my painful five-year degree is commensurate with a three-year degree in technology? Hmm, makes me wonder... The next quote is even more funny:

The researchers were not able to verify the same detailed breakdown for students graduating from Chinese universities. According to the Chinese Ministry of Education, however, any bachelor's degree or "short-cycle" degree with "engineering" in its title is counted, regardless of the degree's field, or academic rigor associated with it.

Okay, so now my five-year degree in computer engineering counts the same as a three-year degree in basket engineering. I love how other countries graduation numbers can be misrepresented to make the US look bad and feed the FUD [wikipedia.org].

Posted by Guy at 7:45 PM | Permalink

January 8, 2006

Hibernate Entity Map

I had the simple task of analyzing one of my customer's Hibernate [hibernate.org] implementation, at least it sounded simple. I figured a good first step was to generate a graph of all the entities within to see the relationships and interdependencies. What was given to me was the Hibernate mappings (*.hbm.xml files) and the root hibernate configuration file (hibernate.cfg.xml). Now how can I visualize all this?

Read more after the jump.

First I tried Linguine Maps [softwaresecretweapons.com], but that didn't work for me beacuase I had something like 20 mapping files that all related to each other. Finally I settled on a combination of tools to generate different types of graphs. First, I installed Hibernate Tools for Eclipse [hibernate.org] and used this to generate the Java source files representing the mappings. Then I imported these into Poseidon for UML [gentleware.com] and generated a class diagram displaying everything. This was okay, but the diagram was a little cluttered.

My second method was to recreate the Schema in my test database from the mappings and use DBVisualizer [dbvisualizer.com] to check everything out that way. I tried using a MySQL backend first, but that didn't let Hibernate specify foreign keys for some reason. After that I switched to Oracle and let Hibernate do it's thing. Firing up DBVisualizer let me see all the tables and their relationships in a cleaner graph than Poseidon gave me. It also allowed me to choose different graph styles (Organic, Orthoganol, Hierarchical, etc.) that gave me a really good view of how things were layed out and their dependencies.

Posted by Guy at 7:39 PM | Permalink

January 7, 2006

H-1B

Gee, ya think? <sarcasm>I guess I just didn't realize it was such a big problem</sarcasm>

EETimes for the story [eetimes.com].

Posted by Guy at 10:38 AM | Permalink

January 5, 2006

Hyper-warpa-what?

I first noticed this article [scotsman.com] over on Slashdot today [slashdot.org], which describes a controversial propulsion system, the mythical "hyperspace" engine. I definitely agree with the scientist running the program that if this hypothetical engine is truly possible it will require a rewrite of lots of physics, expecially since part of it's theory of operation depends on another dimension where the speed of light is greater than in our own. Wait a minute, I think I just read another, er, article [amazon.com], yeah article, on this. Okay, surprise me, but when the aliens show up to assimilate us I'l be hiding in my nuclear bunker [timesonline.co.uk].

Posted by Guy at 8:48 PM | Permalink

Drupal Event Module

As cool as it is to have an event calendar on one's website I just can't stand the inflexibility of the drupal event module [drupal.org]! I think it would be okay if there were just a few more configurable options, namely header generation and timezone handling.

Header generation is easy, I just want the ability to configure the module to display days as letters instead of the 3-letter day format. Of course this would need to be even more configurable because I would want it to behave differently in block mode than it did in page mode. That's something easy I think I can add myself. The timezone handling is a totally different animal.

There are a couple of options for timezones already that are sufficient for basic usage, but what really annoys me is that the current day is always displayed as GMT. For example, when the day changes in GMT the new day is highlighted on the calendar. What I want it to do is allow me to specify which timezone to use for calculating the current day. I'm no php code monkey, but I think I can get this fixed too.

Did I just say I was going to write patches? Uh-oh.

Posted by Guy at 5:19 PM | Permalink

January 4, 2006

Overriding Java Classes: Part 2

I was right about haveing to use some bytecode engineering to override classes. I ended up using Apache's BCEL, which allowed me to load up a class from an InputStream, modify it, then dump the bytes for the ClassLoader to load up. It was suprisingly easy, I just had to iterate through the ConstantPool of the class and replace and instances of "java.io.File" and "java/io/File" with my override. However, I think there is a catch that I need to account for, external (or worse, user-entered data) ConstantPools and Java Reflection. Using BCEL I can catch any references for java.io.File, but I can't stop a user from trying to Class.forName("java.io.File") where the String ("java.io.File") is generated at run-time, aka after class loading. So, 90% solution, not bad.

Posted by Guy at 8:07 PM | Permalink

January 3, 2006

Overriding Java Classes

It started simple enough, I wanted to override a default Java class (one that is contained within the java.* package) to provide enhanced functionality without clients having to rewrite their code. Could I have supplied my classepath in the -Xbootclasspath java parameter? No because I just overrode some classes, not reimplemented them. For example, I wanted to override java.io.File, which is dependent on native code. Since I didn't want to reimplement this native code I couldn't just provide another implementation of java.io.File, but needed to extend it and override the methods I wanted to change.

So what mechanism gives you the power to dictate which classes are loaded given a specific class name? That's right, the ClassLoader. All I would have to do is implement my own ClassLoader that would detect when java.io.File was being loaded and then load and return my own implementation. I figured this would work because my class extended java.io.File so it should virtually look like java.io.File and be castable to java.io.File. Unfortunately I received a ClassCirularityError when I tried this method.

As best I can determine, the ClassCircularityError happened because I tried to define my own class and maskerade it as java.io.File which made it look like my class was its own parent.

Another error I ran into was in defining the class. Once I had my class bytes loaded I tried to define my class as java.io.File. Unfortunately the Java ClassLoader that performs the actual definition (some native code) will not allow you to define a class within the java.* package (java.io.File, java.foo.bar, etc).

I think the only way to do what I want is to do some Byte Code Engineering [apache.org].

Posted by Guy at 1:20 PM | Permalink

January 1, 2006

PSOne LCD

I finally got my PSOne LCD in the mail yesterday and look forward to ripping it apart and modding a VGA adapter onto it. Luckily I've run into a couple [bit-tech.net] of [ucc.asn.au] articles [rudyatek.com] on exactly how this is done. The bit-tech forums [bit-tech.net] are also a treasure trove of information for all sorts of questions.

Posted by Guy at 11:15 PM | Permalink