Showing posts with label tutorial. Show all posts
Showing posts with label tutorial. Show all posts

Tuesday, March 22, 2011

iPhone 3G/2G on BSNL 3G settings and WiFi on BSNL Dataone Speed tests

 

photo

I recently got an iPhone 4 32GB after already being a droid fan for a long time. Now I am torn between the two. Some things are great in the iPhone and other in the HTC Desire running Android 2.2.

And to top the cake with a cherry, BSNL recently launched 3G in my home town, Dehradun. I went thru the whole bureaucratic red tape and got a prepaid 3G SIM for Rs 180 (120  + 60) thats gives me Rs 50 talktime and 500MB data for one month. Good enough for a test run.

1k7loAfter dealing with the minisim - microsim fiasco, which was a tough thing to sort out in itself, I got the phone running on Cellone (BSNL) carrier network.

This was my first time with 3G and it was liberating. It goes to say even wifi is not true wireless freedom as it has a very limit range. 3G helps a lot with that.

To activate 3G I have to put ‘bsnlnet’ for APN Settings under Settings>General>Network>Cellular Data Network. It took a few switching on and off of the ‘Cellular Data’ settings. Toggle ‘Enable 3G’ to switch between 3G and 2G(Edge/GPRS)

The good thing is that bsnl push notifications work great and let us know hwo much data we used up as soon as we switch off ‘Cellular Data’.

The browser and youtube work fine but it is hard to tell if the speeds are faster then wifi. (i have a 512Kbps Unlimited plan from BSNL Dataone).

In this screenshot of the “SpeedTest.Net” app you can see the speeds that I get. The first one is Wifi which is not surprising as I have a 0.5 Mbps dataone landline connection. The second is the 2G setting for cellular network. It is pathetic. But as soon as we switch to 3G the beasts are unleashed! 1Mbps+ is more that sufficient for a mobile connection.

This also opens up the possibilities of using the phone as a WIFI or USB tethered device for mobile internet access on your laptop. I switched on wifi tethering and connected my laptop to the phone’s wifi hotspot and I was browsing 720p videos on youtube! It was amazing. Take that USB Stick modem! Open-mouthed smile

PS: To take a screen shot on you iPhone, press and hold the home button while you press the power button and the screen will flash and save the image in the camera roll.

Sunday, March 07, 2010

Add Calibre libraries to Windows search Indexer and use it efficiently - (The Modern Reader Series - A guide to getting more out of Calibre – Issue #2)

Windows Indexing service is an operating system level service that maintains an index of most of the files on a computer and updates them without user intervention. To Modify your indexing options:

  1. Open the start menu and start typing “Indexing Options”. It should appear in the results. Select it to open
  2. You should see a list of locations already being indexed. Click the Modify Button.
  3. In the new window select the folders you want to index and press OK to save.

IndexingOptions

Or alternatively, when you are searching a location in explorer that is not indexed, you get a yellow bar at the top asking you to add it to the indexing service. Right click on that yellow bar and select ‘Index this location’.

IndexingOptions2

Now that you have indexed you calibre libraries it is time to have fun with the searches. I recommend reading  this short tutorial about windows searches and available operands like AND OR etc before continuing. (Power users: Advanced Guide)

We all agree that calibre does a great job of managing out ebooks and what not but in my personal opinion, calibre’s search and presentation is more targeted towards a user who knows what he is searching for. Say I want to see all the books in the Dune Series. I can go ahead and quite easily do that in calibre. But what about the peruser user. In today’s world an average personal library may hold anywhere from 1000 to 10000 books depending on how mad the owner of the library is :) . How about when you want to see the books you read in the last 2 weeks? or a list of reference books that one would want, usually, on a moments notice? etc etc… Well I have tried here to make some of those easy. Read on dear ebook worm (Open Explorer and navigate to one of you libraries. Now in the search box enter one of the following)

List all the books in a library -

NOT type:"file folder" NOT name:cover.jpg NOT name:metadata.db

tech books 

This works best when you want to quickly access a book and don’t want to wait for calibre to load. I use it all the time to access my tech books library. For smaller libraries such as a tech books library or an encyclopaedia this work very efficiently and the search is very fast. So create a separate calibre library for this kind of categories.

