Category Archives: Featured

The best articles

ASIC Verification: Trends and Challenges

(This is a guest post for PuneTech by Arati Halbe, who has close to 9 years experience in ASIC front end design and verification. Post silicon validation and FPGA prototyping is her recent area of interest and expertise. Arati has worked with Wipro Technologies and Conexant Systems. Arati did her B.E. from University of Pune and M.Tech from CEDT, Indian Institute of Science, Bangalore. See Arati’s linked-in profile for more details.)

As the complexity of Integrated Circuits (specifically ASIC and SoC) increases, and as their sizes keep reducing, the task of testing the chip gets more and more challenging. Engineers need to come up with better and different methodologies to ensure what goes to the factory for manufacturing is actually what they intended to deliver. Verification occurs at various stages in the ASIC development cycle. How much is enough at each stage is a problem that needs to be addressed on a case to case basis. A sound knowledge of various techniques and awareness of capabilities and limitations of each technique goes a long way in making decisions about when, where and what.

The integrated circuit from an Intel 8742, a 8...
Click on the image to see all PuneChips articles on PuneTech. Image via Wikipedia

Keeping this in mind, PuneChips had verification expert Jagdish Doma talk about “ASIC verification: Trends and Challenges” on 20th August 2009. Though impacted by the H1N1 scare we had a small but diverse audience. Jagdish discussed in detail the strengths and limitations of the various techniques, viz: ESL, Formal verification, Dynamic simulation, FPGA prototyping and Emulation.

ESL or Electronic System Level testing is the newest trend. Supporters of ESL claim that it is a highly powerful system level modeling tool. It enables fast software bring-up if combined with an emulation/FPGA prototyping platform. ESL has been used successfully to validate systems for mobile applications where only one peripheral/application is active on the processor bus. ESL does not seem suitable for systems where multiple processes and interfaces are active simultaneously, like for example in a networking system.

Formal verification, a static verification technique which is mainly assertion based, is useful to check control paths. It cannot be used to verify datapaths. Dynamic simulation is a very effective way of verifying functionality of every block in the ASIC including the datapath. Gate level simulations performed after the back annotated placement and routing data is available are used to identify timing related issues or omissions/errors in stating multi-cycle paths.

The need to find hardware bugs as early as possible in the ASIC lifecycle drives the emulation and/or FPGA prototyping effort. Both these techniques enable the testing of scenarios which are generally not possible to test in dynamic functional verification, well before the actual silicon comes back from the fab. Emulation or prototyping also accelerate fast software ramp up and the software team can get a development platform ready well before the actual chip is available. Emulation involves running test cases on hardware accelerated platforms like Palladium from Cadence and Veloce from Mentor. For FPGA prototyping, Single or multiple FPGAs are used to build a PCB system targeted for the testing of the ASIC/SoC. The ASIC code is then fully or partially programmed on the FPGA/s and functionality can thus be tested.

Scenarios with much longer simulation times than what normal functional simulation allows can be run on the emulation platforms. All the internal signals are available for viewing and debug, just like in functional simulation. The FPGA prototype platform does enable longer test time, but the debugging available is limited. The hardware accelerators are costly, and investing in them makes sense if a company has lot of ASIC programs running simultaneously. For companies which have similar chips planned back to back, investing in a home grown FPGA based emulation/prototyping platform makes sense. Another advantage FPGA prototyping is that the RTL goes through a complete synthesis and place and route cycle and testing is done on a circuit which is as close to the real ASIC as possible.

To ensure that a bug free product reaches the customer is a complex activity and poses multiple challenges. Coverage, legacy code, repeatability are issues that need to be tackled. Ensuring that the coverage is at an acceptable level is important. Code coverage is run to find out if all the possibilities of a written code are exercised in a test suite. Simulators from cadence (ius), synopsys(vcs) and mentor (modelsim) have their own code coverage analyzers. Functional coverage means to find out if each feature listed in the specification for an ASIC/SoC is verified. It is essential that the functional specification document has an individual numbered paragraph for each feature so that traceability is easier. Functional coverage is an activity that needs planning, reviews and careful test case designing. Methodologies like eRM (e reuse methodology – Specman based) and OVM (open verification methodology – System verilog based) do assist checking functional coverage, but the inputs provided need careful specification and reviews.

Reviews, not just for coverage, but at every stage in the ASIC cycle are extremely important. One of the challenges encountered while designing an ASIC is that the hardware team interprets a certain behavior from software and the software expects that certain things are taken care of in hardware. It is very important to involve members from design team, verification team, architecture team, software & firmware team for verification review.

It takes a good amount of effort to come up with a verification environment, and it is very common for a team to use what has worked before when schedules are demanding. Legacy environment saves lot of time, but it also handicaps the team. Talking about saving time, efficiency goes a long way in shrinking the schedules. The initial time and effort investment in automation of repetitive tasks save lot of time in future. Use of re-usable methodologies will definitely save time and effort.

Finally, while choosing the verification flow for a certain ASIC, team needs to look at what is available in terms of resources as well as time, understand the end user requirement, and make a decision on which technique to employ at what stage.

Reblog this post [with Zemanta]

Musings on why Cloud Computing will prevail…

suhas kelkar headshot

Today’s post is a guest post by Suhas Kelkar. Suhas leads the Innovation & Incubation Lab at BMC Software India. Prior to BMC he was the Vice President of Product Management at Digite, an enterprise software company in the field of Project Portfolio Management. See his linked-in profile for details.

