Programming and Exciting Things

Remove all SharedPreferences

Published on 02.04.2013

Идеята е да изчистим всички "записани" в SharedPreferences нещица, за целта в Java кода добавяме следното:

SharedPreferences s = getApplicationContext().getSharedPreferences("com.bLABlABal", Context.MODE_PRIVATE);
s.edit().clear().commit();

Windows Server информация за DHCP (статистика)

Published on 22.03.2013

За един от проектите по коити работя ми трябва информация за DHCP сървъра (Windows server). Със следната командата

 netsh dhcp server show mibinfo 

можем лесно да я вземем и обработим по подходящ начин :)
примерен резултат:
C:\Users\Administrator.SERVER1>netsh dhcp server show mibinfo

MIBCounts:
        Discovers = 3235.
        Offers = 3235.
        Delayed Offers = 0.
        Requests = 4279.
        Acks = 4512.
        Naks = 154.
        Declines = 0.
        Releases = 154.
        ServerStartTime = 15 March 2013 г. 09:31:44 ч.
        Scopes = 1.
        Scopes with Delay configured= 0.
        Subnet = 192.168.137.0.
                No. of Addresses in use = 113.
                No. of free Addresses = 78.
                No. of pending offers = 0.

Android, Java: стартиране на телефонно повикване

Published on 20.03.2013

Идеята е да започнем телефонно обаждане с помощта на Java. Реализирането е мега простичко:

 
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:0886062974"));
startActivity(intent);

Като ако нямаме права да го правим естествено няма да успеем :) За да си поискаме нужните права трябва да добавим следното
<uses-permission android:name="android.permission.CALL_PHONE" />
в AndroidManifest.xml

Java foreach loop

Published on 15.03.2013

Foreach-ът се използва доста често и като цяло улеснява доста итерирането над колекции и масиви. Като цяло for-each e за предпочитане спрямо for.
пример:

	ArrayList<String> a = new ArrayList<String>();
	
	a.add("da");
	a.add("ne");
	a.add("drugo");
	
	// типичен for-each би изглеждал така
	for( String el : a) {
		System.out.println(el);
	}
	

Парсване на www.shallalist.de списъка с "забранени" сайтове

Published on 03.03.2013

За един проект имах нужда да имам различните "лоши" адреси от www.shallalist.de под формата на mysql таблици и това е набързо написан скрипт който парсва и генерира sql готов за импортиране:

import sys
import os

dir = "C:\\Users\\Yuks\\Desktop\\BL\\"

categories_table = "bl_categories"
elements_table = "bl_elements"


def ls(dir, hidden=False, relative=True):
    nodes = []
    for nm in os.listdir(dir):
        if not hidden and nm.startswith('.'):
            continue
        if not relative:
            nm = os.path.join(dir, nm)
        nodes.append(nm)
    nodes.sort()
    return nodes



def gen_items():
    dirs = ls(dir)
    for el in dirs:
        try:
            file = dir + el + "/domains"
            with open(file) as fileobject:
                for line in fileobject:
                    if line != "":
                        rr = "INSERT INTO `{el_cat}` (`cat_name`, `url`) VALUES ('{cat_name}', '{domain}');"
                        rr = rr.format(el_cat = elements_table,cat_name = el.strip(),domain = line.strip())
                        print rr
        except:
            pass
        
        
def categories():
    file = dir + "global_usage"
    r = []
    with open(file) as fileobject:
        name = ""
        desc = ""
        for line in fileobject:
            tmp = {}
            if "#" not in line:
                if "NAME:" in line:
                    name = line.replace("NAME:", "").strip()
                    
                elif "DESC EN" in line:
                    desc = line.replace("DESC EN","").strip()
                else:
                    pass
                
            
            if name != "" and desc != "":
                rr = {}
                rr['name'] = name
                rr['desc'] = desc
                name = desc = ""
                r.append( rr )
   
                 
    for el in r:
        print (el['name'],el['desc'])
        print   

def gen_cats_sql_tables():
    r = """
CREATE TABLE `{cat}` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `name` VARCHAR(500) NOT NULL,
    `desc` TEXT NOT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
    """""
    r = r.format(cat = categories_table)
    return r            

def gen_items_sql_tables():
    r = """
CREATE TABLE `{elements}` (
    `id` INT(10) NOT NULL AUTO_INCREMENT,
    `cat_name` VARCHAR(500) NOT NULL,
    `url` TEXT NOT NULL,
    PRIMARY KEY (`id`)
)
COLLATE='utf8_general_ci'
ENGINE=InnoDB;
    """""
    r = r.format(elements = elements_table)
    return r            

 
print gen_cats_sql_tables()   
print gen_items_sql_tables()   
gen_items()
Файлът със лошите адреси може да се свали от http://www.shallalist.de/Downloads/shallalist.tar.gz
ps: би трябвало да може да работи и с http://urlblacklist.com/