Thursday, August 16, 2012

Starting the day at 5AM: Day 1


Day one of waking up at 5AM

The start of the day has been awesome.  I never realized how little time I had during the day to work on things I wanted to work on, or how much I could get accomplished during a good hour and a half of quiet time.

I'm currently studying for the CCENT.  Because I'm busy all day long and don't really have time to actively study, I've decided to passively study.  Well...  passive is the wrong word.  I generally spend a lot of time driving around during my day.  Rather than listen to talk radio or music, I've chosen to make my own audio CDs.  Kind of like books on tape, but made by me.  So each chapter gets read, recorded, and transferred to CD.  Program wise, I use Audacity with the Lame plug-in.  Lame is an MP3 codec.  

My car has a 5 6 disc CD changer built in.  It accepts regular or MP3 CDs.  But it doesn't have an 1/8" line in jack.  So CDs are my only choice.  For the last few weeks, I've been listening to chapters 2 through 5.  I finished off chapter 6 this morning, and will create the CD for that today when I have time. 

My CD production is nothing special.  Just me recording.  So if I yawn, there is a yawn in the recording.  If I get an email, you can probably hear my phone indicating this.  But it works perfectly.  I've heard in numerous places that learning is just a matter of listening to the same thing over and over again.  I'm aiming for this approach at the CCENT.  Much of the first section of the CCENT is theory and technical information about how networks do their work.  But in the end, the information doesn't really help me at my job.  And that's the entire purpose of going for a CCNA. 

FYI: CCENT is "Cisco Certified Entry-level Network Technician".  It is the first step to passing the CCNA (Cisco Certified Network Administrator). 

My goal in getting a CCNA is to understand the routers and switches we use in our stores.  As an IT Technician, my job is to fix many things, and most of them I know a little bit about.  But fixing equipment I don't understand is quite annoying.  Especially when I've got the owner of the company staring at me asking why I don't have it working yet. 

Of note...  I was sitting there laughing to myself. 

Cisco switches can block off devices based on MAC address.  We've been having troubles at a location, so I wanted to see which workstations were causing problems.  Workstation 1, 2, and 3 are at static IP addresses.  So I used PSTools to check the ARP table on work station 3, which should know the location of workstation 1 and 2.  But it didn't.  So I used PSTools again to ping workstation 1 and 2.  Now, workstation 3 knows the MAC address and IP of workstation 1 and 2.  So I can then equate the MAC address to a port number on the switch and identify which device is plugged into each port.  Now, I can read the table and equate which workstation is doing what. 

And I did all this from a remote site without ever leaving my desk.  Sometimes, being IT is awesome.






 


Thursday, March 25, 2010

Process Improvement and undervalued resources

Process improvement is something every company says they want, but few are willing to do anything about suggestions that might actually improve processes. Hard thing to believe, but it's pretty simple, really. Think of it this way... you've spent years working at a company, and haven't come up with any wonderful ideas. Then this person comes in and suggests something that might improve the company. That's a rather hard pill to swallow, but what management needs to understand is that a fresh vision is sometimes what is needed to improve the company. It's never a guarantee, but it can help.

All this idea of process improvement goes back to the second point I want to make: undervalued resources. The biggest undervalued resource in most companies is the same thing: people. People are by and large the most undervalued asset in a company. In one of the companies I work with, there are 700+ employees, yet those employees are treated pretty much like dirt. They are seen as a replaceable cogs. Hate to break it to that company, but those cogs have a wide range of experiences that produce different ideas in different areas. But if you don't encourage process improvement, then those employees feel their time is wasted. If they think their time is wasted, then they won't even attempt to try and improve anything. From the perspective of the individual, what difference does it make?

So what can a company do? To that, I'm not sure. The age old idea of the suggestion box isn't a bad idea, but it needs improved. I would suggest leaving some sort of contact method for any produced ideas. That way, regardless of whether the idea is adopted or not, management can let the employee know that they actually looked at the suggestion. Combine that with a reason the idea was or was not adopted, and you've got something that encourages employees to actually suggest things. There needs to be two way conversation if a company actually wants to improve their processes. If the conversation is one way, then there will be no future suggestions. Lack of a response will discourage future suggestions. If there is no response from a suggestion box, it might as well be a trash can.

Monday, October 5, 2009

Thoughts, ideas, and progress

Finally figured out a way to do something I wanted to do in VB.net. So now my rudimentary mouse/keyboard control is working. Nothing fantastic at the moment. Still a lot of work to go.

Leads me to think about a whole lot of different things though. I've been wondering how to teach a computer anything. With enough effort, I could write everything I ever wanted into the program, but that is more effort than it is worth. It is much more worthwhile in my opinion to code the program so it learns how to do things on its own. Ahh... into the wonderful realm of artificial intelligence. So I've come up with an idea. Tell me what you think.

