Few thoughts and updates (v2.4)

version 2.4 :

As explained later on, release 2.4.1 focuses mainly on backend-functionality. Significant changes are the following:

  • Certificate support added (view, accept/decline)
  • Improved listing, now works on folders that contain spaces.
  • changed update system
  • added right-to-left language support
  • Added Hebrew translation

The changes have been pushed, the updated source can be found in the Github Repository.


Linux and OSX ports :

The Linux port is currently being tested, and will be available for public beta testing within the next days. Updates will be posted here soon!

The OSX port has been started, but priority has been given to Linux port as it is nearly complete.


Bug Tracker :

I have decided to stick with UserVoice as the bug tracker. It is much nicer, and also the SourceForge tracker is full of  duplicates and even spam comments (yes, their spam filters are not so efficient)


To-Do :

I have made my to-do list on trello.com public, you can find it here.


Few Thoughts …


Any developer reading this post would agree with me on this: dealing with old code isn’t the best experience one can have. Especially when it comes to old, badly written/documented code. And the case with FTPbox was no different: poor code quality, along with the lack of good organization and project planning, made working on this project somewhat frustrating. I did make a few improvements here and there over the past few months, but the main thing remained a mess…


So I decided it’s time to change this: I made a simple project plan and organized the code based on it, getting rid of all the unnecessary parts. I aimed for a core library that works on all platforms, focusing on simplicity and functionality.


As a result of the above, the application should be a lot more stable now, and porting to OSX / Linux will be much easier …


Thanks for reading

Still alive – v2.3.2 now available

Yes, I know… It’s been 3 months since the previous release, and I apologise for that. Lately my free time has been very limited so, even though this release was mostly ready weeks ago, I only just found the chance to publish it!


This release comes with a feature that has been requested by many users: multiple profiles. Users can now set up more than one accounts and easily switch between them from the Account tab. (syncing to multiple accounts simultaneously is something I have in mind for future releases)


FTPbox 2.3.2 also introduces ask-for-password support for users that do not wish to have their passwords saved in the configuration file…


However, this release was mainly focused on the source code, as I put some good effort into cleaning up and organizing it to be more comprehensible by others. Hopefully this will encourage more people to get involved!
Also , the awesome JSON.NET and DotNetZip libraries have been used to replace the previous XML and ZIP libraries accordingly. As a result, JSON format is now used in the configuration files…


Other changes include moving Debug.html to the %AppData% folder and changing the format of FTPbox-generated temporary files, in order to not confuse them with other temp files.


From now on, I will try to keep the updates small but frequent, in order to be able to also work on and release updates for the WebUI and hopefully the Linux version!


Thanks for reading


FTPbox v2.3 New-Year Edition

Hello everyone,


To start with, I wish all of the contributors and users of the FTPbox project have a happy new year!
As my small gift to you all, I have prepared the update of FTPbox to be released on the first day of 2013.


In this release, I have included a feature that has been requested by many users in the past: File Filters. This new feature gives you control over what gets synchronized to and from your local machine. For now, the filter options include:

  1. Files/Folders: you can filter out specific files or folders
  2. Extensions: you can filter out files with specific extensions

More filter options are planned to be included in the future, like (the requested) filters based on last-modified datetime of files.


Along with File Filters, I changed the WebUI updating system to use the AppData folder to prevent permissions-related errors in the Program Files folder.  Some changes to the app’s update system and other bug fixes have also been made.

The release also includes a translation to Czech, along with fixes for the existing Thai translation.


Thanks for reading

Officially moving source code to Github

Ever since the source code of FTPbox was released more than a year ago, it has been available on both the Google Code trunk (SVN) and the Github repository (Git). You may have noticed, however, that the source code of versions 1.8.5 and earlier has only been updated in the Github repository, and that I’m only mentioning the Github repository when I refer to the source code.


I have been using Github more and more for the past few months, which made me realize that it’s a better option than Google Code. For that reason, I decided to officially store the Source Code in the Github repository and forget about Google Code. Even if you’re not familiar with Git, Github offers the option to grab the source code using SVN, or even download it in a zip format, which is a huge plus.


Along with this decision, I moved the Github repository to an organization some time ago, and separated the Web Interface. Here are the links:


That’s all for now, but I will add new repositories for the source code of the Linux and Mac ports soon.

From now on, I will make sure to organize the issue tracker and keep it up-to-date with the latest issues that I find or other users report.

Please note that, because the repository has moved to a new link, any links I shared on twitter regarding the old Github repository will not work anymore…


I hope this decision will encourage developers to get involved with the development of FTPbox!

Thanks for reading.

Introducing Context Menus in FTPbox 2.2.2

Hello everyone,


I know context menus is a much anticipated and requested feature, and I’m very happy to announce that it’s now official. From this release (v2.2.2), FTPbox will add a nice menu to the right-click menus of your files and folders. If you right-click a file inside your local syncing folder, you’ll get the option to Copy HTTP link, Open in browser and Synchronize. For files/folders outside the local folder, you’ll just get the option to move them to your local folder. It took me quite some time to figure the Windows Registry out because of the poor documentation of Microsoft, which is why I didn’t add this feature earlier.

Along with context menus, the new release comes with improvements in functionality. FTPbox now uses temporary files to confirm that transfers have been completed successfully before replacing the outdated files, in order to prevent file corruption.