Create and save a search for recently accessed books -

date:thismonth OR date:lastmonth NOT type:"file folder" NOT name:cover.jpg NOT name:metadata.db

You should then see a list of all the books that have accessed this month or last month. Pretty Neat? :)

Browse the covers as if it were a bookshelf - 

NOT type:"file folder" name:cover.jpg NOT name:metadata.db

Select the “Extra large Icons” view option and you have a bare minimum of a bookshelf here.

  • I find this a very good way to browse thru what I have as it is much faster then calibre’s cover browser
  • I have found many interesting items to read that I added to the library and forgot.
  • This is also useful to remove useless covers like some group covers or default covers added to .lit files
  • Use the Preview Pane to see larger versions of the covers
  • Hide the navigation pane and the details pane and use full screen (F11) for best results
  • If you save this search(see below) Most newer applications like Windows Preview will treat it as a folder

Bookshelf

Save a search for easy future access -

For all of the above and any custom searches you make, you can save them. Just go ahead and click “Save Search” button in the explorer toolbar and give it a friendly name like “Recent books” or “My Covers” etc. This will add the search to you favourites(can be removed) and save it in the Searches folder under the current user (Start menu>[CurrentLoginName]>Searches). This way you can use the search as if it were a folder and apply additional search filters like by type or size and use various sorting and grouping options.

Filter Covers by Author-

For e.g., Navigate to you searches location and open “My Covers” and in the empty search box enter an author and see the magic happen. This will work even better with recent listing and book listing search above. (only work for author names due to the folder structure of calibre).

 Author

Use Saved searches smartly -

This technique can be used in countless ways like when you want to search for -

  • Authors : add author name e.g. “Robin Cook” to a saved search or ‘ name:”Robin Cook” ’
  • Title: add “name:dune” to list all books with “dune in their title”
  • Format: add “name:.mobi” or ‘ type:”MOBI” ‘ or “name:.lit” or ‘ type:”LIT” ‘
  • You can in fact use any column name in the format  columnname:”query” (note: remove space from column name like Date Modified becomes datemodified) See Rigth-Click in empty area> Sort/Group>More.. for a list of columns

Other options for cooler searches yet -

  • ViewsViews_s Use different View options to make the results more pleasing and fun
  • Preview_s Use the preview pane as windows can show content preview for some file types like text, rtf, doc, images etc
  • Right-click in an empty area and choose Sort By to get neat results. such as by folder or by name or size
  • Right-click in an empty area and choose Group By to group the search results. Very useful for separating by type so that you see all mobi files in one group and pub files in another
  • use the More… option in Sort, Group and Details View options to access from a ton of file property options.
  • You can increase the size of the search box by dragging the divider to the left of the search box
  • To view the location of a file in the search results Right Click>Open File Location (Press shift for a new window)
  • Indexing service also searches inside books it can read like txt, rtf, doc etc. If you dont want to search inside files then add column names to you searches. e.g. search for “name:dune” instead of “dune”

I think I have list a lot of options for you to play with and as it may be apparent it is just a beginning! Discover searches of your own and share

Friday, March 05, 2010

