Archive

Archive for the ‘jvm’ Category

Master Java Performance Tuning

July 24th, 2011 Comments off

 

About three weeks ago, I was watching a Film 4 late night with my partner. We stumbled upon on a martial-arts movie, called Ip Man. We thought it was one of the best Kung Fu movies of recent times, up there with Kung Fu Hustle. Donnie Yen who played Ip Man, a semi-biographically account of one of Bruce Lee’s mentors. Ip Man was a discipline, evolutionary innovator and a formidable master of a fighting style called Wing Chun.

 

2129364060_b9e98300c6_o_500x333

 

I thought after watching this amazing award-winning film that Chinese culture teaches us about excellence. Especially, in the movie, at the very beginning other masters of Chinese Kung Fu were attempting to defeat Ip Man is bouts of educational study. In other words these fights were not about making money, popularity contest or even on how to pull. They were simply impressive in the objective to gain further knowledge, to live better healthily and be enlightened. Thus it posed a question in my mind about the concept of masters, disciples and followers.

I have been trying to figure why developers and designers, especially in the financial services, are suddenly tied to a cast iron grate, of fire-fighting the Java Virtual Machine, attempting to make it do things that it was not originally designed for. Sometimes these non-functional requirements have meant a thorough knowledge of the operation JVM, how it manages memory, what sort of byte codes are executed in order to obtain the best performance. People suddenly want a great deal of understanding of the garbage collection mechanism way beyond that was required for Java EE 5 or 6, as they try to service 10 million records from database tables that are joined. Suddenly many more professionals are very interested in “Making it go-faster still”.

Why are developers in certain investment banks so willing to write Java like if it was C or C++? Surely this is wrong way to go? What is it about multiple threads that developers are not willing to use the Java SE 5 Executors or apply Java SE 6 concurrency utilities? Why are they willing rewrite their own Collections API? (Of course that is interesting for me personally for study in terms of the Scala Collections version 2.8 and better)

 

KirkPepperdine_400x517

Master Pepperdine

 

I know a little bit about Java Performance, but I need to understand it in much better than I do now. So like the prodigal masters of Kung Fu in alternate style, I need to understand performance on Java from someone who definitely knows what they are talking. Remember that concept of reputational risk that I mentioned in the JavaOne reviewer blog entry, well that risk is minimised when you sit, learn and study with a master. For me this master is Pepperdine.

Come September 2011, I am off to Crete to study with a master: Java Performance Tuning Training Course from Kirk Pepperdine. These old JAVAWUG videos can provide the reason why?

PS: Photo credit from the artful, talented and impressive Chicago Wuhsu, Illinois, USA, 2011

 

JAVAWUG BOF 38 Concurrency and Performance Part 1 from Peter Pilgrim on Vimeo.

JAVAWUG BOF 38 Concurrency and Performance Part 2 from Peter Pilgrim on Vimeo.


The Collective Summer Camp UK

July 1st, 2011 Comments off

 

Hi Everyone!

I am sorry if this has taken longer to announce than when I first tweeted it on Twitter on Sunday 25th August 2011.

I am organising the first Collective Sumer Camp UK, which inspired by my experience of attending the JavaPosse Round Up for three years in a row (2009, 2010, and 2011). The Round-Up is an open space technology conference created by The Java Posse, four experienced Java developers and designers, famous in the community, who have a regular podcast, and also long time technical book author and thinker, Bruce Eckel. The Round-Up is a normally a five day event and takes place in Crested Butte, Colorado. Very recently, the Round-Up expanded to Summer Programming Camp.

I had a lot of fun attending the Round-Ups, as you can see here and here. I thought and asked the question, why can we not doing something similar to the Round-Up here in the UK? Why not? Indeed.

Let us do it, instead of dreaming about it! Here is an audio-boo, which I recorded a few days ago, that has my essential ideas. I apologise here if it is a bit rambling or fast.

Announcing "The Collective Summer Camp UK": Rock Bottom Reached (mp3)

 

START SMALL

Let us go for the low-to-medium risk. We scope the requirements small in order to delivery the best result.

 

BRANDING

