Saturday, June 7, 2014

9 Ways For A Healthier Lifestyle

The hectic life we lead nowadays often take a toll on our health and well-being, especially when we have little or no time to exercise and don't take the initiative to eat healthy. But don't fret. There are a few healthy habits that you can easily incorporate in your daily routine to ensure that you are leading a well-rounded life.

1. Take five deep breaths before starting your day 

Before your day starts to spiral out of control, step back, relax, and take five deep breaths. You can do this in bed as soon as you wake up, in the shower, or even while you're having your morning cuppa. These deep breaths help reduce the stress and ease the tension that the new workday brings with it. Incidentally, stress and tension are responsible for more than 90% of our illnesses. So it is wise to keep them under firm control.

2. Take your vitamins immediately after brushing your teeth

We all have trouble remembering those vitamins pills that we should take every morning. But here's a neat and nifty trick to remember them. Keep a bottle of water and your vitamin tablets near the toothbrush stand. That way, you are sure to remember them every single morning. You can do the same with other medications that you need to take on a daily basis.

3. Wear workout gear that makes you feel good

When it comes to exercising, we often think of the sweat and the grime, and don't feel like investing in stylish clothes. What's the use of them, especially when you are not likely to look your best after a strenuous workout? Might as well dig out those torn track pants and that faded, oversized shirt - is that the way you think? But that should not be the case. If working out is something you don't dread but look forward to, skip the ugly clothes and choose outfits that will make you feel good about yourself. Get them out the night before if you're an early-morning exerciser. This means you won't have to rummage through your cupboard in the morning and put on the moldy old thing that comes out first.

4. Swap the coffee for a cup of cocoa every morning

That's the best option, of course. But in case you can't possibly function without your brew, why don't you try and choose 'mocha' as your morning cuppa? Keep a little pot of cocoa powder nearby, so that you get into the habit of stirring in at least 1 tablespoon of it into your coffee every morning. This way, you are getting the caffeine that your body is craving while you are keeping your heart healthy. Cocoa contains flavanols, which happen to be the source of powerful antioxidants and promote heart health by improving blood flow to the heart and the brain.

5. Walk around when you're on the phone 

You probably spend a lot of time talking on your phone. So the next time it rings, make it a point to stand up and walk around as you hold a conversation. When you sit on your chair for more than 30-60 minutes, it lowers your calorie-burning dramatically, even though you exercise regularly. Sitting for too long will also add pounds to your waistline and increase the risk of cardiovascular diseases.

6. Don't skip breakfast

Most of us choose to sleep longer and give breakfast a miss before going to work. But skipping breakfast is literally the worst thing you can do to your body. Breakfast is the most important meal of the day as the food helps you break the fast that your body underwent while you were sleeping. Skipping breakfast leads to fatigue and low level of alertness throughout the day. On the other hand, even a piece of fruit or a quick cereal can go a long way in keeping your body and mind nourished.

7. Don't eat out too often

Our hectic life leaves very little time for anything, let alone cooking. That is why most working people tend to eat out. Most of us go out for lunch but some will dine out as well. Well, that pizza you have just ordered may hit all the wrong spots and make you feel unwell. Food from outside, especially junk food like pizza, samosa, burger, etc., tend to be oily and can make you collect the ungainly kilos. Also, eating such heavy food for lunch will make you feel lethargic and sleepy. If you have no other choice but to eat out, try a salad or a vegetable sandwich instead.

8. Avoid excessive salt intake

Salt contains sodium, which raises blood pressure and leads to hypertension. This can cause quite a few health problems for you in the long run. Too much of salt in your food can also cause dehydration and water retention. If your body isn't hydrated properly, the sodium will steal the water away from your cells, causing a variety of health hazards such as stomach cramps, nausea, and more. So control your salt intake. If you do have a craving for that extra zing, squeeze some lemon juice on your food.

9. Don't eat while you are working or traveling

