RSS

Category Archives: Java

XWork Server Community Edition

In a time where technology doesn’t matter, its important to have technology easy available. Specially for students and young developers. During the OpenNTF BOF Session at IBM Connect we were shocked how old the youngest XPages Developer was. Are we losing the next generation?

The community around XPages / Domino is one of the most vibrant. There are a lots of good resources available on the internet. But we are missing a licence model which allows young developers easy to learn the technology. What we ask is a XWork Server Community Edition, available for free. The usage should be limited to private person with no commercial aspect. No Replication, Mail, Clustering is needed and the limitations of the regular XWork Server should also be in place.

The core purpose of the XWork Server Community Edition is to attract new developers from outside of the yellow bubble. The should learn the technology and they will love it. I belive that this will lead to new solutions based on the XWork Server, which can be delivered via IBM Softlayer to the cloud. IBM you should give this a try, there is nothing to loose.

 

 
6 Comments

Posted by on February 2, 2014 in IBM, Java, OpenNTF, XPages

 

Tags:

IBM Connections – The next AppDev Plattform?

IBM Connections is a great Plattform to bring people centrict data to a single point of storage and processing. Processing this datas with analytics and bring data, people and the work of them into relation is key to have 360 view of your employee, data and processes. But to get this view, you have to attract developers around the globe to develop applications, which use the power of IBM Connections.
But todays developers are not the same, then 5 years before. They have the power and freedom to choose that framework, which matters for them best. Thats one of the reason why we have such a large and brilliant XPages community. They love the things they can do with one of the most advanced java appdev server!
The IBM SocialBusiness Toolkit Team was wise enougth, to know these fact. And they have made the Toolkit available for a lot of different plattforms. I’m very proud that OpenNTF is the Home of the Social Business Toolkit. And the Toolkit is your key to the IBM Connections Plattform.
So join us (OpenNTF) on wednesday 10 am and learn what the Open Source Comminity for Collaboration Solutions can offer you, for your success. We also have a booth on the Solutions Showcase.

 
 

Getting nervous for IBMConnect 2014?

Yesterday evening I did my planing for the IBM Connect 2014. Not the travel, this has our travel already done, also the time before and after IBM Connect 2014 is organized. It will be a great time. Roman (CEO), Andre (COO) and Alain (Account Manager) are a good team and Roman, Andre and I will use the time after Connect to reflect what we have heard and which spirit we have felt. This will have an impact on our strategic planing.

During the planing Yesterday, I did recognize, how different this IBM Connect will be for me. My first LotusSphere in 2012 was under the sign of getting knowledge and get in touch with people from the community. In 2013 was expanding and developing of these relationships. I learned that knowing who knows it, is much more important than getting technical knowledge.

And now 2014 is under a new sign. I’m now IBM Champion and OpenNTF Chairman. I will have a Session (BP207) and a Birds of Feather Session (BOF405). And OpenNTF has a booth (308)!

Let’s see what happens.

CU
Christian

 

 
3 Comments

Posted by on January 22, 2014 in IBM, Java, OpenNTF, SocialBusiness, XPages

 

What a week….

The last week was so special. It all starts with the simple Idea to make “FindBugs” available in the Domino Designer. I was fall in love with FindBugs at the first moment, when I’ve tried the plugin on some Java projects.

But the plugin did not run in the Domino Designer for some reason. After a deeper analyze, I found 2 major problems:

  1. The Findbugs Plugin was designed for Eclipse 3.6 and higher
  2. The FindBugs Plugin loads compiled classes direct from the filesystem (the credit for discovering this problem goes to Nathan. He guided me to the right part of the code)

First Problem was a 10 minutes Issue, the second takes longer. I had to program an own CodeBase implementation and an own CodeBaseEntry implementation which loads all compiled class files direct from the NSF. But some hours and some line of code later it works.

A short E-Mail exchange with Peter Tanner, our IP Manager helped me to discover that I’ve to publish it under LGPL 3 Licence. After a very short internal testing, I’ve published the project and also an easy to install way. And then something happens, which I didn’t expect. Only 12 hours after publishing FindBugs for Domino Designer, I’ve found 2 blog entries about it!

Would you expect such a fast adoption?

And the release of the new OpenNTF Website this weekend has made the week absolute superb!

 
2 Comments

Posted by on January 13, 2014 in Domino, Java, OpenNTF, XPages

 

Tags:

If you love IBM Domino – please learn Java, NOW!

