First Look: Crystal Reports XI

Crystal Reports XI is the latest version of the report writer from Business Objects. Local reports guru David McAmis takes the new version for a spin. Most developers might know Crystal Reports from versions included in Studio, Visual Studio.NET, and other popular developer IDE’s such as BEA Workshop, C# Builder, Delphi 2005, JBuilder, WebSphere.

In this latest installment both report and application developers have something to be excited about as there are a host of new features for report design and integration. Here’s a run-down of what you can expect in this release.

Updated Report Designer
The first thing developers will notice when they first open the Crystal Reports XI designer is a new user interface. The changes to the UI are apparent from the start, with a new “Start Page” that features links to external resources, sample reports, a list of report wizards, and the most recent reports you have been working with.

The toolbars and icons have also been updated and developers who are familiar with Crystal Reports will notice that when you open multiple reports, a new tabbed interface has been included to allow you to switch quickly between open reports. The report designer also features a new “Project Workbench”, shown below in Figure 1, that you can use to organise reports into projects and publish these reports en-masse to Crystal Reports Server (which we will look at a little later)

FIGURE 1: The new Project WorkbenchThe report designer still features the same tools you may have used before. You can use these to insert groups, summaries, charts, maps, running totals, and more into your report with ease. The one new feature that will have developers jumping for joy is the new dynamic parameter fields.

Previously in Crystal Reports, parameter fields were static. So if you wanted to display a parameter field with a list of employee names, for example, you could populate a pick list while you were designing the report. When the report was run, this same pick list would be displayed and the user could make their selection. The only problem with this is when a new employee was added, the list of values did not change. You would have to go back into the report and manually refresh the list yourself. This caused most application developers to create their own custom user interface for passing parameters to the report itself, which was often costly and time-consuming.

With the new dynamic parameter fields in Crystal Reports XI, this custom development should become a thing of the past. When you create a dynamic parameter field in Crystal Reports XI, you can specify a database table, view, etc. as the dynamic source for the pick-lists or you can use an SQL command that will retrieve the values, each time the report is run, as shown in Figure 2.

FIGURE 2: Dynamic parameters in actionIn addition, this version introduces the concept of “cascading” parameters, where the values shown in a list of values are determined by your previous selection. For example, going back to our previous example, you could set up two parameters, “Manager” and “Employee”. Whenever you selected a manager, the next parameter value list would be filtered to only show those employees who work for that manager.

This flexible approach to report parameters should mean less time coding custom application pages for reporting and more time spent getting on with the application development.

In terms of time-saving features, the updated charting components make it possible to simply insert a chart into your report and let Crystal Reports decide what data and chart type should be created. Often this will not be the final desired result, but it does make it easy to quick pull together visual, information-rich reports without having to click through multiple dialogs to get a simple chart.

This same concept has also been applied to cross-tabs, with a single click all that is required to place a cross-tab object in your report. Unlike charts, there isn’t an easy way to automatically select the content for the cross-tab but just the creation of a blank cross-tab is enough of a time saver to make you want to use cross-tabs again.

New Developer Features
For developers, there is a grab-bag of new features regardless of whether you develop in .NET, COM or Java. To start, Crystal Reports XI now includes the ability to store images external to the report file itself. This may seem like a small thing, but it has been a sore point with developers for a while, especially with web developers who want to use Crystal Reports in Web applications but don’t want to store the images in the report itself, which could increase the file size dramatically.

In addition, the use of CSS Style Sheets has been better documented in this version, making it a viable option for Web developers who want to integrate reports with the same look-and-feel into their web applications.

For application developers integrating reports into their .NET applications, the viewer components have been updated (Figure 3) and include all of the new features found in the report designer (dynamic parameters, new export formats, etc.). There is a setting to disable tool-tips, which was an annoying feature in previous versions, as most report developers would not enter tool-tips for each element on the report.

FIGURE 3: Updated report viewerAnd at long last there is a single merge module you can use to deploy your application, which makes creating installation and setup packages much easier. There has been a renewed focus on this area with this release and it is now possible to setup packages that install right the first time.

On the Java side of things, the enhancements are along the same lines, with the exception of dynamic parameters which didn’t make it in time for the first release. However, there are enough new features though to keep most Java developers happy, including a new JavaServer Faces(JSF) Viewer and set of custom JSF tags to cut down on development time.

There are a number of enhancements to the Java API itself, with additional methods that give more control over the data source and location. There is also an updated version of the Java Reporting Component that brings it closer to rough parity to with the other platform API’s.

Updated Server Technology
This version of the product not only includes new features, both for report design and application development but also brings together the platform components from Crystal Decisions and Business Objects. Business Objects bought Crystal Decisions over a year ago and this version represents the first “combined” product featuring the tools and functionality from both product lines.

The first immediate benefit for application developers is Crystal Reports Server, which provides a subset of the features and functionality found in Business Objects Enterprise, which is an enterprise framework for publishing reports to the Web, as well as scheduling and distributing reports in a secure environment. And in addition to the subset of features, it is also a subset of the price, at around AU$12,000 for 5 concurrent users.

