who wants
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 35
Ubuntu Lite 1.1
Ubuntu Lites idea is to bring the power of Ubuntu across to the users of Legacy systems. more>>
Ubuntu Lites idea is to bring the power of Ubuntu across to the users of Legacy systems. So not just to make a small linux as this has been done before (Puppy Linux, Damn Small linux, the Rule Project). Nor to make a useable linux based desktop Operating system (that has been done with Ubuntu Linux, Beatrix).
The idea is to bring the power of Ubuntu to the typical users of Legacy hardware (ie the grandma who gets an old P2 set up for her but does not know how to use it).
So to this end the Operating system needs to be:
* Easily used by people with minimal computer skills
* Useable on a resurected system (see system specifications below)
* and is able to satisfy a typical users requirement of Applications and functionality.
These are the three core aims of the Ubuntu Lite Project.
We will also provide development guides to anyone who wants to trim down their versions or help others use linux on reconditioned hardware. I hope that you enjoy Ubuntu Lite and that you find it useful.
<<lessThe idea is to bring the power of Ubuntu to the typical users of Legacy hardware (ie the grandma who gets an old P2 set up for her but does not know how to use it).
So to this end the Operating system needs to be:
* Easily used by people with minimal computer skills
* Useable on a resurected system (see system specifications below)
* and is able to satisfy a typical users requirement of Applications and functionality.
These are the three core aims of the Ubuntu Lite Project.
We will also provide development guides to anyone who wants to trim down their versions or help others use linux on reconditioned hardware. I hope that you enjoy Ubuntu Lite and that you find it useful.
Download (215MB)
Added: 2006-08-21 License: GPL (GNU General Public License) Price:
2023 downloads
SEO Rank Checker 2.1
Search-Engine-Optimized project is a free online resource for anyone who wants to step up their search engine optimization. more>>
Search-Engine-Optimized project is a free online resource for anyone who wants to step up their search engine optimization strategies to the next gear.
The web is a constantly changing place, expecially search engines, but there are numerous search engine optimization strategies that are consistant across all the major search engines, and are probably going to be very useful for a long time to come.
Read on to learn what they are and how to employ them in the development of your web site.
Main features:
SEO Rank Checker is a nice little script for checking your keyword status for a few select keywords without going through the trouble of checking the search engine result pages yourself.
- Automated fetching of the top 100 results for MSN, Yahoo and Google to check for your site.
- Easy to read, compare and print output
- Installation is super easy, just upload to your server and youre done!
- Super small script, just a few KBs of space!
<<lessThe web is a constantly changing place, expecially search engines, but there are numerous search engine optimization strategies that are consistant across all the major search engines, and are probably going to be very useful for a long time to come.
Read on to learn what they are and how to employ them in the development of your web site.
Main features:
SEO Rank Checker is a nice little script for checking your keyword status for a few select keywords without going through the trouble of checking the search engine result pages yourself.
- Automated fetching of the top 100 results for MSN, Yahoo and Google to check for your site.
- Easy to read, compare and print output
- Installation is super easy, just upload to your server and youre done!
- Super small script, just a few KBs of space!
Download (0.003MB)
Added: 2006-01-24 License: Freeware Price:
1371 downloads
powwow 1.2.10
powwow is a client program, which replaces telnet for the lazy mudder who wants some extra features. more>>
powwow is a client program, which replaces telnet for the lazy mudder who wants some extra features. It is primarily designed for DikuMUDs, but nothing prevents its use for other types of muds.
powwow is based on another client, cancan, and cancan was originally inspired by tintin (yet another client) by Peter Unold, but is entirely re-written.
powwow also implements the MUME remote editing protocol, which enables you to edit texts on the mud using your own favourite editor, several texts at once if you have a windowing terminal.
powwow was written and maintained by Massimiliano Ghilardi and moved here in March of 2005.
Enhancements:
- Several bugfixes for crashes, and a new command to allow configuring the alias/action group separator for people that use @ in alias or action names.
<<lesspowwow is based on another client, cancan, and cancan was originally inspired by tintin (yet another client) by Peter Unold, but is entirely re-written.
powwow also implements the MUME remote editing protocol, which enables you to edit texts on the mud using your own favourite editor, several texts at once if you have a windowing terminal.
powwow was written and maintained by Massimiliano Ghilardi and moved here in March of 2005.
Enhancements:
- Several bugfixes for crashes, and a new command to allow configuring the alias/action group separator for people that use @ in alias or action names.
Download (0.25MB)
Added: 2006-02-07 License: GPL (GNU General Public License) Price:
1355 downloads
libzdt 2.0.2
libzdt is a free general library aimed at anyone who wants to use it. more>>
libzdt is a free general library aimed at anyone who wants to use it.
Some people may wonder why we need another software library. The answer is simple: What others dont offer, were trying to provide.
This basically meaning, while some of the things included in libzdt are included in other libraries, either we think the implementation isnt perfect, or we just feel it would make a great compliment to what were trying to do which is make life easier for those who want to write software.
While libzdt does not contain any graphical user interface API, it may later (please keep in mind that libzdt is still very pliable in a GUI application depending on what it is, and what the application does).
Anyway, libzdt is just a collection of functions Ive wrote over the years, or someone else has written and Ive just picked em up (you can see the list of people to whom I owe thanks for their code in the Documentation/Authors file). libzdts primary use will be in ZerOS, the operating system myself and a few friends are designing and developing (well, Im doing the development), right now however, its primary use is in custom commercial software my company writes. This version however, is not used in any commercial software, please see further into this document for more information on libzdt itself.
Little note on our coding style, at least myself, I go by the Linux kernel coding standards (which are included in the Documentation/CodingStyle file).
Anyway, back to libzdt itself... Its being rewritten for one reason, and one simple reason only. The version of libzdt that I use myself (not to say I dont use this one, because I do) is private, closed source. Its a library written in Objective-C++ anyway, so only a few platforms can use it (MacOS X, NeXTSTEP/OpenStep are the only platforms that I know have a working ObjC++ compiler), and besides, the code is ugly looking.
To compile libzdt, all you have to do is go into the main directory, which you are no doubt in right now reading this file, and type: make. This will build both the static library and shared library files and place them in the $LIBZDT_ROOT/Objects.x86 directory. In previous versions you had to type: make depend shared static, or something of the such to build all that you can now with just the make command without any arguments. To install libzdt, you must be root (or a user who has permissions to run ldconfig) in order to complete the install process. Simply type: make install.
<<lessSome people may wonder why we need another software library. The answer is simple: What others dont offer, were trying to provide.
This basically meaning, while some of the things included in libzdt are included in other libraries, either we think the implementation isnt perfect, or we just feel it would make a great compliment to what were trying to do which is make life easier for those who want to write software.
While libzdt does not contain any graphical user interface API, it may later (please keep in mind that libzdt is still very pliable in a GUI application depending on what it is, and what the application does).
Anyway, libzdt is just a collection of functions Ive wrote over the years, or someone else has written and Ive just picked em up (you can see the list of people to whom I owe thanks for their code in the Documentation/Authors file). libzdts primary use will be in ZerOS, the operating system myself and a few friends are designing and developing (well, Im doing the development), right now however, its primary use is in custom commercial software my company writes. This version however, is not used in any commercial software, please see further into this document for more information on libzdt itself.
Little note on our coding style, at least myself, I go by the Linux kernel coding standards (which are included in the Documentation/CodingStyle file).
Anyway, back to libzdt itself... Its being rewritten for one reason, and one simple reason only. The version of libzdt that I use myself (not to say I dont use this one, because I do) is private, closed source. Its a library written in Objective-C++ anyway, so only a few platforms can use it (MacOS X, NeXTSTEP/OpenStep are the only platforms that I know have a working ObjC++ compiler), and besides, the code is ugly looking.
To compile libzdt, all you have to do is go into the main directory, which you are no doubt in right now reading this file, and type: make. This will build both the static library and shared library files and place them in the $LIBZDT_ROOT/Objects.x86 directory. In previous versions you had to type: make depend shared static, or something of the such to build all that you can now with just the make command without any arguments. To install libzdt, you must be root (or a user who has permissions to run ldconfig) in order to complete the install process. Simply type: make install.
Download (0.090MB)
Added: 2006-03-24 License: BSD License Price:
1310 downloads
Calcc 0.1.1a
Calcc is a useful command-line calculator (32/64 bit numbers) which supports multiple input and output formats. more>>
Calcc is a useful command-line calculator (32/64 bit numbers) which supports multiple input and output formats (hex, decimal, octal, base4, binary, string and IPv4/v6 addresses, base64, percentage, time), parenthesis and the following operators: complement, not, shift, rotate, xor, and, or, power, root, byte and bit swapping, multiplication, division, modulus, addition and substraction.
Can be used also like a quick and easy to use numbers converter.
I have decided to write this program for requirement (Im lost without a command-line calculator) just because after many time and searches on Internet I have never found something similar supporting what I needed.
It is specific for people which use C and assembly and need a fast and simple way for computing particular calculations often used in these programming languages but its also perfect for who wants to do 1+2 without reading a boring manual and without using tons of different programs for converting and reconverting inputs and outputs from a format to another one.
The program supports different types of input formats (default is decimal) and are recognized through a character before each number:
0x = hexadecimal example: 0x41
$ = hexadecimal example: $41
h = hexadecimal example: h41
o = octal example: o101
b = binary example: b1000001
i = IP address (v4 or v6) example: i1.2.3.4 or 1.2.3.4
or 1.2.3.4.5.6
q = base_four example: q1001
t = time hh:mm:ss example: t12:34:53
if you use t0 will be get the current system time
c = percentage example: 200 - c10 (its like 200 - 10%)
200 = c10 (returns the 10%)
must be specified ever at right of the operation
= decimal (default) example: 65
All the input types are case insensitive, so 0x7a is the same of 0X7A.
IP addresses (both ipv4 and ipv6 supported) are automatically recognized also without specifying the i char, if the program finds at least 3 dots in a number considers it an IP address.
Enhancements:
- Localtime was substituted with gmtime (UTC time visualization).
<<lessCan be used also like a quick and easy to use numbers converter.
I have decided to write this program for requirement (Im lost without a command-line calculator) just because after many time and searches on Internet I have never found something similar supporting what I needed.
It is specific for people which use C and assembly and need a fast and simple way for computing particular calculations often used in these programming languages but its also perfect for who wants to do 1+2 without reading a boring manual and without using tons of different programs for converting and reconverting inputs and outputs from a format to another one.
The program supports different types of input formats (default is decimal) and are recognized through a character before each number:
0x = hexadecimal example: 0x41
$ = hexadecimal example: $41
h = hexadecimal example: h41
o = octal example: o101
b = binary example: b1000001
i = IP address (v4 or v6) example: i1.2.3.4 or 1.2.3.4
or 1.2.3.4.5.6
q = base_four example: q1001
t = time hh:mm:ss example: t12:34:53
if you use t0 will be get the current system time
c = percentage example: 200 - c10 (its like 200 - 10%)
200 = c10 (returns the 10%)
must be specified ever at right of the operation
= decimal (default) example: 65
All the input types are case insensitive, so 0x7a is the same of 0X7A.
IP addresses (both ipv4 and ipv6 supported) are automatically recognized also without specifying the i char, if the program finds at least 3 dots in a number considers it an IP address.
Enhancements:
- Localtime was substituted with gmtime (UTC time visualization).
Download (0.034MB)
Added: 2006-04-18 License: GPL (GNU General Public License) Price:
1284 downloads
Got Word Database Maker 1.3
Bible trivia game that is a cross between the TV game show Who Wants to be a Millionaire? more>>
Hello! Thank you for donating your knowledge and time to our cause. Pariahware, Inc. is currently working on a Bible trivia game that is a cross between the TV game show "Who Wants to be a Millionaire?" and the electronic game series "You Dont Know Jack!" As one might imagine, this can be a daunting task.
That is why we are asking for your help in coming up with some GREAT Bible questions in order to make this game even more fun than we could do by ourselves! When you are finished submitting all of your questions, please e-mail the "qanda.rsd" file back to submissions@pariahware.com. By submitting the questions that you come up with, you agree to the following:
The Legal:
1. You expect no royalty fees or other payment for Pariahware, Inc. using your questions in the game.
2. Any parts of the questions you submit may be altered at will by the members of Pariahware, Inc.
3. Even though you submit a question for the game, that does not necessarily mean it will appear in the game.
4. If your name is included in your e-mail, Pariahware, Inc. has the right to add it as an acknowledgement, unless otherwise noted. You will not be paid as a result of having your name listed.
The How To:
1. Make sure that the Got Word DB Maker application and the "qanda.rsd" file are in the same folder or the program will not work.
2. Double-click the Got Word DB Maker application icon.
3. Select the radio button in the lower-left-hand corner that says "Add new question".
4. There are five text fields. The large one on the top is for the question. The other four are for potential answers. All of these need to be filled.
5. The correct answer needs to be selected by the "drop down" in the upper-right-hand corner.
6. The book of the Bible, in which the question is referencing, needs to be selected in the upper-left-hand corner.
7. Below the book selection is value (points) for the question. This needs to be selected as well.
8. When all of this has been done, the "Save New Question" button will activate. Click it to save your question.
Word of Caution:
To make changes to question that you have already entered, click the "edit existing questions" radio button.
Enhancements:
- Bug Fixes.
<<lessThat is why we are asking for your help in coming up with some GREAT Bible questions in order to make this game even more fun than we could do by ourselves! When you are finished submitting all of your questions, please e-mail the "qanda.rsd" file back to submissions@pariahware.com. By submitting the questions that you come up with, you agree to the following:
The Legal:
1. You expect no royalty fees or other payment for Pariahware, Inc. using your questions in the game.
2. Any parts of the questions you submit may be altered at will by the members of Pariahware, Inc.
3. Even though you submit a question for the game, that does not necessarily mean it will appear in the game.
4. If your name is included in your e-mail, Pariahware, Inc. has the right to add it as an acknowledgement, unless otherwise noted. You will not be paid as a result of having your name listed.
The How To:
1. Make sure that the Got Word DB Maker application and the "qanda.rsd" file are in the same folder or the program will not work.
2. Double-click the Got Word DB Maker application icon.
3. Select the radio button in the lower-left-hand corner that says "Add new question".
4. There are five text fields. The large one on the top is for the question. The other four are for potential answers. All of these need to be filled.
5. The correct answer needs to be selected by the "drop down" in the upper-right-hand corner.
6. The book of the Bible, in which the question is referencing, needs to be selected in the upper-left-hand corner.
7. Below the book selection is value (points) for the question. This needs to be selected as well.
8. When all of this has been done, the "Save New Question" button will activate. Click it to save your question.
Word of Caution:
To make changes to question that you have already entered, click the "edit existing questions" radio button.
Enhancements:
- Bug Fixes.
Download (1.3MB)
Added: 2006-04-21 License: Freeware Price:
1283 downloads
BIM 1.0
BIM version 1.00 is a free Java based AOL instant messenger client. more>>
BIM version 1.00 is a free Java based AOL instant messenger client. BIM is a Java based AOL Instant Messenger Client with encryption support. It has a small code base (617KB w/encryption libs) and can be easily run on wide array of operating systems. BIM has been tested on OSX, Windows XP, Solaris and Linux. BIM also incorporates encryption technology so that a user can communicate securely with any other BIM user.
I think pictures speak louder then words so I decided a demonstration was in order. Using another brilliant open source product, PlugProxy, I was able to take a quick screen shot of what goes over a TCP connection when connected to AIM. As you can see the connection is not secure at all, everything is sent as clear text. A user is vulnerable to both eavesdropping and message alteration.
In addition to your messages being compromised, you have no way of knowing for sure that your buddys messages are genuine. They could have their connection altered much in the same way as your could be. A true security solution encompasses the following:
* Private Messages - Messages sent are not read or altered by others
* Authenticated Messages - Messages received can be verified that they were in fact sent by the sender
* Verified Messages - Your buddy is who they say they are
BIM addresses all three of these issues. BIM can run a chat session in what is referred to as secure mode, although BIMs secure messaging involves more then just encryption. Unlike other IM clients, BIM actually addresses all three of these issues. Every unique user of BIM can generate a public/private key pair for security use. BIMs security hinges on the secrecy of this private key, BIM will never send this key over the network however it is up to the user to secure the key on their local machine.
Private Messages
BIM does use encryption in order to send messages safely to other users. BIM uses RSA encryption to ensure only the intended receiver can decrypt your message. It does this by encoding each message with the public key of the recipient. By doing so only the intended recipient (and the NSA perhaps :)) can properly and easily decrypt each message.
Authenticated Messages
BIM uses digital signatures for the verification of messages. To be more specific BIM creates an MD5 hash of each message, which is then encoded using RSA again as specified by PKCS#1. This signature for each messages is appended to the message and serves two purposes. It allows the recipient to verify it was in fact the send of the message who reated this message, more specifically it proves the message was not sent by an imposter. In addition the signature verifies the content of the message, namely that the message was not altered in transit by a third party.
Verified Messages
All transactions in BIM (and most PKI schemas in general) begin with two parties swapping public keys. In order to prevent the famous man in the middle attack, public keys are signed by a certificate authority. Users can then verify the identity of the user sending them the public key. BIM does address this and comes with a bot (CAbot) which runs on the AOL network and can give out certificates. CA-bot in its current state is not that useful though for the following reasons:
* The CA-bot will give a certificate to anyone who wants one with a valid AIM id.
* The CA-bot has no way of revoking a certificate.
although it is provided in the bim distro for educational purposes. This bot might be upgraded in a future version of BIM. To run the bot do this:
java -cp bim.jar wellington_brad.bim.cabot.CaBot
You should see aol id cabot215 come online.
When BIM is running in secure mode, it becomes very difficult for a potential attacker to do anything but prevent communication. Here is picture of the same AOL conversation using PlugProxy as was shown above, this time in secure mode. Here is a link to a presentation I did on some of these issues.
<<lessI think pictures speak louder then words so I decided a demonstration was in order. Using another brilliant open source product, PlugProxy, I was able to take a quick screen shot of what goes over a TCP connection when connected to AIM. As you can see the connection is not secure at all, everything is sent as clear text. A user is vulnerable to both eavesdropping and message alteration.
In addition to your messages being compromised, you have no way of knowing for sure that your buddys messages are genuine. They could have their connection altered much in the same way as your could be. A true security solution encompasses the following:
* Private Messages - Messages sent are not read or altered by others
* Authenticated Messages - Messages received can be verified that they were in fact sent by the sender
* Verified Messages - Your buddy is who they say they are
BIM addresses all three of these issues. BIM can run a chat session in what is referred to as secure mode, although BIMs secure messaging involves more then just encryption. Unlike other IM clients, BIM actually addresses all three of these issues. Every unique user of BIM can generate a public/private key pair for security use. BIMs security hinges on the secrecy of this private key, BIM will never send this key over the network however it is up to the user to secure the key on their local machine.
Private Messages
BIM does use encryption in order to send messages safely to other users. BIM uses RSA encryption to ensure only the intended receiver can decrypt your message. It does this by encoding each message with the public key of the recipient. By doing so only the intended recipient (and the NSA perhaps :)) can properly and easily decrypt each message.
Authenticated Messages
BIM uses digital signatures for the verification of messages. To be more specific BIM creates an MD5 hash of each message, which is then encoded using RSA again as specified by PKCS#1. This signature for each messages is appended to the message and serves two purposes. It allows the recipient to verify it was in fact the send of the message who reated this message, more specifically it proves the message was not sent by an imposter. In addition the signature verifies the content of the message, namely that the message was not altered in transit by a third party.
Verified Messages
All transactions in BIM (and most PKI schemas in general) begin with two parties swapping public keys. In order to prevent the famous man in the middle attack, public keys are signed by a certificate authority. Users can then verify the identity of the user sending them the public key. BIM does address this and comes with a bot (CAbot) which runs on the AOL network and can give out certificates. CA-bot in its current state is not that useful though for the following reasons:
* The CA-bot will give a certificate to anyone who wants one with a valid AIM id.
* The CA-bot has no way of revoking a certificate.
although it is provided in the bim distro for educational purposes. This bot might be upgraded in a future version of BIM. To run the bot do this:
java -cp bim.jar wellington_brad.bim.cabot.CaBot
You should see aol id cabot215 come online.
When BIM is running in secure mode, it becomes very difficult for a potential attacker to do anything but prevent communication. Here is picture of the same AOL conversation using PlugProxy as was shown above, this time in secure mode. Here is a link to a presentation I did on some of these issues.
Download (0.61MB)
Added: 2006-06-24 License: GPL (GNU General Public License) Price:
1238 downloads
Acme::OneHundredNotOut 100
Acme::OneHundredNotOut is a raise of the bat, a tip of the hat. more>>
Acme::OneHundredNotOut is a raise of the bat, a tip of the hat.
I have just released my 100th module to CPAN, the first time that anyone has reached that target. As some of you may know, I am getting ready to go back to college and reinvent myself from being a programmer into being a missionary. I dont forsee that many more Perl modules coming out of this.
Of course, this doesnt mean that Im going to abjure usage of Perl forever; any time theres a computer and something I need automated, out will come the Swiss Army Chainsaw and the job will get done. In fact, we recently needed to manipulate some text from a mission handbook to translate it into Japanese, and Perl was there handling and collating all that.
But 100 modules is a convenient place to stop and take stock, and I hope that those of you who have benefitted from my modules, programs or writing about Perl will forgive me a certain spot of self-indulgence as I look back over my CPAN career, especially since I feel that the diversity of modules that Ive produced is a good indication of the diversity of what can be done with Perl.
Lets begin, then, with some humble beginnings, and then catch up on recent history.
The Embarrassing Past
Contrary to popular belief, I was not always a CPAN author. I started writing modules in 1998, immediately after reading the first edition of the Perl Cookbook - yes, you can blame Nat and Tom for all this. The first module that I released was Tie::DiscoveryHash, since Id just learnt about tied hashes. As with many of my modules, it was an integral part of another software project which I actually never finished, and now cant find.
The first module that I ever wrote (but, by a curious quirk of fate, precisely the fiftieth module I released) was called String::Tokeniser, which is still a reasonably handy way of getting an iterator over tokenising a string. (Someone recently released String::Tokenizer, which makes me laugh.) This too was for an abortive project, webperl, an application of Don Knuths WEB system of structured documentation to Perl. However, given the code quality of these two modules, its perhaps just as well that the projects never saw the light of day.
There are a few other modules Id rather like to forget, too. Devel::Pointer was a sick joke that went badly wrong - it allowed people to use pointers in Perl. Some people failed to notice that referring to memory locations directly in an extremely high-level language was a dangerous and silly thing to do, and actually used the damned thing, and I started getting requests for support for it. Then at some point in 2001, when I should really have known better, I developed an interest in Microsofts .NET and the C# language, which I still think is pretty neat; but I decided it might be a good idea to translate the Mono projects tokenizer and parser into Perl, ending up with C::Sharp. I never got around to doing the parser part, or indeed anything else with it, and so it died a lonely death in a dark corner of CPAN. GTK::HandyClist was my foray into programming graphical applications, which started and ended there.
Bundle::SDK::SIMON was actually the slides from a talk on my top ten favourite CPAN modules - except that this changes so quickly over time, it doesnt really make much sense any more.
Finally, Array::FileReader was an attempt to optimize a file access process. Unfortunately, my "optimization" ended up introducing more overheads than the naive solution. It all goes to show. Since then, Mark-Jason Dominus, another huge influence in the development of my CPAN career, has written Tie::File, which not only has a better name but is actually efficient too.
The Internals Phase
1999-2000 were disastrous years for me personally but magnificent years Perl-sonally. Stuck in a boring job and a tiny flat in the middle of Tokyo, I had plenty of time to get stuck into more Perl development. I felt that getting involved with perl5-porters would be a good way of gettting to know more about Perl, and so I needed a hobby horse - an issue of Perls development that I cared about. Since I was in Japan and working a lot with non-Latin text, Unicode support seemed a good thing to work on, and so Unicode::Decompose appeared, while I fixed up a substantial part of the post-5.6 core Unicode support.
Id recommend this way to anyone who wants to get more involved in the Perl community, although I was very lucky in terms of who else happened to be around at the time: Gurusamy Sarathy was extremely gracious in helping me turn my fledgling C code into something fit for the Perl core, and he also helped me understand the perl5-porters etiquette (yes, there was some at the time) and what makes a good patch, while Jarkko Hietaniemi was always good for suggestions of interesting things for keen people to work on. Seriously, get involved. If I can do it, anyone can.
Anyway, this fixation with understanding the Perl 5 internals, and especially the Perl 5 compiler, (due to yet another of my Perl influences, the great Malcolm Beattie) led to quite a torrent of modules, from ByteCache, an implementation of just-in-time compilation for Perl modules, through B::Flags and B::Tree to help visualising the Perl op tree, to uninit, B::Generate, optimizer and B::Utils for modifying it.
Perl About The House
Now we abandon chronological order somewhat and take a look at the various areas in which Ive used Perl. One of these areas has been the automation of everyday life: checking my bank balance with Finance::Bank::LloydsTSB (the first Perl module to interface to personal internet banking, no less) and my phone bill with a release of Tony Bowdens Data::BT::PhoneBill.
Finance::Bank::LloydsTSB was meant to go with Finance::QIF, my Quicken file parser, to produce another now-abandoned idea, a Perl finances manager. It seemed that Im only capable of producing modules, not full standalone applications - or at least, it seemed that way until I produced Bryar, my blogging software, based on the concepts from Rael Dornfests blosxom and beginning my adventures with Andy Wardleys Template Toolkit. Bryar also tuned me in to the Model-View-Controller framework idea, of which more later.
Another project I briefly played with was a personal robot, using the Sphinx/Festival speech handling and recognition modules from Cepstral and Kevin Lenzo. I didnt have X10, so I couldnt shout "lights" into the air in a wonderfully scifi way, but I could shout "mail" and have a summary of my inbox read to me, "news" to get the latest BBC news headlines, and "time" to hear the time. Of course, getting computers to tell the time nicely takes a little bit of work. I dont like "Its eleven oh-three pee em", since thats not what someone would say if you asked them the time. I wanted my robot to say "Its just after eleven", and thats what Time::Human does. Shame about the localisation.
<<lessI have just released my 100th module to CPAN, the first time that anyone has reached that target. As some of you may know, I am getting ready to go back to college and reinvent myself from being a programmer into being a missionary. I dont forsee that many more Perl modules coming out of this.
Of course, this doesnt mean that Im going to abjure usage of Perl forever; any time theres a computer and something I need automated, out will come the Swiss Army Chainsaw and the job will get done. In fact, we recently needed to manipulate some text from a mission handbook to translate it into Japanese, and Perl was there handling and collating all that.
But 100 modules is a convenient place to stop and take stock, and I hope that those of you who have benefitted from my modules, programs or writing about Perl will forgive me a certain spot of self-indulgence as I look back over my CPAN career, especially since I feel that the diversity of modules that Ive produced is a good indication of the diversity of what can be done with Perl.
Lets begin, then, with some humble beginnings, and then catch up on recent history.
The Embarrassing Past
Contrary to popular belief, I was not always a CPAN author. I started writing modules in 1998, immediately after reading the first edition of the Perl Cookbook - yes, you can blame Nat and Tom for all this. The first module that I released was Tie::DiscoveryHash, since Id just learnt about tied hashes. As with many of my modules, it was an integral part of another software project which I actually never finished, and now cant find.
The first module that I ever wrote (but, by a curious quirk of fate, precisely the fiftieth module I released) was called String::Tokeniser, which is still a reasonably handy way of getting an iterator over tokenising a string. (Someone recently released String::Tokenizer, which makes me laugh.) This too was for an abortive project, webperl, an application of Don Knuths WEB system of structured documentation to Perl. However, given the code quality of these two modules, its perhaps just as well that the projects never saw the light of day.
There are a few other modules Id rather like to forget, too. Devel::Pointer was a sick joke that went badly wrong - it allowed people to use pointers in Perl. Some people failed to notice that referring to memory locations directly in an extremely high-level language was a dangerous and silly thing to do, and actually used the damned thing, and I started getting requests for support for it. Then at some point in 2001, when I should really have known better, I developed an interest in Microsofts .NET and the C# language, which I still think is pretty neat; but I decided it might be a good idea to translate the Mono projects tokenizer and parser into Perl, ending up with C::Sharp. I never got around to doing the parser part, or indeed anything else with it, and so it died a lonely death in a dark corner of CPAN. GTK::HandyClist was my foray into programming graphical applications, which started and ended there.
Bundle::SDK::SIMON was actually the slides from a talk on my top ten favourite CPAN modules - except that this changes so quickly over time, it doesnt really make much sense any more.
Finally, Array::FileReader was an attempt to optimize a file access process. Unfortunately, my "optimization" ended up introducing more overheads than the naive solution. It all goes to show. Since then, Mark-Jason Dominus, another huge influence in the development of my CPAN career, has written Tie::File, which not only has a better name but is actually efficient too.
The Internals Phase
1999-2000 were disastrous years for me personally but magnificent years Perl-sonally. Stuck in a boring job and a tiny flat in the middle of Tokyo, I had plenty of time to get stuck into more Perl development. I felt that getting involved with perl5-porters would be a good way of gettting to know more about Perl, and so I needed a hobby horse - an issue of Perls development that I cared about. Since I was in Japan and working a lot with non-Latin text, Unicode support seemed a good thing to work on, and so Unicode::Decompose appeared, while I fixed up a substantial part of the post-5.6 core Unicode support.
Id recommend this way to anyone who wants to get more involved in the Perl community, although I was very lucky in terms of who else happened to be around at the time: Gurusamy Sarathy was extremely gracious in helping me turn my fledgling C code into something fit for the Perl core, and he also helped me understand the perl5-porters etiquette (yes, there was some at the time) and what makes a good patch, while Jarkko Hietaniemi was always good for suggestions of interesting things for keen people to work on. Seriously, get involved. If I can do it, anyone can.
Anyway, this fixation with understanding the Perl 5 internals, and especially the Perl 5 compiler, (due to yet another of my Perl influences, the great Malcolm Beattie) led to quite a torrent of modules, from ByteCache, an implementation of just-in-time compilation for Perl modules, through B::Flags and B::Tree to help visualising the Perl op tree, to uninit, B::Generate, optimizer and B::Utils for modifying it.
Perl About The House
Now we abandon chronological order somewhat and take a look at the various areas in which Ive used Perl. One of these areas has been the automation of everyday life: checking my bank balance with Finance::Bank::LloydsTSB (the first Perl module to interface to personal internet banking, no less) and my phone bill with a release of Tony Bowdens Data::BT::PhoneBill.
Finance::Bank::LloydsTSB was meant to go with Finance::QIF, my Quicken file parser, to produce another now-abandoned idea, a Perl finances manager. It seemed that Im only capable of producing modules, not full standalone applications - or at least, it seemed that way until I produced Bryar, my blogging software, based on the concepts from Rael Dornfests blosxom and beginning my adventures with Andy Wardleys Template Toolkit. Bryar also tuned me in to the Model-View-Controller framework idea, of which more later.
Another project I briefly played with was a personal robot, using the Sphinx/Festival speech handling and recognition modules from Cepstral and Kevin Lenzo. I didnt have X10, so I couldnt shout "lights" into the air in a wonderfully scifi way, but I could shout "mail" and have a summary of my inbox read to me, "news" to get the latest BBC news headlines, and "time" to hear the time. Of course, getting computers to tell the time nicely takes a little bit of work. I dont like "Its eleven oh-three pee em", since thats not what someone would say if you asked them the time. I wanted my robot to say "Its just after eleven", and thats what Time::Human does. Shame about the localisation.
Download (0.014MB)
Added: 2006-06-08 License: Perl Artistic License Price:
1233 downloads
INN 2.4.3
The InterNetNews package (INN) is a complete Usenet system. more>>
The InterNetNews package (INN) is a complete Usenet system. It includes innd, an NNTP server, and nnrpd, a newsreading server. INN separates hosts that feed you news from those that have users reading news. INN was originally written by Rich Salz (grab the USENIX paper Rich wrote about it here). ISC took over development of INN in 1996 after Rich was unable to continue supporting it and many variants of the software were forming.
If you are interested in receiving notice of future releases of INN, send a subscribe message to inn-announce-request@isc.org to get on the announcements mailing list. At this time, ISC regrets that we do not have the resources to offer support or training on the INN software. As partnerships in this area develop, we will post updated information here.
A news server performs three basic functions: it accepts articles from other servers and stores them on disk, sends articles it has received out to other servers, and offers stored news articles to readers on demand. It additionally has to perform some periodic maintenance tasks, such as deleting older articles to make room for new ones.
Normally a news server just stores all of the news articles it had received in a file system. Users could then read news by reading the article files on disk (or more commonly using news reading software that did this efficiently). These days, news servers are almost always stand-alone systems and news reading is supported via network connections. A user who wants to read a newsgroup opens that newsgroup in their newsreader software, which opens a network connection to the news server d sends requests for articles and related information. The protocol that a newsreader uses to talk to a news server and that a news server uses to talk to another news server over TCP/IP is called NNTP (Network News Transport Protocol).
INN supports accepting articles via either NNTP connections or via UUCP. innd, the heart of INN, handles NNTP feeding connections directly; UUCP newsfeeds use rnews (included in INN) to hand articles off to innd. Other parts of INN handle feeding articles out to other news servers, most commonly innfeed (for real-time outgoing feeds) or nntpsend and innxmit (used to send batches of news created by innd to a remote site via TCP/IP). INN can also handle outgoing UUCP feeds.
The part of INN that handles connections from newsreaders is nnrpd.
Also included in INN are a wide variety of supporting programs to handle periodic maintenance and recovery from crashes, process special control messages, maintain the list of active newsgroups, and generate and record a staggering variety of statistics and summary information on the usage and performance of the server.
INN also supports an extremely powerful filtering system that allows the server administrator to reject unwanted articles (such as spam and other abuses of Usenet).
INN is free software, supported by Internet Systems Consortium and volunteers around the world. See "Supporting the INN Effort" below.
Enhancements:
- nnrpd/group.c: Return the correct 0 0 0 response to LISTGROUP when the group is empty rather than returning no such group.
- authprogs/libauth.c: Set the length of the IPv4 sockets on platforms with a sin_len element in struct sockaddr. Reported by Gea-Suan Lin
- scripts/innreport_inn.pm: Ignore or parse some log messages from newer versions, just for better news.notice parsing when bouncing between versions.
<<lessIf you are interested in receiving notice of future releases of INN, send a subscribe message to inn-announce-request@isc.org to get on the announcements mailing list. At this time, ISC regrets that we do not have the resources to offer support or training on the INN software. As partnerships in this area develop, we will post updated information here.
A news server performs three basic functions: it accepts articles from other servers and stores them on disk, sends articles it has received out to other servers, and offers stored news articles to readers on demand. It additionally has to perform some periodic maintenance tasks, such as deleting older articles to make room for new ones.
Normally a news server just stores all of the news articles it had received in a file system. Users could then read news by reading the article files on disk (or more commonly using news reading software that did this efficiently). These days, news servers are almost always stand-alone systems and news reading is supported via network connections. A user who wants to read a newsgroup opens that newsgroup in their newsreader software, which opens a network connection to the news server d sends requests for articles and related information. The protocol that a newsreader uses to talk to a news server and that a news server uses to talk to another news server over TCP/IP is called NNTP (Network News Transport Protocol).
INN supports accepting articles via either NNTP connections or via UUCP. innd, the heart of INN, handles NNTP feeding connections directly; UUCP newsfeeds use rnews (included in INN) to hand articles off to innd. Other parts of INN handle feeding articles out to other news servers, most commonly innfeed (for real-time outgoing feeds) or nntpsend and innxmit (used to send batches of news created by innd to a remote site via TCP/IP). INN can also handle outgoing UUCP feeds.
The part of INN that handles connections from newsreaders is nnrpd.
Also included in INN are a wide variety of supporting programs to handle periodic maintenance and recovery from crashes, process special control messages, maintain the list of active newsgroups, and generate and record a staggering variety of statistics and summary information on the usage and performance of the server.
INN also supports an extremely powerful filtering system that allows the server administrator to reject unwanted articles (such as spam and other abuses of Usenet).
INN is free software, supported by Internet Systems Consortium and volunteers around the world. See "Supporting the INN Effort" below.
Enhancements:
- nnrpd/group.c: Return the correct 0 0 0 response to LISTGROUP when the group is empty rather than returning no such group.
- authprogs/libauth.c: Set the length of the IPv4 sockets on platforms with a sin_len element in struct sockaddr. Reported by Gea-Suan Lin
- scripts/innreport_inn.pm: Ignore or parse some log messages from newer versions, just for better news.notice parsing when bouncing between versions.
Download (1.8MB)
Added: 2006-06-26 License: BSD License Price:
1215 downloads
BullDog Firewall 7
BullDog is a powerful but lightweight firewall for heavy use systems. more>>
BullDog is a powerful but lightweight firewall for heavy use systems. With many features, this firewall can be used by anyone who wants to protect his/her systems. This system allow dynamic and static rules sets for maximum protection and has several advance features.
This firewall will work for the hobbyist or a military base. Generation 7 is a complete rewrite of its predecesors and is redesigned from scratch and still evolving.
Be prepared to spend some time setting this up. If you are looking for a "quick fix", then you are on the wrong site. BullDog is NOT a quick fix, but rather one step in a complete security policy.
Its is covered by the GPL and is FREE and always will be. I encourage and welcome anyone who wants to port and/or provide ideas/code to better this software.
I would like to see this software developed into a new breed of firewall that provides the best of security with ease of use.
This software was developed on Linux v2.2.16-17 and v2.4 with 64 megs to 1 Gig of RAM and supports iptables via the ip_queue kernel module. Bulldog will NOT run on Windows systems.
<<lessThis firewall will work for the hobbyist or a military base. Generation 7 is a complete rewrite of its predecesors and is redesigned from scratch and still evolving.
Be prepared to spend some time setting this up. If you are looking for a "quick fix", then you are on the wrong site. BullDog is NOT a quick fix, but rather one step in a complete security policy.
Its is covered by the GPL and is FREE and always will be. I encourage and welcome anyone who wants to port and/or provide ideas/code to better this software.
I would like to see this software developed into a new breed of firewall that provides the best of security with ease of use.
This software was developed on Linux v2.2.16-17 and v2.4 with 64 megs to 1 Gig of RAM and supports iptables via the ip_queue kernel module. Bulldog will NOT run on Windows systems.
Download (0.032MB)
Added: 2006-07-07 License: GPL (GNU General Public License) Price:
1209 downloads
stableUpdate 1.0.5
stableUpdate is an automatic update tool for JAR-based Java applications. more>>
stableUpdate is a tool for advanced user who wants to know, which part of the application will by touched by the newly released update, accept the decission about necessity to install the update and, if needed, be able to remove the previously installed update.
It is written is java and is supposed to be called from inside java application. From a server stableUpdate only needs possibility to download files via http. The only file that must keep its location is a short xml document.
Changing this document, you can easily manage the list of secondary servers that provide the actual update files. It also holds release notes and mini announcement desk. In older versions you needed write this file manually. Since 1.0.2 stableUpdate will generate (or update) it for you, and you only need to upload it to one or better servaral primary servers. If you want, you can still look at the commented example of this file.
In stableUpdate, the updates are stored in .jar files. Each such update upgrades between the two versions. The version names need not match exactly your official versions. For example, you may officially release 1.1 and 1.2, but 1.1 can have subsequent updates from 1.1.1 to 1.1.2, then to 1.1.3 and so on.
The update .jar file contains the changed single files and the changed entries of .jar and .zip archives. Since stableUpdate 1.0.3 the size and checksum of this .jar are verified after download.
If needed, the updates can be uninstalled in reverse order as they were installed. The user may need to uninstall the update if one discovers that some needed feature is actually working worse (or not working at all) in a newer version. The "uninstall" feature is available since the stableUpdate 1.0.1
The update is generated by comparing two folders, one containing the old installation and another the new installation. The generator is invoked as the main default class of autoupdater.jar (type java -jar autoupdater.jar) and has some very simple user interface.
The created .jar archive consists of changed individual files, changed files in .jar or .zip archives and deleting instructions, used to remove files present in the old, but absent in the updated version. *.bat, *.sh, Log/*, Cache/* , autooutdate/* (the folder for uninstall information) and jre/* will be ignored. .bat and .sh files usually contain installation specific information, and java virtual machine cannot be updated while running.
Enhancements:
- Minor fixes, added docs to the release
<<lessIt is written is java and is supposed to be called from inside java application. From a server stableUpdate only needs possibility to download files via http. The only file that must keep its location is a short xml document.
Changing this document, you can easily manage the list of secondary servers that provide the actual update files. It also holds release notes and mini announcement desk. In older versions you needed write this file manually. Since 1.0.2 stableUpdate will generate (or update) it for you, and you only need to upload it to one or better servaral primary servers. If you want, you can still look at the commented example of this file.
In stableUpdate, the updates are stored in .jar files. Each such update upgrades between the two versions. The version names need not match exactly your official versions. For example, you may officially release 1.1 and 1.2, but 1.1 can have subsequent updates from 1.1.1 to 1.1.2, then to 1.1.3 and so on.
The update .jar file contains the changed single files and the changed entries of .jar and .zip archives. Since stableUpdate 1.0.3 the size and checksum of this .jar are verified after download.
If needed, the updates can be uninstalled in reverse order as they were installed. The user may need to uninstall the update if one discovers that some needed feature is actually working worse (or not working at all) in a newer version. The "uninstall" feature is available since the stableUpdate 1.0.1
The update is generated by comparing two folders, one containing the old installation and another the new installation. The generator is invoked as the main default class of autoupdater.jar (type java -jar autoupdater.jar) and has some very simple user interface.
The created .jar archive consists of changed individual files, changed files in .jar or .zip archives and deleting instructions, used to remove files present in the old, but absent in the updated version. *.bat, *.sh, Log/*, Cache/* , autooutdate/* (the folder for uninstall information) and jre/* will be ignored. .bat and .sh files usually contain installation specific information, and java virtual machine cannot be updated while running.
Enhancements:
- Minor fixes, added docs to the release
Download (0.21MB)
Added: 2006-08-01 License: GPL (GNU General Public License) Price:
1180 downloads
image-viewer
image-viewer is a very simple Kommander script to view images. more>>
image-viewer is a very simple Kommander script. But written following one of the 2-3 tutorials you can find on the net. Included in tarball you can find this guide to introduce in Kommander GUI. The site is: http://applications.linux.com/article.pl?sid=04/12/17/2033227&tid=49 and was written in 2004 by Michał Kosmulski
I know people want to use this great program..but documentations are very poor...this example helps people who wants to learn something about simple array, combobox, label and connections between signals and slots..very very important.
So, i hope the guide and the example will be usefull.
<<lessI know people want to use this great program..but documentations are very poor...this example helps people who wants to learn something about simple array, combobox, label and connections between signals and slots..very very important.
So, i hope the guide and the example will be usefull.
Download (0.037MB)
Added: 2006-09-11 License: GPL (GNU General Public License) Price:
1166 downloads
The Puto Amo Window Manager 2.2.9
The Puto Amo Window Manager is a full featured window manager, but without useless bells and whistles. more>>
So its not a desktop and doesnt offer you a huge pile of useless options, just the facilities needed to run your X applications and at the same time having a friendly and easy to use interface.
Objectives
Pawm goals are to be simple, small and functional. Thats important, small :), there are too bloated windows managers out there, so who wants another one ;). That means that for future releases is a very important point for us not add new features or dependencies if theyre not really necessary.
If you need to run some X apps and dont have the time, space or interest in installing a desktop like kde or gnome, then what youre looking for is pawm. Download it now and give it a try!
Functionality
As youve already guessed, it manages your windows. It provides a bar placed at the bottom of the screen to access the minimized windows, and a simple application launcher to place some icons in your desktop for frequently used applications.
Things that pawm doesnt have: keyboard support (in the todo list), workspaces, icons formats different from .xpm
To compile it the only required libraries are the Xorg/XFree86 standard libraries. It supports Xft which is the new X font library, but its no required
Platforms
Its been tested and compiled under Linux/x86, Linux/PPC, FreeBSD, NetBSD, HP-UX and OSX-XDarwin. If you got succesfull reports in other architectures let us know. It should compile in any platform, providing you use GNU make, GNU gcc, and a POSIX compatible shell.
Enhancements:
- This release adds support for a "solid" appearance when moving windows.
- An important bug with argb windows that caused crashes has been fixed.
<<lessObjectives
Pawm goals are to be simple, small and functional. Thats important, small :), there are too bloated windows managers out there, so who wants another one ;). That means that for future releases is a very important point for us not add new features or dependencies if theyre not really necessary.
If you need to run some X apps and dont have the time, space or interest in installing a desktop like kde or gnome, then what youre looking for is pawm. Download it now and give it a try!
Functionality
As youve already guessed, it manages your windows. It provides a bar placed at the bottom of the screen to access the minimized windows, and a simple application launcher to place some icons in your desktop for frequently used applications.
Things that pawm doesnt have: keyboard support (in the todo list), workspaces, icons formats different from .xpm
To compile it the only required libraries are the Xorg/XFree86 standard libraries. It supports Xft which is the new X font library, but its no required
Platforms
Its been tested and compiled under Linux/x86, Linux/PPC, FreeBSD, NetBSD, HP-UX and OSX-XDarwin. If you got succesfull reports in other architectures let us know. It should compile in any platform, providing you use GNU make, GNU gcc, and a POSIX compatible shell.
Enhancements:
- This release adds support for a "solid" appearance when moving windows.
- An important bug with argb windows that caused crashes has been fixed.
Download (0.13MB)
Added: 2006-09-07 License: GPL (GNU General Public License) Price:
1142 downloads
CompBio::DB 0.47
CompBio::DB is a Perl module with methods for accessing data stored acording to the CompBio base schema. more>>
CompBio::DB is a Perl module with methods for accessing data stored according to the CompBio base schema.
SYNOPSIS
use CompBio::DB;
my $cbdb = CompBio::DB->new({host => "foo.bar.edu");
my $AR_defs = $cbdb->get_annotation([keys %seqs]);
Example code for parsing the return for a simple print:
my $AR_result = $cbdb->get_aa_seq(@id_list);
foreach my $AR_row (@$AR_result) {
next unless @$AR_row;
print join("t",@$AR_row) , "n";
} # return list
This module and the related database schemas where developed to be used with a MySQL server. Although I would certainly prefer it to be portable, that was not a priority at this time. However, I expect the manual alterations that may be necisary to use this module should be very resonable for someone sufficiently familiar with the new target database server, and I would be happy to collaborate with anyone who wants to work on this!
Most of the methods in this database fetch a type of data from a given id or list of ids. Unless otherwise stated for a specific method, only two arguments are ever used; the id or an array reference to a list of ids, and a hash reference containing any optional arguments. The request will be made against the default database defined when the CompBio::DB object was created, but most methods accept a "database" option to use a different database on the same server.
All methods that return query results return a reference to a 2D array. See the documentaion for specific methods for the order of returned fields.
<<lessSYNOPSIS
use CompBio::DB;
my $cbdb = CompBio::DB->new({host => "foo.bar.edu");
my $AR_defs = $cbdb->get_annotation([keys %seqs]);
Example code for parsing the return for a simple print:
my $AR_result = $cbdb->get_aa_seq(@id_list);
foreach my $AR_row (@$AR_result) {
next unless @$AR_row;
print join("t",@$AR_row) , "n";
} # return list
This module and the related database schemas where developed to be used with a MySQL server. Although I would certainly prefer it to be portable, that was not a priority at this time. However, I expect the manual alterations that may be necisary to use this module should be very resonable for someone sufficiently familiar with the new target database server, and I would be happy to collaborate with anyone who wants to work on this!
Most of the methods in this database fetch a type of data from a given id or list of ids. Unless otherwise stated for a specific method, only two arguments are ever used; the id or an array reference to a list of ids, and a hash reference containing any optional arguments. The request will be made against the default database defined when the CompBio::DB object was created, but most methods accept a "database" option to use a different database on the same server.
All methods that return query results return a reference to a 2D array. See the documentaion for specific methods for the order of returned fields.
Download (0.062MB)
Added: 2006-10-05 License: Perl Artistic License Price:
1114 downloads
jQuizShow 1.0
jQuizShow project is a game based on the Who Wants To Be a Millionaire TV game show. more>>
jQuizShow project is a game based on the "Who Wants To Be a Millionaire" TV game show.
It forms the framework around which a group can play their own Millionaire-like game. It is fully customizable and easy to add your own questions and answers to.
<<lessIt forms the framework around which a group can play their own Millionaire-like game. It is fully customizable and easy to add your own questions and answers to.
Download (MB)
Added: 2006-11-23 License: GPL (GNU General Public License) Price:
1075 downloads
Secleted [ 0 ] software to compare
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above who wants search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed