Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Sunday, February 24, 2008

Boise Code Camp 2008

Saturday, March 8th, 2008
At Boise State University in the
College of Business and Economics

Register today to attend free: www.BoiseCodeCamp.org

This free event for technical professionals is produced by the community, for the community.

Code Camp is bigger than ever this year featuring new and exciting technologies, training on fundamentals, a great party, and more.

  • 63 sessions from 45 amazing presenters
  • The best training value available anywhere
  • Fewer slides, more code and examples
  • Familiar names and local real-world coders side by side
  • An incredible amount of talent and information
  • Free lunch, dinner, swag, and giveaways
  • Held during non-work hours (we have jobs too)
  • Sessions for non-coders as well
  • Amazing after party in the BSU stadium Hall of Fame room

No matter whether you are a seasoned coder, a student, a business analysis in software, a project manager, or a hobbyist technologist, there is something at code camp for you. Invest in yourself and come prepared to learn about these things and more:

  • ASP.Net
  • Agile / Methodology
  • Architecture
  • Client Development
  • Databases and DB development
  • Delphi
  • Fundamentals
  • Games & Graphics
  • Google APIs
  • I.T. And Operations
  • Languages & Frameworks
  • Mobile
  • Security
  • Web Development
  • WCF, WF, WPF
  • Virtualization
  • XML and the Web
  • Java, .Net, SQL, Oracle

Register today at www.BoiseCodeCamp.org.

Tuesday, January 15, 2008

What to Expect in Delphi Unicode Support

Allen Bauer has a series of great blog posts (with more to come now doubt) outlining some of the technical details of what to expect with the new changes to support Unicode in the upcoming Tiburon version of Delphi.

So what is the reaction? Some people are grumpy that some of their code might break. Delphi has a long history of backwards compatibility. I am sure CodeGear will do what they can to make as much code as possible work, but this looks like it might cause some problems if you ever made assumptions about the size of a Char (which was generally discouraged) or used a string to store non-text (Which I am VERY guilty of. They are just so dang useful!) Personally I am really looking forward to Unicode in Delphi, even if there are a few growing pains.

Thursday, May 24, 2007

Delphi Jobs

So David I posted a link for a Delphi job listing site, and Joe pulled a chicken little jumping to the conclusion that there are only 4 Delphi jobs in existence. Unfortunately there is not one single source that lists all jobs for any skill or category. You need to do a little hunting.

It used to be that DelphiJobs.com aggregated job listings from a number of job sites, and then allowed you to view them all from their site. It was as close as you could get to a definitive listing of Delphi jobs. Since they no longer do that, here is a snap shot of the Delphi job numbers as of right now:

(Click on the [feed] link to add a feed to your news reader. Maybe Delphi Feeds can include these in a special section!)

Grand total of 1022 jobs! And that doesn't include all the job openings that are not listed on these centralized search listings, or the ones that are filled through networking (the #1 way jobs are filled). Sure, there may be some duplicates between the sites, and some of the jobs postings that are returned in these searches may be mistakes, but it certainly proves that Delphi job market is NOT dead.

It is true that there may not be as many Delphi jobs as other languages, but that is an indicator of two things:

  1. It takes less Delphi developers to complete a project then with many other languages. It is a more productive environment and community.
  2. Delphi developers have greater job satisfaction and switch jobs less often, thus less vacancies.

So it is a good thing!

Wednesday, May 23, 2007

C++ Builder 2007 Announced

Just in case anyone missed the announcement. If this comes out before Orcas then CodeGear will have two IDE's released that specifically support developing for Vista and Microsoft will have 0. Looks like things are returning back to the way they were.

Key features and capabilities provided by C++Builder include:

  • Seamless support for Microsoft Windows Vista Aero, Vista Desktop and Vista APIs
  • Increased ANSI C++ conformance and compatibility including Boost and Dinkumware C++ library support
  • New C++ build flexibility and custom configurations powered by the Microsoft MSBuild engine
  • Up to 5 times in-IDE build performance improvements over prior versions
  • UML C++ source code visualization
  • Integrated C++ unit testing
  • New DBX 4 RAD data access with support for the latest versions of popular RDBMs including CodeGear InterBase®, Microsoft SQL Server, MySQL®, Oracle®, IBM® DB2, and Sybase®
  • C++ IDE enhancements including virtual folders and enhanced C++ structure pane
  • New INDY 10 Internet Protocol component suite

Read the press release

Tuesday, May 15, 2007

Microsoft vs. The World

Everyone knew it was coming, despite Microsoft's claims to the contrary. . . .

