Saturday, October 2, 2010

Facebook Tab Styles for Web Developers


This is pretty much it... the Facebook Tab's CSS Stylesheet!!
It uses a couple of CSS 3.0 styles.

body{background:#fff;
font-family:Tahoma,Verdana,Arial,Sans-serif;
font-size:11px;
color:#333;margin:0;
padding:0;
text-align:left;
direction:ltr;
unicode-bidi:embed
}

ul.quicktabs-style-facebook {
background:transparent none repeat scroll 0 0;
border-bottom:1px solid #DDDDDD;
font-size:1em;
height:21px;
list-style-image:none;
list-style-position:outside;
list-style-type:none;
margin:0 0 10px;
padding:0 0 3px;
}

*html ul.quicktabs-style-facebook li{
margin-bottom:-5px;
}

ul.quicktabs-style-facebook li {
background:transparent none repeat scroll 0 0;
float:left;
margin:0;
padding:0 0 0 5px;
}

ul.quicktabs-style-facebook li a {
-x-system-font:none;
background:#D8DFEA none repeat scroll 0 0;
border-left:1px solid #D8DFEA;
border-right:1px solid #D8DFEA;
border-top:1px solid #D8DFEA;
display:block;
font-family:Verdana;
font-size:11px;
font-size-adjust:none;
font-stretch:normal;
font-style:normal;
font-variant:normal;
font-weight:bold;
line-height:185%;
margin:0;
padding:2px 12px;
text-decoration:none;
color: #3b5998;
}

ul.quicktabs-style-facebook li:hover a{
background: none;
}
quicktabs-style-facebook li:hover{
background:none;
}

ul.quicktabs-style-facebook li.active a,
ul.quicktabs-style-facebook li.active a:hover {
background:#FFFFFF none repeat scroll 0 0;
border-left:1px solid #D8DFEA;
border-right:1px solid #D8DFEA;
border-top:1px solid #D8DFEA;
text-decoration:none;
color: #000;
}

ul.quicktabs-style-facebook li a:hover {
background: #627aad;
border-left:1px solid #627aad;
border-right:1px solid #627aad;
border-top:1px solid #627aad;
color: #fff;
}

ul.quicktabs-style-facebook li.active{
background: none;
}

</style>
</head>

<body>
<ul class="quicktabs-style-facebook">
<li><a href="#">Wall</a></li>
<li><a href="#">Info</a></li>
<li><a href="#">Photos</a></li>
<li><a href="#">Boxes</a></li>
<li><a href="#">Top Friends</a></li>
<li><a href="#">Notes</a></li>
</ul>
</body>

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Tuesday, August 10, 2010

The Seam Framework

Seam is a powerful open source development platform for building rich Internet applications in Java. Seam integrates technologies such as Asynchronous JavaScript and XML (AJAX), JavaServer Faces (JSF), Java Persistence (JPA), Enterprise Java Beans (EJB 3.0) and Business Process Management (BPM) into a unified full-stack solution, complete with sophisticated tooling.

Seam has been designed from the ground up to eliminate complexity at both architecture and API levels. It enables developers to assemble complex web applications using simple annotated Java classes, a rich set of UI components, and very little XML. Seam's unique support for conversations and declarative state management can introduce a more sophisticated user experience while at the same time eliminating common bugs found in traditional web applications.

See the full article found on
http://seamframework.org/

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Introducing Scala


Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. It smoothly integrates features of object-oriented and functional languages, enabling Java and other programmers to be more productive. Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application.

Twitter and LinkedIn are done using this programming language

If you are interested Read more on
http://www.scala-lang.org/

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Thursday, July 29, 2010

Do you know about /robots.txt file?

Web site owners use the /robots.txt file to give instructions about their site to web robots; this is called The Robots Exclusion Protocol.

It works likes this: a robot wants to vists a Web site URL, say http://www.example.com/welcome.html. Before it does so, it firsts checks for http://www.example.com/robots.txt, and finds:

User-agent: *
Disallow: /

The "User-agent: *" means this section applies to all robots. The "Disallow: /" tells the robot that it should not visit any pages on the site.

There are two important considerations when using /robots.txt:

* robots can ignore your /robots.txt. Especially malware robots that scan the web for security vulnerabilities, and email address harvesters used by spammers will pay no attention.
* the /robots.txt file is a publicly available file. Anyone can see what sections of your server you don't want robots to use.

So don't try to use /robots.txt to hide information.
Remember to use all lower case for the filename: "robots.txt", not "Robots.TXT.

Read the full article on
http://www.robotstxt.org/robotstxt.html

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Text Rotation with CSS

The Sample HTML Code

span class="day">31
span class="month">July
span class="year">2009

The CSS Code for the class "month"
n order to perform a transformation, the element has to be set to display:block. In this case, just add the declaration to the span that you want to rotate.

-webkit-transform: rotate(-90deg);
-moz-transform: rotate(-90deg);

filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);

The rotation property of the BasicImage filter can accept one of four values: 0, 1, 2, or 3 which will rotate the element 0, 90, 180 or 270 degress respectively

Readmore on "Working with CSS transitions" fountd on
http://dev.opera.com/articles/view/css3-transitions-and-2d-transforms/
and the the source blog for this post
http://snook.ca/archives/html_and_css/css-text-rotation

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Tuesday, July 6, 2010

CSS Property "content" and HTML Property "title"

CSS has a property called content. It can only be used with the pseudo elements :after and :before.

CSS Code
email-address:before {
content: "Email address: ";
}

HTML Code
li class="email-address">chriscoyier@gmail.com

Browser Will Render
Email address: chriscoyier@gmail.com


Tooltips from the title attribute
a title="A web design community." href="#">CSS


