User Interface (UI) Design Is Difficult

Posted on April 8, 2008 by admin.
Categories: Programming - General.

If you are designing a new web app, blog template, VB/C# .NET application, MFC Windows Form, or any other application that a user will interact with, you will  have to deal with UI design.

I believe that many of us that come from a traditional university computer science background find designing UI difficult.  I learned all my college programming via command line, and the only “windows” I designed were for my own personal projects, or toward the end of my university stay when we were given more freedom on projects.

What many of us fail to realize is that to the user, the UI is the program.  That is a very simple but important thing for a developer to understand.  I feel that because of this, it is important to not wait until the end to design the UI.

Some people will tell you that you should design the UI first, and some will say not to.  I think both ways can be appropriate given specific conditions.  The important key as I see it is not to wait until the end.  I like to design a basic UI, and let it grow with the program development, and then at the end I like to clean it up, and beautify it.

Anyway, there are resources a plenty on UI design, from far more brilliant minds than mine, but I just want to share the point that I made earlier, to the end user, the UI is the program.  I think that as developers, if we all keep that in mind, we will make better programs.

del.icio.us Slashdot Digg Facebook Technorati StumbleUpon Yahoo Ask

no comments yet.

Why Commenting Your Programming Code Is Important

Posted on February 27, 2008 by admin.
Categories: Programming - General.

    Programming is exact.  Computers (for the time being at least) only know what you teach them, and only remember what you tell them to.  They will not remember why your “func1()” is returning a “thingy” object, and neither will you.  6 months, or a year from now, you will be completely focused on some new project, and you will have to go back to that project, and you will look through notebooks, and thousands of lines and dozens of pages of code, trying to figure out what that function did.

You can make your situation better by using a proper function and variable naming convention.  Proper naming conventions tend to be language specific at least, but there are some general rules of thumb.  ConvertToCat is a much better function name than convcat for example.  All caps are typically reserved for macros / global variables.  Leading a function with _ is generally reserved for special cases, (like constructors in C#.NET).  My point is that many developers tend to be lazy and abbreviate way too often.

Even with the best naming standards, there is still a need for comments.  I was taught in my CS courses to comment every function start and end, arguments, and return values.  Proper commenting and standards are especially important if you ever plan to work with other developers on a project.  It is better to get in the habit of doing things in the proper way, than to pay the price of being lazy later.  I can tell you from experience that you do not want to spend half a day trying to figure out what some function did and why you are using it in a certain way.

del.icio.us Slashdot Digg Facebook Technorati StumbleUpon Yahoo Ask

1 comment.

What is the Future of Artifical Intelligence

Posted on February 26, 2008 by admin.
Categories: Programming - General.

     Shane and I spend most of our days as code ninjas battling swashbuckling pirates, but we take time out every now and then to ponder the important questions of life… and I believe that AI is definately an imporant question.  At the top of the perverbial food chain (or so we think anyway), what could be more important than an intelligent machine that could unsurp our position at the top?

     AI is not a new concept, it is in fact a concept that came to the forefront in the 50’s, and it was believed even then that strong AI was possible, and would be accomplished in the not so distant future. 

As AI pioneer Herbert Simon wrote in 1965: “machines will be capable, within twenty years, of doing any work a man can do.”Their predictions were the inspiration for Stanley Kubrick and Arthur C. Clarke’s character HAL 9000, who accurately embodied what AI researchers believed they could create.

It became obvious in the 70’s that this was a gross overconfidence in the capabilities of technology.  AI was sort of put on the back burner for a time. 

As the eighties began, Japan’s fifth generation computer project revived interest in strong AI, setting out a ten year timeline that included strong AI goals like “carry on a casual conversation”.bIn response to this and the success of expert systems, both industry and government pumped money back into the field. However, the market for AI spectacularly collapsed in the late 80s and the goals of the fifth generation computer project were never fulfilled. For the second time in 20 years, AI researchers who had predicted the imminent arrival of strong AI had been shown to be fundamentally mistaken about what they could accomplish.

Perhaps we can understand now why anyone in the field of AI reasearch will flat out refuse to make any type of prediction and even mentioning “Strong AI” or “As Smart As A Human” will probably cause ninja swords to come out of the shadows behind you.  The field is not dead, it has just become much more specilized. 

For the most part, researchers today choose to focus on specific sub-problems where they can produce verifiable results and commercial applications, such as neural nets, computer vision or data mining.[16] Interest in direct research into strong AI tends to come from outside the field, from internet entrepreneurs (such as Jeff Hawkins) or from futurists such as Ray Kurzweil.

Most mainstream AI researchers hope that strong AI can be developed by combining the programs that solve various subproblems using an integrated agent architecture, cognitive architecture or subsumption architecture.

The human brain has roughly 100 billion neurons operating simultaneously, connected by roughly 100 trillion synapses.[18] By comparison, a modern computer microprocessor uses only 1.7 billion transistors.[3] Although estimates of the brain’s processing power put it at around 1014 neuron updates per second,[19] it is expected that the first unoptimized simulations of a human brain will require a computer capable of 1018 FLOPS. By comparison a general purpose CPU (circa 2006) operates at a few GFLOPS (109 FLOPS). (each FLOP may require as many as 20,000 logic operations).

del.icio.us Slashdot Digg Facebook Technorati StumbleUpon Yahoo Ask

no comments yet.

Error Reading From File - Install Shield

Posted on February 11, 2008 by admin.
Categories: Programming - General.

I have noticed clients complaining of getting this error before, and at first I was puzzled.  I had just tested the installation of my application, and everything worked perfectly.  Then I realized the problem:  The client downloaded the installation package (a zip file) and tried to run the installation directly out of the zip file.  I call the client and ask them to unzip the package to a file on their desktop (just so its easy to find) and have them run the installation from the unzipped file, and no errors.

del.icio.us Slashdot Digg Facebook Technorati StumbleUpon Yahoo Ask

no comments yet.

How To Convert Lit to MP3

Posted on December 13, 2007 by Shane.
Categories: Books - Fiction, Books - NonFiction, Computers - General, Programming - General.

Disclaimer: The information in this post is meant to be educational only and not to be used to commit a crime, regardless of which country the information is received in.

(more…)

del.icio.us Slashdot Digg Facebook Technorati StumbleUpon Yahoo Ask

no comments yet.

Can’t Get Excel To Sort Columns!

Posted on by admin.
Categories: Programming - General.

Many of us code monkeys use excel from time to time to do various tasks, and for me it usually involves thousands of lines of phone calls from our CRM software’s database.  So the process for me typically is as follows: go into said CRM software, export to a csv file, import said csv file into excel.

The data source you are using is irrelevant, but this type of thing seems to happen when importing data from an outside source.  I will explain why this happens, and tell you how to solve the problem.  When you import the data from a csv file, you sometimes have blank columns.  When you then click on a column to sort it, and there are blank values or especially when there are entire rows that are blank, excel will only sort the column you have clicked on, without expanding the sort across the entire data set.  This is usually bad, as you have now sorted a column but all the other columns don’t match the one you have sorted.

The solution to this is after you import the data, click the top left corner to select the entire sheet, and then click sort.  This will effectively filter out all the blank data rows.  Now that there are no blank rows, you can click on any column you wish, and click your desired sort method.  It will now ask you to expand your sort, which is what you wanted.

del.icio.us Slashdot Digg Facebook Technorati StumbleUpon Yahoo Ask

no comments yet.