In the past, resorting to seeking revenue through patent infringement against consumers is a sign a company is going under or getting desperate. It is only when a company is losing customers at a very fast rate do they resort to assaulting consumers directly. I guess Microsoft has finally realized they are becoming irrelevant and loosing the battle to open source.

According to Bloomberg news, Microsoft "wants makers of [open source] software to pay royalties." Now InformationWeek is stating that instead of litigating or just demanding royalties, "Microsoft wants to create more arrangements that mirror the company's deal with Linux distributor Novell." But my question is what if they don't want to enter such a deal? Then does Microsoft litigate?

Contrary to popular belief, trademarks are the only intellectual property that in unenforced is lost. So you are not compelled to enforce a patent. If you were then most of the patents Microsoft owns, as well as most of the other software patents out there, would be invalidated.

Microsoft claims they only want to reach licensing agreements, but I want to know how are those arrangements that much different then the arrangement provided by the GPL (which essentially provides a reciprocal license of code in exchange for use of the combined result.) If Microsoft wants to use and contribute to Linux then they would in effect be in that kind of arrangement with every other user and contributor of Linux. That is what the GPL does.

First of all, I think they should explicitly cite the patents and the infringement, which they refuse to do. Their refusal to do that reminds me of SCO and their fishing for people to charge royalties.

Now I am a big fan of capitalism, and companies making money - that is where many jobs come from, including mine.

What Microsoft is threatening to undertake is similar to what the RIAA, SCO, and other "intellectual property holding companies" have done in the past. These companies realize that their best source of revenue is to attack consumers. It is amazing that Microsoft has decided they are in that position.

Patent law actually allows a patent holder to attack the user of an unlicensed patent. This is different then trademark or copyright law. So the fact that Microsoft "wants makers of such software to pay royalties" is an indication that they want to go after consumers. Sure they are dressing it up with "license over litigation" claims, but the fact remains they are going after consumers.

Now I am sure you are about to say "Wait, they say they are going after makers, not consumers! This is just like Apple vs. Microsoft, etc." That is where the issue of open source comes into play. Open source (specifically the GPL) is a license where by the user is allowed a license in exchange for their contributions to the code. Interestingly this license arrangement is pretty much explicitly allowed for in the US Tax law. So by saying they are going after makers of open source they are actually going after consumers, and leaving it open to go after pretty much anyone involved. I know I have contributed to some open source projects. Have any of you made your code available for the use of others? If so, then your code may have been incorporated into one of these monstrosities that are robing poor Microsoft of their revenue and they may come after you!

Since they won't tell anyone exactly what parts are infringing, and with what patents, it is obvious they would rather extract a toll then work something out. The open source community, especially Linux, has specifically said if anyone pointed out where and how they were unknowingly infringing they would be glad to correct the situation.

Technorati Tags: [] [] [] [] [] [] []

Saturday, May 05, 2007

Delphi 2007 and Binary Compatibility

A really cool feature of Delphi 2007 is it is binary compatible with Delphi 2006 (on the Win32 side). What this means is that unlike every previous Delphi and Turbo Pascal release (as far as I know) you can keep all your compiled DCU files. That means you don't have to wait / hope / pray for your 3rd party component provider to release an updated release for Delphi 2007, most of your Delphi 2006 components for Win32 will work just fine.

Typically what makes a DCU stay compatible is if the interface section of the unit remains unchanged. The really cool thing about Delphi 2007 is they added a new property to TForm for support of Vista Aero, but they still remained backwards compatible.

Allen Bauer broke the news about how this was pulled off. Steve Trefethen has some more behind the scenes details. And as usual, Hallvard Vassbotn has a great technical write-up on all the details.

One really cool think, is I think it was Nick Hodges that said they might actually go to a release cycle that only every other release of Delphi was a breaking release. That would certainly be cool, but their component partners might not like that so much.

Technorati Tags: [] [] [] []

Free Turbo Delphi, C++ or C#

Just in case you some how missed it, you can get a free Turbo product from Borland / CodeGear. You your choice of Delphi for .NET, Delphi for Win32, C# Builder or C++ Builder, but you can only have one installed at a time. They are based on Delphi 2006. The catch for the free version (called Explorer) is you cannot install components, add-ins, etc. and can only have one version installed at a time. You can buy the Pro version for just a little bit more and lift those restrictions.

[TurboExplorer.com]

Future version will be based on the newer Delphi IDE's. I suspect that after they come out with Delphi Studio 2007 (guessing on the name) with support for .NET, Delphi, C# and C++ then they will have an updated Turbo release. They hinted they may change the restrictions some then too.

Technorati Tags: [] [] [] [] [] [] [] [] [] []

Wednesday, May 02, 2007

8 defensive programming best practices

This article is written for PHP, but at the high level these 8 practices apply everywhere. Here they are (with comments by me). The original article has more comments and PHP specific resources.

  1. Handle unexpected conditions - of course you cannot expect every unexpected condition, but you can write code to handle things when they don't happen as expected. Even if the code just raises an error.
  2. Process external systems data properly - Instead of just assuming all input and output is correct, validate it. Be sure you are getting what you are expecting, and that what your program produces is correct. This is especially an issue with SQL and HTML injection!
  3. Test your code - Hello McFly, anyone home? You need unit tests, regression tests, UI tests, user tests, etc. Then look at what you are not testing and test that. Especially if you are releasing to the public.
  4. Monitor your site errors and act upon them - Whatever kind of development you are doing, you need to log all errors (serious and minor) and if possible centralize them. Then analyze your error logs and do something about it. When you start seeing those exceptions you put in for #1 show up, that means the unexpected happened. Now that you know what it is, you can expect it and act on it.
  5. Do not disclose errors to the users -This is huge for websites. I don't know how many times I have been using a website and it breaks and I am presented with a beautiful debug screen with all sorts of juicy details that if I were a hacker I could make use of. This is the worst with ASP/ASP.NET sites. Remove debug messages when you release - same goes for non-web development.
  6. Damage control - Make sure your program fails gracefully. Save the users data often.
  7. Backup - This is another really obvious one. First of all, use a GOOD source control system so you are backed-up during the development process. Remember to backup your database and other non-source code bits too. Then backup your users data for them. Even if you can't force them to backup their data, at least make it easy.
  8. Do what you can as you can never get defensive enough - This is like Lather, Rinse, Repeat. Once you have done all the above, refactor your code, and go through the steps again. Just be aware that things break. This goes back to #6. What can you do to make sure they don't break to bad? That is a good start.

One other point it makes is "If anything can go wrong, it will." I would not say that every worst case scenario will play out. I will however say that the more possibility for malfunction you leave, the greater the chance. Also, the more users you have, and the more time the users spend using your application, the greater the odds of any errors showing up.

What are your defensive programming best practices?

Technorati Tags: [] [] [] [] []

Saturday, April 28, 2007

Robocode Java Programming Challenge

According to Chris Brandsma, it appears David Starr has thrown down the gauntlet and challenged the rest of us to a Robocode Java Programming Challenge. In Robocode you use Java to program a little 2D robot to maneuver in the virtual arena and do battle with the other robots.

I always thought this was a great type of game. I built a fairly good robot for the 3D D-Robots from PlasmaCode (link no longer available, but I will find it if you are interested). The D in D-Robots is for Delphi, which is actually Delphi Web Script, a 3rd party, open source, Delphi syntax compatible scripting language. Just in case you didn't know, Delphi 2007 for Win32 is out (and ROCKS!) and there is also free Turbo releases of Delphi.

I figure this is a great way to brush up on my Java, and also have some fun doing virtual battle! One major advantage Robocode has over D-Robots (beyond still being available) is that Robocode is open source (as is Java now), so you know it will stick around as long as people are interested. Anyone else interested in a competition?

Technorati Tags: [] [] [] [] [] [] []

Thursday, April 26, 2007

Basics of Compiler Design

Torben Mogensen from DIKU as the University of Copenhagen is offering the text book he has written on Basics of Compiler Design for free use.

I have taught an undergraduate compilers course for over a decade. In the last several years, I have used my own textbook "Basics of Compiler Design". I have now decided to make this available online.

Permission to copy and print for personal use is granted. If you, as a lecturer, want to print the book and sell it to your students, you can do so if you only charge the printing cost.

Technorati Tags: [] [] [] []

Wednesday, April 11, 2007

Delphi 2007 for Win32 Launch Event

May 11th, 2007 is our Delphi 2007 for Win32 Launch Event. You will want to be present to check out this first look at the first new Delphi release since the CodeGear spin-off and the begin of the Delphi Renaissance. It is a very impressive release! Come hear all the latest Delphi news and get those rumors cleared up.

Also at this meeting we will be showing off and using the new Camtasia to record the presentation. It is our goal to find a way to post this recording for everyone to reference after the meeting.

Then in June we will have a Delphi for PHP Launch Event. I am working on door prizes for both events.

Our usual meeting time is 7 PM at our usual Washington Group International location.