FileZilla 3 development diary

Moderator: Project members

Message
Author
User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#841 Post by botg » 2008-11-25 00:47

It's soon Thanksgiving (in the US at least) and it's the time of the year in which everyone talks about turkey. Everyone but me. I'll talk about Turkey instead.


In particular, I'd like to talk about the Turkish alphabet. Basically it is just a Latin alphabet with some few extra letters. There is one detail however which makes it unlike most other Latin-derived alphabets (Azerbaijani alphabet is the only other case I know of). In the Turkish alphabet, there are two different types of the letter i: Dotted and dotless, each with their own upper and lowercase versions (I hope your installed fonts can display this):
Dotted: i İ
Dotless: ı I
The English lowercase i is the Turkish dotted lowercase i, and the English uppercase I is the Turkish uppercase dotless i.

What's the problem? The answer is simple: Collation. Assume you have the string "SOMETHING" and want to transform it into "something". In virtually all locales, you just transform "SOMETHING" into lowercase and get "something". Not so with Turkish locale. Remember the two types of i? Transforming "SOMETHING" into lowercase would result in "somethıng" with the dotless lowercase i.

In case of FileZilla, this was the cause of a particular bug where on Turkish systems, some of the toolbar icons where missing. You must know that FileZilla addresses the toolbar icons with identifiers like "ART_SITEMANAGER" with the corresponding filename called "sitemanager.png". So if simply stripping the ART_, transforming the remainder to lowercase and then adding .png made FileZilla search for "sıtemanager.png" which obviously does not exist.
The solution is to use a locale-independent function to transform uppercase letters into their corresponding lowercase letters based on ASCII. We can do this since all the identifiers used by FileZilla are in fact valid ASCII strings.

A similar problem was in the directory listing parser where for some listing formats, the substring "dir" was case-insensitively searched for. Same solution.

There's still an outstanding issue with filename extensions for the automatic ASCII/binary filetype detection. I have thought hard, but couldn't come up with a good solution yet.



After the semantic split between turkey and Turkey, let's talk about a different class of splitters. By that I obviously mean wxSplitterWindow. I've been working on making the location of the message log configurable.

While not a hard task, I quickly became annoyed by the complexity of the class that manages the main window of FileZilla. I've spent quite some time to refactor the code. Essentially, I've moved most splitter related code to a new class. Initial testing was successful, at least no major regressions. But as always, Schroedinger's Cat is in the details.

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#842 Post by botg » 2008-12-13 12:44

Time for some progress update.


