The Unfuddle Tutorial

By : Shabda Raaj

Unfuddle is the tool we use for our non open source development. I have found it to be the best tool for Software Project management, in particular I think it is superior to Basecamp and Assembla.

When you start using Unfuddle, the number of things can seem overwhelming. This tutorial should help you Unfuddle the Unfuddle.


The Unfuddle Glossary

Unfuddle has,

  • Projects: Top level Things which need to be done.
  • User: People who are working on a given project.
  • Ticket: What a User works on.
  • Milestone: A timed list of tickets which should be completed before this given time ...

more info..
Topics : tips tutorial
shabda
Comments
Reactions

Experiments in URL design.

By : Shabda Raaj

Keeping url structure sane plays a major role in user experience, by making it easy to go to specific pages and navigate the site. Some real world urls and how they could have been better follow.


The Bad Urls:

  • http://news.ycombinator.com/item?id=1967820
  • http://area51.phpbb.com/phpBB/viewforum.php?f=99
  • http://msdn.microsoft.com/en-us/aa336522.aspx

The Good

  • Easy to develop for. The id referred is the Primary key

The Bad

  • Hard for users to select the correct page from a url bar dropdown
  • Bad for SEO

Neutral:

  • Easy to guess next and previous ...

more info..
Topics : opinion web2.0 apps urls

Link roundup for week ending 26/11/2010

By : Thejaswi Puthraya

  • In Washington Times' article on app-centric django development, they discuss the pros and cons of breaking your project into multiple apps.
  • Luke Plant writes how class based views in django views makes the code feel a bit like Ravioli (too many small classes with difficulty locating and identifying their functionality).
  • While we are at Ravioli, here is an interesting presentation about "How to stop writing Spaghetti code" in node.js.
  • Eric Holscher has a post on how to use Haystack search to index non-database content.
  • Facebook has written a blog post on "The underlying technology of Messages". Most of the ...

more info..
Topics : linkroundup
Javed
Comments
Reactions

Link Roundup for week ending 19/11/2010

By : Javed Khan

more info..
Topics : linkroundup
shabda
Comments
Reactions

Unfuddle Summary Script

By : Shabda Raaj

Unfuddle is our preferred tool for private repos, project management and ticketing. We recently wrote a slick script to summarize our Unfuddle status. So here is it.


import getpass
import simplejson
import sys
import urllib2

from datetime import datetime, date

try:
    from settings import *
except ImportError:
    ACCOUNT_DETAILS = {
        'account': '',
        'username': '', 
        'password': '',
    }
    SEND_MAIL = False

if not ACCOUNT_DETAILS['account']:
    ACCOUNT_DETAILS['account'] = raw_input('Enter unfuddle account name: ')

if not ACCOUNT_DETAILS['username']:
    ACCOUNT_DETAILS['username'] = raw_input('Username: ')

if not ACCOUNT_DETAILS['password']:
    ACCOUNT_DETAILS['password'] = getpass.getpass()

class Unfuddle(object):
    def __init__(self):
        self.base_url = 'https://%s.unfuddle.com' % (ACCOUNT_DETAILS['account'])
        self.api_base_path = '/api/v1/'

