The Zibings Starts Here

22 March, 2007

Server Migration

Over the next few days, Keith and I will be working hard on migrating the systems over to a new server. The move should be relatively quick and painless, but as always there is the chance for hiccups along the way.

This move will affect all hosted services for up to 48 hours depending on the frequency with which your DNS resolvers update their cache (we use OpenDNS for our computers). There will be no data loss for any services, including webmail, ftp, databases and file structure.

We will also be taking this opportunity to widdle away some more at our inactive hosting accounts. We will still have backups of all inactive accounts for the next 4 months, but after that point we will erase all memory of them from the server.

The new server is running a Core 2 Duo E6700 (2.66Ghz with 4MB L2 Cache), 2GB of RAM, a 400GB hard drive, and is sitting on premier Savvis pipes in Atlanta. The new server will be faster, more secure, and just generally easier for everyone to use.

I'll post again after the migration is completed, wish us luck!

- Andy

Labels: , ,

20 March, 2007

A New Team Member

This morning I finally got to announce the addition of a new team member to the ZibTech Computers group. Matthew Hykes will now be developing with me on the site.

The nice thing about this for me, is that now not only do I have someone else trying to finish the site with me, I also have someone who I can physically chat to about issues with the site's architecture, etc. Its an important milestone for me, and I assure you I am celebrating in my own way (which involves following the directions of a very close friend and actually going to sleep close to when I should).

As I say on the site, I'm very much looking forward to his company and help, its something we've needed for some time now. Here's to things always moving forward despite my best efforts. ;)

- Andy

Labels:

19 March, 2007

Code Formatting

A recent discussion with a friend broached the subject of code formatting. This is one of those subjects where I truly believe no happy medium will ever be met between major parties. Some people like certain methods, and others just like the opposite. That's how its been for ages, merely a matter for personal preference and pointless debate. This point in no way intends to change that, but if you come off thinking my chosen formatting method is the way to go, I'm glad I could help you.

Before we get into this, let me make a statement about my personal views on the importance of formatting your code. When I teach people to code, I do what I can to stress over and over again that you must format your code. If you take the mere seconds of extra time it takes to ensure that your code is consistently tabbed, spaced, etc, those who might read your code in the future will forever love you.

Formatting A-La Andy
I will be outlining my formatting for PHP, the all-popular and fluffy web scripting language. The majority of the principles I use for my PHP code carry over to the other languages I use with little to no modification. If you have any questions, of course feel free to let me know.

The first big thing with my formatting style, is to use tabs. Use tabs, not tabs as spaces, and ensure that your tabs are 5 characters (spaces) in size.

Next you'll want to be sure that you always leave an empty line between your lines and the code that goes between them. Also, always begin your first level of code (where a level is defined as the top level of 'nested' code in your file) at a one tab indent:



With comments, I try to use only two different types in PHP, but will sometimes feel a little frisky and change it up slightly. For large comment blocks that are used as descriptions or copyright notices, etc, I use the C style comments /* */, and for single line comments I use the // style comments. I rarely use the # style comments because really they're just another way of doing the // comments, and who needs redundancy!



Another big part of my formatting style is grouping. I like to do my best to group code, meaning that if I'm setting some variables up that are related, I'll put them on lines directly after each other, but as soon as I am doing something different, I will add an empty line between the two parts so there is a clear definition of the workflow 'group'.

When dealing with parenthesis "( )", I space them out only in a few instances, mostly when several can be inside of others (most logical statements, such as if() and while()) or when it is a function declaration. Everywhere else (with very few exceptions), I squash the parenthesis against the characters they are enclosing, as well as the characters they originate from. The next example covers most of what I've just said...



You'll also notice, when making nested code, I use one tab per nest. Since I start out with all of my code 1 tab indented already, that means the first nest of code will be indented 2 tabs, the second 3 tabs...so on and so forth. Also, with logical operators I use brackets on the following line at the same indentation as the logical statement resides on, I think it makes matching up the brackets with their logical statement a lot easier.

Finally, I can't stress this enough...but you should NOT leave anything on empty lines. If there is a blank line, let it be blank instead of filled with tabs. It takes about 2 keystrokes to hit ctrl+home and then backspace, its not too much to ask when you're trying to be neat with your code.

Those are the basics of my methods, and I don't expect anyone (except those that are coding on my projects) to follow them. As stated earlier, if they help you, awesome and glad I could be of assistance. If they don't help you, sorry to have wasted your time. :p

- Andy

Labels:

