2013 Mar 7 Roundup

Software Releases

Bundler 1.3

Bundler 1.3 introduces compatibility with recent major releases in Ruby world – Ruby 2.0, Gems 2.0 and Rails 4.0

CoffeeScript 1.6

CoffeeScript becomes debuggable!

Quote from the official CS site:

CoffeeScript 1.6.1 and above include support for generating source maps, … to show your original source code in the debugger

I think CoffeeScript did next step on the way to be called a language mature enough to be used in production.

Blogs and Podcasts

Ruby5 episode#350 released

A couple of links from the episode are already listed in this post (Bundler 1.3 and CoffeeScript 1.6.0). Another thing which is definitely worth checking is Postgres Tips. Postgres is very, very capable database management system. In my opinion, before starting to wonder which NoSQL DB is better – MongoDB or CouchDB, just checkout Postgres documentation. Chances are the feature you need is already here!

Ruby Rogues episode #095 released

This episode titled “People and Team Dynamics with Joe O’Brien”.

Some of the picks:
* DataTables – jQuery plugin
* Embed.ly

Simply send your desired image size and Embedly Enhance will automatically resize and optimize them for you

There are some others, I put them into the Github section, see below.

Nettuts+ updates the Recommended Resources page

There are a lot of nice things in this list, indeed. But iaWriter was a “wow” moment for me. I already was writing this post in Mou (nice markdown editor), but switched away to aiWriter immediately! If you will try it out, don’t miss “focus on” feature! Now I wonder is it possible build such “focus” for Sublime?

Interesting Github Repositories

Octopress

There is nothing new about Octopress. I just finally decided to try it out.

ruby-jokes/job_interview

Caution! Don’t use those answers for those non-tech questions in a real job interview! icon smile 2013 Mar 7 Roundup

google / google-api-nodejs-client

Officially supported Google APIs client library for Node.js

toolness / slowmo-js

Learn and debug javascript without hassle of more traditional approach.

olivernn / lunr.js

Bring full text search into your JavaScript application

nostalgiaz / donuts

Easy to use “donuts” type widgets

Ruby Rouges’ Picks:

That’s all (for today) folks!

Apache TomEE 1.0 Released

The Apache Software Foundation has released Apache TomEE 1.0. Apache TomEE, pronounced “Tommy”, is a Java EE 6 Web Profile certified all-Apache stack available under the Apache 2.0 license. TomEE is composed of Tomcat (Servlet, JSP, JSTL), OpenWebBeans (CDI), OpenEJB (EJB), OpenJPA (JPA), MyFaces (JSF), Geronimo Transaction (JTA), Geronimo JavaMail (Javamail) and Apache Bean Validation (Bean Validation). There is also TomEE+, a TomEE distribution that adds Apache CXF (JAX-RS, JAX-WS), ActiveMQ (JMS) and Geronimo Connector (Connector). Apache TomEE is a sub-project of Apache OpenEJB and supersedes what is known as the OpenEJB + Tomcat integration. Apache TomEE 1.0 is based on Apache Tomcat 7.0.27, the latest version of Tomcat with WebSocket support.

Apache TomEE 1.0 has improved startup times for large applications over earlier versions. This was achieved through reduced classloading, and enhanced annotation and TLD file scanning. Tuning was focused on large applications like Confluence, Ralio, and Lift, which resulted in 369%, 128% and 166% faster startup times, respectively. Server startup time has also improved. On a modern MacBookPro, startup time should be ~1200ms from the command line or ~700ms from within Eclipse.

Other new features include the ability to pinpoint which classes and JARs should be scanned via the scan.xml file. There is also now a remote adapter for Arquillian. Shipped in a separate zip file is an experimental new feature for provisioning applications using online Maven repositories.

Apache TomEE is assembled from the standard Apache Tomcat distribution. The extra JAR files, configurations files and the TomEE webapp are then added and repackaged. This Tomcat with EE distribution runs without any additional memory requirements and is compatible with existing Tomcat web applications and tools. There is also a more detailed comparison of the Tomcat and TomEE distributions.

