This article will show you how easy it is to set up interactive
maps for your Web page, including multiple layers and interactivity
between your view of your Web page and your backend business logic.
Sometime this month -- according to the latest rumors, anyway -- we'll
find out why 2008 won't be like 2007. That's when Apple plans to release
the Software Development Kit (SDK) for their runaway hit Gadget of the
Century, the iPhone. As of this writing, no one outside of Cupertino can
really say what the SDK will include. It might well be the keys to the
kingdom. Then again, it might just prove to be the shackles that bind
your development future to Apple's fortunes. You see, if you as a
developer build your applications using the official iPhone SDK, then
those apps are bound to the platform, and being bound to the platform,
of necessity, limits your audience. That's seldom a good thing. Rather
than going down that path, why not consider something bolder? Why not
strike out on your own and build a Web-based application that looks as
good as a native iPhone app but that isn't beholden to Apple?
In this paper, I describe how to write syslog messages to a MySQL
database. Having syslog messages in a database is often handy,
especially when you intend to set up a frontend for viewing them. This
paper describes an approach with rsyslogd, an alternative enhanced
syslog daemon natively supporting MySQL. I describe the components that
need to be installed and how to configure them.
Recently, I needed to write a script that would parse an XML file and
extract various bits of information. I'm sure there are plenty of
excellent XML modules for Perl, but I didn't want to go through the pain
of having to find one and install it (along with its tree of
dependencies). Besides, I was sure that I was dealing with well-formed
XML, and all I was doing was extracting fields, so I didn't need
error-checking, XSLT, XInput, and all that fancy stuff. I just rolled my
own XML parser in about 100 lines. It's not fancy. It makes all sorts
of assumptions that will cause it to break in a production environment,
but I thought I'd show how it's built.
Code coverage is a way to measure the level of testing you've performed
on your software. Gathering coverage metrics is a straightforward
process: instrument your code and run your tests against the
instrumented version. This produces data showing what code you did --
or, more importantly, did not -- execute. Coverage is the perfect
complement to unit testing: unit tests tell you if your code performed
as expected, and code coverage tells you what remains to be tested.
As the R homepage explains, "R is a language and environment for
statistical computing and graphics. It is a GNU project which is similar
to the S language and environment which was developed at Bell
Laboratories..." Although it is not as widely known or utilized as one
might expect, R is a powerful tool which provides a wide variety of
statistical techniques. One of its major strengths is its graphics
capabilities. With R, even the statistically challenged can easily
produce publication-quality graphs and charts, in a variety of image
formats (JPEG, Postscript, and PDF, among others). In this tutorial, I
will give a short introduction to R with a focus on its graphing
capabilities.
NAT stands for Network Address Translation. It's the technology which
allows most people to have more than one computer in their home and
still use a single IP address. Most of the time, a router with NAT
support gets data packets from the internal network (with internal IP
addresses) and sends them to Internet, changing the internal IP address
of each packet to the external one.
In his book "Integration-Ready Architecture and Design", Jeff Zhuk
states that today's software engineering practices suffer from one
serious drawback: the non-reuse of common algorithmic knowledge.
In this article, I describe how to encrypt syslog messages on a network.
Encryption is vital to keeping the confidential content of syslog
messages secure. I describe the overall approach and provide a HOWTO to
do it with the help of rsyslogd and stunnel.
If you have a Gmail account and would like to use it in conjunction with
your personal computers, this tutorial will walk you through configuring
and installing the latest version of Postfix with SASL authentication
and TLS encryption necessary for connecting and relaying mail to
smtp.gmail.com and configuring fetchmail with STARTTLS to fetch messages
from your Gmail account to your local system. It will also discuss how
to forward mail to other computers and how to automatically backup
copies of email messages.
Flash has always been developed and used for multimedia purposes, but
until version 6, the possibilities for audio streaming were limited, and
there was no video support. With versions 6 and 7, Macromedia
introduced video support and a new file format to support various ways
of streaming. This article covers only a streaming variant called
"progressive download", which does not need server support.
In this tutorial, we're going to look at how Python can be put to work
in the manipulation and analysis of corpora. Corpora (the plural of
corpus) are collections of written texts or spoken language, usually
structured in some way to facilitate their automatic processing.
Many months ago, the organization I work for placed a request with our
development department for a secure file transfer system. The file
transfer system needed to be far more secure than FTP and more reliable
than creating an HTTP uploading system. After a few weeks of research
and testing, I suggested that we create an SFTP Server to handle the
file uploads.
A proxy/Webcache is a computer which sits between your LAN and your
Internet connection, usually in the gateway. Its job is to capture and
save every Web page that the client machines in your LAN visit, so that
the next time someone requests a page, the proxy/Webcache already has it
and sends it to the client. This saves bandwidth and usually speeds Web
navigation.
This article explores the power and simplicity of sqlite3, starting with
common commands and triggers. It then covers the attach statement with
the union operation, introduced in a way that allows multiple tables, in
separate databases, to be combined as one virtual table, without the
overhead of copying or moving data. Next, I demonstrate the simple sign
function and the amazingly powerful trick of using this function in SQL
select statements to solve complex queries with a single pass through
the data, after making a brief mathematical case for how the sign
function defines the absolute value and IF conditions.
You can take a disk file, format it as an ext2, ext3, or reiser
filesystem, and then mount it, just like a physical drive. It's then
possible to read and write files to this newly-mounted device. You can
also copy the complete filesystem, since it is just a file, to another
computer. If security is an issue, read on. This article will show you
how to encrypt the filesystem and mount it with ACL (Access Control
Lists), which gives you rights beyond the traditional read (r), write
(w), and execute (x) permissions for the three user groups "file",
"owner", and "other".
When you have over a hundred computers to install, you really start to
scratch your head and think that it would be nice not to do the same
installation a hundred times. When I faced this problem, I looked at
computer cloning as a solution. I did not want to spend big bucks on
commercial software like Norton Ghost. I know that some people might be
skeptical about using Open Source software, but I gave partimage a try
and found it to work very nicely.
It is well known that you can create powerful Web pages with PHP. Often,
the question arises: How are these pages made? This tutorial wants to
give you some hints on how to make your Web site appear more managed
from both inside and outside. These are my own approaches to Web
development; I hope you find them useful. Take these things as ideas
rather than good practice.
Lemon is a compact, thread safe, well-tested parser generator written by
Dr. Richard Hipp. Using a parser generator, along with a scanner like
flex, can be advantageous because there is less code to write. You just
write the grammar for the parser.
The successful conversion of an older theme to the current scheme
can be done quickly and easily, with just a little leg work.
Multicasting is the ability to transmit a single stream to multiple
subscribers at the same time. Unlike conventional streaming, it does
not need one stream per recipient. Instead, there is one stream on any
one segment of the network on which there is a subscriber. It is the
task of the routers to track subscriptions and to create copies only on
an as-needed basis. Unlike broadcasting, segments on which there are no
subscribers do not receive the stream.
No matter whether you work for a large business or use email simply
for family communication, you've probably received junk mail. If you
have used email for any length of time, you probably know what it's
like to deal with a virus. Unfortunately, fending off unwanted or
dangerous electronic communication has become a daily struggle for
many system administrators.
The productivity benefits of the PHP platform are well known. Its easy
syntax, latent typing, high level of abstraction, and support for
objects simplify and accelerate the production of large
applications. In this article, I propose using code generation tools
to build even higher-quality and more easily maintained PHP code.
Qt is known as a cross-platform graphical user interface toolkit. It
is that, but it's also a toolkit for dealing with databases, file
access, sockets, and much more. This article concerns the Qt object
model and why it is an improvement over the classic C++ model.
MPlayer is a movie player. It's written mainly for Linux, but it
works on most Unices and even on other architectures like OSX, QNX,
and (somehow) even Windows. Although it's a desktop/end-user
application, it is not as user-friendly as it should be. Some time ago,
I even told newbies (coming from Windows) to try xine instead of using
the commandline MPlayer.
A number of dedicated presentation programs have been written for Unix
systems, but they may not serve your needs if you have special
requirements, especially the need to display mathematical formulas.
The Prosper package can help you create attractive presentations while
letting you use the full power of LaTeX.
Over the years, I've used 4Dwm, Afterstep, Blackbox, Enlightenment,
FVWM, Icewm, KWM, PWM, Sawfish, Window Maker, and wmx, and played with
many other window managers. I used Window Maker more than any other,
but generally would only stick with one for a couple of months before
getting restless and trying something else. Finally, though, I
settled on a setup I've used exclusively for over a year. It's
decidedly not for everyone, but may be of interest to some.
Templates are a valuable tool in any programmer's toolkit. I'm not
talking about C++ templates, in which new concrete classes are created
by replacing variable types within a template class. I'm talking
about text templates, in which a string contains markers for
replacement items, which are replaced with values.
There are lots of reasons to like Ruby. It's a pure object oriented
language. The syntax is elegant, and the use of blocks creates a
novel feel. Another reason to like Ruby is its scalability. I don't
mean scalability in the performance sense, but in regards to how you
can code simple Ruby macros to solve small problems and also use Ruby
in its object oriented form to support very large or complex
applications.
In recent years, the popularity of instant messaging solutions has
grown dramatically. It's now difficult to say who was the first to
invent something more rapid than email, but there is no doubt that
among the wide variety of existing IM solutions, ICQ is the most
popular one.