adbapi查询语句 -- python3

Introduction to Twisted Enterprise
Abstract

Twisted is an asynchronous networking framework, but most database API implementations unfortunately have blocking interfaces -- for this reason, twisted.enterprise.adbapi was created. It is a non-blocking interface to the standardized DB-API 2.0 API, which allows you to access a number of different RDBMSes.

What you should already know

Python :-)
How to write a simple Twisted Server (see this tutorial to learn how)
Familiarity with using database interfaces (see the documentation for DBAPI 2.0 or this article by Andrew Kuchling)

Quick Overview

Twisted is an asynchronous framework. This means standard database modules cannot be used directly, as they typically work something like:# Create connection... db = dbmodule.connect('mydb', 'andrew', 'password') # ...which blocks for an unknown amount of time # Create a cursor cursor = db.cursor() # Do a query... resultset = cursor.query('SELECT * FROM table WHERE ...') # ...which could take a long time, perhaps even minutes.Those delays are unacceptable when using an asynchronous framework such as Twisted. For this reason, twisted provides twisted.enterprise.adbapi, an asynchronous wrapper for any DB-API 2.0-compliant module. It is currently best tested with the pyPgSQL module for PostgreSQL.

enterprise.adbapi will do blocking database operations in seperate threads, which trigger callbacks in the originating thread when they complete. In the meantime, the original thread can continue doing normal work, like servicing other requests.

How do I use adbapi?

Rather than creating a database connection directly, use the adbapi.ConnectionPool class to manage a connections for you. This allows enterprise.adbapi to use multiple connections, one per thread. This is easy:# Using the "dbmodule" from the previous example, create a ConnectionPool from twisted.enterprise import adbapi dbpool = adbapi.ConnectionPool("dbmodule", 'mydb', 'andrew', 'password')Things to note about doing this:

There is no need to import dbmodule directly. You just pass the name to adbapi.ConnectionPool's constructor.
The parameters you would pass to dbmodule.connect are passed as extra arguments to adbapi.ConnectionPool's constructor. Keyword parameters work as well.
You may also control the size of the connection pool with the keyword parameters cp_min and cp_max. The default minimum and maximum values are 3 and 5.

So, now you need to be able to dispatch queries to your ConnectionPool. We do this by subclassing adbapi.Augmentation. Here's an example:class AgeDatabase(adbapi.Augmentation): """A simple example that can retrieve an age from the database""" def getAge(self, name): # Define the query sql = """SELECT Age FROM People WHERE name = ?""" # Run the query, and return a Deferred to the caller to add # callbacks to. return self.runQuery(sql, name) def gotAge(resultlist, name): """Callback for handling the result of the query""" age = resultlist[0][0] # First field of first record print "%s is %d years old" % (name, age) db = AgeDatabase(dbpool) # These will *not* block. Hooray! db.getAge("Andrew").addCallbacks(gotAge, db.operationError, callbackArgs=("Andrew",)) db.getAge("Glyph").addCallbacks(gotAge, db.operationError, callbackArgs=("Glyph",)) # Of course, nothing will happen until the reactor is started from twisted.internet import reactor reactor.run()This is straightforward, except perhaps for the return value of getAge. It returns a twisted.internet.defer.Deferred, which allows arbitrary callbacks to be called upon completion (or upon failure). More documentation on Deferred is available here.

Also worth noting is that this example assumes that dbmodule uses the qmarks paramstyle (see the DB-API specification). If your dbmodule uses a different paramstyle (e.g. pyformat) then use that. Twisted doesn't attempt to offer any sort of magic paramater munging -- runQuery(query, params, ...) maps directly onto cursor.execute(query, params, ...).

And that's it!

That's all you need to know to use a database from within Twisted. You probably should read the adbapi module's documentation to get an idea of the other functions it has, but hopefully this document presents the core ideas.
继续阅读 »
Introduction to Twisted Enterprise
Abstract

Twisted is an asynchronous networking framework, but most database API implementations unfortunately have blocking interfaces -- for this reason, twisted.enterprise.adbapi was created. It is a non-blocking interface to the standardized DB-API 2.0 API, which allows you to access a number of different RDBMSes.

What you should already know

Python :-)
How to write a simple Twisted Server (see this tutorial to learn how)
Familiarity with using database interfaces (see the documentation for DBAPI 2.0 or this article by Andrew Kuchling)

Quick Overview

Twisted is an asynchronous framework. This means standard database modules cannot be used directly, as they typically work something like:# Create connection... db = dbmodule.connect('mydb', 'andrew', 'password') # ...which blocks for an unknown amount of time # Create a cursor cursor = db.cursor() # Do a query... resultset = cursor.query('SELECT * FROM table WHERE ...') # ...which could take a long time, perhaps even minutes.Those delays are unacceptable when using an asynchronous framework such as Twisted. For this reason, twisted provides twisted.enterprise.adbapi, an asynchronous wrapper for any DB-API 2.0-compliant module. It is currently best tested with the pyPgSQL module for PostgreSQL.

enterprise.adbapi will do blocking database operations in seperate threads, which trigger callbacks in the originating thread when they complete. In the meantime, the original thread can continue doing normal work, like servicing other requests.

How do I use adbapi?

Rather than creating a database connection directly, use the adbapi.ConnectionPool class to manage a connections for you. This allows enterprise.adbapi to use multiple connections, one per thread. This is easy:# Using the "dbmodule" from the previous example, create a ConnectionPool from twisted.enterprise import adbapi dbpool = adbapi.ConnectionPool("dbmodule", 'mydb', 'andrew', 'password')Things to note about doing this:

There is no need to import dbmodule directly. You just pass the name to adbapi.ConnectionPool's constructor.
The parameters you would pass to dbmodule.connect are passed as extra arguments to adbapi.ConnectionPool's constructor. Keyword parameters work as well.
You may also control the size of the connection pool with the keyword parameters cp_min and cp_max. The default minimum and maximum values are 3 and 5.

So, now you need to be able to dispatch queries to your ConnectionPool. We do this by subclassing adbapi.Augmentation. Here's an example:class AgeDatabase(adbapi.Augmentation): """A simple example that can retrieve an age from the database""" def getAge(self, name): # Define the query sql = """SELECT Age FROM People WHERE name = ?""" # Run the query, and return a Deferred to the caller to add # callbacks to. return self.runQuery(sql, name) def gotAge(resultlist, name): """Callback for handling the result of the query""" age = resultlist[0][0] # First field of first record print "%s is %d years old" % (name, age) db = AgeDatabase(dbpool) # These will *not* block. Hooray! db.getAge("Andrew").addCallbacks(gotAge, db.operationError, callbackArgs=("Andrew",)) db.getAge("Glyph").addCallbacks(gotAge, db.operationError, callbackArgs=("Glyph",)) # Of course, nothing will happen until the reactor is started from twisted.internet import reactor reactor.run()This is straightforward, except perhaps for the return value of getAge. It returns a twisted.internet.defer.Deferred, which allows arbitrary callbacks to be called upon completion (or upon failure). More documentation on Deferred is available here.

Also worth noting is that this example assumes that dbmodule uses the qmarks paramstyle (see the DB-API specification). If your dbmodule uses a different paramstyle (e.g. pyformat) then use that. Twisted doesn't attempt to offer any sort of magic paramater munging -- runQuery(query, params, ...) maps directly onto cursor.execute(query, params, ...).

And that's it!

That's all you need to know to use a database from within Twisted. You probably should read the adbapi module's documentation to get an idea of the other functions it has, but hopefully this document presents the core ideas. 收起阅读 »

python判断身份证的合法性

输入身份证号码, 判断18位身份证号码是否合法, 并查询信息(性别, 年龄, 所在地)

验证原理

将前面的身份证号码17位数分别乘以不同的系数, 从第一位到第十七位的系数分别为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
将这17位数字和系数相乘的结果相加.
用加出来和除以11, 看余数是多少?
余数只可能有<0 1 2 3 4 5 6 7 8 9 10>这11个数字, 其分别对应的最后一位身份证的号码为<1 0 X 9 8 7 6 5 4 3 2>.
通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2.

例如: 某男性的身份证号码是34052419800101001X, 我们要看看这个身份证是不是合法的身份证.

首先: 我们得出, 前17位的乘积和是189.

然后: 用189除以11得出的余数是2.

最后: 通过对应规则就可以知道余数2对应的数字是x. 所以, 这是一个合格的身份证号码.
 
代码如下:
#!/bin/env python
# -*- coding: utf-8 -*-

from sys import platform
import json
import codecs

with codecs.open('data.json', 'r', encoding='utf8') as json_data:
city = json.load(json_data)

def check_valid(idcard):
# 城市编码, 出生日期, 归属地
city_id = idcard[:6]
print(city_id)
birth = idcard[6:14]

city_name = city.get(city_id,'Not found')

# 根据规则校验身份证是否符合规则
idcard_tuple = [int(num) for num in list(idcard[:-1])]
coefficient = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
sum_value = sum([idcard_tuple[i] * coefficient[i] for i in range(17)])

