WinMerge – powerful FOSS visual tool for files/folders differencing and merging

WinMerge is an Open Source visual text file differencing and merging tool for Win32 platforms. It is highly useful for determining what has changed between project versions, and then merging changes between versions.
Key Features:

  • Visual differencing and merging of text files
  • Flexible editor with syntax highlighting, line numbers and word-wrap
  • Handles DOS, UNIX and MAC text file formats
  • Unicode support
  • Difference pane shows current difference in two vertical panes
  • Location pane shows map of files compared
  • Highlights differences inside lines in file compare
  • Regular Expression based file filters in directory compare allow excluding and including items
  • Moved lines detection in file compare
  • Creates patch files
  • Shell Integration (supports 64-bit Windows versions)
  • Rudimentary Visual SourceSafe and Rational ClearCase integration
  • Archive file support using 7-Zip
  • Plugin support
  • Localizable interface via resource DLL
  • Online manual and installed HTML Help manual

More information:

New Features for Zimbra Collaboration Suite 5.0

Sunnyvale, Calif. – February 5, 2008 – Zimbra, a Yahoo! (Nasdaq: YHOO) company, and the leader in open source, next-generation e-mail, today announced the availability of Zimbra Collaboration Suite (ZCS) 5.0. ZCS 5.0 includes hundreds of enhancements that expand Zimbra’s access across desktops and devices while setting the standard for Web-based productivity in a business environment, and showcases Yahoo!’s dedication to providing world-class e-mail and collaboration services.

Enhancements in ZCS 5.0 extend Zimbra’s best-of-breed anywhere access on the desktop, including support for Microsoft Outlook 2007, and on virtually any device, with support for BlackBerry Enterprise Server, J2ME-enabled handsets such as the Motorola RAZR, and a new version of ZCS for mobile web browsers. New features in the award-winning Zimbra AJAX Web client include instant messaging, briefcase, and task applications as well as Zimbra Desktop, the world’s first offline-capable Web 2.0 collaboration experience.

New features in ZCS 5.0 include:

  • Task Lists. Off by default when you upgrade. A new Tasks tab is added to the application tabs. The tasks list feature includes the ability to create multiple task lists, create tasks, mange a task, including setting the priority and tracking the progress
  • Documents. On by default when you upgrade. Documents is a document sharing and collaboration application that gives you a central place on the Zimbra Web Client to develop, organize, and share information
  • Briefcase. Off by default when you upgrade. Briefcase lets you save files on the Zimbra Web Client so that you can access them whenever you log on to the ZWC
  • Delegated Mailbox. Users can share any of their email folders, including the Inbox and sub-folders
  • Users can be notified when their mailbox is almost full (quota feature)
  • Calendar entries can be marked private or public
  • Search for an appointment up to 180 days in the future
  • Photos and images can be uploaded and synced to the address book contacts list
  • Message priority can be set
  • Instant notification of email messages can be enabled
  • Major changes to the administration console include:
    • Layout of the administration console has been improved. You can open more than one function at a time. Tabs are opened above the Content pane
    • Search queries can be saved
    • Search for all administrators and domain administrators on ZCS
    • Last login time is displayed from the administration console Accounts content pane
    • Default time zone set in the COS/Admin can now be changed by users. This timezone is used for Zimbra Mobile and the standard Zimbra Web client
    • Monitoring, Server Statistics for individual servers now includes a Sessions tab that displays information about active web client, administrator and IMAP sessions
    • Certificates can be managed and installed from the administration console
  • The Jetty Web server is now used as the server container that the Zimbra software runs within. Reference to this servlet is called mailboxd
  • Domain name can be changed from the zmprov CLI
  • Ngnix is used to support more scalable POP/IMAP proxy
  • Domain’s status can be set, including status of Suspended
  • Account level logging can be configured
  • ZCS HTTP mode now includes Redirect. Redirect mode redirects any users connecting via HTTP to a HTTPS connection
  • If more than one language locale has been installed on ZCS, users have the option to select the locale that is different from the browser language settings from the Preferences, General tab
  • Major import and migration feature enhancements:
    • Tasks can be imported/migrated
    • The types of items (appointments, email, contacts, and tasks) to import can be selected
    • Photos associated with contacts can be imported/migrated
    • Appointments and tasks private status is retained

Top 50 Proprietary Software and their Open Source alternatives

1. Windows Vista OS to Ubuntu OS
2. Internet Explorer Browser to Firefox Browser

