2013-02-17
2013-02-17 Sunday - Graphing in the Browser
I've been interested for a number of years in the Graphviz tool.
It seems to me that there are some interesting uses that this type of tool would lend itself to quite well...
Recently I wondered if a JavaScript implementation might have already been developed...and found the following that might be of interest to others:
http://code.google.com/p/canviz/
http://ushiroad.com/jsviz/
https://github.com/mdaines/viz.js
Another possibly interesting JavaScript library, along similar lines, might be jsPlumb
http://code.google.com/p/jsplumb/
https://github.com/sporritt/jsPlumb
http://jsplumb.org/doc/usage.html
Some blogs/articles that reference graphviz usage:
http://spin.atomicobject.com/2013/01/30/making-diagrams-with-graphviz/
2013-01-14
Book Review: Java EE Development with Eclipse
My Book Review:
Packt Publishing has invited me to write a review on one of their new books, Java EE Development with Eclipse:
https://www.amazon.com/Java-Development-Eclipse-Deepak-Vohra/dp/1782160965/
[Also see my posted Amazon review]
A few first impressions on completing an initial read of the book:
- 426 pages, with 10 chapters
- Instructions are clear
- Screen shots are clear and helpful
- Level of detail and complexity of the examples is appropriate
- Code is available for download
- Chapters are of an optimum length
- The book will help someone who is already familiar with Eclipse learn more about the various Java EE development capabilities that are available within Eclipse (and supplemented by the Oracle Enterprise Pack for Eclipse - which includes integrated support for Oracle WebLogic Server 12c)
- Eclipse 3.7 was used for developing the sample code and screen shots in the book
- Just reading the table of contents didn't convey a cohesive vision of why the topics were sequenced in the manner in which they were presented. Perhaps a preliminary chapter could have outlined a simple enterprise application - and used the chapters to slowly demonstrated how various features of the application would be built with Eclipse and Java EE.
- Using Ant as the build tool actually detracts from the clarity of the examples - by necessitating the discussion of where to download the required jar dependency files. Perhaps the instructions perhaps could have been simplified by just relying on Maven or Gradle.
- Chapter 4 (Creating a JSF Data Table) exposes a UI field for direct SQL command data entry - which one hopes a novice programmer won't assume to be a standard best practice (for developing anything other than the most quick-and-dirty of hacks)
- Whereas examples in Chapters 1 thru 7 seemed to be building examples or concepts presented in earlier chapters - Chapters 8 and 9 (JAX-WS Web Service and RESTful Web Services using the JAX-RS API) veered into the trivial HelloWorld examples.
- Chapter 8 (Creating a JAX-WS Web Service) only addressed generating a web service based on annotation - and did not demonstrate Eclipse tooling capability to perform contract-first web service creation.
Chapter Outline
- Chapter 1: EJB 3.0 Database Persistence
- Chapter 2: O/X Mapping with JAXB 2.x
- Chapter 3: Developing a Web Project for JasperReports
- Chapter 4: Creating a JSF Data Table
- Chapter 5: Templating with Facelets
- Chapter 6: Creating Apache Trinidad User Interfaces
- Chapter 7: Creating an AJAX Application
- Chapter 8: Creating a JAX-WS Web Service
- Chapter 9: RESTful Web Services Using the JAX-RS API
- Chapter 10: Spring
Conclusion
Java EE is a large and complex topic. Eclipse itself is a large and complex tool with a robust library of plugins. A book such as this, in attempting to cover both - must necessarily make choices of what is included - and must maintain a stringent discipline to maintain brevity.
This book provides a decent hand-held approach to guiding the reader through the mechanics of creating various Java EE application components. It is not intended as an exhaustive reference, but more of a friendly guide to help you move along the trail a bit further and faster, than if you stumbled and bumbled by yourself in the dark.
2025-03-29 Sat - Addendum:
It appears this may be the latest version of this book series, by the author:
Java EE Development with Eclipse - Third Edition: Develop, debug, test, and troubleshoot Java EE 8 applications rapidly with Eclipse 3rd ed. Edition
https://www.amazon.com/Java-Development-Eclipse-troubleshoot-applications/dp/1788833775
2012-12-30
2012-12-30 Sunday - NFRs
Often teams approach NFRs using a boil-the-ocean approach - in which case, all NFRs are treated equally (at best) - or ignored (at worst) by the developers en masse due to the sheer volume of NFRs specified.
Today I happened across a paper that was published in March 2012 as part of the
20th IEEE International
Requirements Engineering Conference
September 24th-28th, 2012. Chicago, Illinois, USA.
http://crisys.cs.umn.edu/re2012/
NON-FUNCTIONAL REQUIREMENTS IN SOFTWARE ARCHITECTURE PRACTICE
Report ESSI-TR-12-1
Departament d’Enginyeria de Serveis i Sistemes d’Informació
http://upcommons.upc.edu/e-prints/bitstream/2117/15716/1/da-ca-jc-xf-report%20essi.pdf
by
David Ameller
Claudia Ayala
Xavier Franch
Software Engineering for Information Systems Group
Universitat Politècnica de Catalunya (GESSI-UPC)
Barcelona, Spain
and
Jordi Cabot2
AtlanMod
INRIA - École des Mines de Nantes
Nantes, France
A slide presentation is also available:
http://modeling-languages.com/how-do-software-architects-deal-with-non-functional-requirements/
A few interesting quotes from the paper:
- "Our interviews show that in 10 out of the 13 projects considered, the software architect was the main source of the NFRs."
- "Architects did not share a common vocabulary for types of NFRs and showed some misunderstandings."
- "The two most important types of technical NFRs for architects were performance and usability. On the other hand, architects considered non-technical NFRs to be as relevant as technical NFRs."
- "Inability to interpret some particular term, e.g., “availability”, “accuracy”, and “sustainability”, requiring additional explanations from the interviewers"
- "Use of a term with an incorrect definition. We found a serious confusion in the answer, e.g., “Maintainability is very important, because when something is working, we can’t make changes”
Other Resources Mentioned in the Paper
Volare Requirements Specification Template
http://www.volere.co.uk/template.htm
ISO/IEC 9126 Software engineering - Product quality
http://en.wikipedia.org/wiki/ISO/IEC_9126
Also see:
ISO/IEC 9126 in practice: what do we need to know?
http://www.essi.upc.edu/~webgessi/publicacions/SMEF%2704-ISO-QualityModels.pdf
ISO/IEC 25010:2011
http://www.iso.org/iso/home/store/catalogue_ics/catalogue_detail_ics.htm?csnumber=35733
Other Web Resource Links
http://en.wikipedia.org/wiki/Non-functional_requirement
2012-12-16
2012-12-16 Sunday - Responsive Web Design
Ben Callahan's presentation (Remix South, October 19, 2012)
https://speakerdeck.com/bencallahan/responsive-web-design-workshop-for-remix-south-2012
Josh Netherton's very cool Taris CSS3 animation tutorial (Remix South, October 20, 2012):
http://joshnetherton.com/presentations/remix2012/
http://joshnetherton.com/presentations/remix2012/slides.html#intro
and Josh's web site has other interesting articles:
http://joshnetherton.com/
Paul Hayes has many interesting articles:
http://www.paulrhayes.com/
2012-12-12
2012-12-12 Wednesday - Windows MAX_PATH?
I love to create organization from chaos.
In my consulting practice, I have a very organized approach to creating a directory structure for each client engagement, and within an engagement - a very organized sub-directory layout so that I can quickly find things long after I've filed them away.
Recently, while trying to help re-organize the logical directory structure of a client's Sharepoint site for a project - I hit a puzzling error message:
[click to view]
Without intending to be too verbose, my relatively few nested directory names exceed a Sharepoint limitation. I had simply provided useful and meaningful directory names - and organized them in such a way as to facilitate quickly finding information. However, some inherent implementation constraint in the design of Sharepoint results in an arbitrary maximum length constraint for an URL+filename (260 characters) and a further maximum length constraint on a file name (128 characters).
While one can understand a limit for a file name or a directory path in the physical file system - it just seems strange to have an arbitrary restriction on how deeply one can nest a logical 'directory' structure within a content management system.
In doing a quick Google search, I came across the following article that may be of interest to others, as it mentions a MAX_PATH with a default of [260]:
http://msdn.microsoft.com/en-us/library/aa365247.aspx
Maximum Path Length Limitation
In the Windows API (with some exceptions discussed in the following paragraphs), the maximum length for a path is MAX_PATH, which is defined as 260 characters. A local path is structured in the following order: drive letter, colon, backslash, name components separated by backslashes, and a terminating null character. For example, the maximum path on drive D is "D:\some 256-character path string" where " " represents the invisible terminating null character for the current system codepage. (The characters < > are used here for visual clarity and cannot be part of a valid path string.)
Seriously Microsoft? You designed an API that exposes a physical constraint of your file system design - and applied it to the web?
I suspect that if Sharepoint were designed with something like the JSR 170 approach (Content Repository API for Java) - then this type of limitation would not be an issue.
Apache Jackrabbit is an implementation of JSR 170
2012-12-16 Sunday Update:
Apparently there is another manifestation of this constraint in the Microsoft ASP.NET implementation:
HttpContext.Current.Server.MapPath fails for long file names
Back in 2006, some empirical findings were published on Boutell.com that are worth noting: http://www.boutell.com/newfaq/misc/urllength.html
...as you will note, 2,000 would appear to be a minimally supported length across the various browsers and servers that were tested.
Per Microsoft Support, IE supports a max. URL length of 2,083
http://support.microsoft.com/kb/208427
...so I guess it is just the design and implementation of Sharepoint.
2013-03-24 Sunday Update
You will also run into this issue if you are still using xcopy
http://www.terminally-incoherent.com/blog/2007/02/05/xcopy-insufficient-memory/
2012-12-08
2012-12-08 Saturday - ISO 3166 Country Codes Utility Class
Last night I was looking for a small coding task that could be completed in an evening - that would allow me to add something of value to a personal utility library - and decided to work on a robust class to handle a variety of tasks related to ISO 3166 Country Codes.
[another one of my side projects is the implementation of a utility library of the United States Postal Service Pub 28 (Postal Addressing Standards) - of which this Country Code utility class will be of some re-use]
Two useful wikipedia.org page references:
The utility class I'm working on provides a number of functional capabilities:
- Stores the following Country Code Information:
- Short English Name
- Two Character Alpha Code (Alpha-2)
- Three Character Alpha Code (Alpha-3)
- Three Character Numeric Code (Numeric-3)
- Top Level Domain (TLD)
- Stores the Country Code data in a multidimensional array for most of the primary functional processing
- Stores a Key-Value entry in a HashMap to allow searching by the Short Name, as well as by the following codes: Alpha-2, Alpha-3, Numeric-3, and TLD
- Utility method to generate an XML structure of the primary array information
- Utility method to generate HTML select snippets codes for either Apha-2, Alpha-3, or Numeric-3 value codes. A parameter allows the developer to specify which Country Code to set as the 'selected' value. The method determines which type of code was passed via inspection of the characteristics of the single parameter.
- Utility method to generate the XSD Enumerations for the Alpha-2, Alpha-3, and Numeric-3 Country Codes.
- Utility method to dump the contents of a Country Code array
- Utility method to dump the contents of a HashMap - which is searchable by all possible Key-Value combinations
- Utility method to query the length of the array
- Utility method to query the size of the HashMap
I've posted files for the generated HTML select samples on github:gist
I've posted a github:gist file for the XML snippet of the enumerations:
- XML Enumerations for Alpha-2, Apha-3, and Numeric-3 codes [note: TLD entries still to be completed]
2012-11-21
2012-11-21 Wednesday - Architecture Book Recommendations
I realized tonight that the links to the books I recommended in this post were incorrect / broken, so I've updated them:
http://intltechventures.blogspot.com/2012/05/2012-05-17-thursday-recommened.html
...while there are a few overlapping suggestions, this earlier post may also have some suggestions that may be of interest:
http://intltechventures.blogspot.com/2008/12/2008-12-29-sunday-recommended-book-for.html
2012-11-18
2012-11-18 Sunday - Graphing and Plotting in Python
I'm spending some time this week researching various plotting and graphing solutions in Python.
The first package for investigation: matplotlib
http://matplotlib.org
https://github.com/matplotlib/matplotlib
My second choice for further investigation will be: MathGL
http://mathgl.sourceforge.net/
other solutions to possibly investigate later:
http://wiki.python.org/moin/NumericAndScientific/Plotting
2012-11-28 Update:
I just came across NetworkX
"Python language software package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks."There are some additions available on the NIST Applied and Computational Mathematics Division web site [Network Modeling Software] that includes the following:
- Graphicality Testing
-- This is a set of routines for testing if a sequence is graphical,
multi-graphical, or pseudo-graphical. All tests are performed in linear
time. It also tests whether an input and output sequence has a
directed realization. These routines are independent of NetworkX.
- Bipartite Graph Generator -- This is a routine for generating a bipartite graph whose projection is a given graph. Based on the algorithm of Guillaume and Latapy.
- Sequential Graph Generator -- A routine for sequentially generating a graph from a given degree sequence. Based on the algorithm of Blitzstein and Diaconis.
- Markov Graph Generator -- Set of helper routines for generating a graph from a given degree sequence using a Markov sampling approach. Based on the paper of Gkantsidis, Mihail, and Zegura.
- Network Modeling Toolkit -- A graphical front end for creating network models.
2012-11-17
2012-11-17 Saturday - Scott Young's MIT Challenge
http://www.scotthyoung.com/blog/mit-challenge/
...he completed his goal on September 26, 2012, just under 12 months after beginning October 1st, 2011.
Regardless of any question of qualitative aspects of his acquired/retained knowledge - the idea of challenging yourself to cover such a breadth of material (whether on a compressed timeline or not) - cannot help but to improve you in so many ways:
- A forced-march refresh of material you may not have covered in a long time
- A forced-march exposure to potentially new material that wasn't available to you before
- A real stretch of your learning habits
- A way to go back and fill in (or reinforce) concepts that you may not have solidly internalized before
- A way to challenge you to achieve greater efficiency in how you acquire new knowledge / and assimilate and organize that knowledge
2012-11-17 Saturday - Software Modeling and Design
For example, here's the 'treasure' from my last three book hunting expeditions:
Note: A very useful resource for finding local book sales: http://www.booksalefinder.com
[in case you may not be aware, supporting your local thrift stores is one way to directly help support local job creation in your neighborhood]
Since my reading interests are quite broad - the variety of books I've picked-up have spanned many different disciplines. But, I'm always on the lookout for an interesting text that has some connection to my professional life as a solution architect.
A recent such acquisition: Hassan Gomaa's excellent 'Designing Concurrent, Distributed, and Real-Time Applications with UML' (published in 2000) - which I picked-up for about $1.00
NOTE:
Dr. Hassan Gomaa,
Department of Computer Science
George Mason Universityhttp://mason.gmu.edu/~hgomaa/
http://mason.gmu.edu/~hgomaa/CourseSlides.html
I consider myself an advanced practitioner of UML - but often use a limited subset in my day-to-day architecture work. I enjoyed the opportunity to do a refresher on some of the less-frequently-used aspects - and in particular, the concerns that are relevant to real-time modeling - by diving into Gomaa's book.
Most UML books tend to use trivial examples - and rarely spend much time on the real-time UML modeling aspects. At 700+ pages, this is an excellent text for junior level developers to significantly deepen their UML modeling skills.
I must say that the book is well written and has weathered the passage of time quite well.
In fact, I've been so pleased with Gomaa's writing that I've added his 2011 follow-up text, 'Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures' to my future purchase list.
2012-11-11
My Review of Think Python
A Concise Intro to Python Programming
Best Uses: Novice, Student
Describe Yourself: Solution Architect
Allen B. Downey's recent release (from O'Reilly) - 'Think Python' is an excellent example of how an introductory programming book should be crafted.
Clear, concise, entertaining, insightful, crisp, useful - these are some of the words that come to mind while reading this book.
There is good coverage of some of the differences between Python 2 and 3.
This is an excellent text for the novice programmer to learn Python - providing a general purpose overview of the language. The interested reader will find enough learning
traction within this book to more easily proceed to more advanced texts.
Programming concepts are gradually introduced, with successive layers of refinement adding further understanding of more complex programming concepts.
At the end of each chapter are suggested exercises to further deepen the reader's grasp of the concepts just presented.
The inclusion of links to codes samples and solutions at the http://thinkpython.com site is a nice touch.
While this book provides a very light overview of some essential software design concepts (Functions, Encapsulation, Generalization, Recursion, Inheritcance, Polymorphism), the reader of this book should plan to further enhance their understanding with supplemental books to cover deeper functional programming concepts as well as deeper understanding of class design and object oriented concepts.
It is notable that although this book certainly fits into the classification category of introductory - the coverage includes an uncommon attention to such important matters
as debugging and analysis of algorithms. As an additional bonus, Appendix C provides a discussion of Lumpy ("...to examine the state of a running program and generate object diagrams...and class diagrams) - which is included in the Swampy code discussed early in the book.
2012-10-28
2012-10-23
2012-10-23 Tuesday - Visual Studio 2012 Cookbook
http://www.packtpub.com/visual-studio-2012-cookbook/book
2012-10-05
2012-10-05 Friday - Recent Interesting Finds...
I recently started following @highscal on Twitter - also see: http://highscalability.com/
I happened to come across Ikai Lan's blog [@ikai]- a treasure trove of interesting posts (and he's also very active on github - https://github.com/ikai)
On one of his posts - Ikai mentioned Google Apps Script - which I haven't looked at previously - and in particular - there was a mention of the Google Finance Services - which I want to remember to come back and review later: https://developers.google.com/apps-script/service_finance
See Tutorials: https://developers.google.com/apps-script/articles
Because of some recent performance tuning experiences ['challenges'] observed in a production environment with a 3rd party vendor's commercial Java application using Hibernate - I was also intrigued that Ikai also had a post providing examples of jOOQ - a DSL for creating the ORM between Java and SQL.
Finally, Ikai's write-up on LinkedIn's use of node.js had a mention regarding netty - which I haven't looked at in quite awhile - so this is another item to put on my reminder list for later research.
2012-10-02
2012-10-02 Tuesday - SHA-3 winner (Keccak)
NIST announced Keccak as the winner of the SHA-3 Cryptographic Hash Algorithm Competition and the new SHA-3 hash algorithm in a press release issued on October 2, 2012. Keccak was designed by a team of cryptographers from Belgium and Italy, they are:
- Guido Bertoni (Italy) of STMicroelectronics,
- Joan Daemen (Belgium) of STMicroelectronics,
- Michaël Peeters (Belgium) of NXP Semiconductors, and
- Gilles Van Assche (Belgium) of STMicroelectronics.
http://keccak.noekeon.org/
From keccak web site:
Keccak makes use of the sponge construction and is hence a sponge function family.
The design philosophy of Keccak is the hermetic sponge strategy. It uses the sponge construction for having provable security against all generic attacks. It calls a permutation that should not have structural properties with the exception of a compact description. By structural properties we mean properties that a typical random permutation does not have.
Keccak can be considered as a successor of RadioGatún. However, it has a very different design philosophy. The transformation applied to the state of RadioGatún in between the insertion of input blocks or extraction of output blocks is a simple round function. This round function has algebraic degree two and thus does not attempt to be free of structural properties. Therefore, unlike Keccak, RadioGatún requires blank rounds. Moreover, RadioGatún is not a sponge function as its iteration mode does not follow the sponge construction.
The permutation Keccak-f has the following properties:
About the performance of Keccak:
- It consists of the iteration of a simple round function, similar to a block cipher without a key schedule.
- The nominal version of Keccak-f operates on a 1600-bit state. There are 6 other state widths, though: 25, 50, …, 800.
- The choice of operations is limited to bitwise XOR, AND and NOT and rotations. There is no need for table-lookups, arithmetic operations, or data-dependent rotations.
Keccak can be used for:
- In software, Keccak[] takes about 13 cycles per byte on the reference platform defined by NIST.
- In hardware, it is fast and compact, with area/speed trade-offs.
- It is suitable for DPA-resistant implementations both in hardware and software.
In these cases, the usage of the sponge construction allows for modes that are provably secure against generic attacks.
- keyed or randomized modes simply by prepending a key or salt to the input message;
- generating infinite outputs, making it suitable as a stream cipher or mask generating function.
2012-09-30
2012-09-30 Sunday - JavaOne 2012 Keynote
http://www.oracle.com/javaone/index.html
I'll have some notes added to this shortly...
Sunday, September 30, 2012
4pm-7pm JavaOne Keynote
Java EE 7 targeted for sometime in 2013 (?)
Project Nashorn
JavaFX Update
- JavaFX available on Linux/ARM and Scene Builder for Linux
- JavaFX 2.2 and beyond
-- JDK 8 plans include 3D, 3rd party controls
-- Intended as a replacement for Swing
- JavaFX will be fully open sourced by the end of 2012 (?)
Java SE 9 and Beyond
- Project Sumatra will enable Java applications to leverage multicore CPU an parallel processors ["Write once, run anywhere extended to the heterogeneous platform"]
-- http://openjdk.java.net/projects/sumatra/
-- "to enable Java applications to take advantage of graphics processing units (GPUs) and accelerated processing units (APUs)--whether they are discrete devices or integrated with a CPU--to improve performance."
JKD 8
- to be feature complete in January 2013
- Developer Preview available in February
- George Saab called for JDK 8 "test pilots"
Java Dolphin Project - open sourced
- https://github.com/canoo/open-dolphin
- JavaFX data integration project
Java Embedded
- Offerings: Java Card, ME-E, OJEC, SE-E
- New Embedded Releases (Java ME Embedded 3.2, Java Embedded Suite 7.0)
- ehs5 released today - smallest M-M capable for Java Embedded device
Java EE (Cameron Purdy presented, coherence creator)
- Focus and Direction: Standard, Productivity, Portability, Extensibility, Modularity
- 14 vendors have passed EE 6 TCK
- Java EE 7 for 2013
- Scale to build dynamic HTML 5 Apps [WebSockets, Servlet 3.1 NIO, Server Sent Events, JSON, REST
- Continued Productivity Focus (more API pruning, built on Java SE 7, broader uptake of Dependency Injection)
- and with caching (JSR 107) and Batch Applications for the Java Platform (contributed by IBM) JSR 352 http://www.jcp.org/en/jsr/detail?id=352
- Java EE 7 Cloud features to be delayed until 2015 (targeted for Java EE 8 Platform)
- Java EE Persistence for NoSQL - no existing NoSQL standard yet
- EclipseLink NoSQL - JPA Style
-- MongoDB
-- Oracle NoSQL
-- Cassandra planned
-- more coming...
- WebSocket in Java EE 7 already in GlassFish
- Java EE 8: "Incremental delivery of JSRs"
- Jigsaw modularity with Java SE 9
Java EE Past, Present, Future
http://www.nikeinc.com is looking to hire Java programmers...
Oracle Certification Exam Guides
OCA/OCP Oracle Database 11g All-in-One Exam Guide with CD-ROM
Exams 1Z0-051, 1Z0-052, 1Z0-053
http://www.mhprofessional.com/product.php?isbn=0071629181
OCA Oracle Database SQL Certified Expert Exam Guide (Exam 1Z0-047)
http://www.mhprofessional.com/product.php?isbn=0071614214
Oracle Solaris 11 System Administration The Complete Reference
http://www.mcgrawhill.ca/professional/products/9780071790420/oracle+solaris+11+system+administration+the+complete+reference/
OCA: Oracle Database 11g Administrator Certified Associate Study Guide: (Exams1Z0-051 and 1Z0-052)
http://www.wiley.com/WileyCDA/WileyTitle/productCd-0470395125,descCd-authorInfo.html
Kaplan: Oracle Learning Tools and Practice Tests
http://www.selftestsoftware.com/certprep-materials/oracle.kap
"If I found a spaceship, I would never ever have to talk about the Titanic again"
- Dr. Robert Ballard (located Titanic)
IBM: Jason McGee discussed Java Applications in the Cloud - and Cloud Challenges for Java...
- share more, cooperate, use less, expolit
- The Patterns Approach for describing Cloud based Applications/Systems
-- workload pattern, virtual application instance
IBM: Java Applications in the Cloud (IBM's Jata CTO talked about multi-JVM deployments in the cloud)
- Sharing
- J9 JVMs using sharing to reduce costs
-- shared classes cache for read-only shared artifacts (bytecodes)
-- Dynamic AOT (ahead-of-time code) - reuse JIT code from multiple JVMs
-- Reduce memory use by 20%, improving startup time 10-30%
- Multitenancy
-- JVMs evolution to support isolation within a single JVM
--- Single copy of code, multiple copy of static variables
--- resource management within isolation context
-- Goal: 10s of K vs MBs per tenant safely
- 'Liberty' Profile - for Web, OSGi and Mobile Apps
-- Lightweight Runtime for Cloud
--- WEb profile server < 50 MB zip
--- Small memory footprint < 50 MB
--- Fast server start times < 2 secs
-- Standards Based Modularity for Cloud
--- Java EE++ built on OSGi modules and services
--- Modularity in Java SE 6 and up
-- Developer First Focus
--- Simple server configuration
--- fast easy setup
--- Integrated Eclipse AppDev tools
--- No restart required code changes
-- Dynamic Modular Runtime
--- ...
- Dynamic Behavior
-- Dynamic memory resize, processor reallocation and app migration
--- JVM will react in real-time to resource events
--- Integration across JVM/OS/HV for best performance
IBM: New System Z recently announced...
- New 5.5 GHz 6-core processor chip, large caches to optimize data serving 2nd gen OOO design
- Hardware Transaction Memory (HTM)
- Run-time Instrumentation (RI)
- 2GB page frames - improved performance targeting 64-bit heaps
- Page-able 1MB large pages using flash
- New software hints/directives
- New trap instructions
- Up-to 45% improvement in throughput amongst Java workloads measured with zEC12
IBM: Hardware Matters (Jason McGee, Chief Architect Cloud Computing, IBM Distinguished Engineer)
- hardware is changing and evolving rapidly
-- move to solid state, multi-core processors, Low latency high-bandwidth networks (RDMA), Advanced Energy Management, Storage Cloud Memory
- IBM: JVM Support for Multiple Languages (Jason McGee, Chief Architect Cloud Computing, IBM Distinguished Engineer)
2012-09-30 Sunday - Strange Loop 2012 Trip Report
I have several paragraphs and photos to add to this posting - but will need to come back to this in a few hours.
https://github.com/strangeloop/strangeloop2012/tree/master/slides
New Languages:
http://www.shenlanguage.org/learn-shen/index.html
http://roy.brianmckenna.org/
http://julialang.org/
http://www.rust-lang.org
http://elixir-lang.org/
Other good write-ups I've recently found:
Strange Loop Emerging Languages Camp Recap: Julia, Grace, Rust, and a Bandicoot
http://www.ripariandata.com/blog/strange-loop-emerging-languages-camp-recap-julia-elixer-a-bandicoot/
https://gist.github.com/3763157
Interesting Links Mentioned/Referenced/Found during various sessions:
http://haskell.cs.yale.edu/wp-content/uploads/2011/01/yampa-arcade.pdf
https://github.com/ServiceStack/ServiceStack/wiki/New-Api
http://shaffner.us/cs/papers/tarpit.pdf
Moseley and Marks (2006)
Complexity caused by state and control
close the loop - process
http://www.slideshare.net/shinolajla/taxonomy-ofscala
http://c2.com/cgi/wiki?BlubParadox
http://www.paulgraham.com/avg.html
http://c2.com/cgi/wiki?BeatingTheAverages
http://www.eecs.harvard.edu/~mdw/proj/seda/
http://www.eecs.harvard.edu/~mdw/papers/quals-seda.pdf
http://www.altjs.org
http://www.emscripten.org
http://www.slideshare.net/nathanmarz/runaway-complexity-in-big-data-and-a-plan-to-stop-it
Cross-Compile XNA
http://www.jsil.org
http://worrydream.com
http://worrydream.com/Tangle/
http://worrydream.com/#!/Bio
https://speakerdeck.com/u/czarneckid/p/real-world-redis
research: 30 second guide to using REDIS [for distributed datastore]
http://www.information-management.com/news/40-Vendors-We-Are-Watching-2012-10023168-1.html?zkPrintable=1&nopagination=1
http://www.cs.nyu.edu/cs/faculty/shasha/papers/hpts.pdf
2012-09-16
2012-09-16 Sunday - Disruptor Resources
http://code.google.com/p/disruptor/
Concurrent Programming Using the Disruptor
[Trisha Gee's presentation to the London Java Community at Skillsmatter on 1st March 2012]
http://www.slideshare.net/trishagee/a-users-guide-to-the-disruptor
Whitepapers / Presentations
Disruptor: High performance alternative to bounded queues for exchanging data between concurrent threads [May 2011]
Martin Fowler's post [July 12, 2011]
Martin Fowler
QCON Video [Dec 2010]:
LMAX - How to Do 100K TPS at Less than 1ms Latency
Concurrent Programming Using the Disruptor
[Trisha Gee's presentation to the London Java Community at Skillsmatter on 1st March 2012]
Changelog
http://code.google.com/p/disruptor/wiki/ChangeLog
Sample Code
http://code.google.com/p/disruptor/wiki/CodeExampleDisruptor2x
Getting Started
http://code.google.com/p/disruptor/wiki/GettingStarted