Friday, January 11, 2008

VRML

VRML is abbreviation for Virtual Reality Modelling Language. It lets you put three dimensional, interactive worlds on web pages. VRML is, in the words of the VRML Consortium, "an open standard for 3D multimedia and shared virtual worlds on the Internet", is a scene description language that describes the geometry and behavior of a 3D scene or "world". Web3D is the new name for VRML.

VRML was recognized as an international standard (ISO/IEC-14772-1:1997) by the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC) in December, 1997.

VRML worlds can be single files or groups of files that load at the same time. They can range from simple objects to very complex scenes, scripted in a plain UTF-8 or ASCII (a subset of the UTF-8 character set) text file. A VRML file may be compressed using gzip, a freely available utility, and may be created, viewed, and edited in any plain text editor.

Vertices and edges for a 3D polygon can be specified along with the surface color, UV mapped textures, shininess, transparency, and so on. URLs can be associated with graphical components so that a web browser might fetch a web-page or a new VRML file from the Internet when the user clicks on the specific graphical component. Animations, sounds, lighting, and other aspects of the virtual world can interact with the user or may be triggered by external events such as timers. A special Script Node allows the addition of program code (e.g., written in Java or JavaScript (ECMAScript)) to a VRML file.

The MIME type of a VRML file is "model/vrml", although some servers may deliver it as the older MIME type "x-world/x-vrml". The spec requires VRML browsers to support both MIME types. If you administer a web server, you should use the official type, not the older "x-" type.

VRML files are commonly called "worlds" and have the *.wrl extension (for example island.wrl). Although VRML worlds use a text format they may often be compressed using gzip so that they transfer over the internet more quickly (some gzip compressed files use the *.wrz extension). Many 3D modeling programs can save objects and scenes in VRML format.

The plug-in to view these is widely available in many platforms.

Features of VRML (as specified on 1.0 version)

  • Standard objects (cube, sphere, cone, cylinder, text)
  • Arbitrary objects (surfaces, linesets, pointsets)
  • Ability to fly through, walk through, examine scenes
  • Lights
  • Cameras (viewpoints)
  • Textures on objects
  • Clickable links
  • Define and reuse objects

Altough VRML 1.0 worlds are static, with introduction of VRML 2.0 worlds can move and interact with the visitor to those worlds.

VRML 2.0 Features:

  • Animated objects
  • Switches
  • Sensors
  • Scripts (Java or JavaScript) for behaviors
  • Interpolators (color, position, orientation, etc.)
  • Extrusions
  • Background colors and textures
  • Sound (.wav and MIDI)
  • Animated textures
  • Event routing
  • Define and reuse objects and behaviors and effectively add new nodes to the language with PROTO and EXTERNPROTO

Another very important difference is that VRML 97 is an international spec approved by the International Organization for Standards: ISO/IEC-14772-1:1997.

The first line of every VRML 97 file starts with:

      #VRML V2.0 utf8

and the first line of every VRML 1.0 file starts with:

      #VRML V1.0 ascii

Many, but not all, VRML 97 browsers will read and properly render VRML 1.0 files. No VRML 1.0 browser will read and properly render VRML 97 files. Furthermore, VRML 97 becomes VRML 2.0 standard.

Here is the sample of VRML script...

#VRML V2.0 utf8
# Red cone

Shape {
appearance Appearance {
material Material {
diffuseColor 1 0 0
}
}
geometry Cone {
bottomRadius 0.75
height 1.6
}
}

VRML Specification is available from http://www.vrml.org/Specifications/. For more information, visit VRML FAQ @ comp.lang.vrml

Please note that VRML is obsolete standard and now has been superseded by X3D (ISO/IEC 19775-1)

Friday, January 4, 2008

Internet Filter

Internet filtering is the process by which some websites or applications that use the internet are allowed to work, whereas others are not. For example, many organizations tend to block access to a variety of websites, such that anyone attempting to go to these websites will not be able to do so. Other organizations may block services they feel are inappropriate or waste resources, such as online gaming, peer 2 peer file sharing, voice over ip, or other protocols.

A large and growing number of organizations choose to filter their user’s access to the internet. In the united states, this is especially prevalent in schools and libraries, as there is a federal mandate that requires schools and libraries to filter their user’s internet. If a school or library chooses not to filter, they risk lose federal finding, Although filtering is required by schools, there are no specific standards as to what must be filtered. Some schools don’t really want to filter, whereas others take charge and filter more than is required by law.

