Main Page
From Mkhairul's Tome of Knowledge!
I bought my first domain, mkhairul.com on 21st May 2006. Aye, this will be one of those stepping stone for me. What's next? who knows.
That's naota-kun. An anime character.About Me
Work
Getting Started
Wishlist
- Das Keyboard
-
Designing the Obvious: A Common Sense Approach to Web Application Design, already owned. - TripleHead2Go
-
The Design of Sites: Patterns for Creating Winning Web Sites (2nd Edition) @ The Design of Sites BOUGHT! FUCKING EXPENSIVE RM182 -
Designing Interfaces @ UI PatternsBought this at FOSS.my 2008 - Make Projects: Small Form Factor PCs
Reading List
- Producing Open Source Software - How to run a successful free software project
- 5 books you must read to be a Computer Engineer
Todolist (not related to work)
- Dawn of War MOD (dota-like)
Notable Local Companies
- Dextra Resources - Web Consultancy
- Arifsolutions - worked here before. Nice company.
- exile studio - Web Design | Development | E-Commerce
- Motionworks Sdn Bhd - Interactive Agency
- Stampede Design
Projects
Solution Notes / Notes
- Estimation
- Solution Note Lists
- Linux
- What is the size of A4 in px/pixels?
Quoted from What is the size of A4 in px?
A4 is a document format, as a screen image that's going to depend on the image resolution, for example an A4 document resized to: 72 dpi (web) = 595 X 842 pixels 300 dpi (print) = 2480 X 3508 pixels (This is "A4" as I know it, i.e. "210mm X 297mm @ 300 dpi") 600 dpi (print) = 4960 X 7016 pixels And so forth. FWIW document formats like A4 are described by their print dimensions (millimeters), which is a whole different thing than screen images (pixels) so that's why you don't see anyone using pixels to describe A4. :yes
SOPs / Guides
- Startup
- Web Developer's Handbook
- Web Design FAQs
- Web Components
- Classic Mistakes
- Project Killers
- Windows Reformat
- Create a Business Plan by Answering 4 Simple Questions
- Building a Good Development Team
- Password Guideline
- Web Development from Scratch
- Projects
- Projects Template Wiki
- Projects - PHP
- Projects, Web - Tools & Methods
- getting things done
- Release Numbering Standard
- Software Configuration Management
- Web Development
- Web Development - Security
- Contributing to Open Source Projects HOWTO
- Software Release Stages
- Diagrams
- Mantis Integration with CVS and Subversion
- Best Practices for Web Developers
Web Developer Toolbox
- Lorem
- Color Combination / Palettes
- Test Everything
- IconFinder
- SpeedTest
- Load Test
- CSS Compressor
Best Practices
- 7 Steps Before You Begin Any Website
- General Development
- 24 Essential Pages in a Website
- Design Fast Websites
Coding Standards
- CodeIgniter / Expression Engine General Style and Syntax
- Zend Framework PHP Coding Standard
- Buxaprojects - PHP Coding Guidelines - similar to Zend Framework. LoL
- Drupal Coding Standards
- Mantis Coding Standards
- CODING GUIDELINES FOR BLUESHOES DEVELOPERS
- PHP Coding Guidelines @ evolt.org
- Mozilla Coding Style Guides
- Blueshoes Developer: Coding Guidelines
Design Patterns
- WebsitePatterns
- Design Patterns in Web Programming @ e-gineer
- Patterns in Interaction Design
- An Introduction to Using Patterns in Web Design by 37signals
- Pattern Index
- Patterns I Hate #1: Singleton
Professional Development
- Professional Development
- Software development process
- Junior programmers: Earn Respect in 5 Easy Payments (+$19.95 P&H)
- Computer Science ≠ Software Engineering
- "CMMI contains not a single iron-clad proven result. It is really just a set of (highly developed) suggestions for how to organize a software project, based on methods that have worked for other organizations on past projects. In fact, the SEI states that CMMI is not even a process, but rather a meta-process, with details to be filled in by each organization."
- "Formalism is just a necessary, not sufficient, condition for good software engineering."
Softwares / Open Source
- Solunas Hotel Booking Engine
- Blax! POS
- BUGS
- OpenRPT - report tool like Crystal Report etc.
- Developer & Power User Tools
- NatNix - Hamachi Alternative
- Wink - Tutorial and Presentation creation software, primarily aimed at creating tutorials on how to use software
- iZeit - iZeit is an easy to use online PHP calendar and to-do list.
- Archimedes - The Open CAD, architectural, drawing software.
Project Management
I can't exactly find the function for deleting projects. I dont know why they didnt make it.
Hosting
- Google Code Hosting
- Sarovar.org is India's first portal to host projects under Free/Open source licenses.
- BerliOS
System & Utilities
- SystemRescueCd - bootable rescue disk includes Disk Partitioning (GParted) and Partition Image (Ghost like software)
Emulator & Terminal
- UWIN
- The UWIN package allows UNIX applications to be built and run on Windows XP/2000/NT/ME/98/95 with few, if any, changes necessary.
- Cygwin
- Poderosa
- Poderosa is a tabbed terminal emulator for Windows.
Events
Quotes
Programming/Dev
The urge the reduce the complexity of the tools used to solve software problems is one that every software developer should share.
- Dare Obasanjo, Duct Tape Programmers and the Culture of Complexity in Software Projects
General
"Don’t run from failure — fail often, fail quickly, and learn."
There is one final aspect to be considered in any degree of project failure. All success is rooted in either luck or failure. If you begin with luck, you learn nothing but arrogance. However, if you begin with failure and learn to evaluate it, you also learn to succeed. Failure begets knowledge. Out of knowledge you gain wisdom, and it is with wisdom that you can become truly successful.
- Personal and Professional Development Through Reading, CHAOS Report
When you enter a contract or statement of work with a client, you should assume it’s a mutual agreement. If things don’t follow the letter of the contract and you let it happen without saying anything, you risk appearing as though you accept it.
- A List Apart: Why Did You Hire Me?
Ecchi na no ha ikenai to omoi imasu ! Dirty thoughts are bad! - mahoromatic
<nero> HTML without CSS is like a gun without ammunition <nero> you can beat people to death with the butt of a gun, but bullets are so much more efficient
- bash
Procedural code gets information then makes decisions. Object-oriented code tells objects to do things. — Alec Sharp, "Smalltalk By Example" McGraw-Hill, 1997.
You werent meant to have a boss
In an artificial world, only extremists live naturally. If you're not allowed to implement new ideas, you stop having them. -- Paul Graham
"We act as though comfort and luxury were the chief requirements of life, when all that we need to make us really happy is something to be enthusiastic about." - Charles Kingsley
A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools - Douglas Adams
Just as self-confidence is a self-sustaining spiral of improvement, so the lack of trust in our own good senses is a self-sustaining spiral of decline.
Response to a reddit comment (Above)
What is web design? Understanding Web Design
Web design is the creation of digital environments that facilitate and encourage human activity; reflect or adapt to individual voices and content; and change gracefully over time while always retaining their identity.
Excerpt from Secrets and Lies (page 389):
“As technology becomes more complicated, society’s experts become more specialized. And in almost every area, those with the expertise to build society’s infrastructure also have the expertise to destroy it. Ask any doctor how to poison someone untraceably, and he can tell you. Ask someone who works in aircraft maintenance how to drop a 747 out of the sky without getting caught, and he’ll know. Now ask any Internet security professional how to take down the Internet, permanently. I’ve heard about half a dozen different ways, and I know I haven’t exhausted the possibilities.”
Tidak sanggupkah kita memalukan diri kerana Allah, sedang ada riwatat menyatakan siapa yang memalukan diri kerana Allah, di akhirat kelak, Allah aka malu untuk hisab mereka..
Reddit Comment on Dilbert Comic
Experience is a hard teacher: she gives the tests first and the lessons after.
Manusia Berhubung dengan Perasaan
People don’t care how much you know until they know how much you care!
Manusia yang berubah kerana terpaksa adalah mangsa. Manusia yang memaksa dirinya untuk berubah, mereka itulah yang berjaya.
<miksa> I remember the first time I went shitting in the woods at army. I still have nightmares of how the mosquitos atacked my balls X(
"Things you own, end up owning you" - Fight Club
A few quotes taken from Web Application Development with PHP 4.0
Prevent trouble before it arises. Put things in order before they exist. The giant pine tree grows from a tiny sprout. The journey of a thousand miles starts from beneath your feet.
We join spokes together in a wheel, but it is the center hole that makes the wagon move. We shape clay into a pot, but it is the emptiness inside that holds whatever we want. We hammer wood for a house, but it is the inner space that makes it livable.
When people see some things as beautiful, other things become ugly. When people see some things as good, other things become bad.
When you handle the master carpenter’s tools, chances are that you’ll cut your hand.
If you realize that all things change, there is nothing you will try to hold on to. If you aren’t afraid of dying, there is nothing you can’t achieve.
Knowing others is intelligence; Knowing yourself is true wisdom.
Resources
Inspirations / Web Design
- Iskandar Development Region
- Kick-Ass Creative Logos
- Design Inpirations
- The Colors Do Matter: How to Pick Colors for a Winning Website Design
- 32+ Common Color Names for Easy Reference
- Logo Designs
- 45 Clean, Fresh, Impressive Designs
- Molly - web development work and personal thoughts
- Open Source Web Design
- Template Monster
- Top Ten Mistakes in Web Design
- Top Ten Guidelines for Homepage Usability
- Color
- ColorLovers - Color Palette & Stuffs
- Icons - Tango
- Dry Icons
- Hexabomb
- 16 Best-Loved Font Bits In Web Design
There are many more inspirational website, more can be seen at my delicious bookmark
Sec.
- Preventing DDoS attacks
- XSS Cheat Sheet
- Cross Site Request Forgery
- Processing Online Credit Card Transactions
- SQL Injection Cheat Sheet
- Common Vulnerabilities and Exposure
- Top 7 Things System Administrators Forget to Do
- 5 htaccess Tricks Every Webmaster Should Know
- Apache htpassword
General
- The Strategies of Software Development
- Wikimedia servers
- Scaling Server Setup for Sharp Traffic Growth?
- Code Generation: The Real Lesson of Rails
- ::SE-CURE AG::. Publications of Hans Sassenburg:
- Methods GET and POST in HTML forms - what's the difference?
- What is REST?
- A RESTful web service, an example
- PHP Rest SQL
- 10 Ways to Eliminate the Echo Chamber
- Five Ways to Improve Your Perl Programming
- Graded Browser Support
- Make your customers happier with this simple tip
- Don't Use Regular Expressions To Parse IP Addresses!
- Special Characters in HTML
- Programming Books by Programmers
- Google SEO, Webmaster Guideline
- Unicode Code Converter
Database
- MyISAM or InnoDB?
- Database Normalization write something about this!
- Country Table
CodeIgniter
- CodeIgniter Errors
- Validation Callbacks
- CodeIgniter Snippets
- CodeIgniter Model Guidelines
- CodeIgniter, Mod Rewrite (.htaccess and stuffs)
- Using FCKEditor with Codeigniter
- PDF Class
- Controllers in Unlimited Nested Folder
- Session Table
[sql, n]
-- Table structure for ci_sessions
-- ----------------------------
CREATE TABLE `ci_sessions` (
`session_id` varchar(40) collate latin1_general_ci NOT NULL default '0', `ip_address` varchar(16) collate latin1_general_ci NOT NULL default '0', `user_agent` varchar(50) collate latin1_general_ci NOT NULL, `last_activity` int(10) unsigned NOT NULL default '0', `session_data` text collate latin1_general_ci NOT NULL, PRIMARY KEY (`session_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;
[xml, n]
<?xml version="1.0" encoding="utf-8"?><rss version="2.0">
<channel>
<title>Mosques.com.my News</title> <link>http://www.mosques.com.my</link> <description>News for Mosques.com.my</description> <lastBuildDate>Thu, 22 Nov 2007 08:52:50 GMT</lastBuildDate> <language>en-us</language>
<item>
<title>Neque porro quisquam est qui dolorem test</title>
<link>http://192.168.0.115/mosques.com.my/index.php/news/details/2</link>
<guid>http://192.168.0.115/mosques.com.my/index.php/news/details/2</guid>
<pubDate>20 Nov 2007</pubDate>
<description><![CDATA[ Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Proin tincidunt. Nam a justo.
Mauris cursus erat consequat lacus. Pellentesque consectetuer nulla et dui. Nam pede nisi, facilisis in, gravida et, euismod ac, dui. Aliquam euismod dignissim ipsum. Nunc at massa non dolor vulputate feugiat. In scelerisque, lacus nec gravida elementum, nisl magna sodales sem, nec congue dolor sem nec magna. Vestibulum et nulla id magna viverra blandit. Aenean in dui vitae magna aliquam molestie. Sed metus. Nulla condimentum dignissim dolor. Nunc ultricies nibh non elit. Aliquam dapibus, enim in... ]]></description>
</item>
</channel>
</rss>
Example
[php, n]
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?>
<rss version="2.0">
<channel>
<title>Masjid & Surau - View Events Listing</title>
<link><?php echo site_url('events/view_list'); ?></link>
<description>test List of entry for Events</description>
<language>en-us</language>
<?php if(getstr($events_list)) {
foreach($events_list->result() as $row)
{
?>
<item>
<title><?php echo $row->name; ?></title>
<link><?php echo site_url('masjid/details/' . $row->masjidID); ?></link>
<pubDate><?php echo date('d M Y', $row->timecreated); ?></pubDate>
<description><?php echo truncate($row->description); ?></description>
</item>
<?php
} }
?> </channel> </rss>
Delphi
CSS
- CSS Snippets
- CSS Best Practices
- 7 CSS Hacks you can’t live without
- Printing Web documents and CSS
- 5 Popular Speech Bubbles
- Blueprint, A CSS Framework
- The easiest way to PNG support in IE6
- IE Bugs Exposed!
- Ten CSS tricks you may not know
- CSS Collections - Tweako
- CSS Optimization: Make Your Sites Load Faster for Free
- The IE6 Three Pixel Text-Jog
- How To Attack An Internet Explorer (Win) Display Bug
- CSS Horizontal Center Absolute Positioning and Relative Positioning
- 10 Quick Tips for an Easier CSS Life
- CSS Impress (Showcase Gallery)
- CSS Gallery Roundup
- Faux Column CSS Layouts
- Tableless Form
- CSS+Javascript Fancy Menu
- CSS Hundred (100%) Height
- Making IE 5.5+ use position: fixed;
- Position is Everything!
- Brainjar - CSS Positioning
- Vertical Centering Using CSS
- 53 CSS-Techniques You Couldn’t Live Without
- Printing table headers on every page
- IE problem: gap before background image after div and before table
Try adding a style for that image and put display: block; inside it. Images by default are treared as inline elements, leaving space for the descenders of letters below them. Making them block takes that away. That should take care of it.
- Bottom Corner of A Box - Elated
#container {position: relative; width: 100%; height: 125px;}
#copy {position: absolute; right: 10px; bottom: 10px;}
<div id="container">
<div id="copy">
© ELATED 2006
<div>
<div>
- IE7 CSS Hack
[css,n]
p
{
border:1px solid green; /* works in all */
*border:1px solid red; /* targets IE6 and 7 */
_border:1px solid blue; /* targets IE6 */
/* IE7, IE8 */
#veinte { color/*\**/: blue\9; }
}
- More info on CSS hacks, Browser Specific Hacks
Joomla
Perl
PHP
- PHP:Calculating Age
- PHP Captcha
- PHP UTF-8 Cheatsheet
- PHP String Function for UTF-8 characters
- PHP:Truncate Text
[php, n]
<?php
$str = 'مرحب';
$str2 = 'MOHD KHAIRUL ANUAR';
echo mb_convert_case($str1, MB_CASE_LOWER, "utf-8");
echo mb_convert_case($str2, MB_CASE_LOWER, "utf-8");
?>
- Improving website security - Debian Administration
- Authentication OWASP
- Secure Programming for Linux and Unix HOWTO
- Practical PHP Programming
- PHP Security from the Inside
- Zend PHP Tips & Tricks
- PHP and Templates
- Template Engines
- Function to get the name of a given variable
- Upload Class - Lots of functions
- PHP and Ajax Shell Console
- PHP Sessions Management Class (with MySQL backend)
- Random Image Rotation
- PHP Recipes
- PHP Logging Class
- creating excel file with PHP
Drupal
nuSOAP
Python
- Python Unicode HOWTO
- The Python Cheese Shop is a repository of software for the Python programming language.
- Beautiful Soup
- Pylons
- SQLalchemy
- Mako - Templates
- Python Paste
- 50 Python Modules
Compiling a python source code to bytecode
[python,n]
import py_compile
py_compiile.compile('filename')
Pylons
- Apache and mod_proxy for Pylons
- Pylon Scale?
- Can you help me understant Web Development?
- Application Setup and Eggs
- Packaging and Deployment
Django
Linux
- Archive Using Tar
tar cvzf foo.tgz *.cc *.h
- To extract a tar.bz2 file, use the command (note the j option)
tar -jxvf filename.tar.bz2
- To extract a tar.gz file, the the command (note the z option)
tar -zxvf filename.tar.gz
- Get the amount of CPU (FreeBSD too)
dmesg grep cpu
- Installing AdobeAIR
- Download the installer - sudo chmod +x AdobeAIRInstaller.bin - sudo ./AdobeAIRInstaller.bin
- Know which distribution you're using
1. dmesg | head -1 2. cat /proc/version 3. cat /etc/issue
Oracle
- Show a list of tables
SELECT * FROM cat;
- Limit the query
WHERE ROWNUM <= 5
MySQL
mysql -p -h DBSERVER dbname < dbname.sql
[sql,n]
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON tablename.* TO 'monty'@'localhost' IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
Add new field to a table
[sql,n]
ALTER TABLE contacts ADD email VARCHAR(60) AFTER name;
Random Records
[sql,n]
SELECT * FROM tablename ORDER BY RAND()
Drupal
- Search: an internal site search system
- Configuring cron jobs
- Drupal Handbook
- Using open source software to design, develop, and deploy a collaborative Web site
- Theming Overview
- Using Theme to Override Functions
- Regions in PHPTemplate
Flash
ActionScript 3.0
Iterating through array, simulate foreach
[actionscript,N]
var artist_id:Array = new Array();
for (var key:String in artist_id){
trace("array[" + key + "] = "+ artist_id[key]);
}
- Flasm - SWF Assembler & Disassembler (decompiler)
- Use Flash's MovieClipLoader Class(Textsnippet)
- Flash: fadout() And fadein() Functions
- Alternatives to onEnterFrame to detect programmatic changes?
- Including external JPGs (or SWFs) in a Flash movie
- gotoAndLearn() - Flash Tutorials
- Fade Image Sequence
- Using the MovieClipLoader (first of two tutorials)
- Actionscript Dictionary
- TextField.styleSheet
- Understanding the Movie Clip Architecture - Part 1: The Almighty Movie Clip
- Tile-based Games
- Senocular Actionscript Library
- Fade movieclip (MX)
- gotAPI - Reference Lookup Services
- Fade Image Sequence
- How to Convert Milliseconds to Minutes and Seconds
- Loading an external mp3 file with ActionScript
- All About Flash and PHP
- Using Flex 2 and AMFPHP
- PASSING VARIABLES FROM HTML TO FLASH VIA FLASH VARS
- Getting Expressive with Flash Professional 8
- Kirupa - Using the Tween Class, Part II
- Applying Filters Programmatically in Flash 8
- Wikivid
- Flash 8 Documentation
- How to correctly insert a Flash into XHTML
Javascript
- Top Javascript Frameworks
- Javascript Crunchinator
- Handling Checkboxes, Radio Buttons and Select Options in jQuery
This utility can be used to reduce the size of JavaScript source code in a file. It uses some simple parsing and regular expressions to remove comments and unnecessary white space in the script code. Depending on your style of coding, it can produce significant savings in terms of file size.
- Emprise JavaScript Charts v1.0 Release
- Submitting Forms with Links
- DOM nodes and tree
- Javascript DOM
- Event Compatibility Tables
- Advanced JavaScript Scrolling Detection <- Not much, but a little bit of info.
- Javascript scrolling position
Need NS6 equivilant of ScrollTop or pageYOffset
var scrollAmount = window.pageYOffset ? window.pageYOffset : document[(document.compatMode == 'CSS1Compat') ? 'documentElement' : 'body'].scrollTop;
Pitfalls
From The 7 Deadly Sins of Javascript
- Validating user input
- Popping faux windows
- You cannot bookmark, print, minimize, maximize, or organize them, but they sure do look real.
- Striping tables like a Zebra
- Floating or flying widgets
- Dragging and dropping
- Retrieving the date and time
- Ignoring the rogue error
- Comma Caused Coruption
- The adulterous "this" can change what it refers to.
- Identity Theft
- String replace only replaces the first occurrence
- MouseOut sometimes means MouseIn
- ParseInt scoffs at your base ten numbering system
- for loops over everything including the kitchen sink
- Event Handler Pitfalls
- Focus Pocus
Best Practices
From Javascript Toolbox
- Always use 'var'
- Feature-Detect rather than Browser-Detect
- Use Square Bracket Notation
- Avoid 'eval'
- Reference Forms and Form Elements Correctly
- Avoid 'with' statements
- Use onclick in Anchors instead of javascript Pseudo-Protocol
- Use the unary + operator to TypeConvert to Number
- Avoid document.all
- Don't use HTML comments in Script Blocks
- Avoid cluttering the global namespace
- Avoid syn 'Ajax' calls
- Use JSON
- Use Correct <script> Tags
jQuery
- jQuery Cookbook
- jQuery ContextMenu (right click thing)
- jQuery Ingrid (Datagrid)
- jCarousel Lite
- Image Gallery using jQuery, Interface & Reflections
- jqUploader - jQuery plugin for file upload and progress bar
- Multiple File Upload for jQuery
- jQuery Corners
- JQuery Curvy Corners
- Ajax Form Builder - Quite neat. Be I could see the nightmare of maintaining stuff like this.
- jQuery Ajax File Upload - simple but not multiple upload
- jqUploader - Simple uploader, nothing interesting.
- AutoCompleter Tutorial
- Thickbox - example dynamically load a thickbox
tb_show("test","ajaxLogin.htm?height=100&width=250");
[javascript, n]
jQuery.preloadImages = function()
{
for(var i = 0; i<arguments.length; i++)
{
jQuery("<img>").attr("src", arguments[i]);
}
}
$.preloadImages("over.png", "out.gif");
- Preload Image
[javascript, n]
var image_ori = new Array();
function swap_image(name, swapImage)
{
image_ori[name] = $('#'+name).attr('src');
$('#'+name).attr('src', 'menu/' + swapImage);
}
function restore_image(name)
{
$('#'+name).attr('src', image_ori[name]);
}
[html, n]
- Image Loaded
[javascript, n]
$("img:first").load(function (){
alert("Image loaded!");
});
Photoshop
- 53 Killer Photoshop Illustrator Effects and Tutorials
- 45 Photo Editing Tutorials for Photoshop
- Photoshop Labs
- Create a software Box
- Photoshop Tutorials
Ajax
- Prototype Docs
- Yahoo! User Interface Library
- Yahoo! Design Pattern Library
- Ajax loading gif generator
- The Hows and Whys of Degradable Ajax
- Downloadable AJAX Galleries, Slideshows and Effects
- Flash Image Scroller
- XMLHttpRequest Caching Test
- Web2.0 Graphic and CSS Generators
Subversion / SVN
- FSFS vs Berkeley DB
- Create a repository with filesystem type
[shell, n]
svnadmin create --fs-type=fsfs "path/to/repo"
- Adding a file to commit recursively
[shell, n]
svn st | grep "^?" | awk '{ print $2}' | while read f; do svn add "$f"; done
- Changing repository location
[shell, n]
svn switch --relocate svn+ssh://172.17.244.6/var/svn/itnm_tms svn+ssh://218.208.98.67/var/svn/itnm_tms
The first url is the old one.
Web 2.0 Stuffs
CSS
I'm still learning about css. Organisation of css contents is important less I get lost in its sea of ids and classes.
5 CSS Tips
5 steps to CSS heaven
Full Fledged CSS Example
Sample
/* Design & Code (c) Company Name, Inc. */
html, body { padding: 0; margin: 0; }
body {
font: normal 12px/1.5em "Lucida Grande", "Verdana", sans-serif;
background: #fff; }
/* Headings H1-H6 */
h1 { }
h2 { }
h3 { }
h4 { }
h5 { }
h6 { }
/* Paragraph and Link Styles */
p { }
p a { }
/* Lists and Navigation */
Resources
- A Cost Analysis of Windows Vista Content Protection
- Preventing Access
- URL Encoding
- MediaWiki User's Guide.
- Trac on Windows Standalone

