Search This Blog

Loading...

Thursday, May 16, 2013

Conf: Will speak at the JEEConf 2013 Java Conference in Ukraine, Kiev.

I will give two presentations at two-day conference JEEConf 2013 in Kiev, Ukraine, at the end of coming May 2013 from 24 to 25.
It’s going to be the largest event for Java developers (about 1000 attendees). This is my first participation in this conference, and will go there with pleasure. Below are the descriptions of my two talks.

Note: My talks will be in English.
  1. Title: The Power of Java7 NIO.2 essential stuff.

    Abstract:
    In this session hear how a leading financial services company uses Java 7 NIO.2. This session will covers all the important essential aspects involved in developing NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many case studies to spice up your Java 7 applications with the new I/O capabilities.

    Contents:

    1. The Path class operations.
    2. Get/set file metadata through the new java.nio.file.attribute API.
    3. Manage symbolic and hard links.
    4. Manipulating files and directories through the new java.nio.file.Files API.

    Time allocated: 50 min.

    Date/Time and Venue: From: 14:30 To:15:20 Kiev time, @ 24/5/2013 in STAGE B(150).

  2. Title: The Power of Java7 NIO.2 advanced concepts.

    Abstract:
    In this session hear how a leading financial services company uses Java 7 NIO.2. This session will covers all the important aspects involved in developing advanced NIO.2-based applications. It provides clear instructions for getting the most out of NIO.2 and offers many case studies to spice up your Java 7 applications with the new I/O capabilities.

    Contents:

    1. The Path class operations.
    2. Need to copy, move, or delete an entire directory? Use the FileVisitor API.
    3. Explore the Watch Service API and file changed notification.
    4. Develop blocking/non-blocking socket-based applications. Learn how to develop Java network-based applications in blocking and non-blocking styles. Both TCP and UDP are covered in brief.
    5. The Asynchronous Channel API. You can develop asynchronous network based Java applications with a suite of classes and options.

    Time allocated: 50 min.

    Date/Time and Venue: From:12:00 To:12:50 Kiev time, @ 25/5/2013 in STAGE B(150).

Before the first session (it is very short time for each session, but I will try) to intreduce the adopt-A-JSR program, and in the second one I will introduce the Adopt-OpenJDK program as well so I can spread these programs knowledge, to get more participants.

Monday, May 6, 2013

Tunis JUG Day 2013: I will give 2 talks about (JEE7 JSR 356 Wbsockets, 353 JSON-P & Java8 NIOs)

The first edition of ESPRIT JUG DAY will be held on May 18 2013 from 8h00 to 19h00 in ESPRIT.

I am so happy to get an invitation to Tunisian JUG day that will be held in Carthage city, Tunis coming 18/5/2013 from JUG organizer & Leader Bessem Hamidi .


This is first time for the This JUG to organize such an event, and as I know, there are around 3000+ attendees will attend this JUG day; it is very big day event and number of attendees as well.

I will give 2 talks and they are:
  1. Submission Title:
    Build.now(); TRUE, Real Time Applications with JEE7 (A hack session).

    Submission Abstract:

    Historically, creating web applications that need bidirectional communication between a client and a server (e.g., instant messaging & gaming applications) has required an abuse of HTTP to poll the server for updates while sending upstream notifications as distinct HTTP calls.

    HTML5 specification includes the WebSockets (WS) protocol, I will introduce the Websocket JSR 356 (Tyrus RI), & JSON Processing JSR 353 for data exchange which is part of JEE7.

    In addition, there is a brief comparison of traditional HTTP & WS, followed by covering of how WebSockets works. You will see how using WS removes the overhead of heavy HTTP request and response headers with real case study. Finally, we will review the code of the Web app build on GlassFish 4 app server.

    Time: 17h00 - 18h30

  2. Submission Title:
    Java 8 NIO.2 API features, a walkthrough (The essential & advanced Stuff).

    Submission Abstract:

    Most of applications nowadays depend intensively on asynchronous or non-blocking IO and file manipulation operations and some other requirements that the standard IO won’t be able to fulfill and that’s the case for most applications today, that’s why people decided to move to NIO, in this session, hear how a leading financial services company uses Java NIO.2. This session will covers all the essential aspects involved in developing NIO.2-based applications day by day. It provides clear instructions for getting the most out of NIO.2 and offers many case studies to spice up your Java applications with the new I/O capabilities.

    Time: 11h00 - 13h00

Date: 18 of May 2013
Where: Esprit School Conference room, Carthage city, Tunis.

Before the first session I will introduce the adopt-A-JSR program, and in the second one I will introduce the Adopt-OpenJDK program as well so I can spread these programs knowledge, to get more participants.

Moreover, the JUG leader asked me to help them, on the adopt-A-JSR & Adopt-OpenJDK programs process and how they can participate. And indeed I will provide the help with all steps, materials and information alongside the required support to make it easy to participate. As they are very active locally and the JUG has many participants (around 3000+), so the adoption programs can gain benefits from their experiences.

The Esprit team is the organizer of this JUG Day, and they are very active and they are running a big Esprit school that graduate students in the following Majors Media, Telecom, software engineering and others. Also they have 8 classes running Java in this school.

