Jul 28 2009

$50 off Dreamhost hosting – Promo code GIVEME50OFF

I’ve had my hosting with Dreamhost now for a little over a and have been very happy with!!! I was previously using Site Ground but converted for the following reasons:

  • Dreamhost allows you to host unlimited domains, databases, email etc under your account
  • Dreamhost allows complete control of your DNS (so you can point a domain/sub domain to your home test/dev server)
  • Dreamhost has shell access – YES REALLY!! Mind you you won’t need it with how much you can do through their web interface…
  • Dreamhost has Subversion (SVN) so you can setup source code repositories to manage all your source code…

I’d highly suggest them to anyone looking for a LAMP (Linux, Apache, MySQL, PHP) new hosting provider! I’ve also arranged a promotion code that will get you $50 off… To put that in perspective that is nearly half of a years worth of hosting which is currently $119… It’s not valid if you sign up for less than a year though…

Sign up now using the promo code GIVEME50OFF when signing up…

Or if you’re not convinced, check out their features first, they sell themselves..

Share and Enjoy:
  • DZone
  • Digg
  • del.icio.us
  • Technorati

May 7 2009

Software I couldn’t live without…

Over the years we all build up our own collections of tools which help us be more productive little soldiers. We realise a need for something to help us to achieve an end goal, or a lot of the time just ask ourselves “surely there is a faster and easier way of doing this”.

The list of software below would easily be worth a significant amount of money considering the hours I’ve spent doing the research and comparisons. I only wish more people would publish such a comprehensive list, so I encourage you to comment and share other products or links to your own lists!

Virtualising desktops/servers:

  • VMware Server or VMware Player – Free products allowing you to create either virtual servers or desktops which runs on top of an existing operating system. So you don’t need extra hard ware to trial a new operating system, or to have a dedicated development environment, or perhaps just a used for testing applications without tainting your base system.
  • VMware Converter – Creates a Virtual machine from a physical (P2V – Physical to Virtual) one, which is useful if you have an old server you want to decommission, but want to retain a copy of it ‘just in case’.
  • Parallels Workstation – Achieves basically the same virtualised environment as the VMware products however it’s not as popular. I started using this a couple of years ago because at the time VMware’s product weren’t supporting Vista as a base OS, while this product ran very smoothly on it!

Web application infrastructure:

  • XAMPP for Windows – One of many packaged WAMP stacks (Windows Apache MySQL PHP) available. This can be easily installed on to a USB key and taken around with you which is what I do. A single executable is run off the USB to load your Web server and Database server. It also comes packaged with a lot of other little useful packages such as phpMyAdmin (a web based MySQL server interface).
  • Zend Server – Zends replacement for  Zend Core which was a stable and well supported WAMP stack, and my preferred for enterprise depolyments. My one grievence with Zend Core was that it doesn’t include MS SQL support which has apparently been addressed in Zend Server.

Managing source code:

  • Subversion (SVN) – An open source revision control system and source code repository. If you’re not using one you should be (regardless of the size of your projects) it makes life so much easier in tracking changes to your code over time. When I started using this I was running up my own virtual server with SVN setup, these days my web hosting is with Dream Host who offer unlimited subversion repositories.
  • TortoiseSVN – Subversion doesn’t have a GUI it’s all command line… So TortoiseSVN is my preferred client interface in to my subversion repositories. It integrates in to windows explorer so you see lots of extra options when you right click.
  • WebSVN – A web-based (PHP) reviewing interfaced in to your subversion repositories and the code they contain. Something that might become a little more useful down the track once you’re more familiar with Subversion and want even more readily available access to see your code. If you’re setting this up I’ve already produced some instructions for Dream Host and Ubuntu.

Tracking issues:

  • JIRA – An  issue/bug tracking product which is ideal for large development projects with numerous developers. It has highly flexiable workflows and triggers and can store nearly any conceivable data template. I’ve used it with large open source projects like Zend Frameworks issue tracking system and have even implemented in one goverment agency as a Change Management System managing RFCs/CRs. It’s expensive but they have a personal edition for up to 3 users.

