Tag Archives: java

TechWeekend: Three tech talks on Google Android, 4:30pm, 1st Aug

Image representing Android as depicted in Crun...
Image via CrunchBase

What: TechWeekend featuring “What makes Google Android different from other systems, and from regular Java” by Navin Kabra, “Maps, GPS and sensors in Android” by Rohit Ghatol, with a demo on an Android G1 phone, and more
When: Saturday, 1st August, 4:30pm
Where: Symbiosis Institute of Computer Studies and Research, Atur Centre, Model Colony. Map.
Registration and Fees: This event is free for all to attend. Please register here.

What makes Google Android different from other systems – Navin Kabra.

Google’s Android is a brand new platform for mobile phones, and has been created from scratch specifically for this purpose. This means that it is a “modern” system that does not suffer from any legacy issues, and has taken the best ideas from various other projects to build a system that is arguably better than any of the other, competing, systems. Thus, for example, it uses the Java language as the development language, but has rejected the rest of the Java ecosystem. Specifically it uses a compeletely new virtual machine (Dalvik) which is redesigned with mobiles in mind – and has a number of very interesting design decisions that we will discuss. Similarly, the Android application framework represents a departure from the traditional way of doing things, and has a learning curve, but once you get used to it, it is great, especially for allowing different apps to share data, code, and in general co-operate.

We will explore and discuss this and various other design decisions in Android.

Maps, GPS and Sensor Capability – Rohit Ghatol

Rohit Ghatol is a co-founder of the Pune Google Technologies User Group (PuneGTUG), and one of the early adopters of the Google Android platform. He has already built a number of applications on Android, and is working on some interesting ideas in this area. In this talk, he will be discussing the mapping in the Android framework, and how the GPS and sensor capabilities can be combined with it to give powerful and rich experiences to users. He will be using his Google Android G1 phone to demonstrate these capabilities.

There will be one more speaker, but unfortunately, the details of that talk were not ready in time for this announcement. Please check back in a day for that update.

Also check out Dhananjay Nene‘s slides from the first TechWeekend: “REST Explained.”

Reblog this post [with Zemanta]

Hello Android: An overview and group discussion of Google’s mobile platform – June 6th

Pune Google Technologies User Group GTUG logoWhat: Google Technology Users Group (Pune GTUG) presents an overview and group discussion on Google Android with Sushrut Bidwai
When: Saturday, 6th June. 4pm to 6pm
Where: Synerzip. Dnyanvatsal Commercial Complex, Survey No. 23, Plot No. 189, Near Mirch Masala Restaurant , Opp Vandevi Temple, Karve Nagar (Map).
Registration and Fees: The event is free for all. Register here.

Details
Agenda for this meet:

  • Brief History of Android
  • Android Phones
  • Android Experiments
  • What is Android?
  • What’s in new SDK
  • Android Architecture in detail
  • Application Fundamentals
  • User Interface
  • Resources and Assets
  • Data Storage
  • Content Providers
  • Security and Permissions
  • Developing Android Applications In Eclipse, with ADT
  • First Android Application
  • Further Reading

About the Speaker: Sushrut Bidwai

For more information about PuneGTUG, see the PuneTech wiki profile of PuneGTUG. For other tech events happening in Pune, see the PuneTech calendar.

Reblog this post [with Zemanta]

Java Persistence 2.0: With JBoss/Hibernate Guru Emmanuel Bernard, 22 April

RichFaces
Image via Wikipedia

What: An overview of the features of Java Persistence 2.0 with JBoss/Hibernate Guru Emmanuel Bernard
When: Wednesday, 22st April, 4:30pm
Where: Red Hat Pune 6th Floor, East Wing Marisoft-III, Marigold Premises, Kalyani Nagar, Pune
Registration and Fees: This event is free for all to attend. No registration required

Details:

This will be the second presentation by Emmanuel Bernard, who is visiting Pune currently. The first presentation on “Hibernate Search” will be on Tuesday, 21st April. This one is at the same time, same place, but on Wednesday.

Java Persistence has standardized Object Relational mapping in Java and Java EE and has been hugely adopted. This presentation will introduce you to the new features of Java Persistence 2.0 as most requested by the community and specified by the expert group. These include the new Criteria API, support for collections of simple type and Map support as well as support for Bean Validation.

To connect with others in Pune interested in JBoss, Hibernate and relatives, join the Pune JBoss Users Group. For more information about Tuesday’s talk (Hibernate Search), see this post.

Reblog this post [with Zemanta]

Hibernate Search – Adding search to your Java apps: A deep dive, 21st April

RichFaces
Image via Wikipedia

What: A deep dive into Hibernate Search with JBoss/Hibernate Guru Emmanuel Bernard
When: Tuesday, 21st April, 4:30pm
Where: Red Hat Pune 6th Floor, East Wing Marisoft-III, Marigold Premises, Kalyani Nagar, Pune
Registration and Fees: This event is free for all to attend. No registration required

