Archive for the ‘Linux’ Category

NTLDR is Missing Error Resolution

NTLDR Error Message

There are few different ways that the “NTLDR is missing” error may present itself, with the first listing being the most common:

  • “NTLDR is missing
    Press any key to restart”
  • “NTLDR is missing
    Press Ctrl Alt Del to restart”
  • “Boot: Couldn’t find NTLDR
    Please insert another disk”

The “NTLDR is missing” error displays very shortly after the computer is first started, immediately after the Power On Self Test (POST)is complete. Windows XP has only initially begun to load when the NTLDR error message appears.

Causes of NTLDR Errors

There are a number of possible causes for NTLDR errors, including the most common “NTLDR is missing” error message.

The most common reason for this error is when your PC is trying to boot from a hard drive or flash drive that is not properly configured to be booted from; in other words, it’s trying to boot from a non-bootable source. This also would apply to media on an optical drive or floppy drive that you’re trying to boot from.

Other possible causes include corrupt and misconfigured files, hard drive and operating system upgrade issues, corrupt hard drive sectors, an outdated BIOS, and damaged or loose IDE cables.

Fixes for NTLDR Errors

  1. Restart the PC. The NTLDR error could be a fluke.
  2. Check your floppy and optical (CD/DVD/BD) drives for media and disconnect any external drives. Often times, the “NTLDR is Missing” error will appear if your PC is trying to boot to a non-bootable floppy disk, CD/DVD/BD, or external hard drive or flash drive.

    Note: If you find that this is the cause of your problem and it’s happening a lot, you might want to consider changing the boot order in BIOS so the hard drive with Windows installed is listed first.

  3. Check the hard drive and other drive settings in BIOS and ensure they are correct. The BIOS configuration tells the computer how to use a drive so incorrect settings can cause problems, including NTLDR errors.

    Note: There is usually an Auto setting for hard drive and optical drive configurations in BIOS which is usually a safe bet if you’re not sure what to do.

  4. Restore the NTLDR and ntdetect.com files from the Windows XP CD. Restoring these two important system files from the original Windows XP CD may do the trick.
  5. Repair or replace the boot.ini file. This will prevent the NTLDR error if the cause of the problem is a boot.ini file that is not configured properly for your Windows XP installation.
  6. Write a new partition boot sector to the Windows XP system partition. If the partition boot sector has become corrupt or isn’t properly configured, you may receive the “NTLDR is Missing” error.
  7. Repair the Windows XP master boot record. NTLDR error messages may also appear if the master boot record is corrupt.
  8. Reseat all internal data and power cables. NTLDR error messages could be caused by loose or malfunctioning IDE cables.

    Try replacing the IDE cable cable if you suspect it might be faulty.

  9. Update your motherboard’s BIOS. Occasionally, an outdated BIOS version can cause the “NTLDR is Missing” error.
  10. Perform a repair installation of Windows XP. This type of installation should replace any missing or corrupt files. Continue troubleshooting if this does not resolve the issue.
  11. Perform a clean installation of Windows XP. This type of installation will completely remove Windows XP from your PC and install it again from scratch. While this will almost certainly resolve any NTLDR errors, it is a time consuming process due to the fact that all of your data must be backed up and then later restored.

    If you can’t gain access to your files to back them up, understand that you will lose them all if you continue with a clean installation of Windows XP.

  12. Replace the hard drive and then perform a new installation of Windows XP. If all else has failed, including the clean installation from the last step, you’re most likely facing a hardware issue with your hard drive.

NTLDR Errors Apply To

This issue applies to the Windows XP operating system, including Windows XP Professional and Windows XP Home Edition. Windows 7 and Windows Vista do not utilize NTLDR.

Still Having NTLDR Issues?

Let a community of PC support enthusiasts help out! Post the details of your problem in the Focus on PC Support Forums. Be sure to let them know what steps you’ve already taken to resolve the “NTLDR is missing” issue.

How To Fix Missing Hal.dll Errors in Windows XP

Hal.dll Error Message

There are few different ways that the “missing or corrupt hal.dll” error may present itself, with the first listing being the most common:

  • “Windows could not start because the following file is missing or corrupt:
    <Windows root>\system32\hal.dll.
    Please re-install a copy of the above file.”
  • “<Winnt_root>\System32\Hal.dll missing or corrupt:
    Please re-install a copy of the above file.”
  • “Cannot find \Windows\System32\hal.dll”
  • “Cannot find hal.dll”

The “missing or corrupt hal.dll” error displays shortly after the computer is first started. Windows XP has not yet fully loaded when this error message appears.

Windows 7 & Vista: Hal.dll errors in Windows Vista and Windows 7 are often a different issue entirely. See How To Fix Hal.dll Errors in Windows 7 and Windows Vista for help.

Cause

Causes of the “missing or corrupt hal.dll” error include, naturally, a damaged hal.dll DLL file or a hal.dll file that has been deleted or moved from its intended location.

Additional causes may include a damaged or missing boot.ini file or possibly a physically damaged hard drive.

Hal.dll Error Troubleshooting

  1. Restart the PC. The hal.dll error could be a fluke.
  2. Check for proper boot order in BIOS. You might see the hal.dll error if the boot order in BIOS is first looking at a hard drive other than your main hard drive.

    Note: If you’ve recently changed your boot order or recently flashed your BIOS, this may be what’s causing your problem.

  3. Run Windows XP System Restore from a command prompt. If this doesn’t work or you’re receiving the hal.dll error message before you’re able to complete this process, move on to the next step.
  4. Repair or replace the boot.ini file. This will work if the cause of the problem is actually Windows XP’s boot.ini file and not the hal.dll file, which is often times the case.

    Note: If repairing the boot.ini does correct the hal.dll issue but the problem reappears after a reboot and you’ve recently installed Internet Explorer 8 in Windows XP, uninstall IE8. In this specific situation, IE8 could be the root cause of your hal.dll problem.

  5. Write a new partition boot sector to the Windows XP system partition. If the partition boot sector has become corrupt or isn’t properly configured, you may receive the hal.dll error.
  6. Recover data from any bad sectors on your hard drive. If the physical part of your hard drive that stores any part of the hal.dll file has been damaged, you’re likely to see errors like this.
  7. Restore the hal.dll file from the Windows XP CD. If the hal.dll file is truly the cause of the problem, restoring it from the original Windows XP CD may do the trick.
  8. Perform a repair installation of Windows XP. This type of installation should replace any missing or corrupt files. Continue troubleshooting if this does not resolve the issue.
  9. Perform a clean installation of Windows XP. This type of installation will completely remove Windows XP from your PC and install it again from scratch.

    Note: While this will almost certainly resolve any hal.dll errors, it is a time consuming process due to the fact that all of your data must be backed up and then later restored.

    Important: If you can’t gain access to your files to back them up, you should understand that you will lose them all if you continue with a clean installation of Windows XP.

  10. Test the hard drive. If all else has failed, including the clean installation from the last step, you’re most likely facing a hardware issue with your hard drive but you’ll want to test it to be sure.

    If the drive fails any of your tests, replace the hard drive and then complete a “new” installation of Windows XP.

Applies To

This issue applies to the Windows XP operating system, including Windows XP Professional and Windows XP Home Edition.Windows 7 and Windows Vista might also experience hal.dll errors but the causes are so different that it constituted an entirely different troubleshooting guide: How To Fix Hal.dll Errors in Windows 7 and Windows Vista.

Still Having Hal.dll Issues?

Let a community of PC support enthusiasts help out! Post the details of your problem in the PC Support Forum. Be sure to let them know what steps you’ve already taken to resolve the “missing or corrupt hal.dll” issue.

How To Fix BOOTMGR is Missing Errors for Windows Xp, Vista and 7

