2007年12月24日 星期一

qmail goes public domain

qmail goes public domain
"...I hereby place the qmail package (in particular, qmail-1.03.tar.gz, with MD5 checksum 622f65f982e380dbe86e6574f3abcb7c) into the public domain. You are free to modify the package, distribute modified versions, etc....."

The latest published qmail package is qmail-1.03.tar.gz, available from

Related packages:
  • djbdns,the DNS software strongly recommended for use with qmail;
  • ezmlm,an easy-to-use, high-speed mailing list manager;
  • ucspi-tcp,which includes a high-speed inetd replacement for your SMTP server, and a generic tool to reject mail from RBL-listed sites;
  • serialmail, a collection of tools for passing mail across serial links, including AutoTURN support;
  • qmailanalog, a collection of tools to help you analyze qmail's activity record;
  • dot-forward, a .forward clone for qmail;
  • fastforward, a table-based forwarding utility for qmail, including an /etc/aliases clone;
  • mess822, which includes centralized From rewriting for SMTP clients;
  • a patch for majordomo 1.93 to work with qmail; and
  • the checkpasswordprogram, which you need if you want to run qmail-pop3d.

If you're interested in what qmail can do for you, read on. See www.qmail.org for more qmail-related utilities and information about commercial support.

There are quite a few books on qmail. Out of those I've read, the best is The qmail handbook by Dave Sill. The newest book is Qmail Quickstarter by Kyle Wheeler.

2007年12月7日 星期五

pyparsing

The pyparsing module is an alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions. The pyparsing module provides a library of classes that client code uses to construct the grammar directly in Python code.

Linux Audio Editors: An Overview

A Survey and Intro

If you're not familiar with the area of Linux audio editors, you might be totally amazed at just how many there are. Clearly, writing these has scratched more than a few itches and more than one has earned grades as a class project.

It's not too hard to figure out why the area has been popular. For one thing, mangling sounds is fun, and for another, there is endless scope for playing with DSP algorithms. You can do that these days without writing a whole editor, but we'll get to that in a moment.

First of all, what is an audio editor, or better, an audio file editor, and what are they used for?

When audio is recorded on a computer, the information is stored in one of a number of formats—most commonly WAV or AIF on Macs. Both are uncompressed and have various options concerning quality and file size (higher quality = bigger file size), which needn't concern us here. There are also compressed formats that, by means of different algorithms, make the file sizes much smaller. Two well-known examples include MP3 and Ogg, which are lossy (information is discarded in the same sort of way as with the picture format, JPG), and a newer one, FLAC, which is not.

This information can be (and usually is!) depicted as a time/amplitude graph, where time runs along the horizontal axis and the frequency and amplitude (loudness) is mapped vertically. This presents pretty pictures of sound that you most likely have already seen and are intuitively easy to read.

Basics of Editor Actions

We use audio editors to perform a number of tasks, the simplest of which is a cut. If, for example, a file is too long, we highlight the area we want to remove by using the mouse and then we, typically, go to Edit and Cut in whatever app we're in, and zap it.

Let's look at the real-life situation of a podcast to see what sorts of things we might do. Let's say we've recorded an interview over the phone that we want to add some music bits to later.

As usual with phone recordings, we might have to deal with noises on the line, volume irregularities, and the usual interview problems of ums, ahs, and thinking gaps. Exactly what you do with these is an editorial choice, and I won't say more other than that making absolutely everything punchy is found by many thinking people to be nauseating.

After a run-through, the first thing that might be done is the pruning. Here it pays to know about destructive and non-destructive editing. The first operates on your primary file and any cuts you make are gone forever. The second method copies everything as its title suggests. Making copies of your own with destructive editors is easy to do though—you just have to remember.

The next thing to do might be attending to noise levels. Quite frequently this will entail just judging whether bits are usable or not, as denoisers often require a little luck.

How about levels generally? Here the normalizer is beloved of quite a few people, but the real answer, quite often, is careful and time consuming fiddling about with areas of the file.

Finally, you might want to export the file in a different format from the one you started with.

