Django Serving Static Files without a Web Server
UPDATE: Steps in this post isn’t correct, check the Django Themes post for better solution.
When deploying Django site it is always recommended to serve static files (e.g. js, css, img, static, media) using a normal web server instead of relying on Django built development server or Gunicorn.
But sometimes you want to test something quick and you don’t want to bother with installing or configuring a web server, the solution is to use the built-in django.views.static.serve view to serve the static files from Django it self:
rayed.com IPv6 Ready!
This website rayed.com is now IPv6 ready:
$ dig rayed.com AAAA
;; QUESTION SECTION:
;rayed.com. IN AAAA
;; ANSWER SECTION:
rayed.com. 21600 IN AAAA 2a01:7e00::f03c:91ff:fe70:5c6a
You can test IPv6 readiness for any website from IPv6 Test service.
Change Default Editor in Ubuntu
Just type:
sudo update-alternatives --config editor
Managing Python Environments with “virtualenvwrapper”
What is virtualenvwrapper
virtualenvwrapper is a tool that (as the name suggest) wrap “virtualenv” program, virtualenv solve the following problem:
Fixing “cannot change locale (UTF-8)” error
I am trying new way to fix the annoying “cannot change locale (UTF-8)” error, this error usually show when you login from your OSX to a Linux machine:
Update Linux without a password
So you managed to login to your Ubuntu Linux machine with a password by using the magic of ssh keys, and you installed “apticron” to email you whenever their is a system update, you login to the system and issue the update command “sudo aptitude update” and “sudo” asks you about your password! not only it is annoying, it also can’t be automated, imaging you manage 10 servers and you have to type the password to update each machine! or you want to automate using some remote execution application like Fabric or Salt (I am Python fan, so I won’t mention Chef or Puppet here).
Best GIT cheat sheet
Click on each region to find out how to change its state: http://ndpsoftware.com/git-cheatsheet.html
الحذاء وطبق الكريستال
قصة للأطفال، تحكي عن حذاء جديد يتسخ من اول استخدام مما يجعله عرضة للسخرية من قبل صحن الكريستال.
بعد فترة يمل الطبق من السخرية ويبدأ الحديث مع الحذاء عن كيفية تعرضه للاتساخ، ويبدأ الحذاء بالحديث عن مغامراته اليومية خارج المنزل، وكيف انه يفيد صاحبه كل يوم.
بعد ما تشبعت مخيلة الطبق من مغامرات الحذاء اليومية بدأ يحس بمدى تفاهة حياته، وحاجته لان يكون مفيداً أكثر من الاستخدام النادر عند قدوم الضيوف.
My First Makefile
The following is a sample Makefile for simple project, here I am building a simple “Bloom Filter” library, and “main” program to use it.
The library will have the following files:
- hash.h and hash.c
- bloom.h and bloom.c
and we should get “libbloom.a” out of it.
The “main” program will use:
- main.c
- bloom.h
- libbloom.a
and we should get “main” executable. So our make file should look like this:
$ cat Makefile
CFLAGS=-Wall -O3
LDFLAGS= -L.
LDLIBS=-lbloom
CFLAGS += `pkg-config --cflags libpcre`
LDFLAGS += `pkg-config --libs libpcre`
OBJS=main.o other.o libbloom.a
BLOOM_OBJS=hash.o bloom.o
all: main libbloom.a
main: $(OBJS)
$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
libbloom.a: $(BLOOM_OBJS)
ar rcs $@ $^
.PHONY: clean
clean:
-rm main libbloom.a *.o
Makefile use TAB not spaces for indentation.
Minimal Django Project: Part 2 … Flat Pages
In this step we will setup the Flatpage App, Flatpage allows you to create simple static pages from the Admin interface:
**mycms$ mkdir templates**
**mycms$ vi mycms/settings.py**
:
MIDDLEWARE_CLASSES = (
:
# Add Flatpage Middleware
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
)
:
TEMPLATE_DIRS = (
:
'/Users/rayed/python/mycms/templates',
)
:
INSTALLED_APPS = (
:
# Add Flat Pages App
'django.contrib.flatpages',
:
)
:
**mycms$ vi mycms/urls.py**
:
# Your other patterns here
# SHOULD BE THE LAST RULE
urlpatterns += patterns('django.contrib.flatpages.views',
(r'^(?P<url>.*)$', 'flatpage'),
)
**mycms$ ./manage.py syncdb**
**mycms$ mkdir -p templates/flatpages**
**mycms$ vi templates/flatpages/default.html**
<!DOCTYPE html>
<html>
<head>
<title>{{ flatpage.title }}</title>
</head>
<body>
<h1>{{ flatpage.title }}</h1>
{{ flatpage.content }}
</body>
</html>
Now from the admin interface add a new page from “Flat pages” app, and you can view directly from the normal site.
