February 17, 2015

Using django as a microframework, like flask.

February 17, 2015 0
Today me and my friend were discussing about the flask and django. We were arguing over flask is microframework and django is not and all other topics related to pros and cons.
I'm not going to start comparing these two great frameworks, but I've created a django-microsite project for a test.
I break down the settings.py, urls.py, views.py in one file. I googled about all these and finally achieved it.
Below is sample code. filename : django-microsite.py
Requirement : Django Framework and Python

#########################################
# A Pythonic Django Microsite example
# Inspired by Flask and Bottle framework
#########################################


import sys
from django.conf import settings

settings.configure(
 DEBUG=True,
 SECRET_KEU='secretkeygoeshere',
 ROOT_URLCONF = __name__,
 MIDDLEWARE_CLASSES = (
     'django.middleware.common.CommonMiddleware',
     'django.middleware.clickjacking.XFrameOptionsMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
 ),
)

from django.conf.urls import url
from django.http import HttpResponse
from django.shortcuts import render_to_response

def index(request):
 return HttpResponse("Hey see this! It's working.")

urlpatterns = ( 
 url(r'^$', index,name="index_page"),
)

if __name__ == "__main__":
 from django.core.management import execute_from_command_line
 execute_from_command_line(sys.argv)


You will think, how to run this ? It's a django project :) use runserver command.
python django-microsite.py runserver
you can find the code on https://github.com/ashish2py/django-microsite.
for configuration, please read the following doc django-configurations

I'll explain about the codes later by updating the same blogpost.
Read more...

December 24, 2014

Things which I do after installing Crunchbang #! Linux.

December 24, 2014 0
Configure your Crunchbang #!.

5 Things that I do after installing the #! and this will also help you.
If you are a developer then obviously you require more packages to install in your system.

1. Update your #! source-list to install non-free packges.

ashish@crunchbang:~$ sudo nano /etc/apt/sources.list

## CRUNCHBANG
## Compatible with Debian Wheezy, but use at your own risk.
deb http://packages.crunchbang.org/waldorf waldorf main
deb-src http://packages.crunchbang.org/waldorf waldorf main

## DEBIAN
deb http://http.debian.net/debian wheezy main contrib non-free
deb-src http://http.debian.net/debian wheezy main contrib non-free

## DEBIAN SECURITY
deb http://security.debian.org/ wheezy/updates main
deb-src http://security.debian.org/ wheezy/updates main
Now update your #! crunchbang and install 32-bit library packages which is gonna help you with the installation of skype, teamviewer, android development kit etc.

sudo dpkg --add-architecture i386  
apt-get update
sudo apt-get install ia32-libs
#! comes with linux a media player, let's install a Clementine(music player). I prefer this because of it's simplicity.

sudo apt-get install clementine

2. Change your login screen wallpaper. I don't prefer to use default login wallpaer which comes with the #!. So I change it using the below method.

ashish@crunchbang:cd /usr/share/slim/themes
ashish@crunchbang:/usr/share/slim/themes$ sudo thunar
It will open file browser where all the themes are located. Open any one of them and you will find the "background.png", this image file is used as login-background.
I'm going to use "default" theme as my login-theme.
1. Replace "default/background.png" file with your wallpaper images.
2. Rename "default/background.png" to "default/background_backup.png.".
3. Place your desired wallpaper in "default" directory and change your wallpaper name as "background.png".
4. Cross check, make sure you are doing all these stuff inside "/usr/share/slim/themes/default/" directory.
5. If you know little bit photo editing tool "gimp", then you can modify "panel.png" image(your login panel).
6. Activate the theme and logout to check the effect.
Activate : super[windows btn] + space[btn] >>> System >>> User Login Settings >>> select Theme as "default".
3. Beautify your conky.
super[windows btn] + space[btn] >>> Settings >>> Conky >>> edit .conkyrc
Replace your conky settings with the below text.