In this sort of straightforwardish case, we haven't played at all with another aspect of editors—adding effects.

Effects

Effects are fun and sometimes even useful. In the podcast example above, for example, we might have added a touch of reverb to give the voices a little extra life.

There are many, many, different kinds of effects and within kinds there are different approaches and results. In the field of electronic music making, files might be prepared for looping, or other use, by mangling them substantially. For example, if you use the Linux app Loopdub to play loops, there are limited facilities for live file mangling, so they need to be prepared beforehand.

In App

In the old days, if you wanted to write code for effects, it needed to be in the body of the app. These days, there is JACK, an audio interconnection kit, and LADSPA, a plugin format, so you can write and use effects where this system is relevant and possible.

In Line (LADSPA-JACK)

Live editing is a different area that is used mostly by musicians. For example, one might use Csound to generate sounds which are sent to the JACK tunnel and a series of LADSPA effects. All of this might then be routed (and recorded) by the HDR app, Ardour.

In this sort of way, JACK-capable editors can be used to at least add effects in real time. Mostly though, we don't want to do that.

Some Editors

Earlier, I said there were an amazing number of Linux audio editors out there and there are, but here I'm going to look at a representative sample.


Audacity - Most Used

figure

Audacity is the most well-known of the Linux audio editors. One reason is that it has been ported to both the Mac (OS X) and Windows. When podcasting first began to be a big thing, this app was something that people could point at that would get the job done and was free.

It has a simple but attractive interface and pretty much everything you can do is intuitively obvious for anyone who has even a slight knowledge of what is going on.

As is quite usual for editors, there are also recording facilities and the number of tracks that can be handled will be determined by your soundcard. It is worth saying here that the Big Guy, as far as recording is concerned, is Ardour. Check it out if you have ambitious schemes in mind.

Snd - The Grandad

figure

Snd is the editor with the longest history and was, for a while, nearly the only one capable of sophisticated transformations.

The original idea was that its construction would be modelled on emacs in that it could be infinitely extensible using scripting languages. It is exactly that and could suit DSP experimenters who have a certain sort of comp sci background or who have those tendencies!

In any case, this is a well-respected piece of software that is still being added to.

Sweep - Tricks

figure

In addition to the usual editing tasks, Sweep can also be used as a performance tool. A feature of high-end commercial editors, such as Sountrack Pro is the ability to hear samples as you move around in the file, without having to hit the play button. This is useful while editing, but the Sweep team has given this idea the name of Scrubby with the further idea that it will be used for digital DJing. In fact, there are other performance tools in Sweep, such as the ability to play many loops and control the play with the computer keyboard. I haven't seen anyone using it in performance, yet but maybe mentioning this aspect here will get more people interested.

If you're interested and will be in Europe in March/April 2008, maybe you should check out Bleepfest, which I have something to do with. A footnote here is that Linux based musicians have been actively encouraged to take part (three events so far, in London and Berlin with the next most likely in Paris), but it is has been a 99.9 percent Mac affair so far.

Traverso - Context

figure

Traverso aims to be a complete digital audio workstation (DAW) but has significant editing skills and is the newest of the projects listed here. It is also available for Mac OS X and Windows.

It is interesting in a few ways. For a start, the Unix way is to have many interconnected small tools rather than enormous apps that do everything. Ardour, for example, purposely has less in the way of editing capability precisely because they are following this philosophy. Traverso is taking a different tack as they feel that it is easier for people to download, install, and learn one app, than it is to discover and learn a whole collection of apps.

Another thing the developers were interested in was the area of menus, and they have made efforts to extend commands by using the mouse in conjunction with the keyboard. This approach can potentially both enrich and speed up the user experience but won't be loved by everyone.

Conclusion

There is a rich amount of choice available in this sector. Perhaps you can find something that not only suits your needs but also leads you off to some interesting new places.

John Littler is chief gopher for Mstation.org.


linux audio editor with unique tricks (LPC anal/synthesis)
2007-11-29 13:01:40 josquin [Reply | View]