Jumplist for Calibre: The eBook Management Software - (The Modern Reader Series - A guide to getting more out of Calibre – Issue #1)

I am a reader. You are a reader. Everyone is a reader and Calibre is open source! Aren’t we living in a golden age?

Calibre is a great application and it belongs to the community, but this also means that the community is in return responsible for calibre and its development. I was thoroughly impressed by it the first time I used it and am still surprised by its modular flexibility and potential. So I decided to participate and try to make the ‘calibre experience’ more smarter as that seems to be the mantra of this age.  So I have decided to start with a simple yet powerful tip for Calibre Users in the form of utilizing Win7’s Jump list feature. Here is does….

Aim : Facilitate launching of calibre and related tools with different start parameters.

Side effects : Multiple libraries, Integration in Windows 7  using Jumplist feature, Easy of launching and grouping calibre related links

Requirements: Calibre eBook Management Software, Windows 7, Hedgehog’s JumplistLauncher (Download 476.6 KB), (Administrator Privileges may be required based on the location of the installation of the launcher)

Limitations: Only runs on Windows 7

Setting Up Icons:

  1. Open Explorer with Ctrl+Shift to start it in Admin mode and Navigate to calibre’s installation directory (usually C:\Program Files\Calibre2)
  2. Create a new folder and Extract JumplistLauncher e.g. C:\Program Files\Calibre2\Jumplist   (power user tip: can be anywhere, can have multiple installs)
  3. Right Click on JumplistLauncher.exe and select “Create Shortcut”. Select yes when asked to place on desktop. You can optionally cut-paste the shortcut back in the jumplist folder.
  4. Rename the shortcut to “Calibre E-Book Management”. Optionally change it’s Icon to use calibre’s. See tutorial to change icon here
  5. Right click the shortcut and select “Pin to Start Menu”
  6. Right click the shortcut and select “Pin to Taskbar” (drag the icon to your preferred location)
  7. The Icons should appear on you task bar as well as in start menu. Congratulations you are half done.

Setting up Jumplist items:

  1. Press Ctrl+Shift and Click on the new icon to start the JumplistLauncher interface in admin mode. (Don’t worry if yours is empty, We are going to create these links.)Launcher
  2. Add Items to the jump list
    1. Click the ‘Add File’ button to create a new item.
    2. Browse to calibre’s executable (C:\Program Files\Calibre2\calibre.exe) and press ‘Open’
    3. In the ‘Selected Entry’ field group you can specify the name of you choice. for e.g ‘Calibre’
    4. In the ‘Parameters’ field add command line configuration parameters. 
      1. To launch calibre with another library location then default enter “--with-library <path>” where <path> is the path to that library e.g. E:\Books\Library2 . See the official support guide for more parameters.
      2. To add a URL (for e.g. a friend’s content server) use a browser’s exe for the file and the URL for the parameter. For e.g. I used Firefox with is normally located at C:\Program Files\Mozilla Firefox\firefox.exe
      3. Add Calibre-server.exe to easily start your content server. see available params
      4. If you have a skydrive, network backup etc, you can specify it’s path for the library
      5. If you use the various modular executable in calibre’s directory, create batch files for common tasks and add them by creating a shortcut with the Run minimised option
    5. Optionally change the icon of the jump list item by pressing the icon button.
  3. Use the ‘Add Group’ button to great sections in the list. To edit a group’s name click on it in the list and it changes to a editable textbox.
  4. Selecting one of the checkboxes in the list makes it the default launch operation when clicking on the icons we added to the task bad and start menu. If none is selected then this configuration window opens up.
  5. Press the ‘Update Jumplist’ button to same you options and update the jump list without restarting the launcher.
  6. Exit the configuration  window and you are done!

StartMenu Jumplist Taskbar Jumplist

I hope this is a very helpful tutorial and will go a long way to utilizing calibre to its full potential. I will be create more posts and tutorials in the future so please send me feedback on the calibre’s mobileread forum or here.

Sunday, October 04, 2009

Discovering Windows 7 – Awesome Explorer

Who would have thought that the work ‘awesome’ could possible be used near ‘explorer’. I mean, no one ever goes “Dude, windows explorer is awesome!”. Ever. I though that those words together should be called a ‘grammatical mistake’ :p

It is totally not the case now. Even after months of using Win7 I, almost everyday, keep discovering new features and ingenuities.

I was trying to fix tag information for the music I recently got from amardeep. He never has neatly organised data. So I was doing the usual. Select a group of files >Right click> Properties > Details tab and fill it up or something similar can be done from Media Player’s library but with only the advantage of a smoother UI. Right?

I then noticed details pane in the lower part smoothly displaying all the tag info. Some elements were missing so I did the obvious (Right Click) and sure enough there as a menu to control the details and a couple options. I chose the large size to see more property elements.

Capture

I intuitively moved my mouse over the displayed data and noticed the value getting highlighted as if they could be edited. I was like wow that is great. No need go to the details pane. Just select files and you are a bunch of clicks/steps faster. You dont have to repeat the RightClick>Prop>Details for each group of files you select to edit.

Capture2

It was great discovery up till now but as soon as I moved to try something more complex it became awesome. Lets take the example of a folder I have called ‘Top Singles’ where I keep the latest hits and add new numbers as they hit the top (pretty great method to only filter and collect the best songs only). In such a folder the tags are hard to manage as you cant group them because they are from different artists/albums etc. This method greatly reduced the effort required in such places.

Earlier I had to create and update a bunch of playlists there to manage updates in single folder. For e.g. if I want to listen to a particular week’s updates hits in the order they were in at that time.. impossible right? Just try it..

Anyway, I started editing some tags with this method and, you are gonna love it, then came the biggest ‘aaaaaah’ from my mouth. Just as I started typing the edit fields came alive with real-time suggestions based on my library! Don’t believe me? have a look -

Capture3

At the very least this feature completely kills the misspelling mistake (which resulted in really bad looking library like artists would have ‘Kailas’ and ‘Kailash’. Really messing up playback selction. In addition it further speeds up the task and offers us a strong overview in cases where, say, we forgot the artist name/spelling etc.

I wondered what else can we do with this thing.. and it occurred to me -  the search field! I went to the top directory and entered  a search for which I knew the results were spread out in many folders.

Here is a search for “List top songs or music videos since June 2008 by Beyonce or Eminem” :D
Capture4

This was just a forced complex search. Now imagine this(search, live suggestions tags etc) for all files and documents! Tagging made super easy which in turn makes further searching and tagging easier. It is an exponential relationship. And dont forget Windows media center and other network stream devices that Win7 can attach to. It makes navigating on them many times easier. Even more mind boggling is, try to associate this with the open search filters/addon capability of Windows 7. Like searching last.fm or flickr or even a torrent site in inclusion to you network, Homegroup and libraries!

Tell me you are in love, shout aloud “Awesome Explorer” :)

Thursday, July 09, 2009

Ever wondered about programming in Hindi !!

Sounds crazy and completely useless, doesn't it? But I am sure I will be able to change you mind about that but then end of this post. However it wont be feasible in the real world as we all work in teams and English remains the primary programming language.

I started, as always, with google and ended up here on my blog which rarely meets anyone (including me).

Anyway I started a new project in Visual Studio 2008 and voila! Magic happens -

public class myClass
{
public void MyHindiTextFunction()
{
प्रबंधक<कंपनी<int>, List<कंपनी<int>>> प्रबंधक१ = new प्रबंधक<कंपनी<int>, List<कंपनी<int>>>();
प्रबंधक<परियोजना<Guid>, HashSet<परियोजना<Guid>>> प्रबंधक२ = new प्रबंधक<परियोजना<Guid>, HashSet<परियोजना<Guid>>>();

प्रबंधक१.प्रबंधित_इकाईयां.AddRange(new List<कंपनी<int>> {
new कंपनी<int>(1, "company1"),
new कंपनी<int>(2, "company2"),
new कंपनी<int>(3, "company3"),
new कंपनी<int>(4, "company4"),
new कंपनी<int>(5, "company5") });

प्रबंधक२.प्रबंधित_इकाईयां.Add(new परियोजना<Guid>(Guid.NewGuid(), "project1"));
प्रबंधक२.प्रबंधित_इकाईयां.Add(new परियोजना<Guid>(Guid.NewGuid(), "project2"));
प्रबंधक२.प्रबंधित_इकाईयां.Add(new परियोजना<Guid>(Guid.NewGuid(), "project3"));
प्रबंधक२.प्रबंधित_इकाईयां.Add(new परियोजना<Guid>(Guid.NewGuid(), "project4"));
प्रबंधक२.प्रबंधित_इकाईयां.Add(new परियोजना<Guid>(Guid.NewGuid(), "project5"));

//Select company where company id is in the Product's guid as string 0-o
var क्वेरी = प्रबंधक१.प्रबंधित_इकाईयां.Join(
प्रबंधक२.प्रबंधित_इकाईयां,
क => क.संख्या.ToString(),
क => क.संख्या.ToString(),
(क, ख) => ख.संख्या.ToString().Contains(क.संख्या.ToString()));

}
}

public class प्रबंधक<इकाई_प्रकार, सरणी_प्रकार>
where सरणी_प्रकार : new()
{
private सरणी_प्रकार _प्रबंधित_इकाईयां;
public सरणी_प्रकार प्रबंधित_इकाईयां
{
get { return _प्रबंधित_इकाईयां; }
}

public प्रबंधक()
{
_प्रबंधित_इकाईयां = new सरणी_प्रकार();
}
}

public class कंपनी<कंपनी_संख्या_प्रकार>
{
public कंपनी_संख्या_प्रकार संख्या { get; set; }
public string नाम { get; set; }
public कंपनी(कंपनी_संख्या_प्रकार _संख्या, string _नाम)
{
संख्या = _संख्या;
नाम = _नाम;
}
}

public class परियोजना<कंपनी_संख्या_प्रकार>
{
public कंपनी_संख्या_प्रकार संख्या { get; set; }
public string नाम { get; set; }

public परियोजना(कंपनी_संख्या_प्रकार _संख्या, string _नाम)
{
संख्या = _संख्या;
नाम = _नाम;
}
}
}


