The Discussion Delegate

Answers to the Ultimate Questions about the Web, Mobile and Vercingetorix


8 Tips for Angular.js Beginners

This post was created on September 8th, 2012 by Sudhanshu and has 29 comments. It has been filed under , , , ,

We started working with Angular.js recently and after spending a few days on it, I realised that there a big need for beginner tutorials on it. I’ve tried to document some of the things you might need on day 1.

1. The documentation still sucks so it’s okay if you’re taking more time.

Yes, it’s really worth it. So do spend a little extra time.
Here’s an example of the issues you would face:

Discussion from StackOverflow: http://stackoverflow.com/questions/10486769/cannot-get-to-rootscope
Thanks, it makes perfect sense, but how did you know that? Was it in the docs? – Malvolio May 7 at 21:55
@Mavolio No, he is one the 3 core developers. – ChrisOdney Jun 6 at 19:36

The documentation sucks and you have to assume stuff. But there is light at the end of the tunnel.

If you need resources, you should try out the following

a. Run through the videos first – this should get your hooked. The following two are essential
- http://www.youtube.com/watch?v=WuiHuZq_cg4
- http://www.youtube.com/watch?v=IRelx4-ISbs
b. Run through the tutorial – http://docs.angularjs.org/tutorial/step_00
c. Run through the concepts – http://docs.angularjs.org/guide
d. Finally, keep this open – http://docs.angularjs.org/api/ – it won’t help much other than just to remember what some function did.
e. Read this blog post – http://deansofer.com/posts/view/14/AngularJs-Tips-and-Tricks-UPDATED
f. If it did look interesting, add AngularUI to your project – https://github.com/angular-ui/angular-ui/
g. Go and join the AngularJS google group. It’s quite active.

2. How to divide code

I have divided the code into two files. The first is the app.js and the second is the controllers.
App.js contains code for setting up routes, app.factory functions and app.run to setup $rootScope
Controllers.js contains all controllers so far

3. How to initialize the app

I do this in the App.js file

var app = angular.module('beta', [], function($routeProvider, $locationProvider) {
  $routeProvider.when('/home', {
    templateUrl: '/partials/home',
    controller: HomeController
  });
  // When you put /home, it also automatically handles /home/ as well
  $routeProvider.when('/login', {
    templateUrl: '/partials/login',
    controller: LoginController
  });
  $routeProvider.otherwise( { redirectTo: '/login'} );
  
  // configure html5 to get links working
  // If you don't do this, you URLs will be base.com/#/home rather than base.com/home
  $locationProvider.html5Mode(true);
});

4. Create a set of functions that you can reuse

This is again done in the app.js file

app.factory('db', function() {
  var items = [];
  
  var modify = {};
  var modify.addItem = function(item) {
    items.push(item);
    return 'added item';
  };
  var modify.getItems = function() {
    return items;
  }
  return modify; // returning this is very important
});

now, in your controller, you can access these as follows
function MainCtrl = function ($scope, db) {
  $scope.save = function() {
    db.addItem('hello');
    console.log( db.getItems() );
  };
}

5. Controller are just for defining things

This might seem a little stupid for people who have been doing this for long, but well I stumbled on this, so this makes the cut.

Basically, when this means is that whenever you’re trying to test your controller to try out something new, don’t try this

function MainCtrl = function($scope, db) {
  db.addItem('hello');
}

This won’t work for obvious reasons
What you need to do is this

function MainCtrl = function($scope, db) {
  $scope.save = function() {
    console.log( db.addItem('hello') );
  }
}

and now to run the save function, go to JADE and add input(type='submit', name='submit', value='Submit', ng-click='save()') Now open the form, click on submit and check out console.log

6. Define functions in the $rootScope

The $rootScope is a global, which means that anything you add here, automatically becomes available in $scope in all controller. Nice eh!
To set it up, you need to do something like this (I do it in app.js)

app.run(function($rootScope) {
  $rootScope.hello = function() {
    console.log('hello');
  }
});

This should now be available in controllers
function MainCtrl = function($scope) {
  $scope.save = function() {
    $scope.hello();
  }
};

7. Form validation

To use the validation which comes by default with Angular, you need to follow the following steps

a. give a “name” to your form e.g. <form name=”loginForm”>
b. mark all required input boxes as required e.g. <input type=’email’ required />
c. to turn on say email validation, you need to set type=’email’
d. check if the form is validating or not by checking loginForm.$invalid. To check this inside your controller, do $scope.loginForm.$invalid

8. Handling the menu via ng-controller

If you have defined ng-app in the HTML tag, and have defined an ng-view in the body somewhere. However, you want to keep the menu outside ng-view and still want to have access to it programatically to change menu based the fact that the user is logged in or not, you can define a ng-controller on the menu and make it work like a normal controller

Another thing I did was to put my menu in $rootScope so that each controller can mark which menu should be used and which one is active.

How to migrate github repo to another server (including all branches and tags)

This post was created on September 3rd, 2012 by Sudhanshu and has 0 comments. It has been filed under , , , , ,


Github is definitely one of the coolest services to have ever come out. I’m sure you if you calculates the value that it helps create, considering the number of services built there, and the non-developers who end us using that software, it might just be valued at more than Facebook.

Anyways, even though I absolutely love github and would never want to move elsewhere, it sometimes becomes essential for us to move repositories for closed projects back to our server. The important part is to ensure that all tags and branches are migrated as well. This is why I decided to write a quick bash script to take care of it.

