XImplosionX

Technology

Excuses, Excuses…

by Patrick Godwin on Jan.01, 2010, under Life, Technology

Hey, turns out I have a blog. Who’d have thought.

I really must apologize for my not updating. I’m sure i could come up with plenty of excuses, but where would that get us? So instead, I’m going to give a brief update as to what is going on.

First and foremost: Happy New Year! 2009 was an interesting and hectic year. We saw history made when Barrack Obama was inaugurated as the first African American president. We had quite a few notable celebrities pass away this year, which got more news time then most issues.
It was also a very good year for social media. Since I joined Twitter, I saw many of my friends from school joining. I’ve also seen many people joining, Facebook. What this has taught me: Social Networking is here to stay.
It was also an exciting year for technology. This year we saw Microsoft announce Project Natal, release Windows 7, Windows Server 2008 R2, Visual Studio 2010 Beta 1 and 2, and the Zune HD. I was very excited to see these technologies released, and I can safely say I’ve gotten to play with all except Project Natal.
But 2009 had it’s low points. Most notable: the economy. It’s been a hard couple of years, and there is more to come. But we will get through it.
Now, seeing as it is 2010, I should make a New Years resolution, no? Well, I think I can make two very simple resolutions: Blog more, and write more code. Like I said, I could create multiple excuses as to why I have not done either of these lately, but where would that get me? So instead, I’m just going to work harder at it.

In closing, I’d like to give shout-outs to people online.

  • LittleKuriboh: You are awesome. You created a YouTube sensation, and have always brought a smile to my face. I wish you the best in the new year, and once again congratulate you on your Open Web Award.
  • Kelson Thomas: You always spark interesting conversation, be it on Twitter, in class, or over IM. You’ve made 2009 a hoot and a half.
  • Eric Hawtin: You’ve been just as entertaining as Kelson. You always keep Twitter alive and provide good (well not always) input to our conversations, and I thank you for that.
  • Microsoft: We saw this coming. They had a great year in releases, and I look forward to seeing what they will do in 2010.
  • Alfred Thompson: You always have interesting resources for students, and you always write interesting blog posts. You’ve had me scratching my chin more then once. I thank you, and wish you the best in 2010

I could go on for hours, listing the people who made 2009 a good year, but I won’t, as that would take up a few pages.

In closing, I’d like to thank everyone for an awesome year, and I am excited to work with you all in 2010. You’ve all been great, and I am keeping my head high for the next 365 days.

Thanks for reading,
Patrick Godwin

3 Comments more...

Does Managed Programming Make Us Lazy?

by Patrick Godwin on May.25, 2009, under Programming, Technology

With the popularity of managed languages in recent years, we have no doubt seen changes in the way we program. In recent years, we’ve seen many additions to the .Net family of managed languages, such as WPF, LINQ, WCF, and XNA, to name a few. But have we given up our good programming practices for the convenience of managed languages?

I don’t know about the majority of programmers out there, but I find myself writing sloppy code while working in a managed language. I’m not saying that I break all rules of style or flow, but I’m not as careful as I usually am. Let’s say we’re writing a function in C++ that calls a simple integer type function. The rule of thumb would be to check what it returns, and based on predetermined conditions, handle any errors that may arise. A pattern I’ve noticed, mainly with C# programming, is a total disregard for exception handling. And even if the exception is handled, it isn’t handled well. Last time I checked, “Throw Exceptio” was not a smart way to handle errors.

I’m sure there are many other examples of Managed Programming leading to lazy programming. This is only the most obvious one I’ve delt wtih. What issues have you had with managed languages? Please write about them in the comments, get the conversation going.
Thanks for reading,
Patrick Godwin

Note: I’m very sorry for the short length of this post. The quality of this post is also extremely bad, and does a poor job of articulating my thoughts on the subject. Mea culpa.

4 Comments more...

What Language Should I Choose?

by Patrick Godwin on May.10, 2009, under Programming, Technology

I get asked this question at least once a month. Someone I know will come up and ask me this question. I can never answer this in a clear, concise way. So I’ve decided to write a blog post on all the Pros and Cons of the languages I know, and refer my friends to this post.

VB.NET: I love this language and I would recommend it to anyone starting programming. I learned how to program in Visual Basic 2005 and I can safely say it is one of the easiest languages I have ever used. The syntax reads in an easy, clear way. You don’t have to worry about silly semi-colons or curly braces. Building a User Interface is simple with the Visual Studio WinForm designer. The inclusion of the .NET Framework in Visual Basic has given some great resources to this already great language. The only downside to VB.NET is the dependence on the .Net Framework/Mono Runtime. While this is possibly one of the greatest features in the language, it takes away a lot of the power you see in an unmanaged language. Not to much of an issue, but still a con.

