Archive for the ‘Delphi’ Category

CodeRage II

Monday, November 12th, 2007

CodeRage II

Be sure you are registered to attend CodeRage II. This is CodeGear’s second virtual developers conference. Being virtual it is a whole lot cheaper and easier to attend. The key is to actually schedule time to watch sessions and be sure you are not working or otherwise distracted. If you are overseas that gets even more interesting.

You can always catch the replays later, but then you miss out on the live chat and Q&A session. I must admit, as a presenter it is odd being in the chat room with the attendees while you are presenting - you are both the presenter and the “peanut gallery” at the same time.

You’ll see sessions on Delphi, Ruby, Java, PHP, C++, Databases, .NET, Win32 and all the latest CodeGear tools and technologies.

I’ll be attending and presenting both. I hope to see you there, virtually of course!

Just Talking to My Self

Wednesday, November 7th, 2007

There is something rather trippy about debugging a server that opens a socket and talks to itself.  Have to pay really close attention or Delphi will trace back into the server again, and all of a sudden you are someplace entirely different in the application.  Of course if you have a break point that gets triggered by the connection you had better disable it before you connect again.

Now to figure out if the server can get the information it needs from itself without going through a socket connection to itself.  I can see that being a bad scenario if it keeps opening new sockets back to itself again. . . .

Almost as much  fun as leaving comments and ping backs on your own blog.

The Missing Delphi BITS Demo!

Friday, November 2nd, 2007

Back when I did my first CodeRage presentation I lost my BITS demo I made due to a computer failure. Well, I recreated it for my PNWDUG presentation last night. Here it is! Currently it will only work with the original TLB import (included), but you can modify it easily I am sure. See the original post for more information. Enjoy!

[Download] [Original post] [View Code]


				

Advanced File Transfers with HTTP and FTP

Tuesday, October 30th, 2007

As Nick already pointed out, I am presenting this month at the Pacific Northwest Delphi Users Group.  This is based partially on my CodeRage presentation from earlier this year, but since it will be a live presentation I’ll do a lot of the demos based on audience questions and suggestions, so it could go in a whole new direction.

Thursday, November 1, 2007 6:30 - 9:00 pm

Advanced File Transfers with HTTP and FTP

Presented by Jim McKeeth

Ever transfer a file via HTTP or FTP? That is easy with Delphi and Indy, but what if you want to resume a broken download, only download part of the file, or download the same file from multiple servers? Now things get a little more interesting. This month’s PNW DUG focus on advanced file transfers with HTTP and FTP, and if we are lucky a little Microsoft Background Intelligent Transfer Service or BITS (used for windows update.)

Jim McKeeth, who recently relocated to the Pacific North West from the Boise Idaho area to work for WideOrbit, will be presenting. Before moving here, Jim was the 7 year president of the Boise Software Developers Group and Camp Director at the Boise Code Camp. He also presented at BorCon, CodeRage, and is scheduled to present again at the upcoming CodeRage II. In addition to presenting, he is also a co-contributor to the book /Building Web Applications with ADO.NET and XML Web Services/ for the chapter on consuming .NET Web Services on Linux with Kylix.

Meeting Location:
Bellfield Office Park Conference Center
1150 - 114th Ave SE
Bellevue, WA 98004

www.pnwdelphi.org

Differences in desktop VMWare versions

Wednesday, October 17th, 2007

As a developer, VMWare provides a great way to test your software and version control your entire development environment. You can do it for free too.

Version controlling your client requires just installing Delphi in VMWare and doing your development in the VM. Then when you have a release you backup the entire VM and move forward, able to change your packages, libraries and components without fear. Then if you need to go back and make a one off on the previous release you can go back to that backup and everything is setup just as you left it. Naturally you keep your source code in a version control system with the versions marked and forked correctly.

Technically VMWare claims to have 2 desktop versions: VMWare Workstation (their desktop powerhouse) and VMWare Player (their free version), but their base VMWare server is very similar to VMWare Workstation and is also free. I’ve always just used VMWare Workstation, which is what I recommend if you have the choice. But if you are on a budget, or want the latest version without upgrading (what happened to me) then here is a feature matrix of the differences for your reference:

Version Make new Snapshots Multiprocessor VM’s Drag & drop* Price
Workstation Full Multiple and forks 1 or 2 CPU (if host supports) Between host and guest $189
Player No, w/ limited editing None* Yes, but can’t change Same as Workstation Free
Server Full Single Snapshots Same as workstation No drag and drop Free
  • Drag and drop requires VMWare Tools to be installed.
  • While player has no Snapshots, you can always backup the whole VM.
  • Server has the added bonus of connecting to a VM on a remote VMWare server or locally.
  • Only Workstation has multi-monitor support.
  • Server and Workstation have a nice quick switch view for running multiple VM’s at once.

For development, VMWare Workstation is really the best. It has a number of other features not even listed here, like video capture of the screen. There are a lot of other features in common on all three too.

One last tip: If you can, get the Volume License version of Windows XP to install inside your VM since it does not require activation or reactivation.  What an annoying feature of XP - make a change to the VM and it comes up telling you that you software is now illegal and no longer works.  I believe the Volume License version of the Enterprise edition of Vista also circumvents the activation hurdle, although with 120 day evaluation, that isn’t such a big deal.

Are there other differences I am missing?

MREWS and Threading in the Night

Monday, October 8th, 2007

So I wanted to look up what exactly MREWS is (I had a vague idea) and found this great resource: Multithreading - The Delphi Way by Martin Harvey version 1.1.

The introduction states:

This guide is intended for anyone who is interested in improving performance and responsiveness in their Delphi applications by using threads. It covers a range of topics from absolute beginner to intermediate level, and some of the real world examples raise issues bordering on the advanced. It assumes that the reader has a reasonable knowledge of Object Pascal programming, including simple object orientation, and a working understanding of event based programming.

A lot of really good information on threading there, and Chapter 11 even covers MREWS. Despite being last updated in 2000, I would say it is still a good reference.

It would appear that Martin Harvey originally published his paper elsewhere, but then the original site went down. Now it is mirrored on another server.

WideOrbit wants Delphi and C# Developers

Friday, August 31st, 2007

The company WideOrbit is looking for all sorts of developers. Delphi, C#/ASP.NET, JavaScript and C++, including leads and managers. They have 12 openings each for the Delphi and C# Developers too.

The positions are divided between their Seattle, San Francisco and Denver offices.

Did you know. . .

Friday, August 31st, 2007

So Nick Hodges posted a Did you know in response to Steve Trefethen’s challenge. I thought I would get in on the act.

I was actually unfamiliar with the keyboard shortcuts Nick shared. I am an old school keyboard shortcut kind of guy and still use the [CTRL]+[K] shortcuts for the most part (go WordStar!), so I use the [CTRL]+[K] + [I] and [CTRL]+[K] + [U] equivalents instead.

Did you know you can use [CTRL]+[K] + [N] to convert the selection to UPPERCASE? and [CTRL]+[K] + [O] to convert it to lowercase?

There may be a non [CTRL]+[K] alternative, but I don’t know it. What would be slick is if there was a “correct case” conversion that would convert it to the case it was declared in. I’ve seen plug-ins that do that though.

Delphi Jobs Everywhere!

Thursday, May 24th, 2007

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!

Using a .NET Assembly via COM

Saturday, March 31st, 2007

My article on CodeGear Developers Network.

Abstract: Using .NET Assemblies as COM objects in Win32 programs is simple, once you are familiar with the necessary hoops. This article outlines the steps necessary and provides a few tips to improve your experience.

I needed to do this, and wasn’t able to find any step-by-step guide, so I wrote one.

al assembly attribute cache com command dll exe file following gac gacutil key myassembly net object path step strong tool

created at TagCrowd.com