Do you have a deadline looming or are you scared of missing your bus to the office? But that's still no excuse to grab and gobble a sandwich while you are working or traveling to work. According to latest research, people tend to overeat when they are not focusing entirely on their food. If your attention is elsewhere, you tend to ignore your body's signals telling you that you are already full. Consequently, you may just keep on eating and that's hardly good for your health. So take some time out, even if it is just 15 minutes, and sit down to a relaxing meal. Also, avoid eating too quickly. When you eat slowly, your saliva helps break down the food and it aids digestion.

Wednesday, May 21, 2014

4 Things You Should Do When Putting Together A Counter-Offer

talking negotiatingPicture the scene: you’re having a normal day at work then all of a sudden your star employee takes you by surprise and hands her notice in. Stunned, you ask her to reconsider and quickly throw together a counter-offer that might just convince her to stay.
But it’s no good. She's made her mind up and you’ve now got a month to find someone new to replace her. So, what was your mistake? Was your counter-offer not up to scratch? Could you have thrown more incentives in there that might have made her change her mind? Would any counter-offer have been enough?
It’s hard to say because it all comes down to the individual employee and situation… but the subject of counter-offers has always been a tricky one for a couple of reasons.
First, the problem with counter-offers is that they’re… well, a counter-offer. Your employee has already had her head turned by one amazing offer — so you’re always going to be playing catch-up with any offer you put forwards. The bar has already been set by this new company, so it’s now up to you to meet it, and even beat it, if you want to hold onto your employee.
Second, sorry to break it to you — but your employee must have already been unhappy at your business if she's been looking elsewhere and reached the point where she now has a formal offer of employment elsewhere. This means that you’re actually on the back foot, because, for whatever reason, your employee has had some bad experiences with your company or doesn’t feel like there’s enough opportunity at your business.
In comparison, the idea of working for a new company that seems to have lots of promise can definitely be enticing, even if it’s not actually that great in reality. In some cases, it definitely can be a case of the “grass is always greener” syndrome… 
Third and finally, the problem is the nature of the counter-offer itself and the fact that things have come to a point where you’ve had to put a counter-offer together. Think about it; your employee is unhappy, finds a new job, tries to hand her notice in then you suddenly come back with an amazing counter-offer that she's always dreamed of. Rightly or wrongly, the fact that you’re only putting a counter-offer together now can suggest to the employee that you only care now that you’re at risk of losing her. Would you have offered her the same deal if she hadn’t wanted to leave? Probably not… and therein lies the issue.
When you consider those points and the fact that, according to some sources, most employees that accept a counter-offer leave within six months anyway, it can feel like putting together a counter-offer is a waste of time and effort… but that’s not always the case.
In some cases, the employee might not really want to leave but they might feel like she's a bit stuck at your business and not really progressing. In this situation, it’s possible to put together a counter-offer that reminds her that she's still a valued member of your team and there’s still lots of room to progress and develop within your business — in this case, it’s just about giving her the reassurance and information that she needs.
Similarly, there are times when the employee feels like she doesn't really have any option but to leave because the situation has changed and she doesn’t feel like there are opportunities for her at your business. If this isn’t the case, with a counter-offer it can just be a matter of setting the record straight and finding the right new position for her within your business.
That said, when it comes to putting together an effective counter-offer, there are a few things you need to remember:

1. Be honest.

In situations like this, it’s best to be completely transparent and honest with the employee. If you feel like the new opportunity would be better for her, tell her. Similarly, if you’re shocked by the offer and didn’t realise she was unhappy, tell her. Remember, honesty counts for a lot… and it might even be what she's looking for.

2. Discuss the situation with them.

When someone hands their notice in, it can be easy to take it personally and not want to discuss the details with them, but you really need to. Find out why she wants to leave, what she feels is missing from her current job and if she'd be willing to stay if you offered the right incentives. In some cases, the employee might have already made her mind up… but as I said earlier, sometimes it can be less clear cut. What’s more, if you discuss the situation with her, you might uncover a major issue within your business that’s upsetting all your employees — and one that’s easily fixable.