remainder = sum_value % 11

maptable = {0: '1', 1: '0', 2: 'x', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}

if maptable[remainder] == idcard[17]:
print('<身份证合法>')
sex = int(idcard[16]) % 2
sex = '男' if sex == 1 else '女'
print('性别:' + sex)
birth_format="{}年{}月{}日".format(birth[:4],birth[4:6],birth[6:8])
print('出生日期:' + birth_format)
print('归属地:' + city_name)
return True
else:
print('<身份证不合法>')
return False


if __name__=='__main__':
idcard = str(input('请输入身份证号码:'))
check_valid(idcard)[/i]


github源码:https://github.com/Rockyzsu/IdentityCheck
原创文章,转载请注明 
http://30daydo.com/article/340
 
继续阅读 »
输入身份证号码, 判断18位身份证号码是否合法, 并查询信息(性别, 年龄, 所在地)

验证原理

将前面的身份证号码17位数分别乘以不同的系数, 从第一位到第十七位的系数分别为: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
将这17位数字和系数相乘的结果相加.
用加出来和除以11, 看余数是多少?
余数只可能有<0 1 2 3 4 5 6 7 8 9 10>这11个数字, 其分别对应的最后一位身份证的号码为<1 0 X 9 8 7 6 5 4 3 2>.
通过上面得知如果余数是2,就会在身份证的第18位数字上出现罗马数字的Ⅹ。如果余数是10,身份证的最后一位号码就是2.

例如: 某男性的身份证号码是34052419800101001X, 我们要看看这个身份证是不是合法的身份证.

首先: 我们得出, 前17位的乘积和是189.

然后: 用189除以11得出的余数是2.

最后: 通过对应规则就可以知道余数2对应的数字是x. 所以, 这是一个合格的身份证号码.
 
代码如下:
#!/bin/env python
# -*- coding: utf-8 -*-

from sys import platform
import json
import codecs

with codecs.open('data.json', 'r', encoding='utf8') as json_data:
city = json.load(json_data)

def check_valid(idcard):
# 城市编码, 出生日期, 归属地
city_id = idcard[:6]
print(city_id)
birth = idcard[6:14]

city_name = city.get(city_id,'Not found')

# 根据规则校验身份证是否符合规则
idcard_tuple = [int(num) for num in list(idcard[:-1])]
coefficient = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]
sum_value = sum([idcard_tuple[i] * coefficient[i] for i in range(17)])

remainder = sum_value % 11

maptable = {0: '1', 1: '0', 2: 'x', 3: '9', 4: '8', 5: '7', 6: '6', 7: '5', 8: '4', 9: '3', 10: '2'}

if maptable[remainder] == idcard[17]:
print('<身份证合法>')
sex = int(idcard[16]) % 2
sex = '男' if sex == 1 else '女'
print('性别:' + sex)
birth_format="{}年{}月{}日".format(birth[:4],birth[4:6],birth[6:8])
print('出生日期:' + birth_format)
print('归属地:' + city_name)
return True
else:
print('<身份证不合法>')
return False


if __name__=='__main__':
idcard = str(input('请输入身份证号码:'))
check_valid(idcard)[/i]


github源码:https://github.com/Rockyzsu/IdentityCheck
原创文章,转载请注明 
http://30daydo.com/article/340
  收起阅读 »

pymysql.err.InternalError: Packet sequence number wrong - got 4 expected 1

在django里面使用pymysql的方式进行链接, 结果就悲剧了.
 
PyMySQL is not thread safty to share connections as we did (we shared the class instance between multiple files as a global instance - in the class there is only one connection), it is labled as 1:

threadsafety = 1

According to PEP 249:

1 - Threads may share the module, but not connections.

One of the comments in PyMySQL github issue:

you need one pysql.connect() for each process/thread. As far as I know that's the only way to fix it. PyMySQL is not thread safe, so the same connection can't be used across multiple threads.

Any way if you were thinking of using other python package called MySQLdb for your threading application, notice to MySQLdb message:

Don't share connections between threads. It's really not worth your effort or mine, and in the end, will probably hurt performance, since the MySQL server runs a separate thread for each connection. You can certainly do things like cache connections in a pool, and give those connections to one thread at a time. If you let two threads use a connection simultaneously, the MySQL client library will probably upchuck and die. You have been warned. For threaded applications, try using a connection pool. This can be done using the Pool module.

Eventually we managed to use Django ORM and we are writing only for our specific table, managed by using inspectdb.
继续阅读 »
在django里面使用pymysql的方式进行链接, 结果就悲剧了.
 
PyMySQL is not thread safty to share connections as we did (we shared the class instance between multiple files as a global instance - in the class there is only one connection), it is labled as 1:

threadsafety = 1

According to PEP 249:

1 - Threads may share the module, but not connections.

One of the comments in PyMySQL github issue:

you need one pysql.connect() for each process/thread. As far as I know that's the only way to fix it. PyMySQL is not thread safe, so the same connection can't be used across multiple threads.

Any way if you were thinking of using other python package called MySQLdb for your threading application, notice to MySQLdb message:

Don't share connections between threads. It's really not worth your effort or mine, and in the end, will probably hurt performance, since the MySQL server runs a separate thread for each connection. You can certainly do things like cache connections in a pool, and give those connections to one thread at a time. If you let two threads use a connection simultaneously, the MySQL client library will probably upchuck and die. You have been warned. For threaded applications, try using a connection pool. This can be done using the Pool module.

Eventually we managed to use Django ORM and we are writing only for our specific table, managed by using inspectdb. 收起阅读 »

mongodb sort: Executor error during find command: OperationFailed: Sort operation used more than

mongodb 排序出现内存溢出:
 
Error: error: {
"ok" : 0,
"errmsg" : "Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit.",
"code" : 96,
"codeName" : "OperationFailed"
}

使用limit函数限制其输出就可以了:
 
db.getCollection('老布').find({}).sort({'created_at':-1}).limit(1000)
继续阅读 »
mongodb 排序出现内存溢出:
 
Error: error: {
"ok" : 0,
"errmsg" : "Executor error during find command: OperationFailed: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit.",
"code" : 96,
"codeName" : "OperationFailed"
}

使用limit函数限制其输出就可以了:
 
db.getCollection('老布').find({}).sort({'created_at':-1}).limit(1000)
收起阅读 »

每天给小孩子看英语视频可以让小孩学到什么?

结论是Nothing。
 
没有互动,没有实际使用,语言没有用武之地,最终只是当做一种娱乐消遣。
那么多看美剧的,问问他们的英语水平,会不会比7岁的在国外长大的小孩的英语水平高? 不会,至少他们连流畅沟通都做不到。
 
结论是Nothing。
 
没有互动,没有实际使用,语言没有用武之地,最终只是当做一种娱乐消遣。
那么多看美剧的,问问他们的英语水平,会不会比7岁的在国外长大的小孩的英语水平高? 不会,至少他们连流畅沟通都做不到。
 

最新版的chrome中info lite居然不支持了

更新到了v67版本后,info lite居然不见了. 我晕.
只好降级......
 
版本 65.0.3325.162(正式版本) (64 位)
这个版本最新且支持info lite的。
 
 
更新到了v67版本后,info lite居然不见了. 我晕.
只好降级......
 
版本 65.0.3325.162(正式版本) (64 位)
这个版本最新且支持info lite的。
 
 

python sqlalchemy ORM 添加注释

需要更新sqlalchemy到最新版本,旧版本会不支持。
 
在定义ORM对象的时候,
class CreditRecord(Base):
__tablename__ = 'tb_PersonPunishment'

id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(180),comment='名字')

添加一个comment参数即可。
 
 
继续阅读 »
需要更新sqlalchemy到最新版本,旧版本会不支持。
 
在定义ORM对象的时候,
class CreditRecord(Base):
__tablename__ = 'tb_PersonPunishment'

id = Column(Integer, primary_key=True, autoincrement=True)
name = Column(String(180),comment='名字')

添加一个comment参数即可。
 
  收起阅读 »

windows 7 python3 安装MySQLdb 库

python3下没有MySQLdb的库,可以直接到这里下载mysqlclient库来替代。https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
 
python3下没有MySQLdb的库,可以直接到这里下载mysqlclient库来替代。https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient
 

工行的app实在是烂到家了,怎么点击都打不开

都什么年代了,完全和招行这些app无法比,而且看起来就跟网页的网银时代一模一样的垃圾作风(只兼容IE,页面杂乱),垃圾的研发延续到app端,实在无法忍,十次九次打开失败,有导致整个系统假死的,或者系统突然极其卡顿,或者没有任何反应。
都什么年代了,完全和招行这些app无法比,而且看起来就跟网页的网银时代一模一样的垃圾作风(只兼容IE,页面杂乱),垃圾的研发延续到app端,实在无法忍,十次九次打开失败,有导致整个系统假死的,或者系统突然极其卡顿,或者没有任何反应。

赢呗DDW转账失败,一直显示 0 of 12 确认区块