Many workplaces choose to filter internet access to shield themselves from liability, to reduce non-productive personal internet usage, or to reduce the usage of expensive internet bandwidth. Sometimes internet service providers (isp’s) choose to filter internet access. This usually happens for one of two reasons. First, it could be at the request of the customer, who does not want their children viewing inappropriate material on the internet. AOL’s parental controls are an example of this kind of filtering. The second common kind of ISP filtering is known as packet shaping. What this does is slow down or block access to certain protocols on the internet, rather than blocking particular websites. This is especially common in colleges and some cable modem networks, where peer 2 peer file sharing can consume large amounts of expensive internet capacity.

Friday, December 7, 2007

FOIP (Fax Over IP) Explained

As internet technology emerges rapidly and many organizations continue to build out and expand their new IP infrastructure, VoIP is moving into wider adoption with fax over IP (FoIP) ramping up quickly.

Both technologies bring traditional telephony applications into data network environments, allowing organizations to transport phone conversation or fax data calls over them. This consolidation of data and communications resources provides an opportunity to leverage a single unified common broadband resource and employ the Internet and company Intranets for cost-effective voice, fax and data transmissions.


The following benefits are the most significant when implementing or considering a FoIP solution:
  • Total Cost of Ownership (TCO) savings due to network consolidation
  • Ability to push a consistent fax solution throughout the entire network including remote locations
  • Improved IT management
  • Device/application integration

Who will benefit first from adopting FoIP?

Mainly organizations whose planning to transition to an all IP-based collaboration environment as they will benefits much on ROI (return on the investment) of consolidating voice, fax and data communication.

If you are seriously looking to expand your communication infrastructure to readily adopt IP support, look for choices that include hardware-based PSTN; hardware-based FoIP and software-based FoIP (T.37 or T.38) options.

Quoting Pete Davidson from Davidson Consulting, the market for FoIP systems started to show up in force in 2005…this led to a market that grew by 180% to $31 million!
“The voice over Internet protocol (VoIP) market is a booming field. According to a recent report by TeleGeography, the industry's second-quarter revenue jumped 173% over the prior year to $607 million.” — Investor’s Business Daily, Oct. 3, 2006
“Enterprise VoIP adoption in North America will more than double in 2010. VoIP adoption will triple by 2010 among small organizations in North America.” —Infonetic’s Research “User Plans for VoIP”, May 2006.


Technical Overview

Compressing fax signals is different from compressing voice signals, so a new standard (T.38) has been created for this. If the VoIP adapter and gateway are T.38 compliant, most fax machines can simply be plugged into the VoIP adapter instead of a regular phone line.

T.38 is an ITU recommendation for sending fax messages over IP networks in real time. The T.38 fax relay standard was devised in 1998 as a way to permit faxes to be transported across IP networks between existing Group 3 (G3) fax terminals. T.4 and related fax standards were published by the ITU in 1980, before the rise of the internet. In the late 90s, VoIP, or Voice over IP, began to gain ground as an alternative to the conventional Public Switched Telephone Network. However, because most VoIP systems are optimized (through their use of bandwidth-saving compression) for voice rather than data calls, conventional fax machines worked poorly or not at all on them. Thus, some way of transmitting fax over IP was needed.

See also: List of free Internet Fax Service providers

Friday, November 30, 2007

HTML 5

HTML 5 will be the 5th major revision of the core language of the World Wide Web, the HTML. It were started back in 2004 by a group known as WHATWG. HTML 5 was adopted as the starting point of the work of the new HTML working group of the W3C in 2007 and an HTML 5 W3C Working Draft was published on November 15th, 2007.

HTML 5 is a new version of HTML 4.01 and XHTML 1.0 addressing many of the issues of those specifications while at the same time enhancing (X)HTML to more adequately address Web applications. Besides defining a markup language that can be written in both HTML (HTML5) and XML (XHTML5) it also defines many APIs that form the basis of the Web architecture. These APIs are known to some as "DOM Level 0" and have never been documented. Yet they are extremely important for browser vendors to support existing Web content and for authors to be able to build Web applications.

Some major differences between HTML 4 and HTML 5:

  • New parsing rules oriented towards flexible parsing and compatibility
  • New elements – section, video, progress, nav, meter, time, aside, canvas
  • New Input attributes – time, email, url
  • New Attributes – ping, charset, async
  • Global attributes (that can be applied for every element) – id, tabindex, repeat
  • Some ancient Elements are being dropped – center, font, strike