I know I know.. Mad Scientist at work :) But is stands to reason that Generics and crazy LINQ is always fun and allows getting more hindi then you could otherwise :)

Further:
  • SKTN - You have to watch his videos. I went LOL+ROLF
  • add en2hi@bot.talk.google.com to GTalks :D
Observations:
  • VS2008 is not complete in supporting Unicode unless the underlying OS is. So Kick you XP and pirate Win7 (Tooltips, Intellisense etc are just square blocks)
  • You can use the hindi transtation of numbers (१, २, ३..) as vars. That are still numbers :[
  • Go to Control panel>Language Ops>Add Hindi keyboard and enable the Language Bar. After that start>Accessories>Accessibility>OnScreen Keyboard. Who the hell owns a hindi keyboard anyways

Note: XP goes crazy with hindi file and folder names and no one want to set Hindi as the primary language. Vista and Win 7 are much better if you rally want to try this.

Monday, July 28, 2008

Secure/Encrypted cookies in ASP.NET with System.Cryptography

In today's world one cant transmit a digital syllable without some kind of protective wrapper around it. Us Neos of the binary world have always struggled with proper cipher methods to do so.

In other words, beginners always have had difficulty in implementing a reliable yet flexible method for securing cookies. I have used the following code often and I am sure this will help anyone looking for a quick-fix solution to secure cookies.

The basic architecture is to create static methods to which you pass a cookie and get a encrypted version in return. It also conveniently retrieves the Algorithm to use as well as the key to encrypt/decrypt from the web.config file and can be adapted to retrieve/generate the key in other ways.

Step 1: Start off with our class.

using System.Security.Cryptography; //and other...

public class Security
{
//If you dont want ur methods to be static then use this and instantiate an object before use
//byte[] Key;
//string AlgorithmName;

public Security()
{
//If you dont want ur methods to be static then use this
//char[] chars = { ',' };
//string[] splits = ConfigurationManager.AppSettings["CookieSecurityKey"].Split(chars);
//AlgorithmName = splits[0];
//Key = new byte[Int32.Parse(splits[1])];// = KEY_64;
//for (int i = 2; i < Key.Length + 2; i++)
// Key[i - 2] = byte.Parse(splits[i].Trim());
}
...

You can store the key/algoritm name in the web.config like this:








Step 2: Create the basic methods that encode/decode a piece of string

public static string Encode(string value, Byte[] key, string AlgorithmName)
{
// Convert string data to byte array
byte[] ClearData = System.Text.Encoding.UTF8.GetBytes(value);

// Now create the algorithm from the provided name
SymmetricAlgorithm Algorithm = SymmetricAlgorithm.Create(AlgorithmName);
Algorithm.Key = key; //you can apply your own key mechs here
MemoryStream Target = new MemoryStream();

// Generate a random initialization vector (IV), helps to prevent brute-force
Algorithm.GenerateIV();
Target.Write(Algorithm.IV, 0, Algorithm.IV.Length);

// Encrypt information
CryptoStream cs = new CryptoStream(Target, Algorithm.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(ClearData, 0, ClearData.Length);
cs.FlushFinalBlock();

// Convert the encrypted stream back to string
return Convert.ToBase64String(Target.GetBuffer(), 0, (int)Target.Length);
}

public static string Decode(string value, Byte[] key, string AlgorithmName)
{
// Convert string data to byte array
byte[] ClearData = Convert.FromBase64String(value);

// Create the algorithm
SymmetricAlgorithm Algorithm = SymmetricAlgorithm.Create(AlgorithmName);
Algorithm.Key = key;
MemoryStream Target = new MemoryStream();

// Read IV and initialize the algorithm with it
int ReadPos = 0;
byte[] IV = new byte[Algorithm.IV.Length];
Array.Copy(ClearData, IV, IV.Length);
Algorithm.IV = IV;
ReadPos += Algorithm.IV.Length;

// Decrypt information
CryptoStream cs = new CryptoStream(Target, Algorithm.CreateDecryptor(), CryptoStreamMode.Write);
cs.Write(ClearData, ReadPos, ClearData.Length - ReadPos);
cs.FlushFinalBlock();

// Get the bytes from the memory stream and convert them to text
return System.Text.Encoding.UTF8.GetString(Target.ToArray());
}
Note: there methods are static so that you can use them directly from code without the additional line to create an object.

Step 3: Create the methods that encode/decode the cookie

public static HttpCookie EncodeCookie(HttpCookie cookie)
{
if (cookie == null) return null;

//get key and algorithm from web.config/appsettings
//Comment this section if you do now what this method to be static
char[] chars = { ',' };
string[] splits = ConfigurationManager.AppSettings["CookieEncodingKey"].Split(chars);
string AlgorithmName = splits[0];
byte[] Key = new byte[Int32.Parse(splits[1])];// = KEY_64;
for (int i = 2; i < Key.Length + 2; i++)
Key[i - 2] = byte.Parse(splits[i].Trim());

HttpCookie eCookie = new HttpCookie(cookie.Name);

for (int i = 0; i < cookie.Values.Count; i++)
{
string value = HttpContext.Current.Server.UrlEncode(Encode(cookie.Values[i], Key, AlgorithmName));
string name = HttpContext.Current.Server.UrlEncode(Encode(cookie.Values.GetKey(i), Key, AlgorithmName));
eCookie.Values.Set(name, value);
}
return eCookie;
}

public static HttpCookie DecodeCookie(HttpCookie cookie)
{
if (cookie == null) return null;

//Comment this section if you do now what this method to be static
char[] chars = { ',' };
string[] splits = ConfigurationManager.AppSettings["CookieEncodingKey"].Split(chars);
string AlgorithmName = splits[0];
byte[] Key = new byte[Int32.Parse(splits[1])];// = KEY_64;
for (int i = 2; i < Key.Length + 2; i++)
Key[i - 2] = byte.Parse(splits[i].Trim());

HttpCookie dCookie = new HttpCookie(cookie.Name);

for (int i = 0; i < cookie.Values.Count; i++)
{
string value = Decode(HttpContext.Current.Server.UrlDecode(cookie.Values[i]), Key, AlgorithmName);
string name = Decode(HttpContext.Current.Server.UrlDecode(cookie.Values.GetKey(i)), Key, AlgorithmName);
dCookie.Values.Set(name, value);
}
return dCookie;
}

At this point you have the basis setup and you can use the class in your code.

Encoding Example:

HttpCookie cookie = new HttpCookie("MySecureCookie");
cookie["ID"] = "39369a0d-975e-4456-9ade-3f04639fd309"; //recommended: use some unique value to later check for fraudulent cookies while retrieving
cookie["Name"] = username;
cookie["Email"] = email;

cookie = Security.EncodeCookie(cookie); //encode
cookie.Expires = DateTime.Now.AddDays(90);
Response.Cookies.Add(cookie);
...

Decoding Example:

HttpCookie cookie = context.Request.Cookies["MySecureCookie"];
cookie = Security.DecodeCookie(cookie); //decode

if (cookie["ID"] == "39369a0d-975e-4456-9ade-3f04639fd309") cookieChecksOut = true;
//process cookie
...

This code allows using a single generic implementation to use a variety of algorithms based on their merits and properties. I hope this will help a lot of beginners.

Monday, May 07, 2007

Smart Search tip for FireFox users

This summary is not available. Please click here to view the post.

Monday, March 12, 2007

(Vista & XP)Share saved games between multiple OS

Introduction

With the release of vista I was excited and noticed that the era of multiple operating systems had returned। Just as when XP was released Computer enthusiasts had both 98 and XP installed. Similarly since the launch of Vista a lot of people now have vista as well as XP installed.

Problem

With multiple OSes we definitely have problems like installing software twice. But a lot of Software and applications can be run from the same location. For example games. Say u were playing NFS MW in XP. You install vista and want to play MW, You have two options, ONE, do the tiresome job of either copying the saved games from the XP drive to the vista drive(and then back if u want to play from XP again) or TWO, restart the system to XP. It is very inconvenient.

Solution

The best solution i came across is to create virtual folders(aka Hard links, Special Folders. not Virtual folders feature in Vista). What we want to do is have the actual save game files in one location, like XP, and create a virtual folder linking it to them from vista.

Assumptions
  1. XP installed in I:\Windows
  2. Vista installed in C:\Windows
  3. Games installed in D:\ (eg "e:\NFS Most wanted") (can be anywhere)
  4. MW creates saves in XP "I:\Documents and Settings\%username%\my documents\NFS Most Wanted"
  5. Req. virtual folder in vista at(MW creates saves here in vista) "C:\users\%username%\documents\NFS Most Wanted"
  6. Substitute drive letters, directory and username to ur system specific
  7. BACKUP YOUR DATA BEFORE MOVING FORWARD!

There are many options to do this like-

  • mapping a folder to a drive then mapping that drive to another folder
  • using DOS Commands like SUBST and FSUTIL
  • Shell extensions(playing with objectID, BirthvolumeID etc and desktop।ini scripts)
  • Windows Resource kit utility - linkd.exe

These options are messy, unless u r a 5 year veteran Linux admin। After a lot of very hard searching I found the utility called 'Winhardlink'. It does all the dirty work for You. You just have to specify the source directory/file and the target directory/file.


About WinHardLink
- Homepage - Direct Download
Software License(free) - Size(563 KB (576,687 bytes))

Advantages of WinHardLink

  • Works on vista
  • Created Hard links work across OSes i.e. if u create it in vista it will automatically be available as a normal folder in the other OS even if this utility is not installed
  • XP cannot differentiate between links and actual folders
  • Vista shows a shortcut icon on the hard link but reports as a folder in properties

How-to (example using NFS MW and above assumptions)

  1. Download and install WinHardLink in one OS(say vista)
  2. Launch from start menu
  3. Select Hard Link>New Virtual Folder. a windows will pop up
  4. Click "..." against the 'Alias dir' to select the destination to "C:\users\%username%\documents\NFS Most Wanted" (You may have to create a new folder 'NFS Most wanted)
  5. Click "..." against the 'Source dir' to select the location of the saved game to "I:\Documents and Settings\%username%\my documents\NFS Most Wanted"
  6. Click OK.You are done.
  7. Make sure the checkbox is checked along the folder in the main window of WinHardLink।

Testing

  1. Browse to see that the folder exists
  2. Create a new text file in either folder and put some text in it
  3. Check the other folder for its existence
  4. Cross check by editing both files and re opening from the other folder
  5. They should behave as normal file folders
  6. Start the game and see that the profile is loaded
  7. Now u can play MW from any os without worrying about multiple सवेस

More Suggested uses

  • consolidation of saved games। i.e. u can move the all save games to a central location like "d:\saves\[game-name]" and create virtual folders in both OSes where the games expect the saved games to be. Now u can format/reinstall etc without disturbing saves.
  • When one drive is full u can move any folder to another location and just create a hard link for it in its place (see moving the whole MS office folder at the homepage above)
  • Use in conjunction with 'saved searches (aka virtual folders)' feature of Vista to have the ultimate control over data accessibility

Tested with- NFS MW, NFS Carbon(but there is some compatibility problem in vista in loading saves created in XP), Just Cause, Battlefield 2 & 2142, Fifa 07, PES6, GTA SA, MS Flight Simulator X, Visual Studio Projects, Portable apps launch icons, NOT tested with network folders.

Cheers. If you like this solution then please leave a comment.

Make DVD iso from CD isos of Fedora Core

Allright people.. lots of ya all seem to be interested in this.

it is quite simple. Since things have gone multi-giga-byte now a days, handeling one DVD is way easier then poppin n jiggling six CDs one after the other.

Ok here are the steps.

What u need:
1. The CD isos of Fedora core ofcourse(the 1st five only, as sixth is rescue)
2. Magic ISO to edit images. or any other free alternative
3. An editor.
4. A Dvd Burner.
5. Daemon tools(makes life easier and lessens the free space req.)
6. 4 Gb free HDD space(+ the space the CD isos are taking up)

HowTo:
1. Copy the CD1 to a temp folder.(there should be 4 GB space on this drive)
2. Open Magic ISO and browse for the file.
3. From the root of the image see for a file named ".diskinfo"
4. Right click and extract on desktop.
5. Open a command promp and type "edit"(notepad doest work with this nicely, u can use textpad too)

6. Browse to the ".diskinfo" file. it will look like this:
1142397842.393345
Fedora Core
x86_64
1
Fedora/base
Fedora/RPMS
Fedora/pixmaps


7. Edit the file to look like this, basically append ",2,3,4,5" after "1" in line 4.
1142397842.393345
Fedora Core
x86_64
1,2,3,4,5
Fedora/base
Fedora/RPMS
Fedora/pixmaps


8. Save the file.

9. Drag and drop it to the open iso in Magiciso.

10. Right click on daemon tools in the taskbar and goto virtual CD/DVD-ROM>set no of deviced>4 Drives.

11. After the drives have been created left click on daemon tools again and select "Device 0" and Browse to the 2nd CD image to mount it.

12. Repeat the above step for Cds 3 thru 5. (and select device 1 thru 3 respectively). You should have cds 2 thru 5 loaded in virtual drives. check thru My computer.

13. Next, for each drive(mounted image) go to Drive:\Fedora\RPMS and select and drag and drop all files onto the magic iso window under the folder Fedora\RPMS.(alternatively add then thru magic iso, whatever, just add all). You will be asked to over write a file "TRANS.TBL" each time u drag and drop. just select yes(for explanation see page 3 of this thread).

14. After you have added all rpm files. select File>save under magiciso. rename the file to DVD from CD.

15. You are all done. Now Burn and enjoy!!!


Clean UP:
1. Left click on deamon tools and select unmount all.
2. Right click deamon tools and goto virtual CD/DVD-ROM>set no of deviced>1 Drives
3. Delete the CD isos if u want to free up space(1st check the DVD Image to be sure)
4. Delete ".diskinfo" from desktop

SHORTCOMING: This media will NOT pass the media check. so do no test it. If u are paranoid'nf then load a virtual machine and emulate the linux setup and "media-check" the individual cd isos there. To make it pass the media check u need to regenerate the checksums. which is beyond the scope here and worthless for home users. others google.
---------------------------------------------------------------------------------------------

EDIT: src2206 and aditya.shevade were interested in the reverse i.e. DVD to CD iso...
(this is a painfull method)

1. Go to the fedora website hosting the CD isos.
2. Directly mount the CD isos one by one in deamon tools via the webaddress(suppose drive x)
3. Run "CMD" and execute the following commands:
4. Change directory to drive x by typeing "x:"
5. type "copy .diskinfo c:\cd1.diskinfo"
6. Type "tree > c:\cd1.txt"
7. Load the next iso in deamon tools and repeat the two commands above but keep changing the 'cd1' to cd2 and so on(in both commands).
8. Now after u have all the directory structure u gotta get working. load the DVD iso in deamon tools
9. Now using explorer create five folders named CD1 ... CD5
10. See the directory structure but running CMD and using the edit utility.
11. Now for each folder duplicate the contents by copying the files from DVD according to the CD structure.
12. Rename each "cdx.diskinfo" file to ".diskinfo" and place in respectibe CD folder
13. Make iso using magiciso or nero.
14. Varify the file size.
15. Any files u dont find in the DVD, copy them off by loading the CD iso
again in Deamon tools directly from the web.

I sincerely dont think u will go thru the above painfull process.
I am not aware of any simpler processes except downloading the ISO images.
Just think of my effort to write this procedure and try it. give feedback.
I havent tried the above so no promices but logically it should work.