斐讯开通了天天牛后,需要用电脑端转账到官方的天天牛账户进行确认,后期也需要充值DDW才能参与世界杯的竞猜活动,购买其他的天天牛。 具体教程【斐讯 天天牛绑定教程
 
刚开始是可以转账成功的,可是后面最近今天却一直卡在0 of 12 确认区块, 无论你选择了多转账费用还是选择少的转账费用,都无法转账成功。
send.PNG

点击查看大图
 
后来咨询了客户后才知道,原来最近斐讯在打击黄牛(刷天天牛),所以天天链的邀请码系统关闭了,而且转账是因为网络拥堵的原因,导致转账卡住了。 而且客服说了,当前转账失败的金额,等到DDW网络正常后会正常转入到天天牛的账号。所以不用担心金额会消失,只需要耐心等待网络修复。
 
继续阅读 »
斐讯开通了天天牛后,需要用电脑端转账到官方的天天牛账户进行确认,后期也需要充值DDW才能参与世界杯的竞猜活动,购买其他的天天牛。 具体教程【斐讯 天天牛绑定教程
 
刚开始是可以转账成功的,可是后面最近今天却一直卡在0 of 12 确认区块, 无论你选择了多转账费用还是选择少的转账费用,都无法转账成功。
send.PNG

点击查看大图
 
后来咨询了客户后才知道,原来最近斐讯在打击黄牛(刷天天牛),所以天天链的邀请码系统关闭了,而且转账是因为网络拥堵的原因,导致转账卡住了。 而且客服说了,当前转账失败的金额,等到DDW网络正常后会正常转入到天天牛的账号。所以不用担心金额会消失,只需要耐心等待网络修复。
  收起阅读 »

python量化分析: 股票涨停后该不该卖, 怕砸板还是怕卖飞 ?

相信大家都有过这样的经验,某个股票忽然直线拉升打到涨停板,然后就会纠结当天要不要卖掉,如果股票没封住,注定会回落,这样会失去部分的利润。 但是又怕卖了后,封死涨停板,然后当天再也买不回来,然后第二天呢,高开就不想去追,或者去追高使得持有该股的成本变高了。
 
那么触及涨停板的个股我们应该继续持有,还是卖掉,还是卖掉做T接回来呢?
接下来用数据说话。【数据使用通联实验室的数据源】
 
首先获取当前市场上所有股票
all_stocks = DataAPI.SecTypeRegionRelGet(secID=u"",ticker=u"",typeID=u"",field=u"",pandas="1")

然后获取每一个股票的日k线数据,可以设定一个时间段,我抓取了2012年到今天(2018-06-14)的所有数据,如果是次新股,那么数据就是上市当天到今天的数据。
抓取到的数据包含以下的字段:
cd11.PNG

点击查看大图 

但是实际用到的字段只有几个, 开盘价,最高价,涨幅,昨天收盘价。
这里我排除了一字板开盘的个股,因为里面含有新股,会导致数据不精确,【后续我会统计,一字板开盘盘中被砸开的概率】,而且数据也排除了ST的个股,因为本人从来不买ST股,所以不会对ST进行统计。
fbl = 

for code in all_stocks['secID']:
df = DataAPI.MktEqudGet(secID=code,ticker=u"",tradeDate=u"",beginDate=u"20120101",endDate=u"",isOpen="",field=u"",pandas="1")
df['ztj']=map(lambda x:round(x,2),df['preClosePrice']*1.1)
df['chgPct']=df['chgPct']*100

# 非一字板
zt = df[(df['ztj']==df['highestPrice']) & (df['openPrice']!=df['highestPrice'])]
fz= df[(df['ztj']==df['highestPrice']) & (df['openPrice']!=df['highestPrice'])&(df['closePrice']==df['highestPrice'])]
try:
f = len(fz)*1.00/len(zt)*100
fbl.append((code,f))
except Exception,e:
print e
print code

fbl就是封板率的一个列表,包含了每只股票的触及涨停价后封板的概率。 然后对整体的数据取平均值:
dx= dict(fbl)
x = np.array(dx.values())
print x.mean()

最后得到的结果是:
64.0866513726

所以保持住涨停的概率还是大一些。所以站在概率大的一边上,触及涨停的时候应该继续持有,会有62.5%会到收盘保持涨停价。
 
(待续)
 
原创文章,转载请注明出处: 
http://30daydo.com/article/331 
 
继续阅读 »
相信大家都有过这样的经验,某个股票忽然直线拉升打到涨停板,然后就会纠结当天要不要卖掉,如果股票没封住,注定会回落,这样会失去部分的利润。 但是又怕卖了后,封死涨停板,然后当天再也买不回来,然后第二天呢,高开就不想去追,或者去追高使得持有该股的成本变高了。
 
那么触及涨停板的个股我们应该继续持有,还是卖掉,还是卖掉做T接回来呢?
接下来用数据说话。【数据使用通联实验室的数据源】
 
首先获取当前市场上所有股票
all_stocks = DataAPI.SecTypeRegionRelGet(secID=u"",ticker=u"",typeID=u"",field=u"",pandas="1")

然后获取每一个股票的日k线数据,可以设定一个时间段,我抓取了2012年到今天(2018-06-14)的所有数据,如果是次新股,那么数据就是上市当天到今天的数据。
抓取到的数据包含以下的字段:
cd11.PNG

点击查看大图 

但是实际用到的字段只有几个, 开盘价,最高价,涨幅,昨天收盘价。
这里我排除了一字板开盘的个股,因为里面含有新股,会导致数据不精确,【后续我会统计,一字板开盘盘中被砸开的概率】,而且数据也排除了ST的个股,因为本人从来不买ST股,所以不会对ST进行统计。
fbl = 

for code in all_stocks['secID']:
df = DataAPI.MktEqudGet(secID=code,ticker=u"",tradeDate=u"",beginDate=u"20120101",endDate=u"",isOpen="",field=u"",pandas="1")
df['ztj']=map(lambda x:round(x,2),df['preClosePrice']*1.1)
df['chgPct']=df['chgPct']*100

# 非一字板
zt = df[(df['ztj']==df['highestPrice']) & (df['openPrice']!=df['highestPrice'])]
fz= df[(df['ztj']==df['highestPrice']) & (df['openPrice']!=df['highestPrice'])&(df['closePrice']==df['highestPrice'])]
try:
f = len(fz)*1.00/len(zt)*100
fbl.append((code,f))
except Exception,e:
print e
print code

fbl就是封板率的一个列表,包含了每只股票的触及涨停价后封板的概率。 然后对整体的数据取平均值:
dx= dict(fbl)
x = np.array(dx.values())
print x.mean()

最后得到的结果是:
64.0866513726

所以保持住涨停的概率还是大一些。所以站在概率大的一边上,触及涨停的时候应该继续持有,会有62.5%会到收盘保持涨停价。
 
(待续)
 
原创文章,转载请注明出处: 
http://30daydo.com/article/331 
  收起阅读 »

为啥抖音这些那么火 ?

精神鸦片
 
为什么大家不喜欢看书和学习,因为看书和学习不能获得即可的精神快感,需要时间沉淀。而玩游戏和抖音不一样,你马上就能获得精神上的快感。
精神鸦片
 
为什么大家不喜欢看书和学习,因为看书和学习不能获得即可的精神快感,需要时间沉淀。而玩游戏和抖音不一样,你马上就能获得精神上的快感。

斐讯 天天牛绑定教程

天天牛邀请码 8vozbf 可以领取4代牛

 最近斐讯推出了天天牛养成计划。 不过官方没有任何的指示教程,所以个人分享一个教程给大家。
 
1. 先把把旧的钱包备份一下 ,切记!! 而且一定要记得自己设的密码,官方的说法是,如果钱包文件不见了(重装系统),那么里面的币就找不到了,或者你忘记了自己设的密码,那么里面的币也同样没了。
备份很简单,点击 赢呗钱包菜单的 账户-》备份-》账户, 这是会看到一个 keystore 的文件夹,把这个额文件夹拷贝出来就可以了。
 
2. 升级电脑版的赢呗钱包。 因为旧版的钱包没有转出DDW币这个功能。
qianbao.PNG

点击查看大图

有这个转币功能才能转币到天天牛的官方账号进行绑定
 
下载地址: http://www.phicomm.com/cn/index.php/Products/none_details.html
拉到最底下,就可以看到下载链接了。 最好到这个官方网站下载。
 
安装后,设置赢呗钱包的数据包文件夹,最好新建一个,不要和旧的公用一个文件夹,不然很容易吧你旧的钱包给覆盖了,假如你忘记了备份。
 
安装完成后,点击 账户, 备份,我的账户, 这个时候会弹出一个keystore的文件夹, 这时,就需要把上面第一步备份的keystore文件夹替换这个新的文件夹就可以了。 这样就备份完成了。
 
然后重新打开赢呗钱包,这个时候会同步数据,刚开始显示的账户余额是0的,不要紧,慢慢等数据同步完成了就会看到你的新钱包余额了。 记住你的钱包地址,下一步要用到。
捕获.PNG