Details:
As we had reported last week, Emmanuel Bernard, JBoss and Hibernate guru, the founder and co-founder of all annotation related projects in Hibernate, is in Pune and the Pune JBoss Users Group has arranged two lectures by Emmanuel for the benefit of the Java community in Pune.

The first of these lectures is on Tuesday, 21st April, and the second is on Wednesday 22nd April. Details of the second talk will be covered in a separate post.

On Tuesday, Emmanuel will talk about Hibernate search

Abstract: Adding search “like Google” to your Java applications

How many times has a customer told you they want to search in their application “like Google“? How many times was the search engine in your application too slow? Hibernate Search brings full-text search
capabilities to a persistent domain model, providing Google-like search capabilities while avoiding the traditional cost and difficulties to set up such solutions.

In this session, you will learn what problems Hibernate Search can solve and you will follow the steps of adding it to a Hibernate based application. You will build your own application specific full-text search engine. We will also explore advance subjects such as clustering and the underlyings of phonetic approximation.

To connect with others in Pune interested in JBoss, Hibernate and relatives, join the Pune JBoss Users Group.

Reblog this post [with Zemanta]

JBoss/Hibernate Guru Emmanuel Bernard in Pune – 21/22 April (Pune JBoss Users Group)

RichFaces
Image via Wikipedia

Emmanuel Bernard, a JBoss Guru, and founder/co-founder of all the Hibernate annotations projects is visiting Pune next week. The just-formed Pune JBoss Users Group is planning on arranging an event for Pune’s JBoss/Hibernate developers to interact with Emmanuel. The details have not yet been decided and will be put up on the PuneJBUG mailing list. Or, simply subscribe for PuneTech updates.

Stay tuned for details of the event that the PuneJBUG is planning. If you want to meet Emmanuel separately, you can try to get in touch with Jaikiran, the creator/moderator of PuneJBUG, or you can directly message Emmanuel via twitter.

About Pune JBoss Users Group – PuneJBUG

This is a community for JBoss developers in Pune (or any other part of India). The group will soon be starting regular events related to JBoss community projects. Feel free to suggest an event that you would like to organize or participate with other JBoss community users. Mailing List: http://groups.google.com/group/jbug-pune

About Emmanuel Bernard

Emmanuel is a Lead developer at JBoss, a division of Red Hat. After graduating from Supelec (French “Grande Ecole”), Emmanuel has spent a few years in the retail industry where he started to be involved in the ORM space. He joined the Hibernate team 4 years ago. Emmanuel is the lead developer of Hibernate Annotations and Hibernate EntityManager, two key projects on top of Hibernate core implementing the Java Persistence(tm) specification, as well as Hibernate Search and Validator. Emmanuel is a member of the EJB 3.0 expert group and the spec lead of JSR 303: Bean Validation. He is a regular speaker at various conferences and JUGs, including JavaOne, JBoss World and JavaPolis and the co-author of Hibernate Search in Action from Manning.

Reblog this post [with Zemanta]

Seminar: Strengths and weaknesses of various programming languages – 28th March

What: A presentation on the strengths and weaknesses of various programming languages, and how to choose one for your application, by Dhananjay Nene
When: Saturday, March 28th, 4pm
Where: SICSR – Symbiosis Institute of Computer Studies and Research – Map
Registration and Fees: This event is free for all. No registration required.

Details:
Confused about whether to use C/C++, or Java for your application? Or unsure of whether to go with Python, or Ruby, or PHP, or one of the many other “new” languages? Are you wondering whether it is worth the trouble to learn a hot new language?

Popularity of programming languages, or the number of jobs being offered for some programming language are not really good indicators by which to make your choice. It’s time to get some data on the fundamental technical differences between the major language groups today. It’s time to get some useful insights on the business implications your choice.

Dhananjay will discuss the relative merits and weaknesses of the major classes of modern programming languages and they reasons why you should choose one over the other for a specific application. He will cover both – technical issues in choosing a language, and business reasons.

This is targeted towards both – developers as well as managers who want to go past the religious debates over programming languages and want to be able to take decisions based on technical/business reasons as opposed to faith.

To get a primer for the material to be covered, check out the article Dhananjay wrote yesterday about how to improve your web based software development and maintenance ROI with dynamic programming languages

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]

The 10 industry trends programmers need to understand -Anand Deshpande

