It’s no secret that Chicago is an incredible city with a vibrant history, passionate sports fans, and very cold weather. However, what many people are starting to realize is that Chicago is also an up-and-coming home for the Tech Industry: with companies like 1871 and WeWork serving as incubators for newly hatched start-ups, the space is ripe with young companies and skilled developers. So the question has to be asked, who is keeping this rapidly developing community together?
Posts Tagged ‘Java’
At the ANWB people are constantly trying to improve the services they provide. One of these services is to provide traffic information. In the Netherlands the National Data Warehouse for Traffic Information (NDW) provides an enormous database of both real-time and historic traffic data.
This data comes from many different sources and is available as open data. Wouldn’t it be great if the ANWB could use this open data to provide more accurate traffic information, either in real-time or as a prediction for a certain period? In a proof of concept we have collected and analysed the real-time traffic information to calculate the traffic intensity on the roads using elasticsearch. We also used weather information to see if the weather has influence on the need of roadside assistance.
The evening starts with a lot of pizza to satisfy the hunger. Beware though, food for thought might come from the other great minds you can share dinner with. It's all about meeting new people and sharing your passion!
After the pizza we have 2 speakers who are able to blow you away. First we have Eelco Visser who will explain the principles and techniques for designing and implementing software languages. He will show how Spoofax helps us in creating our own languages.
Our second speaker is Neal Ford. He will explain the paradigm shift to get from an imperative programmer to a functional programmer. He will give examples in Java, Clojure and Scala. Expect to be amazed.
Boarding is almost finished and the room is already packed. Who will fill the last few seats for a full house? Register now using this link and see you on monday!
When we're building web applications containing data entry forms, it's sometimes a requirement that (part of) the form is dynamic, in the sense that the fields to be included in the form need to be determined at runtime. For instance, this may be required if application managers need to be able to add new data fields quickly through a management console, without support by a programmer.
After learning about AngularJS a couple of months ago, I started using it on new Java web projects, and that has been a great pleasure. If you haven't worked with AngularJS yet, you may be wondering what the hype is all about and whether or not it's a thing worthwhile of investing your time in. In this blog, I'd like to put some of the merits of AngularJS in the spotlights, by comparing it to some other approaches for web application programming in the Java world.
In my previous blog article I gave a short introduction into Docker ("an open-source engine that automates the deployment of any application as a lightweight, portable, self-sufficient container that will run virtually anywhere"). In this article we'll check out how to create an image for Tomcat 7 and the Java 7 JDK as dependency.
So, let's go ahead and do some 'coding'. First, you need to install docker. Instructions can be found here. I already mentioned you need a Linux system with a modern kernel, so if you happen to be a Mac or Windows user, there are instructions on linked pages on how to use Vagrant to easily setup a virtual machine (VM) to use. For now we'll work locally, but once you start installing servers you might find the Chef project to install docker useful as well.
As a first step after installation, let's pick the first example from the Docker getting started page and create an Ubuntu 12.04 container, with completely separated processes, its own file system and its own network interface (but with network connection via the host), and have it print "hello world". Do this by running
docker run ubuntu /bin/echo hello world
Cool huh? You probably just ran something on a different OS than that of your own machine or (in case you're on Windows/Mac) the VM in which Docker is running! In this command
ubuntu defines the image (found automatically as it is one of the standard images supplied by Docker). The
run command creates an instance of the image (a container), feeding it
/bin/echo hello world as the command to execute.
Westminster Abbey - View from the Queen Elizabeth II conference center
...and now back home
On my desk lies a stack of notepads from the QCon sponsors. I pick up one of them and turn few pages trying to decipher my own handwriting. As I read my notes I reflect back on the conference. QCon had a great line up and awesome keynote speakers: Turing award winner Barbara Liskov, Ward Cunningham, inventor of the Wiki, and of course Damian Conway who gave two highly entertaining keynotes. My colleague Sven Johann and I were at QCon for three days. We attended a few talks together but also went our own way from time to time. Below I discuss the talks I attended that Sven didn't cover in his QCon blog from last week.
Ideas not art: drawing out solutions - Heather Willems
The first talk I cover has nothing to do with software technology but with communication. Heather Willems shows us the value of communicating ideas visually. She started the talk with an entertaining discussion of the benefits of drawing in knowledge work. Diagrams and visuals help us to retain information and helps group discussion. The short of it: it's OK to doodle. In fact it is encouraged!
The second part of the talk was a mini-workshop where we learned how to create our own icons and draw faces expressing basic emotions. These icons can form the building blocks of bigger diagrams. Earlier in the day Heather made a graphic recording of Barbara Liskov's keynote. In real-time: Heather was drawing on-the-spot based on what Barbara was talking about!
Graphic recording of Barbara Liskov's keynote 'The power of abstraction'
You are not a software developer! - Russel Miles
Thought provoking talk by Russel Miles about simplicity in problem solving. His main message: in the last decade we learned to deliver software quite well and now face a different problem: overproduction. Problems can often be solved much easier or without writing software at all. Russel argues that software developers find requirements boring, yet they have the drive to code, hence they sometimes create complex, over-engineered solutions.
He also warns of oversimplifying: a solution so simple that the value we seek is lost. His concluding remark relates to a key tenet of Agile development: delivering valuable software frequently. He proposes to instead focus on 'delivering valuable change frequently'. Work on the change you want to accomplish rather than cranking out new features. These ideas are related to the concepts of impact mapping, which he used to structure the presentation itself, he revealed in the end
The inevitability of failure - Dave Cliff
In this talk professor Dave Cliff of the Large Scale Complex IT systems group at University of Bristol warns us about the evergrowing complexity in large scale software systems. Especially automated traders in financial markets. Dave mentions recent stock market crashes as failures. These failures did not make big waves in the news, but could have had catastrophic effects if the market did not recover properly. He discusses an interesting concept, normalization of deviance.
Everytime a safety margin is crossed without problems it is likely that the safety margin will be ignored in the future. He argues that we were quite lucky with the temporary market crashes. Because of 'normalization of defiance' it's only a matter of time before a serious failure occurs. Unfortunately I missed an overview of ways to prevent these kind of problems. If they can be prevented at all. A principle from cybernetics, Ashby's law of requisite variety, says that a system can only be controlled if the controller has enough variety in it's actions to compensate any behaviour of the system to be controlled. In a financial market, with many interacting traders, human or not, this isn't the case.
Performance testing Java applications - Martin Thompson
Informative talk about performance testing Java applications. Starts with fundamental definitions and covers tools and approaches on how to do all sorts of performance testing. Martin proposes to use a red-green-debug-profile-refactor cycle in order to really know what is happening with your code and how it performs. Another takeway is the difference between performance testing and optimization. Yes, defer optimization until you need it. But this is not a reason not to know the boundaries of your system. When load testing, use a framework that spends little time on parsing requests and responses. All good points and I'll have to read his slides again later for all the links to the tools he suggests for performance testing.
Insanely Better Presentations - Damian Conway
Great talk on how to give presentations. Damian shows examples of bad slides and refactors them during his talk. He discusses fear of public speaking, how to properly prepare a talk, a lot of great tips! I won't do the talk justice by describing it in text. Many of Conway's ideas have to be seen live to make sense. Nevertheless there is a method to the madness:
- Dump everything you know on the subject
- Decide on 5 main points and create storyline that flows between them
- Toss out everything that does not fit the storyline
- Simplicity - show less content, on more slides
- Use highlighting for code walkthroughs
- Use animations to show code refactorings
- Get rid of distractions
- The most important part of a presentation is person-to-person communication!
- Practice in front of an audience at least 3 times. Even if it is just your cat.
Visualization with HTML 5 - Dio Synodinos
In this tour of technologies for visualizing data, Dio showed everything from CSS3 to SVG, processing and D3js. For each of these he gave a good overview of their pros and cons and made specific animations and demos for all of them. He also mentioned pure CSS3 iOS icons. Lot's of eye candy and from reading the #QconLondon Twitter stream it seems a few people liked to try out all these frameworks and technologies.
Thankfully, there were plenty of coffee breaks at the conference. During breaks I often bumped into Sejal and Daphne, as well as other Triforkers from both our Zurich & Aarhaus offices. Besides attending talks we went to a nice conference party and went out to dinner a few times. Between talks Sven and I meetup and had a chat about what we saw, whilst we grabbed some delicious cookies here and there. Unfortunately the chocolate chip ones were gone most of the time!
AS HULK WANT MORE CHOCOLATE CHIP COOKIES! #QConLondon
— Hulk User Stories (@HulkUserStories) March 6, 2013
At one point I took the elevator to the top floor. On my right is a large table covered with techy books. Conference goers try to walk by, but look over and can't help but gravitate to this mountain of tech information. Of course I couldn't resist either so I browsed a bit and finally bought 'Team Geek - A software developer's guide to working well with others'. Later on I visit the web development open space. I listen in on a few conversations and end up chatting with James and Kathy, the camera operators, while they are packing their stuff. They have been filming all the talks for the last three days and we talk a bit about the conference until the place closes down.
All in all QCon London 2013 was a great conference!
A few days ago I released the first beta version of the elasticshell, a shell for elasticsearch. The idea I had was to create a command line tool that allows you to easily interact with elasticsearch.
Isn't elasticsearch easy enough already?
I really do think elasticsearch is already great and really easy to use. However, on the other hand there is quite some API available and quite some json involved too. Also, interacting with REST APIs requires a tool other than the browser to use the proper http methods and so on. There are different solutions available: some of them are generic, like curl or browser plugins, while others are elasticsearch plugins like head or sense, that you can use to send json requests and see the result, still in json format. What was missing is a command line tool, something that plays the role of the mongo shell in the elasticsearch world. That's ambitious, isn't it?
In the meantime the es2unix tool has been released by Drew, a member of the elasticsearch team. The interesting approach taken there is to hide all the json and show only text in a nice tabular format, providing an executable command that makes possible to pipe its output to other unix commands like grep, sort and awk. That's a great idea, and an even greater result I must say.
A json friendly environment
Read the rest of this entry »
After a highly successful edition of the GOTO Night in December with Timan Rebel and Erik Meijer, we are happy to announce the next GOTO Night that will take place on March 7 2013.
This time at the Trifork office in Amsterdam on March 7 we have two great technical presentations lined up:
- Within the eye of the Storm (Introduction to Storm framework) // Sjoerd Mulder from Persuasion API
- Using Puppet, Foreman and Git to Develop and Operate a Large Scale Internet Service (in this case eBuddy) // by Joost van de Wijgerd from eBuddy
Here is just a little taster of what what they said their presentations will cover:
Sjoerd: "Curious about the Storm Framework? Storm is a distributed real-time computation system. It's new and exciting and you might have heard about it and have some questions about it. How does it work? What are its use-cases? How do I get started? What are the differences with Hadoop? How can I run it in production? How do I connect it with product XYZ?". This is what I will cover and show you how you can get started with Storm, including some live coding, and I'll even cover how you can use Storm in production”. Read more about Sjoerd & his session in detail and sign up now.
Joost: At eBuddy we are implementing DevOps and in this talk I would like to introduce our current setup. We use Foreman in combination with Puppet and a Custom Git based Configuration Management solution to manage our Infrastructure and the Services running on top of it. My talk will be centered around Foreman and Puppet and I will show how we use these tools to do deployments, scale out our clusters and configure new machines on the fly. Read more about Joost & his session in detail and sign up now.
Just before we dive into the beers, Dan Roden, our special guest from the Program Committee for GOTO Amsterdam, will present a short teaser for his sessions & track Emerging Interfaces at the GOTO Amsterdam event.
So sign up and join us on March 7 at 18.00 for great talks, free beers & pizza at Trifork.
WANT TO SPONSOR GOTO AMSTERDAM 2013?
We are already proud to have some great sponsors onboard, including 42, Appdynamics, Basho, Hippo, Neo4J & Zilverline to name a few, if you are interested contact me, Daphne Keislair or visit the event website.