It’s now over 3 years ago that I head to take over a project, which covers a critical business case. And it was one of my most painful experience ever. It ends up that each day I worked on that project, I took pain-killer. The request was quite simple: “Please rollback a Java agent to a LotusScript Agent”. But I’ve never seen such a painful implementation of Java. It was quite horrible and against all that I’ve learned about Java.

But Java is the most important language for the future of IBM Domino. If you’re an Application Developer please learn Java. And please learn it, like you would learn something new. Trow away all your knowledge about programing, you can reintroduce it later. Here my advises how you should start:

  1. Download Eclipse
  2. Read Head First Java
  3. Do all examples from HeadFirst Java
  4. Read Design Patterns from HeadFirst
  5. Read Effective Java from Joshua Bloch

“I have not the time for that” could be your answer. The most of us do not have the time for our own education, but only 30 minute per day will pay of in a short time. And reading this books has also a positive effect on coding with Lotus Script 🙂

“How do I bring that in my Domino / Notes Projects?” – This is one of the most critical part. But in fact it’s very easy. DECIDE and DO….

…. and there is webinar this Thursday January 16 from TLCC and Teamstudio which covers XPages and Java Development. I hope you will participate: http://www.tlcc.com/admin/tlccsite.nsf/pages/xpages-webinar

And when you feel your self fit with Java, it’s time for the best-selling developer book form IBM Press called Mastering XPages.

 

 

 
5 Comments

Posted by on January 12, 2014 in Design Pattern, Domino, Java, XPages

 

Tags: , ,

Paid per line programming code? – Why I love refactoring

Earlier this month I’ve started to read a new book called “Effective Java“. Jesse Gallagher mentioned this book as a “must read”. After my positive journey with reading “Design Pattern” (The head first edition) was it no question that I definitely read the sample of “Effective Java”. And yes, after reading the sample, I bought it. (To my colleges at WebGate: Yes be afraid – I have now a new book – Ho Ho Ho).

But reading a book without bring the new knowledge into the daily work is only the half of fun. So where to start? One of the first thing that has attracted me while reading “Effective Java” was the initialization of a Singleton.

A Singleton is an object, which exist only one time in specific context like a jvm, plugin or a XPages Application. The “normal” code to initialize a singleton is the following construct:

public class DocumentProcessor {
private static DocumentProcessor m_Processor;
private DocumentProcessor() {
}

public static DocumentProcessor getInstance() {
if (m_Processor == null) {
m_Processor = new DocumentProcessor();
}
return m_Processor;
}
}

One of the disadvantage of this code is, that this code is not “safe” if you try to create an instance of DocumentProcessor with Java Reflection and modifying the constructor. The other thing that I’m not loving is the amount of code, that I always have to write. But Joshua Bloch explains a simple way with enums to have a singleton look at this code:

public enum DocumentProcessor {
INSTANCE;
}

How smart is this! And not much code. I’m not paid per line of code I write, so it’s not touching my income :). Now you can access with DocumentProcessor.INSTANCE the singleton. It’s very cool, but what, if I have already a lots of Singleton? How can I make that my code will not break the code of other clients (classes which calls my API).

Remember all client classes call the current code (before refactoring) with WordProcessor.getInstance(). I can easy change this in my classes, but external clients which calls my WordProcessor will fail, when the do not have the WordProcessor.getInstance().

The following code is a “defensive” approach which makes this safe to all the other clients:

public enum DocumentProcessor {
INSTANCE;

/**
* gets the Instance of the DocumentProcessor.
*
* @deprecated -> Use DocumentProcessor.INSTANCE instead
*
* @return Instance of the DocumentProcessor
*/
@Deprecated
public static DocumentProcessor getInstance() {
return DocumentProcessor.INSTANCE;
}

This code is not only safe, it gives the other developer also an instruction, how to adapt the new API.

Will I now go to all my code (and it’s a lot of code I wrote each year) and change this all? And what about all the other cools stuff that I will learn while reading the book?

No, that’s not my approach. But I will challenge my code, myself and later the WebGate Development Team with the knowledge. Each code that I’ve to touch will also be reviewed with my new knowledge.

Have fun

Christian

 
1 Comment

Posted by on December 21, 2013 in Design Pattern, Domino, Java, XPages

 
Video

Replay: A Deep Dive into OpenNTF Essentials

 
Leave a comment

Posted by on December 18, 2013 in Domino, IBM, Java, OpenNTF, XPages, XPT