For more information, please visit the official Apache TomEE website. To get started, watch the TomEE Getting Started video on YouTube, and then download TomEE 1.0 from Apache website.

via InfoQ : http://www.infoq.com/news/2012/05/apache-tomee-1.0

Git Tip – Clone/Checkout a Specific Remote Branch

This short tip will help you to checkout a specific Git branch when porting your code into a fresh remote environment.

First, clone a remote git repository and cd into it:

$ git clone git://example.com/myproject $ cd myproject

Note, there are hidden branches in your repository! You can see these using the -a flag:

$ git branch -a 
* master origin/HEAD 
origin/master origin/v1.0-stable 
origin/experimental

Iif you want to work on that branch, you’ll need to create a local tracking branch:

$ git checkout -b experimental origin/experimental

Now, if you look at your local branches without -a, this is what you’ll see:

$ git branch master * experimental

WP_LIst_Table Essential Resources

#1

An easy practical introductory tutorial from WP Engineer :

http://wpengineer.com/2426/wp_list_table-a-step-by-step-guide/

 

#2

WordPress Codex Documentation – the most complete reference

 

http://codex.wordpress.org/Function_Reference/WP_List_Table

 

 

#3

Documented WordPress plugin with WP_List_Table examples (recommended by Codex):

http://wordpress.org/extend/plugins/custom-list-table-example/

 

#4

“WordPress Tutorials” eBook from Smashing Magazine has a dedicated section about WP_List_Table

https://shop.smashingmagazine.com/wordpress-tutorials-1.html

Disclaimer – I’m not affiliated with Smashed (yet), and I had not read the book (yet again)

 WP LIst Table Essential Resources

I’m an Android Owner Now!

Seriously! Didn’t you think everyone and his dog in this world has a smartphone?
But I am being such a guy – showing up late at the party… You may call me a caveman as well. Just for the record – I still haven’t an auto and a TV box at home.
So, this is a Samsung Galaxy Mini, with Android 2.3 installed and I’m typing tbis pretty stupid post from the free WordPress application. My fingers definitely weren’t designed for such small keyboard, but for the sake of training, it’s worth trying.
I’ll definitely hack some ugly code for this thing, well, when I figure out how…
Meanwhile the caveman goes to keep up with other things… His arm hurts and eyes are tired…

Manning’s Blockbuster Week

Today Manning got to release seven new books on various topics – Rails, Android, Objective-C etc. Three of them being about Server Side Java, where two of them talk about portlets (Liferay in Action and Portlets in Action).

Take a look at the list:

  1. Rails 3 in Action 
  2. Android in Practice 
  3. Objective-C Fundamentals 
  4. Liferay in Action 
  5. Portlets in Action 
  6. Spring Batch in Action 
  7. Dependency Injection in .NET

Thus, portlets made the topic of the week!

Also they announced some October releases. Notably, Mahout and Tika apparently going to make Text Mining the theme of the next month!

By the way, this week’s promotin says, you can get a discount (depending on the volume). Here is the exact quote:

“…


Weekly Special

Save 37% on any order under $50. Use promo code a1837
Save 42% on any order over $50. Use promo code a1842
Save 50% on any order over $100. Use promo code a1850

…”

 


 


Why Truck Driver is Hottest Trending Job on Indeed.com Right Now

I love Indeed.com, because it is a great tool for both job search and performing some kinds of research. Today I decided to checkout top job trends. HTML5, Mobile, Android, jQuery… So far so good. You know that techy stuff is really hot right now. But Twitter and Facebook both drew my attention because they both are heavily related to social networking,  marketing and such.

So I went to to see which kinds of job titles are more prevalent in those categories. Naturally, what I expected to see is something like “Facebook app developer” or “Twitter media advertiser” or whatever… 

