Sunday, September 26, 2010

2010-09-26 Sunday - Packt Publishing's 2010 Open Source Awards

Voting for #Packt Publishing's 2010 Open Source Awards opens on Monday, September 27th, and closes on Friday, November 5th:
http://www.packtpub.com/open-source-awards-home


The Awards are split up into two main stages. Firstly, nominations will begin on August 9. This is your chance to put forward your favorite Open Source project in each category to go through to the final stage of voting. The top five projects with the most nominations in each category will go through to the final stage of voting. The nominations will end on September 17.

The five finalists in each category will be announced and voting will begin on September 27. Voting will close on November 5, with the winners announced the week commencing November 15.
You will also be pleased to hear that by nominating or voting for your favorite Open Source project, you will have chances to win a fantastic Amazon Kindle! This is an opportunity for you to download all your favorite Packt eBooks and read them from one handy device. During each stage, a randomly chosen nominator or voter will be drawn out of the hat. To ensure you have a chance of winning, nominate from August 9 and vote from September 27.
The following categories make up the 2010 Open Source Awards.


 Nominations and Voting:
http://www.packtpub.com/open-source-awards-home/nominations

Saturday, September 25, 2010

2010-09-25 Saturday - Java Performance Tuning

I'm doing some micro-benchmarking this weekend on various tuning techniques for a major distributed Java EE 6 application.  This posting is a collection of interesting resources that I've come across:


Troubleshooting...

Chuk-Munn Lee of Sun Microsystems Troubleshoots Java SE 6 Deployment
http://java.sun.com/developer/technicalArticles/javase/troubleshoot/


Performance Tuning and JVM Parameters...

Java SE Performance at a Glance  [new portal for Java Performance information]
http://www.oracle.com/technetwork/java/javase/tech/performance-jsp-141338.html

Java Performance Documentation
http://www.oracle.com/technetwork/java/performance-138178.html

A Collection of JVM Options (compiled by Joseph D. Mocker)
http://blogs.sun.com/watt/resource/jvm-options-list.html

Java HotSpot VM Options
http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html

G1: Java's Garbage First Garbage Collector
http://www.drdobbs.com/java/219401061;jsessionid=JA2FP4T4VEQ23QE1GHPCKHWATMY32JVN


Tooling...

Eclipse Memory Analyzer (MAT)
http://www.eclipse.org/mat/

jps - Java Virtual Machine Process Status Tool
http://download.oracle.com/javase/6/docs/technotes/tools/share/jps.html

 
HAT -- The Java Heap Analysis Tool, Bill Foote
(note: JHAT has replaced HAT)
https://hat.dev.java.net/doc/README.html


Tools: Use HProf For Quick and Dirty Profiling Assistance
http://www.javalobby.org/java/forums/t19612.html
 
NetBeans > Profiler
(The profiler is included in all Java distributions of the IDE)
http://profiler.netbeans.org/

NetBeans > Profiler > HeapWalker
http://profiler.netbeans.org/docs/help/6.0/heapwalker.html

  
VisualVM
https://visualvm.dev.java.net/
"VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. Designed for both production and development time use, it further enhances the capability of monitoring and performance analysis for the Java SE platform."

"VisualVM is available in two distributions: VisualVM available at visualvm.dev.java.net and Java VisualVM available as a JDK tool in Oracle/Sun JDK distributions starting from JDK 6 update 7 and Apple's Java for Mac OS X 10.5 Update 4"
https://visualvm.dev.java.net/docindex.html

https://visualvm.dev.java.net/gettingstarted.html


http://www.yourkit.com/docs/

Documentation > Java Profiler 9.0 > Help > Memory profiling > Support of HPROF format snapshots
http://www.yourkit.com/docs/90/help/hprof_snapshots.jsp

http://www.yourkit.com/docs/90/help/

Documentation > Java Profiler 9.0 > Help > Memory profiling > Support of HPROF format snapshots
http://www.yourkit.com/docs/90/help/hprof_snapshots.jsp