Here’s the script that I used
#!/bin/bash
git clone git@github.com:$1/$2.git
cd $2
git remote add vxt git@yourserver.com:$3/$4.git
git config --add remote.vxt.push '+refs/heads/*:refs/heads/*'
git config --add remote.vxt.push '+refs/tags/*:refs/tags/*'
for branch in `git branch -a | grep remotes | grep -v HEAD | grep -v master`; do
    git branch --track ${branch##*/} $branch
done
git push vxt
cd ..
rm -rf $2

To make sure that it’s available everywhere, we put this inside /usr/local/bin/git-track-all

So, to migrate the repo from git@github.com:vxtindia/blogtrix-android.git to git@yourserver.com:vercingetorix/blogtrix-android.git, you need to run the following command.
git-track-all vxtindia blogtrix-android vercingetorix blogtrix-android

The script clones the github repo, adds tracking for all tags and branches, and pushes data to the new server.

Do let us know if you found this helpful.

(Img via LunarLogicPolska)

7 beautiful apps to make writing on iPad easier

This post was created on June 29th, 2012 by nakul and has 0 comments. It has been filed under , , , ,

Writing is important. We all write. There are thousands of apps on iTunes Store that would help you to write. The purpose of writing would differ like someone writes only for note taking, someone writes essays for passion, someone writes thesis as a student. We thought of letting you know the 7 best apps on iTunes Store that would make your writing experience better.

Pages by Apple Inc

Pages is a beautiful and powerful word processor. It is a clone of its Mac variant. If you are a Mac user and if you use Pages, you know what it can do. Pages on iPad does the same thing as it does on Mac.

The beauty of Pages is that it is highly customizable. You can import standard document formats like Pages ’09 and Microsoft Word files and start editing them right on your iPad. You can save your writing as Pages ’09, or Microsoft Word file or even as a PDF file.

The goodies of Mac version like editing text styles are available on iPad too. You can change font style and sizes. There are 16 templates to start from. Each template is perfectly coordinated with the fonts, colors and background it needs. You can add your own graphics to make it look more beautiful.

Pages syncs with iCloud so that you can find your documents on your other devices. So you leave writing on your iPad and you can continue on your iPhone later on and vice versa.

Pages is available on iTunes Store as a universal app for $9.99

iA Writer by Information Architects, Inc

There are writers who just want to write. They don’t want to change font styles and sizes. They don’t want any preferences. All they want to do is write. iA Writer is a writer made specifically for them.

iA Writer is the most minimalistic writing app on iPad. You can’t customize anything. Not the font, not the background, not even the colour. It is purposely so rigid. The font it uses is a very pleasant font, called Nitti Light, that is big on the screen and very easy on the eyes. iA Writer comes with a enhanced keyboard that makes it easy to add punctuation marks like colon, semi-colon, apostrophes etc.

With iA Writer, you are focussed only on writing. Nothing distracts you from writing. It does prompt you for spelling mistakes by adding a dashed red line on wrong spelled word. Selecting the misspelled word gives you autocorrect suggestions. There is a noise free mode available, that makes the writing experience more focussed and clutter-free. Focus Mode blurs out everything except the current three lines of text. In Focus Mode, no spell check, toolbars, or editing come between to distract you from moving forward.

iA Writer is tightly integrated with iCloud and Dropbox. Anything you write would be updated on your other devices. With iA Writer you can make only plain text (.txt) files.

iA Writer is available as a universal app on iTunes Store. It is on sale right now and costs $0.99. It has a companion Mac app sold separately.

Elements by Second Gear

Elements is a beautiful text editor for iPad. It is a dedicated Markdown and Dropbox powered writing environment for iPad.

With Elements you can create and edit plain text and Markdown files. It has autosave and manually save option. So all that you write gets saved to your selected Dropbox folder. If you’re offline, your changes would be uploaded to Dropbox next time you’re connected.

Elements lets you change fonts and margins and comes with many other settings that user can change. It comes with two themes, dark and light for a better writing experience. One of the best features we found on Elements is that you can email files as rendered HTML. It also supports TextExpander. Elements doesn’t sync with iCloud.

Elements is also a universal app. It costs $4.99 on iTunes Store.

Byword by Metaclassy, Lda.

Byword, like iA Writer is also a minimalistic writing app but with some preferences that you can set on your own. It is an amazing environment for writing Markdown on iPad.

Byword looks more or less like Elements but has its own different features. It has an extension to keyboard for the user to easily access punctuation marks. There are four fonts available, if you are not comfortable with the default font.

The most important feature of Byword is that it provides Markdown preview. You can’t preview it as you write, but there is a different preview mode available that you can access from Settings. Moreover, TextExpander is integrated into the app.

Byword syncs with both iCloud and Dropbox. There’s a Copy HTML feature perfect for bloggers. You can also email rendered HTML.

Byword is an universal app too. It has a Mac app that is sold separately. The iPhone/iPad version is currently on sale and is sold for $2.99.

WriteRoom by Hog Bay Software

WriteRoom in another simple and minimalistic app that fits into our list of writing apps. It includes a lot of customizable options. It works only with plain text formats.Unfortunately, WriteRoom won’t open Rich Text files.

To get an idea of how much you can customize in WriteRoom, you should know that you have option of choosing over 50 fonts. It is multilingual too. It too has an extended keyboard to make it easy to add punctuation marks. You can change the background for your aesthetic pleasure.

WriteRoom supports Dropbox syncing. It also has TextExpander Integration. You can password-lock the app so that no one else could read what you’ve written. This makes it a very good personal journal.

WriteRoom is an universal app priced at $4.99 on iTunes Store. There are no in-app purchases.

Writings by Ice Cream Studios

Writings is another plain text editor in our list. It is again a very sophisticated app that lets you focus on your text. To add to its simplicity it doesn’t let user to change formatting options.

Writings supports distraction free writing by fading out everything except the text. A simple tap out of the keyboard brings bak all the necessary controls. To make your writing experience more comfortable, Writing allows you to customize the text font, size, page width and colors (including reverse color scheme).

Writings supports Dropbox syncing. It also supports TextExpander. All files are saved in .txt format using UTF-8 encoding.

Writings is available only for iPad. It costs $4.99 on the iTunes Store.

Simplenote by Codality, Inc

Simplenote is specifically a note-taking app. It is that app that you open up and start writing rough notes anyhow. You require to have simplenote.com account to be abe to use this app.

The UI of this app isn’t really much interesting. It looks like an app with all native UI elements. But the beauty of this app is that it works with simplenote.com. Simplenote is a web-service that helps people write and share notes. There are many apps that use Simplenote’s web service. The Simplenote iPad app is just one of them.

The best thing about Simplenote is that you can see versions of your notes. This works exactly like how versions work in Mac OS X Lion. There is a slider, as you slide it backward, you can see the changes that were made. Plus, you can add tags to your notes. Simplenote boasts very powerful search using which you can search in titles and notes.

Simplenote is available on both iPhone and iPad. It is free. There is an in-app purchase worth $19.99 that adds few goodies.

The Conclusion

We’ve shown you the best writing apps on iPad. There is no limit to the number of writing apps that would keep on coming on iOS. All we look for is a aesthetical writing pleasure.

9 Essential Mac Apps that you won’t find on App Store

This post was created on June 29th, 2012 by nakul and has 0 comments. It has been filed under , , , , ,

Mac App Store was launched in Jan 2011. Mac App Store is a great place to find awesome Mac apps. Although we have a store for Mac Apps, there are apps that you can download and install outside of Mac App Store. These apps must have not got the into App Store for reasons like Apple’s regulations didn’t allow them to have such an app or maybe they by themselves wanted to save the commission that Apple takes from them when your app gets sold. We found 9 such essential apps that you won’t find on App Store.


Adium by The Adium Team

Adium is the famous iChat alternative for Mac. It’s open source and has been around for a long time now. It supports AIM, MSN, Jabber, Yahoo, and many more.

Other features include highly customizable preferences. You can change the look and feel of the application at your will.

Adium is free of cost and you can download it here.


Dropbox by Dropbox, Inc.

Dropbox is amazing. It’s a service you would fall in love with. Dropbox helps you share and access your data anytime, anywhere.

Install Dropbox on Mac. Now, whatever you add to your Dropbox folder would be available to you on its web client and other devices where you install Dropbox. Dropbox is integrated with hundreds of well-known apps.

Dropbox is free for use up to 2GB. You can download it here.


Fluid by Celestial Teapot Software

Fluid helps you make a website or web-application turn into a native mac app. Fluid is simple and wonderful.

All you have to do is enter the url of web page that you want to load when you launch your app. Optionally, you can give the app an icon or it would take web page’s favicon. Here’s an interesting article by MacStories that would help you get the best out of fluid.

Fluid is free. You can download Fluid for free and create as many Fluid Apps as you like.


QuickSilver by Blacktree Software

QuickSilver is a minimal and very powerful utility app for Mac. You can see it as a beautiful alternative for Spotlight but that would be too less to compare.

QuickSilver helps you to use the keyboard to rapidly perform tasks such as launching applications, manipulating files, or sending e-mail. There are hundreds of third-party plugins available that makes things much more easier. You can also define triggers that perform a predefined task. There are various themes available for your aesthetic comfort.

QuickSilver is free of cost and is known to be one of the best productivity apps on Mac OS X ever. You can download it here.


AppCleaner by FreeMacSoft

AppCleaner as its name suggests cleans your apps from the system. For people coming from Windows platform, it would seem confusing about how to uninstall apps from Mac.



Uninstalling apps from Mac is damn easy. You just need to move the app to trash to uninstall it. Sometimes, the app has associated files that don’t get deleted just by moving the app to trash. That is exactly where AppCleaner comes into picture. It helps you delete the app and its associated files.

AppCleaner is available here.


nvALT by David Halter and Brett Terpstra

nvALT is a fork of Notational Velocity with MultiMarkdown functionality. It helps you take notes as quickly as possible.

With nvALT you can write both in plain text and Textile/HTML format. You can also see live HTML preview. You can view and copy the HTML source code. Also, nvALT autosaves all your notes.

nvALT is free and is available here.


1Password by AgileBits Inc.

Most of us need a software where we can store our private information like Credit Card Pins, Mail account passwords, etc. 1Password is the most useful app for this.

1Password works with a master password that securely stores all your information. The interface is too good for any password manager. An iPhone version is available that syncs with Mac app.

1Password is priced at $34.99 and comes with a money back guarantee. A 30-day trial option is available. You can download it here.


TotalFinder by Binary Age

We all love tabs. And with all browsers supporting tabs, we’ve become quite accustomed to the concept of tabbed browsing. Sadly, when you open Finder multiple times, it opens up in different windows which is not aesthetically pleasant.

TotalFinder is an attempt to bring web broswer-like tabs to the Finder. The basic functionality is pretty simple. The tabs work like they do in any web browser, and you can easily drag-and-drop between them.

Moreover, TotalFinder also offers a split-window mode, cut-and-paste, system-wide Finder access through keyboard shortcut, and finder organization.

TotalFinder costs $14.99 and is available here.


Espresso by MacRabbit

Espresso is a gorgeous web editor. The beauty of this app lies in its features. It is powerful yet clutter free. Most of the IDEs are quite bloated, but Espresso stands out to be minimal.

Espresso is packed with features. Custom theming, syntax highlighting, lightning fast auto-complete, code folding, line numbers, reusable snippets and auto-updating live page previews are the most used features. It provides easy to use coding environment with support for tons of languages.

It is available for $79. You can buy yours here.

The Ultimate Mail Client for Mac OS X

This post was created on June 28th, 2012 by nakul and has 9 comments. It has been filed under , , , , , , ,

Using email is one of the most primary use of any computer. It is the most popular mode of online communication. Many businesses are dependent on email services. We won’t be talking about email providers but about email clients for Mac OS X.

First, why would you need mail apps when you can open the email in web browsers. That’s because with an app, you get an aesthetic comfort. App doesn’t do something different from its web variant but provides a better user experience. Here’s how. Open gmail.com. Assuming you don’t have username and password saved. So then you type in your username/password and then wait for the page to load. Meanwhile, you have nothing to do. Everything has to load again. With an app, every such annoying thing is eased.

Lets have a look at the best mail clients in the market:

Mail.app by Apple Inc

Probably the best app that got shipped with OS X Lion, Mail.app is Apple’s own mail client. It is a full-featured app suitable for both casual and power users. This app takes it looks from the iPad version.

Mail app is very easy to use and features a lot of preferences too. You can keep all your mail organized. There is a compact review pane where you can quick-look your mails. Mail flaunts a new conversation view that groups your mails from a thread. You can hide few messages or see all at once, so you know what are others talking about in that mail.

The mail search feature is very powerful and useful for the pro users. The search works dynamically and gives you the result even in times when you don’t know what keyword to use. You can narrow down your results based on your own criteria.

Mail.app is integrated with iCloud. So all your mails are pushed to all your devices wirelessly, wherever you go.


Postbox by Postbox Inc

Postbox is arguably the world’s best desktop Gmail client for Mac. Although it supports other mail services, the features it offers for Gmail accounts is really amazing.

With the Gmail support, you can see all your gmail labels and folders right in the app. Labeling the mail from the app labels it on web too. Plus, the important mails are segregated from others. There are other powerful features like send and archive in one step, Gmail shortcuts etc.

Postbox shows off a social touch by importing photos of people who send you mail or whom you send mail. These photos are imported from various sources like Facebook, LinkedIn, Gravatar. Moreover, you can even access their social profile pages too. Since, you have all these, you can even update your status from the app itself.

Postbox is integrated with Dropbox. So the next time you want to attach a large file, you can just send the dropbox link. Postbox too shows a conversation view so that none of the conversation is missed. Searching in Postbox is very powerful and very efficient. For example, to search attachments, you can find a pool of all your attachments from all mails, so that you just search the right thing and get it there without having to take the effort of going through the mails. Postbox is also tightly integrated with Evernote. So you can convert your mails into notes by just one click.

Postbox comes at a hefty price of $39.99 but every cent of it is worth.


Sparrow by Sparrow SAS

Sparrow is one lightweight, super-fast and a beautiful mail client. It looks as minimalistic as Twitter for Mac app but is packed with all the important features you may need.

The beauty of Sparrow is that it is fully gmail compatible. You can see you gmail folders, labels, spam filtering etc. It is integrated with CloudApp and Dropbox so you can send large files just by sending their links. Sparrow, again, like Postbox has a social touch. It can import profile pictures from Facebook.

Sparrow is suitable for both basic and power users alike. The full version costs $10. You can grab the ad-supported version for free.


MailMate by Freron Software

MailMate as they say, is email solution for the power users. It is full-packed with all the features you can expect from a powerful mail client.

MailMate is known for its extensive keyboard control. You can navigate, read, and reply to emails using the keyboard only. MailMate supports writing mails in Markdown. That’s one amazing feature for power users. Also, the search feature is amazing, providing you with a ridiculous amount of control.

Like other apps MailMate too supports Multiple Accounts. MailMate supports Full Offline Access.

MailMate costs $29.99. You can download the free demo here.

8 Most Useful Libraries on GitHub

This post was created on June 28th, 2012 by nakul and has 3 comments. It has been filed under , , , , , , ,

iOS is one of the most popular mobile OS and has been around for a long time. There are thousands of amazing apps on iOS. Making an awesome app is a not so easy. It is directly proportional to the complexity and feature-set of the app. For every app, there is a major part of it which can be re-used, like for example a networking library that you must have written.

GitHub is a social coding platform where people share code. Most of us don’t like to reinvent the wheel. That is why GitHub exists. The awesomest developers share their awesome piece of code that makes other developers’ work awesome-r. Sharing with you one of the most useful libraries.


AFNetworking by Gowalla Engineering

In Gowalla’s own words, AFNetworking is a delightful networking library for iOS and Mac OS X. It is known to be used by some of the most popular apps on iPhone and iPad.

Adding AFNetworking to your current project is simpler than what it seems. You just need to add source files, import headers from your classes and start accessing the methods. With AFNetworking, you make network requests and receive a response in return. I haven’t told anything new, but this requesting and receiving response has been highly optimized by AFNetworking. You can write block based callbacks and distributes the data received to different classes.

What we’ve told is just one aspect of AFNetworking. It is very well documented and you can discover the rest of magic here.


ShareKit by Nate Weiner

In most of the apps today, you’ll find Share on Facebook, Tweet this and Add to Google Reader and similar services. It has become a necessity. The purpose would differ, but we always want to share something from our app.

With iOS 5, sharing to twitter has become as easy as it could get. But for other services, integrating them individually is not a straight-forward task. This is where you need ShareKit. ShareKit is an open source library that adds content sharing ability to your app essentially in just 3 lines of code. As of now following services are fully supported by ShareKit: Delicious, Email, Facebook, Google Reader, Instapaper, Pinboard, Read It Later, Tumblr, Twitter. Lately it added FourSquare, LinkedIn and VKontakte.

ShareKit features Offline Sharing. It would smartly display only the services that can handle the content you want to share.
You can download ShareKit here. ShareKit comes with official documentation.


JSONKit by John Engelhart

Most of the apps that we use access data over the internet. This data has to provided to the app in a way that it can be easily understood and used in the app. As of now, JSON and XML are the most widely used data interchange formats. JSON is way far better than XML. This JSON when received by the app has to be converted to strings, arrays and dictionaries as required. For this conversion, we need a parser.

JSONKit is one library that parses and serializes supersonically fast. It is proved by benchmark testing to be the fastest parser around. It is easy to integrate with your app.

A very good and concise documentation is available on JSONKit’s GitHub page. You can download the source code here.


EGOTableViewPullRefresh by Enormego

Pull to Refresh is an amazing idea. It has become popular very popular since Atebits used it in their Tweetie app. Enormego came up with a third party library, making it it easy for the rest of us to add pull to refresh feature in our app.

It is very easy to integrate in your app. Few StackOverFlow posts illustrate how to make it work.

EGOTableViewPullRefresh is available here.


MBProgressHUD by Matej Bukovinski

Sometime and somewhere in our app comes a time when we have to make the user wait. Just leaving the screen as it is would be both confusing and irritating. MBProgressHUD helps you display a progress HUD while any work is being done.

You can also add labels and indicators on the HUD. By default, it is a translucent HUD.

You can download MBProgressHUD here.


SDWebImage by Olivier Poitrey

Adding images in a table view cell is a common thing. The first time you tried to add an image that comes from a URL, you would have realized that the UI gets freezed if you try to scroll the table while the image is loading. To avoid this you need to load the image in a background thread. This is called Lazy Loading. SDWebImage helps you to do this background downloading and also cache it.

With SDWebImage setting an image from a url is as easy is setting it locally. SDWebImage isn’t just limited to table view cells. You can use it independently with UIImageView anywhere in your app.

You can download SDWebImage here.


Tapku Library by Devin Ross

Tapku Library is a big library offering many components. Some major components include coverflow, calendar grid, network requests and progress indicators.

Tapku is easy to install and comes with a demo project that demonstrates what the library can do. It is easy to add to your project and start making amazing cover flows etc.

Tapku Library is available here


Reachability by Tony Million

Our devices are bound to get out of network at times. The internet connection may be slow or unavailable. We need to handle our app when something has to be downloaded from internet but internet is not available. Apple has its own reachability classes which help us do this. But we have a replacement for Apple’s classes which does the same work with all ease.

Reachability is an ARC and GCD Compatible Reachability Class for iOS. In addition to the standard NSNotification it supports the use of Blocks for when the network becomes reachable and unreachable.

You can download reachability here.

12 Amazing Photography Apps for the iPhone

This post was created on June 6th, 2012 by nakul and has 1 comment. It has been filed under , , ,

Camera+ by Tap Tap Tap LLC.

Camera+ Landing Page

Camera+, as their punchline says, is truly ‘the ultimate photo app’. The developers Tap Tap Tap LLC (not a spelling mistake) were one of the first people on earth who took the iPhone Camera very seriously. For the record, Camera+ is one of the most downloaded photography apps on iPhone worldwide.

Camera+ Screenshots

There are many reasons why Camera+ stands out to be the best app from such a large pool of photography apps. First, its the first app that allowed users to manually set exposure and focus while shooting pictures. This feature is like a ‘must-have’ for any digital point-and-shoot device. You won’t always find the best light conditions to take photos, but the moment you can start tweaking with how much light has to enter through the camera lens you know that you can take a very much light-balanced photo.

Focus and Exposure

Secondly, Camera+ gives its users a preset filter to make their photos look much more balanced and well-composed. They call this feature Clarity. For users who cant really play around with exposure and color compositions of their photos, this feature makes their photo suddenly look amazing. Clarity is a very good algorithm that intelligently adjusts the light and colors in a photo.

Clarity featureFilter Effects

Third, Camera+ comes up with amazing built-in filters. It looks like a lot of research has been put on making this filters and the best part of it is that they get applied in a fraction of a second. Moreover, if you are not really comfortable with the intensity of the filter, you can change it anytime at your comfort. Almost all the effect filters were made by the professional photographer Lisa Bettany.

There are many more features like Lightbox, Social Sharing, Viewing ISO and shutter speed of any photo.

One important and controversial feature that we forgot to talk about here is the VolumeSnap. Camera+ was the first app that allowed the user to take a photo just by pressing the volume plus button. This gave the app a very digital camera like feel. It is known that Apple had pulled Camera+ from its AppStore because according to them Camera+ had broken the Apple Developer Agreement. Using a dedicated hardware button for some other purpose seems to have annoyed Apple. The sales of Camera+ with the introduction of VolumeSnap were very much noticeable but were short-lived because of Apple’s policies. It was then in 2011 that Apple introduced the VolumeSnap feature in its native iPhone app stating that it made taking photos very easy. After launching iOS5, Apple’s Developer agreement changed and Camera+ was back in App Store with its VolumeSnap feature.

In March 2012, Camera+ 3.0 was launched with a bunch of enhancements. They made their API public and made it easy to share photos across your favorite social networks.

This app is on sale right now and is priced at $0.99 on iTunes Store. An in-app purchase of Analog FX pack is available at $0.99


Snapseed by Nik Software

Snapseed isn’t really that good app to take photos with. But what you can do with already taken photos is what brings it to our list. It was awarded as iPad app of the year in 2011, but the goodies of its iPad version are available on iPhone too.

Snapseed helps you tweak with photos you take and photos that were already taken. There are a bunch of options to play around with. Users who have an idea of how to play with images can change brightness, contrast, saturation, sharpness and things like that. There’s a loupe tool using which you can change the above mentioned things only in the loupe selected area. This helps to remove extra light or add more light in a specific area.

The app has inbuilt vintage, professional black & white and grunge filters that makes your photos look retro. There are other filters like drama, center focus, tilt-shift that help you to make parts of photo blur so that the photo looks more stylish and realistic. Like other photo apps there are readymade frames so that you can frame your photo. You can share your photos via Email, Facebook, Flickr, Twitter and Instagram.

This app costs $4.99 on iTunes Store and there are no in-app purchases.


645 PRO by Jag.gr

645 Pro is the latest entry into this category and is doing amazingly well. For years, iPhoneographers (a slang for iPhone Photographers) wanted an app that could display Shutter Speed and ISO while taking the photo (and not after taking the photo). This helps the professionals in knowing how much light is entering through the camera lens and how much it has to be.

If being able to know shutter speed and ISO is awesome, 645 PRO has something awesomer to give you. Guess what, you can access the RAW file of your image. Technically speaking, you can access the lossless ‘developed RAW’ of an image; also called dRAW – TIFF File. Only a professional photographer knows the importance of being able to access the dRAW of an image. This app comes very close to make your iPhone work and feel like a DSLR Camera.

Another amazing thing about 645 PRO is its low light performance. The shutter speed raises to as high as 1sec to give you exceptionally night photos. You can change the day/night mode in a couple of seconds. Similarly, you can set the White Balance to Auto or Manual.

The app isn’t really easy to get used to in the beginning, but it comes with a very well written manual that makes the learning easy. There are seven amazing film modes that come from the classic film stock. The Black & White film modes makes your photo look like coming from a 60s camera.

The developers have mentioned on their site and iTunes Page that the app is optimized for iPhone4s but is compatible with iPhone 4 too. The app runs on iOS 5+ devices only.

This app is available for $2.99 on iTunes Store and there are no in-app purchases.


Mattebox by Ben Syverson

Mattebox is the most minimal app in our list. Its minimal not in the terms of the feature set but in terms of how much distraction free it is. This makes it a very sophisticated app.

The viewfinder is simply beautiful and it is known to inspired by the legendary Konica Hexar. You can lock exposure and focus just before taking a photo so that you have a great idea of how your photo would like after taking the picture. Setting the right white balance is just a touch away. Mattebox displays the selected shutter speed, ISO, focal distance and aspect ratio in its minimal viewfinder.

Once you take a photo, you can head on to quickly fix few things like Exposure, Saturation, Control over Color, Vignette and Gamma. You can also crop the photo. Once you set the above properties, all the next photos get the same effect unless you change it. You can save this setting of yours for future use.

This app is available on iTunes Store for $3.99. There are no in-app purchases.


Hipstamatic by Synthetic LLC

Hipstamatic is an app that brings back the look, feel, unpredictable beauty, and the fun of plastic toy cameras from the past. This is what the developers say about themselves on their website. Hipstamatic is a very unusual app in this list. Unlike other apps which let you choose filters after taking photo, in Hipstamatic, you can swap lenses, films and flashes.

There’s a different photo for every different combination of lens, flash and film. Because of this, you can have a variety of retro photos. There are online Hipstamatic communities where-in you can ask for the best combination of the three to make your photos look stunning.

Hipstamatic organizes events like The Big Hipstamatic Show to encourage people to use Hipstamatic and send their photos for the competition. Users can also get their photos printed in 4″, 6″ & 30″ sizes.

Nine hipstapaks are available as in-app purchase for $0.99 each. The basic price of app is $1.99 on iTunes Store.


Camera Awesome by SmugMug

The only reason we thought of including Camera Awesome in our list is because it has most of the goodies of Camera+ and is totally free of cost. What’s more exciting is that it hit 4+ million downloads in less than one month. No wonder its an app by SmugMug who have been in digital photo sharing industry for over a decade.

Camera! has an equivalent of Camera+’s clarity feature which they call as Awesomize. You can set how much you want to Awesomize your photo. Moreover, unlike Camera+ you can change Contrast, Vibrance, Temperature and Sharpness for every photo.

Camera! comes with a huge set of presets, filters, textures and frames. The combination of the above four is precisely 262, 143. That’s really huge. Not all the combinations look good but, still there are many choices in good looking combinations. Plus, not all filters, frames and textures are free. Only 10% of the total set are free, rest all cost a nominal charge.

Camera! is available for free on iTunes Store. The full in-app purchase comes for $9.99.


HDR FX by JellyBus Inc.

HDR stands for High Dynamic Ranging which is a set of methods allow a greater dynamic range between the lightest and darkest areas of an image than current standard digital imaging methods or photographic methods. In other words, HDR is a range of methods to represent more contrast in pictures.

Lately many users clicks their photos and apply HDR to make the photos look stunning. With iOS 4.1, Apple introduced HDR in its native camera app. What the native app does is that it takes three photos in a single shot at three different exposure levels and finally overlays the three of them by combining the best parts of each photo. This enhances the light and color the photo has to display.

HDR FX app starts with ambient sounds in the background depending on what time of day it is. Also the look of the app’s first screen changes depending on whether it is day or night. HDR FX is one of the rare apps that allow you to import photos from facebook.


HDR FX applies faux HDR to your photos. Although, the method of applying HDR is different than native camera app, the result is visually same. Since the name has FX in it, you must have got an idea that the app does more than just HDR. HDR FX comes with a bunch of filters to make your photos look more stylish. You can also apply filters selectively for sky, ground and scenery. There are frames available to make you photos look more artistic.

HDR FX is available on iTunes Store for $1.99


Lens+ by Creative Children

Lens+ is a very unpopular app to come in a list like this. But there are enough reasons why we chose it. First, its a realtime retro app giving you back the feeling of analog cameras. Second, the awesomeness of photos is available to videos too.

Lens+ camera opens in film modes that give you an idea of how your image would look after taking a picture. There are five style categories with 6 amazing filters in each category. There is an option using which you can see effects of 6 filters of a category realtime on a single screen. The filters are very fun and entertaining.

The above mentioned filters are available for videos too. This makes it a app to fall in love with. These filters when applied to a video suddenly makes them look superbly retro.

The thing that Lens+ lacks is when in it comes to sharing. Currently, you can just mail your photo or share it on Facebook. You can share your videos on Youtube.

This app is on sale for $1.99 On iTunes Store. There are no in-app purchases.


Adobe Photoshop Express by Adobe Systems Inc

Adobe Systems Inc are in the business of photo editing for almost more than two decades now. They have their iPhone app that does allows you to lightly tweak exposure, contrast and things like that.

All the features are very much basic. But with thier 2.0 version, they have introduced the most-awaited and highly useful feature, noise-reduction. In many photos that didn’t have good light conditions and got shot with a lot of noise, the noise reduction feature repairs it with no much loss of detail.

It is linked with Photoshop.com so that you can upload all your photos to your photoshop collection. Also there are other sharing option available to make it easy for you to share your pictures across networks.

The app is available for free on iTunes Store. Camera pack and Border pack are available as in-app purchase at $4.99 and $1.99 respectively. The Noise Reduction feature is a part of Camera pack.


Fuzel by Not A Basement Studio

We’ve been talking about a lot of photo-taking, photo-editing and photo-sharing apps. The results of the above actions were just individual photos. What about collages? Why havent we not talked about it yet! Yes, Collages are a important thing in digital photography.

There are many apps on app store that allow you to make collages. They come with preset collages where you just have to paste your photo and save/share it. Fuzel is the one of the first apps that lets you create you own collage format. You can draw you own shape and size. You can have any number of photos, anywhere. Now thats a beauty if you arrange it properly.

Fuzel’s user interaction is not really straight forward. The App opens like an album. You can start off by selecting a preset collage or make your own. While making your own collages, you are free to create it anyway you want. The edges have to be straight, that is the only obvious limitation to it. You can change the size and shape of your collage even after creating it.

Fuzel is a powerhouse for making effective collages. You can customize almost everything like outlines, base and also apply frames. Moreover, you can apply filter on individual photos and on the whole collage itself. In all, a the best app to make amazing collages.

The app is on sale at $1.99 on App Store and there are no in-app purchases.


Instagram by Instagram Inc

Everyone who’s reached here must be knowing Instagram for sure. After launching on Android and being taken over by Facebook, Instagram is like the most popular photo-sharing app on both iOS and Android.

Instagram is very simple in terms of feature. You take a photo, apply a digital filter, add tilt-shift blur and you are done. The work flow is perfect.

Instagram is a free app and there are no in-app purchases.


Path by Path Inc

We are really sorry for using an image from Jerad Hill here without permission. The image has been taken down.

Path is not really a iPhone photography app but the filters and realtime filter display it shows is what made us think of adding that app to our list.

Path is basically a social-networking app but with the goodies of a photo-taking, photo-editing and photo-sharing app. There are a few inbuilt filters. Some of them are free while some of them are paid.

Path’s workflow, like Instagram, is very simple and perfect. It is tightly integrated with other services.

Path is free for download with an in-app purchase to buy filters at $0.99 each.


The Conclusion

In all, there are thousands of apps on iOS for tinkering with photos. Our team curated a few for you. Let us know what do you think?

How to install Count.ly on Ubuntu 10.04 LTS

This post was created on May 22nd, 2012 by Sudhanshu and has 0 comments. It has been filed under , , , , , ,

Count.ly is probably the best, open source, free and self hosted solution for analytics for mobile and web applications. The first version released on the 19th of May and we decided to go ahead and implement it for our own applications.

There were a few minor hiccups on the way so I thought it would be a good idea to document the process as well. I would like to point out that we’re no experts in Node.js or MongoDB and this is probably the first time that we tried setting up a server to host a node.js application. For the record, I use servers at prgmr.com (I just love them) and use the Ubuntu 10.04 LTS (Long Terms Support), so all instructions are with that in mind.

1. Download count.ly

You can do this from their website. I’ve been told that it should come up on Github sometime soon. You’re basically looking at the web installation. I found mine here – http://count.ly/downloads/release/bundle/countly-bundle-v12.05.zip, but it would be a better idea to get it from their website.

2. Decide where to install the code

I decided to setup nginx (which listens on port 80). It would inturn pass every request over to my node.js installation. Also, I decided to put all node.js projects at /nodes, so I moved the code for countly at /nodes/countly
$ mkdir /nodes
$ cd /nodes
$ sudo aptitude install unzip
$ unzip countly-bundle-v12.05.zip

3. Install Git and create an account at Github

You can install Git by typing
$ sudo aptitude install git-core
You would also need to do a few more operations like setup your SSH keys and add them to your Github account. The instructions for that are at help.github.com

4. Install Node.js

You need to download the latest source code from github, build and install it.
$ cd
$ git clone https://github.com/joyent/node.git
$ cd node

Now you need to find the latest stable version of node, branch out to that version and then build it. To find the latest stable version of node.js, go to https://github.com/joyent/node/tags and search for (stable) with the brackets. Currently, the latest stable version is 0.6.18 which is way down in the list, but that’s okay. We don’t want an unstable node.
$ git checkout -b v0.6.18 v0.6.18
$ git branch
  master
* v0.6.18
$ ./configure
$ make
$ sudo make install

Now you have the latest stable version of node running on your servers.

5. Install nginx

Installing nginx is quite straight forward
$ sudo aptitude install nginx
You also need to setup the configuration for nginx so that it was run multiple node.js installations.
$ cd /etc/nginx/sites-enabled
$ vi default

Here is what a simple nginx config file looks like
server {
  listen 80;
  server_name yourservername.com;
  access_log off;
  location = /i {
    proxy_pass http://127.0.0.1:3001;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
  }
  location = /o {
    proxy_pass http://127.0.0.1:3001;
  }
  location / {
    proxy_pass http://127.0.0.1:6001;
  }
}

Another thing I did was changed the name of the file from default to default_3001_6001 so that I know which port numbers are getting used in there. Now if you have a add a new node.js deployment on the server, you would do the following
$ cd /etc/nginx/sites-enabled/
$ vi test_3010

If your deployment is at /nodes/test and runs at port 3010, you need to add the following in your configuration
server {
  listen 80;
  server_name deploy.vxtindia.com;
  access_log off;
  location / {
    proxy_pass http://127.0.0.1:3010;
  }
}

6. Install mongodb

You need to add a repository to your aptitude’s sources.list and then install normally
$ sudo vi /etc/apt/sources.list
Add the following line at the end, if it isn’t already there
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen
Now, you need to refresh the aptitude cache and just install
$ sudo aptitude adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
$ sudo aptitude update
$ sudo aptitude install mongodb-10gen

The documentation asks you to install mongodb-server as well, however I didn’t find it in 10.04 LTS.

7. Install npm

This is really simple, and this is something that you’ll instantly fall in love with. The setup is as simple as this
$ curl http://npmjs.org/install.sh | sh

If you haven’t used npm before, you need to understand that you can install everything locally or globally. You can install anything globally by typing “npm install -g packagename”. If you want to install it locally only “npm install packagename”. (If you want the complete list of package names, you can go here – http://search.npmjs.org). Usually if it looks like an important package which you might use across projects, you can install it globally. If you need a package only for one project, it’s better to include it locally. However, when you intall something globally and your script gives you an error when you run “node app.js”, go ahead and install it locally. That always works, and I can’t tell you how many times I have had to do it!

8. Install other required softwares

There are a few other things which are required by count.ly. We will go out and install them now
$ sudo aptitude install python-software-properties imagemagick build-essential

9. Install Supervisor

As you would expect, Supervisor makes sure that your script always keeps running. Here is how to install it
$ sudo aptitude install supervisor

10. Install geoip

Installing geoip should usually be this simple
$ sudo aptitude install libgeoip-dev
$ cd ../api
$ npm install geoip

But if you’re on Ubuntu 10.04, you would need to build geoip. The instructions for the same are (thanks to Onur from count.ly). You would only need to do this, if you get an error like this

$ cd
$ sudo aptitude install wget
$ wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
$ tar xvf GeoIP.tar.gz
$ cd GeoIP.tar.gz
$ ./configure --prefix=/usr
$ make
$ sudo make install
$ cd ..
$ rm -rf GeoIP*
$ cd /nodes/countly/
$ npm install geoip

11. Install time

This one proved to be very tricky. I’m still not sure how the issue got resolved, but here’s a hint at what to do if you get stuck at the same issue
$ npm install time
I hope it works for you, because for me it ended up with a message like this:

I contacted the original developer for this project, who was very helpful, but I found the resolution in about 10 minutes after mucking around with node-gyp. Here are some of the things that I did
$ npm install node-gyp
$ cd
$ mkdir .node-gyp
$ chmod -R 777 .node-gyp
$ cd .node-gyp
$ mkdir 0.6.18
$ chmod -R 755 0.6.18
$ cd
$ npm install -g time
$ cd /nodes/countly
$ npm install time

This should hopefully fix your issue as well.

12. Setup URL in Javascript

Countly runs everything via Ajax, so it’s really important that you setup the callback path properly, otherwise, you app will end us looking like this –

Setting this up is simple, you need to take the base url that you had setup in nginx (after server_name) and do this
$ cd /nodes/countly/
$ vi frontend/express/public/javascripts/countly/countly.config.js

Replace the existing text with
countlyCommon.READ_API_URL = "http://yourbasepath.com/o"

13. Run Supervisor

Finally, to start the dashboard and the API, you need to do this
$ cd /nodes/countly/bin
$ supervisord -c ./config/supervisord.conf

The configuration file looks something like this (You don’t need to change this at all)
[unix_http_server]
file=/tmp/supervisor.sock
 
[supervisord]
logfile=/var/log/supervisord.log
logfile_maxbytes=50MB
logfile_backups=10
loglevel=warn
pidfile=/var/log/supervisord.pid
nodaemon=false
minfds=1024
minprocs=200
user=root
childlogdir=/var/log/
 
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
 
[group:countly]
programs=countly-dashboard-6001, countly-api-3001
 
[program:countly-dashboard-6001]
command=node ./../frontend/express/app.js
directory=.
autorestart=true
redirect_stderr=true
stdout_logfile=./../log/countly-dashboard.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn
 
[program:countly-api-3001]
command=node ./../api/api.js 3001
directory=.
autorestart=true
redirect_stderr=true
stdout_logfile=./../log/countly-api.log
stdout_logfile_maxbytes=500MB
stdout_logfile_backups=50
stdout_capture_maxbytes=1MB
stdout_events_enabled=false
loglevel=warn

That is it! You can now go to the browser and start using Count.ly!

Moneylife Magazine for the iPad is now live!

This post was created on May 5th, 2012 by Sudhanshu and has 0 comments. It has been filed under , ,

The Moneylife magazine has hit the Apple Newsstand today. You can download the application here. Moneylife is a daily magazine which empowers you to invest and spend wisely by offering hard facts, insightful opinions, unbiased options and useful tips from the world of money. You can expect a sharp focus on stocks, mutual funds, careers, consumer rights plus education, smart borrowing and spending. There are a total of 35 sections which are updated daily.

Here are some of the most interesting features that you would find in the magazine, other than the amazing content by the MoneyLife team.

A reading interface with no interference

We know how the bloat on the reading screen irritates us. This is why we removed everything from the screen which can distract you from reading. You can just swipe left or right to move to the next article.

Download on demand mode

The application only goes out to download all the data for each of the articles if you specifically ask it to. If you’re on a 3G network, you can tell the App to download articles only when asked for.

Sync Bookmarks across Devices

Whenever you save notes or bookmarks or snippets from your account, they are synced across all your devices. You would need to register to use this feature.

The Moneylife magazine is free for the first month, so go ahead and try it out. Do let us know if you have any issues or feedback.

Featured on the Best Mobile App Developers List in Asia / Middle East

This post was created on April 29th, 2012 by Sudhanshu and has 0 comments. It has been filed under , ,

We were just featured on the Best Mobile App Developers List in Asia / Middle East. The list features a number of development companies across the US, Europe, UK, Nordic, East European, Canada, Australia, New Zealand, Asia and Middle East.

We were featured at #2 in the Asian / MidEaster section, right after Robosoft! It also includes a lot of other companies from Bangalore, Mumbai, Hyderabad, Singapore, Kaula Lampur and Israel.

Great work guys!

Image taken from http://footballtopstars.blogspot.in/




Social


Find us on Facebook
Follow us on Github
Track us on Basecamp