01 January 2015

09 December 2014

Mastering Regular Expressions, 3rd Edition Understand Your Data and Be More Productive, Jeffrey E.F. Friedl

Mastering Regular Expressions, 3rd Edition
Understand Your Data and Be More Productive
By Jeffrey E.F. Friedl
Publisher: O'Reilly Media
Final Release Date: August 2006
Pages: 544

Comprehending RegExp:

This is a classic regexp book !!!
that every programmer must read.

Even, if you already manage regexp, and took a compiler course at college, still there are several tips that may help you a lot in this area, including bounding cases: Greediness and Laziness Always Favor a Match, Speed and Efficiency, Summary: NFA and DFA in Comparison, Among others good titles (details of lookahead, lookbehinds, Posix regexps, etc.).

Also, provides some common examples that each coder must face in several projects: recognition of IP address, emails, etc., although this is not a cookbook, always is useful to see coding examples after theory However this is likelihood not as important as was 10 years ago (because there is a lot of examples in the net and cookbooks).  A look to how to add benchmarking in different platforms -languages- and optimization for regexps. As usual, you can go directly to any chapter related to your favorite implementation/language.

Perhaps, after eight years, it could consider some current RE frameworks, including those that use NFA, such us, ICU Regular Expressions, Automaton, etc. (this way the spectrum of examples is better). Although this paradigm of  never-ending engines are commented in the book, always is good to have an update (well, at least after five years).

20 November 2014

If Hemingway Wrote JavaScript, Angus Croll

If Hemingway Wrote JavaScript
By Angus Croll
Publisher: No Starch Press
Final Release Date: October 2014
Pages: 192
This book has an Interesting proposal, art is an important part of this book, an hybrid release, thinking out-of-the-box.

It express that Javascript is more creative/dynamic than Java (for instance), which makes it a little more risky ? :-) . Nice to read these conjectures in a book, beyond the common book prototype avoiding the structured order we see in a programming book (training us to be into a factory as creator of code (developer).

It gives classical assignments of an introductory programming course; using Javascript, which is the de-facto language for novice coders.

A good sense of humor has the author and must have the reader (well... geek humor), it gives ludic analysis to simple snippet codes. Giving an implicit criticism to the authors' work.

One way to open your mind, and probably a must have coffee table book.

It maximize the way to do the same task with different approaches with a versatile language. Again: more than a laugh we can get here.

I humbling reckon that several authors I didn’t know…. from this point of view, it helped me (forced me) to learn more about universal literature. It is amusing to see Roberto Bolaño as a Javascript coder ;-) 

05 November 2014

Software Architecture Fundamentals, Part 1, Understanding the Basics, Video, Neal Ford, Mark Richards

Software Architecture Fundamentals Part 1
Understanding the Basics
By Neal Ford, Mark Richards


Extensive video from two known Architects (book Authors: Neal Ford, Mark Richards) coaching about their experience and providing best practices and analyzing study cases in how to become a Software Architect.

It goes straight to the point, why do you want to become an Architect: better income, finally better salaries makes some roles more interesting, and what it requires for it.

It has plenty of good sentences, Some of of them:
  • "Often Negotiation and politics skills are more important than Technical Skills".
  • " The world best architectures are not the perfect ones, but rather the feasible ones".
  • "Design Patterns often have different approach to Functional Thinking".

Also it's discussed: documentation is very important, as seen in different paradigms, and college courses, however, as Agile manifesto mentions: "Working software over comprehensive documentation", then "codebase is the core":
  • "our blue print is the source code"
  • "compilation is building"
  • "software design is expensive"

So, the idea is to reflex about how to build easily and in a cheap way, coding is a complex task and very easily to obtain a wrong artifact.

As seen, this video gives full a great feedback, where many times I had to stop a replay many passages.

In the other hand, there is a great emphasis about soft skills, politics, and how a project can be feasible regarding these features.

At the end, an excellent introduction to different aspects of Software Architecture, including its different specialization, but always keeping a big picture view.

Corollary: Very clever coaching.

11 October 2014

Head First Servlets & JSP

To keep track of my small contributions to book's errata:

Now it is my two cents for Head First Servlets and JSP.


17 September 2014

Eclispe: HTTP Proxy Authentication Required

Eclipse Luna 4.4.0 has a bug when using Proxy to contact to Internet:
(upgrade to 4.4.1 --> Luna SR1)

HTTP Proxy Authentication Required: http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/compositeContent.xml
HTTP Proxy Authentication Required: http://download.eclipse.org/modeling/tmf/xtext/updates/composite/releases/compositeContent.xml
Proxy Authentication Required

This is a known bug:


A functional workaround is:
(provided in the first URL)

Scott Lewis CLA 2014-07-08 17:51:00 EDT
I've created an updated version of the ECF httpclient4 provider that uses Apache
Httpclient 4.1 (used in Kepler) rather than Apache Httpclient 4.2 (used in Luna 
and the apparent source of this regression).

For those that are experiencing this proxy problem, this update may allow you to
 use your proxy, especially if Kepler (Apache 4.1) install/update worked for you.
 If it *does* work in some of your environments, then it would suggest that the problem
 is not with proxy configuration, but rather with Apache httpclient 4.2 deployed as part
 of Luna.  OTOH if this does not fix things for you, then it may very well be a
 configuration issue.

