Tuesday, February 02, 2010

ntfs-3g & FUSE

wikipedia

NTFS-3G is an open source cross-platform implementation of the Microsoft Windows NTFS file system with read-write support. NTFS-3G uses the FUSE file system interface, so it can run unmodified on many different operating systems. It has been reported to work with Linux, Mac OS X, FreeBSD, NetBSD, Solaris, BeOS, QNX and Haiku. It is licensed under either the GNU General Public License or a Commercial license. It is a partial fork of ntfsprogs and is under active maintenance and development.


www.ntfs-3g.com

Filesystem in Userspace (FUSE) is a loadable kernel module for Unix-like computer operating systems, that allows non-privileged users to create their own file systems without editing the kernel code. This is achieved by running the file system code in user space, while the FUSE module only provides a "bridge" to the actual kernel interfaces.

Released under the terms of the GNU General Public License and the GNU Lesser General Public License, FUSE is free software. The FUSE system was originally part of A Virtual Filesystem (AVFS), but has since split off into its own project on SourceForge.net.

FUSE is available for Linux, FreeBSD, NetBSD (as PUFFS), OpenSolaris, and Mac OS X. It was officially merged into the mainstream Linux kernel tree in kernel version 2.6.14.


Volume Snapshot Service (VSS) Shadow Copy

Wikipedia
Shadow Copy (also called Volume Snapshot Service or VSS), is a technology included in Microsoft Windows that allows taking manual or automatic backup copies or snapshots of data, even if it has a lock, on a specific volume at a specific point in time over regular intervals. It is implemented as a Windows service called the Volume Shadow Copy service. A software VSS provider service is also included as part of Windows to be used by Windows applications. Shadow Copy technology does not require the file system to be NTFS, although it needs one NTFS volume for the shadow copies to be stored.

commands:
  vssadmin list providers
vssadmin create shadow /for=c:

kboot & kexec

http://kboot.sourceforge.net/

kboot is a proof-of-concept implementation of a Linux boot loader based on kexec. kboot uses a boot loader like LILO or GRUB to load a regular Linux kernel as its first stage. Then, the full capabilities of the kernel can be used to locate and to access the kernel to be booted.
kboot integrates the various components needed for a fully featured boot loader, and demonstrates their use. While the main focus is on basic technical functionality, kboot can serve as a starting point for customized boot environments offering additional features.

kboot is currently only tested on the ia32 (i386) platform. Some of its features include:

  • supports most file systems and device drivers the Linux kernel supports
  • transparent navigation in the file system of the booted system, including auto-mounting guided by /etc/fstab
  • network configuration is either manual or with DHCP, including name resolution via /etc/hosts and DNS
  • access to file systems via NFS
  • access to files via HTTP, FTP, and TFTP
  • inbound and outbound SSH (to and from the boot loader)
Besides that, it's easy to add more features. The most important missing features are:
  • no pretty user interface yet
  • no integration of RAID, LVM, etc.
  • needs to support more platforms, in particular amd64
  • file name completion only works for commands and kernels
  • does not boot legacy operating systems yet

kexec from wikipedia

kexec (kernel execution) is a mechanism of the Linux kernel that allows "live" booting of a new kernel over the currently running one. kexec skips the bootloader stage (hardware initialization phase by the firmware or BIOS) and directly loads the new kernel into memory, which starts executing immediately. This avoids the long times associated with a full reboot, and is useful on systems with high availability requirements, where minimizing downtime is of essence.

While feasible, there are two major challenges in implementing a mechanism such as kexec: first, the new kernel will overwrite the memory of the currently running one, while it is still executing. Second, the new kernel will usually expect all physical devices to be in a well-defined state, as they are after system reboot, when the BIOS (or firmware) resets them to a "sane" state. Bypassing a real reboot means devices may be in an unknown state, and the new kernel will have to recover from that.

  1. Reboot Linux faster using kexec

Apache Lucene

Wikipedia:

Apache Lucene, while suitable for any application which requires full text indexing and searching capability, Lucene has been widely recognized for its utility in the implementation of Internet search engines and local, single-site searching.

At the core of Lucene's logical architecture is the idea of a document containing fields of text. This flexibility allows Lucene's API to be independent of the file format. Text from PDFs, HTML, Microsoft Word, and OpenDocument documents, as well as many others can all be indexed so long as their textual information can be extracted.

COW : Copy on Write

From Wikipedia