MixViews:
Linux audio editor with unique tricks: (LPC analysis/resynthesis & other analysis methods)
http://www.create.ucsb.edu/~doug/htmls/MiXViews.html
njoy
  • ardour
    2007-11-27 17:55:23 treoubo [Reply | View]

    http://ardour.org/
  • You forgot about Jokosher!
    2007-11-27 07:37:15 beranger5ca [Reply | View]

    There is also Jokosher, see http://www.jokosher.org/ ...

2007年12月4日 星期二

decompiler or exe2c/exe2asm

http://www.program-transformation.org/Transform/DecompilationResources

http://www.program-transformation.org/Transform/HistoryOfDecompilation3

http://desquirr.sourceforge.net/desquirr/links.php

http://www.itee.uq.edu.au/~cristina/dcc.html

http://compilers.iecc.com/comparch/article/96-01-017

http://lcamtuf.coredump.cx/fenris/debug-tools.html

Differentiating Among BSD Distros

Organizations that want to use a public Unix variant have two solutions from which to chose: Linux and BSD. The much talked about Linux camp contains a variety of distributions that include different utilities and tool sets. The same is true of the less frequently covered BSD camp. This article compares and contrasts the four main BSD variants and offers recommendations for both server- and desktop-based solutions.

BSD History

There are four main BSD variants. Three of these (FreeBSD, OpenBSD, and NetBSD) are totally free; the fourth (Mac OS X) is technically the core part of an operating system that most wouldn't even consider a BSD variant. To understand the differences between the various versions, let's briefly recap the history of BSD to understand how the different versions have developed.

Today's BSD variants are open source versions of the original AT&T Unix operating system. In fact, they all come from the Unix developed at the University of California Berkeley, and BSD is actually short for Berkeley Software Distribution. A significant part of the original BSD code was based on the AT&T Unix code, which wasn't free. Through efforts on the part of a few key members of the original BSD development team, such as William F. Jolitz, the final parts of the code were developed under an open source license and produced 386BSD.

In 1993, 386BSD was forked into two of the main versions we know today: NetBSD and FreeBSD. They were formed with different aims and goals. Not surprisingly, each has its own history. OpenBSD, the third variant, arrived in 1996 and was developed specifically to address some of the security concerns in the other variants.

The BSD incorporated into Mac OS X is known as Darwin. It is available as a completely separate component. Darwin itself is derived from the BSD layer of the NextStep operating system, developed by NeXT, the company set up by Steve Jobs after he left Apple in the 1980s. Technically, Mac OS X is based on the FreeBSD core, with OS X 10.3 based on FreeBSD 5.x. It is, however, extremely customized beyond the base BSD code. The key benefit with Mac OS X is the Aqua GUI that allows OS X to operate like the original Mac OS operating system but still have all the benefits and flexibility of an efficient BSD kernel.

Common Features

Like other Unix variants, the four BSD distros provide similar basic functionality. All contain the following core components:

  • Kernel — Pre-emptive, multitasking with job control
  • Security — The basic log-in and authorization system
  • Shell Interface — The Bourne, C, Korn, and other third-party shells
  • Networking — Adherence to the TCP|UDP/IP standard and support for all the base protocols (e.g., finger, telnet, NFS, and FTP)
  • Third-Party Networking — Support for Apache, Mac file sharing (through NetAt), and Windows file sharing (through Samba)
  • Base Utilities — Rich, built-in utility list, including awk, cut, paste, sed, and ed

In addition, because it is a Unix-like operating system, most of the other tools, utilities, and systems, such as Perl, Python, Apache, MySQL, PostGreSQL, Java, C/C++, work with BSD. However, because it is a less popular Unix alternative than Linux, fewer prepackaged applications are available. Some BSD variants do come with a Linux compatibility package, though, that enables them to execute Linux applications (from the same platform) directly.

BSD systems have a reputation for better reliability than some alternatives, largely because they are developed with smaller, more focused development teams. They also boast a more mature code base, as a significant proportion of the BSD ethos come from the very earliest forms of Unix.

So with all these similarities, how does one differentiate the various versions and choose which to deploy?

FreeBSD