I've realized that much of human life is very routine. Very little thought is actually required to perform most of what we do. We can sleep walk through the day without making a single complex decision. At my job, I find that a computer program, or perhaps a robot, could probably do my job better. It could be just as personal, if not more so than me. My job sucks anyways.

With life being so incredibly routine, then I have to wonder how I could write a program to get a computer to perform every single action that I perform. It's all fairly simple. Most are just a combination of known actions performed in a set sequence to accomplish a specific task. In other words, I perform a few different actions in the right order to complete the necessary task. Showering, shaving, driving, navigating, eating... it's all the same thing every single day.

Now how do I get a computer to do this? I'm working with two different ideas. The first is post-action analysis of random action selection. Did that make any sense? I suppose not. Let me explain it to you. Normally, an artificial intelligence decides what it is going to do before it ever does anything. Take the master chess computers. It maps out a list of possible actions, and compares those actions to a table to see which action will perform the best based on pre-programmed knowledge. Eventually, be it from exhaustive examination or the timer running out, the computer makes a decision. Humans don't learn that way, or at least they don't in their early years. We do not examine every possible consequence of every single action before we ever make a decision. We make a decision, and evaluate the effects of the decision afterwards.

So that's the basic idea. My idea is to randomly select from a list of possible actions, perform that action, and then continue doing so until the computer either gives up because it did not randomly select the right answer in enough attempts, or it succeeds. Now it may take a few dozen attempts, but you will come up with a correct answer.

If you run that last algorithm enough times, you will come up with the most efficient answer, based on the number of moves. You then equate that list of moves to producing that result. Now that is the easy part. Here's the hard part.

Create a goal-based system, with the purpose of building a list of actions that produce successful results. Start with simple actions that are easy to perform, and then perform them many times. Once the computer has decided that this action produces the proper result, you give it a slightly harder goal, and do it all over again.

See where this is getting difficult? Though the actions we perform on a daily basis are horribly routine, we spent years learning to perform those actions in those specific ways to get the proper results. We as humans have refined our techniques in ways that we barely understand and don't even remember doing.

Now imagine trying to teach someone. Not just any someone, but a newborn baby. Because that is essentially what we are dealing with. Teaching a two day old baby is completely out of the question. So what do we teach it? We initially teach the baby motor skills. Somewhere afterwards, a light goes off in the babies head and off they go, charging down the hall as fast as their chubby legs and horrible balance will take them.

So here I have two problems. How in the world do I code a goal based system in VB.net? Secondly, how do I turn the subject matter into tiny bite sized pieces so a computer will eventually learn to perform the actions I want it to. In effect, how do I teach it to learn?

Saturday, August 29, 2009

Creation is fun

Creation is a wonderful thing. Especially when you are in the midst of creating something that is both mind numbingly simple and complex at the same time. While playing World of Warcraft, I realized just how repetitive most of life can be. Very little is put into complex decision making in most of our actions. It's something that a machine or a program could do just as well as the average human can.

Now the idea of this is quite simple: write a program that can replicate simple series of instructions. In essence, do a lot of the stuff we do. Seems very simple. I just ran into a lot of problems in actually building the thing. I actually think I've got a decent hang on the idea of how to build much of this, but it requires quite a few different subsections and complex parts. One of those parts is an input automation section. Faking computer input is more complex than it seems, but the SendInput() function does all this quite well, assuming I'm filling in all the correct sections. Hopefully, in the next few days I can test the dll I'm building purely for mouse/keyboard control out and start integrating that into the rest of the program. One complex problem down, a dozen more to go.

Luckily, I have ideas on how to do the rest of it. Ideas, mind you. Some revolutionary, some mathematical, and some quite simple. It's just a matter of figuring out whether my ideas are capable of bearing fruit, and in the end will do what I want it to do.

The only problem I truly face is one that has bogged down people for years. Although much of our actions are very simple, the reasoning behind those actions is not. We learn a vast amount of information in our formative years, far beyond what any computer has ever been capable of producing. Question is, can I get a computer to learn the way a child does? Now there is the million dollar question.

Saturday, August 8, 2009

On government

I was thinking about this a little while back. A slight examination into the nature of government, concerning the how's, why's, and what-nots. So I decided to do a little research, and it leads me to believe that United States is not a constitutional democracy. I'm more inclined to believe it is something akin to a plutocratic oligarchy.

A plutocratic government is a government composed of the wealthy class.
(http://en.wikipedia.org/wiki/Government)

An oligarchy is a government ruled by a small group of people who share similar interests or family relations (ibid). Seems this is more accurate than the definition of constitutional democracy. That is, a government composed of representatives who are voted into power by the citizens.

More on this thought later, or after I get off work.

Friday, August 7, 2009

Vagaries and randomness

I suppose I should write something gigantic and vacant to declare the creation and importance of this. I think I just did.

Perhaps I will add more after I get off work.