Benchmarking...

Caliper is Google's open-source framework for writing, running and viewing the results of JavaMicrobenchmarks.
http://code.google.com/p/caliper/

Project Dalvik
Code and documentation from Android's VM team
Google Android Benchmarks
http://code.google.com/p/dalvik/source/browse/#svn/trunk/benchmarks


Application Design...


Caching...
http://www.redhat.com/promo/summit/2010/presentations/jbossworld/developer-insights-ii/thurs/sambati-310-caching/HowToStopWorryingAndStartCachingInJava-Final.pdf


The Google Collections Library
http://www.developer.com/open/article.php/3735441/The-Google-Collections-Library.htm


The Final Performance Testing Example, by Bruce Eckel
http://www.artima.com/weblogs/viewpost.jsp?thread=122295

Adroid Developers > Designing for Performance
http://developer.android.com/guide/practices/design/performance.html


Chameleon: Adaptive Selection of Collections
Ohad Shacham, Tel Aviv University
Martin Vechev, IBM Research
Eran Yahav, IBM Research
http://researchweb.watson.ibm.com/people/e/eyahav/papers/pldi09.pdf

References...

The JavaTM Virtual Machine Specification, Second Edition
http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html




2010-09-25 Saturday - Clinical Document Architecture (CDA)

http://www.cdaacademy.com

"Clinical Document Architecture, Release One (CDA R1), became an American National Standards Institute (ANSI)–approved HL7 standard in November 2000, representing the first specification derived from the Health Level Seven (HL7) Reference Information Model (RIM). CDA, Release Two (CDA R2), became an ANSI-approved HL7 Standard in May 2005." 

"The U.S. Healthcare Information Technology Standards Panel (HITSP) bases the following recommended specifications on CDA:
  • HITSP/C28 Emergency Care Summary
  • HITSP/C32 - Summary Documents Using HL7 CCD
  • HITSP/C38 - Patient Level Quality Data Document Using IHE Medical Summary (XDS-MS)
  • HITSP/C48 Encounter Document constructs
  • HITSP/C84 Consult and History & Physical Note Document
  • HITSP/C78 Immunization Document
  • HITSP/C74 PHRM
  • HITSP/C62 Scanned document"'


CDA Quick Start Guides
http://www.alschulerassociates.com/cda/?topic=quick-start-guides

2010-09-25 Saturday - Indivo, personally controlled heath record

Indivo is the original personally controlled health record (PCHR) system. A PCHR enables an individual to own and manage a complete, secure, digital copy of her health and wellness information.
http://indivohealth.org/

version X
http://github.com/chb/


Subversion repository for version 3
http://scm.chip.org/svn/repos/ping/


http://sourceforge.net/projects/indivo/
"Indivo is a distributed, web-based, personally controlled health record system that is accessible to the nomadic user and built to public standards. The Indivo project includes a pluggable web services API, web-based UI, data subscription framework, etc."

2010-09-25 Saturday - SMArt (Subsitutable Medical Apps, reusable technologies)

SMArt (Subsitutable Medical Apps, reusable technologies) 
http://www.smartplatforms.org
"...project funded by The Office of the National Coordinator for Health Information Technology through the Strategic Health IT Advanced Research Projects (SHARP) program. The conceptual framework for SMArt was first articulated by investigators Zak Kohane and Ken Mandl in their 2009 New England Journal of Medicine essay “No Small Change for the Health Information Economy”. The current health IT landscape is characterized by monolithic and slow-to-evolve systems: SMArt has brought together researchers, industry partners, clinicians, and other stakeholders to lay the groundwork necessary to enable a tectonic shift to a flexible health IT environment. The major deliverable of this project will be the SMArt platform architecture, which will achieve two major goals. The first will be a user interface that will allow “iPhone-like” substitutability for medical apps based upon shared basic components. The second will be a set of services that enable efficient data capture, storage, and effective data retrieval and analytics, which will be scalable to the national level but nonetheless respectful of institutional autonomy and patient privacy."