They had made a very cool intro media for the event:



Thanks Very much Bessem Hamidiand Esprit Organisers.

Wednesday, May 1, 2013

JDev:Enabling memory clearing and monitoring on JDeveloper

If you are familiar with Netbeans IDE and its tool that enable you to free up and monitor its memory usage (PermGen and Heap size).

Here we will enable it on any version of JDeveloper IDE and when you open your IDE, you should found this tool at the lower right corner as shown in the following figure:

How to configure it:

  1. Enable Memory Monitor On, in the JDevloper by setting the MainWindow.MemoryMonitorOn property to true in ide.properties as the following:-
  2. ide.properties file should be found under the following path {your jdeveloper system folder}\o.jdeveloper

  3. JDeveloper system folder; is the folder, which contains all JDeveloper configurations, server and properties of JDeveloper.

  4. Example: "C:\Users\mohamed_taman\AppData\Roaming\JDeveloper\system11.1.2.3.39.62.76.1\o.jdeveloper"

  5. Note: Don't add MainWindow.MemoryMonitorOn=true, as it is already exists with value of false, search on it and change its value to true.


Wednesday, April 17, 2013

Mac: Some terminal and Unix/Mac shortcuts

Here I will give you some interesting shortcuts, that every one of us need when working on daily bases with unix or mac and their terminal:
  1. Up/Down arrows:
    Preview previews commands. It saves your time when you need the previously typed commands again and again for execution.

  2. control + a:
    Moves the cursor to start of the line. It is very useful when you got a long line about fifteen chars or more, and you need to move to the start of the line or close to the start of the line to do some changes, this shortcut will move you to the start very quickly instead of returning character by character.

  3. control + e:
    Moves the cursor to end of the line. So you can remember that by "a" for alphabit and "e" for the end.

  4. option + click line (Mac OS x and terminal only):
    Moves the cursor to the click point.

  5. tab (autocomplete):
    Try to complete the command or (file or folder name).

  6. tab + tab:
    It is useful when tab doesn't complete, pressing tab twice will show the list of available possible matches.

  7. command + ~:
    Cycle between terminal windows (terminal only), for GUI use command + tab.

  8. command + k:
    Will clear the screen and scroll back(terminal only).

  9. command + plus(+):
    Makes fonts bigger.

  10. command + minus(-):
    Makes fonts smaller.

  11. option + command + T:
    Open the characters map viewer.

  12. command + E:
    Find using the selected text.

  13. command + S:
    Export terminal text as.

  14. shift + command + S:
    Export selected text as.

  15. Triple-click the line
    Select a complete line of text.

  16. Double-click the word
    Select a word.

Use these shortcuts to save time while using Terminal.


Friday, April 12, 2013

ADF: After long time, table pagination feature has returned back in JDev11.1.1.7.0.

After a very long time since JDeveloper 10g, oracle jdeveloper 11g team has decided to remove a wonderful feature, which is the table's pagination feature.

Since that time when I have developed any project, I get the long list of scrolled data in the tables, and I have many complaints from my customers whose they need pagination feature.

I have developed a custom ADF Declarative Component to solve the pagination problem, to be used in my projects to fit my customer requirements.

I am a frequent updater for Jdeveloper, and recently Oracle has released JDeveloper v11.1.1.7.0 and surprised me with many of new features released.

But the most exciting one of existing features is Table Enhancements but the top one is returning back the pagination feature, other enhancement as the following:

  • Support for freezing the right most columns in a table so that a scroll bar appears on the left side of the frozen columns.
  • Table/TreeTable - Both components allow configuration of the paging vs. scrolling via the new scrollPolicy attribute.

Let's see how we can achieve that through the following steps, figures and code snippets.

  1. Creating the project:
    1. File > New > General > Application >Items > Fusion Web Application (ADF) > click OK button.
    2. On the create page > click Finish (Alt + F).
    3. Application > Application1 should be created as the following fig:

  2. Creating the business and presentation:
    1. On ViewController project > Right click and choose New > Categories >Web Tier > JSF > Items > JSF Page > click OK.
    2. On create JSF Page pop up >File Name: ValueList.jspx > check "create as XML Document (*.jspx)" > In initial Page layout and content > choose: Quick start layout.
    3. Open Page Implementation >choose: Automatically Expose UI > leave everything as is.
    4. Your screen configuration should be as the following:

    5. Click OK.
    6. An Empty page will be open in the editor.
    7. Go to package view.backing under ViewController project >New > Categories >General >Java > Items > Java Class > OK > Name: Employee > OK.
    8. Employee, ValueList classes, adfc-config.xml and ValueList.jspx  page should be as the following code snippets:
      adfc-config.xml

      Employee.java

      ValueList.java

      ValueList.jspx
    9. Right click on ValueList.jspx page and choose run, and when it runs, you should see the following output:


  3. Rendering rules (VIP Note):

    In order for a table to display as paginated, you must set the scrollPolicy attribute to page, the autoHeightRows attribute to 0, and the table must be placed in a flowing container (that is, a component that does not stretch its children). If these conditions are not met, the table will display a scroll bar.