Skip to main content

10 Years Eclipse Party at JugMK

Not the Eclipse you are looking for ?
A few days ago at JugMK we had the Eclipse 10 years party so I thought it would be nice to write a few words about  Eclipse.
Ten years ago IBM decided to opensource eclipse 1.0 which had releases for both Windows and Linux which is very important since at that point of time Windows was at it's strongest point. The Eclipse consortium was founded the same year but Eclipse  Foundation wasn't created until 2004, the same year that the first EclipseCon took place. It's fun to remember some of the companies like Borland that were side by side to  the giants like SAP and IBM and of some importance in the Java world. These days  there are hundreds of companies that are members of the foundation.
A few top level projects that are essential were mentioned :
  •  Eclipse Modeling Project 
This project main focus is on the evolution and promotion of model-based development technologies within the Eclipse community by providing a unified set of modeling frameworks, tooling, and standards implementations
  • Eclipse Runtime  
One of the great top level projects that is under the Eclipse umbrella is Eclipse RT. This top level project has sub projects like the Jetty Web server  and the well known EclipseLink JPA provider. RT projects target "clients" and "servers" across embedded devices, desktops, and enterprise systems, and provide those intermediate software services which enable applications to be more easily and concisely constructed across these environments.  

By providing a consistent symmetric architecture, Eclipse RT technology enables developers to focus on the business problem at hand and still have many system architecture options available at deployment time.

The future 


Eclipse has made big difference over the past decade  and it is more than clear that is here to stay. There are several projects that got my attention that are still in incubation:
  • e4
e4 is the incubator for Eclipse 4.x which is created to be  the foundation on Eclipse and OSGI. 
There are few simplification that allow easier writing of plugins, better control over all Eclipse based solutions  and simply enabling  more and more programmers to program on the platform while at the same time keeping the backward compatibility with the applications based on clean API's . In order to reach these goals, Eclipse APIs are re-factored into services that use a uniform application model  which supports dependency injection to run in multiple different contexts ;the Workbench is uniformly modeled to provide introspection, CSS styling and declarative UI markup  and many more initiatives in areas such as-flexible resources, command recording, scripting and writing plugins in other languages. 

  • Eclipse Orion
Orion is one of the projects under the Eclipse top-level project. The project is currently in the Incubation phase. The premise behind this project is simple, why do we web apps on the desktop when we can do it on the web ? Tools are written in JavaScript and run in the browser. Unlike other attempts at creating browser-based development tools, this is not an IDE running in a single tab. Links work and can be shared.  Great care has been taken to provide a web experience for development. There is something called OrionHub  where you can tryout  the current version. While this is still at the very beginning it look very promising.
A few links : 
  • Eclipse Recomenders   
As  frameworks  are big part of today's software development  we need something that can help us easily and simply use them.  Before frameworks can be used efficiently we have to learn their correct usage which often results in high initial training costs for our company and lot of time for us.
Code Recommenders supports developers on learning new APIs by providing tools which learn correct API usages or valuable API usage patterns by analyzing example code and re-integrates this regained knowledge back into your IDE by means of intelligent code completion; extended javadocs ; smart bug detectors, stacktrace search engines and many others...
Although Eclipse currently gives pretty good suggestions on what should appear first on auto-complete and what variable a method should use this project makes everything noticeably better.
Links:
http://www.eclipse.org/recommenders/
Chain Completion Engine http://www.youtube.com/watch?v=v6IIQDMGV58
Template Completion Engine http://www.youtube.com/watch?v=xfG1KnsG4dI
Intelligent Call Completion Engine http://www.youtube.com/watch?v=PM77ItkFT0Q&feature=related

Eclipse at jugmk 
We already have had two presentation directly connected with Eclipse in the past one was about Graphical Editing Framework in eclipse aka GEF by Aleksandar Nikov where he showed powerful  and easy way of creating visual applications using the GEF. This framework enables easy way of working with graphical apps by abstracting the most common  operation one application of this type needs like dragging, dropping, selection, outline  . You just need to worry of your specific business domain and re-use the rest of the services. The platform is entirely open-source like most of the stuff from the Eclipse Foundation, which enables you develop and easilly to package it as your final product.



The other real cool presentation that we had was called  :
See what my IDE can do - Aleksandar Nikov and Saso Lazarevski.  Where basically we had Eclipse vs Netbeans show of that was very awesome and extremely funny. At the end of this presentation we concluded that we are happy to part of the Java community where we have choice.

Also important part of our celebration was the eclipse cake that you can see below as well as other photos from the party.




10 Great years of Eclipse




Other links:
http://eclipse.org/10years/
http://eclipse.org/10birthday/
http://wiki.eclipse.org/Eclipse_DemoCamps_November_2011

Popular posts from this blog

HTML 5 data-* attributes, how to use them and why

It is always tempting to add custom attributes in HTML so that you can use the data stored there to do X. But if you do that there is no way of knowing if your HTML attribute will not be overridden in the future and used for something else and additionally you will not be writing valid HTML markup that can pass HTML 5 validator and with that you can create some very bad side effects. That is why there is a spec in HTML 5 called custom data attributes that enable number of useful features.

You may go around and read the specs, but the basic idea is very simple, you can add any attribute that starts with "data-" and that attribute will be treated as non-visible data for that attribute. By non-visible I mean that it is not something that gets rendered to the client so it does not affect the layout or style of the page, but it is there in the HTML so in no way this is private.
So let's get right into it, the following snippet is a valid HTML5 markup

<div id="aweso…

Basic Authentication with RestTemplate

Spring Rest Templates are very good way of writing REST clients. By default they work with basic HTTP so if we need to use Basic Authorization we would need to init the rest template with custom HttpClient. This way the Rest Template will automatically use Basic Auth and append to the HTTP headers "Authorization: Basic BASE64ENCODED_USER_PASS".

HttpClient client = new HttpClient(); UsernamePasswordCredentials credentials = new UsernamePasswordCredentials("USERNAME","PASS"); client.getState().setCredentials( new AuthScope("www.example.com", 9090, AuthScope.ANY_REALM), credentials); CommonsClientHttpRequestFactory commons = new CommonsClientHttpRequestFactory(client); RestTemplate template = new RestTemplate(commons); SomeObject result = template.getForObject( "http://www.example.com:9090/",SomeObject.class );

In EE application this would probably be managed by DI framework like Spring Core and only initialized once sin…

Temporary files and directories in Java 7 and before

Sometimes we want to create a temporary file, whether to save some data that gets written by some other application or just to temporary store stuff. Well, usually applications have their own temporary folder where they do this and it gets somehow configured. But why not use the underlying OS specific file like "/tmp/" in Linux so there must be some system property that has this info and there is. The key is "java.io.tmpdir" resulting in "/tmp" in my case or by code:
String tempDir = System.getProperty("java.io.tmpdir"); We can use tempDir  folder as a temporary place to store files, but there are a lot nicer ways to work with files like this even in JDK6 not just in JDK7:
import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; public class TempFile { public static void main(String[] args) { try { // create a temp file File tempFile = File.createTempFile("old-file",…