Archive for March, 2007

Posted on Mar 31st, 2007

E-mail is one of the most powerful and widely used communication tools around today. Every day we log onto our computers at work and most of us will go straight to Outlook to check what new mail we have received. It provides a quick, easy way of communicating not only with other people in our organisation but people all over the world. There are huge benefits to business in having the ability to quickly and easily transfer information as well as being able to set up meetings more efficiently. It is however, essential that we understand the best ways in which to manage this information.

Email Generation Rules

Before you send someone an email there is one simple question you should ask yourself:

‘Do you need a response from the recipients urgently?’

If the answer to this question is YES, then you should be trying to contact them by telephone, pager or in person. For example if you wanted someone to attend a meeting in 30 minutes time there is no guarantee that they will read their incoming messages in that time and may therefore miss the meeting. However, if the answer is NO, then email could then be used as an option.

Once you have decided that email is the best option for relaying the necessary information you should follow these guidelines:

High Priority Messages: A message sent as "high priority" requires action by the end of the following day.

Time Specific Messages: Any message that is time specific must be expired after the relevant date. We will look at how to set expiration dates/times later is this section.

Routine Message Categories: All routine messages will be categorized and either filtered to Personal Folders or, where appropriate, removed from email to a bulletin board.

Follow Up Required: If a message requires reading or follow up the recipient must be in the To: field of the message.

Information Only: If you put someone into the Cc: field of a message you should not be expecting the recipient to read or action it. You have sent it for their information only.

Message Content: Keep your message brief, only use attachments if the data volume is significant and use the heading and the first 2 lines of your message to express both the content and the expected action you are requesting

Email Processing

Most of you will open Outlook when at the start of the day and leave it open until you shutdown your computer at the end of the day. To work more effectively with your e-mail program we suggest that you following these simple guidelines wherever possible:

  • Only check your Inbox 3 times a day - morning, after lunch and prior to going home
  • Your Inbox should be empty when you close out of Outlook at the end of each day
  • Filter your emails. We will look at how to do this later in this section Use Tasks and Schedule instead of e-mail messages

When a message arrives in your Inbox, after you have read it, you should do one of the following things:

  • Delete iy
  • Schedule it
  • Delegate it to someone else
  • File it ie personal folders or in the case of attachments, on your hard drive
  • Reply

Leanne Koster is the Director of Big Blue Marble Software Training Solutions, http://www.bigbluemarble.com.au, specialising in in-house software applications and standard office applications training. Whether you have one person to train or one hundred, there’s a training solution to suit.

Posted on Mar 31st, 2007

XML parser is a software module to read documents and a means to provide access to their content. XML parser generates a structured tree to return the results to the browser. An XML parser is similar to a processor that determines the structure and properties of the data. An XML parser can read a XML document to create an output to generate a display form. There are a number of parsers available and a few of them are listed below:

The Xerces Java Parser

The main applications of the Xerces Java parser is the building up of the XML-savvy web servers and to ensure the integrity of e-business data expressed in XML.

expat XML parser

The expat XML parser is written in C and runs on UNIX or W32.The expat XML parser is not a validating processor that is you can use it only to write an XML parser. This parser is contributed by James Clark.

XP and XT

XP is a Java based, XML validating parser and XT is an XSL processor. Both are written in Java.XP detects all non well formed documents. It gives high performance and aims to be the fastest conformant XML parser in Java. On the other hand XT is a set of tools for building program transformation systems. The tools include pretty printing; bundling of systems, tree transformation etc,

SAX

Simple API for XML (SAX) was developed by the members of a public mailing list (XML-DEV).It gives an event based approach to XML parsing. It means that instead of going from node to node, it goes from event to event. SAX is an event driven interface. Events include XML tag, detecting errors etc,

XML pull parser

It is optimal for applications that require fast and a small XML parser. It should be used when all the process has to be performed quickly and efficiently to input elements.

XML parser for Java

It runs on any platform where there is Java virtual machine. It is sometimes called XML4J.It has an interface which allows you to take a string of XML formatted text, pick the XML tags and use them to extract the tagged information.

*************************************************************
Visit http://www.xml-training-guide.com for a complete introduction to XML programming. Learn XML, DTD, Schema, XSLT, Soap and other related technologies. To access online version of the above article, go to http://www.xml-training-guide.com/xml-parser.html
*************************************************************

Posted on Mar 30th, 2007

