Saturday, November 22, 2025

 

Bengaluru’s Culinary Gauntlet: 10 Foods You Must Conquer (Before Your Stomach Files a Complaint)

A steaming plate of masala dosa, crispy edges folding over spicy potatoes, screaming

Bengaluru hums with code-crunching geeks and startups. But forget the screens. This city packs a punch in the kitchen too. Techies rush through traffic, yet they pause for bites that hit like a spicy software update. You expect gadgets here, not feasts. Wrong. Bengaluru blends old Kannadiga tastes with wild fusions from everywhere. Street stalls buzz with scents that make your nose dance. These aren't mild munchies. They fight back. Ready to tackle foods to try in Bengaluru? Your belly might beg for mercy, but your taste buds will cheer. From dawn dosas to midnight sweets, this guide arms you for the best Bangalore street food adventure. Dive in. Just don't blame me if you waddle home.

The Breakfast Blitzkrieg: Starting Your Day with a Bang (and a Bang in Your Belly)

Mornings in Bengaluru kick off fast. No time for fancy spreads. Grab fuel from a corner darshini. These spots serve breakfast hits that seem basic. Yet they explode with flavor. You feel alive after one plate. Or regret it during your commute. These bites set the tone for Bangalore must-eat dishes. They mix steam, crunch, and heat. Perfect for battling the day's rush.

Idli vs. Vada: The Ultimate South Indian Showdown


Idlis puff up like soft clouds. Steamed rice cakes, plain and innocent. But dunk them in sambar, and boom. That lentil stew burns sweet. Vadas fight dirty. Fried dough balls, crispy outside. Soft inside, laced with spices. One bite, and your mouth wages war. Which wins? Depends on your mood. Idlis soothe. Vadas thrill.

Pair them right. Sambar must steam hot. Chutneys join the party. Coconut brings cream. Tomato adds tang. Mint cools the fire. I once argued with a friend over the perfect dunk. He went idli-first. I smashed vadas in. We both lost plates to the floor. Laughs aside, head to a classic darshini like Brahmin's Coffee Bar. Lines move quick. Service rushes you out. Authentic chaos at its best. Pro tip: Arrive hungry. Eat fast. Repeat daily.

The Filter Coffee Ritual: Fueling the Code

Filter coffee isn't just a drink. It's a show. Grounds drip slow into a steel tumbler. Then the pour. Up high, like a meter. Froth builds. Metal clinks. You sip it strong and black. Or with milk for creaminess. This stuff powers coders through bugs and deadlines.

Bangalore traffic tests your nerves. One cup steels you. Meetings drag? Another pour revives. Skip the fancy cafes. Hit a roadside joint. Watch aunties pour with flair. It's bitter. It's bold. Your veins buzz. No wonder techies swear by it. After idlis, this seals breakfast. You conquer the day. Or at least pretend to.

Street Food Survival Guide: Navigating the Chaos with a Fork

Bengaluru streets pulse with life. Vendors shout. Smoke rises. Crowds weave. Food stalls line VV Puram or Jayanagar. Sensory overload hits hard. Eyes water from spice. Ears ring with orders. Your wallet empties fast. Best Bangalore street food hides here. Grab a plate. Dodge the mopeds. Eat standing up. It's messy. It's magic.

These snacks tempt all day. From offices to parks, they call. Skip them, and you miss the soul. Venture out. Find the smoke. Your adventure starts now.

Masala Dosa: The Crispy Canvas of Karnataka

Dosas rule the streets. Thin pancakes from rice batter. Filled with spiced potatoes. Rolled long like a scroll. One covers half your table. Crispy edges crackle. Inside, heat builds. You fold it. Dip in chutney. Pure joy.

Go fancy with rava dosa. Semolina makes it lacy. Light as air. Yet it packs punch. Set dosa stacks soft. Spongy rounds, piled high. Soak up sambar like sponges. Size matters here. A big one feeds two. Or one greedy soul. In VV Puram, stalls flip them fresh. Watch the batter sizzle. Smell the ghee. Bite in. Heaven unfolds. Warning: It might ruin lunch plans.

Gobi Manchurian: The Indo-Chinese Identity Crisis

