Bisi Bele Bath

CRW_63063.jpg

Ingredients:

Rice- 150 ml
Toor dal-75 ml
Tamarind- 1 ball the size of a small lime
Mixed chopped Vegetables-200 ml (Beans,carrot,potato,peas etc.)
Oil 4 tbsp
Mustard- 1 tsp
Curry leaves- 10-15
Salt to taste

Roast in oil and powder:

Gram Dal- 20 ml
Dhania seeds- 20 ml
Red Chillies-6
Methi- 1/2 tsp
Copra- 30- 40 ml
Poppy seeds-2 tsp
Cardamom-1
Cloves-3-4
Cinnamon- a small piece

Method:

Extract tamarind juice and keep aside. Cook rice and Dal together in the pressure cooker for 5 whistles with 600 ml water. Vegetables can also be kept in the same cooker in a separate dish. Heat oil in a large pan, add mustard, splutter and then curry leaves. Add tamarind water and salt and 2 cups of water. Boil till the raw smell goes. Add the masala powder and vegetables and boil some more. Mash the rice dal mixture and add to the boiling liquid. Top up with the rest of the oil and mix well. Check the consistency and add some hot water if needed. Keep hot and add a dollop of ghee and mix before serving. Serve with Boondi on top, raitha and chips.

Lauki Kofta

Kofta5.jpg

Kofta:
Lauki (Suraikai)-500 gms
Gram flour- 1 cup
Green chillies-3-4
Salt to taste
Oil

Method:

Peel and grate Lauki. Squeeze out all the water from lauki and reserve the water. Add gram flour, chopped green chillies and salt. Heat oil in a pan and fry the mixture in the shape of small pakoras. Drain and keep.

Tomato Gravy:

Tomato- 5 medium
Onion- 3 medium
Chilli powder- 2 tsp
Dhania powder- 1 tsp
Ginger garlic paste- 1 tsp
Garam masala powder- 1 tsp
Oil- 3 tbsp
Coriander leaves- 1 tbsp
Salt to taste

Method:

Blanch the tomatoes in boiling hot water, remove skin and chop fine. Grate the onion. Heat oil in a pan, add onion and fry till golden, add ginger-garlic paste and fry. Add all the powders and fry for a minute. Add the tomato pieces, 1 cup of water and boil for about 10 minutes till the mixture thickens. Arrange the koftas in the serving dish and pour the gravy over the same. Garnish with coriander leaves. Serve with chapathi, poori or pulao.

Setting up Airport Extreme with a WEP secured network

WPA is more secure than WEP. But if for any reason you absolutely, positively, must setup a WEP network here is how.

1. Launch Airport Utility
2. Click on Manual Setup and select wireless

AirportWEP110.png

  1. If you click on the “Wireless Security” drop down it will not show WEP. Option-click it and it will now show WEP.

AirportWEP210.png

Vegetable Spring Roll

springRoll.jpg

Ingredients:

For the wrap:

Maida- 240 ml
Corn Flour-45 ml
Oil- 15 ml
salt to taste
water to mix.

For the filling:

Cabbage shredded thin- 500 ml
Onion- 1 medium sliced thin
Carrot- 1 medium slivered thin
Capsicum- 1 small slivered
Cooked noodles- 60 ml(optional)
Spring onions- 2-3 chopped fine
White pepper powder- 1 tsp
Sugar- 1 pinch
Ajino-moto- 1 pinch
Soy sauce- 1 tsp
Oil
Salt to taste

Method:

Mix the flours and salt for the wrap, add oil and mix well. Add water little by little and make a smooth dough. Roll into 5″ thin rounds. Heat a tawa and lightly toast the rolled wraps and keep aside.

Heat 1 tsp of oil in a pan and saute the onions for a minute. Add all other vegetables other than spring onion, salt, pepper and saute well. Add sugar, spring onion, ajino moto and soy sauce at the end, saute and cool the mixture.

Mix a tbsp of maida in a little water into a paste and keep aside.