I have tentatively called it THE COLLECTIVE for a very good reason. I am personally no longer in the business of organising or running user groups. I am in the business of networking with other people, getting functional programming adopted in the industry, and welcome continuous learning. We are called THE COLLECTIVE of Java platform, who are about pushing it forward.

 

THEMES

The content of the open space conference is up to those who attend. However, I strongly feel that we should be learning and educating ourselves about Functional Java, Scala, Clojure, JRuby and Groovy.

 

SPLIT CONTENT

Because we only a full Saturday. I thought it would be best to split the day into two halves. In the morning we have the open space sessions, then we would break for lunch. In the afternoon, we can have programming exercise for the new JVM language and /or including functional Java. (I went to the London Clojure Dojo on Tuesday night, and it was really well run and a good experience. I should like to model these Dojos for the Saturday afternoon [Experts or advanced coaches / users should apply w/ interest!] ).

 

REGISTRATION AND SURVEY

You will find a Google Form to register your interest in The Collective Summer Camp. Thank you!

 

DATE AND TIME

The day of the Conference will be a Saturday either 30th July, 6th August or 13th August. It will be full day. See the registration and survey form.

 

PAID

The UK is going through the most dire and severe economic recessions at the moment. So I understand many of you, like me, do not have loads of money. The Collective Summer Camp UK ought be low cost. However, we cannot expect every single event to be a free ride. Someone or something has to be paid for their time and effort. Venue and location to be decided. The money goes to the organisation and any thing left over will go to food, pizza and soft drinks, and we can decide what to do with the rest of the money, like donate it charity or something.

HASHTAGS

#CollectiveSummerCampUK and includes #BeyondJava, #ScalaLang, #Clojure, #Groovy, etc .

Please retweet #CollectiveSummerCampUK and self-promote the event.

 

INCENTIVE

I need at least 25 people to register to make the event viable. Please your register interest for the event with the Google Form.

HELP

I need help to organise this event. Please enquire with your ideas today!

 

That is it for now. I am so pleased to come out of stealth-mode. The next bit will be to decide on venue, which most likely looks like most people like central London and that will drive the cost. Stay tuned. +PP+

Twitter: @peter_pilgrim or electronically at peter dot pilgrim at gmail dot com

Scala Adoption: Learn A New Language People!

June 1st, 2011 Comments off

Yay! The Scala Adoption (Episode 353) session from JavaPosse Round Up 2011 has been released. You can listen to the JavaPosse podcast episodes online at The Lounge or try this German website directly Podcast.de.

The session was proposed by Diane Marsh and myself.  There is not much more I can say to add to the session on Scala adoption except for that in I can report in London in recent days. I hear of some of investment banks are showing a passing interest in the language. Utlimately they want a better solution to concurrency and  Unfortunately, this progress is far little and too late for me in my current situation. It would appear that in many institutions the guerrilla style, that of grass roots evolution or revolution, which many Groovy developer successfully chose to get Groovy adopted several years ago, is not happening the same way with Scala. The decision makers and management are yet to be convinced that Scala is the next programming language forward to take the Java platform. It may be that I, admittedly, am not moving in the right cliqué or that this esoteric information is not flowing outside the institutions themselves.

Regardless of whether banking will or will not adopt Scala is irrelevant. It is frankly true that some form of functional literate programming is going to come down the wire and in the very near future. It is not a question of “if” but of “when”. As Diane Marsh eloquently expressed her frustration at the very beginning of the session in Crested Butte, Colorado

Java is an old language. It’s been changed over the years, but seriously this has been really long time for a language to be dominant and kind of tongue and cheek. I will say like to say, “Man Up! Learn a new language people!” It is not that hard to learn a new language and we all should be doing it anyway. It’s good for our brains to actually think in different ways. It doesn’t have be just like Java, and there are reasons why it shouldn’t be.  If it were to be Java, we should just stick with Java. I’am kind of exhausted about the argument that it is just too difficult.”

 

Born this way.

Listen!

A Week In Scala: ACCU 2011

April 14th, 2011 2 comments

It is Wednesday 13th April 2011 and I am here at the ACCU 2011 Conference again in Oxford, England. It is great to back. The last time I was in Oxford for ACCU 2008, I gave a talk on JavaFX 1.1. This morning, I presented An Introduction to Scala: The Object Functional Programming Language. The responses have been very good so far:

