Wednesday, October 24, 2012

A humble article on .NET Encryption

Several years back, I had written a small review on a .NET Encryption library called 'XCrypt'. I have also been recommending this library to most of them in discussion forums since it has an elegant presentation and wrapper on the cryptography layer of .NET base class library. Unfortunately, the original article referred in the article has an update date of 2003 which was turning back several users. Today I saw another writer publishing an article about two additional encryption algorithms with their implementation in C#. It just struck me, why shouldn't I take a proactive stand in putting the new kid into XCrypt and giving it a new lease of life.

My first humble initiative is here (a query to CodeProject webmaster) and as per their directions, I have written the new XCrypt article as an alternative proposal to the classic legendary XCrypt. I am glad to have done a small service to the legendary encryption library of .NET.

The URL for the new article is available here. Incidentally the accompanying test application in the application turns to be one of my maiden venture in Windows forms programming. Hence do feel to share your observations, bug reports, healthy comments and constructive criticisms towards the same. Due to pressures of time, you may not be elected for a personalized response but rest assured that due diligence attention would be given your suggestion with an appropriate feasibility analysis towards incorporating the points in your note.

Tuesday, October 16, 2012

Umbrella :: Another innovative venture from OpenDNS

OpenDNS, the pioneers in protective family shield and undeniably uncrowned leaders in parental controls and fail-safe fault-free non-authoritative name resolution (DNS) services are ushering in with another innovative service 'Umbrella'.

Stay update for the release notes on Umbrella by subscribing at http://www.umbrella.com/

If you are not using OpenDNS yet, it is almost akin in writing your personally identifiable information in the notice-board of your community complex. With the amount of 'bad things' that are spread across the Internet, OpenDNS is a must for any computer -- business or personnel. You ought not go online without fortifying its perimeters with OpenDNS.

We have also emphasized this thought as part of 'Best Practices for Local Data Organization'.

Saturday, October 13, 2012

Best Practices of Local Data Organization

I was looking at a discussion forum where some one had asked about recovery of data before the hard disk is upgraded. I just thought I would share a related thought on best practices in local (private) computing practices. This can also be applied to our cloud drives like Google, Skydrive and Dropbox.

Once upon a time people used to partition hard drives into C:/ D:/ E:/ and F:/. Optionally because 32 bit computers may not be able to comfortably address larger volumes. Nowadays when you buy a computer from Bestbuy or other stores, it just comes pre-loaded with a default operating system (and I admit it would also be a defunct* operating system) along with a single drive.

*Missing security software, reduced functionality desktop office software.
I would suggest instead of scattering our data all across the computer it is better to follow unix practice in defining our custom root folder (say by username) and narrow down through the same. This way, the separation between system and our application data is distinct. This also helps achieve flexible and seamless backup besides the best data recovery in case of disasters.

An example from my local computer would be:


Besides this the following software must be installed before the computer used for anything including connecting online, playing CD/DVD or any communication of the hardware to the external world.
  1. Install your preferred Anti-Security software in case of Windows. For Ubuntu and Linux users fortify it by appropriately disabling the daemons.
  2. Scotty from WinPatrol (http://www.winpatrol.com/) is the most recommended tool to ensure no application installs or hijacks your computer settings without your knowledge.
  3. Configure your computer's DNS to route through OpenDNS. This ensure safe surfing from malware websites. You may like to refer my previous post on parental control configuration. Following is a a sample block page on my computer for a bad website suggested in Google Search results. I would also suggest a periodic review of your OpenDNS account to ensure safe surfing from your home-office network.

Saturday, October 06, 2012

A Fond Recall of C Program

I was surfing at something yesterday and had a fond recall of C Programming back in 1998 college days. Just wrote a small Hello World online, compiled it and am sharing the same as a fond memory through Gist of GitHub.


#include
main()
{
   printf("Hello World from LavanyaDeepak");
   printf("\n");
}

Wednesday, September 26, 2012

Winner of Enhanced Ip Lookup Account

One of my review posts has been recognized by Ip2Location team and my account has been granted with more look-ups now. I would like to share the message with readers too.

This means, as always committed towards safer internet and my passion towards de-weeding bad shrubs that go in front of me, it helps even more.

Resource File Comparer Tool

A while back to debug at my application for resource file bugs pointed by QA I used to write a console application which reads all the resource files, generate HTMLized Excel file ( :) ) to compare availability of strings and what is causing a particular language setting to behave differently in the application.

Last week, I just had an idea and a bit of time to improve upon this to create a simple (rather very simple) Windows forms application which does the following:


  1. Load the base resource file (System Locale)
  2. Generate a grid containing the key value pairs in the resource file.
  3. List matching other language files into the listbox. 
  4. As and when other languages are chosen, update the grid with the entries from the selected languages.
  5. Indicate missing keys in the grid with a different color.
  6. Provide the legendary Excel Export option as a comma-delimited file.
I have shared the application as an opensource project in Codeplex at this URL:

Sunday, September 23, 2012

Better security on the web

We do visit a lot of websites and a lot of visitors from many parts of the world initiate contact us with through the Internet medium. Optimistically speaking while a good number of visitors are good, there are a few rotten apples too. These ones involve in sabotage by indulging in some sort of spam, phishing, email (aka) cyber harassment of multiple kinds.