SAP Business One has about 4 years of implementation history and very robust presence in the USA, Europe, Australia, New Zealand, plus it has strong positions internationally. Considering the fact of relatively young age – the design of the system, including object model enable advanced customization, integration with both legacy and new technologies. We see certain stake on Microsoft technologies, such as MS SQL Server and COM object model. Integrated CRM module allows you to deploy Microsoft Outlook client for messaging, just to name a few. In addition to the customizability – SAP Business One has transaction integration to high end SAP, which allows this product to consolidate mid-size and small subsidiaries across the USA or internationally to your SAP corporate ERP system – franchisees network, dealerships, manufacturing facilities, etc. In this small article we will give customization scenarios to IT managers, who are planning to deploy SAP Business One integration, customization, reporting, etc.

• SAP Business One SDK. SAP Business One Software Development Kit has User Interface API, Data Interface API, Java Connector. The recommended way of customization design is XML web services, which allows you integrate custom web portals with SAP Business One objects: Sales Orders, Inventory Items, Customers. Ecommerce or Web-based Extranet (collaboration with your permanent vendors and customers) would be a good example.

• Implementation Partners. SAP Business One has several licensing & certifications criteria. One path allows the SAP partner to provide installations and so-called functional consulting. This means that these companies are experts of tying your business processes to SAP Business One standard set of modules and standard features/functionality. In our opinion – SAP BO is not only for relatively small to midsize businesses, but also for mid-size to large and even corporate business (subsidiaries and branches). Large companies have combination of multiple systems, including legacy – often they combine several platforms: Windows, Unix/Linux, Lotus Notes Domino, Siebel CRM, Salelogix, IBM DB2 to name a few. In this situation you need partnership with technically-savvy and experienced partner

• Customization Partners. SAP Business One SDK is not an open technology and in order to get access to it SAP Partner should get SDK development training and pass certification exam. At the same time, SAP SDK uses open tools, such as Microsoft Visual Studio, for example for coding itself. This leads to the common practice when Customization partners do not provide implementation and functional consulting services, but rather concentrate on development – offshore business location is also common. Some risk, however might be attributed to the fact that one organization does business processes specification and another one realizes them in custom coding.

• Technology Partners. The best result in the custom solution in our opinion could be achieved with SAP Business One Partner, who does both sides: Implementation/Functional and Customization/Development. Considering less then 10,000 SAP Business One implementations worldwide – it might be difficult to find local technology partner in your area, in this case – the compromise is to use remote partner with the network of local independent contractors.

Happy implementing, customizing and modifying! If you want us to do the job - give us a call 1-866-528-0577! help@albaspectrum.com