Some bugs have also been fixed, the most significant regarding the deletion of files. As a default, files were being deleted permanently from the local machine, but from now on they’ll be sent to the recycle bin.

3 new translations have also been added: Portuguese, Slovak and Galician.


Thanks for reading!

FTPbox v2.2.1 now available

Hello everyone,

Ever since the latest Web Interface release I have been working on the windows client and this is what I managed to pull together in the past week or so. A short release with some important bug fixes and a few cool additions!

First off, I decided to make it easier for contributors to translate FTPbox by creating a custom Translate form. The user fills in the translation strings and the program generates the xml data, which the user is prompted to email to [email protected]
The form looks like this ( filled in with Spanish for reference ) :

Translate Form Screenshot

As promised in the previous post, the Web Interface now updates automatically. The program checks for an update at start-up and, if there is one, prompts for download.
I have also started working on what I consider a very major feature: checking if files are in use (still being transferred etc) before syncing them. This should require more work and testing, but it’s something that has to be done!

Some bugs of the previous release have also been fixed:

  1. When using the SFTP protocol, the GetComPath function would ‘corrupt’ the returned path if the remote directory happens to be the root folder of the server.
  2. When syncing files with big file names, the tray text would exceed the 64-char limit and throw an error.

tl;dr : Check out the Changelog Page

Thanks for reading

Web Interface upgraded to 0.2.3

Everyone would probably agree that the web interface is a very important part of the FTPbox project. I see great potential in it, as with some good work it could be used by FTPbox users that want to access their files on the go, from their phone, tablet or any device they don’t have FTPbox installed on.

For that reason, I decided to work on it the past few days and improve it in any way I could. I also uploaded the code to the Github repository , hoping for more people to get involved making it great!

Throughout these days, I managed to make a few good change:

  • Fixed the file links to point to the URL of each file, instead of showing a “No Access!” error. Displaying file content inside the interface would be better, so I guess this is a temporary solution.
  • Made the web interface adjust to the screen width, using media queries. The interface now adjusts nicely to screens with max width of 480px (for mobile devices) and to screens with max width of 1024px (tablets, laptops).
    I will also have to add another resolution in between (max of 650px).

Here’s some screenshots of the new web interface in different screen sizes:


To upgrade to this version, you’ll have to re-install the web interface. I will make sure to make it automated in the next release of FTPbox.


Hope to see some web developers helping me out with the web interface!

Thanks for reading.

FTPbox 2.1 is (finally) here

Finally, after months of re-writing FTPbox almost from scratch, version 2 is out. It’s hard to list everything that has changed in this release, but I’ll try to note down the most important changes in this post.

The main new features introduced in this version are:

  • Remote file syncing is now either manual or automatic (optional)
  • Speed Limits are available for Upload/Download speeds (FTP only)

But that’s not why it took me so long to get this release ready. In fact:

  • The syncing method has been changed completely to be more reliable and stable.
  • FTPbox can now handle syncing multiple files at once (e.g. when the user pastes many files/folders inside the local folder)
  • The SFTP library has been changed (to SSH.NET)

By taking a quick look at this new version you should also be able to notice the following improvements:

  • The notification messages and the tray text are more detailed and descriptive
  •  The interface is much faster than it used to be (forms, tray menus etc)
  • There’s better file filtering to avoid syncing temporary files, server files etc

But these are just some of the changes made. The new version is much more reliable and works far better than the old one. I recommend you go give it a try.

You can find a more complete list by visiting the changelog.

I must also thank all the (awesome) translators for submitting 10 new translations for this release.

Expect a new release to be available really soon with even more new things!


Thanks for reading.

Progress made within the past month

Hello everyone,

I decided to start this blog, where I’ll write anything concerning the progress of FTPbox. In this first post I’d like to inform you about the delay for a new release, which you may have noticed.

I know it’s been some time since the last release, but there’s a reason for this. For more than a month now I have been re-writing FTPbox, in order to:

  1. Fix some major issues regarding the functionality of FTPbox.
  2. Make the code as clean and nice as possible, as it needs to be comprehensible by other coders that wish to get involved.
  3. Make a Linux/Mac version of FTPbox. I have been re-writing FTPbox in MonoDevelop from Ubuntu, and I’ll then transfer the code to windows/mac.
  4. Change the SFTP library, as the old one doesn’t seem to be developed anymore, and it had some issues

In these past weeks I’ve managed to make quite some progress. I have managed to get syncing to work both ways, and I could easily say what I’ve made so far is more stable than the current Windows release.

Main Changes (for now):

  • First of all, I have changed the way the app handles syncing. It now puts all files that need to be synced in a queue, and then syncs them one by one. That way, it won’t miss any file, and it will show only one notification if more than one files/folders are synced, instead of one for each of them (For example it’ll show: “2 files and 4 folders have been updated”).
  • Another major change I’ve made is that it now only establishes one connection to the server, not two. This makes things even more simple, and avoids errors with servers that are not configured to accept multiple connections at once.
  • The source code is much, much better now. Things are organized in different classes and such, which makes even comments useless for coders to easily figure out what’s what.
  • A couple of features are not yet supported, like the Web Interface, and remote-to-local syncing is manual for now. I have added bandwidth control, though (for FTP/FTPS only).

To sum things up, the new release is ready for the most part, I’ll only have to fix some details and then transfer the code for Windows/Mac, which shouldn’t be hard.

The new release will also include three new translations: Simplified/Traditional Chinese and Vietnamese.

Thanks for reading.