Java REST Options

REST with or without a Web Container

http://programmers.stackexchange.com/questions/155467/selecting-a-jax-rs-implementation-for-a-new-project

CXF2 or RESTLet or RESTEasy or JAX-RS (Jersey) or DropWizard or Spring Boot or …  There have been an number of options for a while.   Spring Boot and Drop Wizards

are very cool because of the simple deploy and lack of need for a cumbersome EAR or WAR deploy to a JEE server.  DropWizard also

has a ton of features and built-in metrics.  Resthub is very cool too, but not well supported.  JAX-RS works nice if you use Glassfish +

NetBeans 7.4 + JEE 7.  Since that lets you create REST client and server and the client can be HTML5 and is mostly generated for you.  It

will also build REST services for you from existing entities or relational tables.  I wish it had a wizard to do that easily from NoSQL

entities.   NodeJS has a nice REST client.   Also you can try your hand at developing REST in NodeJS or Cujo REST.   A REST client from JavaScript is easy, here is

a nice article on RestJS with Spring.

http://www.slideshare.net/mraible/comparing-jvm-web-frameworks-devoxx-france-2013

Dropwizard

https://github.com/jacek99/dropwizard-spring-di-security-onejar-example

http://www.slideshare.net/JacekFurmankiewicz/dropwizard-spring

http://www.slideshare.net/sullis/production-ready-web-services-with-dropwizard

https://www.openshift.com/blogs/day-13-dropwizard-the-awesome-java-rest-server-stack

https://github.com/shekhargulati/day13-dropwizard-mongodb-demo-app

http://dropwizard.codahale.com/manual/auth/

http://kielczewski.eu/2013/04/developing-restful-web-services-using-dropwizard/

http://www.slideshare.net/savu.andrei/simple-rest-with-dropwizard

http://gary-rowe.com/agilestack/2012/06/06/multibit-merchant-deployment-driven-design/

Spring Boot

http://projects.spring.io/spring-boot/

RESTHub

http://resthub.org/

mvn archetype:generate -DarchetypeGroupId=org.resthub -DarchetypeArtifactId=resthub-jpa-backbonejs-archetype -DarchetypeVersion=2.1.4

mvn jetty:run

https://github.com/englishtown/vertx-mod-jersey/ http://www.jamesward.com/2012/08/13/containerless-spring-mvc

 

Other Links

JQuery.REST

 

Cool Links of the Day

dzone.com – Build Your First Mobile App with PhoneGap Build

Nullzzz – FRP, Bacon.js and stuff: Bacon.js Tutorial Part I : Hacking With jQuery

raimohanska/bacon.js · GitHub

dzone.com – Synchronising Multithreaded Integration Tests revisited

dzone.com – Task.js Asynchronous Tasks In JavaScript

Understanding Java Garbage Collection and what you can do about it – YouTube

dzone.com – Algorithm of the Week: Shortest Path with Djikstra

MongoDB – Updating Records – CodeProject

dzone.com – Sencha Touch 2 Stores – Editing Model Instances and Reverting Changes

dzone.com – String Utility Classes in Java

dzone.com – 5 Talks To Learn More About Node.js

dzone.com – JPA/JPQL: Intermediate Queries with @NamedQuery

dzone.com – How RESTful Is Your REST?

Native Win32 ports of some GNU utilities

UnxUtils | Free software downloads at SourceForge.net

 

Node.js for Production

Coding Guides

Book Review: Testable JavaScript

 Testable JavaScript Book Review

Testable JavaScript

By Mark Ethan Trostler
Publisher: O’Reilly Media
Released: January 2013
Pages: 274

Chapters:

Chapter 1 Testable JavaScript
Chapter 2 Complexity
Chapter 3 Event-Based Architectures
Chapter 4 Unit Tests
Chapter 5 Code Coverage
Chapter 6 Integration, Performance, and Load Testing
Chapter 7 Debugging
Chapter 8 Automation
First off, I want to say this is one of my favorite books. It is a great work on developing with TDD and agile with a focus on JavaScript. I am considering buying a print copy
to keep next to my computer with the GoF, Growing Object Oriented… and Release It! I am big believer in the main aim of the book to keep javascript code simple and
loosely coupled. This is not a book for those who don’t know JavaScript or have some background in Test Driven Development.

