关于越狱

今天闲着没事,我将手机升级到iOS 8.1后,尝试了下国人出的越狱,据说,这是第一次由中国人率先出品了越狱的版本,盘古。

越狱过程流畅无比,但是看完越狱后的界面,一朵阴云已经浮上我的心头。在越狱的开始界面上,我明显去掉了“支持盘古,安装PP助手”的选项,然而越狱结果页面,赫然安装了PP助手。接着,我开始在Cydia中安装软件,莫名奇妙,突然打开了App Store,是游戏刀塔传奇的页面。

10分钟后,当App Store再次无故启动,定位到携程的页面的时候,我知道,我在自己的手机里,安装了一个巨大的流氓软件,而且还获得了root权限。我还傻傻的使用它的重置OpenSSH密码功能,我重置的任何密码,都会被它知道,不是么?

技术的运用,真的是存乎一心之间。盘古这种丧心病狂的行为,我已经不能多说什么了,你们势必在自取灭亡的道路上越走越远。以这种方式去运用技术来谋取商业利益,我也只能说,我羞于与这样的人为伍。

祝盘古早日倒闭。

一个14岁的人怎样学习机器学习最好?

如果你正在斯坦福、Coursera或者可汗学院学习在线课程,那么这种开始方式,已经很好了。

你可能还需要尽可能多地去学习数学(包括统计),因为数学是机器学习的基础。

我非常推荐的一本书是Programming Collective Intelligence。这本书的数学很浅,只需要基本理解Python就可以通读此书而没有什么障碍。如果你已经在学习大学级别的机器学习课程,你可能会觉得这本书对你来说太过基础了一点。

Programming Collective Intelligence: Building Smart Web 2.0 Applications: Toby Segaran

对于一些更高级的话题,你可以试试如下的书,基本按照需要数学知识的多少来排序:

Amazon.com: Risk Assessment and Decision Analysis with Bayesian Networks (9781439809105): Norman Fenton, Martin Neil: Books

Artificial Intelligence: A Modern Approach (3rd Edition): Stuart Russell, Peter Norvig: 9780136042594: Amazon.com: Books

Learning Bayesian Networks: Richard E. Neapolitan: 9780130125347: Amazon.com: BooksEdit

Quoar原帖

Updated:

另一个回帖的人,认为学习Machine Learning没那么简单,并提出该学科是一个高度交叉学科,想要深入,需要准备好很多先修课程的知识,包括但是不限于:

1. 微积分。最好所有的知识都具备,极限(Limits),differentiation,integration。
2. 线性代数。甚至要理解最简单的回归模型,都需要它的知识。通常是机器学习课程最先教的东西。
3. 统计学。超级重要。机器学习其实是一族统计分析的方法,所以它是在统计学的根基上发展起来的。对所有的统计分析方法,有一个很好的掌握,是绝对必须的。
4. 计算机科学基本知识。具体说,算法,包括数值算法(从牛顿法,到蒙特卡洛模拟技术)。这与机器学习在很多地方是重合的,而且经常被用于机器学习的一些基础算法。
5. 编程。机器学习是一个应用学科,你需要掌握一门编程语言来运行算法。Python学习简单,在机器学习专家中,应用广泛。

从头开始学C语言:char* 和 char []

想要把丢掉的东西捡起来,还是很辛苦啊,今天我就发现,我连char* 和 char []的区别都不知道。

  1. #include <stdio.h>
  2.  
  3. int main(int argc, char* argv[]) {
  4.     char* buf1   = "this is a test";
  5.     char  buf2[] = "this is a test";
  6.     printf("size of buf1: %d\n", sizeof(buf1));
  7.     printf("size of buf2: %d\n", sizeof(buf2));
  8.     return 0;
  9. }

结果是:

  1. $ > ./main
  2. size of buf1: 4
  3. size of buf2: 15

在Linux系统中/bin/false和/sbin/nologin的区别

http://serverfault.com/questions/519215/what-is-the-difference-between-sbin-nologin-and-bin-false

http://unix.stackexchange.com/questions/10852/whats-the-difference-between-sbin-nologin-and-bin-false

在Mac上使用Homebrew的时候调整PATH顺序

在Mac上,管理命令行软件包,使用Homebrew,它的原理主要就是将软件安装在一个固定的目录,然后将二进制文件的路径,加入到系统的PATH中,
这样,系统就可以正确识别到命令。PATH的顺序会影响到系统搜索命令的顺序。

brew使用的/usr/local/bin默认已经在Mac系统的PATH里了,但是在最后面。通过 echo $PATH命令可以查看。

但是对于想要使用新版本的人来说,这就不方便了。所以,就要想办法调整PATH的顺序。

sudo vi /etc/paths

