Category Archives: PostgreSQL

Ultimate++ v7441 Dev / 5485 ダウンロード

ダウンロード:
提供元サイトからダウンロード

概要:

U++ is a C++ cross-platform rapid application development framework focused on programmers productivity. It includes a set of libraries (GUI, SQL, etc..), and an integrated development environment.
Rapid development is achieved by the smart and aggressive use of C++ rather than through fancy code generators. In this respect, U++ competes with popular scripting languages while preserving C/C++ runtime characteristics.

python マルチスレッドファイルをダウンロードコードメモ

注意内容:

1.ファイルサイズ: response headerから取得。例“Content-Length:911”はサイズ911バイト
2.タスク分割:request headerに“Range: bytes=300-400”を追加,rangeは「0,size-1」
3.ダウンロードファイルの集約:各スレッドでダウンロードしたファイルは一時ファイルとして保存。
すべてのスレッドが完了したら、一時ファイルを順番に最終一つのファイルに書き込む

サンプルコード
#!/usr/bin/python
# -*- coding: utf-8 -*-
# filename: paxel.py
# FROM: http://arkgame.com/full/
# Jay modified it a little and save for further potential usage.

”’It is a multi-thread downloading tool

It was developed following axel.
Author: volans
E-mail: volansw [at] gmail.com
”’

import sys
import os
import time
import urllib
from threading import Thread