Crystal Reports Server brings the core report scheduling and distribution framework and functionality to application developers, which they can use to create scalable, multi-tier applications for small to medium-sized user bases. And when scalability to thousands of users is required, there are only minor changes required to use the same code with the full-strength Business Objects Enterprise.

It also bears mentioning that the licensing within both Crystal Reports and related products has been simplified and now is much more competitive with other products in the market. For most internal applications you won’t need any additional licensing and if you are developing applications for commercial distribution, there is a free runtime for thick-client applications and simplified process for any components that are licensed and would require a software license.

So in the end, this release offers a little bit of something for everyone. Report developers will love the new look and feel and features found in the report designer itself, while application developers can look forward to an updated set of tools and technologies to help them easily integrate reports into their application.

5 đặc điểm mới của nền kinh tế điện tử

Hiện nay nhiều cơ quan đang phát triển bằng việc sử dụng hình thức B2B để giao dịch với các nhà cung ứng và khách hàng để từng bước tạo đà thích nghi và hòa nhập sớm với một nền kinh tế điện tử hoàn chỉnh hơn trong thời gian sắp tới. META cũng đã nêu lên 5 đặc điểm chính của kinh tế điện tử đang tiến triển mạnh trên thế giới.

Đánh giá của công ty tư vấn về công nghệ thông tin và chiến lược kinh doanh META

META dự báo đến nǎm 2005 sẽ có không ít các công ty sẽ sử dụng mạng diện rộng và giao dịch B2B để tối ưu hóa các giao dịch, trong đó chú trọng đến cả hai quy trình mua (quản lý quan hệ cung, mua trực tiếp) và bán (bao gồm dự báo đường cầu, kênh phân phối…). ở thời điểm này, siêu xa lộ thông tin toàn cầu Internet sẽ đóng vai trò quan trọng trong việc cung cấp các dịch vụ, giải pháp về phân tích thị trường, thanh toán, lập kế hoạch.

internet00.gifHiện nay nhiều cơ quan đang phát triển bằng việc sử dụng hình thức B2B để giao dịch với các nhà cung ứng và khách hàng để từng bước tạo đà thích nghi và hòa nhập sớm với một nền kinh tế điện tử hoàn chỉnh hơn trong thời gian sắp tới. META cũng đã nêu lên 5 đặc điểm chính của kinh tế điện tử đang tiến triển mạnh trên thế giới:

1. Thay đổi mục đích kinh doanh: Người tham gia và những nhà phát triển kinh tế điện tử ngày càng thực tế hơn khi tiến hành bỏ kinh phí đầu tư cho nó. Song, mục đích chính của họ là giảm chi phí giao dịch, tiết kiệm tối đa thời gian cho nhà cung ứng, thương gia, khách hàng, kể cả nhà sản xuất.

2. Đối tượng tham gia thay đổi: Thoạt đầu, các tập đoàn, công ty công nghệ là những nơi khởi xướng thương mại điện tử (TMĐT). Bây giờ ngày càng có nhiều công ty tham gia, trong đó có cả các doanh nghiệp vừa và nhỏ. Rất nhiều các công ty nhỏ đang chuyển từ việc quản lý giấy tờ, chứng từ, sổ sách sang quản lý dữ liệu điện tử.

3. Mở rộng ra nhiều lĩnh vực: Khi mới bắt đầu, TMĐT không có sự phân biệt lĩnh vực và không xuất hiện gương mặt nào nổi bật. Thời gian gần đây, xu hướng trên đã thay đổi với sự xuất hiện chính phủ điện tử hay nhà nước điện tử cùng với những ứng dụng TMĐT trong các thị trường lớn như: nǎng lượng, viễn thông, y tế, phân tích gien di truyền…

4. Công nghệ phát triển: Hiện nay, hầu hết công ty sử dụng hình thức B2B (business tob2b1.gif business) đang dùng portal technology (công nghệ cổng) và cố gắng áp dụng cơ cấu này để dùng trong hình thức B2E (business to employee). Trong trường hợp này, B2B và B2E đang ngày càng gần nhau hơn và sự phát triển của một trong hai loại hình này sẽ tạo điều kiện giúp đỡ cho loại hình kia phát triển. Ngoài ra, doanh nghiệp đang xem xét các dịch vụ phát triển trên web như là sự đầu tư cho tương lai.

5. Người sử dụng có khả nǎng chia sẻ nhiều thông tin: Lúc đầu, các công ty phát triển TMĐT chỉ cho phép chia sẻ rất ít dữ liệu. Giờ đây, do sự phát triển của mạng Extranet thế hệ thứ 3, cũng như xu hướng phát triển mạng nội bộ với nhiều khả nǎng tích hợp, các công ty trên được quyền chia sẻ nhiều thông tin hơn. Như bản chất của các dịch vụ trên web, vǎn bản không chỉ được xử lý mà còn được chia sẻ cả ở bên trong cũng như bên ngoài công ty… (Mỹ) cho biết trong thời gian tới, việc phát triển các ứng dụng kinh doanh trên web sẽ ngày càng chứng tỏ ưu thế.

Đỗ Lương Trường

Creating news site heading like in Covers

Creating news site heading like in Covers

Tuesday, January 16, 2007 @ 15:48
Skip to: Comments | Comment form