The book starts with a nice section on agile, TDD, BDD , the why’s, what’s and how’s of all the best practices for modern development. There is a very thorugh discussion of a
number of great development tools including: JSLInt, JSmeter, JSCheckStyle, YUIDoc and JSDoc. This book is great for Java developers wishing to start doing enterprise level
JavaScript on the client and server and in-between (Meteor / Derby).

I like this book also for it’s thorough coverage of best modern development practices: Code Reuse, Coupling, Metrics, Dependency Injection, auto documenation (think javadoc),
formalized softwtare inspections, coder coverage, fan-out/fan-in nd more agile practices.

One of the other strong topics in the book is Event-Based Architectures / programming. Event-based programming is great for decoupling objects. There is also great information on using and Event-Hub and socket.io as well.

Testing Topics from the Book

  • vows
  • isolation
  • scope
  • mock objects
  • positive and negative testing
  • PhantomJS for testing
  • stubs
  • spies
  • asynchronous testing
  • running tests on the client and server side

Cool Tools from the Book

Links from the Book

 

 

Links of the Day

Node.JS Links

 

OpenShift Spring WebApp / Tomcat

OpenShift Express / Node.js

https://openshift.redhat.com/community/blogs/using-nodejs-mongodb-express-for-your-spatial-web-service-and-its-free

 

MongoJEE

https://github.com/angelozerr/mongo-jee/wiki/Mongo-JEE-Demo-with-Apache-CXF-and-Dojo

http://mongo-jee.opensagres.cloudbees.net/

https://github.com/agilemobiledev/mongo-jee

 

Mongodb on OpenShift
HibernateOGM / Mongodb On Openshift
Redmine (Ruby on Rails implementation) – project management SAAS
Android REST Client

https://github.com/agilemobiledev/spring-security-examples.git

https://github.com/shekhargulati/todo-spring3.2.1-with-tests

https://github.com/agilemobiledev/openshift-devdayuk

 

 

Raspberry Pi and Development

Here are some links I have found useful in setting up my Raspberry Pi machine for development and more.
Raspberry Pi
Raspberry Pi on My TV

 

 


MongoDB
Development on Pi
Multimedia
C-64 Emulator (Games)
UPnP
Java on Raspberry Pi

Eclipse/Java

Some Useful Updates via Raspian/Debian
sudo apt-get update
sudo apt-get install eclipse

Java library for Raspberry Pi
Java Library for RPi (Pi4J)
JVM on Pi
Oracle JVM Downloads
JDK1.7 on Pi

General Raspberry Pi Usage

Node.JS on Raspberry Pi
Scala on Raspberry Pi

Installing the TypeSafe Stack

 

Node.js Development on Windows with WebMatrix 2

Having found the excellent TOAD for MongoDB (and other NoSQL), Windows is starting to be an okay development platform.  Not as good as Mac or Ubuntu, but not bad.  From Eclipse to SBT to GIT to BASH, everything you need for Node.JS, HTML5, Mobile, NoSQL and Cloud PAAS development is available.

WebMatrix 2 lets you edit JavaScript, Node.js with, HTML5, CSS, Less, CoffeeScript, Images and connect to MySQL.

 

 

 

 

Great Extensions

OrangeBits

NPM

http://extensions.webmatrix.com/

 

http://jsfiddle.net/

 

Resources

http://dotnet.dzone.com/articles/webmatrix-2-rc-html-css-nodejs

http://blog.ntotten.com/2012/09/06/hacking-node-js-on-webmatrix-2/

http://www.nodejs-news.com/nodejs-tech/nodejs-webmatrix/

http://www.youtube.com/user/WebMatrixMS

http://blog.stevensanderson.com/2012/07/09/node-js-development-with-webmatrix-2-and-express/

http://jbeckwith.com/2012/06/07/node-js-meet-webmatrix-2/

http://www.lynda.com/Nodejs-tutorials/Nodejs-First-Look/101554-2.html

https://github.com/MicrosoftWebMatrix

https://github.com/MicrosoftWebMatrix/NodePowerTools

http://www.microsoft.com/web/post/how-to-use-the-nodejs-starter-template-in-webmatrix

http://vishaljoshi.blogspot.com/2012/06/announcing-webmatrix-2-rc.html

http://channel9.msdn.com/Shows/Web+Camps+TV/Coding-Nodejs-in-WebMatrix-2