Take a toasted wrap, and place 2-3 tbsp of filling on it. Fold the lower end over the vegetable mix, fold both the sides and roll tight. Using the paste, seal the open ends of the roll and keep aside. Prepare all the rolls as above. Heat oil in a pan and deep fry the rolls on medium heat till golden. Drain on tissue and cut in a slant into 1″ pieces and serve with tomato, chilli sauces.

Notes on Nib files and retaining IBOutlets

Nib files store the application’s user interface (views) in “freeze-dried” state. When you initialize a view controller with the appropriate Nib file, a copy of the outlet objects is created from the “frozen” one in the Nib file and the IBOutlet ivars in your class are hooked up to point to the newly created objects.

This unfreezing happens every time the view is loaded. Each time the view is resurrected in this manner it will appear like the original in the Nib file. So if you load a view and then make modifications (say change the layout) when the view is unloaded and reloaded, the modifications will not be visible.

From the resource programming guide:

“Nib files are the documents produced by the Interface Builder application. A nib file describes the visual elements of your application’s user interface, including windows, views, controls, and many others. It can also describe non-visual elements, such as the objects in your application that manage your windows and views. Most importantly, a nib file describes these objects exactly as they were configured in Interface Builder. At runtime, these descriptions are used to recreate the objects and their configuration inside your application. When you load a nib file at runtime, you get an exact replica of the objects that were in your Interface Builder document. The nib-loading code instantiates the objects, configures them, and reestablishes any inter-object connections that you created in Interface Builder.”

Contents of a Nib file:

Interface objects: These are the user interface elements in the application – views, windows, buttons, tables etc. Interface objects can also represent non-visual objects like controller objects that your application uses to manage the visual objects.

File’s Owner: This is a proxy object and represents the object that you will create in code and pass to the the Nib loading code. If your Nib file and the class of your object have the same name then simply calling alloc and init for your object will automatically load the correct Nib file. For example, consider the following files:

MyTableViewController.m

MyTableViewController.h

MyTableViewController.xib

Here, I assume MyTableViewController.{h,m} is a class derived from UITableViewController (or NSTableViewController). When an object of this type is created by calling


MyTableViewController *mtvc = [[MyTableViewController alloc] init];

Automatically, the object is associated with the nib file named MyTableViewController.xib and the corresponding elements from the nib file are loaded and the outlets in the object are hooked up.

This behavior can be changed in the following way – open the nib file in interface builder. Select “File’s Owner” object and in the identity inspector, set the class to any class in your code.

First Responder: This is also a proxy object and represents the first object in the application’s dynamic responder chain. For more information about the responder chain and how it is used to dispatch events in AppKit–based applications, see Event Architecture in Cocoa Event-Handling Guide. For information about the responder chains and handling actions in iPhone applications, see Event Handling Guide for iOS.

Note: Only a very simple application should store all its user interface components in a single nib file. It is better to distribute components across multiple nib files. Creating smaller nib files allows you to load only required portions of the interface.

Memory management and Nib file objects:

Each time a nib file is loaded the underlying code creates a NEW copy of the objects in the file. This means that your code is responsible for releasing the objects when it is done. How this needs to be done varies depending on the platform and memory model:

Mac OS X managed memory model: Top level objects in the nib file have a positive retain count. Objects that have parents are retained by their respective parents and do not have additional retain counts. Your code is responsible only for releasing the top level objects.

Mac OS X garbage collected memory model: Objects in the graph are kept in memory through strong memory references. But top level objects do not have strong references. Your code is responsible to create the strong reference to top level objects to prevent the object graph from being released.