In the recent Hype Cycle for Cloud Computing 2009 special report by Gartner, technologies at the ‘Peak of Inflated Expectations’ include Cloud Computing! (For description of five phases of Hype Cycle look here) This means that Cloud Computing is on the verge of entering the “Trough of Disillusionment” phase. Many technologies have been unable to come out of this dreaded trough where they fail to meet expectations and quickly become unfashionable. Articles such as “Could the cloud lead to an even bigger 9/11” clearly indicate that Gartner’s analysis is right and that cloud computing indeed has reached the peak of hype!

This article has my musings on why cloud computing will eventually come out of this phase and would reshape the way we run business.

Hype Cycle for Cloud Computing 2009
Hype Cycle for Cloud Computing 2009

I had an opportunity to attend VmWorld 2009 conference. During the course of this conference, VmWare announced its latest initiative, vCloud. vCloud is essentially using VmWare’s virtualization technology to create an ecosystem of cloud service providers. With this initiative VmWare joins already crowded space of public cloud providers such as Amazon, Rackspace Cloud and Savvis. Out of all the exhibitors at the VmWorld conference, almost everyone was trying to get on the bandwagon of Cloud Computing. And this was not even a Cloud Computing focused conference! The more you look into Cloud Computing the more you feel like it is indeed the next big thing after the internet gold rush of 90s.

All this hype for Cloud Computing feels like a déjà vu. Turn the dial few years ago and the area of Software As A Service (SaaS) went through very similar transition. After SaaS reached the trough of disillusionment skeptics were raising doubts. Many argued that they would never consider putting their competitive data (CRM) in a software system outside of their corporate networks. Salesforce had to fight an uphill battle as it tried to establish its SaaS products. However the value proposition of SaaS, in terms of zero install and pay-as-you-go was too attractive to ignore. Today SaaS is the architecture of choice for many enterprise software products and last time I checked Salesforce is sitting pretty at a massive market cap of 7.13 billion dollars!

Let’s look at the benefits of Cloud Computing,

  • Lower Costs – OPEX not CAPEX: Cloud Computing avoids capital expenditure (CapEx) on hardware, software and services by renting it from a third party provider (such as Amazon). Consumption is usually billed on a utility (resource based like electricity) or subscription (time based, like a monthly cable subscription) basis with little or no upfront cost. You pay as you go and pay for what you need. This seemingly straight forward benefit has deep impact on business models and strategy.
  • Self service and Agility: Provisioning a server used to take days if not weeks. With Amazon you can procure a server on their public cloud in minutes! Users can generally terminate the contract at any time (improving ROI and eliminating financial risks), and the services are often covered by service level agreements (SLAs) with financial penalties.
  • Focus on your business: Cloud computing abstracts away underlying resources (server, network and storage) and management of it so that you can focus on your core business. Win-win for Providers and Consumers.
  • Cloud Infrastructure and services are by default multi-tenant enabled, with multiple customers sharing resources and the costs associated with these. Providers run centralized infrastructure at low cost locations and make use of expertise of providers in terms of utilization and efficiency of infrastructure. Providers benefit with increased efficiency due to economies of scale and are able to provide the same service at lesser costs to happy consumers.

  • Elastic Scalability: Hosting your applications on Cloud Infrastructure enable dynamic (“on-demand”) provisioning of resources that can be done at near real time, without having to waste server resources engineered for peak loads. This enables small business to start offering their services on the web with low entry barriers and then scale as and when their load demands are higher.
  • Consider for example that you want to start a small web based business selling toys. Your business plan calls for exponential growth with number of customers ramping from few hundred in the first year to thousands in 2-3 years to million plus in 5-7 years. Ofcourse this plan does not even include wild fluctuations during peak holiday seasons. Until today, planning for this type of scenario involved lot of upfront costs that created huge barriers of entry for start ups. Now with cloud computing and public cloud infrastructure, such small companies can dream of doing exactly what they want to do and provides them with unlimited elasticity!

Similar to SaaS success story, it will be the benefits of the “cloud” that will eventually win over the skeptics due to underlying benefits. Of course an important factor would also be for an eco system to evolve in a timely fashion. One of the reasons why SaaS was successful was the fact that an entire ecosystem made itself available that rendered well to the SaaS Model including Web Standards (SOAP, WSDL, UDDI) and architectures such as AJAX.

Similar to the platform wars of the eighties (followed by browser wars of nineties), Cloud Computing is currently going through a war with each player trying to establish itself as the destination. Some efforts have started to promote interoperability and openness of cloud. Open Cloud Initiative is one such example. However it remains to be seen how the industry as a whole matures and adopts such efforts…

Cloud computing is here to stay and will succeed as a concept eventually. It has the power to establish new business models and change existing processes. More will have to be written about what does it mean for enterprises of tomorrow to manage their businesses in cloud. Do provide feedback via your comments if you would like to hear about it more…

See also: Suhas’ previous PuneTech article: The Changing Landscape of Data Centers.

Reblog this post [with Zemanta]

Allow your marketing department to produce translated versions of your website with Dubzer

Do in half an hour what would normally take weeks!

dubzer-logoNormally, making a website available in multiple languages is the last thing on the minds of a web developer. It costs time and money, is boring work, is error prone, and in the mind of a developer, it does not add any new features, or sexiness to the website. So, the developer drags his or her feet over this.

Of course, marketing does not see things the same way. Large chunks of the market are excluded when a website talks just in English. And trying to get engineering to produce the other language versions is a struggle.

Like they say, the best person to do something is the person who is most passionate about it. Which means that it would be great if the marketing department could translate the website without having to involve the developers.