Office Suites
3. Microsoft Office to OpenOffice
4. Mactopia to NeoOffice

Office Tools
5. MathWorks MATLAB to Scilab
6. Microsoft Access to Kexi
7. Microsoft Word to OpenOffice Writer
8. Microsoft Excel to OpenOffice Calc
9. Microsoft Visio to Dia

10. Blackboard to Moodle
11. Box to Cabos
12. Microsoft Project to Open Workbench
13. Mindjet to FreeMind

Graphic Programs
14. Adobe Illustrator to Inkscape
15. Adobe PhotoShop to GIMP
16. Adobe Premiere to Avidemux
17. AutoCAD to Archimedes
18. Microsoft PowerPoint to OpenOffice Impress
19. Microsoft Paint to Tux Paint

Web Editors
21. Adobe GoLive CS2 to Mozilla SeaMonkey
22. Adobe Dreamweaver to NVU
23. Macromedia Flash Professional to OpenLaszlo
24. Microsoft Frontpage to Bluefish
25. Windows Notepad to ConTEXT
26. Altova XMLSpy to XML Copy Editor

27. Adobe Acrobat to PDFCreator
28. Adobe Framemaker to DocBook
29. Microsoft Publisher to Scribus

30. AIM to Pidgin
31. FeedDemon to RSS Bandit
32. Microsoft MSN Messenger to aMSN
33. Microsoft Outlook to Thunderbird
34. Skype to Wengophone

35. iTunes to Songbird
36. Nero Burning Rom to K3b
37. Quicktime to Darwin Streaming Server
38. TiVo Desktop to
39. Windows Media Player to Miro

40. CuteFTP to Filezilla
41. iBackup to ZManda
42. Norton Ghost to Partition Image
43. Rational Purify to Valgrind
44. WinZip to 7-Zip

45. Kaspersky Anti-Virus Personal to Winpooch
46. McAfee VirusScan to ClamWin
47. Norton Personal Firewall to WIPFW

48. to OpenSSL
49. Microsoft Money (Plus) to TurboCash
50. Quickbooks to Compiere

Microsoft and Sun, the Real Story

So one day, Scott McNealy, founder and chairman of Sun, read in his morning newspaper how the use of Java was rapidly diminishing, courtesy of something called ‘The LAMP Stack’. Furiously, he called his accountant.

Scott: “I knew this Java thing was a bad idea in the first place! I see only one solution. We need to buy this Lamp!”
Accountant: “Euh, LAMP is not a company. It’s an acronym. It’s Linux , Apache, MySQL and PHP”
Scott: “Then buy me Linux!”
Accountant: “But we still have this Solaris thing..”
Scott: “Then buy me Apache!”
Accountant: “That’s a foundation. Nothing to buy there.”
Scott: “Then buy me MySQL!”
Accountant: “We don’t do databases.”
Scott: “It’s a database?”
Accountant: “What rock have you been living under?”
Scott: “Sweet. I can own the Lamp AND piss off Oracle at the same time!” (waves fake plastic magic wand) “Make it so!”

And so it happened.

Ten days later, Microsoft CEO Steve Ballmer was reading the CIO Magazine, and read about this interesting thing called PHP, that according to the author you could use to write “WHAT?!”. “WHAT?!”, obviously a highly advanced and evolved version of “Hello World”, caught his attention. So he called Bill Gates.

Steve: “Hey, you heard about this PHP thing?”
Bill: “Pee Age Pee? You’re not that old yet, are you?”
Steve: “What? No, wait, it’s a programming language, apparently better than ASP.NET.”
Bill: “Who cares if it’s better. I mean; we made the worst operating systems ever and still rule. (Checked out Leopard yet? It is SO cool.)”
Steve: “I don’t know Bill… remember that internet thing that we didn’t know about years ago? Kind of nearly missed the boat there.”
Bill: “Right. Didn’t we solve that in the same way? Worst browser, highest market share, that sort of thing?”
Steve: “Yes we did, but then we also didn’t know about this ‘mp3’ thing until it was too late.”
Bill: “We did manage to make Zune the worst player, but somehow we’re not market leader. Guess we got sloppy?”
Steve: “Maybe it’s just different times. Maybe we should have a different strategy.”
Bill: “Ok, so let’s just buy PHP then.”
Steve: “It’s not a company. But Encarta says it’s written by a Rasmus Lerdorf.”
Bill: “So let’s hire him.”
Steve: “Tried that. Didn’t want to join. Can’t blame him, works at Yahoo.”
Bill: “Then I guess we’ll have to buy Yahoo.”