iOS managed memory model: Objects are retained either using a setter method (setValue:forKey:0 or by default (if no setter is available). Objects in the graph that are not at the top level are retained by their parents (created autoreleased so they will have retain counts equal to the number of parents). Any objects that are hooked up to your class using IBOutlets will have additional retain counts. Your code is responsible for releasing all top level objects as well as all outlets.

Important note:
There is a difference in Mac OS X and iOS managed memory models. In the former, all objects are retained and they are connected via the object graph to the top level objects. So sending release to the top level objects will “propagate” the release to the other objects in the graph. In iOS, in addition to top level objects all IBOutlets have to also be released.

Good programming conventions:
Always have outlets for your top level objects and define setter methods to retain and release them. Remember to release all your outlets in -dealloc as well as -viewDidUnload. Doing this will make your code portable across platforms. Example:

@interface MyController: UIViewController {
        IBOutlet UITextField *textField;
}

@property(retain) IBOutlet UITextField *textField;
@end

@implementation MyController
@synthesize textField;

-(void) viewDidUnload {
        self.textField = nil;
}

-(void) dealloc {
        self.textField = nil;
        [super dealloc];
}
@end

This will ensure that IBOutlets are always retained in both iOS and Mac OS X (managed memory model) platforms. Your code will have to release the outlets in -viewDidUnload (iOS only) as well as -dealloc. Note that setting the textField ivar to nil will release it (the setter method will release the ivar before setting the new value) and also set it to nil.

The above implementation leaves IBOutlets exposed to “tampering”. So someone else using your code could in theory access your outlets and mess with them (say displaying something in the text field). You can get some protection against that using the implementation below where the @property is moved to the implementation file.

MyController.h

@interface MyController: UIViewController {
        IBOutlet UITextField *textField;
}

@end

MyController.m

@interface MyController()
@property(retain) IBOutlet UITextField *textField;
@end

@implementation MyController
@synthesize textField;

-(void) viewDidUnload {
        self.textField = nil;
}

-(void) dealloc {
        self.textField = nil;
        [super dealloc];
}

@end

Since code distributions (library, frameworks etc) usually include only a compiled binary along with header files the @property will be hidden from other users of your code. But remember that there is nothing “private” about methods in objective-c. If a MyController object (with class defined like above) gets a -setTextField: or -textField message it will respond and do the right thing. The only “private” part is that without access to MyController.m one would not know the setter exists!!

Another (popularly called out) nit in the above code is about calling an instance method from -dealloc (i.e. the setter). Usually it is not a good practice to call instance methods from -dealloc because within this method the state of your object is undefined. There are no guarantees that the instance method can behave correctly. So the usual preferred way to implement -dealloc is

-(void)dealloc {
        [textField release];
        [super dealloc];
}

While it is usually good practice not to call instance methods from -dealloc in this instance I believe it is safe unless someone inherits from MyController and decides to override -setTextField: to do something funky!! But sometimes it is tempting to avoid this convention for the following convenience (put in big scary note in .h file warning against overriding setters):

MyController.m

@interface MyController()
@property(retain) IBOutlet UITextField *textField;
@end

@implementation MyController
@synthesize textField;

-(void) releaseOutlets {
self.textField = nil;
}

-(void) viewDidUnload {
        [self releaseOutlets];
}

-(void) dealloc {
[self releaseOutlets];
        [super dealloc];
}

@end

In iOS, each time you add an IBOutlet you have to make sure you remember to release it in two methods. Easier to do the above and save some trouble.

Reference:

Fixing CoreData Error in the iPhone Simulator

While developing a CoreData based application if you change your data model and try to rerun you get the following error:
“The model used to open the store is incompatible with the one used to create the store”

The error occurs because the application (in the simulator) still has the old CoreData database while the ModelObjectContext in your application is referring to your new CoreData.

The only way to fix this is problem is to delete the application from the simulator.

Tukkada

tukkada1.jpg

Tukkada (or Diamond Chips)

Ingredients:

Wheat flour- 180 ml
Maida- 60 ml
Ghee or Butter- 1 tbsp
Salt to taste
Chilli powder- 1 tsp
Water
Oil for deep frying

Method:

Mix the flours, butter,salt and chilli powder well. Add water little by little and knead into a soft dough. Make small balls and roll into chappathi. Cut the same into diamond shape using a knife or a pizza cutter. Deep fry the diamond cuts till golden. Drain, cool and store in a airtight container. A nice snack with tea, coffee or by itself.

A sweet variety can be made with a modification. Omit the salt and chilli powder and proceed as above. Make a single-string syrup with sugar, dip the diamonds in it, remove and cool.

Dum Aloo

DumAloo5.jpg

Ingredients:

Potato- 400 gms
Tomato- 200 gms- chop into small pieces
Curd- 150 ml- whisk smooth
Sugar-1 tsp
Oil- To deep fry and cook
Salt to taste

Grind together:
Cinnamon- 2 pieces
Cardamom-2
Cloves-4
Poppy seeds- 1 tbsp
Peppercorn-5
Curry leaves-10
Ani Seed- 1 tsp
Red Chillies-3
Green Chillies-2
Ginger- 1 inch
Coriander leaves- 100 ml
Salt

Method:

Scrub and boil the potatoes with jacket in a pressure cooker for 3 whistles. Peel,cool and cut into 3/4 inch square pieces. when absolutely cool, deep fry the pieces and keep aside. Take oil in a pan and fry the ground masala for 5 minutes on a medium flame taking care not to burn. Add the tomato pieces,curd and fry well till oil separates. Add sugar, salt and water if needed. When the gravy is thick, add the fried potato pieces and mix well. Garnish with coriander leaves. If desired garnish with fried nuts and raisins.

Spicy Colocasia

colocasia2.jpg

Ingredients:

Seppankizhangu (Taro root aka colocasia)- 1/2 kilo
Tomato-1 medium-chopped fine
Onion-1 medium- chopped fine
Chilli powder- 1 tsp
Ajwain seeds (omam)-2 tsp
Gram flour- 2 tbsp
Curry leaves- 1 sprig
Coriander leaves for garnish
Oil
Salt to taste

Method:

Wash the tuber to remove all the mud and boil in the pressure cooker for 2-3 whistles. Cool, peel and cut into 1/2 inch thick round pieces. Coat the cut pieces with Gram Flour and salt. Deep fry and keep aside.

Heat oil in a pan, add crushed ajwain seeds, curry leaves, onion and saute for 2 minutes. Add tomato, chilli powder and salt and continue to saute till onion and tomato cook well and blend. Add the fried pieces and toss. Garnish and serve as a starter or as accompaniment to food.

Tags: , ,

Visit to Lepakshi

LepakshiWide6.jpg

Our journey
A one-day trip to Lepakshi (meaning “rise-o-bird” in Telugu) has always been on our agenda. The trip finally materialized after two failed plans. All of us were excited, did our bit of research on the internet, and set out with lots of food, and fully equipped with our cameras.

Lepakshi is a small village in Anantpur District in Andhra Pradesh. It is located on the Bangalore-Hyderabad highway (NH 7), is about 140 km from Bangalore, and 15 km east of Hindupur.

It is famous for its Vijayanagar style of architecture, and has a very interesting history. There are three shrines dedicated to Lord Shiva, Vishnu and Veerabhadra, the most famous one being the Veerabhadra temple.

We left Bangalore at 8 AM. The weather was not very hot, and was just right to make our journey a pleasant one. We reached Chickballapur at around 9 AM, and starting looking out for Kamat Restaurant. At this point, the road divides into two – one leading to Chickballapur village and the other is the highway. We asked a guy on the road for information on Kamat hotel. He didn’t know, but said that we should take the road on the left, for “nashta” (breakfast).

We took the local’s advice and went inside Chickballapur. We passed a place called Muddenahalli, which is about 7 km from Chickballapur. This is famous for two reasons – Bhagawan Sri Sathya Sai Baba’s school, and the birthplace of Sir M.Visveshwaraiah (one of India’s most accomplished engineers). We went about 10 km from the highway, and then realized that there was no Kamat restaurant, and ultimately joined the highway.

We finally spotted Kamat at a place where there was a board saying ‘Ananthpur: 150 km’. The restaurant is located inside a compound housing a Bharath Petroleum station. Like any other Kamat joint, this one was neat, had tasty food, and is probably the only decent food joint on the way to Lepakshi. Bypassing Chickballapur would have definitely saved our time, but it turned out to be a blessing in disguise for the Sai devotee :-) .