That is the promise of Dubzer, which launched at Demo Fall 09’s Alpha Pitch today, and become the latest Pune startup to hit the world stage (after onion.tv that debuted at TechCrunch50’s demopit) from Santosh Dawara and Anjali Gupta, who previously brought us Lipikaar (the software for typing in Indian languages, which my mom loves), and Bookeazy (the much loved, but now dead, movie ticket booking service).

Dubzer will allow non-technical people to create translated versions of a website, or parts of a website, without requiring any significant changes to the backend of the website. It appears that this will be a hosted service, where you provide Dubzer with the URL of your website, they crawl it and then provide you with an online platform where you can start translating and publishing portions of your website (start with the most popular, or most important pages first). There are a whole bunch of features indicating that enterprise users are also being targeted – specifically, ability to translate intranets, fine-grained access control (i.e. who has permission to translate which portions of the site). Another interesting feature is that they allow you to implement different mechanisms of translation – i.e. free & paid translation methods, such as machine based (e.g. google translate), volunteer driven (e.g. what facebook is doing), crowd-sourced (as in wikipedia), or professional translation (sometimes, you get what you pay for).

Unlike Bookeazy and Lipikaar, Dubzer is actually incubated by Persistent Systems, which means that the team sits in Persistent Systems’ premises (except Anjali who has left Pune, traitorously defected to Bangalore). Their board of advisors includes Anand Deshpande, Founder and MD of Persistent, Abhijit Athavale, President of Markonix, and creator of PuneChips, and Jugal Gupta, CEO of Databyte.

One interesting point to note: Last year the Lipikaar founders ran into the problem of translating their website into all the various Indian languages (they are after all trying to sell software for writing in 18 different languages, so they better have their own website in those languages). When they did not find a decent solution, they decided to build it themselves and Dubzer was born. Similarly, Arun Prabhudesai was looking for a way to monetize his blog, trak.in with in-text ads, and did not find any appropriate solution. So, he decided to build it himself and hover.in was born.

There-in lies a lesson for us all…

Reblog this post [with Zemanta]

38 organizations where a tech startup can apply for funds

The Venture Center is a not-for-profit technology startup incubator hosted in the National Chemical Laboratory (NCL), Pune. One of the services they provide their incubatee startups is a guide to the various government funds and schemes that a technology startup can avail of at different stages of their development, depending upon meeting certain criteria.

This is information that most entrepreneurs are not aware of. With this in mind, Venture Center has put out this guide to the Financing Landscape in India for Technology Ventures. This guide is a must read for all startups interested in funding.

You can simply browse this information, and read the rules and regulations of each of these 38 funds/organizations. Or, if you want to be handheld your way through the maze, you can avail of Venture Center’s advisory services.

For more information about Venture Center, you can see PuneTech’s interview of Kaushik Gala, the business development manager for Venture Center.

Interview with Arun Prabhudesai of trak.in and hover.in (via BlogAdda)

“India Business Blog”, trak.in, with 7000+ rss/email subscribers from all over the world, and many more visitors coming directly to the website, is easily one of the top blogs emanating from Pune. Just last week, trak.in celebrated its 1000th post.

Arun Prabhudesai, the creator of trak.in, is also the CEO of Pune-based startup hover.in, and is very active in the tech/startup community in Pune.

A few weeks back, Indian blog aggregation site BlogAdda.com interviewed Arun Prabhudesai. We are reproducing the interview here, with permission. You should also check out the other interviews at BlogAdda – there are a bunch of interesting ones, including Vijayanand, of proto.in fame, Om Malik, of GigaOM, and Pune bloggers Preeti Shenoy of Just a mother of two, and meetu of wogma.com

Q: When and why did you start blogging?

A: My first post was written in the last week of April 2007, however, officially Trak.in celebrates its anniversary on May 1st.

There were couple of reasons why I started blogging. Firstly, I was in US since 2002 and wanted to come back to India and start something of my own. I also needed to keep abreast with the latest happenings, to understand the opportunities that were cropping up here.

Thats when I started blogging to share my point of view on knowledge I had gathered.

Also, at that time, there was no other Indian blog catering to this space. so I jumped in 🙂

Q: What topics do you generally blog about?

A: Trak.in started as a business blog that presented my point of views on latest buzz in India that was purely analytical in nature. However, over a period of time it has evolved to become much broader than that.

Trak.in has lot of subscribers who are Indians living abroad and want to come back. I receive so many emails asking for help and information on how to get (business) started in India. So a lot of my posts are also informative reports that give them purview of current situation in India.

Q: Do you ever get stuck when writing an entry? What do you do then?

A: Ohh…that happens far too often with me. I dont know whether it can be called a writer’s block, but many times I am just not in the frame to write – and I don’t.

The good thing is that trak.in has good community – when I am unable to write, I request one of our regular visitors or guest bloggers to write a post, and more often than not they are happy to do so.

I ensure that I do not post something just for the sake of it – Only if I am happy with what is written does it get published on the blog

Q: What promotional techniques work best for you and why?

A: I am sure you must have heard this often – Content, content and more quality content. That is the best way you can popularize your blog. Yes, you also need to take care of other things like SEO, but all that comes later. If you have quality content, traffic will come.

Thats exactly what I try to do with trak.in – Write good content – I don’t use any other specific promotional techniques.

Yes, In last 6-12 months Social Media applications like Twitter and Facebook have started sending in good amount of traffic as well – so presence in social Media space does help.

Q: How important is it for the blogger to interact with their readers? Do you respond to all the comments that you receive?

