Sunday, February 10, 2013

Tools for Web Development (part 3):FTP clients

Directly working on the production server is not recommended, still in some case we may need to modify the server files quickly. In that case Ftp clients comes handy.

There are plenty of ways to use ftp clients of different software. I will give you the overview of some which i really like.


FileZilla is GPL based complete cross platform FTP solution providing FTP, FTPS, SFTP client with many useful features and a great UI. It is available as both  client and server. Typically we are interested in the client part for now.
Some of the FileZilla feature:
  • FTP, SFTP and FTPS support.
  • Cross platform(available for Windows, Linux, *BSD, Mac etc.)
  • Ipv6 support
  • supports resume and transfer.
  • and many more.
Firefox FTP plugin FireFTP

FireFTP is  a Firefox plugin which supports FTP and SFTP client. It also includes many advanced features such as: directory comparison, syncing directories while navigating, SFTP, SSL encryption, search/filtering, integrity checks, remote editing, drag & drop, file hashing
 Although not widely used but many of IDEs/Editors have plugin based FTP support.
 which allow users to manage website over FTP using the plugins.
 The list of such plugins is

Wednesday, February 6, 2013

Tools for Web Development part 2 (Version Control)

Generally small organizations and indie developers tends to work either directly on live data or test servers without maintaining any specific backup system. The more organized people in this criteria are mostly taking backups using the directory of specific dates / project names  and/or archived hierarchy. The problem with this approach can be listed as missing backups, Full email inbox and drafts, making changes with confidence, Made updates directly on your production server, accidentally overwriting some files, which can never be retrieved again and working with a big team and blaming one another for bugs.

To overcome this version control systems are used. Talking about the advantages of the version control system includes the unified file structure and copies of same data with all team members, Changing the code with confident without being worried about the outcome, easily deploying the versions of the code having prototype or incremental builds, understanding when and by whom the change was done.

 Version control system is mostly based on the tracks of the file and directory structure. Depending on the version control it can track time and/or the changes specific to the comments, characters and the raw bytes. Most of the tracking systems works on creating the checkpoint(Stable point for project:may be empty directory at initial stage) , cloning the stable code, making changes and either commiting the code with new checkpoint or reverting back to the older version. Mostly such set of the files of a releted stuffs is called repository and creating the checkpoint is called commit. Each of the revision of the project can be uniquely identified as an integer id(1, 2, 3,) or the Hash code (346aaa8d3211gced3f8a936d9ba5c3ad345831e5).

we can post the whole list of blog posts for this topic so quickly moving to the various version control systems.


Cvs Screenshot
  cvs is the oldest player of the version control. The first release of the CVS was created in 1986. Google stull supports Usenet posts using CVS. CVS is not the fully featured like svn or other but simple enough to learn and usable as backup or file sharing.

the cvs is available as both command-line and  GUI based versions of the software available in various softwares like Tortoise CVS is great for the windows. Most of the current IDEs are capable enough to deal with CVS which may be by plugin or pee-build implementation Eclipse, NetBeans, Emacs and Xcode(Mac only).

SVN website screenshot
Subversion is the widest adopted version control system. It is full featured system including the exclusive community support. Even large projects like sourceforge, Python, Ruby and many also uses the SVN as the base repositories. Google code itself  uses subversion for distributing the sourcecode.

Subversion also have many of the clients available. They includes Tortoise SVN, Modern IDEs listed above and Mac specific versions


Github Screenshot
Git is having the fastest growing version control system. It was developed by linux creator Linus to maintain the Kernel Source tree. Git is well developed and maintained that is why it have lots of functionality which we have never seen before including push, pull, blame etc.
The biggest role in popularity of Git is its simplicity and Github. GitHub has provided the most attractive platform for open-source community. Github provides many of the off the self functionality for the users with both public open-source and commercial plans.

Now a days major open-source projects like Linux kernel,WINE,Fedora and websites like Facebook and Twitter uses the Git.