FreeBSD came to be one of the most popular BSD revisions after its early release through Walnut Creek CD-ROM, an early pioneer in distributing free and open source software on CD before the explosion of the Internet. Its primary platform is the x86 PC, including the current AMD and Intel 64-bit variants, though it also has a presence on Sun's SPARC platform.

The main focus for FreeBSD is performance, particularly of the TCP/IP stack with a number of companies, including Yahoo, using FreeBSD as an Internet server platform. FreeBSD holds the unofficial record for transferring data, having achieved more than 2 Terabytes of data from one server running the OS. It follows from this statistic that FreeBSD is also one of the most stable OSes available.

The developers of FreeBSD put a lot of effort into making the system as easy to use as possible. Thus, FreeBSD has one of the easiest installs of all the Unix platforms. Once the system has been installed, you can easily download, compile, and install additional packages through the built-in ports system, a third-party solution that automates the process. The Ports Collection downloads the necessary files, checks the files for integrity, builds the application, and then installs the application. This simplifies one of the most time-consuming aspects of deploying applications to different computers.

FreeBSD at a Glance

Home Page http://www.freebsd.org/
Platforms i386, Alpha, IA-64, AMD64, and UltraSPARC
Original Release December 1993
Focus High performance computing, ease of use, and stability

NetBSD

NetBSD was released a few months before FreeBSD. Unlike FreeBSD, which concentrated on the performance and best-quality support for its main target platform, NetBSD was developed to support as wide a platform base as possible. It would be difficult to list all available versions of NetBSD, but it runs on more than 50 platforms, from mainstream ones, such as x86 and SPARC, to niche products like Sega's Dreamcast and a number of hobbyist, handheld, and embedded devices.

This portability gives NetBSD an edge. Although it gives the OS an air of disparity, the reality is different. The variety of platforms supported means the code is efficient and secure, with a wide range of experience that improves the OS as a whole.

The range of support also means NetBSD runs on much more powerful hardware than is supported by other distributions. Higher-end dedicated Unix workstations from Sun, Hewlett-Packard, and the old Digital/Compaq Alpha platform can be used with NetBSD to provide all of the stability and performance of the BSD platform while giving a new lease of life to older available hardware.

The portability is also a major attraction as a deployment and re-development choice for those building their own computers, or using one of the many embedded hardware solutions. This keeps NetBSD as a popular choice in universities and science labs.

NetBSD at a Glance

Home Page http://www.netbsd.org/
Platforms Just about all
Original Release December 1993
FocusPortability and stability


OpenBSD

OpenBSD was developed by Theo de Raadt after a disagreement over the future of the NetBSD code. OpenBSD development began by focusing on producing an incredibly secure OS, and it's an approach that continues to this day.

Unlike other BSD variants, and most Unix flavors, OpenBSD is installed with everything but the absolutely essential services disabled. Users used to having NFS, Telnet, finger, FTP and other features running out of the box on a Linux installation will find they have to specifically enable, rather than disable, these services on OpenBSD. OpenBSD was designed this way to eliminate the possibility of these 'accidentally' being open and therefore causing a potential security breach.

OpenBSD also includes a range of built-in cryptography standards, such as RSA, Blowfish, DES, and full support for the IPSec TCP/IP security system. Cryptographic support is further enhanced with support of a number of hardware accelerators, including many of the third-party PCI cards and support for newer systems, such as the Random Number Generator and Advanced Encryption Standard built into the latest VIA C3-series CPUs. OpenBSD is well suited for use in a network router, firewall, and secure Internet service solution because of its high level of built-in security and encryption.

OpenBSD's overall security is further enhanced by a strict method of code testing and auditing. The code has been examined, virtually line by line, to find potential faults in the system. Thus, gaps in the OS, both real and potential, are plugged before they can be used and exploited.

The result — an OS that for years has not had a remote-root exploit of the type often found on other operating systems.

OpenBSD at a Glance

Home Page http://www.openbsd.org/
Platforms i386, Alpha, AMD64, sparc, sparc64, hp300, hppa, mac68k, macppc, mvme68k, mvme88k, and vax
Original ReleaseNovember 1995
FocusSecurity and code purity