点击查看大图
 
3. 然后打开斐讯商城app,进入到天天牛游戏页面, 会提示绑定页面:
首先填入你自己的赢呗钱包的地址,上一步记下的地址。
 
然后需要转币到天天牛的官方账户, 记住你要转的币的数目,这个数目每个人都不一样。
点击下一步。 
 
4. 然后到电脑上,点击转出 按钮。 然后出现的转出页面中会看到转出页面有一个天天牛的下拉菜单
cap2.PNG

点击查看大图
 
在转出金额那里填入第3部需要转币的金额,一般就零点几个,不会很多。 然后点击转出。 注意,实际转出的币数会多一点,因为每次转需要少量的手续费。
 
转币完成后,需要等待1,2分钟,等待区域链网络同步。
 
一定同步完成了,最底下就会显示你的交易记录了。
fin.PNG

点击查看大图
 
这是app上会显示你已经绑定成功了。 
 
这里提供一个邀请码给大家: 8vozbf 
填了后可以领取一只6代牛或者4代牛。 算给我一点写文章的动力吧。
或者你有不要DDW,尽管转给我我哈。 地址:0x2f92eF844DBAa9981b54817FfDc56b778dcA99f3
 
Screenshot_2018-06-12-12-44-18-849_斐讯商城.png

点击查看大图

如果遇到其他问题,可以在下面留言。
 
最近又出现了新问题:
赢呗DDW转账失败,一直显示 0 of 12 确认区块
可以点击进去看详情。
 
原创文章,转账请注明:
http://30daydo.com/article/329
 
继续阅读 »
天天牛邀请码 8vozbf 可以领取4代牛

 最近斐讯推出了天天牛养成计划。 不过官方没有任何的指示教程,所以个人分享一个教程给大家。
 
1. 先把把旧的钱包备份一下 ,切记!! 而且一定要记得自己设的密码,官方的说法是,如果钱包文件不见了(重装系统),那么里面的币就找不到了,或者你忘记了自己设的密码,那么里面的币也同样没了。
备份很简单,点击 赢呗钱包菜单的 账户-》备份-》账户, 这是会看到一个 keystore 的文件夹,把这个额文件夹拷贝出来就可以了。
 
2. 升级电脑版的赢呗钱包。 因为旧版的钱包没有转出DDW币这个功能。
qianbao.PNG

点击查看大图

有这个转币功能才能转币到天天牛的官方账号进行绑定
 
下载地址: http://www.phicomm.com/cn/index.php/Products/none_details.html
拉到最底下,就可以看到下载链接了。 最好到这个官方网站下载。
 
安装后,设置赢呗钱包的数据包文件夹,最好新建一个,不要和旧的公用一个文件夹,不然很容易吧你旧的钱包给覆盖了,假如你忘记了备份。
 
安装完成后,点击 账户, 备份,我的账户, 这个时候会弹出一个keystore的文件夹, 这时,就需要把上面第一步备份的keystore文件夹替换这个新的文件夹就可以了。 这样就备份完成了。
 
然后重新打开赢呗钱包,这个时候会同步数据,刚开始显示的账户余额是0的,不要紧,慢慢等数据同步完成了就会看到你的新钱包余额了。 记住你的钱包地址,下一步要用到。
捕获.PNG

点击查看大图
 
3. 然后打开斐讯商城app,进入到天天牛游戏页面, 会提示绑定页面:
首先填入你自己的赢呗钱包的地址,上一步记下的地址。
 
然后需要转币到天天牛的官方账户, 记住你要转的币的数目,这个数目每个人都不一样。
点击下一步。 
 
4. 然后到电脑上,点击转出 按钮。 然后出现的转出页面中会看到转出页面有一个天天牛的下拉菜单
cap2.PNG

点击查看大图
 
在转出金额那里填入第3部需要转币的金额,一般就零点几个,不会很多。 然后点击转出。 注意,实际转出的币数会多一点,因为每次转需要少量的手续费。
 
转币完成后,需要等待1,2分钟,等待区域链网络同步。
 
一定同步完成了,最底下就会显示你的交易记录了。
fin.PNG

点击查看大图
 
这是app上会显示你已经绑定成功了。 
 
这里提供一个邀请码给大家: 8vozbf 
填了后可以领取一只6代牛或者4代牛。 算给我一点写文章的动力吧。
或者你有不要DDW,尽管转给我我哈。 地址:0x2f92eF844DBAa9981b54817FfDc56b778dcA99f3
 
Screenshot_2018-06-12-12-44-18-849_斐讯商城.png

点击查看大图

如果遇到其他问题,可以在下面留言。
 
最近又出现了新问题:
赢呗DDW转账失败,一直显示 0 of 12 确认区块
可以点击进去看详情。
 
原创文章,转账请注明:
http://30daydo.com/article/329
  收起阅读 »

CDR最近风头火势

2007年,时值美股高峰,证监会顺势推出QDII。当时购买也要排队摇号。
 
当年成立的南方全球,到现在,净值都低于1。现在,证监会又推出CDR。
 
银行和券商卖力吆喝,号称1元起售,普惠金融。农民都明白,指导种啥就亏啥。
 
China Southern Fund's QDII products still lose money after 11 years.

DfJNO1XUYAIXEZG.jpeg


DfJNb7DU8AAPzHQ.jpeg


DfJNdw6UYAEWLnd.jpeg

 
 
继续阅读 »
2007年,时值美股高峰,证监会顺势推出QDII。当时购买也要排队摇号。
 
当年成立的南方全球,到现在,净值都低于1。现在,证监会又推出CDR。
 
银行和券商卖力吆喝,号称1元起售,普惠金融。农民都明白,指导种啥就亏啥。
 
China Southern Fund's QDII products still lose money after 11 years.

DfJNO1XUYAIXEZG.jpeg


DfJNb7DU8AAPzHQ.jpeg


DfJNdw6UYAEWLnd.jpeg

 
  收起阅读 »

python3中定义抽象类的方法在python2中不兼容

在python3中新式的定义抽象类的方法如下:
from abc import ABCMeta,abstractmethod

class Server(metaclass=ABCMeta):

@abstractmethod
def __init__(self):
pass

def __str__(self):
return self.name

@abstractmethod
def boot(self):
pass

@abstractmethod
def kill(self):
pass

 
但是这个方法在python2中会提示语法错误。
 
在python2中只能像下面这种方式定义抽象类:
 
from abc import ABCMeta,abstractmethod

class Server(object):
__metaclass__=ABCMeta
@abstractmethod
def __init__(self):
pass

def __str__(self):
return self.name

@abstractmethod
def boot(self):
pass

@abstractmethod
def kill(self):
pass

这种方式不仅在python2中可以正常运行,在python3中也可以。但是python3的方法只能兼容python3,无法在python2中运行。
 
原创地址:
http://30daydo.com/article/326
欢迎转载,请注明出处。
继续阅读 »
在python3中新式的定义抽象类的方法如下:
from abc import ABCMeta,abstractmethod

class Server(metaclass=ABCMeta):

@abstractmethod
def __init__(self):
pass

def __str__(self):
return self.name

@abstractmethod
def boot(self):
pass

@abstractmethod
def kill(self):
pass

 
但是这个方法在python2中会提示语法错误。
 
在python2中只能像下面这种方式定义抽象类:
 
from abc import ABCMeta,abstractmethod

class Server(object):
__metaclass__=ABCMeta
@abstractmethod
def __init__(self):
pass

def __str__(self):
return self.name

@abstractmethod
def boot(self):
pass

@abstractmethod
def kill(self):
pass

这种方式不仅在python2中可以正常运行,在python3中也可以。但是python3的方法只能兼容python3,无法在python2中运行。
 
原创地址:
http://30daydo.com/article/326
欢迎转载,请注明出处。
收起阅读 »

sklearn中的Bunch数据类型

在sklearn中自带部分数据 如 datasets 包中
k1.PNG

 
那么这个
<class 'sklearn.utils.Bunch'>
是什么数据格式 ?
 
打印一下:
k3.PNG

好吧,原来就是一个字典结构。可以像调用字典一样使用Bunch。
比如 data['image'] 就获取 key为image的内容。
 

原创地址:http://30daydo.com/article/325 
欢迎转载,请注明出处。
继续阅读 »
在sklearn中自带部分数据 如 datasets 包中
k1.PNG

 
那么这个
<class 'sklearn.utils.Bunch'>
是什么数据格式 ?
 
打印一下:
k3.PNG

好吧,原来就是一个字典结构。可以像调用字典一样使用Bunch。
比如 data['image'] 就获取 key为image的内容。
 

原创地址:http://30daydo.com/article/325 
欢迎转载,请注明出处。
收起阅读 »

招行信用卡的账单日当天消费算下一个月还吗?