Question :- Recently i changed my Hard disk as it was corrupted with bad sectors, then while booting with new Hard drive i Faced BOOTMGR is Missing and Couldn’t find BOOTMGR Errors. could any one can help me resolving my problem.

Answer :- BOOTMGR Error Message

There are few ways that the “BOOTMGR is missing” error may show up on your computer, with the first error I have listed being the most common:

  • “BOOTMGR is missing
    Press Ctrl Alt Del to restart”
  • “BOOTMGR is missing
    Press any key to restart”
  • “Couldn’t find BOOTMGR”

The “BOOTMGR is missing” error displays shortly after the computer is turned on, immediately after the Power On Self Test (POST) is complete. Windows 7 or Windows Vista has only initially started to load when the BOOTMGR error message appears.

Causes of BOOTMGR Errors

There are a number of possible causes for BOOTMGR errors, including the most common “BOOTMGR is missing” error message.

The most common reasons for BOOTMGR errors include corrupt and misconfigured files, hard drive and operating system upgrade issues, corrupt hard drive sectors, an outdated BIOS, and damaged or loose IDE cables.

Another reason you might see BOOTMGR errors is if your PC is trying to boot from a hard drive or flash drive that is not properly configured to be booted from. In other words, it’s trying to boot from a non-bootable source. This also would apply to media on an optical drive or floppy drive that you’re trying to boot from.

Fixes for BOOTMGR Errors

  1. Restart the PC. The BOOTMGR error could be a fluke.
  2. Check your optical drives, USB ports, and floppy drives for media. Often times, the “BOOTMGR is Missing” error will appear if your PC is trying to boot to a non-bootable disc, external drive, or floppy disk.Note: If you find that this is the cause of your issue and it’s happening regularly, you might want to consider changing the boot order in BIOS so the hard drive is listed as the first boot device.
  3. Perform a Startup Repair of Windows. This type of installation shouldreplace any missing or corrupt files, including BOOTMGR.Even though a Startup Repair is a common solution for BOOTMGR problems, don’t worry if it doesn’t fix your problem. Just continue troubleshooting – something will work.
  4. Write a new partition boot sector to the Windows system partitionto correct any possible corruption, configuration problem, or other damage.The partition boot sector is an important piece in the boot process so if there’s any issue with it, you’ll see problems like “BOOTMGR is Missing” errors.
  5. Rebuild the Boot Configuration Data (BCD). Similar to the partition boot sector, a corrupted or incorrectly configured BCD could cause BOOTMGR error messages.Important: The following troubleshooting steps are much less likely to help fix your BOOTMGR problem. If you’ve skipped any of the above ideas then you may have overlooked a very likely solution to this problem!
  6. Check the hard drive and other drive settings in BIOS and ensure they are correct. The BIOS configuration tells the computer how to use a drive so incorrect settings can cause problems, including BOOTMGR errors.Note: There’s usually an Auto setting in BIOS for hard disk and optical drive configurations which is usually a safe bet if you’re not sure what to do.
  7. Reseat all internal data and power cables. BOOTMGR error messages could be caused by loose or malfunctioning power or controller cables.Try replacing the PATA or SATA cable if you suspect it might be faulty.
  8. Update your motherboard’s BIOS. An outdated BIOS version can sometimes cause the “BOOTMGR is Missing” error.
  9. Perform a clean installation of Windows. This type of installation will completely remove Windows from your PC and install it again from scratch. While this will almost certainly resolve any BOOTMGR errors, it’s a time consuming process due to the fact that all of your data must be backed up and then later restored.If you can’t gain access to your files to back them up, please understand that you will lose them all if you continue with a clean installation of Windows!
  10. Replace the hard drive and then install a new copy of Windows. If all else has failed, including the clean installation from the last step, you’re most likely facing a hardware issue with your hard drive.

BOOTMGR Errors Apply To

BOOTMGR issues apply to Windows 7 and Windows Vista operating systems only. Windows XP does not utilize BOOTMGR. The equivalent function in Windows XP is NTLDR.

Still Having BOOTMGR Issues?

Let a community of PC support enthusiasts help out! Post the details of your problem in the PC Support Forum. Be sure to let ‘PC Support Guys’ know what steps you’ve already taken to resolve the “BOOTMGR is missing” issue.

Best 25 Free Online Fax Services

It can be quite expensive to keep separate and dedicated Fax machines for different sections of big offices. Every department want privacy of data and want to shed the dependence on one particular fax machine.

But on the other hand, when many employees are at freedom of working from home and others are traveling continuously to every corner of world, keeping Fax machines at every place is next to impossible. Many of you don’t know that we can look up to online fax service in such a right spot.

Although most of these online fax services are not free to use but you can always opt for the trial version before actually buying the paid version. Today we have collected 25 Best Free Online Fax Services which will give you a whole bunch of happiness. You will no more be on the mercy of the Fax machine being kept on the reception area of your office. These Online Fax Services send Fax to you in form of emails so you can check the fax at your ease. Please have a look at below mentioned 25 Best Free Online Fax Services (Trial Versions) and make your life simple and better.

If you like this article, you might be interested in check the collection of website for Free Stock Photos,Make a Cartoon of Yourself, Finding a Perfect Domain Name, Download Free Fonts, Have Fun With Your Pics, Free Textures, and Getting Free Vector Art Images.

eFax

Send & receive faxes by email and you will also get a local fax number. You can check it with a 30 day trial offer.

eFax

More Information on eFax

K7

Its a web-based unified messaging system that channels your free voicemail and fax messages directly to your e-mail. K7 Unified Messaging provides you with a free phone number.

K7

More Information on K7

faxZERO

In its free version, you will have an Ad on the cover page,you can Fax 1 document — max 3 pages and Max 2 free faxes on per day basis

faxZERO

More Information on faxZERO

My1Voice

My1Voice is a virtual phoone. You can check a 30 day trial version and receive faxes from your my1voice number along with other features.

My1Voice

More Information on My1Voice

PamFax

With a trial version of PamFax, you can send some faxes for free. Iit supports many file formats in addition to PDF and DOC files.

PamFax

More Information on PamFax

ScanR

It’s a digital scanner and fax in your pocket! Your phone is suddenly a business center – scan, print and fax wherever you go. Scan documents to turn them into digital files you can store, share, and fax.

ScanR

More Information on ScanR

freefax

freefax

More Information on freefax

Interpage

This is a free service offered by Interpage to demonstrate and promote our fast, robust, and reliable email-to-fax and other fax delivery services. Using this service, you may send a fax for free to any US/Canada-based fax machine, for delivery to the destination fax which you specify

Interpage

More Information on Interpage

MaxEmail

Send & Receive Faxes Without Buying a Fax Machine or an Expensive Dedicated Phone Line

MaxEmail

More Information on MaxEmail

RapidFAX

RapidFAX combines the utility of fax with the ease of email to meet the needs of the small office and home office.

RapidFAX

More Information on RapidFAX

smartfax

Send fax from email to any fax number. Merge the convenience of email with fax.

smartfax

More Information on smartfax

TrustFax

With Trustfax, no Fax Machine or Phone Line Required and you get a Toll-Free and Local Fax Number.

TrustFax

More Information on TrustFax

VIF Internet

ervice limited to sending free faxes to the city of Montreal, Canada.

VIF Inter

More Information on VIF Internet

Metro Fax

With metro fax you can send high quality faxes from anywhere in the world using your web browser, no need for a fax machine, to a wide range of locations.

Metro Fax

More Information on Metro Fax

PopFax

You will get an account to send and receive fax, with a local fax number you can choose from over 500 cities in 20 countries. What more you can even go for a mobile fax service.

PopFax