So it happened.

Two of the most controversial announcements of this month, and both appear to be part of devious plots to take over the LAMP stack. What’s next? My prediction: Red-Hat buys Zend; Oracle buys Red-Hat; Sun and IBM join forces to buy Oracle, Microsoft buys Sun, kills IBM and peace is restored in the galaxy.

P.S. Can you imagine Microsoft running sites like Flickr? These guys invented MS Paint!

Enterprise IT ain’t what it used to be

Enterprise IT” vendors are in the midst of an identity crisis, and Linux is to blame.
Want proof? Just look at some recent news announcements: Not only is the erstwhile uber-proprietary Sun Microsystems selling Intel- and AMD-based servers, it has also snapped up open source giants like MySQL. That’s quite a shift from a year ago, when Sun seemed almost ashamed of its Linux success.
Next, consider IBM, with its Linux-on-mainframe initiative. Big Blue recently took this approach a step further and announced Lx86, a virtualization technique for running — you guessed it — native Linux on its traditional System p Unix boxes.
Not to be left out, Hewlett-Packard is also singing the praises of Linux and open source, with its new FOSSology tools for managing open source software and licenses.
These are just a few examples. Meanwhile, in a parallel universe, Web 2.0 companies are busy redefining the very notion of “enterprise IT,” but one thing is clear: Linux is pervasive there as well.

> Sun, MySQL users ponder blockbuster acquisition:
> Sun Microsystems, the begrudging Linux vendor:
> Low-cost Linux revives IBM mainframe (again):
> HP ferrets out open source software:

OTRS 2.2.5 (Ipanema) is released!

Dear Community Members,

+++++++++++++++++++++++++ Release Note ++++++++++++++++++++++++

We are proud to announce OTRS 2.2.5 (Ipanema) today. This is a patch level release of stable OTRS 2.2., and contains some bug fixes. For a complete list see below.

The OTRS team recommends all OTRS users to upgrade to OTRS 2.2.5.

Minor Bugfixes:

* Bug #2166 – Fixed issue with HTML-mails sent by MS Outlook 2003 – “–” / long was not shown as dash in email body, but dropped silently.
[ ]

* Bug #1428 – Fixed issue with white-spaces in UTF-8 emailsubjects (specifically in Russian, Chinese and Japanese).
[ ]

* Bug #2479 – Fixed problem with large attachments (> 3MB) (on Oracle DBs).
[ ]

* Bug #2581 – Fixed issue with follow-ups, when ticket#: xxxxxxx was copied from the Web interface into a new email subject.
[ ]

* Bug #1148 – Fixes loss of attachments when splitting a ticket.
[ ]

* Bug #1120 – Fixed TO recipients which were sometimes dropped in a ticket reply.
[ ]

* Bug #2601 – Only agents with rw permissions were listed in the inform agent selection of a note screen. Now all agents with note permissions aredisplayed.
[ ]

* Bug #2491 – Fixed crash after initial login on a virgin installation on fedora 7, fedora 8, altlinux and ActiveState Perl on win32.
[ ]

* Bug #1687 – Fixed wrong New message! hint on queue with Customer State Notify activated.
[ ]

* Bug #977 – Fixed agent notification for new tickets created in the Web interface if CustomerGroupSupport is enabled.
[ ]


* A 23rd language has been added – Vietnamese! A great thanks goes out to TUAN, Truong Anh, President and CTO of iWay, Vietnam and his outstanding team.




o (Germany/Hamburg)

A complete list of all download mirrors (ftp/http/rsync) is available at

MD5 message digest (128-bit) checksums:

Important for Upgrading:
For those folks who are using OTRS 2.1.x and want to upgrade to 2.2 please read the UPGRADING and INSTALL files.

Bug Reporting:
Although OTRS 2.2.5 has been tested before, we appreciate your contributions and bug reports. You, the OTRS Community, has always been an invaluable source of helpful suggestions, fair comments and well skilled testers to us.

Therefore a great “THX!” goes out to you!



Làm gì để một ngày có 25 giờ?

Một ngày có 24 giờ nhưng chúng ta phải hoàn thành rất nhiều việc, và hơn nữa là phải hoàn thành công việc một cách hiệu quả. Nếu bạn có thể “chiếm lại” một giờ đồng hồ bạn đã lãng phí ở đâu đó và biến nó thành thời gian làm việc hiệu quả, thì một giờ đồng hồ này cũng đủ để làm tăng đáng kể năng suất làm việc hàng ngày của bạn.