We continued on the highway and reached Konikonda check post. This is an important landmark where we have to take a left turn to go to Lepakshi, and straight, to go to Puttaparthi. We crossed a statue of a painted stork (good landmark to confirm you are on track), and finally reached Lepakshi after a three hour drive. We were welcomed by a huge Nandi (“Basavanna”) statue. It is made out of a single granite stone, is 15 feet tall, and is the largest in the world. This happens to be the symbol of Andhra Pradesh Tourism.

We went a few kilometers further and took a left turn to reach the main temple. Taking the straight road would lead to Hindupur.

History of Lepakshi

The Veerabhadra temple is known for its beautiful architecture. The story goes that the temple was built around 1500 A.D. by Virupanna Nayak, the chieftain under the Vijayanagar king Achyutharaya. When the king got to know that the treasury funds were used without his knowledge, he ordered that Virupanna should be blinded (this was the customary punishment for theft of the royal treasury). Virupanna being a loyal servant, plucked his eyes himself, and threw them on the walls of the temple. Two dark stains can still be seen on the walls of the temple.

Lepakshi-36.jpg

Another interesting reference is the story of Jatayu. It is said that Jatayu, the mythical bird, was injured and was dying at this place while fighting with Ravana, in order to save Sita. Lord Rama came to this spot and called out to the bird “Le-pakshi” meaning “rise O bird”. It is said that Jatayu attained Moksha here (there are other places that also claim to be the location where Jatayu attained Moksha).