Copy-on-write
(sometimes referred to as "COW") is an optimization strategy used in computer programming. The fundamental idea is that if multiple callers ask for resources which are initially indistinguishable, they can all be given pointers to the same resource. This function can be maintained until a caller tries to modify its "copy" of the resource, at which point a true private copy is created to prevent the changes becoming visible to everyone else. All of this happens transparently to the callers. The primary advantage is that if a caller never makes any modifications, no private copy need ever be created.

.....

The COW concept is also used in maintenance of instant snapshot on database servers like Microsoft SQL Server 2005. Instant snapshots preserve a static view of a database by storing a pre-modification copy of data when underlaying data are updated. Instant snapshots are used for testing uses or moment-dependent reports and should not be used to replace backups.

COW may also be used as the underlying mechanism for snapshots provided by logical volume management and Microsoft Volume Shadow Copy Service.

Sunday, January 31, 2010

iPad use possibilities

Non 3G Version
  1. eBooks
  2. ePrint outs (Map direction)
  3. Digital Photo Frame
  4. Replace Portable DVD Player
  5. Replace netbook
  6. skype phone
  7. Portable Internet Browser
  8. Product presentation in exec room / coffee shop
  9. Keynote speaker/teleprompter
  10. larger screen for video camera/ on location editing
  11. Music player
  12. Instant ON can replace laptop - check email
  13. Multi touch - for artist/painters/ white boarding
  14. Travel kit - replacement for laptop

Sunday, January 10, 2010

perl JSON API http

  1. sudo perl -MCPAN -e 'install JSON'
  2. sudo perl -MCPAN -e 'install JSON::XS'
  3. sudo perl -MCPAN -e 'install WWW::Mechanize'
http://beerpla.net/2008/03/27/parsing-json-in-perl-by-example-southparkstudioscom-south-park-episodes/



#!/usr/bin/perl -w

use strict;
use JSON;
use LWP::Simple;

fetch_json_page("http://www.crunchbase.com/v/1/company/yousendit.js");

sub fetch_json_page
{
my ($json_url) = @_;
eval{
my $content = get($json_url);
my $json = new JSON;

# these are some nice json options to relax restrictions a bit:
my $json_text = $json->decode($content);
print $json_text->{phone_number} . "\n";
};
# catch crashes:
if($@){
print "[[JSON ERROR]] JSON parser crashed! $@\n";
}
}

Tuesday, January 05, 2010

mysql backup

http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html

MySql data file copy is a valid process for MyISAM engine!!

  1. Making Backups by Copying Table Files
  2. Making Delimited-Text File Backups
  3. Making Backups with mysqldump or mysqlhotcopy
  4. Making Incremental Backups by Enabling the Binary Log
  5. Making Backups Using Replication Slaves
  6. Recovering Corrupt Tables
  7. Making Backups Using a File System Snapshot


Saturday, November 21, 2009

perl <> mysql


#!/usr/bin/perl
use DBI;
use DBD::mysql;

#use strict;
$user="user";
$password="password";
$database="database";
$dsn="dbi:mysql:$database:localhost:3306";
$dbh = DBI->connect($dsn, $user, $password,
{ RaiseError => 1, AutoCommit => 0 });
$sth = $dbh->prepare("SELECT ID,Score1 FROM STUDENT_RECORD1");

$sth->execute();

while ( @row = $sth->fetchrow_array ) {
print "@row\n";
}

Wednesday, September 02, 2009

Thursday, August 20, 2009

MySql useful tips

mysql -u -p -e
"select
TABLE_NAME, COLUMN_NAME, COLUMN_DEFAULT,
IS_NULLABLE, DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH,
NUMERIC_PRECISION, NUMERIC_SCALE,
COLUMN_TYPE, COLUMN_KEY, EXTRA,
PRIVILEGES, COLUMN_COMMENT
from information_schema.columns
where
TABLE_SCHEMA = ''
order by TABLE_NAME, COLUMN_NAME "
> tbl


select TABLE_NAME, TABLE_ROWS from information_schema.TABLES where TABLE_SCHEMA = '' order by TABLE_ROWS ;



Monday, August 17, 2009

Address validation service

http://www.melissadata.com
  1. Address Validation (Makes sure the suite number is input - else throws error)
  2. ZIP, Geo code, phone,
  3. List of streets in zip
  4. real estate data
  5. house numbers on street
  6. Zip codes in radius

Sunday, August 16, 2009

interesting lists / templates that can be converted to content

List of waerfalls in Tamilnadu
List of Forts in India
Pin Codes of Indian cities - map with GPS co-ordinates(?)
STD codes in India - With GPS
Railway Stations in India with GPS
Highways of Tamilnadu & India
Choleswara temples with gps location

List of spices (?) used in Tamil friends home(s) and what dish it is used, where to purchase, how much (tricky)
Tamilnadu transportation routes: example http://www.tn.gov.in/transport//routes/routes_salemghat.htm