Disclaimer:  Installing this update, and going back to using an older version of
 httpclient4, could break other plugins.  Even if it works in your environment, 
please do not use it in a production environment unless you are quite sure that
 nothing else is broken by it (e.g. Mylyn).  Also, this repo is not signed so please
 do not redistribute it.  If you are not experiencing any problem wrt this bug,
 please do not install it.

People on this bug who install and try this in their proxy environment please report
 back with what happens via a new comment on this bug.   Since I do not have an
 environment to reproduce this apparent httpclient4 version-specific problem, I must 
depend upon people on this bug that do have such an environment for diagnosis.

Instructions for installation:

1) Download this zip:


2) Unzip the contents to your local disk

3) Start Eclipse Luna.  

4) Choose Help->Install New Software->Add...

5) Name:  ECF 3.9.0 Httpclient4 Update

6) Select Local... button on right and navigate your local filesystem to where
 you unzipped the contents to in step 2

7) Navigate into the /archive/site.p2 directory and choose OK

8) There should be a single 'Uncategorized' item in the user Install dialog.
 Select this check box (and all sub-items)

9) Choose Next and step through the remaining wizard pages to finish the install

10) Restart Eclipse when prompted

Then please try to install something into Eclipse.  Whether this works for you
 or not, it would be helpful for you to report your experiences here with as
 much detail as possible.


15 September 2014

JDK8 in WinXP

 As we all know JDK8 installer doesn't work in WinXP.
This is the best solution found at stackoverflow.com :


This happens because Oracle dropped support for Windows XP (which doesn't have RegDeleteKeyExA used by the installer in its ADVAPI32.DLL by the way) as described in http://mail.openjdk.java.net/pipermail/openjfx-dev/2013-July/009005.html. Yet while the official support for XP has ended, the Java binaries are still (as of Java 8u20 EA b05 at least) XP-compatible - only the installer isn't...
Because of that, the solution is actually quite easy:
  1. get 7-zip (or any other quality archiver), unpack the distribution .exe manually, it has one .zip file inside of it (tools.zip), extract it too,
  2. use unpack200 from JDK8 to unpack all .pack files to .jar files (older unpacks won't work properly); JAVA_HOME environment variable should be set to your Java unpack root, e.g. "C:\Program Files\Java\jdk8" - you can specify it implicitly by e.g.
    SET JAVA_HOME=C:\Program Files\Java\jdk8
    • Unpack all files with a single command (in batch file):
      FOR /R %%f IN (*.pack) DO "%JAVA_HOME%\bin\unpack200.exe" -r -v "%%f" "%%~pf%%~nf.jar"
    • Unpack all files with a single command (command line from JRE root):
      FOR /R %f IN (*.pack) DO "bin\unpack200.exe" -r -v "%f" "%~pf%~nf.jar"
    • Unpack by manually locating the files and unpacking them one-by-one:
      %JAVA_HOME%\bin\unpack200 -r packname.pack packname.jar
    where packname is for example rt
  3. point the tool you want to use (e.g. Netbeans) to the %JAVA_HOME% and you're good to go.
Note: you probably shouldn't do this just to use Java 8 in your web browser or for any similar reason (installing JRE 8 comes to mind); security flaws in early updates of major Java version releases are (mind me) legendary, and adding to that no real support for neither XP nor Java 8 on XP only makes matters much worse. Not to mention you usually don't need Java in your browser (see e.g. http://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/ - the topic is already covered on many pages, just Google it if you require further info). In any case, AFAIK the only thing required to apply this procedure to JRE is to change some of the paths specified above from \bin\ to \lib\ (the file placement in installer directory tree is a bit different) - yet I strongly advise against doing it.

See also: How can I get the latest JRE / JDK as a zip file rather than EXE or MSI installer?, JRE 1.7 returns: java/lang/NoClassDefFoundError: java/lang/Object



Q: Can I install JDK 8 on Windows XP? Will it work?
A: The installer does not work on Windows XP. You can unpack it manually and it will likely run fine.

Project Euler #125

It is interesting how I analyzed this problem --> first attempt was doing an horrible brute force which  would take milliards of years to complete.

Classical problem, where I had to re-design the solution, after getting a couple of "duplicate numbers" (also incorporated to the problem). Simple & Hard. This is the taxonomy of problems I must create.

My performance is a little slow:

Last 10 Problems Solved

1 Problem 12511 Sep 14 (14:56)
2 Problem 10211 Jan 14 (13:58)

09 September 2014

OC4J: precompiling JSP

JSPs can be precompiled by OC4J tool: ojspc

Similar to my last post for WLS:

ojspc -verbose -addclasspath D:\web-oc4j-v3\dist\foo.jar;D:\web-oc4j-v3\dist\lib\bar.jar qux.jsp

As, you can see you need to add libraries to "addclasspath" and the jsp file, or wildcard.

Remember to define environment local variables:


set JAVA_HOME=C:\oracle\jdk150_11
set ORACLE_HOME=D:\oracle\oc4j_extended_101340
set PATH=%ORACLE_HOME%\j2ee\home\jsp\bin;%PATH%

My Blog List

Search This Blog


Blog Archive

There was an error in this gadget
There was an error in this gadget


The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.
I review for the O'Reilly Reader Review Program Project Euler