JavaScript for Line of Business Applications
606.6K views | +21 today
JavaScript for Line of Business Applications
Keeping track of current JavaScript Frameworks that help design your clientside Business Logic Layers.
Curated by Jan Hesse
Beam to my Inbox:
Your new post is loading...
Your new post is loading...

Popular Tags - Filter using the Funnel

Scoop.it!

3 Ways to Deal with SFOUC in KnockoutJS

A Sudden Flash Of Unstyled Content, or SFOUC, refers to that irritating few milliseconds between when your web page loads and when all of your dynamic content pops into place.

The reason for this annoying phenomenon is that your HTML is being rendered a split second before your CSS & JavaScript files have finished downloading and running.  The un-augmented HTML sits there just long enough to catch the eye of your user, and then is whisked away as soon as all the lovely dynamic content is ready to replace it.

I’ve found that this is particularly evident when working with KnockoutJS because generally the last line of your startup code is ko.applyBindings(viewModel), and until you bind the view model you always see the unstyled content.

So how can we stop this menace?

No comment yet.
Scoop.it!

JavaScript Dependency Injection

JavaScript Dependency Injection | JavaScript for Line of Business Applications | Scoop.it
A quick explanation of how the AngularJS dependency injector works, and how you could write your own simplified JavaScript dependency injection library.

Dependency injection facilitates better testing by allowing us to mock dependencies in testing environments so that we only test one thing at a time. It also enables us to write more maintainable code by decoupling our objects from their implementations.

With dependency injection, your dependencies are given to your object instead of your object creating or explicitly referencing them. This means the dependency injector can provide a different dependency based on the context of the situation. For example, in your tests it might pass a fake version of your services API that doesn't make requests but returns static objects instead, while in production it provides the actual services API.

Another example could be to pass ZeptoJS to your view objects when the device is running Webkit instead of jQuery to improve performance.

No comment yet.
Scoop.it!

Building a Google Calendar Booking App with MongoDB, ExpressJS, AngularJS, and Node.js

Building a Google Calendar Booking App with MongoDB, ExpressJS, AngularJS, and Node.js | JavaScript for Line of Business Applications | Scoop.it

I’m going to take you through my code to create a basic calendar booking application. Starting with building the Node.js API in part one and finishing with the Angular interface in part two. Before I start digging into the code I want it to be mentioned that this is by no means meant to be considered a best practices guide or anything of the sort. I’ve only just started learning Node.js and the following is just the different methodologies I’ve gathered from multiple resources all over the web. If you have see anything that can be improved upon please don’t hesitate to comment below!

Since I’ve always heard great things about the Heroku platform at Dreamforce every year, I figured that would be a great starting place.

I highly recommend working through the Getting Started with Node.js on Heroku guide. It will walk you through setting up your local environment as well as building a basic app with the Node.js and the Express framework.

No comment yet.
Scoop.it!

SoundCloud : Architecture behind our new Search and Explore experience

SoundCloud : Architecture behind our new Search and Explore experience | JavaScript for Line of Business Applications | Scoop.it

Search is front-and-center in the new SoundCloud, key to the consumer experience. We’ve made the search box one of the first things you see, and beefed it up with suggestions that allow you to jump directly to people, sounds, groups, and sets of interest. We’ve also added a brand-new Explore section that guides you through the huge and dynamic landscape of sounds on SoundCloud. We’ve also completely overhauled our search infrastructure, which helps us provide more relevant results, scale with ease, and experiment quickly with new features and models.

 

 

tim parks's curator insight, October 11, 2014 8:55 PM

Not only does SoundCloud give you a great way to promote your music, but it helps you connect with people so easily. SoundCloud suggests other music that you might like, and lets you explore easily.

Scoop.it!

Atmosphere and AngularJS

Atmosphere framework is the The Asynchronous WebSocket/Comet Framework for building asynchronous web applications.

You code your asynchronous web application using one codebase and deploy it on any Servlet container or straight to the cloud. There's no need to think about WebSocket support or hardcode specific vendor implementations.

Sounds too good to be true, doesn't it? Let me show you that it is true, indeed.

The tutorial is based on the excellent example from the Atmosphere examples project and modified to use AngularJS for the front end.

Let's analyze requirement more thoroughly.

* There must be a front-end allowing user to submit the name.

* There must be a way to connect and listen for the incoming messages asynchronously from the front end.

* The server must asynchronously process incoming chat messages and notify all users in the chat.

As it will become clear after completion of this tutorial, Atmospheres framework makes it incredibly easy to deal with the server side asynchronous processing. You'll find that most of time you are spending building nice front-ends instead of dealing with complexities of asynchronous request processing.

No comment yet.
Scoop.it!

Avoiding The Quirks: Lessons From A JavaScript Code Review