Dưới đây là 10 trong số rất nhiều những kỹ năng tiết kiệm thời gian sẽ giúp bạn có thêm một giờ đồng hồ quý giá để ngày làm việc hiệu quả hơn.

1. Duy trì sự cân bằng

Cuộc sống của bạn bao gồm 7 lĩnh vực không thể thiếu: Sức khỏe, gia đình, tài chính, trí tuệ, xã hội, nghề nghiệp và tâm hồn. Bạn sẽ không dành thời gian cho mỗi lĩnh vực như nhau và thời gian mỗi ngày dành cho mỗi lĩnh vực cũng không như nhau. Nhưng, về lâu dài, bạn dành một lượng thời gian hợp lý và chất lượng cho mỗi lĩnh vực thì cuộc sống của bạn sẽ cân bằng. Bỏ qua bất kỳ lĩnh vực nào trong 7 lĩnh vực trên, bạn có thể mất sự cân bằng trong cuộc sống và có nguy cơ hủy hoại sự thành công trong sự nghiệp.

Nếu bạn không dành một lượng thời gian hợp lý chăm sóc sức khỏe, bạn sẽ phải mất thời gian mỗi khi bị ốm. Nếu bỏ qua gia đình, sau đó bạn sẽ phải mất rất nhiều thời gian để tái thiết lập mối quan hệ. Như vậy, đối với mỗi nhà lãnh đạo, việc duy trì cân bằng cho cuộc sống cũng là một thách thức không nhỏ.

2. Ngòi bút chủ động

Một ngòi bút sắc bén có sức mạnh hơn cả một trí tuệ minh mẫn nhất. Hãy tập cho mình thói quen viết mọi thứ ra giấy. Trí tuệ của con người chỉ “sử dụng” tốt nhất cho những việc có tính chất bao quát chứ không phải những việc quá chi tiết. Chi tiết rất quan trọng, nhưng hãy truyền đạt chúng bằng ngòi bút. Nếu bạn muốn quản lý nó, trước hết bạn phải “đo lường” được nó. Hãy viết mọi thứ lên giấy, nó sẽ giúp bạn ghi nhớ mọi thứ cần phải hoàn thành dễ dàng hơn.

3. Lên kế hoạch hàng ngày

Người ta vẫn nói rằng con người không lên kế hoạch để thất bại nhưng rất nhiều người thất bại khi lên kế hoạch. Dành thời gian mỗi tối để kiểm soát nguồn lực quý giá nhất theo sự chỉ huy của bạn, trong vòng 24 giờ tới bạn sẽ làm những gì. Lên kế hoạch cho công việc và thực hiện kế hoạch hàng ngày. Viết danh mục “Những việc cần phải làm” lên giấy với những thứ “phải làm” và những thứ bạn “muốn làm” cho ngày tiếp theo. Nếu một ngày trôi qua mà không có kế hoạch gì cụ thể, bạn có thể dễ dàng bị rơi vào tình trạng xao nhãng, không tập trung vào những việc quan trọng nhất cần phải làm trong ngày, cũng coi như là bỏ qua một ngày làm việc.

4. Đưa ra thứ tự ưu tiên

Danh mục “Những việc cần làm” sẽ bao gồm những việc quan trọng và những việc kém quan trọng hơn. Mặc dù thực tế là hầu hết mọi người muốn làm việc năng suất, nhưng khi đưa ra sự lựa chọn giữa những việc quan trọng và kém quan trọng hơn thì hầu hết chúng ta lại làm những việc kém quan trọng hơn. Lý do dễ hiểu nhất cho sự “kỳ quặc” này đó là những thứ kém quan trọng hơn thường dễ làm hơn và làm cũng nhanh hơn. Hãy đưa ra thứ tự ưu tiên trong danh mục “Những việc cần làm” mỗi tối trước khi kết thúc một ngày làm việc.

Đặt số 1 bên cạnh việc quan trọng nhất trong danh mục của bạn, số 2 cạnh việc quan trọng số 2. Với “mẹo” này, có thể bạn không làm được tất cả mọi thứ trong danh mục Việc cần làm, nhưng ít nhất bạn sẽ làm việc quan trọng nhất. Đây thực sự là một cách làm việc thông minh chứ không chỉ là chăm chỉ, làm những việc cần làm nhất trước.

