Skip to content

Posts from the ‘Technology’ Category

11
Jan

Impact of the microchip on industry over the last 30 years

I recently was involved in a discussion for my current humanities class. This specific class is all about technology and how it has impacted society and culture. The instructor asked the class about what impact the microchip has made to society. I actually was rather proud of my response so I figured I would share it:

I think the microchip had a much deeper impact than that of a direct impact on society specifically. How many different things has the microchip ushered in that allowed more and more businesses to flourish and ‘pop up’ around that technology and do more and more things with it?
One thing that makes this evident is a graph of stock prices over the last 40 years:
http://stockcharts.com/charts/historical/
Look at the DJIA, see how rapidly it began to climb in the mid 80′s when Microsoft and Apple were just unveiling their products? And then another market sprung up around technology specifically: the NASDAQ. In mathematical terms you can sort of think of the NASDAQ as the technological derivative of the DJIA. The growth rate of the NASDAQ after its conception could essentially have contributed to the exponential growth of the DJIA. Sort of like how acceleration relates to velocity in terms of physics. If acceleration (NASDAQ, technology) grows linearly then velocity (DJIA, industry in general) will grow exponentially.

I’m more technically, mathematically, and physically savvy than I am business savvy so my bit at the end relating the graphs to math and physics was my way of making sense of the data :)

29
Nov

A few web host reviews

You may have noticed my tweets there on the left about web hosts. I recently experimented with a few different hosts and griped about one of them (WebFusion). First off, if anybody tells you to use http://10bestwebhost2009.com, especially via Twitter, don’t bother, its spam and a total joke. This is a site that is written/funded/created by the hosts that just want to take your money.

Anyway, here I go (I’m starting with the ‘bad’ ones first)…

1) FatCow

This company is alright if you don’t need a really fast website with tons of uptime. It would make a good personal web host, especially at the price, but I definitely don’t recommend it for business hosting. When I used them, they worked out good for a few months, then went to total crap. My database driven websites started having trouble connecting to the database back-ends and my sites were down what seemed like more than they were up. I attempted to get my remaining balance refunded but apparently there is something in their fine print that doesn’t allow this.

Pros: Cheap (don’t expect a refund if you cancel). Probably good for a static site. They offer unlimited space and bandwidth which is nice. Customer support was knowledgeable as well. They also do some cross-business promotions with Google. Their control panel is pretty good too.

Cons: Not good for business websites or ones that require database backends. Performance is terrible.

2) WebFusion

I purchased an account with WebFusion just to see what it was all about. They offer ASP.NET (Windows-based) and PHP (Linux-based) hosting on their lower-tier plans and even offer Ruby on their higher-tier plans. I went the Windows route because their Windows hosting was actually cheaper than my current Windows host so I wanted to try em out. Do NOT bother with these folks.Their customer service is terrible. I had a problem getting a database imported using their control panel, so I asked if/how I could do it with SQL Management Studio (they don’t give out the FQDN of their DB server). I’m STILL waiting for a response. And since they boast a “24/7/365” support all over their site, I figured I’d get a nice snappy response. No, I did not. Then I submitted another request to have my account canceled because they are obviously not helpful and I’m stuck until I get a response. I’m STILL waiting for a response for this one too. So they effectively took my payment, gave me a bucket, then left me out to dry. How nice.

Update: They finally responded and promptly closed my account and refunded my money. It took several days for them to do that though. They they tried to get me to release my contact details over Twitter… lol. Pathetic.

Pros: Their control panel is almost stupidly simple to use. I had trouble with it because I’m a power-user. If you’re a basic user, have at it. Their price is also very nice.

Cons: They don’t know what customer service means and if you buy a Windows plan, expect to deal with the pains of not being able to use management studio—and their web interface for the database(s) sucks. I couldn’t even import a basic schema to it because it had problems with comments in the SQL. That’s pretty bad.

3) NetFirms

Netfirms is one of the larger hosts that I’ve worked with in the past. For the price, it isn’t bad. They’ve definitely got some cheap domains, even if you don’t buy a hosting plan from them. If you buy a domain from them, you get free hosting anyway. The hosting you get for free is VERY basic and will usually host a personal website just fine. That’s actually where I ran this one for a while (back when it was static content). I quickly realized how nasty their performance was when I put WordPress on their hosting space. I got a bunch of database timeouts and whatnot. Just all around not a very good place to stick anything mission critical. Otherwise not a bad host, especially for the price.

Pros: Cheap, especially when buying a domain. Don’t have to pay a higher premium for your domain if you choose not to host with them. Even if you buy JUST a domain from them, you’ll get a little bit of hosting no matter what; but it isn’t very good hosting.

Cons: Poor performance. That’s about all I can say about them. Their control panel isn’t bad though, for a custom written one.

Now on to the good hosts…

4) HostDime