a[title]:hover:after {
content: attr(title);
padding: 4px 8px;
color: #333;
position: absolute;
left: 0;
top: 100%;
white-space: nowrap;
z-index: 20px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow: 0px 0px 4px #222;
-webkit-box-shadow: 0px 0px 4px #222;
box-shadow: 0px 0px 4px #222;
background-image: -moz-linear-gradient(top, #eeeeee, #cccccc);
background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #eeeeee),color-stop(1, #cccccc));
}


Source: http://css-tricks.com/css-content/

Wednesday, June 16, 2010

CSS white-space

Through a number of possible values, the white-space property gives us, via CSS, a way of defining how the browser handles multiple white space characters and line breaks. Of course, the portion of the document that you can target is limited to whatever can be targeted via CSS selectors.



Here are the different values for the white-space property.

normal, nowrap, pre, pre-line, pre-wrap

CSS3 Selectors: Alternate Row Styling

Odd or Even Rows
li:nth-child(odd) { color: blue; margin-left: 15px; }
li:nth-child(even) { color: green; margin-left: 15px; }

Every 3rd Row
li:nth-child(3n) { color: orange; margin-left: 15px; }

Specific Row Styling
li:nth-of-type(3) { color: blue; margin-left: 15px; }
p:nth-child(5) { color: green; margin-left: 15px; }

First and Last Element Styling
li:first-of-type { color: blue; margin-left: 15px; }
p:last-of-type { color: green; margin-left: 15px; }

First Two Elements
li:nth-child(-n+2) { color: blue; margin-left: 15px; }

Last Two Elements
p:nth-last-child(-n+2) { color: red; margin-left: 15px; }

All but First and Last Elements
p:not(:first-of-type):not(:last-of-type) { color: orange; margin-left: 15px;}
p:not(:nth-child(-n+2)):not(:nth-last-child(-n+2)) { color: blue; margin-left: 15px;}

Source: http://inspectelement.com/tutorials/a-look-at-some-of-the-new-selectors-introduced-in-css3/

Tuesday, June 8, 2010

CSS3 Using "text-shadow" to avoid unwanted Images

CSS Syntax

.className {
text-shadow: #666 20px -12px 2px;
}

text-shadow accepts four values:

The color(#666)
The X-coordinate (20px), relative to the text
The Y-coordinate (-12px), relative to the text
The blur radius (2px), which means the amount of space the shadowtext is 'stretched', causing a blur effect. 0 means: no blur.

Reference:http://www.quirksmode.org

Tuesday, June 1, 2010

What's New and Enhanced in Photoshop CS5

New in PhotoShop CS5

Content-Aware Fill

Remove any image detail or object and watch as Content-Aware Fill magically fills in the space left behind. This breakthrough technology matches lighting, tone, and noise so it looks as if the removed content never existed.


Puppet Warp

Precisely warp or stretch graphics, text, or image elements to create unique new looks for your designs.

Enhanced in PhotoShop CS5

Superior HDR imaging
Create photo-realistic or surreal HDR images with unprecedented speed, control, and accuracy. Get better-than-ever results thanks to automatic ghost removal and greater control with tone mapping and adjustments, and even give single-exposure photos the look of HDR.

Faster performance across platforms
Speed up day-to-day imaging tasks and process very large images up to ten times faster by taking advantage of cross-platform 64-bit support. (Requires a 64-bit-capable computer with a 64-bit version of Mac OS, Microsoft® Windows® 7, or Windows Vista®. Actual performance varies depending on amount of RAM, driver types, and other factors.)

State-of-the-art raw image processing
Use the Adobe Photoshop Camera Raw 6 plug-in to remove image noise while preserving color and detail; add grain to make digital photos look more organic; enjoy more control as you perform post-crop vignetting; and more.

Efficient workflow
Enjoy productivity and creativity boosts thanks to dozens of features and enhancements requested by Photoshop users. Straighten images automatically, pick colors from an onscreen color picker, adjust the opacity of many layers at once, and more.

Better media management
Easily manage media with more flexible batch renaming, and access your assets in the context of what you're working on by using the customizable Adobe Mini Bridge panel in Photoshop.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Wednesday, May 26, 2010

Fireworks CS5: New Text Engine Features

Kerning, tracking and leading between characters in a text block can now be easily controlled using only the keyboard (simply put the cursor in between characters and use the keyboard arrow keys).

The slider value for kerning and tracking has been increased to 200.

If you open a PNG file created in Fireworks v. CS3 or lower, the kerning and tracking values will be automatically mapped and the look of the text will be preserved.

A new option (unique to Adobe Fireworks) allows you to multi-select characters and words in a text box and then style them together at once. This is complemented by another new option that allows you to auto-select similarly styled characters, words or paragraphs inside a text block, and then modify their styles at once.

An editable and auto-completing font list box feature has been added (Windows version only).

Now, you don’t need to restart Fireworks after installing a new font (Windows version only).

Undoing (Ctrl/Cmd + Z) and redoing (Ctrl/Cmd + Y) at the character level is now possible while you’re in text-editing mode.

Double-clicking selects the word, and triple-clicking selects the entire paragraph.

In the Layers panel, text object layers are now marked with a tiny “T” icon, for easier recognition.

A Text Overflow indicator appears when extra characters (that don’t fit the text-in-path or text-on-path) exist.

Copying and pasting text from any version of Microsoft Office into Fireworks is much improved.

The number of characters that can be copied and pasted into a Fireworks text block at once has been increased from 2000 to 8000.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Next Windows version? The Future of PCs?

In one of the posts on the MSDN Blogs, the product manager working along with the Windows Update team discussed about what’s coming in the next version of Windows.The post appears to have now been removed by Microsoft.

But here is the extract:

"Folks started asking me whats in "Windows 8" – and the first thing I have to say is that I resonate Steven Sinofsky’s interview on who said we’re calling it "Windows 8"?

The minimum that folks can take for granted is that the next version will be something completely different from what folks usually expect of Windows

Microsoft to come up with a vision for Windows.next is a process that is surreal! The themes that have been floated truly reflect what people have been looking for years and it will change the way people think about PCs and the way they use them. It is the future of PCs…"

Source: http://www.thewindowsclub.com/microsoft-who-said-were-calling-it-windows-8#ixzz0ozyKw8jO

Monday, May 24, 2010

SQL Injection for Dummies


This is pretty old but pretty cool!

The original article for this could be found on
http://unixwiz.net/techtips/sql-injection.html

Schema field mapping
SELECT fieldlist
FROM table
WHERE field = 'x' AND email IS NULL; --';

SELECT fieldlist
FROM table
WHERE email = 'x' AND userid IS NULL; --';

result can get several valid field names:
email, passwd, login_id, full_name

Finding the table name
SELECT email, passwd, login_id, full_name
FROM table
WHERE email = 'x' AND 1=(SELECT COUNT(*) FROM tabname); --';

SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'x' AND members.email IS NULL; --';

Finding some users
SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'x' OR full_name LIKE '%Bob%';

Brute-force password guessing
SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'bob@example.com' AND passwd = 'hello123';

The database isn't readonly
SELECT email, passwd, login_id, full_name
FROM members
WHERE email = 'x'; DROP TABLE members; --'; -- Boom!

Thursday, May 6, 2010

MIcrosoft defines SketchFlow

SketchFlow prototypes are designed by drawing out flow diagrams, composition, screens and states of an application UI.


You can use drawing tools, sticky notes, WPF or Silverlight controls and components, as well as imported images to iterate on and visualize your ideas quickly. SketchFlow even comes with a set of sketch styles for the standard platform controls, helping you present your work with a consistent “prototype” look to keep focus on the concepts presented. Using animation, you can illustrate design intent for dynamic interactions and application transitions easily.

SketchFlow lets you create, test, iterate, present and evaluate ideas in rapid succession, enabling you to consider approaching projects that previously would not have been cost effective or profitable.


Check out this URL form more
http://www.microsoft.com/expression/products/Sketchflow_Overview.aspx

Tuesday, April 27, 2010

Game Engines

Game engines provide a suite of visual development tools in addition to reusable software components. These tools are generally provided in an integrated development environment to enable simplified, rapid development of games in a data-driven manner. These games engines are sometimes called "game middleware" because, as with the business sense of the term, they provide a flexible and reusable software platform which provides all the core functionality needed, right out of the box, to develop a game application while reducing costs, complexities, and time-to-market—all critical factors in the highly competitive video game industry.

Most often, 3D engines or the rendering systems in game engines are built upon a graphics API such as Direct3D or OpenGL which provides a software abstraction of the GPU or video card. Low-level libraries such as DirectX, SDL, and OpenAL are also commonly used in games as they provide hardware-independent access to other computer hardware such as input devices (mouse, keyboard, and joystick), network cards, and sound cards. Before hardware-accelerated 3D graphics, software renderers had been used. Software rendering is still used in some modeling tools or for still-rendered images.

Some companies now specialize in developing software suites known as "middleware." Middleware developers attempt to "pre-invent the wheel" by developing robust software suites which include many elements a game developer may need to build a game. Most middleware programs provide facilities that ease development, such as graphics, sound, physics and AI functions. Gamebryo and RenderWare are such widely used middleware programs.

Tuesday, April 20, 2010

Opt-in E-mail Advertising

Opt-in e-mail advertising, or permission marketing, is a method of advertising via e-mail whereby the recipient of the advertisement has consented to receive it. This method is one of several developed by marketers to eliminate the disadvantages of e-mail marketing.

Opt-in e-mail marketing may evolve into a technology that uses a handshake protocol between the sender and receiver. This system is intended to eventually result in a high degree of satisfaction between consumers and marketers. If opt-in e-mail advertising is used, the material that is e-mailed to consumers will be "anticipated". It is assumed that the consumer wants to receive it, which makes it unlike unsolicited advertisements sent to the consumer. Ideally, opt-in e-mail advertisements will be more personal and relevant to the consumer than untargeted advertisements.

A common example of permission marketing is a newsletter sent to an advertising firm's customers. Such newsletters inform customers of upcoming events or promotions, or new products. In this type of advertising, a company that wants to send a newsletter to their customers may ask them at the point of purchase if they would like to receive the newsletter.

With a foundation of opted-in contact information stored in their database, marketers can send out promotional materials automatically. They can also segment their promotions to specific market segments.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Saturday, April 17, 2010

Adobe CS5 Master Collection Description

Discover breakthrough interactive design tools that enable you to create, deliver, and optimize beautiful, high-impact digital experiences across media and devices. Create once and deliver that same experience virtually everywhere, thanks to the highly anticipated releases of the Adobe® Flash® Player 10.1 and Adobe AIR® 2 runtimes. Maximize the impact of what you've created through integration of signature Omniture® technologies

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Tuesday, April 13, 2010

Differeces in RGB and CMYK

RGB is the primary color model used by display devices.
CMYK is the primary color model used by color printers.

In RGB, images are created by using Red, Green, and Blue light. This process can create millions of different colors by using different concentrations of the primaries.

CMYK, in contrast, creates different colors in a subtractive process mixing four colors or inks: Cyan (blue), Magenta (red), Yellow, and Black.

CMYK works by removing color from a white background, whereas RGB adds color to a black background. CMYK pigments absorb most of the white light that hits them, reflecting only part of the spectrum back to the eye. Similarly to RGB, CMYK creates various colors by combining the Cyan, Magenta, Yellow, and Black inks in different proportions.

The differences between RGB and CMYK become crucial when desktop publishers attempt to move documents from their screens onto hard copy. There are many RGB colors that CMYK printers cannot reproduce. To overcome this limitation, many applications allow you to work with an image by specifying CMYK color instead of RGB. On the hardware side, high-end printers can supplement CMYK inks with specific spot color inks that improve the printed output's fidelity to the original.

Friday, April 9, 2010

Recommended Doctype Declarations to use in your Web document.

What are the differences is Strict, Transitional and Frameset

Strict - This DTD contains all HTML elements and attributes, but does NOT INCLUDE presentational or deprecated elements (like font). Framesets are not allowed.

Transitional - This DTD contains all HTML elements and attributes, INCLUDING presentational and deprecated elements (like font). Framesets are not allowed.

Frameset - This DTD is equal to Transitional, but allows the use of frameset content.

(X)HTML Doctype Declarations List

HTML 4.01

Strict - !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Transitional - !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

Frameset - !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">

XHTML 1.0

Strict - !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

Transitional - !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Frameset - !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

XHTML Basic 1.1
!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.1//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">

HTML 5
!DOCTYPE HTML>

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Maps In Modern Web Design - Unconventional Maps


While the majority of maps in this article are of physical locations, don’t feel that you have to stick to that. Geographical maps are not the only kind of maps out there. Maps can also be used to explore more abstract information, not unlike static infographics. GOOD illustrates this with its “Roadmap to Harmony” presentation. The result is both logical and inspiringly creative.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Tuesday, April 6, 2010

MySQL Enterprise Server 5.1

What is new in MySQL 5.1

* Partitioning to improve performance and management of very large database environments
* Row-based/Hybrid Replication for improved replication security
* Event Scheduler to create and schedule jobs that perform various database tasks
* XPath Support
* Dynamic General/Slow Query Log
* Performance/Load Testing Utility (mysqlslap)

What are the enhancements and updates

* Full Text Search (faster, new dev templates)
* Archive engine (better compression, more features)
* User session and problem SQL identification
* MySQL embedded library (libmysqld)

Other interesting stuff

* Additional INFORMATION_SCHEMA objects
* Faster data import operations (parallel file load)
* ACID Transactions to build reliable and secure business critical applications
* Stored Procedures to improve developer productivity
* Triggers to enforce complex business rules at the database level
* Views to ensure sensitive information is not compromised
* Information Schema to provide easy access to metadata
* Plugable Storage Engine Architecture for maximum flexibility
* Archive Storage Engine for historical and audit data

Tuesday, March 30, 2010

If you ever wonder "How Torrents Work?"

The concept is peer to peer sharing of files(like online sharing of files).A person shares the file he has by using a torrent client (a software which downloads the original file you wanted") and you download the file using the same class of software.concepts include "seeding" and "leeching".

you start with downloading a .torrent file.This file is a small file which your client uses to know where the real download file is located and manages and downloads the original file for you.

the original file from a "seeder" (People who have the complete file) is broken into N pieces and distributed among the "leechers" (the one who are downloading the file) like us who are trying to download,without redundancy.so you download one 1 piece at a time to complete the file.once you complete your download (i.e you have the total N pieces of the file => you have the complete file) you become a "seeder" and you seed the file for other "leechers".this goes on and on....
Please refer to the concepts given below to understand.

Seeding

The user who first uploaded the file or files in question acts as the first "seeder." A seeder is a user who is in possession of the completed file and has made it available for others to download. Users in search of the file connect to as many different seeders as possible at one time and download pieces of the completed file. Because only part of the file is being downloaded from many different users, this greatly improves the rate at which a person can download a file. It also relieves bandwidth and hardware use for the originator of the file.

Leeching

People who have only a partially completed version of the file in question are called "leechers." These people are also uploading whatever parts of a file they have at the same time as they are downloading the remainder. This process improves download rates for everyone involved, as the more seeders and leechers a user connects to, the more parts of a file they can download at once, which means the file will finish downloading faster. When a user is down downloading a file, they themselves become seeders for others to download from.

Wednesday, March 24, 2010

Nintendo Announces New Hardware, The Nintendo 3DS



Nintendo describes the portable as allowing games to be "enjoyed with 3D effects without the need for any special glasses". It is not yet known how the 3D effects will work, but it is possible that it could work like this Japan-only DSiWare game.

According to Nintendo, the product will go on sale between April 2010 and March 2011.

The Nintendo 3DS will succeeded the Nintendo DS series and will have backward compatibility for Nintendo DS and DSi games. It is important to stress that the Nintendo 3DS is a new hardware series.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Thursday, March 18, 2010

IEBlog writes about Internet Explorer 9



The Windows Internet Explorer Platform Preview build marks an important milestone in the development of the next version of Internet Explorer. A significant part of the platform preview is focused on new or proposed World Wide Web Consortium (W3C) web standards.

The goal of industry standards is actually “interoperability.” For HD television standards, that means that multiple TVs can render the same rich content in a consistent way. In the web case, that means the same HTML, script, and formatting markup work the same across different browsers. Eliminating the need for different code paths for different browsers benefits everyone, and creates more opportunity for developers to innovate on great web content.

Developers have said they want to use the same markup across all modern browsers. Each proposed standard needs a comprehensive test suite to make this happen. The test suite helps resolve ambiguities in the specification by testing any implementation (aka browser) built on that specification.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Monday, March 15, 2010

Tag Cloud Concept



There are three main types of tag cloud applications in social software, distinguished by their meaning rather than appearance. In the first type, there is a tag for the frequency of each item, whereas in the second type, there are global tag clouds where the frequencies are aggregated over all items and users. In the third type, the cloud contains categories, with size indicating number of subcategories.

In the first type, size represents the number of times that tag has been applied to a single item. This is useful as a means of displaying metadata about an item that has been democratically 'voted' on and where precise results are not desired. Examples of such use include Last.fm (to indicate genres attributed to bands) and LibraryThing (to indicate tags attributed to a book).

In the second, more commonly used type,[citation needed] size represents the number of items to which a tag has been applied, as a presentation of each tag's popularity. Examples of this type of tag cloud are used on the image-hosting service Flickr, blog aggregator Technorati and on Google search results with DeeperWeb .

In the third type, tags are used as a categorization method for content items. Tags are represented in a cloud where larger tags represent the quantity of content items in that category.

More generally, the same visual technique can be used to display non-tag data, as in a word cloud or a data cloud.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Sunday, March 14, 2010

flash.media.sound (ActionScript 3.0)

The Sound class lets you work with sound in an application. The Sound class lets you create a new Sound object, load and play an external MP3 file into that object, close the sound stream, and access data about the sound, such as information about the number of bytes in the stream and ID3 metadata. More detailed control of the sound is performed through the sound source — the SoundChannel or Microphone object for the sound — and through the properties in the SoundTransform class that control the output of the sound to the computer's speakers.

To control sounds that are embedded in a SWF file, use the properties in the SoundMixer class.

When you use this class, consider the following security model:

* Loading and playing a sound is not allowed if the calling file is in a network sandbox and the sound file to be loaded is local.

* By default, loading and playing a sound is not allowed if the calling is local and tries to load and play a remote sound. A user must grant explicit permission to allow this.

* Certain operations dealing with sound are restricted. The data in a loaded sound cannot be accessed by a file in a different domain unless you implement a cross-domain policy file. Sound-related APIs that fall under this restriction are Sound.id3, SoundMixer.computeSpectrum(), SoundMixer.bufferTime, and the SoundTransform class.

However, in Adobe AIR, content in the application security sandbox (content installed with the AIR application) are not restricted by these security limitations.

Nishan Shanaka Korala Gamage
Colombo, Sri Lanka
Author: Eye Think

Friday, March 12, 2010

Google Wave



Google Wave is an online tool for real-time communication and collaboration. A wave can be both a conversation and a document where people can discuss and work together using richly formatted text, photos, videos, maps, and more.

A wave is equal parts conversation and document. People can communicate and work together with richly formatted text, photos, videos, maps, and more.

A wave is shared. Any participant can reply anywhere in the message, edit the content and add participants at any point in the process. Then playback lets anyone rewind the wave to see who said what and when.

A wave is live. With live transmission as you type, participants on a wave can have faster conversations, see edits and interact with extensions in real-time.

Windows 7 Aero Peek



Peek gives you the power of X-ray vision, so you can peer past all your open windows straight to the Windows 7 desktop. Simply point to the right edge of the taskbar—and watch open windows instantly turn transparent, revealing all your hidden icons and gadgets.

To quickly reveal a buried window, point to its taskbar thumbnail. Now only that window shows on the desktop.

Tuesday, March 9, 2010

Loading XML File Using the URLLoader Class for Flash

The loading of any textual content such as XML, CSS, and HTML is managed by the URLLoader Class. This class is very simple to use. Start off by creating an instance of it and then use the .load() method to load the playlist.xml file.

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("playlist.xml"));

This should load your XML file into Flash, but that on its own will not do anything as Flash is still not yet told what to do when the file loads. To take an action once the file is loaded we need to use an event handler to listen to the Event.COMPLETE. Register this event with a function which you will have to create later. Simply add the following code to use the .addEventListener() method to register for this event:

var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("playlist.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);

Saturday, March 6, 2010

Windows Presentation Foundation



WPF is designed to allow you to create dynamic, data driven presentation systems. Every part of the system is designed to create objects through property sets that drive behavior. Data binding is a fundamental part of the system, and is integrated at every layer.

Traditional applications create a display and then bind to some data. In WPF, everything about the control, every aspect of the display, is generated by some type of data binding. The text found inside a button is displayed by creating a composed control inside of the button and binding its display to the button’s content property.

When you begin developing WPF based applications, it should feel very familiar. You can set properties, use objects, and data bind in much the same way that you can using Windows Forms or ASP.NET. With a deeper investigation into the architecture of WPF, you'll find that the possibility exists for creating much richer applications that fundamentally treat data as the core driver of the application.

Thursday, March 4, 2010

Visual Studio Team System


Visual Studio Team System consists of 5 products, which can be categorized into server-side and client-side applications. Microsoft encourages companies using Team System to make use of the Microsoft Solutions Framework, a metamodel which describes business and software engineering processes to help implement an effective software development process. Team System supports two conceptual frameworks for software development, Agile and Capability Maturity Model Integration (CMMI). Other frameworks can be added as well to support other methodologies.
[edit] Team Foundation Server

Overview of the Product List
Team Foundation Server
Team Test Load Agent
Visual Studio Integration
Microsoft Office Integration

Wednesday, March 3, 2010

Applications For Facebook



Using Facebook Applications, developers can add custom features to one of the most popular websites in the world. Facebook is the biggest social network among college students, and is gaining ground among professionals too. Facebook applications enable you to add new ways for users to interact with each other using Facebook.

Facebook applications are written in a server-side language, and hosted on the application developer's own server. They interface with Facebook, so that they appear to users to be part of Facebook itself.

Tuesday, March 2, 2010

Microsoft DreamSpark



Whether you're a student working through high school or working on your degree at an institution of higher education, DreamSpark is here to help you achieve all your dreams.

if you’re a current university or high school student, you can download professional Microsoft developer, designer, and gaming software through DreamSpark at no charge. Yes, students get to download software at no charge. DreamSpark enables students, like you, to download and use Microsoft tools to unlock your creative potential and set you on the path to academic and career success by advancing your learning in the areas of technical design, technology, math, science, and engineering! It doesn’t matter what classes you’re taking right now, just as long as you’re a current student in a verified, accredited School and use the tools in pursuit of advancing your education in one of these areas.

Monday, March 1, 2010

What is Android and its Software Development Kit



Android is a mobile operating system that uses a modified version of the Linux kernel. It was initially developed by Android Inc., a firm later purchased by Google, and lately by the Open Handset Alliance. It allows developers to write managed code in the Java language, controlling the device via Google-developed Java libraries.

The unveiling of the Android distribution on 5 November 2007 was announced with the founding of the Open Handset Alliance, a consortium of 47 hardware, software, and telecom companies devoted to advancing open standards for mobile devices.Google released most of the Android code under the Apache License, a free software and open source license.

The Android SDK includes a comprehensive set of development tools. These include a debugger, libraries, a handset emulator (based on QEMU), documentation, sample code, and tutorials. Currently supported development platforms include x86-architecture computers running Linux (any modern desktop Linux distribution), Mac OS X 10.4.8 or later, Windows XP or Vista. Requirements also include Java Development Kit, Apache Ant, and Python 2.2 or later. The officially supported integrated development environment (IDE) is Eclipse (3.2 or later) using the Android Development Tools (ADT) Plugin, though developers may use any text editor to edit Java and XML files then use command line tools to create, build and debug Android applications as well as control attached Android devices (e.g., triggering a reboot, installing software package(s) remotely).

Friday, February 26, 2010

The New AMD Phenom II Processors



Unbeatable multi-core value with AMD Phenom II processors. They deliver The Ultimate Visual Experience™ for high definition entertainment, advanced multitasking performance, and power-saving innovations for smaller, cooler machines that are energy efficient.

Features & Benefits
Smoother faster experience, even when running complex software application with native Multi-Core Technology

Scaled performance to conserve PC power with HyperTransport 3.0 Technology

Hear your music, not your PC with AMD PowerNow!™ Technology (Cool'n'Quiet Technology)

Prevent the spread of certain viruses and strengthen your network integrity with Enhanced Virus Protection (EVP)

Thursday, February 25, 2010

Stack Overflow

In software, a stack overflow occurs when too much memory is used on the call stack. In many programming languages, the call stack contains a limited amount of memory, usually determined at the start of the program. The size of the call stack depends on many factors, including the programming language, machine architecture, multi-threading, and amount of available memory. When too much memory is used on the call stack the stack is said to overflow, typically resulting in a program crash.[1] This class of software bug is usually caused by one of two types of programming errors.

The most common cause of stack overflows is excessively deep or infinite recursion. Languages like Scheme, which implement tail-call optimization, allow infinite recursion of a specific sort — tail recursion — to occur without stack overflow. This works because tail-recursion calls do not take up additional stack space.

How Does a CPU Work?



The CPU sits in the motherboard as the central unit. All of the other hardware components and programs installed on the system must go through the CPU before their function can be carried out. The CPU's job function is important and enormous in scale.

When a function, program or piece of data is called, the CPU pulls it from Random Access Memory (RAM) and any other hardware in order to process it. The CPU then reads the instructions associated to the task before sending it back to RAM. The instructions that the CPU receives pertains to calculations and data transportation. The system bus is the trail that the data must travel before it is executed. It is the CPU's job to make sure that the data is guided through the system bus to be processed by the CPU and then on to the next step. With every stop on the system bus, the CPU makes sure that the data gets there in the correct order.

There are two types of data that the CPU handles at a given time. One is the data that needs to be processed. The other is the program code that is connected to the data. The programming code is a list of instructions on how the data should be handled and processed in a language that the CPU can interpret. The programming code also contains the route of the system bus for the data. Since other components of the computer may not understand the programming code, it is the CPU's job to interpret the instructions to those components. The CPU continues to handle both pieces of data until it is no longer needed, which is when the program is closed or the hardware is no longer accessed.

Wednesday, February 24, 2010

DPI and PPI Explained



PPI
This is the number of pixels per inch in your image. This will affect the print size of your photo and will affect the quality of the output. The way that it will affect the quality of the output is that if there are too few pixels per inch, then the pixels will be very large and you will get a very pixelated image (jagged edges, you will actually see individual pixels, not good). You'll hear various different numbers thrown around as to what an acceptable PPI for a print-out is. A lot of this will depend on the size of the print. This is because you look at large prints from a further distance than a small print, so you can get away with a lower PPI and still have the image look fine.

Anyway, all that PPI does is affect the print size of the image. There are 2 ways that you can change the print size, by resampling or by not resampling. Not resampling is what you normally want to do, this will only change the size of the print out. Using resampling will actually change the number of pixels (and thus the file size) in order to match the print size. So for instance, if you don't resample, changing the PPI setting will increase or decrease the print size (it will increase if you drop the PPI, it will decrease if you increase the PPI). With resampling, if you change the PPI, you will loose pixels (if you set the PPI to a lower value) or you will have pixels created (if you increase the PPI). Creating pixels is a bad idea, they get generated by the computer and the results aren't usually that good. Throwing away pixels is fine as long as you won't need the bigger size later (that's why it's usually a good idea to save the original large file).

DPI
DPI only refers to the printer. Every pixel output is made up of different coloured inks (usually 4 or 6 colours, depending on your printer). Because of the small number of colours, the printer needs to be able to mix these inks to make up all the colours of the image. So each pixel of the image is created by a series of tiny dots (you could think of them as sub-pixels). Generally, the higher the DPI, the better the tonality of the image, colours should look better and blends between colours should be smoother. You'll also use more ink and the print job will be slower. You might want to try setting your printer to a lower DPI to save ink and speed up the job, see if you notice any difference in quality. The lowest setting where you don't see any loss in quality should be the best one to use.

So a 1200 dpi printer uses 1200 dots of ink in every inch to make up the colours. If you were printing a 300 PPI image, then every pixel would be made up of 16 smaller ink dots (1200 DPI x 1200 DPI / 300 PPI x 300 PPI). A lower DPI would have fewer ink dots making up each pixel, which would make the colour look worse. A higher DPI would have more ink dots for each pixel and should give more accurate colour (especially under close examination).

Tuesday, February 23, 2010

Microsoft Robotics Developer Studio 2008



Microsoft Robotics Developer Studio 2008 R2 (Microsoft RDS) provides a wide range of support to make it easy to develop robot applications. Microsoft RDS includes a programming model that makes it easy to develop asynchronous, state-driven applications. Microsoft RDS provides a common programming framework that can be applied to support a wide variety of robots, enabling code and skill transfer.

Microsoft RDS includes a lightweight asynchronous services-oriented runtime, a set of visual authoring and simulation tools, as well as templates, tutorials, and sample code to help you get started.

New Simulation Sensors and Tutorials

This release contains a completely new set of Simulation Tutorials that illustrate how to use the new simulated sensors and also how to place multiple robots into the simulation environment simultaneously. Several new sensors are available, including Compass, GPS, Brightness and Sonar. A rudimentary robot, without a 3D mesh, is used to show the basic principles of simulation. The robot can be placed into rich scenes such as the Apartment model.

Monday, February 22, 2010

Whats the difference between mp3 and mp4?

MP3 is an MPEG standard used especially for digitally transmitting music over the Internet.

A file containing a song or other audio data that is encoded using this standard: The band released its latest single as an MP3 on the Internet.

MP4 refers to: MPEG-4 Part 14 or *.mp4, is a file format (a so called container) specified as a part of the ISO/IEC MPEG-4 international standard. It is used to store media types defined by the ISO/IEC Moving Picture Experts Group, and can be used to store other media types as well. It is, or will be, typically used to store data in files, though it will be used in data streams and possibly in other ways.

Maemo OS in Nokia N900



Maemo is a software platform developed by Nokia for smartphones and Internet Tablets. It is based on the Debian Linux distribution.

The platform comprises the Maemo operating system and the Maemo SDK.

Maemo is mostly based on open source code, and has been developed by Maemo Devices within Nokia in collaboration with many open source projects such as the Linux kernel, Debian, and GNOME. Maemo is based on Debian GNU/Linux and draws much of its GUI, frameworks, and libraries from the GNOME project. It uses the Matchbox window manager, and the GTK-based Hildon as its GUI and application framework.

The UI in Maemo 4 is similar to many handheld interfaces, and features a "Home" screen, which acts as a central point from which all applications and settings are accessed. The Home Screen is divided into areas for launching applications, a menu bar, and a large customisable area that can display information such as an RSS reader, Internet radio player, and Google search box.

The Maemo 5 UI is slightly different: The menu bar and info area are consolidated to the top of the display, and the four desktops can be customized with shortcuts and widgets.

At the Mobile World Congress in February 2010, it was announced that the Maemo project would be merging with Moblin to create the MeeGo mobile software platform.

Windows Phone




Windows Phone, formerly called Windows Mobile, is a compact mobile operating system developed by Microsoft, and designed for use in smartphones and mobile devices.

The current version is called 'Windows Phone Classic 6.5'. It is based on the Windows CE 5.2 kernel, and features a suite of basic applications developed using the Microsoft Windows API. It is designed to be somewhat similar to desktop versions of Windows, feature-wise and aesthetically. Additionally, third-party software development is available for Windows Phone Classic, and software can be purchased via the Windows Marketplace for Mobile.

Friday, February 19, 2010

21 SEO Tips That I Found on a Web Site

1. Commit yourself to the process.
2. Be patient.
3. Ask a lot of questions when hiring an SEO company.
4. Become a student of SEO.
5. Have web analytics in place at the start.
6. Build a great web site.
7. Include a site map page.
8. Make SEO-friendly URLs.
9. Do keyword research at the start of the project.
10. Open up a PPC account.
11. Use a unique and relevant title and meta description on every page.
12. Write for users first.
13. Create great, unique content.
14. Use your keywords as anchor text when linking internally.
15. Build links intelligently.
16. Use press releases wisely.
17. Start a blog and participate with other related blogs.
18. Use social media marketing wisely.
19. Take advantage of local search opportunities.
20. Take advantage of the tools the search engines give you.
21. Diversify your traffic sources.

What is "SOA"

In computing, a service-oriented architecture (SOA) is a flexible set of design principles used during the phases of systems development and integration. A deployed SOA-based architecture will provide a loosely-integrated suite of services that can be used within multiple business domains.

SOA also generally provides a way for consumers of services, such as web-based applications, to be aware of available SOA-based services. For example, several disparate departments within a company may develop and deploy SOA services in different implementation languages; their respective clients will benefit from a well understood, well defined interface to access them. XML is commonly used for interfacing with SOA services, though this is not required.

SOA defines how to integrate widely disparate applications for a world that is Web based and uses multiple implementation platforms. Rather than defining an API, SOA defines the interface in terms of protocols and functionality. An endpoint is the entry point for such an SOA implementation.

Thursday, February 18, 2010

15 Essential Checks Before Launching Your Website



Favicon
link rel="icon" type="image/x-icon" href="/favicon.ico" />
And if you have an iPhone favicon:
link rel="apple-touch-icon" href="/favicon.png" />

Titles And Meta Data

Cross-Browser Checks
Just when you think your design looks great, pixel perfect, you check it in IE and see that everything is broken. It’s important that your website works across browsers.

Proofread
Read everything. Even if you’ve already read it, read it again. Get someone else to read it.

Links
Don’t just assume all your links work. Click on them. You may often forget to add “http://” to links to external websites. Make sure your logo links to the home page, a common convention.

Functionality Check
Test everything thoroughly. If you have a contact form, test it and copy yourself so that you can see what comes through. Get others to test your website, and not just family and friends but the website’s target market.

Graceful Degradation
Your website should work with JavaScript turned off. Users often have JavaScript turned off for security, so you should be prepared for this. You can easily turn off JavaScript in Firefox.

Validation
You should aim for a 100% valid website. That said, it isn’t the end of the world if your website doesn’t validate, but it’s important to know the reasons why it doesn’t so that you can fix any nasty errors.

RSS Link
If your website has a blog or newsreel, you should have an RSS feed that users can subscribe to. Users should be able to easily find your RSS feed: the common convention is to put a small RSS icon in the browser’s address bar.

Put this code between your head tags.
link rel="alternate" type="application/rss+xml" title="Site or RSS title" href="link-to-feed" />

Analytics
Installing some sort of analytics tool is important for measuring statistics to see how your website performs and how successful your conversion rates are. Track daily unique hits, monthly page views and browser statistics, all useful data to start tracking from day 1.

Sitemap
Adding a sitemap.xml file to your root directory allows the major search engines to easily index your website. The file points crawlers to all the pages on your website. XML-Sitemaps automatically creates a sitemap.xml file for you.

Defensive Design
The most commonly overlooked defensive design element is the 404 page. If a user requests a page that doesn’t exist, your 404 page is displayed. This may happen for a variety of reasons, including another website linking to a page that doesn’t exist.

Optimize
You’ll want to configure your website for optimal performance. You should do this on an ongoing basis after launch, but you can take a few simple steps before launch, too.

Back Up
If your website runs off a database, you need a back-up strategy. Or else, the day will come when you regret not having one. If you use WordPress, install Wordpress Database Backup, which you can set up to automatically email you backups.

Print Style Sheet
If a user wants to print a page from your website, chances are she or he wants only the main content and not the navigation or extra design elements. That’s why it is a good idea to create a print-specific style sheet.
link rel="stylesheet" type="text/css" href="print.css" media="print"

Email Newsletter Design: Guidelines And Examples



Signing Up For A Newsletter

Tell Users What They Will Get
Reward Users for Signing Up
Preview Your Newsletter
Keep Questions Short and Simple

Content Of Newsletter

Write an Attractive Subject Line
Provide Useful and Well-Written Content
Make Content Relevant to Your Readers
Offer Exclusive Deals

Newsletter Design

Keep it Simple and Straightforward
Make Good Use of Images, Numbers and Colors
Tailor the Layout to the Content
Be Creative
Be Wary of Table of Contents
Be Wary of Ads

Tools And Features

Make it easy for users to unsubscribe, but don’t remind them how to all the time. Also, tell users how they can change their email address, view the newsletter in a Web browser and quickly share the newsletter with their friends. Other useful features include: “Follow us on Twitter,” “Be Our Fan on Facebook” and “Watch Us on YouTube.”

After Sending Out The Newsletter

After sending out your newsletter, use an email marketing tool and list manager to track, monitor and measure the performance of your campaigns. Many email service providers are out there, such as MailChimp, iContact, Mailvivo, Mailing Manager and Atomic Email Tracker. The majority of them also provide templates to help you create your newsletter if you don’t want to get your hands dirty.

Wednesday, February 17, 2010

Liferay Portal


Liferay Portal is an enterprise web platform for building business solutions that deliver immediate results and long-term value. Get the benefits of packaged applications and an enterprise application framework in a single solution.

Liferay Portal ships with broad product capabilities to provide immediate return on investment:

Content & Document Management with Microsoft Office® integration
Web Publishing and Shared Workspaces
Enterprise Collaboration
Social Networking and Mashups
Enterprise Portals and Identity Management

Compatible with your IT

Runs on your existing application servers, databases and operating systems to eliminate new spending on infrastructure.

Flexible Scripting Support

Runs PHP, Ruby, Python, Grails and other lightweight scripting technologies within a robust Java framework

Compliant with Standards

Adheres to open standards for content, portlets, web services and front-end technologies to reduce development cost

Top 5 PHP Frameworks


Akelos

The Akelos PHP Framework is a web application development platform based on the MVC (Model View Controller) design pattern. Based on good practices, it allows you to:

Write views using Ajax easily
Control requests and responses through a controller
Manage internationalized applications
Communicate models and the database using simple conventions.

Your Akelos based applications can run on most shared hosting service providers since Akelos only requires that PHP be available at the server. This means that the Akelos PHP Framework is the ideal candidate for distributing standalone web applications as it does not require any non-standard PHP configuration to run.

ash.MVC

ash.MVC is a simple PHP programming framework proposed by Ash. The basic approach of this framework is to adopt a middle-path approach between faster development cycle, and a robust and scalable application. Moreover, the schemes proposed in the framework stick to the line of simplicity all along.

While encountering this new framework, ash.MVC, one may wonder with various questions, like:

Do we need a framework at the first place?
Why do we need another framework when there are numerous ones available?
Why do we use MVC design pattern for this framework?

All the above questions have been addressed in the FAQs page.

The framework revolves round the concept of MVC design pattern as expected. There are four elements: 1. web browser, 2. Controller, 3. Model, and 4. View. These four elements interact with one another to establish a data-flow that is initiated by HTTP Request from client browser, and is successfully terminated with the receipt of HTTP Response at the client browser.

CakePHP

CakePHP is a rapid development framework for PHP which uses commonly known design patterns like ActiveRecord, Association Data Mapping, Front Controller and MVC. Our primary goal is to provide a structured framework that enables PHP users at all levels to rapidly develop robust web applications, without any loss to flexibility.

CodeIgniter

CodeIgniter is an Application Development Framework - a toolkit - for people who build web sites using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by minimizing the amount of code needed for a given task.

Please read the Introduction section of the User Guide to learn the broad concepts behind CodeIgniter, then read the Getting Started page.

DIY

It is an open-source lightweight web application framework based on object-oriented PHP 5, MySQL, and XSLT. It is fully object-oriented and designed following the MVC architecture and REST design principles. The idea behind it is not to reinvent the wheel but instead to combine existing and proven technologies in a convenient and effective way.

The DIY Framework is a compact class library which can be extended and included by user applications. It puts few restrictions and gives flexibility. In contrast, most of the current web application frameworks are designed inside-out: they define the general structure and only allow your application to fit within their constraints.
For the same reasons, the framework does not contain plugins, scaffolding, routing, AJAX, widgets or other buzzwords. We see them as helper applications at best, not as parts of the framework itself. No frills are included (hence the name) " just precise control over your sever-side code.
Because of the framework's nature, the following descriptions of architecture and file structure should be seen merely as guidelines for applications. They are also used in the included sample files.

Using the DIY Framework, not a single line of SQL or HTML needs to be hardcoded, constructed "by hand" or mixed with the PHP code. Almost no URL hacking or chopping is needed. The UTF-8 encoding is used exclusively.

The framework exploits PHP 5's features such as more advanced object model, type hinting and class autoloading. HTTP request, response and session data is accessed via Java servlet-style OO wrappers. The framework has been straightforwardly ported to Java.

It has been successfully used in several small to medium production solutions and is currently used to build a large community-based social website.

Tuesday, February 16, 2010

Rails Web Application Framework


Rails is a web-application framework that includes everything needed to create database-backed web applications according to the Model-View-Control pattern.

This pattern splits the view (also called the presentation) into "dumb" templates that are primarily responsible for inserting pre-built data in between HTML tags. The model contains the "smart" domain objects (such as Account, Product, Person, Post) that holds all the business logic and knows how to persist themselves to a database. The controller handles the incoming requests (such as Save New Account, Update Product, Show Post) by manipulating the model and directing data to the view.

In Rails, the model is handled by what‘s called an object-relational mapping layer entitled Active Record. This layer allows you to present the data from database rows as objects and embellish these data objects with business logic methods.

The controller and view are handled by the Action Pack, which handles both layers by its two parts: Action View and Action Controller. These two layers are bundled in a single package due to their heavy interdependence. This is unlike the relationship between the Active Record and Action Pack that is much more separate. Each of these packages can be used independently outside of Rails.

Visual F# at Microsoft Research


F# brings you type safe, succinct, efficient and expressive functional programming language on the .NET platform. It is a simple and pragmatic language, and has particular strengths in data-oriented programming, parallel I/O programming, parallel CPU programming, scripting and algorithmic development. It lets you access a huge .NET library and tools base and comes with a strong set of Visual Studio development tools. F# combines the advantages of typed functional programming with a high-quality, well-supported modern runtime system.

This combination has been so successful that the language is now a first class language in Visual Studio 2010, and can also be used on Mac, Linux and other platforms. F# originates from Microsoft Research, Cambridge, and the MSR F# team

Monday, February 15, 2010

DirectX 11 on Windows 7


DirectX 11, the next generation of graphics technology, arrives with Windows 7. This is great news for players as many of the newest Windows games will take full advantage of this technology to create more immersive and detailed worlds and experiences. Game developers will utilize new features to create rich worlds, realistic characters, and more fluid gameplay.

DirectX 11 features include:

Tessellation – Tessellation is implemented on the GPU to calculate a smoother curved surface resulting in more graphically detailed images, including more lifelike characters in the gaming worlds that you explore.

Multi-Threading – The ability to scale across multi-core CPUs will enable developers to take greater advantage of the power within multi-core CPUs. This results in faster framerates for games, while still supporting the increased visual detailing.

DirectCompute – Developers can utilize the power of discrete graphics cards to accelerate both gaming and non-gaming applications. This improves graphics, while also enabling players to accelerate everyday tasks, like video editing, on their Windows 7 PC.

Why SOA'ize MSMQ with WCF

Microsoft Message Queuing (MSMQ) is an incredibly robust, time-tested messaging server that fulfills a critical role in any communications platform. What it doesn’t do however, is play well in a service oriented world. MSMQ applications and their developers must be fully aware of the queue’s they’re communicating with and hand-craft messages to be sent on the wire. In a Service Oriented Architecture (SOA) world, we don’t think in terms of message in queues, we think in terms of business operations allowing developers to focus on what’s most important…business operations. Centering application development around these operations enables us to be flexible with not only with our implementations, but also our communication partners. In addition, the extensibility mechanisms provided when we integrate MSMQ with Windows Communication Foundation (WCF) are extremely powerful and enable MSMQ developers to do things they never could before.

Sunday, February 14, 2010

Microsoft Office 2010 Engineering Says about "Evolving the Backstage View"


One of the things we’ve been working on has been improving the navigation to and from the Backstage. Because the Backstage view covers up the document, we created the Back button mechanism to allow you to navigate back to your document. Unfortunately, this design had some issues that we’ve been working through – it led to some confusion around what the “X” (close) button in the top right corner should do, set incorrect expectations around what “Back” actually implies (does it work like in the browser?), and was not an easy target to hit.

An important change has been to keep the Ribbon tabs visible and usable while you’re in the Backstage view. This makes the Backstage work much more like any other Ribbon tab – a metaphor people are already familiar with. In addition to clicking on the document thumbnail or pressing ESC, you can simply click on any one of the other Ribbon tabs to get back to your document and use those commands, just as you would switch between other Ribbon tabs.

NHibernate For .NET

NHibernate is an Object-relational mapping (ORM) solution for the Microsoft .NET platform: it provides a framework for mapping an object-oriented domain model to a traditional relational database. Its purpose is to relieve the developer from a significant portion of relational data persistence-related programming tasks.

NHibernate is free as open source software that is distributed under the GNU Lesser General Public License.

NHibernate is a port of the popular Java O/R mapper Hibernate to .NET. Version 1.0 mirrored the feature set of Hibernate 2.1, as well as a number of features from Hibernate 3.

NHibernate 3.0 will be the first version to use .Net 3.5.

NHibernate's primary feature is mapping from .NET classes to database tables (and from CLR data types to SQL data types). NHibernate also provides data query and retrieval facilities. NHibernate generates the SQL commands and relieves the developer from manual data set handling and object conversion, keeping the application portable to most SQL databases, with database portability delivered at very little performance overhead.

Saturday, February 13, 2010

Windows Azure


Azure Services Platform is an application platform in the cloud that allows applications to be hosted and run at Microsoft datacenters. It provides a cloud operating system called Windows Azure that serves as a runtime for the applications and provides a set of services that allows development, management and hosting of applications off-premises.All Azure Services and applications built using them run on top of Windows Azure.

Windows Azure has three core components: Compute, Storage and Fabric. As the names suggest, Compute provides computation environment with Web Role and Worker Role while Storage focuses on providing scalable storage (Blobs, Tables, Queue) for large scale needs.

The hosting environment of Windows Azure is called the Fabric Controller - which pools individual systems into a network that automatically manages resources, load balancing, geo-replication and application lifecycle without requiring the hosted apps to explicitly deal with those requirements. In addition, it also provides other services that most applications require — such as the Windows Azure Storage Service that provides applications with the capability to store unstructured data such as binary large objects, queues and non-relational tables. Applications can also use other services that are a part of the Azure Services Platform.

Why Did They Introducing HQL (Hibernate Query Language)

It is possible to use native SQL queries directly with a Hibernate-based persistence layer, it is more efficient to use HQL instead.

  • HQL allows representing SQL queries in object-oriented terms—by using objects and properties of objects.

  • Instead of returning plain data, HQL queries return the query result(s) in the form of object(s)/tuples of object(s) that are ready to be accessed, operated upon, and manipulated programmatically. This approach does away with the routine task of creating and populating objects from scratch with the "resultset" retrieved from database queried.

  • HQL fully supports polymorphic queries. That is, along with the object to be returned as a query result, all child objects (objects of subclasses) of the given object shall be returned.

  • HQL is easy to learn and implement, as its syntax and features are very similar to SQL.

  • HQL contains many advance features such as pagination, fetch join with dynamic profiling, and so forth, as compared to SQL.

  • HQL facilitates writing database-type independent queries that are converted to the native SQL dialect of the underlying database at runtime. This approach helps tap the extra features the native SQL query provides, without using a non-standard native SQL query.
  •