3. Put together a unique offer.

The most effective counter-offers are successful because they’re unique to the employee and really meet their needs and expectations. Remember, employees want to feel valued as an individual — and a unique counter-offer is the perfect way to show them that you’ve listened to them and acted in response. Yes, putting together a unique counter-offer can be time-consuming but if it leads to a commitment and a better working relationship with your employee, isn’t it worth it?

4. Don’t forget your other members of staff.

When it comes to putting together a counter-offer, you need to think carefully. Yes, you might want to pull out all the stops to keep this employee — but you need to be careful not to annoy every other member of staff in the process. Remember, people talk… so sooner or later if the employee decides to stick with you, details of the offer are going to get out… so make sure you can justify the details if questioned.
So there you go; a few things to consider when you’re faced with the task of putting a counter-offer together.

Indian Railways: What is the basic reason for the IRCTC website to be so slow and unpleasant to use?

Contrary to popular belief IRCTC is perhaps a compounded problem.

Sheer volumes and complexity 
  • They are the biggest E-Commerce Site in the country, about 2x the net sales of Flipkart.com the next name on that list AFAIK. The sort of demand they see in the peak tatkal booking hours I suspect is orders of magnitude higher than what flipkart can handle. For instance something as small (relatively) as the recent Moto-E launch in India took down flipkart infrastructure ( Flipkart server crashes as Motorola Moto E goes on sale ).
  • Over 8 billion trips per year are undertaken in Indian Railways and bulk of the booking happens through this system. Even on a record-breaking day, Amazon only sold 13.5 million items worldwide, whereas Indian Railways on the whole sells more than 21 million tickets on any average day. The electronic system was put in place in the 80s and has since received multiple incremental updates.
  • Of these, IRCTC books around 250 million tickets per annum. It operates just the outermost web layer. So, while webserver configurations, website architecture, and other improvements will play a role, problems with booking a ticket are spread across every layer up to the database. Moreover, the failures at each stage of booking compound because a person who failed at the last step will start afresh right from log in.
  • The problem is not just the insufficiently responsive ticketing interface, but the huge demand-supply ratio. Even if the whole process was totally seamless, we would’ve only ensured that the first 20 million or so people got their tickets every day, but 3 times as many people will still be left without a reservation.

Bottlenecks and solutions

Technical - 

Seat selection
  • Also the railway system is far more complex then say a straight forward purchase from amazon or a Google search.Tickets are commodities, while seats and berths are not! This adds to the complexity. Let’s say Amazon had an inventory of a million toothbrushes and 2 million people try to buy the same item. I’m assuming they’ll just need to decrement the counter and complete the transaction with buyers on a first-come first-served basis, without worrying about which exact toothbrush will go to whom (at the time of sale). In contrast, Indian Railways offers a precisely labelled berth or seat to a ticket buyer.
  • In database terms, a row-level lock is obtained on the berth, while thousands of transactions compete for that! A better way would be to sell tickets first and allot the berths later. If passengers can handle the sophistication, they can even do a check-in later, but I think we’re still quite some time away from that. The current logic for berth preference can be retained, but applied as a separate step. In reservation centres, there can be a separate berth allotment counter for confirmed ticket holders.
  • This could use a stateful precompute algorithm that generates the next candidate seat and provides it dynamically. Then generates the next one as a background async process.