The Temple
The main deity is Lord Veerabhadra, the fierce form of Lord Shiva. There are two Sannidhis on either side – one for Lord Shiva and the other for Lord Vishnu. It is said that Sage Agasthya established these sannidhis opposite to each other, to indicate that there is no difference between them. The other sannidhis include Parvathi Devi, Ramalinga, Hanumantheshwara and Durga.

Architectural Highlights
The exterior part of the temple has several beautiful sculptures of mythical characters from the Puranas, like Ananthasayana, Dattathreya, Chathurmukha Brahma, Tumburu, Narada and Rambha. The paintings on the ceiling have interesting scenes from the Ramayana and Mahabharata.

Some of the highlights on the exterior part of the temple are:

Naga Linga’, a huge 7 headed snake guarding the Lingam. There is a stone carving of the Sapthakanyas beside this.

The story of ‘Kalahasthi’ is carved on one of the rocks – an elephant spraying water on a lingam, Bhaktha Kannappa offering his eyes to Lord Shiva, and a spider weaving a web around the Lingam as a protection.

Kalyana Mantapam’ which is supposed to have been the venue for Shiva-Parvathi’s wedding. The pillars around this have interesting carvings of many sages and gods.

One of the rocks has an interesting sculpture of a rounded Lord Ganesha and his vahana.

Two important features which we missed seeing are ‘Sita’s padam’ and ‘palette’.

CRW_66122.jpg

Back to Bangalore

We left the temple complex at about 2 PM and a short distance down we pulled off the road into a tamarind grove for late lunch. On the way back to Bangalore we took a short detour towards Nandi hills to visit Sultanpet (near Nandi gram). We turned right off the highway towards Nandi hills and then asked locals for directions to Sultanpet. After a short drive off the highway the roads meets a T junction. Nandi hills is towards the left and Sultanpet is towards the right (back towards Chickballapur).

This is a small nondescript village near Nandi hills that is certainly off the beaten path. The road leading to the village is only one car wide and we would have missed the potter’s area if we hadn’t stopped frequently to ask locals.

This was the highlight of the trip for Amma. She had read about the place online and wanted to visit. We watched a demo of how pots are made, bought a few pots, and then made our way back towards Bangalore. More photos here.