home · blog · groups · about us · contact us
DevelopmentNow Blog
 Friday, March 09, 2007
 
 

Brian Benzinger put together a big list of developer-oriented sites listing things about project collaboration, code control, bug/issue tracking, etc.. Basecamp is of course on there, but I saw a bunch of new sites that seems interesting.

His post merges well with this one.

March 9, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, March 07, 2007
 
 
Ok Zend Studio Standard is only $99, not "hundreds of dollars" like I said before. It comes with debugging, code-completion, & some other stuff. So maybe it's not a bad (non-free) alternative to PHP Designer, TruStudio, etc.
March 7, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Tuesday, March 06, 2007
 
 

Let's say you already have Visual Studio 2005 Professional, but you now want to be able to connect to Team Foundation Server from within Visual Studio. Let's say you have a Team Suite CAL (needed to access TFS), but you want to connect to TFS using your existing VS Professional install, and avoid the "traditional" route of spending 3+ hours uninstalling VS Pro, SQL 2005, and everything else, then reinstalling VS Team Suite.

You could probably use the MSSCCI provider, but I sortof wanted to use the cool Team Explorer as a Visual Studio addin. So to do that, I believe you can

  1. Download & install the Office 2003 Primary Interop Assemblies. Per this post, even though Team Explorer requires Office Project, the interops are all that's needed.
  2. Download & install Team Explorer

Now you should be able to connect to TFS using Visual Studio Pro with the Team Explorer addin. This is untested (so far), but I'll be testing this theory extremely soon & letting you (my two faithful readers) know.

Mild rant: why is Team Explorer a 250mb download as an .IMG file? You'd think it could be way smaller if we only want the add-in version (instead of the standalone client), and in a ZIP file, too. Oh well.

Edit: I recently tested this process and it does indeed work. :)

March 6, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 
FYI, if you're in the Microsoft Empower for ISV program, you don't get a Visual Studio Team Suite license, even though you do have a pretty good MSDN subscription. This was news to me, & was a bummer. I've read that one way to get Team Suite licenses at a discount is become a Certified Partner (fill out some info, get a certification, and pay $1300 or so), but that still hurts.
March 6, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Monday, March 05, 2007
 
 

FYI I started a GoDaddy VDS (Virtual Dedicated Server) wiki at

http://godaddyvds.wikispaces.com/

My $0.02 on wikispaces: you can create a free, basic wiki there. It's not bad, although slow. I'd like to be able to set my preferences so that when I edit a page it starts with the text mode editor instead of the WYSIWYG editor, b/c
it takes considerably longer to edit a page using the WYSIWYG editor than the text editor. Also, the lack of any AJAX on the site is noticeable...everything you do involves a page load or page refresh (this is why the WYSIWYG editor is so slow, since it uses a number of popup windows).

So, if your audience is non-technical and/or you want a hosted solution, Wikispaces is fine. Or try StikiPad which is pretty similar (thx Scott).

Otherwise, if you have your own Linux host and/or you're more of a techie? Pick a different wiki. :) Moin Moin is easy to install, Giki is really easy to install (no search feature though), TWiki is easy enough...there are a lot of wikis you can compare. A number of hosting providers (e.g. DreamHost) offer various wikis as one-click installs, which is even easier. :)  And of course there are a few ASP.NET Wikis you can install, too.

Other | Tools
March 5, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Friday, March 02, 2007
 
 

I updated Project Timer a bit. Projects are now grouped by day (each day has different projects), you can record notes for a project, and all your data is saved on your local machine.

Future ideas would be to let the user have a master project list, export data to Excel, and integrate with sites like SlimTimer.

 

March 2, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Thursday, March 01, 2007
 
 

If you want a better administrative panel on your GoDaddy VDS/VPS, and you have PHP5 installed, you can install WebMin. SSH into your box using PuTTY.

First we want to install Perl's Net::SSL library, which allows Webmin to run under SSL. But first we need the OpenSSL source code:

su - root

cd /usr/local
wget http://www.openssl.org/source/openssl-0.9.7f.tar.gz
tar xvfz openssl-0.9.7f.tar.gz
mv openssl-0.9.7f openssl

Next we install perl's Net::SSL library via RPM:

wget ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/linux/extras/4/i386/perl-Net-SSLeay-1.26-3.fc4.i386.rpm
rpm -i perl-Net-SSLeay-1.26-3.fc4.i386.rpm

Now test to make sure Net:SSLeay works. When you run the below command you should get no response. If you get an error then it's not installed correctly:

perl -e 'use Net::SSLeay'
Ok, now we can download and install WebMin:

wget http://prdownloads.sourceforge.net/webadmin/webmin-1.330-1.noarch.rpm
rpm -U webmin-1.330-1.noarch.rpm

Now you can log into webmin at https://yourserver:10000. Log in under the same account as your PuTTY account.

Note the above assumes you're installing version 1.330 :)

Hosting | OS | Tools
March 1, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

activeCollab is a free, open source competitor to Basecamp, a very popular online project collaboration tool. It's been getting good buzz & good steam, but I was bothered to read this on their blog a few days ago (edited):

There will be no 0.7.5 or any other major version in 0.x branch. Next major release is activeCollab 1.0 and it is scheduled for summer 2007. Code in 1.0 branch is not compatible with 0.x code so parallel development is not possible.

To keep the development process focused as possible there will be no public beta versions.

activeCollab 1.0 and future core development will be developed exclusively by company that [Ilija Studen, the activeCollab founder] started, and [the] community will be able to contribute by developing plugins, themes and translations.

Note that the above are exerpted from the full blog post. When asked about licensing, Ilija responded with

Can’t tell much about licensing, but we will most probably go with something used by profit oriented open source projects (MySQL, SugarCRM…) One thing is for sure – there will be a free and open source version that match current feature set so current users will not be let down when 1.0 gets launched.

Whole point of this transformation is to provide more value to users, not to drive them away. We are aware that some people will now like the idea of profit oriented open source project, but still being able to provide good support, dedicated development team and guaranty that we’ll be here next year is something that we find really important. Hope that most of the users agree with us on that.

So...hmm. To me it sounds like activeCollab is privatizing the project, disappearing for several months before the next release, and focusing more on profit. Not a good sign, really...I felt it had potential to move ahead, fueled by contributions from the community, but whether for money-seeking and/or project management reasons, that sounds like it's going to change. It might work out well, but I could also see the project disappearing for months while the community waits patiently for summer 2007. The community asks about progress, but since the source & beta are closed, no one can monitor progress. The deadline slips to fall 2007, then winter 2007, and ... well, could be bad.

Granted, I could be wrong .. I don't know Ilija or the team he's assembled, and 37 signals did very well with a small team & closed source when they built BaseCamp. Of course, one of activeCollab's strengths (IMO) is that it's not BaseCamp.

I wouldn't be surprised to see some of the activeCollab community forking off the source code on their own & keeping a separate open source version of activeCollab under a new name. It happens with wikis a lot, I know. :)

Edit: this thread in the activeCollab forums is worth reading if you want more background on Ilija's motivation. It seems like Ilija wants to work on activeCollab, wants it to remain free, and wants it to be a successful product that's still around 5 years from now. But, he wants to earn a living on it, and he feels like having a controlled (not open?) project with a small team (ideally in the same physical space) is the right way for him to achieve that. Not that there's anything wrong with his goals & opinions, but I think the activeCollab community was definitely (IMO) caught off guard.

March 1, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [3]



 
 

Read/Write Web has a writeup on software for virtual teams. Stuff for project collaboration, VoIP, screen sharing, source code repositories, etc.

Also see my other tools roundup post, or the Tools category.

March 1, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 Wednesday, February 28, 2007
 
 

One of my projects involves a complex financial database (stored in Access). I wanted to add a feature to the client EXE that allowed testers to FTP their current copy of the database to me so that I could try to reproduce problems without having to reenter all the data. I didn't see an FTP control handy in VS2003, and I didn't feel like messing around with Windows built-in FTP command line program, which doesn't support passive mode & is annoying to pass parameters to.