Payments
  • Another huge bottleneck is in processing payments. It involves a series of menu selections by users each causing pages to load followed by complex handshakes between IRCTC, third party gateways, and the banks, security checks and so on. Each step is prone to failures too. On the whole, 29% of attempted payments failed.
  • Why not deduct money before ticket booking begins for the day and return it if booking is unsuccessful? Actually, IRCTC is instead considering a smarter move by which passengers can keep prepaid cash with them. Apart from the obvious performance improvement, the economic implications are huge. Imagine crores of rupees lying with them without a need to pay interest? Already, Indian Railways benefits from having an Advance Reservation Period of 4 months. Together, effectively, passenger money is deposited several months in advance. Remember Dell?
  • Possibly they could have credit cards on file . Google Play, Itunes and many others already do this, your next ticket could be a couple of clicks away, EVEN ON MOBILE !
Database
  • It becomes apparent a lot of this is to do with their database architecture they perhaps could implement a beefier database cluster with ample replication and sharding. A lot of the work is read bound and this could most certainly be improved.
  • If the database and application layers are appropriately coupled it should be possible to implement some sort of active caching, thus minimising rapid read impact without losing out on data validity.
  • A lot of the sporadic load comes around the tatkal tickets. This is a tiny fraction of the huge data open to booking. A good architecture would be to to shard this critical hot data into highly optimised database that would be tuned for concurrent locks and writes and offer high availability for read throughputs. Also tune your application to handle this separately optimised for  the job at hand. Use beefy hardware for the same (plenty of ram,cpu network bandwidth etc)

Application Design and Architecture

  • Toss out the monolithic web app and validation system
  • USING A CMS for this scale is  (IRCTC uses BroadVision’s CMS) an epic fail
  • Ditch the Windows Stack , Move to Unix based environments, enable Gzip compression , use stuff like Flashcache, HA-Proxy, Docker dynamic scaling deployments depending on the time of the day. For instance add 5x the power during peak. Use a combination of Cloud on demand and self hosted infra for best results.
  • Remove banner adverts, they as the railways should not need this , keep a clean minimal interface that does the job.
  • Move the session handling into another layer and should be much more graceful. The load of the 10 min timeout in a mainloop for instance is perhaps one of the main reason for many screwups.
  • Break up critical parts into modules that are designed to scale horizontally provided the right hardware.
  • CDN for static content with multi host and redundant bandwidth across locations in the country,
  • Revamp the core api to be data driven, off load client logic into the web browser using something like Backbone or Angular  - this achieves 2 things, api can be rigorously tested and hardened. Ui can be offloaded to another team that specializes in it , get better UI , easier to extend and open up possibilities for a much better api driven mobile client
Hardware & Networking

  • Update the database cluster for sure and most of the architecture that can no longer support these workloads.
  • Add edge points in all major cities and aptly geo located centres to minimise the response time (this would need a decoupled app imho for best results)
  • Sorry EC2 is no magic word like a lot of people suggest , EC2 would be a poor choice for IRCTC given where their traffic and business is based off.
  • Perhap at certain time use a Cloud hybrid deployment, you can use the elasticity of the cloud to meet peak requirements that are sporadic. If the demand is consistently at similar levels, add new physical hardware to your DC not to the cloud.
  • Add an Peakflow/Arbor and handle DDOS mitigation abilities as i suspect the railways site is victim to plenty given their importance. I would choose a device over other techniques as the 2x latencies introduced to mitigators/scrubbing centers (none in India) would just kill the purpose.
  • Dedicated redundant Bandwidth from multiple ISP , possible multihost.They always seem to choke on this, besides DDoS mitigation requires plenty of it. They are a sizable organization and should be able to get that from govt and non govt players


NON TECHNICAL

Yes IRCTC is at the end of the day a public sector body, here are some of the usual suspects
  • Bureaucracy in every step - delays getting the required people, hardware and technical expertise to fix the issue once and for all
  • Lack of political will to fix the irctc system to create a bias for the chap at the counter .
  • Possible corruption that benefits from a bad IRCTC experience such as the network of travel operators and agents with political connections/lobbies to ensure they stay in business.
  • Lack of funds
  • The top down culture could have put some people averse to change and ones lacking the technical inclination required so this may not feature on their priority list or could be fooled by the software vendor into sub standard software CMS running on a windows stack.