A: It is extremely important to interact with your readers – that’s how you build a loyal readership. I don’t (or can’t) respond to all the comments, as there are far too many. But yes, any comment that is thoughtful and brings in a different perspective than what I have written gets my attention and I do make it a point to respond. Generally I respond to 3-4 comments on average daily.

Q: How, in general, would you rate the quality of Indian blogs? Share your favourite five blogs.

As of today, India does not have any blog that is followed internationally except Labnol. Indian Blog Ecosystem is still evolving. The idea that one can blog for living is still not there in India.

When I started blogging, I used to follow lot of blogs, but in last year or so, the number has come down drastically. My feed reader has less 15 blogs in it.

Some of the blogs that I follow which are written by Indians (but may not be an India centric blog) are:

Q: What do you find to be the most gratifying aspect of blogging?

A: They are the “Thank You” mails from people who tell me that the posts that I have published have helped them a lot. It makes all the effort worthwhile.

Other aspect is the exposure that a bloggers get, especially if you are a popular.

Q: Do you earn revenue through your blog? How does one go about it?

A: Yes, I do earn revenue from my blog. Its simple, if you have good traffic, revenue will come. And for good traffic you need good content.

Q: hover.in was born out of constant frustration that most bloggers and web publishers face regarding their content presentation and monetization. How does hover.in help the bloggers and publishers?

A: Yes, that’s right. When I started getting traffic on trak.in, I wanted to have a monetization channel other than Google Adsense. One aspect about adsense is, it sometimes turns off visitors from your blog.

hover.in, being an in-text customized content and Ad delivery platform, helps bloggers to add revenue to their blog by showing in-text content & ads, without taking any real estate on the blog. hover.in automatically hyper-links keywords chosen by the publisher and shows relevant content & Ads when visitor hovers over that keyword.

Q: Not many know that you a photography enthusiast as well. There are many photo walks happening and you take an active part in most of them. India with its beauty all over, which are the best places and the best photos which you have captured. Can you share your experiences and a few photos with our readers?

A: Actually my love for photography started when I went to U.S and over years it has become kind of a creative outlet for me. Unfortunately, after coming to India I am unable to spare as much time as I would have liked. My startup and my blog keep me amply busy. 🙂

(See photowalk.trak.in for Arun’s photos)

Q: Many Indian companies were not affected by recession and a few of them posted profits. How does a startup survive in such times and what goes into making a startup a success in the long run?

A: You know for a startup it does not really make a difference unless you are out in the market looking for funding.

Startup Entrepreneurs are by nature frugal (they don’t have an option), and that’s what keeps a company afloat during tough times – Conserve cash as much as possible, cut expenses wherever you can and offer equity to employees. Recession is actually a good time when a startup can get talented people on board.

It would not be prudent for me to write on how to “make a startup a success in the long run“, because there are 100s of element that go in a startup success. Good Product, Investment, Market size & need, competition etc. etc. All these ingredients have to come together in right proportion for a startup to be successful.

Having said that, for me the most important aspect for a startup success is PEOPLE. If you have right people with right knowledge & attitude, you have already won half the battle.

Q: ‘India in 2020 – A Report’ was one of the posts that caught our eye. What’s your vision about India and which startups do you think will be a name to reckon in 2020?

A: It will be very unfair for me to talk about certain startups only, but if I’ve to name a couple of startups that have some real potential are LearnNext, Tringme and off-course my own startup hover.in . All these startups have a differentiating product in their own domain area . Having said that it is difficult to give a long term perspective on any startup, as market conditions (aka need/requirements) are changing very fast. The startups that will continuously evaluate will be the ones who will have a great chance to be successful in future.

One other Indian company (not a startup) that I think of is Zoho. That is the name to reckon with even now and 10 years down the line might be as well.

Talking about Vision for India in 2020. The current and the most important thing for us now is the Internet (read Broadband) Penetration which is extremely low. We have 10 different posts at Trak.in talking about Internet Penetration. We are moving ahead albeit slowly. Government is trying to push ahead. TRAI has recently declared that 2 Mbps is the minimum speed to be called as broadband. This is where government needs to start.

About Startups: Like I mentioned earlier, innovation will be the key. The Startups need to evolve themselves continuously with the changing market conditions.

Q: Trak.in is one of the top business blogs in India. You were having a successful career in the East Coast. What made you think that you need to return in your homeland and start Hover apart from managing Trak?

A: 2 reasons: There are abundant opportunities in India currently and my love specifically for Pune. I have been born and bought up here. I am a social person by nature and all my family & friends are here. I will always prefer my children growing up here in India and have the same values that I grew up with (although, things are changing, India is getting too westernized too fast).

Q: Do you earn revenue through your blog? How does one go about it?

A: Don’t start a blog just because everyone else around you is starting. If you are unsure, start micro-blogging on twitter/Facebook etc instead. That is far more gratifying than blogging.

90% people tend to quite blogging in a month or two, primary reason being no traffic. If you want to start a blog, be patient, write consistently and passionately.

Most importantly, dont compare yourselves with other bloggers and worse never try and copy what other bloggers are doing. That will not take you anywhere.

Q: Let’s conclude off with a few favorites.

Color: Black

Movie: The Last Samurai, Godfather, Finding Nemo

TV Show: Prison Break, Simpsons

Book: The Power of Now (Eckharte Tolle),

Time of Day: Aha…its Night time 🙂

Thanks a lot Arun for taking out time for this wonderful interview. Budding entrepeneurs and bloggers would have got a lot of insights from this wonderful interview. Do drop in your questions and feedback. We would love to have them.

Comments on this entry are closed. Please leave your comments for Arun and/or BlogAdda at the original post.

