Category Archives: Events

Turing100 Lecture: Life and work of John Backus (Fortran|BNF) – 2 Feb

The Turing100 Lecture Series come back with the 6th session. This time, there are two Technical talks, centered around the life and works of 1977 Turing Award recipient, Dr. John Backup.

In addition to several other contributions, Dr Backus is well-known for his pioneering work on Fortran as well as the inventor of the Backus-Naur Form (BNF) which is widely used as the notation for formal syntax.

On Saturday, 2nd Feb, Abhijit Vichare, will talk about the life and work of John Backus.

This will be followed by a session on “Early History of Fortran: The Making of a Wonder” by Prof. Uday Khedkar, Department of CSE, IIT-Bombay.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This year, the Turing 100 @ Persistent lecture series will celebrate the 100th anniversary of Alan Turing’s birth by having a monthly lecture series. Each lecture will be presented by an eminent personality from the computer science / technology community in India, and will cover the work done by one Turing award winner.

The lecture series will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet), Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Full schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

Fees and Registration

This is a free event. Anyone can attend.

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 2nd February. This event is free and open for anybody to attend. Register here

Call for Speakers: GNUnify 2013 – 3-day open-source technologies conference

The call for speakers for GNUnify 2013, one of India’s biggest open source conferences, which runs for 3 days in February (15, 16, 17 Feb) in SICSR, Pune, is now open.

If you have done any work with any open source technology, whether it is in the area of System Admin, Networking, Security, Web Technologies, Mobile Technologies, Cloud Computing, Scientific Computing, System Programming, or any General Topics or Trends in FOSS, please submit a proposal for a talk.

Lots of people from all over India, and also some from abroad, come for this conference. This is your chance to connect with people passionate about technologies, and enthusiastic students.

You can put in a proposal for a techie talk (short), a workshop (long – and more geared towards beginners), or a BOF (Birds of a Feather – where you just decide the topic and drive the discussion, and all the people interested in that topic collect together and discuss).

You don’t need to be an expert in the topic you propose for a talk. You just need to have done work in that area, and have actual hands on experience – that is good enough. At this point, you just need to submit a one paragraph abstract – so you have no excuse for not submitting a talk.

To submit a proposal go to the GNUnify website, create an account either using OpenID or username/password, and once you log into your account you should see a “Register a Talk/Workshop” button on the right side of the screen.

Event Report: VLSI Design Conference Pune 2013

(This is an event report of the VLSI Design Conference that was held in Pune in Jan 2013, by Shakthi Kannan. It originally appeared on his blog, and is reproduced here with permission for the benefit of PuneTech readers.)

The 26th International Conference on VLSI Design 2013 and the 12th International Conference on Embedded Systems was held at the Hyatt Regency, Pune, India between January 5-10, 2013. The first two days were tutorial sessions, while the main conference began on Monday, January 7, 2013.

26th VLSID 2013

Day 1: Tutorial

On the first day, I attended the tutorial on “Concept to Product – Design, Verification & Test: A Tutorial” by Prof. Kewal Saluja, and Prof. Virendra Singh. Prof. Saluja started the tutorial with an introduction and history of VLSI. An overview of the VLSI realization process was given with an emphasis on synthesis. The theme of the conference was “green” technology, and hence the concepts of low power design were introduced. The challenges of multi-core and high performance design including cache coherence were elaborated. Prof. Singh explained the verification methodologies with an example of implementing a DVD player. Simulation and formal verification techniques were compared, with an overview on model checking. Prof. Saluja explained the basics of VLSI testing, differences between verification and testing, and the various testing techniques used. The challenges in VLSI testing were also discussed.

Day 2: Tutorial

On the second day, I attended the tutorial on “Formal Techniques for Hardware/Software Co-Verification” by Prof. Daniel Kroening, and Prof. Mandayam Srinivas. Prof. Kroening began the tutorial with the motivation for formal methods. Examples on SAT solvers, boundary model checking for hardware, and bounded program analysis for C programs were explained. Satisfiability modulo theories for bit-vectors, arrays and functions were illustrated with numerous examples. In the afternoon, Prof. Srinivas demoed formal verification for both Verilog and C. He shared the results of verification done for both a DSP and a microprocessor. The CProver tool has been released under a CMBC license. After discussion with Fedora Legal, and Prof. Kroening, it has been updated to a BSD license for inclusion in Fedora. The presentation slides used in the tutorial are available.

Day 3: Main conference

