JSlave.com Logo Navigation Image
Projects Contact Bio Articles Home Architect Coder Author
JSlave Archives
06/01/2001 - 06/30/2001
07/01/2001 - 07/31/2001
08/01/2001 - 08/31/2001
09/01/2001 - 09/30/2001
10/01/2001 - 10/31/2001
11/01/2001 - 11/30/2001
12/01/2001 - 12/31/2001
01/01/2002 - 01/31/2002
02/01/2002 - 02/28/2002
03/01/2002 - 03/31/2002
05/01/2002 - 05/31/2002
06/01/2002 - 06/30/2002
08/01/2002 - 08/31/2002
09/01/2002 - 09/30/2002
10/01/2002 - 10/31/2002
11/01/2002 - 11/30/2002
12/01/2002 - 12/31/2002
01/01/2003 - 01/31/2003
02/01/2003 - 02/28/2003
03/01/2003 - 03/31/2003
04/01/2003 - 04/30/2003
05/01/2003 - 05/31/2003
06/01/2003 - 06/30/2003
08/01/2003 - 08/31/2003
03/01/2004 - 03/31/2004
04/01/2004 - 04/30/2004
05/01/2004 - 05/31/2004
01/01/2005 - 01/31/2005
08/01/2005 - 08/31/2005




This page is powered by Blogger. Isn't yours?

Thursday, January 31, 2002

Gnutella.com You aks: I'm a programmer where should I start? How can I build my own client? First of all, understand how Gnutella works, pictures say more than words...
posted by J Slave 1/31/2002

Gnutella.com Programming your own Gnutella servent, after reading protocol specification and tons of documentation [1], usually begins with client/server programming, which quickly raises the question, "Which is a good network concept"? I have collected ideas about Gnutella network design and will describe a so-called 'asynchronous server' design here. Before I begin, let me say that this article is intended for advanced programmers. Please feel free to ask questions, make comment or help improve this article!
posted by J Slave 1/31/2002

The Services for Your Business If you're a more advanced web merchant looking to sell both tangible products and subscription services, iBill's Processing Plus Shopping Cart and Subscription feature, allow you to sell both Products and Services.
posted by J Slave 1/31/2002

Internet Merchant Account
A merchant account is a relationship between a retailing company and a merchant bank which allows the retailer to accept credit card payments from customers. Banks require that certain (usually very stringent) qualifications be met before granting a merchant account to a company. Most small companies, in particular web-based sites, find it too expensive and cumbersome to acquire their own merchant accounts, yet credit cards are the most efficient way of doing business on the Internet. That's where iBill comes in. iBill is a retailer who can buy proofs of purchase at wholesale from a web site by traditional (mailed check) means, then sell those proofs to Internet users.
posted by J Slave 1/31/2002

developerWorks: Java technology : The practice of peer-to-peer computing: IP Multicast-based discoveryPeer-to-peer computing: IP Multicast-based discovery :::
To accomplish useful work, peers in a P2P application must be able to
find and interact with one another. In his last article, P2P columnist
Todd Sundsted described several different mechanisms that peers can use
to discover one another and explained the strengths and weaknesses of
each. This month, he provides an implementation of discovery based on
IP Multicast.
posted by J Slave 1/31/2002

RegNow.com Our system goes well beyond credit card processing with in-house affiliate programs, advanced pre-order fraud profiles, 24x7 phone ordering and much more.
posted by J Slave 1/31/2002

Friday, January 25, 2002

The pros and cons of generating native code from Java source::: Weighing in on Java native compilation :::
When it was first introduced, it seemed that Java native compilation
would surely topple the JVM, taking with it the Java platform's hard-
fought platform independence. But even with its growing popularity and
the increasing number of native compilers on the market, native
compilation has a way to go before it poses a real threat to Java's
portability. Unfortunately, it also may be a while before the
technology is mature enough to resolve the Java performance issues so
many of us struggle with today. IBM software engineer Martyn Honeyford
discusses the pros and cons of this technique to boost the performance
of your apps.
posted by J Slave 1/25/2002

Thursday, January 24, 2002

Microsoft SQL Server - SQL Server 2000 JDBC DriverWhile it is only a beta driver, it is an official Microsoft JDBC driver
for the SQL Server database.
posted by J Slave 1/24/2002

Monday, January 21, 2002