Avoiding The Quirks: Lessons From A JavaScript Code Review | JavaScript for Line of Business Applications | Scoop.it

Code reviews go hand-in-hand with maintaining strong coding standards. That said, standards don't usually prevent logical errors or misunderstandings about the quirks of a programming language. Even the most experienced developers can make these kinds of mistakes and code reviews can greatly assist with catching them.

Often the most challenging part of code reviews is actually finding an experienced developer you trust to complete the review and of course, learning to take on-board criticism of your code.

The first reaction most of us have to criticism is to defend ourselves (or in this case, our code) and possibly lash back. While criticism can be slightly demoralizing, think of it as a learning experience that can spur us to do better and improve ourselves because in many cases, once we've calmed down, it actually does.

It can also be useful to remember that no one is compelled to provide feedback on your work and that if the comments are in fact constructive, you should be grateful for the time spent on the input (regardless of whether you choose to use it or not).

No comment yet.
Scoop.it!

JavaScript has a Unicode problem

JavaScript has a Unicode problem | JavaScript for Line of Business Applications | Scoop.it

The way JavaScript handles Unicode is… surprising, to say the least. This write-up explains the pain points associated with Unicode in JavaScript, provides solutions for common problems, and explains how the upcoming ECMAScript 6 will improve the situation.

No comment yet.
Scoop.it!

ngprogress-lite - Angular provider for slim progress bars

ngprogress-lite - Angular provider for slim progress bars | JavaScript for Line of Business Applications | Scoop.it

Nice looking slim progress bars provider for Angular.js applications.

It has similar API as original popular jQuery plugin (see references) to keep things as simple as possible.

The only dependency is angular.js framework.

No comment yet.
Scoop.it!

Display JSON Data using ExtJS 4 Store

Display JSON Data using ExtJS 4 Store | JavaScript for Line of Business Applications | Scoop.it

I am sharing a short example of how to display JSON data using ExtJS 4 Store. In previous version of ExtJS, there is a small helper class call JsonStore which is used to simplify creation Stores from JSON data. In ExtJS 4 the class is no longer there. In this example, I am retrieving USGS data as JSON and display it in Grid as shown below.

No comment yet.
Scoop.it!

Ember.js - Taming computed properties

Ember.js - Taming computed properties | JavaScript for Line of Business Applications | Scoop.it

In Ember.js there is this feature called computed properties. You can learn more about what computed properties are in the official Ember.js guides. Instead I wanted to talk about how they act depending on what you pass to .property().

To better illustrate how these computed properties act depending on what gets passed to .property() I decided to write yet another todo app example. IMO a task list with ability to add items and mark them as completed is a perfect example. Here’s a complete jsbin for you to play around with and see the end result. Don’t get carried away just yet because I still want to walk you through some of the code and explain what’s what.

No comment yet.
Scoop.it!

Git/Github Resources

Links for Learning Github through:

* Roundups
* Walkthroughs
* Books/eBooks
* References
* Articles
* Tools/Clients
* Training

No comment yet.
Scoop.it!

Node.js Frameworks

Node.js Frameworks | JavaScript for Line of Business Applications | Scoop.it

Hand-picked registry of Node.js frameworks.

No comment yet.
Scoop.it!

An Introduction to Server-Side JavaScript (SSJS)

An Introduction to Server-Side JavaScript (SSJS) | JavaScript for Line of Business Applications | Scoop.it

The creation, proliferation, and discovery of JavaScript-driven HTTP requests has given rise to highly interactive websites and applications. In turn, this has driven the need for faster JavaScript engines and for developers to do significant programming both on the client and the server. With the demand to build quick, high-performance, high-quality web applications, there is a growing trend to use a single programming language for both the client and server-side implementation. Server-Side JavaScript (SSJS) has been getting a lot of buzz these days and is now being considered as the next big advancement in web development.

* Node.js

* RingoJS

* Narwhal

* Wakanda

No comment yet.
Scoop.it!

Multiple Meteor JS apps on the same domain, under virtual directories

Multiple Meteor JS apps on the same domain, under virtual directories | JavaScript for Line of Business Applications | Scoop.it

This setup will work whether you want to host multiple Meteor apps on the same domain, or use a reverse proxy for multiple backends, one of which is Meteor JS.

We are hosting with Modulus, which, as far as we know, is the best (and maybe to date it’s still the only one available) commercial application platform that officially supports Meteor JS – check the demeteorizer. Changing the ROOT_URL environment variable was as easy as typing a URL in an input box. So, if you have, let’s say two apps, start two projects on Modulus, set the ROOT_URL for each one under ‘Environment Variables’ in the administration panel, and then add your naked domain (the one which you point at Modulus) for both apps under ‘Domains’.

No comment yet.
Scoop.it!

Web Tools Weekly | A weekly newsletter for front-end developers