The first day of the main conference began with the keynote by Mr. Abhi Talwalker, CEO of LSI, on “Intelligent Silicon in the Data-centric Era”. He addressed the challenges in bridging the data deluge gap, latency issues in data centers, and energy efficient buildings. The second keynote of the day was given by Dr. Ruchir Puri, IBM Fellow, on “Opportunities and Challenges for High Performance Microprocessor Designs and Design Automation”. Dr. Ruchir spoke about the various IBM multi-core processors, and the challenges facing multi-core designs – software parallelism, socket bandwidth, power, and technology complexity. He also said that more EDA innovation needs to come at the system level.

Dias

After the keynote, I attended the “C1. Embedded Architecture” track sessions. Liang Tang presented his paper on “Processor for Reconfigurable Baseband Modulation Mapping”. Dr. Swarnalatha Radhakrishnan then presented her paper on “A Study on Instruction-set Selection Using Multi-application Based Application Specific Instruction-Set Processors”. She explained about ASIPs (Application Specific Instruction Set Processor), and shared test results on choosing specific instruction sets based on the application domain. The final paper for the session was presented by Prof. Niraj K. Jha on “Localized Heating for Building Energy Efficiency”. He and his team at Princeton have used ultrasonic sensors to implement localized heating. A similar approach is planned for lighting as well.

Post-lunch, I attended the sessions for the track “B2. Test Cost Reduction and Safety”. The honourable chief minister of Maharashtra, Shri. Prithviraj Chavan, arrived in the afternoon to formally inaugurate the conference. He is an engineer who graduated from the University of California, Berkeley, and said that he was committed to put Pune on the semiconductor map. The afternoon keynote was given by Mr. Kishore Manghnani from Marvell, on “Semiconductors in Smart Energy Products”. He primarily discussed about LEDs, and their applications. This was followed by a panel discussion on “Low power design”. There was an emphasis to create system level, software architecture techniques to increase leverage in low power design. For the last track of the day, I attended the sessions on “C3. Design and Synthesis of Reversible Logic”. The Keccak sponge function family has been chosen to become the SHA-3 standard.

Day 4: Main conference

The second day of the main conference began with a recorded keynote by Dr. Paramesh Gopi, AppliedMicro, on “Cloud computing needs at less power and low cost” followed by a talk by Mr. Amal Bommireddy, AppliedMicro, on “Challenges of First pass Silicon”. Mr. Bommireddy discussed the factors affecting first pass success – RTL verification, IP verification, physical design, routing strategies, package design, and validation board design. The second keynote of the day was by Dr. Louis Scheffer from the Howard Hughes Medical Institute, on “Deciphering the brain, cousin to the chip”. It was a brilliant talk on applying chip debugging techniques to inspect and analyse how the brain works.

After the keynote, I visited the exhibition hall where companies had their products displayed in their respective stalls. AppliedMicro had a demo of their X-gene ARM64 platform running Ubuntu. They did mention to me that Fedora runs on their platform. Marvell had demonstrated their embedded and control solutions running on Fedora. ARM had their mbed.org and embeddedacademic.com kits on display for students. Post-lunch, was an excellent keynote by Dr. Vivek Singh, Intel Fellow, titled “Duniyaa Maange Moore!”. He started with what people need – access, connectivity, education, and healthcare, and went to discuss the next in line for Intel’s manufacturing process. The 14nm technology is scheduled to be operational by end of 2013, while 10nm is planned for 2015. They have also started work on 7nm manufacturing processes. This was followed by a panel discussion on “Expectations of Manufacturing Sector from Semiconductor and Embedded System Companies” where the need to bridge the knowledge gap between mechanical and VLSI/embedded engineers was emphasized.

Day 5: Main conference

The final day of the main conference began with the keynote by Dr. Vijaykrishnan Narayanan on “Embedded Vision Systems”, where he showed the current research in intelligent cameras, augmented reality, and interactive systems. I attended the sessions for the track “C7. Advances in Functional Verification”, and “C8. Logic Synthesis and Design”. Post-lunch, Dr. Ken Chang gave his keynote on “Advancing High Performance System-on-Package via Heterogeneous 3-D Integration”. He said that Intel’s 22nm Ivy Bridge which uses FinFETs took nearly 15 years to productize, but look promising for the future. Co(CoS) Chip on Chip on Substrate, and (CoW)oS Chip on Wafer on Substrate technologies were illustrated. Many hardware design houses use 15 FPGAs on a board for testing. The Xilinx Virtex-7HT FPGA has analog, memory, and ARM microprocessor integrated on a single chip giving a throughput of 2.8 Terabits/second. He also mentioned that Known Good Die (KGD) methodologies are still emerging in the market. For the last track of the conference, I attended the sessions on “C9. Advances in Circuit Simulation, Analysis and Design”.