AWS JASon is the Java Activation Server. This is a central point for all stand-alone application. This is a confortable container that offers a set of services.. Each application plugged in this environment becomes a Module.
posted by J Slave 1/21/2002

Thursday, January 17, 2002

Branch Cut SoftwarejTask is task scheduler written in Java, designed for executing Java classes on a scheduled/unattended basis. Using jTask, it is possible to invoke the main() method of any Java class, pass it a list of arguments, and have it execute according to a flexible schedule.
posted by J Slave 1/17/2002

Ask the Java Pro How can I run a Java server application as an NT service?

You can run a Java server application as an NT service if you use the Microsoft SDK for Java.(Download the latest version from Microsoft's Web site at http://www.microsoft.com/java/sdk/.) The SDK includes a package called com.ms.service which contains a Service class for creating NT services. You also need to turn the Java application into an executable NT service using the jntsvc.exe utility provided with the SDK. If you look in the bin directory of the SDK, there is a jntsvc subdirectory that contains jntsvc.exe and an example Java program implementing an NT service. More information is available in the Microsoft SDK for Java documentation.
posted by J Slave 1/17/2002

Free JNT (Java NT Service) Homepage JNT is a wrapper that allows you to run your Java application as an NT service. JNT works only with Java applications, and offers some unique features:
JNT does not require you to use platform (or JNT) specific code. Your application can be 100% Pure Java. No NT or NT Service specific code required.
JNT will allow your application to shutdown gracefully. You can optionally specify a method to be called in your “main” class when your NT service is stopped. If you specify this method, then JNT will call it when NT stops your service, giving your application a chance to shutdown gracefully.
JNT shields the Java Virtual Machine from the infamous NT CTRL_LOGOFF_EVENT event. Many NT Service “wrappers” fail to do this, and can cause your service to malfunction when someone logs off the host machine. Certain versions of Java will exit or malfunction when this event is received. JNT prevents this from happening.
posted by J Slave 1/17/2002

Running Java Applications as NT Services This tutorial will show you how to write Win32 executables that let you run Java 2 applications as NT or Windows 2000 services. No JNI code is required in your Java applications. Complete Win32 source code is provided. Also provided are two sample Java applications, with source code, that demonstrate the technique.
posted by J Slave 1/17/2002

JServiceThe Jservicetm package allows NT/Win2k users to now use JAVA for writing system services. Services on NT and Win2k run in the background and perform whatever task they are designed to do. In Unix jargon, they are daemon processes. Jservicetm combines both a Windows executable (written in C) and Java support classes. The combination of the two can produce powerful services that previously were only written in C/C++ or Visual Basic. Imagine writing an application and using it on NT/Unix and the IBM Mainframe. The power of Java!
posted by J Slave 1/17/2002

A paper describing step-by-step how to run a Java Server app as an NT service.
posted by J Slave 1/17/2002

Running Java Applications as NT ServicesThis paper describes building an executable launcher for a Java 1.2 server application that permits self-installation as a Windows NT service. It also shows how to save and retrieve runtime arguments in the Windows registry, invoke the Java Virtual Machine (JVM) in a separate thread using the Java Native Interface (JNI) and create a service dependency on the rmiregistry application supplied with the Java Development Kit (JDK) or Java Runtime Environment (JRE.) Full Win32 C source code for the launcher, Java sources for a sample Java server, and binaries for a working example are provided. Unlike some other solutions, this technique is not dependent on the MS Java SDK, and requires no special modification of the actual Java application.
posted by J Slave 1/17/2002

Java Pro Magazine - Feature PageUnravel the Complexity of Thread Programming
Thread programming made simple using POSIX primitives, blocking queues, and threading models

Multithreaded programming allows you to execute code sequences in parallel (or psuedo-parallel on a single-processor machine). By taking advantage of CPU idle time, you can improve throughput and make interactive programs more responsive. You can also develop simpler and more efficient programs by modeling the solution as a set of parallel interacting threads. However, programming thread interactions is error prone and can get complicated easily. This article shows you how to reap the benefits of multithreaded programs and avoid common pitfalls. It presents models for thread programming and a framework that implements the models as a generic reusable set of classes.

posted by J Slave 1/17/2002

Tuesday, January 15, 2002

Master the Jxta shell, Part 1The best way to learn about any new technology is through experimentation, and Jxta is no exception. The Jxta shell, a 100 percent Java implementation, allows you to experiment with Jxta, Sun's network computing platform for peer-to-peer development. The shell provides interactive access to the Jxta environment, allowing you to explore the power of the new technology without actually getting to the APIs and code. It provides a compelling starting point for any wanna-be Jxta developer. The first installment of this two-part series offers a quick introduction to the Jxta shell. It serves as a primer for installation, configuration, and basic shell commands. (3,000 words; January 11, 2002)
posted by J Slave 1/15/2002

The Jxta solution to P2PPeer-to-peer (P2P) networking is undoubtedly one of the most touted topics of the day. The popularity achieved by applications like Napster and Gnutella provides testimony to the potentials of peer-to-peer applications. Amid the plethora of efforts going on in this domain, Sun Microsystems initiated Jxta, a network computing platform for P2P application development. This article explores P2P and the Jxta effort in particular. It serves as an introduction to all early adopters, programmers, and hobbyists who wish to develop P2P applications. (4,100 words; October 19
posted by J Slave 1/15/2002

Monday, January 14, 2002

EDTN's e-library: Data Encryption SoftwareData Encryption | Data Encryption Standards | Digital Signatures | Internet Security Software | Network Security | Network Security Software | SSH Protocol
posted by J Slave 1/14/2002

IDSystems: In the Security Game, It's What and Who You Know The secret key is mathematically related to the public key in such a way that it is, for all practical purposes, impossible to derive the secret key from the public key using available computing power. Each public key system uses a different mathematical relationship to accomplish this and requires valid senders and receivers to perform different mathematical manipulations to use the technique
posted by J Slave 1/14/2002

Mobile Code, Agents, and Java Mobile Agents are autonomous, "intelligent" programs that move through a WAN (e.g. Internet), searching for and interacting with services on the user's behalf. These systems use specialized servers to interpret the agent's behaviour and communicate with other servers. A Mobile Agent has inherent navigational autonomy and can ask to be sent to some other nodes.
posted by J Slave 1/14/2002

A Cypherpunk's ManifestoCypherpunks write code. We know that someone has to write software to defend privacy, and since we can't get privacy unless we all do, we're going to write it. We publish our code so that our fellow Cypherpunks may practice and play with it. Our code is free for all to use, worldwide. We don't much care if you don't approve of the software we write. We know that software can't be destroyed and that a widely dispersed system can't be shut down.
posted by J Slave 1/14/2002

Secure Data Delivery A proxy at its most fundamental level is little more than a server that opens a target client socket connection and passes input from the connecting client to a server and output from the target server back to the connecting client. In practice, we need to support multithreading to do this without blocking on each client connection. If you approach this correctly, it's actually very simple.
posted by J Slave 1/14/2002

Smart cards: A primerCreate a development environment for building smart card apps
In order to develop smart card applications, you need a few things, namely: a smart card reader; software to communicate with the reader as well as some software to communicate with the card that has been plugged into the reader; and, of course, smart cards and smart-card hardware.
posted by J Slave 1/14/2002

Compress your datanothing forces you to use files when you use ZipInputStream and ZipOutputStream. The only stipulation is that you convert your data to byte arrays.
posted by J Slave 1/14/2002

Java Pro Magazine - Feature PageMany applications, from small to enterprise-sized, schedule tasks to run at set times. A task might be a once-a-day data export from the database at 2 A.M., a reminder e-mail sent two hours after some system event, or a periodic check every two minutes to see if a new file has arrived by FTP into a target directory. Although many off-the-shelf products for managing jobs and tasks in your application exist, developers can quickly build their own lightweight customizable component for creating and scheduling tasks by taking advantage of two new JDK Java classes.
posted by J Slave 1/14/2002

Java Pro Magazine - Feature PageMultithreaded programming allows you to execute code sequences in parallel (or psuedo-parallel on a single-processor machine). By taking advantage of CPU idle time, you can improve throughput and make interactive programs more responsive. You can also develop simpler and more efficient programs by modeling the solution as a set of parallel interacting threads. However, programming thread interactions is error prone and can get complicated easily. This article shows you how to reap the benefits of multithreaded programs and avoid common pitfalls. It presents models for thread programming and a framework that implements the models as a generic reusable set of classes.
posted by J Slave 1/14/2002

Sunday, January 13, 2002

JTellaJTella is the Java API for the GNUTella network. Using JTella, Java based GNUTella tools and servants can be created, with JTella providing the network interface code.
posted by J Slave 1/13/2002

JAMS JAMS is a fully functioning SMTP mail server written entirely in Java. It supports 3rd party plug-ins for mail filtering. For performance an RDBMS is used as a message store.
posted by J Slave 1/13/2002

JavaCC HTML Parser This is a JavaCC grammar for parsing HTML documents. It does not enforce the DTD, but instead builds a simple parse tree which can be used to validate, reformat, display, analyze, or edit the HTML document. The goal was to produce a parse tree which threw away very little information contained in the source file, so that by dumping the parse tree, an almost identical copy of the input document would result. The only source information discarded by the parser is whitespace inside of tags (i.e., the spaces or newlines between the attributes of a tag.) It is not confused by things that look like tags inside of quoted strings.
posted by J Slave 1/13/2002

Saturday, January 12, 2002

Free DownloadsQuickly search through lots of text (or binary data) can be slow by normal brute force methods. Here we have two much quicker ways to do the job - the Boyer-Moore and Knuth-Morris-Pratt text searches.

These implementations have an unusual twist, however. Usually the algorithms assume you can place all the data you'll search in the text buffer. Nothing could be further from the truth! The twist allows you to see if there's a partial match at the end of the buffer. You can use this information to try to match a search with data in the next block read (using something like PushbackInputStream).

This is the source to the Boyer-Moore algorithm. This is the source to the Knuth-Morris-Pratt algorithm. The Boyer-Moore is considered the more efficient of the two.
posted by J Slave 1/12/2002

Eric Raymond's open-source collection This directory contains sources for standalone open-source packages I have either originated or now maintain. I used to call it my `free software' collection. I don't anymore, for good reasons I have explained elsewhere.
All of this stuff is Unix sources unless explicitly noted otherwise. Binary RPMs are i386 with glibc6 unless otherwise specified.
posted by J Slave 1/12/2002

PngSuite - the official set of PNG test images This is a collection of graphics images created to test PNG applications like viewers, converters and editors. As far as that is possible, all formats supported by the PNG standard are represented.
posted by J Slave 1/12/2002

sixlegs.com - PNG Softwareall versions; read-only; freeware (LGPL) with Java source. (This is Chris Nokleberg's Java 1.1 PNG package, including source code. Version 0.6 supported transparency, gamma correction, progressive display, grayscale conversion, etc. Version 0.7 added support for sRGB, iCCP, and private chunk-handling. Version 0.8 added support for oFFs, pCAL, sBIT, sCAL and sPLT. Version 0.9 reduced memory usage and added support for iTXt. Version 1.0[a] was the first version released with full source code under the LGPL and included a workaround for a bug in IE4 and IE5. Version 1.1 added support for gIFg and gIFx. Write support is now planned for a separate package.)
posted by J Slave 1/12/2002

PNG Encoderall versions; write-only; 32-bit alpha support; requires JDK 1.1 (PngEncoder) or JDK 1.2 (PngEncoderB); freeware (LGPL) with source.
The PngEncoder class takes a Java Image as its input and produces a byte array in PNG format. This array can be saved in a file or sent to a client by a servlet.

The source Image is presumed to be based on the Java DirectColorModel; that is, pixels are four-byte ints containing alpha channel, red, green, and blue information. Thus, this PNG encoder creates PNGs with a color type of 2 (that is, RGB triples) and a bit depth of 8, optionally encoding alpha channel information. This class does not work with an IndexColorModel image.

posted by J Slave 1/12/2002

JIMI Software Development Kit Jimi is a class library for managing images. Its primary function is image I/O. Jimi was formerly a product of Activated Intelligence. Sun is making it available for developers who have code with dependencies on Jimi or for those who need image I/O functionality in applications running under 1.1.x versions of the JavaTM Platform. Jimi's range of supported formats includes GIF, JPEG, TIFF, PNG, PICT, Photoshop, BMP, Targa, ICO, CUR, Sunraster, XBM, XPM, and PCX, although some of these formats do not have complete support for all features.
all versions; read/write; freeware (formerly commercial). (This is an image toolkit supporting a number of formats, including PNG, either ``natively'' or via Java's ImageProducer / ImageConsumer model. PNG support was originally based on Jason Marshall's PNGImageProducer source code. JIMI was acquired by Sun in mid-August 1999.)
posted by J Slave 1/12/2002

Java(TM) Advanced Imaging API Home Page The Java Advanced Imaging API provides a set of object-oriented interfaces that support a simple, high-level programming model which allows developers to manipulate images easily.
Image processing techniques are used for manipulating and displaying images.
posted by J Slave 1/12/2002

The Kiwi Toolkit The Kiwi Toolkit is a foundation class library containing many classes that complement the Java Foundation Classes (JFC). The toolkit includes useful classes and components that were not provided with the JFC, such as a TreeTable component, a command line parser, a DateChooser dialog, and many others. To find out more about Kiwi, see the FAQ.
posted by J Slave 1/12/2002

Friday, January 11, 2002

When you get ads in your phone or utility bill, include them with the
> payment. Let them throw it away.
>
> When you get those pre approved letters in the mail for everything from
> credit cards to 2nd mortgages and junk like that, most of them come
> with postage paid return envelopes, right?
>
> Well, why not get rid of some of your other junk mail and put it in
> these cool little envelopes!
>
> Send an ad for your local chimney cleaner to American Express. Or a
> pizza coupon to Citibank. If you didn't get anything else that day,
> then just send them their application back! If you want to remain
> anonymous, just make sure your name isn't on anything you send them.
>
> You can send it back empty if you want to just to keep them guessing!
>
> Eventually, the banks and credit card companies will begin getting all
> their junk back in the mail. Let's let them know what it's like to get
> junk mail, and best of all THEY'RE paying for it! Twice!
>
> Let's help keep our postal service busy since they say e- mail is
> cutting into their business, and that's why they need to increase
> postage again!
>
> Send this to a friend or two or three...or fifty
posted by J Slave 1/11/2002

Java Pro ArchivesGet All Back Issues Online, Free!
For the first time, the archives from the leading technical magazines for developers and IT management are available for free in one place! Browse back issues of Java Pro or search the full archives. Find hundreds of tips, and download all the sample code.
posted by J Slave 1/11/2002

Thursday, January 10, 2002

A Programmers Heaven - Where C , C#, C , .NET, Java, Pascal, Visual Basic programmers go!Programmers' Heaven It's all here!
Choose from almost 11041 files and 2341 links that we have! Whether you are a beginner or an experienced IT professional, this is where you will find everything you need!
posted by J Slave 1/10/2002

Build your own ObjectPool in Java to boost app speedObject pooling allows the sharing of instantiated objects. Since different processes don't need to reinstantiate certain objects, there is no load time. And since the objects are returned to the pool, there is a reduction in garbage collection. Read on to learn, via the author's own example object pool design, how to employ this approach to boost performance and minimize memory use.
posted by J Slave 1/10/2002

Wednesday, January 09, 2002

Esus.com Help build the largest human-edited Java directory on the web!
posted by J Slave 1/9/2002

DocFather Search Engine for Documentation Ever wanted to search through the Java Tutorial or Java 2 SDK documentation? This DocFather search facility does just that. It can be used over the Internet, and, alternatively, the applet version can be downloaded for local use.
posted by J Slave 1/9/2002

SUN DEVELOPER CONNECTION[sm] - EvangCentral Welcome to EvangCentral. This site is brought to you by the Technology Evangelism team at Sun. We're the team that routinely engages the software developers who make up the growing family of Network Age devotees. Here you will find a list of our technical speakers, who inform, encourage and motivate the developer community, along with links to everything you need to know about Java[tm] technology, Jini[tm] network technology, Solaris[tm] Operating Environment and XML. These resources are intended to bind minds and spirits in pursuit of the best software in the universe. The many evangelists at Sun welcome you. Join us in this crusade by becoming a Java Virtual Evangelist
posted by J Slave 1/9/2002

Monday, January 07, 2002

(((oooo))) Fimoculous.com: Feeding TimeA metalist of lists: Links to more than 150 end of year lists, organized into categories such as tech, books, music, film, people and so on
posted by J Slave 1/7/2002

Yahoo! Buzz Index - Overall Leaders In looking at the largest one-week buzz scores for 2001, we uncovered a list far different than the overall leaders. Driven by news and current events, spikes in search led to some intriguing results. Let's break it down...
posted by J Slave 1/7/2002

Lycos 50 with Aaron SchatzHere are the top 50 searches on Lycos for the week ending December 29, 2001
posted by J Slave 1/7/2002

Google Press Center: Zeitgeist What was hot and what was not in the year 2001? Our Year-End Google Zeitgeist feature provides a glimpse at what captivated the world over the past 12 months, based on the most popular search terms on the world's most popular search engine.
posted by J Slave 1/7/2002

SEO and the Web Site Design Process Does it make sense for Web site designers to consult with a search engine optimization (SEO) firm during the design and maintenance of client Web sites? That depends on various factors, including the size and level of sophistication of the site and client goals and objectives.
posted by J Slave 1/7/2002

Robust event logging with SyslogBecause event logging is often an afterthought, Java developers often ignore this task while programming. However, logging allows developers to instrument their code so the operations staff can deal with any problems that arise. In this article, Nate Sammons introduces Syslog, a robust logging system that divorces the act of logging an event from the handling of that event. You'll learn how to easily integrate the Syslog package into your Java programs and how to leverage Syslog as an integral part of new system development. (4,800 words)
posted by J Slave 1/7/2002

Log it or lose itIt's vitally important that Java servers send error messages, warnings, database operation results, and so on to an error log. If a Java server runs in a Windows environment, it is imperative that the event logging take place in the NT Event Log. In this article, Nitin Nanda and Sunil Kumar explain Java event logging in a Windows NT environment. They begin by introducing such event logging mechanisms as logfiles, event sources, event categories, event identifiers, and event messages. After covering the fundamentals, they explain how to enable a Java application to log messages to the NT Event Log. (2,300 words; September 28, 2001)
posted by J Slave 1/7/2002

Thursday, January 03, 2002

javootoo.comjavootoo.com is the Look and Feel Source for both Java™ developers and end-users.

Developers will find new Look And Feel to include in their applications, code snippets for Swing programming, tips for JNLP applications.

Users will be able to choose and change the Look And feel of their applications.
posted by J Slave 1/3/2002

Your ultimate Java software directory.Tons of Java Software
posted by J Slave 1/3/2002

L2FProd.com > SkinLF Yesterday, Winamp, THE mp3 player, introduced skinnable user interfaces. Today all applications MUST be skinnable: your cdplayer, your email notifier, even your operating system ! Now with Skin Look And Feel, YOUR Java™ application is skinnable !
posted by J Slave 1/3/2002

| .:: IzForge.com ::. | IzPack (Java Software Installer Builder)IzPack is a powerfull Java installation software that you can use to distribute you own applications in singles Jar files that can be executed on any Java capable system. It uses the maximum compression level (9). It lets you organize an installation in packs, so that the final user can select the optionnal packs he wants. You can even improve it through a plugin-like architecture !

The project is free software and mentionned in the section "other GNU Java Program" on the Free Software Foundation website.
posted by J Slave 1/3/2002

Rohit Khare's ICS Home Page Rohit Khare joined the Ph.D. program in computer science at UC Irvine in 1997 to study Internet-scale protocol design. He was previously on the technical staff of the World Wide Web Consortium at MIT, where he focused on security and electronic commerce issues, as well as at MCI Internet Architecture. He has been broadly involved in the development of cryptographic software tools and Web-related standards development, including as Editor of O'Reilly's World Wide Web Journal and founder of 4K Associates, a standards-strategy consultancy. Rohit received a B.S. in Engineering and Applied Science and in Economics from California Institute of Technology in 1995.
posted by J Slave 1/3/2002

XForm - Self-validating web forms (LGPL)XForm is a server-side Java package that dynamically generates and validates interactive web forms.

XForm dramatically simplifies the development of complex form interfaces. The form, it's validation, and error behavior are specified by a single XML Document. The client receives standard HTML and JavaScript that work with any browser.

XForm is Free Software.
posted by J Slave 1/3/2002

Microsoft Visual J# .NET Beta 1 Visual J#™ .NET is a development tool for Java-language developers who want to build applications and services on the .NET Framework. Visual J# .NET joins more than 20 previously announced languages with its ability to target the .NET Framework and first-class XML Web services.
posted by J Slave 1/3/2002


This page is powered by Blogger. Isn't yours?

Projects  Contact   Bio  Articles   Home  Architect   Coder   Author