http://wiki.chip.org/smart-project/index.php/Developers_Documentation:_Getting_Started

2010-09-25 Saturday - CONNECTopensource.org

Today I've spent some time researching the Nationwide Health Information Network



http://www.connectopensource.org/

CONNECT is an open source software solution that supports health information exchange – both locally and at the national level. CONNECT uses Nationwide Health Information Network standards and governance to make sure that health information exchanges are compatible with other exchanges being set up throughout the country.
This software solution was initially developed by federal agencies to support their health-related missions, but it is now available to all organizations and can be used to help set up health information exchanges and share data using nationally-recognized interoperability standards.

http://www.connectopensource.org/blog

http://www.connectopensource.org/about/code-a-thon

http://developer.connectopensource.org/display/CONNECTWIKI/Resources


The CONNECT source code repository can be accessed here:
https://svn.connectopensource.org:8443/svn/Nhin_Public/Current

2010-09-25 Saturday - Ignite Portland 10 - coming February 10, 2011

http://igniteportland.com

February 10, 2011
Bagdad Theater
3702 S.E. Hawthorne Blvd.
Portland, OR 97214

Doors Open at 5:00 PM
Show Starts at 7:00 PM

General Admission, No Tickets
Admission is always FREE!

2010-09-25 Saturday - Seattle 2.0 Startup Day Live Stream [today]

http://www.ustream.tv/channel/511828

Wednesday, September 22, 2010

2010-09-22 Wednesday - Short Videos from Oracle OpenWorld

Here are some of the exhibition hall vendor booth interviews I captured on Wednesday at Moscone Center on Wednesday morning:


Ken Yagen, VP Engineering, MuleSoft, JavaOne 2010 | Oracle OpenWorld 2010



Arturo Oliver, MicroStrategy Booth at Oracle OpenWorld 2010


Matt Runquel, Unify ciphersoftinc.com, at Oracle OpenWorld 2010



Dan , NAVTEQ, at Oracle OpenWorld 2010


Mike H., Regional Sales Manager, Emulex



Infiniban Booth at Oracle OpenWorld 2010


Jeff Summers, Confio Software, Confio.com


Lattice Technologies, Oracle OpenWorld 2010



3Par Booth Presentation at Oracle OpenWorld 2010


3Par Tesla Give-away



ADP Booth at Oracle OpenWorld 2010

2010-09-22 Wednesday - Oracle OpenWorld 2010 OTN

Oracle Media Network
http://medianetwork.oracle.com/playlist/86

Tuesday, September 21, 2010

2010-09-21 Tuesday - Spring at JavaOne 2010

http://www.springsource.org/node/2851

2010-09-21 Tuesday - JavaOne 2010 - Project Coin presentation

http://blogs.sun.com/darcy/resource/JavaOne/J1_2010-ProjectCoin.pdf

2010-09-21 Tuesday - JavaOne Duke's Choice Awards

http://java.com/en/dukeschoice/

Innovative End-to-End Consumer Application

MLB Advanced Media Fantasy baseball draft application and scoreboard built in JavaFX and Java and used by 250,000 managers in the official fantasy league of Major League Baseball » Learn more

Innovative Health Care & Human Services

Pulse Pulse Health Intact System, remote telemedicine server that connects doctors, patients and care facilites. Monitoring devices connected to the patient's mobile phone is uploaded and shared. Uses Java EE 6 (server), Java SE 1.6 Swing clients (desktop) and Java ME CLDC (client) » Learn more

Innovative Government & Public Works

Perrone Robotics Perrone Robotics' Pennsylvania Turnpike Laser system used on PA turnpike to effectively measure trucks while in motion. Eliminates need to pull off the road at a weigh station. » Learn more

Innovative User Experience

Effective UI 2010 Winter Olympics medal geo-view, an innovative data visualization application built using Java FX and Java and deployed live to millions of visitors and fans during the Vancouver Olympics » Learn more

