在前面的文章中,衣服自己洗提及为了打开自带的Led灯,而不得不安装golang的环境,后来在官网上发现了他们有开源python版本的库:pyFireflyP,开源地址为https://github.com/T-Firefly/pyFireflyP。
对于linux系统而言,很多都已经自带python了,而且安装也比golang容易的多。
从github上clone或者下载这个包,然后进入到目录下安装:
cd pyFireflyP
sudo python setup.py install
我的Firefly运行后会报错,显示FireflyP do not support <Rockchip (Device Tree)>! 应该是系统内核没有正确赋值,按照官方的说法,只需要修改setup.py文件,把 fplat=check_plat() 直接改成:fplat=’rk3288’,然后再次运行安装即可。
对于测试,运行 sudo python demo/gpio_test.py,就可以看到Firefly上的蓝灯和黄灯来回交替显示的效果了。
对于内核没有正确赋值的问题,估计我的板子是早期生产的,其信息并没有及时更新。至于现在是否已经更新不得而知。
当然,对于官网wiki上的另外一个设备写入的方法:
echo 1 >/sys/class/leds/firefly:blue:power/brightness //蓝灯亮
在最近的固件里并不能实现,早期的固件确实是有。这里衣服自己洗真心是要狠狠地吐槽一番,完全没有考虑到像我们这样的小白,以为所有的人都会自己编译固件。
上面提及的2种方法,虽然都是调用GPIO,但是是相互独立的,如果一起使用的话,可能会出现意想不到的后果。不过就目前来看,应该没有这个风险。
在说正事前,衣服自己洗需要说下Golang和Go的区分,事实上他们是同一个东西,仅仅是因为Go这个单词太常见了,在编程语言的描述中,为避免混乱,就改用Golang而已。这个问题我曾经也迷惑过。
Firefly 新版本的固件里,居然把板子上的灯默认给关闭了,也无法直接检索到了。这真是一个糟糕的设计。
为了打开Firefly上的灯,需要采用GPIO驱动,但是目前从上层软件搜索来看,论坛里一个可用的库却是采用Go来编写的。
那么问题就来了,首先我们需要安装Go的环境。
我们先来说windows上的安装,很简单,从官网上下载对应的windows版本,然后一路下一步安装即可。安装完成后,添加系统环境变量,GOPATH和GOROOT,这个变量在我自己理解来看,GOROOT是指Go的安装目录,默认的是C:\Go,然后GOPATH就真的是go想要搜索的其它资源的路径,支持多个路径。有点类似于C++里的工程include的味道。
对于linux系统,Google官方并没有给出编译好的版本,所以就需要我们下载源码自己安装了。衣服自己洗下载的是1.7.4的源码,放在/pi/go目录,进入src目录,运行 all.bash,显示出错,提示没有1.4的Tree,网上搜索了一下,发现go的新版本安装所需要的环境是需要先安装go1.4才可以的。
于是只好先下载go1.4的源码到/pi/go这个位置,再次运行 all.bash文件,由于是在香蕉派上运行,整个过程花了大概18分钟的样子,在安装后,还会自动运行测试程序,很遗憾,香蕉派上测试程序有的并没有测试通过,检查了/pi/go/bin目录下,已经生成了 go 和 fmt 文件,干脆拉倒。
修改 ~/.profile文件并添加2行代码如下:
export GOROOT=/pi/go
export PATH=$PATH:$GOROOT/bin
保存重启。然后再下载1.7.4版本的源码到原来的位置完成替换,然后再次运行/pi/go/src/all.bash,最好添加sudo。又是经过快20分钟的编译和安装。
写了个简单的hello world程序,go build hello.go,还是可以正确显示的。
至此,基本的运行环境就准备完毕了。
由于FireFly是放在单位一直做代码编译的监视工具,衣服自己洗就寻思着要不要顺便做点下载什么。家里的香蕉派一来有小朋友在,另外是因为实际情况并发效果不太好,很容易就死机了。
接上USB扩展坞,接上移动硬盘后,3个分区系统都顺利识别出来,寻思着移动硬盘应该是带不起来,所以USB有额外的提供电源。
一路安装了uget和aira2,顺便也搞了一个webui-aria2网页版,这些以后有机会再提吧。
下载的时候,发现移动硬盘的挂载点是中文的,有点担忧是否有影响。就寻思着怎么修改这个挂载点,首先发现无法像windows系统那样,直接通过右键菜单来修改,最简单的方法就是接回windows系统,然后修改为英文名称。
遗憾的是,在window上修改后,再次连上FireFly,发现还是显示原来的内容。拔掉移动硬盘,检查挂载点,发现在 /media/ubuntu/下果然还有3个文件,删除之。
再次插入U盘,发现还是显示中文的挂载点,在/media/ubuntu/目录下又出现了3个中文名称。奇怪的不要不要的。
后来才偶然间发现,原来挂载点信息保存在 /etc/fstab 文件中,修改里面的挂载点名称,顺利解决了。
衣服自己洗的U盘,工作中被反复使用,一般说来,关闭所有的相关文件夹后就直接拔出来了,一般说来也没有什么大问题,也从未有过U盘无法识别的问题。
最近突然就出现了U盘插入后,系统托盘会显示图标,但是资源管理器里却不实现盘符的情况,我以为是U盘的寿命到了,但是发现在其它电脑上是可以正常识别使用的,可以排除U盘的原因。
我不清楚是什么原因导致的,可能是因为前几天使用某数字软件清除了U盘历史记录,也可能是因为U盘在另外一个Ubuntu系统上使用过。网上的资料要么是已经过时的,要么是没有效果的。
分析看来,操作系统应该是已经知道有这么一个设备,只是没有显示出来。经过好几天的搜索,最后终于发现了一个比较友好的解决方法。
首先插入U盘,从开始菜单打开设置,选择“设备”,再选择“已连接设备”,在窗体的右边应该就会显示出刚才插入的U盘,选中其图标点击“删除设备”。然后拔出U盘,再重新插入。这时系统就会重新识别出U盘,资源管理器里也恢复正常了。
放一个图作为结尾吧。