A few days ago I stumbled upon an interesting news site called Daylife. Its front page (Covers) is something like an internet/TV hybrid, with its flash intro page that displays most recent news. To say the least, I am a fan of Flash, as of JavaScript and other technologies, but I think that the same (or almost the same) “vow” effect could be done with XHTML/CSS combination as well.

This front page is loading very slowly, and I think it would be better that they considered some XHTML/CSS/AJAX stuff, that would be faster.

In this article I will show you how to create this kind of front page using only XHTML/CSS. As I am not the JavaScript/AJAX expert (yet:), if anyone else would like to expand this article furthermore (to create that expanding effect), please do so.

Creating news site heading like in Covers

The code

<div id="container">

	<div id="image-container">

		<div id="news-image"><img src="great-sun-burst.jpg" alt="Great sun burst" /></div>

		<a href="#" title="Great sun burst!" id="link">
			<span id="heading">Great sun burst!</span>
			<span id="date">January 13, 2007</span>
			<span id="author">Photo by <strong>thesaint</strong> from <strong>SXC</strong></span>
			<span id="show-story">Click to see this story</span>



Okay, let’s start. First, we will create a #image-container DIV, with exact size of the image that will serve as a container for the image and text. Because we created this container, we can easily manipulate and move the container anywhere on the page. For the purpose of this article, the container will be positioned 50px from top and left margins.

Now it’s time to create the image and the text. Because this kind of heading will be commonly used on the large news sites and with Content Management Systems (CMS) we would have the exact values already. We created a container that is 750px long and 500px wide (the size of our image). We wanted heading, date and author to be placed on the center of the image. No problem.

And now for a little explaining. We created a DIV for the image called #news-image. This is because of IE. If you remove it, everything looks fine in Firefox, but IE cripples the page. It looks awful (don’t bother to look :). Important and tricky part comes here. To create a validated page, we used spans inside a link, and each SPAN has its own ID, to which we will apply some styling, later in the process. The text will be displayed inside a link, so the whole area is clickable (like in navigation).

Important note: If you have more than one heading (with picture) like this one, you should use classes instead of IDs, to create a validated page.


#image-container {
	margin:50px 0 0 50px;

First, we will style the image container. This is not much of a styling, but it is important that we define two things. The container must be positioned relatively, and width exact width and height. Let’s style the links now.