Monday, January 13, 2014

10 Things Really Amazing Employees Do

Here are ten traits that any Great Employer should recognize and Reward Instantly.





Here are 10 things amazing employees seem to do effortlessly. Here's how to help your great employees be even more amazing.As a longtime employer of dozens, I was always grateful to have good employees. It takes a lot to recruit and maintain top talent. Every once in a while special employees come along that just really seem to get it. They drive the entire company forward in ways that were unimaginable. Advancement and reward is never an issue for these rock stars because they understand the power of cause and effect, and only a worthy company can retain them and afford them.

1. Enthusiastically Learn All Aspects of Business

They understand they're part of something bigger and more worthwhile than just their job. They look to learn other areas of the business and be fluent in finance and management so they'll positively impact multiple areas of the company.

What you can do: Invest in material and seminars on business basics like accounting, marketing, and management so all employees have easy access to learn and grow.

2. Steward the Company

They treat the company as if it were theirs. They look to make prudent decisions about expenses and opportunities with the long-term future of the company in mind. They easily assess risk vs. reward, selflessly when making decisions.

What you can doBe transparent in your business. The more you share your financials and philosophy, the easier it is for employees to make the right decisions.

3. Generate Viable Opportunities

You don't have to be in sales or marketing to help a company grow. Strong networkers from all divisions see company growth as a collective effort and constantly keep their eyes open for ways to more than pay for themselves.

What you can do: Make sure all your employees understand your value proposition and can easily identify opportunities. Then reward them openly for their efforts.

4. Resolve Issues Before They Are Issues

My favorite days running companies are when I notice positive change in procedure when I was totally unaware of the need for change. Amazing employees are always looking to improve systems proactively, and they do.

What you can do: Communicate a clear written vision of where the company is going and encourage initiative so people feel safe and empowered to make change.

5. Tell It Like It Is

Amazing employees understand that hiding bad news helps no one. They find kind ways to bring uncomfortable information to the surface, but they DO bring it to the surface. They tell people what's necessary before major damage is done.

What you can do: Foster an open communication environment where people are not only given permission to tell the truth, but also absolutely required.

6. Demonstrate High Standards, With Low Maintenance

I always feel relaxed when I can trust an employee to perform a task to the same high standards I would expect from myself. Not all can do this without constant attention or difficulty. Amazing employees quietly drive their own high standards.

What you can do: Set the example and the tone for high performance with minimal drama. Publicly reward those who can execute in the same manner.

7. Grow Themselves, and Others

They not only drive their own career but they inspire others to do the same. These employees lead by example in how to advance without creating animosity or resentment. They see and create their perfect future, and also bring others along.

What you can do: Encourage personal development and peer growth through dedicated group time and learning for career advancement.

8. Research, Apply, and Refine

No employer expects people to know everything. In this fast changing world, I choose employees who will learn over those who know. The best employee proactively explores options, takes action and then improves without direction from the top.

What you can do: Invest time in exploration and expansive thinking. Encourage people to explore deep visionary projects with time and reward for the findings.

9. Stimulate Happiness

Amazing employees aren't always sunshine and roses. They do know how to keep it real. But they understand the dynamics of people, stress, and the blend of work, life and friendship. They are self-aware and able to direct their own path that brings out their best with family, friends and career. They exude positive energy even in stressful times and share it around, making for a happier office.

What you can do: Create an environment where people can openly express themselves. Encourage them to work hard in fulfilling ways and achieve their dreams.

10. Facilitate Amazing Bosses

Amazing employees make me grow as an employer. They self-confidently get their value and help me get mine. They make me want to be worthy of working with somebody of such high caliber, without ever saying it directly of course.

What you can do: Make effort to genuinely show appreciation for any of the behaviors above so people feel their value and will grow to full potential. Then they will do the same for you.