gary null
Null IBBS 0.5.0
Null IBBS is an Internet Bulletin Board System derived from an old snapshot of NullLogic Groupware. more>>
Null iBBS uses cleartext password transmission. If security is a concern, use https!
This program is derived from an earlier version of Sentinel Groupware. This program also shares code with Null Webmail.
Installation
Null iBBS installation is a bit of a do-it-yourself process for the time being.
1) Move all the files and directories to a directory of your choice. /usr/local/ibbs might be a good default.
2) Edit the Makefile and check the mysql and pgsql dependencies.
3) Type make mysql or make pgsql to build the binary.
4) Create your database and use ibbsdb.mysql or ibbsdb.pgsql to create the database schema.
5) Edit etc/ibbs.cfg to match your configuration.
6) Make sure the files/ directory is writable by the user Null iBBS will be run as.
7) Run ./ibbs from bin/ (NOT AS ROOT!).
8) Curse the crappy install process, and give up in disgust (optional).
With luck, you now have Null iBBS running as a standalone server. It can also be run as a cgi by copying the binary and ibbs.cfg to your cgi-bin directory (works for me).
Null httpd 0.5.1
Null httpd is a very small, simple and multithreaded web server for Linux and Windows. more>>
Please note that Null httpd is _not_ a production quality server, nor should it be used in environments where stability and/or security are a concern.
If youre looking for a solid, reliable web server, please use Apache.
NullableTypes 1.2
NullableTypes for .NET are a very reliable and efficient version of built-in value-types that can be Null. more>>
Types implemented by NullableTypes are: NullableBoolean, NullableByte, NullableInt16, NullableInt32, NullableInt64, NullableSingle, NullableDouble, NullableDecimal, NullableString and NullableDateTime.
Helper functions provide seamless integration with Windows and ASP.NET user controls and with ADO.NET.
NullableTypes will let you write code like this:
public sealed class Order{
public int OrderID {get {/*...*/}}
public int CustomerID {get {/*...*/}}
public NullableDateTime RequestedDeliveryDate {get {/*...*/}}
// remaining members elided for clarity
}
where RequestedDeliveryDate can be either NullableDateTime.Null or a valid DateTime value.
The property RequestedDeliveryDate.IsNull tests if the date is Null, and when it is not Null the property RequestedDeliveryDate.Value returns a valid DateTime value.
Chart Taglibs 0.3
Chart Taglibs is a free taglib (JSP 1.1) library for JFreeChart. more>>
These are easy to use, and allow the developer to draw any graphics supported by JFreeChart using only the tags.
Chart Taglibs currently supports pie charts (2D & 3D), bar charts (2D & 3D), and line charts.
Enhancements:
- New charts are supported: 3D Line charts, Area chars, Ring charts, Stacked Bar charts, Stacked 3D Bar charts, Stacked Area charts, and Waterfall charts.
- A minor bug was fixed to avoid a null pointer exception.
- A new Web page with documentation and screenshots was added.
Epiware 4.5
Enables organizations to easily share information and effectively collaborate on documents in a browser-based environment. with a familiar drag and drop interface. more>>
Epiware enables the creation of virtual teams by providing an online workspace for users to collaborate and exchange information in a secure, protected setting. It is intuitive and easy to use, which allows users to concentrate on what they do best rather than on trying to master an application.
With Epiware, costs can be lowered, projects can be expedited, decisions can be made in a more efficient and timely manner, changes can be executed more quickly, and errors due to miscommunications can be reduced or eliminated.
Epiware utilizes Asynchronous JavaScript And XML (AJAX) to increase the application?s interactivity, speed, and usability. This helps make Epiware nearly as responsive as software that resides on a user?s computer
Requirements: x86 Linux
<<lessGridarta 2006-11-15
Gridarta project is a 2D MMORPG map editor for Crossfire and Daimonin. more>>
Gridarta currently supports Angelion, Crossfire, and Daimonin.
Enhancements:
- Removed todo (thats done).
- Cosmetic: Declared a var final.
- Substantial improvement of ArchObjectContainer: * Made it fail fast in case of bogus usage (throwing IllegalArgumentException). * Documented nullability.
- Removed redundant setting of the container while reading arches from the map.
- Fixed broken remove().
- File when saving a map must not be null.
- Fixed broken addFirst() / addLast().
- Removed More handling from CMapFileDecode in daieditor.
- Removed duplicate classes MapEvent and MapListener.
- Remove variable that always is null.
- Removed manually linked lists for containers in ArchObjects.
vtmalloc 1.2
vtmalloc is a fast memory allocator for multi-threaded applications and Tcl. more>>
Tcl
Replace exiting tclThreadAlloc. in the Tcl distribution and recompile with
--enable-threads option. Or use LD_PRELOAD=tclThreadAlloc.so before loading your application.
There is command Tcl_VTMallocCtlObjCmd which can be used in application to force deallocating global pages as well.
To use it in your Tcl program, link it with libvtmalloc.so and execute
extern Tcl_ObjProc Tcl_VTMallocCtlObjCmd;
Tcl_CreateObjCommand(interp, "vtmalloc_ctl", Tcl_VTMallocCtlObjCmd, NULL, NULL);
Enhancements:
- Greatly improved speed and memory usage.
atropine 0.2
atropine helps programmers make assertions about document structure while getting at the data they are interested in. more>>
atropine helps programmers make assertions about document structure while getting at the data they are interested in.
atropine library was developed under Python.
Special thanks to Piet Delport for the resolver, null resolver, chain-of-resolvers ideas.
Please note, using this library is not as complicated as it sounds, it consists of only 275 lines of python.
It is better to get no data than to get the wrong data.
The key to screen-scraping the right data is to make a painful amount of assertions about document structure
Enhancements:
- Some unused imports were removed.
- A text only version of the reference was added.
- Things were generally tidied up.
KMailSpy 1.08
KmailSpy is a small KDE docking mail preview program (POP3). more>>
Individual messages can be read (in ASCII text only), saved (in ASCII text only), or deleted.
KMailSpy is intended to be a convenient and quick way to keep an eye on your email server, preview your email, and delete spam to keep your system free of clutter and potential viruses.
Developed with KDevelop 3.33 in C++ on Mepis 6.x
Relations::Query 0.93
Relations::Query is a Perl Object for building queries with DBI/DBD::mysql. more>>
SYNOPSIS
# Relations::Query Script that creates some queries.
use Relations::Query;
$query = new Relations::Query(-select => {fife => barney},
-from => {green_teeth => moogoo},
-where => "flotsam>jetsam",
-group_by => "denali",
-having => {fortune => cookie},
-order_by => [was,is,will],
-limit => 1);
$get_query = $query->get();
$query->set(-select => {clean => sparkle},
-from => {lean => book},
-where => "fighting is between courage and chaos",
-limit => 123);
$set_query = $query->get();
$get_add_query = $query->get_add(-select => {mean => dog},
-where => "running is null",
-having => {kitties=> on_tv},
-limit => [9678]);
$query = to_string({select => this,
from => that});
wapircgw 0.1.7
wapircgw helps you easily connect to irc networks using your wap browser on your mobile phone. more>>
wapircgw consists of 2 cooperative pieces: wapircphp and wapircd.
wapircd is the daemon which handles connections to irc networks and requests from your mobile phone. wapircphp generates wml webpages that you can view with your mobile phone. So youll need a web-server application with PHP and MySQL support (ex. Apache). MySQL support is needed because of the user administration and settings storage.
Example: when a user logs in with his/her mobile phone, wapircphp communicates with wapircd, requesting a new irc connection to be made. So wapircd connects to the given irc server and joins the channels which the user gave in his/her settings. When the user logs out (or does nothing for a few minutes), wapircd closes the connection with the irc server.
Installation:
Dont forget to edit wapircd password in wapircd/src/config.h!
Then run ./configure and then make. PLEASE REMEMBER: you dont have to be root to run wapircd. Its more secure to run it as a single user. Youll find the wapircd binary in the src dir after running make, but if youre lazy you can run make install as root and itll place the binary in /usr/local/bin. Run wapircd -h for further options. You dont have to have write access in the directory you start wapircd, because everything is stored in memory.
After starting wapircd, copy the contents of the wapircphp directory to your website. Add the following table to your MySQL database:
CREATE TABLE `wapirc` (
`user` varchar(20) default NULL,
`pass` varchar(20) default NULL,
`ircserver` varchar(50) default NULL,
`ircport` varchar(5) default 6667,
`ircuser` varchar(50) NOT NULL default wapirc,
`ircnick` varchar(50) default NULL,
`ircpass` varchar(20) default NULL,
`autojoin` varchar(255) default NULL,
`loglines` tinyint(3) unsigned NOT NULL default 20,
`loglineslong` tinyint(3) unsigned NOT NULL default 100,
`allowrawirccmds` tinyint(1) NOT NULL default 0
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Enhancements:
- Host resolving did not work under Solaris; this has been fixed.
GStreamer 0.09
GStreamer is a Perl interface to the GStreamer library. more>>
SYNOPSIS
use GStreamer -init;
my $loop = Glib::MainLoop -> new();
# set up
my $play = GStreamer::ElementFactory -> make("playbin", "play");
$play -> set(uri => Glib::filename_to_uri $file, "localhost");
$play -> get_bus() -> add_watch(&my_bus_callback, $loop);
$play -> set_state("playing");
# run
$loop -> run();
# clean up
$play -> set_state("null");
sub my_bus_callback {
my ($bus, $message, $loop) = @_;
if ($message -> type & "error") {
warn $message -> error;
$loop -> quit();
}
elsif ($message -> type & "eos") {
$loop -> quit();
}
# remove message from the queue
return TRUE;
}
MassResolve 0.1
MassResolve application performs reverse DNS lookups for network blocks or an input file. more>>
Usage:
./res < subnet or filename to resolve > < forks >
Code:
/*
MassResolve (C) 2000 John Anderson (john@ev6.net)
This program performs reverse dns lookups for network blocks
or an input file and supports multi threading.
*/
#include < stdio.h>
#include < fcntl.h>
#include < netdb.h>
#include < signal.h>
#include < sys/time.h>
#include < unistd.h>
#include < netinet/in.h>
#include < netinet/ip.h>
#include < netinet/ip_icmp.h>
#include < errno.h>
#include < string.h>
#include < getopt.h>
#include < setjmp.h>
char *
rlookup (u_long ip)
{
static char hostname[256];
struct hostent *host;
struct sockaddr_in addr;
addr.sin_addr.s_addr = ip;
host =
gethostbyaddr ((char *) &addr.sin_addr, sizeof (addr.sin_addr), AF_INET);
if (host == NULL)
{
printf ("%s does not resolve.n", inet_ntoa (ip));
fflush (stdout);
}
else
{
printf ("%s resolves to %sn", inet_ntoa (ip), host->h_name);
fflush (stdout);
}
}
int maxforq = 0;
int
main (int argc, char **argv)
{
int pid, k, j, frk, i, mforks;
char *pt;
char mehost[200], sv[3];
FILE *inp;
mforks = 64; /* default */
if (argv[1] == NULL)
{
printf ("Usage: %s n", argv[0]);
exit (0);
}
if (!argv[2] == NULL)
{
mforks = atoi (argv[2]);
}
/* printf ("Resolving all hosts in %s with %d threadsn", argv[1], mforks); */
if((inp=fopen(argv[1],"r"))!=NULL)
{
while(fgets(mehost,sizeof(mehost),inp))
{
sscanf(mehost,"%sn",mehost);
frk = fork ();
if (frk == 0)
{
fflush (stdout);
rlookup (inet_addr (mehost));
exit (0);
}
else
{ /* frk = 0 */
maxforq++;
if (maxforq > mforks)
{
wait (NULL); // waiting until the child died
maxforq--;
}
}
}
fclose(inp);
exit(0);
}
pt = strchr (argv[1], .);
if (pt == NULL)
{ /* ANET */
for (k = 0; k<<less
phpRiya 0.9 Beta
phpRiya is an excellent web based face recognition service. more>>
Main features:
- LGPL license; you can use it for your commercial projects too!
- Covers 95% of Riya API
- Built-in DB/FS Caching
- Fully extensible via the "call" method
EXAMPLE
< ?php
require_once("phpRiya.php");
$r = new phpRiya("< api key >"); // http://riya.com/applyAPI
// optional - authentication
// required only in Authentication Required functions
// see Riya API
//
// $r->auth("< username >","< password >");
// make a search in public photos
// look for ones tagged with 2006
$photos = $r->photos_search_searchPublic(null,null,null,null,null,null,"2006");
foreach ($photos as $photo) {
echo "< img src="{$photo[thumbnail]}" border="1" />
";
}
?>
mysqlrowcopy 1.0
mysqlrowcopy is a tool that generates insert statements from result sets. more>>
This project helps eliminate some of the tedium of moving data between QA and production MySQL databases.
Build:
To build mysqlrowcopy, you should run:
./configure
make
A mysqlrowcopy and mysqlrowcopy.debug file are created. They have identical functionality, the .debug version simply has debugging symbols built in (for gdb).
Since mysqlrowcopy is probably going to be I/O bound with modest CPU and RAM usage, the only reason to even build a 64-bit version is to work around potential issues in dynamic linking 32-bit binaries against 64-bit libraries.
RECIPES
1. Migrating a MySQL user account reaper from QA server to a production server.
e.g. MySQL database server qa3.example.com to prod1.example.com:
$ mysqlrowcopy -h qa3.example.com
SELECT * FROM db WHERE User = "reaper" mysql db > reaper.sql
$ mysql -h prod1.example.com mysql < reaper.sql
You could of course simply pipe the output of mysqlrowcopy into mysql and skip the intermediate file.
(Dont forget to RELOAD PRIVILEGES afterwards)
2. Keep your test environment up to date. Populate it with production data every 24 hours. You could run this sequence from cron once a day:
$ mysqlrowcopy -h finance-db.example.com
SELECT * FROM stocks WHERE modified > DATE_SUB(NOW(),INTERVAL 24 HOUR)
finance stocks > day-stocks.sql
$ cat day-stocks.sql | mysql -h finance-test.example.com finance
3. Copy data between tables on different servers that have some similar fields.
Youve got common data in table Zip on a production database:
mysql> desc Zip;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| ZIPCode | varchar(5) | | PRI | | |
| ZIPCodeType | char(1) | YES | | NULL | |
| City | varchar(32) | YES | | NULL | |
| CityType | char(1) | YES | | NULL | |
| State | varchar(32) | YES | | NULL | |
| StateCode | char(3) | YES | | NULL | |
| AreaCode | char(3) | YES | | NULL | |
| Latitude | varchar(12) | YES | | NULL | |
| Longitude | varchar(12) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
9 rows in set (0.00 sec)
And youve got table ZipPosition in a research database:
mysql> desc ZipPosition;
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| ZIPCode | varchar(5) | | | | |
| Latitude | varchar(12) | YES | | NULL | |
| Longitude | varchar(12) | YES | | NULL | |
+-------------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)
You want to load data from production Zip into research ZipPosition.
$ mysqlrowcopy -h production SELECT ZIPCode,Latitude,Longitude common ZipPosition > pos.sql
$ cat pos.sql | mysql -h qa research
Note how we specify ZipPosition on the first line to tell mysqlrowcopy what the destination table is going to be.