Monday, December 13, 2010

NOTES FROM THE WEEKEND: 12/10/2010 – 12/12/2010

THE C PROGRAMMING LANGUAGE

NOTES FROM THE WEEKEND: 12/10/2010 – 12/12/2010

Mobile Development environments:

Android

BREW

Symbian

Blackberry

Palm

Windows

iOS

Technologies:

C#

CSS3

Javascript

Perl

Java

Ajax

PHP

HTML5

Ruby

Python

Rails

This weekend I started studying the C language again. It’s not too different from C# except it isn’t object oriented. It’s procedural.

The thing that I found most important about the language is described in my writings here. The question that always played in my mind is how important is it to learn C again or to know it well.

I’m finding that Microsoft’s languages have not been the language of choice when it comes to changing the world. It has been C and other open source languages. Facebook, Google, jobs in those areas require knowledge in C.

Facebook is having a hacker contest and they stated that Microsoft Languages is not a consideration for the contest.

What I did on the weekend is wrote C on the windows platform and ported that code to the Linux and compiled it. ANSI C is the language of choice here and if we use Microsofts explicitly I run into compiler problems. There are libraries that MS has, which are not standard libraries in C. Which means, what I write become platform depended.

That’s currently the problem with porting applications from the .NET framework in Windows, to MAC, to Linux in the Mono world.

There are framework namespaces supported on windows not supported on other platforms. So I could develop for Windows and not be able to move that code to MAC or Linux without recoding the project.

ANSI C is the goal and purpose for me learning now. I’m going to continue this writing later, but want to port this information here to my journal.

Chat later.

Monday, December 6, 2010

Programming is not hard, we make it hard.

When I decided to write software as a career, one of the most difficult things about programming I personally discovered is being able to port knowledge from one language to the next or from one environment to the next.

Say, the C# language from building nothing but ASP.NET web sites to creating console apps, then moving from that to web forms. Many of the instructors I've listened too do not take a simple approach to explaining how to do that, which makes programming for a beginner extremely difficult.

Programming is not hard.
What makes learning to program difficult is that no one programmer thinks exactly alike. Although there are standards in programming and such. Every person approaches solving a problem differently. What is factored into solving the problem is the layer of knowledge that the person draws from to solve the problem.

If the problem requires the out put of data to the screen and the programmer has only built console applications, then they will most likely develop from that perspective. A web developer would choose a web interface and a Windows Form developer a desktop application.

When I teach courses to students learning to develop I tell them that it is best to purchase books from a single author on a particular language than to get them by title or subject only. Because each author will take a different approach to solving the same problem, the beginning programming may become confused.

Another problem with teaching programming languages is the learning curve. None of my instructors in college, or programming DVD or CD's I've purchased taught from a perspective that would shorten the learning curve. They simply taught. I would hear words like inheritance, delegates and my mind would go, I know these terms but what do they have to do with programming.

Teaching programming from a natural perspective will bring more people into the development world. Helping people make a connection between what they know already and what they are learning about programming will make programming fun and not mysterious.

Growing Interest in WebOS and .NET

I have some growing interest in WebOS and because of it have developed several paid applications for the mobile device.

Since HP and Palm have become one my interest have elevated to great enthusiasm. That excitement is leading me to think of other ways to use the environment, such as connecting it to my .NET development environment and porting over apps to it.

I think this can work.

Installing Windows Phone 7 on XP

My job purchased a number of Workstations for the few developers that we have. The machines are Dell's with 8 processors in them. The machines came pre-installed with windows Vista on them and instantly became a nightmare for running legacy applications and developing on.

Since the license purchase included Windows XP, I hit a button and XP was installed on the machine. The machines that followed came with XP pre-installed, thank God!

Anyway a few years have passed, the database Admin still has Vista on his machine and for a number of years was unable to get security updates from our WSUS server until we later purchased a license from Microsoft and upgraded.

I'm still running windows XP on my development machine and seem to run into problems developing for Windows Phone 7. Since Microsoft officially retired XP back in April of 2009 there is no support. I searched the Microsoft blogs and the Microsoft employees seem to be in a rage with those who are running XP and insist on getting support for Windows Phone 7 development on the OS.

One person on the web posted a solution and I am testing it to see if it works. Here is what they say:

Workaround for installing Windows Phone 7 CTP on Windows XP:

1.Download the Windows Phone Developer Tools CTP Refresh
2.Extract the contents of the setup package by running vm_web.exe /x and choosing a path to extract to
3.Go to the folder you extracted to in step 2 and open the file baseline.dat in notepad
4.Look for the section named [gencomp7788]
5.Change the value InstallOnLHS from 1 to 0
6.Change the value InstallOnWinXP from 1 to 0
7.Save and close baseline.dat
8.Run setup.exe /web from the folder you extracted to in step 2

What I did was right click on the vm_web.exe file I got from microsoft and extracted that into a folder.

I then right click and choose New > Text Document and opened that document.
I entered setup.exe /web in the first line and renamed the file setup.bat and double clicked the file to launch the install.

We will see if it works.