3 Things Web Design and Development Teams Can Learn from ALS Ice Bucket Challenge

If you are lately active on the social media channels, particularly on Facebook, Twitter and Instagram, you might have noticed the flood of video posts on your timeline where people is seen dumping buckets of ice and water on their heads. For a moment you might have thought; it is yet another social media campaign to beat the heat of scorching summers.Well, it is not something about the global warming. These viral posts are of the recent “Ice Bucket Challenge” taken on by growing numbers of men, women, and children to create awareness about Amyotrophic Lateral Sclerosis (ALS), popularly known as Lou Gehrig’s disease.

When we first heard of the campaign, it seemed to be silly. Celebs, top business honchos and the common people all participated, and in a minute the campaign was viral. Idea of dumping water and ice on the head by the Celebs and popular figures for a noble cause is not something new. However, ALS launched the campaign to raise awareness & funds to fight a devastating disease, and it helped ALS earn more than $168,000 in one week. What made the campaign become so successful that made the Worlds influential leaders such as Tim Cook, Jeff Bezos, Bill Gates, Satya Nadella, Larry Page and Sergey Brin etc., participate in it.

However, as the title suggests, we are going to share ideas that designers or developers can learn from this campaign. #IceBucketChallenge in 2014 is a social campaign that brings out “a creative side” that can definitely inspire developers.

Let us see what inspiration ALS Ice Bucket Challenge counts for the developers!

1. Authentic and Compelling – The campaign has set a unique mood in the early summer that even made Celebs join the chase and upload crazy videos. A saucy phenomenon that is authentic, compelling and different.

How Does it Inspire Developers?Website designs should bid adieu to those boring Typography and UI rather welcome Flat UI, or those Large Hero Areas to move with the trend. At a whole, be compelling, fresh and authentic like Ice Bucket Challenge.