More Information on PopFax

FaxFreedom

Fax machines are expensive and take up too much room. With FaxFreedom you can now simply send and receive faxes from any computer.

FaxFreedom

More Information on FaxFreedom

nextiva

With Nextiva vFAX all you need is an Internet connection in order to send and receive faxes. Our online fax service is easy to use, affordable and gives you great flexibility.

nextiva

More Information on nextiva

MyFax

MyFax is a fax service that lets you send and receive faxes through your email, the web, or smart phone.

MyFax

More Information on MyFax

Wonderfax

WonderFax is a free UK fax number that pick up your fax, converts them to a pdf file and emails it back to you as an attachment. So there is no need for fax lines or fax machines.

Wonderfax

More Information on Wonderfax

FaxOrama

FaxOrama supports multiple document formats like DOC, DOCX, RTF, GIF, JPG, JPEG, PDF, TIF, XLS, XLSX, TXT, PNG, BMP and WPS. You can also opt for a restricted sending option but an ad free free version.

FaxOrama

More Information on FaxOrama

Superfax

You can get a Fax Number in Paris, Los Angles or London for Free for a week. And See how it works.

Superfax

More Information on Superfax

MESSAGENET

It gives you 90 days trial period to check the service. You can both receive as well as send fax free till this time

MESSAGENET

More Information on MESSAGENET

GotFreeFax

It lets user send free fax online to the US and Canada without ads

GotFreeFax

More Information on GotFreeFax

that’s it.

A detailed Discussion about CSS3 : border-image

Another exciting new border feature of CSS3 is the property border-image. With this feature you can define an image to be used instead of the normal border of an element. This feature is actually split up into a couple of properties: border-image and border-corner-image. These two values are shorthands for:

  • border-image:
    • border-top-image
    • border-right-image
    • border-bottom-image
    • border-left-image
  • border-corner-image:
    • border-top-left-image
    • border-top-right-image
    • border-bottom-left-image
    • border-bottom-right-image

border-image currently works in Safari and Firefox 3.1 (Alpha). The syntax to use it is:

border-image: url(border.png) 27 27 27 27 round round;

Which results in:

Lorem ipsum dolor sit amet.

Or:

border-image: url(border.png) 27 27 27 27 stretch stretch;

Which then results in:

Lorem ipsum dolor sit amet.

For those of you not so lucky as to be able to see this, here are screenshots of the two examples.

Number one:
border-image first example
Number two:
border-image second example

The new CSS3 property border-image is a little tricky, but it can allow you to create flexible boxes with custom borders (or drop shadows, if that’s your thing) with a single div and a single image. In this article I explain how the border-image shorthand property works in today’s browsers.

The basic idea

The border-image shorthand property has 3 parts:

border-image: url(border-image.png) 25% repeat;

Essentially, these allow you to specify:

  1. An image to use as the border
  2. Where to slice that image, dividing the image into 9 sections
  3. How the browser should apply those sections to the edges of your element

The pertinent details

Let’s look at each part of the process in a little more detail. The first part is easy, and is familiar from the background-image property. For demonstration purposes I’ll use this image, which is 100px x 100px:

A border-image

Slicing your image

The second part can have from one to four values, much like the border-width property, and they are specified in the same order: top, right, bottom, left. You can use percentages or pixels. Strangely, the percentages require the “%”, while pixels should be listed without the “px”:

border-image: url(my-image.gif) 25% 30% 10% 20% repeat;
border-image: url(my-image.gif) 25 30 10 20 repeat;

In this case, since my image is 100px x 100px, the two rules above are equivalent – they slice the image in the same places. I’ve added some dimensions on my image to demonstrate:

A border-image

Repeat, Round, Stretch

border-image will always place the corner sections of your image into the corresponding corners of your element box, but the third part of the shorthand rule tells the browser how to treat the middle sections of your image — the ones that will go along the edges of your element. Repeat (repeat, or tile, the image) and stretch (stretch, or scale, the image) are pretty self-explanatory. Round means tile the image but only so that a whole number of tiles fit, and otherwise scale the image. Right now, Safari and Chrome interpret round asrepeat. There can be up to two values: one for the top and bottom edges of the element, and one for the left and right. Here’s an example with the top/bottom value set to repeat, and the left/right value set to stretch:

#example-one {
 border-width:25px 30px 10px 20px;
 -moz-border-image:url("border-image.png") 25 30 10 20 repeat stretch;
 -webkit-border-image:url("border-image.png") 25 30 10 20 repeat stretch;
 border-image:url("border-image.png") 25 30 10 20 repeat stretch;
}

Screenshot for Example One

LIVE DEMO, RSS READERS CLICK OVER TO SEE. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu arcu non dui consequat vestibulum non vitae eros. Donec imperdiet lorem at mi rhoncus lacinia. Phasellus porttitor ligula eu justo condimentum eget placerat arcu pharetra. Proin fringilla vulputate eros in accumsan. Sed mi nibh, pulvinar eu sollicitudin ut, feugiat non ipsum. In ornare, quam sit amet tempor suscipit, erat odio suscipit nisi, eu gravida nisl orci ut arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Border-width

border-image won’t do anything if you don’t specify a width for your border. For browsers that understand border-image, your image slices will be scaled to the specified width. If you use the border shorthand property, it provides a nice fallback for browsers that don’t:

#example-two {
 border:50px double orange;
 -moz-border-image:url("border-image.png") 25 30 10 20 repeat;
 -webkit-border-image:url("border-image.png") 25 30 10 20 repeat;
 border-image:url("border-image.png") 25 30 10 20 repeat;
}

Screenshot of Example Two

LIVE DEMO, RSS READERS CLICK OVER TO SEE.Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean eu arcu non dui consequat vestibulum non vitae eros. Donec imperdiet lorem at mi rhoncus lacinia. Phasellus porttitor ligula eu justo condimentum eget placerat arcu pharetra. Proin fringilla vulputate eros in accumsan. Sed mi nibh, pulvinar eu sollicitudin ut, feugiat non ipsum. In ornare, quam sit amet tempor suscipit, erat odio suscipit nisi, eu gravida nisl orci ut arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Or you can specify each width individually (in this example I’ve specified widths such that the image slices aren’t scaled at all):

#example-three {
 border-color:orange;
 border-style:double;
 border-width:25px 30px 10px 20px;
 -moz-border-image:url("border-image.png") 25 30 10 20 repeat;
 -webkit-border-image:url("border-image.png") 25 30 10 20 repeat;
 border-image:url("border-image.png") 25 30 10 20 repeat;
}

Screenshot of Example Three

LIVE DEMO, RSS READERS CLICK OVER TO SEE. dolor sit amet, consectetur adipiscing elit. Aenean eu arcu non dui consequat vestibulum non vitae eros. Donec imperdiet lorem at mi rhoncus lacinia. Phasellus porttitor ligula eu justo condimentum eget placerat arcu pharetra. Proin fringilla vulputate eros in accumsan. Sed mi nibh, pulvinar eu sollicitudin ut, feugiat non ipsum. In ornare, quam sit amet tempor suscipit, erat odio suscipit nisi, eu gravida nisl orci ut arcu. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Using a plain border at the same widths as your border-image won’t always be ideal, however, so you may want to use conditional stylesheets to give IE some different border styles altogether.

Browser quirks

Predictably, IE doesn’t understand anything of border-image. Browsers that do support border-image only support the shorthand property, not all the individual properties that aredescribed in the spec. Some potentially useful properties aren’t supported at all, especiallyborder-image-outset, which would solve this problem.

Also, the default behavior is supposed to be to discard the center section of the image, and use the ‘fill’ keyword on the border-image-slice property to preserve it:

The ‘fill’ keyword, if present, causes the middle part of the border-image to be preserved. (By default it is discarded, i.e., treated as empty.) (Read the spec)

But the current browser behavior is to preserve the middle, and there is no way to turn it off. Thus, if you don’t want your element’s content area to have a background, the center section of your image must be empty. However, you can use this filling behavior to your advantage, to create a box with a fancy border and background, with only one image.

Interactive demo

I built a border-image demo page to help me get my head around this complicated new set of CSS3 properties. You can pick an image, specify repeat, round, or stretch, and adjust the border-width and slicing. Enjoy!

Examples in the wild

CSS3 makes it possible to specify an image as an element’s border, instead of just a solid color. While on the surface this doesn’t seem particularly interesting, the way the property works makes it more than that which meets the eye. The border-image property lets you specify a single image for the purpose and then slices that image to create the desired border effect. Yes, CSS is slicing now. border-image is currently supported in all the modern browsers to various degrees except IE (as of IE9). The shorthand syntax is:

border-image: url(image.png) 25 40 12 10 stretch;

Where:

  • url: The image that should be used as the border image.
  • slicevalues: Up to four numbers that specify where the browser should slice the image:
    • The 1st value sets the offset of the first horizontal cut from the top of the image. For pixel units, do NOT include the “px” suffix.

    • The 2nd value sets the offset of the second vertical cut from the right edge of the image.

    • The 3rd value sets the offset of the third horizontal cut from the bottom of the image.

    • The 4th value sets the offset of the fourth vertical cut from the left edge of the image.

  • stretch: How the slices should be oriented inside the element’s border. Valid values are “stretch”, “repeat”, “round”, or “space”.

For slicevalues, if only one number is defined, the same value will be used for all 4 cuts. If 2 numbers are defined, the first is used for the top and bottom cuts, and the second the left and right cuts. Regardless, 4 cuts are made to the image in total, and the browser ends up with 9 slices that it uses to put together the border image of an element. Each slice is used to fill the corresponding edges of the element’s border, with the center slice covering the element itself (and should be made transparent in most cases).

This post isn’t about a detailed description of border-image– that will have to be for another post. For this post, what I want to demonstrate is how to use this property to easily add image frames to containers on your page. First, create the image you’d like to use as the frame; here I’ve whipped up 2 simple frames to illustrate the technique:

  

Note that both images above have a transparent inside so the content they are framing can show through.

Now, to the heart of the matter- to add an image border to an element, define the border-image property with slicevalues that cut up the image as desired. Also define a border-width property echoing those values. Enough talk, to some examples now! Note that the below examples do not work in IE (as of IE9):

Example 1:

Found across much of the tropics, the coconut is known for its great versatility as seen in the many domestic, commercial, and industrial uses of its different parts. Coconuts are part of the daily diet of many people. Its endosperm is known as the edible “flesh” of the coconut; when dried it is called copra. The oil and milk derived from it are commonly used in cooking and frying; coconut oil is also widely used in soaps and cosmetics. The clear liquid coconut water within is a refreshing drink and can be processed to create alcohol. The husks and leaves can be used as material to make a variety of products for furnishing and decorating. It also has cultural and religious significance in many societies that use it. -Wikipedia

CSS:

.imageborder{
border-width: 20px;
-moz-border-image: url(frame.gif) 20 stretch; /*Mozilla version*/
-webkit-border-image: url(frame.gif) 20 stretch; /*Webkit version*/
-o-border-image: url(frame.gif) 20 stretch; /*Opera version*/
-ms-border-image: url(frame.gif) 20 stretch; /*IE syntax when it does support this prop*/
border-image: url(frame.gif) 20 stretch; /*Standard version*/
}

Markup:

<div style=”width:50%;min-height:150px”>
Content text here…
</div>

Example 2:

CSS: Same as above.

Markup:

<img src=”coconut.jpg” />

Example 3:

CSS:

.imageborder2{
border-width: 25px 30px;
-moz-border-image: url(frame2.png) 25 30 stretch;
-webkit-border-image: url(frame2.png) 25 30 stretch;
-o-border-image: url(frame2.png) 25 30 stretch;
-ms-border-image: url(frame2.png) 25 30 stretch;
border-image: url(frame2.png) 25 30 stretch;
}.

Markup:

<div style=”width:470px;height:300px;background:url(ocean_thumb.jpg) center center no-repeat”>
</div>

 

If you have other examples on live sites, I’d love to see them. Leave a link in the comments!

Debugging : How To Configure IIS 7.0 and Tomcat on Windows Server 2008

Question/Problem : How To Configure IIS 7.0 and Tomcat on Windows Server 2008
I have a Website designed in ASP.NET 3.0 and have another application in Java and after i read your some of the bogs came to know about the dependencies of java and dotnet so decided to combine both of the application in a single one web application. Actually Website in ASP.net is a Bio Portal and the application in java is a webmail Portal. since both are right at there places but the problem is that java based webmail needs Apache tomcat for execution as a must and have installed Bio Portal on a domain hosted on IIS 7.0 (Windows server 2008). is unable to interrelate both the technologies into one. could any one can help me.

Solution : For the purposes of this installation guide I used Java Runtime Version 6 Update 21, Apache Tomcat 6.0.29 and the Microsoft IIS Application Request Routing (ARR) 2.0 module.

You can download the software that I used in this guide from the following locations :

1. Java JRE Version 6 Update 21 (If have installed this go to point 2)
http://www.oracle.com/technetwork/java/javase/downloads/index.html

2. Apache Tomcat (32-bit/64-bit Windows Service Installer) (If have installed this go to point 3)
http://tomcat.apache.org/download-60.cgi

3. IIS Application Request Routing (ARR) 2.0 (If have installed Proceed from here to next)
http://www.iis.net/download/applicationrequestrouting

Start by installing the Java runtime (JRE) and accept the license agreement.

Then change the installation target folder to C:\Java and then click OK and wait while Java installs

Once you have installed Java you can start installing Tomcat. Double-click the apache-tomcat-6.0.29.exe file to invoke the Apache Tomcat Setup Wizard.

Choose a Custom installation and ensure that the Examples are selected as shown here. You wouldn’t necessarily want to install the sample applications in a production environment but we will be using them in this walkthrough so we need to install them.

Select to install Tomcat in the C:\Tomcat folder as shown here and then click Next.

Leave the default HTTP/1.1 Connector port set to 8080 and choose a password for the admin account.

The setup wizard should find your Java installation automatically.

Click install and wait while Tomcat setup completes. When the installation is complete click Finish.

Now that you have Tomcat up and running you can test your installation by pointing your server’s browser at http://localhost:8080 and you should see the default Apache Tomcat welcome page as shown here.

Now that we have got Tomcat working

Now the configuration of IIS 7.0 and Tomcat can be done with two ways

  1. using IIS ARR Module
  2. Using JK 1.2 ConnectorWe will be proceding for the solution step by step, so let us start our first step using IIS ARR Module.

1. How To Configure IIS 7.0 and Tomcat with the IIS ARR Module

we need to install and configure the IIS Application Request Routing module which will allow IIS to act as a proxy server and forward requests on to Tomcat. Run the ARRv2_setup_x86_en-us.EXE file (or ARRv2_setup_amd64_en-us.EXE if you are using 64-bit Windows) to begin the ARR setup routine.

When the ARR module installation has completed it will create a log file (arr_setup.log) which can be found the %TEMP% folder.

Now that the Application Request Routing (ARR) module has been installed we need to configure it to act as a proxy server (this functionality isn’t enabled by default). In IIS Manager highlight the Application Request Routing Cache feature and click Open Feature in the Actions pane.

Click Server Proxy Settings in the Actions pane.

