Sunday, July 27, 2008

It's On Now, Bitches!



This is only the beginning. From this photo, we're much farther along than this today. We should be open for business next weekend; I'm shooting for Saturday, August 2.

Monday, July 21, 2008

Rehberg Technology, Inc.

Let's see... what did I get done today?

I woke up, worked in the shop several hours, came home, drank some beer, ate dinner, posted to a class forum, and then I formed a corporation.

Who thought it would be that easy? Just a quick web form and $100, and I have myself a business entity. Rehberg Technology, Inc. is as of right now Georgia's newest corporation, and I couldn't be more proud for them to name me as the CEO.

Which reminds me - I have to stop by the paper and give them $40 and the instructions for the press release (notice of incorporation).

It's late now and I'm spent. I formed a whole company, for chrissake! Good night.

Friday, June 27, 2008

Mr. Dvorak, You Are Wrong Again.

He thinks that Internet access should be metered, just like the power and water. You pay for what you use. His argument is rational, I'll admit, but it is not inclusive of every use.

I'm writing in a hurry because I really want to discuss this, but Beth won't let me take a computer this weekend to Florida. I'll put the link here so you can take a look, and I will discuss this at length at a later time. I'm shutting down now.

Tuesday, June 24, 2008

Changed My Mind About iPod Touch

I saw an ad on Gmail from Amazon, pushing the iPod Touch at a discount. 9% off the 32GB, bringing it down to $460 or so. I wanted to look at it again, so I went to the Apple store and watched the videos. Some of the features are great, but they're just not worth $460. For instance, any PDA these days can play music and videos, and most of them in that price range are equipped with Bluetooth. The iPhone with a contract has Internet access everywhere. Not so with the iPod.

No Bluetooth, WiFi only, no GPS (seriously, how hard would that be?), no replaceable battery, and it's $500. It just doesn't make sense. I'm going to wait for a multi-touch enabled Open Handset sporting Android. From the emulator that comes with the SDK, I expect to have everything that could possibly be crammed into a handheld device at my disposal. Bluetooth, WiFi, 3G, GPS, accelerometer, multi-touch, and possibly a keyboard. All on an open platform for which the API is very open. Sure, I won't have 32GB of storage, but I will be able to use any wireless carrier, use Bluetooth headphones, and write an application that does whatever I want it to, without anyone stopping me.

Saturday, June 21, 2008

On Management

I was fumbling through my business card holder just now, and discovered again a card I really appreciated when I got it. Some guy was installing a new Cisco firewall in one of my offices last year and I questioned him about his work. He gave me the usual, watered-down "it's a job" kind of thing, and gave me his card should I wish to seek employment alongside him.

This guy, Jeff (not important), worked for a company called Coleman Technologies, Inc. and it was apparently owned by Jeff Coleman (not the fellow on the front of the card). On the back was a pretty straightforward approach to leading. It was a list of 30 little statements, called Jeff Coleman's Laws. They are as follows:
  1. No one is smart enough to be a dictator.
  2. The only real power one has is the power of persuasion.
  3. The less you know about something, the simpler it seems.
  4. Important decisions require at least one night's sleep.
  5. Decisions made without all the facts are guesses.
  6. The most important thing a manager does is people picking.
  7. Lies are hard to remember.
  8. There is nothing more critical to true success than openness, honesty, and integrity.
  9. Those that don't solicit and listen to advice are destined to be unsuccessful.
  10. What is given cannot be taken away.
  11. Meddling after responsibility is delegated and accepted, provides a built-in excuse for failure.
  12. Unwritten agreements are soon forgotten.
  13. Time is not a good decision-maker.
  14. You must look successful to be successful.
  15. Cash flow is more important than profit.
  16. Grow or die.
  17. The only people not making mistakes are those not doing anything.
  18. Don't bite off more than you can bite off.
  19. The most important and most difficult trait to identify is the ability to get things done.
  20. A manager with a full calendar every day isn't delegating properly.
  21. A full day spent in meetings is 40% wasted.
  22. A pat on the back is the ultimate in cost effectiveness.
  23. A manager that takes the credit for the work of the troops should be made a member of the troops.
  24. A manager unwilling to take risks is destined for mediocrity.
  25. Twenty percent of the people do eighty percent of the work.
  26. People that feel comfortable in their job are more productive.
  27. All contracts end.
  28. The prepared bird gets the worm.
  29. An unfilled position is better than one filled by the wrong person.
  30. The killer of the bearer of bad news quickly joins the ranks of the uninformed.
After two minutes of clicking, I discovered that this is available at the Coleman Technologies website.

I realize that the phrases in this list are not original, but this is a great collection. I am now all out of motivation. Goodnight.