a { 
a:hover { 

The link will be displayed as block, and positioned absolutely within the container. While we positioned the container relatively, we can now position the link area absolutely with top:50%; and margin-top:-63px;. Margin-top value is here because we wanted our link area positioned somewhere in the middle of the image. With top:50%; we said to the browser to position the top margin of the link area exactly 50% from the top, and with negative top margin of the link itself, we positioned the whole area approximately to the horizontal center of the image.

How we come up with 63px, you may ask? This is the sum of the sizes of all the text in the link area. The next few rules are common, and the last two rules are here to create an “opacity look” of the link, that will change when we come over with the mouse pointer. We used opacity:.5; for Firefox, and the filter:Alpha(Opacity=50); for Internet explorer users.

a span { 
#heading {
#date {
#author, #show-story {
	font-family:Verdana, Arial, Helvetica, sans-serif;

With the next set of rules, we stylized the text. We used a span { display:block; margin:0; } to display all spans as blocks, and to remove the margin. The next few rules for #heading, #date, #author, #show-story are here to stylize the text.

The last thing we want to do is to display the author of the image (or article) and the text “Click to see this story” when the mouse goes over a link. To do that, we used this CSS.

a span#show-story { display:none; }
a:hover span#show-story { display:block; }

a:hover span#author { display:none; }

With this set of rules, #show-story SPAN will not be visible when the mouse is not over the link, and the other SPAN #author will not be visible when the mouse is over the link. Easy and simple.

Hope you enjoyed reading this article.

The example

Creating news site heading like in “Covers” – Take a look at the example

Make Your Windows Xp Run Faster Than Never Before!

First of all this tips & tricks is courtsey not by me but i have found on on of the forum. I ahve tried this tricks and works very good

Most imp thing is thgat if anyone colund not follow and get problems or any type of damages by this tips anyhow……….. i’ll not be responsible

Her r the tips…………….

Indexing Services is a small little program that uses large amounts of RAM and can often make a computer endlessly loud and noisy. This system process indexes and updates lists of all the files that are on your computer. It does this so that when you do a search for something on your computer, it will search faster by scanning the index lists. If you don’t search your computer often, or even if you do search often, this system service is completely unnecessary. To disable do the following:

1. Go to Start
2. Click Settings
3. Click Control Panel
4. Double-click Add/Remove Programs
5. Click the Add/Remove Window Components
6. Uncheck the Indexing services
7. Click Next


Windows XP can look sexy but displaying all the visual items can waste system resources. To optimise:

1.Go to Start
2. Click Settings
3. Click Control Panel
4. Click System
5. Click Advanced tab
6. In the Performance tab click Settings
7. Leave only the following ticked:
– Show shadows under menus
– Show shadows under mouse pointer
– Show translucent selection rectangle
– Use drop shadows for icons labels on the desktop
– Use visual styles on windows and buttons


Windows XP has a performance monitor utility which monitors several areas of your PC’s performance. These utilities take up system resources so disabling is a good idea.

To disable:

1. download and install the Extensible Performance Counter List(
2.Then select each counter in turn in the ‘Extensible performance counters’ window and clear the ‘performance counters enabled’ checkbox at the bottom.button below.


You may have noticed that everytime you open my computer to browse folders that there is a slight delay. This is because Windows XP automatically searches for network files and printers everytime you open Windows Explorer. To fix this and to increase browsing significantly:

1. Open My Computer
2. Click on Tools menu
3. Click on Folder Options
4. Click on the View tab.
5. Uncheck the Automatically search for network folders and printers check box
6. Click Apply
7. Click Ok
8. Reboot your computer


Cacheman Improves the performance of your computer by optimizing the disk cache, memory and a number of other settings.

Once Installed:

1.Go to Show Wizard and select All
2.Run all the wizards by selecting Next or Finished until you are back to the main menu. Use the defaults unless you know exactly what you are doing.
3.Exit and Save Cacheman
4.Restart Windows


There are lots of ways to do this but by far the easiest is to run TCP/IP Optimizer.

1. Download( and install
2. Click the General Settings tab and select your Connection Speed (Kbps)
3. Click Network Adapter and choose the interface you use to connect to the Internet
4. Check Optimal Settings then Apply
5. Reboot


If you give your pagefile a fixed size it saves the operating system from needing to resize the page file.

1. Right click on My Computer and select Properties
2. Select the Advanced tab
3. Under Performance choose the Settings button
4. Select the Advanced tab again and under Virtual Memory select Change
5. Highlight the drive containing your page file and make the initial Size of the file the same as the Maximum Size of the file.

Windows XP sizes the page file to about 1.5X the amount of actual physical memory by default. While this is good for systems with smaller amounts of memory (under 512MB) it is unlikely that a typical XP desktop system will ever need 1.5 X 512MB or more of virtual memory. If you have less than 512MB of memory, leave the page file at its default size. If you have 512MB or more, change the ratio to 1:1 page file size to physical memory size.

BootVis will significantly improve boot times

1. Download and Run
2. Select Trace
3. Select Next Boot and Driver Trace
4. A Trace Repetitions screen will appear, select Ok and Reboot
5. Upon reboot, BootVis will automatically start, analyze and log your system’s boot process. When it’s done, in the menu go to Trace and select Optimize System
6. Reboot.
7. When your machine has rebooted wait until you see the Optimizing System box appear. Be patient and wait for the process to complete

Your desktop background consumes a fair amount of memory and can slow the loading time of your system. Removing it will improve performance.

1. Right click on Desktop and select Properties
2. Select the Desktop tab
3. In the Background window select None
4. Click Ok


Fonts, especially TrueType fonts, use quite a bit of system resources. For optimal performance, trim your fonts down to just those that you need to use on a daily basis and fonts that applications may require.

1. Open Control Panel
2. Open Fonts folder
3. Move fonts you don’t need to a temporary directory (e.g. C:\FONTBKUP?) just in case you need or want to bring a few of them back. The more fonts you uninstall, the more system resources you will gain.


Because Windows XP has to be all things to all people it has many services running that take up system resources that you will never need. Below is a list of services that can be disabled on most machines:

Computer Browser
Distributed Link Tracking Client
Fast User Switching
Help and Support – (If you use Windows Help and Support leave this enabled)
Human Interface Access Devices
Indexing Service
IPSEC Services
Netmeeting Remote Desktop Sharing (disabled for extra security)
Portable Media Serial Number
Remote Desktop Help Session Manager (disabled for extra security)
Remote Procedure Call Locator
Remote Registry (disabled for extra security)
Remote Registry Service
Secondary Logon
Routing & Remote Access (disabled for extra security)
SSDP Discovery Service – (Unplug n’ Pray will disable this)
Upload Manager
Universal Plug and Play Device Host
Windows Time
Wireless Zero Configuration (Do not disable if you use a wireless network)
To disable these services:

Go to Start and then Run and type “services.msc”
Doubleclick on the service you want to change
Change the startup type to ‘Disable”


System Restore can be a useful if your computer is having problems, however storing all the restore points can literally take up Gigabytes of space on your hard drive. To turn off System Restore:

Open Control Panel
Click on Performance and Maintenance
Click on System
Click on the System Restore tab
Tick ‘Turn off System Restore on All Drives’
Click ‘Ok’


Keeping your pagefile defragmented can provide a major performance boost. One of the best ways of doing this is to creat a separate partition on your hard drive just for your page file, so that it doesn’t get impacted by normal disk usage. Another way of keeping your pagefile defragmented is to run PageDefrag. This cool little app can be used to defrag your pagefile, and can also be set to defrag the pagefile everytime your PC starts. To install:

Download( and Run PageDefrag
Tick “Defrag at next Reboot”,
Click “Ok”


If you have a lot of folders and subdirectories on your computer, when you access a directory XP wastes a lot of time updating the time stamp showing the last access time for that directory and for ALL sub directories. To stop XP doing this you need to edit the registry. If you are uncomfortable doing this then please do not attempt.

Go to Start and then Run and type “regedit”
Click through the file system until you get to “HKEY_LOCAL_MACHINE\System\Cur rentControlSet\Control\FileSys tem”
Right-click in a blank area of the window on the right and select ‘DWORD Value’
Create a new DWORD Value called ‘NtfsDisableLastAccessUpdate’
Then Right click on the new value and select ‘Modify’
Change the Value Data to ‘1’
Click ‘OK’


Surprisingly, the beeps that your computer makes for various system sounds can slow it down, particularly at startup and shut-down. To fix this turn off the system sounds:

Open Control Panel
Click Sounds and Audio Devices
Check Place volume icon in taskbar
Click Sounds Tab
Choose “No Sounds” for the Sound Scheme
Click “No”
Click “Apply”
Click “OK”

A great new feature in Microsoft Windows XP is the ability to do a boot defragment. This places all boot files next to each other on the disk to allow for faster booting. By default this option in enables but on some builds it is not so below is how to turn it on.

Go to Start Menu and Click Run
Type in “Regedit” then click ok
Find “HKEY_LOCAL_MACHINE\SOFTWARE\M icrosoft\Dfrg\BootOpt imizeFunction”
Select “Enable” from the list on the right
Right on it and select “Modify”
Change the value to “Y to enable”


If you have more than 256MB of RAM this tweak will considerably improve your performance. It basically makes sure that your PC uses every last drop of memory (faster than swap file) before it starts using the swap file.

Go to Start then Run
Type “msconfig.exe” then ok
Click on the System.ini tab
Expand the 386enh tab by clicking on the plus sign
Click on new then in the blank box type”ConservativeSwapfileUsage =1″
Click OK
Restart PC


This is one of my favourite tweaks as it makes a huge difference to how fast your machine will ‘feel’. What this tweak does is remove the slight delay between clicking on a menu and XP displaying the menu.

Go to Start then Run
Type ‘Regedit’ then click ‘Ok’
Find “HKEY_CURRENT_USER\Control Panel\Desktop\”
Select “MenuShowDelay”
Right click and select “Modify’
Reduce the number to around “100”
This is the delay time before a menu is opened. You can set it to “0” but it can make windows really hard to use as menus will open if you just look at them – well move your mouse over them anyway. I tend to go for anywhere between 50-150 depending on my mood


This little tweak tends to work for most programs. If your program doesn’t load properly just undo the change. For any program:

Right-click on the icon/shortcut you use to launch the program
Select properties
In the ‘target’ box, add ‘ /prefetch:1’ at the end of the line.
Click “Ok”
Voila – your programs will now load faster.


This tweak reduces the time XP waits before automatically closing any running programs when you give it the command to shutdown.

Go to Start then select Run
Type ‘Regedit’ and click ok
Find ‘HKEY_CURRENT_USER\Control Panel\Desktop\’
Select ‘WaitToKillAppTimeout’
Right click and select ‘Modify’
Change the value to ‘1000’
Click ‘OK’
Now select ‘HungAppTimeout’
Right click and select ‘Modify’
Change the value to ‘1000’
Click ‘OK’
Now find ‘HKEY_USERS\.DEFAULT\Control Panel\Desktop’
Select ‘WaitToKillAppTimeout’
Right click and select ‘Modify’
Change the value to ‘1000’
Click ‘OK’
Now find ‘HKEY_LOCAL_MACHINE\System\Cur rentControlSet\Control\’
Select ‘WaitToKillServiceTimeout’
Right click and select ‘Modify’
Change the value to ‘1000’
Click ‘OK’


This tweak works by creating a batch file to clear the temp and history folders everytime you shutdown so that your PC doesn’t waste time checking these folders the next time it boots. It’s quite simple to implement:

1. Open Notepad and create a new file with the following entries:

RD /S /q “C:\Documents and Settings\”UserName without quotes”\Local Settings\History”
RD /S /q “C:\Documents and Settings\Default User\Local Settings\History”
RD /S /q “D:\Temp\” <–”Deletes temp folder, type in the location of your temp folder”

2. Save the new as anything you like but it has to be a ‘.bat’ file e.g. fastboot.bat or deltemp.bat

3. Click ‘Start’ then ‘Run’

4. Type in ‘gpedit.msc’ and hit ‘ok’

5. Click on ‘Computer Configuration’ then ‘Windows Settings’

6. Double-click on ‘Scripts’ and then on ‘Shutdown’

7. Click ‘Add’ and find the batch file that you created and then press ‘Ok’


When your PC starts it usually looks for any bootable media in any floppy or cd-rom drives you have installed before it gets around to loading the Operating System from the HDD. This can waste valuable time. To fix this we need to make some changes to the Bios.

1. To enter the bios you usually press ‘F2’ or ‘delete’ when your PC starts

2. Navigate to the ‘Boot’ menu

3. Select ‘Boot Sequence’

4. Then either move your Hard drive to the top position or set it as the ‘First Device’

5. Press the ‘Escape’ key to leave the bios. Don’t forget to save your settings before exiting

Note: Once this change has been made, you won’t be able to boot from a floppy disc or a CD-rom. If for some strange reason you need to do this in the future, just go back into your bios, repeat the steps above and put your floppy or CD-rom back as the ‘First Device’


When your computer boots up it usually has to check with the network to see what IP addresses are free and then it grabs one of these. By configuring a manually assigned IP address your boot time will improve. To do this do the following:

1. Click on ‘Start’ and then ”Connect To/Show All Connections’

2. Right-click your network adapter card and click ‘Properties’.

3. On the ‘General’ tab, select ‘TCP/IP’ in the list of services and click ‘Properties’

4.I n the TCP/IP properties, click ‘Use the following address’ and enter an IP address for your PC. If you are using a router this is usually 192.168.0.xx or 192.168.1.xx. If you are not sure what address you could check with your ISP or go to ‘Start/run’ and type ‘cmd’ and then ‘ipconfig/all’. This will show your current IP settings which you will need to copy.

5. Enter the correct details for ‘Subnet mask’, ‘Default gateway’ and ‘DNS Server’. Again if you are not sure what figures to enter use ‘ipconfig/all’ as in stage 4.

I found this useful app via FixMyXP. ClearMem Is an Excellent Tool for speeding up your XP Computer (especially if your system has been on for awhile and you have a lot of applications open). What it does, is it Forces pages out of physical memory and reduces the size of running processes if working sets to a minimum. When you run this tool, the system pauses because of excessive high-priority activity associated with trimming the working sets. To run this tool, your paging file must be at least as large as physical memory. To Check your Paging File:

1. Go to your control panel, then click on ‘System’, then go to the ‘Advanced’ Tab, and Under ‘Performance’ click ‘Settings’ then the ‘Advanced’ Tab

2. On the Bottom you should see ‘Virtual Memory’ and a value. This is the value that must be at least as large as how much memory is in your system.

3. If the Virtual Memory Value is smaller than your system memory, click Change and change the Min Virtual Memory to a number that is greater than your total system memory, then click ‘Set’ and Reboot.

4. Once you have rebooted install ClearMem


XP enables DMA for Hard-Drives and CD-Roms by default on most ATA or ATAPI (IDE) devices. However, sometimes computers switch to PIO mode which is slower for data transfer – a typical reason is because of a virus. To ensure that your machine is using DMA:

1. Open ‘Device Manager’

2. Double-click ‘IDE ATA/ATAPI Controllers’

3. Right-click ‘Primary Channel’ and select ‘Properties’ and then ‘Advanced Settings’

4. In the ‘Current Transfer Mode’ drop-down box, select ‘DMA if Available’ if the current setting is ‘PIO Only’


Some machines suffer from jerky graphics or high CPU usage even when a machine is idle. A possible solution for this, which, can also can help network performance is to:

1. RightClick ‘My Computer’

2. Select ‘Manage’

3. Click on ‘Device Manager’

4. DoubleClick your network adaptor under ‘Network Adapters’

5. In the new window, select the ‘Advanced’ tab

6. Select ‘Connection Type’ and select the correct type for your card and then Reboot


Although not strictly a performance tweak I love this fix as it makes my machine ‘feel’ faster. I hate the annoying ‘are you sure?’ messages that XP displays, especially if I have to use a laptop touchpad to close them. To remove these messages:

1. Right-click on the ‘Recycle Bin’ on the desktop and then click ‘Properties’

2. Clear the ‘Display Delete Confirmation Dialog’ check box and click ‘Ok’

If you do accidently delete a file don’t worry as all is not lost. Just go to your Recycle Bin and ‘Restore’ the file.


Prefetch is designed to speed up program launching by preloading programs into memory – not a good idea is memory is in short supply, as it can make programs hang. To disable prefetch:

1. Click ‘Start’ then ‘Run’

2. Type in ‘Regedit’ then click ‘Ok’

3. Navigate to ‘HKEY_LOCAL_MACHINE\SYSTEM\Cur rentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\ ‘

4. Right-click on “EnablePrefetcher” and set the value to ‘0’

5. Reboot.

Do at your own risk

Enjoy…. if u like plss post the thanks only

writing on wall for vertical job search engines?

Is it too early to forecast the demise of the vertical job search engines? Maybe. Maybe not. Here are some thoughts to consider:

  1. Indeed – If any vertical will survive on its own, these guys are it. They know the job board business better than their peers and have kept things focused and lean-and-mean from Day One. That said, the recent choice by investor New York Times to ally with Monster Worldwide doesn’t bode well for the current state of revenue generation for Indeed. Their PPC model, a la Google AdWords, is well done, but by the time enough job boards become advertisers (assuming a profitable number do become advertisers), the faucet of content may dry-up.
  2. Simply Hired – Born to be acquired and partying like its 1999. The gang at SH is very talented but their trial-and-error is reminiscent of the early days: resume blasting, untargeted banner ads (a job search for “marketing” in “Cleveland” gives me general ads for Dice, a healthcare job board and Oracle) and giveaway promos for a free HP Jordana, er, I mean iPhone. The Job-a-matic product is nice, but I have doubts the blogging masses will generate enough cash to make it worthwhile. Hell, I write for the Internet recruiting space and only have 2 job postings on my own board … and postings are only $5. Geesh!
  3. Jobster – The evolution of these cats reads like a horror story out of business school. Referral site then vertical job search engine then social network then layoffs then free-for-all and spending God-only-knows to partner exclusively with Facebook. Whew! At least $50 million buys a great roller coaster ride. I look at Jobster and see a site at this point just hoping to 1) drive a bunch of traffic, 2) get a lot of registered users and, most importantly, 3) pull a good number of employers into their database via free job postings, in return for becoming an appealing acquisition target. Maybe if someone like IAC buys Facebook, they’ll throw in Jobster for fun. Dating with your job search anyone?
  4. The periphery – Take a look at the second tier players in this space and there’s not much to be impressed about. Many are experiments, supporting sites to bigger ones, drowning without an acquisition lifesaver or, worse yet, none of the above. I think you’ll see a lot of death and destruction in the coming year.

It makes me sad. I hope I’m wrong. I’m a big fan of vertical search in general, but particularly for jobs. I think users prefer a single destination to search multiple boards and employers. And I still believe the idea can work in the right environment. Google Base is seeing improvement and traffic mammoth Yahoo! has a lot of potential integrating job content from around the Web.

However, the unfortunate reality may be that no matter how much the verticals provide a great service, pleasing the investors who have poured tens of millions into seeing big money probably are not all that pleased right about now.

That said, a majority of the primary verticals have told me to be on the lookout for enhancements that will “blow your mind.” We’ll see. Blowing away the revenue projections would probably be more important at this point.


Single & Double Quotes

First of all:
Double Quote Marks (“) have to be around an entire SQL Statement

If there is Limiter (non-numeric), like ‘where Fieldname=Peter’, where the limiter is not numeric, then you must put single quotes around it:

“Select * from Tablename where (Firstname)=’Peter’

This is an example of an EXACT SQL Statement. We are asking to return all instances of the name ‘Peter’.

Here’s where it gets tricky with variables. In our form, we are requesting a name, but whoever fills out the form might want to search for someone with a different name. So, since it can be different things to different people, we assign that section of the SQL statement a variable.

Let’s say you have designated a variable called FirstNameVar. Above where Peter starts is where the variable would go, but Peter is an exact search and a variable is not, so your SQL ending double quote goes directly after the single quote. This is where the EXACT SQL statement ends. At this point, you have:

“Select * from Tablename where (Firstname)='”

Notice, that directly after the single quote is a double quote, just as if it were the end, but as you know, it isn’t. Think of how a response.write statement is in ASP.Net when we have html that needs to be in the response.write statement:
Response.write “Here is the the name You wanted” & myVar

The exact HTML is separated from the ASP. Well, in SQL, the same thing is happening. You are separating the EXACT SQL statement from the Variables.

OK, what about the variable? Well, you add an ampersand and the variable name:

“Select * from Tablename where (Firstname)='” & FirstNameVar

But, we’re not finished yet, because, if you remember, the EXACT name must be surrounded by single quotes and the entire SQL statement must start & end with double quotes. Therefore, we must add the single quote, but also remember that it is still part of the EXACT SQL Syntax. And – in SQL, when you separate the EXACT SQL from the variables, each section of the EXACT SQL is enclosed within its own double quotes. The SQL statement, though, within the ASP.Net brackets is a separated text statement. The EXACT SQL is surrounded by quotes, where the variables aren’t. Remember, we are inside the ASP.Net brackets with this SQL statement and everything within double quotes is not considered ASP.Net code. So, we end up with:

“Select * from Tablename where (Firstname)='” & FirstNameVar & “‘”

If you wanted to change out the “=” for “like”, then you would have an exact SQL like:

“Select * from Tablename where (Firstname)=’Peter%’

where this would find all instances of Peter as well as Peterman, Peterovsky, etc.

“Select * from Tablename where (Firstname)=’%Peter%’

— which would return to you any name which had the letters Peter anywhere in it.

With Variables, that would give you something like this:

“Select * from Tablename where (Firstname)=’%” & FirstNameVar & “%'”

Notice And, of course, this is only the first part because we are dealing with Non-numeric/text type values only. There are no single quotes around numeric values in an SQL statement.
So, if you put the single quotes around data and the data type of the field is numeric, you will get an error – a datatype mismatch error. Naturally, you need to be knowledgeable about the data structure of your table so that, for the fields that have a numeric datatype, you can go back and remove the single quotes around that field in the SQL statement.
For instance, if your statement looks like this:

MySQL="Select  * from data where age >'" & strAge & "'"

You will get an error on the Age field if, in your data structure, you have defined the Age field with a numeric datatype. You would need to change your statment to this:

MySQL="Select  * from data where age >" & strAge

Notice that the single quote before and after strAge have been removed. This will not give you an error. Then, of course, this principle is even more exemplified when using an INSERT statement. It boils down to one fact :

When you use single quotes, you are telling the database “the data I’m requesting (or INSERTING) is text”.
When you do not surround the data in your SQL statements with single quotes, you are telling the database “the data I’m requesting (or INSERTING) is numeric”.

So, as you can see it really pays to know your data!

Now – one Caveat – – Let’s say, you are inserting/updating a field where there is an apostrophe or single quote in the text itself. Since data is surrounded with single quotes, this would then cause a problem. It would actually end the text for that field at the point of the single quote/apostrophe. Then, the rest of the entire SQL statement is thrown off. To deal with this we can double the single quotes in the variable before it’s inserted into the database. By doing this, the database knows that two single quotes/apostrophes in a row mean that we actually want that character in the data. I normally recommend doing the replacement before the SQL statement so that the SQL statement is as clean and readable as possible. Here’s the basic VB.Net syntax for replacement:

MyVar = MyVar.Replace(“‘”, “””)

Don’t forget, though, to reverse the process when displaying the data from the database.In this tutorial, we’ve shown how to use single quotes and double quotes, with variables in an SQL statement and how to deal with single quotes/apostrophes with insert/update SQL statements. At this point, the rest is up to you!


Optimize database code to boost performance

As .NET developers, we often find ourselves waist deep in SQL Server queries and stored procedures. A good example is an ASP.NET application I recently developed and delivered to the client for testing. The application utilized an existing SQL Server database with most of the T-SQL contained in pre-existing stored procedures (aka, I didn’t write them). I delivered the application and the client complained about performance problems. The bottlenecks originated in the database tier, so I ended up spending countless hours organizing the T-SQL to boost performance.

This week, I share some tips that you may use in your projects. I focus on SQL Server, but many of the items are applicable to all database platforms.

Hard to avoid

Even though most organizations have database administrators and developers, it is hard to avoid SQL Server development. It is just one piece of the development puzzle. I’ve had many database developers tell me that I know what my application needs so I should write the query. While it is hard to argue with that logic, it is difficult to be proficient with T-SQL, while keeping up with the many facets of .NET development. However, the basic T-SQL language remains consistent. With that in mind, let’s cover a few guidelines for developing efficient database code.

Optimization tips

Like any coding, there is more than one way to build your T-SQL queries. Here are a few guidelines for boosting performance.

WHERE clause

You should always use a WHERE clause to narrow the number of rows returned. If you do not use a WHERE clause, SQL Server performs a full table scan and returns all rows. (There will be situations where all rows are necessary, but use a WHERE clause for all other instances.)

You should always use the WHERE clause in favor of a HAVING clause. When you use GROUP BY with the HAVING clause, the GROUP BY clause divides the rows into sets of grouped rows and aggregates their values, and then the HAVING clause eliminates undesired aggregated groups. In many cases, you can write your select statement so it will contain only WHERE and GROUP BY clauses without a HAVING clause.


While the asterisk (*) makes it easy to return all column values returned by a query, you should only return the necessary rows. The fewer number of columns in the result set produces less data thus less network traffic. The performance boost depends upon the possible number of columns, but it is good practice to always designate columns.

Avoid cursors

SQL Server cursors make it easy to loop through a result set, but the functionality comes at the price of performance. Cursors may be good for nightly server tasks, but avoid them in your application code/procedures. It is better to use a select statement to return the necessary values and process them on the client side.

How many?

The T-SQL COUNT function makes it easy to return the number of items returned by a query, but the function can be used with a specific column to improve performance. The problem is that SELECT COUNT(*) performs a full table scan to return the count.

You can designate a column in the function call, and you can also use the sysindexes table if only a total row count is necessary (without a WHERE clause). There is the ROWS column in the sysindexes table. It contains the row count for each table in the database. The following query returns the number of rows in the specified table:

SELECT rows FROM sysindexes WHERE id = OBJECT_ID('table_name') AND indid < 2

Unique values

Many developers have fallen in love with the DISTINCT option in a query. It allows you to return only unique row values—no duplicates. The problem is that it degrades performance, so use it only when absolutely necessary.

Returning a number of rows

You may only need a subset of a query. The TOP operator allows you to designate that only a certain number or percentage of items are returned in the query—regardless of the total values returned by the query. The following query returns the top ten items of the query:

SELECT TOP 10 CustomerID FROM Northwind.dbo.Orders WHERE Freight < 50.0

Or, you can return a percentage of the overall result set:

SELECT TOP 5 percent CustomerID FROM Northwind.dbo.Orders WHERE Freight < 50.0

What code to avoid

This may seem like a no-brainer, but you should avoid any and all code that does nothing. I’ve encountered countless stored procedures that include code that adds no functionality. It may be left over from another version of the procedure, but you should remove it if it isn’t used; or, you can comment it out to avoid performance degradation.

Use the database server

You should take advantage of the database platform and use stored procedures as opposed to including T-SQL in your client code. Stored procedure code is optimized by the database platform, so it should be utilized at all times to ensure code is running efficiently. In addition, views can be utilized to replace large queries and boost performance.

Indexes are your friend

Utilizing table indexes can greatly improve query performance if the indexes are used and applied correctly. Proper index creation is beyond this article, but there are plenty of resources available to provide more information. In addition, SQL Server does include the SQL Profiler tool to aid in locating performance bottlenecks.

More work to do

Your .NET code has been tested and everything is functioning as planned, but there may still be work to do on the database side. You can attack slow performing queries various ways, but I hope the guidelines in this article provide you with a sound starting point. In addition, you can utilize the SQL Server toolset to identify and address query issues. Please share your tips for optimizing queries with the community in the article discussion.