Tick the Enable proxy checkbox and then click Apply. Leave all the default values in place.

Next we need to configure a URL Rewrite rule so that IIS knows what to do with requests which we want to forward to Tomcat. Click the Default Web Site, highlight the URL Rewrite icon and then click Open Feature in the Actions pane.

In the URL Rewrite feature click Add Rules in the Actions Pane.

In the Add Rule(s) dialog box select Blank rule and click OK.

In the Edit Inbound Rule feature assign a name to the new rule and type (examples.+) in the Pattern dialog box. The new rule should default to using Regular Expressions (if it doesn’t ensure that you select this option)

In the Action section of the Edit Inbound Rule feature ensure that the Action type is set to Rewrite and then enter http://localhost:8080/{R:0} in the Rewrite URL dialog box as shown below. Click Apply to create the new rule.

Everything we need to configure is now in place and we are ready to test. Start by browsing the ‘Request Headers’ sample application from Tomcat directly on port 8080 with the result shown here.

The final step is to browse the same ‘Request Headers’ sample application on port 80 so that the request will be handled by IIS before being forwarded to Tomcat by the ARR proxy. If everything is configured correctly you should see the sample application load successfully as shown here.

If you now examine the IIS log file (which can be found in C:\inetpub\logs\LogFiles by default) you will see that the request for the Tomcat sample application was processed by IIS and proxied by the ARR module. The IIS log file contains both the X-ARR-CACHE-HIT and X-ARR-LOG-ID details as shown here.

Using the IIS ARR module means that there is no longer any need to use the Tomcat JK 1.2 ISAPI Connector. However, I would always recommend that you test your application rigorously before deploying it in a production environment. If you do find any issues with ARR you can always get support in the IIS ARR forums here :

http://forums.iis.net/1154.aspx

2. How To Configure IIS 7.0 and Tomcat with JK 1.2 Connector

Now we need to configure the JK 1.2 Connector which will allow IIS to effectively act as a proxy and forward requests on to Tomcat. Start by creating a folder called ‘ISAPI’ under the Tomcat root folder. Then copy the isapi_redirect-1.2.28.dll file into the ‘ISAPI’ folder and rename the file to isapi_redirect.dll as shown here.

In order to configure the Tomcat connector you need to either add an entry in the Windows registry or you can use the isapi_redirect.properties file. The isapi_redirect.properties file tells the connector where to find its configuration files and also where the isapi_redirect DLL file is located. If you have used the same directory structure as I have you can configure your isapi_redirect.properties file as shown here.

We also need to either update or create the two Tomcat connector configuration files (workers.properties and uriworkermap.properties) so that the connector knows how to handle the requests it receives. These configuration files are documented on the Tomcat web site here : The Apache Tomcat Connector – Reference Guide
If you have just installed Tomcat with the sample applications then you can copy the sample uriworkermap.properties file shown here. Both config files need to placed in the Tomcat ‘conf’ folder which in this example is C:\Tomcat\conf

You can also copy the sample workers.properties file as shown below and save it to the C:\Tomcat\conf folder.

Now we need to configure IIS. Start by creating a virtual directory and give it an alias of ‘jakarta’ as shown here. Incidentally, you don’t have to call the virtual directory ‘jakarta’ – you can actually give it any name you like, just so long as the name you choose appears in the extension_uri line of your isapi_redirect.properties file.

Next we need to configure the virtual directory to have execute permission. This was a simple tick-box option in IIS 6.0 but in IIS 7.0 we need to click on the Jakarta virtual directory and then double-click Handler Mappings.

Within the Handler Mappings feature click Edit Feature Permissions in the Actions Pane.

Click Execute in the Edit Feature Permissions dialog box and click OK.

In the Handler Mappings feature you can now see that calls to ISAPI-dll files are enabled.

The next step is to add an ISAPI filter on the web site. To do this click on the web site and then double-click the ISAPI Filters feature.

In the Actions pane click Add.

In the Add ISAPI Filter dialog box enter a name and the path to the isapi_redirect.dll file and click OK.

The Tomcat ISAPI filter should now appear in the ISAPI Filters list as shown here.

The final step we need to take is to configure the ISAPI and CGI Restrictions feature in IIS 7.0. This is analogous to adding or allowing a Web Service Extension in IIS 6.0. In IIS Manager navigate to the Server Home and then double-click on the ISAPI and CGI Restrictions feature.

In the ISAPI and CGI Restrictions feature click Add on the Actions pane.

In the Add ISAPI or CGI Restriction dialog box enter a name and the path to the isapi_redirect.dll file, tick the Allow extension path to execute option and click OK.

The Tomcat ISAPI extension should now appear in the list with a Restriction status of allowed as shown here.

Everything we need to configure is now in place and we are ready to test. I started by requesting the ‘Hello World’ sample application from Tomcat directly on port 8080 with the result shown here.

The final step is to request the same ‘Hello World’ sample application using port 80 so that the request will be handled by IIS before being forwarded to Tomcat. If everything is configured correctly you should see the sample application load successfully as shown here.

If you now examine the IIS log file (which can be found in C:\inetpub\logs\LogFiles unless you moved it) you will see the request for the sample application being handled by IIS over port 80. One behaviour change that I have noticed is that the actual resource being requested isn’t logged with IIS 7.0 whereas it was in IIS 6.0, although I think this is likely to be a change in the bahviour of the ISAPI filter itself rather than any change in how IIS logs requests.

That’s It. I think it will help all of my visitors to have the solution for their problems. If have any Problems please feel free to post comments right here.

A list of top 10 and Best FREE Webmail for your Website

10 Best FREE Webmail for your Website

Webmail’s software’s are scripts which run on your servers and give you browser based mail client interface like Gmail, Yahoo etc. There are several free webmail scripts available for php/mysql. They are especially useful in checking mails on the go, also when you have several employees and want everyone to have their own email under same domain, it can be easier for employees to login. Also as you’ll be using your own server the limit of storage will be your hosting servers limit itself, so it’s useful in you get lots of emails with big attachments and no free email service is offering enough space to store them.

Round Cube

It is a multilingual web based email client for PHP/MySQL. It offers a wide variety of features and is open source.

  • Full HTML email support
  • Multilingual with over 60+ languages
  • Search suggest address book
  • HTML message composing
  • Threaded Message
  • Shared folders
  • Can be extended using plugin api

Xeams

Secure and powerful mail server with multi OS support, currently it supports Windows, Linux, Solaris, MacOSX and other flavors or UNIX. Also comes with Spam filtering mechanism and is completely free.

  • Multi OS support
  • 99% spam protection
  • SMTP, POP3 and IMAP support
  • Policy Enforcement
  • Message Archiving

Claros inTouch

Open source ajax communication suite with built in messenger, rss, calendar, post-it support. It is created on java technology so your server need to have JAVA 2 SDK installed.

  • Live Messenger
  • Multiplatform Support
  • Multilingual
  • Post It Notes
  • RSS
  • Built In Spam Protection
  • Can be extended using plugin api

Conjoon

Full featured web based application for webmail with folder management, editor, feed reader, web 2.0 mashups and tabbed browsing. Built in ExtJs and Zend Framework and is completely free.

  • Browser Compatibility
  • Twitter Module
  • Tabbed Browsing
  • Intelligent Caching
  • Feeds Module
  • Wizard based installation

At mail

Free open source webmail written in PHP. Written to make it light weight yet powerful application. Also offers video mail and is multilingual.

  • Lightweight
  • Video Mail
  • Live Spell Check
  • HTML email Composing
  • LDAP address book

Xuheki

IMAP Browser based client for your email server. Licensed under GNU GPL and having a complete ajax interface. The main drawback is no support for POP3.

  • Multiple Folder
  • Browser Support
  • HTML Editor
  • Search & Sort
  • Excellent MIME Support