Shakthi Kannan

Thanks to Red Hat for sponsoring me to attend the conference.

About the Author – Shakthi Kannan

Shakthi Kannan is a Senior Software Engineer with Red Hat in Pune, and is also a very active member of the open source community. For more details about him, see his Linkedin Profile, or his blog.

CSI-Pune/POCC Internship Mela – get an internship job with Pune Startups

Pune Open Coffee Club and The Computer Society of India, Pune are jointly organizing an internship and job fair targeting MCx, BCx, BE and MBA students. The idea is to get together the startups and other companies of Pune with the students who are looking for internships and jobs.

This event is free to everyone. Interested students should see instructions for students below. Companies who wish to present at this event and offer internships/jobs should see instructions for companies below.

Note: Companies register here, and students register here

For Students

This is a job fair with a difference. Here you will not meet the same old large corporations, but will meet up with Pune’s rocking startups!

What’s so great about that?

You don’t find so many startups in one place, at one time, all accessible to interact with you!

Why work with startups?

Startups are cool. Startups are where the action is. The experience that you would get in a startup in a few months, would be better than what you would get from large corporations in a few years. In startups, you get an exposure to the various moving parts of a company – coding, testing, admin, HR, marketing… you name it! More than all of this, you get to work directly with founders of the company, who will one day make it very big (like Google, Twitter?).

What do startups want from me?

Life at startups can be very exciting – but you need to be prepared to give more than 100%. Many startups work on cutting edge technologies, and there is going to be a huge learning curve for you, to be able for you to meaningfully contribute to the company. So, it requires dedication, patience and a positive attitude.

I’m game. Am I eligible? Plus, when and where is the fair?

If you are pursuing your B.E, M.C.A, M.C.M, B.C.A, M.C.S, B.C.S or M.B.A, then you are eligible. Great, right? The fair is on 19th January from 10am to 5pm. The venue is Millennium National School, 18 Hill Side, Karvenagar, Pune – 411052. The directions are at: http://myshala.com/team/contact-us/

This must be costing a bomb?!

NO! This event is totally FREE of cost. However, prior registration is mandatory (and you have to arrange for your own food!)

How do I register for the event?

Register here: http://headtracker.in/JobFairForm.html

After you register, you can follow the updates for the event on punestartups.org

What do I need to do or bring along?

Get your resume along (d-uh!). Here is the format for the event:

  • It will be a full day event – 10am to 5pm.
  • The event will start with a talk from successful startup(s), talking about why startups are cool, and why it is worth your while to join one.
  • After that, the startups who are looking to hire will do some canvassing of why they are cool, what they are working on, which technology they use, and whom are they looking to hire etc. The time duration for this should be
    around 5 minutes per startup.
  • 10 chits will be given to each attending student, where (s)he has to choose the startups that they want to meet. All you have to do is put in a startup name of your choice to visit on each one.
  • There will be a lunch break (not going to be provided), and then startups will occupy their positions in the classrooms, and you will visit the booths as per their preference. 3 minutes will be given to have a one-on-one interaction with members of the startup.
  • The startup will collect the chit from you, and possibly, your resume. That will be a sign that the startup is interested in getting you to work for them! Startups would like to hire you from the very next day. Be aware of that!
  • Done. Go back with a great feeling of having interacted with Pune’s rocking startup community!

Whom do I contact if I have any questions?

Join the POCC mailing list on punestartups@googlegroups.com, and ask away!

For Companies

As a startup, it is not easy for you to go to campuses and approach students directly. That is why, this is a great opportunity – because of the number of startups presenting at this event, it will attract a large number of students. This is your chance to meet and impress a large crowd with minimal effort.

Only startups are invited to this event, so you’re not competing with the large companies here.

What do I get?

You get to meet a bunch of enthusiastic students, who are ready to work as interns at your great company, or would love to work with you too!

Which students are we inviting?

We are inviting MCx, BCx, BE and MBA Marketing students. Especially interesting are the students who are required to do a 6-month internship as a part of their degree. They work with you full-time, in your office for 6 months.

How many?

Approximately 300 students are expected.

I’m game. When and where is the fair?

The fair is on 19th January from 10am to 5pm. The venue is Millennium National School, 18 Hill Side, Karvenagar, Pune – 411052. The directions are at: http://myshala.com/team/contact-us/