def get_data(self ...

more info..
thejaswi
Comments
Reactions

Link Roundup for week ending 12/11/2010

By : Thejaswi Puthraya

  • jQuery 1.4.4 and jQuery mobile alpha 2 were released this week. Progress on the jQuery mobile development seems to be very brisk at the moment.
  • Eric Holscher wrote a series of posts on building a django app server with Chef.
  • Do you generally have a tough time deciphering captchas? TextCaptcha is a service that uses text based questions to separate the humans from machines. It's got an API too!
  • Django Dose community catchup Episode #30 is out. Check it out today.
  • All references to the project name from the imports in the django tutorial have been removed ...

more info..
Topics : linkroundup

Github in github

By : Shabda Raaj

We have a (semi) new app. This takes your Github account and creates Github pages from it. It displays a summary of your account, and of all your apps. Get it at github


Readme

Takes a github account, creates html pages for it, and puts it on Github pages.

How it proceeds.

  1. Get data for specified account from Github API
  2. Uses Jinja2 to write ReST docs.
  3. Build html from the ReST docs.
  4. Pushes the html to a Git repo from which you build github pages.

tl;dr: Yo dawg, I heard you like github, so I put a github in ...

more info..
shabda
Comments
Reactions

I am so starving: Web app in python frameworks.

By : Shabda Raaj

I have written the same web app in various web frameworks. Get it from Github.

Copied from the Readme.

This is a set of apps which creates the same application in various Python web micro-frameworks.

The app(s) talks to Facebook, and finds out recent people who have posted a public status with the text "so starving".

This idea came from reading Onion.

We have the same app in these frameworks.

Microframeworks:

Full stack frameworks:


If the framework included template engine and caching, that was used directly. Otherwise ...

more info..
Topics : python
thejaswi
Comments
Reactions

Link Roundup for week ending 5/11/2011

By : Thejaswi Puthraya

  • Jacob Kaplan-Moss has a beautiful article on concrete inheritance vs abstract models for inheritance. Must read!
  • Charles Leifer, the current maintainer of Django Snippets has an exhaustive blog post on setting up search using the Solr backend for Haystack.
  • Chris Heilmann has an interesting video on "Reasons to be Cheerful: being a web developer is awesome!"
  • Andy McKay defends the plain old non-reusable Django apps as they are easy to write, rapid to develop and have very little boilerplate code.
  • Piotr Malinski has a blog post on how to use web based image editors within django apps.
  • Derek Gathright shows ...

more info..
Topics : linkroundup
Javed
Comments
Reactions

Seven reasons why you should switch to Vim

By : Javed Khan

So you want a better IDE for developing django, huh? Why not give good old vim a try?

Use pathogen to maintain your vim plugins (and sanity). Using this, you can clone the repositories listed here to .vim/bundle/ and start using them right away.

Also, consider adding your .vimrc and .vim to a repository. Include .vimrc inside .vim and symlink .vim/.vimrc to ~/.vimrc to version control your .vimrc.

My vim files can be found here. Also, here's an imgur album demonstrating these plugins in action.

1. Syntax highlighting for django templates

Starting from vim 7.1, syntax ...

more info..
Topics : django vim
shabda
Comments
Reactions

Getting trending Github projects via YQL

By : Shabda Raaj

Github.com/explore allows you to see the trending Github topics. They use repopular.com for this, which use twitter retweets to find out the popular Github repos.

Since neither Repopular, nor Github have a RSS of these trending repos, I wanted to get a list of these. Here is how easy it is with YQL.

How we do it

  • Go to YQL console. Give the SQL query to get the data from the webpage.

  • where url="repopular.com" and css="div.pad a" is the magic which select the webpage, and also what DOM elemenst we are interested in ...

more info..
Topics : django API
thejaswi
Comments
Reactions

Link Roundup for week ending 22/10/2010

By : Thejaswi Puthraya

more info..
Topics : linkroundup
shabda
Comments
Reactions

Essential web-apps to run a software business.

By : Shabda Raaj

We work on a variety of products and with people. We work in a highly distributed environment, with all of our clients working remotely from us. And while we work out of the same office, we are frequently working from other places as well. Here are the tools which help us stay productive, sane and working. :)

For our open source projects we use Github.
For our client and non OS projects, we use Unfuddle.

For our client code we need both SVN and Git, and we need tickets which can be assigned to people. Both ...

more info..
Topics : business
shabda
Comments
Reactions

Django is not flexible

By : Shabda Raaj

Django is not flexible at all because you can not do simple things like.

more info..
thejaswi
Comments
Reactions

Link Roundup for week ending 15/10/2010

By : Thejaswi Puthraya

This is the first in a series of posts where we share links aggregated from popular sources, tools we use, projects we work on, almost everything related to web development and more....

  • Django's got HMAC signing: These set of changes prevent timing-based attacks and are fully backwards compatible unless you've a short SECRET_KEY.
  • Django's got more committers and they are already hard at work!
  • The django tests have been upgraded to use the unittest2 module. Phew! Lots of work has gone in the past couple of weeks. It just means one thing, the 1.3 alpha window ...

more info..
Topics : linkroundup
Javed
Comments
Reactions

Testing webhooks in development platforms

By : Javed Khan

Webhooks were popularized by PayPal and have become commonplace now a days. A typical webhook service fires a POST to a URL of your choice whenever something interesting happens. You handle this request and respond accordingly.

But you need to test webhooks regularly during development and it is a bit of a problem if your development server is inaccessible from the rest of the Internet. I have tried to solve this using ssh and nginx.