C#: C# is another great language that I would recommend C# to someone who has some prior experience. While the syntax and program design can be annoying at times, it is a very powerful language. While sharing the same advantages as VB.NET, it also has integration with the XNA Framework. This is by far the best managed Graphics API available. With it’s support for Windows, XBox 360, and the Zune it destroys every feature available in Managed DirectX. The biggest issue with C# is, again, it’s dependence on the .Net Framework/Mono Runtime and it’s slightly annoying program design.

C++/C: This is the language I always suggest when I am asked that question. While it is one of the hardest languages to learn, it is the best. I feel that learning a good, unmanaged language gives you a proper idea of independent programming. You aren’t relient on a managed environment, like in the .Net and Java languages, which means you have to manage your own memory. This teaches developers safe coding practices and helps them develop clean code. Once you have a good hold on the language, the object oriented concepts should be studied. This is when C++ becomes a true powerhouse. This allows you to develop complex applications or even great game engines. Once you have C++ under your belt, most other languages should come quite easily.

Python: A very powerful scripting language. You can accomplish many tasks in Python with relative ease, given it’s large, supportive user base. The only issue with Python is it’s annoying syntax. I swear I have so much trouble reading Python code for education. In a language like Python it can be hard to enforce good style, which is a big minus for the language.

Java: What can I say about Java? It has to be one of the worst languages I have ever TRIED to learn. I want to know who the genius was that, while writing the AP Computer Science Curriculum, thought “Well, we assume that these students have very little, if any, prior programming experience. What language should we choose? I know! Java!”. Whoever this man, or group of men, was, he screwed up big time. Why choose a language that has an annoying syntax and no advantages over the .Net Framework and force students to learn it for what should already be a tough class. While it is managed like the .Net languages, the Java Runtime Environment is receiving updates ALL the time. What are they constantly changing? Honestly, if you program in Java you have the patience of a saint. It takes real skill to tame this monstrosity of a language.

Now there are many more languages thant those I have covered here. MANY more. But these are the languages that have seen the most attention in recent years, and these are the languages I have used. I’ll always suggest C++ and then VB.NET for a beginner, but you should take everyone’s suggestion as just that, a suggestion. Read some tutorials, try each language, form your own opinions. Whatever you find the easiest and cleanest should be the language you chose.

Thanks for reading,
Patrick Godwin

Edit: Forgot to mention Mono when talking about the .Net Languages. Edited for clarity.

4 Comments more...

High School Computer Science: A Student’s Perspective

by Patrick Godwin on May.06, 2009, under Technology

Computer Science curriculum has always been a hot topic for discussion, but in the last few years I have seen more in more debate over how Computer Science should be taught. All the time I hear different School District Higher Ups and Teachers trying to come to some sort of agreement on a good plan. From what I have seen, most Computer Science classes are teaching the wrong ideas at the wrong time.

I’ve seen this first hand in Port Huron Area Schools. Don’t get me wrong, I love my programming classes. But there is no set curriculum for our District’s Computer Programming Class. How can a Computer Programming class exist without a curriculum. This forces the teacher to teach what the majority will understand the best while the more advanced students have to focus on their own skills. That isn’t a huge problem, but there should still be some sort of guidelines for teaching the class.

Another issue I’ve noticed with our Computer Science curriculum is the definition of a Computer Science class. When did a Computer Applications class become a Computer Science class. One of the Counselors at Port Huron Northern has gone around telling students that “It looks good to have a Computer Science class on your Transcript. I suggest you take Computer Applications”. Last time I checked “This is how you use Microsoft Powerpoint” was not acceptable as a Computer Science class.

Now I’m sure this is not the same around the country, but this is the main issue I’ve noticed. I also think, from glancing at the AP Computer Science course outline, we’re teaching the wrong things in introductory Computer Programming classes. Style is something that should be emphasized from day one. Button1 or Div1 are never acceptable if you ask me. They then spend the first few weeks of a class going over the introduction to a language, then move on to working on projects. In reality, they should begin by teaching theory. Students should learn how a program flows rather then jumping head first into a programming language. I learned this the hard way when I decided to pick up VB.NET as my first language. I made multiple design mistakes, spent many hours browsing MSDN for guidance, and used silly variable names like Button1 or TextBox2. If only I had understood good style or even the basic concepts of If/Then, For/While Loops, and Switch Statements.