So I found NcFTP, a free command line FTP program that fit the bill. Specifically, it offers a dedicated "uploader" program called NcFTPPut. Now, the codebehind for my "Upload Database" button looks like this

Private Sub UploadDatabase()
  If MessageBox.Show("Upload current database for testing? You must be connected to the internet.", _
      "Confirm Upload", MessageBoxButtons.YesNo) = DialogResult.Yes Then

    ' make temporary copy of database
    Dim currentDB As String = AppConfig.GetDBFileName
    Dim tmpDBName As String = currentDB.Replace(".mdb", "-" & _
      System.DateTime.Now.ToString("M-d-yyyy-h-m") & ".mdb")

    System.IO.File.Copy(currentDB, tmpDBName, True)

    ' upload using NcFTPPut
    Dim exe As String = System.IO.Path.GetDirectoryName(Application.ExecutablePath) & _
      "\ncftpput.exe"
    Dim params As String = "-u MyFTPUserName -p FTPPassword ftp.developmentnow.com . """ & tmpDBName & """"
    Try
      Dim myProcess As Process = System.Diagnostics.Process.Start(exe, params)

      myProcess.WaitForExit()

    Catch ex As Exception
      MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

    Finally
      ' delete temp copy
      System.IO.File.Delete(tmpDBName)
    End Try
  End If
End Sub

It's simple, but it works. Now whenever testers find problems with the program, they can just click the "Upload Database" button in my app to send me the data I need to reproduce the problem.

 

February 28, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

I threw together a small windows app to help track projects. You can download it here.

I guess it would be better as a web app, but anyhow...oh, and feedback is always appreciated.

Edit: just saw SlimTimer today, a web-based time tracker thingy. Looks like my little project timer might be off to an early grave. :)

February 28, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]



 
 

Ok ok, you want to compress your ASPX files in IIS, but you don't want to do it for every site, and you want to exclude certain directories. You don't want to edit the metabase by hand, either.

No problem! Copy the below into a BAT file, run it from a command prompt, and voila! Note that you should edit the site number and directory numbers.

But before you run the below BAT, back up your metabase and make sure you know how to restore it! IIS Manager->Right-click server->Tasks -> Backup/Restore Configuration.

If you don't feel comfortable administering IIS or running the below batch file, don't! And even though I hate disclaimers, this script is provided AS-IS with no warranty in any way.

REM HTTP Compression Script
REM
REM Enables compression of static and dynamic files
REM Turns off compression for all sites except site #123
REM Also turns off compression for site #123's /SomeDirectory/Directory2 directory
REM
REM Copyright 2007 Ben Strackany
REM This script is provided AS-IS, no warranty implied or provided, Ben Strackany and 
REM DevelopmentNow are not responsible for any damage your site, server, or love life 
REM may incur as a result of running this batch file.
REM
REM BACK UP YOUR METABASE BEFORE RUNNING THIS SCRIPT!

REM compress static files
CSCRIPT.EXE C:\Inetpub\AdminScripts\ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcFileExtensions "htm" "html" "js" "txt" 
CSCRIPT.EXE C:\Inetpub\AdminScripts\ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcFileExtensions "htm" "html" "js" "txt"

REM compress dynamic files
CSCRIPT.EXE C:\Inetpub\AdminScripts\ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcScriptFileExtensions "asp" "asmx" "aspx"
CSCRIPT.EXE C:\Inetpub\AdminScripts\ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcScriptFileExtensions "asp" "asmx" "aspx"

REM set compression level
CSCRIPT.EXE C:\Inetpub\AdminScripts\ADSUTIL.VBS SET W3Svc/Filters/Compression/GZIP/HcDynamicCompressionLevel "9" 
CSCRIPT.EXE C:\Inetpub\AdminScripts\ADSUTIL.VBS SET W3Svc/Filters/Compression/DEFLATE/HcDynamicCompressionLevel "9"


REM turn off global compression
cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/root/DoStaticCompression False 
cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/root/DoDynamicCompression False 

REM turn on compression for a specific site
REM ****** EDIT THE NUMBER TO BE THE SITE # YOU WANT TO TURN COMPRESSION ON FOR ****
cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/123/root/DoStaticCompression True 
cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/123/root/DoDynamicCompression True

REM turn off compression for a given dir
REM note that the dir needs to exist in the metabase: in IIS, create the vdir, then optionally
REM open properties for it and click "Remove" next to the application
REM ****** EDIT THE NUMBER AND DIRECTORY TO BE THE SITE AND DIRECTORY YOU WANT TO TURN COMPRESSION OFF FOR ****
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/123/root/SomeDirectory/Directory2/DoStaticCompression false
cscript.exe c:\inetpub\adminscripts\adsutil.vbs set w3svc/123/root/SomeDirectory/Directory2/DoDynamicCompression false

REM restart IIS
iisreset.exe

 

The above is pretty self-explanatory. In the top half, we're setting which file types should be compressed, along with the compression level. In the bottom half, we're adjusting compression settings globally, for various sites, and for a specific directory.

The script is not only to use, but to help you understand how the HTTP Compression configuration works, so you can adjust it to suit. For example, you can include other extensions to compress (CFM, PHP), or turn on & off compression for other webs, directories, or files.

To test your settings, get yourself a copy of Fiddler and install it. Run Fiddler, and browse your site. In the left pane, click a request that you think should be compressed, then click the Session Inspector tab on the right and look in the HTTP Compression area. If your page is compressed, GZIP or DEFLATE Encoding will be selected.

fiddlergzip.png

Thanks go to posts from BlueDog, KB234497, and Scott Forsyth.

ASP.NET | OS
February 28, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [2]



 Thursday, February 22, 2007
 
 

I've been doing some PHP development lately (yes, I know, you're probably wondering why I'm not doing Ruby on Rails) and I started to look around for a good PHP IDE. Zend Studio is supposedly awesome, but it's hundreds of dollars. I'll be trying out Eclipse (or TruStudio, which is built on Eclipse) soon, but I heard it's slow. We'll see.

Recently I came across PHP Designer recently & it doesn't seem too bad. It has built in help, context highlight, and (very important for me) statement completion/Intellisense/Code Assist/whatev. It's only a 14 day trial (not 30?), but currently it costs $54.

PHP Designer Screenie

February 22, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [1]



 Wednesday, February 21, 2007
 
 

From the WURFL list, some good suggestions on ways to simulate mobile browsers & test mobile-aware web apps using Firefox plugins:

Tom Thurston suggests

...the firefox "user agent switcher" extension. Just add it, and create profiles for all the devices you wish to "emulate", i.e. use MOT-V3 and your platform will think that you are a motorola v3 hitting your site, and render xhtml-mp, and deliver the appropriate assets, even though you are on a web browser.

Alejandro Guerrieri says :

The "user agent switcher" for Firefox is a great tool. I usually combine it with 3 more plugins that can make your life happier and easier:

- "Modify Headers" ->
https://addons. mozilla.org/ firefox/967/

Allows you to modify _any_ header being sent by Firefox. It can replace "user agent switcher" since you can set the header "user-agent" also, but UAS it's quite more convenient for that (select the UA from a drop down menu). Anyway, if you want to set any other header (like some "accept" or maybe "x-msisdn") this is the tool to do it.

- "wmlbrowser" ->
https://addons. mozilla.org/ firefox/62/

Allows your Firefox to render WML pages, though some features doesn't work like a real device (most notably "on enter forward"). Anyway, really great
to test WML-Only pages or try WURFL with "retro" devices ;)

- "XHTML Mobile Profile" ->
https://addons. mozilla.org/ firefox/1345/

Adds support to mime-type "application/ vnd.wap.xhtml+ xml", not natively supportd by firefox, which only supports "application/ xhtml+xml" .

I usually develop with those four plugins. Sometimes I also use some SDK's from device manufacturers, but most of the time I use Firefox with that plugins enabled.

Thanks Tom and Alejandro!

February 21, 2007    Bookmark to Digg or other social bookmarking
#    Disclaimer  |  Comments [0]