Pune-based startups, Onion.tv & Dubzer launch on the world stage – at TechCrunch50 and DEMO09

TechCrunch50 and Demo.com are easily the top startup conferences in the world and a chance to launch there is a huge opportunity that is available only to a handful of selected startups from all over the world. The bulk of these startups happen to be from the US/Europe, and it is rare for an Indian startup to feature in these conferences.

So it is a great feeling to be able to say that there are two “pure Pune” startups there this year, onion.tv that’s been selected for the TechCrunch 50 demopit, and dubzer.com that will launch during DEMO.com’s AlphaPitch next week. Both of these events are very difficult to get into, and being there will be a huge boost to these startups in terms of visibility, contacts, networking, feedback.

Onion.tv is the startup of POCC regulars Prashant Sachdev and Nilesh Diane, and it allows companies to publish out enhanced videos – with tags, and text and tables of content to give the users (viewers) a much better experience. Here is their pitch in their own words:

The content companies can integrate relevant information with audio / video and make their media more rich and useful. For example, educational companies can integrate a simple DVD-like table of contents with the videos, or even synchronize notes, code section and related material like Wikipedia pages with the video. This will help users enhance their learning experience. On the other hand, event companies can integrate tags, notes, comments to the event video and even synchronize a presentation with the video. This will help their users skim, filter, and search or even share parts of video with others, thereby making event videos much useful, as events typically cover wide range of topics and have diverse audience. Similarly, content companies in news, entertainment, and advertising can integrate their media with relevant content to enhance the experience of their users.

Here’s a tour of the features they offer.

Dubzer is the next venture of the team that brought us Bookeazy and Lipikaar. This time around, they are incubated by Persistent Systems, and as one of the 10 teams selected for AlphaPitch they are one of “the coolest earliest-stage companies around” according to Matt Marshall, Co-Executive Producer of DEMO. And as one of just 10 companies selected for AlphaPitch, they get:

  • sixty second pitch to the entire DEMO audience in the general session ballroom,
  • kiosk space in the DEMO pavilion,
  • two passes to attend DEMO, and
  • extensive promotional support on site and after the event on demo.com.

Unfortunately, they cannot tell us what they do until September 22nd (i.e. until after they’ve officially launched at DEMO), because that is one of the rules of launching at DEMO. Maybe we can have a fun contest guessing what they do (based on what we know about the founders – Santosh Dawara, Anjali Gupta and co., and their past activities.) Maybe it’s a software that allows easy dubbing of English movies into Hindi and easily creating subtitles for them in 18 languages (by people who don’t understand English). That will be fun!

(Note: we are not looking for “accurate” guesses here. We don’t want to encourage inadvertent breaking of their embargo. But it would be fun to get funny guesses. I think we can bring pressure upon Anjali to give a free Dubzer T-shirt to the funniest guess.)


Update: Dubzer has launched. See this PuneTech article for details. Shashikant and Rohan had posted comments that came too close to the truth for comfort, so we held them back in the moderation queue for a few days until Dubzer officially launched.

Reblog this post [with Zemanta]

Tech Trends for 2015, by Anand Deshpande, Shridhar Shukla, Monish Darda

On Monday, I participated in a Panel Discussion “Technology Trends” organized by CSI Pune at MIT college. The panelists were Anand Deshpande, CEO of Persistent Systems, Shridhar Shukla, MD of GS Lab, Monish Darda, GM of BladeLogic India (which is now a part of BMC Software), and me.

Anand asked each of us to prepare a list of 5 technology trends that we felt would be important in the year 2015, and then we would compare and contrast our lists. I’ve already published my own list of 5 things for students to focus on last week. Basically I cheated by listing a just a couple of technology trends, and filled out the list with one technology non-trend, and a couple of non-technology non-trends.

Here are my quick-n-dirty notes of the other panelists tech trends, and other points that came up during the discussion.

Here is Shridhar’s list:

  • Shridhar’s trend #1: Immersive environments for consumers – from games to education. Partial virtual reality. We will have more audio, video, multi-media, and more interactivity. Use of keyboards and menu driven interfaces will reduce. Tip for students based on trend #1: don’t look down on GUIs. On a related note, sadly, none of the students had heard of TED. Shridhar asked them all to go and google it and to checking out “The Sixth Sense” TED video.
  • Shridhar’s trend #2: totally integrated communication and information dissemination.
  • Shridhar’s trend #3: Cloud computing, elastic computing. Computing on demand.
  • Shridhar’s trend #4: Analytics. Analytics for business, for government, for corporates. Analyzing data, trends. Mining databases.
  • Shridhar’s trend #5: Sophisticated design and test environments. As clouds gain prominence, large server farms with hundreds of thousands of servers will become common. As analytics become necessary, really complicated, distributed processes will run to do the complex computations. All of this will require very sophisticated environments, management tools and testing infrastructure. Hardcore computer science students are the ones who will be required to design, build and maintain this.

Monish’s list:

  • Monish’s trend #1: Infrastructure will be commoditized, and interface to the final user will assume increasing importance
  • Monish’s trend #2: Coming up with ideas – for things people use, will be most important. Actually developing the software will be trivial. Already, things like AWS makes a very sophisticated server farm available to anybody. And lots of open source software makes really complex software easy to put together. Hence, building the software is no longer the challenge. Thinking of what to build will be the more difficult task.
  • Monish’s trend #3: Ideas combining multiple fields will rule. Use of technology in other areas (e.g. music) will increase. So far, software industry was driven by the needs of the software industry first, and then other “enterprise” industries (like banking, finance). But software will cross over into more and more mainstream uses. Be ready for the convergence, and meeting of the domains.
  • Monish’s trend #4: Sophisticated management of centralized, huge infrastructure setups.