Programming, testing and documenting:

  • Zend Studio – My preferred  PHP Integrated Development Environment (IDE)! It comes in two flavours at the moment the original one which is awesome and the new one based on the Eclipse platform (Zend Studio for Eclipse) which should be even better ( a work in progress). Run with Zend Core/Zend Platform it offers step-through code debugging. Without this you’ll need to setup the largely undocumented Zend Debugger.
  • XAMPP – My preferred portable WAMP  (Windows Apache, MySQL, PHP) stack. However the stack comes with a lot more than just that… You’ll also find an FTP server and a heaps of other useful built-ins! I keep one of these on a USB stick for a development environment where ever I go…
  • FireBug – Is a Firefox plugin
  • FirePHP – Enables you to utilise the FireBug console for information/error messages etc. There messages are passed in the HTTP Header so they don’t actually effect the display of your web application. It’s also supported by the Zend_Log component in Zend Framework
  • Notepad++ – A light weight and very popular tool which offers syntax highlighting for every programming language I know, plus many more I don’t know! You’ll also be able to track down a portable version which is handy on a USB for those moment where you need a editor a little more powerful that just plain old Notepad… Also supports plugins for some of those functions it doesn’t perform out of the box (like a file explorer).

Web applications:

  • WordPress – By far the most popular blogging software that exists! There would be easily 10′s of millions of blogs out there using this product including this blog you’re reading now. There are also millions of free themes available so to get yourself start you don’t even need to do any coding.. And start thinking it doesn’t quite offer what you’re try the 10′s of millions of free plug-ins available.
  • Gallery 2 – An online Gallery with an endless list of features and p
  • OS Commerce – One of the more popular open source online store applications. Definitely a great product for what is it and especially considering it is free and there are a lot of themes/plugins available across the Internet. However it’s administration/management interface leaves a little to be desired… I hopeful this is being addressed in version 3 their next major release! Although this has been under development for a number of years now (but it looks like its nearly there).

Web application frameworks/libraries:

  • Zend Framework – In my opinion the best PHP Application Development Framework on the market! Well worth a look with an abundance of components to solve most of the heart ache in getting a application quickly of the ground…
  • jQuery -  A Javascript framework which provides a lot of useful low level functionality, which is then built on by the 1000′s of community submitted plugins, some of which are effectively self contained solutions e.g. a LightBox equivalent.
  • YUI – Standard for Yahoo User Interface and is probably one of the most comprehensive Javascript frameworks I’ve seen. This framework does provide just your low level functional but provides your end solutions like managing data tables or menus.

General productivity:

  • Xmarks (previously Foxmarks) – A browser plugin and free web service that supports bookmark syncronisation, allowing you to syncronise your bookmarks across multiple computers. They’ve recently been adding a lot more features I haven’t really paid attention to as well like password syncronisation and site recommendations.
  • myVidoop – A secure online password manager that provides browser integration with assisted log in. It is also an openID provider, not that all that many sites are using this. This doesn’t mean I trust them with my bank passwords still, but it does help me manage the millions of forums I have membership with!
  • Allway Sync – An automatic file synchronisation tool which is really easy to set and forget. I use this for backing up some directories from my laptop to my NAS periodically in case the laptop dies or is stolen (God forbid, Touch wood etc).. Free provided it doesn’t need to regularly synchronising too many files!
  • Gadwin PrintScreen – A ‘printscreen’ / screen capture tool on steriods, and better yet there is a freeware version! The selling point for me is you can configure it so that when it you push Print Screen it open a screen selection tool so you can crop, and that cropped version can be saved to the clipboard as a GIF for example.

Update history:

  1. 21 May 2009 – Added Gadwin PrintScreen, Notepad++ and revised Zend Core to Zend Server thanks to some feedback.
Share and Enjoy:
  • DZone
  • Digg
  • del.icio.us
  • Technorati

Dec 16 2007

Zend debugger – without Zend Core/Zend Platform

Zend debugger is basically the server side component that is used by Zend Studio. You need this to do your remote debugging!!

Normally you’d find this included in an installation of Zend Core or Zend Platform. However we aren’t using Zend’s apache php bundle so this little gem has to be loaded…

It’s hard to find on the net and not well advertised – I imagine because of Zend’s preference that you’d start using Zend Core.. Which looks great mind you but is missing some vital extensions some of our projects are using..

http://downloads.zend.com/pdt/server-debugger/

Share and Enjoy:
  • DZone
  • Digg
  • del.icio.us
  • Technorati

Sep 18 2007

Installing Trac and some plugins