17 March, 2007

To Become A Programmer

Every now and then someone asks me to teach them how to program. I'm happy to oblige most times, but many times I'll find the person getting frustrated a ways into the lessons for various reasons. One point that I probably don't make often enough (in the hopes of not discouraging people from trying to learn to program) is that there is a difference in becoming a programmer, and becoming a good programmer.

What's the difference you ask? Simply put, the difference between a programmer and a good programmer, is a state of mind. Some people consider me a good programmer, mostly from what I can tell due to the fact that I have a good working knowledge of quite a few programming languages. Though this is flattering, and I have worked hard to earn that knowledge, those people often overlook the more important reasons I strive towards which would make me a truly good programmer. Knowledge is only half of the battle with programming, the rest of the battle is using your intuition and logical thought processes to apply that knowledge.

Saying someone is a good programmer because they have the knowledge, is like saying a person is a good driver because they attend driver's education in school and got a good grade. For those of you blessed enough to not have had to deal with driver's education, it doesn't take much to do well in the class. You read a bit in some books provided by the state, you take some visual, audio, and written tests, and then you pass. I know that almost every driver around me that was born in the commonwealth of Pennsylvania has taken driver's education, and I also know that about 8 out of 10 of them are some of the worst drivers I've ever had the misfortune of being near while in my car.

I can teach you the knowledge for programming, but if you aren't able to think like a programmer, you won't be a good programmer, just as you more than likely would be a horrible driver if the only experience you ever got was a driver's education class. It takes time and energy to master the art, just as with driving. Buckle in and dedicate yourself to the task, you can be sure you have a good chance of becoming a great programmer.

Oh, and for those of you wondering, I consider myself to be going through about the 40th installment of the programming equivalent of driver's education, so I'll keep at it with you. ;)

- Andy

Labels:

16 March, 2007

Save The Streams!

When I went to tune into an internet trance station I used to listen to quite often, I saw that there was a link on it and a request for me to sign a petition on a site called SaveTheStreams.org. I was curious, so I headed over to check it out. By the time I'd finished reading the information they had, I was nothing short of appalled. If you have a few minutes, head over to the site, read up. Even if you don't listen to internet radio, I think we should all be doing what we can to try and show the record labels that we don't want to put up with their greediness anymore.

Labels:

15 March, 2007

The BMW Club

For those of you who know me at all, its no secret that I am the proud owner of a 1987 BMW 325is. It is my baby, and I love it to death. I spend a good amount of time preaching the good word about BMW to those around me as well, mostly in the form of witty quips and jabs at other peoples' cars, but always with the hope that they will all wise up and get their own baby to love, their own BMW.

I'm proud to announce that today the BMW Club (at least the imaginary one that I have around me) has a new member. Many congratulations to Zac, one of ZibTech Computers' Production Managers, on his purchase of a 1994 BMW 325i. I know he'll enjoy it, and when I finally get my poor car back from the hospital we'll get some pictures of the two cars together.

- Andy

Labels:

14 March, 2007

ZSF v2.0

For a while now we've been running things off of the 1.x tree of the Zibings Site Framework. The 1.x tree has been good to ZSF as well, bringing with it a name change, a huge increase in stability, and of course the complete set of intended features that I set out to put in place from the start.

Now that we've reached that milestone, its time to start making the system a bit more professional. Sparked on by Chris Butcher, I've started laying out some plans for ZSF v2.0, and I'm asking for comments and suggestions from pretty much anyone and everyone I can think of. I want to improve a lot of the current features, streamline and optimize them, as well as add a lot of new features that can be turned on and off depending on your system's PHP configuration.

It should prove to be a challenging and fun project. I'm keeping track of everything over on the Super Tech Help forums so that they get a bit more reasons for traffic, you can check out the v2.0 planning thread by clicking here. Let me know if you've got any ideas!

- Andy

Labels:

The First Computer

Months ahead of schedule, ZibTech Computers has actually sold its first computer. A partial-build missing only the optical drive, a monitor, and a sound card, the build was made for Sean G. (whom you will see in our chat channel as DmD).

The rig (which I hope to post pictures of soon after he receives it) is an Intel-based computer, built around the E6300 Core 2 Duo processor, which was overclocked to run just over 2.0Ghz (from the stock clock speed of 1.83Ghz). We weren't expecting to make the sale, so admittedly we've had to learn a few lessons with our handling of our distributors, but Sean was a good sport through all of it and we're happy to have been able to build his computer for him.

- Andy

Labels: