Globalscape’s GSFTP on Windows 2008 with SQL 2008
Installing the SFTP server on Windows 2008
Installing Globalscape’s GSFTP system on a Windows 2008 system is kind of a pain. You have to do a lot to get it in place to run properly:
-Go to your Windows 2008 server and install the server program–do not start it yet
-Go to a non Windows 2008 (Windows 2003 would do nicely) and install the server software there.
-Zip the contents of the c:\program files\globalscape on the Windows 2003 server and copy it to the Windows 2008 server
-Unzip the contents of the file from the Windows 2003 into the c:\program files\globalscape folder — replace all the files in there
-open a command prompt as the administrator and navigate to the SFTP’s folder within c:\program files
-register all of the dll’s manually using the regsvr32 command
-Now… start up the sftp server software and register the software with globalscape
-next, go to the edit menu and hit the service applet menu
-install the service and start it
-you should be golden now!
Even better, we ended up using SQL Server 2008 as an ODBC authentication provider, so….
-We had to install SQL 2008’s management studio along with the data access libraries
-Next, in your connection string, you just have to remember to include the Driver directive
Many thanks to the guys at Globalscape for some great ’support’ even though they don’t officially support the platform!
Open Comments
I realized that comments were closed on the blog–so I fixed that–no more closed commenting, so kvetch away!
A quick freelance gig
I always love working with small business owners–they care about their site since they can see it as a real-life source of income and see it as an extremely important tool in their arsenal. I really enjoy working with driven, dedicated and interested small business owners who can see the vision on how a site can expand their business. One of my friends was looking for a site to promote her new business venture in the beauty/hair care industry and after a few conversations, a few nights in front of illustrator and a few weeks playing around with the details, a site was born.
I’m not going to lie–I don’t know a whole lot about the industry or even how the whole hair extension thing works, but after looking at her competition, it was pretty clear that it wouldn’t be too hard to put together a nice site on a budget to garner the market and drive business her way. Our goals at this point are to get her listed highly in the natural search in Google and get some business going her way in the form of requests for appointments via phone and email. The site’s really nothing more than a sales lead generation system right now with a custom design and some .net 3.5 stuff sitting behind it but there are a lot of great ideas on how to expand this past sales lead management to a full-service business management portal. Check it out and if you’re in the San Diego area and need a hair cut–I have a friend you can call.
Digsby release!
I mentioned a new multi-protocol IM client a while ago and today the Digsby team released their 1.0. Their blog labels it as Build 32, and it’s available from their site–check it out and let me know what you think.
Recruiting Developers… en masse
I think this is just about the coolest idea I’ve seen in a while: a bunch of start-ups looking for engineers in Boulder, CO have banded together to run a huge recruiting event (check it out at http://boulder.me/).
There are a few things that make this especially interesting:
- You have to apply to get into the party
- The party is really exclusive
- If you’re good enough to get in, the party is free
I really expect this to go very well for these companies–they’ve put together a great combination of exclusivity and interest (TechCrunch picked it up pretty quickly). If you’re good enough–you can go party, get schmoozed and find out about all the cool and new ideas out there in the start-up sphere.
I’ll be keeping an eye on this one–but check it out yourself if you’re an engineer and unhappy with your current position or you’re a rockstar looking for the next big thing.
Lessons from SSO Callbacks
I used to work on a system that implemented a single sign-on system implemented with CAS (Check it out at http://www.ja-sig.org/products/cas/). I’m not going to lie–it was probably the most painful implementation I had to work with in that system because it was hastily put into place. Apart from the major issues that we had, I took away a few cool ideas on how to synchronize single point-of-focus systems.
Cross database asynchronous calls should be done through web services! You have a few options that could seem like a ‘good idea’ at the time, but here’s my rough account of it:
1. You could write a big conditional statement and continue to grow it as your system grows
2. You could write dynamic SQL to dynamically insert data directly to a different database
3. You could build a service application to gather the data and post it, via web services to the child databases
The first option is a great idea–so long as you have 2 different databases and you aren’t worried about linked server connectivity. Apart from the obvious issue of hard failures if and when either system becomes unavailable, scalability is a huge problem with this solution. Assuming that you use some sort of compiled stored procedure or extended stored procedure, you have precompilation on your side, but not much else.
The second option is far more sophisticated in that it can account for an expanding system and multiple subscribers to a single system. The downside here is that you run the risk of ‘really bad things’ happening with your dynamic SQL–it’s possible, but fairly unlikely that you’d end up creating a wider exposure to SQL injection, assuming that this process is purely internal. Again as with the big conditional statement, you’re also wholly dependent on complete up time and the system would be generally fault intolerant.
Finally, the most complex, but probably the most scalable and robust solution would be to create a service application to interface with the database and publish data to web services set up in front of each of the child databases. The application could handle the routing and REST or SOAP formatting while an integration with a technology such as a durable message queue in JMS or MSMQ could ensure that no data is lost and all data is properly routed and posted successfully to a web service.
The application for this process is fairly limited, but very useful when you find yourself in a bind. A data routing and synchronization process is generally only needed in larger, disparately developed and somehow unified application (as in acquisition and rebranding of sites under a parent company name) where asynchronous data synchronization and proactive data publishing is necessary to keep disparate systems’ data in sync. Let me know if you have any other ideas–I’m sure there are ways to improve the general approach!
Microsoft Bashing…
So Office isn’t all that hot, and there are plenty of alternatives. Windows is a reality for most users as the defacto operating system that you end up with when you buy any new computer that isn’t from Apple. But a lot of people are decrying the stagnant position of Microsoft against the Web 2.0 companies and their inability to compete on the same level. I completely agree with Dan Kimerling (Microsoft’s Real Problem: Facebook is the New Outlook, and Other ways that Redmond is not Listening to Generation Y) but I don’t think that he’s really giving any credit where credit may be due.
Granted, the ways of old are behind us–Windows and Office aren’t the coolest thing on the block any more and as more and more viable alternatives come out of development and into the light, we may see a migration of users from one platform to another. Serverside, however, there are a lot of things going on in Microsoft’s development package that are keeping things interesting for developers. As always, there’s the standard integration with their own products to look at, but beyond Microsoft-specific features, the .net Framework has grown leaps and bounds since it’s 1.1 and 2.0 releases. SQL Server 2008 is a great DBMS and Microsoft continues to deliver solid (well, if you look past the iffy 2000-2005 upgrade paths), reliable development products that give power back to the developers. Many Web 2.0 sites are built on the .net framework, and while there are others out there, such as Twitter that was based on Ruby, it’s really rare to see many people departing from the two standard frameworks: some derivative of JSP/Java or .net.
All that being said, maybe the pricing model for .net isn’t really there for them to base their business off of, but with datacenter products that keep making custom web development faster and more powerful, I’m hesitant to say that there’s a long term loss for Microsoft in this end-game. I’d guess that there will be a significant change in the face of these products as times goes on to meet the ever-changing face of users that will keep them going for years to come (for better or worse).
Early Adoption — SQL 2008…
I really enjoy working for startups because it gives me an opportunity to try out the latest and greatest and give it a go early. This has bitten me a few times–the .net 2.0 release from beta 2 to the release presented a number of pretty big changes in the masterpage architecture. It’s great working with a team of early adopters, but that beta was a little early to be working with…
This last week I had a chance to start working with SQL 2008 and I’m pretty impressed! While my upgrade path was a little difficult because I started with SQL 2005 Developer Edition (there’s no developer edition in 08) and I hadn’t yet installed VS 2008 SP1, but once I was up and running–I’ve been really impressed.
The IDE itself was left fairly unchanged from the initial view–a new logo at the splash and a few minor updates, but the one new feature that’s really cool out of the box is the intellisense-like query builder. I’ve used programs such as SQL Prompt in the past to speed up my query writing, but with the new SQL Management Studio, you get all of the features that were cool in SQL Prompt without the extra cost. The downside is that it seems that the table definitions within the Intellisense system are cached when the database connection is initialized. This is a little bit of a pain when you’re actively developing and creating a database schema, but once the schema is set, this annoyance won’t be nearly as big of a problem.
Generally I’m excited about the spatial data objects in 2008 along with the refinements to the SQL engine, but I’m happy to see that there are a number of awesome new features being added to a solid platform. One of the bigger headaches that’s been solved for me is the data encryption issue with a transparent data encryption system. Check out all the new features at http://www.microsoft.com/sqlserver/2008/en/us/overview.aspx.
IM Clients… FINALLY getting to something cool
I remember when AOLIM was cool, but at this point, we’re far past single protocol clients. I have MSN, AOL IM, Yahoo, ICQ, Facebook, gTalk, Twitter and Skype accounts that I use on a regular basis to keep in touch with colleagues, collaborate remotely and just mess around while I’m online.
I’ve been using Adium on my MacBook, but I’ve got a PC at work and honestly, I’m not going to pull for a Mac at work–it just doesn’t fit the business or the market. I love my Mac, and it’s really a great machine, but full time development on it would require a bit of a different setup and I don’t have the desire to spend the time on that.
So, I’m back to working on a Windows machine (thanks to the guys at http://www.win2008workstation.com/wordpress/ ) and I’ve been at a loss as to which IM client to use. I’ve used Trillian in the past with mixed results and Pidgin or Gaim are old standbys, but it’s just not the same after having a great experience with Adium. So, after digging around, I found Digsby and I couldn’t be more thrilled: I’ve got a client that handles most of the protocols that I care about and even got me back into using Twitter more religiously. Digsby is still in beta–so it’s not 100% polished yet, but I haven’t really encountered any major issues. It does what I want it to (for the most part) and has a great visual notification system similar to growl for Mac.
Give it a try–let me know what you think. I know that they’re still in need of help getting some testing done and it’s a pretty decent product to begin with.
Conferences
So I’m currently attending the Emerge conference and it’s always interesting to have the time to sit back and reflect on all of the new ideas, new thoughts and new influences washing over you while you sit in a conference.
I can’t say it enough that just the act of making social contact, especially when you’re a huge nerd like I am, does wonders for the mind and for my attitude. Technical or otherwise, the hallowed conference is an amazing way to get out of your office, out of your regular world and mingle with entities known as ‘other people.’

Why go, you may ask–it gets you into the business of networking and you may actually have to talk to someone. If you want to find a way to convince your boss or even his boss that you have a good idea, you’re going to have to be articulate. Honestly–get out of town and go to a conference: if you blow it, you’re just going to look bad in front of some people you don’t know (hopefully) and if you make some connections and start growing your professional network that way, you’re getting a value-add.