5. Kiểm soát sự trì hoãn

Lên kế hoạch hiệu quả nhất không thể thay thế cho việc thực hiện những việc cần phải làm. Chúng ta trì hoãn những việc quan trọng bởi vì chúng ta không cảm thấy đủ “đau đớn” khi không hoàn thành nó hoặc không đủ niềm phấn khởi, ham thích để thực hiện nó.

Để bắt đầu thực hiện việc đã bị bạn bỏ rơi bấy lâu nay, trước hết hãy nghĩ về những điều thật khủng khiếp sẽ xảy ra nếu bạn không hoàn thành hoặc cố gắng tạo ra niềm phấn khởi, hứng thú với việc đó, nhưng có lẽ cách thứ nhất hiệu quả hơn, công việc là công việc và bạn bắt buộc phải hoàn thành nó. Tuy vậy, những nhà lãnh đạo lạc quan vẫn luôn cố gắng tìm ra niềm phấn kích để hoàn thành công việc tốt hơn. Bạn có thể áp dụng bất kỳ cách nào sao cho phù hợp nhất với bản thân để công việc không bị đình trệ.

6. Sử dụng máy đo độ bị gián đoạn

Một người trung bình một ngày gặp phải 50 lần bị gián đoạn trong lúc làm việc. Trung bình mỗi lần gián đoạn là 5 phút. Như vậy một ngày bạn sẽ mất khoảng 4 giờ đồng hồ vì gián đoạn trong lúc làm việc. Có rất nhiều việc trong số những lần gián đoạn này là quan trọng và cấn thiết, nhưng cũng có rất nhiều việc chúng ta làm mà không có hoặc có rất ít giá trị. Hãy đo độ bị gián đoạn để xác định và loại bỏ những gián đoạn làm lãng phí thời gian của bạn.

Chiếc máy đo này chỉ cần thiết kế đơn giản như sau: Viết lên một tờ giấy trắng 6 cột: Ngày, thời gian, người, việc, thời lượng, đánh giá. Sau mỗi lần gián đoạn, ghi lại vào cột ngày, thời gian sự gián đoạn xảy ra và cuối cùng là đánh giá sự việc này: A= thiết yếu, B= quan trọng, C= Ít giá trị, D= Không gia trị. Theo dõi và tổng kết các sự việc gián đoạn này trong vòng một tuần hoặc hơn để có được sự đánh giá chuẩn xác xem điều gì đang xảy ra với cuộc sống của bạn. Sau đó đánh giá kết quả và tìm cách loại bỏ những gián đoạn loại C và D có ít hoặc không có giá trị.

7. Ủy thác

Một tuần, chúng ta có tất cả 168 tiếng, chúng ta dùng 56 tiếng để ngủ và 10 tiếng nữa vào những việc cá nhân, nhưng chúng ta lại không bao giờ có thể dành toàn bộ phần thời gian còn lại để làm những việc cần phải làm. Chúng ta luôn có niềm tự hào khi tự mình làm những việc cần làm. Nếu bạn muốn công việc được thực hiện tốt, thì tốt hơn hết là hãy tự làm nó.

Tuy vậy, trước mỗi bản kế hoạch hàng ngày được phác thảo trước khi kết thúc ngày làm việc, hãy nhìn tổng thế những việc bạn cần làm và muốn làm trong ngày tiếp theo, với mỗi việc hãy tự hỏi mình: “Thời gian của tôi dành cho việc này có phải là cách sử dụng thời gian tốt nhất không?”. Nếu câu trả lời là “có”, hãy tự làm nó. Nếu là “không”, hãy cố gắng sắp xếp và ủy thác cho một người khác công việc đó. Giữa “tôi làm việc đó” và “việc đó đã được hoàn thành” có rất nhiều sự khác biệt!

8. Quản lý thời gian hội họp

Một buổi họp là khi có từ hai người trở lên cùng gặp nhau để trao đổi thông tin. Một buổi họp thật đơn giản? Tuy vậy, nó có thể là một trong những thủ phạm lãng phí thời gian lớn nhất mà bất kỳ nhà lãnh đạo nào cũng trải qua.