# in case you want to use http_proxy
local_proxies = {‘http’: ‘http://XXX.XXX.XXX.XXX:8080′}
class AxelPython(Thread, urllib.FancyURLopener):
”’Multi-thread downloading class.

run() is a vitural method of Thread.
”’
def __init__(self, threadname, url, filename, ranges=0, proxies={}):
Thread.__init__(self, name=threadname)
urllib.FancyURLopener.__init__(self, proxies)
self.name = threadname
self.url = url
self.filename = filename
self.ranges = ranges
self.downloaded = 0

def run(self):
”’vertual function in Thread”’
try:
self.downloaded = os.path.getsize(self.filename)
except OSError:
#print ‘never downloaded’
self.downloaded = 0

# rebuild start poind
self.startpoint = self.ranges[0] + self.downloaded

# This part is completed
if self.startpoint >= self.ranges[1]:
print ‘Part %s has been downloaded over.’ % self.filename
return

self.oneTimeSize = 16384 # 16kByte/time
print ‘task %s will download from %d to %d’ % (self.name, self.startpoint, self.ranges[1])

self.addheader(“Range”, “bytes=%d-%d” % (self.startpoint, self.ranges[1]))
self.urlhandle = self.open(self.url)

data = self.urlhandle.read(self.oneTimeSize)
while data:
filehandle = open(self.filename, ‘ab+’)
filehandle.write(data)
filehandle.close()

self.downloaded += len(data)
#print “%s” % (self.name)
#progress = u’\r…’

data = self.urlhandle.read(self.oneTimeSize)
def GetUrlFileSize(url, proxies={}):
urlHandler = urllib.urlopen(url, proxies=proxies)
headers = urlHandler.info().headers
length = 0
for header in headers:
if header.find(‘Length’) != -1:
length = header.split(‘:’)[-1].strip()
length = int(length)
return length
def SpliteBlocks(totalsize, blocknumber):
blocksize = totalsize / blocknumber
ranges = []
for i in range(0, blocknumber – 1):
ranges.append((i * blocksize, i * blocksize + blocksize – 1))
ranges.append((blocksize * (blocknumber – 1), totalsize – 1))

return ranges
def islive(tasks):
for task in tasks:
if task.isAlive():
return True
return False
def paxel(url, output, blocks=6, proxies=local_proxies):
”’ paxel
”’
size = GetUrlFileSize(url, proxies)
ranges = SpliteBlocks(size, blocks)

threadname = [“thread_%d” % i for i in range(0, blocks)]
filename = [“tmpfile_%d” % i for i in range(0, blocks)]

tasks = []
for i in range(0, blocks):
task = AxelPython(threadname[i], url, filename[i], ranges[i])
task.setDaemon(True)
task.start()
tasks.append(task)

time.sleep(2)
while islive(tasks):
downloaded = sum([task.downloaded for task in tasks])
process = downloaded / float(size) * 100
show = u’\rFilesize:%d Downloaded:%d Completed:%.2f%%’ % (size, downloaded, process)
sys.stdout.write(show)
sys.stdout.flush()
time.sleep(0.5)

filehandle = open(output, ‘wb+’)
for i in filename:
f = open(i, ‘rb’)
filehandle.write(f.read())
f.close()
try:
os.remove(i)
pass
except:
pass

filehandle.close()

if __name__ == ‘__main__’:
url = ‘http://XXX.com/apple_V3.1.1.dmg’
output = ‘download.file’
paxel(url, output, blocks=4, proxies={})

Pythonで複数のサーバーのプロセスを確認するスクリプト

checklist.py

#coding=utf-8
import sys

sys.path.append(‘/tmp/local/lib/python2.6/site-packages/PyYAML-3.10-py2.6-linux-x86_64.egg’) #依赖yaml
sys.path.append(‘/tmp/local/lib/python2.6/site-packages/pexpect-2.4-py2.6.egg’) #依赖pexpect
import yaml
import pexpect
dataDict = yaml.load(open(‘/tmp/config.yaml’)) #yamlをインポート
def myprint(color,mes): #端末カラー印刷関数
”’ANSIカラー端末ディスクプレイ制御コード”’
d = dict(r=31, g=32, gb=36, y=33, b=34, p=35, o=37)
color = “\x1B[%d;%dm” % (1, d[color])
print “%s%s\x1B[0m” % (color, mes)
def main():
list = [‘g’, ‘b’, ‘y’, ‘gb’, ‘p’]
light = 0
for k in dataDict:
if k.startswith(‘bj-‘):
color = list[light%5]
SERVER = dataDict[k]

child = pexpect.spawn(‘ssh -F /tmp/sshconfig dongwm@{0}’.format(SERVER[‘host’]))

f = child.expect([‘Password: ‘, ‘password: ‘, ‘continue connecting (yes/no)?’])
if f == 2:

child.sendline(‘yes’)
child.expect(‘password:’)
child.sendline(‘{0}’.format(mypasswd(SERVER[‘host’])))
if f == 1:
child.sendline(‘{0}’.format(mypasswd(SERVER[‘host’])))
child.expect(‘~’)
for service in SERVER[‘service’]:
flag = 0
#プロセス数を確認
if isinstance(service, dict):
data =service.items()[0]
service = data[0]
num = data[1]
else:

num = 0
flag = 1
child.expect(‘~’)
child.sendline(‘ps -ef|grep {0}|grep -v grep|wc -l’.format(
service))
child.readline()
#プロセス数
pro_num = child.readline().split(‘\r\n’)[0]
if int(pro_num) == num or flag:

myprint(color, ‘[{0}] [{1}] [{2}] [{3}]’.format(k.center(12),
SERVER[‘ip’].center(14), service.center(20), ‘ok’.center(4)))
else:
myprint(‘r’, ‘[{0}] [{1}] [{2}] [{3}] [{4}!={5}]’.format(k.center(12),
SERVER[‘ip’].center(14), service.center(20), ‘fail’,
pro_num, num))
light += 1
child.sendline(‘exit’)
if __name__ == ‘__main__’:
main()

config.yaml

bj-2:
host: s233 #sshconfigでhostを設定
ip: XXX.XXX.XXX.233 #ipの確認
service: #load後ろリスト表
#XX用
– nginx: 5
– uwsgi: 25
– supervisord: 1
#ローカルでmysqlサービスを提供
– mysql: 3 #django
#ローカルでXXを提供
– celery: 12

– rabbitmq: 9
– redis: 1
– mongod: 2

Python urlopen()メッソッド サンプル

1.ページのすべて内容を取得
from urllib import urlopen
doc = urlopen(“http://www.yahoo.co.jp”).read()
print doc

2.Httpヘッダを取得
from urllib import urlopen
doc = urlopen(“http://www.yahoo.co.jp””)
print doc.info()
print doc.info().getheader(‘Content-Type’)

3.プロキシを使用
1.環境変数を確認
print “”n”.join([“%s=%s” % (k, v) for k, v in os.environ.items()])
print os.getenv(“http_proxy”)

2.環境変数を設定
import os
os.putenv(“http_proxy”, “http://proxyaddr:<port>”)

3.プロキシを使用
# Use http://www.someproxy.com:3128 for http proxying
proxies = {‘http’: ‘http://www.someproxy.com:3128’}
filehandle = urllib.urlopen(some_url, proxies=proxies)
# Don’t use any proxies
filehandle = urllib.urlopen(some_url, proxies={})
# Use proxies from environment – both versions are equivalent
filehandle = urllib.urlopen(some_url, proxies=None)
filehandle = urllib.urlopen(some_url)

 

HTTrack 3.48.13 ダウンロード

ダウンロード:
提供元サイトからダウンロード

phpMyAdmin 4.2.3 ダウンロード

ダウンロード:
提供元サイトからダウンロード

概要:

phpMyAdmin is a free software tool written in PHP, intended to handle the administration of MySQL over the Web. phpMyAdmin supports a wide range of operations on MySQL, MariaDB and Drizzle. Frequently used operations (managing databases, tables, columns, relations, indexes, users, permissions, etc) can be performed via the user interface, while you still have the ability to directly execute any SQL statement.

更新内容:

 a bugfix version. Please note that this release enforces the minimum PHP (5.3) and MySQL (5.5) versions.

PHP 5.6.0 beta4 ダウンロード

ダウンロード:
提供元サイトからダウンロード

JDK 9 b15, JDK 8u20 b16 ダウンロード

ダウンロード:

https://jdk9.java.net/download  (JDK 9 b15)

https://jdk8.java.net/download.html (JDK 8u20 b16)

 

 

Exim4.82.1セキュリティ更新プログラムの公開、メッセージ転送エージェント

ダウンロード:
提供元サイトからダウンロード

Eclipse SDK 4.4 RC 2 / 4.3.2 ダウンロード

ダウンロード:
提供元サイトからダウンロード
freewarefilesサイトからダウンロード

Eclipse is an open source platform-independent software framework for delivering what the project calls or is known as “rich-client applications” (as opposed to “thin clients”, this means the clients perform heavy-duty work on the host running the application).