Web Tools Weekly | A weekly newsletter for front-end developers | JavaScript for Line of Business Applications | Scoop.it
A weekly newsletter for front-end develoeprs with a specific focus on tools.

You can also see the issues Online.

No comment yet.
Scoop.it!

Resumable.js, JavaScript magic for simultaneous, stable and resumable uploads

Resumable.js is a JavaScript library providing multiple simultaneous, stable and resumable uploads via the HTML5 File API.

The library is designed to introduce fault-tolerance into the upload of large files through HTTP. This is done by splitting each file into small chunks. Then, whenever the upload of a chunk fails, uploading is retried until the procedure completes. This allows uploads to automatically resume uploading after a network connection is lost either locally or to the server. Additionally, it allows for users to pause, resume and even recover uploads without losing state because only the currently uploading chunks will be aborted, not the entire upload.

Resumable.js does not have any external dependencies other than the HTML5 File API. This is relied on for the ability to chunk files into smaller pieces. Currently, this means that support is limited to Firefox 4+, Chrome 11+ and Safari 6+.

No comment yet.
Scoop.it!

Durandal’s Edge

Durandal’s Edge | JavaScript for Line of Business Applications | Scoop.it

With so many SPA-style frameworks emerging in the last couple years, you may wonder what makes Durandal unique or different. Why would you want to choose it for your next project?  I’d like to share a few key points to that end…

Rather than re-invent the wheel, Durandal starts by combining and building on top of three existing libraries. Each of these libraries is very mature, has a large, active community and was strategically chosen because it meets one specific need very well. First we start with jQuery. In some ways you can think of it as a better DOM or the “missing JavaScript core library”. Next, we add in RequireJS, which gives us rich, declarative JavaScript modules. Finally, Knockout provides us with powerful two-way data-binding.

With these three libraries as a foundation, Durandal constructs a thin integration layer and transforms them into a powerful SPA framework. In addition to strategically connecting these libraries, Durandal adds new functionality. Some things Durandal adds are:  a client-side router, rich view composition, screen state management, pub/sub, simple conventions, modals/message boxes and more…

No comment yet.
Scoop.it!

Towards Responsiveness with d3chartjs

Towards Responsiveness with d3chartjs | JavaScript for Line of Business Applications | Scoop.it

While data visualization is growing as a medium on the Open Web, practitioners of the field still struggle to make data visualization “work” on different screens. The question “how do I render at different sizes?” is an important one, but only tackles a portion of the greater challenge of “what does it mean to create data visualization on a smaller screen?” Understanding how to best target a mobile audience (possibly on the go) and how to do the data & narrative justice when rendering complex graphics, is a fascinating question that we hope to explore in the coming months here in Bocoup’s Data Vis Central.

To accomplish this we added a new concept to our d3.chart.base: modes. Conceptually, a mode is a way to describe the environment that the chart is in. In practice, mode is simply a combination of a name (such as “mobile”) and a function that can test to see whether a chart is in this mode or not. To demonstrate this functionality, we could define screen-size based modes such as “web”, “tablet” and “mobile” and utlize media queries and the chart width to determine the correct mode, like so...

No comment yet.
Scoop.it!

wu.js - A lazy, functional Javascript library that ain't nuthin' ta f*ck wit.

Wu.js is a library for lazy, functional programming in Javascript. Works great in the browser, and also with CommonJS (including node and Narwhal).

The largest part of wu is dedicated to iterators. Iterators are lazy sequences with a number of methods that encourage functional programming. What does it mean to be lazy? Many people might expect the following code to log "1 squared is 1", "2 squared is 4", and "3 squared is 9" immediately.

wu([1,2,3]).map(function (n) { console.log(n + " squared is " + (n*n)); return n*n; });

However, nothing is logged. Because iterators are lazy, you must explicitly ask for an item and force evaluation. As you ask for items from this iterator, the messages will come one by one.

No comment yet.
Scoop.it!

Code Coverage of Jasmine Tests using Istanbul and Karma

Code Coverage of Jasmine Tests using Istanbul and Karma | JavaScript for Line of Business Applications | Scoop.it

For modern web application development, having dozens of unit tests is not enough anymore. The actual code coverage of those tests would reveal if the application is thoroughly stressed or not. For tests written using the famous Jasmine test library, an easy way to have the coverage report is viaIstanbul and Karma.

Behind the scene, Karma is using Istanbul, a comprehensive JavaScript code coverage tool (read also my previous blog post on JavaScript Code Coverage with Istanbul). Istanbul parses the source file, in this example sqrt.js, using Esprima and then adds some extra instrumentation which will be used to gather the execution statistics.

No comment yet.
Scoop.it!

Parse x Angular JS Boilerplate by BRANDiD

Parse x Angular JS Boilerplate by BRANDiD | JavaScript for Line of Business Applications | Scoop.it

