background preloader

Development Articles

Facebook Twitter

Data Visualization Examples - Social, Agile, and Transformation. In my last post, I reviewed Five Types of Data Visualizations and broke them down to discovery, quality, storytelling, dashboards/tools and trends/predictive. In this post, I will share some examples of Discovery, Quality, and Dashboard Visualizations. There are too many good examples of Trends/Predicative and Storytelling Dashboards and it was too hard to select one for this post. Discovery LinkedIn provides this fun tool to help its users visualize and navigate their networks. Data discovery tools have to provide mechanisms to visualize large data sets and help identify relationships. Quality There many tools on the market to help Data Stewards and Data Scientists to identify and address data quality issues. Dashboards Tableau Public has numerous examples of interesting visualizations. Building Single Page Applications with Backbone.js and Express.js. This Saturday I was doing my first Backbone.js class.

It went really fine, except one fact. I wanted to show the aspects of creating Single Pages Application running on Backbone. Started the application from scratch, we had to spend a lot of time writing some infrastructure code before we even jump to Backbone. So, after the class I decided to create some boilerplate project, so next time we would just clone it from github and start to work. That's how the backbone-express-spa born. Backbone.js + Express.js SPA boilerplate The project is a Express.js application using Backbone.js as front-end framework. I won't put to much details in a blog post, since repo neat readme section. Minimal and simple - pure Backbone code, no plugins. Further work It's not yet completely done. I'm also thinking of putting some examples of unit tests both for Express.js and Backbone.js. Conclusions. Obvious by RetroMocha. Developing web services, Part 3: File uploading web service built with Apache CFX.

Configuration and development This example will show how to configure and develop a CXF based webservice running on a server that would perform uploading of files submitted by the client. See below the following specifications. Tomcat web server 5.5 or above: The Tomcat servlet engine is an open-source package developed as part of the Apache Software Foundation's Jakarta project. It is the official reference implementation for both the servlet and JSP specifications. Tomcat can act as a stand-alone Web server and also as a servlet/JSP engine. We can download the latest release of Tomcat from Apache-cxf-2.3. or above: Apache CXF is an open source services framework. Eclipse IDE: An integrated development environment (IDE) is an all-in-one tool for writing, editing, compiling, and running computer programs.

Set up the Environment Install Jdk 1.5 or above in your system. Create web service Listing 1. Listing 2. Listing 3. Listing 4. cxf.xml Figure 6. SugarCRM SOAP Examples Pt. 3: Upload a File via SOAP API | Dean Haddock. JAX-WS with JBoss 6 Day 2 : MTOM. With Java API for XML-Based Web Services (JAX-WS), you can send binary attachments such as images or files along with Web services requests. JAX-WS adds support for optimized transmission of binary data as specified by SOAP Message Transmission Optimization Mechanism (MTOM).1. Create a class to hold attachment object it can be any type of files: 2. Enable MTOM and change our hello web service as below: If you are sending an image file , commented codes can be used 3. 4. 5. 6. 7. pom.xml is the same as Day 1 example. JAX-WS attachment with MTOM. A complete JAX-WS SOAP-based example to show how to use Message Transmission Optimization Mechanism (MTOM) and XML-Binary Optimized Packaging (XOP) technique to send a binary attachment (image) from server to client and vice verse.

Note There are ton of articles about what’s MTOM and the benefits of using it (see reference sites below), but it’s lack of complete example to use MTOM in JAX-WS, hope this example can fill in some missing pieces in the whole picture. Enabling MTOM on server Enable server to send attachment via MTOM is very easy, just annotate the web service implementation class with javax.xml.ws.soap.MTOM. 1. Here’s a RPC-style web service, published two methods, downloadImage(String name) and uploadImage(Image data), to let user upload or download an image file. File : ImageServer.java File : ImageServerImpl.java File : ImagePublisher.java 2.