Anand Deshpande, CEO of Persistent, gave this keynote address last week during the IndicThreads conference on Java technologies. I’ve already included this in my overall report on the IndicThreads Conference, but thought that it was interesting enough and important enough to warrant a post on its own. The basic thrust of his talk was that often, programmers just think about their programs and disregard what is going on in the industry outside. Having this perspective is important, and keeping track of important industry trends will improve you technically. The top trends he identified are:

  1. Multicore chips, and why programmers need to worry about them
  2. Mobile Telephony: the desktop/laptop is no longer the primary target device for programmers. Think about the mobile users, and how what they want is different from the traditional PC users
  3. Cloud and SaaS: is coming in a big way, and will change the way people use software. Also, it makes life easier for users, but much more difficult for programmers. So need to improve skills in these areas
  4. Web 2.0 and Social Networking: these are exciting new fields with a lot of growth. They require a different kind of programming mindset.
  5. Rich Internet Applications: Similar to above
  6. Large Volumes of Diverse Data (including BI and analytics)
  7. Open source is on the rise. As programmers, you must have a good understanding of various open source licenses
  8. Gaming and Entertainment boom: Too many programmers think of only corporate world & green monitors etc. Think different. E.g. Gaming and entertainment are large markets and require a different mindset to come up with new ideas in these fields.
  9. Green IT: Instead of worrying about speed and efficiency, for the first time, worrying about power consumption has started affecting programmers
  10. Be a part of the community. Give back. Do open source. Join CSI ACM. IEEE. (and I would like to add contribute to PuneTech)

His full presentation is here.

Recession, Linked-In, OpenSocial, Grails and more at IndicThreads Java Conference

Note: Most of the presentations are online at the conference homepage.

The IndicThreads conference on Java technologies, which is an annual occurrence in Pune happened over the course of 3 days last week, and IndicThreads were gracious enough to invite me to attend the conference (sort of a press pass, so to speak), and although I wasn’t able to attend the whole conference, I did manage to squeeze in a couple of hours each day, and was very glad that I did, because I ended up with some really enriching sessions.

On the first day of the conference, the two big names of the tech industry in Pune, Ganesh Natarajan and Anand Deshpande gave keynote addresses. Ganesh, who is CEO of Zensar, and President of NASSCOM gave the NASSCOM view of the coming recession. His main thrust was that the Indian software / BPO industry will not be as badly affected by the recession as the rest of the world. He had a large number of graphs and figures to make the following points:

  • We had already been tightening the belt for almost an year now, so we are in much better shape to handle the recession than those who weren’t being so prudent
  • We are creating new products, tackling new verticals, and focusing on end-to-end service (and these claims were all backed by facts and figures), and this diversification and added value makes us resilient

And he spent a lot of time pointing out that to do even better, or primary focus needs to be the tier 2 / tier 3 cities, 43 of which have been identified by NASSCOM and whose developement will get some attention. Also, our tier 2 / tier 3 colleges are sub-par and a lot of work is needed to improve the quality of students graduating from there. NASSCOM has started a number of initiatives to tackle this problem.

Since this was a conference for Java techies, Anand Desphande, CEO of Persistent, presented his view of the broader context in which the Java programmers exist, and what are the things they need to think about (other than their code) to have a better long term view. Basically:

  1. Multicore chips, and why programmers need to worry about them
  2. Mobile Telephony: the desktop/laptop is no longer the primary target device for programmers. Think about the mobile users, and how what they want is different from the traditional PC users
  3. Cloud and SaaS: is coming in a big way, and will change the way people use software. Also, it makes life easier for users, but much more difficult for programmers. So need to improve skills in these areas
  4. Web 2.0 and Social Networking: these are exciting new fields with a lot of growth. They require a different kind of programming mindset.
  5. Rich Internet Applications: Similar to above
  6. Large Volumes of Diverse Data (including BI and analytics)
  7. Open source is on the rise. As programmers, you must have a good understanding of various open source licenses
  8. Gaming and Entertainment boom: Too many programmers think of only corporate world & green monitors etc. Think different. E.g. Gaming and entertainment are large markets and require a different mindset to come up with new ideas in these fields.
  9. Green IT: Instead of worrying about speed and efficiency, for the first time, worrying about power consumption has started affecting programmers
  10. Be a part of the community. Give back. Do open source. Join CSI ACM. IEEE. (and I would like to add contribute to PuneTech)

Anand also predicted that in the next 6 months, the Industry will see serious job cuts and salary cuts, and he things it is unavoidable. But pointed out that those who take trouble to keep themselves updated in their area of expertise, and go deep (instead of just doing “enough”) will not have a problem, and in fact will be best positioned to take advantage of the situation when the financial situation starts recovering after 6 to 9 months.

I missed the rest of day 1, but it has been covered in great detail by Dhananjay Nene. on his blog, as well as Varun Arora on the IndicThreads blog (part 1, part 2).

