-
-
-
最近在公司做了一些python的技术分享,都是比较基础的东西,用到的一些题材还挺有意思的,和大家分享。
本文是系列的第三篇。
-
最近在公司做了一些python的技术分享,都是比较基础的东西,用到的一些题材还挺有意思的,和大家分享。
本文是系列的第二篇。
-
最近在公司做了一些python的技术分享,都是比较基础的东西,用到的一些题材还挺有意思的,和大家分享。
本文是系列的第一篇。
-
必须保证你改的代码,可以很方便地看到结果(或影响)。
一次改动太多的地方,就无法判断结果的变化是哪处改动造成的。
- 分离有问题的部分,做手术的创口尽可能小。
问题的出现往往是重构的机会,一个bug往往能牵出更多的bug。
-
有的时候用关键词描述问题能更好地帮你看清问题的本质,即:要描述或定义我的问题,哪些词是**不可能绕过去**的?
这时候,对结果的分析就很重要,有助于你认识到自己做了哪些假设,哪些假设是符合意图的,哪些是不合理的。
2.你提问的方式正确,但是问题本身,不是你想的那样,你需要重新审视你的问题。
再如,位置相关的搜索,如北京周边的美食、酒店什么的,百度的服务一般优于google的。
-
作者是微软的一个游戏研究人员,行为学和脑科学博士,讲的是如何把玩家钩在游戏上,欲罢不能。
> “每个游戏场景都是时间、行动与奖励的有机体,你可以随意操控它们之间的排列组合,让玩家按预先设定的模式来行动。
请注意,他的文章根本没提到“好玩”或者“愉悦”,这不是他的研究领域。
所以他们必须改变游戏的机制,让玩家重复地做同样的事,一遍又一遍,欲罢不能。
只能通过花费时间、精力和技巧才能得到的东西,必定是有价值的,无论是它是钻石做的,还是二进制码或者牛肉筋。
设计者绝对是故意的,迎合人们收集的自然本能,让玩家是为了收集而收集。
游戏中充满了各种宝箱,里面可能有一个随机的物品,要打开箱子,你需要钥匙。
除了利用到人的赌博天性,成千上万的玩家都在彼此竞争,看谁能开最多的箱子。
同样的,竞技性的游戏,如现代战争2,是缺乏强健体魄的人们的运动。
大多数人,尤其是年轻的游戏人群,都缺乏这三样东西,工作中如此,生活中的其他方面亦如此。
-
节点的颜色由数据实体的`type`属性决定,不同type即颜色之间的节点,使用一种特殊type的节点连接,这种节点的type是relationship(关系)。
传统的展示元素和关系的视觉组件有列表、树等,但是所能展示的拓扑关系必须是有向无环图(DAG),通俗的比喻,张三的儿子的儿子不可能是他爹。
现实生活中很多元素间的关系满足DAG, 但是不满足例子也很多,比如朋友关系,张三的朋友的朋友可能也是张三的朋友,这在关系上就形成了一个环,不满足DAG。
* 左键单击节点: 选中该节点,可能会弹出可供扩展的关系节点(如选中歌曲节点,弹出歌曲所在的专辑和歌手)
-
加密字符串的第一位是选定的数字n,接下来按从左往右、从上往下的顺序把方阵中的字符写下来,如果方阵的最后没有写满的话,最后要写下空位的个数m。
该字符串长度为84,m = n - (84 + 1) % n =3 。
-
下载高音质歌曲是收费的,而且官方软件(虾客)不好用。
原因是我有在手机听歌的习惯,但是没有开通3G服务,据说地铁里信号不好。
然而如果你想下载某张精选集里的歌曲,或者歌曲的歌词等,这个软件爱莫能助,当时的LKM没有这些功能。
界面部分LKM采用.NET 3.5下的WinForm,而我们用的是WPF(.NET 4.0推出的界面库)。
xiami_downloader经过了几次大的重构,增加了很多新的功能,界面更是换了不知道多少次。
做自己每天都会使用的软件,是一件很快乐的事。
百度网盘采用的是更为标准的、继承自dropbox的RESTful API,即所谓的PCS。
-
在两个分支间切换很不方便:在gh-pages写了一些blog, 然后切回master进行一次push,才能让服务器重新build。
首先到github.com的repo设置里面把默认分支设为gh-pages,然后删除master分支,最后回到本地,用 `git branch -D master` 删除master分支。
-
- d3.parsets.css
- d3.v3.min.js
- d3.parsets.js
{% highlight text %}
{{ page.title }},d3
{{ page.title }},visualization
{% endhighlight %}
{% highlight javascript %}
{%raw%}
var csv="post,tag";
{% for post in site.posts %}
{% for tag in post.tags %}
csv+=" {{post.title}},{{tag}}";
{% endfor %}
{% endfor %}
{%endraw%}
{% endhighlight %}
{% highlight javascript %}
var chart = d3.parsets()
.tension(0.8)
.width("800")
.height("480")
.dimensions(["tag","post"]);
var vis = d3.select("#vis").append("svg")
.attr("width", chart.width())
.attr("height", chart.height());
var parsed_csv=d3.csv.parse(csv);
vis.datum(parsed_csv).call(chart);
{% endhighlight %}
{% highlight javascript %}
{%raw%}
var posts={};
{% for post in site.posts %}
posts["{{post.title}}"]={
"url":"{{post.url}}",
};
{% endfor %}
vis.selectAll(".category text").on("click",function(d){
if(!
-
- d3.parsets.css
- d3.v3.min.js
- d3.parsets.js
{% highlight text %}
{{ page.title }},d3
{{ page.title }},visualization
{% endhighlight %}
{% highlight javascript %}
{%raw%}
var csv="post,tag";
{% for post in site.posts %}
{% for tag in post.tags %}
csv+=" {{post.title}},{{tag}}";
{% endfor %}
{% endfor %}
{%endraw%}
{% endhighlight %}
{% highlight javascript %}
var chart = d3.parsets()
.tension(0.8)
.width("800")
.height("480")
.dimensions(["tag","post"]);
var vis = d3.select("#vis").append("svg")
.attr("width", chart.width())
.attr("height", chart.height());
var parsed_csv=d3.csv.parse(csv);
vis.datum(parsed_csv).call(chart);
{% endhighlight %}
{% highlight javascript %}
{%raw%}
var posts={};
{% for post in site.posts %}
posts["{{post.title}}"]={
"url":"{{post.url}}",
};
{% endfor %}
vis.selectAll(".category text").on("click",function(d){
if(!
-
- d3.parsets.css
- d3.v3.min.js
- d3.parsets.js
{% highlight text %}
{{ page.title }},d3
{{ page.title }},visualization
{% endhighlight %}
{% highlight javascript %}
{%raw%}
var csv="post,tag";
{% for post in site.posts %}
{% for tag in post.tags %}
csv+=" {{post.title}},{{tag}}";
{% endfor %}
{% endfor %}
{%endraw%}
{% endhighlight %}
{% highlight javascript %}
var chart = d3.parsets()
.tension(0.8)
.width("800")
.height("480")
.dimensions(["tag","post"]);
var vis = d3.select("#vis").append("svg")
.attr("width", chart.width())
.attr("height", chart.height());
var parsed_csv=d3.csv.parse(csv);
vis.datum(parsed_csv).call(chart);
{% endhighlight %}
{% highlight javascript %}
{%raw%}
var posts={};
{% for post in site.posts %}
posts["{{post.title}}"]={
"url":"{{post.url}}",
};
{% endfor %}
vis.selectAll(".category text").on("click",function(d){
if(!
-
comments :
provider : disqus
disqus :
short_name : YOUR_DISQUS_SITE_NAME
你需要去disqus.com注册一个用户,然后在dashboard中新建一个站点,注意把`short_name`设置为配置文件中的那个`YOUR_DISQUS_SITE_NAME`。
$ CHCP 65001
如果是在git bash中的话,需要设置如下环境变量:
export LC_ALL = enUS.UTF-8
export LANG = enUS.UTF-8
然后就可以 `jekyll serve --watch`了。
comments :
provider : disqus
disqus :
short_name : YOUR_DISQUS_SITE_NAME
你需要去disqus.com注册一个用户,然后在dashboard中新建一个站点,注意把`short_name`设置为配置文件中的那个`YOUR_DISQUS_SITE_NAME`。
如果是在git bash中的话,需要设置如下环境变量:
export LC_ALL = enUS.UTF-8
export LANG = enUS.UTF-8
-
```
:bulk_threshold: 1000
:backtrace: false
gemcutter_key: XXXXX
gem: --no-ri --no-rdoc
:benchmark: false
:verbose: true
:update_sources: true
:sources:
- http://gems.rubyforge.org/
- http://gems.opscode.com
```
主要起作用的是`gem: --no-ri --no-rdoc`,少下载了很多文档。