Monday, June 28, 2010

ACM Hyderabad Event: Contemporary Mobile Application Platforms

The ACM chapter in Hyderabad collaborated with ITSAP to host a full day event on Mobile Computing on June 26. Most of the ACM events have been one hour lectures, usually in the evening, but the ACM board started thinking about what might be of interest for a full day event, and came up with Mobile as a theme. We were lucky to get participation from some great resources, and the plan came together. We will continue to have lectures approximately monthly, but this event shows that there is interest in more in-depth events as well.

The morning consisted of a series of four lectures. In the afternoon, there was an Android code lab, followed by a Windows Mobile 7 code lab. One of the most common questions before the event was, "Is it free?" Yes, it was free, done entirely with donated time and resources.

The morning lectures were attended by approximately 150 people; the afternoon code labs by about 90 and 50 people, respectively. The event was free, and the talks were relevant and interesting. A few topics came up frequently, such as certification; migration to new versions, and so on. I certainly found it an interesting day.
A lot of the feedback was positive, but the level of the audience was mixed, with predictable results in the code labs.

I would like to thank some of the many people who contributed to making this event possible. In particular:
  • CA, for providing the facilities, including a lovely auditorium, and tea and lunch. Thank you very much!

  • All the presenters, for sharing their expertise and time:
    • Mohan Vamsi, Senior Architect at the Mobile COE, Cognizant, gave an overview of the area, and told of some of the considerations in developing mobile solutions
    • Rajdeep Dua and Dan Brunton, Developer Advocates at Google, gave an overview of the Android platform.
      • Dan was a surprise addition to the program: he specializes in Mobile games, and was a great addition due to his specialized insight. He came specially from Mountain View to participate in this program.
    • Sudeep Bharthi, Director, Mobile Platforms and Tools, Microsoft, gave an overview of the Windows Mobile 7 platform, and some of the design goals. He also gave a quick demo of creation of a small app.
    • The scheduled speaker from Infosys was unable to attend, so we were lucky to have with us Rakesh Kapur, Senior Member, Infosys Consulting, and Ms. Gnanapriya, Chief Architect, Infosys. They traveled from Bangalore for the event, and gave an overview of the Infosys Flypp platform.

  • All the instructors who helped in the afternoon code labs. They led the participants through a programming problem, and gave their time and expertise to help with problems ranging from software installation to how to optimize their design.

    • From Google, for the Android Code Lab:
      • Rajdeep Dua led the creation of a Notepad application
      • Dan Brunton showed some tricks in using the debugger, such as loading the Android source code in order to step through and see how it works.
      • And helping in the audience:
        • Anirudh Dewani
        • Gaurav Vijay
        • Harshitha Menon
        • Saurabh Singh

    • From Microsoft, for the Windows Mobile 7 Code Lab

      • Mr. Reddy Duggempudi led the code lab, which allowed one to run a video and simultaneously flip it on two axes; very cute.
      • Helping in the audience were
        • Alok Jain
        • Gopinath CH
        • Madhu Vadlapudi
        • Kedar Ajit Rudre
        • Neeraj Jain
        • Sudeep Bharti

      • Moreover, a special thanks to the Microsoft team for running back to their office to bring extra power cords for the use of the participants in the two codelabs! This made a huge difference to many people.
There were many people behind the scenes as well, working out the logistics, and our thanks to all of them.

We hope for other similarly popular events, and are always looking for volunteers to help us on the ACM Hyderabad program committee, as well as to make programs like this work. Please write to the officers if you are interested in proposing an event, or helping to plan events. And follow the events at www.acmhyd.org!

Monday, February 8, 2010

ACM-W India Launch Event, 21 Jan, 2010, Bangalore

There was an ACM-W meeting after the ACM India Launch event on Jan. 21st. Both Professor PJ Narayanan and Beryl Nelson from the Hyderabad ACM chapter were in attendance.

ACM-W is a committee that supports women in computing. Anyone can join the ACM-W interest list at this link.

A number of people spoke at this event, including Rick Rashid, VP or Research at Microsoft; Dame Wendy Hall, ACM President; Ms. Gayatri Buragohain, the new ACM-W India Ambassador; Ms. Kumudha Sridharan, VP of Testing Services at Wipro; Ms. Sridevi Sattaluri, working long distance for RTI International; and Profressor Sharat Chandra, Dept of CSE, at IIT Bombay. There was a lot of discussion during and after this event, often about the ways women can hold both family and work responsibilities, and reasons for differences in numbers of women and men at various stages of academic and professional life.

Some of the highlights:

Dame Wendy Hall introduced the evening, and started with a few women who have influenced computing, and influenced her. Ada August Lovelace, the daughter of Lord Byron and the first programmer of Babbage's computing machine, and Grace Hopper, who was a Navy Admiral and one of the first programmers of the ENIAC, are people who resonate for me, as I worked on DEC's Ada compiler for many years, and I heard Grace Hopper speak in person at DEC. She also mentioned that in early computing, where much of the programming involved things like moving wires, the women who managed these connections were called "Computers".