@devpg: Listing to ‘Introduction to Scala’ at #accu2011 reminds me to use it in a project

@rachelcdavies: @peter_pilgrim enjoyed your talk. I’m new to Scala and this was just right for me. #accu2011

@TimPizey: Installing Scala after lightening introduction by Peter Pilgrim at #ACCU2011

@matty_jwilliam: @peter_pilgrim great talk today. Tonight has been all scala (and beer) #accu2011

@gasproni: @matty_jwilliams: @peter_pilgrim great talk today. Tonight has been all scala (and beer) #accu2011

@TimPizey: Day 1: java > 1.4 is a mess and is going to get worse, move to Scala or other JVM language as soon as you can. #ACCU2011

@russel_winder: All the JDK8 stuff is already in Groovy and Scala. #accu2011 #groovy

@ewan_milne: #accu2011 Intro to Scala – here’s the Fibonacci algorithm!

@lisacrispin: RT @peter_pilgrim As promised My latest SlideShare upload : #ACCU2011 Introduction to Scala: An Object Functional Lang… http://slidesha.re/hufsPG

The attendance was fairly good. There was no pressure then: Rachel Davies (agile coach), Kevlin Henney (consultant and top speaker) and Ewan Milne (ACCU Chair) were in attendance. The competition was Scott Meyers (C++0×10) and Jutta Eckstein (Agile software development). My Scala talk did not do too badly with this quality of simultaneously talks and their respective speakers.

I was pleased with the face-to-face feedback as well. Kevlin Henney was impressed by the description of the Scala type reference engine. Ewan liked it too. Delegates Michael from England and Khalid from Pakistan/Norway enjoyed the overall presentation for being just enough technical detail to be inspired to try Scala.

Here is my entire slide deck as promised on Slide Share:

You can download my PDF slides directly from XeNoNiQUe. I attempted to share with SlideShare web site however the conversion process they used washed all the nice beautiful colours on my slide deck. Boo!

Enjoy Winking smile

(I welcome feedback of any sort. If you want this talk for your business, especially in London then hook me up)

This is My Week of Scala. You get out of the task exactly the proportion of result that you put into the plan. Next episode I will have more aggressive discussion on Beyond Java and stab at the history of how we got here.

Listen!

Post addendum 1

Dinner was great. I joined fellow ACCU 2011 speakers, Schalk Cronje, Steven “Doc” List and Lisa Crispin for a short stroll to the nearby Plough pub, which is about 10 minutes walk from the Barcelo Hotel. The ACCU brings a different crowd. I was the first time I met Steven “The Doc” and Lisa. Steven ( Thoughtworks) had this great idea for Source Mastery Quest for gaining true experience and skills through crowd sourcing and peer recommendation and certification. Lisa talked about her experience in software development in Austin, Texas in the early 1980’s where everybody wrote the same code in the exactly the same style. Being an Agile tester she reminisced the old way was what we should be doing now in software development.  Shalke (McAfee) I had met before at ACCU 2008 and other conferences, he tends not to do so much C++ development now these days. I think it is great to networking with new people, swap business cards and share ideas. The best ideas are those sometimes we have in those corridor moments, or conversation over a beer or glass of wine.

Post addendum 2

I managed not to sleep again. Woke up at 2:30AM because my iPhone buzzed. Oh yes. I had put in to a schedule “Richard Bair at the Silicon Valley JavaFX User Group”.  Eight hours behind in time zone. I did watch the UStream.TV feed of the talk. JavaFX 2.0 is coming along nicely, the binding API worked very well. I can see this was true through the live coding demonstration on Richard’s MacBook Pro, and I have a good feeling about the new JavaFX Bean property models. The layout API is where action is needed next, because in the early access I have found it less understandable in comparison to the JavaFX Script 1.x releases. I am quite sure the FX SDK team are working hard on it as I type. Shout out to Stephen Chin and Jonathan Giles.

ACCU 2011 Introduction to Scala Talk

March 28th, 2011 Comments off

Hey All