Here’s a web service client, to access the published web service at URL “ File : ImageClient.java 3. 1. 2. JAX-WS Guide - Large Attachments. JAX-WS RI provides support for sending and receiving large attachments in a streaming fashion. Often times, large attachments need to be stored on the file system since they cannot be kept in memory(limited by heap size). But in certain cases, streaming of attachments is possible without ever storing the content on the file system. RI will try to stream the attachments whenever it is possible. Otherwise, it would store the large attachments on the file system. The programming model is based on MTOM and DataHandler. 6.3.1. RI uses Java SE's HttpURLConnection for web service invocations. Sample client for large attachments 6.3.2. Use @MTOM feature for a service and DataHandler parameter for large data. The following sample shows how to upload files.

Sample service for large attachments import com.sun.xml.ws.developer.StreamingDataHandler;... 6.3.3. Sample Service Configuration Sample client configuration 6.3.4. Use MTOM and DataHandler in the programming model. Soap image file upload with java. Sending Attachments with SOAP. SOAP applications often have to deal with more than just simple messages.

The payload for a SOAP message can often include a word processing or PDF document, image, or other binary file. This article explains how to use the Message Transmission Optimization Mechanism (MTOM) to send and receive these messages. Prerequisites This article uses the WSO2 Web Services Application Server (WSAS.) It is recommended that you download and install WSO2 WSAS 2.0. The article uses the servlet edition installed on Apache Tomcat. Any application server can be used with the servlet version, just follow the installation instructions included with WSO2 WSAS. When XML is not enough: binary data There are endless ways to send data over the network. One of the main criticisms of SOAP is its use of XML. Combining binary data with SOAP Ok, so you need to send binary data between applications.

Naive approaches One way you might try is to simply dump the binary into a text node. Listing 1. Listing 2. Figure 1. Micro-Service Architecture. DDD is all About Solving Problems. How Role-Playing Games Can Save Your App. DevBytes: Bounce Animations. jQuery Best Practices. My Bootstrap Presentation from HTML5 Denver. Last year, I worked on a huge redesign of Taleo's UI with HTML5, Twitter Bootstrap and CSS3. Management thought it would take 6-9 months and my colleague (Vladimir Bazarsky) and I finished it in just over 3 months. Yes, we encountered many, many cross-browser compatibility issues in the process. While in QA, we found and fixed over 750 issues. This was no small feat since the app was over 2 million lines of code and contained 1700 JSPs. After writing about working with Bootstrap, I was contacted by my good friends, David Geary and Scott Davis to speak at the HTML5 Denver Users Group. That speaking engagement was last night and you can view my presentation as an HTML5 app or on SlideShare.

Much of the Bootstrap content comes from Dan Vega. I updated all the statistics, added my redesign story, included a few slides on Scalable and Modular Architecture for CSS and beautified it with Trish's Photos. Speaking at HTML5 Denver was a real treat. The Popular Twitter Bootstrap - Opinions And Usage Inspiration. Bootstrap, created by Mark Otto and Jacob Thornton, has become one of the most powerful tools that a web designer can use. Its popularity has reached incredible levels being in fact the most popular CSS library that is hosted on GitHub.

Although I’m a fan of Foundation, I have to admit that what these two guys have created is incredible. Why use it? I was surprised when I was talking to a few fellow designers about Foundation and Bootstrap and discovered that they’re not welcoming these frameworks in their work and that seems to be a little bit stupid. If you are like them, grow up. With a framework like these two you can save a lot of time by not having to reinvent the wheel on every single project that you have. Another good reason for using Bootstrap is that it is using LESS. Grid system The grid system that it comes with is a standard 940 pixel wide, grid layout. User interface elements There are dozens of reusable components that you can use in your website. The Javascript plugins. Handlebars.js in a Nutshell. 0inShare Handlebars Overview Handlebars.js is a logic-less semantic web template framework. The 3 main parts of Handlebars are Handlebars template, data/context in JSON format and Handlebars compile function.

Handlebars Syntax/Features Expressions - are the basic unit of Handlebars template representing property in the data/context. When to use a Handlebars.js Templating Engine? Application’s view will be updated frequently, especially as a result of changes to the data either from the server or the client Multiple technology stacks that depend on the same data (server) When the application has much interactivity and it is very responsive To develop a single-page web application with multiple views To easily manage HTML content; you don’t want your JavaScript code to contain important HTML markup How to Load/Add Templates 1. 1. 2. 2.

