The Art of Dumpster Diving

16 06 2008

When I woke up this morning, my first thought was “Sweet, going dumpster diving today”. After thinking about it for a little while longer, I started to get a little depressed about going, it seemed almost like a waste of time on a monday morning, there wouldn’t be anything good in the dumpsters!

Despite these thoughts, I called up Joe and we went anyways. Bright and early. 10 oclock.

Now, of course, thinking I wouldn’t find anything, I practically struck gold. After careful observation of the electronics dumpster, Joe and i managed to pull out two old Compaq servers. One 5U rack server, and one enormous tower server. Each has 5 hotswap bays which I am very excited about. Now of course, seeing as they were in the dump, neither are in working condition, but I do plan to change this. Me and Joe will be directing attention to them Wednesday evening to swap some parts here and there and see what will do.

I was very surprised to see that the tower still had all 5 hard drives in it. I believe each one is 4.5 Gb, but since the computer doesn’t turn on, I don’t know for sure. Thats just what the labels on the bays said. The drives could be bigger. We’ll see once i get it up and running. I plan on swapping out the motherboard and power supply with newer ones. and then i can use the RAID controller thats already in there and hook up all the drives. We’ll see if we can get it working.

As for the rack, I’m not quite sure what I can do with that one. It has no drives and seems to only take SCSI drives which I don’t have any of. But i have yet to fiddle with that as well.

Definitely will write more on what happens with these computers soon.

Heres pics:

http://s297.photobucket.com/albums/mm238/theanti9/?action=view&current=IMG_3529.jpg

http://s297.photobucket.com/albums/mm238/theanti9/?action=view&current=IMG_3530.jpg

http://s297.photobucket.com/albums/mm238/theanti9/?action=view&current=IMG_3531.jpg

http://s297.photobucket.com/albums/mm238/theanti9/?action=view&current=IMG_3532.jpg





C# Random String Generators

8 03 2008

Heres a little bit of code for making random strings. I’m sure someone will find it useful. I used to use it a lot in web development. Not sure how useful it would be for software development but use it if you’d like to :)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Ruf
{
public static class StringGnerator
{
public static Char[] charArray = { ‘-’, ‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘p’, ‘q’, ‘r’, ’s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘1′, ‘2′, ‘3′, ‘4′, ‘5′, ‘6′, ‘7′, ‘8′, ‘9′, ‘0′, ‘_’ };

public static string RandomStr()
{
String returns = “”;
Random r = new Random();
for (int i = 0; i < 11; i++)
{
returns += “” + charArray[(int)(r.NextDouble() + 1.0 * 38.0)];
}
return returns;
}

public static string RandomStr(int Length)
{
String returns = “”;
Random r = new Random();
for (int i = 0; i < Length; i++)
{
returns += “” + charArray[(int)(r.NextDouble() + 1.0 * 38.0)];
}
return returns;
}

public static string RandomStr(int Seed, int Length)
{
String returns = “”;
Random r = new Random(Seed);
for (int i = 0; i < Length; i++)
{
returns += “” + charArray[(int)(r.NextDouble() + 1.0 * 38.0)];
}
return returns;
}

}
}





You Know You’re A Geek When…

10 02 2008

If I could find my camera, I would have some funny pictures to go along with this. but I don’t.

You know you’re a geek when:

  • You hang fuzzy dice from computer equipment.
  • You change the entire theme of all of your computers to the current holiday.
  • The number of computers you own is greater than the number of relatives you have.
  • You have informally taken over a room in your house just for you and your computers. (this only applies to people who still live with parents. Speaking of which…)
  • You’ve graduated and still live with your parents.
  • You rearrange your computers daily to try and make them look just that much cooler.
  • You’ve reformatted a Windows machine so many times, you know the serial number by heart.
  • Your computer room more than triples your electricity bill.
  • You have more Technology/Programming books than all of the other books you’ve ever read in your entire life.
  • You have an entire room full of spare computer parts.

Well, I could go on probably but i think I’ll stop here. 95% of these apply to me. I guess I’m a geek. Who else is?





My Room Is A Disaster

7 02 2008

This is just a current update of whats going on. First off, I apologize for being gone for a while. I was in the hospital. Don’t ask, I don’t want to talk about it. Second. I am in the middle of reconstructing everything! Everything in the room is a mess. Wires all over the floor, running over everything, walking through there is like walking through a dense jungle. Tree trunks and big plants to avoid everywhere. Only the tree trunks are chairs, the big plants are lamps, and theres vines of wires all over the room. It’s ridiculed. But anyways. Here’s some pictures. I deleted all my other posts with pictures because I realized the pictures were too big and stretching the page, and I was too lazy to go back and change the sizes. So I just deleted them haha. I’ll be posting thumbs from now on that will be links to the full size picture. If the pictures aren’t working, just wait a few hours or a day or whatever and come back. That means my comp is off, or not at my house. I transport it a lot. Like now. I’m writing this from my friends house, but I’m still on my own computer….

Yes…Pics….


Oh, and this is -library- of Technical/Programming Information haha.

Yes, that is 2 shelves high…..

As you can see, everything is a mess and its ridiculous. I’m working on it though! I’ll update when its a little more orderly.





Thoughts About Distributed Computing

20 01 2008

For me, distributed and parallel computing is one of the most interesting areas in computer science that I have found so far. I would really love to do work/research with it.

Distributed and Parallel Computing, at least from how I see it, seems to be the future of computers and processing power. Processors are starting to reach towards their physical limitations. So instead of making one processor even better, why not just use several, or even hundreds.

