JavaScript for Line of Business Applications
606.6K views | +13 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!

A Year on Angular on Rails: A Retrospective Localytics

A Year on Angular on Rails: A Retrospective  Localytics | JavaScript for Line of Business Applications | Scoop.it

It’s been almost a year since we started using AngularJS in production here at Localytics. We began by experimenting with a small piece of our site and were so happy with it that we rewrote our entire analytics dashboard product — overhauling nearly four years’ worth of legacy production code — in Angular.

With a surprising lack of documentation or blog posts on real-world use of Angular on production Rails applications, we’ve had to be fairly creative with how we organized our code and integrated the two technologies. Most documentation on Angular code organization and workflow assumes a JavaScript/Grunt-centric worldview, and it was hard to see how we would introduce Grunt into our Rails kingdom, where Sprockets and Capistrano reign supreme. Meanwhile, we’ve seen a few cute examples on how to structure a fresh Angular/Rails hello-world seed app, but odds are, if you’re in production, you’ve already got a big steaming Rails app chugging away and don’t enjoy the luxury of starting from scratch with rails new my-todo-list-cookbook-twitter-seed-demo-world-app. So we thought we’d share some of the practices and tricks we’ve come up with at Localytics to get Angular running on Rails.


* Code Organization and the Asset Pipeline
* Testing
* Choosing the Right Tool
* Conclusion

No comment yet.
Scoop.it!

Building a Real-time SMS Voting App

Building a Real-time SMS Voting App | JavaScript for Line of Business Applications | Scoop.it
A five part (and multi-year!) series from the Twilio blog recently concluded - here's the list of all the posts in the series:

Building a Real-time SMS Voting App Part 1: Node.js & CouchDB
Building a Real-time SMS Voting App Part 2: Socket.io and Highcharts.js
Building a Real-time SMS Voting App Part 3: Scaling Node.js and CouchDB
Votr Part 4: AngularJS and Authentication with CouchDB
Votr Part 5: AngularJS and CRUD Using RESTful APIs

Benjamin Dean's curator insight, January 21, 2014 9:42 AM

I've been a big fan of what Twilio can do for small organizations, and this series gives good insight on building a full-stack app with AngularJS.

Scoop.it!

Anybody here who is against AngularJS? What are your reasons?

...

I'm a big angular user. I created Plunker, which is 100% written in Angular.js as a part of my learning experience of the framework.

My biggest gripe is the challenge of server-side rendering. I would like a mechanism to deliver pre-rendered markup to the client side and have that markup then 'taken over' and cached by angular as a template. I'm sure there is some tricky way to put this together, but for the time being I have not seen a clean solution.

No comment yet.
Scoop.it!

JavaScript for Java developers

JavaScript for Java developers | JavaScript for Line of Business Applications | Scoop.it

Although JavaScript and Java sound and look similar they are very different in their details and philosophies. Here I try to compare the two languages regardless of their libraries and frameworks. The goal is that you as a Java developer get an understanding of what JavaScript is and how it differs from Java. One hint: you can use jsfiddle.net to try out some of the snippets here or any JavaScript.

No comment yet.
Scoop.it!

Animating Ember

FROM THE BEGINNING

ANIMATION GOALS
Route Transitions (back button) {{outlet}}
Modals ContainerView or {{outlet}}
...any view coming or going CollectionView or {{each}}

No comment yet.
Scoop.it!

Spar: Single Page Application Rocketship!

Spar: Single Page Application Rocketship! | JavaScript for Line of Business Applications | Scoop.it

Spar is an opinionated framework that makes developing and deploying single-page web apps and static websites using modern front-end technology like SASS, Haml, and Coffeescript a cinch.

We created Spar to decouple front-end development and deployment from specific backend languages like ruby, python, or Java.


Who should use Spar?