就可以在里面调整PATH的搜索顺序了,这个我特意去Linux系统里看了一下,不是这样的,看来是Mac系统特有的。
一般在Linux系统里调整PATH顺序都是在 .bash_profile或者 .bashrc里面,执行

export PATH=/usr/local/bin:$PATH

MySQL的主从复制

如果数据库只有一份,那就是数据存储的单点,对于要求可靠性的服务来说,就存在一个单点故障的可能性,这个时候,我们就要通过复制镜像,来解决单点故障。复制还有一个额外的好处,就是可以根据主从,做读写分离,这样,就不会在写入的时候,因为锁表,而降低MySQL的并发性能,所以MySQL复制是MySQL中非常基础的一种操作。

怎么配置

配置Master

首先,要做的是确定一个Master,对于充当Master的MySQL Server来说,需要一些特定的配置才能实现,一个是开启binlog,另一个是要设置server-id。


[mysqld]
log_bin = mysql-bin
server-id = 1

配置Slave

配置Slave,对于Slave来说,要配置的就是一个唯一的server-id。这个id不能跟Master相同,而且,多个Slave也不能相同。配置完毕后重启。


[mysqld]
server-id = 2

创建User

在Master创建一个user,专门用于进行复制用途的。因为在Slave上,user和password会被用明文存储,所以,这个user的权限要尽可能的小,一定要不同于超级用户。


create user repl@'your.domain' identified by 'password';
grant replication slave on *.* to repl@'your.domain';

注意,这里第2句,grant语句,必须是赋权限给*.*的,因为replication slave权限是一个global privileges,所以,必须这样,如果想要限制权限在一个比较小的范围,不想复制所有的db的话,可以在my.cnf增加配置项replicate-do-db和binlog-do-db来限定数据库的范围。

获取Master的位置

在Master的数据库上,知行flush tables with read lock;语句,然后知行show master status;这时候,就可以看到当前的binlog文件名和当前知行的sql语句位置。将文件名和执行的位置都记录下来。

这时候,如果Master的数据库的内容非空的话,应该做的事情,就是使用mysqldump来导出数据。空数据库的话,就没必要做什么事情了。

建立连接

在上文空数据库的情况下,是很简单的,stop slave,直接在slave上使用change master to语句,将各项参数设置完毕后,就可以执行start slave了。

如果Master原来有数据,应该把刚才生成的dump文件,传送到slave上,然后首先stop slave,然后导入dump的数据,然后执行change master to语句,将刚刚dump前记录的bin文件和位置都设置正确,然后才能start slave,其实也不麻烦。

状态检查

在比较理想的世界里,到这里,我们的工作就结束了,但是,世界是不理想的,因为各种原因,这种replication的联系,经常会中断的。所以要时不时检查这个联系。

在Master上可以执行show master status看到的东西和上面看到的是一样的。

在Slave上可以执行show slave status,可以看到很多的信息和错误提示。一般情况下是没错的,一旦发生错误了,就应该从这里获取相应的信息来解决问题。

PHP on Java

http://quercus.caucho.com/

昨天晚上,仅仅是出于好奇的搜了一下,竟然真的有这种项目的存在,在JVM之上,实现了一个PHP。人类已经不能阻挡Java的节奏了啊。

关于这个,要在以前的我一定会嗤之以鼻,这算什么东西呢,不伦不类的。但是现在的话,也不得不静下心来想想,为什么。

PHP的门槛低,这个主要体现在,第一,程序员多,因为PHP的成功,为全世界培养了海量的程序员,不敢说多靠谱,至少数量多的,那么对于某些企业来说,招聘PHP程序员会比Java容易一些;第二,部署容易,PHP之所以流行,这也是至关重要的一个原因,只要拷贝文件即可;第三,成熟的应用很多,现在Web产品里,面向个人的应用里,很多都是PHP开发的,如果想直接运营这么个产品,直接拿过来,是很理智的。

Java技术成熟,Java的技术太过悠久了,积累了无数的可以使用的类库,还有就是中间件。做这么一个东西,也是一个合理的想法吧,博采众家之长嘛,至少可以融汇Java和PHP的优点。

提高性能,PHP是解释执行的,但是Java是编译执行的,至少是存储成中间码再执行。两者结合的话,PHP可以从解释执行,进化到字节码执行。号称Drupal可以这个平台上,性能提高4X。并非没有可能,如果再左以连接池啊等等东西的话。

当然了,银弹是没有的,但是我觉得这还是一个很好的尝试!而且我看2014年竟然还发布版本了,至少这个还是保持活跃的。知道一下这个东西也好,或许哪天会用到。

Page 1 of 3112345678910...2030...Last »

无觅相关文章插件,快速提升流量