Mac OS X

Darwin, the kernel on which Mac OS X is based, is itself based on the FreeBSD code with a custom Mac kernel in place of the standard BSD kernel. Darwin's main focus is to provide the base on which the rest of the Mac OS X environment runs. Although Darwin is not designed as an alternative to other BSD offerings, it does have a place in the BSD space.

Most users logging in remotely to an OS X machine would hardly notice a difference in the environment if they didn't look around too closely. The same utilities and environment are available as within a genuine FreeBSD environment.

The Darwin project is completely open source, Apple makes the system and source code available online, and changes to the Darwin code are rolled back into the FreeBSD source tree. Darwin is supported on both the PowerPC and x86 platforms, which often surprises people.

Where Darwin differs from the three other distros is that it forms the base of the Mac OS X operating system. A proprietary suite of tools and a user environment (Aqua) built on top of the Darwin core provide a user interface not vastly different from the Mac OS 9 and earlier interfaces for which Apple is famous. It is through Aqua that the majority of custom and commercial applications, including Adobe InDesign, Illustrator, and Microsoft Office are made available.

Despite the additional applications and interface options supported by Aqua and Mac OS X as a whole, underneath, the FreeBSD core is always available. You can open a shell interface through the Terminal application; there is support for X Windows System based applications; and you still have access to Perl, Python, MySQL, Apache, and any other Unix-compatible tools.

The Darwin core is an open source project, with Apple and members of the Darwin community enhancing the Darwin code and extending the operation and functionality of the system. Ultimately, any changes made in Darwin make their way into other parts of the BSD family. Apple is also helping to support the BSD community as a whole, so improvements to the BSD platform flow freely between the Apple and community camps.

Darwin/OS X at a Glance

Home Pagehttp://developer.apple.com/darwin/
Platformsx86 (Darwin only) and Mac (Darwin+OS X)
Original ReleaseMarch 1999
FocusEase of use


Choosing a Desktop Solution

Which flavor of BSD you chose should depend largely on what hardware the desktop uses. On an Intel- or AMD-based PC, FreeBSD is a stable and widely supported choice. For older hardware, or hardware that is not exactly mainstream, NetBSD might be a better solution. NetBSD is even more suitable for developing and deploying an application on one of the many embedded solutions, as you can probably use NetBSD on both platforms.

If you need a Unix environment but also want access to commercial applications like Microsoft Office, or products from Adobe, Alias, and others, Mac OS X delivers the best of both worlds. The FreeBSD-like kernel provides a complete set of standard Unix utilities and libraries that enable you to use the BSD and OS X elements simultaneously.

For the record, OS X is my platform of choice. I develop Web applications using Perl, MySQL, and others while writing articles and books using Microsoft Word, all on a Power book G4 running OS X.

Choosing a Server Solution

OpenBSD is the obvious choice on the server because of its very high security principles. With such a safe environment it's easy to deploy an OpenBSD-based server without worrying too much that the system or network will be compromised. OpenBSD, in particular, is ideal for use as a public-side server on the network and for providing firewall and proxy services between the Internet and an internal network.

For a pure Web server, FreeBSD is also a good choice purely because of its stability on key hardware platforms like x86. The quality of the disk drivers and networking stack means exceptionally high levels of availability. It's also possible to make FreeBSD more secure by specifically disabling the services you don't need to support.

If you prefer to work within the general security of the BSD platform, but with a friendlier configuration and management environment, consider Mac OS X Server. It provides all the benefits of the FreeBSD platform, with a friendlier front end. OS X Server provides more extensive support for Apache; file sharing through NFS, AppleTalk, and Samba; a built-in firewall and VPN; directory services through OpenLDAP; and audio/video streaming through QuickTime. This functionality comes pre-configured and ready to use.

All of this comes at a price. Unlike other offerings, OS X Server is a commercial product. Although Darwin is free, the configuration and management tools built into OS X Server make it so nice to use compared to the other BSD options.

All in all, when evaluating a Unix-based OS other than Linux, all of the BSD variants are equally matched.