At a glance Main Projects Tutorials Resume

Messenger


Tag Cloud



An Old Unsung Technology Hero

Fri, 5 Feb 2010 21:21:14 EST

The messed up Technogumbo live link rss feed in firefox
The more I use and become increasingly familiar with Java, the more I like it. It is such a monstrous technology that it is very hard to pick up. However, once you get familiar with the particulars it becomes an extremely lethal weapon. I have recently been spending the majority of my spare time working on network programming with Java. From first hand experience, I think it is much easier to do socket programming in Java then my favorite .NET language, C Sharp. Setting up a simple blocking-based socket server is trivial in Java. The advanced features of the New IO structure are amazing for socket programming and any IO operations once you understand what they do.

Technology media seems to neglect Sun Microsystems these days, but I have a great respect for the company. Java is a wonderful programming language, especially on the server side. Although I have to admit that it makes me a little uneasy to think that the core maintainer of a major programming language is one company. The real reason that I think Sun deserves credit is Open Office.

It makes me really uneasy that Sun is now in the hands of Oracle. That also means that MySQL is a part of Oracle as well. In the time that I have been aware of programming technology and the industry, I cant recall Sun behaving poorly as a corporate entity. It seems like they have really adhered to their own "Do No Evil" paradigm.

Maybe its time for me to get back to my C++ roots.

On an off topic note. I have switched totally to Firefox and realized that the Technogumbo rss feed does not display properly in Firefox or its live links. I think live links are really cool, so it is my prerogative to make sure the site will work with them. I have modified all the headers on the site in order to incorporate the little firefox rss icon in your address bar as well.

Comments:0

The Project Goal Black Hole

Fri, 29 Jan 2010 22:44:13 EST

The major goal note that I keep a close eye on.
The flash based telepresence rc car project was one of the most ambitious things I have done in my spare time. Consequently, it took nearly two years of nights and weekends to finish the project. The time was definitely not wasted as it provided immense electrical engineering learning opportunities. I have also gained a greater respect then ever for clearly thinking about and defining a projects goals.

While the telepresence rc car was meant to be an electrical engineering focused project, the current one I am working on is intended to be a programming project. Unfortunately something always happens as you make original products in that they seem to give birth to sub projects. This is especially true if you are like me; and are extremely nit picky about what happens behind the scenes to make the core technology work. I could have finished the electrical engineering required for the telepresence RC car project simply by putting a servo controller in the car and I perhaps would have saved a year of time.

I reluctantly had to add a core learning focus that I am not too excited about to my current major learning goals this round; which will probably add one months time to this project. My personal deadline for this one is June 1st 2010.

The current major learning goals for this project are:

1. Master practical encryption techniques for secure multimedia files/streams. Subsequently this also requires data integrity checking and re-transmission.
2. Implement the art of automatically traversing firewalls and routers allowing me to make applications that dont requite network configuration.
3. Learn how to safely implement sensors into more friendly materials.
4. I am going to have to spend significant time making a really good user interface for this one.


A moderate explanation of the first four points follows:

1. We live in a world where our lives are becoming ever more public. It is important when communicating under the assumption of privacy to actually ensure privacy. How would each of us feel if our mail were open when we got it? How would we feel if our semi-private messages to others on Facebook were suddenly made more public (Which happened with the Jan 4th 2010 privacy policy change)? It feels creepy to think of other people spying on your personal affairs. Its up to technology implementors of communication tools to implement them as properly as their laws allow them to.

2. Average consumers have no clue what a firewall even does. Most of the technology I work with requires some sort of router and firewall configuration that these people could never do. Its imperative that network applications can take care of their own network configurations.

3. Using communication technology normally means that you are using gobs of electronics housed in rigid plastic enclosures. I want to try and go the opposite direction with this one and house it inside a pillow. In doing research at JoAnn Fabrics; I am concerned about the flammability of the stuffing material I will be using. I would feel terrible if one of my prototypes caught on fire inadvertently and caused a massive amount of damage. I am going to have to figure out some how to ensure that even if it were to catch on fire that it would be self contained. This leg of the project wont come until later in the game and could take a TON of work to figure out.

4. This is the first of my huge projects that I am going to have to focus on user interface with. In the past, others have done the interface, or I knew the project was targeted toward major engineers. This one will be used by people that may not be as familiar with technology as I am. My plan is to make four initial prototypes in two pairs, so out of the gate this one will be used by others. I was bummed about having to add this one because its not something I planned on at all.

The first pair is for my June 1st date. The others wont take very long if the first pair works as planned. As you can see, the more you expand on a project the more and more time you find it taking up. As a wise passage that I read during my years in college said: "one of the few things you cant get back in life is time".

Comments:0

Java Network And Cryptography Resources

Fri, 22 Jan 2010 21:20:12 EST

Java Cryptography and TCP IP books
I first taught myself Java in my senior year of college for the GPS navigation project I did for my final project in my undergraduate degree. Since then I found a keen interest in the Red5 project which is developed entirely in Java. Since starting with Red5, I have really come to appreciate Java after overcoming its immense learning curves and complexities. I have always developed on Windows, but deployed on Linux. The power of Java and the virtual machine allows this transition of code to happen in a matter of minutes instead of hours or days. As the previous entry alludes, I have been tackling some challenges concerning encryption and socket based programming. I am doing all of this in Java due to its portability, and I wanted to provide resources for beginners that I think may help a great deal. It will help to explain what I am trying to do.

I want to transfer encrypted multimedia files over sockets securely using the best encryption technology possible. These encrypted file transfers must also incorporate features like data integrity checking and re-transfer if necessary.

If you are a slow, but curious learner like me; the absolute best thing you can do is get right into the code and get very confused. You will quickly find that encryption doesn't seem to have a lot of documentation. By far the absolute best resource I found starting out was the Avirans Place article on Assymetric encryption.

After you get into the code a bit and are familiar with the terms, the Security Now podcasts will be without a doubt the best resource you can find to explain in detail what you have just tried to implement. The following are excellent resources:

Security Now Ep 31 Symmetric Stream Ciphers
Security Now Ep 33 Symmetric Block Ciphers
Security Now Ep 34 Public Key Cryptography
Security Now Ep 35 Cryptographic Hashes
Security Now Ep 37 Crypto Series Wrap-up

After listening to all of these you will have a firm understanding of what the heck is going on.

I was having trouble with key sizes in Java and a lot of the socket examples I found online were using while loops instead of threads; which indicated to me that I needed some professional resources. I ended up purchasing "Beginning Cryptography with Java" by David Hook and "TCP/IP Sockets in Java" by Kenneth L. Calvert and Michael J. Donahoo. I have only read the intro and first chapters of both books so far. With the crypto book I was able to pick up a few tricks right away. The TCP/IP book proved less helpful in the opening entries.

Comments:0