SlideShare a Scribd company logo
About
Order Form Page
Improvements
Toshiaki Takahashi (06/09/2013)
Index
● About me
● About Order Form pages
● Architecture
○ decanter (Python)
○ chaplin.js (JavaScript)
○ express (node.js)
● Efforts for speed up
○ use socket.io to return API
○ cache in Redis to return API
○ use grunt.js for development efficiency
About me
Toshiaki Takahashi
@toshipon
I work for Gengo as a front-end engineer
since April 2013
I’m interested in..
CoffeeScript
Go lang
Rubymotion
Also
I really like Steve Ballmer.
please watch this movie!
http://youtu.be/wvsboPUjrGc
About Order Form Page
About Order form page
● All replaced current pages (from PHP to
Python)
● using decanter framework
● using Gengo API
● DEMO
contributers
Using Libraries
● Back-end
○ decanter (python web app framework)
○ express (node.js) for use socket.io
○ RabbitMQ
(connect from python to node.js has redundancy)
○ Redis (cache session)
○ Gengo API (gengo-python client libray)
● Front-end
○ chaplin.js (javascript mvc framework)
○ handlebars (template engine)
○ compass (build sass files)
○ RequireJS (optimize js files)
○ grunt.js (for builder)
decanter
● decanter is a python-base micro web
framework
● Extended the bottle framework
● Feature
○ Simple and Small
○ Has directory structure
○ jsonvalidator (use jsonschema)
○ Session management using Redis
● http://gengo.github.io/decanter/
please fork it!
chaplin.js
● JavaScript MVC framework for single-page
web app.
● http://chaplinjs.org/
● Extended backbone.js
● Features
○ written in CoffeeScript (very readable code!)
○ memory managements
■ can dispose js events automatically.
■ backbone.js have to dispose events manually.
● chaplin.js can use Brunch as builder quickly.
Efforts for speed up
use socket.io for API
returns
● this time, i wanted to achieve a multi-file upload.
● but, word counting of files by gengo API takes time.
● There is a simultaneous connection limit browser...
● so we change to return in the websocket to
asynchronously return of the API.
use socket.io for API
returns
decanter RabbitMQ node.js Redis
session
management
push by websocket/http
http
async
cache in Redis
● Increasing http requests is evil
● so some API request datas cache in Redis
at first, and put to HTML as json.
● on front-end, parase json datas and cache js
models at first.
use grunt.js
● using libraries mainly
○ grunt-contrib-coffee
○ grunt-contrib-compass
(build SASS files and make sprite images)
○ grunt-requirejs
● environment
○ development
■ compile coffeescript/sass files
○ production
■ compile coffeescript/sass files
■ optimize by RequireJS (grunt-requirejs)
■ compress by uglify (grunt-contrib-uglify)

More Related Content

PPTX
Node.js 201: building real-world applications in pure JavaScript
PDF
About node-canvas
PPTX
Introduction to React
PPTX
From NodeJS to Rust
ODP
Introduction to webGL
PDF
NODE JS OC Meetup 1
PDF
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
PPTX
Dial up your flow
Node.js 201: building real-world applications in pure JavaScript
About node-canvas
Introduction to React
From NodeJS to Rust
Introduction to webGL
NODE JS OC Meetup 1
Daniel Steigerwald: EsteJS - javascriptové aplikace robusně, modulárně a komf...
Dial up your flow

What's hot (20)

