barack obama hobbies
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 18
Harvs Hamshack Hack 06
Harvs Hamshack Hack is a remaster of the KNOPPIX distro for Amateur Radio Operators (Hams). more>>
Harvs Hamshack Hack is a remaster of the KNOPPIX distro for Amateur Radio Operators (Hams).
This project is directed primarily at Amateur Radio enthusiasts (Hams) who have no prior experience with LINUX. Hopefully, experienced LINUX users (perhaps, even a "guru" or two) will give it a spin and offer corrections and suggestions for improvement ... in fact, they are obligated to do so!
The CD contains a complete LINUX-Knoppix operating system and enough software to accomplish the usual tasks we all perform daily from our homes ... web browsing, email, letter writing, etc.
In addition, there is a huge library of programs for our Amateur Radio hobby.
The Hamshack Hack is a "Live CD". As a "Live CD" system, no installation to your machines hard drive is necessary. The whole package will run off the CD by building a "ram disk" in your machines memory. As soon as you re-boot your machine, the LINUX system vaporizes and youll be back with whatever system is installed on your hard drive.
To obtain your very own copy of the "the Hack", you must download the "hamshack.iso" image file and then, using your favorite CD burner (I use K3B on Linux, or Nero on Windows), burn the image to a CD. Pick the "Burn CD Image" option, else youll end up with just another copy of the .iso file. Then, when the smoke clears, youll boot your machine with this new CD.
<<lessThis project is directed primarily at Amateur Radio enthusiasts (Hams) who have no prior experience with LINUX. Hopefully, experienced LINUX users (perhaps, even a "guru" or two) will give it a spin and offer corrections and suggestions for improvement ... in fact, they are obligated to do so!
The CD contains a complete LINUX-Knoppix operating system and enough software to accomplish the usual tasks we all perform daily from our homes ... web browsing, email, letter writing, etc.
In addition, there is a huge library of programs for our Amateur Radio hobby.
The Hamshack Hack is a "Live CD". As a "Live CD" system, no installation to your machines hard drive is necessary. The whole package will run off the CD by building a "ram disk" in your machines memory. As soon as you re-boot your machine, the LINUX system vaporizes and youll be back with whatever system is installed on your hard drive.
To obtain your very own copy of the "the Hack", you must download the "hamshack.iso" image file and then, using your favorite CD burner (I use K3B on Linux, or Nero on Windows), burn the image to a CD. Pick the "Burn CD Image" option, else youll end up with just another copy of the .iso file. Then, when the smoke clears, youll boot your machine with this new CD.
Download (530MB)
Added: 2006-01-02 License: GPL (GNU General Public License) Price:
1452 downloads
Codavaj 1.2.0
codavaj is javadoc in reverse. more>>
codavaj is javadoc in reverse. A seemingly useless tool. Arguably of interest only to the most hardcore java hackers. A "must have" in every geeks software toolbox. ( hitchhikers guide entry Nr. 151776 ).
Codavaj is a reverse engineering tool with focus on Javadoc. Currently codavaj is distributed as a command line tool ( codavaj.cmd - using org.codavaj.Main class ). A 100% java tool.
You can:
- convert an entire local javadoc tree into java source code.
- download an entire remote javadoc tree via http(s).
- derive a Reflection-like API based on information derived from a javadoc tree.
Codavaj works by converting javadoc HTML into XML by using Nekohtml and then successively deriving class information from the XML using XPATH queries ( using dom4j ).
Not because i lost the sources for some code - but miraculously still had the javadoc for it! This wouldnt help much anyway because codavaj leaves you with a TODO for each method implementation.
For me this was simply an intellectual challenge - a side battle in a hobby programmers grand master plan. As a bonus i managed to improve my XPATH query skills a bit. It took me 2 full working weeks to get the initial version out. If I needed this once, then theres bound to be someone out there who might like to use it, for whatever reason. It probably will save them the 2 weeks too.
Enhancements:
- New features include the ability to parse javadocs generated by the 1.5 javadoc tool.
- The known limitations are that enums and generics constructs are not supported yet.
- Several minor bugs in parsing constant values like "NaN" and "0d/0d" were fixed.
- A Linux/Unix-like command line tool was added.
<<lessCodavaj is a reverse engineering tool with focus on Javadoc. Currently codavaj is distributed as a command line tool ( codavaj.cmd - using org.codavaj.Main class ). A 100% java tool.
You can:
- convert an entire local javadoc tree into java source code.
- download an entire remote javadoc tree via http(s).
- derive a Reflection-like API based on information derived from a javadoc tree.
Codavaj works by converting javadoc HTML into XML by using Nekohtml and then successively deriving class information from the XML using XPATH queries ( using dom4j ).
Not because i lost the sources for some code - but miraculously still had the javadoc for it! This wouldnt help much anyway because codavaj leaves you with a TODO for each method implementation.
For me this was simply an intellectual challenge - a side battle in a hobby programmers grand master plan. As a bonus i managed to improve my XPATH query skills a bit. It took me 2 full working weeks to get the initial version out. If I needed this once, then theres bound to be someone out there who might like to use it, for whatever reason. It probably will save them the 2 weeks too.
Enhancements:
- New features include the ability to parse javadocs generated by the 1.5 javadoc tool.
- The known limitations are that enums and generics constructs are not supported yet.
- Several minor bugs in parsing constant values like "NaN" and "0d/0d" were fixed.
- A Linux/Unix-like command line tool was added.
Download (0.043MB)
Added: 2006-11-29 License: The Apache License 2.0 Price:
1063 downloads
FlatFrag 0.3
FlatFrag is a multiplayer action shooter game. more>>
FlatFrag is a multiplayer action shooter game. With its deathmatch fights it strives to be an entertaining arcade-style experience.
The game is played from a birds eye view and contains some 3D effects in order to make it not seem too flat. Currently only the game mode deathmatch is available, but others will probably be developed in the future.
The game has been built from scratch, though a few important libraries were used in the process. For example, OpenGL is used for fast 3D graphics and SDL provides the game with many cross-platform functions.
It is developed by a single person as a hobby project, but it is released under the terms of the GPL (GNU General Public License), which makes it Open Source software. So everybody is able to get the sourcecode and do his own changes to the project.
Main features:
- Cross-platform support currently for Linux and Microsoft Windows (planned: Mac OS X, BSD, though you can try it anywhere with the provided sourcecode)
- 3D graphics using OpenGL -- the game is played from a birds eye view, but the individual tiles are 3D cubes
- 3D sound using OpenAL -- 2D would probably be more appropriate
- SDL is used for cross-platform input, networking and window creation
- Multiplayer network games with up to 32 players (actually there is no fixed limit set yet)
- Support for Lua-scripted modifications (more like planned, but the console already expects Lua code as input)
- File types: Ogg Vorbis used for sound compression, PNG used for image compression
- Advanced particle system
- Dynamic lighting
- Bots
- Ridable cars and usable stationary guns
- 14 different weapons (some of them very unconventional)
- In-game map editor
- Game modes: deathmatch (more planned)
- Dedicated game server
- A server list function, which fetches a list of servers. You can also see the list of servers here.
- Completely free software -- free as in speech and free as in beer -- Licensed under the GPL
<<lessThe game is played from a birds eye view and contains some 3D effects in order to make it not seem too flat. Currently only the game mode deathmatch is available, but others will probably be developed in the future.
The game has been built from scratch, though a few important libraries were used in the process. For example, OpenGL is used for fast 3D graphics and SDL provides the game with many cross-platform functions.
It is developed by a single person as a hobby project, but it is released under the terms of the GPL (GNU General Public License), which makes it Open Source software. So everybody is able to get the sourcecode and do his own changes to the project.
Main features:
- Cross-platform support currently for Linux and Microsoft Windows (planned: Mac OS X, BSD, though you can try it anywhere with the provided sourcecode)
- 3D graphics using OpenGL -- the game is played from a birds eye view, but the individual tiles are 3D cubes
- 3D sound using OpenAL -- 2D would probably be more appropriate
- SDL is used for cross-platform input, networking and window creation
- Multiplayer network games with up to 32 players (actually there is no fixed limit set yet)
- Support for Lua-scripted modifications (more like planned, but the console already expects Lua code as input)
- File types: Ogg Vorbis used for sound compression, PNG used for image compression
- Advanced particle system
- Dynamic lighting
- Bots
- Ridable cars and usable stationary guns
- 14 different weapons (some of them very unconventional)
- In-game map editor
- Game modes: deathmatch (more planned)
- Dedicated game server
- A server list function, which fetches a list of servers. You can also see the list of servers here.
- Completely free software -- free as in speech and free as in beer -- Licensed under the GPL
Download (6.3MB)
Added: 2005-09-15 License: GPL (GNU General Public License) Price:
1501 downloads
VinoBase 0.1
VinoBase project is a documentation and management tool for hobby winegrowers. more>>
VinoBase project is a documentation and management tool for hobby winegrowers.
It helps you manage your different preparations, recipes, yeasts, etc., and exports your results to different file formats.
Main features:
- Managing of preparations, yeasts and recipes
- Creating of a progress for every preparation
- Adding of evaluations
- Adding of labels
- Export as text file and as PDF document
<<lessIt helps you manage your different preparations, recipes, yeasts, etc., and exports your results to different file formats.
Main features:
- Managing of preparations, yeasts and recipes
- Creating of a progress for every preparation
- Adding of evaluations
- Adding of labels
- Export as text file and as PDF document
Download (MB)
Added: 2006-10-05 License: GPL (GNU General Public License) Price:
1118 downloads
Palace 0.2.1
Palace is a nifty visualization plugin for XMMS. more>>
Palace is a nifty visualization plugin for XMMS. Palace plugin works by reading the Fourier frequency analysis given by XMMS, and activating particular pins on the parallel port based on the frequency analysis and configuration options.
Palace is based on the XPLSISNJASP software project. For examples of hardware useful with Palace, see Discolitez or e-mail me at the e-mail address in the README file from the latest Palace version.
What will Palace become?
Palace is currently an XMMS plugin to control a light show connected to the parallel port. The eventual goal of palace is to provide a generic device control infrastructure for hobby (and possibly commercial) use. Over time Palace will be transitioned to a fully modular design, so that clients (applications trying to control something) and servers (libraries that act as an interface to an actual device) will be able to interact through a generic plug-in interface.
Palaces first goal is to become an XMMS parallel port light show plugin at least as good as the DiscoLitez (http://www.discolitez.com/) light show plugin for WinAmp, and then evolve into a full-fledged control system.
Possible server plugins would include:
- DMX-512 output to control professional lighting equipment
- Laser/stepper motor
- Parallel port
- Generic DAC
Possible client plugins would include:
- XMMS visualization plugin
- Security system control software
- Other automation software
<<lessPalace is based on the XPLSISNJASP software project. For examples of hardware useful with Palace, see Discolitez or e-mail me at the e-mail address in the README file from the latest Palace version.
What will Palace become?
Palace is currently an XMMS plugin to control a light show connected to the parallel port. The eventual goal of palace is to provide a generic device control infrastructure for hobby (and possibly commercial) use. Over time Palace will be transitioned to a fully modular design, so that clients (applications trying to control something) and servers (libraries that act as an interface to an actual device) will be able to interact through a generic plug-in interface.
Palaces first goal is to become an XMMS parallel port light show plugin at least as good as the DiscoLitez (http://www.discolitez.com/) light show plugin for WinAmp, and then evolve into a full-fledged control system.
Possible server plugins would include:
- DMX-512 output to control professional lighting equipment
- Laser/stepper motor
- Parallel port
- Generic DAC
Possible client plugins would include:
- XMMS visualization plugin
- Security system control software
- Other automation software
Download (0.25MB)
Added: 2006-04-18 License: GPL (GNU General Public License) Price:
1287 downloads
abcpp 1.3.2
abcpp is a simple yet powerful preprocessor designed for, but not limited to, ABC music files. more>>
abcpp is a simple yet powerful preprocessor designed for, but not limited to, ABC music files. One of my hobbies is music: I play flute, recorder, whistle and clarinet, and I sing as a tenor in a choir. I find that the ABC music notation language is a wonderful tool to typeset sheet music. ABC is one of the best designed, easy to use, well-thought out, and nicely implemented notation formats Ive ever seen: IMHO, it surpasses other good notation languages like GNU Lilypond or MusiXTeX. (Philips Music Writer is a serious contender though.) You can write music in a very simple ASCII format and convert it to MIDI, or typeset it to make professional-looking scores.
The only serious problem with ABC is that it was originally designed for melody, not for harmony. In simple words, this means that you can only write music for a single instrument or voice. This is an example of what ABC can do; it sounds like this. Although it works beautifully for simple tunes and folk music, it can be not enough for Western classical music.
Some ABC applications implement unofficial extensions to the ABC language that make it possible to write polyphonic music. The purpose of the ABC Plus project is to provide software and documentation for this extended ABC. Here is an example of classical music written in ABC Plus; it sounds like this.
All RPMs available from this site were built on a Mandriva 2006 GNU/Linux machine.
<<lessThe only serious problem with ABC is that it was originally designed for melody, not for harmony. In simple words, this means that you can only write music for a single instrument or voice. This is an example of what ABC can do; it sounds like this. Although it works beautifully for simple tunes and folk music, it can be not enough for Western classical music.
Some ABC applications implement unofficial extensions to the ABC language that make it possible to write polyphonic music. The purpose of the ABC Plus project is to provide software and documentation for this extended ABC. Here is an example of classical music written in ABC Plus; it sounds like this.
All RPMs available from this site were built on a Mandriva 2006 GNU/Linux machine.
Download (0.052MB)
Added: 2006-07-26 License: GPL (GNU General Public License) Price:
1185 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
Teeny Weeny Microgame Engine 2005.02.27
Teeny Weeny Microgame Engine project is a console/curses interface for playing near-arbitrary board games. more>>
Teeny Weeny Microgame Engine project is a console/curses interface for playing near-arbitrary board games.
The Teeny Weeny Microgame Engine is a specification for the portable play of board- style games in a wide variety of computing environments. As proof-of-concept, teeny-cpp implements the Teeny LRFC (Lesser RFC) and many extended features with a shell-like console interface and a curses-based UI.
Despite their simple appearances, they are very extensible via C++ and basic game script code using the commands defined in the LRFC. It is intended for hard-core hobby board gamers or war gamers.
Main features:
- Acts as a reference implementation of and an experimentation ground for the Teeny LRFC.
- It has two major modes of operation: console mode (for the Power User) and curses mode (for a colorful UI).
- Internally controlled almost completely via the command language interface described in the Teeny LRFC. This allows us to extend the list of game options almost indefinately without having to change the internals of the framework. This also inherently allows us to operate the game environment via scripts containing lists of game commands.
- The scriptability means we can use arbitrary tools to generate game data. For example, creating games using bash scripts is often easier than hand-writing game scripts because we can take advantage of the advanced features of such a shell, like loops and conditionals (which are lacking in our code).
- The curses UI allows some keys to be programmed to arbitrary command strings. This makes doing common operations a snap. (i hope to improve this support to cover most keys.) For example, map a key to the command teeny-board rotate to quicky rotate your game board.
- For boardgame designers it offers a pretty simple interface for prototyping game designs.
- Generic plugins/DLL support means clients may plug in their own commands or even plug in their own plugin base types. As a demonstration, the source comes with EDeck, a plugin for handling abstract decks of cards (i.e., lists of shuffleable items from which we may pull items off the top). Of course... this plugin can be controlled via the command language interface, so its scriptable.
- The curses UI has support for manipulating all commonly-used curses text attributes, including colors, bold, blink, underline, etc., for the game board. Attributes are specified on a per-Avatar basis, and each set of attributes (colormap) may be named, loaded and saved at will. As usual, these are controlled via the command language, and are thus scriptable.
- Most parts of the interface support the use of $VARIABLES from the user. e.g., loading $TEENY_HOME/file.s11n will load the file ~/.teeny/foo.s11n. You may of course define and manipulate these variables as you wish.
- Startup of the app can be customized via a script. e.g., to load a game or macro keys, set up environment variables, etc.
- Powerful, flexible object serialization support, which means that we can add support for saving/loading near-arbitrary data with extremely little effort, without having to worry one iota about the underlying data formats, transport layers, and other bogusness. We can independently save and load almost all parts of the games state if we wish, as well. Shameless plug: http://s11n.net
- The source code is fairly hackable, if i may say so. Adding command handlers and DLLs is especially simple for even entry-level C++ coders. im always looking for ways to improve the code, so feel free to contribute :).
<<lessThe Teeny Weeny Microgame Engine is a specification for the portable play of board- style games in a wide variety of computing environments. As proof-of-concept, teeny-cpp implements the Teeny LRFC (Lesser RFC) and many extended features with a shell-like console interface and a curses-based UI.
Despite their simple appearances, they are very extensible via C++ and basic game script code using the commands defined in the LRFC. It is intended for hard-core hobby board gamers or war gamers.
Main features:
- Acts as a reference implementation of and an experimentation ground for the Teeny LRFC.
- It has two major modes of operation: console mode (for the Power User) and curses mode (for a colorful UI).
- Internally controlled almost completely via the command language interface described in the Teeny LRFC. This allows us to extend the list of game options almost indefinately without having to change the internals of the framework. This also inherently allows us to operate the game environment via scripts containing lists of game commands.
- The scriptability means we can use arbitrary tools to generate game data. For example, creating games using bash scripts is often easier than hand-writing game scripts because we can take advantage of the advanced features of such a shell, like loops and conditionals (which are lacking in our code).
- The curses UI allows some keys to be programmed to arbitrary command strings. This makes doing common operations a snap. (i hope to improve this support to cover most keys.) For example, map a key to the command teeny-board rotate to quicky rotate your game board.
- For boardgame designers it offers a pretty simple interface for prototyping game designs.
- Generic plugins/DLL support means clients may plug in their own commands or even plug in their own plugin base types. As a demonstration, the source comes with EDeck, a plugin for handling abstract decks of cards (i.e., lists of shuffleable items from which we may pull items off the top). Of course... this plugin can be controlled via the command language interface, so its scriptable.
- The curses UI has support for manipulating all commonly-used curses text attributes, including colors, bold, blink, underline, etc., for the game board. Attributes are specified on a per-Avatar basis, and each set of attributes (colormap) may be named, loaded and saved at will. As usual, these are controlled via the command language, and are thus scriptable.
- Most parts of the interface support the use of $VARIABLES from the user. e.g., loading $TEENY_HOME/file.s11n will load the file ~/.teeny/foo.s11n. You may of course define and manipulate these variables as you wish.
- Startup of the app can be customized via a script. e.g., to load a game or macro keys, set up environment variables, etc.
- Powerful, flexible object serialization support, which means that we can add support for saving/loading near-arbitrary data with extremely little effort, without having to worry one iota about the underlying data formats, transport layers, and other bogusness. We can independently save and load almost all parts of the games state if we wish, as well. Shameless plug: http://s11n.net
- The source code is fairly hackable, if i may say so. Adding command handlers and DLLs is especially simple for even entry-level C++ coders. im always looking for ways to improve the code, so feel free to contribute :).
Download (0.077MB)
Added: 2007-01-12 License: Public Domain Price:
597 downloads
BuildNumber 0.8a
BuildNumber is a utility to add auto-incrementing build numbers to C and C++ projects. more>>
Large projects usually already have some type of mechanism for build numbering, because keeping track of which build is the latest can be very important information. However, even small hobby projects can benefit from a self-maintaining build numbering system.
BuildNumber project is a utility to add auto-incrementing build numbers to C and C++ projects. BuildNumber will create and maintain a single header file called buildnumber.h for your project which you can #include to access the current build number. BuildNumber is written in pure C for maximum portability, but the binary can also be used with C++ projects, and the source should compile with almost any C/C++ compiler.
The entire contents of a sample buildnumber.h are displayed below:
/* Generated by BuildNumber version 0.8 */
#ifndef BUILD_NUMBER_H_
#define BUILD_NUMBER_H_
#define BUILDNUMBER 53
#define BUILDNUMBER_STR "53"
#endif /* BUILD_NUMBER_H_ */
Every time you rebuild your project, BuildNumber will automatically update this file for you: set it up once, and it just works. You can compile individual files (to confirm syntax, etc) without incrementing the build number, because it only updates when you actually build or make your project.
Main features:
- Written in pure C for maximum portability
- Simple concept, simple solution, simple code
- Works seemlessly in C and C++ projects
- Sets up in minutes, then its entirely automated
- Works with virtually every C/C++ compiler on virtually every system
- BSD License for maximum freedom, even in commercial projects
<<lessBuildNumber project is a utility to add auto-incrementing build numbers to C and C++ projects. BuildNumber will create and maintain a single header file called buildnumber.h for your project which you can #include to access the current build number. BuildNumber is written in pure C for maximum portability, but the binary can also be used with C++ projects, and the source should compile with almost any C/C++ compiler.
The entire contents of a sample buildnumber.h are displayed below:
/* Generated by BuildNumber version 0.8 */
#ifndef BUILD_NUMBER_H_
#define BUILD_NUMBER_H_
#define BUILDNUMBER 53
#define BUILDNUMBER_STR "53"
#endif /* BUILD_NUMBER_H_ */
Every time you rebuild your project, BuildNumber will automatically update this file for you: set it up once, and it just works. You can compile individual files (to confirm syntax, etc) without incrementing the build number, because it only updates when you actually build or make your project.
Main features:
- Written in pure C for maximum portability
- Simple concept, simple solution, simple code
- Works seemlessly in C and C++ projects
- Sets up in minutes, then its entirely automated
- Works with virtually every C/C++ compiler on virtually every system
- BSD License for maximum freedom, even in commercial projects
Download (0.038MB)
Added: 2006-04-07 License: BSD License Price:
1299 downloads
KXplayer 0.2 pre1
KXplayer is a very simple media player, based on xine. more>>
KXplayer is a very simple media player, based on xine. Its my hobby-project - just a way to get a better knowledge of KDEs internals.
Besides I wanted to learn programming C++ and since I believe the best way to learn programing is to write a program, I just made my mind to write a multimedia player.
Since it is a player, this word had to be in present in the title. The K and X appered there because of KDE (interface) and XINE (backend).
I took the decision to write a player because I needed one. I needed a good media player for KDE (something like XMMS with KDE inderface), which would be working as reliably as possible.
At present my PC is a 750MHz Duron with 128MB RAM and its almost imposible to work in OpenOffice.org and listen to MP3/OGG at the same time. Running XMMS and OpenOffice 1.x together on my Mandrake results in sound fragmentation.
For some time Ive been using boombox (you can find it in kde-apps). It is based on xine and I found it working better than xmms - almost no fragmentation. Unfortunately boomboxs interface is a bit strange (IMHO) and its not saving the equalizer settings (very annoying).
<<lessBesides I wanted to learn programming C++ and since I believe the best way to learn programing is to write a program, I just made my mind to write a multimedia player.
Since it is a player, this word had to be in present in the title. The K and X appered there because of KDE (interface) and XINE (backend).
I took the decision to write a player because I needed one. I needed a good media player for KDE (something like XMMS with KDE inderface), which would be working as reliably as possible.
At present my PC is a 750MHz Duron with 128MB RAM and its almost imposible to work in OpenOffice.org and listen to MP3/OGG at the same time. Running XMMS and OpenOffice 1.x together on my Mandrake results in sound fragmentation.
For some time Ive been using boombox (you can find it in kde-apps). It is based on xine and I found it working better than xmms - almost no fragmentation. Unfortunately boomboxs interface is a bit strange (IMHO) and its not saving the equalizer settings (very annoying).
Download (0.57MB)
Added: 2005-06-14 License: GPL (GNU General Public License) Price:
1595 downloads
Module::Install::Philosophy 0.67
Module::Install::Philosophy Perl module contains the concepts behind Module::Install. more>>
Module::Install::Philosophy Perl module contains the concepts behind Module::Install.
SYNOPSIS
This document describes the personal philosophy behind the creation of CPAN::MakeMaker (the predecessor of Module::Install). The views expressed here belong to Brian Ingerson; if they are not of interest to you, you can safely ignore this document.
The above is obviously a mutation of the monumental speech by great Martin Luther King (http://web66.coled.umn.edu/new/MLK/MLK.html). While the contexts are vastly different, I feel that there are some serious parallelisms.
The CPAN has become a place that is not free of injustice. This situation has arisen not out of directed oppression, but from a failure of our community to keep its tools sharp. It is the culmination of many small decisions made in the name of practicality. This is a sad state for an institution that was created to allow all interested people to contribute equally to the best of their ability.
This assertion is rooted in my personal experience as an author. When I created my first Perl module, Inline.pm, I knew that I had done something important. But how was I to make a dent in vast Perl community?
As a complete unknown in the Perl community, my voice did not travel far. I repeatedly tried to get even an acknowledgment from the gurus familiar with XS. No success. I resorted to sending messages with ridiculous subjects to modules@perl.org. (http://www.xray.mpe.mpg.de/mailing-lists/modules/2000-08/msg00078.html) No response. Through sheer determination and shameless self-promotion I eventually got the word out, and I hope the world is a slightly better place for it.
Since then, Inline has won awards and I have had the privilege to meet almost all of Perls finest. But I still remember the pain of starting out, and want to help invite more people into this wonderful world.
One thing I have learned from experience is that the Perl community (and throw in the Python and Ruby people as well) is a small drop in the vast ocean of programming. Its a giant pot of Java out there; and a sea of C. Perl may not be the biggest fish, but with some care and cunning we could become a much bigger school.
These are the current problems that I see with CPAN and the core modules:
New Modules dont help Older Perls
If I were to guess what percent of all Perl5 installations were at the current release level (5.8.0 in October 2002) I would say 3-5%. That may even be generous. Id say that over 40% of installations might still be at 5.005 or earlier.
The biggest problem with adding a module to the core is that it only helps a small subset of Perl users for a long long time. Worse yet, a good module author will still probably avoid using the core additions as prerequisites, because they want their new module to work as well on 5.005 as on 5.8.
CPAN::MakeMaker should be able to help in this regard. For example, instead of putting Inline.pm into the core for 5.9, I can now effectively get it into the core for every version of Perl that Inline supports.
Author Exclusiveness
Not just anybody can get a module into the core. It seems you have to know people in high places. If I were a brilliant new talent with a great new module, it would have a harder time getting the ear of the pumpking, then if I were, say, Damian Conway. In fact, I probably wouldnt even know where to start.
Reduced Competition
One comment Ive heard from some very good Perl programmers is "Everything important has already been done". Their feeling is that even though a module is suboptimal, it would be a waste of time to write a competing module. Who would use it instead of the one already in the core?
When I write a competing module, I know that I have to make it at least twice as good as the existing one to even get noticed. Thats not a bad thing, but should everybody be forced into that situation?
For example, lets say that you have created a really useful CGI script. Lets also say that it makes use of your own CGI::Special module, because CGI.pm doesnt meet your needs. Even though your script might be generally useful and worth sharing, the fact that it requires a non-standard module can only negatively affect its acceptance. Trying to get general acceptance for the superior CGI::Special module will be harder still.
Core modules are assumed by the general public to be "Best of Breed". While this may be true for some modules at some point in time, it keeps talented people from attempting to "breed" something better.
Core Bloat
Every time we add a module to the core it gets bigger and bigger. And we cant ever remove modules from the core, once theyve been added.
If I had my druthers, wed remove all modules from the core that werent necessary for either running Perl or installing modules. Of course, wed need to set things up so that installing modules was so easy, that it could be done on the fly if necessary. Is this easily accomplishable? Nope. Is it impossible? Nope. We have the best language in the world to help us do it!
Maintenance Bitrot
Believe it or not, Perl authors can sometimes acquire a "Life Beyond Perl". They get families or new hobbies or even hit by a bus. (This would be a "Death Beyond Perl".) The fact is, that once somebody writes a piece of code and shares it with the world, they are expected to maintain it for all time.
That is being generous. There are others that think that once their module has become popular or made it into the core, they dont need to keep fixing and improving it. I have personally been guilty of this sin.
And then theres the Damian Conway Effect. This plagues the exceptional authors who are so innovative and prolific they simply dont have time to maintain everything they have written.
I initially formalized these opinions at the YAPC (Yet Another Perl Conference) in June 2001. Since then I have been trying to think of technological solutions to fix these social problems.
One idea was dubbed NAPC. NAPC is CPAN backwards. It is a large system of precompiled modules that can be installed on the fly, with the goal of reducing the number of modules in the core. NAPC hasnt got started yet. Id still like to do it someday, but its a big problem with a lot of issues.
CPAN::MakeMaker (and now Module::Install) on the other hand, is simple and ultimately flexible. It should work with all of the existing CPAN processes without requiring any changes from them. And new features can be continuously added. Even though it doesnt scratch all of my philosophical CPAN itches, its a good start.
<<lessSYNOPSIS
This document describes the personal philosophy behind the creation of CPAN::MakeMaker (the predecessor of Module::Install). The views expressed here belong to Brian Ingerson; if they are not of interest to you, you can safely ignore this document.
The above is obviously a mutation of the monumental speech by great Martin Luther King (http://web66.coled.umn.edu/new/MLK/MLK.html). While the contexts are vastly different, I feel that there are some serious parallelisms.
The CPAN has become a place that is not free of injustice. This situation has arisen not out of directed oppression, but from a failure of our community to keep its tools sharp. It is the culmination of many small decisions made in the name of practicality. This is a sad state for an institution that was created to allow all interested people to contribute equally to the best of their ability.
This assertion is rooted in my personal experience as an author. When I created my first Perl module, Inline.pm, I knew that I had done something important. But how was I to make a dent in vast Perl community?
As a complete unknown in the Perl community, my voice did not travel far. I repeatedly tried to get even an acknowledgment from the gurus familiar with XS. No success. I resorted to sending messages with ridiculous subjects to modules@perl.org. (http://www.xray.mpe.mpg.de/mailing-lists/modules/2000-08/msg00078.html) No response. Through sheer determination and shameless self-promotion I eventually got the word out, and I hope the world is a slightly better place for it.
Since then, Inline has won awards and I have had the privilege to meet almost all of Perls finest. But I still remember the pain of starting out, and want to help invite more people into this wonderful world.
One thing I have learned from experience is that the Perl community (and throw in the Python and Ruby people as well) is a small drop in the vast ocean of programming. Its a giant pot of Java out there; and a sea of C. Perl may not be the biggest fish, but with some care and cunning we could become a much bigger school.
These are the current problems that I see with CPAN and the core modules:
New Modules dont help Older Perls
If I were to guess what percent of all Perl5 installations were at the current release level (5.8.0 in October 2002) I would say 3-5%. That may even be generous. Id say that over 40% of installations might still be at 5.005 or earlier.
The biggest problem with adding a module to the core is that it only helps a small subset of Perl users for a long long time. Worse yet, a good module author will still probably avoid using the core additions as prerequisites, because they want their new module to work as well on 5.005 as on 5.8.
CPAN::MakeMaker should be able to help in this regard. For example, instead of putting Inline.pm into the core for 5.9, I can now effectively get it into the core for every version of Perl that Inline supports.
Author Exclusiveness
Not just anybody can get a module into the core. It seems you have to know people in high places. If I were a brilliant new talent with a great new module, it would have a harder time getting the ear of the pumpking, then if I were, say, Damian Conway. In fact, I probably wouldnt even know where to start.
Reduced Competition
One comment Ive heard from some very good Perl programmers is "Everything important has already been done". Their feeling is that even though a module is suboptimal, it would be a waste of time to write a competing module. Who would use it instead of the one already in the core?
When I write a competing module, I know that I have to make it at least twice as good as the existing one to even get noticed. Thats not a bad thing, but should everybody be forced into that situation?
For example, lets say that you have created a really useful CGI script. Lets also say that it makes use of your own CGI::Special module, because CGI.pm doesnt meet your needs. Even though your script might be generally useful and worth sharing, the fact that it requires a non-standard module can only negatively affect its acceptance. Trying to get general acceptance for the superior CGI::Special module will be harder still.
Core modules are assumed by the general public to be "Best of Breed". While this may be true for some modules at some point in time, it keeps talented people from attempting to "breed" something better.
Core Bloat
Every time we add a module to the core it gets bigger and bigger. And we cant ever remove modules from the core, once theyve been added.
If I had my druthers, wed remove all modules from the core that werent necessary for either running Perl or installing modules. Of course, wed need to set things up so that installing modules was so easy, that it could be done on the fly if necessary. Is this easily accomplishable? Nope. Is it impossible? Nope. We have the best language in the world to help us do it!
Maintenance Bitrot
Believe it or not, Perl authors can sometimes acquire a "Life Beyond Perl". They get families or new hobbies or even hit by a bus. (This would be a "Death Beyond Perl".) The fact is, that once somebody writes a piece of code and shares it with the world, they are expected to maintain it for all time.
That is being generous. There are others that think that once their module has become popular or made it into the core, they dont need to keep fixing and improving it. I have personally been guilty of this sin.
And then theres the Damian Conway Effect. This plagues the exceptional authors who are so innovative and prolific they simply dont have time to maintain everything they have written.
I initially formalized these opinions at the YAPC (Yet Another Perl Conference) in June 2001. Since then I have been trying to think of technological solutions to fix these social problems.
One idea was dubbed NAPC. NAPC is CPAN backwards. It is a large system of precompiled modules that can be installed on the fly, with the goal of reducing the number of modules in the core. NAPC hasnt got started yet. Id still like to do it someday, but its a big problem with a lot of issues.
CPAN::MakeMaker (and now Module::Install) on the other hand, is simple and ultimately flexible. It should work with all of the existing CPAN processes without requiring any changes from them. And new features can be continuously added. Even though it doesnt scratch all of my philosophical CPAN itches, its a good start.
Download (0.080MB)
Added: 2007-06-25 License: Perl Artistic License Price:
851 downloads
Tux Paint Default Stamps 2007-07-01
Tux Paint Default Stamps project is a collection of hundreds of rubber stamp images. more>>
Tux Paint Default Stamps project is a collection of hundreds of "rubber stamp" images (and associated descriptions and sound effects) for the childrens drawing program, "Tux Paint." Both PNG and SVG images are included.
Categories include animals, clothes, food, hobbies, household, medical, military, natural forces, people, plants, seasonal, space, sports, symbols, town, and vehicles.
Enhancements:
- SVG-based images (which are supported by Tux Paint 0.9.17) are now included.
- Stamps were added for food, animals, alphabets, signs, sports-related, musical instruments, money, and flowers.
- Translations were added for Czech, Latvian, and Thai.
- The English, Basque, French, Gujarati, Japanese, Russian, Spanish translations were updated.
<<lessCategories include animals, clothes, food, hobbies, household, medical, military, natural forces, people, plants, seasonal, space, sports, symbols, town, and vehicles.
Enhancements:
- SVG-based images (which are supported by Tux Paint 0.9.17) are now included.
- Stamps were added for food, animals, alphabets, signs, sports-related, musical instruments, money, and flowers.
- Translations were added for Czech, Latvian, and Thai.
- The English, Basque, French, Gujarati, Japanese, Russian, Spanish translations were updated.
Download (MB)
Added: 2007-07-05 License: GPL (GNU General Public License) Price:
513 downloads
WWW::Scraper::Google 3.05
WWW::Scraper::Google scrapes www.Google.com. more>>
WWW::Scraper::Google scrapes www.Google.com.
Caveat Kleptor
Please note that using the Google Scraper module (may) be a violation of Googles "Terms of Service", of which your humble author has been repeatedly reminded. The TOS is not as easy to locate as some of these correspondents have suggested (without a smile), but you can find the TOS at http://www.google.com/terms_of_service.html
Briefly, the relevant part is the "No Automated Querying" section. Its a kind of "do as I say, not as I do" dictum. Your author has tried to divine exactly what it means. On the surface its pretty clear, but if you follow the thread you will realize that it doesnt lead to a place any of us want to be. However, Google Incs desire is clear enough. They do not want to be *abused* for the exclusive benefit of someone else.
Scraper is not a tool well suited for this kind of abuse. It is designed to be generally configurable and, as such, it is not particularly efficient. It obeys the "robot.txt" rules published by the web-server. It would require some effort on a users part to cirumvent this feature. The Google.pm does not do a "meta-search" on Google. Even if your humble author removed Google.pm from the Scraper suite, it would be trivially easy for someone to build a Google module for Scraper (their format is very simple compared to others).
I believe that Google Inc. understands a little interloping (in moderation) is beneficial to all. I should note that Google Inc. has not notified your author of any concern on their part. This has been done by third parties who, for whatever reasons of their own, feel it necessary to interject themselves in others disputes, even when no such dispute exists.
Keep in mind that this is Googles livelihood. Should your use of Scraper be your hobby, or even part of your livelihood, remember it never helps to hit someone where they live. They will defend themselves to the death (even if that death is yours).
Scraper is a handy little tool for getting to stuff you cant get to otherwise. Lets keep it that way!
<<lessCaveat Kleptor
Please note that using the Google Scraper module (may) be a violation of Googles "Terms of Service", of which your humble author has been repeatedly reminded. The TOS is not as easy to locate as some of these correspondents have suggested (without a smile), but you can find the TOS at http://www.google.com/terms_of_service.html
Briefly, the relevant part is the "No Automated Querying" section. Its a kind of "do as I say, not as I do" dictum. Your author has tried to divine exactly what it means. On the surface its pretty clear, but if you follow the thread you will realize that it doesnt lead to a place any of us want to be. However, Google Incs desire is clear enough. They do not want to be *abused* for the exclusive benefit of someone else.
Scraper is not a tool well suited for this kind of abuse. It is designed to be generally configurable and, as such, it is not particularly efficient. It obeys the "robot.txt" rules published by the web-server. It would require some effort on a users part to cirumvent this feature. The Google.pm does not do a "meta-search" on Google. Even if your humble author removed Google.pm from the Scraper suite, it would be trivially easy for someone to build a Google module for Scraper (their format is very simple compared to others).
I believe that Google Inc. understands a little interloping (in moderation) is beneficial to all. I should note that Google Inc. has not notified your author of any concern on their part. This has been done by third parties who, for whatever reasons of their own, feel it necessary to interject themselves in others disputes, even when no such dispute exists.
Keep in mind that this is Googles livelihood. Should your use of Scraper be your hobby, or even part of your livelihood, remember it never helps to hit someone where they live. They will defend themselves to the death (even if that death is yours).
Scraper is a handy little tool for getting to stuff you cant get to otherwise. Lets keep it that way!
Download (0.10MB)
Added: 2006-11-23 License: Perl Artistic License Price:
1075 downloads
nwcc 0.7.3
nwcc is a small C compiler for Unix systems that I wrote in my freetime, for fun and to prove to myself that I could. more>>
nwcc is a small C compiler for Unix systems that I wrote in my freetime, for fun and to prove to myself that I could. I started the project in August 2003, but because I had a job and a life and a few other hobby code projects, it took me until autumn 2005 to make it work with various constructs of the C language.
So what new does nwcc bring to the table? Most importantly, new code: I wrote everything from scratch - including the lexer, parser and backend.
The code of nwcc is written in C, is currently around 25.000 lines in size, and Im releasing it under the BSD license.
This release is not intended for serious use, but at least nwcc is strong enough to compile itself (the result of which can compile nwcc as well) and should thus be capable of dealing with at least some small programs. There are still some things missing/broken, but things are improving almost every day (I upload my changes to SF whenever I add/fix something of interest.)
Main features:
- There are some C language features missing; Most notably support for floating point, bitfields and a few other things. Many other things are broken (there are probably bugs in pretty much every language feature implemented by nwcc)
- There are no features a power developer used to established mainstream compilers would consider interesting, yet (apart from, maybe, the stack protection feature.) Sorry. There is nothing beyond plain dumb compilation; No support for creating shared libraries, no support for debugging or profiling, no nothing
- There is currently only a backend for 80x86 processors (which generates code for the NASM Netwide Assembler and works on Linux, FreeBSD and OpenBSD)
- There is absolutely no optimization, meaning the generated code is very slow compared to the output of established compilers. I will work on this soon, but you should understand that my primary concerns right now are code correctness and portability rather than speed (its hard enough to make slow code work!)
It takes a lot of work to get even a subset of the C language to compile, so the fact that something is missing or done wrong in nwcc does not mean that I dont care about that particular area of the C language or compiler design; It only means that I havent gotten around to doing it right, or indeed at all, yet.
Enhancements:
- Most floating point support for x86 and AMD64 has been rewritten.
- Many floating point bugs were also fixed on PPC32 and PPC64.
- Various other severe bugs were fixed on all supported platforms.
<<lessSo what new does nwcc bring to the table? Most importantly, new code: I wrote everything from scratch - including the lexer, parser and backend.
The code of nwcc is written in C, is currently around 25.000 lines in size, and Im releasing it under the BSD license.
This release is not intended for serious use, but at least nwcc is strong enough to compile itself (the result of which can compile nwcc as well) and should thus be capable of dealing with at least some small programs. There are still some things missing/broken, but things are improving almost every day (I upload my changes to SF whenever I add/fix something of interest.)
Main features:
- There are some C language features missing; Most notably support for floating point, bitfields and a few other things. Many other things are broken (there are probably bugs in pretty much every language feature implemented by nwcc)
- There are no features a power developer used to established mainstream compilers would consider interesting, yet (apart from, maybe, the stack protection feature.) Sorry. There is nothing beyond plain dumb compilation; No support for creating shared libraries, no support for debugging or profiling, no nothing
- There is currently only a backend for 80x86 processors (which generates code for the NASM Netwide Assembler and works on Linux, FreeBSD and OpenBSD)
- There is absolutely no optimization, meaning the generated code is very slow compared to the output of established compilers. I will work on this soon, but you should understand that my primary concerns right now are code correctness and portability rather than speed (its hard enough to make slow code work!)
It takes a lot of work to get even a subset of the C language to compile, so the fact that something is missing or done wrong in nwcc does not mean that I dont care about that particular area of the C language or compiler design; It only means that I havent gotten around to doing it right, or indeed at all, yet.
Enhancements:
- Most floating point support for x86 and AMD64 has been rewritten.
- Many floating point bugs were also fixed on PPC32 and PPC64.
- Various other severe bugs were fixed on all supported platforms.
Download (0.18MB)
Added: 2007-05-27 License: BSD License Price:
881 downloads
Intruder Alert 1.0
Intruder Alert is an arcade maze game. more>>
Intruder Alert is an arcade maze game.
Intruder Alert is a free top-down 2D maze arcade game written in FreePascal using the SDL library for multimedia output.
Its a hobby project and was inspired by 80s classics like wolfenstein 2d and alien breed.
<<lessIntruder Alert is a free top-down 2D maze arcade game written in FreePascal using the SDL library for multimedia output.
Its a hobby project and was inspired by 80s classics like wolfenstein 2d and alien breed.
Download (3.5MB)
Added: 2007-04-30 License: GPL (GNU General Public License) Price:
911 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 2
- 1
- 2
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above barack obama hobbies 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