![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Programming
socratescli
不为至大所拘,而为至小所含,这才是属神的
展开
-
在Javascript中对emoji字符操作的方式
对于含有emoji的字符串,Javascript是不能直接完成正确的随机访问的。比如对`s = '😀😃😄😁🙂’来说,我可以看到下面的结果也就是说,对于含有emoji的字符串,直接通过默认的字符串操作机制来访问可能会导致一些问题。为了避免出现这些问题,我们可以考虑采用一些方法先把字符串转换成一个Array,Array的每个元素都是一个unicode。原创 2024-05-17 17:46:18 · 289 阅读 · 0 评论 -
实现一个带有存储状态的Python函数
方法作为函数的入口,并且可以在这个方法里访问和操作类的属性,从而就通过一个类的来模拟了一个带有状态的函数。原创 2024-05-16 10:19:16 · 180 阅读 · 0 评论 -
开发与运维中常用的各种ssh的技巧汇总
ssh是开发、运维以及各种日常任务中最经常用到的工具之一,通过ssh可以完成的事情也非常多,当然使用起来确实有时候也有一些费解。这篇文章是一个文章指针,主要是把介绍ssh各种使用场景的文章汇集起来,在需要的时候随时查阅使用。通过公钥私钥和进行登录通过公钥和私钥登录服务器是一种比密码安全很多的方式,相关的介绍性文章如下:查看本机ssh公钥,生成公钥使用ssh公钥实现免密码登录使用ssh agentssh agent可以避免把自己的私钥拷贝到远程服务器中,也是一种比较好的安全实践。ssh a原创 2020-05-27 19:21:38 · 514 阅读 · 0 评论 -
一些常用软件的镜像的更换方法汇总
假设镜像的地址为mirror_url,下面列举一些主要平台的镜像地址平台方法备注nvmNVM_NODEJS_ORG_MIRROR=<mirror_url> nvm install <version>npmnpm --registry <mirror_url> install <package> npm config set registry <mirror_url>yarnyarn config s原创 2020-05-13 20:38:29 · 407 阅读 · 1 评论 -
在Python中以"foo.bar.baz"的方式访问嵌套dict中的内容
我们首先举一个多级嵌套的dict的例子,后面也会用这个例子来结合代码说明:obj = { "foo": { "bar": { "baz": 5 } }}javascript中,可以通过lodash的get方法来获取上面的object中形如"foo.bar.baz"的路径所对应的值,比如_.get(obj, "foo.bar.baz")。那么在Python...原创 2020-03-03 08:04:02 · 276 阅读 · 0 评论 -
为什么在Python代码中使用局部变量会更快
在Python开发中,一个常见的效率优化方法就是在进入循环之前,使用局部变量来替代全局变量。具体的,可以对比下面的两个函数:g = 2def local_var(): global g l = g for i in range(100000000): i % l i + ldef global_var(): global g...原创 2020-01-19 11:22:55 · 511 阅读 · 0 评论 -
在Python中动态绑定property
在Python中可以把property动态的绑定的object的继承类中,并且可以定义带有参数的get和set方法。比如,我们定义了全局变量g,然后通过两个方法来存取g的内容def get_g(self): return gdef set_g(self, _g): global g g = _g定义一个object的继承类A:原创 2009-11-14 22:41:00 · 833 阅读 · 0 评论 -
mysql的slow-query中的一个现象
在mysql的slow query log中,可能存在类似这样的特殊记录: # Time: 100127 23:17:01# User@Host: root[root] @ [127.0.0.1]# Query_time: 18446744073709.351562 Lock_time: 0.000129 Rows_sent: 1 Rows_examined: 11030原创 2010-01-28 15:49:00 · 649 阅读 · 0 评论 -
通过CouchDB-Python连接带有用户名/密码验证的数据库
在CouchDB-Python中,连接带有basic HTTP验证的数据库(比如cloudant)有点儿麻烦,因为用Server或者Database不能直接打开类似于 http://username:password@servername:5984/dbname/ 这样的URI。 我们需要采取下面的方法才能完成:from couchdb import *#connect to a原创 2009-12-08 20:36:00 · 1787 阅读 · 0 评论 -
解决安装pytc后的一个ImportError
在安装Tokyo Cabinet的python接口pytc后,在import pytc时,遇到了下面的问题 Traceback (most recent call last): File "", line 1, in File "build/bdist.linux-x86_64/egg/pytc.py", line 7, in File "build/bdist.linux-x8原创 2010-03-03 14:13:00 · 873 阅读 · 0 评论 -
对mongodb导出的.bson文件直接进行查询
如果要查询通过mongodb的mongodump导出的.bson文件(比如历史备份),是一件比较麻烦的事情。简单写了一个工具sonq,可以针对.bson文件直接进行查询。首先可以通过pip进行安装sudo pip install sonq然后就可以通过sonq这个命令行工作对.bson文件进行查询了,下面举几个例子。直接输出source.bson文件中的内容,不做过滤:so...原创 2018-07-23 23:02:31 · 4676 阅读 · 2 评论 -
一个用于让国家统计局数据展示的稍微友好一些的Tampermonkey脚本
国家统计局的数据展示也就是国家数据(http://data.stats.gov.cn),在直接展示数据时,采用的样式太窄了,两边的空白都不能利用,很不方便阅读,比如很多表头都不能展示全。所以我简单写了一个脚本,可以通过Tampermonkey在Chrome加载使用,让数据在现代的比较宽的屏幕上可以稍微舒服一些的展示出来。这个脚本可以直接从https://gist.github.com/soc...原创 2019-05-06 23:01:45 · 287 阅读 · 0 评论 -
解决Appengine 1.2.5版报错 KeyError: 'simplejson//_speedups.pyd'
在Windows下将Google Appengine SDK升级到1.2.5后,启动dev_appserver可能会出现如下错误: File "c:/python25/lib/site-packages/pkg_resources.py", line 1322, in _extract_resource zip_stat = self.zipinfo[z原创 2009-09-22 13:04:00 · 959 阅读 · 0 评论 -
用Elixir在多个文件用编辑数据库模型
我们可以通过Elixir对SqlAlchemy在多个文件中编辑数据库模型,即在model.py之外,通过专门的文件中来保存数据模型。举一个例子来说明,我们要在model.py中创建一个类Foo,然后在另外一个文件中创建一个类Bar,这两个类之间有着从Foo到Bar的OnToMany的关系。 model.py metadata.bind = "sqlite:///test.sql原创 2009-09-08 00:34:00 · 649 阅读 · 0 评论 -
Ruby中的二维数组初始化的一个小问题
我们在Ruby中初始化一个5*5的二维数组,可以写成 data = Array.new(5, Array.new(5, 0)) 也可以写成 data = Array.new(5){ Array.new(5, 0)} 初始化完成后,我可以随便给数组中某个元素赋格值,比如 data[2][2] =原创 2008-06-13 16:02:00 · 3037 阅读 · 0 评论 -
让Meebo自动变换背景的客户端脚本
Meebo是一个非常好的Web集成IM,可惜就是不能自定义的变换背景,我写了一个js的客户端脚本实现了这一功能,可以放在类似GreaseMonkey或者IE7 Pro的User Script里。代码如下:function GetRandomNum(Min,Max){ var Range = Max - Min; var Rand = Math.random();原创 2008-10-21 16:34:00 · 766 阅读 · 0 评论 -
关于Visual Studio中C++选项/MT和/MD的配置
配置VisualStudio的C++的编译选项时,在Project的Configuration Properties->C/C++/->CodeGeneration中,有关于RuntimeLibrary的设置。在Release方式下,可以设置为/MT和/MD(在Debug模式下设置的方式为/MTd和/MDd),如果该选项设置不对,可能导致出现链接错误(***符号在某.lib中已定义原创 2009-01-04 16:11:00 · 6922 阅读 · 0 评论 -
Google C++ Test Framework (一)通过ASSERT和EXPECT宏完成的测试
Google C++ Test Framework(以下简称gtest)是Google提供的一套C++测试框架。其官方地址为 http://code.google.com/p/googletest/ 。(一)通过ASSERT和EXPECT宏完成的测试gtest用TEST宏来完成最基本的测试,其实用的方法如下:TEST(CASE_NAME, TEST_NAME){ ...//ASSERTs o原创 2009-01-06 14:31:00 · 2199 阅读 · 0 评论 -
Google C++ Test Framework (二)为用例中的测试进行统一的配置
gtest提供了一种机制,可以为同一用例中的全部测试设定一个相同的初始环境,并且在完成每一测试后进行后处理。可以继承testing::Test类,将类名指定为用例的名字,并在子类中实现两个虚函数SetUp和TearDown(其中SetUp用于初始化,而TearDown则用于释放空间之类的收尾操作),然后可以用TEST_F宏代替TEST宏进行测试。示例如下:#include #include #in原创 2009-01-08 13:04:00 · 1019 阅读 · 0 评论 -
Cloudera提供的Hadoop视频教程
Hadoop是根据Google的MapReduce并行编程方法用Java编写的开源系统,可以部署在大规模的计算平台上,从而提高运算效率。但是部署Hadoop本身的设置很复杂,所以,Cloudera公司提供一个安装设置更为便捷的Hadoop版本,并且在提供了若干视频教程。 各个教程如下Thinking at Scale(20min)slidesCloude原创 2009-03-17 10:20:00 · 5731 阅读 · 0 评论 -
关于ASP.NET的Preventing Attack Script机制
在ASP.NET提交表单时,如果表单的内容中包含HTML代码,在默认情况下,会因为Preventing Attack Script机制而抛出异常,并出现如下的错误: A potentially dangerous Request.Form value was detected from the client 想要避免这种这种情形,可以通过在页面代码的Page元标签中加入:原创 2009-03-26 22:31:00 · 541 阅读 · 0 评论 -
关于实现Facebook chat的部分资源
列举若干用于实现Fabebook Chat的网络资源,可以用于在自己应用上增加Facebook chat的相关模块: 1.一个对facebook chat原理的相关说明,及其ruby源代码说明文档 http://coderrr.wordpress.com/2008/05/06/facebook-chat-api/ruby源码 http://github.com/coder原创 2009-07-23 21:58:00 · 823 阅读 · 0 评论 -
获取网址缩短服务所对应的真实网址
在Twitter等微博客服务中,使用了大量的网址缩短服务来替换冗长的实际网络地址。目前的网络中有大量的网址缩短服务,比如tinyurl.com,bit.ly,ow.ly,is.gd,nn.nf等等。下面,我们通过python,来探讨如何获取网址缩短服务的实际网络地址。最简单的,我们可以直接通过urlopen来完成,比如from urllib2 import urlopenurl = url原创 2009-05-23 16:33:00 · 896 阅读 · 0 评论 -
配置Disco——基于erlang的map-reduce架构
Disco是一套轻量的Map-Reduce系统,其核心部分由并行性能很高的Erlang语言开发,其外部编程接口为易于编程的Python语言。Disco可以实现在集群和多核计算机上的部属,并可以部署在Amazon EC2上。下面我们将介绍一下如何在Ubuntu系统上配置Disco系统。Disco可以在其官方网站(http://discoproject.org/)上下载,目前的最高版本原创 2009-05-26 16:07:00 · 3686 阅读 · 1 评论 -
关于TurboGears中多级URL的处理
在TurboGears中,通过继承controllers.RootController类来处理URL请求,比如默认的:class Root(controllers.RootController):而在commands.py中,通过 turbogears.start_server(Root()) 来启动,这里Root类就作为了这个网络应用的根目录,即/。在Root中,可以通过原创 2009-08-08 11:43:00 · 611 阅读 · 0 评论 -
在Java中读写UTF-8编码文件
在C#中,采用System.IO.StreamReader和System.IO.StreamWriter直接读写UTF-8编码的文件,因为在这两个类可以指定读取或者写入文件的编码格式,而其默认编码则是UTF-8。而在Java中,如果我们用java.io.FileReader或者java.io.FileWriter来读写文件的话,固然我们可以通过java.io.BufferedRead原创 2008-07-27 22:43:00 · 6013 阅读 · 0 评论