For this method to work you need:

  • Development server (which can hopefully process the webhook at /webhook) lets call it (D)
  • SSH accessible server (S ...

more info..
Javed
Comments
Reactions

Ubuntu as a django development platform

By : Javed Khan

Introduction:

Hi, I am Javed Khan, also known as tuxcanfly elsewhere on the internets. I have recently joined agiliq and am thrilled to be a part of the team.

This blog post covers the steps I took to convert a fresh ubuntu install to a full fledged django development platform.

Databases:

Mysql sudo apt-get install mysql-server mysql-client python-mysqldb Postgresql sudo apt-get install postgresql Sqlite sudo apt-get install sqlite python-sqlite

Version Control:

Git
need help setting up git with github? sudo apt-get install git-core git-gui git-svn Svn sudo apt-get install subversion rapidsvn meld meld is a diff/merge tool that can ...

more info..
shabda
Comments
Reactions

Moving home

By : Shabda Raaj

Tl;dr version:

We are moving our site from Uswaretech.com to Agiliq.com. Please update your book marks and the like.

Longer version:

We have moved. Our new, cool, and amazing site is Agiliq.com. Built with Django, pixie dust and pink unicorns, its is sure to amaze you. Please update your bookmarks.

Gory details:

If you are client of ours, the Unfuddle and billing details would be changing soon. (You should also have received an email from ...

more info..
Topics : meta about
lakshman
Comments
Reactions

Great Indian Developer Summit 2010: A Review

By : lakshman

GIDS_logo Great Indian Developer Summit, is the India's largest developer conference, held at Bangalore, India; in its third edition this year. The conference concluded last Friday. The summit had about a 1000 visitors on the first day and a comparable number on the other days. The conference basically caters to the enterprises, and hence their focus on the .Net, Java and Flash. There were many star speakers. I'm speaking I gave a talk on django, introducing it and then explaining the standard community conventions to make good reusable applications. Django, being a social software, developed by a community, it is important to ...

more info..
Topics : Uncategorized
saikiran
Comments
Reactions

CSS Frameworks

By : saikiran - Designholik

A framework is a basic conceptual structure which you can use as a “scratch” for your web-projects. For instance, instead of defining global reset, consistent baseline, typographic rules or basic styles for forms over and over again — every time you work on a new project — you can prepare a default-style once and reuse it in all your future projects. This is what you call a CSS Framework. Major Advantages of CSS Frameworks

  • Increase productivity.
  • Cross Bowser Compatibility
  • Clean, Well structured easy to maintain code base.
Disadvantages of CSS Frameworks
  • Takes time to understand the CSS framework.
  • You ...

more info..
Topics : CSS Design
shabda
Comments
Reactions

Rails and Django commands : comparison and conversion

By : Shabda Raaj

The most commonly used Rails commands and their Django equivalents

Rails | Django

rails console | manage.py shell
rails server | manage.py runserver
rake | None
rails generate | None
rails dbconsole | manage.py dbshell
rails app_name | django-admin.py startproject/manage.py startapp
rake db:create | manage.py syncdb

The salient points to note are,

  1. Django has all commands via manage.py, Rails has it broken into rails and rake.
  2. Overall there are more Rails+Rake commands available than Django commands
  3. There is no one to one mapping between Rails and Django commands. Eg. There are no equivalent to rake doc:* or rake ...

more info..
shabda
Comments
Reactions

The Rails and Django models layer Rosseta stone

By : Shabda Raaj

Rails Active records and Django models are more similar than they are different. This is a quick guide to converting between Rails 3 and Django 1.2, and is available on github at http://github.com/uswaretech/Acts-as-Django

Defining models

Both Django and Rails keep the canonical database representation in ruby or python.

#Django

class Post(models.Model):
    name = models.CharField(max_length = 100, )
    slug = models.CharField(max_length = 100, )
    body = models.TextField()

class Comments(models.Model):
    post = models.ForeignKey(Post)
    username = models.CharField(max_length = 100, )
    comment = models.TextField()

#Rails

#db/schema.rb
ActiveRecord::Schema.define(:version => 20100319195739) do

  create_table "comments", :force ...

more info..
shabda
Comments
Reactions

Doing things with Django models - aka - Django models tutorial

By : Shabda Raaj

Django abstracts most of the actions you would be doing with the Database. What it doesn't abstracts, and doesn't try to abstract is the Database modelling part. This is a quick tutorial describing to how model your data in Django models.py, and how to access and modify them.

Consider a hypothetical HR department, which wants you to build an application to track and manage their processes. They have employees who work for a department, contractors who work for multiple department. Let's see how you you would do that in Django.

from django.db import models

class ...

more info..
shabda
Comments
Reactions

Wordpress and Django: best buddies

By : Shabda Raaj

Summary: How to integrate a non Django database system in your Django code, using Wordpress as example. The completed code is available at github or you can see some screnshots


Though there are quite a few good Django blog applications, our blog is based on Wordpress. A number of plugin's make moving to a Django based app a bad decision for us, and not in the spirit of "best tools for the job".

We moved the other way, and decided to use Django to admin the Wordpress database. The completed code is available on Github

It is not too ...

more info..
© Agiliq, 2009-2012