Innovative Technical Data Visualization

Gephi Open, interactive graphics visualization platform entirely based on Java SE 6, capable of visualizing and manipulating very lager network data to find patterns and reveal hidden structure. » Learn more

Innovative Java for Developers

Wabi Sabi Software "Application Sonification", which is listening to an application operate to discern behaviors and patterns. Specific example based on application logging (Log4jFuge) using Java SE 6 and Groovy » Learn more

Innovative Java for Education

Rolling Thunder Education solution providing a multi-document interface through which a wide range of data (maps, images, video, text) can be combined. Built using Java SE 6, Swing, and a variety of data viewers (VLC, Worldwind, Yahoo Search, etc.). » Learn more

Innovative Visualization and Data Intelligence

Visual Mining NetCharts Pro 7.0 lets Java developers create HTML 5 compliant web applications, including support for SVG. » Learn more

Innovative Automotive/Transportation

Case Systems, Inc. Solar powered traffic monitoring system using Java ME » Learn more

Innovative Java Building Block

Cinterion Wireless-enabled silicon modules that implement Java ME and provide easy-to-use building blocks for dedicated microelectronics solutions with onboard wireless/GSM communications capabilities. The example nominated is a mobile healthcare system (diabetes management, sleep therapy). » Learn more 

Monday, September 20, 2010

2010-09-20 Monday - JavaOne 2010: Java 7

10am-11am, Hilton Hotel Grand Ballroom