Gobi manchurian confuses and delights. Cauliflower florets, deep-fried crisp. Tossed in tangy sauce. Indo-Chinese magic. Sweet, sour, spicy. Garlic blasts through. It's not from China. Nor pure India. Bengaluru owns it now.

This king rules snacks. Pre-dinner bite? It steals the show. Dinner forgotten. You order more. Hakka roots twist local. Vendors tweak spice for kick. Rainy days? Street carts glow. Steam rises. Grab a plate. Munch hot. Your lips tingle. Add chili for fire. Non-veg fans swap gobi for chicken. But veggies win hearts here. Try it in Jayanagar. Chaos rewards the brave.

Lunchtime Legends: When The Thali Means Business

Lunch hits hard in Bengaluru. Offices empty. Folks flock to banana leaves. Thalis spread wide. Unlimited rice piles up. Veggies steam. Pickles bite. It's a feast that fights fullness. South Indian style rules. Balance flavors. Fill plates. South Indian lunch culture thrives here.

No skimping. Servers refill without ask. You eat till stuffed. Then wave white flag. These meals bond friends. Share stories over rasam. Bengaluru's work grind pauses. Just for this.

The Mythical Thali: Eat Until You Question Your Life Choices

Thali means all-in. Banana leaf base. Rice centers it. Rasam soups tangy. Curd cools fire. Veggies vary daily. Beans stir-fried. Okra crisp. Papad cracks loud. Pickles add zing. Goal? Savor each bite.

Fifth rice serving? Defeat looms. You push on. Laugh at the bloat. Mavalli Tiffin Room nails it. Or Vidyarthi Bhavan for twist. Classic spots pack crowds. Arrive early. Watch leaves unfold. Flavors layer deep. Sweet payasam ends sweet. Walk out wobbly. Worth every carb.

Bisi Bele Bath: The Heavenly, Spicy, Mushy Mess

Bisi bele bath blends rice, lentils, veggies. One pot wonder. Spices simmer long. Tamarind sours. Coconut toasts. Heat builds slow. Texture? Mushy bliss. Scoop with hand. Or spoon if shy.

Sweet jaggery hides in mix. Sour notes balance. Spice bites back. Karnataka's comfort food. Hot means steaming. Eat fresh. Cold? No thanks. Stalls serve it simple. Add ghee for slip. Your bowl empties fast. Burp follows. Honest praise.

Dinner Dynasties: From Coastal Heat to Donne Biryani Dominance

Evenings slow Bengaluru. Lights flicker. Families gather. Dinners weigh heavy. Spice lingers from day. Now meats or fish join. Dedication needed. Nap after? Likely. Coastal winds blow in flavors. Biryanis steam in leaves.

Shift gears. Breakfast light. Lunch full. Dinner bold. You earn the rest.

Donne Biryani: The Unofficial Meat of Bangalore

Donne biryani wraps in leaf cups. Donne means that. Steams inside. Rice small, fragrant. Meat tender—chicken or mutton. Spices fiercer than Hyderabad's. Local twist adds aroma. Clove, cardamom punch.

Tear the leaf. Steam escapes. Dig in. Heat builds. No utensils. Hands only. Non-veg heaven. Veggie version swaps paneer. Stalls near offices glow late. Friday nights? Lines snake. One plate satisfies. Two? Brave soul. Try in Koramangala. Authenticity bites.

Mangalorean/Coastal Delights: Seafood That Fights Back

Coast calls Bengaluru. Mangalorean food heats up. Neer dosa drapes thin. Paired with fish curry. Coconut gravy clings. Spice sears. Prawn ghee roast roars. Buttered prawns, dry-fried. Heat clings to shell.

Sophisticated yet fierce. Dinner spots dim lights. Share plates. Sip sol kadhi. Soothes the burn. Karavalli shines for this. Or street versions quick. Seafood fights your fullness. Wins every time. Coastal gems hide inland. Seek them out.

Sweet Surrender: Desserts That Demand Your Last Calorie

Spice tires you. Sweets call truce. Bengaluru ends meals sweet. Ghee flows. Sugar tempts. Final push tests will. Desserts anchor the day. Share or hoard. Your choice.

One bite seals memories. Chaos calms. Sugar rush hits.

Mysore Pak: The Ghee-Soaked Final Boss