PDF
WebRender (MadRust)
PDF
Daniel Steigerwald - Este.js - konec velkého Schizma
PDF
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
KEY
Scrabbly GTUG presentation
PDF
Quick Review of Desktop and Native Apps using Javascript
PDF
PPTX
Javascript basics
PDF
Front-end development automation with Grunt
PPTX
PHP and node.js Together
PDF
Integrating Node.js with PHP
KEY
Scripting with NodeJS
ODP
Javascript Update May 2013
PDF
appborg, coffeesurgeon, moof, logging-system
PPTX
Gutenberg Extended
PPTX
WebAssembly: In a Nutshell
PDF
Fixing Gaps. Strengthening the Chromium platform for content blocking
PDF
Git pusshuten
ODP
Deployments with rails
PDF
Full stack java script development
PDF
NodeJs Intro - JavaScript Zagreb Meetup #1
WebRender (MadRust)
Daniel Steigerwald - Este.js - konec velkého Schizma
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4
Scrabbly GTUG presentation
Quick Review of Desktop and Native Apps using Javascript
Javascript basics
Front-end development automation with Grunt
PHP and node.js Together
Integrating Node.js with PHP
Scripting with NodeJS
Javascript Update May 2013
appborg, coffeesurgeon, moof, logging-system
Gutenberg Extended
WebAssembly: In a Nutshell
Fixing Gaps. Strengthening the Chromium platform for content blocking
Git pusshuten
Deployments with rails
Full stack java script development
NodeJs Intro - JavaScript Zagreb Meetup #1
Ad

Viewers also liked (20)

PPTX
Moral concept
PDF
StockPodium 5 min on micro-stock and business concept
PPTX
Unit 05 ACCOUNTING CONCEPTS
PPTX
Cash flow statement
PPTX
Acc0102. Accounting Concepts & Principles
PPTX
Cost concept and analysis
PPTX
Capitalization
PPTX
Capitalisation
PDF
Accounting principles and concepts
PPTX
Cash flow statement
PPT
Accounting concepts conventions & principles
PPT
Capitalization
PPT
Capitalization!
PPTX
cash flow statement
PPTX
PPT on Depreciation.ppt
PPT
Depreciation accounting
PPT
Accounting Concepts & Conventions
PPTX
Depreciation
PPSX
Capitalisation
PPT
Accounting concept
Moral concept
StockPodium 5 min on micro-stock and business concept
Unit 05 ACCOUNTING CONCEPTS
Cash flow statement
Acc0102. Accounting Concepts & Principles
Cost concept and analysis
Capitalization
Capitalisation
Accounting principles and concepts
Cash flow statement
Accounting concepts conventions & principles
Capitalization
Capitalization!
cash flow statement
PPT on Depreciation.ppt
Depreciation accounting
Accounting Concepts & Conventions
Depreciation
Capitalisation
Accounting concept
Ad

Similar to About order form improvements (20)

PDF
An approach to responsive, realtime with Backbone.js and WebSockets
PPTX
Building SPA’s (Single Page App) with Backbone.js
KEY
Backbonification for dummies - Arrrrug 10/1/2012
PDF
20130528 solution linux_frousseau_nopain_webdev
PDF
Intro to node.js - Ran Mizrahi (27/8/2014)
PDF
Intro to node.js - Ran Mizrahi (28/8/14)
PPTX
Where is my scalable API?
PPTX
Javascript Frameworks Comparison
PPTX
Where is my scalable api?
PDF
Client Side MVC with Backbone and Rails
PDF
node.js practical guide to serverside javascript
PDF
Understanding the Node.js Platform
PDF
Nodejs + Rails
PPTX
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
ODP
Javascript frameworks: Backbone.js
PDF
EAI design patterns/best practices
PDF
Super lazy side projects - Hamik Mukelyan
PPTX
Grunt Continuous Development of the Front End Tier
PDF
Developing Backbonejs Applications Early Release Addy Osmani
PPTX
Flu3nt highlights
An approach to responsive, realtime with Backbone.js and WebSockets
Building SPA’s (Single Page App) with Backbone.js
Backbonification for dummies - Arrrrug 10/1/2012
20130528 solution linux_frousseau_nopain_webdev
Intro to node.js - Ran Mizrahi (27/8/2014)
Intro to node.js - Ran Mizrahi (28/8/14)
Where is my scalable API?
Javascript Frameworks Comparison
Where is my scalable api?
Client Side MVC with Backbone and Rails
node.js practical guide to serverside javascript
Understanding the Node.js Platform
Nodejs + Rails
Javascript Frameworks Comparison - Angular, Knockout, Ember and Backbone
Javascript frameworks: Backbone.js
EAI design patterns/best practices
Super lazy side projects - Hamik Mukelyan
Grunt Continuous Development of the Front End Tier
Developing Backbonejs Applications Early Release Addy Osmani
Flu3nt highlights

