We love designing and developing websites, but what really drives us is solving problems and cultivating strong relationships with our clients
Deploying Django apps on Heroku
By : shabda
Deploying Django apps on Heroku:
Read this first: http://devcenter.heroku.com/articles/django.
This is a great article by the Heroku. I am just filling in some more details and making this step-by-step.
- Get your Django project code.
-
Create a virtualenv with a no-site-packages command ::
virtualenv vent --no-site-packages
-
Install Django, psycopg2 (postgres connector), gunicorn and any other required Django libraries.
- Confirm that you have all the required libraries and you can run your code locally using
manage.py runserver. -
Create a requirement.txt by using ::
pip freeze > requirements.txt
-
Make sure you have a requirements.txt at the root ...
Developing android applications from command line
By : thejaswi
Here at Agiliq, we also develop cross-platform HTML5 mobile applications. Using Eclipse to create an android project (one time task) and edit html and javascript files for an android app is an overkill. Wouldn't it be great, if you could use your favourite text editor to edit html and js files and then fall back to the terminal to deploy the android app? We are going to see exactly this in the post.
First, let's install the android SDK starter package(I assume that you have installed JDK and ant). Head over here and install the SDK for ...
more info..Deploy Django App in 5 Easy Steps
By : saket
So you just bought a new VPS, have installed Ubuntu and want to deploy your django app, GREAT!! We shall get your app, up and running in 5 easy steps, using best(arguably) of tools available. The post is targeted to audience who are new to deployment arena, but assumes you are comfortable with developing basic django apps. We shall be using gunicorn as our server and nginx nginx as our reverse proxy and static hanlder. Here we go:
1. Login and OS Updation:
$ ssh root@{your_ip}
# apt-get update
# apt-get upgrade
# apt-get dist-upgrade
# dpkg-reconfigure tzdata #choose your time zone
2 ...
more info..Project Management Tools for Start-Ups
By : anoop
An integral part in the success or failure, of any company is the management and communication between peers within the company as well as a well formed communication with the clients itself. 1990s was marked with the rise of tools like bugzilla, trac and a few other, which allowed developers to develop collaboratively, and more over, a bit more organized with the ticketing system. One thing to be noted is that, they did what they were supposed to do, and they still do.
As the time pass by, we got a huge number of code hosting, along with project management ...
more info..Generating a pdf from an image using PIL and django
By : saket
In this post we shall be performing small image manipulation on the server side and allowing the user to download the pdf. This might be found useful if you design a quiz app and want to generate a certificate for the users. The various methods which can be followed to generate the certificate are:
- Have an image file to serve as a template, use css to place the username at the desired location.
- Have a pdf file, which can be edited to take the username of the current user if he has passed certain test.
- Have an image template ready ...
Dynamically attaching SITE_ID to Django Caching
By : anoop
It would be useful and convenient, if you have an automatic way to add the SITE_ID, especially, when you have multiple sites running on the same deployment. Django provides a cache prefix function KEY_FUNCTION in settings which can be used to achieve this.
Just follow the following steps, and your cache, automatically prepends SITE_ID to the cache key, making it unique across multiple sites.
-
Put the following into the settings file.
CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.db.DatabaseCache', 'LOCATION': 'cache_table', KEY_FUNCTION = ‘projectname.appname.modulename.functionname’, } }
-
Write a function to get current site id, say, get_current_site(), which returns current ...
Screencast: How to deploy Django on Heroku
By : shabda
How to deploy Django on Heroku from Shabda Raaj on Vimeo.
Here is a screencast to accompany http://agiliq.com/blog/2012/04/deploying-django-apps-on-heroku/. Watch in fullscreen.
more info..Deploying Django apps on Heroku
By : shabda
Read this first: http://devcenter.heroku.com/articles/django.
This is a great article by the Heroku. I am just filling in some more details and making this step-by-step.
Get your Django project code.
Create a virtualenv with a no-site-packages command
virtualenv vent --no-site-packages
Install Django, psycopg2 (postgres connector), gunicorn and any other required Django libraries.
Confirm that you have all the required libraries and you can run your code locally using manage.py runserver.
- Create a requirement.txt by using
pip freeze > requirements.txt
Make sure you have a requirements.txt at the root of your repo. Heroku uses ...
How to use pep8.py to write better Django code
By : shabda
Here is another or screencast I created for my "Getting Started with Django" series. Like this? Email us on what would you like to see.
(Watch in fullscreen.)
more info..Screencast: Django Tutorial Part 1
By : shabda
Django Screencast Tutorial 1 from Shabda Raaj on Vimeo.
I am creating screencasts for Django tutorial and other Django videos. Here is part 1. Liked this? Leave me a comment or email me and tell me what would you like me to create screencasts for.
(Watch the screencast in full screen mode.)
more info..How and why to use pyflakes to write better Python
By : shabda
Here is another of the screencasts I created for "Getting started with Python" series. Liked them? Let me know what else would you like me to create screencasts about?
more info..Getting started with South for Django DB migrations
By : akshar
South is a migration tool used with Django.There will be times when you would be adding fields to a model or changing the type of field (eg: Field was an IntegerField and you want to change it to FloatField). In such cases syncdb doesn't help and South comes to your rescue.
There were times when i tried "python manage.py migrate southapp", got some error and then tried "python manage.py migrate southapp 0001 --fake". In some cases, that worked. When it did not work, i tried something else and so on. There were confusions regarding what --fake ...
more info..A brief overview of Vagrant
By : dheeraj
Vagrant is a very good wrapper around Oracle's VirtualBox. It makes life easier for web developers and the like by providing a nice command-line interface to build, manage, provision, use virtual machines.
Why should you use Vagrant?
- You may want to install different versions of software without worrying about conflicts
- You don't want to remember which services to start/stop when you start working on a project
- The version of Operating system you use can be different from the one on the server. So, you want a way to emulate the behavior on server
- You want to develop ...
Writing jQuery plugins using Coffeescript
By : shabda
So you want to write a Jquery plugin. If you know jQuery and Coffeescript, this would be amazingly easy.
I will walk you through writing a jQuery plugin which will allow us to add alternating colors to alternating rows.
Here is the plugin in its entirety.
$ = jQuery
$.fn.zebraTable = (options) ->
defaults =
evenColor: '#ccc'
oddColor : '#eee'
options = $.extend(defaults, options)
@each ->
$("tr:even", this).css('background-color', options.evenColor)
$("tr:odd" , this).css('background-color', options.oddColor)
Lets look at what we did.
- We bound $ to jQuery object.
- We created an anonymous functions and added this to jQuery, by assigning it to
$.fn ...
Behind the Scenes: Request to Response
By : thejaswi
In the previous installment of "Behind the Scenes", we saw how the control flows from Form to File Storage. Today, we are going to see how the application reacts from request to response.
In this post, we are going to assume that we are using django's inbuilt runserver. The flow doesn't change much for other WSGI servers available.
When you invoke the runserver management command, the command line options are validated and an instance of WSGIServer is created and passed the WSGIRequestHandler, which is used to create the request object (WSGIRequest). After the request object is created and ...
more info..Using SQLite Database with Android
By : balu - Where there's a will, there's a way.
Android embeds an Open Source Database called SQLite, which supports standard relational database features like SQL syntax, transactions and prepared statements. In addition it requires only little memory at runtime (approx. 250 KB). In this post I would like to show how to work with a simple pragmatic example : Baby Names App.
Before writing the code, let me show you some of the screen-shots of Baby Names App, which requires interaction with the database.
-
When ever you launch the App, it will shows a Menu of items as below.

