Home
> Blog
Something Wicked, This Way Comes...
Posted in Blog by Tieson | geeksneversleep.com
Dec
18
2008
Those of you who have actually read my About page know that I originally built this web site to serve as a place to find code snippets and/or explanations of some of the more technical aspects of programming and web design. So far, I havn't really accomplished that goal. Most of the entries I've posted have been more of a history lesson
than anything. Part of the reason: I've been trying to refine the layout of my site as I go along and learn more about web design. Now that I have a reasonably stable design, I can start focusing on doing what I set out to...
So, other than a minor change to the navigation menu, expect to see less change in style and much more content!
:)
Back to top •
Comments ( 1 ) •
Login to comment.
Opining About My Future
Posted in Blog by Tieson | geeksneversleep.com
Dec
8
2008
I was recently asked this question by my Technical Writing instructor to think about as part of our final exam and I thought you might enjoy my response:
Final Exam Question: What field(s) will my chosen field have to interact with using technical documents, and how? Think about 10 - 15 years from now.
My chosen field? Software engineering. What fields will I have to interact with? Ha. A list of fields I won't interact with would probably be much shorter. It would seem at first glance that nearly every field interacts with software in one fashion or another, from the attorney using a catalog system to research relevant prior cases to the zoologist using a productivity suite to publish the results of his latest study. Students and scientists use web browsers and search engines to gather information for their studies. Businesses use web services to communicate sales data to central offices. Defense agencies use GPS and satellite telemetry to coordinate tactical exercises. These, and many others, are all examples of people using technology in one fashion or another, and each of these technologies is driven by software, be it embedded in logic controllers or executed from within an operating system.
All of this technology requires documentation to develop the software, to train users of the software, and to help other developers maintain the software. There are entire industries devoted to nothing more than helping businesses properly develop software, or teaching new users how to use such things as the Windows operating system, the Microsoft Office suite, or the various parts of Adobe's Creative Suite.
This trend to bound to continue well into the future, since more and more of our everyday activities are based around the technology that has so pervaded our lives.
Tags:
Final exam
,
Question
,
Technology
My Favorite Free Security Software
Posted in Blog by Tieson | geeksneversleep.com
Nov
25
2008
Not everyone has the money or inclination to pay $50 or more for a (bloated) security suite from the big boys (McAfee, Symantec, Trend Micro), but that doesn't mean you have to be content with sub-standard protection. There is quite a bit of good, free, software available that is not only as good as, but sometimes better than, commercial software.
The following is a short list of software I have used and recommend.
- COMODO free products (firewall, anti-virus, anti-spyware, anti-rootkit, security suite)
- a2 Free (anti-spyware)
- AVG Free (anti-virus)
- Avast4Home (anti-virus)
- WinPatrol 2008 (process guard)
- Spybot Search & Destroy (anti-spyware, process guard)
Tags:
Security
,
Software
,
Recommendations
An Interesting Use of a C# Foreach Loop
Posted in Blog by Tieson | geeksneversleep.com
Nov
4
2008
I've seen many different ways of clearing the contents of controls in a Windows Form object, some of which can be quite elaborate. While it can be fun to come up with these convoluted schemes, there is an easier way. Here's what I do...
I implement a foreach loop, and iterate over the form's collection of Controls, comparing each control to the Textbox control type, using the is keyword. This keyword, is, performs a type comparison. If the Control is the type I am comparing it to, then I perform a function call, in this case a call to the Control's ResetText() method.
The beauty of this chunk of code is that it scales with the form itself. If the form has 3 controls or 300, the same code can be applied without modification.
Pretty sweet, huh? Here's the code (written for C#):
foreach(Control ctrl in this.Controls)
{
if( ctrl is Textbox )
{
ctrl.ResetText();
}
}
Enjoy!
Tags:
Snippet
,
Foreach
,
Type comparison
Coding Like Forrest Gump
Posted in Blog by Tieson | geeksneversleep.com
Oct
24
2008
It never fails. Every semester, I have to help at least one student who wants to create some convoluted, twisted function for their homework assignment, when it really isn't necessary. I tend to squint at their screen for a moment, scratch my head, and ask, And what are you trying to do here, again?
It seems to be a two-fold problem. The first (and I know I've harped on this before) is just plain a lack of planning. No matter how many times the instructor hints at it, students just don't seem to like taking a little bit of time to sketch out their programs before they fire up their IDE.
The second problem seems to be related to over-thinking the task at hand. The students seem to want to throw a whole lot of code at a rather simple task, or store some data in a type that really isn't a good fit for what they need to do.
It's frustrating at times, but I can eventually convince these young gentlemen and ladies to take a step back from their development environments and watch and listen as I sketch out simple data structures on some scrap paper.
Once we have a good, simple data structure to store data in, the input phase tends to become a lot easier, and this makes every other step that follows easier, too.
So, maybe Forrest should say this if they ever make a sequel: I may be a simple man, but I know what good code is...
:)
Tags:
Coding
,
Forrest Gump
,
Planning
Why Sherlock Holmes Would Have Made A Kick-Ass Programmer
Posted in Blog by Tieson | geeksneversleep.com
Oct
8
2008
One of the few quotes I know from the world of Sir Arthur Conan Doyle's Sherlock Holmes goes something like this: When you are trying to solve what appears to be a mystery, eliminate the obvious first. Whatever is left, no matter how extraordinary, is the answer...
Sometimes, those of us who think we have a good grasp on programming fall prey to over-looking the obvious. We get a bug in our code, and we can't figure it out. We rewrite large sections of code we think are the problem, again and again, cursing profusely when the error persists.
Finally, we break down and seek help from our peers. If we're lucky, one of those guys might ask the magical question that leads to a memorable fore-head smack, and the problem is solved...
I just had one of these oh-so-enjoyable moments. I've been trying to build a new script for this site to update my new page content, and it's been failure after failure. Finally, I seek help from one of the resident instructors I know (who happens to be fairly good at this web-thing) and asked him for suggestions. One of them? Have you tried echoing the query string to the screen after the post, so you can see what you are sending to the database?
he asks. Uh, no.
I says.
D'oh.
Oh, look. The primary key field is empty. Hey, that might cause problems, right?
...
Yup.
SMACK!
:p
Tags:
Missing the obvious
,
Sherlock Holmes
It's Project Time!
Posted in Blog by Tieson | geeksneversleep.com
Sep
16
2008
GRCC recently updated a lot of their network structure, the applications the students use, and a host of other improvements. Unfortunately, these upgrades broke an application we use in the Open Lab (where I work) called TutorCall. TutorCall was a little applet students could invoke that would summon help if they needed it. This was nice, because it meant we did not constantly have to be looking around to see if someone needed help...
To make matters worse, the guy who developed TutorCall won't fix it unless GRCC hands him a nice fat check, which they are disinclined to do. Leaving us with no TutorCall. Boo...
So, someone had the great idea that I could write a replacement, since I've been complaining about wanting a project to work on. I can do it, but I was kinda hoping for a relatively easy semester.
Anyway, from what I already know, and combined with a bit of research, I have come to the conclusion that the best replacement would be an ASP.NET web service combined with a couple of small desktop clients. The logic is easy to work out, there is a lot of code already out there that can be adapted, and (most importantly) I can write most of the code in C#...
I will keep y'all abreast of developments as they occur. Also, if you have any suggestions, feel free to comment here.
Cheers!
Tags:
Code
,
Web service
,
Development
What Ever Happened to Thinking Logically?
Posted in Blog by Tieson | geeksneversleep.com
Sep
12
2008
Perhaps I only see this because I have attended a two-year college, but it seems to me that students entering the programming field are not really being taught to think logically, but rather to regurgitate code that someone else has already worked out. Instead of focusing on teaching these students to develop good analytical skills, and teaching them good planning techniques, we instead shuffle them through boring, pointless, unchallenging exercises that don't really teach them anything they can use in the real world.
One of my biggest pet peeves is hearing a student say, I know blah blah blah and blah blah blah, and blah blah blah...,
of course inserting the current fads in programming languages. Big whoop, I say. Can you actually explain your code? Do you understand the flow of data in your application, or does it just work?
I would rather help students build UML diagrams and pseudo-code than scan through what is often times poorly executed code to find some weird bug. I mean, learning a language's syntax is important, but having a good, well-thought-out logic to follow makes writing code much, much easier. Write the logic, then research what code is necessary to implement that logic in your language of choice...
The best analogy I have heard for this so far is this: if all you know how to use is a hammer, every problem looks like a nail. That means you are adapting your problem to fit your solution. (This is bad!) Now, if we teach you to think analytically, we give you all the tools you need to develop an original solution to your problem! (This is good!)
So, am I just way out in left field on this? Do you agree? Disagree? Post your thoughts below...
Obsession of the moment: M-V-C
Posted in Blog by Tieson | geeksneversleep.com
Sep
4
2008
I am, above all other things, a programmer. I'm one of those guys that stay up late writing code, reading technical reference manuals, and drooling over case tools. So I suppose it comes as no surprise that my newest obsession focuses on a tantalizing new PHP framework a friend of mine recently turned me on to, CodeIgniter.
CodeIgniter interests me so much because it implements a Model-View-Controller development pattern. M-V-C is a big fad in web development right now, with good reason. As the awesome people at EllissLab will tell you, MVC is a software approach that separates application logic from presentation
. In a nutshell, it means we have content separate from structure separate from style. That is something of a Holy Grail for web developers, since it makes our web sites ever so much more efficient, clean, and easy to maintain.
With a good framework like CodeIgniter, you could build a custom CMS to rival pretty much any popular software in use today (Wordpress, Drupal, Joomla), but without the need to spend weeks working weird bugs out.
I also have been turned on to CakePHP, a very similar MVC framework. It's user docs seem to be a little easier to read, and the website definitely is appealing. I mean, who doesn't like cake?
:)
I haven't had time to do more than browse about half of the user manual for each framework, but from what I have read so far, I know what I am using for my next big project...
Check them out, and if you have time to try either for yourself, please leave some comments here and tell us what you think!
Tags:
CodeIgniter
,
MVC
,
Web development
Blog
How-To
Code
Web