Slowly, I’m putting together my spare parts that I have at home into more computers to use. I got two more working in the last 2 days, both of which are semi decent machines. The main thing that I want to do with them is to try to make some of my own distributed applications that will be able to spread its processes out over several computers. Right now I have 3 computers that I want to use in my distributed system, the most powerful of which will be the main computer that is in charge of assigning the tasks. the other two, which are not as powerful, but still can handle plenty, will be sent instructions that will be processed and then they will send results back to the main server.

Now seeing as the 2 secondary nodes that will be in the system do not have the same specs, I have to make sure the server pays attention to the % of their resources that are being used when it goes to assign instructions. If the slower computer has been assigned less, but is using more of its resources, the next task that needs to be processed will be sent to the other computer.

Currently both of my secondary nodes are running Windows XP. This is fine I guess, but it seems like a large waste of system resources to have to run full windows. Though I realize that there is no way in hell that I can actually do this, I would love to write my own very basic OS just to handle being a secondary node in a distributed system. A node that when it turns on, simply connects to the central server, waits for its tasks, and then executes and sends back reports. No need for hogging resources with a gui or anything. All that is particularly necessary is enough to execute instructions and send/receive data over the network. But, when you actually think about it, that would take a very long time for me to figure out how to do. I don’t know the first thing about where an operating system starts really. Maybe I could use a linux kernel and just build off of that and get rid of things that aren’t really needed. I need to do a lot of research on this one.

This seems like it has the opportunity to be extremely efficient. Just a lightweight OS meant solely for being a secondary machine in a distributed  system would be so much faster than running anything i could create as a windows application. Unfortunately, I don’t know where to begin. Maybe I will set this one aside as a very long term project, slowly do research on it, and spend the bulk of my time on other projects are already have going like Fizzure. Haven’t worked on that one in a few days. Need to get back to it. I’ve been doing some little practice applications with sending and receiving data with the TcpClient and TcpListener class in C#. Now that I think I have a much better handle on how those work, it should be much easier to get over the hurdle I was stuck on with Fizzure.

Another goal I have is to make the Fizzure central server able to be split into nodes. Have different sections of all the XML data to be searched stored on different nodes. when a query comes in, the server sends a request to each node, each node searches the part of the data that it has stored and returns its results to the server, which than returns all of the results to the client. This seems more efficient than just having it all done by one computer, though because of network bandwidth, I don’t quite know if it would be in actuality.





w00t – Great Success

9 01 2008

I know for most professional programmers and really anyone else in general it isn’t much of an accomplishment, but for me this is – I got the basic TCP connection working between the Fizzure client and server.

The server is just a lightweight console application. So far all it really does is accept connections. But for now I guess thats good enough. Today, I need to work on the XML usage of both the client and the server, and then the interaction with XML between the two. For efficiency I think I will do a lot of caching data. But I guess I need to figure out how to do that as well. I’m going to have to do a little more planning and deciding before I do too much programming.

Also though, I need to work on the GUI for the client.  I’m thinking about making it kind of skinnable. Or at least it will have different like color themes you can choose from. But eventually, I want it to be skinnable. People do seem to like that, it makes you feel like your program is just that much more personalizable.





This Is What Happens When You Don’t Plan Your Projects!

6 01 2008

Man, I am going to be completely honest with you.

I am very angry right now.

With my new project, Fizzure, I did what I always seem to do. I jumped into it. I got the idea a while ago and spent a week or so organizing some of my thoughts in my head. But that is the only place I organized them, and that was my mistake.

Once again, I got screwed over by not writing things down. I was up until about 4 A.M. last night working on this project (just because I could be) and I got stuck on an error. Which at 4 A.M, Isn’t all that unusual. But even today I couldn’t figure it out. Of course after wasting most of today on this error as well, I realized it was because almost my entire project was structured wrong and would not ever work if I continued programming the way I was.

So just like what normally happens. I have to delete a large amount of work, and almost start over. I’m sure you would be angry too! But, alas, I have no one to blame but myself. It is because I was too stubborn and lazy to write things down! But on the upside, it gives me something to do during my boring classes tomorrow. *laughs maniacally*

So a lesson I learned today about programming was to always write out some organizational thoughts about your project on paper before you start actually programming.

On the upside of things, I did figure out some useful things last night while I was working, like how to read and write XML as well as a small amount of file and directory handling – among other things. I believe I really just need to copy and paste a large amount of my code into different places. We’ll see.





First Update

5 01 2008

I’ll start off by saying Hello to all of you reading this. Hello.

Heres a little bit about what I’m working on currently:

  • Fizzure
    • Language: C#
    • Project Stage: Planning/Early Development
    • Other Involved Coders: None
    • Program Details: Fizzure is an optimized, user-friendly peer to peer file sharing client. It is meant for fast searching with advanced searching options. It includes many unique features which I will not disclose until closer to at least a beta build.
  • Surge
    • Language: C#
    • Project Stage: Alpha Testing
    • Others Involved Coders: None
    • Program Details: Surge is a community program used to measure total bandwidth usage. It keeps track of how much Up and Down flow you have, and adds it up over time (information stored on central server). You can view your profile and others online and compare numbers. Includes features like disabled network interface checking, automatic network interface switching, manual network interface switching, account creation and editing, Up Down and Total usage.

Well that is what I’m working on currently. Please leave comments and suggestions, I would love some feedback on my ideas.