Wendy also spoke about two of her own personal mentors, one of whom, Karen Spärk Jones, also showed her how to lead a large computing society, something that has come in useful now in her current position as President of the ACM. She also was a winner of the ACM-W Athena Lecturer award, an award supported by Google and given to women with significant achievements in computing. Unfortunately, she passed away before the formal award ceremony, but she recorded a speech for the ceremony. One of the things she addressed in her remarks is the question people often asked her: "Why do you put so much energy into mentoring women?" and her answer was, "Computing is too important to be left to men."

A final interesting point was that she showed some data about entry of students into Computer Science programs over time. There was a point when the number of entrants went down universally, but the enrollment of men recovered, and that of women never did. Wendy points out that this coincided with the marketing of the PC. Her theory is that the PC was marketed as a boy toy, and that women enrollments never have recovered from that. She also pointed out that Rick Rashid's video had no women in positions of scientist, only as dancers, something that she and Barbara immediately pointed out to him, but that he had not noticed. This, even though he is one of the sponsors of the Grace Hopper conference.

Ms. Gayatri Buragohain, Feminist Approach to Technology, has been appointed the ACM-W India Ambassador. She has an ambitious program in mind to encourage women in CS academics and research as well as in industry. She quoted the following statistics:
  • 2002:
    • Women in entry positions around 40%
    • Women form 21% of the work force in the Indian software industry
    • Decision makers are just 2-3%. (Nasscom)
  • 2008:
    • Women in entry positions around 40%
    • Women form 23% of the work force in the Indian software industry
    • Decision makers are just 3%. (Nasscom)

It was also mentioned that there is an effort in place to bring a regional Grace Hopper conference to India, probably in Bangalore late in 2010. As more information becomes available about activities of the ACM-W in India, we will post to the Hyderabad ACM mailing list.

If you are interested in attending or organizing ACM-W events in Hyderabad, please contact hyderabad-acm-officers googlegroups com

ACM India Launch Event: 21 January, 2010, in Bangalore

An ACM India Launch event was held at the Taj Residency in Bangalore on Jan. 21, 2009, just before the start of the ACM Compute 2010 conference, hosted by the Bangalore chapter of the ACM. Four members of the ACM Hyderabad officer group attended: Kamal Karlapalem, PJ Narayanan, Niranjan Hanasoge, and Beryl Nelson.

There were opening remarks by a number of people, but the five main speeches plus one panel discussion were as follows:
  • Wendy Hall, ACM President
  • Rick Rashid, Sr. VP for Research at Microsoft
  • Barbara Liskov of MIT, the most recent Turing Award Winner
  • Raj Reddy of CMU, another Turing Award Winner
  • Tony Hoare, currently working at Microsoft Research in Cambridge, UK, another Turing Award winner
  • A panel discussion on research in India

In the evening, there was a related event, a meeting of ACM-W, ACM Women in Computing. See a related blog post on that.

For a short overview of the talks:

Dame Wendy Hall, ACM President

Wendy highlighted the presence of 3 present and former ACM presidents, and 3 Turing award winners, including the most recent winner, Barbara Liskov. She spoke of the intention to increase ACM participation in India, and that this event is meant to help spur on such efforts.


Rick Rashid, Sr. VP for Research, Microsoft

This talk was really mostly about Microsoft's investment in research, and part of the emphasis was on the fact that in pure research, the benefits are not always apparent until later. He emphasized the importance of research in the company's agility.

MS has started a PhD intern program for Indian PhD students at Redmond Research.

Rick says that MS measures the research success in the numbers of publications in peer reviewed journals, and says that MSR contributes about 25% of patents for company.

A highlight of the talk was a video on Project Natal: http://en.wikipedia.org/wiki/Project_Natal
This is a system that allows the full body motion to control a computer environment; he highlighted the use of machine learning and vision techniques. He said that about 50% of the effort was at the software level; for example, in skeletal tracking plus software to interpret body angles.

Barbara Liskov

Barbara Liskov used her talk to walk us through the various steps she went through in doing the research for which she was cited in the Turing Award, which came as a surprise to her. She was cited for her contributions to concepts such as data abstraction, CLU, and type hierarchies. She went through her various projects, spoke of what experiences led to what sorts of skills and insights, talked about other papers that influenced her, and the people she worked with. Near the end she mentioned that her husband was scanning the internet when she won the award and found a comment along the lines of, "How could she win an award for that? We all know that!" This must have been rather fulfilling for her, to have articulated concepts that now are considered totally fundamental to Computer Science.

Barbara earned her PhD in AI with McCarthy at Stanford. However, she quickly realized that AI was not her interest; she completed the PhD, however, as she felt that the whole point was to have the PhD so she could study what she wanted to.

She took a job at Mitre, where she worked on Risc architectures and developed the Venus machine. One unusual feature at the time was the addition of semaphores to the machine. The Venus OS could support up to 16 users; a lot of the work was machine programming.

At the time there was concern about the software crisis: programming methodology and how to organize programs so that they do what they are supposed to. Interestingly, we still have that problem.