Mysore pak tempts deep. Chickpea flour base. Ghee soaks every crumb. Sugar binds sweet. Soft centers melt. Edges crunch hard. Texture plays tricks.

Commitment test. Pure indulgence. Karnataka's pride. Buy fresh from sweet shops. Warm slices cut thick. One piece? Lie. Two hook you. Ghee shines gold. Calories scream. Ignore them. Victory tastes sweet.

Gadbad Ice Cream: A Chaotic but Delicious Conclusion

Gadbad piles high. Ice cream layers swirl. Vanilla, chocolate mix. Jelly dots add pop. Nuts crunch through. Fruits hide below. Sundae in chaos.

Mangalore born, Bengaluru adopted. Street carts serve cold. Hot night? Perfect. Spoon dives deep. Flavors clash fun. Visual mess matches city buzz. End spice with this. Belly full. Smile wide.

Conclusion: You Survived Bangalore Cuisine. Now, Schedule a Dentist Appointment.

Bengaluru's foods tackled you hard. From idli battles to gadbad scoops, you conquered ten must-eat dishes. Breakfast fueled the fight. Streets tested grit. Lunches filled you up. Dinners weighed you down. Sweets sealed the win. Best Bangalore street food left marks—spicy, sweet, unforgettable.

Explore beyond hotspots. VV Puram shines, but alleys hide gems. Venture local. Taste the real deal. Bengaluru's culinary gauntlet waits. Grab antacids. Dive back in. Your next bite calls. What's your first try?

Tuesday, December 7, 2010

Understanding the CICS environment from Application Program

          CICS provides different set of APIs for providing the environment information to the application programmer. As a CICS application programmer, understanding the environment under which the program will run is very important. TXSeries for Multiplatforms supports most widely used operating systems like AIX, SOLARIS, HP-UX, WINDOWS. It also provides better connectivity with CICS Transaction Server. Once the program is developed in one operating system, the same program can be used to run on any of the supporting platform and also the transaction/program containing the business logic can be invoked in different ways like a simple LINK, can be trigger transaction, asynchronously started transaction. Getting the environment in application programs provides application programmers to write the business logic in more effected way to run the business logic.
       
          For example, if an application program contains some functions specific to an operating system to perform some business logic, it might work properly in that particular operation system. Later if the same program is tried to run on different platform, it will fail. As a CICS application programmer, consider these issues while developing the application programs. Using the CICS APIs like EXEC CICS INQUIRE, get the operating system details and then validate and enclose such operating system specific functions calls for that operating system only.

          As an example, the following API can be used to get the operating system details from application program.

          EXEC CICS INQUIRE SYSTEM OPSYS(data-area)

        CICS returns a one-byte character that represents the type of operating system on which the transaction is currently running. The following values are returned:

         A represents CICS for AIX.
         H represents CICS for HP-UX.
         L represents CICS for Solaris.
         N represents CICS for Windows.

          Another example to know how the CICS application programs are invoked, as it can be invoked in different ways.

          EXEC CICS INQUIRE TASK STARTCODE(data-area)

   CICS returns upto a two-character value that indicates how this task started. Possible values are:

    D   The task was initiated to process a distributed programming link (DPL) command that did not specify the SYNCONRETURN option. (The task is not allowed to issue syncpoints.)
    DS  The task was initiated to process a distributed programming link (DPL) command that contains the SYNCONRETURN option. (The task is allowed to issue syncpoints.)
    QD  CICS initiated the task to process a transient data queue that had reached trigger level.
    S   Another task initiated this one, using a START command that did not pass data in the FROM option.
    SD  Another task initiated this one, using a START command that passed data in the FROM option.
    TO  The task was initiated to process unsolicited input from a terminal (or another system), and the transaction that is to be executed was determined from the input.
    TP  The task was initiated in response to a RETURN IMMEDIATE command in another task.
    U   CICS created the task internally.

          The following example will provide way to get the process ID from the application program for logging purpose. Even though user can use directly getpid system call, but its syntax is different for different operating systems.

Unix :
    header file: unistd.h
    pid_t getpid(void);

Usage:   printf("The process ID is %d.", getpid());

Windows :
    header file: process.h
    int _getpid(void);

Usage:   printf("The process ID is %d.", _getpid());
 