bluetooth info

Here is the list of Bluetooth Chipset Vendors (2002 list)
  1. Agere Systems
  2. Alcatel
  3. Atmel
  4. CSR
  5. Conexant
  6. Ericsson ROK 101 007/8
  7. GCT Semi
  8. Infineon
  9. Microtune / Transilica
  10. Motorola
  11. NewLogic
  12. Oki
  13. Parthus
  14. Philips
  15. Silicon Wave
  16. Spirea
  17. TI
  18. Vaishali
  19. XEMICS
  20. Zarlink

Here are the Bluetooth stacks
  1. Widcomm (Windows)
  2. Microsoft Windows stack (Windows)
  3. EtherMind stack (Windows)
  4. Toshiba stack (Windows)
  5. BlueSoleil (Windows)
  6. BlueZ (Linux)
How about putting bluetooth 2.0 in a chip > dongle for security.

small cap voice

http://smallcapvoice.com/
100K per year for participant!! Good money infact.

IT PIO

http://www.it-pio.org/ an organization for

~ 100 people assembled in Cupertino for Aug 15th, 2009 celebrations.
Information Technology - People of Indian Origin

Friday, August 14, 2009

java download location

http://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/VerifyItem-Start/jdk-6u16-windows-i586.exe?BundledLineItemUUID=Z1RIBe.p_ooAAAEj2BJSexxh&OrderID=rxdIBe.pQlAAAAEjzhJSexxh&ProductID=bhJIBe.ptbMAAAEishcTvuC_&FileName=/jdk-6u16-windows-i586.exe

Thursday, August 13, 2009

os / browser testing

Couple of aspects / challenges to solve
  1. There are tones of possible OS/Browser/plugin configurations. Maintaining each of them can be costly and resource intensive
  2. Supporting closed source stuff like Windows, Apple can be costly just for the price of OS alone
  3. Open Source (Linux) has the challenge of variety -
  4. Blackberry, iPhone OS, Symbian OS - nooo don't open that Pandora Box
  5. How do we make Windows XP multiple concurrent users
  6. How to remotely access the desktop with lowest network bandwidth cost
  7. How to have no/minimal client side setup
  8. How deal with variety in clients (Windows, Mac, Linux, IE, FireFox, Safari....) accessing our solution
  9. How to ensure (and verifiable?!) privacy of customer installation
  10. How to get the first 1-100 customers. The next 10,000 can be easy (as each of them want to do it on their own - wouldn't they)
  11. How to price for casual one time user (read as freelance web site designers)
  12. How to prevent folks using us as launch pad for attacks

What are the comparable technologies out there we can adopt
  1. Virtual machines
  2. VPN
  3. WebEx (any solution from Citrix? I believe yes)
  4. litmusapp.com
  5. cloud computing
  6. http://www.soti.net/
  7. http://browsershots.org/
  8. http://www.browsercam.com/
  9. http://webworkerdaily.com/2008/01/07/is-your-html-good-enough-7-browser-testing-services/
  10. http://tredosoft.com/Multiple_IE
  11. http://www.xenocode.com/browsers/
  12. xWindows - http://www.straightrunning.com/XmingNotes/
  13. http://saucelabs.com/
How about I operate on one os/browser - but the same http response is rendered on different os on multiple screens in front of me...

Wednesday, August 05, 2009

older technologies

http://www.htlchennai.com/ci.htm
http://www.htlchennai.com/uci.htm
http://www.htlchennai.com/ntu.htm
http://www.htlchennai.com/se.htm
http://www.htlchennai.com/maxxl.htm
http://www.ptc.com/products/cadds5 - http://en.wikipedia.org/wiki/Computervision

old computing devices

  1. Early calculator - http://www.voidware.com/calcs/fx39.htm quickly switched to the LCD version (due to un-affordability to buy batteries) http://www.voidware.com/calcs/fx82.htm
  2. Early computer which processed Fortran 77 code : http://en.wikipedia.org/wiki/IBM_1620 actual input using http://en.wikipedia.org/wiki/Card_punch device.
  3. My first geeky computer (Microprocessor Kit) http://en.wikipedia.org/wiki/Microprofessor_I
    1. Storage was primarily RAM (Cassette recorder - expensive to own) - input the machine code every time powered up
    2. 8 KB ROM (EPROM) that we would erase using UV light and reuse
  1. Early desktop computer ran on Zilog's Z80 (64KB RAM) and 8 inch floppy drive with OS being CP/M (MS DOS first version had many resemblance to CP/M)

Blog Archive