19Nov2015

Application Development: LESS as more robust CSS3 development

Nowadays, nobody code raw CSS3 in real-world HTML5 Applications Development. Huge amount of monotonic repeated code is too hard to create and support. Usually, one of CSS preprocessors are used to implement CSS3 styles in more elegant way. LESS [http://lesscss.org/] is one of such approaches. It doesn’t need to spend a lot of time to start using it. Try online tool [http://lesscss.org/less-preview] to process LESS into CSS code.

 Really less

First of all, LESS is pre-processor of special syntax into CSS code. Besides, CSS code is a correct LESS code as well. You can start porting your existing pure CCS3 project into LESS just by a copy-paste action. When we mark some section or module with specified CSS class we are going to format and style not just wrapper but all its inside components as well. LESS helps us in this most used case by its nested syntax. E.g., LESS code:

Read more
03Nov2015

Application Development: AngularJS framework

We already wrote about very popular front-end JavaScript Application Development approach Backbone. It’s not single right way to design and implement cool rich client side application without mess of code. There are other frameworks widely used. Nowadays, one of the most useful is AngularJS [https://angularjs.org].

 The idea

Main idea of Angular is to avoid modifying DOM by hand via JavaScript code. This way is very useful for web designers who can’t handle JavaScript as good as software developers or even can’t coding at all. Backbone uses behavior to drive the view, and Angular uses the view to drive behavior. First of all, Angular was created for fast prototyping rich web application and interfaces, but nowadays, it’s widely used in all kinds of projects. It’s not a kind of tutorial or introduction, but rather a set of several important points to understand Angular and use it in real projects.

Read more
05Oct2015

Java Development: Guava – beyond standard JDK

Every modern software development stack has one or more well-known common libraries which is not a part of the language core. On the other hand, such general purpose package extends standard set of methods and data structures to professional level of software development. E.g., STL for C++ world. Apache Commons [https://commons.apache.org] is one of the most useful set of general libraries in Java Development. A lot of other packages and frameworks are based on them. In case of new project, Iflexion developers, first of all, to look at Guava [https://code.google.com/p/guava-libraries] — a modern professional implementation of common methods.

Guava libraries

Guava is done by Google, freely distributed and supported by Internet giant. They even claim Guava usage in their own projects as a standard. There are 3 main programming languages are used in Google: Java, C++ and Python. Guava is based on Java 6. That makes it useful in legacy projects implemented in terms of Java 6 and needed to support this version. E.g., strings join may be done in Java 8 as String.join(“, “, strings) or by Guava Joiner.on(“, “).join(strings). Guava modules are created with design patterns in mind. There are builders, factory methods, adapters, etc. Guava available via maven/gradle. E.g., for gradle:

dependencies {

compile ‘com.google.guava:guava:18.0′

}

Read more
20Jul2015

Application Development: Babel transpiler to use ES6 today

ECMAScript 6 standard is coming. As a next generation of JavaScript, it would be the most significant change in front-end Application Development in near future. BTW, new official label of standard is ES2015 for now. So, don’t be confused at line of terms. There is the same. ES2015 is not production ready approach, because it’s not supported officially by majority of the web browsers. On the other hand, ES2015 is very hot and too sexy to wait for official release date. Besides, it would be better to have ES6 skills for your front-end developer career. Well-known technologies like CoffeeScript pale into insignificance. A lot of smart software architects and CTO’s decide to design their new from-scratch client-side applications with perspective to be developed and supported in terms of ES6 standard. There would be the problem how to deal with such code right now. Regular solution is to use some tool to translate ES6 code into regular JavaScript, like we are doing in case of CoffeeScript or TypeScript. Babel [https://babeljs.io] is the most famous solution for that.

ES6 new features

So, what does it make ES6 standard to produce a lot of hype about. There is an arrow operator => introduces syntax sugar for function creation similar to CoffeeScript. There are classes with constructors, inheritance, static methods and other real OOP features. That is much better than old-school prototype-based pseudo-OOP of regular JavaScript. There is added built-in string interpolation like it’s used in other programming languages for decades already.

Read more
05Jul2015

Application Development: HTML5 build tools

Nowadays, HTML5 applications are complicated enough to treat them like something more than a set of static and dynamic pages. Web Application Development of client side solutions is a full process like any other software development. So, it needs some kind of build tool to process LESS or SASS sources of stylesheets, translate CoffeeScript, TypeScript or any other language that compiles into JavaScript, apply linters and run unit tests, join and minify the code. Automation of all these duties is a must-have practice of any professional team like Iflexion. There are already several approaches available and widely used.

Grunt

Grunt [http://gruntjs.com] was the first in a row of JavaScript build tools. It’s based on the set of tasks. Basically, grunt is a task runner. The tasks should be described in Gruntfile.js file as declarative configuration composed in JSON format. There are a lot of plugins to automate almost any set of actions. Grunt is based on node.js. Main module and its plugins are npm packages.

Read more
18Jun2015

Application Security: Cross-site scripting (XSS)

Professional web development standards are very high nowadays. It doesn’t matter how big your team or budget. Application Security is extremely important for project of any size. Huge software companies may even have separate departments working on security tasks only. There are manual code review of existing solutions, automation of scanning for well-known vulnerabilities by special tools, writing unit and integration tests, research the cases, implementation of modern approaches. On the other hand, if you are sole developer in your startup (or even single contributor at all), you have to spend some time playing this role as well.

Sources of the harmful code

Cross-site scripting or XSS is the most widely exploited security hole in Web. At first sight, it seems not very dangerous for Application Security, because there is no obvious way to harm the system or damage the data on the server side. Generally, the main goal of XSS attack is to execute custom JavaScript code in the browser of the user. To be executed, that code have to pass into the page in some way. There are 2 options for hacker to achieve it. First, and the most known, is saving JavaScript code as a part of Web 2.0 content on the server side provided by users of the service.

Read more
02Jun2015

SaaS: Docker as a container solution to reduce deployment costs

There are a lot of hype around containers as a new best technical approach for hosting, development, deployment and testing. Docker [https://www.docker.com] is the most popular container-based solution.

The problem

Nowadays, software developers have a wide range of programming languages, frameworks and other tools to be used to implement various solutions (static web site, web service, analytics database, background workers, queues, etc.). But wait, development is only half of the story. DevOps guy checks out the solution from the repo to deploy it on the server or just to test it on another machine. “Dependencies hell” and other pure technical issues may turn this process into very complicated quest with bunch of traps. On the other hand, there would be many target platforms for deployment (development PC or laptop, cloud hosting, domestic cluster, etc.). Each of platforms may have its own additional deployment and configuration steps. The problem is a huge number of cases (the cartesian product of two sets: development stacks and hosting platforms) both the software developer and the systems administrator have to care about.

Container is a solution

The idea is not absolutely new. In the middle of previous century the trucking industry had almost the same problem of 2 sets: different sizes and shapes of cargo and plenty of transportation approaches. Standard transport container was introduced as universal wrapper for any kind of goods. The trucking industry operates in terms of these standard containers. Software as a Service applies the same idea. Docker helps developer to pack any application with all its dependencies into container and be sure it can be runned anywhere. On the other hand, system administrator have to worry about container environment configuration only and be sure it can run any application within a container.

Read more
14May2015

Usability and UI design: Bootstrap

Any new idea needs rapid prototyping. In case of startup, it is both important to reduce costs and have done current development iteration as soon as possible. Generally, there are tools to help you move this way. Bootstrap [http://getbootstrap.com] is a must-have solution, when we are talking about fast web design and prototyping, but want to avoid wasting our time on standard Usability and UI design.

Framework

First of all, Twitter Bootstrap is a pure front-end HTML/CSS framework freely provided by Twitter team. It’s not a JavaScript library for coding on client side like jQuery or AngularJS. Main purpose of Bootstrap is providing nice professional look-and-feel out of the box for the most general use cases of modern web. You have to keep in mind all features to hold the project in cross-browser state, but it’s not a problem anymore for Usability and UI design. Bootstrap supports all modern browsers. The framework holds under control typography and basic HTML elements like headings, lists, tables, etc. Grid system is available out of the box. It allows to compose almost any web layout splitted into columns with sidebars, header and footer. There are ready to use standard components like drop-down menus, form elements, all kinds of buttons, image thumbnails and various text formatting cases.

Read more
03May2015

Application Development: Photon Multiplayer Game Platform

A lot of game development platforms and frameworks are widely used to speed up Application Development process and reduce costs. All this hype is mostly about mobile or presentation layer of the game. On the other hand, even medium game needs some community interaction and social network integration. Besides, majority of the most successful game projects are client-server solutions. Photon platform [https://www.exitgames.com] and its SDK’s may be used as server side solution.

Photon supports all major mobile and game frameworks: Unity3D, Android, iOS, Windows phone, Cocos2D, Unreal Engine, HTML5, Flash, etc. As a mature platform, Photon provides several products. All of them have free plans or licenses to try it as a solution and start Application Development.

Realtime

Photon Realtime is the most useful Photon product. Technically it is game server as a service hosted in the Photon Cloud. So, you don’t need your own server machine. The cloud is distributed among several data centers around the world, to provide low latency. The solution is automatically scalable up to thousands of online players. There are 3 main activity we need for room-based multiplayer game, and Photon support all of them: Connect, Match and Play. It is possible to match together players from different sources (iOS, Google Play) with custom authentication or login via social network.

Read more
21Apr2015

Media Content Distribution: HTTP/2 Architecture

A web surfing by the browser is the most valuable way Media Content Distribution provided around the World. Technically, this process is based on HTTP networking protocol. Actually, HTTP is treated as protocol of Internet. The industry is always in motion at line of new features and challenges, so HTTP protocol is waiting for its new second version. For now, HTTP/2 [https://github.com/http2/http2-spec] is approved by its creators and going to be accepted and published as RFC standard. HTTP/2 release will have huge impact on direction of many networking techniques and implementation approaches. It would be first sufficient change in Media Content Distribution since HTTP/1.1 release in 1999.

Standard

HTTP/2 is based on Google’s SPDY protocol. As you can see, there is one more Google’s technology appears modern enough to be used as standard of future. HTTP/2 is a binary protocol instead of text HTTP/1.1. There is much better performance produced by changes in architecture: header compression, multiplexing requests, requests priorities, proactive push-responses from servers side. It supports IPv4, IPv6 and NAT. There are modern security approaches. Firefox and Chrome already have HTTP/2 support in special mode. To test new protocol you need to install HTTP/2 server. There are several server side implementations by Akamai, Google, Twitter and open source.

Read more
Pages:1234510...Last »