A HTML 5 browser should be flexible in handling incorrect syntax, unlike with XHTML, where the browser must refuse to render a document at all even if there is just one illegal character or missing close tag. HTML 5 is designed such that old HTML-4 browsers can safely ignore new HTML 5 constructs. Unlike with HTML 4, the HTML 5 specification gives detailed rules for lexing and parsing, with the intent that different compliant browsers will produce the same result in the case of incorrect syntax.

HTML 5 provides a number of new elements and attributes (known as tags) that reflect typical usage on modern web sites. Some of them are technically similar to <div> and <span> tags, but have a semantic meaning, for example <nav> (website navigation block) and <footer>. Such tags would facilitate indexing by search engines and handling by small-screen devices or voice readers for people with seeing difficulties. Other elements provide new functionality through a standardized interface, such as the <audio> and <video> elements.

The new HTML 5 specifications will also incorporate WebForms 2.0 which expands the traditional HTML form model to support new types and features. One of the big additions to the Web Forms model introduced with this specification is primitive type (such extensive set of date/time data types, email, url) and validity checking. More major changes: controls can be placed outside <form></form> tags, forms can be nested inside another form, new data attribute to fetch information from external resources, repeating form control model, ability to set value range, masked-input capability using pattern, and many more improvements.

Other elements have been dropped, such as the purely presentational elements <center> and <font>, whose effects can be handled in Cascading Stylesheets (CSS).

RSS Explained


What Is RSS?

Really Simple Syndication (RSS) (formally acronym of "RDF Site Summary") is a format for sharing content among different websites, based on XML format. Sites can syndicate “feeds” (content) and Internet users can use an application called an RSS reader or aggregator to download feeds. There are many such readers available, most at no cost.

Using RSS, webmasters can put their content into a standardized format, which can be viewed and organized through RSS-aware software or automatically conveyed as new content on another website dynamically through embedded RSS Feed Reader (usually written in Javascript using AJAX or parsed by server side scripting such PHP-based XML aggregator).

More information about RSS can be obtained from Wikipedia at http://en.wikipedia.org/wiki/.rss

Monday, November 19, 2007

PHP Easter Egg

PHP "Easter Egg"