A while ago I talked about integrating into the GNOME Session Manager through its D-Bus API and the bug I found in it (http://bugzilla.gnome.org/show_bug.cgi?id=559469). Good news is that it's fixed now, my patch got accepted. As result I could finish my work and committed the new feature to the FZ repository. I had to do a lot of cleanup though on the libdbus bindings though. Getting a proper dispatch loop for libdbus isn't easy. Anyhow, everything appears to be working fine now, all running FileZilla instances close gracefully if the session ends.


In addition I'm working on implementing logging to file. As usual, getting the Windows version of the code right is the hard part. Windows has a really bad filesystem.

User avatar
boco
Contributor
Posts: 26936
Joined: 2006-05-01 03:28
Location: Germany

Re: FileZilla 3 development diary

#843 Post by boco » 2008-12-13 15:42

Logging to file is great news. But there should be some control feature this time, such as 'create a new log every day and delete old logs after <x> days'. Like the server has already.
No support requests over PM! You will NOT get any reply!!!
FTP connection problems? Please read Network Configuration.
FileZilla connection test: https://filezilla-project.org/conntest.php
FileZilla Pro support: https://customerforum.fileZilla-project.org

GoD
500 Syntax error
Posts: 14
Joined: 2007-04-09 21:26

Re: FileZilla 3 development diary

#844 Post by GoD » 2008-12-13 16:01

What are the problems you are having with the windows filesystem?

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#845 Post by botg » 2008-12-13 16:57

GoD wrote:What are the problems you are having with the windows filesystem?
Open a file with FILE_SHARE_DELETE. Delete the file and then try to open another file with the same name. Fails. Fail reappears in explorer. Any attempt to access it or delete it freezes explorer for 30 seconds or more. Even though the file is marked deleted, its filename is not available for reuse yet until all handles to the file get closed.

Compare that to the vastly superior POSIX semantics seen under e.g. Linux. Delete a file and it's completely gone as far as other programs are concerned that do not still have an open file handle.

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#846 Post by botg » 2008-12-26 19:32

Looks like 3.2.0 is on track for a very early 2009 release.

The next version will feature bookmarks! Of course both global and site-specific. Site-specific bookmarks are already working nicely, but I haven't even started on the global bookmarks yet. And so far there's still lots of UI work to do.

The preliminary list of changes for 3.2.0:
  • Bookmarks
  • Logging to file
  • *nix: Use GNOME's Session Manager D-Bus API to cleanly shut down FileZilla on end of session
  • MSW: Improve installer's Vista compatibility. Ugly system....
  • Rearrange filter dialog a bit
  • Thousands separator on file exists dialog
  • Compile fixes for HP-UX

da chicken
226 Transfer OK
Posts: 619
Joined: 2005-11-02 06:41

Re: FileZilla 3 development diary

#847 Post by da chicken » 2008-12-27 01:02

botg wrote:
GoD wrote:What are the problems you are having with the windows filesystem?
Open a file with FILE_SHARE_DELETE. Delete the file and then try to open another file with the same name. Fails. Fail reappears in explorer. Any attempt to access it or delete it freezes explorer for 30 seconds or more. Even though the file is marked deleted, its filename is not available for reuse yet until all handles to the file get closed.
Reason for this behavior:
http://blogs.msdn.com/oldnewthing/archi ... 50047.aspx

Basically, it's something they can't change the behavior of without sacrificing backwards compatibility. Not saying it's justified, but it's why it behaves that way.

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#848 Post by botg » 2008-12-27 15:16

da chicken wrote:Reason for this behavior:
http://blogs.msdn.com/oldnewthing/archi ... 50047.aspx

Basically, it's something they can't change the behavior of without sacrificing backwards compatibility. Not saying it's justified, but it's why it behaves that way.
They should just get rid of their horrible API entirely. You do backwards compatibility through a virtual machine. For the rest of the system, they should use something modern, like Gnome or KDE running on a Linux Kernel with GNU userspace.

da chicken
226 Transfer OK
Posts: 619
Joined: 2005-11-02 06:41

Re: FileZilla 3 development diary

#849 Post by da chicken » 2008-12-27 21:00

You've never worked in IT, have you?

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#850 Post by botg » 2008-12-27 22:04

Not in a vendor locked-in company.

mno
500 Syntax error
Posts: 12
Joined: 2008-02-15 17:39

Re: FileZilla 3 development diary

#851 Post by mno » 2008-12-27 22:19

I get a feeling that FileZilla will soon turn *nix only, and someone eventually will make a branch for the Win32 side of things. :)

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#852 Post by botg » 2008-12-27 22:45

mno wrote:I get a feeling that FileZilla will soon turn *nix only, and someone eventually will make a branch for the Win32 side of things. :)
Chances for that ain't bad. The day Microsoft stops to support XP, I will stop having a working Windows installation on any of my computers.

da chicken
226 Transfer OK
Posts: 619
Joined: 2005-11-02 06:41

Re: FileZilla 3 development diary

#853 Post by da chicken » 2008-12-28 06:40

botg wrote:Not in a vendor locked-in company.
Not my point. Virtualization on the desktop on a corporate scale is a nightmare. It doesn't matter if it's Citrix, Xen, VMware, Virtual Server, or some ridiculous homebrew KVM. I've seen it done about 10 times over 8 different companies or so. The users always hate it. It never works as intended. Performance is abysmal and always worse. Printing is a nightmare. There is always a hitch that should have been caught in testing that would have stopped the thing from moving forward.

And, yes, it's still often the best way to do it. When you absolutely must.

User avatar
botg
Site Admin
Posts: 35563
Joined: 2004-02-23 20:49
First name: Tim
Last name: Kosse

Re: FileZilla 3 development diary

#854 Post by botg » 2008-12-28 10:13

Ever tried OS X? It has built-in virtualization and emulation. Run PPC binaries on Intel Macs or run binaries for OS 9 on OS X (earlier PPC versions at least, not supported anymore afaik).

Microsoft could easily do the same with the next Windows version. A fully backwards compatible VM layer for old binaries, and the rest of the system KDE ;)

mno
500 Syntax error
Posts: 12
Joined: 2008-02-15 17:39

Re: FileZilla 3 development diary

#855 Post by mno » 2008-12-28 10:25

It's all a matter of taste. I, personally, hate both KDE and Gnome. But that's just me.

Post Reply