[I'll flesh out more details as I have some time later today to add additional reference links]


Observation:
- Grand Ballroom is huge
- about 99% full, good turn-out for this JavaOne session
- speaker sounds like he took a valium needed to drink a jolt-cola before taking the stage...



Productivity...

Project Lambda
version 0.1 
JSR 292
"The goal of this Project is to formulate a proposal to add first-class functions, function types, and lambda expressions (informally, "closures") to Java, and to implement a prototype suitable for inclusion in JDK 7 so as to enable broad experimentation. If all goes well then this will serve as the basis of a language-change JSR which will, in turn, be proposed as a component of the eventual Java SE 7 JSR."

Alex Buckley and Brian Goetz will be giving a talk later today  at 4pm...

Universality...

De Vinci Machine Project
"a multi-language renaissance for the Java™ Virtual Machine architecture"


"We are extending the JVM with first-class architectural support for languages other than Java, especially dynamic languages. This project will prototype a number of extensions to the JVM, so that it can run non-Java languages efficiently, with a performance level comparable to that of Java itself. Our emphasis is on completing the existing bytecode and execution architecture with general purpose extensions, as opposed to a new feature for just one language, or adjoining an unrelated new execution model." "We want the new languages to co-exist gracefully with Java in the JVM, and to benefit (like Java) from its powerful and mature technologies." "We are looking to remove “pain points” already observed by implementors of successful or influential languages, as opposed to attempting more speculative work on unproven features or niche languages. Sub-projects with major activity include dynamic invocation, continuations, tail-calls, and interface injection.  There is a large number of more speculative, lower-priority sub-projects. These are included in hopes that someone in the community will become excited with us at the prospects of a more dynamic JVM, to the point of sharing in its creation."


Modularity...

Project Jigsaw
"get rid of the classpath....put the information in the code as annotations" (?)
"The goal of this Project is to design and implement a simple, low-level module system focused narrowly upon the goal of modularizing the JDK, and to apply that system to the JDK itself. We expect the resulting module system to be useful to developers for their own code, and it will be fully supported by Sun for that purpose, but it will not be an official part of the Java SE 7 Platform Specification and it might not be supported by other SE 7 implementations."

JPackage

The JPackage Project has two primary goals:
  • To provide a coherent set of Java software packages for Linux, satisfying all quality requirements of other applications.
  • To establish an efficient and robust policy for Java software packaging and installation. 

JMod (?)
...more compressed than JAR files...
...allow creation of JPMs
...will be allow generation via Maven


JVM
...HotSpot will get an injection of HotRocket code/capabilities...


Java 7 Release...

...original scope would have been delivered in middle of 2012...that's too long...
...... Lambda is not done
.......Jigsaw is not done
.......Coin is almost done (?)


Plan:
...deliver what can be made stable...by middle of 2011...
...deliver Java 8 in 2012
...deliver Java 9...in less than 5 years...
...wants to get back to a more regular release schedule (every 2 years...)


GPL version 2 will continue to be used

Still plan to submit JSRs for Java 7 and future releases

JDK 7 binaries will continue to be released every two weeks for testing...

2010-09-19 Sunday - OracleWorld 2010 Opening Keynote

photos & write-up coming soon...








...and then came the after-party!...









Sunday, September 19, 2010

2010-09-19 Sunday - A Shadow of JavaOnes' Past...


I arrived in San Francisco yesterday via my flight from Phoenix.  On my drive into the city, a cab driver mentioned that he had heard that as many 42,000 people will be arriving for the OracleWorld conference this week.  I am primarily interested in the JavaOne sessions - but will also attend some of the Oracle Developer sessions - as well as the OracleWorld key notes.

JavaOne, I feel I hardly know ye - I fear you are but a ghost of your former self...



As I look through the catalog of sessions for JavaOne 2010, I am saddened to see that the Birds-of-a-Feather (BOF) sessions are limited to just Tuesday night...

By virtue of having JavaOne sessions scheduled at locations such as the Hilton, Parc55, and Westin - rooms are probably smaller (?) than what would normally have been available at Moscone Center - thus sessions are marked as FULL - that might otherwise have had a bit more room for the random drop-in attendee.


I'll be attending the Oracle Opening Keynote tonight...the after-party will be held here?...







Familiar faces from Sun are missing here this week, Google's absence from the list of sessions is noticeable, and the side-show feeling of JavaOne sessions no longer being held in Moscone Center cast a pall over this year's JavaOne for me...

Saturday, September 18, 2010

2010-09-18 Saturday - GlassFish 2010 Community Event and Party

I'll be attending the GlassFish 2010 Community Event/Party on Sunday. 


GlassFish 2010 Community Event/Party, Sun. 9/19 

http://wikis.sun.com/display/GlassFish/GlassFish%202010%20Community%20Event%20and%20Party

Community Event

Sunday Sept 19th 2010, 2:30pm-4:30pm
Moscone South, Room 252
Event is S319368 in the J1 online catalog;


Party

Sunday Sept 19th, 2010, 7:30pm-10pm (follows the OWW Sunday keynote)
TheThirstyBear
Free Event




I'm also working on a review for Packt Publishing on David Heffelfinger's latest book: 
"Java EE 6 with GlassFish 3 Application Server"

Friday, September 17, 2010

2010-09-17 Friday - PictureOfHealth.com

As I prepare to fly to San Francisco tomorrow for the start of OracleWorld / JavaOne, I thought it would be interesting to check on what Jonathan Schwartz is up to these days:

Jonathan Schwartz has started a new company in S.F.
http://jonathanischwartz.wordpress.com/

and they are hiring...

http://www.pictureofhealth.com/jobs

Saturday, September 11, 2010

2010-09-11 Saturday - SalesForce.com Winter'11 Release Notes

I'm doing an evaluation this weekend of OrchestraCMS.com for a client's possible use in their adoption of SalesForce.com

As part of that evaluation, I spent some time reviewing the Winter'11 Release Preview information:

http://developer.force.com/releases/release/Winter11

http://na3.salesforce.com/help/doc/en/salesforce_winter11_release_notes.pdf

I've extracted a few items from the release notes that caught my attention:

Page-86
With Winter '11, developers and partners can use a new CTI Developer's Toolkit to build CTI adapters for call center users working with the Service Cloud console
Page-91
In Winter '11, the High Volume Customer Portal User license is generally available. After you purchase the license, you can assign it to Customer Portal-enabled contacts so that large numbers of users can log in to a Customer Portal without affecting its performance.

Page-114
Revised Governor Limits
For Winter '11, Salesforce.com is reducing the number of items limited by the Apex governor limits. In addition, many of the remaining items have had their limits increased.

Tests no longer run in a separate context: Prior to Winter '11, governor limits worked with three different contexts, with different amounts of resources allocated for each context. For Winter '11. tests no longer have specific limits. Instead, they've been included with triggers, anonymous blocks, Visualforce controllers, and WSDL methods.

Removed limits:
• Total request time for one callout (HTTP request or Web services call) has been removed.

• Maximum size for a callout (HTTP request or Web services call) has been removed.
Increases to existing limits:

• General heap size has been raised from 2 MB to 3 MB, with no scaling. In addition, batch Apex heap size is 6 MB.

• Apex classes and triggers have been raised from 100,000 characters and 32,000 characters, respectively, and can now be 1 million characters long, not counting comments, test methods, and classes defined with @isTest.

• Maximum amount of Apex code allowed in an organization has been raised from 1 MB to 2 MB.

• Total number of ChildRelationship, RecordTypeInfo and PicklistEntry objects allowed and total number of fields calls allowed has been raised from 10 to 100.

page-117 

New AllOrNoneHeader SOAP Header
The AllOrNoneHeader header allows the create(), delete(), undelete(), update(), and upsert() calls to roll back all changes unless all records are processed successfully. The default behavior is to allow partial success of a call: 

Force.com Web Services API Enhancements
records without errors are committed, while records with errors are marked as failed in the call results. This new header gives you more transactional control over commitment of changes.

Page-118
Force.com Bulk API Enhancements
The REST-based Bulk API is optimized to process a large number of records asynchronously. It allows you to load large batches of data that are processed in the background. The Bulk API has been improved for API version 20.0:
  • Support for Binary Attachments

  • With API version 20.0, you can submit batches containing binary attachments, such as Attachment records or Salesforce CRM Content.

  • Increased Number of Daily Batches Allowed

  • The limit of batches allowed per rolling 24–hour period has been increased from 500 to 1000.

Page-120
Salesforce.com uses the SAML 2.0 standard for single sign-on and generates SAML assertions when configured as an identity provider.

Page-124
OAuth Version 2.0 Supported
Starting in Winter '11, Salesforce.com supports version 2.0 of the OAuth protocol for authenticating Web applications that access data in a Salesforce.com instance.

A wealth of documentation is available:


http://wiki.developerforce.com/index.php/Wiki

http://wiki.developerforce.com/index.php/Documentation#Apex_Code

http://wiki.developerforce.com/index.php/An_Introduction_to_Visualforce

http://wiki.developerforce.com/index.php/An_Introduction_to_Force_Database

http://wiki.developerforce.com/index.php/Integrating_with_the_Force.com_Platform

http://wiki.developerforce.com/index.php/An_Overview_of_Force.com_Security

http://www.salesforce.com/us/developer/docs/api/

http://wiki.developerforce.com/index.php/An_Introduction_to_Builder



Saturday, September 04, 2010

2010-09-04 Saturday - "mspdb100.dll is missing"

I spent some time this evening upgrading some of my Microsoft Visual Studio tools, and installed the latest
Microsoft Windows SDK for Windows 7 and .NET Framework 4 
[The Windows SDK provides tools, compilers, headers, libraries, code samples, and a new help system that developers can use to create applications that run on Microsoft Windows], which you can download here:
Web Install
ISO image



While attempting to test the command line utilities, I encountered the following error message popping up rather unexpectedly:

"mspdb100.dll is missing..."

A quick search found this posting on Microsoft Connect - which indicated that the directory where the IDE is installed simply needed to be added to the PATH.


On a side note, I recently installed PowerISO - and highly recommend it.