Wednesday, June 18, 2008

The iPhone Didn't Do It for Me

I'm surprised at Apple. Usually when something really groundbreaking comes out, the price of the item I've had my eye on drops into my range. In my case, it's been the 32GB iPod Touch for several months. I was glad to hear about the iPhone 3G, and even happier that the price of that was $199.* Almost two weeks later, the 32GB iPod is still $499. Why?

Is it that the price of the new iPhone is so low that Apple can't reduce the price of the iPod? Are there so many people dropping $500 bills on the biggest Touch that they don't worry about lowering that number?

Or is it just that the iPhone 3G is not that groundbreaking? I have a few reasons that might be the case:
  1. Hundreds of thousands of people already have the pokey iPhone, and it's good enough for e-mail, so why change?
  2. Solutions were built to make the first iPhone work for their business, so there really is no need to update to a new device that supports MS Exchange natively. It would make the recent infrastructure change a big waste of money.
  3. They are late adopters, and only six months into the first two-year contract on the old iPhone. They simply can't afford to upgrade to a new device.
  4. It wasn't impressive enough the first time to waste money on it again.
  5. We're all waiting for Android on Open Handsets.
In any case, I'm still not buying the Touch until the price goes down. It will only take time, or the release of a 64GB or 128GB Touch. Fine with me. As soon as it hits $300 for the 32GB, I'm in. But I'm definitely not buying an iPhone.

*Price is $199 with a 2-year contract with AT&T wireless, the very worst wireless carrier in terms of customer service. Good luck if you think the $199 tag is worth it.

Tuesday, June 17, 2008

Firefox 3 Download Day

Download Day 2008
Even though I have two irregular readers, I'll tell them about this. Today is Firefox 3 Download Day, but the site doesn't have a link to download version 3 right now. It's 9:30 on the East Coast of the United States, so I would imagine the day has begun for most of the world.
Check back soon today and download Firefox 3. I'll be checking throughout the day and will update this post when I see they have provided a good link. Seems like they're wasting time today if they want to set a record.