* Developers who have completely decoupled web applications (i.e. Old New Twitter) who want to do front-end development with state of the art tools like Coffeescript and SASS independent of their backend API stack.* Designers who love using modern technology like SASS, Less, and Haml but don't feel comfortable running and deploying apps in frameworks like Rails or Django.* Anyone who needs to make simple static websites and host them as static files on S3 (i.e. for really really cheap).
Under the hood, Spar uses Rack and Sprockets to provide a powerful asset pipeline similar to Rail's asset pipeline. If you're familiar with the Rail's asset pipeline, you'll feel right at home with Spar.
Benjamin Dean's curator insight, January 21, 2014 9:54 AM

I'm not a big Coffeescript or SASS fan, but I can see the value of this for other people who develop in JS that are fans of these technologies.

Scoop.it!

Angularjs directive for Sails.js

Angularjs directive for Sails.js | JavaScript for Line of Business Applications | Scoop.it

In the last times I’ve been practicing with Sails.js, Nodejs basedframework, and in a short time I feel myself very productive and with realtime skills done in a natural way!

I still don’t find myself comfortable with NoSql databases (and I don’t know if I ever) and Sails.js offers the good ORM Waterline to be used with MySql too.

I think that I’ve a kind of obsession with form validation everytime I try a new environment I test how I can achieve it in a more elegant way.

No comment yet.
Scoop.it!

How Angular Lets Us Iterate Like Crazy

How Angular Lets Us Iterate Like Crazy | JavaScript for Line of Business Applications | Scoop.it

But my main point still holds: to end up with the best product we’re capable of creating together, we need to be able to change directions, and we should expect to change directions several times.

We don’t have (or want) the luxury of moving from “requirements gathering” to “specification” and then to “design” and “development” phases. All of those tasks are happening in parallel, all the time. As our user researchers and product designers continue their own iterative processes, the “ideal product” will become clearer and clearer. When presented with a new or revised product goal, the engineering team needs to be ready and able to quickly move toward that evolved goal.


Today I’d like to talk about one way we enable this kind of flexibility through our engineering practices and technology choices. I work primarily on the front-end (the code actually running in your browser: HTML/CSS/Javascript), so that’s what I’ll be talking about2.

A few months ago, we were starting to build out a couple new products, and as is always the case when starting a new project, we had to decide whether to keep using our old tools, or make some changes. In particular, we had recently hired a number of front-end engineers who weren’t too keen on our Google Closure-based JavaScript code.

No comment yet.
Scoop.it!

Ext.NET – ASP.NET (Web Forms + MVC) component framework integrating the Sencha Ext JS JavaScript Library

Ext.NET – ASP.NET (Web Forms + MVC) component framework integrating the Sencha Ext JS JavaScript Library | JavaScript for Line of Business Applications | Scoop.it
Ext.NET is a component framework built with ASP.NET and Sencha Ext JS 
for quicker, better web app development.

Ext.NET is an advanced ASP.NET (WebForms + MVC) component framework integrating the cross-browser Sencha Ext JS JavaScript Library.

WHO
is it for?

If you are looking to build a rich, modern web application with cutting edge web technologies, unparalleled cross-browser compatibility and an advanced MVC architecture then Ext.NET is for you!

WHY
should you use it?

Ext.NET is built for developers, by developers. We provide hundreds of Demos in our Examples Explorer. Need a little support? Check out our Developer Bundles.

No comment yet.
Scoop.it!

ember-router-location-resolver: History API for Ember.js routing

ember-router-location-resolver: History API for Ember.js routing | JavaScript for Line of Business Applications | Scoop.it
Get rid of the #!

Use the browser's History API for Ember.js routing and fallback to hash on older browsers. Just update your server routes and include the above file with your Ember.js web app.

The resolver will allow your application to use Ember's native implementation of the HTML5 History API for routing. That means that the /#/ part of the URL can be replaced with a single /. Now your speedy Ember web app can benefit from even more beautiful URLs.

And the best part? All your old hash URLs still work! The resolver will automatically redirect to the updated hashless version.

No comment yet.
Scoop.it!

The State of ExtJS

The State of ExtJS | JavaScript for Line of Business Applications | Scoop.it