Anand’s list:

  • Anand’s trend #1: Sensors. Ubiquitous tiny computing devices that don’t even look like computers. All networked. And
  • Anand trend #2: The next billion users. Mobile. New devices. New interfaces. Non-English interfaces. In fact, non-text interfaces.
  • Anand’s trend #3: Analytics. Sophisticated processing of large amounts of data, and making sense out of the mess.
  • Anand’s trend #4: User interface design. New interfaces, non-text, non-keyboard interfaces. For the next billion users.
  • Anand’s trend #5: Multi-disciplinary products. Many different sciences intersecting with technology to produce interesting new products.

These lists of 5 trends had been prepared independently, without any collaboration. So it is interesting to note the commonalities. Usability. Sophisticated data analysis. Sophisticated management of huge infrastructure setups. The next billion users. And combining different disciplines. Thinking about these commonalities and then wondering about how to position ourselves to take advantage of these trends will form the topic of another post, another day.

Until then, here are some random observations. (Note: one of the speakers before the panel discussion was Deepak Shikarpur, and some of these observations are by him)

  • “In the world of Google, memory has no value” – Deepak
  • “Our students are in the 21st century. Teachers are from 20th century. And governance is 19th century” -Deepak
  • “Earning crores of rupees is your birthright, and you can have it.” – Deepak
  • Sad. Monish asked how many students had read Isaac Asimov. There were just a couple
  • Monish encouraged students to go and read about string theory.
Reblog this post [with Zemanta]

