mobile or small text entry
Mobile Web Proxy 1.0
Mobile Web Proxy is a (CGI) tool to make more Web pages available from some mobile devices (cell phone Web browsers, etc.). more>>
When I began using my cell phones mobile web browser, one of the things I realized was that there were a lot of web pages that my cell phones web browser simply wouldnt let me see. My shiny new Motorola Razr from T-Mobile, for many pages, would display an error message like "413: Page cannot be displayed." It happened annoyingly often; browsing the web from my cell phone was a lot like trying to read a book or a magazine with large chunks simply ripped out. And when I tried troubleshooting, I might have missed something, but it seemed like a big problem without an easily available solution.
So I tried to provide my own solution. I made a proxy that would present webpages for the mobile web so that they would display in a way that would work for my cell phones web browser. Technologies include paging, tag cleaning, and optional caching to improve performance, but without getting into technical details, this means that I can access some pages on the web that I couldnt access earlier.
Enhancements:
- A bug that caused the script to spuriously report 404 errors was fixed.
- A smaller default page size was set so that tag-rich pages would be rendered in a way more likely to be displayable on mobile Web browsers.
Mobile::UserAgent 1.05
Mobile::UserAgent is a mobile user agent string parsing class. more>>
SYNOPSIS
### Print the information parsed from a user-agent string:
use Mobile::UserAgent;
my $useragent = Nokia6600/1.0 (4.09.1) SymbianOS/7.0s Series60/2.0 Profile/MIDP-2.0 Configuration/CLDC-1.0;
my $uaobj = new Mobile::UserAgent($useragent);
if ($uaobj->success()) {
print Vendor: . $uaobj->vendor() . "n";
print Model: . $uaobj->model() . "n";
print Version: . $uaobj->version() . "n";
print Series60: . $uaobj->isSeries60() . "n";
print Imode?: . $uaobj->isImode() . "n";
print Mozilla?: . $uaobj->isMozilla() . "n";
print Standard?: . $uaobj->isStandard() . "n";
print Rubbish?: . $uaobj->isRubbish() . "n";
}
else {
print "Not a mobile user-agent: $useragentn";
}
### Determine if the client is a mobile device.
use Mobile::UserAgent ();
use CGI ();
# Check 1: (check if it sends a user-agent profile URL in its headers)
foreach my $name (X_WAP_PROFILE,PROFILE,13_PROFILE,56_PROFILE) {
if (exists($ENV{"HTTP_$name"})) {
print "Client has a user-agent profile header, so its probably a mobile device.n";
last;
}
}
# Check 2: (check if it supports WML):
my $q = new CGI();
if ($q->Accept(text/vnd.wap.wml) == 1) {
print "Client supports WML so its probably a mobile device.n";
}
# Check 3: (check if this class can parse it)
my $uaobj = new Mobile::UserAgent();
if ($uaobj->success()) {
print "Clients user-agent could be parsed, so its a mobile device.n";
}
Parses a mobile user agent string into its basic constituent parts, the most important being vendor and model.
One reason for doing this would be to use this information to lookup vendor-model specific device characteristics in a database. You can use also use user agent profiles to do this (for which Ive developed other classes), but not all mobile phones have these, especially the older types. Another reason would be to detect if the visiting client is a mobile handset.
Only real mobile user-agent strings can be parsed succesfully by this class. Most WAP emulators are not supported because they usually dont use the same user-agent strings as the devices they emulate.
Movie Mapper 0.4
Movie Mapper project is a small program for indexing movie collections. more>>
Movie Mapper is a small program for indexing movie collections. It browses given directory trees, searching for text files that contain IMDB URLs.
These URLs are used to generate database entries for movies.
Movie Mapper can also be used for offline indexing by creating text files that contain offline movie titles.
It tries to find matches from IMDB for those titles listed in the text files.
File Splitter 1.3
Split large text/html files into smaller files. I find it much faster and more accurate than cut and paste. You embed commands in the big file telling it which pieces of it are to go where, then let Splitter do the work. It is much faster and more accurate than trying to select huge blocks of text in an editor. You dont accidentally lose or duplicate text. Keeping files small makes the site more responsive. more>>
File Splitter - Split large text/html files into smaller files. I find it
much faster and more accurate than cut and paste.
You embed commands in the big file telling it which pieces
of it are to go where, then let Splitter do the work. It is
much faster and more accurate than trying to select huge
blocks of text in an editor. You dont accidentally lose or
duplicate text. Keeping files small makes the site more
responsive.
In the following pretend that [...] are actually lessthan...greater than.
You embed multiple [split tags in the file to be split of
the form:
[split charlie.html]
...
stuff that will end up in the charlie.html file.
...
[/split]
The text between the [split xxx] and [/split] tags is split
off into that named file and the text is removed from the
original file along with the tags.
1. Filenames may be absolute or relative, with no quotes or spaces.
2. Tags may be nested, but they must balance (equal number
of [split xxx] and [/split]).
3. Tags are case-insensitive, i.e. may be lower or upper case.
4. Multiple [split xxx] tags may be directed to the same
file, where they will be appended.
5. If the files mentioned in the split tags already exist,
they will be overwritten.
6. Anything not inside [split xxx].. [/split] is retained in
the original file. Everything else is removed.
The file being split must be small enough to fit in RAM.
Java array addressing limits the file to 2GB, though other
considerations mean in practice the largest file you can
handle will be smaller still.
To install, Extract the zip download with Winzip, available from
http://www.winzip.com (or similar unzip utility) into any
directory you please, often C:\ -- ticking off the (user
folder names) option. To run as an application, type:
java -jar C:\com\mindprod\splitter\splitter.jar x.html
adjusting as necessary to account for where the jar file is.
Enhancements:
Version 1.3
allow you to specify encoding
System Requirements:<<less
Multiple Time Sheets 4
Multiple Time Sheets is a simple tool to help you keep track of how many hours you work and for whom. more>>
It differs from most time-tracking software because its designed to work like paper that magically totals up hours.
Main features:
- Uses text files, requiring no database.
- Supports only one user per app, for simpler code.
- Sends and tracks invoices, and payments thereof.
- Features a rudimentary to-do list that displays your list as an outline.
- Sends you a backup of your data automatically.
- Assume the user prefers free-form data entry in text files rather than typing into forms.
- Uses the htmlMimeMail.php class by Richard Heye (phpguru.org).
- CSV and OPML exports of some data.
- Automatic hyperlinking from MTS to your favorite web-based software.
Enhancements:
- This release added a feature that replaces text patterns with links so that strings like "Bug 10" can link to a bug tracking application.
- CSV export was added for the timesheet along with OPML export for the to-do list.
Convert::yEnc::Entry 1.02
Convert::yEnc::Entry is a Perl module as an entry in a Convert::yEnc::RC database. more>>
SYNOPSIS
use Convert::yEnc::Entry;
$entry = new Convert::yEnc::Entry { size => 10000 };
$entry = new Convert::yEnc::Entry { size => 50000, part => 1 };
$entry = load Convert::yEnc::Entry "10000t10000";
$entry = load Convert::yEnc::Entry "20000t1-20000t1-2";
$ok = $entry->ybegin( { size=>10000 } );
$ok = $entry->ypart ( { begin=>1, end=>10000 } );
$ok = $entry->yend ( { size=>10000 } );
$entry->complete and ...
print "$entryn";
ABSTRACT
An entry in a Convert::yEnc::RC database
Convert::yEnc::Entry manages a single entry in a Convert::yEnc::RC database
Zen explorer desktop entry 0.01
Zen explorer desktop entry adds a service menu with the option to send a music file to your Creative zen jukebox. more>>
Ive only tested it with Zen V Plus 2 gig, but it uses libmtp to send the file. Not too exciting, i wrote it in less than a minute.
CatGrab Small Edition for Linux 1.3.9
The convenient solution for a professionally organized photo collection. The transfer from the camera to the PC requires no preferences and is done with a click. It has never been easier to organize a photo collection. more>> <<less
Net::Google::Calendar::Entry 0.5
Net::Google::Calendar::Entry is an entry class for Net::Google::Calendar. more>>
SYNOPSIS
my $event = Net::Google::Calendar::Entry->new();
$event->title(Party!);
$event->content(P-A-R-T-Why? Because we GOTTA!);
$event->location("My Flat, London, England");
$event->status(confirmed);
$event->transparency(opaque);
$event->visibility(private);
my $author = Net::Google::Calendar::Person->new;
$author->name(Foo Bar);
$author->email(foo@bar.com);
$entry->author($author);
LaTeX Service 0.1
LaTeX Service project is a small service which converts LaTeX into an image. more>>
It returns a LaTeX rendering of selected text as a TIFF image.
Enhancements:
- Many things could be improved, its just a 0.1 release... but it works
Small Operation Center for Unix 1.2 build 060420
Inspired by famous MRTG and information system operation experience. more>> Inspired by famous MRTG and information system operation experience. This sofware comes with the following features:
Cross platform
This program based on java technology and supposed to run on any system support J2SE without problem.
Plug and play
It is not necessary to deal with windows service or unix cron job now. Simply supply correct SNMP parameters and you are ready to see whats happening on your system.
Centralized monitor
Receive syslog event from all your hosts. Also monitor resource utilization on multiple hosts at the same time.
Mobile technology
With our leading software developed for mobile phone,you can easily monitor device utilization through GPRS network anytime and anywhere.
Internationalization
Currently english and tranditional chinese supported<<less
Config Maker 0.2
Config Maker is a tool to automatically create C++ classes that parse configuration files. more>>
Only a few lines of text that describe the possible entries in the configuration file are needed, and the complete class will be generated ready for use.
Basic usage
The input files for Config Maker have a very simple structure (in ANTLR/grep like notation):
objectname (configentry)+
Each configentry looks like this
type entryname defaultvalue (comment)?
type
Type of the entry, can be int, double, string or bool. If the basic type is followed by any number, the corresponding c++object variable will be of type vector < basic type > The number is the initial number of elements that are allocated for the vector, but the actual configuration file can contain more components. These are added using the push_back method.
If there are less elements specified in the configuration file, the object variable will still contain the number of elements specified here. No warning will be issued.
configentry
Name of the entry and corresponding variable. Has to be at least two characters long and can contain characters and numbers. Case insensitive.
defaultvalue
Default value for the entry. This is optional.
comment
Each comment starts with // and is completely ignored

fring Linux- Make free mobile calls 1.02
a free mobile internet service & community more>> fring is a free mobile application application that enables free mobile internet calls, live chat (IM) and file transfer to other fringsters and PC-based services including Skype, Google Talk, ICQ, MSN Messenger, Twitter, Yahoo! and AIM, using free Wi-Fi or your 3G or GPRS internet data plan instead of costly mobile airtime minutes.
With fring, youll gain benefits previously only found only on the PC and get empowered with mobility as never before: make cheap mobile internet calls, see whos online before dialing with contact availability indicators (presence), live chat instead of SMS, engage in multiple conversations simultaneously, view conversation history and more! Take all your fring, Skype, Google Talk, ICQ, MSN Messenger and Twitter buddies with you wherever you go and view them, along with your regular phone contacts, from one integrated and search-able contact list.
Also make cheap calls to landlines and regular cellular contacts using your SkypeOut account or hundreds of SIP-based providers such as Eutelia, GizmoProject, VoipCheap, VoipStunt, Free World & SIPNET over fring, even from non-SIP enabled handsets.
As fring automatically roams between Wi-Fi and 3G networks, you can effortlessly login to recognized Wi-Fi hotspots, mindlessly gaining access to the best network for optimal call quality and savings.
Easily download fring into your handset and begin fringing in less than a minute.
fring bypasses traditional mobile voice and SMS text messaging services by utilizing the mobile handsets native internet connection. fring does not require any dedicated hardware or airtime and works with phones purchased through any mobile operator. The patent-pending peer-to-peer mobile VoIP technology delivers full-duplex voice quality with rich internet functionality and maximum network efficiency.<<less
Phone Manager 0.10
Phone Manager is a program created to allow you to control aspects of your mobile phone. more>>
Main features:
- Runs in the background; indicates status on the panel notification area.
- Display on-screen alert when text message (SMS) arrives
- Text message (SMS) sending facility
Text Text Revolution 0.11
Text Text Revolution project is a text-based ncurses DDR clone. more>>
Text Text Revolution is a text-based Dance Dance Revolution clone.
It supports pyDDRs .step file format (which has now been superceeded by the .dance format), and plans to stream OGG, MP3, or WAV files.
Enhancements:
- Joystick (DDR mat) support is working now. use the -j switch. Its currently hardcoded to use /dev/input/js0.
- Some graphics code was cleaned up, and it is now possible to specify the difficulty (--light, --standard, --hard, or -ln, where n is 1, 2, or 3).