Andrew Karasev is Chief Technology Officer at Alba Spectrum Technologies ( http://www.albaspectrum.com ) – SAP Business One, Microsoft Business Solutions Great Plains, Navision, Axapta MS CRM, Oracle Financials and IBM Lotus Domino Partner, serving corporate customers in the following industries: Aerospace & Defense, Medical & Healthcare, Distribution & Logistics, Hospitality, Banking & Finance, Wholesale & Retail, Chemicals, Oil & Gas, Placement & Recruiting, Advertising & Publishing, Textile, Pharmaceutical, Non-Profit, Beverages, Conglomerates, Apparels, Durables, Manufacturing and having locations in multiple states and internationally. We are serving USA Nationwide: CA, IL, NY, FL, AZ, CO, TX, WI, WA, MI, MA, MO, LA, NM, MN, Europe: Germany, France, Belgium, Poland, Russia, Middle East (Egypt, Saudi Arabia, OAE, Bahrain), Asia: China, Australia, New Zealand, Oceania, South & Central America: Mexico, Peru, Brazil, Venezuela, Columbia, Ecuador, Chili, Paraguay, Uruguay, Argentina, Dominican Republic, Puerto Rico

Posted on Mar 30th, 2007

.Net Framework is a platform or development environment to seamlessly create web-applications that are accessible through client machines from across the globe. These web-applications adopt open standards such as eXtensible Markup Language (XML), HyperText Transfer Protocol (HTTP), and Simple Object Access Protocol (SOAP) to interact with applications that are available in other platforms.

.Net Framework is platform independent and language independent. This means that .Net Framework allows you to use different programming languages such as VB.Net, C#, Jscript, VBScript, and Managed C++ and run applications on different platforms such as Unix, Macintosh, and Linux. Moreover, .Net Framework enables you to use various off-the-shelf libraries that help the development of applications faster, easier, and cheaper. .Net Framework now supports over 20 different programming languages.

The reason how .Net Framework supports so many programming languages is well answered by the concept of Common Language Runtime (CLR) engine. The CLR engine, instead of compiling the code into native code, compiles the code into Microsoft Intermediate Language (MSIL). The MSIL, a set of instructions, then translates the code into native code. This concept of CLR is significant in making .Net Framework, platform and language independent. In addition, CLR is responsible for run-time services such as language integration, security enforcement, memory process, and thread management. Thus, .Net Framework provides a wide infrastructure to create web-applications. Microsoft has classified .Net Framework into two categories such as CLR and .Net Framework class library.

Common Language Runtime: The CLR, as mentioned in the above paragraph, provides common runtime services to all .Net applications. In addition, the CLR reduces the developer’s time to write lengthy code for using features such as life-cycle management, strong type naming, cross-language exception handling, and dynamic binding to turn business logic into a reusable component.

.Net Framework class library: This class library includes predefined sets of functionality that developers can use in their own applications. The library consists of three key components:

• ASP.NET

• Windows Forms

• ADO.NET

The .Net Framework provides a number of advantages such as fewer lines of code, complete compilation, ease of deployment, web settings and web.config, and caching. By fewer lines of code, we mean that .Net Framework allows developers to use Web controls, thereby spending more time in implementing application design and the general flow of application. Another important part of .Net Framework is that everything including Web controls, Web forms, and server-side blocks of code are compiled when a page is requested for compilation. Ease of deployment refers to the concept that components in .Net Framework can be compiled on your machine and then uploaded with all the pages in the /bin directory. Unlike a web-application in ASP, where pages have to be uploaded and the components of the pages have to be registered with the operating system, the components in a web-application in .Net Framework need not be registered.

Web settings means the configuration of .Net applications that can be accomplished through web.config, an XML based file. Because a web.config file is in XML, it is easy to understand and it is also programmatically modifiable. When a web.config file is modified the machine detects the changes immediately. This enables quick configuration of .Net applications. Caching is the term used to describe the process of collecting commonly accessed data into memory for quick retrieval. .Net Framework support three types of caching: output caching, data caching, and fragment caching.

***********************************************
Visit http://www.dotnet-guide.com for a complete introduction to .NET framework. Learn about ASP.NET, VB.NET, C# and other related technologies.
***********************************************

Posted on Mar 29th, 2007

Purchasing manufacturing software does not have to be difficult. It can actually be rather simple to do if you know what you are looking for. There are a large variety of options available to serve various needs in this type of software. There are also a large range of prices. What you choose is completely up to you, but having high quality is well worth the extra costs. Here are some things to consider about your choice in manufacturing software:

• Begin by realizing that you should take a look at several software choices before making a choice. While the first one you see may be a great one to choose as it fills your needs, something down the road is likely to be better in someway. It takes only minutes to research this information on the web and the gain is potentially large.

• When considering manufacturing software, look at what the product offers. Some will help you with the design of the element and that is it. Others will walk you through the quoting, the proposals, the designing and the implementation. They will focus on either one or two functions or they will take you through the whole thing.

• Do they help you with your accounting needs as well? Many do and this is an excellent option as it can easily help with accounts payable, commissions and many more aspects.

• You will want to find the right sized product as well. Some are meant for small to medium size organizations while others for much larger. Also, consider your needs for the type of manufacturing as there will be many differences here too.

What can choosing the right manufacturing software do for you? It can help to keep you organized and efficient when it comes to taking on clients or pleasing them. Manufacturing software is designed to help you thoroughly.

For more information please see http://www.manufacturing-software-deals.co.uk.

Posted on Mar 29th, 2007

Software Engineering is the Systematic Approach for analysis design implementation and maintenance of Software .It involve the use of Case tools. Computer software is the product that Software Engineers design and develop and virtually every one in the industrialized world use it and is important because it effects nearly every aspect of our lives and has became needy in commerce, culture and our every day life.

The Steps involved in building a computer software like you build any successful product ,by applying a process that leads to a high quality result that meets the needs of people who will use the product .

There are different steps involved in developing the software and generally there are three phases involved in software development. Definition , Development and Support phase.

The first phase is of definition which every thing about the software is gathered and each and every information which is needed to develop a software is gathered. In short a proper road map is prepared and in which key requirements of the system and the software are identified.

The second phase which is the Development phase, that is a software engineer attempts to define how data are to be structured how function is to be implemented within a software architecture , how procedural details are to be implemented how interfaces are to be characterized and how the design will be translated into a programming language.The method applied during the development phase might vary but the three technical tasks should always occur that are : Software Design , Code generation , and software testing.

The Third and the last phase focus on changes which occur after the development of complete software this phase is associated with error correction, adaptation, enhancement and prevention of the software.

In addition to these activities there are also some activities involved in the development of software and these activities are used throughout the Software development these activities are called Umbrella Activities. These activity include :

Software Project tracking and control.

Formal technical reviews.

Software quality assurance.

Software Configuration management.

Document preparation and production.

Reusability management.

Measurement.

Risk management.

There are many phases of software engineering and it is a very deep field of software development and all the things discussed above is a part of the introduction.

Fahad Ahmed doing Software Engineering From Karachi University fahadahmed_3310@hotmail.com

Posted on Mar 28th, 2007

Many software and hardware producers take pride in the exponential pace of technology change, but for users and consumers of their products and services the rapid technological obsolescence often means increased costs, frustrations, and unfulfilled promises. Corporate America expects to make capital investments in goods and facilities that should last five, ten, even twenty years, but only an eighteen-month lifetime for computer software and hardware investment is not uncommon.

Lowering the costs to develop new software solutions or extending the lifetime of software applications are two complementary approaches to addressing technological change. These goals can often be met by taking a declarative strategy when designing software systems independent of the programming methodology employed.

Issues with Imperative Programming

Most programming projects today use the imperative style of programming. Developers write sequences of operations in a language, such as C++, Java, Visual Basic, etc., that implement an algorithm, or recipe, for performing tasks. The algorithm for the task mixes logical, or relational, statements about the task to be solved and control statements about how to calculate the solution. The logical statements describe "what-to" calculate while the control statements describe "how-to" calculate. Debugging the algorithm consists of verifying the accuracy of the logical statements and fixing the control statements, if necessary.

There are many problems with the imperative approach. The sequence of operations critically determines the correctness of the algorithm. Unexpected execution sequences through an algorithm caused by user input actions or real-time events in a multitasking environment may result in subtle or catastrophic algorithm failure. Writing the control logic is the programmer’s responsibility and, therefore, subject to implementation errors. Understanding a program’s algorithm is often difficult for other developers without extensive metadata, or comments, on the code and empirical tracing of the program’s execution with sample data. Verifying program correctness consumes a significant portion of the development effort, but also usually fails to discover a significant number of defects.

To address the problems associated with imperative programming, the computer industry has developed and advocated many approaches. Structured programming and campaigns against "go-to" statements address some of the problems discovered with ad hoc control structures and statements. Modularization initiatives stress decomposition techniques on the premise that humans can better comprehend, reason about, and maintain smaller pieces of code. Object-oriented programming advocates program constructions using reusable components, libraries, and frameworks. The pattern programming school stresses analogies to other fields, such as architecture, by constructing programs using well-designed and crafted solutions, or patterns, that recur in many programming contexts.

What is Declarative Programming?

Declarative programming separates the logic, or what, of an algorithm from the control, or how, of an algorithm. The programmer still specifies the logic or equations specifying the problem’s relations, but the programming system is responsible for control, or how the logic is evaluated. The most familiar examples are spreadsheets and query languages for relational databases. The user, or programmer, specifies a mathematical relation as a query, say in SQL, for what to retrieve, while the database engine determines how to execute the query against the database.

There are many advantages to declarative programming over the imperative style. In declarative languages, programmers do not specify sequences of operations, but only definitions or equations specifying relations. Unlike imperative programming, the logic relations in declarative programming are execution order independent, free of side effects of evaluation, and semantically clear to visual inspection.

The declarative family of programming languages has a long history in the academic computer science community and specialized areas of commercial application, such as compiler construction, expert systems, and databases. Declarative languages have two main family trees. The logic declarative languages, such as Prolog, are based on first-order predicate calculus, which generalizes the notions of Aristotelian true or false values to statements, or predicates, involving relations among any entities. The other family branch consists of functional declarative languages, such as Miranda, Haskell, and SML. The functional declarative languages are based on the l-calculus developed by the mathematician, Alonzo Church in the 1930’s. l-calculus formalizes the notions of recursive application of pure functions to computable problems. Although not widely known as such, the latest programming fashion, XSLT, an extensible stylesheet language for transforming XML, is also a functional declarative language.

Despite the theoretical advantages of declarative programming languages, they do not have widespread use in commercial programming practice despite an attempt in the 1980’s by Borland to mass-market a PC version of Prolog along with the highly popular Turbo Pascal. There are many factors contributing to the infrequent use of declarative languages. A large contributor is the paucity of collegiate training in declarative languages, but awkward syntaxes of some languages, inefficient compilers and run-times, and restricted domains of applicability of generalized "how-to" mechanisms are all contributors. Using Declarative Strategies in Commercial Software

While declarative programming languages have not received wide-spread commercial usage, the strategy of separating logic, or what, from control, or how, in an algorithm is a powerful, generalized technique for increasing ease of use and extending the longevity of software. Declarative techniques are particularly powerful in user interfaces and application programming interfaces (APIs) that have a rich, complex set of inputs over a relatively small field of execution behaviors.

Two examples of commercial software that illustrate the applicability of declarative techniques are DriverLINX and ExceLINX in the fields of data acquisition and test instrument control.

Using Declarations for Data Acquisition

DriverLINX is an API for controlling data-acquisition hardware used to measure and generate analog and digital signals interfaced to all types of external transducers. Data-acquisition applications include laboratory research, medical instrumentation, and industrial process control.

Traditionally, APIs for data-acquisition devices modeled the characteristics of the hardware design and had a large number of functions of one or more parameters to setup the hardware and control data flow through the system. The ordering of sequences of operations was often critical to correctly programming and controlling the hardware. Upgrading to new data-acquisition hardware was often costly as hardware-necessitated changes in the order of operation sequences to program the hardware required costly software changes.

To surmount these problems, DriverLINX takes an abstract and declarative approach to data-acquisition programming. Instead of modeling specific board designs, DriverLINX abstracts the functional subsystems of data-acquisition hardware into generalized attributes and capabilities. Programs request the measurement task they want to perform by parameterizing a "service request" declaration. The DriverLINX runtime determines how to satisfy the service request using the available hardware and returns the measurements as a packetized stream to the program. The data-acquisition programmer is relieved of any responsibility for data-acquisition algorithm control.

Besides relieving the programmer of control responsibility, the DriverLINX abstract, declarative approach gives the program syntactic and semantic interchangeability when migrating to equivalent hardware products. The abstract, declarative approach also helps isolate the software vendor from early technological obsolescence of change in the computer industry by focusing on the immutable logic of data-acquisition relations while the control mechanisms vary with software developments. DriverLINX has been a viable approach to data-acquisition programming for more than 12 years despite the market evolution from 16-bit Windows to .NET today.

Using Declarations for Test Instruments

Test instruments, such as digital voltmeters and electrometers, have evolved from simple devices with a front panel knob and display screen to sophisticated measurement processors performing dozens of measurement and control functions. Like data-acquisition devices, typically developers send a carefully ordered sequence of commands to an instrument to setup the measurement and then send additional command sequences to control the data flow of measurements from the instrument. The aforementioned problems for developers using imperative approaches to instrument control significantly limit ease of use and prohibit quick instrumentation solutions to short-term measurement needs.

ExceLINX is an add-in to Microsoft Excel that allows rapid specification of instrument test setups by using worksheet forms. Users specify, or declare, the channels, configurations, sampling rates, triggering, and data locations for the measurements they wish to perform by filling out an Excel worksheet. When the user selects the "start" button on the toolbar, ExceLINX translates the specification into the correct command sequence for the target instrument, initiates the measurement, and flows the data back to the requested worksheet. Users can setup and collect measurements by themselves in minutes using logic specifications compared to days or weeks using programmer’s time for imperative specifications.

Internally, ExceLINX also uses a declarative approach to handling the complex problem of field validation for the worksheet forms. Instruments have hundreds of parameters with complex overlaps among parameters. To validate whether the instrument supports the parameter set the user selected, ExceLINX maintains a dependency tree of allowed, disallowed, and unused parameters for every input cell on the worksheet. Each node in the tree also maintains logical relations among the selected set of parameters that ExceLINX evaluates at runtime to cross validate user input selections. Each supported instrument model has different parameter semantics, but ExceLINX can easily handle this complexity by switching model trees because the model-specific logic in the validation tree is separate from the shared control implementation in the ExceLINX code.

Declarative programming strategies that separate logic from control in algorithms are powerful techniques that can be used with today’s popular imperative languages. These techniques can make software more interchangeable, maintainable, usable, and endurable.

Copyright Roy Furman, M.D, Ph.D. 2005

Roy Furman, M.D., Ph.D. is Director of Research and Development at Scientific Software Tools, Inc. He leads a team of software developers who have developed over 70 commercial software products for customers in the manufacturing, high technology, healthcare and life science industries. Visit their website, http://www.sstnet.com, for articles and information on software development.

Posted on Mar 28th, 2007

If there still are few unprotected computers left, I haven’t seen any. Every emerging threat causes means of defense to appear. Anti-viruses and firewalls were the first. Now most computers have also an anti-spy program installed. More and more often experts say that some computers need autonomous anti-keylogging protection as well.

Or do they? Isn’t a separate anti-keylogger on a PC a little too much? Can a user do without it–why so much attention to a particular type of what is usually called spyware? Well, the threat is extremely serious, that’s why.

Information is not a liquid, but, unfortunately, it tends to leak quite the same way. First something trickles out, then…Whole businesses may be washed away in no time; and the damage which data leak cause to state and government institutions can be terrifying. Data leakage is in a way comparable with a break of a dam, with one clear-cut distinction that makes all the difference. There is also another factor- information value. A tiny drop of information, if lost, is likely to cause irretrievable damage.

Money losses due to online fraud are only the tip of an iceberg. There may be irremediable mischief that can never be repaid. It happens when confidential information people have to consign to authorities is stolen. Information having to do with people’s health, work, education, families, can be pinched, not out of simple curiosity, of course. Addresses and phone numbers, school and university records, tests results, police records, health records, insurances, tax records, voters lists and so long and so forth–all these contain bits of information that if made public can probably do harm to people mentioned there.

How simple and cheap it is now to get hold of spy software! Scores of various spy programs are available online, and many of them are free. Just imagine that they are within a mouse click from anyone - and do thank God if it is only some suspicious spouse.

Of course, there are means of defense. Loads of programs are specially created to counteract spy software, and they are also available online. Why data stealing is flourishing then? The problem is that the "means of defense" are, as it often happens, half a step behind "means of offense". Signature bases which all the anti-spy software depend on, are made up using clips of spy programs’ codes; if a base doesn’t contain the "autograph" of some spy program or virus, users are helpless against it. And what if the spy software is brand-new? What if it is tailor-made for one particular computer or network (not yours, if you are lucky enough) to be used only once? What if a respectable program for monitoring is used for spy purposes?

So, even if your PC does have some anti-monitoring or anti-spy software with a signature base, your PC may be being scanned right now anyway.

One useful tip: When reading an article where some term (for example, "spyware") is used often, make sure the author and you mean the same. There is quite a mess in definitions when it comes to types of software. Not surprisingly for those who still remember English lessons at school, every noun ending with "ware" is a mixture of objects having something in common–usually used for similar purposes. So it tends to be when "ware" is short for "software". Sometimes it’s pretty tricky to define exactly what software it includes.

If software collects information without users’ knowledge and transmits it, such a program is usually automatically labeled "spyware" no matter how valuable this information is. Well, let’s use common sense. If spyware is a mixture of different software products based on different principles, it’s unlikely that there can be one solution that could work against all of them. Absolute protection is a pie in the sky.

What kind of spyware is the most dangerous? Not just annoying, like most adware, but really dangerous? There is particular kind of software specially created for stealing information. One of the most effective ways of stealing information from a PC is capturing keystrokes. It would not be out of place to know the enemy better. Well, here they are:

Keylogging Programs (keyloggers, key loggers, keystroke loggers, key recorders, key trappers, key capture programs, etc.) belong to the group of tools that monitor PC activity. A small, fairly simple program (a programmer can write a plain one in a couple of days) captures everything the user is doing – keystrokes, mouse clicks, files opened and closed, sites visited. A little more sophisticated programs of this kind also capture text from windows and make screenshots (record everything displayed on the screen) – so the information is captured even if the user doesn’t type anything, just opens the views the file.

Software products of this type were initially designed solely for recording keystroke information including the system keys, to the special log file to be analyzed by the person who installed this program. Log files can be sent within the network to the shared place, to the ftp server in the Internet, by e-mail etc. These new software products have many additional functions - they intercept information from windows, capture mouse clicks, make snapshots of the screen and active windows, record all received and sent emails, monitor file activity, monitor system register, monitor the printer queue, intercept sound from the microphone and video pictures from the web-camera connected to the computer, etc.

Keyloggers can be included into freeware, shareware, and even into commercial programs. Trojan programs, viruses and Internet worms pretty often contain keyloggers, too. That is why it is so important to apply special anti-keylogging protection.

Who needs separate anti-keylogging protection? We can easily deduce the answer:

Everybody whose data are really valuable and who will suffer great losses if they are stolen.

Everybody who deals with other people’s confidential information.

Everybody whose work requires keeping information in secrecy.

And anybody else, who simply doesn’t like the idea of his or her information (even if it isn’t a top secret) leaking anywhere.

Alexandra Gamanenko currently works at the Raytown Corporation, LLC — an independent software developing company. visit its website at: http://www.anti-keyloggers.com

Posted on Mar 27th, 2007

Where to start? Well you are probably reading this from a windows based machine, so I will elaborate on Ubuntu. Ubuntu is backed by Canonical, a company set up by Mark Shuttleworth, a South-African born multi-millionaire, as he started Thawte, the internet security certificates company. Linux is based off of Unix, which was the first widespread operating system (OS) and has it roots in the 1970’s.

Fuelled by its backers, Ubuntu has topped the Linux distribution lists overnight. Ubuntus slogan is "Linux for Human Beings" which gives the essence of what the project is trying to achieve: to get normal people to use Linux. This is no easy task with Microsoft dominating the computer OS market for well over twenty years.

Ubuntu is fighting its corner though, with its easy to use interface from Gnome and it’s file system from Nautilus (both open-source projects, like Ubuntu). Ubuntu has everything built in from the ground up, making it attractive for buisness’, local governments and the average user.

Did you like Firefox Web Browser? If you did you are one of the over 100 million people who do. Firefox is built straight in to Ubuntu, along with Evolution Mail (Like Outlook Express). In fact Ubuntu has a lot of what the everyday user needs: it can burn dvds, cds, play all your media and more. It is these built in features from one compact disc that make Ubuntu special.

Will it replace Windows? The direct answer is no. If you like me have a lot of commercial(pay-for) software then Ubuntu cannot use them. The exception to this is some Games like Doom and Quake which people have re-engineered to be run in Ubuntu. In most cases this should not matter as Ubuntus piles of software does the job for you.

It is worth a try though, even if you do not have a cd-burner, Canonical (The company behind Ubuntu) will ship it to you without cost, you pay nothing! It is also cheaper to ship more than one cd, so you get copies to distribute.

The Future of Open-Source Who knows? The future looks bright with Ubuntu knocking down inhibitions people have about Linux. Linux has always been popular in Universitys, where all good ideas start! As to whether Linux will overcome Microsoft? I doubt it in the near future as Windows has exclusive distribution deals with every large pc manufacturer, making Windows the default choice. Not every monopoly lasts though, and Firefox is an indication of the future.

Originally Appeared on www.DUeyFinster.com.

Posted on Mar 27th, 2007

Looking at all the ads which promise to get rid of all spy programs, one may wonder why there is still plenty of them everywhere and the situation is by no means getting better. So let me spoil the advertisers’ mood and show some of the "holes" in the majority of software products we expect to protect our data.

Speaking about drawbacks of anti-spyware, let’s take the word "spyware" in the narrow sense for a change and call "spyware" only software products that really spy, i.e. steal valuable information you want to keep private. Let’s leave aside adware — this motley crew of advertising stuff; information that some of them "steal" isn’t valuable enough. It is keylogging programs that we should associate with the term "spyware" first of all. This breed is exceptionally dangerous — such threats as flourishing online bank fraud and the recent outbreak of keylogger-containing Trojans prove this.

Generally speaking, most anti-spyware works like that… Don’t stop reading, please. Don’t skip over the paragraph. Do you think that if you are not a tech person, it is none of your business? You don’t write this software, you just use it — so what? You haven’t made the car you are driving, either (well, there may be some exceptions…). But you do know (at least in general) what makes it move — and you won’t forget to fill up its tank or have it serviced from time to time. You know what will happen if you don’t. For the same reason you’d better know a bit about anti-spy software installed on any PC you use.

We all should know it to realize what exactly to expect from all these anti-spy products with cool names. Their creators and sellers promise you that these software products will "kill all spyware on your PC" (or something like that). First, is absolute protection possible? Second, what should we expect from a typical anti-spy program and what it is simply unable to do? To answer these questions, we should understand how it works.

Generally speaking, most anti-spyware works like that: it scans the operating system in search for suspicious bits of code. Should the program find any, it compares these suspicious pieces with bits of code (they are called signatures), which belong to already detected and "caught" spy programs. Signatures are kept in so-called signature base — the inseparable part of any anti-spy program. The more signatures it contains, the more spyware such program will detect, so your PC will be protected more effectively. As long as you update your anti-spy software regularly and the system doesn’t come across some unknown spyware product, everything is going to be all right.

As for me, this pattern looks pretty like police records and works like them, too. But…the problem is just like the one with police records – the fact that all included there are criminals doesn’t at all mean that all the criminals are included into the records.

Well, what about the criminals (spy programs) that are not included into the records (signature bases)? There are lots of such programs — more than that — some of them will never be in any signature base. Just like with criminals — some of them haven’t been caught yet, and some will never be caught – because of their "right of inviolability". Anti- spy products based on signature base analysis will never be able to protect against these spies. Don’t expect them to.

Let’s take a quick look on these elusive spy programs.

Group 1. Those which hasn’t been caught yet, because they are:

1. brand-new ones. They are being constantly written, released, used (for a very short time), detected and, finally, included into signature bases. Anti-spyware developers are now in the vicious circle of endless "spy hunt", trying to include as many spyware signatures (pieces of code) into the bases as possible - and fast! Faster, to outrun the competitors; faster, for new spyware - which is being written and released all the time – not to spread like a wildfire. That’s the way a signature base grows.

2. written to be used only once.

These "tailor-made", or should we say, "custom-made", keyloggers are extremely unlikely to be ever detected. As soon as they have done their jobs (stealing data, of course –often from the particular computer) they simply disappear, never to be seen again. Here belong keyloggers made mostly for such tasks as espionage.

The main problem: keylogging software is relatively simple and not too difficult to compile. Even an average computer programmer can write a simple keylogger in a couple of days. More sophisticated one will take longer to make, of course, but not too long. Hackers often compile source code of several keyloggers (it’s easy to find them in the Web–for those who know where to look for) — and get a brand-new one with an unknown signature even faster. If a keylogger can be installed remotely without the victim’s knowledge, it gives the hacker great possibility to steal any information he pleases. If there is an opportunity, there always will be one to use it. The period of time when a new spy already exists, but the updates have not been released yet, is the very time when hackers make their biggest profits. Trying to catch them all is a hopeless idea; it looks too similar to catching fleas one by one.

Group 2. "Sacred cows".

No signature base will ever have their signatures. Here belong mostly monitoring programs, which can be used for spying as well. First, the ones created by (or for) government agencies – such as the famous Magic Lantern (the brainchild of the Cyber Knight project). No product which uses a signature base will protect against it; an ordinary anti-spy will never detect such a program. The same situation with other monitoring software, which certain agencies utilize. These monitoring products simply "don’t exist" for signature-base-using anti-spyware (though they can well exist on any PC–yours included)

If you think I’m painting it too black let’s recall what happened when code of D.I.R.T. (a covert spying tool developed by Codex Data Systems) leaked out couple of years ago and was found in the Web (merely by accident, by the way). Once a top-secret project, it did become an open secret — but the signature of this powerful monitoring software hasn’t been included in any signature bases. That’s what worries me the most; after this information leak nobody knows for sure WHO can be using it –and WHAT FOR. What if some other government monitoring program trickles into the Internet, too?

Monitoring programs for parental control or workplace surveillance are very common and easily available from the Web. However, they can be used not only for those absolutely legitimate purposes. Any monitoring program is actually a double-edged sword because it almost always contains a keylogging module. It is up to an end user to utilize them–perhaps for spying. Legitimate monitoring programs are sometimes not included into signature bases, so one can use an anti-spy program and be spied on anyway.

Now the last (but not the least) threat — spy modules incorporated into viruses and Trojan horse programs. Unfortunately, all malware, including viruses, Trojan horses, worms and other fauna, "evolves" (due to their malicious creators). There already are so many hybrids between one another that it’s hard to find, say, a "pure" virus like ones used only several years ago. Lots of this fauna can contain a keylogger — like MyDoom (sure you remember this virus). They multiply and evolve, becoming more and more malicious.

So, what conclusions could we draw out of this entire story (sorry if it turned to be too pessimistic)?

Is absolute anti-spy protection possible? With existing anti-spy software which uses signature bases - no.

However, there is a relatively new trend in software development — not to use signature base analysis at all. This approach is rather promising; it means that such software–it already exists–can counteract even brand-new and custom-made spies. You may read more about it if you follow the link in my signature.

What should we expect from an average anti-monitoring or anti-spy program? It does protect from spy software which it "knows". If it has the particular signature in its base, it protects your PC from this particular program. If anti-spyware uses a signature base, it will never "kill all spies on your PC–"whatever the salesperson promises you. Don’t expect complete security– there is no such thing anymore.

The only hope is for entirely new technologies. If developers can’t succeed in fighting spyware, they should try something else.

Alexandra Gamanenko currently works at the Raytown Corporation, LLC — an independent software developing company. Visit its website http://www.anti-keyloggers.com

- Next »