November 29, 2010

The important of the Web browser


I could estimate that 90 percent of everything I do on a computer is now in a web browser. Coding is the only thing I don’t do using the browser. But for an example, my wife only uses the Web browser, and she’s a typical everyday computer user.

Web browse is the mostly used program in the recent years with the internet evolution and it is the most important software program of all. Since the focus has been on to the Browser—Google has made a wise decision to release a Computer Operating System (OS) which only focuses on the web browser. Most probably you can see an early preview of their OS in next few weeks.

So it's time now to seriously think about the cloud computing. 

November 25, 2010

Get Color from Hex values in Silverlight

Since Silverlight does not support System.Drawing.ColorTranslator the following method can be used to convert Html Color values to a Color object.


public static Color GetColor(string htmlColor) {
            return Color.FromArgb(255,
                Convert.ToByte(htmlColor.Substring(1, 2), 16),
                    Convert.ToByte(htmlColor.Substring(3, 2), 16),
                    Convert.ToByte(htmlColor.Substring(5, 2), 16)
            );
        }

November 18, 2010

Anywhere, anytime on any device – documents

It was Microsoft’s vision to connect people—anywhere, anytime on any device. However after a decade of their .Net vision, people are connected to each other more than ever—primarily using Social Networks (i.e. Facebook, Twitter etc).

But this post isn’t about Social Network. It’s about taking your documents online or to the cloud, where you can access them from anywhere, anytime on any device. This is the first in a series of posts on how to take your personal computer to the cloud, such as photos, videos, projects, emails etc.

Generally I use four computing devices;
  • Office PC
  • Home PC
  • Personal Notebook
  • Mobile (iPhone)
I write articles, books and business proposals and sometimes I have to work on them regardless of where I am. For example, I could write an article at home and would like to proof read it while I’m travelling. So I use the following setup (please refer to the following diagram) within my four computing devices. More importantly I’m completely independent from those devices, which means I have access to any of my documents from anywhere.


Steps to setup your devices; 
  • Download and install Dropbox(http://www.dropbox.com) in your Home, Office and Personal computers. Also download Dropbox for iPhone.
  • Download and install OffiSync (http://www.offisync.com) in your Home, Office and Personal computers. 
  • Register for Google account (if you don’t have any), this is to use Google docs for your documents. 
  • Create document repository in DropBox’s Private folder—this is where you save your documents.
Let’s create a document and access it from anywhere.
  • Create MS word document and enter some text. 
  • Save the document in DropBox’s Private folder. 
  • Also save the same document to Google docs using OffiSync MS Word plug-in.
  • Now change your computers and browse the relevant folders and your document has been synced with all the computers (Office, Home and Personal).
  • Open Google docs in your iPhone and you can now edit the same document while you are travelling. 
  • More importantly you can access the same document from anywhere—you only required a computer with Internet access. 
I still DO NOT save documents which contains Bank details or Passwords using this method. So I suggest you should do the same. 

Hope this helps and stay tuned for the next post— Anywhere, anytime and on any device – Photos.

November 17, 2010

Using Predicate to filter NSMutableArray

To filter NSMutableArray you could use Predicates in Objective-C. This will returns a new array which matches to the given predicate.


NSMutableArray *list =
    [NSMutableArray arrayWithObjects:@"Mark", @"Balmer", @"Bill", @"Steve", nil];
NSPredicate *listBPredicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] 'b'"];
NSArray *namesBeginB = [list filteredArrayUsingPredicate:listBPredicate];

NSPredicate *listContainsPredicate = [NSPredicate predicateWithFormat:@"SELF contains[c] 'e'"];

NSArray *namesWithE = [list filterArrayUsingPredicate:listContainsPredicate];

listBPredicate will return names which starts in "b" and listContainsPredicate will return all the names which has letter "e".

November 15, 2010

How to save User preferences in iPhone app

Saving user preferences in iPhone app is fairly easy. It work as key/value pairs in NSUserDefaults object.


To save whether user prefers sounds on or off in your application you can do it as the following code block.

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"soundsOn"];

And to retrieve the sounds preferences value;


BOOL soundsOn = [[NSUserDefaults standardUserDefaults] boolForKey:@"soundsOn"];

October 30, 2010

iPhone keeps vibrating and no response

My iPhone suddenly started vibrating for no reason and screen was shut down.

Solution:
Press and hold Lock and Home key for few seconds to reset.

Reason:
I have no idea why this happend.

October 27, 2010

Gmail like User message control in ASP.NET

(Cross-posted on the Extensible-web)


MessageControl is an ASP.NET control which let you create user message like Gmail Application.



This control is part of the XWT toolkit. Please download and read the MessageControl.

Also read the  Code Project article about MessageControl at the following location.

October 22, 2010

PageManager control

I have written a simple article about my XWT toolkit. Please read through and download the samples.

http://www.codeproject.com/KB/webforms/aspnet-pagemanager.aspx

October 20, 2010

jQuery 1.4.3 released

(Cross-posted on the Extensible-web)

jQuery 1.4.3 final version is released. There are some significant enhancement has been done for the entire library, mainly in the performance. Following are some of the new features of jQuery 1.4.3
  • CSS Module Rewrite – Entire CSS Module has been re-written for extensibilit. You can write custom CSS plug-in now to extend the .css() and .animate() functions.
  • Data – There are some enhancement on this area as well. HTML 5 data-attributes, JavaScript object and Events are included in those enhancements.
  • Traversing - The performance of nearly all the major traversal methods has been drastically improved. For example .closest(), .filter() (and as a result, .is()), and .find() have all been greatly improved.
  • Ajax - A few new Ajax features have added. This should be advantage for plugin authors.
  • Events - A convenient shortcut for binding a function that does nothing but return false (preventing the default action and stopping the event bubbling).
  • Effects - All animate methods now support easing. A new property that exposes the rate at which all effects fire (in milliseconds – defaults to 13) also added.
There are much more enhancements for the new jQuery library. You can read in more detail from the following URL.

October 15, 2010

Extensible-Web Toolkit(XWT) RC1 released

Extensible-Web Toolkit(XWT) RC1 released. The toolkit provides simple web controls, framework library for ASP.NET development and built-in integration for jQuery. It will also provide some useful utilities for Web Application developers.

How to create Chrome Notifications

(Cross-posted on the Extensible-web)

Chrome supports Webkitnotifications and Google has done a great job with their notifications for Gmail. This example shoes how to create a recurring notification using JavaScript timer and webkitnotification object.




In order to create a notification the user must first allow notification in their browser. Click on “Allow notification” button in the ASP.NET sample and the permission will be granted.

Following code block will show you how simple is to create a notification object and show it on browser.

notify = window.webkitNotifications.createNotification('iconUrl', 'Extensible-web latest article', 'http://www.extensible-web.com');
notify.show();


Download the full source code.

September 29, 2010

SEO Starter Guide

It's been a while since I haven't posted anything useful. So here is a very good one for Web masters and developers.
Download the Google's SEO guide here

July 27, 2010

How to downgrade VS Solution

To downgrade a Visual Studio solution, follow the steps below.

1. First backup the .sln file
2. Open .sln file in Notepad
3. Modify the Format Version and the Visual Studio edition (i.e. 2008 or 2005) as shown in the following screen capture.

4. Save and close. 



July 25, 2010

Read Sri Lanka news using this Chrome extension

I just created a Chrome Extension to read Sri Lanka news quickly. Please download and install. Its a very simple extension and I've reused some of the sample code. I will update the extension to be more useful in the future--all your comments are welcome.

Get the extension from here:
https://chrome.google.com/extensions/detail/dipjohabhjlfockkahobnnppadhfibah?hl=en

July 15, 2010

DataReader vs DataSet

I've been quite frequently asked by the junior developers about the DataReader and DataSets -- so here it is.

Use DataReader For read-only data. For example, to bind custom object collection the ideal option is the DataReader. It is much faster than the DataSet.

Use DataSet to work on disconnected data. For example, to perform CRUD operations in disconnect like mode use DataSets.

I have written a performance test app for DataReader and DataSet. Download the code. Also I have written/discussed about the DataSets and Custom Collections half decade ago--http://www.ludmal.net/2005/05/datasets-vs-collections.html

Also download the Microsoft Application Architecture Guide.
http://apparchguide.codeplex.com/

Handling keypress event using jQuery

(Cross-posted from the Extensible-web.com blog)
Handling keypress event using jQuery is fairly easy. Download the sample code.

July 13, 2010

missing sentinel in function call

Quick Tip :
If you're getting "missing sentinel in function call" error while compiling objective-c code, check whether you terminate the array with nil at the end of the array declaration.


feelings = [[NSArray alloc]initWithObjects: @"awesome",@"sad", @"happy","confused",@"angry", nil];

July 6, 2010

Using JQuery in your ASP.NET application.

(Cross-posted from the Extensible-web.com blog)

What is JQuery ?
Most of the developers might already know what JQuery is. But for those who don’t, here it is. JQuery is a JavaScript lightweight library which is easy to use for JavaScript functions.

JQuery is very easy to learn and all you need to know its relevant methods and events. You can find the JQyery API reference here and you can also find some samples.

How can we use JQuery in ASP.NET application?
Real easy—if you’re creating ASP.NET app using Visual Studio 2010, then the relevant script files are already included.

For earlier versions of Visual Studio, you need to download the minified version of JQuery library from here and add the file to your project directory. Include the file as script tags in the pages, which requires JQuery.