She addressed how to organize and structure programs. She referred to many papers that influenced her, but some were Dijkstra's March 1968 CACM paper on "Go to statement considered harmful", which said that program semantics and structure should be similar. At the time there were few control structures in languages, so people used goto.

N. Wirth's 1971 CACM paper on "Program development by stepwise refinement", in which he described top down vs. bottom up development, working with the 8 queens problem.

Parnas' 1971 IFIP paper on "Information distribution aspects of design methodology", on program structure.

At some point, she realized that she also had been using a design methodology called partitions:
Many programs used many global variables. Venus interacted with modules for global state via ops.

Barbara moved to MIT in 1972; she spoke of the various interactions that led to her proposing, with Steve Zilles, abstract data types with polymorphism, static type checking, and exception handling in SIGPlan 1974. Abstract data types have state and operations, and this made some of the more theoretical concepts under discussion at the time more accessible to programmers. Many discussions centered about the loss of power in high level languages, and about performance considerations. She also spoke of the realization that readability was a real consideration, more important even that writeability.

In the fall of 1973, she started to create the programming language CLU with 3 graduate students. She chose to create a programming language because programmers think in terms of programming languages, and there would be a good chance of use. They wrote the CLU compiler in itself, so they had a sanity check on its feasibility. She also says that because a compiler requires a precise definition, a programming language is a mathematical object.

In language design (and she calls every interface design a mini-language design), she calls out the trade off in expressive power, simplicity, performance, ease of use, uniformity, and scalability. They had some restrictions: no concurrency, no goto, no inheritance. She made some assumptions and decisions from her Lisp experience: a heap with a garbage collector, no block structures, separate compilation so that one could compile without a full definition and not require allocation of objects on the stack; but she introduced static type checking, as she found that useful.

She gave some examples of implementation decisions in areas like polymorphism, exception handling, and iterators. Her principles are based on accurate interfaces and avoiding useless code. She spent a lot of time thinking about how to handle parameterized checks so that compile-time checks would be possible, and decided to allow to specify what ops are required. They had a type definition instead of an object instantiation. For exception handling, they decided to support signalling, return, specifying where to go. She feels that CLU is still better than Java or C# in exception handling; Java requires you to write a handler, and C# throws up the stack.

She later found that another of her ideas had been labeled the "Liskov Substitution Principle": A subtype should behave like its supertype when accessed by supertype methods.

Challenges interesting to Barbara are in new abstractions, though not much is happening. She thinks that MPP will be important.

For an Internet computer: she says that the semantics are not yet defined.


Raj Reddy

Raj works at CMU, and is interested in education in rural areas. His talk was a projection of what could be, and a call to tackle some of the problems he posed. This talk is outlined very sketchily here, but it generated a lot of interest especially from students.

He said that people good at many things computers are not, but people make a lot of errors.
  • Catastrophic loss of data: didn't mean to do that
  • Unanticipated side effects: how did that happen
Would like to see:
  • Massive undo
  • Anytime, anywhere abort, like control c
  • Recognize what happened and respond
Problem: We forget
  • Could provide intelligent help, such as "What is" in search engines

Problem: People impatient. Would like to have:
  • Learn from experience
  • Update in background
  • Look ahead retrieval and computation, those that take time, give illusion of infinite power
  • Just in time learning
  • Gentle slope systems; easy things should be easy to do
  • Agents know about pgp,ftp, or whatever
Video of future: this showed a person interacting with an assistant system totally using voice.

Some of what he would like to see in the future:
  • Agent based architecture; no one working on this perhaps
  • Silky interface: speech, image, language, knowledge
  • Forgiving interfaces, tolerating error and ambiguity
  • Self improving - knowledge acquisition
  • Intelligent help
His summary:
  • Overcome human limitations
  • Eliminate language divide and literacy divide


Tony Hoare
:

Tony went back to Rick's comment that basic research is useful.

In 1968 predicted he could retire before his work was in use. He retired, took a job at MSR, found no one used his ideas in practice, except assertions.

He wanted to get people to use more verification. Thought a big problem would cause this, but found that people would actually find that the error was due to lack of testing, so they would do more testing. Which was frustrating to him.

But a big problem came in, a virus, code red. There he found use for his work during the reaction to security hole.

Therefore basic research should be done as usefulness can happen.

Tony is very interested in the "Verified software initiative": They would like to produce examples of verified software, typical of code people use, but has a formal specification, with verification and proof. He asked for participation in this project.
  • Proofs must be checked by computer
  • Results must be published
  • Will need very good mathematical tools
  • Development of these tools part of the project

Panel Discussion: C S Research in India

The panelists were:
  • P Venkat Rangan, VC Amrita University and an ACM Fellow
  • Vijay Bhatkar, of ETH and an ACM Fellow
  • Rajeev Rastogi, of Yahoo
  • Subu Goparaju, of Infosys SETLabs
Each panelist gave his perspective about the value of and need for research in India, along with recommendations of ways to effect positive change. It was a lively discussion.

Closing remarks

The closing remarks were made by PJ Narayanan, co-Chair of the ACM India Council and one of the founders of the ACM Hyderabad chapter.