在备份SQL Server 数据库时候,想要将备份文件放在非系统盘目录下,结果提示错误信息:
备份对于服务器“服务器名”失败。无法打开备份设备’f:\abc.bak’。出现操作系统错误5(拒绝访问。)。
一直不知道是什么原因,每次都是偷懒拉倒,还是备份到SQL Server默认的那个层级很深的目录里。今天就去搜索了下,网上说是SQL Server的一个Bug 坑。
解决方法是:不能将备份文件放在盘符的根目录下,必须放在一个非根目录下,否则就会报错。
试了一下,果然就解决了,太神奇了。
最近发现win10的锁屏界面居然无法登陆系统了,只能重启解决。如果在锁定屏幕前有未保存的内容,就很悲催了。
衣服自己洗开始还以为是偶然的现象,后来在多台电脑上都有发现。而且是锁定的时间越长,其概率就越大,例如第二天早上上班。
由于微软自win10以后就采用小步慢走的方式,导致网上的帖子里有很多过时的讨论,有价值的不多。后来经过一番搜索,找到的解决方法如下:
进入设置->个性化->锁屏界面,关闭Windows聚焦,并且关闭“在锁屏界面上从Windows和Cortana获取花絮、提示等”,然后重启系统。
经过这样的设置后,果然就好了。
好景不长,问题又出现了,只是说概率比以前要小很多。看来关闭聚焦有效果但没有根治。
衣服自己洗不太死心呀,晚上锁定电脑后,第二天必须要强制关机重启,对于强迫症来说,太过于惨烈了。
再经过翻墙后的搜索,终于找到了彻底解决问题的思路,问题的原因是由于微软输入法的原因导致的。大家可以在任务管理器里找到ChsIME.exe这个进程。
衣服自己洗用的是QQ拼音,完全不在乎微软自带的输入法。迅速杀掉这个进程。为了稳妥起见,重命名了这个文件作为备份。
世界终于清净了,运行了一段时间后,再也没有发现过这样的情况。虽然后面又陆续有过几次windows 更新,不知道微软是否有修复这个问题。
在最近的某个界面上,我们需要添加一个滑动条Slider,并且根据业务需求获取用户点击和松开鼠标的时机。衣服自己洗发现对于通用控件的PointerPressed 和 PointerReleased 事件是无法触发的。
来自微软方面的解释是这2个事件被Slider的子控件给处理了,导致事实上这2个事件无法被我们拦截处理。
解决方法也很简单:
1,为Slider控件设置ManipulationMode属性,其枚举值为Windows.UI.Xaml.Input.ManipulationModes.TranslateRailsX。
2,为控件添加 ManipulationStarted 和ManipulationCompleted 事件,以代替 PointerPressed 和 PointerReleased 事件。
现在大家就可以解决自己的需求了。
随着硬件的发展,屏幕分辨率做的越来越大,相同的环境下,分辨率越高,视觉上看起来文字就越小。
操作系统本身提供了DPI的缩放,但是这个操作并不影响网页里的内容。值得幸庆的是,现代浏览器提供了网页内容的缩放功能。
那么,如果我们想获取浏览器的缩放比例以加载不同的样式和脚本,要怎么做呢?
现代浏览器提供了标准接口,window.devicePixelRatio 表示为设备上物理像素和设备独立像素的比例。
对于IE而言,IE 提供了 window.screen.deviceXDPI 和 window.screen.logicalXDPI 两个属性,deviceXDPI 就是对应的设备上的物理像素,而 logicalXDPI 就是对应了设备独立像素的比例。
下面就是代码了:
function getPageZoom() {
var ratio = 0,
screen = window.screen,
ua = navigator.userAgent.toLowerCase();
if (window.devicePixelRatio !== undefined) {
//现代浏览器直接支持
ratio = window.devicePixelRatio;
}
else if (~ua.indexOf(‘msie’)) {
//兼容低版本的IE浏览器
if (screen.deviceXDPI && screen.logicalXDPI) {
ratio = screen.deviceXDPI / screen.logicalXDPI;
}
}
if (ratio) {
ratio = Math.round(ratio * 100);
}
return ratio;
};
现在就可以根据自己的业务来做不同的处理了。
香蕉派安装使用的是Lubuntu系统,由于官方有做过精简和修改,所以系统界面一直是英文的。
曾经有段时间,特别想改为中文系统,苦于一直找不到方法,最后还是放弃了。
今天无意间突然就发现了,命令为
sudo apt-get install language-selector-gnome
安装完后在系统菜单里,就有一个 Language Support 选项,接下来添加语言。在更新语言的时候,发现有文件无法下载回来的问题。
挂上VPN,顺利下载好,把中文拖动到顶部,重启下系统,再次进入桌面后,会有一个消息提示框询问是否要改名文件夹。仔细一看,原来是把 Desktop,Download 这样的文件夹修改为桌面、下载。但是已经存在的不会迁移过去,衣服自己洗还是选择保持原来的文件夹名称不变算了。
在北京时间8月3日的时候,微软开放了win10的年度更新,即14393版本。在上次升级到10586的时候,在线升级很是麻烦了一把,这次就选择了直接通过 iso 镜像更新,简单暴力。
不得不说,升级完成后,等待配置的界面中,汉化的还是蛮不错的。居然有“青出于蓝而胜于蓝,冰水为之而寒于水”这样的诗词,非常贴切年度更新的意义。在以前的内测版本中,文字中还有“<br />”字样,现在已经修复了。
衣服自己洗的办公位置上,以前无线会无故就掉了,现在也好了。不知道大家发现没有,现在开机启动的速度变快了很多。事件查看器事件列表的打开速度也有了提升,这里从win8开始就慢了下来。哈哈,我就知道我的关注点和你们肯定不一样。
在与操作系统同步的准备中,我们在软件的更新历史记录中,使用了RedStone字样,结果被P了,要求使用年度更新来代替,只好又重新编译发布了一版。
讲真,我非常想吐槽SSRB。