Archive for May, 2006

Posted on May 31st, 2006

Anyone who has seen the movie’ Honey I shrunk the kids’ can imagine how useful compression can be. Compression, which has become anonymous with Zip files work off the same idea only with a (add your joke here)’slightly’ different technology. You will find a lot of data compression programs in use today and some are easier and have better features than others, so in this article I will talk about compression in general, but may through in a couple of examples for comparison.

The first thing you need to know is that there can be more than one compressed file; you can have an archive (a multiple of files). The main benefit of this is that the user can:

*Save valuable disk space

*Can send and receive files on the internet quicker

*Speeds up your processor

*Depending on the file compression program can reduce files as much as 90%

The user should also be aware that files can only be opened with the original compression program that compressed it. Think of this as a form of protection, if you will since this is like an encrypted file or archive. Adding a password is another way to insure files are safe from prying eyes and some compression programs let you do this at any level of compression or decompression with the associated commands (update,move,feshien,add). Only individual files can be password protected not whole archives.

Ever since the first personal computers (PC’s) came about people found how easy it is to load up there drives with programs and downloads that eat up much of there memory. That’s why developers created data compression programs in the first place, to free up hard drive space and increase processor speed.

There are a lot of data compression programs and they are not exactly alike because they use different data compression algorithms. One popular program, for example looks for repeating words or phrases and assigns them there own character or number value.

A lot of users don’t fully understand the more advanced features of their data compression programs so they are not really getting there full value. Syntax command lines are a good example of this confusion. There are four basic commands in syntax (the shape of a command line);

*Command: The task to be preformed like add, delete or update.

*Archive: the name of the archive.

*Switch or Option: lets user specify a file option like adding file directories for compression.

*File: name of file(s) to be processed.

A user can compress files four basic ways:

*Add files to archive - old files with same name are overwritten.

*Move files to archive - upon compression old files are deleted.

*Update files - makes sure you have the most recent file version.

*Freshen files - almost like update, seeks out the last modified file and adds it to archive.

The above commands have there basic functions but can do other things. Ex. the update & add commands can create and compress files and the Freshen command can create a new archive.

There are only a couple of data compression programs out there that give the user more than one compression method - PKZIP AND ARJ.

PKZIP has what they call an imploding method and a shrinking method; without going into great detail imploding uses less memory (90k), and is very through. This is the default setting. Shrinking is fast but uses a bit more memory (128k), works great for smaller files.

ARJ gives the user more options for data compression. It uses multiple settings (m1 to m4), This is a tradeoff of prosessing speed versus packing dentisy. There are 2 more options available here but test runs show no significant change in time or compression. Even with experienced compression users, extracting compressed files with a newer version of a data compression program may prove difficult, so programmers created self extracting files (SFX) to enable beginners to easily use compressed files. This small program may be part of the original program or added after as a separate program.

I realize some of this may sound confusing and for that I apologize, and after all, people will compresses data using only the basic functions and be happy and content because it suits there present needs. In conclusion you can tell there are many options available when using any data compression program and it is well worth the time (got time on the week end?) and effort to learn some of the advanced features if you want to save some serious space on your hard drive.

Robert Hanania is a student of the internet, learning about home based businesses and computers. Robert is currently promoting his web page. All are welcome to visit him at: http://www.fileanddatarecovery.com

Posted on May 31st, 2006

According to a survey conducted by InfoTrends/CAP Ventures entitled “Content-Centric Collaboration,” 51 percent of businesspeople utilizing technology such as Microsoft Office and e-mail collaborate almost daily as a part of their business operations and need group collaboration software to support electronic collaboration.

The report indicated that the need would continue to grow over the next year. This stat is not surprising because technology can be very valuable in improving business operations. However, two challenges seem to stand in the way of supporting electronic collaboration: “convincing users to consistently take advantage of capabilities” and “encouraging users to contribute information into the system.” One of the questions that has arisen from these challenges is “Is there a group collaboration software that is simple for users to adopt?”

Since two-thirds of businesses collaborate using e-mail, one of the biggest tests for group collaboration software is whether it can integrate with e-mail. When considering the type of collaboration that takes place with e-mail, businesses see that e-mail collaboration includes attachments created mostly in Microsoft Office applications. This means there is another test for group collaboration software, “Can it integrate with Office applications.

User Friendly Group Collaboration Software

The first two challenges of adopting group collaboration software are not uncommon to adopting any new technology. Often times a new technology can be very intimidating. Is there group collaboration software out there that is user friendly?