According to the AP Computer Science curriculum, the first part of the course should be spent teaching Object Oriented Programming. This I support. But on closer examination, they recommend introducing Object Oriented Programming. This is ridiculous. If the student has taken a pre-AP Computer Science class, they should be introduced to the basic concepts of Object Oriented Design. If half the class is spent teaching a concept, then the second half is spent teaching the concepts in a language like Java, there is something wrong with that class.

Now these are just my thoughts, but I’m sure many people agree with me. Anyone else have an opinion on this? Your thoughts and comments are always welcome.

Thanks for reading,
Patrick Godwin

10 Comments more...

House Cleaning and News

by Patrick Godwin on Apr.25, 2009, under 3D Modelling, Misc, Programming, Technology, xOS

Well, I finally have my own Domain name and dedicated space on a real server. I’m still quite grateful to Kevin for providing me a temporary server until I could figure out hosting. But it is quite nice having a regular domain name.

That said, I have some housecleaning issues I need to address:

  1. Lack of FTP Access: This one is really no one’s fault. My boss (who is hosting this on his BlueHost Server) is currently having issues with FTP accounts. Some business about a customer uploading illegal software to his share of the server without anyone knowing. No big problem, should be solved in a few days.
  2. WordPress: I’m not a huge fan of Wordpress. Rather, I prefer having my own software running on a server. Wordpress is great, don’t get me wrong. But it dominates my website and uses up one of my bosses limited SQL Databases. I’m looking to develop an alternative Blogging/CMS system. Should be a good chance for me to hone my PHP Coding skills.
  3. Boring WordPress Theme: This relates directly to number one. I already have a theme chosen, but no ability to upload it to my server. This will be solved when I get my FTP account later this week.

That said, I am looking forward to being able to share my thoughts on certain subjects, mostly related to technology, and have a venue for displaying my work. I’m always learning about new technologies and working on advancing myself as a programmer.

First up: xOS. A while back I was reading up on Operating System development, and I came across the site OSDev.org, a website dedicated to discussing Operating System development and Theory. This website led me to BrokenThorn Entertainment, which has an excellent series of tutorials on Operating System development within the Visual Studio 2005/2008 IDE. Following this tutorial has allowed me to develop a basic kernal:

xos-build-1

The interesting thing about this tutorial is the usage of MS Visual C++ as a platform. It covers the needed runtime programming to use this runtime, which allows the developer to set up a very clean Object Oriented kernal. The ability to create classes that function at such a low level in about 14 tutorials is amazing. They also help you create a nice DebugPrintf(); function that allows you to output text to the screen without a major source code change. Nothing too incredible impressive, but convenient. A simple change from:

DebugPrintf(“Hello world. This is xOS Build 1.”);

To:

DebugPrintf(“Hello world. This is xOS Build 1.\n\nIsn’t that cool?”);

Produces:

xos-build-2

Operating System is one interesting subject.

Another skill I am beginning to learn is 3D Modelling. So far I’ve only ripped models from known video games for the purpose of applying a Bone/Skin system to the mesh. I started with Kingdom Heart’s Sora:

sora1

A rather cool model if you ask me. I used the tool 3DRipperDX to rip the model and it’s textures from a Kingdom Hearts Model Viewer. I had to use Windows XP due to Windows Vista/Windows 7’s DirectX 9 Emulation. Note to people using 3DRipperDX: Until the application has proper Vista/7 support, stick with XP. The models I’ve ripped have been nothing but garbage. Anyways, I then used 3D Studio Max 9 to import the .3DR file for editing. I followed a tutorial for model rigging based on Garry’s Mod Ragdoll Creation. I spent about a half an hour rigging a basic skeleton with no finger posing to this model. The output didn’t turn out GREAT, but it was okay for my first attempt at Skeleton Rigging:

render1

This render doesn’t show the major issues with my rig. But the next one should do the job:

render2

That’s better. There is one obvious problem with this render. The vertices aren’t weighed properly. We see the hair being influenced by Sora’s Arms, and that simply won’t do. I couldn’t get an accurate render of the feet, which is unfortunate because that is where the weirdest/most annoying issue resides. The vertices are assigned to a bone on the opposite leg, causing weird issues with moving the feet. Should be a rather easy fix, providing I can get Max 9 installed on Windows 7 (Cannot find my DVD with the installer)

Well, that is about all I have to say tonight. Stay posted to this site for further updates. Comments are appreciated and encouraged.  Thanks for reading.

Yours,
Patrick Godwin

2 Comments more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

    Archives

    All entries, chronologically...