Trước mỗi buổi hội họp, hãy tự hỏi: “Buổi họp có cần thiết không?” và “Tôi có cần thiết phải tham dự không?”. Nếu một trong hai câu trả lời là “không”, thì hãy xem xét khả năng không cần buổi họp hoặc không cần tham dự buổi họp. Sau đó hãy chuẩn bị một bản chương trình nghị sự dưới dạng văn bản cho buổi họp, trong đó nêu rõ chi tiết thời gian cần thiết cho mỗi mục với thời gian mở đầu và kết thúc. Sau đó, phát tờ chương trình nghị sự trước cho những người sẽ tham dự chương trình. Mọi người có thời gian đọc trước bản chương trình nghị sự sẽ giúp cho buổi họp tiến hành nhanh chóng hơn.

9. Xử lý giấy tờ

Bất kỳ nhà lãnh đạo nào cũng đều rất dễ bị chôn vùi trong đống giấy tờ xung quanh họ. Mỗi ngày, một người nhận khoảng 150 giao dịch qua thư điện tử, điện thoại, thư tay, các ghi nhớ, giấy báo, fax..v.v. Rất nhiều thời gian bị lãng phí qua những giấy tờ có nội dung giống nhau từ ngày này sang ngày khác. Hãy cố gắng xử lý giấy tờ ngay và hoàn thành chúng. Nếu có việc gì đó có thể làm ngay, chỉ mất khoảng 1 đến 2 phút, thì hãy thực hiện nó và hoàn thành. Nếu sử dụng thời gian của bản thân cho việc đó không phải là cách tối ưu thì hãy ủy thác cho cấp dưới. Nếu để hoàn thành việc đó cần nhiều thời gian hơn, thì hãy lên kế hoạch và đưa việc đó vào lịch làm việc.

10. Sử dụng hệ thống theo dõi thời gian

Nếu bạn muốn quản lý nó, hãy đo lường nó. Một hệ thống quản lý thời gian thật đơn giản nhưng nó lại là một công cụ đầy sức mạnh, giúp tạo ra một bức tranh tổng thể về cách bạn sử dụng thời gian hàng ngày như thế nào. Chỉ cần tạo ra hệ thống này bằng cách ghi lại những việc đã làm trong ngày. Ghi lại những hoạt động, thời gian dành cho hoạt động đó, sau đó đánh giá chúng bằng các chứ cái A, B, C và D. Ví dụ như bạn có thể viết lại khoảng thời gian đã sử dụng như sau:

– Gọi điện: 35 phút, A
– Nói chuyện: 48 phút, B
– Tham dự hội họp: 55 phút, C
– Nhận điện thoại của ông Janis: 60 phút, D

Sử dụng hệ thống này trong vòng vài ngày để có bức tranh tổng thế về cách bạn sử dụng thời gian. Phần lớn mọi người đều khám phá ra rằng họ dành rát nhiều thời gian cho mục C và D mà không mang lại kết quả gì. Cuối cùng hãy tìm cách từng bước giảm thời gian dành cho mục C và D để dành thời gian làm những việc khác thực sự quan trọng hơn.

Removing mails spam-scored over 10

I am using SpamAssassin 3.1.x on Linux.
Now, all mails with spam score over five (5) are marked as spams (so simple configuration). Further more, I would like to remove permanently all mails with score over ten (10).

Here is content of /etc/procmailrc to do that:

| /usr/bin/spamc
* ^X-Spam-Status:.*score=\/[0-9\.]+
## if spam score is > MAX_SCORE, trash it
* $ -${MAX_SCORE}^0
* $ ${MATCH}^0
## else if spam score is > MIN_SCORE, send it to spam folder
* $ -${MIN_SCORE}^0
* $ ${MATCH}^0

ProFTPd Automated Home Dir Creation

I had a requirement to restrict who could log into a ftp server, to automatically create their home directory – but in a different directory thats set in LDAP – with the correct permissions, and then to chroot them into here. ProFTPd with mod_ldap happened to be the answer, although it took a little bit of fiddling to get the right settings, as below:

        LDAPDoAuth on "ou=people,dc=example,dc=com"
        LDAPDoUIDLookups on "ou=people,dc=example,dc=com"
        CreateHome on 755
        LDAPGenerateHomedir on
        LDAPGenerateHomedirPrefix /path/to/base/dir
        LDAPForceGeneratedHomedir on
        RequireValidShell       no
        DefaultRoot ~

You can easily set this to autogenerate the home directory from the homeDirectory attribute in LDAP by removing the LDAPGenerateHomedirprefix and LDAPForceGeneratedHomedir lines. See the docs for more details on the directives.