This must be costing a bomb?!

NO! This event is totally free of cost. However, prior registration is mandatory.

Register here

Life and Times of Alan Turing by Mathai Joseph

InnoVidya and IUCAA invite everyone to a lecture on the life and time of Alan Turing, widely considered the father of computer science, by Dr. Mathai Joseph, who can be considered one of the senior most computer scientists in Pune.

Alan Turing, was a British mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, giving a formalisation of the concepts of “algorithm” and “computation” with the Turing machine, which can be considered a model of a general purpose computer. The most important award in computer science, the Turing Award, is named after Alan Turing.

This year marks the 100th anniversary of Alan Turing’s birth, and hence we are celebrating it with a talk on his life and his contributions to computer science. This talk is targeted towards anyone interested in computers – no special knowledge of computer science will be assumed.

About the Speaker – Dr. Mathai Joseph

Dr. Mathai Joseph did his PhD at the University of Cambridge, UK, and joined the Tata Institute of F undamental Research in 1968. He was appointed to a Chair in Computer Science at the University of Warwick in 1985. At various times, he has been a visiting professor at Carnegie-Mellon University, Eindhoven University of Technology, University of Warwick and University of York.

He joined Tata Consultancy Services in 1997 as an Executive Vice President and was the Executive Director of the Tata Research Development and Design Centre until his retirement in 2007.

He was Chairman of the Board of the International Institute for Software Technology from 2 005-2007 . He has written several books and numerous papers.

Mathai Joseph was elected as a Member-at-Large of the ACM Council in 2008. He is the President of ACM India and has been a member of the ACM India Council since it was formed in 2009.

About InnoVidya

InnoVidya is a group of educators and industry professionals who want to reach out to students, teachers, trainers and working professionals and catalyze significant improvements in their learning ecosystems. In addition to the InnoVidya website and the InnoVidya mailing list, we also hold public lectures on the 4th Saturday of every month. Lectures usually involve talks by senior educators, industry visionaries, or social and/or for-profit entrepreneurs working in the space of higher education.

We are currently based in Pune, but we expect that this initiative will expand all over India.

If you’re interested in the state of education in India, please subscribe to email/RSS updates at: http://innovidya.org.

Event Details

The event is on Saturday, January 19 , 2013, at 11am, at the Chandrashekhar Auditorium, IUCAA, at University of Pune campus.

Fees and Registration

This event is free and open for anybody to attend. There is no need to register.

LiveBlog: Maharashtra CM Prithviraj Chavan’s address at VLSI Conf Pune

(This is a live-blog of the keynote address of Prithviraj Chavan, CM of Maharashtra, at the 26th International Conference on VLSI Design that is currently going on at the Hyatt, in Pune. For those who didn’t know, Prithviraj Chavan is an electrical engineer from BITS Pilani and Univ of California, Berkeley.)

The semiconductor industry in India started first in Bangalore, and then in Delhi/NCR. Pune is late to this game. But we have the potential to better than Delhi/NCR, and even Bangalore.

These are the things that need to happen for Pune to become a semiconductor hub:

  • Government should create facilities where the expensive EDA tools are setup, and various companies from industry can sign up for use of the tools.
  • Work on increasing the quality of manpower in and around Pune. We have to potential of having one of the highest ratios of high quality – low cost manpower. We need to work with universities and other educational institutions in this area.
  • We should continue trying to attract fabs to come and setup in Pune

We are a large customer of mobiles and other electronic devices. As we continue to grow at 8-9%, we will become an increasingly attractive market. And there will also be many opportunities to create specialized devices for local markets. This can drive innovation and incubation.

The CM said that he is completely committed to working with us (i.e. the tech community in Pune) to ensure that Pune gets put on the semiconductor map. He announced that any company investing in semiconductors in Maharashtra will get a rebate on their VAT until they recoup their investment. In addition, he hopes that the government will be able to help jumpstart this industry by these means:

  • Government will set up the physical infrastructure
  • Government will put up the initial funding for the expensive tools
  • Government will set up training facilities to get people started on this
  • We should together set up server farms, and other infrastructure needed to get started

Maharashtra is larger than most countries in the world, as large as Mexico, and larger than any European country. It attracts 33% of the FDI that came into the country. Maharashtra is well positioned to become the chip destination of India.

#VLSI-Conf-Pune 2013 Event Report: Intelligent Silicon in the Data-Centric Era