The highlight of day 2, and in fact the highlight of the whole week for me, was the presentation by DJ Patil, Chief Scientist of Linked-in. DJ Patil is in charge of all the data analysis that happens at Linked-in – basically the advanced guess they make like: “people who viewed this profile also viewed these other profiles”, and “people whom you might know” etc. He was not listed on the conference schedule – and was just passing through, and got invited to talk. He gave a great talk on an overview of how linked in works, their strategy for linked-in apps (the third-party apps that are integrated into the linked-in website). Again Dhananjay has already captured most of DJ’s important points on his blog, so I will not repeat those here. But I did have a very detailed conversation with DJ afterwards, and one of the things that came through was that they are looking seriously at India and wondering what they can / should do to get more Indians on linked-in. India already has about 4.8% of linked-in’s users. He was very open about trying to find out what are the things about linked-in that we don’t like, what are the things in linked-in that we would like to change, and what are the features we would like to see. If you have suggestions, send them over to him – he is dpatil on twitter.

The third day had a session on Grails by Harshad Oak, and if you are not familiar with Rails, or any of the other “programming by convention” schools of software, it is definitely something you should check out. It can reduce development times by orders of magnitude on things like building web applications and other things that are done over and over by programmers all over the world.

For other talks that happened, but which I missed, unfortunately, I haven’t been able to find any reports or blog posts giving details, but you can see the conference schedule to get an idea of what went on.

Why Python is better than Java for Object-Oriented Design

Dhananjay Nene recently switched over to Python and has discovered that he is much happier writing programs in Python. We covered his first article in the series, and the end of that post gives an idea of why we think you should listen to him, and also subscribe to his blog. In the next article in the Python vs. Java series, he takes a few design principles of object-oriented programming and shows how to implement those using sample code in Java and Python. 

An excerpt to whet your appetite:

Well, static typed languages use polymorphism as a powerful mechanism of extensibility. In other words, in many cases the extensions are likely to be newer derived types. Thus design the rest of your code to work on the base type and introduce the newer derived types later as required without having to necessarily change existing code. However static languages primarily depend upon inheritance as the vehicle for delivering polymorphism. Dynamic languages on the other hand depend upon duck typing. Duck typing supports polymorphism without using inheritance. In this context you need the same set of relevant methods to be implemented in each of the extension classes. The role of the abstract base class or interface as the one which specifies the contract / api has been made redundant. You can still choose to define a base class / interface if you want to, but you no longer have to. 

The full article is a must read if you are a student of programming languages in general, and object-oriented programming in particular. If you are neither of those things, and if you plan to be in the software field for a while, then you seriously need to ask yourself, “Why not!?“.

Why Python is better than Java?

Dhananjay Nene recently switched over to Python and has discovered that he is much happier writing programs in Python. He has a detailed post over at this blog on the reasons:

I think the most dominant impression from the last few months is that python does make programming feel a lot more easier and often more enjoyable. The feeling is not very different between riding a bicycle without gears then riding one with gears. In the latter case one just feels one can cover a lot more distance much more easily though any physicist will tell you the actual effort is not particularly different. It just feels like one has a much bigger toolbox (ie a wider assortment of tools) to work with and therefore the task seems simpler. Why do I think that way ? I believe the following features of python do help (in no particular order) :

* Concise Coding style : The code typically is much more concise, with much lesser verbosity
* Dynamic typing : You really do not need to worry about declaring data types and making sure the inheritance hierarchies especially for all the interfaces and implementations well laid out. The various objects do not even need to be in the same inheritance hierarchy – so long as they can respond to the method, you can call it. This is a double edge sword, but that doesn’t take away the fact that programming under dynamic types environment does seem a lot easier.
* Easier runtime reflection : Java seems to have all the reflection capabilities but I think these are just way too painful to use as compared to python. In python the entire set of constructs (classes, sequences etc.) are available for easy reflection. In case you need to use metaprogramming constructs, python really rocks.
* More built in language capabilities : Items such a list comprehensions, ability to deal with functions as first class objects etc. give you a broader vocabulary to work with.
* Clean indentation requirement : It took me about 2-3 days to get over it but, it seems that python code is much easier to read since if you do not indent it correctly it will be rejected.

I am a Perl person myself, and think similar thoughts about Perl, and I don’t really care for the forced indentations of Python. But Perl is really for disciplined programmers who don’t get carried away and start doing all the weird things that the language allows. For the indisciplined folks, I guess the forced indentation of Python is probably a good way to keep them in check.

Anyway,  read the whole article. You should also read the post he wrote at the time he chose Python for this next project. In fact, subscribe to his blog. He writes detailed and insightful articles that, as a techie, you would do well to read. If you are interested in programming languages, I would recommend reading “Contrasting java and dynamic languages”, and “Performance Comparison – C++ / Java / Python / Ruby/ Jython / JRuby / Groovy”. And if you are a blogger, check out his tips for software/programming blogging.

Dhananjay is a Pune-based software Engineer with 17 years in the field. Passionate about software engineering, programming, design and architecture. For more info, check out his PuneTech wiki profile.