I’ve been a big fan of Sencha’s ExtJS since I started using it several years ago. When I was first exposed to the framework in its v2.0 days, it was a breath of fresh air compared to anything else out there. It had a well-documented, powerful framework and a comprehensive set of widgets. The grid widget alone scratched enough itches that the rest of the framework was gravy.

I haven’t been able to use it on any projects, though, for a couple years, but I have tried to stay up to date on the releases. Unfortunately for Sencha, in the intervening years, the internet has started to catch up and I’ve been taking a much more critical eye to ExtJS. There are still several good parts to ExtJS, but there are also a lot of bad things that will limit its suitability for any future projects.

 

* The Good Parts

* The Bad Parts

* The Sweet Spot

* What To Do

No comment yet.
Scoop.it!

Tutorial: Context or the "This" Keyword in JavaScript

Tutorial: Context or the "This" Keyword in JavaScript | JavaScript for Line of Business Applications | Scoop.it

 I’m here to talk about context or the “this” keyword in JavaScrtipt. It’s a small piece of the JavaScript language, but it’s really important, and it hangs people up sometimes because it’s a little counterintuitive how “this” works in JavaScript.

For background, JavaScript has a keyword "this," as do, C++, Java, C# and many other languages. The problem is that the JavaScript version works rather differently, and this is a source of pain and confusion for many JavaScript developers. Since it's an important part of the language, we should spend some time thinking about it.

No comment yet.
Scoop.it!

Create a "load more" widget using AngularJS, Ajax and Bootstrap 3

Create a "load more" widget using AngularJS, Ajax and Bootstrap 3 | JavaScript for Line of Business Applications | Scoop.it

Step 1: Getting the data ready
Step 2: Creating a basic scaffolding
Step 3: Creating a Factory
Step 4: Interacting with the DOM (Document Object Model)

No comment yet.
Scoop.it!

Callbacks, Promises, Signals and Events

Callbacks, Promises, Signals and Events | JavaScript for Line of Business Applications | Scoop.it

Sometimes I get involved in discussions on twitter and Facebook related to development. This week I ended up sending a link to an old(ish) twitter thread explaining when to favor Promises/Callbacks and when to use Signals/Events for asynchronous operations. I think this topic deserves further explanation.

No comment yet.
Scoop.it!

AngularJS $Provide Service

* AngularJS Service Overview

* $provide functions:

* Provider

* Factory

* Service

* Value & Constant

* Decorator

Benjamin Dean's curator insight, January 21, 2014 9:41 AM

Great presentation.

Scoop.it!

Learning JavaScript: Great libraries

Learning JavaScript: Great libraries | JavaScript for Line of Business Applications | Scoop.it
underscore – going the functional route

Why: JavaScript is a functional language but its standard libraries miss a lot of the functional goodies we are used to from other languages. Here underscore comes to the rescue.


when.js – lightweight concurrency

Why: Concurrency is hard. Callbacks can get out of hand pretty quickly even more so when they are nested. Promises make writing and reading concurrency code simpler.


require.js – modules (re)loaded

Why: Your scripts need to be in modules, cleanly separated from each other. If you don’t have an asset pipeline want to load your modules asynchronously or just want to manage your modules from your JavaScript require.js is for you.


bower – packages managed

Why: Proper dependency management is a tough nut to crack and it is even harder to be pleasantly used (I am looking at you, maven).


grunt – the worker

Why: Repetitive tasks need to be automated. If you plan to use grunt and bower consider using yeoman which combines both into a workflow.


d3 – visualizations

Why: There are tons of chart or visualization libraries out there but d3 takes a more general approach. It defines a way of thinking, a way of manipulating the document based on data and data alone. It treats the DOM as part of your web application. Your visualization is a part of your document and not just a component you can forget about after creating it. This general approach allows you to create arbitrary visualizations not just charts.


last but not least: jQuery

Why: jQuery is almost ubiquitous and this is not by chance. It provides a great foundation and helps in many common scenarios.