(This is a live-blog of the keynote address given by Abhi Talwalkar at the 26th International Conference on VLSI Design being held in Pune. Abhi is the President and CEO of LSI Corporation. (LSI has had a large development center in Pune for the last 4 years.)

(Note: since this is a live-blog, it is only a partial and unorganized report, and might contain errors and omissions.)

The innovation happening in the world since the first transistor was developed has been unparalleled in history. This has led to various changes, including a flat world where anyone can innovate from anywhere in the world, there is lots and lots of collaboration, and where for the first time, information and data are the most important currency.

As a result, we are now seeing a deluge of data. The reasons are:

  • Everybody is on social networks and creating/sharing data
  • Everyone has personal devices (8.5 billion devices sold per year, 40% of them are smart devices), and again people are living a lot of their lives through these devices
  • Other devices are generating data automatically, and will continue to do so

The technology challenges resulting from this data deluge are in the areas of devices, the data centers and the network. These are the challenges in these areas:

  • Bring your own device. Previously, companies insisted on employees using company approved devices (e.g. Blackberry only, and no iPhones). But more and more employees want to use their own devices, and company IT departments are forced to deal with them. The variety of devices that need to be supported is a proble. And the devices need to be always on and always connected – and so do the enterprise backend apps that need to support these devices. The enterprise IT apps need to support mobile devices seamlessly, and in general there is a consumerization of enterprise IT – driving a newfound focus on improved end-user experiences.
  • Green Impact of Devices: All these devices generate e-waste, emissions and use up energy
  • Network bottlenecks: the wireless spectrum which these devices use is getting congested. The backhaul network connections are also facing a capacity crunch. And security in all these areas is an area of increasing concern.
  • Green Impact of DataCenters: Data centers have increased energy consumption by 3x. Telecom in India consumes 3 billion litres of diesel. This is second only to railways, and is a major contributor to the carbon emissions.

Since most of the above seem like software challenges, what does Silicon (Hardware/VLSI/Embedded systems) have to do with them? The answer is that silicon allows you do more with less, and is a key catalyst for innovation. There is much more power in CPUs today than we need – and we need to figure out how to use it. There needs to be more intelligent hardware which knows how to protect the data, where to move it, etc.

What are the specific problems that can/should be solved in silicon?

  • Hardware Accelerators: A full suite of silicon based accelerators can be deployed in the network and the data center.
  • Improve latency and capacity: utilization levels continue to remain low in data-centers, and can be improved significantly
  • Intelligent caching: For example, appropriate use of flash memory between magnetic storage and memory can get much better performance without a significant increase in infrastructure.
  • Use sensors and gather data to make the silicon more intelligent and take better decisions. For example, many companies would leave lights on all night but now more and more are deploying sensors which will turn off the lights when not required. This concept can be extended to many other areas.

Turing100 Lecture: Life and work of Jim Gray – By Anand Deshpande – 5 Jan

The Turing100 Lecture Series come back with the 6th session. This time, there are two Technical talks, centered around the life and works of 1998 Turing Award recipient, Dr. Jim Gray.

Jim Gray made seminal contributions to database and transaction processing research and implementions of real systems at Tandem, IBM, and Microsoft. Among his best known achievements are

  • granular database locking
  • two-tier transaction commit semantics
  • the “five-minute rule” for allocating storage
  • the data cube operator for data warehousing applications
  • describing the requirements for reliable transaction processing (memorably called the ACID test) and implemented them in software.

On Saturday, 5th January, Anand Deshpande, CEO of Persistent Systems, will talk about the life and work of Dr. Jim Gray, the recipient of the 1998 Turing Award. This talk is a part of the Turing Awards monthly lecture series that happens at Persistent’s Dewang Mehta Auditorium.

This will be followed by a session on “Software Faults, Failures and Their Mitigation – contributions of Dr. Jim Gray to the area of Fault Tolerant Systems” by Prof. Kishore Trivedi, Duke University, USa.

The event is free for everyone to attend. Register here

About the Turing Awards

The Turing awards, named after Alan Turing, given every year, are the highest achievement that a computer scientist can earn. And the contributions of each Turing award winner are then, arguably, the most important topics in computer science.

About Turing 100 @ Persistent Lecture Series

This year, the Turing 100 @ Persistent lecture series will celebrate the 100th anniversary of Alan Turing’s birth by having a monthly lecture series. Each lecture will be presented by an eminent personality from the computer science / technology community in India, and will cover the work done by one Turing award winner.

The lecture series will feature talks on Ted Codd (Relational Databases), Vint Cerf and Robert Kahn (Internet), Ken Thompson and Dennis Ritchie (Unix), Jim Gray, Barbara Liskov, and others. Full schedule is here

This is a lecture series that any one in the field of computer science must attend. These lectures will cover the fundamentals of computer science, and all of them are very relevant today.

Fees and Registration

This is a free event. Anyone can attend.

The event will be at Dewang Mehta Auditorium, Persistent Systems, SB Road, from 2pm to 5pm on Saturday 5th January. This event is free and open for anybody to attend. Register here

Event Report: 7th IndicThreads Software Development Conference

(This is a live blog of the talks being given at the 7th IndicThreads Software Development Conference happening in Pune today and tomorrow. The slides of the individual talks will become available on the conference website tomorrow.)

Keynote Address: Suhas Kelkar: Technology Is Just The Start

The the keynote address was by Suhas Kelkar, CTO (APAC) for BMC Software, also in charge of driving BMC’s Incubator Team globally as well as the overall technical and business strategy.

The main point Suhas made was that technology is a great way to innovate, but technology is not enough. There are many other things beyond technology to look at to build great software products.

Any technology innovator must understand the technology adoption curve that Geoffrey Moore explained in Crossing the Chasm. First you innovate and create a new technology, and the first people to use it are the early adopters. And to keep the early adopters you need to keep adding technology features. But the set of early adopters is small. You cannot get mainstream success based on the early adopters. And most new technology innovations fail at this stage. Getting the mainstream to adopt the technology you need to win them over with non-technology things like better user experience, reliability, low cost, etc. And this is necessary, otherwise you’re technology innovation will be wasted. So you must learn to focus on these things (at the right stage in the life-cycle of the product)

Technology innovation is easy. Feature/function innovation is easy. User experience innovation is hard. Getting reliability without increasing cost is very hard. The best technologists need to work on these problems.

Karanbir Gujral: Grammar of Graphics: A New Approach to Visualization

The world has too much data, but not enough information. Not enough people working on converting raw data to easily consumable, actionable information. Hence, the area of data visualization is very important.

“Grammar of Graphics” is a new approach to visualization. It is not simply a library of different types of chart. Instead, it is a language which can be used to describe chart type, or even easily declare/create new chart types. Think of it as the SQL equivalent of graphics.

The language describes features of charts, not specific names/types. For example, instead of saying “bar chart”, you would describe it as a chart with basic 2D co-ordinates, categorical x numeric, displayed with intervals.

Where is this available?

  • Book: Grammar of Graphics by Leland Wilkinson
  • Open Source software packages:
  • ProtoVis and D3 for JavaScript users
  • Ggplot2 for R users
  • Bokeh for Python users
  • Commercial Software
  • IBM RAVE
  • Tableau

More specifically, the grammar allows specification of a chart using six different properties:

  • Element Type:
    • point, line, area, interval (bar), polygon, schema, text.
    • Any element type can be used with any underlying data
  • Co-ordinates:
    • Any number of dimensions (1D, 2D, etc)
    • Clustering and stacking
    • Polar
    • Transpositions
    • Map projections
      Guides:
    • Simple Axis
    • Nested Axis
    • Facet Axis
      Layouts
    • Standard sequential/stacking layout
    • Graph Layouts (Network, Treelike)
    • Treemaps
    • Custom Layouts
      Aesthetics/Style:
    • Map data to graphic attributes
    • Color (exterior/interior, gradient)
    • Size (width, height, both)
    • Symbol
      Faceting:
    • Splitting data into multiple charts
    • Chart-in-chart
    • Panels

Ideally, you would like each of these 6 different types of properties to be orthogonal to each other. You should be able to mix and match any type of element type with any type of co-ordinate system, with any aesthetics/style. Thus, specifying the values of these six different properties gives a specific type of chart.

Karanbir gave an example of how a simple bar chart is specified using a language like this. The specification was in JSON. I could not capture it in this live blog, but check out the slides for the actual specification. It is quite interesting.

Having to write out a largish specification in JSON just to get a bar chart doesn’t seem to be that useful, but the real power of this approach becomes apparent when you need to make changes or combine the different properties in new/unique ways. The power of orthogonality and composition become readily apparent, and you are able to do really big and cool changes with simple modifications to the specification. Karanbir’s demo of different visualizations for the same data using simple changes to the spec was very intersting. Again, see the slides for some examples.

Mohan Kumar Muddana: JVM the Polyglot Platform

The Java Virtual Machine (JVM) was initially built for Java. But now it handles many different languages. More specifically, it was built to only handle classes, but now so many different types of language constructs from modern languages newer than Java are handled. Since Java6 (JSR223), JVM has supported scripting (Groovy, Jython, JRuby). Starting with Java7 (JSR292), the JVM has added the ‘invokedynamic’ construct, allowing support for dynamically typed languages, which makes it easier to implement all the features of interpreted languages on the JVM – and not just those that are compiled to bytecode.

Why would you want to run other languages on the JVM? Because you can get the speed and stability of the JVM and combine it with the productivity, or ease-of-use, or the different paradigm of the other languages.

Some interesting JVM based languages to check out:

  • Scala: Pure object oriented language with Traits, Case Classes and Pattern Matching, and Type Erasure.
  • Clojure: Pure functional language
  • Groovy

The slides of the talk contain lots of details and examples of why these languages are cool.

Sushanta Pradhan: Typesafe Stack Software Development on the JVM

The world is moving towards apps that need Scalability, Distributed, Parallel & Concurrent, Dynamic and Agile and Swift.

Concurrent access to data-structures is a big pain when trying to implement parallel programs.

Scala is a functional, concise programming language written on top of the JVM, and inter-operates with Java (i.e. you can very easily access all the Java standard library and any other Java code you might have from Scala code). It has immutable and mutable variables; it has tuples, multiple assignments in a single statements, sensible defaults, and operator overloading.

Scala has the following important features that help with implementation of parallel code:

  • Parallelism:
    • Parallel Data-Structures
    • Distributed Data-Structures
  • Concurrency:
    • Actor Model
    • Software Transactional Memory
    • Futures

Akka Middleware is a concurrent, scalable and fault tolerant framework based on the actor model. It is event driven and highly performant. It has a supervision model which establishes relationships between actors, and the supervisor can detect and correct errors of the subordinate model. This is a model of reliability based on the belief that you cannot completely avoid failures, so you should simply let your actor fail, and allow the supervisor to take corrective action.

Akka is written using Scala, but has Java APIs, so you can use Akka without really having to use or know Scala.

The Play framework, gives Ruby-on-Rails style agility in the Java world by adopting the convention-over-configuration techniques from Rails, has seamless integration with Akka, and hot deployment which makes it easier to have agile code updates. Play has an easy, out of the box setup for unit and functional testing, asynchronous HTTP request handling, WebSocket support, support for caching (e.g. memcaching).

Play has progressive stream processing. This is based on the iteratee model, which improves over the iterator model by allowing you to easily work with streaming data in which the collection size is not fixed beforehand. Similarly there are enumerator and enumeratees.

Play is written using Scala, and has integration with Akka, but it can be used without Akka, and it has Java APIs, so you can use Play without really having to use or know either Scala or Akka.

Scala, Akka and Play together are called the TypeSafe stack, and is a modern JVM based software stack for building scalable applications.

Mushtaq Ahmed/Shripad Agashe: Using Play! 2.0 to Build a Website

Important features of Play!

  • Powerful Templating: Play! has A heavy focus on type-safety across all the layers. This means that even the templating engine has type-safety built in; thus the templates are statically compiled and check for type safety.
  • Routes: Statically compiled reverse routes. Ease of refactoring routes due to compiler support. All references to routes are via reverse routes, no hard-coded routes.
  • Non-blocking: End-to-end non-blocking architecture. Thus a small number of threads can handle large numbers of concurrent requests. There are no callbacks.
  • Great Developer Workflow: Hot reloading, error display (compile time and runtime errors shown in browser), and in-memory database during development.

The rest of this talk contained a code walk-through of Play! features and an implementation of an insurance website using Play! 2.0.

Arun Tomar: Cloud Automation using Chef

Chef is an open source framework that allows the creation of automated scripts that help with hardware/software infrastructure management and deployment. Previously, app upgrades/deployments were manual processes that took hours if not days. Chef allows creation of scripts (written in Ruby) which fully automate these processes.

Chef is cross-platform, so it supports pretty much everything: Windows, Linux, Sun, Mac, BSD, AIX etc.

A Chef deployment consists of a Chef server, which holds all the configuration information for all your infrastructure (aka recipes), a Chef workstation (i.e. the machine from which you will run the Chef recipes), and the actual servers/machines that will be controlled/configured using Chef (aka Chef nodes). Chef client software needs to be installed on each node. The Chef workstation then takes the Chef script (or recipe) from the Chef server, breaks it up into pieces to be executed on each individual server/machine and sends those instructions to the Chef client on the nodes using ssh.

Each Chef recipe is used to configure some part of a server: e.g. Apache, MySQL, Hadoop, etc. These recipes describe a series of resources that should be in a particular state – packages that should be installed, services that should be running, or files that should be written. Chef makes sure each resource is properly configured, and gives you a safe, flexible, easily-repeatable mechanism for making sure your servers are always running exactly the way you want them to.

Core principles of Chef:

  • Idempotence: doing an operation should be idempotent. This ensures that when scripts fail halfway through, you can just re-run the whole script and everything will just work properly and the script will complete cleanly, without doing anything twice.
  • Order Matters: the steps in a recipe will get executed in the order they’re written
  • You are the Boss: Most infrastructure solutions force you to adapt to their “one-size-fits-all” approaches, even though every infrastructure challenge is different. This is crazy. Instead, Chef allows you to be in full charge of everything and you can configure everything exactly the way you want it – and you have the full power of the Ruby programming language to specify this to any level of detail required.

A big advantage of Chef is that Chef recipes are essentially a self-documenting record of your actual infrastructure. In addition, when you add new servers, Chef automatically discovers information your system. So, for example, when you need to do something on production, you simply ask Chef, which knows what is really happening, and you don’t need to rely on static documentation that might be out of date.

Another advantage of Chef is the extensive library of existing recipes for standard things that people would like to install/control using Chef. For example, consider this:

include_recipe "apache2"

This line is enough to install apache2 on any machine, irrespective of which OS the machine is running. This is possible because all the hardwork of actual commands and configurations for Apache2 for all the various supported platforms has already been done for you by someone else!

In addition, Chef contains templates (e.g. a template for apache2 ) which contain the various configuration parameters that can be configured by you easily. So if you don’t want to standard apache2 installation, you can “include” a template, over-ride a few parameters, and you’re done.

Here are some examples of what chef can do:

  • It can use rpm, or apt-get, or dpkg, or yum, or python-pip, or python-easy_install, or ruby gems, or whatever your package installer happens to be and install packages. It is smart enough to know whether a package is already installed and which version, and will not do unnecessary things.
  • It can update configuration files, start and stop services, and install plugins for software packages that can handle plugins.
  • It can automatically clone git repositories, make/build/install, handle dependencies, execute scripts.

Shubham Srivastava: NoSQL – Now and the Path Ahead

Why NoSQL?

  • Scalability and Performance
    • Horizontal scalability is better than vertical scalability
    • Hardware is getting cheaper and processing power in increasing
    • Less operational complexity compared to RDBMS solutions
    • Get automatic sharding as default
  • Cost
    • Scale without Hefty Cost
    • Commodity Hardware, and free/open source software (think versions, upgrades, maintenance)
  • Flexibility in Data Modeling.
    • Key-value stores (very powerful…)
    • Hierarchical or Graph Data
    • Storing values like maps, or maps of maps
    • Document databases – with arbitrarily complex objects

The next part of the talk was a detailed look at advantages and disadvantages of a specific type of NoSQL data base for answering specific queries.

In50Hrs Pune – Idea-to-Prototype in one weekend – 14-16 Dec

In50hrs an idea-to-prototype event, where entrepreneurs (or idea smiths – people with just an idea that they want to see developed), developers, programmers, and product designers come together to work on audacious ideas and build working prototypes (mvp) over a weekend, is coming to Pune this weekend.

Saager Mhatre (dexterous), a prominent Pune Techie, has indicated in the Python Pune mailing list that he has attended a few hackathons, and other similar events, but the only one he’s been happy with is in50hrs. Saager’s thumbs up is enough for us to recommend this event to our readers.

In50hrs is organized by The Startup Center, which was co-founded by Vijay Anand – “The Startup Guy”, (who is well known in the Indian startup ecosystem for various things, including being one of the guys behind proto.in) – so it would be a safe bet to say that these guys understand startups and entrepreneurs.

This is a paid event, and costs Rs. 1000 for Hackers/Developers and Designers, and Rs. 1600 for IdeaSmiths. However, PuneTech readers can get a discount – and register for Rs. 815 for hackers/developers/designers, or Rs. 1315 for ideasmiths.

Register here for In50hrs, and use the code “PuneTech” to get the discount.

(Note: According to PuneTech policy, we usually do not promote paid events on our main page. However, in this case, we felt it is justified because it is a multi-day event, and the price includes lunch/dinner/snacks, which makes the discounted price reasonable. PuneTech is non-commercial, and as per our policy we do not get/accept any compensation in any form for any of our postings.)