# conky configuration
#
# The list of variables has been removed from this file in favour
# of keeping the documentation more maintainable.
# Check http://conky.sf.net for an up-to-date-list.
#
# For ideas about how to modify conky, please see:
# http://crunchbanglinux.org/forums/topic/59/my-conky-config/
#
# For help with conky, please see:
# http://crunchbanglinux.org/forums/topic/2047/conky-help/
#
# Enjoy! 
##############################################
# Settings
##############################################
background yes
use_xft yes
xftfont HandelGotD:size=8
xftalpha 0.5
update_interval 4.0
total_run_times 0
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
double_buffer yes
minimum_size 200 5
maximum_width 220
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders yes
default_color grey
default_shade_color red
default_outline_color green
alignment top_right
gap_x 5
gap_y 45
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale no

TEXT
CPU $alignr ${cpu cpu0}%
${cpugraph cpu0}

MEM $alignc $mem / $memmax $alignr $memperc%
$membar

swap $alignc $swap / $swapmax $alignr $swapperc%
${swapbar}

/ $alignc ${fs_used /} / ${fs_size /} $alignr ${fs_free_perc /}%
${fs_bar /}

global $alignc ${fs_used /home/karlos/global} / ${fs_size /home/karlos/global} $alignr ${fs_free_perc /home/karlos/global}%
${fs_bar /home/karlos/global}

$processes processes ($running_processes running)

NAME $alignr PIDCPU
${top name 1} $alignr ${top pid 1} ${top cpu 1}
${top name 2} $alignr ${top pid 2} ${top cpu 2}
${top name 3} $alignr ${top pid 3} ${top cpu 3}
${top name 4} $alignr ${top pid 4} ${top cpu 4}
${top name 5} $alignr ${top pid 5} ${top cpu 5}
${top name 6} $alignr ${top pid 6} ${top cpu 6}
${top name 7} $alignr ${top pid 7} ${top cpu 7}
${top name 8} $alignr ${top pid 8} ${top cpu 8}
${top name 9} $alignr ${top pid 8} ${top cpu 9}

Inbound $alignr ${downspeed eth0} kb/s
${downspeedgraph eth0}
Outbound $alignr ${upspeed eth0} kb/s
${upspeedgraph eth0}

Wifi Inbound $alignr ${downspeed wlan0} kb/s
${downspeedgraph wlan0}
Wifi Outbound $alignr ${upspeed wlan0} kb/s
${upspeedgraph wlan0}


Alt+F2$alignr Run Dialog
Alt+F3$alignr Alt Menu
Super+space$alignr Main Menu
Super+t$alignr Terminal
Super+f$alignr File Manager
Super+e$alignr Editor
Super+m$alignr Media Player
Super+w$alignr Web Browser
Super+g$alignr Graphics Editor
Super+l$alignr Lock Screen
Super+v$alignr Volume Control
Super+x$alignr Logout
PrtSc$alignr Screenshot

There are more yet to come.... Thanks for reading.
Read more...

November 20, 2014

Signature Spider at National Park.

November 20, 2014 0
I found this spider at Borivali National Park. When I clicked the pic I never knew that this is the signature spider, on of my friend told me about this so I googled it and here is the information. For me it's a WEB DEVELOPER who don't forget to mention copyrights on his web-site. :) These spiders make certain zig-zag pattern on web therefore also known as writer or signature spider.This spider weaves four zig zag stripes in its web, and holds its legs together in pairs. It holds its legs in pairs to disguise itself as a four legged creature; it does this to not appear to look like a spider. These spiders have many names around the world, they are known as an Argiope, a Black and Yellow Garden Spider or a Writing Spider in North America. It is known as Wasp Spider in Germany and the rest of Europe and the St Andrews Cross spider in Austrailia. They know it as KOGANE-GUMO in Japan and east asia. There are 75 different species of this spider but they all look the same. Their colours vary in between their stripes but they all keep the black and yellow stripes, They distribute also Sri Lanka, Maldives,India, Pakistan.Their habitats are Moist Deciduous forests in the sunny parts.
Read more...