If you add the code "?=PHPE9568F36-D428-11d2-A769-00AA001ACF42" (without quotes) to the end of any URL that is a PHP page, you will see a funny picture on most servers. Also on April 1st (April Fool's Day), the picture will replace the PHP logo on any phpinfo() page. If the PHP directive expose_php is set to be "off" in php.ini, then the PHP eggs will not show, but it is "on" by default, and many webhosting servers do not change it. If you see such a URL in your website logs, it may be because someone is trying to determine if your server is running PHP and attempting to discover weaknesses in your system. By setting expose_php = off in the php.ini configuration file, you will reduce the amount of information available to them. If the PHP easteregg is active (the URL shows the image), then scanning the website with Nitko web server scanner will give the warning message, "PHP reveals potentially sensitive information via certain HTTP requests which contain specific QUERY strings."

These are the four QUERY strings you can add to the end of a PHP web page to view a (somewhat) hidden image or web page:

(1) ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
This one is the most interesting, and displays an "easter egg" image of either a rabbit in a house, a brown dog in the grass, a black Scottish Terrier dog, a sloppy child-crayon-colored php logo, or a guy with breadsticks (looks like pencils or french fries) sticking out of his mouth like a walrus. The original dog was Stig Bakken's (Stig is one of the PHP developers); the newer dog is Zeev Suraski's dog (the link goes to his blog entry about the dog, called Scotch or Scottie, that died August 30, 2005); and the guy is Thies Arntzen (the logo image was taken from a picture from the PHP Developers' Meeting that the PHP Group held in January 2000). The five images are shown below. Anyone know whose rabbit it is, or more details on these? The black dog, colored logo, and rabbit pictures are 10 pixels shorter than the other two images.

PHP easter egg dog PHPE9568F36-D428-11d2-A769-00AA001ACF42 PHP easteregg Scottish Terrier dog PHP easter eggs: child crayon-colored php logo
PHP easter egg dude PHP easter egg rabbit

(2) ?=PHPE9568F34-D428-11d2-A769-00AA001ACF42
This is used by the phpinfo function to display the PHP logo, but works on other PHP pages.

PHP logo PHPE9568F34-D428-11d2-A769-00AA001ACF42

(3) ?=PHPE9568F35-D428-11d2-A769-00AA001ACF42
This is used by the phpinfo() function to display the Zend logo, but also works on other PHP-parsed pages.

Zend engine logo PHPE9568F35-D428-11d2-A769-00AA001ACF42

(4) ?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
This displays the PHP development credits, and is linked to from any phpinfo() page with text "PHP Credits".

The only truly hidden image is the first one above. The other three are called from the web page produced by the phpinfo() function.

For the first code above, other online sources claim it displays a rabbit in PHP versions 5.0 and 5.01, a dog in 4.3.0 and higher (below 5.0), and the funny PHP coder guy in PHP versions 4.0 through 4.2.3. Below are the images I saw for these PHP versions:

PHPCODER GUY WITH BREADSTICKS (Thies C. Arntzen):
PHP Version 4.0.1pl2
PHP Version 4.1.2 *
PHP Version 4.2.2 *

BROWN DOG IN GRASS:
PHP4u Version 3.0, Based on PHP-4.3.2
PHP Version 4.3.2
PHP Version 4.3.3
PHP Version 4.3.8
PHP Version 4.3.9
PHP Version 4.3.10

BLACK SCOTTISH TERRIER DOG:
PHP Version 4.3.11
PHP Version 4.4.0
PHP Version 4.4.1
PHP Version 4.4.2
PHP Version 4.4.3
PHP Version 4.4.4
PHP Version 5.0.5-2ubuntu1.1
PHP Version 5.0.5-pl3-gentoo
PHP Version 5.1.0
PHP Version 5.1.2

RABBIT:
PHP Version 4.3.1 *
PHP Version 5.0.0 *
PHP Version 5.0.3 *

COLORED PHP LOGO:
PHP Version 5.1.4
PHP Version 5.2.0

* = Not on my server, but got PHP version given in the HTTP header.

The first code above, ?=PHPE9568F36-D428-11d2-A769-00AA001ACF42, is returned by the hidden function (undocumented in the php.net online manual) php_egg_logo_guid(). PHP_EGG_LOGO_GUID is defined as a preprocessor macro in php-src/ext/standard/info.h, line 54, and referenced in 3 files:

php-src/ext/standard/info.c (lines 988 and 1032)
php-src/ext/standard/info.h (line 54)
php-src/main/php_logos.c (line 59).


Below are the four codes' definitions in the php source within php-source/ext/standard/info.h (lines 53 to 56):

#define PHP_LOGO_GUID "PHPE9568F34-D428-11d2-A769-00AA001ACF42"
#define PHP_EGG_LOGO_GUID "PHPE9568F36-D428-11d2-A769-00AA001ACF42"
#define ZEND_LOGO_GUID "PHPE9568F35-D428-11d2-A769-00AA001ACF42"
#define PHP_CREDITS_GUID "PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000"

Sunday, November 18, 2007

VoIP Explanation

Voice over IP Explained

For those who have never heard about the potential of VoIP, be prepared to radically change the way you think about your current long-distance calling plan. VoIP (Voice over Internet Protocol) is very simply, a method for taking ordinary analog audio signals and turning them into digital signals that can be sent over the Internet.

So what? Well, for those of you who are already paying a monthly fee for an Internet connection, this means that you can use that same connection to place free long distance phone calls. This process works by using already available VoIP software to make phone calls over the Internet, essentially circumventing phone companies and their service charges.

Interestingly, VoIP is not an entirely new thing. In fact, a number of providing companies have been around for some time. But it has only been with the more recent explosion of high-speed internet access usage, that VoIP has gotten any attention. Now the major telephone carriers are setting up their own VoIP calling plans throughout the US, another testament to the potential of the technology.

How VoIP Is Used

While there are a number of ways that VoIP is currently being used, most individual callers fall into one of three categories: ATA, IP Phones, and Computer-to-Computer.

ATA or Analog Telephone Adaptor, is the most common way of using VoIP. This adaptor actually allows you to hook up the phone that is already in your house, to your computer, and then your Internet connection. What the ATA does, is turn the analog signals your phone sends out into digital signals that can be sent over the Internet. Setting up this system is quite simple. It simply requires that you order an ATA (its an adaptor remember), plug the cable from your phone which would normally go into the wall socket into the ATA, and then the ATA gets plugged into your computer, which is connected to the internet. Some ATAs include software that has to be installed on your computer before its ready, but basically it's quite a simple process. Then you are ready to make some calls.

The next type of VoIP usage utilizes IP Phones instead of your home phone. The IP Phone looks just like a normal phone, with all the same buttons and cradle, the only difference is that instead of having a normal wall jack connector, it has an Ethernet connector. This means, that instead of plugging in your IP phone to the wall jack like you would with a regular analog phone, it gets plugged directly into your router. This option allows you to circumvent your personal computer, and it also means that you will not have to install any software, because its all built in to the handset. In addition, the fact that Wi-Fi IP phones will soon be available, which will allow subscribing callers to make VoIP calls from any Wi-Fi hot spot, make this option an exciting possibility.

The simplest and cheapest way to use VoIP is through computer-to-computer calls. These calls are entirely free, meaning no calling plan whatsoever. The only thing you need, is the software which can be found for free on the internet, a good internet connection, a microphone, speakers, and a sound card. Except for your monthly internet service fee, there is literally no cost for making these calls, no matter how many you make.

For large companies, VoIP also offers some very unique possibilities. Some larger companies are already utilizing the technology by conducting all intra-office calls through a VoIP network. Because the quality of sound is comparable to and in some cases surpasses that of analog service, some international companies are using VoIP to route international calls through the branch of their company nearest the call's destination and then completing it on an analog system. This allows them to pay local rates internationally and still utilize the same intra-office VoIP network that they would if they were calling someone in the next cubicle over.

Other Advantages of VoIP

While your current long-distance plan covers you for only one location, say calls made from your office, with VoIP, you can make a call anywhere that you can get a broadband connection. That is because all three methods above, unlike analog calls, send the call information via the Internet. This means you can make calls from home, on vacation, on business trips, and almost anywhere else. Anywhere you go, with VoIP you can bring your home phone along with you. In the same way, computer-to-computer connections mean that as long as you have your laptop and a connection, you're ready to go.

There are also some nifty benefits to having your calls transmitted over the Internet. For example, some VoIP service providers allow you to check your voicemail via your e-mail, while others allow you to attach voice messages to your e-mails.

How VoIP Works

The current phone system relies on a reliable but largely inefficient method for connecting calls known as circuit switching. This technique, which has been used for over 100 years, means that when a call is made between two people a connection is maintained in both directions between callers for the duration of the call. This dual directional characteristic gives the system the name circuit.

If, for example, you made a 30-minute call the circuit would be continuously open, and thus used, between the two phones. Up until about 1960, this meant that every call had to have an actual dedicated wire connecting the two phones. Thus a long distance call cost so much, because you were paying for pieces of copper wire to be connected all the way from your phone to the destination phone, and for that connection to remain constant throughout the call. Today, however, your analog call is converted after leaving your house to a digital signal, where your call can be combined with many others on a single fiber optic cable. While this system is certainly an improvement over the past copper wire system, it is still quite inefficient. This inefficiency is due in part to the fact that the telephone line can't distinguish between useful talking and unneeded silences. For example, in a typical conversation while one person is talking the other person is listening. Thus the current analog system uses roughly half its space sending useless messages like this silence. But there is also more information, even down to pauses in speech, which under a more efficient system can be effectively cut out rather than wasting the circuit space. This idea of only transmitting the noisy bits of a telephone call and saving a great deal on circuit space, is the basis of Packet-Switching, the alternative method to circuit switching that the VoIP phone system uses.

Packet-Switching is the same method that you use when you view a website. For example, as you read this website, your computer is not maintaining a constant connection to the site, but rather making connections to send and receive information only on an as needed basis (such as when you click on a link). Just as this system allows the transfer of information over the Internet to work so quickly, so also does it work in the VoIP system. While circuit switching maintains a constant and open connection, packet switching opens connections just long enough to send bits of data called packets from one computer to another. This allows the network to send your call (in packets) along the least congested and cheapest lines available, while also keeping your computer or IP phone, free to send and receive messages and calls with other computers. This way of sending information, not to mention data compression, makes the amount of information which must be transmitted for every call at least 3-4 times less for VoIP than the exact same call in a conventional telephone system. For this reason, VoIP is so much cheaper than conventional calling plans.

The Future of VoIP

While most analysts believe it will be at least a decade before companies and telephone providers make the full switch to VoIP, the potential for the technology's use today is already quite astounding. A report by the Forrester Research Group predicts that by the end of 2006, nearly 5 million U.S. households will be using VoIP phone service. With the savings and flexibility that the technology already offers, and new advances just ahead on the horizon, we can expect those numbers will only increase in the future.