比如某人的招行信用卡的账单日是20号,那么在20号当天消费,是算入下一个的还款周期里面的。
举个例子:
5月20日是账单日,那么根据招行的规定,那么在6月9就是还款日。 
如果在5月20日当天用信用卡消费了,那么这一笔是算入到下个月的还款周期,也就是到7月9日还款。
因为这一笔会记到6月20的月账单里面。而6月20的账单是到7月9日才还款的。
继续阅读 »
比如某人的招行信用卡的账单日是20号,那么在20号当天消费,是算入下一个的还款周期里面的。
举个例子:
5月20日是账单日,那么根据招行的规定,那么在6月9就是还款日。 
如果在5月20日当天用信用卡消费了,那么这一笔是算入到下个月的还款周期,也就是到7月9日还款。
因为这一笔会记到6月20的月账单里面。而6月20的账单是到7月9日才还款的。 收起阅读 »

sklearn中SGDClassifier分类器每次得到的结果都不一样?

如下代码:
sgdc = SGDClassifier()
sgdc.fit(X_train,y_train)
sgdc_predict_y = sgdc.predict(X_test)
print 'Accuary of SGD classifier ', sgdc.score(X_test,y_test)
print classification_report(y_test,sgdc_predict_y,target_names=['Benign','Malignant'])

每次输出的结果都不一样? WHY
 
 
因为你使用了一个默认参数:
SGDClassifier(random_state = None)
 
所以这个随机种子每次不一样,所以得到的结果就可能不一样,如果你指定随机种子值,那么每次得到的结果都是一样的了。
 

原创地址:http://30daydo.com/article/323 
欢迎转载,请注明出处。
继续阅读 »
如下代码:
sgdc = SGDClassifier()
sgdc.fit(X_train,y_train)
sgdc_predict_y = sgdc.predict(X_test)
print 'Accuary of SGD classifier ', sgdc.score(X_test,y_test)
print classification_report(y_test,sgdc_predict_y,target_names=['Benign','Malignant'])

每次输出的结果都不一样? WHY
 
 
因为你使用了一个默认参数:
SGDClassifier(random_state = None)
 
所以这个随机种子每次不一样,所以得到的结果就可能不一样,如果你指定随机种子值,那么每次得到的结果都是一样的了。
 

原创地址:http://30daydo.com/article/323 
欢迎转载,请注明出处。
收起阅读 »

可转债2018 下半年策略

平摊10至20个转债,一个转债解决至少130,在90以下的转债到成功赎回收益率在50%以上,就是10个转债不幸有一个违约,那你还是赚的,转债的最终目的还是促成转股,下有保底债券收益!
我现在只建了一成仓,跌到88以下开始慢慢摊,不急!!
不要被表象所迷,转债毕竟是债,是有底的东西 跟那时的A类也一样,吐弃不等于烂!
慢慢吃!!
继续阅读 »
平摊10至20个转债,一个转债解决至少130,在90以下的转债到成功赎回收益率在50%以上,就是10个转债不幸有一个违约,那你还是赚的,转债的最终目的还是促成转股,下有保底债券收益!
我现在只建了一成仓,跌到88以下开始慢慢摊,不急!!
不要被表象所迷,转债毕竟是债,是有底的东西 跟那时的A类也一样,吐弃不等于烂!
慢慢吃!! 收起阅读 »

斐讯天天链挖矿每天有多少个? 用的联通网络

上个月撸了个斐讯天天链N1和一个移动硬盘H1,然后激活了白金会员。 准备挖矿之旅。
 
家里接的是小区垄断的宽带,上网检测了下IP,是联通的网络,正常速度8M左右。 

联通.PNG


按照教程,注册激活,把硬盘格式化,然后开着天天链。每天都开着,一直在线,指示灯保持常亮。
然后每天打开日日盈app查看收益,少的可怜,平均一天0.8个,1个都不到。 目前木鸡上天天链的虚拟币DDW价格才0.4元一个,也就是4毛钱一个币,然后每天只能赚3毛钱,我去,电费都亏了。

1Screenshot_2018-06-05-00-47-41-376_日日赢.png

挖了29天,才25个币。 而且现在是每天越挖越少。 币价越来越低。搞得家里的wifi网络和有线网络也变得卡了。
 
所以果断关掉天天链,真是费电不讨好。
 
附一张4月的币价:

code11.PNG


 
原创文章,转载请注明
http://www.30daydo.com/article/262
继续阅读 »
上个月撸了个斐讯天天链N1和一个移动硬盘H1,然后激活了白金会员。 准备挖矿之旅。
 
家里接的是小区垄断的宽带,上网检测了下IP,是联通的网络,正常速度8M左右。 

联通.PNG


按照教程,注册激活,把硬盘格式化,然后开着天天链。每天都开着,一直在线,指示灯保持常亮。
然后每天打开日日盈app查看收益,少的可怜,平均一天0.8个,1个都不到。 目前木鸡上天天链的虚拟币DDW价格才0.4元一个,也就是4毛钱一个币,然后每天只能赚3毛钱,我去,电费都亏了。

1Screenshot_2018-06-05-00-47-41-376_日日赢.png

挖了29天,才25个币。 而且现在是每天越挖越少。 币价越来越低。搞得家里的wifi网络和有线网络也变得卡了。
 
所以果断关掉天天链,真是费电不讨好。
 
附一张4月的币价:

code11.PNG


 
原创文章,转载请注明
http://www.30daydo.com/article/262 收起阅读 »

51jb 脚本之家真逆天

几乎所有IT类的pdf电子书都可以在这个脚本之家获取的到,比很多专业的电子书网站都要强!
前列推荐!!!
几乎所有IT类的pdf电子书都可以在这个脚本之家获取的到,比很多专业的电子书网站都要强!
前列推荐!!!

ubuntu samba连接斐讯天天链N1 提示 Host is down.

配置:
斐讯天天链N1 + 斐讯硬盘H1
ubuntu 和天天链在同一个内网中。
 平时个人在ubuntu下使用的mount命令不管用。 提示 Host is down