Zimbra

Zimbra claims to be the most capable open source email and collaboration suite available today. Comes with Rich AJAX integration and has global address lists, shared calendars and document management on the web or offline with Zimbra Desktop.

  • HTML Email
  • Mobile Support
  • Sharing and Document Management
  • Powerful Administration
  • Group Calendars

Exemis

It is a skin for well-known squirrel mail which comes bundled with most of cpanel hosts. It transforms the squirrel mail into user-friendly mail.

  • Plugin Support
  • No JavaScript required
  • Ajax Interface

Crystal Mail

Based on Roundcube it improves over the original interface. Released under GNU GPL 3.0 License. Claims to be world’s best webmail client. Also comes with 3 column layout.

After Logic Mail

After Logic Comes with a bundled package consisting of

E-mail Components

1. MailBee.NET Objects
Brings e-mail capabilities to your .NET applications in a few lines of code. You may choose a part of MailBee.NET Objects by standard (SMTPPOP3,IMAPSSLAntiSpamOutlook) or by task:create and sendreceiveparsemanage IMAP,protectbulk e-mails, make them safeprotect from spam, convert to Outlook .MSG or to PDF.

For developers who use classic ASP, Delphi or VB6, we offer ActiveX version – MailBee Objects.

WebMail

2. AfterLogic WebMail Pro
Webmail front-end for your existing POP3/IMAP mail server. It uses powerful AJAX interface for faster access to your emails. Available for both major web platforms: ASP.NET (Windows only) and PHP (Linux/Windows).

Complete E-mail Solution

3. AfterLogic MailSuite Pro for Linux
This messaging and collaboration solution includes a web-based admin panel, an SMTP/POP3/IMAP server (MTA), anti-spam and anti-virus protection, plus all the features of AfterLogic WebMail Pro, such as AJAX-based webmail, personal calendars, contacts, and more. It ships as a self-contained installation package for a quick and effortless setup, and available as a free trial.

There are many other paid solutions available which may be better than the above listed mail scripts. If you have come across a good script let us know!

Creating Self Email Company like Gmail and Hotmail

Create your own Email Company like Gmail and Hotmail

 

Gmail and Hotmail provides great free email service. They both provide many free tools with their email service. Have you ever thought to create your own email company like Gmail, Hotmail? Yeah ! Many times, but didn’t find any good site to do this. Here is the guide to create your own professional email service like Gmail and Hotmail. All you must have is a domain name and good knowledge of Internet. We will do this by registering with Windows Live Domains which provides 500 free email accounts with 5 GB Space in each account and with many free services.

gmail hotmail 300x200 Create your own Email Company like Gmail and Hotmail

Steps to Create your own Email Company:

First of all, Go to https://domains.live.com. It requires your Hotmail Username and password, so keep them ready. Now, you have reached the Windows Live Admin Center, Click “Sign in”, at the login page, enter your Hotmail email address and password then click “Sign in”. I have registered two domains at there, so I will get a different page then the new ones. Click “Add Domain” button, then you will get a page saying “Create a Windows Live experience for your domain”. Enter your domain name in the field labeled “Provide your domain name” and mark the “Set up Windows Live Hotmail for my domain” and click “Continue”.  Now, you’ve reached the page “Review settings and accept agreement”, Click “I accept”. Then you will be redirected to the “Domain Settings” page. Now, all the settings in the Windows Live Domains have been setup, now go to your “Domain Manage” panel and change MX Records.

What happens after 500 Email accounts exceeded?

Windows Live Domains provides 500 email accounts, so you (and other users) can create 500 email accounts, what if you exceed this? The solution is available. Windows Live Domains provides more email accounts on the request of the domain admin. So, when you exceed it, just ask for more accounts.

Promote your Email Service:

email promote TechListen Create your own Email Company like Gmail and Hotmail

After getting email service, it’s time to promote it. Promote it on your blog/website, in emails, on business cards, etc. way. The more you promote, the more users you’ll get. You are not getting just the Email service for your domain, but you are getting lots of services free with it. You get SkyDrive (25 GB Free Space), Photos, etc. So, attract your visitors with these free services.

If you have any question about this process, then please let me know by commenting here. I will be happy to assist you icon smile Create your own Email Company like Gmail and Hotmail

A Detailed Discussion Over Exploring CSS Refreshers : Borders

Tutorial Details
  • Difficulty: Basix
  • Topic: CSS Borders

Sure, we’re all familiar with borders. Is there anything new that could possibly be introduced? Well, I bet there’s quite a few things in this article that you never knew about!

Not only can CSS3 be used to create rounded corners, but plain-ole’ CSS can also be wrestled into displaying custom shapes. That’s right; in the past, before these techniques were discovered, we might have resorted to using absolutely positioned background images to display circles or arrows. Thankfully – as we gleefully take one more step away from Photoshop – this is no longer the case.


The Basics

You’re likely familiar with the most basic use of borders.

1
border: 1px solid black;

The above code will apply a 1px border to an element. Plain and simple; but we can also modify the syntax a bit.

1
2
3
border-width: thick;
border-style: solid;
border-color: black;

In addition to passing a specific value to border-width, three keywords may alternatively be used: thin,medium, and thick.

image

While it might initially seem unnecessary to ever make use of the long-hand form, there are a handful of cases when it’s advantageous, such as when you need to update some aspect of a border when a designated event occurs.

Perhaps you need to change the color of a border when the user hovers over a specific element. Using the shorthand form would require that you repeat the pixel values.

1
2
3
4
5
6
7
.box {
    border: 1px solid red;
}
.box:hover {
    border: 1px solid green;
}

A more elegant and DRY approach would be to specifically update the border-color property.

1
2
3
4
5
6
7
.box {
    border: 1px solid red;
}
.box:hover {
    border-color: green;
}

Additionally, as you’ll find shortly, this long-hand technique is helpful when creating custom shapes with CSS.


Border-Radius

border-radius is the golden child of CSS3 – the first new property to gain widespread use in the community. What this translates to is that, excluding Internet Explorer 8 and below, all browsers can display rounded corners.

Previously, it was necessary to use vendor prefixes for both Webkit and Mozilla, in order for the styling to be correctly applied.

1
2
3
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
border-radius: 10px;

These days, however, we can slice off the vendor versions without worry, and simply stick with the official form: border-radius.

image

As one might expect, we can also specify custom values for each side of a box.

image
1
2
3
4
border-top-left-radius: 20px;
border-top-right-radius: 0;
border-bottom-right-radius: 30px;
border-bottom-left-radius: 0;

In the code above, setting border-top-right-radius and border-bottom-left-radius to zero would be superfluous, unless the element is inheriting values which need to be reset.

Much like margin or padding, these settings can be condensed into a single property, if necessary.

1
2
/* top left, top right, bottom right, bottom left */
border-radius: 20px 0 30px 0;

As an example (and as web designers do so often), the shape of a lemon can be reproduced with CSS and the border-radius property, like so:

1
2
3
4
5
6
7
.lemon {
   width: 200px; height: 200px;
   background: #F5F240;
   border: 1px solid #F0D900;
   border-radius: 10px 150px 30px 150px;
}
image

Beyond the Basics

Many designers happily stick with the knowledge outlined thus far in this chapter; however, there’s a few ways we can push it further!


Multiple Borders

There’s a variety of techniques that we can refer to, when tasked with applying multiple borders to an element.

Border-Style

While soliddashed, and dotted are the most frequent values for the border-style property, there’s also a few others that we can make use of, including groove and ridge.

1
border: 20px groove #e3e3e3;

Or, with the long-hand form:

1
2
3
border-color: #e3e3e3;
border-width: 20px;
border-style: groove;
image

