native american
JavaNativeCompiler 1.1.1
JavaNativeCompiler (JNC) is a Java to native compiler. more>>
This is especially useful when applications have to be deployed to end-users. All vexatious problems of deploying Java applications can be solved by compiling them to native. They will be:
- Easy to deploy
No JRE dependency. Most end-users dont know what they have installed.
No more problems on how to create an executable file out of a JAR or class file.
- Hard to decompile
Java can easily be decompiled. Native compilation will protect your source code.
- Run fast from the start
No more overhead for loading a JRE.
Enhancements:
- This release fixes a couple of problems with AWT/Swing and XML.
- It also once again contains a version for Linux.
- The compiler binary downloads are smaller.
Nemesis Pascal 0.1
Nemesis Pascal is an Pascal interpreter. more>>
Free
Open Source (GPL)
Cross-platform (currently Windows and Linux)
Nemesis Pascal is written in Delphi and Kylix. Borland CLX libraries supplies the cross-platform features.
The Nemesis Pascal applications runs on Windows using native controls, and Linux using the CLX Library (a binding to Qt Trolltech).
Exemple:
unit test1;
interface
implementation
procedure main;
begin
ShowMessage(Hello World!);
end;
end.
Data::SecsPack 0.06
Data::SecsPack is a Perl module pack and unpack numbers in accordance with SEMI E5-94. more>>
SYNOPSIS
#####
# Subroutine interface
#
use Data::SecsPack qw(bytes2int config float2binary
ifloat2binary int2bytes
pack_float pack_int pack_num
str2float str2int
unpack_float unpack_int unpack_num);
$big_integer = bytes2int( @bytes );
$old_value = config( $option );
$old_value = config( $option => $new_value);
($binary_magnitude, $binary_exponent) = float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = ifloat2binary($imagnitude, $iexponent, @options);
@bytes = int2bytes( $big_integer );
($format, $floats) = pack_float($format, @string_floats, [@options]);
($format, $integers) = pack_int($format, @string_integers, [@options]);
($format, $numbers, @string) = pack_num($format, @strings, [@options]);
$float = str2float($string, [@options]);
(@strings, @floats) = str2float(@strings, [@options]);
$integer = str2int($string, [@options]);
(@strings, @integers) = str2int(@strings, [@options]);
@ingegers = unpack_int($format, $integer_string, @options);
@floats = unpack_float($format, $float_string, @options);
@numbers = unpack_num($format, $number_string), @options;
#####
# Class, Object interface
#
# For class interface, use Data::SecsPack instead of $self
#
use Data::SecsPack;
$secspack = Data::SecsPack; # uses built-in config object
$secspack = new Data::SecsPack(@options);
$big_integer = bytes2int( @bytes );
($binary_magnitude, $binary_exponent) = $secspack->float2binary($magnitude, $exponent, @options);
($binary_magnitude, $binary_exponent) = $secspack->ifloat2binary($imagnitude, $iexponent, @options);
@bytes = $secspack->int2bytes( $big_integer );
($format, $floats) = $secspack->pack_float($format, @string_integers, [@options]);
($format, $integers) = $secspack->pack_int($format, @string_integers, [@options]);
($format, $numbers, @strings) = $secspack->pack_num($format, @strings, [@options]);
$integer = $secspack->str2int($string, [@options])
(@strings, @integers) = $secspack->str2int(@strings, [@options]);
$float = $secspack->str2float($string, [@options]);
(@strings, @floats) = $secspack->str2float(@strings, [@options]);
@ingegers = $secspack->unpack_int($format, $integer_string, @options);
@floats = $secspack->unpack_float($format, $float_string, @options);
@numbers = $secspack->unpack_num($format, $number_string, @options);
Generally, if a subroutine will process a list of options, @options, that subroutine will also process an array reference, @options, [@options], or hash reference, %options, {@options}. If a subroutine will process an array reference, @options, [@options], that subroutine will also process a hash reference, %options, {@options}. See the description for a subroutine for details and exceptions.
The subroutines in the Data::SecsPack module packs and unpacks numbers in accordance with SEMI E5-94. The E5-94 establishes the standard for communication between the equipment used to fabricate semiconductors and the host computer that controls the fabrication. The equipment in a semiconductor factory (fab) or any other fab contains every conceivable known microprocessor and operating system known to man. And there are a lot of specialize real-time embedded processors and speciallize real-time embedded operating systems in addition to the those in the PC world.
The communcication between host and equipment used packed nested list data structures that include arrays of characters, integers and floats. The standard has been in place and widely used in China, Germany, Korea, Japan, France, Italy and the most remote corners on this planent for decades. The basic data structure and packed data formats have not changed for decades.
This stands in direct contradiction to the common conceptions of many in the Perl community and most other communities. The following quote is taken from page 761, Programming Perl third edition, discussing the pack subroutine:
"Floating-point numbers are in the native machine format only. Because of the variety of floating format and lack of a standard "network" represenation, no facility for interchange has been made. This means that packed floating-point data written on one machine may not be readable on another. That is a problem even when both machines use IEEE floating-point arithmetic, because the endian-ness of memory representation is not part of the IEEE spec."
There are a lot of things that go over the net that have industry or military standards but no RFCs. So unless you dig them out, you will never know they exist. While RFC and military standards may be freely copyied, industry standards are usually copyrighted. This means if you want to read the standard, you have to pay whatever the market bears. ISO standards, SEMI stardards, American National Standards, IEEE standards beside being boring are expensive. In other words, you do not see them flying out the door at the local Barnes and Nobles. In fact, you will not even find them inside the door.
It very easy to run these non RFC standard protocols over the net. Out of 64,000 ports, pick a port of opportunity (hopefully not one of those low RFC preassigned ports) and configure the equipment and host to the same IP and port. Many times the software will allow a remote console that is watch only. The watch console may even be a web server on port 80. If there is a remote soft console, you can call up or e-mail the equipment manufacturers engineer in say Glouster, MA, USA and tell him the IP and port so he can watch his manchine mangle a cassette of wafers with a potential retail value of half million dollars.
SEMI E5-94 and their precessors do standardize the endian-ness of floating point, the packing of nested data, used in many programming languages, and much, much more. The endian-ness of SEMI E5-94 is the first MSB byte, floats sign bit first. Maybe this is because it makes it easy to spot numbers in a packed data structure.
The nested data has many performance advantages over the common SQL culture of viewing and representing data as tables. The automated fabs of the world make use of SEMI E5-94 nested data not only for real-time communication (TCP/IP RS-2332 etc) between machines but also for snail-time processing as such things as logs and performance data.
Does this standard communications protocol ensure that everything goes smoothly without any glitches with this wild mixture of hardware and software talking to each other in real time? Of course not. Bytes get reverse. Data gets jumbled from point A to point B. Machine time to test software is non-existance. Big ticket, multi-million dollar fab equipment has to work to earn its keep. And, then there is the everyday business of suiting up, with humblizing hair nets, going through air and other showers with your favorite or not so favorite co-worker just to get into the clean room. And make sure not to do anything that will scatch a wafer with a lot of Intel Pentiums on them. It is totally amazing that the product does get out the door.
Lightweight Java Game Library 1.1.2
Lightweight Java Game Library project is a native binding to OpenGL and OpenAL. more>>
The Lightweight Java Game Library is a native binding for OpenGL and OpenAL written with game developers in mind.
It allows the full OpenGL and OpenAL APIs to be exposed without the penalties associated with competing methods, nor the limitations of APIs such as Java3D.
Tutorials and demos are available, and Windows, Linux, and Mac OS X are supported.
Main features:
- Speed
- Simplicity
- Ubiquity
- Smallness
- Security
- Robustness
- Minimalism
Enhancements:
- Dont allow switching to fullscreen when a custom display mode is in effect. This is a change from before, where the current mode was simply overwritten with the initial (desktop) mode
Native Resolution Fix for Widescreen Monitors 1.0
Native Resolution Fix for Widescreen Monitors is a little script that changes your widescreen monitor resolution in one click. more>>
It couldnt get much more simpler than this little script/command. Anyhow, theres a few apps that would screw up my resolution after they exited and rather than look into it at the moment, I just googled to see if there was a quick command to execute that would change the resolution. So I found it, added that command to my KDE menu, then made a shortcut to it (ctrl + r) so I have a push-button resolution fix, which I recommend you do as its quite handy.
Anyhow, place Native Resolution Fix.desktop on your desktop but DO NOT USE it if you have a monitor with a smaller resolution. Instead, you can edit it and change the resolution to what you like and use the "-r" command to set the hertz, which will use one of the rates set in your xorg.conf.
Enhancements:
- NOTE: Please edit if your monitor doesnt support the 1680x1050 resolution in this script or do not use it.
- I am not responsible if your monitor, in a rare case, gets messed up by you using a resolution in which your monitor cant support.
number 2.30
number is a perl script that will print the English name of a number. more>>
Number prints names in both the American and European naming system. It can also print the decimal expansion of a number in either naming system.
Baghira 0.8
Baghira is a native style for QT/KDE. more>>
The name refers to the Panther of Kiplings famous Jungle Book (German spelling)
You will probably rather know the Disney version...
Basically its a perky imitation of Apples OSX look.
Installation:
tar -xjf baghira.tar.bz2
cd baghira/baghira
./configure --prefix=`kde-config --prefix` --disable-debug [--enable-final]
(!!!BEGINNERS: the direction of the accents is _important_ (top-left to bottom-right), the rectangular brackets mean [this is optional] - dont type them!!!)
make
and finally as root:
make install
NathanCheckers 1.5
NathanCheckers is a graphical, mouse-driven implementation of Checkers. more>>
Known Bugs/Issues
- All versions: It appears that sound support currently requires the game to be run from a writable drive (not a disk image or CD).
- Windows: An extra command prompt window stays open. Runs on Windows 2000, but reportedly you need to minimize and maximize it before you can see the gameboard.
- Linux: Requires PyGame 1.6 or above.
- OS X: No quit menu-item (just close the window). How do you add menu items in PyGame anyway?
Java Platform Invoke API Demo (Linux) 2.01.04
Java Platform Invoke API (Demo version) for Linux, i386. Enables Java code to call native functions implemented in shared libraries like in Microsoft .NET Framework. Written for JSE 1.5.x and later. more>>
Java Platform Invoke API Demo (Linux) - Java Platform Invoke API (Demo version) for Linux/Unix, i386.
Enables Java code to call native functions implemented in shared link libraries like in Microsoft .NET Framework. Written for JSE 1.5.x and later.
Java platform invoke an API that enables Java code to call native functions implemented in shared libraries, such as those in the Linux API. It locates and invokes an exported function and marshals its arguments (integers, strings, arrays, structures, and so on) across the interoperation boundary as needed. This API supports implicit marshaling that makes Java coding with native functions very simple.
To consume a shared library functions you need
1.Identify functions in shared librarys.
Minimally, you must specify the name of the function and name of the the shared library that contains it.
2.Create a class to hold shared library functions.
You can use an existing class, create an individual class for each native function, or create one class that contains a set of related native functions. This class should extend CNativeLibrary. Use the annotation ImportLibrary to bind your class to the native library.
3.Create prototypes in Java code.
Write prototype of a native function as a method with signature that corresponds to the native function using data type map agreement. To identify the native function use the annotation Function. Mark the method with the native modifier.
4.Call a shared library function.
Call the method on your Java class as you would any other Java method. As parameters can be passed structures and implemented in Java callback functions.
Enhancements:
Version 2.01.04
System Requirements:JSE 1.5.x<<less
ndustrix 1.7
ndustrix is the C and LaTeX sources to Notes on the Fractal Analysis of Various Market Segments. more>>
Enhancements:
- This release adds Laplacian density distributed time series simulation.
TransJ 0.1.8
TransJ project is a multilingual desktop translation tool. more>>
It uses SWT for a native look and feel on each OS and a fast UI.
It currently uses the SYSTRAN engine thru the AltaVista BabelFish service.
Supported languages are: English, French, German, Dutch, Italian, Spanish, Russian, Portuguese, Japanese, Chinese, Korean, and others.
There are also plans to implement the Lingvo engine.
Enhancements:
- major 800x600 screen resolution bug fixed
JavaSVN 1.0.6
JavaSVN is a pure Java Subversion client library. more>>
Being a pure Java program, JavaSVN doesnt need any additional configuration or native binaries to work on any OS that runs Java. On this site you will also find instructions on how to make existing programs use JavaSVN instead of native javahl bindings.
Main features:
- No external binaries or libraries are needed to work with Subversion repository.
- JavaSVN supports http, https, svn and svn+ssh connection protocols.
- Low level API allows effective direct Subversion repository access.
- JavaSVN is compatible with applications that already use native javahl bindings.
Spreadsheet::WriteExcel 2.18
Spreadsheet::WriteExcel is a Perl module which can be used to create native Excel binary files. more>>
Formatted text and numbers can be written to multiple worksheets in a workbook. Formulas and functions are also supported. It is 100% Perl and doesnt require any Windows libraries or a copy of Excel.
It will also work on the majority of Unix and Macintosh platforms. Generated files are compatible with Excel 97, 2000, 2002, and 2003, and with OpenOffice and Gnumeric. An older version also supports Excel 5/95.
Nanoserv 1.0.2
Nanoserv is a sockets daemon toolkit for PHP 5.1+. more>>
Main features:
- 100% object oriented
- native support for TCP with SSL/TLS and UDP connections
- multiplexing and forking listeners
- handlers for raw connections, line input, HTTP, SMTP, XML-RPC, Syslog, ...
- transparent inter process communications with forked handlers
- and probably more ...
Bakefile 0.2.2
Bakefile is cross-platform, cross-compiler generator of native makefiles. more>>
Bakefiles task is to generate native makefiles, so that people can keep using their favorite tools. There are other cross-platform make solutions, but they either arent native and require the user to use unfamiliar tools (Boost.Build) or they are too limited (qmake).
Beware that Bakefile is currently under heavy development (version 0.1.x) and is very likely to change significantly and to contain bugs. It is being used for wxWidgets new build system and you can expect it to be usable for production once we fully convert wxWidgets to use it.
Enhancements:
- Bakefile was relicensed from the GPL to the MIT license.
- Support for Visual Studio 2005 project files was added.
- Many small fixes and improvements were made.