At BRANDiD, we’re totally in love with Parse, which is saving us months and months of backend programming the more we use it. We also really love AngularJS for all its insane two-way data binding, its declarative semantics, and commitment to modularity. All of this means you can build apps FAST. And that’s exactly what Parse wants to help you do too. In fact, we think AngularJS and Parse are a match made in heaven. To prove it, today, we’re releasing the Parse x AngularJS Boilerplate, so you don’t need dragon-ninja skills in asynchronous programming to build complex apps with Parse and AngularJS!

Features include:
* AngularJS wrapper for the Parse JS SDK
* AngularJS wrapper for Cloud Code
* AngularJS wrapper for the Facebook API
* Enhanced Parse.Object and Parse.Collection
* State Manager using ui-router
* Resolve Parse Data Before State Changes
* Easy Animations on State Change
* Enhanced loading of the Parse and Facebook SDKs
* Data Modules for Parse Models and Collections
* …and more


No comment yet.
Scoop.it!

Fun with Backburner.js

ebryn/backburner.js is a queueing library that happens to be the heart and soul of the Ember.js internal workflow. Over in the Ember world, this workflow is referred to as the RunLoop. I have put together a fun little example of Backburner to demystify some of its inner workings and to shed light on how other frameworks put it to use.

But before that, let's take a look at what Backburner has to offer.

No comment yet.
Scoop.it!

AngularJs Good Unit Test Structure For Controllers & How to test ajax code and Promises

AngularJs Good Unit Test Structure For Controllers & How to test ajax code and Promises | JavaScript for Line of Business Applications | Scoop.it

The poorly the structure is made for unit testing the more and more complected it will take to write a unit test for a simple functioning piece of code , and it will feel that your fighting your way against testing, instead it should feel more fun! So i’ll be showing a structure that worked for me very well when working with angular controllers Before going deep with the structure, i’ll be using

* Jasmine (unit testing)

* Jasmine spies (mocking)

* karma (because its awesome)

No comment yet.
Scoop.it!

AngularJS on top of ASP.NET: Moving the MVC framework out to the browser

AngularJS on top of ASP.NET: Moving the MVC framework out to the browser | JavaScript for Line of Business Applications | Scoop.it

Heavily drawing inspiration from Ruby on Rails, MVC4’s convention over configuration model of development soon became the Holy Grail of .NET web development. The MVC model brought with it the goodness of proper separation of concerns between business logic, data, and the presentation logic.

However, the MVC paradigm, was still one in which server side .NET code could be mixed with presentation code. The Razor templating engine, though cleaner than its predecessors, still encouraged and allowed you to mix .NET server side code with presentation logic.

Mixing .NET code with HTML in views can soon get very messy. Wouldn’t it be nice if the presentation layer (HTML) could be pure HTML? Also, in the ASP.NET MVC model, some of the business logic invariably resides in the controller. It is tempting to use an anti­pattern like the one shown above to control whether a div should be shown or not.

However, best practice would indicate that the Controller should not be aware of the div. The ShowDiv variable in the model should not exist. A controller should ideally, only be used to do the plumbing of getting the data populated in the model and nothing else. The view (ideally pure HTML) should render the presentation layer based on the model.

In this article we will see how Angular JS, a new JavaScript framework by Google can be used effectively to build web applications where:

1. Views are pure HTML

2. Controllers (in the server sense) are pure REST based API calls

3. The presentation layer is loaded as needed from partial HTML only files.

No comment yet.
Scoop.it!

free course: ExtJS in 4 Modules on 150 slides

Module 1:
* DHTML
* Introduction to JavaScript
* Elements of JavaScript Program
* JavaScript Statements
* Functions
* Objects
* Defining Objects
* Arrays
* Events
* Time Outs
* Integrating JavaScript with Java
* Creating Windows
* Summary
* Examples and Exercises

 

Module 2:
* Introduction of ExtJs
* Getting Started
* Fundamental Classes
* Event Handling
* Component Model
* Examples

 

Module 3:
* Getting Started with Sencha Architect
* Create and Configure Components
* Create/Configure Data Stores
* Templates & DataView
* Creating & Extending Classes
* Examples

 

Module 4:
* Internationalization
* Drag & Drop
* Hands-on Experience w/ Common Components
* TabPanel
* GridPanel
* TreePanel
* FormPanel
* Building a Theme
* Application Best Practices

 

Objectives:
At the end of this module you will be able to:
1. Write JavaScript code using all the basic elements of JavaScript Programs
2. Create Windows & Dialog Boxes
3. Use the JavaScript’s in-built objects in a web page
4. Write code that does Event Handling in HTML pages
5. Manipulate HTML Forms through JavaScript dynamically
6. Integrate Java and JavaScript through Applets

Jan Hesse's insight:

originally its a 4 day instructor led course - so much content to grasp

No comment yet.