Web Scalability and Performance – Real Life Lessons (Pune TechWeekend #3)

Last Saturday, we had TechWeekend #3 in Pune, on the theme of Website Scalability and Performance.  Mukul Kumar, co-founder, and VP of Engineering at Pubmatic, talked about the hard lessons in scalability they learnt on their way to building a web service that serves billions of ad impressions per month.

Here are the slides used by Mukul. If you cannot see the slides, click here.
Web Scalability & Performance

The talk was live-tweeted by @punetechlive and @d7ylive. Here are a few highlights from the talk:

  • Keep it simple: If you cannot explain your application to your sales staff, you probably won’t be able to scale it!
  • Use JMeter to monitor performance, to a good job of scaling your site
  • Performance testing idea: Take 15/20 Amazon EC2 servers, run JMeter with 200threads on each for 10 hours. Bang on your website! (a few days later, @d7y pointed out that using openSTA instead of JMeter can give you upto 500 threads per server even on old machines.)
  • Scaling your application: have a loosely coupled, shared nothing, stateless, distributed architecture
  • Mysql scalability tip: Be careful before using new features, or new versions. Or don’t use them at all!
  • Website scalability: think global. Some servers in California, some servers in London, etc. Similarly, think global when designing your app. Having servers across the world will drive architecture decisions. When half your data-center is 3000 miles from the other half, interesting, non-trivial problems start cropping up. Also, think carefully about horizontal scaling (lots of cheap servers) vs vertical scaling (few big fat servers)
  • memcache tip: pre-populate memcache with most common objects
  • Scalability tip: Get a hardware load balancer (if you can afford one). Amazon AWS has some load-balancers, but they don’t perform so well
  • Remember the YouTube algo for scaling:
    while(1){
    identify_and_fix_bottlenecks();
    eat_drink();
    sleep();
    notice_new_bottleneck();
    }

    there’s no alternative to this.
  • Scalability tip: You can’t be sure of your performance unless you test with real load, real env, real hardware, real software!
  • Scalability tip – keep the various replicated copies of data loosely consistent. Speeds up your updates. But, figure out which parts of your database must be consistent at all times, and which ones can have “eventual consisteny”
  • Hard lessons: keep spare servers at all times. Keep servers independent – on failure shouldn’t affect other servers
  • Hard lessons: Keep all commands in a script. You will have to run them at 2am. Then 3am. Then 7am.
  • Hard lessons: Have a well defined process for fault identification, communication and resolution (because figuring these things out at 2am, with a site that is down, is terrible.)
  • Hard lessons: Monitor your web service from 12 cities around the world!
  • Hard lesson, Be Paranoid – At any time: servers can go down, DDOS can happen, NICs can become slow or fail!

Note: a few readers of of the live-tweets asked questions from Nashik and Bombay, and got them answered by Mukul. +1 for twitter. You should also start following.

Reblog this post [with Zemanta]

5 things that Computer Science Engineering students should focus on

What should students be really focusing on? Somebody asked me this question recently – Imagine students who are in 2nd or 3rd year of their degree course right now. They’ll spend a few years finishing college, and a few years just learning the ropes at their first job. So it will really be about 5 years before their career really starts. What will the software technology world be like at that time, and what are the skills that students can work on acquiring right now to ensure that they are well positioned to thrive?

Of course, 5 years is a long time, and to quote Neils Bohr, prediction is very difficult, especially about the future. Still I think some general trends are clear, and there are some other timeless skills that are worth looking at. Based on that I’m giving my list below.

Click on this icon to see all PuneTech articles related to tech education in Pune
Click on this icon to see all PuneTech articles related to tech education in Pune

But wait!

Let me not bias your thoughts. Before you read my list, skip to the comments section below, and put down your list. Then read my list and critique it again in the comments. Hopefully we can have a good discussion that will benefit students.

So, here’s my list of areas students need to be thinking about:

  • The next billion customers: The IT revolution has probably reached a billion people of the world so far. In the next 5 years, it will reach the next billion. These will be a very different set of people. Many of them will be illiterate – so you need to focus on non-text, non-English interfaces – video, animations, voice recognition. Search for “English Seekho” to get an idea of what I mean. Most won’t have money or electricity for computers, so mobile devices will rule – so you need to start playing with mobile platforms like Android. In general, search for the “the next billion” and you’ll find some interesting material put together by the likes of Nokia, and MIT giving you ideas on what to focus on.
  • Usability: As IT touches the lives of more and more people, less and less of them will be “computer savvy”, and less and less of them will view computing devices as something that needs to be learnt. Consequently, the products that will succeed, will be the ones that are easy to use. And making something easy to use is rather difficult. It is a sub-discipline of computer science, and there is a lot of theory, and a bunch of well-defined algorithms and practices you can use to make things easy to use. The whole area is called HCI (Human Computer Interaction), and UCD (User Centered Design) is a part of it. It’s an area that you must be familiar with
  • Computer Science Fundamentals: This will never go out of fashion, and yes, when I look at students coming out of our colleges, this appears to be a rather neglected area. Far too much emphasis on specific programming languages, and specific “technologies” is a mistake. Whatever the future holds, you will be well served by knowing the basic theory of computer sciences. Learn data-structures and algorithms. If you don’t have a favourite data-structure, and an algorithm that you find beautiful, then your computer science education is incomplete. If, after seeing an algorithm, your first thought is not about the complexity of the algorithm (O(n), O(log n), etc.), then you need to hit your books again. If you’ve only learned Java and C#, and you don’t really understand pointers, heaps, stacks, you will sooner or later be at a disadvantage. Understand the basics. And while you’re at it, also learn mathematics and statistics.
  • Presentation skills: This is not a computer science skill, but this is one of the most important skills that computer science students are missing. You must treat presentation as equally important, or more important than your program, design, and algorithms. And you must spend as much time learning presentation (from books, in classes, and in practice) as you spent on programming languages, and computer science subjects. I’m sure you haven’t done that, hence this item in my list. You should know how to write well. Not just papers and documents, but much more importantly, emails, and blog posts, and facebook wall postings, and tweets. You must think about what the user/reader/client wants to know (instead of what you know and want to tell). And of course, you must know how to speak well. How to tell a story instead of listing some arcane facts about your work. How to leave out stuff that you find extremely interesting, but the listener doesn’t.
  • Economics: Scott Adams, the creator of Dilbert says: “When you have a working knowledge of economics, it’s like having a mild super power.” Basically, if you understand the fundamentals of economics, you can see and understand what drives people and technologies and success and failure a lot better than people who do not understand it. I hated the fact that I was made to study economics in IIT for my computer science course. It seemed like a complete waste of my time. Now, looking back, I think it was probably the most important course.

What do you think students should be focusing on?

(Note: I’m supposed to be participating in a panel discussion in MIT on Monday, 7th Sept, on this topic. Instead of going there and spewing my gyaan, I thought I would take this opportunity to have a larger discussion on this topic, and your comments will help me do a better job (or go there with a better list), so please leave comments. Thanks.)

(Update: Please note: Many comments on this article are by 12th std. students who want to know how to select an engineering college or branch. In response to all of those, I’ve written an article on how 12th std students should select an engineering college/branch. Please read that article, and ask your doubts there. I will be deleting any comments on this post that are related 12th std choices.)

Reblog this post [with Zemanta]

Resisting Scala – Why good managers resist great new technologies

Dhananjay Nene, a software architect, a passionate programmer, an internet enthusiast, is one of the strong, in-depth, technical voices that graces tech events in Pune, and the online/offline tech community. In spite of an MBA from IIM-A, he has remained a techie, but he uses his dual background to good advantage – amongst managers, he becomes a techie, explaining to them complexities they don’t understand or appreciate, and amongst a group of techies he starts channeling managers, to hammer some business sense into them.

In the latest post on his blog (which you must subscribe to), he is pretending to be a manager who is resisting exhortations from his techies that the group should switch all development to Scala, the hot new language that is touted as a long-term replacement for Java. Note: these are not necessarily Dhananjay’s personal views – he is just trying to explain to techies all the issues that a good manager might worry about with respect to adoption of new technologies.

This is a must-read for all techies, and hence, is reproduced here with permission.

Why should I switch to Scala?

This post is a role-play and does not reflect my individual opinion about scala accurately. I am convinced about the capabilities and features of Scala along with the fact that it deserves the mantle of a long term replacement for Java. However language adoption goes beyond technical capabilities, and this post is a speculation on what a typical manager might be dealing with when attempting to decide whether to switch to Scala.

So I have been reading a lot about Scala lately and even opinions about how it will be a long term replacement for Java. I’ve also read some interesting writeups about Scala adoption such as On Scala’s Future and A Tipping Point for Scala. While I used to code a lot, my responsibilities today require me to interact with and address a lot of issues including those faced by our customers, our development teams and also engage with my peers and superiors on many other difficulties bedeviling our organisation. This gives me little time to try out Scala. I know I should be doing that, but sincerely I do not have the time. So I rely on the feedback of my team, the trade journals and other influential architects within and outside my organisation.

I have heard about many developers switching from Java to Python / Ruby. However I have heard of relatively only a smaller number of large Java shops which have done the shift – most of the switch stories I’ve heard reflect a smaller sized teams. I can feel the excitement Scala has generated amongst the development teams – the brevity, the functional programming model introduction, the exciting stuff being done concurrently et al. I have no doubt that, given so much excitement it must really be a good language.

To introduce my organisation – it is one of those shops which service many projects concurrently. Given the tremendous business and growth, I must confess we do not always have the luxury of being able to hire the most top notch talent. We do have a lot of projects we use Java for, and thats a language our customers are comfortable with. I’ve had some of the senior people check out Scala to gain some feedback into the language. But at this stage I must say I am inclined to evaluate the shift but not convinced enough to do so. I am sure that I could if convinced drive the change to Scala incrementally. However my fear stems from the fact that if things don’t turn out well, despite all the great advice I’ve received – its going to be my rear end on the line. So here’s some of my concerns regarding evaluating the shift to Scala and there are many of them, so some of you might be able to help me through this thought process.

  • Functional Programming : I’m sure in many ways it rocks. But my guys tell me they are not sure how to use it in the typical bread and butter applications which read from database, do some processing and write back to the database. Does Functional Programming help me in this context ? Will my team scale into being able to write functions with no side effects assuming thats a desirable goal ? What if they tie themselves up in knots and my release to the customer is risked ? I can’t afford that. Is functional programming even desirable in such contexts ? So I am not sure if in these contexts I should just ditch functional programming and work with just normal imperative programming capabilities of Scala. I am so confused, and afraid.
  • Different Syntax : While Scala runs on the JRE, its syntax is very different from Java. From what I could gather, it is much easier for a Java programmer to read (make sense of) simple Python code than to read Scala code. Is it true ? So even if I do get compatibility in terms of the runtime environment, would I be picking up a language that is syntactically so different a language that it would involve a substantial relearning curve ? I remember when we had to learn Java and Javascript. For better or for worse these were indeed relatively minor modifications of the C/C++ syntax, compared to what I sense as the syntactic shift between Java and Scala. Am I wrong ? If so, could you help point me to resources which help me understand that Scala code is not much different than Java ?
  • Sample code : Guys, I need your help. I need to see some good sample code. Some code which reflects how a typical application is architected, designed and programmed in Scala. And I don’t need it for a complex multi threaded actor based processing – I just need to see simple J2EE server based departmental applications maybe a simple recruitment tracking or library maintenance application. If I find a good one, I’ll just take it and give it to my team and say – there, thats how we’re largely going to build it, and even if we make a few changes along the way we at least have a reasonable template that we can build from.
  • Dumbed down environment : I remember my great adventures with C and vi and make. But my team today is very different. They want great IDEs. They must have syntax highlighting, autocompletion and nice refactoring capabilities. If I ask them to move, some of them might be excited about the change and be willing to overcome these short term hurdles. But there are some of them who will not be keen to do so and may be disinclined to support such a shift. And at the end of the day my ability to conduct this shift is a function of my ability to carry a large proportion of them along with me. Even when I considered a shift from svn to git, the IDE support was a big issue even though quite obviously git capabilities were really exciting. I couldn’t push along that change, and in this case we are talking of changing the language.
  • Is this a good time to shift to Scala ? I remember the early adopters of Java from 1996 thru 2001. While they gained a lot of experience, JRE and J2EE really matured only post JRE 1.3. Scala seems to be coming out with so many enhancements so fast, I am not sure if it has stabilised. I am told there is a 2.8 coming out in a few months. So if I train my team and Scala continues to change rapidly will I have to keep on retraining my team regularly ? And what about the customers I take to production. Will the frequent upgrades mean I end up supporting multiple customers on multiple versions of Scala ? Maybe Scala is stable but it would be helpful for someone important enough to make a clear statement that there are no new major shifts anticipated anytime soon and that these version shifts are likely to be no faster than the JRE version upgrades (which were fast enough).
  • Support from peers and superiors : I remember the day I decided to shift to Java. What made the move easy for me was the sheer fact that Java was a big paradigm leap away from the then dominant C++. Not only was it cross platform with binary compatibility thrown in for good measure, Sun ensured that it made all the right noises to appeal to the enterprise architects and all the business managers. I see the senior developers in my team clamouring for the shift to Scala, but my peer managers and my superiors don’t display even the fraction of the enthusiasm they displayed during the Java shift. The implication for me is that the risk cover I get when I order the shift is far lesser than what I had when I made the move to Java. Which means if things don’t quite work out well, I’m really going to be screwed.
  • Business friendliness : I understand all the nice talk about the technical excellence of Scala. But I really need to translate all these great language features into a projected ROI that I can use to convince others about. So I would like to see actual case studies of applications that were moved to Scala and what impact it had on the time and cost so that I can use it to compute my ROI. And what scares me is that learning curve may risk the initial applications long enough to push my breakeven point of shifting to Scala well beyond a 12 month and perhaps even a 24 month period. I fear things might not be as difficult but in absence of known studies, I am likely to lean towards projecting a worst case scenario rather than an optimistic one.

So folks, I am asking for your help. And while a lot of you may think that people like us who balk at the thought of limited IDE support are wimps, please remember that 80% of us don’t fit into the top 20%. And if you would like Scala to be popular, you need us as much as we need you. And if you are not too sure, please remember Lisp and Smalltalk are great languages as well.

About the author – Dhananjay Nene

Dhananjay is a Software Engineer with around 17 years of experience in the field. He is passionate about software engineering, programming, design and architecture. He did his post graduation from Indian Institute of Management, Ahmedabad, and has been involved in Senior Management positions and has managed team sizes in excess of 120 persons. His tech blog, and twitter stream are a must read for anybody interested in programming languages or development methodologies. Those interested in the person behind the tech can check out his general blog, and personal twitter stream. For more details, check out Dhananjay’s PuneTech wiki profile.

Reblog this post [with Zemanta]