http://www.hanselman.com/blog/WebMatrix2FrontEndWebDevelopersTakeNoteASPNETPHPNodejsAndMore.aspx?utm_source=javascriptweekly&utm_medium=email

 

Linked List

Graphic Display of Nodes in a linked list (with bacon data)

 

Linked List in UML

 

Linked List in Pseudo Code

 

Linked List in Node.js (Javascript)

An implementation in Javascript.  A linked list of buffers in Node.js.  A great set of implementations for Javascript.  A computer science implementation of JavaScript.  Also a nice insertion sort in Javascript.

 

Linked List in Java

Java has built in Lists.  An implementation of the Singly Linked List.

 

Linked List in Scala

Scala has built in Lists.  A Scala list from scratch.

 

Linked List in Groovy

Groovy has built in Linked Lists and other Collections.

RosettaCode, An awesome site listing implementations in many languages, this is a link to linked list.

 

 

 

Node.js and Mongodb Links

Test Driven Node.JS Development

What would a language and framework be with unit testing, BDD, and other testing methods, frameworks and systems?

So once you get beyond casual Node.JS development, you will need to start unit testing.  Node.js has a surprisingly robust and mature set of testing tools and options.  Out of the box, Node.js has Built In Assert which will let you do some basic XUnit style tests.   A step beyond that is NodeUnit, which is pretty easy to use for XUnit oriented people.  For me, it’s easy to pick up coming from doing a lot of JUnit tests.  This article is great for Using NodeUnit for Testing.  Node.js is great because so many people have developed tools, frameworks and utilities for it.  The only issue I have it some are not very mature and the options are so fragmented.  There’s no Spring framework or hibernate that garners massive usage.  So many variations and options, I wish they could work together to put together a killer Rails or Spring type group of mature, tested, interconnected tools and utilities.  Full Testing Suite – Mocha is installable via NPM and works with a CI server.  This one is pretty cool.

The source for everything testing/bdd/mocking for Node.JS is Joyent’s Testing Wiki.
There’s a number of behavior driven development tools including the polyglot tool Cucumber -> BDD Testing Tool – Cucumber.JS.  Another option is Asynchronous BDD Testing Tool – Vow.
For mocking,  Mockito Style Mock Objects – Mary Jane, looks great.   I will hope that maybe Mockito will officially support this one.
For JQuery fans, someone has ported QUnit to Node.JS [Node-Qunit]
This is just a sampling of test options.  Obviously tools like Selenium and Firebug will help you and so would JMeter and and SOAPUI.  A lot of general web testing tools are available that can do full system testing or integration testing for your Node.JS web apps.
I will be adding some examples in a future post with a github link.

Node.js and JavaScript Links

OAuth for Node.jS
Backbone hackers guide
Realtime multiplayer game in html5
Nodebots
Cloud Control Hosting
Deploy Node.JS to Staging
HALLOJS Editor
Mod Player
Node.JS Stack Trace
JavaScript Terminal
JavaScript Test Runner

Nodester Node.JS + Express + Mongo App Part 1 – Nodester

The Running Node.JS Application on a Nodester

 

I am still working on putting up a full application for the tutorial.  Also I will try the same application on Nodejitsu, CloudFoundry and Heroku.

The following are the basic steps for working with Nodester. It is very similiar to all the other command-line PaaS interfaces. I am running this on
Windows, but it will work in most environments.

 

npm install nodester-cli -g
nodester user setup <username> <password>
nodester user setkey c:.sshid_rsa.pub
nodester app create <appname>
nodester app init <appname>
nodester npm install express
nodester npm install mongoose
nodester npm install socket.io

git add .
git commit -am "Ready to deploy"
git push nodester master

nodester app info
nodester app stop|start|restart
nodester app logs

For nodester they push to master for Nodester to get a new build.

Log into your Application List Page on the Administration Site for Nodester and you will see your newly added Application. Nodester has a good help system that will be useful to you while learning. The git commands are standard GIT which makes using all the cloud systems pretty similiar.

After uploading, I check the logs for errors:

nodester app logs
nodester info Showing logs for: rollerderby
New PID: 18884
chroot_runner
chroot_runner
Spawing /app/server.js
Running node v-0.8.1
:: nodester ::

App listening on port 19885

nodester info ok!

nodester deployed

 

I used there out of the box example and added a connection to my test mongo db database at MongoLab.

 

Link Section:

The final deployed application from this tutorial

http://blog.nodester.com/post/3634535277/running-websockets-on-nodester

http://blog.nodester.com/post/19902515151/tips-for-windows-users

http://blog.nodester.com/

https://github.com/nodester/nodester/wiki/

Restify with Mongodb and Mongoose (src)

Backbone.js Boilerplate

Node.JS Mongodb Native Driver

Mongoose Driver

Mongoose Tutorial

Node.JS and Mongodb Video Tutorial

Node.JS / Mongodb / Mongoose Tutorial

Finding Documents in MongoDB with Mongoose

Node.js Tutorial

Restful API with Node.js and Mongodb + Expresss & Mongoose

Backbone.js Fundamentals

Mongoose Model Definition

ETE Presentations

Chariot Solutions Presentations / ETE Presentations
http://chariotsolutions.com/presentations

Chariot Solutions Emerging Technology Philly ETE 2012 Screencasts
http://emergingtech.chariotsolutions.com/category/screencasts/philly-ete-2012/

Chariot Solutions Videos and ETE Videos
http://www.youtube.com/user/ChariotSolutions/featured

CoffeeScript Edge
http://phillyemergingtech.com/2012/system/presentations/the_coffeescript_edge.pdf

Emerging Languages
http://phillyemergingtech.com/2012/system/presentations/Payne_Philly_ETE_2012_slides.pdf

StratisfiedJS (Structured JS)
http://onilabs.com/stratifiedjs

Large Scale Agile
http://phillyemergingtech.com/2012/system/presentations/Large-Scale_Agile_slides.pdf

Spring ROO with Addons
http://phillyemergingtech.com/2012/system/presentations/roo-addons.key.pdf

Backbone.js / Real-time Web Apps
http://phillyemergingtech.com/2012/system/presentations/realtime-web-ete-2012.pdf

Rich-Web Apps with Server Side Java
http://s3.amazonaws.com/chariot-website-production/presentation_documents/documents/000/000/632/vaadin-ria-in-server-side.pdf?AWSAccessKeyId=AKIAJTXMORYAM7NJWIJQ&Expires=1340418954&Signature=7%2BrH1fNE2Zn7vqlaw9ZDYQCQbvs%3D

Vaadin Java Framwork
https://vaadin.com/home

Interesting Stack (Backbone, NodeJS, Restify, MongoDB)
http://backbonetutorials.com/nodejs-restify-mongodb-mongoose/

Dependecy Injection
http://s3.amazonaws.com/chariot-website-production/presentation_documents/documents/000/000/607/di-without-the-gymnastics.pdf?AWSAccessKeyId=AKIAJTXMORYAM7NJWIJQ&Expires=1340422342&Signature=VVMi2uiG2c6m6oaP3%2Bn61pDmHbI%3D

HTML5 Apps with Java and Scala with Play
http://chariotsolutions.com/presentations/html5-apps-in-java-scala-with-the-play-framework

FindBugs
http://chariotsolutions.com/presentations/effective-use-of-findbugs-in-large-software-develo

Massive Scaling
http://chariotsolutions.com/presentations/massively-scaling-to-millions-of-players

Lean, Kanban and Large Scale Agile
http://chariotsolutions.com/presentations/lean-kanban-and-large-scale-agile

Let’s Play TDD
http://jamesshore.com/Blog/Lets-Play/Episode-199.html

Cross Platform Mobile Experience
http://phillyemergingtech.com/2012/system/presentations/Doug_Bellenger-PhillyETE_2012.pdf

Real-Time Web Apps with Backbone
http://chariotsolutions.com/presentations/building-real-time-web-applications

Better Agile Through Tribes
http://chariotsolutions.com/presentations/better%C2%A0agile-thought-throughtribes

Java EE in the Cloud(s)
http://chariotsolutions.com/presentations/java-ee-in-the-clouds

CSS#
http://chariotsolutions.com/presentations/evolution-of-css-layout-through-css3-and-beyond

EmberJS
http://chariotsolutions.com/presentations/emberjs-attacking-boilerplate-where-it-lives

PJAX
http://chariotsolutions.com/presentations/pjax-and-the-next-generation-of-server-side-web-fr

Grails 2.0
http://chariotsolutions.com/presentations/whats-new-in-grails-20

JavaScript Testing / BDD

Android + MongoDB + Node.js (in progress)