First, it is important to recognize that group collaboration software packages available today include different components which vary according to the package you select. Most businesses may begin looking by typing “group collaboration software” in an online search engine. This will yield 19,500,000 indexed pages.

In order to narrow down your choices for a non-intimidating group collaboration software package, begin by searching for a package that does not require IT (information technology) infrastructure. This means that you do not have to add any new technology to your computer in order to use the software. No IT also means that the software works automatically with your applications, without having to install and maintain separate servers or applications. There is group collaboration that you can download and then sit back, relax, and let it work for you. Use the free demo option to see how the group collaboration software works for you.

Integrating Group Collaboration Software

More than half of technology users already collaborate almost daily using email and attachments. When searching for the right group collaboration software for your business, there are helpful technologies included in group collaboration software packages which make integration with email and MS Office possible.

Digital Thread technology allows group collaboration software to track documents as they are sent back and forth and altered. The Digital Signature displays the tracking information (the who’s, what’s, when’s, where’s, and how’s) every time you open any draft of the document from e-mail, your desktop, or any other drive on your computer. A Version History puts all of the tracking information together in a family tree of the document and its versions, making collaboration even easier because you always know what you are working on, where it has been, what changes have been made, who made them, and where it is saved.

A group collaboration software package which includes these technologies easily integrates with email and MS Office applications, even if there are others with whom you collaborate who do not yet have group collaboration software.

It is true that the need for group collaboration software is increasing rapidly, and so is the number of group collaboration software packages. These tips are meant to help you sift through the millions of options available to you and to help you to find group collaboration software that is user-friendly and that can integrate with the most commonly used office applications available.

Joe Miller is specialist in online advertising. For more information on group collaboration software, please visit NextPage.com.

Posted on May 30th, 2006

The ideas of Corporate ERP/MRP/Accounting application was developed back in 1960th, however nowadays the topic is still actual and we are watching how dozens of new Accounting packages hit the market every year. This process sees some consolidation, to be admitted. In this small article we will be reviewing key parameters to take to the consideration while selecting corporate ERP and Microsoft Great Plains/Dynamics GP as budget option for large or mid-size corporation

• Database Platform. If you look back to 1990th – the competition between cheaper platforms, such as Microsoft SQL Server 6.5 was in the progress. However now Microsoft SQL Server 2000/2005 is solid rock product, which can support unlimited database size and data recording/retrieving pattern. In 1990th you would be thinking about Oracle, DB2, Sybase, etc. to select reliable database platform

• Computer Hardware. Well, the question of computer hardware is still actual, however we see more trust to Intel/AMD platforms, yes servers from Dell, HP, Compaq. Even Linux is coming to Intel/AMD servers world and the question of hardware competition should be probably deemphasized. The question on Unix/Linux/Windows competition is still on the place and we expect more harmony in the future

• Microsoft Dynamics ERP Selection. Here we see several products: Microsoft Great Plains/Dynamics GP, Microsoft Axapta/Dynamics AX, Microsoft Navision/Dynamics NAV. If you think about rich-functionality ERP – this is Microsoft Axapta. However in our opinion – corporation should consider budget solutions first – and this is where Microsoft Great Plains comes to the consideration

• Regional Consideration. If we are thinking about Microsoft Dynamics ERP products – Navision and Axapta should be considered as very good candidate for localized products for new and emerging markets: Brazil, LATAM (Latin America), China, India. Microsoft Dynamics GP/Great Plains is good candidate for English speaking countries and French Canada/Quebec/Montreal.

• Brazilian Localization specifics. In our opinion, if you are mid-size branch in Brazil, you should consider SAP Business One as a hub ERP application to be consolidated to your European (mySAP) or USA headquarters (Microsoft Dynamics GP)

• LATAM Consideration. Great Plains Software, later on purchased by Microsoft and renamed into Microsoft Great Plains Business Solutions, has very long and successful presence in Latin America

• Europa. Microsoft Dynamics GP 9.0 will be available in UK, however French, Belgium, German, Dutch versions will be translated in the second half of 2006. Version 9.0 of Microsoft Dynamics GP will be probably the last one available for non-English speaking countries in Europe

• eConnect. If we are diving into technical depth of Microsoft Great Plains – this is where you should be investing into your developers training and certification. Even Great Plains Integration Manager will be rewritten in eConnect technologies. Plus you should be aware about eConnect domination in Ecommerce area for Microsoft Dynamics GP