Recently uploaded (20)

PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
Big Data Technologies - Introduction.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
Teaching material agriculture food technology
PPTX
Spectroscopy.pptx food analysis technology
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
1. Introduction to Computer Programming.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
Group 1 Presentation -Planning and Decision Making .pptx
PDF
Getting Started with Data Integration: FME Form 101
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Profit Center Accounting in SAP S/4HANA, S4F28 Col11
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Approach and Philosophy of On baking technology
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
20250228 LYD VKU AI Blended-Learning.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
Big Data Technologies - Introduction.pptx
A Presentation on Artificial Intelligence
Programs and apps: productivity, graphics, security and other tools
Teaching material agriculture food technology
Spectroscopy.pptx food analysis technology
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
1. Introduction to Computer Programming.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Encapsulation_ Review paper, used for researhc scholars
Group 1 Presentation -Planning and Decision Making .pptx
Getting Started with Data Integration: FME Form 101
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25-Week II
Profit Center Accounting in SAP S/4HANA, S4F28 Col11

About order form improvements

  • 2. Index ● About me ● About Order Form pages ● Architecture ○ decanter (Python) ○ chaplin.js (JavaScript) ○ express (node.js) ● Efforts for speed up ○ use socket.io to return API ○ cache in Redis to return API ○ use grunt.js for development efficiency
  • 3. About me Toshiaki Takahashi @toshipon I work for Gengo as a front-end engineer since April 2013 I’m interested in.. CoffeeScript Go lang Rubymotion
  • 4. Also I really like Steve Ballmer. please watch this movie! http://youtu.be/wvsboPUjrGc
  • 6. About Order form page ● All replaced current pages (from PHP to Python) ● using decanter framework ● using Gengo API ● DEMO contributers
  • 7. Using Libraries ● Back-end ○ decanter (python web app framework) ○ express (node.js) for use socket.io ○ RabbitMQ (connect from python to node.js has redundancy) ○ Redis (cache session) ○ Gengo API (gengo-python client libray) ● Front-end ○ chaplin.js (javascript mvc framework) ○ handlebars (template engine) ○ compass (build sass files) ○ RequireJS (optimize js files) ○ grunt.js (for builder)
  • 8. decanter ● decanter is a python-base micro web framework ● Extended the bottle framework ● Feature ○ Simple and Small ○ Has directory structure ○ jsonvalidator (use jsonschema) ○ Session management using Redis ● http://gengo.github.io/decanter/ please fork it!
  • 9. chaplin.js ● JavaScript MVC framework for single-page web app. ● http://chaplinjs.org/ ● Extended backbone.js ● Features ○ written in CoffeeScript (very readable code!) ○ memory managements ■ can dispose js events automatically. ■ backbone.js have to dispose events manually. ● chaplin.js can use Brunch as builder quickly.
  • 11. use socket.io for API returns ● this time, i wanted to achieve a multi-file upload. ● but, word counting of files by gengo API takes time. ● There is a simultaneous connection limit browser... ● so we change to return in the websocket to asynchronously return of the API.
  • 12. use socket.io for API returns decanter RabbitMQ node.js Redis session management push by websocket/http http async
  • 13. cache in Redis ● Increasing http requests is evil ● so some API request datas cache in Redis at first, and put to HTML as json. ● on front-end, parase json datas and cache js models at first.
  • 14. use grunt.js ● using libraries mainly ○ grunt-contrib-coffee ○ grunt-contrib-compass (build SASS files and make sprite images) ○ grunt-requirejs ● environment ○ development ■ compile coffeescript/sass files ○ production ■ compile coffeescript/sass files ■ optimize by RequireJS (grunt-requirejs) ■ compress by uglify (grunt-contrib-uglify)