如果直接用gui连接,是没问题的(打开文件夹,选择连接服务器,然后服务器地址填 smb://192.168.1.1 ) 然后就可以访问天天链的硬盘。 
但是为什么使用mount命令就不行了呢 ?
 
通过不断更改参数,发现问题出在斐讯samba的版本用的是老旧的vers 1.0. 这时需要你在mount命令中制定版本。
 
sudo mount -t cifs -o username=root,password=xxxxx,uid=1000,gid=1000,vers=1.0,_netdev //192.168.1.88/HDisk /home/use/net

通过上述的命令, 就可以把斐讯的硬盘mount到本地,并且有权限可以读写。
记得加上
uid=1000,gid=1000, 不然会没有权限读写,只能一直使用sudo 才能读写哦。
 
 
原创文章
转载请注明出处:http://30daydo.com/article/317
 
继续阅读 »
配置:
斐讯天天链N1 + 斐讯硬盘H1
ubuntu 和天天链在同一个内网中。
 平时个人在ubuntu下使用的mount命令不管用。 提示 Host is down
如果直接用gui连接,是没问题的(打开文件夹,选择连接服务器,然后服务器地址填 smb://192.168.1.1 ) 然后就可以访问天天链的硬盘。 
但是为什么使用mount命令就不行了呢 ?
 
通过不断更改参数,发现问题出在斐讯samba的版本用的是老旧的vers 1.0. 这时需要你在mount命令中制定版本。
 
sudo mount -t cifs -o username=root,password=xxxxx,uid=1000,gid=1000,vers=1.0,_netdev //192.168.1.88/HDisk /home/use/net

通过上述的命令, 就可以把斐讯的硬盘mount到本地,并且有权限可以读写。
记得加上
uid=1000,gid=1000, 不然会没有权限读写,只能一直使用sudo 才能读写哦。
 
 
原创文章
转载请注明出处:http://30daydo.com/article/317
  收起阅读 »

python获取每天的涨停个股数据 和昨天涨停的今天表现

python获取每天的涨停个股数据 和昨天涨停的今天表现
 
ztb2_副本_副本_副本.jpg
(点击查看大图)
今日的涨停信息

zrzt1_副本.jpg
(点击查看大图)
昨日涨停的今天信息
 
还有自动生成的K线图:

涨跌停.PNG
(点击查看大图)

有兴趣的朋友可以留言获取上述数据

原创文章
转载请注明出处:http://30daydo.com/article/316
继续阅读 »
python获取每天的涨停个股数据 和昨天涨停的今天表现
 
ztb2_副本_副本_副本.jpg
(点击查看大图)
今日的涨停信息

zrzt1_副本.jpg
(点击查看大图)
昨日涨停的今天信息
 
还有自动生成的K线图:

涨跌停.PNG
(点击查看大图)

有兴趣的朋友可以留言获取上述数据

原创文章
转载请注明出处:http://30daydo.com/article/316 收起阅读 »

numpy数组四舍五入

numpy.around(nlist, number)
传入一个np的数组和需要保留的位数作为参数
 
例子:
import numpy as np
x = np.arange(10)
x=x/77.0
print x

输出结果为:
[b][0.         0.01298701 0.02597403 0.03896104 0.05194805 0.06493506
0.07792208 0.09090909 0.1038961 0.11688312][/b]
 
[b]np.around(x, 3)   #保存为3位小数[/b]

array([0. , 0.013, 0.026, 0.039, 0.052, 0.065, 0.078, 0.091, 0.104, 0.117])
继续阅读 »
numpy.around(nlist, number)
传入一个np的数组和需要保留的位数作为参数
 
例子:
import numpy as np
x = np.arange(10)
x=x/77.0
print x

输出结果为:
[b][0.         0.01298701 0.02597403 0.03896104 0.05194805 0.06493506
0.07792208 0.09090909 0.1038961 0.11688312][/b]
 
[b]np.around(x, 3)   #保存为3位小数[/b]

array([0. , 0.013, 0.026, 0.039, 0.052, 0.065, 0.078, 0.091, 0.104, 0.117]) 收起阅读 »

mongo服务器因为mongod.lock 被锁定无法正常运行

看log文件:
Sun May 20 18:26:04.630 [initandlisten] MongoDB starting : pid=2343 port=27017 dbpath=/home/pi/mongo/db/ 32-bit host=raspberrypi
Sun May 20 18:26:04.631 [initandlisten]
Sun May 20 18:26:04.631 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Sun May 20 18:26:04.631 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Sun May 20 18:26:04.631 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Sun May 20 18:26:04.631 [initandlisten]
Sun May 20 18:26:04.631 [initandlisten] db version v2.4.10
Sun May 20 18:26:04.632 [initandlisten] git version: nogitversion
Sun May 20 18:26:04.632 [initandlisten] build info: Linux bm-wb-04 3.19.0-trunk-armmp #1 SMP Debian 3.19.1-1~exp1+plugwash1 (2015-03-28) armv7l BOOST_LIB_VERSION=1_55
Sun May 20 18:26:04.632 [initandlisten] allocator: system
Sun May 20 18:26:04.632 [initandlisten] options: { dbpath: "/home/pi/mongo/db/", journal: true, logpath: "/home/pi/mongo/mongod.log" }
Sun May 20 18:26:05.956 [initandlisten] journal dir=/home/pi/mongo/db/journal
Sun May 20 18:26:05.957 [initandlisten] recover : no journal files present, no recovery needed
Sun May 20 18:26:06.023 [initandlisten] ERROR: mmap private failed with out of memory. You are using a 32-bit build and probably need to upgrade to 64
Sun May 20 18:26:06.023 [initandlisten] Assertion: 13636:file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
0x662fa8 0x63527c 0x6196c0 0x6197bc 0x409d5c 0x4414fc 0x2ea634 0x2eaa3c 0x2eb55c 0x2ebd98 0x26f998 0x26fb94 0x175a20 0x177bf4 0x152bf0 0x7660e294
mongod(_ZN5mongo15printStackTraceERSo+0x1c) [0x662fa8]
mongod(_ZN5mongo10logContextEPKc+0x110) [0x63527c]
mongod(_ZN5mongo11msgassertedEiPKc+0xc0) [0x6196c0]
mongod(_ZN5mongo18msgassertedNoTraceEiPKc+0) [0x6197bc]
mongod(_ZN5mongo8MongoMMF13finishOpeningEv+0x308) [0x409d5c]
mongod(_ZN5mongo13MongoDataFile12openExistingEPKc+0x9c) [0x4414fc]
mongod(_ZN5mongo8Database16openExistingFileEi+0x23c) [0x2ea634]
mongod(_ZN5mongo8Database12openAllFilesEv+0x24) [0x2eaa3c]
mongod(_ZN5mongo8DatabaseC2EPKcRbRKSs+0x158) [0x2eb55c]
mongod(_ZN5mongo14DatabaseHolder11getOrCreateERKSsS2_Rb+0x500) [0x2ebd98]
mongod(_ZN5mongo6Client7Context11_finishInitEv+0x34) [0x26f998]
mongod(_ZN5mongo6Client7ContextC1ERKSsS3_b+0x78) [0x26fb94]
mongod(_ZN5mongo14_initAndListenEi+0xb00) [0x175a20]
mongod(_ZN5mongo13initAndListenEi+0x14) [0x177bf4]
mongod(main+0x2b8) [0x152bf0]
/lib/arm-linux-gnueabihf/libc.so.6(__libc_start_main+0x114) [0x7660e294]
Sun May 20 18:26:06.035 [initandlisten] warning database /home/pi/mongo/db/ xueqiu could not be opened
Sun May 20 18:26:06.035 [initandlisten] DBException 13636: file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
Sun May 20 18:26:06.036 [initandlisten] exception in initAndListen: 13636 file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information), terminating
Sun May 20 18:26:06.036 dbexit:
Sun May 20 18:26:06.036 [initandlisten] shutdown: going to close listening sockets...
Sun May 20 18:26:06.036 [initandlisten] shutdown: going to flush diaglog...
Sun May 20 18:26:06.036 [initandlisten] shutdown: going to close sockets...
Sun May 20 18:26:06.036 [initandlisten] shutdown: waiting for fs preallocator...
Sun May 20 18:26:06.036 [initandlisten] shutdown: lock for final commit...
Sun May 20 18:26:06.036 [initandlisten] shutdown: final commit...
Sun May 20 18:26:06.036 [initandlisten] shutdown: closing all files...
Sun May 20 18:26:06.037 [initandlisten] closeAllFiles() finished
Sun May 20 18:26:06.037 [initandlisten] journalCleanup...
Sun May 20 18:26:06.037 [initandlisten] removeJournalFiles
Sun May 20 18:26:06.050 [initandlisten] shutdown: removing fs lock...
Sun May 20 18:26:06.050 dbexit: really exiting now

应该是之前没有正常被关闭,导致文件本锁住了。
 
解决办法:
 
1. 先把数据文件备份, --dbpath 的路径整个备份一下, 不然接下来的操作误操作了数据就丢失了
 
2. 运行修复命令:

mongod --dbpath /data/db --repair
 
替换上面的db为您自己的本地路径
继续阅读 »
看log文件:
Sun May 20 18:26:04.630 [initandlisten] MongoDB starting : pid=2343 port=27017 dbpath=/home/pi/mongo/db/ 32-bit host=raspberrypi
Sun May 20 18:26:04.631 [initandlisten]
Sun May 20 18:26:04.631 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Sun May 20 18:26:04.631 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Sun May 20 18:26:04.631 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Sun May 20 18:26:04.631 [initandlisten]
Sun May 20 18:26:04.631 [initandlisten] db version v2.4.10
Sun May 20 18:26:04.632 [initandlisten] git version: nogitversion
Sun May 20 18:26:04.632 [initandlisten] build info: Linux bm-wb-04 3.19.0-trunk-armmp #1 SMP Debian 3.19.1-1~exp1+plugwash1 (2015-03-28) armv7l BOOST_LIB_VERSION=1_55
Sun May 20 18:26:04.632 [initandlisten] allocator: system
Sun May 20 18:26:04.632 [initandlisten] options: { dbpath: "/home/pi/mongo/db/", journal: true, logpath: "/home/pi/mongo/mongod.log" }
Sun May 20 18:26:05.956 [initandlisten] journal dir=/home/pi/mongo/db/journal
Sun May 20 18:26:05.957 [initandlisten] recover : no journal files present, no recovery needed
Sun May 20 18:26:06.023 [initandlisten] ERROR: mmap private failed with out of memory. You are using a 32-bit build and probably need to upgrade to 64
Sun May 20 18:26:06.023 [initandlisten] Assertion: 13636:file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
0x662fa8 0x63527c 0x6196c0 0x6197bc 0x409d5c 0x4414fc 0x2ea634 0x2eaa3c 0x2eb55c 0x2ebd98 0x26f998 0x26fb94 0x175a20 0x177bf4 0x152bf0 0x7660e294
mongod(_ZN5mongo15printStackTraceERSo+0x1c) [0x662fa8]
mongod(_ZN5mongo10logContextEPKc+0x110) [0x63527c]
mongod(_ZN5mongo11msgassertedEiPKc+0xc0) [0x6196c0]
mongod(_ZN5mongo18msgassertedNoTraceEiPKc+0) [0x6197bc]
mongod(_ZN5mongo8MongoMMF13finishOpeningEv+0x308) [0x409d5c]
mongod(_ZN5mongo13MongoDataFile12openExistingEPKc+0x9c) [0x4414fc]
mongod(_ZN5mongo8Database16openExistingFileEi+0x23c) [0x2ea634]
mongod(_ZN5mongo8Database12openAllFilesEv+0x24) [0x2eaa3c]
mongod(_ZN5mongo8DatabaseC2EPKcRbRKSs+0x158) [0x2eb55c]
mongod(_ZN5mongo14DatabaseHolder11getOrCreateERKSsS2_Rb+0x500) [0x2ebd98]
mongod(_ZN5mongo6Client7Context11_finishInitEv+0x34) [0x26f998]
mongod(_ZN5mongo6Client7ContextC1ERKSsS3_b+0x78) [0x26fb94]
mongod(_ZN5mongo14_initAndListenEi+0xb00) [0x175a20]
mongod(_ZN5mongo13initAndListenEi+0x14) [0x177bf4]
mongod(main+0x2b8) [0x152bf0]
/lib/arm-linux-gnueabihf/libc.so.6(__libc_start_main+0x114) [0x7660e294]
Sun May 20 18:26:06.035 [initandlisten] warning database /home/pi/mongo/db/ xueqiu could not be opened
Sun May 20 18:26:06.035 [initandlisten] DBException 13636: file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
Sun May 20 18:26:06.036 [initandlisten] exception in initAndListen: 13636 file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information), terminating
Sun May 20 18:26:06.036 dbexit:
Sun May 20 18:26:06.036 [initandlisten] shutdown: going to close listening sockets...
Sun May 20 18:26:06.036 [initandlisten] shutdown: going to flush diaglog...
Sun May 20 18:26:06.036 [initandlisten] shutdown: going to close sockets...
Sun May 20 18:26:06.036 [initandlisten] shutdown: waiting for fs preallocator...
Sun May 20 18:26:06.036 [initandlisten] shutdown: lock for final commit...
Sun May 20 18:26:06.036 [initandlisten] shutdown: final commit...
Sun May 20 18:26:06.036 [initandlisten] shutdown: closing all files...
Sun May 20 18:26:06.037 [initandlisten] closeAllFiles() finished
Sun May 20 18:26:06.037 [initandlisten] journalCleanup...
Sun May 20 18:26:06.037 [initandlisten] removeJournalFiles
Sun May 20 18:26:06.050 [initandlisten] shutdown: removing fs lock...
Sun May 20 18:26:06.050 dbexit: really exiting now

应该是之前没有正常被关闭,导致文件本锁住了。
 
解决办法:
 
1. 先把数据文件备份, --dbpath 的路径整个备份一下, 不然接下来的操作误操作了数据就丢失了
 
2. 运行修复命令:

mongod --dbpath /data/db --repair
 
替换上面的db为您自己的本地路径 收起阅读 »

斐讯商城积分兑换的鼠标

虽然不用钱,用积分兑换的(1万多的积分)。 
实在是被惊艳了。

IMG_20180519_183123R_副本.jpg

 
渣渣的手感,地摊货色。 轻飘飘的鼠标,表面的漆面也不均匀。滚轮像挪动在有沙子的路面的轮子一样,及其不流畅。
 
通电后,几乎无法再书桌上操作,需要贴上一块平滑的鼠标垫才行,不然简直就是无法操作, 鼠标根本无法定位。
请原谅我这么直接吧。 
继续阅读 »
虽然不用钱,用积分兑换的(1万多的积分)。 
实在是被惊艳了。

IMG_20180519_183123R_副本.jpg

 
渣渣的手感,地摊货色。 轻飘飘的鼠标,表面的漆面也不均匀。滚轮像挪动在有沙子的路面的轮子一样,及其不流畅。
 
通电后,几乎无法再书桌上操作,需要贴上一块平滑的鼠标垫才行,不然简直就是无法操作, 鼠标根本无法定位。
请原谅我这么直接吧。  收起阅读 »

mongo服务启动失败: ERROR: mmap private failed with out of memory

平时在树莓派上开机自动执行以下命令,启动mongo服务
sudo mongod --fork --dbpath /home/pi/mongo/db/ --smallfiles --journal --logpath /home/pi/mongo/log.txt

突然今天发现mongo的服务连不上,看log发现mongo在启动后马上关闭了,提示的错误是在加载一个大的数据文件的时候提示内存不足(坑爹的,树莓派自身内存才1GB,无法扩容)。 
 
错误日志:
Sun May 13 12:08:11.185 [initandlisten] MongoDB starting : pid=1929 port=27017 dbpath=/home/pi/mongo/db/ 32-bit host=raspberrypi
Sun May 13 12:08:11.186 [initandlisten]
Sun May 13 12:08:11.186 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Sun May 13 12:08:11.186 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Sun May 13 12:08:11.186 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Sun May 13 12:08:11.187 [initandlisten]
Sun May 13 12:08:11.187 [initandlisten] db version v2.4.10
Sun May 13 12:08:11.187 [initandlisten] git version: nogitversion
Sun May 13 12:08:11.187 [initandlisten] build info: Linux bm-wb-04 3.19.0-trunk-armmp #1 SMP Debian 3.19.1-1~exp1+plugwash1 (2015-03-28) armv7l BOOST_LIB_VERSION=1_55
Sun May 13 12:08:11.187 [initandlisten] allocator: system
Sun May 13 12:08:11.187 [initandlisten] options: { dbpath: "/home/pi/mongo/db/", fork: true, journal: true, logpath: "/home/pi/mongo/mongod.log" }
Sun May 13 12:08:11.198 [initandlisten] journal dir=/home/pi/mongo/db/journal
Sun May 13 12:08:11.198 [initandlisten] recover : no journal files present, no recovery needed
Sun May 13 12:08:11.238 [initandlisten] ERROR: mmap private failed with out of memory. You are using a 32-bit build and probably need to upgrade to 64
Sun May 13 12:08:11.239 [initandlisten] Assertion: 13636:file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
0x662fa8 0x63527c 0x6196c0 0x6197bc 0x409d5c 0x4414fc 0x2ea634 0x2eaa3c 0x2eb55c 0x2ebd98 0x26f998 0x26fb94 0x175a20 0x177bf4 0x152bf0 0x76556294
mongod(_ZN5mongo15printStackTraceERSo+0x1c) [0x662fa8]
mongod(_ZN5mongo10logContextEPKc+0x110) [0x63527c]
mongod(_ZN5mongo11msgassertedEiPKc+0xc0) [0x6196c0]
mongod(_ZN5mongo18msgassertedNoTraceEiPKc+0) [0x6197bc]
mongod(_ZN5mongo8MongoMMF13finishOpeningEv+0x308) [0x409d5c]
mongod(_ZN5mongo13MongoDataFile12openExistingEPKc+0x9c) [0x4414fc]
mongod(_ZN5mongo8Database16openExistingFileEi+0x23c) [0x2ea634]
mongod(_ZN5mongo8Database12openAllFilesEv+0x24) [0x2eaa3c]
mongod(_ZN5mongo8DatabaseC2EPKcRbRKSs+0x158) [0x2eb55c]
mongod(_ZN5mongo14DatabaseHolder11getOrCreateERKSsS2_Rb+0x500) [0x2ebd98]
mongod(_ZN5mongo6Client7Context11_finishInitEv+0x34) [0x26f998]
mongod(_ZN5mongo6Client7ContextC1ERKSsS3_b+0x78) [0x26fb94]
mongod(_ZN5mongo14_initAndListenEi+0xb00) [0x175a20]
mongod(_ZN5mongo13initAndListenEi+0x14) [0x177bf4]
mongod(main+0x2b8) [0x152bf0]
/lib/arm-linux-gnueabihf/libc.so.6(__libc_start_main+0x114) [0x76556294]
Sun May 13 12:08:11.250 [initandlisten] warning database /home/pi/mongo/db/ xueqiu could not be opened
Sun May 13 12:08:11.251 [initandlisten] DBException 13636: file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
Sun May 13 12:08:11.251 [initandlisten] exception in initAndListen: 13636 file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information), terminating
Sun May 13 12:08:11.251 dbexit:
Sun May 13 12:08:11.252 [initandlisten] shutdown: going to close listening sockets...
Sun May 13 12:08:11.252 [initandlisten] shutdown: going to flush diaglog...
Sun May 13 12:08:11.252 [initandlisten] shutdown: going to close sockets...
Sun May 13 12:08:11.252 [initandlisten] shutdown: waiting for fs preallocator...
Sun May 13 12:08:11.252 [initandlisten] shutdown: lock for final commit...
Sun May 13 12:08:11.252 [initandlisten] shutdown: final commit...
Sun May 13 12:08:11.252 [initandlisten] shutdown: closing all files...
Sun May 13 12:08:11.252 [initandlisten] closeAllFiles() finished
Sun May 13 12:08:11.252 [initandlisten] journalCleanup...
Sun May 13 12:08:11.253 [initandlisten] removeJournalFiles
Sun May 13 12:08:11.263 [initandlisten] shutdown: removing fs lock...
Sun May 13 12:08:11.264 dbexit: really exiting now

看了下mongod的用法,尝试把参数 --journal,去掉,重新运行,然后就可以了。
 
sudo mongod --fork --dbpath /home/pi/mongo/db/ --smallfiles --logpath /home/pi/mongo/log.txt
继续阅读 »
平时在树莓派上开机自动执行以下命令,启动mongo服务
sudo mongod --fork --dbpath /home/pi/mongo/db/ --smallfiles --journal --logpath /home/pi/mongo/log.txt

突然今天发现mongo的服务连不上,看log发现mongo在启动后马上关闭了,提示的错误是在加载一个大的数据文件的时候提示内存不足(坑爹的,树莓派自身内存才1GB,无法扩容)。 
 
错误日志:
Sun May 13 12:08:11.185 [initandlisten] MongoDB starting : pid=1929 port=27017 dbpath=/home/pi/mongo/db/ 32-bit host=raspberrypi
Sun May 13 12:08:11.186 [initandlisten]
Sun May 13 12:08:11.186 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
Sun May 13 12:08:11.186 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
Sun May 13 12:08:11.186 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
Sun May 13 12:08:11.187 [initandlisten]
Sun May 13 12:08:11.187 [initandlisten] db version v2.4.10
Sun May 13 12:08:11.187 [initandlisten] git version: nogitversion
Sun May 13 12:08:11.187 [initandlisten] build info: Linux bm-wb-04 3.19.0-trunk-armmp #1 SMP Debian 3.19.1-1~exp1+plugwash1 (2015-03-28) armv7l BOOST_LIB_VERSION=1_55
Sun May 13 12:08:11.187 [initandlisten] allocator: system
Sun May 13 12:08:11.187 [initandlisten] options: { dbpath: "/home/pi/mongo/db/", fork: true, journal: true, logpath: "/home/pi/mongo/mongod.log" }
Sun May 13 12:08:11.198 [initandlisten] journal dir=/home/pi/mongo/db/journal
Sun May 13 12:08:11.198 [initandlisten] recover : no journal files present, no recovery needed
Sun May 13 12:08:11.238 [initandlisten] ERROR: mmap private failed with out of memory. You are using a 32-bit build and probably need to upgrade to 64
Sun May 13 12:08:11.239 [initandlisten] Assertion: 13636:file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
0x662fa8 0x63527c 0x6196c0 0x6197bc 0x409d5c 0x4414fc 0x2ea634 0x2eaa3c 0x2eb55c 0x2ebd98 0x26f998 0x26fb94 0x175a20 0x177bf4 0x152bf0 0x76556294
mongod(_ZN5mongo15printStackTraceERSo+0x1c) [0x662fa8]
mongod(_ZN5mongo10logContextEPKc+0x110) [0x63527c]
mongod(_ZN5mongo11msgassertedEiPKc+0xc0) [0x6196c0]
mongod(_ZN5mongo18msgassertedNoTraceEiPKc+0) [0x6197bc]
mongod(_ZN5mongo8MongoMMF13finishOpeningEv+0x308) [0x409d5c]
mongod(_ZN5mongo13MongoDataFile12openExistingEPKc+0x9c) [0x4414fc]
mongod(_ZN5mongo8Database16openExistingFileEi+0x23c) [0x2ea634]
mongod(_ZN5mongo8Database12openAllFilesEv+0x24) [0x2eaa3c]
mongod(_ZN5mongo8DatabaseC2EPKcRbRKSs+0x158) [0x2eb55c]
mongod(_ZN5mongo14DatabaseHolder11getOrCreateERKSsS2_Rb+0x500) [0x2ebd98]
mongod(_ZN5mongo6Client7Context11_finishInitEv+0x34) [0x26f998]
mongod(_ZN5mongo6Client7ContextC1ERKSsS3_b+0x78) [0x26fb94]
mongod(_ZN5mongo14_initAndListenEi+0xb00) [0x175a20]
mongod(_ZN5mongo13initAndListenEi+0x14) [0x177bf4]
mongod(main+0x2b8) [0x152bf0]
/lib/arm-linux-gnueabihf/libc.so.6(__libc_start_main+0x114) [0x76556294]
Sun May 13 12:08:11.250 [initandlisten] warning database /home/pi/mongo/db/ xueqiu could not be opened
Sun May 13 12:08:11.251 [initandlisten] DBException 13636: file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information)
Sun May 13 12:08:11.251 [initandlisten] exception in initAndListen: 13636 file /home/pi/mongo/db/xueqiu.5 open/create failed in createPrivateMap (look in log for more information), terminating
Sun May 13 12:08:11.251 dbexit:
Sun May 13 12:08:11.252 [initandlisten] shutdown: going to close listening sockets...
Sun May 13 12:08:11.252 [initandlisten] shutdown: going to flush diaglog...
Sun May 13 12:08:11.252 [initandlisten] shutdown: going to close sockets...
Sun May 13 12:08:11.252 [initandlisten] shutdown: waiting for fs preallocator...
Sun May 13 12:08:11.252 [initandlisten] shutdown: lock for final commit...
Sun May 13 12:08:11.252 [initandlisten] shutdown: final commit...
Sun May 13 12:08:11.252 [initandlisten] shutdown: closing all files...
Sun May 13 12:08:11.252 [initandlisten] closeAllFiles() finished
Sun May 13 12:08:11.252 [initandlisten] journalCleanup...
Sun May 13 12:08:11.253 [initandlisten] removeJournalFiles
Sun May 13 12:08:11.263 [initandlisten] shutdown: removing fs lock...
Sun May 13 12:08:11.264 dbexit: really exiting now

看了下mongod的用法,尝试把参数 --journal,去掉,重新运行,然后就可以了。
 
sudo mongod --fork --dbpath /home/pi/mongo/db/ --smallfiles --logpath /home/pi/mongo/log.txt
收起阅读 »

斐讯天天链H1局域网的传输速度很慢怎么解决?

路由器是斐讯K2,官方宣传的是1200M的传输速度

k2.PNG

 
同一个网段内,连接的台式机和天天链硬盘,实际速度只有2~3M每秒,敢问这样做samba(网络共享)的意义何在?

出书速度.PNG

点击查看大图
继续阅读 »
路由器是斐讯K2,官方宣传的是1200M的传输速度

k2.PNG

 
同一个网段内,连接的台式机和天天链硬盘,实际速度只有2~3M每秒,敢问这样做samba(网络共享)的意义何在?

出书速度.PNG

点击查看大图 收起阅读 »

2018-05-10 操作记录

最近今日操作:
1. 开盘买入了 嘉澳转载 。 因为照片正股涨停开盘。 盘中作了几次T+0. 尾盘继续加仓,因为嘉澳环保 全天都是一字板,所以明天预期也是一字板,至少会高开。 所以明天嘉澳转债也会是高开的。 
明天的计划: 开盘冲高卖出一半嘉澳转债,  观察正股,做T
 
2. 尾盘买入鼎胜新材
理由:昨天和今天已经错过了宏川智慧,而且下午近端次新都在拉。所以想着鼎盛新材也会跟风拉,不过事与愿违,目前小套0.5%。 
明天: 如果次新集体暴跌,割肉。 只有鼎胜暴跌,加仓。冲高不涨停则全部清掉。
继续阅读 »
最近今日操作:
1. 开盘买入了 嘉澳转载 。 因为照片正股涨停开盘。 盘中作了几次T+0. 尾盘继续加仓,因为嘉澳环保 全天都是一字板,所以明天预期也是一字板,至少会高开。 所以明天嘉澳转债也会是高开的。 
明天的计划: 开盘冲高卖出一半嘉澳转债,  观察正股,做T
 
2. 尾盘买入鼎胜新材
理由:昨天和今天已经错过了宏川智慧,而且下午近端次新都在拉。所以想着鼎盛新材也会跟风拉,不过事与愿违,目前小套0.5%。 
明天: 如果次新集体暴跌,割肉。 只有鼎胜暴跌,加仓。冲高不涨停则全部清掉。 收起阅读 »

pymongo连接树莓派的mongo server出现错误

客户端在ubuntu,安装的是pymongo, 服务端在树莓派,运行的是mongod的服务。
 
出现以下的错误:
 /usr/local/lib/python2.7/dist-packages/pymongo/topology_description.pyc in check_compatible(self)
    119         """
    120         if self._incompatible_err:
--> 121             raise ConfigurationError(self._incompatible_err)
    122 
    123     def has_server(self, address):

ConfigurationError: Server at raspberrypi:27017 reports wire version 0, but this version of PyMongo requires at least 2 (MongoDB 2.6).
 
##################### 问题排除 #####################
因为使用ubuntu连接本机的mongd server,没有出现这个问题。 所以问题应该处在版本上。
然后把pymongo的版本降下去,原来是3.6的版本,然后降到3.2. 重试后问题就解决了。
 
sudo pip install pymongo==3.2
 
继续阅读 »
客户端在ubuntu,安装的是pymongo, 服务端在树莓派,运行的是mongod的服务。
 
出现以下的错误:
 /usr/local/lib/python2.7/dist-packages/pymongo/topology_description.pyc in check_compatible(self)
    119         """
    120         if self._incompatible_err:
--> 121             raise ConfigurationError(self._incompatible_err)
    122 
    123     def has_server(self, address):

ConfigurationError: Server at raspberrypi:27017 reports wire version 0, but this version of PyMongo requires at least 2 (MongoDB 2.6).
 
##################### 问题排除 #####################
因为使用ubuntu连接本机的mongd server,没有出现这个问题。 所以问题应该处在版本上。
然后把pymongo的版本降下去,原来是3.6的版本,然后降到3.2. 重试后问题就解决了。
 
sudo pip install pymongo==3.2
  收起阅读 »