I will giving a presentation at ACCU 2011 Conference in Oxford on 13th April: Introduction to Scala. The conference takes place in Oxford at the Barceló Hotel on the outskirts of the town. Registration is still open last time I check, so if you want to go then do it now.

I examined the full schedule and I see my talk is first one on Wednesday morning at 11am in Cherwell.

I plan to give a fair robust overview of programming in Scala. It will cover Beyond Java the landscape that we all face, some the ideas on the adoption, where the JVM platform is going. It will be technical and the syntax and concepts of Scala will definitely covered. There will be guide to the functional side of the Scala. Above all I will be stressing the Yoda line: “with great powers, comes great responsibility”.

The ACCU has a long history with C/C++ in the past and the over decades this has been distilled with object orientation, agile development, patterns, and generally best practice for programmers. I was originally a member of ACCU for its C/C++ years and years ago. I moved on as we all do. I moved to Java in 1998 and left C++ behind.

It is good to represent the Java platform again in Oxford and I am looking forward to it.

PS: James Gosling has joined Google: Bang Goes The Drum!

Deeply Worried Q1 – Q2

March 16th, 2011 2 comments

I have just had massive blow out. I seem to be fighting and arguing all the time now with close people near me. I feel ratty even talking to acquaintances. A turning point has been reach, and I honestly do not what on earth to do next about it.

It would appear that investment banks are extremely confused on what their long strategy is to do with Java and even Beyond Java:

  1. The sheer unpredictably of interviewer requirements, unpredictably of technical, social, team make up, and process whether it is agile or non-agile
  2. All interviewers are different because all client are different; this is understood and they all have different personalities; however common rapport is increasingly hard to achieve in the mix there
  3. Difficulty of getting to the conclusion of a potential engagement; the perfect match is proving harder to achieve 
  4. Lack of foresight in clients in that they really want. It seems that they only interested ever in a fix for the pain right here right now – they are unwilling to look at changing the application architecture; infrastructure; underlying algorithms behind the scene
  5. Expect wizards to turn up and perform a spell of magic – and clear all ills. We still do not if there is a special technical skill that is out there (a silver bullet) if there is such a thing.
  6. The state of the job market software engineering in financial services / investment bank in City of London is unknown. Is it good or bad? Everyone seems to have a conflicting view.

With case (5) I could have said several years ago. “Ah! The missing skillset of knowledge is Java Servlets or Struts or JSF or EJB or even Spring Framework”, then I could have done something about it. In 2011 the answer is “Well, Hellfire, save matches, fuck a duck and see what hatches!” and my own little addendum to Steven Tyler’s [American Idol Judge] surprised vocal curse-rhyme is, “Hail Jesus and Mary! Spread your legs, buttocks and latches. Give me good sex, herpes and whatever catches”. In other words if there is a magic inspired Java technology X that one needs to get an engagement in 2011, then it is news to me.

The deep worry of (5) is, I believe that it is further evidence of Java ecosystem fragmentation and disparate wealth and spread of technologies. On the one hand I would be over joyed if the clients now let start looking Beyond Java on the JVM, but they are unanimously sticking with Java the programming language, sticking purely to it, becoming the late majority and progressing to a laggard category.

These dogs [bitches] are holding back the innovation and early adopter categories (including me, myself and I; and also add you, yourself and you). We know that the backward compatibility guarantees is the constraint on the Java programming language. You and I can see that this rubber band stretching between laggards and early adopters has to break at some time soon as the client themselves are demand more of the applications that run on the Java software platform. We can no longer be held to ransom for application strongly tied up to legacy WebSphere application server 4/5, WebLogic Server 8 or steadfast only runs on a JDK 1.4.2. The clients must know that they have to upgrade their application, give up these legacy environments, reinvest for future ROI, refactor for sustainable architecture, in order to ultimately be competitive in their technology model, which is by now proportional to the performance their business model.

In case (4) I see a lot of job specifications for things like Java performance and multiple thread programing / concurrency expertise.

The candidate must have extensive Java knowledge and must be experienced in writing streamlined (memory and CPU efficient) code. Additionally, they must have a very good understanding of Java multi-threading and Java performance tuning.