Update: Looks like the downloading starts at 10AM PDT (that's California time), so my friend in Arizona (not McCain) can download starting at 11AM his time. 12 noon for Scott, and 1300 hours for me. The download day will then run for 24 hours, so you people have plenty of time to get it to all of your computers.

Update 2: It's 6:50AM on 6/18/2008, and download day is still going. Five more hours!

Monday, June 16, 2008

One Tell-Tale Sign You Might Be Getting Older

I went to my favorite Otolaryngologist today because I was feeling down and I couldn't breathe through my nose. He ended up prescribing so many pills that I had to buy this thing.

This, plus two nasal sprays.
Not much else to report today. I am, however, already feeling better.


Thursday, June 12, 2008

The Glider

I guess I'm not as big a geek as I thought. I've never heard of the game of Life they speak of, but now I will explore it. Well, later. Right now I want to talk about a great article I read last night on How to Become a Hacker. I never thought I'd come across something like that, for real hacking is just that - hacking. Whatever art or science it is, if you're really good at it and are able to build things and solve problems, you are a hacker. A passion for such things is usually apparent in the person, too.

On to my subject, and a link. The first result from Google for 'amortization schedule' for years has always returned this one at FSU. I took a look at the fellow who wrote it and found thishacker emblem symbol on his page. It turned out to be a link and in that link were the words "hacker emblem." I had to look.

Apparently there is a following of people who use this emblem to mark themselves in this way, but according to the emblem guide it doesn't mark them as hackers; it only shows that they support the hacker culture. Fine with me. I'd rather not boast that I am a hacker, because if I'm the only one calling Ben Rehberg a hacker I obviously haven't proven to anyone else that I have the skills.

That said, I do support passionate homemade engineering, as I like to call it, so I will display the emblem on this site too. Come to think of it, I could put it on all the sites I own.


Tuesday, June 10, 2008

Not Dead Yet

The Web Crawler project is not dead. I'm fumbling computer hardware and software right now and making my best attempt at keeping up with school. Oh, and I have a job.

I have started hosting the project on Google's servers so that other programmers may join me in this. I haven't allowed access by anyone yet as I may not want help. The code, however, is available there (I think). Try looking at the rehbergwebindexer project if you wish. I don't think there is even any code in the source file yet; just commenting.

Consolidation

I'm sitting here this evening with a MacBook that has slowed to a crawl. It further delays my inevitable completion of a school project (fine with me), but I really just want to finish what I'm doing (not the school project) and go to bed.

It's not the MacBook. It's the parasite I installed on it.

For the past month, I've been juggling the Vista desktop I use at home for development, the Vista notebook I use for school, the Windows XP tablet that I have for my day job, and this wonderful MacBook that doesn't have many applications I actually use to produce things. It's cool to blog with it, chat, and play with the camera, but it's really just eye-candy. I can't do schoolwork with it (they require Office 2K7 documents), I can't find an FTP program for it, and I really can't figure out how to edit raw text - a very important feature I need to edit HTML and do programming.

To combat my two-computer dining room table, I installed Windows (the aforementioned parasite) on the MacBook using VMWare's VMFusion. It's a wonderful piece of software and it is very similar to Parallels, only cheaper ($40 vs. $80). I installed the trial of VMFusion, and an old copy of Windows XP. It has effectively slowed my MacBook to where it takes a full eight seconds to open a new tab in Firefox. It's working really hard right now on installing SP3, and I'm sure a slew of updates are in store after that is finished. It has Office 2007 and I shouldn't need much more to do everything that I need to do on this beautiful 13-inch MacBook.

The cool thing is that if I ever get really sick of the reduced speed, I can close the Virtual Machine and Windows goes away like a little troll in the closet. I feel powerful.

Okay, I know it's slow because I am only running 1GB RAM on this computer with two operating systems running. A fix (4GB) is on the way. After the updates and the memory upgrade I should have no problem. I might even install Ubuntu on another VM.

Must go now; I have to write a post to tell everyone that the Web Spider project is not dead - I'm just busy.

Thursday, June 05, 2008

School of Ben

I'm attending school online, and while that doesn't seem very prestigious, it did present me with an idea this morning which I probably will not be able to digest very completely here this morning.

I can teach. And I can learn at the same time. I will post questions here for my readers to solve, and when they answer in the comments we can have a discussion, m'kay?

I started this post in the morning, and now it's late at night. I have forgotten the question I was going to ask. At least now you know my intent and you will know what your mission is when I choose to send you on one.

Friday, May 30, 2008

Wednesday, May 28, 2008

Break Time

I've sworn off the web crawler project for the week. I'm in North Georgia until Friday; I intend to ride my motorcycle and relax at the Bed & Breakfast I have enjoyed so far. I didn't bring any books related to the project (the bike was packed already) and I have to get some schoolwork done.

I might be hanging out listening to the rain tonight, but that's fine with me. As long as I can get home Friday, there won't be a problem. I want to ride some in the mountains while I'm here, but a friend is taking me to Athens tonight if the weather permits and it will probably rain Thursday. Friday I'll go home, likely without really hitting the curves up here. It was a nice ride up Monday; really good practice for the trip in September.

Back to "work" now.

Monday, May 26, 2008

Some Books

I got my courage up Saturday and ordered the books from O'Reilly. This press has long been highly regarded by technologists, whether they are programmers, IT professionals, or just geeks. Go ahead - ask a geek if he/she has a camel book, and chances are they'll know what you're talking about (and it will be within reach). Don't tell them what it is if they don't know.

I'm posting this to chronicle my efforts to build a web crawler and eventually a search engine. I expect to make further posts about how this project develops, and perhaps what I've found in these books that helped.

I have ordered three books. I went there for one, but there's always a deal to get three for the price of two, plus free shipping. And I can always find another book to get. So:

Perl & LWP. This one I've borrowed before, and it opened my eyes to the possibilities of automated web surfing using Perl. I built a small script one time that looked up my SMTP server's IP at spamcop, then e-mailed me if my mail server was ever blacklisted. It was fun and quite easy, but since I can't find that script right now I'll have to post it later.

Spidering Hacks. I ordered this one for obvious reasons. This book's excerpts is where I found that little bit on needing my spider registered. I expect to learn a lot and become very frustrated with what I find here.

Perl Cookbook. This was the third choice because I needed three. Also because it's $50 and I could use the discount. There apparently is a series of "cookbooks" that have really cool stuff (recipes) in them. There is also the PHP Cookbook, the C# 3.0 Cookbook, and more. I expect to find shortcuts and things I'd never thought of in this book.

Sunday, May 25, 2008

Light Reading

I'm taking a class right now on software requirements engineering (does one actually engineer the requirements, or did they just want to make this class sound hard?) and I came across something I might use with the web crawler project.

In the chapter about "The Software Process" which talks about the processes necessary for an individual or team to succeed at building a quality piece of software or system, I came across the Personal Software Process, or PSP. The book simply states that every developer has a process, whether anyone can see it or not. Either way, there is a proper way to go about producing software at a personal level, and here is the gist (Pressman, 2005, p.37):
Planning. This activity isolates requirements and, based on these, develops both size and resource estimates. In addition, a defect estimate (the number of defects projected for the work) is made. All metrics are recorded on worksheets or templates. Finally, development tasks are identified and a project schedule is created.
High-level design. External specifications for each component to be constructed are developed and a component design is created. Prototypes are build when uncertainty exists. All issures are recorded and tracked.
High-level design review. Formal verification methods... are applied to uncover errors in the design. Metrics are maintained for all important tasks and work results.
Development. The component level design is refined and reviewed. Code is generated, reviewed, compiled, and tested. Metrics are maintained for all important tasks and work results.
Postmortem. Using the measures and metrics collected (a substantial amount of data that shoul be analyzed statistically), the effectiveness of the process is determined. Measures and metrics should provide guidance for modifying the process to improve its effectiveness.
I'm not sure if what I'm doing will fit into this personal model of development, but it's thought provoking. Even if I don't collect data about what my problems might be and then analyze the data about what actually went wrong, I can still hold myself to some kind of process. Even though I don't have a deadline or an antsy customer to deliver this to, I can possibly eliminate shortfalls if I just think it out before delving into code.

But then what fun would that be?


Reference (in our favorite APA format):

Pressman, R.S. (2005). Software engineering: A practitioner's approach. New York: McGraw-Hill.

Friday, May 23, 2008

Executive Decision

After toying with C# today, I've decided that it is way to process-intensive to write the application on a runtime environment like .NET or Java. What I need is a simple language that can download a page, rip through text like a bandit, write the necessary fields to the database, and move on. I can organize the data when the search engine extracts that data.

I can't commit to anything yet, but my spidey-sense is telling me that the crawler will be written in Perl with LWP. I suppose I could look at Ruby, too, but I already have my Camel book and have worked with LWP before. I haven't tied Perl to a RDBMS, but I have done it with PHP and it must be similar. Perl can also do some limited recursion from what I understand, and if it can't I may can use a database back-end to save the stacks of URLs.

I was ready to buy books at O'Reilly today (I chickened out of spending the money) and found a book on writing spiders. From the preview I surmised my crawler/spider must be registered. That means I have to go mainstream, doesn't it?

And now after some more reading, I have discovered that this crawler can be used to build an index for special purposes. I can build my own search engine for this site, for example, and get much better results than I can searching the Google index for benrehberg.com. I have searched for things I know I wrote about, but never found them with Google. Building my own search engine and maintaining my own index of the site can prove useful if I keep writing about programming.

Update: I have created a new label "Web Crawler" for all posts related to this project.

How to Write a Search Engine

It seems a bit strange using the world's best search engine to find out how to build your own. Google is my first resource in this project, though Google itself provides nothing but the idea. There is a paper at Stanford by Larry and Sergey, and that basically is the starting point. That is Google's only contribution so far aside from the many searches I will perform.

There are three main parts to the search engine: the crawler, which tirelessly captures data from the web, the database to hold everything, and the actual search engine - the queries that put the data together in a meaningful format for you.

I could write a search engine that actually crawls the web looking for my search criteria, but that is very VERY inefficient. Google (and many others) have solved this inefficiency by effectively downloading the Web (that's right - as much of it as they can) to their computers so it can search it much faster and have it available in one place. They've done a whole lot more to increase efficiency and effectiveness of searches, but downloading the web was the first thing they did. It turns out they needed a lot of computers.

I'm going to start with two. I have three desktops that no one wants to buy, and I am really tired of looking at them. I will probably need more if I get this index working soon, but there will be software considerations to make too. You can't fit the web on one computer, no matter how big. I will learn a lot.

I have always had an interest in distributed systems and cluster computing, so this will be fun. I have a lot to learn about distributed databases and algorithm analysis. But all that is later - I haven't even really finished thinking out the preliminaries yet. So one development/crawling machine, and one database machine. After I figure out how to crawl the web, I will begin work on performing searches. If this project holds my interest long enough, I might publish statistics at 49times.com, so keep looking. I will be posting here if I come up with anything worth publishing. I'm going to try to journal my progress and decisions without publishing code, but I realize that I very well could lose interest in this. If I get started, I will likely enjoy it and keep going, but no one can say. If you have some confidence that I will continue, you can subscribe to this blog and get the updates. Beware, though, that you'll get everything else I write too.

Wednesday, May 14, 2008

As a Student of Software Engineering,

from the stories I hear about glitches and compatibility and poor project management, this is friggin' scary.

Friday, May 09, 2008

Good Times


I realize we probably looked like a couple of homos walking down the beach, but my reunion with Scott was great. We drank, but not enough, and we didn't get tattoos either.

Just more reasons to do RAGBRAI together in 2010.