Mobilize Your MongoDB
http://www.10gen.com/presentations/mongodb-berlin/2012/mobilize-your-mongodb-developing-iphone-and-android-apps-in-the-cloud
http://androidclip.com/mongodb-mobile-app-backend-301/

MongoDB with Morphia
http://www.javacodegeeks.com/2011/11/using-mongodb-with-morphia.html

http://blog.jeffdouglas.com/2012/03/25/build-an-api-with-node-js-express-mongodb-and-cloud-foundry/
http://blog.jeffdouglas.com/2012/02/02/using-node-js-to-host-development-web-services/ 

LinkedIn’s Platform
http://www.slideshare.net/phegaro/linkedin-mobile-how-do-we-do-it

Node.js at Heroku
http://www.jamesward.com/2011/06/21/getting-started-with-node-js-on-the-cloud/

http://www.mihswat.com/2011/05/04/getting-started-with-cloud-foundry-using-a-node-js-and-mongodb-application/

VMWare Player for Cloud Foundry
http://www.vmware.com/products/player/

Cloud Foundry
http://docs.cloudfoundry.com/infrastructure/micro/installing-mcf.html

 

 

 

mongoDB

Main Documents
http://www.mongodb.org/display/DOCS/Home

MongoDB Manual
http://docs.mongodb.org/manual/

I have MongoDB and RockMongo installed on my OpenShift PaaS site with JBoss.

JBOSS + MongoDB Quick Start
https://github.com/openshift/jbossas-mongoDB-quickstart

MongoDB + Java Tutorial on OpenShift
http://www.mongodb.org/display/DOCS/Java+Tutorial

MongoDB Driver for Java (JavaDocs)
http://api.mongodb.org/java/current/

MongoDB + Android Part 1 + PaaS
https://openshift.redhat.com/community/blogs/mobilize-your-mongodb-developing-iphone-and-android-apps-in-the-cloud-part-1
https://openshift.redhat.com/community/blogs/mobilize-your-mongodb-developing-iphone-and-android-apps-in-the-cloud-part-2

Spatial MongoDB in OpenShift
https://openshift.redhat.com/community/blogs/spatial-mongodb-in-openshift-be-the-next-foursquare-part-1

SoLoMo (social, local, and mobile)

Geospatial Indexing in Mongo
http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-TheEarthisRoundbutMapsareFlat

MongoDB Shell on OpenShift
https://openshift.redhat.com/community/blogs/getting-started-with-mongodb-shell-on-openshift

MongoMonitoringService (MMS) on OpenShift PaaS
https://openshift.redhat.com/community/blogs/getting-started-with-mongo-monitoring-service-mms-on-openshift

MongoDB Native Driver for Node.js
https://github.com/mongodb/node-mongodb-native

MMS Manual
https://mms.10gen.com/help/

MongoDB Free on OpenShift
https://openshift.redhat.com/community/blogs/its-big-its-free-its-easy-mongodb-on-openshift-keeps-getting-better

MongoDB Tutorial
http://www.mongodb.org/display/DOCS/Tutorial

BinaryJSON (Primary Data Representation for MongoDB)
http://bsonspec.org/

SQL to MongoDB Mapping Chart
http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart

MongoDB Quickstart
http://www.mongodb.org/display/DOCS/Quickstart+Windows

Performance Tuning
http://www.10gen.com/presentations/webinar/diagnostics-and-performance-tuning

Java Driver
http://www.10gen.com/presentations/webinar/whats-new-in-java-driver-version-2.5

Webinar:  Zero to MongoDB Intro for MongoDB with Java
http://www.10gen.com/presentations/webinars/zero-to-mongodb-introduction-for-mongodb-with-java 

Mongo Tutorial
http://www.mongodb.org/display/DOCS/Tutorial

Slides and Videos
http://www.mongodb.org/display/DOCS/Slides+and+Video

Articles
http://www.mongodb.org/display/DOCS/Articles

MongoDB + JavaScript
http://www.mongodb.org/display/DOCS/Javascript+Language+Center

MongoDB + Java
http://www.mongodb.org/display/DOCS/Java+Language+Center

MongoDB + Hadoop
http://www.mongodb.org/display/DOCS/Hadoop

ORM Node.JS for MongoDB
https://github.com/learnboost/mongoose

New MongoDB Docs
https://github.com/mongodb/docs

RHC / OpenShift Starting
https://openshift.redhat.com/app/getting_started