最近入手了树莓派3代,从树莓派出世到现在(2016.04),总共买了共4片各型号的树莓派,算不上狂热的爱好者,但也算是个比较热心的用户了吧。
在此记录一些树莓派3代的使用笔记。
原创
[原创] 解决错误“class "javax.servlet.FilterRegistration"'s signer information does not match signer information of other classes in the same package”
这是一个jar包冲突引起的Java程序错误,而且是runtime的错误,编译的时候不出错,一运行起来就挂。
[原创] 在IntelliJ IDEA中使用插件查看Maven conflict
如果Maven引入的jar包有冲突,可以使用IntelliJ IDEA的Maven Helper插件来帮助分析。
下面以IntelliJ IDEA 15.0.3为例,说明如何安装及使用这个插件。
[原创] 用人话解释机器学习中的Logistic Regression(逻辑回归)
友情提示:如果觉得页面中的公式显示太小,可以放大页面查看(不会失真)。
Logistic Regression(或Logit Regression),即逻辑回归,简记为LR,是机器学习领域的一种极为常用的算法/方法/模型。
你能从网上搜到十万篇讲述Logistic Regression的文章,也不多我这一篇,但是,就像我写过的最优化系列文章一样,我仍然试图用“人话”来再解释一遍——可能不专业,但是容易看得懂。那些一上来就是几页数学公式什么的最讨厌了,不是吗?
所以这篇文章是写给完全没听说过Logistic Regression的人看的,我相信看完这篇文章,你差不多可以从无到有,把逻辑回归应用到实践中去。
[原创] 为树莓派添加 DS1302 实时时钟(硬件时钟)/ Add a DS1302 RTC for RPi
『1』软硬件环境
本文适用于:
Raspberry Pi:Model B/B+(已测),其他型号理论上也可以,只不过可能要修改一下后面说到的shell脚本中的端口号
OS:Arch Linux ARM
『2』实时时钟与树莓派的关系
树莓派为了节约成本以及减小体积,没有板载的实时时钟(real-time clock,RTC),或者叫硬件时钟,因此,如果你没有配置过树莓派自动从网络同步时间的话,或者就算你配置好了自动从网络同步时间、但没有网络可用的话,那么,你设置好的系统时间,在重启树莓派之后就会丢失。而我们家用的电脑之所以在开机之后时间仍然正确,是因为电脑主板上有实时时钟。
[原创] 在Github上添加SSH key
如果你在Github上有一个项目,为了能让这个项目可以在多台计算机上开发,需要把目标计算机的SSH key添加到你的Github账户中,否则你以SSH方式git clone时会提示无权限,例如你可以试试:
git clone git@github.com:codelast/raspberry-pi.git
会输出类似于这样的错误信息:
Permission denied (publickey).
文章来源:http://www.codelast.com/
所以下一步就要在Github中添加SSH key,让你可以在目标计算机上进行开发以及代码提交。
其实Github上已经有完整的教程了,只不过我记性不好,每次都要去翻Github教程,所以特地写下来。
✔ 检查SSH key是否已经存在
检查文件 ~/.ssh/id_rsa.pub 是否存在,如果存在,就不用生成一个新的SSH key了,直接跳到下面的第3步。
如果该文件存在,但你不想使用它的话,那么就按下面的做法另外生成一个文件也可以(例如 ~/.ssh/id_rsa_github.pub)。
文章来源:http://www.codelast.com/
✔ 生成一个新的SSH key
如果第1步中的SSH key不存在,则需要生成:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
其中,your_email@example.com要修改成你的邮箱地址。
回车后输出如下:
… Read MoreGenerating public/private rsa key pair.
[原创] 让ThreadPoolExecutor的workQueue占满时自动阻塞submit()方法
使用Java的ThreadPoolExecutor可以并发地执行一些任务,它的基本用法是:
(1)创建一个 ThreadPoolExecutor 对象
ThreadPoolExecutor executor = new ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(workQueueSize));
[原创] 使用ThreadPoolExecutor产生的 OutOfMemoryError: unable to create new native thread 错误
最近,在使用Java的ThreadPoolExecutor来实现一个并发功能的时候,发现程序刚执行起来不久,就提示了错误:
OutOfMemoryError: unable to create new native thread
并且服务器立即陷入类似于“无响应”的状态,无法用Ctrl+C结束掉我的Java程序,按Ctrl+C的时候,命令行只是不断地打印出类似于下面的消息:
Exception java.lang.OutOfMemoryError occurred dispatching signal SIGINT to handler- the VM may need to be forcibly terminated
[原创] 树莓派Arch Linux ARM系统更新后无法ssh登录的故障排查
本来用得好好的树莓派(Arch Linux ARM),没啥事随手打了一条系统更新的命令:
pacman -Syu
结果重启之后无法用ssh以root用户登录树莓派了,提示错误如下:
Permission denied, please try again
这分明就像是密码错误导致的嘛!
[原创] 树莓派出现在科技美剧《Mr. Robot》中
科技美剧《Mr. Robot》(黑客军团)第1季第4集里,第一次出现了树莓派的身影,虽然我不是一个美剧达人,但这还是我第一次看到树莓派被用在了剧情里,深感好莱坞的编剧们真是紧跟时代潮流啊。
[原创] 树莓派视频教程
我为极客学院录制了一个系列的树莓派视频教程,总共有6节大课。
该系列课程内容是基于树莓派Model B+型号的,而本站里我以前写过的很多树莓派文章是基于树莓派Model B型号(较老)的,因此,我录制的这些课程内容更“新”一些,适合于初学者学习。
由于是商业用途的课程,所以极客学院只把每节大课的第一课时设置为可以免费观看的,并且由于有协议约束,我也不能把教学视频发布到其他任何一个网站上,在这里我要向大家说抱歉,希望大家能支持极客学院。
但是,作为一个知识共享的拥护者,我希望每个人都能得到尽可能多的知识,因此,如果有时间的话,我会在本站写一些类似的技术文章出来。并且,本系列教程中的所有代码,都上传到了Github,你可以到这里下载。