This suggests to my mind, client are facing a lot of issues about pain now, fire-fighting and fixing the problem short-term. It just does not suggest fixing performance in a long-term strategic way through innovation and changing the architecture or searching for a better algorithm or collapsing layers appears to be non-thought here. Not up for discussing. Nada.

It seem all to soon to be like a Hollywood action movie scene: Just load the fucker and fix it so the actor can keeping shooting bullets from my rifle, whilst not thinking of day when rifles are replaced with ray-guns. (One can therefore forget talking to prospective client about Scala adoption or looking at radically different solution á la Clojure)

With case (2) this is human interaction sociological issue, the quality of interviewers seems to less than desirable IMHO. If the other side of the fence has different fixed ideas about software development rather you appear to do, then we are sunk in a face-to-face. And low and below if the organisation has dysfunctional view of Agility, then the wheels will come off …

With case (5) asking the candidate or the contract for wider flexibility suggest that the client has a lack of clarity in the first place. It is this idea of, in a British way, or wanting to dot the I-s and crossed the T-s, ticking all the boxes from A to K, in order to get SIGN OFF from the manager’s manager that is a deeply flawed and ultimately troubling. Yes one can say the job market behaves in the Keynesian model of economy, it is a seller’s markets now, but who the fuck is a ultimate master of Java, C# and C++, Perl, Python, Swing, Spring Framework, ASP, Hibernate, Core Java, JPA,Scripting Languages, Web and programming language and framework simultaneously and not already working for the software deity G.0.D? I would like to know who these mythical people are and meet them today; and I suspect so would you.

With case (6) it is hard to get the real truth of the information of engagements these days, when one is involved fighting in a war. The war is the talent search game and recruitment of good programmers. The amount of misinformation is as dangerous as finding right information. The trouble is discerning if your information is valid and good, the signal-to-noise ratio is not good today.

I am deeply worried about the future prospects. Currently my own money and budget have limits, but there are not infinite. I can postulate, blog and express my enthusiast about a Beyond Java (on the JVM platform) universe as much as humanly possible, I can talk a good game (á la Paul Gascoigne) on Java technology and the platform, as I have done it before. I am human and have limits though, and I am beginning wonder genuinely what those are at the moment …

My tech lead rant is over … Stupid, silly and uninspired … unsure what value there is there … software pride weak … we don’t reach … we don’t join arms … ah we as software developers take it up the ass as per usual …

Categories: alternative, banks, beyond, future, Java, jvm, language, London Tags:

Moving Beyond Java on the JVM: To Be Or Not To Be

December 21st, 2010 Comments off

Recently, I have been thinking about Java and Moving Beyond Java. I ruminated aloud in a couple of Audioboos and so here are a summarised listable version of these thoughts and ideas.

Java

  • The Mother Language – Lingua franca of the Java Virtual Machine platform
  • Java SE 7
  • Java SE 8
  • Work related. Programming language is risk-averse, it changes slowly and carefully. Oracle steward ensure that it is safe. Business owners and web site owners will be able hire or contract.
  • A de-facto programming language for new learners, students of computer science
  • Die-hard stalwarts can stick with Java the programming language, because eventually some of the benefits of the other languages could make it into Java ecosystem as frameworks and libraries
  • Performance-related Java programming: There is a native-like programming approach for writing Java applications like they do C++ / Speed performance

Beyond Java on the JVM

  • Neil Ford, Ted Newark and Myself are examples of external luminaries (the forces) that are telling you why you should be thinking about moving beyond Java
  • Continued learning
  • Reduction of Boilerplate (Almost all)
  • Declarative programming (JavaFX Script)
  • Ease-of-Development
  • Dynamic typing (Groovy)
  • Scripting language approach
  • Closures (Almost all)
  • Control abstractions (Scala)
  • Improved concurrency models parallel algorithms, actor, CSP and software transactional memory
  • Better simple abstract data types (case classes and objects in Scala)
  • Better language support for immutable object (@Immutable in Groovy)
  • Better annotations (Groovy has loads)
  • Some languages support an object functional approach (Scala, Groovy, Fantom)
  • Other object functional languages may support Higher order functions (Scala, Clojure)

General behaviour, psychology within the movement of herds "staying up to date and getting good".The decision is yours in 2011