вторник, 30 декабря 2008 г.

Серверок










Мамка iwill dk8s2, 1 Гб PC2100 Reg, Opteron 242(второй извлечен за ненужностью), WD Caviar 80G, стоит SATA контроллер PCI.

среда, 2 апреля 2008 г.

pyRSS2LJ


#!/usr/local/bin/python
# -*- coding: utf-8 -*-

import urllib
import sys
from xml.dom import minidom
import time
import re
import xmlrpclib

class SERVER_REQ():

def get_rss_feed(self):
try:
stream = urllib.urlopen(self.rss_feed)
self.rss_string = stream.read()
except:
print "Can't retrive rss feed"
sys.exit(1)

def rpc_send(self, array_nodes=None):
array_nodes.reverse()
for node in array_nodes:
if int(time.mktime(time.localtime())) - int(node['date']) <= (self.latency * 60):
if self.lj_username != '' and self.lj_password != '':
title = node['title']
description = "%s\n<br>\n<br>crosspost from: <a href=\"%s\" title=\"original post\">%s</a>" % (node['description'], node['link'], node['link'])
date = time.gmtime(node['date'] - time.altzone)

data = {
'username' : self.lj_username,
'password' : self.lj_password,
'subject' : title,
'event' : description,
'year' : date[0],
'mon' : date[1],
'day' : date[2],
'hour' : date[3],
'min' : date[4],
}

try:
lj_rpc_server = xmlrpclib.ServerProxy("http://www.livejournal.com/interface/xmlrpc")
lj_response = lj_rpc_server.LJ.XMLRPC.postevent(data)
except xmlrpclib.Error, error:
print "Can't add post: %s" % error

class XML_PARSER():

def get_xml_data(self, XML_STRING=None):
try:
self.rss_xml = minidom.parseString(XML_STRING)
except:
print "Can't parse rss feed"
sys.exit(1)

def parse_xml_data(self):
xml_nodes = self.rss_xml.getElementsByTagName("item")

self.array_nodes = []

for node in xml_nodes:
data = {"title": '', "description": '', "date": '', "link": ''}
for cnode in node.childNodes:
if cnode.localName == "title":
data['title'] = cnode.childNodes[0].nodeValue
if cnode.localName == "description":
data['description'] = cnode.childNodes[0].nodeValue
if cnode.localName == "link":
data['link'] = cnode.childNodes[0].nodeValue
if cnode.localName == "pubDate":
regexp = re.compile('\+([\d]+)$')
timezone = regexp.search(cnode.childNodes[0].nodeValue).group()
timestamp = regexp.sub('', cnode.childNodes[0].nodeValue)
datetime = time.strptime(timestamp, "%a, %d %b %Y %H:%M:%S ")

timediff = (int(timezone) // 100 * 60 + int(timezone) % 100) * 60
data['date'] = int(time.mktime(datetime[:-1] + (0, ))) - time.timezone - timediff

self.array_nodes.append(data)


server_req = SERVER_REQ()
xml_parser = XML_PARSER()

### Configuration

server_req.rss_feed = 'http://www.3dnews.ru/news/rss/?1' # RSS Fead

server_req.lj_username = '1' # Livejournal nick
server_req.lj_password = '1' # Livejournal password

server_req.li_username = '2' # Liveinternet nick
server_req.li_password = '2' # Liveinternet password

server_req.latency = 15 # Latency(in minutes)

### /Configuration

server_req.get_rss_feed()

xml_parser.get_xml_data(server_req.rss_string)
xml_parser.parse_xml_data()
server_req.rpc_send(xml_parser.array_nodes)

суббота, 2 февраля 2008 г.

HP hw6515d. Удаление TomTom.

Понадобится:

1. Прошивка
2. В Google находим модифицированный флешер без проверки CRC.

Модификация:

Берем оригинальный EXTROM.nbf, отрезаем первые 2600 байт и получаем FAT диск с кучей CAB файлов. Далее монтируем его(берем какой-нить редактор образов дисков для Windows) и удаляем оттуда TomTom, затем просто копируем отрезанный заголовок и образ в один файл и кладем в директорию с модифицированным флешером. Запускаем флешер и получаем hw6515 без TomTom.

Angstrom Linux запускается, но работает не стабильно, поэтому позже выложу root файловую систему, ядро и конфиг харета, когда все будет стабильно работать.