• Oracle Financials/E-Business Suite. I our opinion Oracle Applications should be competing freely with Microsoft and SAP ERP products. If you are large corporation – you should consider Oracle Financials and SAP R/3 as rich-functionality ERP prior to jumping to budget solutions such as Microsoft Dynamics GP, Microsoft Dynamics Nav, or SAP Business One.

• C#/VB.Net consideration. In our opinion – if you consider Microsoft Dynamics GP development – Microsoft Dexterity – with Dexterity Source Code programming option is the best choice, however Microsoft will expose more programming options to C# and Visual Basic developers through XML web services. This should be considered as replacement to VBA/GP modifier development

Author is Chief Technology Officer at Alba Spectrum Technologies (http://www.albaspectrum.com, http://www.greatplains.com.mx, and http://www.enterlogix.com.br) - 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.

Please do not hesitate to call or email us USA 1-866-528-0577, 1-630-961-5918, Brazil: +55-11-3444 4949, help@albaspectrum.com

We are serving USA/Canada Nationwide: Houston, Chicago, Los Angeles, New York, Boston, Miami, Seattle, Minneapolis, Phoenix, Atlanta, Dallas, San Francisco, San Diego, Toronto, Montreal, Vancouver, 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, Colombia

Posted on May 30th, 2006

Microsoft CRM is winning market share step-by-step from such the traditional CRM providers as Siebel, Saleslogix. In this article we’ll show Microsoft Business Solutions CRM potential in the VoIP direction. Nowadays VOIP-based technologies and Instant Messaging Systems are getting wider and wider spread. Each work desk or each personal computer has one or another instrument of information exchange, belonging to the VOIP or instant messaging systems. Currently the mostly presented information exchange systems are:

• Skype (http://www.skype.com). Revolution system of sound compression – the tolerance to the bandwidth of the channel enabled VoIP amusement features to the general internet world-wide user with microphone and headset, Windows/Linux/Mac OS X operating systems, internet access and free registration with Skype. Plus Skype application has instant messenger between skype users. New features and services SkypeOut and SkypeIn allow you not only to call to the regular phones from your computers with very low rates, but also accept the calls on your skype phone number in the SkypeIn system.

• MSN Messenger (http://messenger.msn.com). Quite successful attempt of the Microsoft open the door to the instant messengers market. MSN Messenger gained market with the speed of light, due to the tight integration with Microsoft Windows. Every new version adds new functionalities – MSN Spaces integration, audio and video transfer etc.

• Yahoo! Messenger (http://messenger.yahoo.com). IM system of the Yahoo! portal, has standard set of features for communication, including audio and video stream transfer.

• AOL Instant Messenger (http://www.aim.com). This is one of the veterans of the IM system market. Considering the popularity of AOL as internet provider – AOL instant messenger holds substantial market share.

• ICQ – (http://www.icq.com). Yes – we do not have to give you additional comments, we are targeting this article to IT professionals who were working in the Clinton era of American internet miracle and booming. Let us just add that with the release of version 5 ICQ introduced new features of the audio and video conversation.

• VoIP & IM systems are popular not only in the home office environment, but are gaining popularity in the corporate market. One of the proves is the release of Microsoft Live Communication Server, which allows messages streams coordination and control. Natural idea – should we enable VoIP and IM conversation with automatic protocol? It is always good to have paper copy of the MSN conference, related to the project, product, in the form of MS CRM Activity. Or, from CRM interface to call your potential customer via Skype. Or accept the incoming call via SkypeIn and record the call to the CRM database to be accurate with the following negotiations. The usage is really unlimited and is currently restricted only by human conservative nature

Now, let’s consider the schema of MS CRM extensions to enable such a system:

• The main component is Albaspectrum Media Core for MS CRM – the module, providing media streams saving in the special database, interaction with the specializing connectors to IM/VoIP systems. Its function is also Activity creation in the Microsoft CRM system.

• The second important component is modification to these forms: Contact, Account etc. Modification is adding phones, addresses, Skype, MSN, AOL, Yahoo identifiers. Also we have to add SkypeOut phone calls service. In the future we plan PBX/PSTN support via MS Office Communicator 2005

• Planned addition - Answering Machine module, controlling incoming calls and messages from clients and saves them in Media Database. If manager is out of his desk, system will save the message and will create Activity in personal queue – you will not miss no one customer call! Plus all the calls from non-registered clients/prospects might be associated with one or another Account, Contact, Lead, etc.

Let’s consider the process of the phone call/receiving or message recording:

• CRM User opens client form and reads telephone or skype ID to place the call. If she/he would like to talk to skype user – Skype application must be installed of the local machine and she/he needs to be skype online user. If she/he calls to another Skype user, then we don’t have additional requirements. In the case when call is placed on PSTN number, CRM user needs to have SkypeOut active account. In both cases – when user picks up the phone or is absent – CRM activity will be created with the relevant status. If the call was accepted, automatic call recording will be switched on, activity will be created with the indication on the phone duration. For MSN, Yahoo!, ICQ audio conversations – all the mentioned above is relevant, except PSTN support (currently skype only).

• The above described process is similar for instant messenger conversations, recorded by MSN Messenger, ICQ, Yahoo! Messenger, AOL Instant Messenger.

• CRM User could appeal to Full-Text Search upon the saving to Media Database of text talks directly from the MS CRM interface.

• For the users, who are accessing CRM over the internet we envision IM system support (as http://webmessenger.msn.com) in the MS CRM forms.

Good luck with integration! If you want us to do the job - give us a call 1-630-961-5918 or 1-866-528-0577! help@albaspectrum.com

Andrew is Lead Software Developer in Alba Spectrum Technologies – USA nationwide Great Plains, Microsoft CRM customization company, serving clients in Chicago, Houston, Atlanta, Phoenix, New York, Los Angeles, San Francisco, San Diego, Miami, Denver, UK, Australia, Canada, Europe and having locations in multiple states and internationally ( http://www.albaspectrum.com )

Posted on May 29th, 2006

A report by research and consulting firm Forrester Research mentions that, jobs which are lost in United States because of Software Outsourcing are primarily low salary IT jobs. These jobs are like software programming or computer support specialists or computer operators. But on the other hand, high end high paying jobs like system analysts, network analysts and research analysts have seen continuous and stronger growth. Jobs in this niche market are growing steadily at the rate of 4 to 5% every year. These jobs which require stronger domain knowledge and knowledge of internal working of IT systems and business process are difficult to software outsourcing.

Jobs for software engineers for the position of system analysis and application development implementation are also growing at the rate of 6% a year. This is because, though Software Outsourcing can be done to India or other Offshore Software Development locations, customers require in-house staff for customization and maintenance of purchased software.

Why Software Outsourcing will decrease Report also mention that, attraction of cost saving in software outsourcing is yet very high and because of that, increase in jobs like software programmer will be very minimal. Also, because of very low increase in software programming jobs, salary rise will also hardly 1% in next few years. Salary of computer operators and database administrators will also grow at barely 1% rate. On the other hand, report also mentions about jobs which will have highest salary rise. Salaries of computer research scientists and information system managers will have highest growth which will be around 3.5% every year. While salaries of analysts and system administrators will grow at the rate of 2 to 3% every year.

Conclusion about Offshore Software Development Report concludes with note that software outsourcing which has major costs saving today will decrease by 2008. Because, in United States the salary rise is very-very less as compared to other countries. While in India and other offshore software development destination, because of lack of availability of resources, salary rise will be very high. This will decrease the difference between salary of Indian and US software engineer and eventually decrease costs saving. So many companies will prefer in-house resources rather then software Outsourcing.

For more details please visit: http://www.tatvasoft.com/outsourcing%5C2005%5C06%5Csoftware-outsourcing-and-its-future.html

TatvaSoft - Software Development Outsourcing Chet

TatvaSoft
303, Naindhara,
Next to Mitsubishi Showroom,
Near Hotel Grand Bhagwati,
S. G. Road, Nr. Bodakdev
Ahmedabad - 380 052
Gujarat, India

Tel : +91-79-40038222

Posted on May 29th, 2006

Groupware

Efforts are continually made to manage the unavoidable ad hoc business process, but ad hoc processes do not necessarily mean a pile of messy, shuffled documents, at least not anymore. Groupware is software which tracks and manages the ad hoc business collaboration.

Look at the search engines to see just how many solutions similar to groupware are available to help businesses organize collaboration efforts. In most cases, collaboration and document tracking software are built around organized and established drafting processes. They enable filing and tracking of collaborative efforts in a structured collaboration environment.

Ad Hoc Business

The reality is that the collaborative environment cannot always be structured. Flexibility is a necessity and ad hoc is a reality. Often, collaboration has to take place very quickly to meet deadlines. When that happens, what is left is a scattered set of emails, drafts, Word and Excel documents, and other changes saved in multiple locations. Groupware is software that manages ad hoc collaboration while working the way businesses do.

Simple Installation

Businesses are budget-sensitive when it comes to new technologies. Often new technologies require an expensive IT infrastructure with an installation fee and service fees. Groupware provides simple software installation that eliminates those costs and saves time.

Accessibility

Business concerns about new technologies are valid, especially regarding questions of accessibility. For example, installing or downloading new software within a company network is cost-efficient and beneficial to the entire company. But, because companies are not a self-sustaining entity, they need to know if new software will also benefit clients and investors.

Groupware is software that works with any person or company with which your business works. Clients, partners, and other businesses may not yet have the same teamware, but once the technology is adopted by your company, it works for them too.

Familiarity

Another concern businesses may have in incorporating new technology is whether or not the new technology is compatible with current technology. Businesses do not need to worry about interfacing or learning new technology. Groupware utilizes technology with which businesses are already familiar. Microsoft applications such as Word, Excel, and Outlook are applications through which the technology works.

Technology

Groupware utilizes a variety of technologies which enable effective tracking and managing of ad hoc documents. Digital Thread technology tags the meta data of an electronic document, tracking the who, what, when, where, and how of any changes made in the text or the location of the document. This tracking takes place over email and hard drives, stringing together all of the document drafts.

Digital Signature displays the tracking information in a signature at the bottom of each email. Version History ties it all together by displaying a flowchart of the various document versions. Groupware tracks and manages all document versions, no matter how much of a hurry you are in during collaboration.

When searching for the document management and collaboration technology for your business, remember that document management will most often require tracking ad hoc processes of fast-paced business. Groupware solutions work the way your business works.

Joe Miller is a specialist in online advertising. Groupware information is available at NextPage.com.

Posted on May 28th, 2006

Linux operating system uses a permissions schema to define user rights for each file. These permissions establish:

-who can read the file. If the file is a directory, read means list the contents of the directory.

-who can write/modify the file. If the file is a directory, this permission defines if you can make any changes to the directory contents, for example create or delete files.

-who can execute the file. If the file is a directory, this permission defines if you can enter the directory and access its contents, for example run a search in the directory or execute a program in it.

Permissions are assigned to the file owner, to the file owner group, and to all users. For example, you can set a document to be readable and writable by the owner only, and just readable by everybody else.

When you issue an ls –l command, to list all contents of a directory, you will see file permissions like this next to each file:

-rwxrwxrwx

This means this file can be read, written and executed by anybody. The first dash means this file is not a directory. For directories, there will be a d letter instead of a dash.

The first set of “rwx” refers to the file owner. The second set, to the owner group. The last set, to all other users. Let’s look at some examples:

-rwxr - - r - -

This file can be read, written and executed by its owner. It can only be read by other users. When a permission is not set, you see a dash in its place.

-rw-rw-r- -

This file can be read and written by its owner and the owner group. It can only be read by other users.

You can set these permissions using the chmod command. For example, this command:

chmod ugo=rwx filename

assigns read, write and execute permissions to file owner user(u), group(g) and others (o). This other example:

chmod ug=rw,o=r filename

assigns read and write permissions to user and group, and only read permission to others.

Permissions can also be expressed and set using the octal numeric system. Each permission is associated to a number:

Read = 4
Write = 2
Execute = 1

You need to come up with a number for the file owner, another number for the group and a last one for the other users. If you want to assign read, write and execute permissions to file owner, you add up the three values, thus getting a 7. If you want to assign same permissions to group and others, you come up with three sevens. You can set these permissions like this:

chmod 777 filename

If you set permissions for a file with the following command:

chmod 764 filename

then you’re establishing these permissions: read, write and execute for file owner (4+2+1=7), read and write for group (4+2=6) and only read for others (4).

The following commands are equivalent:

chmod ug=rw,o=r filename

chmod 664 filename

The file permissions schema lets you implement security policies. It is not a good idea to set file permissions high (e.g.: 777) for all files. It is important to think about it and assign the right permissions to the files, so users can do their job, and we are sure each file is accessed only by the right people.

Sergio Roth is an experienced freelance web programmer. You can contact him for Linux hosting and website development services at http://www.ayreshost.com.

Posted on May 28th, 2006

Groupware

The internet is full of 1.5 million to 7 million indexed pages of groupware packages available on the market today. Every business needs groupware to control, manage, or track documents.

Groupware is similar to other systems that enable document management, often using a centralized system to work through business collaboration processes to create budgets, market reports, presentations, contracts, and countless other documents necessary to run a business.

Ad Hoc Collaboration

Often times, however, businesses do not, or cannot, follow an outlined document collaboration process. Deadlines near, clients change their minds, management changes their minds, information changes, and needs change. In searching for groupware that enables businesses to track collaborative documents, even in an ad hoc environment, businesses need to find groupware that works the way businesses do.

Tracking

In an ad hoc business environment, tracking your document versions can be a chaos. To meet deadlines, many documents are created. But, work is often hurried through, multiple drafts are saved on multiple drives, emails are shot back and forth, and changes are continually made. But when the deadline arrives, the document may barely be missing key parts because drafts and changes were difficult to track, drafts may be missing, nobody knows the draft order, and nobody knows who made the suggested changes. Businesses need groupware that can handle ad hoc collaboration.

Businesses often have to put documents together ad hoc, but the end result doesn’t have to be a mess. In searching through the groupware available, there are technologies to keep an eye out for which enable document tracking during hectic, ad hoc, document collaboration.

Digital Thread Technology

Groupware with Digital Thread Technology strings a digital thread through each draft of a document as it changes hands, even through email. An informational tag is inserted into the meta data of the electronic document which acts as a genetic tracker for the document. Digital Thread works in conjunction with Digital Signature and Version History to display the who, what, when, where, and how of a document.

Digital Signature

Digital Signatures provide basic version information every time a tracked document is attached to a Microsoft Outlook e-mail. A link is provided that allows users to see in real time if they still have the latest version of a document.

Version History

In addition to a signature that provides basic version information, groupware with a Version History feature enables a display of the document genealogy or family tree. Version History is a flow chart or visual display of the who, what, when, where, and how of the document.

Merging

After utilizing these groupware technologies, merging the changes is very simple. With just three clicks, you can compare different versions of a document. All of the changes are recorded and tracked, and all of the options are at your finger tips when deciding how the information will be presented in its final format. The ad hoc mess has essentially been cleaned up behind you and presented to you in an organized system to allow the final document to be complete, as well as having a helpful version trail to refer to in case other changes are necessary in the future.

Installation

This is often the most costly part of collaboration software. In sifting through the millions of groupware packages indexed online, the most cost efficient groupware will not require new IT infrastructure. Groupware which can be downloaded is quicker, more efficient, and more budget-sensitive.

The market knows that businesses need services to track and manage documents, especially in an ad hoc environment. Use these tips to make an effective search for a groupware that works the way businesses do.

Joe Miller is a specialist in online advertising. Groupware information is available at NextPage.com.

Posted on May 27th, 2006

Okay, I’ll admit I’m a bit of a fan of the Array. You either love or hate an Array. People who dislike the Array will often opt for a Collection instead. Other languages do provide a really cool object called a Dictionary or Hash Table. This is like a Collection that behaves like a Collection combined with an Array with some extra handy methods. VBA does not have this but VBScript does provide a Dictionary object, which is cool, and we can make use of this object within our VBA environment. To build a dictionary object do the following:

Dim my_dictionary as Object
Set my_dictionary = CreateObject("Scripting.Dictionary")

Voila! We have a dictionary. What can we do with it? We can add items, check for the existence of items, return an array of keys, return an array of items, set how a dictionary compares keys and get the count and so on. An example:

‘First create the Dictionary Object
Dim my_dictionary as Object
Set my_dictionary = CreateObject("Scripting.Dictionary")

‘When adding an object or value to a dictionary you put the key first and the actual value or object second. The key is mandatory and you cannot add items without it.
my_dictionary.Add "Key 1", "Value 1"
my_dictionary.Add "Key 2", "Value 2"
my_dictionary.Add "Key 3", "Value 3"
my_dictionary.Add "Key 4", "Value 4"

So now we’ve added four values to the dictionary. Let’s do some things we cannot do cleanly or at all with a Collection. Say we want to replace "Value 3" with the name "Zebra". Too easy!

my_dictionary.Item("Key 3") = "Zebra"

You couldn’t do that with a collection! In a collection you would have to remove one item and add another, thus losing the order or your items. A dictionary behaves like an Array in this respect. What if we were not sure there was a key called "Key 3" within the dictionary and wanted to avoid an error. Again, easy, we just use the Exists method of the dictionary object:

if my_dictionary.Exists("Key 3") then
my_dictionary.Item("Key 3") = "Zebra"
else
my_dictionary.Add "Key 3", "Zebra"
end if

We might want to know how many items are in the dictionary, just use the Count method which is the same as the one in a collection.

MsgBox my_dictionary.Count

If you want to iterate through the items in a dictionary, you can’t use an integer counter as you would an Array or Collection but you can use two methods to do so:

‘You can just grab the items from the dictionary like so:
Dim items as Variant
items = my_dictionary.Items

‘Iterate through the array of items. These items can include objects aswell.
Dim separate_item as Variant
For Each separate_item in items
MsgBox separate_item
Next separate_item

‘Or you can extract the keys and iterate through the items (which is another advantage over a Collection that does not give you it’s keys or let you know what they are)
Dim keys as Variant
keys = my_dictionary.Keys

‘Iterate through the array of items. These items can include objects aswell.
Dim key as Variant
For Each key in keys
MsgBox my_dictionary.Item(key)
Next key

Too easy! To remove an item or all items you can use Remove and RemoveAll respectively:

my_dictionary.Remove("Key 2")

Or

my_dictionary.RemoveAll

These are the basics. I’ll look at the CompareMode method in un minuto. The Dictionary object is a real advantage when we need to build a Collection of Collections or a Class Collection. For example; say we had to collect data on spys and their current missions. Usually we would have to create a Class Object called Spy and hold a Private or Public Collection within the class to which we would add their missions. One class too many (A Collection is a Class)! Let’s use a Dictionary instead…

Dim my_dictionary As Object Dim missions As Collection Dim spy_name As String Dim keys, key As Variant Set my_dictionary = CreateObject("Scripting.Dictionary")

‘Add three lots of spies.
Set missions = New Collection
spy_name = "Alexander Poligraphovich"
missions.Add "Vladivostok"
missions.Add "Ukraine"
missions.Add "Beijing"
my_dictionary.Add spy_name, missions

spy_name = "Mohammed Ramadan"
Set missions = New Collection
missions.Add "Munich"
missions.Add "Tehran"
missions.Add "Sydney"
my_dictionary.Add spy_name, missions

spy_name = "Sri FitzPatrick"
Set missions = New Collection
missions.Add "Dublin"
missions.Add "San Francisco"
my_dictionary.Add spy_name, missions

keys = my_dictionary.Keys
For Each key In Keys
MsgBox key & vbCrLf & _
my_dictionary(key).item(1) & vbCrLf & _
my_dictionary(key).item(2) & vbCrLf & _
my_dictionary(key).item(3)
Next key

The CompareMode method lets you set how the dictionary compares it’s keys when looking for duplicates etc. There are four compare modes vbBinaryCompare, vbTextCompare, vbDatabaseCompare (for MS Access only) and vbUseCompareOption (which uses the setting in the Option Compare statement at the top of a module). How can we use this? Say we add two values with the Keys of monkey and MONKEY’ one in all lowercase and the other in all uppercase.

my_dictionary.Add "monkey", "Giraffe"
my_dictionary.Add "MONKEY", "Elephant"
MsgBox my_dictionary.Count

The MsgBox will show an item count of 2, because the two keys are essentially different. The dictionary is performing a binary comparison upon the keys so you can add more than one ‘monkey’ as long as they have some difference in character case. What if we wanted the word monkey in all of it’s forms to be compared by name and not content? In other words we don’t want more than one ‘monkey’ in the dictionary. We use CompareMode vbTextCompare:

my_dictionary.CompareMode = vbTextCompare
my_dictionary.Add "monkey", "Giraffe"
my_dictionary.Add "MONKEY", "Elephant"
MsgBox my_dictionary.Count

On this example we don’t even get to the Msgbox, instead we get an error stating "This Key is already associated with an element of this collection.". This stops two keys being added that have the same name. vbBinaryCompare behaves the same way as the first example does (it is the default) and vbDatabaseCompare….Well I read what it did once and never had to remember it again! You can find explanations for these, albeit very succinct, within the MS Help in Access, or better still Google it.

Hopefully this gives you an extra tool alongside the Collection or Array and some ideas on future use. A Dictionary makes code structure cleaner and more humanly understandable. This VBScript tool will really pay dividends.

Duane Hennessy Senior Software Engineer and Systems Architect. Bandicoot Software Tropical Queensland, Australia (ABN: 33 682 969 957)

Why recode the wheel? http://www.bandicootsoftware.com.au

Moderator of http://groups.yahoo.com/group/AccessDevelopers

Posted on May 27th, 2006

Whether you are an experienced web programmer or a complete novice attempting to provide data interactivity with your web site, MyQSL is an easy to use and free database solution that can allow you to store and configure data to be displayed on your web site.

The best way to create and manage a MySQL database is to download an open source (free) program called PhpMyAdmin. PHPMyAdmin allows you to manage all aspects of both your database structure and data from one easy to use interface. This tool is intended to handle the administration of MySQL over the Web.

This tool provides an interface that allows you to create and drop databases, create, drop, or alter tables, delete, edit, or add fields, execute any SQL statement, manage keys on fields, manage privileges, and import and export data into various formats. That sounds like a complicated set of activities, but the easy to use graphical tools make things quite simple and easy to understand. If you make a mistake, the software even provides instructions on where you made your error.

For a complete demo see: http://www.phpmyadmin.net/phpMyAdmin/
For documentation visit: http://www.phpmyadmin.net/home_page/docs.php

Most Linux based web hosting companies provide PhpMyAdmin as a standard feature with their packages. It is also available in a “Windows” IIS version. If your hosting provider does not already have this product installed they will often install it for you, or even allow you to install it yourself. Setup is quick and easy if you follow the step-by-step installation documentation.

Step One: Creating your new database

When you log in to your PhpMyAdmin welcome page, the first step is to enter a name for your new database in a text box provided. You can name your database anything that you wish, however if you are creating the database to use with a script or software package that you purchased somewhere, the script provider will often suggest a “preferred” database name. You should always create your database using the following format:

username_ databasename
Example: myusername_mydatabase

Your complete database name should always begin with your username followed by an underscore, then followed by the database name. This allows the server to know which user is in control of the new database, and it will also provide permission to access the database to only specific users. This also allows different users on the same server to use the same name for their own database, as you did, without interfering with your data – that is helpful if more than one user on your server bought similar software for their own site. They can then also use the software providers “preferred” database name.

Step Two: Creating a table for your new database

After you have created a database, the next step is to create a table, or even multiple tables, for you to store data. A table is the part of your new database that actually stores data.

You create a table by selecting the database that you created from the drop box list of databases. Once a database is selected a new form appears and asks for you to create a new table.

You must decide what you want to name your table and enter that name into the name box. Try to choose a name that reflects the type of data that will be stored in the table, such as orders, users, or inventory.

You then must decide how many “fields” or columns of data that you want to store for each record. If you need for the table to store five (5) different items, such as username, users email address, users telephone number, users account number, and the users age, than you would need five (5) fields. Simply enter the number 5 in the appropriate box. Once you hit create, the system will create a table and will add those fields into the table for you. Don’t worry about the number of fields you might need right now, as you can always add or delete fields later.

Step Three: Defining Fields

Once you have created your table you will be prompted to tell the database what features that you want each field to have. This looks complicated, but it’s not if you select your data type from the information below. You basically have to decide between three common data types and select the best choice for storing your data. If you make a mistake you can go back and edit the field.

If the field is to be used to store numbers, here are some choices:

TINYINT – A very small integer. The signed range is -128 to 127.
SMALLINT - A small integer. The signed range is -32768 to 32767.
MEDIUMINT - A medium-size integer. The signed range is -8388608 to 8388607.
INT - A normal-size integer. The signed range is -2147483648 to 2147483647.
BIGINT – A very large integer.

Some other less common number options include:

FLOAT- A floating-point number.
DOUBLE – A double-precision floating-point number.
DECIMAL - A packed exact fixed-point number.

If the field is to be used to store text or both text and numbers combined, here are some choices:

VARCHAR is for varying characters and can be up to 255 characters in length.
TEXT is a column with a maximum length of 65,535 characters – easy to search.
BLOB is a column with a maximum length of 65,535 characters – case-sensitive.

If the field is to be used to store dates, here are some choices:

DATE - A date.
DATETIME - date and time combination.
TIMESTAMP - useful for recording the date and time of an INSERT or UPDATE operation.
TIME - A time.

Once you have selected the data type for your fileds you will need to let the system know how many characters that you will need to store in the field.

Example: if you are storing a username, you might want to select VARCHAR as your data type and allow up to 100 characters for that field. If you are creating a User Identification number you might want to select INT and allow up to six characters – that would allow you to have up to 999,999 users.

The last step to creating your data fields is to select any special attributes that you may find helpful. Some examples are:

Auto Increment: Auto-Increment fields are useful for assigning unique identification numbers for users, products, and customers, etc. By default, fields are incremented using number characters (like "1", "2").

Primary Key: The primary key is a data column that uniquely identifies a specific instance of that data. At least one of your fields must be a Primary Key. Username is an example of a good primary key. You do not want to have more than one individual having the same username.

Index Key: Allows you to speed up searches by designating a field as a preferred data source, especially when combining data from multiple tables.

Congratulations, once you have completed these steps you are ready to import data into your new database.

Don Beavers lives in Bryan/College Station, Texas and is an enterprise level PHP-MySQL programmer at both the Shopping Elf Shopping Guide and the Datavor Web Directory.

- Next »