professor fizzwizzle
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 18
Professor X 0.4.1
Professor X is an extension which lets you see inside a pages head without viewing the sourcecode. more>>
Professor X is an extension which lets you see inside a pages head without viewing the sourcecode.
Once installed the Professor X command is available by right-clicking as well as in the Tools menu. When applied to a page it will display the contents of the pages head element, including Meta, Script and Style content.
This can help you see how a website was constructed without having to go back and forth between the sourcecode and the page in your browser.
This is the companion extension to X-Ray although either can be installed and used on their own. They were created to help people learning web design at various levels of experience.
<<lessOnce installed the Professor X command is available by right-clicking as well as in the Tools menu. When applied to a page it will display the contents of the pages head element, including Meta, Script and Style content.
This can help you see how a website was constructed without having to go back and forth between the sourcecode and the page in your browser.
This is the companion extension to X-Ray although either can be installed and used on their own. They were created to help people learning web design at various levels of experience.
Download (0.023MB)
Added: 2007-04-03 License: MPL (Mozilla Public License) Price:
936 downloads
GoodProfOrNot 2.3.12
GoodProfOrNot is a database and web system for organizing, interpreting, and presenting course survey results. more>>
GoodProfOrNot is a database and web system for organizing, interpreting, and presenting course survey results.
GoodProfOrNot project is designed to show ratings of instructors (professors and student instructors) and classes.
The project is implemented in Python (see below for rationale). The back-end uses any SQLObject-compatible database, such as MySQL, PostgreSQL, SQLite.
The front-end outputs raw hand-designed/coded HTML and CSS. Output can either be dynamically generated using the CGI front-end (with caching and mod_python/FastCGI support) or pre-generated as static HTML.
Python allows rapid prototyping and implementation: to add the "newsgroup" field to the system only took 15 minutes to update the database schema and HTML front-end, and 10 minutes to write a program to link all the ucb.class.(cs|ee)* newsgroups.
This course survey system started as a final project for a Python class taught by student instructor Ka-Ping Yee. Its primary goal was to replace an old system used by Eta Kappa Nu at UC Berkeleys EECS course survey system. It has since become very successful and other schools use it.
Enhancements:
- Fix parse error when user enters search query of e.g. "CS C191".
- Bug reported by Ramesh Sridharan
<<lessGoodProfOrNot project is designed to show ratings of instructors (professors and student instructors) and classes.
The project is implemented in Python (see below for rationale). The back-end uses any SQLObject-compatible database, such as MySQL, PostgreSQL, SQLite.
The front-end outputs raw hand-designed/coded HTML and CSS. Output can either be dynamically generated using the CGI front-end (with caching and mod_python/FastCGI support) or pre-generated as static HTML.
Python allows rapid prototyping and implementation: to add the "newsgroup" field to the system only took 15 minutes to update the database schema and HTML front-end, and 10 minutes to write a program to link all the ucb.class.(cs|ee)* newsgroups.
This course survey system started as a final project for a Python class taught by student instructor Ka-Ping Yee. Its primary goal was to replace an old system used by Eta Kappa Nu at UC Berkeleys EECS course survey system. It has since become very successful and other schools use it.
Enhancements:
- Fix parse error when user enters search query of e.g. "CS C191".
- Bug reported by Ramesh Sridharan
Download (1.2MB)
Added: 2005-12-16 License: GPL (GNU General Public License) Price:
1407 downloads
Fenris 0.07-m2 build 3245
Fenris is a multipurpose tracer, debugger, and code analysis tool. more>>
Fenris is a suite of tools suitable for code analysis, debugging, protocol analysis, reverse engineering, forensics, diagnostics, security audits, vulnerability research and many other purposes.
The main logical components are:
- Fenris: high-level tracer, a tool that detects the logic used in C programs to find and classify functions, logic program structure, calls, buffers, interaction with system and libraries, I/O and many other structures. Fenris is mostly a "whats inside" tracer, as opposed to ltrace or strace, tracers intended to inspect external "symptoms" of the internal program structure. Fenris does not depend on libbfd for accessing ELF structures, and thus is much more robust when dealing with "anti-debugging" code.
- libfnprints and dress: fingerprinting code that can be used to detect library functions embedded inside a static application, even without symbols, to make code analysis simplier; this functionality is both embedded in other components and available as a standalone tool that adds symtab to ELF binaries and can be used with any debugger or disassembler.
- Aegir: an interactive gdb-alike debugger with modular capabilities, instruction by instruction and breakpoint to breakpoint execution, and real-time access to all the goods offered by Fenris, such as high-level information about memory objects or logical code structure.
- nc-aegir: a SoftICE-alike GUI for Aegir, with automatic register, memory and code views, integrated Fenris output, and automatic Fenris control (now under development).
- Ragnarok: a visualisation tool for Fenris that delivers browsable information about many different aspects of program execution - code flow, function calls, memory object life, I/O, etc (to be redesigned using OpenDX or a similar data exploration interface).
- ...and some other companion utilities.
Code analysis is not limited to debugging, quality assurance or security audits. Understanding and handling file formats or communication protocols used by proprietary solutions, a problem that many corporations face when they decide to change their base software platform from one, obsolete or insufficient solution to another, perhaps more suitable, is a task that can consume long months and millions of dollars, especially when any misjudgment or misinterpretation is made.
Because of that, accurate and complete information about existing solutions has to be obtained and evaluated in a timely manner. This project is an attempt to fill the gap between currently used tools by providing a freely available program analysis utility, suitable for black-box code audits, algorithm analysis,
rapid reconnaissance in open-source projects, tracking down bugs, evaluating security subsystems, performing computer forensics, etc.
This program does not automate the process of auditing, and does not favor any particular use. Instead of that, it is intended to be a flexible and universal application that will be a valuable solution for many advanced users. While functional, it is probably not tested sufficiently, there are many issues to fix, several known bugs, some portability problems.
It is being released primarily to get user feedback, comments, and, most important, to request development support, as my resources are very limited, both in terms of available time and development platforms. This project is and will be distributed as a free software, regardless of projected use, accompanied by complete sources, under the terms and
conditions of GPL. Why do you might need this code? Well, there are few reasons...
Human beings are, so far, the best code analysts. Unlike computer programs, they have imagination, ability to build synthetic abstract models, and yet to observe and analyze smallest details at the same time. Functionality is often being described as "doing what the program is supposed to do", security as "doing what the program is supposed to do and
nothing more". While it might sound funny, that is the most general and complete definition we have. In most real-life scenarios only humans really know what are their expectations. Building strict formal models of our expectations does not necessarily mean that models themselves are flawless, and is very time-consuming. Then, even with such models,
validating the code is not always possible, due to its computational complexity. That is why real, live programs (not including some critical developments) do not have such models, do not follow any particular coding guidelines, and cannot be formally examined without human judgment.
Unfortunately, humans are also highly inaccurate and very expensive. They work slowly, and better results can be achieved by hiring better specialists and performing more careful audit. And after all, even the best expert can overlook something in complex, hard to read code. It is almost impossible for human to perform an accurate audit of a large, complex, heterogeneous project written e.g. in C - like Sendmail, BIND, Apache - and provide results in reasonable time.
Things get even worse when humans try to understand algorithms and protocols used by complex closed-source black box solutions. They are simply too slow, and not always able to make accurate guesses about dozens of complicated, conditional parameter passes and function calls before final action is taken.
While it might sound surprising, human-driven code audit is very similar to playing chess - it is a general analysis of possible states, way too many to be implicitly projected by our conscience, a result of experience, knowledge, some unparalleled capabilities of human brain, and luck. It is also a subject to false moves and misjudgment. And there are maybe just a few hundred excellent players.
As for today, freely and commercially available audit tools both use two opposite approaches. First approach tends to minimize human role by automating the review of source code. Source code analysis methods are good in spotting known, repeatable static errors in the code - such as format string vulnerabilities. On the other hand, static tools are not able to trace and analyze all possible execution paths of complex application by
simply looking at its source.
The reason for inability to follow all execution paths lies deeply in the foundations of modern computation theory, and one of its aspects is known as "the halting problem". Speaking in more general terms, in many cases (such as complex software, or even underlying operating system), the amount of medium needed to store all possible states of a complex program exceeds significantly the number of particles in the
universe; and the amount of time needed to generate and process them sequentially is greater than the lifetime of our universe, even having a machine that works with the speed of light.
This might be changed by the development of new computation models, such as quantum computing, or by creating mathematical models that allow us to make such problems non-polynomial - but for now, we are far from this point, and static analysis is restrained in many very serious ways, even though many software suppliers tend to market their products as the ultimate, 100% solutions. Subtle, complex, conditional dynamic errors, such as privilege dropping problems, input-dependent table overflows in C and many other issues usually cannot be detected without generating a completely unacceptable number of false positives.
This kind of software is highly dependent on coding style, and specific notation or development practices might render them less efficient - for example, automated audit utilities can usually detect problems like insecure call to strcpy() function, but will very likely not notice insecure manual copy in do-while
loop. The truth is, for programs that do not have previously built formal models, static auditing utilities look for known, common problems in known, common types of code in a very limited scope.
Another issue is the applicability of this approach to algorithm analysis tasks. In the domain of automated audit tools, this problem is "reduced" to building a formal model of program behavior, or, more appropriately, generating certain predictive statements about the code. While there are very interesting developments in this direction, such as the work of professor Patrick Cousot, it is very difficult to make any detailed, accurate and abstract enough run-time predictions for complex source code that has any immediate value in the analysis of unknown algorithm.
Last but not least, static analysis of sources can be deployed only when the source code is available, which does not have to be the case. This approach is a subject to many shortcomings, tricky assertions, and is a technique of strictly limited capabilities. This is, of course, not to dismiss this method - but to demonstrate that this much favored approach is not flawless and how much it needs to be accompanied with auxiliary methods.
The second approach to be discussed here is based on a dynamic run-time program analysis. This method is usually used to provide the user with information about actual program execution path, letting him make decisions on which path to follow and giving him free will to draw any conclusions and perform all the synthetic reasoning.
This method is
applied to a live binary executed in real-time and is based on monitoring syscalls (strace), libcalls (ltrace) or functions (xtrace); in certain cases, breakpoint debuggers, such as gdb, can be used, however it is usually not feasible to use them to perform anything more than in-depth analysis of a very small portion of program functionality. Usually, such analysis provides a very useful information on what is happening, and this information is provided in uniform, reduced-output form.
A careful auditor can analyze program behavior and find interesting or potentially dangerous run-time conditions. By monitoring how a given application interacts with external world, he (or she) can determine whether some other
conditions can be triggered and eventually explore them by examining sources or re-running the program. Advantages are enormous, as such software enables the auditor to spot very subtle errors in code that "looked good", to observe actual execution, not to try to figure it out, and to find or trace down not obvious or non-schematic vulnerabilities. Run-time trace tools are primarily used for fast reconnaissance tasks and for tracing down notorious errors that are not clearly visible in the source, significantly reducing the time of such operations.
There are, however, serious drawbacks related to this method. First of all, known tracing tools do not provide the complete information. They will detect strcpy() call, but wont report if exactly the same functionality has been implemented from scratch by the author of given program. And, in some cases, the amount of produced data
can be enormous, and because of its completely unstructured character, it makes the observation of overall execution vector almost impossible. Two most important problems are: correlating trace data with actual code, and determining what occurred in the "dark matter" between two lines of trace output.
There are some attempts to combine both approaches - run-time evaluation and source code analysis - such as Purify or many other commercial development support products. Unfortunately, they all feature a limited set of capabilities that need development-side or compilation-time support and are not really suitable for comprehending black box solutions or performing a general analysis. Most of them are targeted for dynamic memory debugging and code / memory profiling.
While not mentioned above, there is also another approach to black-box code - high-level decompiler. However, the complexity of modern compilers makes it very difficult to develop an effective C decompiler or similar utility, and there are only a few (two?) projects available to accomplish it, all of them not able to deal with too complex or optimized code. Finally, there is no guarantee that generated output code will be any help in comprehending the program. For now, this approach remains almost purely theoretical,
and I am not aware of any auditors using it extensively. Why? Well, heres an example of decompiled, mildly optimized code *with* some symbolic information: http://www.backerstreet.com/rec/ex386/hdgO.rec . One may argue it is less readable than cross-referenced disassembly.
This project, Fenris, is named after the monstrous wolf, son of the Norse god Loki. It is not the ultimate answer to all questions, not a solution for all problems, and under no circumstances is intended to replace other tools and techniques. On the other hand, it makes one step forward compared to other tools, trying to support the auditor and to make his work much more effective. This is accomplished by combining a number of techniques, including partial run-time decompiler, stateful analysis, code fingerprinting, I/O analysis, high-level visualization layer, traditional interactive debugger features and run-time code modification capabilities. The goal is to provide a very detailed trace information, and, at the same time, to provide data suitable to build a model of program behavior more quickly and in more convenient way.
Fenris is not supposed to find vulnerabilities or bugs, or to guess algorithms or describe protocols. It is supposed to report and analyze the execution path - detect and describe functional blocks, monitor data flow in the program, marking its lifetime, source, migration and destination, analyze how functions work and what conditions are evaluated.
At the end, it can deliver you an execution model of traced program (or arbitrarily chosen portion of it, if complete trace results in too much noise or irrelevant information), and hint you how this model can change in different conditions. Fenris does not need source codes of analyzed application, but obviously does not keep the auditor from using them.
For many users, Fenris might be a new tool or tools, for others - just a command-line replacement or addition to strace, ltrace, gdb or similar applications (theres a brief list of other nice tools in doc/other.txt). And thats the idea - to build a tool that is simple, reusable, but also precise and smart. It is supposed to have advantages over other tools, but not to be an ultimate replacement or the final solution. Some users can just use very specific features, such as automated function fingerprinting, and use companion tools instead of the main program.
<<lessThe main logical components are:
- Fenris: high-level tracer, a tool that detects the logic used in C programs to find and classify functions, logic program structure, calls, buffers, interaction with system and libraries, I/O and many other structures. Fenris is mostly a "whats inside" tracer, as opposed to ltrace or strace, tracers intended to inspect external "symptoms" of the internal program structure. Fenris does not depend on libbfd for accessing ELF structures, and thus is much more robust when dealing with "anti-debugging" code.
- libfnprints and dress: fingerprinting code that can be used to detect library functions embedded inside a static application, even without symbols, to make code analysis simplier; this functionality is both embedded in other components and available as a standalone tool that adds symtab to ELF binaries and can be used with any debugger or disassembler.
- Aegir: an interactive gdb-alike debugger with modular capabilities, instruction by instruction and breakpoint to breakpoint execution, and real-time access to all the goods offered by Fenris, such as high-level information about memory objects or logical code structure.
- nc-aegir: a SoftICE-alike GUI for Aegir, with automatic register, memory and code views, integrated Fenris output, and automatic Fenris control (now under development).
- Ragnarok: a visualisation tool for Fenris that delivers browsable information about many different aspects of program execution - code flow, function calls, memory object life, I/O, etc (to be redesigned using OpenDX or a similar data exploration interface).
- ...and some other companion utilities.
Code analysis is not limited to debugging, quality assurance or security audits. Understanding and handling file formats or communication protocols used by proprietary solutions, a problem that many corporations face when they decide to change their base software platform from one, obsolete or insufficient solution to another, perhaps more suitable, is a task that can consume long months and millions of dollars, especially when any misjudgment or misinterpretation is made.
Because of that, accurate and complete information about existing solutions has to be obtained and evaluated in a timely manner. This project is an attempt to fill the gap between currently used tools by providing a freely available program analysis utility, suitable for black-box code audits, algorithm analysis,
rapid reconnaissance in open-source projects, tracking down bugs, evaluating security subsystems, performing computer forensics, etc.
This program does not automate the process of auditing, and does not favor any particular use. Instead of that, it is intended to be a flexible and universal application that will be a valuable solution for many advanced users. While functional, it is probably not tested sufficiently, there are many issues to fix, several known bugs, some portability problems.
It is being released primarily to get user feedback, comments, and, most important, to request development support, as my resources are very limited, both in terms of available time and development platforms. This project is and will be distributed as a free software, regardless of projected use, accompanied by complete sources, under the terms and
conditions of GPL. Why do you might need this code? Well, there are few reasons...
Human beings are, so far, the best code analysts. Unlike computer programs, they have imagination, ability to build synthetic abstract models, and yet to observe and analyze smallest details at the same time. Functionality is often being described as "doing what the program is supposed to do", security as "doing what the program is supposed to do and
nothing more". While it might sound funny, that is the most general and complete definition we have. In most real-life scenarios only humans really know what are their expectations. Building strict formal models of our expectations does not necessarily mean that models themselves are flawless, and is very time-consuming. Then, even with such models,
validating the code is not always possible, due to its computational complexity. That is why real, live programs (not including some critical developments) do not have such models, do not follow any particular coding guidelines, and cannot be formally examined without human judgment.
Unfortunately, humans are also highly inaccurate and very expensive. They work slowly, and better results can be achieved by hiring better specialists and performing more careful audit. And after all, even the best expert can overlook something in complex, hard to read code. It is almost impossible for human to perform an accurate audit of a large, complex, heterogeneous project written e.g. in C - like Sendmail, BIND, Apache - and provide results in reasonable time.
Things get even worse when humans try to understand algorithms and protocols used by complex closed-source black box solutions. They are simply too slow, and not always able to make accurate guesses about dozens of complicated, conditional parameter passes and function calls before final action is taken.
While it might sound surprising, human-driven code audit is very similar to playing chess - it is a general analysis of possible states, way too many to be implicitly projected by our conscience, a result of experience, knowledge, some unparalleled capabilities of human brain, and luck. It is also a subject to false moves and misjudgment. And there are maybe just a few hundred excellent players.
As for today, freely and commercially available audit tools both use two opposite approaches. First approach tends to minimize human role by automating the review of source code. Source code analysis methods are good in spotting known, repeatable static errors in the code - such as format string vulnerabilities. On the other hand, static tools are not able to trace and analyze all possible execution paths of complex application by
simply looking at its source.
The reason for inability to follow all execution paths lies deeply in the foundations of modern computation theory, and one of its aspects is known as "the halting problem". Speaking in more general terms, in many cases (such as complex software, or even underlying operating system), the amount of medium needed to store all possible states of a complex program exceeds significantly the number of particles in the
universe; and the amount of time needed to generate and process them sequentially is greater than the lifetime of our universe, even having a machine that works with the speed of light.
This might be changed by the development of new computation models, such as quantum computing, or by creating mathematical models that allow us to make such problems non-polynomial - but for now, we are far from this point, and static analysis is restrained in many very serious ways, even though many software suppliers tend to market their products as the ultimate, 100% solutions. Subtle, complex, conditional dynamic errors, such as privilege dropping problems, input-dependent table overflows in C and many other issues usually cannot be detected without generating a completely unacceptable number of false positives.
This kind of software is highly dependent on coding style, and specific notation or development practices might render them less efficient - for example, automated audit utilities can usually detect problems like insecure call to strcpy() function, but will very likely not notice insecure manual copy in do-while
loop. The truth is, for programs that do not have previously built formal models, static auditing utilities look for known, common problems in known, common types of code in a very limited scope.
Another issue is the applicability of this approach to algorithm analysis tasks. In the domain of automated audit tools, this problem is "reduced" to building a formal model of program behavior, or, more appropriately, generating certain predictive statements about the code. While there are very interesting developments in this direction, such as the work of professor Patrick Cousot, it is very difficult to make any detailed, accurate and abstract enough run-time predictions for complex source code that has any immediate value in the analysis of unknown algorithm.
Last but not least, static analysis of sources can be deployed only when the source code is available, which does not have to be the case. This approach is a subject to many shortcomings, tricky assertions, and is a technique of strictly limited capabilities. This is, of course, not to dismiss this method - but to demonstrate that this much favored approach is not flawless and how much it needs to be accompanied with auxiliary methods.
The second approach to be discussed here is based on a dynamic run-time program analysis. This method is usually used to provide the user with information about actual program execution path, letting him make decisions on which path to follow and giving him free will to draw any conclusions and perform all the synthetic reasoning.
This method is
applied to a live binary executed in real-time and is based on monitoring syscalls (strace), libcalls (ltrace) or functions (xtrace); in certain cases, breakpoint debuggers, such as gdb, can be used, however it is usually not feasible to use them to perform anything more than in-depth analysis of a very small portion of program functionality. Usually, such analysis provides a very useful information on what is happening, and this information is provided in uniform, reduced-output form.
A careful auditor can analyze program behavior and find interesting or potentially dangerous run-time conditions. By monitoring how a given application interacts with external world, he (or she) can determine whether some other
conditions can be triggered and eventually explore them by examining sources or re-running the program. Advantages are enormous, as such software enables the auditor to spot very subtle errors in code that "looked good", to observe actual execution, not to try to figure it out, and to find or trace down not obvious or non-schematic vulnerabilities. Run-time trace tools are primarily used for fast reconnaissance tasks and for tracing down notorious errors that are not clearly visible in the source, significantly reducing the time of such operations.
There are, however, serious drawbacks related to this method. First of all, known tracing tools do not provide the complete information. They will detect strcpy() call, but wont report if exactly the same functionality has been implemented from scratch by the author of given program. And, in some cases, the amount of produced data
can be enormous, and because of its completely unstructured character, it makes the observation of overall execution vector almost impossible. Two most important problems are: correlating trace data with actual code, and determining what occurred in the "dark matter" between two lines of trace output.
There are some attempts to combine both approaches - run-time evaluation and source code analysis - such as Purify or many other commercial development support products. Unfortunately, they all feature a limited set of capabilities that need development-side or compilation-time support and are not really suitable for comprehending black box solutions or performing a general analysis. Most of them are targeted for dynamic memory debugging and code / memory profiling.
While not mentioned above, there is also another approach to black-box code - high-level decompiler. However, the complexity of modern compilers makes it very difficult to develop an effective C decompiler or similar utility, and there are only a few (two?) projects available to accomplish it, all of them not able to deal with too complex or optimized code. Finally, there is no guarantee that generated output code will be any help in comprehending the program. For now, this approach remains almost purely theoretical,
and I am not aware of any auditors using it extensively. Why? Well, heres an example of decompiled, mildly optimized code *with* some symbolic information: http://www.backerstreet.com/rec/ex386/hdgO.rec . One may argue it is less readable than cross-referenced disassembly.
This project, Fenris, is named after the monstrous wolf, son of the Norse god Loki. It is not the ultimate answer to all questions, not a solution for all problems, and under no circumstances is intended to replace other tools and techniques. On the other hand, it makes one step forward compared to other tools, trying to support the auditor and to make his work much more effective. This is accomplished by combining a number of techniques, including partial run-time decompiler, stateful analysis, code fingerprinting, I/O analysis, high-level visualization layer, traditional interactive debugger features and run-time code modification capabilities. The goal is to provide a very detailed trace information, and, at the same time, to provide data suitable to build a model of program behavior more quickly and in more convenient way.
Fenris is not supposed to find vulnerabilities or bugs, or to guess algorithms or describe protocols. It is supposed to report and analyze the execution path - detect and describe functional blocks, monitor data flow in the program, marking its lifetime, source, migration and destination, analyze how functions work and what conditions are evaluated.
At the end, it can deliver you an execution model of traced program (or arbitrarily chosen portion of it, if complete trace results in too much noise or irrelevant information), and hint you how this model can change in different conditions. Fenris does not need source codes of analyzed application, but obviously does not keep the auditor from using them.
For many users, Fenris might be a new tool or tools, for others - just a command-line replacement or addition to strace, ltrace, gdb or similar applications (theres a brief list of other nice tools in doc/other.txt). And thats the idea - to build a tool that is simple, reusable, but also precise and smart. It is supposed to have advantages over other tools, but not to be an ultimate replacement or the final solution. Some users can just use very specific features, such as automated function fingerprinting, and use companion tools instead of the main program.
Download (1.1MB)
Added: 2005-04-18 License: GPL (GNU General Public License) Price:
1657 downloads
RefKeep 2.11
RefKeep project is a personal bibliography assistant. more>>
RefKeep project is a personal bibliography assistant.
RefKeep is software targeted at teachers, students, and researchers -- people who read and manage a large number of books, journals, magazines, and papers regularly.
It is a tool to manage ones research and other bibliographic information.
Main features:
- Organize and maintain bibliographic information (books, journals, series, papers etc) in the form of RefCollections.
- Search your bibliographic information with ease.
- Generate Reference lists in various formats (HTML, plain text, custom defined formats). For example, a professor can generate easily generate a list of references to be put up on a course website.
- Insert references (citations) of bibliographic sources in a variety of formats with ease. For example, you can insert a reference to a particular paper you read into the latex file or MS Word document you are editing.
- Keep track of books, journals, etc borrowed from your personal collection.
- Create annotated RefLinks between any type of records.
- Each record can be associated with comments/annotations. Separate Note records can also be maintained.
- Easy import and export of records, facilating seamless sharing of data between persons. For example, a grad student can send some interesting RefKeep records in his collection to his advisor through email.
- In the future: Integration with a research project management system, course grading system, access RefCollections over the internet, Use/Import existing bibtex citation repositories.
Enhancements:
- Fixed Import/Export bug (Null pointer exception when no paper source files involved in Export)
- Fixed bug in Saving RefCollections (entities like & in RefCollection details are okay now)
- Fixed bug in Import (If you cancel the Save required while importing records into a brand new (previously un saved) RefCollection, the Import process also aborts)
- Reduced Splash Screen display time from 10 seconds to 4 seconds.
- Fixed bug in saving RefCollections with filenames containing .s
- Fixed bug while un-choosing Source, Authors etc.
<<lessRefKeep is software targeted at teachers, students, and researchers -- people who read and manage a large number of books, journals, magazines, and papers regularly.
It is a tool to manage ones research and other bibliographic information.
Main features:
- Organize and maintain bibliographic information (books, journals, series, papers etc) in the form of RefCollections.
- Search your bibliographic information with ease.
- Generate Reference lists in various formats (HTML, plain text, custom defined formats). For example, a professor can generate easily generate a list of references to be put up on a course website.
- Insert references (citations) of bibliographic sources in a variety of formats with ease. For example, you can insert a reference to a particular paper you read into the latex file or MS Word document you are editing.
- Keep track of books, journals, etc borrowed from your personal collection.
- Create annotated RefLinks between any type of records.
- Each record can be associated with comments/annotations. Separate Note records can also be maintained.
- Easy import and export of records, facilating seamless sharing of data between persons. For example, a grad student can send some interesting RefKeep records in his collection to his advisor through email.
- In the future: Integration with a research project management system, course grading system, access RefCollections over the internet, Use/Import existing bibtex citation repositories.
Enhancements:
- Fixed Import/Export bug (Null pointer exception when no paper source files involved in Export)
- Fixed bug in Saving RefCollections (entities like & in RefCollection details are okay now)
- Fixed bug in Import (If you cancel the Save required while importing records into a brand new (previously un saved) RefCollection, the Import process also aborts)
- Reduced Splash Screen display time from 10 seconds to 4 seconds.
- Fixed bug in saving RefCollections with filenames containing .s
- Fixed bug while un-choosing Source, Authors etc.
Download (1.2MB)
Added: 2006-10-24 License: GPL (GNU General Public License) Price:
1096 downloads
The Frink Language 2007-08-04
The Frink Language is a calculating tool and programming language. more>>
Frink is a practical calculating tool and programming language designed to help us all to better understand the world around us, to help us get calculations right without getting bogged down in the mechanics, and to make a tool thats really useful in the real world.
Perhaps youll get the best idea of what Frink can do if you skip down to the Sample Calculations further on this document. Come back up to the top when youre done.
Frink language was named after one of my personal heroes, and great scientists of our time, the brilliant Professor John Frink.
Main features:
- Tracks units of measure (feet, meters, tons, dollars, watts, etc.) through all calculations and allows you to add, subtract, multiply, and divide them effortlessly, and makes sure the answer comes out correct, even if you mix units like gallons and liters.
- Arbitrary-precision math, including huge integers and floating-point numbers, rational numbers (that is, fractions like 1/3 are kept without loss of precision,) and complex numbers.
- Advanced mathematical functions including trigonometric functions (even for complex numbers,) factoring and primality testing, and base conversions.
- Unit Conversion between thousands of unit types with a huge built-in data file.
- Date/time math (add offsets to dates, find out intervals between times,) timezone conversions, and user-modifiable date formats.
- Translates between several human languages, including English, French, German, Spanish, Portuguese, Dutch, Korean, Japanese, Russian, Chinese, Swedish, and Arabic.
- Calculates historical buying power of the U.S. dollar and British pound.
- Calculates exchange rates between most of the worlds currencies.
- Powerful Perl-like regular expression capabilities and text processing.
- Supports Unicode throughout, allowing processing of almost all of the worlds languages.
- Reads HTTP and FTP-based URLs as easily as reading local files, allowing fetching of live web-based data.
- Runs on most major operating systems (anything with Java 1.1 or later,) as an applet, through a web-based interface, on a wireless Palm VII, on an HDML- or WML-based webphone, and on many mobile phones and hand-held devices.
- Installs itself on your system in seconds using Java Web Start and automatically keeps itself updated when new versions of Frink are released.
- Runs with a Graphical User Interface (both Swing and AWT) or a command-line interface.
- User interface has a Programming Mode which allows you to write, edit, save, and run extremely powerful programs even on a handheld device.
- Powers Frink Server Pages, a system for providing dynamic web pages powered by Frink.
- Frink is a full-fledged programming language with arrays, dictionaries, functions, loops, even object-oriented programming and self-evaluation.
- Frink allows Object-Oriented Programming, which allows you to create complex data structures that are still easy to use.
- Java Introspection layer allows you to call any Java code from within Frink.
- Frink can also be embedded in a Java program, giving your Java programs all the power of Frink.
- Did I mention its free? If you find it useful, please donate something. Id really appreciate it!
Enhancements:
- This release fixes a problem in break statements that might lead to a "Break statement used outside a loop" error.
<<lessPerhaps youll get the best idea of what Frink can do if you skip down to the Sample Calculations further on this document. Come back up to the top when youre done.
Frink language was named after one of my personal heroes, and great scientists of our time, the brilliant Professor John Frink.
Main features:
- Tracks units of measure (feet, meters, tons, dollars, watts, etc.) through all calculations and allows you to add, subtract, multiply, and divide them effortlessly, and makes sure the answer comes out correct, even if you mix units like gallons and liters.
- Arbitrary-precision math, including huge integers and floating-point numbers, rational numbers (that is, fractions like 1/3 are kept without loss of precision,) and complex numbers.
- Advanced mathematical functions including trigonometric functions (even for complex numbers,) factoring and primality testing, and base conversions.
- Unit Conversion between thousands of unit types with a huge built-in data file.
- Date/time math (add offsets to dates, find out intervals between times,) timezone conversions, and user-modifiable date formats.
- Translates between several human languages, including English, French, German, Spanish, Portuguese, Dutch, Korean, Japanese, Russian, Chinese, Swedish, and Arabic.
- Calculates historical buying power of the U.S. dollar and British pound.
- Calculates exchange rates between most of the worlds currencies.
- Powerful Perl-like regular expression capabilities and text processing.
- Supports Unicode throughout, allowing processing of almost all of the worlds languages.
- Reads HTTP and FTP-based URLs as easily as reading local files, allowing fetching of live web-based data.
- Runs on most major operating systems (anything with Java 1.1 or later,) as an applet, through a web-based interface, on a wireless Palm VII, on an HDML- or WML-based webphone, and on many mobile phones and hand-held devices.
- Installs itself on your system in seconds using Java Web Start and automatically keeps itself updated when new versions of Frink are released.
- Runs with a Graphical User Interface (both Swing and AWT) or a command-line interface.
- User interface has a Programming Mode which allows you to write, edit, save, and run extremely powerful programs even on a handheld device.
- Powers Frink Server Pages, a system for providing dynamic web pages powered by Frink.
- Frink is a full-fledged programming language with arrays, dictionaries, functions, loops, even object-oriented programming and self-evaluation.
- Frink allows Object-Oriented Programming, which allows you to create complex data structures that are still easy to use.
- Java Introspection layer allows you to call any Java code from within Frink.
- Frink can also be embedded in a Java program, giving your Java programs all the power of Frink.
- Did I mention its free? If you find it useful, please donate something. Id really appreciate it!
Enhancements:
- This release fixes a problem in break statements that might lead to a "Break statement used outside a loop" error.
Download (0.63MB)
Added: 2007-08-06 License: Other/Proprietary License Price:
809 downloads
jSVR 0.5 Beta
jSVR is a java implementation of a semi-automatic process for identifying and exporting three-dimensional information. more>>
jSVR is a java implementation of a semi-automatic process for identifying and exporting three-dimensional information from a single un-calibrated image. The project is based on previous publications of A. Criminisi, A. Zisserman and others. svrIn the section "svr theory" there is a brief presentation of the principals behind single view reconstruction, using perspective information of an image.
jSVR was originally developed as my degree project in the computer science department of the university of Crete, in 2004. Most of the initial work was done in the CVRL lab of ics-forth, under the supervision of professors A. Argyros and M. Lourakis. Many documents in this site come from my report on svr, and where initially converted from latex using latex2html and then modified. If you find any broken links or other problems please let me know.
I recently decided to try and continue that work, as an open source project.
Single View reconstruction is a technique that can have various applications in different areas of interest. From acquiring metric information from low quality images, to reconstructing scenes from paintings. The process of reconstructing an image is semi-automated and can be really tricky for the user, who is requested to define and/or fine tune a set of difficult to understand parameters, (see the "svr theory" section for some examples).
Depending on the goal, the demands to the reconstruction technique differ. In the original work the goal was to test the proposed methodology in the relevant literature and to implement the techniques into an application that could reconstruct an image. The new goal of svr is to provide a user-friendly and intuitive way for reconstructing images, as well as to improve the existing implementation to produce better results. Determining the correct vanishing points with an automatic algorithm would be a great improvement to the whole process.
One step towards this direction would be an MLE estimation for the best intersection point. Also it is probable that suitable heuristics could be used to exclude intersections (false vanishing points) in areas that vanishing points are not expected (i.e. the center of the image). In order to exclude as many false VP detections as possible, appropriate filters could be applied on the image before the reconstruction (i.e. noise reduction, removing the radial distortion, and sharpen edges).
The phase of manual reconstruction could also be made semi-automatic by implementing object identification algorithms. This would help by automatically identifying the bigger structures in the image (i.e the vertical planes). In addition smaller structures can be interactively traced. This would also allow better texture extraction from the objects in the image.
<<lessjSVR was originally developed as my degree project in the computer science department of the university of Crete, in 2004. Most of the initial work was done in the CVRL lab of ics-forth, under the supervision of professors A. Argyros and M. Lourakis. Many documents in this site come from my report on svr, and where initially converted from latex using latex2html and then modified. If you find any broken links or other problems please let me know.
I recently decided to try and continue that work, as an open source project.
Single View reconstruction is a technique that can have various applications in different areas of interest. From acquiring metric information from low quality images, to reconstructing scenes from paintings. The process of reconstructing an image is semi-automated and can be really tricky for the user, who is requested to define and/or fine tune a set of difficult to understand parameters, (see the "svr theory" section for some examples).
Depending on the goal, the demands to the reconstruction technique differ. In the original work the goal was to test the proposed methodology in the relevant literature and to implement the techniques into an application that could reconstruct an image. The new goal of svr is to provide a user-friendly and intuitive way for reconstructing images, as well as to improve the existing implementation to produce better results. Determining the correct vanishing points with an automatic algorithm would be a great improvement to the whole process.
One step towards this direction would be an MLE estimation for the best intersection point. Also it is probable that suitable heuristics could be used to exclude intersections (false vanishing points) in areas that vanishing points are not expected (i.e. the center of the image). In order to exclude as many false VP detections as possible, appropriate filters could be applied on the image before the reconstruction (i.e. noise reduction, removing the radial distortion, and sharpen edges).
The phase of manual reconstruction could also be made semi-automatic by implementing object identification algorithms. This would help by automatically identifying the bigger structures in the image (i.e the vertical planes). In addition smaller structures can be interactively traced. This would also allow better texture extraction from the objects in the image.
Download (1.3MB)
Added: 2007-03-14 License: GPL (GNU General Public License) Price:
954 downloads
perltoot 5.8.8
perltoot is Toms object-oriented tutorial for perl. more>>
perltoot is Toms object-oriented tutorial for perl.
Object-oriented programming is a big seller these days. Some managers would rather have objects than sliced bread. Why is that? Whats so special about an object? Just what is an object anyway?
An object is nothing but a way of tucking away complex behaviours into a neat little easy-to-use bundle. (This is what professors call abstraction.) Smart people who have nothing to do but sit around for weeks on end figuring out really hard problems make these nifty objects that even regular people can use. (This is what professors call software reuse.) Users (well, programmers) can play with this little bundle all they want, but they arent to open it up and mess with the insides. Just like an expensive piece of hardware, the contract says that you void the warranty if you muck with the cover. So dont do that.
The heart of objects is the class, a protected little private namespace full of data and functions. A class is a set of related routines that addresses some problem area. You can think of it as a user-defined type. The Perl package mechanism, also used for more traditional modules, is used for class modules as well. Objects "live" in a class, meaning that they belong to some package.
More often than not, the class provides the user with little bundles. These bundles are objects. They know whose class they belong to, and how to behave. Users ask the class to do something, like "give me an object." Or they can ask one of these objects to do something. Asking a class to do something for you is calling a class method. Asking an object to do something for you is calling an object method. Asking either a class (usually) or an object (sometimes) to give you back an object is calling a constructor, which is just a kind of method.
Thats all well and good, but how is an object different from any other Perl data type? Just what is an object really; that is, whats its fundamental type? The answer to the first question is easy. An object is different from any other data type in Perl in one and only one way: you may dereference it using not merely string or numeric subscripts as with simple arrays and hashes, but with named subroutine calls. In a word, with methods.
The answer to the second question is that its a reference, and not just any reference, mind you, but one whose referent has been bless()ed into a particular class (read: package). What kind of reference? Well, the answer to that one is a bit less concrete. Thats because in Perl the designer of the class can employ any sort of reference theyd like as the underlying intrinsic data type. It could be a scalar, an array, or a hash reference. It could even be a code reference. But because of its inherent flexibility, an object is usually a hash reference.
<<lessObject-oriented programming is a big seller these days. Some managers would rather have objects than sliced bread. Why is that? Whats so special about an object? Just what is an object anyway?
An object is nothing but a way of tucking away complex behaviours into a neat little easy-to-use bundle. (This is what professors call abstraction.) Smart people who have nothing to do but sit around for weeks on end figuring out really hard problems make these nifty objects that even regular people can use. (This is what professors call software reuse.) Users (well, programmers) can play with this little bundle all they want, but they arent to open it up and mess with the insides. Just like an expensive piece of hardware, the contract says that you void the warranty if you muck with the cover. So dont do that.
The heart of objects is the class, a protected little private namespace full of data and functions. A class is a set of related routines that addresses some problem area. You can think of it as a user-defined type. The Perl package mechanism, also used for more traditional modules, is used for class modules as well. Objects "live" in a class, meaning that they belong to some package.
More often than not, the class provides the user with little bundles. These bundles are objects. They know whose class they belong to, and how to behave. Users ask the class to do something, like "give me an object." Or they can ask one of these objects to do something. Asking a class to do something for you is calling a class method. Asking an object to do something for you is calling an object method. Asking either a class (usually) or an object (sometimes) to give you back an object is calling a constructor, which is just a kind of method.
Thats all well and good, but how is an object different from any other Perl data type? Just what is an object really; that is, whats its fundamental type? The answer to the first question is easy. An object is different from any other data type in Perl in one and only one way: you may dereference it using not merely string or numeric subscripts as with simple arrays and hashes, but with named subroutine calls. In a word, with methods.
The answer to the second question is that its a reference, and not just any reference, mind you, but one whose referent has been bless()ed into a particular class (read: package). What kind of reference? Well, the answer to that one is a bit less concrete. Thats because in Perl the designer of the class can employ any sort of reference theyd like as the underlying intrinsic data type. It could be a scalar, an array, or a hash reference. It could even be a code reference. But because of its inherent flexibility, an object is usually a hash reference.
Download (12.2MB)
Added: 2007-06-20 License: Perl Artistic License Price:
857 downloads
mrtg-select 1.0
mrtg-select allows the flexible display of MRTG graphs, chosen by keyword and time span. more>>
mrtg-select allows the flexible display of MRTG graphs, chosen by keyword and time span.
I use MRTG to graph all kinds of stuff, and looking at those graphs on the same page helps me detect correlations. ("Say, Professor -- that spike in CPU temperature came right when the Rapture Index hit a three-year high!")
mrtg-select lets me pick a subset of graphs to be displayed on the same page, based on keyword and time span.
And the best part is that it figures out the keywords automagically just by being pointed at the directory where the graphs live -- theres no config file to update. Licensed under the GPL.
<<lessI use MRTG to graph all kinds of stuff, and looking at those graphs on the same page helps me detect correlations. ("Say, Professor -- that spike in CPU temperature came right when the Rapture Index hit a three-year high!")
mrtg-select lets me pick a subset of graphs to be displayed on the same page, based on keyword and time span.
And the best part is that it figures out the keywords automagically just by being pointed at the directory where the graphs live -- theres no config file to update. Licensed under the GPL.
Download (0.002MB)
Added: 2005-11-16 License: GPL (GNU General Public License) Price:
1440 downloads
Hessian GTK 0.40
Hessian GTK calculates the local minimum/maximum/saddle point of a second grade math function. more>>
Hessian GTK calculates the local minimum/maximum/saddle point of a second grade math function.
Hessian is a math program that lets you find out the local minimum / maximum / saddle point of a second grade function, using the hessian matrix method. It also uses gnuplot to draw a nice graph.
I started this project as a schoolwork for Paolo Coacci, professor of Math at ITC Federico Cesi.
The software is coded in C/GTK, and it allows to find out the local minimum and maximum of a second grade function using the Hessian matrix method.
The software is released with the GPL license.
<<lessHessian is a math program that lets you find out the local minimum / maximum / saddle point of a second grade function, using the hessian matrix method. It also uses gnuplot to draw a nice graph.
I started this project as a schoolwork for Paolo Coacci, professor of Math at ITC Federico Cesi.
The software is coded in C/GTK, and it allows to find out the local minimum and maximum of a second grade function using the Hessian matrix method.
The software is released with the GPL license.
Download (0.060MB)
Added: 2005-11-28 License: GPL (GNU General Public License) Price:
1425 downloads
jNetStream 0.2.4
jNetStream is a sniffer and a protocol analyzer. more>>
jNetStream is a protocol analyzer and a sniffer. A set of applications and complete Java library are provided with a comprehensive API.
Hundreds of protocols have been defined, and the list can be expanded with a simple NPL language. It is appropriate for custom protocol development, grad students, and network teachers/professors.
Supplied applications provide all of the common functionality you may expect from a packet sniffer:
*) slydecoder - a packet decoder that is extremely flexible.
-> group packets by flows (-g option).
i.e. TCP stream will be grouped into a flow
-> you have the option to supply your own protocol definitions
-> decode multiple files at once
-> decode different types of capture files at once
-> most powerful filter engine available
*) slycopy - capture (or trace) file manipulator
-> merge multiple capture files into single output file
-> merge multiple capture files even if they are of different types
-> apply filters during the manipulation
-> In the future you will be able to modify packets during copy
(i.e. remove a specific header from packets such as decapsulate VLANs)
*) Also you can execute both of these applications using java runtime
environment like this:
-> java -jar JNetStream.jar
com.voytechs.jnetstream.tools.SlyDecoder
-> java -jar JNetStream.jar
com.voytechs.jnetstream.tools.SlyCopy
Or shorthand for SlyDecoder using the default main class:
-> java -jar JNetStream.jar
Note: /opt/jnetstream directory is the default installation directory, if you install JNetStream into a different directory adjust the base dir name appropriately.
Enhancements:
- This release introduces a number of new features and bugfixes.
- NPL protocol definitions are now only loaded on demand and allow user-definable binding overrides.
- New packet counting options have been added which run under several different models, including a statistical model.
- Packets can be counted in very large, multi-gig files quickly.
- Lots of logging (Apache CommonsLogging and Log4j) has been added.
<<lessHundreds of protocols have been defined, and the list can be expanded with a simple NPL language. It is appropriate for custom protocol development, grad students, and network teachers/professors.
Supplied applications provide all of the common functionality you may expect from a packet sniffer:
*) slydecoder - a packet decoder that is extremely flexible.
-> group packets by flows (-g option).
i.e. TCP stream will be grouped into a flow
-> you have the option to supply your own protocol definitions
-> decode multiple files at once
-> decode different types of capture files at once
-> most powerful filter engine available
*) slycopy - capture (or trace) file manipulator
-> merge multiple capture files into single output file
-> merge multiple capture files even if they are of different types
-> apply filters during the manipulation
-> In the future you will be able to modify packets during copy
(i.e. remove a specific header from packets such as decapsulate VLANs)
*) Also you can execute both of these applications using java runtime
environment like this:
-> java -jar JNetStream.jar
com.voytechs.jnetstream.tools.SlyDecoder
-> java -jar JNetStream.jar
com.voytechs.jnetstream.tools.SlyCopy
Or shorthand for SlyDecoder using the default main class:
-> java -jar JNetStream.jar
Note: /opt/jnetstream directory is the default installation directory, if you install JNetStream into a different directory adjust the base dir name appropriately.
Enhancements:
- This release introduces a number of new features and bugfixes.
- NPL protocol definitions are now only loaded on demand and allow user-definable binding overrides.
- New packet counting options have been added which run under several different models, including a statistical model.
- Packets can be counted in very large, multi-gig files quickly.
- Lots of logging (Apache CommonsLogging and Log4j) has been added.
Download (0.46MB)
Added: 2006-04-28 License: LGPL (GNU Lesser General Public License) Price:
1279 downloads
Systems of Ordinary Differential Equations 13 (RubySode)
Systems of Ordinary Differential Equations RubySode is a Ruby program to generate a Ruby program to solve ordinary equations. more>>
Systems of Ordinary Differential Equations RubySode (Sode.rb) is a Ruby program to generate a Ruby program to solve a single (or a system of) ordinary differential equation(s). A long Taylor series method, pioneered by Prof. Y.F. Chang, who taught at the University of Nebraska in the late 1970s when I was a graduate student there, is used.
The number of Taylor series terms can be specified in the problem file, though it is usually 30.
Enhancements:
- Minir code cleanup. Some tests have been made more meaningful (add, sub, mult, and div).
<<lessThe number of Taylor series terms can be specified in the problem file, though it is usually 30.
Enhancements:
- Minir code cleanup. Some tests have been made more meaningful (add, sub, mult, and div).
Download (0.36MB)
Added: 2007-05-31 License: GPL (GNU General Public License) Price:
877 downloads
Other version of Systems of Ordinary Differential Equations
License:GPL (GNU General Public License)
beyond 1.3
beyond is a driver for the multimedia installation for Prof. Jill Scotts Beyond Hierarchy (Dortmund, Zeche Zollern). more>>
beyond is a driver for the multimedia installation for Prof. Jill Scotts "Beyond Hierarchy" (Dortmund, Zeche Zollern, Summer 2000).
<<less Download (0.051MB)
Added: 2006-06-05 License: GPL (GNU General Public License) Price:
1236 downloads
Games::Battleship 0.05
Games::Battleship - You sunk my battleship! more>>
Games::Battleship - "You sunk my battleship!"
SYNOPSIS
use Games::Battleship;
$g = Games::Battleship->new(qw( Gene Aeryk ));
$g->add_player(Stephanie);
$winner = $g->play();
print $winner->name(), " wins!n";
@player_objects = @{ $g->players };
$player_obj = $g->player(Professor Snape);
A Games::Battleship object represents a battleship game between players. Each has a fleet of vessles and operates with a pair of playing grids One is for their own fleet and one for where the enemy has been seen.
Everything is an object with default but mutable attributes. This way games can have two or more players each with a single fleet of custom vessles. These vessles are pretty simple and standard right now...
A game can be played with the handy play() method or for finer control, use individual methods of the Games::Battleship::* modules. See the distribution test script for working code examples.
<<lessSYNOPSIS
use Games::Battleship;
$g = Games::Battleship->new(qw( Gene Aeryk ));
$g->add_player(Stephanie);
$winner = $g->play();
print $winner->name(), " wins!n";
@player_objects = @{ $g->players };
$player_obj = $g->player(Professor Snape);
A Games::Battleship object represents a battleship game between players. Each has a fleet of vessles and operates with a pair of playing grids One is for their own fleet and one for where the enemy has been seen.
Everything is an object with default but mutable attributes. This way games can have two or more players each with a single fleet of custom vessles. These vessles are pretty simple and standard right now...
A game can be played with the handy play() method or for finer control, use individual methods of the Games::Battleship::* modules. See the distribution test script for working code examples.
Download (0.010MB)
Added: 2006-12-27 License: Perl Artistic License Price:
1035 downloads
fortune-mod-powerpuff 0.3
fortune-mod-powerpuff project consists of fortune cookies from the Power Puff Girls. more>>
fortune-mod-powerpuff project consists of fortune cookies from the Power Puff Girls.
fortune-mod-powerpuff is a compilation of quotes from the Cartoon Network series "Power Puff Girls". The quotes have been compiled from various sources on the Web.
Examples:
Narrator: Sugar .. Spice .. and everything Nice
These are the ingredients to the perfect little girl.
But Professor Utonium accidentally added one ingredient to the
concoction: Chemical X
Thus, the Powerpuff Girls were born. Using their ultra superpowers,
Blossom, Bubbles, and Buttercup have dedicated their lives to
fighting crime and the forces of evil!
Blossom: Oh ... um ... excuse me, Mr. Zombie, sir.
Abracadaver: Wha.?
Blossom: Could you stop destroying Townsville with your evil zombie magic?
Bubbles, Buttercup: Please?
Slug: Fashionably late again, I see. So fashionable you missed the party.
<<lessfortune-mod-powerpuff is a compilation of quotes from the Cartoon Network series "Power Puff Girls". The quotes have been compiled from various sources on the Web.
Examples:
Narrator: Sugar .. Spice .. and everything Nice
These are the ingredients to the perfect little girl.
But Professor Utonium accidentally added one ingredient to the
concoction: Chemical X
Thus, the Powerpuff Girls were born. Using their ultra superpowers,
Blossom, Bubbles, and Buttercup have dedicated their lives to
fighting crime and the forces of evil!
Blossom: Oh ... um ... excuse me, Mr. Zombie, sir.
Abracadaver: Wha.?
Blossom: Could you stop destroying Townsville with your evil zombie magic?
Bubbles, Buttercup: Please?
Slug: Fashionably late again, I see. So fashionable you missed the party.
Download (0.016MB)
Added: 2006-12-13 License: GPL (GNU General Public License) Price:
1051 downloads
StreamCruncher 2.1 RC
StreamCruncher is an Event Processor. more>>
StreamCruncher is an Event Processor. The project supports a language based on SQL which allows you to define Event Processing constructs like Sliding Windows, Time Based Windows, Partitions and Aggregates.
Queries can be written using this language, which are used to monitor streams of incoming Events. StreamCruncher is a multi-threaded Kernel that runs on Java.
Ever since RFID became commercially viable and companies started packaging their entire product line as Business Activity Monitoring Stacks, an old idea that has been around for almost a decade is now seeing the light of day. A handful of Startups have begun turning this Idea of Complex Event Processing (CEP) and Event Stream Processing (ESP) into Commercial grade software. Several people have contributed ideas to this field. The most frequently mentioned name would be Prof. Luckhams. Prof. Widoms contribution to the field is also noteworthy.
Those in a hurry can skip to this section.
Now, back to CEP and ESP. An over-simplified definition would probably look like this - Assume that a System produces "Events" that describe the state of that System at those instants. Slicing and Dicing the "live" Stream of Events (in near real-time) can reveal vital information. Since this information is available on the live data and not stale data, it can be used to look for Warning signs, implement JIT materials sourcing, Automated Trading and other highly nimble systems.
Events from multiple sources can be co-related to reveal information about their interactions and dependencies. CEP and ESP are not exactly the same, but well leave that to the Scholarly Papers to disambiguate. All this does not seem new at all to people whove been working on Control Systems. Data Warehouse specialists and Rule Engine experts might start mumbling something about "Old Wine..".
However, only lately are we seeing generic, off-the-shelf Software focusing on CEP and ESP. Each one of those Products or Projects distinguish themselves in Performance (Real-time, Soft Real-time), Ease of Integration (Features, Mild to Steep Learning Curves, Manageability), Speciality (Automated Trading Platforms) or General purpose stacks etc. Or, perhaps all of them, to varying degrees.
For a Program to continually Slice and Dice an Event Stream and thereby, discern/infer something useful about the state of the System before it goes stale, requires a variety of Technologies to converge. Weve been using SQL to handle Transactional Data stored in Databases, Data Warehouses to analyse Terrabytes of Offline data, Rule Engines to infer from a large collection of constantly changing Facts.
ESP and CEP Systems provide building blocks using which Users can build an intelligent System, with active feedback. All CEP and ESP Systems provide a mechanism by which Queries/Conditions/Criteria can be provided that are constantly evaluated against the Event Stream. Some systems provide drag-n-drop GUIs to specify such "Queries", while some have their own proprietary Query syntax. In essence, they provide a Domain Specific Language to encode such Queries/Rules, a facility to pump Events into the System and a way to channel the Output Stream to do something useful.
Enhancements:
- The pre-filter for input event streams now supports , !=, =, *, /, +, -, "in (..)", "not in (..)", "and", and "or".
- The "in" clause can refer to an SQL sub-query.
- Such sub-queries are cached by the kernel to improve performance.
- An additional property, cacherefresh.threads.num, can be configured to specify the number of sub-query cache processing threads to use.
- Two new test cases have been added to test the new features: H2StartupShutdown3Test and ThreeEventOrderTest.
<<lessQueries can be written using this language, which are used to monitor streams of incoming Events. StreamCruncher is a multi-threaded Kernel that runs on Java.
Ever since RFID became commercially viable and companies started packaging their entire product line as Business Activity Monitoring Stacks, an old idea that has been around for almost a decade is now seeing the light of day. A handful of Startups have begun turning this Idea of Complex Event Processing (CEP) and Event Stream Processing (ESP) into Commercial grade software. Several people have contributed ideas to this field. The most frequently mentioned name would be Prof. Luckhams. Prof. Widoms contribution to the field is also noteworthy.
Those in a hurry can skip to this section.
Now, back to CEP and ESP. An over-simplified definition would probably look like this - Assume that a System produces "Events" that describe the state of that System at those instants. Slicing and Dicing the "live" Stream of Events (in near real-time) can reveal vital information. Since this information is available on the live data and not stale data, it can be used to look for Warning signs, implement JIT materials sourcing, Automated Trading and other highly nimble systems.
Events from multiple sources can be co-related to reveal information about their interactions and dependencies. CEP and ESP are not exactly the same, but well leave that to the Scholarly Papers to disambiguate. All this does not seem new at all to people whove been working on Control Systems. Data Warehouse specialists and Rule Engine experts might start mumbling something about "Old Wine..".
However, only lately are we seeing generic, off-the-shelf Software focusing on CEP and ESP. Each one of those Products or Projects distinguish themselves in Performance (Real-time, Soft Real-time), Ease of Integration (Features, Mild to Steep Learning Curves, Manageability), Speciality (Automated Trading Platforms) or General purpose stacks etc. Or, perhaps all of them, to varying degrees.
For a Program to continually Slice and Dice an Event Stream and thereby, discern/infer something useful about the state of the System before it goes stale, requires a variety of Technologies to converge. Weve been using SQL to handle Transactional Data stored in Databases, Data Warehouses to analyse Terrabytes of Offline data, Rule Engines to infer from a large collection of constantly changing Facts.
ESP and CEP Systems provide building blocks using which Users can build an intelligent System, with active feedback. All CEP and ESP Systems provide a mechanism by which Queries/Conditions/Criteria can be provided that are constantly evaluated against the Event Stream. Some systems provide drag-n-drop GUIs to specify such "Queries", while some have their own proprietary Query syntax. In essence, they provide a Domain Specific Language to encode such Queries/Rules, a facility to pump Events into the System and a way to channel the Output Stream to do something useful.
Enhancements:
- The pre-filter for input event streams now supports , !=, =, *, /, +, -, "in (..)", "not in (..)", "and", and "or".
- The "in" clause can refer to an SQL sub-query.
- Such sub-queries are cached by the kernel to improve performance.
- An additional property, cacherefresh.threads.num, can be configured to specify the number of sub-query cache processing threads to use.
- Two new test cases have been added to test the new features: H2StartupShutdown3Test and ThreeEventOrderTest.
Download (3.9MB)
Added: 2007-07-19 License: Freeware Price:
828 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 professor fizzwizzle 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