2. SimpleALS Ice Bucket Challenge is a lighthearted concept and simple presentation that had a great success since its inception. All you need is a bucket, ice, hashtag (#icebucketchallenge, #StrikeoutALS) and video post. You do not need to enter external sites or click on useless mails. Low commitment is extremely important if you want huge user engagement.

How Does it Inspire Developers? – Design should be sensible, such as use of a square with a slight drop shadow, bevelled edges, and slightly embossed text can do magic. A simple square with the word may not get clicks, so think something different, but have to stay “simple.” If you want more clicks –

  • 1. Make sure the context is appealing
  • 2. Reduce the loading time of the website
  • 3. Stop using technical jargons in content
  • 4. Remove those unnecessary pop-ups or newsletter sign-ups as it distracts viewer’s

A simple content that engages reader can make your website go viral, with a simple word-of-mouth even without the hashtag(#).

3. Call-to-Action – Although the main aim of #ice bucket challenge is to gather donation and put up a fight against ALS, but it does not ask users to buy or share their personal information prior to participation. The only thing it populates is “pour ice water, get soaked or donate to fight ALS.”

How Does it Inspire Developers? – Designs must be prompt or should demand action from the website viewers. Your call-to-action button can simply get noticed if you have these three X Factors –

  • 1. An Amazing Blog
  • 2. Some of your Best Work to share for free
  • 3. Circulate your content

To Wrap Up

Getting something viral is hard. Similarly, for web designers and developers it is hard to make a website become the next bandwagon. However, when we see challenges like #StrikeOutALS we need to learn from it and incorporate those ground-breaking ideas.

Web Design and Development demands new ideas and changes that integrate speed and agility and is receptive to innovation. With the talent war switched on among pool of designers and developers, it is hard to survive the competition.

Ice Bucket Challenge- fun-filled, a good cause, have a perfect timing and it is no mimic rather new and fresh.


Up-next Design Challenge- pick timely actions, adopt anything new and appealing, be fresh and no mimic.

Apple’s New Programming Language-Swift ‘A Trendsetter’

At WWDC, Apple surprised developers announcing their new programming language Swift to develop apps across Apple’s platforms.
To date it was Objective-C, the subsequent language used by NeXT (company founded by Steve Jobs) and then by Apple. However, in 2014 Objective-C finally had to face someone to supersede it with modern and safer features.

How powerful is the new language? What changes can it introduce in the global community of Apple product developers?

iOS SWIFT – A Small Introduction to the New Craze

Swift as we know is the new language from the house of Apple for iOS and OS X apps. Previously they used Objective-C, but now Apple thought to turn safer with the launch of a spanking new programming language and add contemporary features that would make programming easier and flexible. Clean slate, mature Cocoa and Cocoa Touch frameworks would be the perfect maneuver for software development.

Apple has been developing the language since a long time by making advancement in these areas –

  • 1. Making changes in existing compiler, debugger, and framework infrastructure.
  • 2. Apple developers have simplified the Automatic Reference Counting (ARC).
  • 3. Changes in the framework stack, built on the solid base of Foundation and Cocoa by modernizing and standardizing the feature.

It was Objective-C that has worked earlier on support blocks, collection literals, allowing framework adoption of modern technologies in programming language and adoption of various modules. Therefore, this groundwork has largely contributed to developing new programming language.

Swift is friendly to developers as it is expressive and would not be a problem for the earlier Objective-C with Swift code and generate results immediately. It is better to say that Swift is a powerful combination of modern languages such as Haskell, C#, Ruby and Python with certain tweaks to make it more advanced and “swift”. It has optimized the compiler to perform, improved language for development, designed to scale from “hello, world” to the entire operating system.

New Improved Features Making Swift a Game-Changer

    1. Modernized

Latest research shows that the new language from Apple retains the named parameters of Objective-C, but in a more clean syntax that makes APIs in Swift easy to maintain and read.
var sortedStrings = sorted(stringArray) {
$0.uppercaseString < $1.uppercaseString
Inferred types help to make code clean and less prone to mistakes. Modules in turn help to remove the headers and provide namespaces. Memory manages automatically, and developers do not even need to put the semicolons.

To make the codes more expressive Swift introduces some features:

      • Generics
      • Speedy, Accurate and Concise
      • Structures for Support Methods, Extensions And Protocols
      • Map and Filter as Functional Programming Patterns
      • Tuples and Multiple Return Values
      • Function Pointers Unifies Closure
    1. Playgrounds

Playground is a new feature that that makes coding fun with the use of Swift. As soon you type a line, and result would appear immediately. If your code runs over time through the loop, you can watch it in the timeline. The timeline would show the variables in a graph draw each step while constituting a view and can play an animated SpriteKit scene. As soon as the developers perfect their code in the playground, they must move the code to the project immediately.

General uses of playgrounds lists:

      • 1.Watch results at every step of designing a new algorithm.
      • 2.Launching new tests and verifying it before promoting to test suite.
      • 3.Experimenting with new APIs by perfecting Swift coding skills.
    1. Safe Design

There is no chance to have unsafe code with Swift. Variables always initialized before use, arrays and integers, check the overflow and automatically manage the memory. Syntax here turned on to make the language easy and definable. Such as:

      • (var) stands for Variable
      • (let) for constant

For activating powerful Cocoa and Cocoa Touch APIs, safe patterns in Swift been introduced. It enables proper understanding of the frameworks, addition of a single character helps to replace the entire line of code in Objective-C. This strives to build iOS and Mac app easier and safer than before.

    1. Powerful and Quick

Swift, the name is self-explanatory. It is a fast programming language, with high-performance LLVM compiler and quickly transforms into native-optimized code to get productive results from a Mac, iPhone, and iPad hardware. Revision of syntax and standard code library to write code is going to help the apps to perform the best.

Developers at Apple consider Swift as the successor of C and Objective-C languages. It typically has similar characteristics of Objective-C such as types, flow control, and operators besides objected-oriented features such as classes, protocols, and generics to give a boost to the Cocoa and Cocoa Touch developers.

A Little More from Our Desk

Apple has taken a big step by introducing Swift. The developers who joined the event at WWDC in June 2014 accepted the language largely. However, the real test has commenced as developers have started to code their scripts using Swift. Now, we have to wait and watch that how long Swift keeps developers motivated.

Would they equally praise Swift as they did Objective-C?

What new possibilities they could come up with Swift? —– Everything is now a matter of time.

If we are asked to judge, then we would like to suggest what Steve used to say,
I think if you do something and it turns out pretty good, then you should go do something else wonderful, not dwell on it for too long. Just figure out what’s next.

Watch the video that Introduces Swift at Apple WWDC 2014:

#AmazonCart Services is now available at Amazon India

In the month of May, Amazon introduced a new feature that allows Twitter users to add items to their AmazonCart simply including a hashtag within a tweet. After users connects their Twitter account to Amazon, they can easily extend their shopping experience by tweeting a reply to Amazon product links visible on Twitter including hashtag #AmazonCart or #AmazonBasket in UK.

#AmazonCart Comes to India
After UK and US, #AmazonCart came to India this July. Buyers in India can add products they find on Twitter to their Amazon.in shopping carts without leaving Twitter. In effect, when an Amazon customer finds a tweet from their favorite artists, brand or friend with links of Amazon.in products, they just need to add #AmazonCart to their reply on Twitter and the product gets added to their shopping cart. Customers no longer need to switch apps or log on to their Amazon accounts to shop or bookmark products they need to buy.

The e-commerce market zone describes this feature at best with a tagline,“Add it now, but it later.”

Wrap Up from Amazon’s Desk

Amit Agarwal, VP and Country Manager, Amazon India said, “This is line with our focus on anytime, anywhere convenience for our customers. You don’t have to leave your social media activity on Twitter and when you are ready to shop on Amazon.in, you have a cartful of items waiting for you.

The Twitter and Amazon agreement now extends to India to provide the maturing eCommerce industry here with another tool to engage online shoppers as well as to extend relationships on Twitter to the core of their e-commerce platforms. It’s an innovative product discovery-recommend-buy use case via Tweets and we’re pleased to have #AmazonCart go live in India,” said Arvinder Gujral, Business Development Director, Twitter Southeast Asia and India.

How #AmazonCart Works?

Amazon will easily recognize the store ID of the Twitter users who connected their account to Amazon and will add the product directly to their cart, replying to the tweet with #AmazonCart. This feature can add only physical product to visitors cart, and not digital product it remains excluded since such we purchase them with one-click, preventing add to cart functionality.

Customer in turn will get a tweet from @MyAmazonIN as well as an email from Amazon.in when they successfully add the product to the customer’s cart. Customer does not have to buy the item they added by through hashtags, it would remain there until they check out and remove.

This demo video would help you to know how the feature works:

Shopping Gets Better With #AmazonCart

Amazon makes it bigger in social shopping giving Twitter user’s easy access to shop and talk more about product decisions and their choices. This feature is going to boost Amazon with real-time data about the consumers, their choice, preference and their shopping patterns. With launch of Amazon India in 2013, Indian e-commerce giant Flipkart have started to feel the heat of competition. Amazon just sold books earlier, but now Amazon India is having more than 1.5 million products to choose. And, with the launch of #AmazonCart this e-commerce platform hopes some better figures with social shopping.

Node.Js Development Tips for Newbie and Expert Developers

Node.Js is the hottest trend in the tech realm, giving developers a choice of 35,000 modules to browse. Users say Node is too easy to develop a working application, which can balance without trouble. The fan base of Node.Js has started to spread their rhetoric like religion. Let us check out what makes it distinctive.

What is Node.js?

Wikipedia says, “Node.js is a packaged compilation of Google’s V8 JavaScript engine, the libuv platform abstraction layer, and a core library, which is itself primarily written in JavaScript. Used in server side coding, handling AJAX requests, maintaining routes for different APIs and manipulating database.”

How Node.js works?
Ryan Dahl, creator of Node.js was aiming to create real-time websites with push capability, inspired by applications like Gmail. So there he comes with Node.js. In the Node.js, he gave developers a tool for working in the non-blocking, event-driven I/O paradigm.

We know, in web browsers developers are restricted to use language as they have to provide security to the user. Usually in such cases, all activities aim at DOM-manipulation and asynchronous page info loading.

Here, Node.js opens up opportunity for new perspectives retaining its browser nature.

  • 1.What in Node.js developers find easy and compatible with their jobs?
  • 2.What the experts have learned over the year?
  • 3.What mistakes newbie must avoid?

Well, with time experts have become aware of various tips and tricks that can benefit both – a newbie and expert. Let us share some of those benefits to help you recap or start fresh.

    1. Node.js: It is Asynchronous

A distinguishing feature of Node.js is that it is single-threaded, designed and implemented as asynchronous from top to bottom. More than 60% of the developers have faced problems due to this asynchronous property, but today most of them person knows the solution. When you a run a time-consuming job such as accessing the database, use a counter to keep track of the loop, or else before completing the loop the next function would commence.
Bad luck exists, as it is still possible to make synchronous/blocking calls. Well, many file systems have both asynchronous and synchronous versions, such as writeFile and writeFileSync. Even if you avoid the asynchronous method in your code, it is possible to exist in an external library that has blocking call.

Look here –
GOOD PRACTICE: Write Files Asynchronously
1| fs.writeFile(‘message.txt’, ‘Hello Node’, function (err) {
2| console.log(“It’s saved and the server remains responsive!”);
3| });

BAD PRACTICE: Write Files Synchronously
1| fs.writeFileSync(‘message.txt”Hello Node’);
2| console.log(“It’s saved but you just blocked ALL requests!”);

    1. Node.Js: What’s Callback Hell, How to Handle It

What is Callback Hell? – Excessively nested asynchronous callbacks referred as Callback Hell.
It is good to keep nested callbacks to a minimum limit, as it is a simple way to untie your callbacks.

Let us begin with a typical example to explain our point –
1|function register(name, password, cb){
2| checkIfNameExists(name, function(err, result){
3| if(err){
4| return cb(“error”);
5| }
6| checkIfPasswordGood(password, function(err, result){
7| if(err){
8| return cb(“error”);
9| }
10| createAccount(name,password, function(err,result){
11| if(err){
12| return cb(“error”);
13| }
14| createBlog(name, function(err, result){
15| sendEmail(name, function(err, result){
16| callback(result);
17| });
18| });
19| });
20| });
21| });
22| }
You would come across certain asynchronous operations that lead to Callback Hell, its –

      • Chain of Asynchronous Operations: Get something from API, process it with another API and write the result into database.

      • Asynchronous Set Operations: Collection of objects, performs asynchronous operation or some other actions when all operations are complete

And to prevent callback hell you can browse the great libraries such as:

1. Async.js: Allow easy execution of functions in series without nesting them
2. Bluebird: Promises makes asynchronous logic more manageable with mapping and enqueueing
3. Q: Reveals the concept of promise just like bluebird to manage the nested calls effortlessly

    1. Node.Js: Separate Util and Config File

Developers must make it a habit of using util.js file for frequently used functions. Try to acquire this file as a variable in your module. This in turn would reduce the number of global variables and code length. Even can config files that stores constant parameters.
Suppose you require an application to show details of top five students, it can vary and become ten students. So do not be hard with your code limits. Keep it in the config file. One best practice is to maintain a ‘Lang’ folder that is useful for a multilingual application.

As for file acquiring aspect, it is simple in Node.js. You can write,
1| var util = require(‘./util.js’),
3| englishMessages = require(‘./lang/en.js’);

    1. Node.js: Looking at the Monitor Performance

Ask yourself how you could monitor the application performance and profile, as you need to make sure that the app in running at optimum speed. Well, for that you would get some tools like- Nodefly, New relic, etc
Nodefly–A simple line of code that starts to monitor your application to detect memory leaks, or measure how long it takes for redis, to make mongo queries and other stuffs.
New Relic–This tool would help developers to monitor response time to server monitoring in your real-time and data-intensive Node.js application.

    1. Node.Js: Delegate using Granular Modules

You have to work with many tables in Node.js, so it is necessary to split codes. It is better to make different modules for different tables, and to interact with child modules make a separate parent module.
Well, let us demonstrate an example – There are different departments in an office database, 4 to 6 project make a department and number of employees makes a department.

Now you can structure this project with four modules –
a. Employees
b. Projects
c. Department and
d. Office

Here Office is your parent module and rest three is the child. Function of this module is to pass controller to the proper module. Suppose you tried to update the Employee table, for that, you have to update the Projects and Department as well. Do not try to acquire other modules into student module. It is better to pass on the request to Office module, and it would direct the request to preferred module, this would help you to sort code and review errors easily.

    1. Node.Js: Debugging is Easy

If you hail from a language with heavy IDE integration like Java or C#, then debugging Node.js seems to be confusing. Most new Node developers prefer to adopt debugging pattern with the use of console.log. However, you would still get some alternatives, conventional to debugging. Node.js comes with a built-in debugger that runs by calling node debug, like Node Inspector.

Node Inspector– A debugger interface for node.js using the Blink Developer Tools (earlier WebKit Web Inspector). It allows developer to debug the application using any editor and chrome web tools of their choice. With Node-Inspector, developers can do some cool stuff such as live code changing, step debugging, scope injection and other cool aspects. To follow up the aspects find out more at Github.

    1. Node.Js: Be Careful with the New Modules

You would come across more than 35,000 modules in Node.js, but some of them are dead. With Node.js changing their API repeatedly in their major versions, it is confusing to work. The module works under v0.8.x may abort under v0.10.x. Therefore, before you sprang on a new module, you should check the PR List to make sure that it is free of bugs or is it under maintenance.

    1. Node.Js: Node Package Manager is a Marvel

Node Package Manager is the root of all deployment systems for Node.js, underlying the PaaS (Platform-as-a-Service) providers eases out management of library dependencies. Node comes with amazing npm that installs modules specified min your package.json manifest file. Well, in such an instance newbie’s keeps the package.json updated with all modules they use. It painful to open the package and update dependencies property with new modules every time, but npm does this for you!

Therefore, it is better to run the npm install, save a module name, and in turn, npm would automatically update the package.json with correct module and version name.

    1. Node.js: Be Careful About Errors

For newbie’s, it is important to remember that node can crash easily for a single error. Therefore, it is our suggestion to the newbie and the experts to handle errors properly and throw a proper message against it. Use of try-catch box slows your process, so avoid it.

    1. Node.js: Do Not Forget to Return

Most of the beginners forget to return after a callback. While sometimes this has no implication at all, but there are times when you run into odd issues because you might get a callback twice.

Let us see an example for it –
1| function do(err,result, callback){
2| if(err){
3| callback(“error”);
4| }
5| callback(“good”);
6| }

The snippet does make a sense. If you find an “error”, send in the callback, if not send good. However, calling for the callback is not a good way to stop from completing the execution, it would move on to calling callback.

Node.js: Conclusion
Often today, we get down creating real-time applications with the use of Node.js. You must be looking for their future use in certain projects such as APIs or networking projects, for them Node.js is going to prove as a great model of deployment. With their, pre-formatted asynchronous code and use of language that is easy to pick, Node.js is a sheer popular choice.