These guys rock. The price is right, though still a bit higher than your bargain basement hosts. But these guys run on great hardware and don’t use crap control panels. Their staff is pretty knowledgeable as well. I’ve been back and forth with these guys but have never had a bad experience with them at all. I’ve been with them since around 2002 or so—though I am probably going to be canceling my current hosting with them soon. Not for any performance reason or anything, I just like hosting with a few more features (namely Ruby).

Pros: Good price, awesome features, they use cPanel, fast hardware, almost always up and available, good customer support, get a lot of space, bandwidth, and databases, also has quite a few stock scripts that can be installed with a few simple clicks. Makes a good business host.

Cons: No Ruby or Ruby on Rails support :( Otherwise there are no cons.

5) Arvixe

These guys are pretty good too. The price is fair, the staff is knowledgeable, the performance is great, and I have yet to experience any pro-longed downtime (if any at all, I haven’t noticed yet). I’ve been using Arvixe to support my ASP.NET development on top of SQL Server 2008 since around June 2009. Their control panel is a .NET standard control panel for web hosts (can’t remember the name off the top of my head). They also have a Linux facet of hosting too that I haven’t experienced but if it is anything like their Windows side, it is probably pretty damn good.

Pros: Decent price, plenty of features, unlimited space and bandiwdth, good performance, standard control panel, and they let you manage your database with SQL Server Management Studio!!!!!11oneoneone. Makes a good small business host.

Cons: Haven’t really found anything worth listing. Maybe price, but you get what you pay for in the hosting business usually. If you want good stuff, you pay a little more than basement prices.

6) Site5

I could spend the rest of my life with this host, unless they REALLY screw up. I’ve been with them since November 2009 and have no complaints at all. They’ll host practically anything that can run on Linux including Perl/CGI, PHP, Ruby (+Rails), and even SSH!!! The price is pretty good too and I have no quarrels about performance. I moved from HostDime to Site5 ONLY because of the Ruby and Rails hosting. Plus the SSH access to my account gives me a lot of control over what I can do with it. Their control panel (the non-Backstage one) doesn’t LOOK like cPanel, but it is definitely cPanel. It takes a little getting used to but it isn’t too hard if you’re a cPanel user.

Pros: Fast, very smart and friendly staff, great performance, SSH access, Ruby hosting, they’ll host about anything under the sun, and the price isn’t too bad.

Cons: None.

30
Aug

wpToGo is freakin sweet!

If you feel compelled to blog from your Android-based phone, take a look at wpToGo grom the Android market place. It is a free app that uses xml-rpc to post directly to Word Press blogs that have it enabled. It is pretty neat, I’m using it right now.

22
Jun

1 little 2 little 3 little endians… er wait, is it 3 little 2 little 1 little endians?

Well, it depends on what encoding you’re using.

Lately I’ve been in “endian-ness” hell on a project I’m working on. Well, not really a “hell”, more of a hurdle that can easily be overcome. A friend of mine recently asked me the difference between the two binary encoding strategies and when I went to explain it to him (via cell phone txt messaging) I quickly realized that I will run up both our bills pretty quickly by doing so. So here’s the quick rundown, and an example as it applies to the project I am working on.

Big Endian means that value is stored “from left to right”. The most significant values (bytes) are stored in memory with the lowest address first. This is probably what many people are familiar with, especially those in the networking field.  Here’s an example of data stored as Big Endian:

Take for instance the 2-byte value 1325, equivalent to a short or unsigned short. Stored in Big Endian encoding, the value would look like this in binary: 00000101 00101101. Makes sense right?

Now here is the same 2-byte value, 1325, in Little Endian encoding: 00101101 00000101. The bytes are flipped and thus to make any sense of it, you must read the last set of bits first.

So for simplicity’s sake, Big Endian values are stored like so:

<byte1> <byte2> <byte3> <byte4> ... <byten>

Little Endian values are stored like so:

<byten> ... <byte4> <byte3> <byte2> <byte1>

Network devices use Big Endian, it is considered the network standard, or “network encoding”. Endian-ness varies from CPU to CPU depending on its architecture. Power Macs use Big Endian, network devices use Big Endian. Intel PC’s (and Intel Macs) use Little Endian. What does that mean? Well, it means that if a program running on a Power Mac sends data to a PC, the PC may not understand it correctly without some type of encoding change taking place.

In my situation, I’m reading a series of values off of the network, all coming in via a byte stream. So the client will send the following packet for example:

4 bytes, 2 bytes, 1 byte, … and some others but I won’t get into them

So when I read the first four bytes off the network (which uses Big Endian encoding, remember?) I must flip the entire set of 4 bytes before my Little Endian PC can understand it.  Same goes for the next 2 bytes. The single byte obviously doesn’t need to be flipped with anything, it stands alone. So an incoming set of data may look like:

