I had to convert set of HTML files to XHTML, obvious google result was HTMLTidy. Since I work on Microsoft Technologies I wanted a C# library which I can use. I came across an implementation at devx.

Since we had very limited time, we started looking for other options. Luckily Notepad++ which we use very often had a HTML Tidy plugin and it served to be effective.

Just go to TextFX>TextFX HTML Tidy>Tidy Convert to XHTML

and you have a neatly aligned XHTML at your had…! Isn’t that a time saver…?

My friend asked me to help him import all his mobile contacts from an old Nokia E50 to his all time favorite Motorola V8. I vaguely said “Google man u ll get something to import” . It did not take long for me to realize that he had done his homework and this is an Assignment for me…. :(

Later I spent hours googling for a solution but nothing worked. How do we do it…? That was the time I cursed all mobile companies saying “Why can’t there be a standard format? why should they follow their own format..?”… But since cursing does not solve the problem at hand, I had to wear my coding hat and start some real stuff.

First thing I found out was VCF is a text file with a standard specification, which is widely accepted. Check this wikipedia link for more info.

I had to read the CSV file generated from his Nokia E50 (Of course with the the help of Nokia PC Suite) and convert all contacts to vCard files so that it can be imported as a contact in Motorola V8.

The tool works for a specific CSV header; I have included the header also along with the tool for your reference.

So if you ever had a trouble importing Contacts from Nokia phone to another brand, this application probably should shove it right away.

 

Download the CSV to VCF Writer

And do not forget to share your views on the tool.

 

Hi there… :P i am back with a new application again. This time I have a desktop client for sending SMS through way2sms.com. All I wanted is a fast and tiny desktop application which can send SMS on the fly.

I was fed up with the load of ads that are thrown at us by sites such as way2sms. Now you can avoid all those unwanted ads and slow loading time with this small desktop application.

The application is coded in C# 2.0 and hence you will need to install .Net Framework 2.0 on your computer for this application to work.

You will need a way2sms account which you can get by registering at www.way2sms.com and of course an internet connection.  Enter your userid/phone number and password, type in the mobile number to which you want to send the message along with the message body and hit “Send”…. That’s all it takes…!

way2sms

Alternatively, you can maintain your contacts in the list and import them to the “send to” list.

This tool does not come with any warranty as such and use it at your discretion.

Download Now.

And enjoy SMSing directly form your desktop in a super fast pace :P

This is your chance to win an online invoicing software. Just point your browser to this link. Just follow the simple instructions and three lucky winners will get licence to this software.

What is Invoicera?

Invoicera is an online billing software which fortifies every individual and helps you to channelize your revenue without commencing any invoicing errors. The software comes with many features, many of them are listed below and many more are yet to come, which every freelancer or an entrepreneur will crave for.

Features:

  • Report Generation
  • Automatic Invoicing for Recurring/Regular Billing
  • Export and Import your Documents
  • Multiple Payment Gateways
  • Staff Management
  • Create Professional Quotes and Estimates
  • Data Back-up
  • Multiple Currency Support
  • Alerts and Reminders
  • Invoice Scheduling
  • Late Fees Payment
  • Invoice/Estimate As Attachment

Go try your luck befre someone else grabs it….!

Click Here to participate

Here is a small application that can feed realtime BSE data to AmiBroker. I was looking for a tool that can download RT data from net and feed to AmiBroker. But none could satisfy my need. So I built one for myself. I am giving away the first Beta Version of FeedAB which downloads BSE data from www.money.rediff.com and feeds to Amibroker for further analysis.

fedAB

There are few known bugs as of now, which I couldn’t fix due to time constraints. But the application works fine for normal use.

Download FeedAB 1.0 Beta (48 KB)

Requires .Net Framework 2.0 which can be downloaded from this link.

For Real Time NSE data please check my earlier post.

Happy Trading :)

Regular Expressions are a always tricky and sometimes they stir the mind. I was constructing a regular expression for following conditions:

- String should min of 3 characters and max of 6 characters

- First three characters can be [a-zA-Z]

- Either of 4,5 or 6th character should be [0-9]

- Remaining characters can be [a-zA-Z] but not [0-9]

This query troubled me like anything. I tried so many combinations but could not make it. The main problem was making sure that there is one number in the 4,5 or 6th position and limiting it to a max of 6 and min of 4 characters in length.

I came across a guy who has dveloped an online RegEx Tester and he solved the problem in no time. You can use the online RegEx Tester thru this link.

So finally the RegEx is as follows:

^(?=.*[0-9])(?!.*[0-9].*[0-9])(?!.*[0-9].*[0-9].*[0-9])[a-zA-Z]{3}[a-zA-Z0-9]{1,3}$

The above regex works for the specified condions and mes sure that there is only one digit in the string.

Following is an analysis of the same:

The RegEx two blocks: first block checks whether a certain pattern exists in the whole string and second block checks for [a-zA-Z] three times and [a-zA-Z0-9] one to three times.

^ and $ make sure that the pattern is verified from beginning to the end of the given string.

The first block:

(?=.*[0-9])(?!.*[0-9].*[0-9])(?!.*[0-9].*[0-9].*[0-9])

The ?= looks ahead in the whole string whether there exists any character of [0-9]. The ?! looks ahead in the whole string whether there is not two or three [0-9]. That means this block makes sure that the whole string contains only one digit [0-9] and not more than that. But it will not verify where exactly the [0-9] should come. It will be taken care by the second block.

The second block:

[a-zA-Z]{3}[a-zA-Z0-9]{1,3}

In the second block, first part verifies whether the first three characters are [a-zA-Z] once it is satisfied, second part checks the next 1-3 characters contain [a-zA-Z0-9].

Isn’t that a wonderful RegEx.. :)

You can visit this link for a quick reference on Regular Expressions.

If you have any regular expression that is eating your head then probably this forum can solve it.. give it a try.

As we work on Visual Studio day in and day out, knowing keyboard shortcuts will always save time. I was wondering is there any way Visual Studio Can display the list of keyboard short cuts it supports. Well there is a way..!

Go to Tools>Options dialog box. On the left pan select Environment>Keyboard.

On the right pan you can see List of commands Visual Studio supports and Shortcuts for Selected command. You can filter the list by entering filter string such as “debug.quickwatch” in the “Show commands Containing” box.

You can also download a poster containing all VS shortcuts from this link.

I found a better a way to modify the HTML in ASP.Net just before it is sent to the client. Here is the code:

public partial class CustomRender : System.Web.UI.Page
{
 HtmlTextWriter textWriter = null;
 StringWriter stringWriter = new StringWriter();

 protected override HtmlTextWriter CreateHtmlTextWriter(TextWriter tw)
 {
 textWriter = base.CreateHtmlTextWriter(tw);
 return base.CreateHtmlTextWriter(stringWriter);
 }
protected override void Render(HtmlTextWriter writer)
 {
base.Render(writer);
 string htmlCode = stringWriter.ToString().Replace("[CurDateTime]", DateTime.Now.ToString());;

 textWriter.Write(textWriter);

 }
}

I used the same .aspx file we used in the last example.

There can be scenarios in which you will have to make some modifications to the HTML code generated by ASP.Net engine just before it is sent to the browser.

Here is how you can do it.

Create a new ASP.Net WebForm. Add a label control and set the Text as [CurDateTime]. Following is the code.

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomRender.aspx.cs" Inherits="CustomRender" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
 <title>Untitled Page</title>
</head>
<body>
 <form id="form1" runat="server">
 <div>
 <asp:Label ID="lblTest" runat="server" Text="[CurDateTime]"></asp:Label>
 </div>
 </form>
</body>
</html>

In the Code-behind file, override the Render() event and make the changes to the Html as required. Following is the code for the same.

protected override void Render(HtmlTextWriter writer)
 {
MemoryStream mStream = new MemoryStream();
 HtmlTextWriter htmlWriter = new HtmlTextWriter(new StreamWriter(mStream));

 base.Render(htmlWriter);
 htmlWriter.Flush();
 mStream.Position = 0;

 StreamReader reader = new StreamReader(mStream);
 string htmlDump = reader.ReadToEnd();
 reader.Close();
 htmlDump = htmlDump.Replace("[CurDateTime]", DateTime.Now.ToString());
 Response.Write(htmlDump);

 }

The code replaces the Text [CurDateTime] with the current date and time in the HTML and renders it in the browser.

This is just an example you can go ahead and do as many tweaks as you want..!

Long back I had written an article on typing text in indian languages. Check this link.

Now with Bookmarklets Google has made it much simpler. Just follow the tutorial provided by google and you will be able to type in Indian language on any web site without hassles.  You will have to add a Javascript to your browser favorites and enable the bookmarket for the website. Once it is enabled you will get a message saying the same. Once done you can happily type in your language on the website…!

As of now google is provididng bookmarklets for Hindi, Kannada, Malayalam, Tamil, Telugu and Arabic.

Check this link to enable it for your browser.

Next Page »