June 26, 2014

Alternative of google-map API, making request more than 2500.

June 26, 2014 0
I was looking for a free api which can help me to get latitude/longitude on the basis of Postcode.

I tested pygeocoder and other api librearies which can help me, but none of them allowed me to query more than 25,000/day cause everyone is belongs to Google.

So I did an old school coding by using Mechanize and BeautifulSoup.
I used http://services.gisgraphy.com/public/geocoding.html. It's a free, I think they are providing 30,000 requests for demo user, I didn't tested 30,000 requests cause I've 29,000 records to generate lat/long. I don't want to waste my hits for a day. I'll test and update here.

Code is not clean, cause it's a test.

Keep Coding .


import mechanize
from bs4 import BeautifulSoup 

for x in xrange(30000):

    print '----------------- searching ---------------'
    br = mechanize.Browser()
    br.open("http://services.gisgraphy.com/public/geocoding.html")
    
    add = '81100'
    con='Malaysia'
    
    br.select_form(nr=0)
    
    br.form["address"] = add
    for i in range(0, len(br.find_control(type="checkbox").items)):
        br.find_control(type="checkbox").items[i].selected =True
    br.form["country"]=["MY"]
    
    print 'hitting --- ',x
    response = br.submit()
    soup = BeautifulSoup(response)
    
    
    links = soup.find_all('li')
    print '--------- getting list ----------'
    
    li = soup.find('div', {'class': 'summary'})
    
    print '---------- looking for latitude and longitude -------------'
    list= []
    children = li.findChildren()
    for child in children:
        list.append(str(child))

    print ' found latitude and longitude at point -->  ',x
    
    latitude = list[0]
    longitude = list[1]
    
    lat = latitude[9+5:len(latitude)-5].split()
    lng = longitude[9+6:len(longitude)-5].split()
    
    print str(lat).replace(',','.')
    print str(lng).replace(',','.')

#for f in br.forms():
#    print f



Source Code : https://bitbucket.org/ashish2py/quickhack/



Read more...

December 03, 2013

Changing wallpapers in Crunchbang #! Linux .

December 03, 2013 0
I'm using crunchbang #! when it was #!-9 around in 2010 , now using #!-11. Between these period I tested out many linux distros but never feel that any linux is stable as #! is now, because it drops Ubuntu and using Debian-stable :) .
As per the heading of this post to change wallpaper in Crunchbang we need to copy paste the wallpapers( images ) into following directory./home/[username]/images/wallpapers/shared/
But "shared" folder is locked, so we need to copy-paste the images as a "sudo" user. Please Follow the steps.
1 Press "alt+f2" then enter "sudo thunar" and enter your password.
2 Now copy your wallpaper(images) and paste it into "/home/[username]/images/wallpapers/shared/" directory.
3 "Right-click" on the desktop and navigate to " settings > Choose Wallpaper ".
4 Now you can easily see the images and set the wallpaper by selecting images and clicking on "apply" button.

Here is my wallpaper link

Wait for the next crunchbang post. Keep Coding :)

Read more...

August 07, 2013

Network Manager not running on Ubuntu12.04 at boot-time

August 07, 2013 0
I was configuring PPPOE connection manually by command line using "sudo pppoeconf", and by mistake I changed some settings. So after I restarted my laptop, I was getting an boot time error "waiting for network configuration" and after some time "waiting upto 60 seconds more for network configuration.."
Also there are possibilities to get this error while upgrading the system.
I solved these problem by using 2 methods.
After logged into Ubuntu.
Open terminal, type
First : not a permanent solution
  sudo /etc/init.d/network-manager start
Second : permanent solution
  sudo gedit /etc/network/interfaces
And remove the lines after
  auto eth0
  iface eth0 inet loopback
Make sure to save the file before closing it.Reboot the system
Read more...

Follow Us @soratemplates