But what I have seen just struck me! Was it odd? Man it was weird! Ta-raaaam… meet the bachelors! TRUCK DRIVER!!! I didn’t beleive my eyes! What the @#$% “truck driver” doing here?Then I found this line “…Please follow us on Twitter, Myspace and Facebook…” and the matter became clearer. Oh! Thank goodness, they have Twitter and Facebook accounts!


Top Twenty Most Demanded Java Development Skills

I have been in Java development for several years, doing mostly server-side(J2EE or custom) programming. But last two years I stepped aside into PHP & JavaScript. Long story short, today I’m considering to attack Java world once more. Sure, Java development landscape drifted around. So,  to keep up with latest trends I need to choose wisely which skills to pick for acquiring/refreshing.


So I did my own little research.


The algorithm of the research was pretty simple.
  1. Log into Linkedin.com.
  2. In the upper menu go to “More”, then “Skills”.
  3. Search for “Java”.
  4. Write down into a spreadsheet all the related skills (with relative growth %), leave irrelevant ones. I ditched Lisp, Prolog and Scheme. I also left alone JBuilder and Swing, because they just irrelevant for me. I’m not going to make UI in Java, and not in JBuilder anyway.
  5. Repeat this process for every one of the skills in the first round. Eliminate duplicates. I got something like 100 skills.
  6. Open indeed.com and for each skill in skill list perform search. Write down its % of matching  job postings.
  7. Sort by % of matching postings.
Here goes my top 20 list:
  1.  Spring
  2. JSP
  3. Hibernate
  4. Tomcat
  5. Eclipse
  6. Struts
  7. JBoss
  8. Stripes
  9. Servlets
  10. JDBC
  11. JMS
  12. Ant
  13. JUnit
  14. EJB
  15. Maven
  16. JSF
  17. Hudson
  18. Axis
  19. Velocity
  20. GWT
This list is not full or precise, but gives a perception of what is going on there in Java jobs world. Then again, I threw things I dislike left and right, so you probably will get slightly different picture.

But let’s go a bit further. What about our trends? I’ve added another column, named “projected”, which calculated as amount of job postings next year (given the trend will remain the same). So, what I have get.


  1. Spring (remains the leader)
  2. Hibernate (1 position up)
  3. JSP (1 down)
  4. Tomcat (~)
  5. Stripes (3 up)
  6. JBoss (1 up)
  7. Eclipse (2 down)
  8. Struts (2 down)
  9. JMS  (2 up)
  10. Hudson (7 up!)
  11. JDBC (1 down)
  12. Servlets (3 down)
  13. JUnit (~)
  14. Ant (2 down)
  15. EJB (1 down)
  16. Maven (1 down)
  17. JSF (1 down)
  18. Axis (~)
  19. GWT (1 up)
  20. Velocity  (1 down)
If you look at next 10, you’ll see there some interesting items: Groovy, Grails, JPA(probably it contains JPA v2 too), iBatis, Ivy. All they have strong upward trends, and probably worth consideration.
Conclusion? It seems like Spring, Hibernate, JSP and Tomcat are must for server-side Java development. Then I should pick several upward trending topics like Hudson, Stripes and JMS(pure backend) and/or GWT(pure frontend). It’s clear even without spreadsheets, that things like Eclipse, JUnit, Ant and Maven are here to stay for at least another several years.

SpringSource released Spring Data Graph 1.0 with Neo4j support

Here is an overview of Spring Data Graph features:

  • Support for property graphs (nodes connected via relationships, each with arbitrary properties)
  • Transparent mapping of annotated POJO entities
  • Neo4jTemplate with convenient API, exception translation and optional transaction management
  • Different type representation strategies for keeping type information in the graph
  • Dynamic type projections (duck typing)
  • Spring Data Commons Repositories Support
  • Cross-store support for partial JPA – Graph Entities
  • Neo4j Traversal support on dynamic fields and via repository methods
  • Neo4j Indexing support (including full-text and numeric range queries)
  • Support for JSR-303 (Bean Validation)
  • Support for the Neo4j Server
  • Support for running as extensions in the Neo4j Server