Storing templates in files and retrieve them using Require.js Storing templates in DB and retrieve them using RESTful interface through Ajax calls References. Introducing: Practical JavaScript. Practical JavaScript Introducing: Practical JavaScript In the first installment of Practical JavaScript, Peter Vogel describes how a client-side skeptic evolved into a JavaScript fan thanks to several tools and a book. He also shares why he's concerned about TypeScript and where he's going to take this .NET-oriented JavaScript column over the next few months. Five years ago I wrote a column about JavaScript and AJAX in ASP.NET, where I asked if these tools were ready for prime time. And my conclusion was: No, they weren't.

I think I'm still getting angry comments on that post. How the World Changed Since then, whether I liked it or not, more of my coding involved JavaScript. Some of the things that bothered me about JavaScript have changed since I wrote that first column. After jQuery, the most important JavaScript tools for me were the ones that implemented the Model-View-Controller (MVC)/Model-View-ViewModel (MVVM) in JavaScript.

You just can't make some people happy, I guess. jQuery Combinators. Architecture-Breaking Bugs – when a Dreamliner becomes a Nightmare. The history of computer systems is also the history of bugs, including epic, disastrous bugs that have caused millions of $ in damage and destruction and even death, as well as many other less spectacular but expensive system and project failures. Some of these appear to be small and stupid mistakes, like the infamous Ariane 5 rocket crash, caused by a one-line programming error. But a one-line programming error, or any other isolated mistake or failure, cannot cause serious damage to a large system, without fundamental failures in architecture and design, and failures in management.

Boeing's 787 Dreamliner Going Nowhere The Economist, Feb 26 2013 These kinds of problems are what Barry Boehm calls “Architecture Breakers”: where a system’s design doesn't hold up in the real world, when you run face-first into a fundamental weakness or a hard limit on what is possible with the approach that you took or the technology platform that you selected. Finding Architecture Breakers. Designing a Beautiful REST+JSON API. In this presentation, Les Hazlewood - Stormpath CTO and Apache Shiro PMC Chair - will share all of the golden nuggets learned while designing, implementing and supporting JSON-based REST APIs, using examples from a clean real-world REST+JSON API built with Java technologies. He will cover: - JSON-based data formats in a RESTful API - References to other JSON-based resources (aka 'linking') - Resource collections and pagination - How to map (and how not to map) HTTP methods to Resource CRUD - Resource partial updates - Supporting HTTP Method Overloading for clients that don't support HTTP PUT and DELETE - API versioning strategies - Meaningful Error responses - Many-to-many resource relationships - HTTP Caching and Optimistic concurrency control - Authentication and Security ** Check out more videos on open source development at:

Succeeding with Offshore Product Development. Offshore development is now commonplace for just about everything from legacy maintenance to enterprise application development. One area where the notion of offshore continues to encounter resistance is product development, as many product managers consider it too risky to develop the “crown jewels” of their organizations in locations that are far removed in terms of both distance and time zones. ‘The fuzzy front-end’ is one of the riskiest periods of time for any project and is all the more risky for product development efforts. This video presents: * Principles and techniques borrowed from agile methods, lean development, user-centered design and tried-and-true project management * The presenters will demonstrate how to conduct a high-value project inception that is ideally suited for offshore product development.

Video producer: Related Videos: Monitors – The Basic Idea of Java synchronization. If you took operating system course in college, you might remember that monitor is an important concept of synchronization in operating systems. It is also used in Java synchronization. This post uses an analogy to explain the basic idea of “monitor”. 1. What is a Monitor? A monitor can be considered as a building which contains a special room. If a customer wants to occupy the special room, he has to enter the Hallway(Entry Set) to wait first. In brief, a monitor is a facility which monitors the threads’ access to the special room. 2. In the Java virtual machine, every object and class is logically associated with a monitor.

If one thread owns a lock on some data, then no others can obtain that lock until the thread that owns the lock releases it. To claim a monitor region which means data not accessible by more than one thread, Java provide synchronized statements and synchronized methods. 3. We know that each object/class is associated with a Monitor. Reference: 1. Requirements Gathering with Mind Maps. Software Development in the Obama Campaign. Dr. Dobb's | Good stuff for serious developers: Programming Tools, Code, C++, Java, HTML5, Cloud, Mobile, Testing.