0x1A 0x2B 0x3C 0x4D 0x2A 0x2B 0xAD

Now I must flip each set of values byte by byte (but not invert the entire thing; this is a packet, containing multiple values).

In Little Endian, the same set of data reads:

0x4D 0x3C 0x2B 0x1A 0x2B 0x2A 0xAD

Confused yet? You’ll figure it out. Here’s some reading that should help: http://en.wikipedia.org/wiki/Endianness. It even gets into the origins of the word, which is pretty interesting. Here’s a little tool that may help you understand the pattern: http://dlnova.com/reverseendian.htm

26
Feb

Fixing the MozyHome "FilesystemError3" message

So if you’re like me, and you’re paranoid about data loss, you’re probably using something to back up your data. Whether that something be Ghost, Carbonite, Iron Mountain, or simple file copies, you are always making sure you’re data is protected one way or another. Now, I personally use a combination of things. I use Norton Ghost to do full drive images every other day and copy them out to an external hard drive. I also use MozyHome for my most important files (financial data, some source code, school work, etc.). 

If you use MozyHome, and have ever seen this message for an un-explained reason, keep reading:
 mozy-filesystemerror3

This error, according to Mozy support, means that the temporary location for caching the backups is full. Now, that may be the case for a lot of users, but it wasn’t for me. You see, Mozy is SUPPOSED to use the Windows environment variables to determine where to store its temp files (See the %TEMP% variable). In my case, this variable is set to %SystemRootTemp which is C:WindowsTemp. Where was MozyHome storing its cache? Try G:TEMP. I couldn’t figure out why this is the case, but now that I know, I’ll be sure not to delete it.

So before I realized all of this, I did a little “house cleaning” a few days ago and G:TEMP happened to be one of the directories which I removed completely. Then today I figured, maybe I should make sure my files are backed up (because I like getting warm and fuzzy feelings). So I look and sure enough, they weren’t. I did some hunting into this error and discovered all of the above mentioned information. 

I have since sent a response to MozyHome’s KB article on this error message explaining that this error can crop up if there is plenty of space, but the TEMP directory is simply missing. I then proceeded to jab them with a stick by saying that their backup software was completely ignoring Windows environment variables. Then again when I told them “Why not just create the temp directory if it doesn’t exist?” They shouldn’t be making their software complain about free space when that has nothing to do with what is going on. It is a very misleading error and they need to fix it. This error sort of seems like a “cach-all”.

8
Feb

Amazon EC2 and S3

So I’ve been toying around with Amazon’s web services lately. Amazon offers a lot of incredibly beneficial services that you can purchase on a pay-as-you-go basis. Specifically, I’ve been using EC2 and S3 which sort of go hand-in-hand if you built your own Amazon Machine Images (AMIs). Over at the Venom Game Labs website, I made a post about how we started using Amazon EC2 to host Angel. I’m really impressed at the performance of these virtual machines–which are Xen-based on (I beleive) a Red Hat Linux distribution. I built a few Fedora 8 machines and a Windows 2003 R2 Datacenter machine as well. All of which performed nicely.

If you’re looking for a test server for your application and don’t have any hardware laying around your house, I highly recommend Amazon EC2. It takes a bit to get used to at first, but once you get the hang of it, it’s easy going. 

A tip for newbies: If you ever hit the “Terminate” button on one of your instances, you lose all your stuff. Don’t hit that button unless you have built your own custom AMI or have your data backed up somewhere else. For the purposes of Angel, I started with two base Fedora 8 machines and built one as an Apache HTTP server and the other as a MySQL 5.1 server. Then I built a Windows 2003 R2 Datacenter machine to run the web-services portion of Angel (since its written in C#). Once I had them the way I wanted, I bundled them up into AMI’s and then terminated my instances so I’m not paying for resources I’m not actively using. When I need them again, I can just deploy from the AMI, change a few settings–mainly with IP addresses and database connection addresses–and I’m up and running again in a matter of minutes without needing to re-install my software and restore my data.

Some useful articles (from Amazon’s documentation):

31
Jan

BOINC is freakin cool

Incase you don’t know what BOINC is, it is a grid computing client for tons of different OS’s. It runs projects like SETI@home, MilkyWay@home, and LHC@home.

Check it out here:
http://boinc.berkeley.edu/

Projects I’m contributing my idle CPU cycles to are: LHC@home (whenever any work arrives), rosetta@home, SETI@home, and Docking@home.

I’m faily impressed with BOINC because you can run multiple projects through the same client. And even more, it won’t destroy your CPU. Yes, your CPU will run at 100% all the time, but BOINC runs low-priority so it won’t interfere with your computing experience when you need it.

Also, BOINC has a GPU client if you’re hell-bent on speed. It works for any CUDA enabled nVidia GPU’s.

I suggest you contribute. :)

Get Adobe Flash playerPlugin by wpburn.com wordpress themes