No comment yet.
Scoop.it!

Ember.js Metacast Using Ember Data 1.0

I recently watched the MetaCasts.tv Ember.js screencast. I found it really helpful and easy to understand. One thing to note is that the screencast is slightly out of date -- the demo app uses Ember 1.0 and Ember Data 0.13 and I wanted to use more recent versions. I decided to follow along with the screencast using newer versions of Ember and to take note of the differences I encountered. Though it took me a little longer to make it through the screencast this way, I think I learned much more about how Ember works than I would have otherwise because of the additional research I had to do. If you're new to Ember I recommend that you do the same, but if you get stuck, here's what I had to do differently to get it running.

Jan Hesse's insight:

http://www.metacasts.tv/casts/ember-js-pts-1-4

No comment yet.
Scoop.it!

Scaling Elasticsearch Part 1: Overview

We recently launched Related Posts across WordPress.com, so its time to pop the hood and take a look at what ended up in our engine.

There’s a lot of good information spread across the web on how to use Elasticsearch, but I haven’t seen too many detailed discussions of what it looks like to scale an ES cluster for a large application. Being an open source company means we get to talk about these details. Keep in mind though that scaling is very dependent on the end application so not all of our methods will be applicable for you.

I’m only going to focus on the related posts queries (searches within a single blog) and the global queries (searches across all blogs). They illustrate some really nice features of ES.

Currently every day we average:

* 23m queries for related posts within a single shard

* 2m global queries across all shards

* 13m docs indexed

* 10m docs updated

* 2.5m docs deleted

* 250k delete by query operations

Our index has about 600 million documents in it, with 1.5 million added every day. Including replication there is about 9 TB of data.

No comment yet.
Scoop.it!

Poor Man's Firebase: LevelDB, REST, and WebSockets

I wanted to build a web app that would allow data to easily be transmitted to other connected web clients. I had heard of Firebase before. So I started reading the Firebase documentation and playing around with the examples.There is a nice library that they created called AngularFire which provides some slick integration between Firebase andAngularJS. But for some reason, the provided chat example would sporadically not work. (As an aside, it seems that it would work most of the time in most of environments that I'd try, but for some reason, it rarely worked in one). So I needed to find a new solution.


According to the project page: "LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values." What's great about LevelDB is that it's fast and it doesn't have any external dependencies that users need to install before they install your app.

LevelUP is the Node.js bindings built on LevelDOWN which is the low-level Node.js bindings for LevelDB.


No comment yet.
Scoop.it!

AngularJS VS ExtJS - through my experience

AngularJS VS ExtJS - through my experience | JavaScript for Line of Business Applications | Scoop.it

Two frameworks with a very different approaches, but both with the same driving force – make the web work for web apps.
The difference in approach is that one, chooses to embrace the the web and it’s standards and significantly improve them while the other layers out on top of it and gives you an awesome layer of abstraction.
When i started working with Ext JS five years ago web development was stfill pretty hard. Ajax and jQuery along with strong JavaScript advocates like Douglas Crockford, started making JavaScript popular. But two large problems still remained:
1) making the UI look and behave more like a desktop.
2) creating a solid application structure(MV***) was still a big challenge.


That’s when i met extjs and i was amazed!
Both problems were almost solved. I say almost because the css wasn’t easily customizable and a proper MVC module was not yet introduced(extjs version 3) but still the ability to write a layout in words with minimal to no css or html was revolutionary at the time and also proved a point, JavaScript is strong. The ability to layout components on the fly, with every re-size and interaction of the user.
The ability to program without worrying about cross browser compatibility was a big plus and the handy components delivered with Ext JS were a huge time saver with the star of the show being there awesome grid system binded and re-rendered by a data store, a single source of truth for you data.

No comment yet.
Scoop.it!

The New Javascript Problem

When a function is called with the new keyword, a new object is created and that object becomes the context of the function call. That context is available within the function using the this keyword. If the function does not explicitly return anything in its body, the result of evaluating the function with the new keyword will be the new object.

Constructors are not the only way to create JavaScript objects. Object.create creates a new JavaScript object and permits you to specify the prototype. Using Object.create, we can be explicit about what objects are create with what prototypes. 

So, you can use new or you can use Object.create to create new objects with prototypes. So far, so good.

But there are some clouds on the horizon.


No comment yet.
Scoop.it!

Client-side File Processing in Ember.js

Client-side File Processing in Ember.js | JavaScript for Line of Business Applications | Scoop.it

With the addition of the HTML 5 FileReader interface, client-side processing of file uploads is now possible using JavaScript alone. This is great news for anyone aiming to keep their web application’s functionality running in the browser instead of the server.

My current project involves an Ember.js web application and a JSON+HAL API, and we recently wanted to let administrative users upload an XML file, sourced from a different system, to make filling out a form easier. We didn’t want to upload the file to the API for processing on the server. Following is an example illustrating how we handled the file upload in our Ember.js app, and how we could make this work with a few other file formats.

No comment yet.
Scoop.it!

Ember.js Testing

When I started playing around with Ember.js almost a year ago, the testability story left something to be desired. You could unit test an object without any trouble, but a unit test is only one way to get feedback when you’re building a software product. In addition to unit tests, I wanted a way to verify the integration of multiple components. So like most people testing rich JavaScript applications, I reached for the mother of all testing tools, Selenium.

Now before I bash it, without a proper introduction, it’s worth mentioning that Selenium is a great way to verify your entire web application works with a full production-like database and all your production dependencies, etc. And from a QA perspective, this tool can be a great resource for teams who need end-to-end UI acceptance tests.

But over time, a seemingly small test suite built on Selenium can begin to drag the velocity of your team to a snails pace. One easy way to reduce this pain is to avoid building a large application in the first place. If you build a handful of smaller web applications instead, it might help keep you afloat for a little longer because no individual build will crush the team, as you grow.

But even on a small project, the real problem with Selenium is that it’s not part of the test driven development process. When I’m doing red/ green/ refactor I don’t have time for slow feedback in any form. I needed a way to write both unit and integration tests that would provide quick feedback to help me shape the software I was writing in a more iterative way. If you are using a version of Ember.js >= RC3, you’re in luck because writing a unit or integration test is a walk in the part.

Ember.js Testing
No comment yet.
Scoop.it!

State of function decompilation in Javascript

State of function decompilation in Javascript | JavaScript for Line of Business Applications | Scoop.it

Seeing a modern framework like Angular use function decompilation got me surprised. Even though it wasn't something Angular relied on exclusively, this black magic has been somewhat frowned upon for years.

Something so inherently non-standard and so varying among implementations could only be compared to user agent sniffing.

But is it, really? Could it be that things are not nearly as bad these days? I last investigated this 4 years ago — a significant chunk of time. Could it be that implementations came to some kind of unification, when it comes to function string representation? Am I completely outdated?

Curious, I decided to take a look at the current state of affairs. Could function decompilation be relied on right now? What exactly could we rely on?

No comment yet.
Scoop.it!

How to build AngularJS based native mobile application

How to build AngularJS based native mobile application | JavaScript for Line of Business Applications | Scoop.it

This tutorial is about how to build Angular powered HTML5 mobile application, wrap it up with PhoneGap and distribute as a native mobile app (on several mobile platforms if you wish so). We have split tutorial into 2 parts, just to make it easier for information to sink in. As always, links to the example source code can be found at the end of the tutorial posts.

What we are going to cover?

First, we will briefly explore what is AngularJS (however, this tutorial is not about learning the basics),  we are going to pick Ratchet as a front end framework for our HTML5 mobile application and create MVC structure. Second tutorial part covers how to make our view transitions animated, how AngularJS communicates with web services  and how to wrap up AngularJS application with PhoneGap. Sounds like we have some ground to cover. Lets get started.

Jan Hesse's insight:

http://www.htmlcenter.com/blog/building-angularjs-based-native-mobile-application-part-2/