Trac is a popular open source issues management system written in Python. It also features a wiki and subversion browser. There are also countless plugins that have been created for it some of which I’m surprised aren’t included in the base install.

I’m installing this on a Ubuntu server, so you may need to find installation instructions to suit your distribution! To install the packages:

apt-get install trac libapache2-mod-python

Now to setup our first Trac project:

mkdir /var/trac
trac-admin /var/trac/example initenv

The last command will step you through some questions:

Project name – Being creative I named mine “Example“.
Database connection string – I hit enter using the default.
Repository type – I hit enter using the default as mine is SVN.
Path to repository – My repository for this example was /var/svn/example.

Next you’ll need to make sure your web server can access the files:

chown -R www-data /var/trac/

There are two ways of serving Trac through your web server one using CGI the other using the mod_python which I’ll be using. Include the following in your apache config:

 <location /trac>
     SetHandler mod_python
     PythonHandler trac.web.modpython_frontend
     PythonOption TracEnvParentDir /var/trac
     PythonOption TracUriRoot /trac
 </location>

This doesn’t include any security as you’ll see in most install tutorials. This is because I plan on installing a plugin to make use of a web based form log in instead.

If you restart apache then open http://ip-address/trac/ in your web browser you should see you list of Trac projects. Log in won’t work yet so we’ll continue…

Installing some Trac plugins

Now we’ll install some plugins you really can’t live without! We’ll start with WebAdmin which an interface for trac-admin command line utility. This would normally be used for adding component names to your projects – something you really should have to drop to a shell for! I’ll also install the AccountManagerPlugin while I’m at it…

First we need to configure the server to be able to install python eggs! This is how all of the Trac plugins are packaged…

apt-get install python-dev
cd /tmp
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

Now that thats done lets get the plugins installed! Please note you may need to refer to the plugin websites to ensure you’re using the correct repository for your version of Trac.

easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/
easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.10

Now that these are installed we need to configure our Trac project to make use of them!

Open the trac.ini file inside under the /conf/ directory of your Trac project. Mine is located at /var/trac/example/conf/trac.ini

[components]
trac.web.auth.loginmodule = disabled
webadmin.* = enabled
acct_mgr.* = enabled
acct_mgr.web_ui.RegistrationModule = disabled
 
[account-manager]
password_format = htpasswd
password_store = HtPasswdStore
password_file = /var/trac/trac.htpasswd

We should setup that password file and create our first account:

htpasswd -c /var/trac/trac.htpasswd admin
trac-admin /var/trac/example permission add admin TRAC_ADMIN

Some plugins also use caching if you don’t follow this next step you’ll run in to some nasty errors (Permission denied: ‘/root/.python-eggs’) ! This is because the web server can’t write to the location they use by default… So:

mkdir /tmp/trac-cache
chown www-data /tmp/trac-cache/

Then include this line in your apache config along with the others for the /trac directory.

SetEnv PYTHON_EGG_CACHE /tmp/trac-cache

Then restart apache and cross your fingers!

Update!

After my success with this install I started looking at Trac-Hacks through all of the other plugins and also decided to install the following (I’ll update this as I find others):

Share and Enjoy:
  • DZone
  • Digg
  • del.icio.us
  • Technorati

Aug 31 2007

IP address binding with IIS

This little trick has saved my life with quite a number of times!! But took me a while to find, so here I am sharing…

Lets say you’ve already got IIS running on your 2003 server, but you want to install several other web servers (or just one.. Hehe). You’ve already assigned a number of additional IP addresses to your server under network adapters TCP/IP settings.

But you then notice IIS is listening on all IP address! Despite having configured you’re sites in Internet Information Services (IIS) Manager to only use one IP address. You can see this using netstat.exe!

Solution

  1. Install Microsoft Windows support tools. Found on your Windows Server 2003 CD at \support\tools\suptools.msi
  2. Stop IIS listening on all addresses “httpcfg delete iplisten -i 0.0.0.0
  3. Set IIS to listen on a specific address “httpcfg set iplisten -i 192.168.x.x
  4. Stop IIS “net stop http /y
  5. Start IIS “net start w3svc

Confirmation

Now to confirm what you’ve just done you can run “httpcfg query iplisten“.

Share and Enjoy:
  • DZone
  • Digg
  • del.icio.us
  • Technorati