The Zibings Starts Here

18 May, 2007

Meebo Me!

For any who are interested, I've added my 'Meebo Me!' widget onto the bottom of the sidebar. If you see I'm online, feel free to send me a message. If you're curious about what Meebo is, its best to just let you go find out for yourself:

Meebo

Labels:

15 May, 2007

ZibNet IRC Services: The Unffofical Guide

For those of you who have just joined the Zibings Network's new IRC servers, I wanted to put together a 'quick start' guide for you regarding the services that are available to you on the network. Enjoy!


Glossary
IRC - Internet Relay Chat, this is the type of server that you connect to

Services - These are the things we're about to go over, they are mostly bots that help regulate the users and channels on our IRC network

Nick/Nickname - Your nick or nickname is what everyone sees you talking as (for instance, you will always see me as z|Andrew or z|Andy)

Channel - Channels are 'public' areas where multiple people can chat at the same time, often referred to as 'chatrooms' as well

Hostname/IP - Whenever you connect to something on the internet, you are known by your hostname and IP, they are controlled by your Internet Service Provider (ISP)


Available Services
NickServ - This service helps to protect nicknames so that other people can't use yours, also helps you get access levels in channels

ChanServ - This service will protect and reserve your access in channels, only works if your nickname is registered with NickServ

MemoServ - This service allows you to send/receive messages to other people who's nicknames are registered with NickServ

HostServ - This service allows you to create a 'virtual hostname' to go along with your registered nickname


NickServ
NickServ is one of the most useful (and important) services that is offered on ZibNetIRC. NickServ will hold your nickname for you so that nobody else uses it, allow you to register and hold access on channels with ChanServ, allow you to get a fake hostname through HostServ as well as send and receive messages using MemoServ.

In order to get started with NickServ, you must register. Assuming you are using a nickname that nobody else is using, lets pretend that your email address is bob@email.com and that your favorite password is ILuvm0m. With this information, here is how you would register your nickname (which by the way is El33tJimBob):

   /msg NickServ register ILuvm0m bob@email.com

You will receive a message like this from NickServ:

-NickServ- A passcode has been sent to amale@zibtech.com, please type /msg NickServ confirm to complete registration

When you receive the email with the passcode (make sure you check your junk mail folder), do just as the message says:

   /msg NickServ confirm ZTDsBUrlD

Upon sending this to NickServ, you receive two more lines from NickServ:

-NickServ- Nickname El33tJimBob registered under your account: *HOSTNAME*
-NickServ- Your password is ILuvm0m - remember this for later use.

Where it says *HOSTNAME*, you'll see something different, it is the actual hostname that you are currently connected with. Now your nickname is all ready to be used for all of the other services I listed.

Now, whenever someone connects to the network with your nickname (including yourself), they will be immediately prompted with these messages:

-NickServ- This nickname is registered and protected. If it is your
-NickServ- nick, type /msg NickServ IDENTIFY password. Otherwise,
-NickServ- please choose a different nick.

Since you know your own password, we do what the instructions say:

   /msg NickServ identify ILuvm0m

And NickServ thanks us:

-NickServ- Password accepted - you are now recognized.

Another thing to note, is that there are a few other commands you can use with NickServ. For a full list, type "/msg NickServ help" and it will walk you through the process of reading up on commands. Here are a few commands I found particularly useful:

/msg NickServ group El33tJimBob ILuvm0m - This command allows you to group another nickname with El33tJimBob. This is particularly useful if you have a few different nicks that you like using and access on a few channels with ChanServ since it will make the access from El33tJimBob apply to your other nicks JimBob and INeedARedneckWoman (once they're grouped of course)

/msg NickServ ghost El33tJimBob ILuvm0m - You can use this command to disconnect another person using your nick or if you disconnect and come back to see your old self still connected, this will kill that person's connection allowing you to retake your nick

/msg NickServ sendpass El33tJimBob - If you should ever forget your password, using this command can send it to the email address you used to register the nickname with


HostServ
We'll go over HostServ next as it is something to do quickly after you register your nickname. Now that we've registered El33tJimBob, we'd like to use the hostname i@m.a.hillbilly.and.proud whenever we're using the network. If you're wondering why you'd want to do this, put simply it is safer for you to have a fake one so that other users can't try and determine where you are connecting from. This keeps you safe from flood attacks and even to an extent hacking.

Now that we've chosen which hostname we want, we will need to request it:

   /msg HostServ request i@m.a.hillbilly.and.proud

Upon sending this, the request is entered into the system for the network administrators to approve. HostServ just says this:

-HostServ- Your vHost has been requested

I like my explanation better, but HostServ and I...we don't always get along. At this point, you should go to #Zibings.com or #Help and request that someone approve your virtual host. When they have done so, send this command:

   /msg HostServ on

And HostServ will turn your vhost on:

-HostServ- Your vhost of i@m.a.hillbilly.and.proud is now activated.

Now whenever someone does a /whois on you, they will see this:

El33tJimBob is i@m.a.hillbilly.and.proud * Jimmy Dean

It can be fun to play with these and will keep you a little safer on the network, make sure you do this as soon as you register your nickname (though you don't have to).


MemoServ
Lets say you (El33tJimBob) want to send a message to your good and great friend z|Andy, just letting him know how great of a guy he is for writing up this nice user guide. Not a problem usually since z|Andy is always online, but upon looking for him in his channels, you see he actually isn't here! Whatever will you do!?

MemoServ to the rescue. You can send a message to z|Andy by using the following command:

   /msg MemoServ send z|Andy You are the greatest, have a cookie!

To which MemoServ will reply:

-MemoServ- Memo sent to z|Andy.

When z|Andy logs back on, he'll receive something similar to this, just like you would if he was sending a message back to you:

-MemoServ- You have a new memo from El33tJimBob.
-MemoServ- Type /msg MemoServ READ 1 to read it.

Whenever he types that command, he'll see this:

-MemoServ- Memo 1 from El33tJimBob (May 15 12:09:54 2007 CDT). To delete, type: /msg MemoServ DEL 1
-MemoServ- You are the greatest, have a cookie!

He can reply with the SEND command, or just begin talking to you in the channels or a private message. The DEL command will remove the message. Some other useful commands from MemoServ..

/msg MemoServ send #Zibings.com You Guys Rock! - This would send a memo to the entire channel #Zibings.com

/msg MemoServ cancel z|Andy - This cancels the last memo sent to the nickname z|Andy

/msg MemoServ list - Lists all of your memos

/msg MemoServ check z|Andy - Check whether or not a memo you sent to a nick was read (doesn't work with channels)


ChanServ
Channels can be great fun. When you start your own channel, you can bring all of your friends to chat there, and when they're naughty, you can kick them, keep them from talking, just torture them really.

You decide (as El33tJimBob still of course) to create a channel called #HardC0reHillBilly. The first step to creating a channel, is to simply join it:

   /join #Hardc0reHillbilly

A new window should show up inside your IRC client with the name #Hardc0reHillbilly on it. Make sure that you have @ status in the channel, otherwise ChanServ won't let you register the channel. We want to have a channel founder password of H1llB1lly and will describe the channel as "The only channel if your neck is red and your britches are low", so let's register the channel with ChanServ!

   /msg ChanServ register #Hardc0reHillbilly H1llB1lly The only channel if your neck is red and your britches are low

ChanServ politely responds by doing a few things:

-ChanServ- Channel #Hardc0reHillbilly registered under your nickname: El33tJimBob
-ChanServ- Your channel password is H1llB1lly - remember it for later use.
* ChanServ sets mode: +ntr
* ChanServ sets mode: +q El33tJimBob

Where you see 'ChanServ sets mode:...', ChanServ is setting up the channel so that it is protected, and then protecting you inside of the channel. Congratulations, you've registered your channel! Now we'll need to setup some other people with access to the channel.

To explain this quickly, everytime you join the channel and have identified with NickServ to the nickname El33tJimBob, ChanServ will always protect you in the channel with the '+q' mode. You can give other people access so that similar things are done. Lets say we want to add z|Andy as an '@' in the channel. You would do so by entering the following command:

   /msg ChanServ access #Hardc0reHillbilly add z|Andy 5

The access command has many options and is pretty in depth, so it best to send a "/msg ChanServ help access" in order to learn about it properly. The command that we sent above would give us the following reply from ChanServ:

-ChanServ- z|Andy added to #Hardc0reHillbilly access list at level 5.

And then eventually when z|Andy joined the channel, you would see this:

* Joins: z|Andy (amale@zibings.com)
* ChanServ sets mode: +o z|Andy

As you can see, it automatically gave z|Andy the '+o' (aka '@') whenever he joined the channel. Access levels can be fiddled with, but if you do the "/msg ChanServ help access" command you'll be able to learn all about that.


Summary
To conclude this before you become extremely overloaded with information, I'll remind you that every single service I've shown you has help files already available on the network. To see all of them, simply type this command:

   /msg HelpServ help

It will give you a list of all the help commands you can use, and from there you may learn more in-depth things at your own leisure.

Thanks for reading, and I hope this has been helpful!

- Andy

Labels:

14 May, 2007

ZSF Standardization

The Zibings Development Team has been working pretty hard on the ZibTech sites recently, which all use the Zibings Site Framework (v1.3.3). Through their work, I've been told that there is a pretty serious need for some standardization for the way we work with the ZSF system. It was something on our agenda for ZSF 2, but there's no time like the present to start shoring up holes in our process I always say!

The following blog post will be a bit involved and requires you to have a good working knowledge of the ZSF system, but for those who do it should be a good help for defining the best methods of using each part of the system. Off we go..

Definitions
ZSF - Zibings Site Framework
TPL - Template
User Space - Code done inside of the usr.cnf files
Page Space - Code done elsewhere, but not inside the TPLs
TPL Space - Code done inside the TPLs

User Space
The User Space (or usr.cnf files) is where your backend work should be done. As much database work as possible should be handled through function/method calls created inside this area of the code. This helps centralize where you have to go should you be having database problems of any kind. Should there be anything you want to be available to the entire of the system, this is also where it should be done.

Because of the way that ZSF is constructed, the User Space code is called up pretty quickly upon system initialization. The system will call every single usr.cnf file in the current scope, regardless of which module is actually being loaded.

Current Scope is defined by which section of ZSF 1 your user is currently viewing. There are two possible scopes, the first being global when anyone views the main index.php and modules through it. The second scope is admin scope, obviously when a priviledged user views the system modules through admin/index.php. Global scope will only pull all top-level usr.cnf files into the system at initialization, whereas the admin scope will load all top-level usr.cnf files as well as all admin-level usr.cnf files. This is an important thing to note as it can cause problems in your admin scope if you use redundant code in your admin-level and top-level usr.cnf files.

The best way to view the User Space is to pretend that it is where you create an API for the rest of your spaces. Try keeping as true to that as possible and you will get the most (and best) use of the User Space as ZSF can offer in its current state (v1.3.3 at time of writing).

Page Space
The Page Space is easily described as the rest of the code excepting our TPL files. In order to use the system effectively however, there are certain things that you should ensure do not find their way into your Page Space.

The Page Space is meant to be used as the intermediary between our User Space 'API' and the TPL files. Page Space should control which TPL files are being used/displayed, and provide them with information to help in their displaying of information. As I mentioned above, the User Space should take care of the majority of all database calls, if not all database calls. This makes it so that the Page Space does nothing but use the functions/methods offered by the User Space to do things such as validate user input and send that input to the database.

Even so, because the Page Space has to control the templates, often times the Page Space will end up much more expansive and confusing than the User Space. It is good (and suggested) that you seperate different page controls into different files which branch off from the modules' main index.php file. For example, lets pretend we have 3 pages to a module: Home, Page1 and Page2. The following would be a generally accepted file structure for the module directory:

myModule
myModule/index.php
myModule/inc/page1.inc.php
myModule/inc/page2.inc.php

All of the data handling for the 'Home' page is done inside of the index.php file. If the index.php file finds that it is dealing with either Page1 or Page2, it calls the appropriate .inc.php file and exits so that the .inc.php file can do everything for itself in regards to that specific page.

Remember that the Page Space, unlike the User Space, is only available when that particular module is being called, so if you need something to be available globally, it must go into the User Space, not the Page Space.

TPL Space
The final section, the TPL Space, is meant to be only for displaying data provided by the Page Space. Though the TPL system is really just a fancy way of doing PHP inside of a somewhat scope-limited file, the effect is just as good as any high-end high-overhead system out there, such as Smarty. The difference between our TPL Engine and that of Smarty's, is that ours requires us to use a bit of due diligence to ensure that the TPL Engine is used properly.

Your template should never have any kind of functionality thrown into it beyond a rare instance of seperating pages off of a variable-based token. The best thing to ask yourself when coding a TPL file is: "Does this really need to be done in order for my information to be displayed?" If you ask this question and are honest with yourself, you will end up with TPL files with little more than variable access and an occassional conditional loop inside of them. That is the desired makeup of the TPL Space, nothing but the work we do in order to display the data provided by the other two spaces.

Review
Let's go over this in review, just quickly.

The User Space is meant for globally accessed code API's which do things such as data validation and database interaction.

The Page Space is meant for module-specific code and is the bridge between the User Space and the TPL Space. This space provides all information from the User Space to the TPL Space so that it can be used there.

The TPL Space is meant to simply display the data provided from the Page Space (and ultimately the User Space). There should be very little code in this space.



I hope that this has helped someone out there. Any questions, as usual, can be commented here or over at STH, I troll both places on a regular basis.

- Andy

Labels:

12 May, 2007

Stick To Your Guns

From good news to bad news, life seems to pack one next to the other, no matter how the world seems to be treating you. The multi-million dollar contract that we were working on has fallen through, but thank goodness it fell through in the manner that it did. I'll explain...

When we first started dealing with the bid we were a bit cautious as I stated in my earlier post regarding the bid (the post titled 'A Day Of Great Expectations'). I had asked a few friends to do some research on the company that we were dealing with in England to make sure that the offer was legitimate. The initial findings that we received weren't very promising, but we concluded that the best course of action would be to continue with the bidding process and see if our suspicions were disproven.

Up until the end of the process, we were happily disproven most times by the buyer. When we'd ask about something we were suspicious about, they'd answer in a way that gave us enough doubt in our suspicion to be comfortable with proceeding. As we got closer to the end however, they started making demands for product without payment, and finally for payment of a bogus registration fee to a government agency in Britain that didn't exist.

We finished up our research with our friends, and retracted our bid offer when they refused to take the £1,350 registration fee out of the several million Pound Sterling payment we were to receive on Monday (May 14th, 2007). We have contacted British and American Authorities and are working with both to try and track down the people we were dealing with so that they can't scam someone else.

Luckily, because of our suspicions and the title of this post, we didn't lose a penny on the scam. The phrase 'stick to your guns' is one of my favorite when it comes to business transcations. I know my company, I know what we're capable of and more importantly what we're comfortable with. I do not leave our 'guns' at any point during a negotiation, regardless of how large or small the transaction is.

In this case, our 'guns' were the facts that we would not begin working on building anything until we had received payment, and that we weren't going to pay for anything that we didn't know was necessary to pay for up front. We paid for things we needed, such as licenses with the Commonwealth of Pennsylvania, our distributors, etc.

We're all pretty upset about the loss of this 'contract', but we've already begun advertising all over the internet with our new website. If you search for the right terms, you might even see one of our links on the side of MSN Live Search or Google. ;)

- Andy

Labels: , ,

11 May, 2007

ZibTech Computers - Open For Business!

In the midst of everything else going on with the company, we've managed to finish the first version of our website and release it to the world. The site is by no means a good representation of what the site will eventually become, but its a great start and wonderful way to introduce the company to the general public.

I'd like to give a special thanks to Jon Coleman, Chris Butcher and Matt Hykes. Each of these three gentleman did a wonderful job working with me (often times late into the night) to get the different portions of the site setup and running smoothly. Without these guys, the site wouldn't exist yet, so thanks!

Along with releasing the site in its infantile form, we've started advertising online through things such as Yahoo! Classified, Windows Live Expo, and Google Base. Of the three, I so far like Expo the best, though its statistics could be a little better. The statistics category is taken by Google Base, and Yahoo...well Yahoo is there and used by a lot of people, so why the heck not use it?

Make sure you tell your friends/family/other and check out our website whenever you've got a few minutes!

http://www.zibtech.com/

- Andy

Labels: , ,

04 May, 2007

Focus: Your Only Weapon

The "Day of Great Expectations" came, and it flew by. We are now finalizing paperwork on our warehouse and office, sending out employment flyers wherever we can, and doing all of the other things we've been planning endlessly since the bidding process began.

As easy as it is to hoop, holler, and jump for joy, one thing that everyone on the team has been amazing about doing is focusing. Within minutes of hearing the news, we were already into full speed ramp-up. The order is huge, and is no small undertaking to fulfill, so it isn't hard to think of the urgency a small company like ours has to use when working towards this type of goal.

It would have been easy to sit and think about the money, to think about the change in lifestyle, to think about any of the changes really. We could have all taken a day or two, and simply celebrated. Instead, we all got to work, and as a result I have every confidence that we will not only fulfill the order in the time span we were given, but we will more than likely beat our schedule by almost a week.

This brings me to the title of the post, "Focus: Your Only Weapon". As I've made clear, its easy to celebrate your victories, but you should never forget that a victory isn't complete until the entire war has been fought. When you hit a milestone with a project or with your business that is a huge victory, but only part of the puzzle in the long run, do everything in your power to focus your 'troops' on the tasks yet at hand. If you can do this, you will always come out of the war with a victory on all fronts.

Forget it, and you'll have fun for a while, but end up regretting it in the end. Reminds me of what my dad always used to say to me, "Work hard now, so you can play your ass off later." So true dad...

Labels: , ,

01 May, 2007

The Club Grows!

One of my favorite things recently has been meeting up with Zac and Brendan and just doing things that BMW owners do (making fun of other cars, making fun of each other, making fun of other cars and people, admiring BMW...and fixing up my beat up baby when Zac and Brendan aren't too busy). The last time (this past weekend), we accidentally parked our three bimmers in a row, so as with any good fan club, picture taking ensued. For reference, I am the one on the far left, Brendan and Meg are in the middle, and Zac is on the far right. Here are the pictures taken with a decent camera:


All three cars


We weren't exactly ready yet


And the money shot (notice the strange White Snake reenactment on the middle car)

- Andy

Labels:

A Day Of Great Expectations

The title for this post actually comes from Bill, one of my wonderful production managers with ZibTech Computers. Given the subject matter, I think you'll all agree that the title is about as perfect as perfect can be..

A few of my loyal readers have noticed that my updates recently have been few and far between. Though I do feel bad for neglecting my blog, the nature of this lapse in blogging is more than worth the bad feeling. ZibTech Computers was recently asked to bid on a contract with a company in London who is/was asking for 15,000 computers.

The multi-million dollar contract, is a huge deal for me and my little 8 year old company. When we were first asked about the bid, we were a bit timid about putting a quote out. After a few days of discussion and planning though, we came to the realization that with the right ingredients, this bid was not only possible for us, it was perfect for us.

The entirety of ZTC has been flying around since then planning this and that should we get the bid. Our bid price has been finalized, and a sample unit is on its way to the buyer. The day the sample unit arrives is the so called "Day of Great Expectations". We are all aware that we have not yet won the bid, and could still very easily lose it, but it is quite clear that we are the #1 bidder and that we have a better chance than anyone at the moment.

Should this bid go through, it will certainly change my life, not to mention the lives of those people who I employ. Either way, it's shown us some things about our company structure and personnel that are very emboldening. Should we lose the bid, we'll begin an aggressive marketing campaign (within our budget of course) to start pumping the company into a production mode. Should we win the bid...

If we win the bid, I expect you all to come see us in our new office/warehouse sometime in the near future. ;)

- Andy

Labels: ,