While this is certainly helpful, a ridge or groove effect isn’t really multiple borders.

Outline

The most popular technique for creating two borders is to take advantage of the outline property.

1
2
3
4
.box {
   border: 5px solid #292929;
   outline: 5px solid #e3e3e3;
}
image

This method works wonderfully, however, it’s limited to two borders. Should you need to create a layered, gradient-esque, effect, a different approach will be necessary.

Pseudo Elements

When the outline technique doesn’t suffice, an alternate approach is to take advantage of the :beforeand :after pseudo elements, and apply any necessary additional borders to the generated content.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
.box {
  width: 200px; height: 200px;
  background: #e3e3e3;
  position: relative;
  border: 10px solid green;
}
/* Create two boxes with the same width of the container */
.box:after, .box:before {
  content: '';
  position: absolute;
  top: 0; left: 0; bottom: 0; right: 0;
}
.box:after {
  border: 5px solid red;
  outline: 5px solid yellow;
}
.box:before {
  border: 10px solid blue;
}
image

This perhaps isn’t the most elegant approach, but it certainly gets the job. One caveat is that it’s easy to confuse the order in which the border colors will be applied. A certain level of “guess and check” is often required to apply the correct sequence.

Box-Shadow

The cool kids way to create an infinite number of borders is to take advantage of the spread parameter in the box-shadow CSS3 property.

1
2
3
4
5
6
7
.box {
    border: 5px solid red;
     box-shadow:
       0 0 0 5px green,
       0 0 0 10px yellow,
       0 0 0 15px orange;
}
image

In this case, we’re being clever and are using box-shadow in a way that might not necessarily have been intended when the specification was originally written.

By setting the xy, and blur components to 0, we can instead use the spread value to create solid borders at the desired locations. Because box-shadows can be stacked, through the use of a comma, the number of possible levels is infinite.

This technique gracefully degrades quite nicely. In older browsers, which do not recognize the box-shadowproperty, this will simply render the single red 5px border.

Remember: designs needn’t be identical in all browsers. Write your CSS for the most modern of browsers, and then provide suitable fallbacks, accordingly.


Modifying Angles

In addition to passing a single value to border-radius, we can alternatively provide two – separated by a /– to specify unique values for both the horizontal and vertical radii.

For example…

1
border-radius: 50px / 100px; /* horizontal radius, vertical radius */

…is equivalent to:

1
2
3
4
border-top-left-radius: 50px 100px;
border-top-right-radius: 50px 100px;
border-bottom-right-radius: 50px 100px;
border-bottom-left-radius: 50px 100px;

This technique is particularly helpful when you need to mimic a subtle, lengthy curve, rather than a generic rounded corner. For instance, the following code allows us to slightly break away from a square shape, resulting in more of a curled, paper-like effect.

1
2
3
4
5
6
7
8
.box {
    width: 200px; height: 200px;
    background: #666;
    border-top-left-radius: 15em 1em;
    border-bottom-right-radius: 15em 1em;
}
image

CSS Shapes

Perhaps the neatest use of borders is when they’re cleverly applied to elements, which have a zero width and height. Confusing, huh? Let’s see a demonstration.

For the next several examples, assume the following markup…

1
<div class="box"></div>

…and the following base styling:

1
2
3
4
5
.box {
   width: 200px;
   height: 200px;
   background: black;
}

The most frequently referenced example, when demonstrating how CSS shapes might be used in a project, is to create the obligatory arrow.

The key to understanding how an arrow might be formed with CSS is to set a unique border-color to each side, and then reduce both the width and height values for the container to 0.

Assuming a div with a class of arrow as the container:

1
2
3
4
5
6
7
8
.arrow {
  width: 0; height: 0;
  border-top: 100px solid red;
  border-right: 100px solid green;
  border-bottom: 100px solid blue;
  border-left: 100px solid yellow;
}

As demonstrated at the beginning of this chapter, a cleaner syntax would be to not use the all-encompassing short-hand version:

1
2
3
4
5
6
7
8
9
.arrow {
  width: 0; height: 0;
  border: 100px solid;
  border-top-color: red;
  border-right-color: green;
  border-bottom-color: blue;
  border-left-color: yellow;
}

We can even reduce this further, by grouping the color values.

1
2
3
4
5
6
.arrow {
  width: 0; height: 0;
  border: 100px solid;
  border-color: red green blue yellow;
}
image

Interesting, right? It makes perfect sense, though, when we take a step back. That’s the only possible way that the colors could align, assuming a width and height of zero for the container. Now, what if we set all of the border-colors to transparent, except for the blue side?

1
2
3
4
5
6
.arrow {
  width: 0; height: 0;
  border: 100px solid;
  border-bottom-color: blue;
}
image

Excellent! But it doesn’t seem too semantic to create an .arrow div, all for the purpose of adding an arrow to the page. Instead, pseudo elements can be used to apply the arrow after or before the associated element.

Creating a Speech Bubble

To create a 100% CSS speech bubble, we begin with the markup.

1
<div class="speech-bubble">Hi there!</div>

Next, some base styling should be applied.

1
2
3
4
5
6
7
8
9
10
11
.speech-bubble {
    position: relative;
    background-color: #292929;
    width: 200px;
    height: 150px;
    line-height: 150px; /* vertically center */
    color: white;
    text-align: center;
}
image

The arrow will be applied using the after psuedo-element.

1
2
3
.speech-bubble:after {
    content: '';
}

The :before and :after psuedo elements can be used to insert generated content either before or after an element’s content.

At this point, it’s simply a matter of reproducing the arrow, and positioning it in the proper location. We start by absolutely positioning the content, resetting the width and height, and applying the border colors.

1
2
3
4
5
6
7
8
9
10
.speech-bubble:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 10px solid;
  border-color: red green blue yellow;
}
image

Because we know that we want the arrow to point downward, the image above demonstrates that all but the red (or top) border should either be omitted, or set to transparent.

1
2
3
4
5
6
7
8
9
10
.speech-bubble:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 10px solid;
  border-top-color: red;
}
image

When creating CSS shapes, because we can’t use the width property to specify how wide the arrow should be, the border-width property should be used instead. In this case, the arrow should be slightly larger; so the border-width can be increased to 15px. We’ll also position the arrow at the bottom and center of the container, by using the top and left properties, respectively.

1
2
3
4
5
6
7
8
9
10
11
12
13
.speech-bubble:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 15px solid;
  border-top-color: red;
  top: 100%;
  left: 50%;
}
image

Almost there; the final step is to update the color of the arrow to be the same as the container’s background. The positioning also needs to be modified to account for the width of the borders (15px). While we’re here, we’ll also apply a subtle border-radius to make the container appear to be more bubble-like.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
.speech-bubble {
   /* … other styles */
   border-radius: 10px;
}
.speech-bubble:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 15px solid;
  border-top-color: #292929;
  top: 100%;
  left: 50%;
  margin-left: -15px; /* adjust for border width */
}
image

Not bad, ay? Abstract this code away to a few reusable classes, and you’re good to go for all future projects.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
/*
   Speech Bubbles
   Usage: Apply a class of .speech-bubble and .speech-bubble-DIRECTION
   <div>Hi there</div>
*/
.speech-bubble {
  position: relative;
  background-color: #292929;
  width: 200px;
  height: 150px;
  line-height: 150px; /* vertically center */
  color: white;
  text-align: center;
  border-radius: 10px;
  font-family: sans-serif;
}
.speech-bubble:after {
  content: '';
  position: absolute;
  width: 0;
  height: 0;
  border: 15px solid;
}
/* Position the Arrow */
.speech-bubble-top:after {
  border-bottom-color: #292929;
  left: 50%;
  bottom: 100%;
  margin-left: -15px;
}
.speech-bubble-right:after {
  border-left-color: #292929;
  left: 100%;
  top: 50%;
  margin-top: -15px;
}
.speech-bubble-bottom:after {
  border-top-color: #292929;
  top: 100%;
  left: 50%;
  margin-left: -15px;
}
.speech-bubble-left:after {
  border-right-color: #292929;
  top: 50%;
  right: 100%;
  margin-top: -15px;
}
image