Instead of using system call directly, application programmer can use the CICS provided API options to get such type of information.

        EXEC CICS INQUIRE TASK PROCESSID(data-area)
       
    PROCESSID(data-area)
          CICS returns a 32-bit binary value that indicates the process ID of the process that is running the transaction that is associated with the task.

        TXSeries for Multiplatforms provides lot of information about the environment under which the application is invoked or running with EXEC CICS INQUIRE SYSTEM and EXEC CICS INQUIRE TASK APIs.

        For More information on the supported options for these APIs, please refer CICS API Command Reference.

Monday, November 22, 2010

Passing arguments to CICS Transactions

          Are you wondering how send the arguments for CICS Transactions. There will be many cases when user wants to call specific logic in the application code based on particular condition. Writing separate programs for each condition and defining separate transaction for each such program will be difficult for an application programmer. Using the power CICS APIs, CICS application programmer can send arguments for a transaction.

          TXSeries for Multi-platforms provides wide verity of CICS APIs. Using EXEC CICS RECEIVE API, user can read the data from terminal. As most of the terminals uses 24x80 screens, each line can have a maximum of 80 characters. Using EXEC CICS RECEIVE API, user can read the 80 characters as described in pseudo code. After reading, user needs to parse the character string based on requirement. The first four characters contains the transaction name. User can use the remaining 75 characters to pass the character arguments for the transaction.

void main (void)
{
     cics_char_t TextBuffer [80];
     cics_sshort_t TextLength = 80;
     memset(TextBuffer, ' ', 79);
     TextBuffer [79] = '\0';

     EXEC CICS RECEIVE
               INTO(Text_Buffer)
               LENGTH(TextLength);

     /* Read the Trasaction character arguments */
     /* 01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789 */
     /* SAMP 1*/                  /* SAMP is the transaction and '1' is the argument */
     /* SAMP 2*/                  /* SAMP is the transaction and '2' is the argument */
     /* SAMP 3*/                  /* SAMP is the transaction and '3' is the argument */
     /* SAMP 111 2 33*/          

     if (Text_Buffer [4]  != ' ')
           print(Error Message/Usage)
     switch(Text_Buffer [5])
     {
           case '1' :  Business Logic 1;
                       break;
           case '2' :  Business Logic 2;
                       break;
           case '3' :  Business Logic 3;
                       break;
           .
           .
           .
           .   
           Default  :  Business Logic ;
                       break;         
     }
  //     Business Logic   //
}

     User can also pass multiple arguments to the transaction using some delimiter. But in application program it needs to be parsed based on the delimiter or by using some tokenizing techniques.

Region attach at RegionPoolBase may fail when SafetyLevel is set to normal

Setting SafetyLevel=normal can cause cicsas failure in scenarios where a library or application loaded in the cicsas executes shmat call with shmaddr set to NULL.

Reason:
When you set the SafetyLevel to normal in the RD.stanza, the region attaches and detaches itself at the address specified in RegionPoolBase attribute of RD.stanza with every cics api call. If shmat is used in the application program or in other products (like DB2 or MQ or any other product whose library gets loaded into the cicsas memory) which is being used in conjunction with TXSeries for attaching to the shared memory and passes NULL as a second argument (shmaddr) for shmat, the shared memory is attached at the first available address as selected by the Operating System.
It is possible that the Operating System can assign the same address as RegionPoolBase address. So, the next time when the TXSeries region tries to attach to the address specified in RD.stanza for RegionPoolBase, it fails with EINVAL.

Symptom:
The following message gets recorded in symrecs file:


SYMPTOMS = TIME/"09/22/10 12:37:08.927364556" REGION/TEST PROD/5724AX710 LVLS/710 MOD/"@(#)conco, 17:23:35, Jul 27 2010" FUNC/ConCO_WaitForAnyAMChild LINE/676 MS/010089 MSN/367 SRC/2 PRCS/0 ABCODE/ SRVID/5 PID/1437874 TID/7 PROC/cicsam
SECONDARY SYMPTOMS = Child(PID 250074) returned with exit value 6

Solution:
Set SafetyLevel=none in this scenario, which will make the cicsas to remain attached to the region pool throughout the lifetime of the cicsas.