We can of course report these to cops. But considering the explosive penetration of Internet and comparing with the limited number of cops they may not be able to do an end-to-end investigation of every piece of case. Hence we can do our basic initiative of research into the visitors details and then equip the cops to act on it using the legal channels of redressal.

One of the valuable and reliable resources that helps tracing websites and emails is Ip2Location (http://www.ip2location.com/), which operates from Malaysia. For every visitor they give 20 lookups of IP address free. For logged on users, a daily lookup of 200 is allowed. And they do have periodic promotional offers like the one running now as illustrated below:



I am sure this is an inevitable tool for anyone for safe use of Internet. Check out and bookmark the website. Another related website I found was: 62NDS CountryIP

Thursday, September 20, 2012

Unix/Linux WhoAmI command in C#

In Linux we have an elegant and quick command to display the currently logged on user. It is called 'WhoAmI'. You can check out the manpage of this command here. I just thought would create a quick and simple C# port of the same and share it with interested users.

The code is a very simple and straight-forward console application and I hope it is also useful for beginners to learn the programming language with ease and fun.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Principal;

namespace LavanyaDeepak.UnixCommands
{
    class WhoAmI
    {
        static void Main(string[] args)
        {
            Console.Clear();

            try
            {
                Console.ForegroundColor = ConsoleColor.Green;
                WindowsIdentity objWindowsIdentity = WindowsIdentity.GetCurrent();
                Console.WriteLine(string.Format("You are currently logged on as {0}", objWindowsIdentity.Name));
            }
            catch (System.Security.SecurityException objSecurityException)
            {
                Console.ForegroundColor = ConsoleColor.DarkRed;
                Console.WriteLine(string.Format("Could not fetch currently logged on user. There was a security error: ", objSecurityException.Message));
            }
            catch (System.Exception objGeneralException)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(string.Format("Could not fetch currently logged on user. There was a general error: ", objGeneralException.Message));
            }

            Console.ReadKey();
        }
    }
}

Saturday, September 08, 2012

Enabling Serverside Includes on WAMP

WAMPS (Windows Apache MySQL PHP with SSL) is a terrific server that you can use on your desktop with a powerful database and amazing webserver with scripting/programming abilities. However the default configuration prevents SHTML pages from being served.

Here is the quickest layman's workaround for the same. Create a simple .htaccess file in the www folder of WAMPs with the following content


# Enable Server Side Includes
Options +Includes

# Configure file extensions for SSI
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

Now create a test page like index.shtml with the following contents:




You should now see a parsed output like below on the browser when requesting the page:

Saturday, 08-Sep-2012 12:18:19 Eastern Daylight Time

Saturday, August 25, 2012

Cross platform blogdrive downloader

Ever since I released the blogdrive downloader using WGET sometime an year back, I have also been receiving steadfast requests for a cross-platform version of the same because WGET is a linux tool and Windows PHP can not make use of the same unless you have some tricky combinations of Cygwin and other tools.

Today I got some time and wrote a quick version of the same using native PHP fopen/fwrite for the benefit of users. It uses a simple jquery to do an AJAX request and keeps saving the file onto a subfolder on the server.

There are a lot of scope for improvements to this 5 minute script. A few of them are:

  1. Show an informative progress bar for the user.
  2. Zip the downloaded contents and stream it to the browser. Then optionally delete (cleanup) the downloaded files.
  3. CAPTCHA security when using this on a hosted platform.
  4. Use Jquery from a CDN instead of having a local version of the script.

Sunday, May 20, 2012

The dire need for perimeter security in for home internet ...

Today whilst I was trying to locate a security products review website, Google suggested two closely rhyming website names.

  1. Astalavista
  2. Astalavista.box.sk
The former seems to be a genuine security portal whereas the latter seems to be an underground malware website hosting keygen/serials and other pirated software material. Fortunately, it was OpenDNS which helped clarified the myth by allowing access to the former and blocking the latter with an error message like below.


Monday, April 30, 2012

ABCPDF-- A choicest PDF library from the software house of WebSuperGo

I have been using a PDF component called ABCPDF which is made by the software organization called WebSuperGo recently. I have been using a diversified set of components to generate PDF include iTextSharp and DevExpress.

Some of the good things I find with ABCPDF are:
  1. Ease of use and cleaner API
  2. The support is straight-forward. You can send out a quick email to infohelp@websupergoo.com. At least I have an experience of receiving back the responses is less than an hour though the committed response time is a day. Mission-critical and business-critical applications can also go in for a platinum support package.
  3. Affordable licensing plans. There is a nominally priced licensing tariff card besides a lucrative licensing strategy for non-profits and hobbyists.
  4. It even supports classic ASP though with a little COM virtualization overhead.
The WebSuperGoo website is also simple, easy to navigate and locate the required information. For sure, it is an imperative library that needs to be in the toolbox for every .NET developer.

WebSuperGo Homepage: http://www.websupergoo.com/
ABCPDF Direct Link: http://www.websupergoo.com/products.htm#pd

[Imported from Blogdrive]Online Virus Scanners

Online Virus Scanners Virus Scanners are no longer difficult to install, tedious to configure. There are easy to use Online Virus Scanne...