Bonus: Better Vertical Centering

One downside to using line-height to vertically center text is that you’re limited to a single line. Should the text require two or more lines, each line height will be far too large. A clever solution is to set a displayof table to the speech bubble, and a display of table-cell to the paragraph that wraps the text. This then allows us to align the text to the middle, accordingly.

1
2
3
<div class="speech-bubble speech-bubble-top">
    <p>Text goes here.</p>
</div>

Next, the modified CSS.

1
2
3
4
5
6
7
8
9
10
.speech-bubble {
 /* other styles */
  display: table;
}
.speech-bubble p {
  display: table-cell;
  vertical-align: middle;
}
image

If references to display: table bring back terrible memories of old-fashioned, table-based layouts, don’t worry. These properties merely refer to the style in which an element should display.

We’re not limited to triangles; CSS is capable of producing all sorts of shapes – even hearts and biohazard signs!

image
1
2
3
4
5
6
7
8
9
10
11
.biohazard {
  width: 0; height: 0;
  border: 60px solid;
  border-radius: 50%;
  border-top-color: black;
  border-bottom-color: black;
  border-left-color: yellow;
  border-right-color: yellow;
}

Summary

Though it’s true that the simple border: 1px solid black syntax goes a long way, if we’re clever, we can create a variety of helpful effects, icons, and shapes. Who would have thought that borders could be so powerful? The key is to remember that the styling for common shapes or speech bubbles should only be created once, and then abstracted away to utility classes for future usage.

A detailed Discussion over Pros and Cons of Web Based Operating systems

Web-based operating systems, such as Google’s Chrome OS, and new Chromebooks — notebooks built around the Chrome OS — have both received a lot of attention in the press. The question is do they make sense for small business?

If you haven’t heard of Chrome OS, then maybe you’re familiar with the Chrome Web browser? The Chrome OS is essentially a bootable version of the Chrome Web browser, and it replaces a traditional operating system like Windows.

Unlike most operating systems, Chrome OS stores all of a user’s applications and data on the Web, as opposed to a local hard drive. Although much more limiting then a traditional operating system, a browser-based OS offers huge advantages that can make it a compelling option for small businesses. Let’s take a closer look at the pros and cons.

The Advantages of a Web-based OS

Chromebooks start up quickly — in about 10 -15 seconds — which is significantly faster than any Windows PC. Plus, their impressive battery life lets you work an entire day on a single charge. More importantly, Chromebooks practically eliminate time-consuming IT tasks such as building system images, troubleshooting small business software or spending hours cleaning virus-infected systems.

Moreover, with all of a user’s data and applications relegated to the cloud, employee responsibilities such as maintaining the latest virus definitions, updating software or even performing daily backups are now automatically managed by Google. And, since a computer with a browser-based OS stores everything on the Web, data loss due to damage or to a lost or stolen computer is all but eliminated.

In fact, moving to new hardware involves nothing more than turning on the new machine and logging in. No need to transfer data, reinstall applications or even wait for IT assistance.

What we find most attractive about this concept, though, is how cost effective it could be. Google — making a hard push to get people to buy into the benefits of a browser-based OS — claims that companies can reduce their total cost of ownership by up to 70 percent over traditional PCs.

To that end, Google is offering small businesses and non-profit organizations the capability to lease Chromebooks in bulk for $28 a month per user. Educational institutions receive an even better deal at only $20 a month.

That price includes tech support, rapid hardware replacement, automatic background updates, a Web-based management console for IT professionals (for managing users, apps, and policies), and a hardware refresh every three years. For many businesses, potential savings of that magnitude are hard to ignore and definitely bear further investigation.

In spite of how good a deal this might be, not everyone will or should transition to this platform (graphics designers, accountants and architects come to mind). But if your employees only need to browse the Web, access email, and use typical office applications like a word processor, spreadsheet or presentation software, then a browser-based OS like Chrome OS might work for your business.

Google estimates that most companies will be able to transition approximately 75 percent of their employees over to its platform. Additional applications are available via the Chrome App Store. And before you ask, yes Angry Birds is available.

The Downside of Web-Based OS

While a browser-based OS offers plenty of benefits, it’s also hampered by severe limitations. Most notably: everything is stored in the cloud. If you’re working from the office or your home, that’s generally not a concern. However if you travel, accessing a reliable and fast broadband connection can be tricky. Many areas have dead zones, limited coverage and inconsistent throughput rates.

Complicating matters further, many wireless ISPs impose a data cap on their mobile broadband service. A computer that requires constant online access to transmit data or stream music and video could hit those caps very quickly. It wouldn’t be as troubling if you could work offline, but the majority of apps currently available for Chrome OS won’t work without a broadband connection. This makes working while traveling difficult or, in some cases, impossible.

Other issues include the lack of proper VPN support, limited file management and some weird browser compatibility issues that prevent some websites from loading or functioning correctly. And, while the Chrome App Store offers a wide variety of apps, it’s still rather limited. As a result, finding what you need can sometimes prove difficult.

Regardless of these shortcomings, the Chrome OS offers plenty of value. The best way to decide whether a browser-based OS is appropriate — for all or part of your organization — is to try one. Unfortunately, you can’t download Google’s Chrome OS directly. However these alternatives will introduce you to the browser-based OS concept first hand.

Alternatives to Chrome OS

The Web-based OS that comes closest to Chrome OS is called, ironically enough, Chrome OS Linux. This version provides a lightweight Linux distribution, compatible with almost any x86 PC or notebook equipped with at least 256MB of RAM and a 1GB HD. It’s highly representative of the experience you get working on a Chromebook.

Chrome OS Linux is available as a live CD; you can test it out on any computer without actually installing it. And, since Chrome OS Linux provides you with almost everything you get from a Chromebook, you can continue to use it on all of your existing systems without paying Google $28 a month for its hardware.

Other Web-based OSes offer similar functionality. Two of the most popular are Joli OS from Jolicloud and Splashtop OS. Unlike a Chromebook, however, both of these products are designed to be used as a supplement to Windows, not a replacement. You simply select which OS you’d like to use when the PC starts.

Installing either product is risk-free as only the installer runs in Windows, and it won’t affect your settings, files, applications or personal data. There could be some compatibility issues — we discovered that Joli OS worked fine on our Dell Latitude D620, but not on our Dell Latitude e5400. Seems it didn’t support that particular network adapter.

Splashtop also had issues as it only officially supports about a dozen HP systems. However it worked fine on our Dell Latitude D620. Bottom line, you have nothing to lose by installing it on your system. It will either work or it won’t.

The last alternative is called Presto. Unlike the other OSes mentioned here, Presto can work offline. While we don’t consider Presto a replacement for Windows the way Chrome OS is, it provides many of the same benefits.

In our test, we started Presto and got on the Web in less than 13 seconds. You can send email, IM clients and browse the Web via Firefox. And unlike Chrome OS, you can edit Office documents, listen to music or even watch videos offline. Presto also differs in that it’s not a free application. You can try it free for 7 days, after that it will cost you $19.95.

Even though none of the operating systems we discussed here are as feature rich or flexible as your typical Windows PC, they each offer something of value. We recommend that you give each a closer look.

a list of such operating Systems can be seen over a list of online and web based operating systems

%d bloggers like this: