A Hello World!

Have a rest


  • 首页

  • 分类

  • 归档

  • 标签

利用Siri实现HomeAssistant控制

发表于 2017-07-06

使用Siri实现控制需要用到开源库homebridge,它通过逆向HomeKit协议让普通Wifi设备也能接入HomeKit接受Siri控制。这里要使用的是homebridge-homeassistant这个插件,它让HomeBridge可以直接使用HomeAssistant下的所有设备。

安装HomeBridge

更新相关packages

sudo apt-get update
sudo apt-get upgrade

安装C++14

Homebridge中的一些包使用了C++14,老版本的g++可能不支持,可以用g++ -v来看当前的g++版本。
如果是4.9.2以上可以不用理会了。

安装Node

curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
sudo apt-get install -y nodejs

安装完成后可以通过node -v检查是否安装完成。
该方法需要芯片高于ARMv7,可以通过uname -a来看芯片版本

阅读全文 »

树莓派安装HomeAssistant

发表于 2017-07-06

安装系统

HomeAssistant提供内置HomeAssistant服务的Raspbian系统——Hassbian,https://home-assistant.io/docs/hassbian/installation/ 下载最新版本,然后使用Etcher刷入TF卡。

SSH连接树莓派

将树莓派插卡通电,并连上网线,前往路由器的DHCP找到树莓派的IP地址,分配一个静态IP,重新连接网线即可使用ssh连接树莓派。
Windows下推荐使用putty。
默认用户名pi,默认密码 raspberry。
可以通过passwd命令修改默认密码

自动连接wifi

sudo iwlist wlan0 scan

该命令可以找到所有可用的无线网络,每个cell代表一个。
通过ESSID找到需要连接的网络,并记下名称。
用nano配置wifi信息:

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

阅读全文 »

未命名

发表于 2017-07-04

直接使用requirement.txt安装依赖

sudo -H pip install -r requirements.txt
但可以看到requirements里安装的是GPU版的Tensorflow,在服务器上运行时会要求cuba的支持,否则会报错,所以自己安装CPU版本的。

报错:

1
neural_style.py: error: Network imagenet-vgg-verydeep-19.mat does not exist. (Did you forget to download it?)

解决办法:
下载Pre-trained VGG network,文件有点大,下载时间有点长。可以用迅雷下载,不过迅雷会自动把后缀改为txt,下载完毕后需要自己改过来。

报错:

1
OSError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/html5lib-0.9999999.dist-info'

看了一下并没有这个文件,html5lib也没有安装,安装即可

Hello World

发表于 2017-07-04

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

使用`sed`更换Ubuntu的源

发表于 2017-05-23

之前都是使用备份sourcelist的方法来更换源,在网上发现了另外一个命令即可搞定

sudo sed -i s@us.archive.ubuntu.com@mirrors.ustc.edu.cn@g /etc/apt/sources.list

这条命令其实也很简单,把所有的us.archive.ubuntu.com替换为mirrors.ustc.edu.cn。

sed是一个流编辑器,主要用来自动编辑一个或多个文件,简化对文件的反复操作。
处理时,把当前处理的行存储在一个被称为“模式空间(pattern space)”的临时缓冲区中,接着使用命令处理其内容,完成后送完屏幕,接着处理下一行,不断重复直到文件末尾。
sed处理的时候,除非使用重定向存储,否则原本的文件内容并不会改变。

具体关于sed命令可以参考这里.

本命令中,-i表示直接对文件进行操作,s代表字符串替换,g表示对所有匹配的字符串进行替换。
@在这里用作定界符,也可以使用/等任意定界符。

Intellij折腾记 -- IdeaVim

发表于 2017-05-09

开启相对行号显示

切换到命令模式(Esc + :)

set nu

set relativenumber

Pipeline对Redis批量读写

发表于 2017-05-09

Pipeline(管道)

在Redis中,正常模式是request-》response式的,每一次request都需要等待上一次的response结束,这样涉及到大量数据读写时,每一次交互都需要等待response造成的网络消耗,对应到时间上就是很浪费的。

Pipeline可以用来实现命令的批处理,改变原来的同步交互方式,可以一次发送多个指令,客户端不再同步等待每条指令的返回结果,服务器在执行每个指令后对应的output被阻塞在网络缓冲区中,并在最后一次性返回给客户端。

需要注意的是:

  1. pipeline期间将独占链接,不能进行其它非pipeline操作;因此如果pipeline中指令集庞大,为了不干扰其它非pipeline操作,可以为pipeline新建client链接,以达到分离的目的;
  2. 由于output数据被阻塞在缓冲区,因此pipeline中操作个数是有限的,受socket-output缓冲区大小和数据结果大小影响;
  3. 同理,每个redis-server能接受的pipeline个数也是有限的,受制于server的内存或网络接口缓存能力。
  4. pipeline中的每个指令都会被执行,但不保证都能成功,执行结果按序保存在返回列表中。

pipeline的实现也很简单:

1
2
3
4
5
Pipeline pipeline = jedis.pipelined();
for(******)
pipeline.****();
pipeline.syncAndReturnAll();

Transaction(事务)

Tensorflow

发表于 2017-05-04

安装

使用清华大学的镜像安装,地址在这里。可以自己选择计算单元、操作系统、版本等。

使用生成的pip命令进行安装,需要加上sudo。

MNIST机器学习

文档在这里:MNIST机器学习入门
跟着一步步走就行了。

数据集

文档里提供了数据集下载和安装的python代码,但使用代码下载速度太慢,建议使用下载软件下载,然后不解压直接复制到MNIST_data目录下即可。

关于initialize_all_variables的WARNING

运行程序之后,会出现一个WARNING,意思是原文档中使用的initialize_all_variables已经过时了,改为global_variables_initializer即可。

1
2
3
WARNING:tensorflow:From mnist.py:13: initialize_all_variables (from tensorflow.python.ops.variables) is deprecated and will be removed after 2017-03-02.
Instructions for updating:
Use `tf.global_variables_initializer` instead.

CPU加速提示

使用的是pip安装,所以会出以下的提示:

1
2
3
: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
: W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.

这里是表示如果使用源码编译性能会有所提升,不想看到这些提示的话有两种办法:一是卸载后直接改为源码编译;二是添加以下代码:

1
2
3
import os
os.environ['TF_CPP_MIN_LOG_LEVEL']='2'
import tensorflow as tf

TF_CPP_MIN_LOG_LEVEL这个环境变量与TensorFlow的log有关,1代表INFO,2为Warning,3为Error。

Hexo博客搭建(二) -- Next主题设置

发表于 2017-04-08

参考了neveryu的博客,表示感谢 ^_^

安装和配置Next主题

安装

在根目录下,使用git clone

git clone https://github.com/iissnan/hexo-theme-next themes/next

打开根目录下的_config.yum,该配置文件主要是对hexo本身的配置,在theme目录下也有一个同名文件,主要是对主题相关进行配置。
找到theme字段,将其改为next
使用hexo clean清除缓存

阅读全文 »

Hexo博客搭建(一)--构建

发表于 2017-04-07

Hexo依赖于Node JS和Git,需要事先安装。

安装node js

使用yum来安装Node JS,参照官网说明进行。

curl –silent –location https://rpm.nodesource.com/setup_6.x | bash -
yum -y install nodejs

安装git

yum -y install git

阅读全文 »
12
Gollfe

Gollfe

12 日志
13 标签
© 2017 Gollfe
由 Hexo 强力驱动
主题 - NexT.Pisces