Sunday, November 7, 2010

Automating TXSeries with Mainframe

Like we saw how to send emails from TXSeries, we can also do several things on mainframe viz. Starting a CICS region, Uploading and Compiling programs etc.

First you need to have an extrapartition TDQ defined in TXSeries. This TDQ output should be redirected to ksh.

With Mainframe we can talk over ftp using the QUOTE command and with filetype=jes. When filetype=JES is set, whatever you upload, is submitted to the JES system as the JCL. On other hands when download (GET) command is used in this JES mode, the job output can be retrieved from mainframe. We will see some example FTP sessions for various tasks on mainframe.

1) Creating a PDS (submitting a JCL to create a PDS)
MFUSER=KAILAS
MFPASS=mypasswd
cat > temp.jcl << EOFJCL
//${MFUSER}1 JOB A1,'${MFUSER}',CLASS=A,MSGCLASS=H,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID
//PERFS1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=A
//SOURC DD UNIT=SYSDA,SPACE=(CYL,(10,5,10)),
// DSN=${MFUSER}.PERF.SOURCES,DISP=(NEW,CATLG,DELETE),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=8000)
//
EOFJCL
cat > temp.inp << EOFINP
user
${MFUSER} ${MFPASS}
prompt
quote site filetype=jes jesjobname=${MFUSER}* jesstatus=all jesowner=${MFUSER}
put temp.jcl
exit
EOFINP
ftp -n -v mainframeip < temp.inp

2) uploading a member to your PDS
cat > temp.inp << EOFINP
user
${MFUSER} ${MFPASS}
cd PERF.SOURCES
prompt
put PRFSRVIP
exit
EOFINP
ftp -n -v mainframeip <> NULL

3) Testing the status and results of JCL submitted and getting spool output to your local machine
cat > temp.inp << EOFINP
user
${MFUSER} ${MFPASS}
prompt
quote site filetype=jes jesjobname=${MFUSER}* jesstatus=all jesowner=${MFUSER}
dir ${JOBNO}
exit
EOFINP
STATUS="1"
until [[ $STATUS = "OUTPUT" ]] ; do
ftp -n -v mainframeip < temp.inp
STATUS=`grep ${JOBNO} NULL | awk '{print $4}'`
done

5) issuing operator commands using this technique
you can fire operator commands using following JCL
/*$VS,'S MYCICS1'
The command inside single quote is the command to be used on console

Notes:
1. JESINTERFACELVEL=2 should be set on the ftp server running in Mainframe.

Sending emails through TXSeries

Sending emails through TXSeries.

Often processing programs need to notify their results, status and events to users through emails. TXSeries is a transaction manager used widely to process transactions. Under TXSeries also we can achieve the functionality of sending emails using some Operating System techniques.

TXSeries has extrapartition TD Queues which can be used by programs to send emails to outside world. An Extrapartition TDQ is actually a flat file where records are logged. This flat file can be redirected to a smtp server using netcat command and thus emails can be sent by the programs running under TXSeries.

Below given is an example configuration to send mails.
1. Create an extrapartion TDQ in the region.
cicsadd -c tdd -r $REGION EMLS DestType=extrapartition ExtrapartitionFile=emails.txt RSLKey=public MaxSize=0 RecordLen=128

2. After starting the region use follwing command to send our mail commands from TXSeries program to smtp server:
tail -f emails.txt | nc your.smtphost.com 25
OR
tail -f emails.txt | netcat -h127.0.0.1 -p25

3. From the program WRITEQ TD cics api should be executed to output the text on the extrapartition file.
EXEC CICS WRITEQ TD QUEUE("EMLS") FROM(W-TEXT)

4. Above api will send 1 line of text in the output file. To send the email, we need to send the whole text given here:
HELO your.smtphost.com
MAIL FROM:
RCPT TO:
DATA
Mail Body (Status/Results)
.
QUIT

Keep doing point number 4 in a loop to send multiple mails.

Monday, November 1, 2010

invhariharan's blog: Ways to monitor a TXSeries (CICS) system

invhariharan's blog: Ways to monitor a TXSeries (CICS) system: "The CICS TS for the z environment has a rich set of monitoring tools available from both IBM and the third-party vendors. Though TXSeries (C..."