-
When we click on the highlighted button - "Common Names", it will ...
Haml for Django developers
By : shabda
Haml is taking the Ruby(and Rails) world by storm. Its not used as heavily by Python(and Django) developers as the Python solutions aren't as mature. I finally gave Haml a try and was pleasantly surprised how easy it was.
The most mature Python implementation of Haml is hamlpy, which converts the hamlpy code to Django templates. Others are shpaml and GHRML
Lets look at some templates from Django tutorial
{% if latest_poll_list %}
<ul>
{% for poll in latest_poll_list %}
<li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
{% endfor %}
</ul>
{% endif %}
Here is this template converted to Haml
-if ...Coffeescript for Python programmers
By : shabda
I just learnt Coffeescript, and as a Python programmer loved being able to write Javascript in a Python like language. Coffeescript is inspired by Python/Ruby and is very close to these languages. Writing Coffeescript and reading the compiled Javascript also improved my understanding of Javascript. Without much ado here is translation of some Python code to Coffeescript to get you started.
Defining a variable
Python
a = 10
Coffeescript
a = 10
Setting scope is done via whitespaces.
Python
if i == 10:
foo()
Coffeescript
if i == 10
foo()
No semicolons
List comprehensions
Python
languages = ["Python", "Coffeescript", "Java", "Ruby", "Haskell"]
languages = [lan ...How to use jsTree
By : akshar
Using jsTree
Problem Statement : To show a TreeView (hierarchical view of information) structure in a Web page.
I came across this problem when i was required to develop a web application which allows its users to store contacts and their related information(name, email, phone). The contacts would go into a folder and any folder can have any number of subfolders and any subfolder can have any number of contacts. Also, the folder structure can be nested as many levels deep as the user wants. So, how do you show the folder structure in a Web Page?
You might encounter ...
more info..Behind the Scenes: From HTML Form to Storage
By : thejaswi
In this post, we are going to see what happens behind the scenes when a file is uploaded to a django powered web application.

An HTML form with a file input (atleast one) and encoding set to multipart/form-data is submitted. The MultiPartParser parses the POST request and returns a tuple of the POST and FILES data (request.POST, request.FILES). The MultiPartParser processes the uploaded data using the File Upload Handlers objects (through the new_file, receive_data_chunk and upload_complete methods). The request.FILES values are a sequence of instances of UploadedFile.
In the django form, we pass the request.FILES ...
more info..Setting up your system to start with Django development on Ubuntu:
By : akshar
1>Being a Python web framework, Django requires Python. If you are on ubuntu, you probably have python installed on your system. If you don't have it installed, give the following command from the terminal:
sudo apt-get install python
This will install Python on your machine.
2>If you will be developing a database driven web application, you need to have a database setup on your system. I feel mysql is good and will tell you about installing mysql. It is pretty easy to install and use. You need to issue the following command from terminal:
sudo apt-get install ...Django: csrf error on non-existent urls
By : Javed
While testing out a API from another django site, I came across a seemingly common error.
403 Forbidden
CSRF verification failed. Request aborted.
Help
Reason given for failure:
No CSRF or session cookie.
Posting the data to the api endpoint returned 403 Forbidden with the standard csrf failure error page. I cross checked that the view was csrf_exempted and that CsrfViewMiddleware was not enabled. The view had some other unrelated decorators which I guessed could be the cause of the problem. According to this bug, not all decorators play nice with the csrf_exempt decorator. Even with that fixed, there was ...
Writing an e-mail application with Lamson - II
By : thejaswi
In the last post, we saw how to create the skeleton of a basic email application using Lamson. In this part, we'll see how to write a handler (in the controller) to open a ticket in Unfuddle, the project management tool we use at Agiliq.
If you look at the config/settings.py file, you'll see a handlers attribute that should be updated to match the file that contains the rules for mail routing. In this case, let us create a unfuddle.py under the app/handlers directory and update the config/settings.py:
handlers = ["app.handlers.unfuddle ...more info..
Writing an e-mail application with Lamson - I
By : thejaswi
Off late, we've been slightly busy with a 'lot' of new developments on our end and we've not been able to devote attention to the blog. In these busy periods, we tend to forget things faster. One such thing that Shabda recently pointed out that a couple of our applications (client and open source project) were raising exception. Because of the low frequency of these errors, they went unnoticed for quite a few days. We do check e-mail often but we are mostly drowned in our project management tool, Unfuddle. Shabda suggested we open a ticket for every ...
more info..- Test Driven Development in Python
- Deploying Django apps on Heroku
- Developing android applications from command line
- Deploy Django App in 5 Easy Steps
- Project Management Tools for Start-Ups
- Generating a pdf from an image using PIL and django
- Dynamically attaching SITE_ID to Django Caching
- Screencast: How to deploy Django on Heroku
- Deploying Django apps on Heroku
- How to use pep8.py to write better Django code
- rails
- django
- linkroundup
- django opinion
- opinion
- business
- API
- appengine
- python
- satire
- startup
- Uncategorized
- marketing
- personal
- rambling
- search
- interviews
- seo-interviews
- 5startupideas
- ideas
- seo
- tips
- forms
- paypal
- utilities
- datetime
- web2.0
- Amazon
- algorithms
- presentations
- products
- pinax
- satchmo
- ecommerce
- microsoft
- yahoo
- book
- tutorial
- models
- aggreagtion
- meta
- India
- apps
- about
- CSS
- Design
- wordpress
- test slug
- vim
- urls
- reviews
- javascript
- xmpp
- emacs
- Typography
- Grid Theory
- Color Theory
- iphone
- android
- titanium
- mobile applications
- CSS3
- Browser Compatibility
- mobile
- jobs
- lamson
- django setup
- files
- upload
- jsTree
- hierarchical view
- web page
- Treeview
- coffeescript
- request
- response
- South
- django south
- django migration
- --fake
- screencasts
- django caching
- SITE_ID prefix
- review
- code hosting
- comparison
- unfuddle
- fogbugz
- assembla
- github
- project management
- ticketing system
- gunicorn
- deploy
- nginx
- ubuntu
- vps
- android terminal
- terminal
- programming
- TDD
- Test Driven
- Development
- May 2012
- April 2012
- March 2012
- February 2012
- January 2012
- December 2011
- October 2011
- September 2011
- July 2011
- June 2011
- April 2011
- February 2011
- January 2011
- December 2010
- November 2010
- October 2010
- September 2010
- June 2010
- April 2010
- March 2010
- January 2010
- December 2009
- November 2009
- October 2009
- September 2009
- August 2009
- July 2009
- June 2009
- April 2009
- March 2009
- February 2009
- November 2008
- October 2008
- June 2008
- May 2008
- April 2008
Test Driven Development in Python
By : anoop
It is your choice to select any of these methodology, while developing a software. You can either develop based on a test driven process or the recover from a fiasco with tests.
Test driven development, as the name suggests, is development based on tests. Tests for core features are written prior to the implementation for the expected output, and then necessary modules are written to satisfy the needs define the
Advantages of Test Driven Development
- application is determined by using it
- written minimal amount of ...
more info..