Golang 时间格式化

2017年6月15日 没有评论

这几天在用Go写个小工具,里面需要用到时间格式化。

一个方法是 time.Now().Format(“2006-01-02 15:04:05”),开始还好奇Go还可以这样直接识别出格式,不像C#那样 yyyy-MM-dd 这样的。后来发现原来这个时间是固定的,不能修改,否则格式化后的字符就不是期待的值。

真是个太奇葩的格式化字符常量了。

 

分类: Golang, 一句话 标签: ,

好贵的土豆

2017年5月23日 没有评论

从去年顺利拿到驾照,这马上就快要到一年时间,在实习期即将结束的时候,居然就出事故拉。

team说是出去玩一趟,我们就在某嗨公司租了3辆车,一路上倒是玩的还可以。就在周末安全回来后,我寻思着车上的2兜土豆还是比较重,还是开车回家把东西放好了再停到单位,恰好周末停车位很富裕。

在小牛坊桥准备右拐进入北清路时,看到有直行的车辆开过来,于是就停了下,看到对方车也停了下,还在想人家可真好,就准备并线,但是对方车辆又继续加速开过来了。嘭的给撞上了。

那一刻,脑海里满满的“我艹”。

下车查看情况,还好双方人都没有问题,说起来就是简单的剐蹭。我们这边就左大灯下面有剐蹭,对方车辆由于速度比较快,右边的2个车门都有刮痕。

打122,交警来了,也没有说啥,我的全责就酱紫,3分一百。接着打客服联系保险。

后面就不多说了,总的来讲,根据这事情知道了大致的流程,算是一个小的收获,只是这学费有点高。

土豆是高原的紫皮,蛮面的。

分类: 一句话, 日常 标签:

香蕉派使用离线下载

2017年4月23日 没有评论

在前面的文章(Firefly实现迅雷离线下载)中,我们有提及如何使用Firefly 来设置离线下载,不过在使用香蕉派的时候发现虽然程序是可以运行的,无法走完所有的流程。

sudo ./portal 运行迅雷的可执行程序时,从程序的逻辑上来看,会首先杀掉所有的相关进程,然后再根据情况来注册设备获取设备序号。

以前发现总是无法注册设备,portal程序会尝试18次左右,最后就退出了。

今天无意间再次尝试的时候,发现居然注册成功了,顺利显示出设备号,赶紧地给添加进去。

香蕉派在这期间有过数次更新,不过我不认为和这有关系,非常大的嫌疑是期间有更换过宽带服务商。

使用新的宽带服务商后就可以了。

分类: 一句话 标签: ,

MxNet 深度学习框架安装(一)

2017年3月1日 没有评论

最近是想看看深度学习的东西,网上有搜索一下,貌似MxNet还不错,于是打算选择该库作为入手。

作为系列文章的第一篇,当然是安装拉,这里以windows 10安装为例,Ubuntu上的就再等等吧。

在安装之前,大家需要深度学习的使用语言,多为python和c+之类的。MxNet支持的语言比较多,对R也支持。

首先,我们需要安装Python,从官网上下载安装包,衣服自己洗这里选择的是3.6的版本,一路无脑下一步即可。在安装完成后,请确保python的路径已经被添加到系统的环境变量下。

接下来,再安装 pip,从官网上下载文件到本地,然后运行

python get-pip.py install

安装完成后,请添加python目录下的scripts目录到系统的环境变量下。接下来安装 numpy,进入 https://pypi.python.org/pypi/numpy,选择对应的whl版本,下载到本地,然后运行

pip install numpy.whl

在开始的时候,衣服自己洗选择的从网上安装,总是会失败,搜索了一番才果断采用离线安装,很是顺利。

下面就是正主上场拉,从https://github.com/dmlc/mxnet/releases下载预编译好的包,由于我的机器不支持cuda,所以就下载的是cpu的版本,例如20160531_win10_x64_cpu.7z,解压缩到本地,这样的东西我还是放到C盘根目录下比较保险点。

对于想玩CUDA的同学,请先到nvadia去注册,然后下载他们的SDK,解压缩后放到mxnet\3rdparty\cuda 目录下。

最后一步就是准备配置了,按照官方的readme文件,进入到mxnet的目录,双击运行setupenv.cmd来配置环境变量。再进入到 mxnet\python目录,运行 python setup.py install.

如果一切都顺利的话,应该是可以安装成功的。

如何验证呢,运行下面的命令

C:\> python
>>> import mxnet as mx
>>> a=mx.nd.zeros((2,3))
>>> print(a.asnumpy())

如果结果为

[[0. 0. 0.]
[0. 0. 0.]]

就表明mx安装成功拉。

如果你想使用C++来开发的话,请使用mxnet\lib目录下的文件:libmxnet.dll和libmxnet.lib。

今天的内容就到此结束,看起来很简单,确实花了一个下午的时间才理清。有什么不懂的,欢迎留言。

分类: 日常 标签: , ,

Firefly实现迅雷离线下载

2017年2月15日 没有评论

在我把移动硬盘带到单位后,一个很自然的想法就是想实现远程离线下载。衣服自己洗的小米盒子以前就是开了个远程下载,不过没有怎么使用过。再加上后来小朋友比较喜欢到处探索,在家里就比较困难了。

首先,我们需要去迅雷的网站上下载Xware的固件,此时最新的固件版本号是1.0.31,以后后续的更新应该是可以查找类似的帖子。

下载完成后,解压缩到某个目录下,并设置权限

sudo chmod -R 777 xunlei

sudo ./portal

需要强调的是,迅雷的下载是需要管理员权限的。运行该程序后,会联网请求迅雷的服务器并生成一个激活码。

打开 http://yuancheng.xunlei.com/,然后选择添加设备,输入刚才获取的激活码。一旦添加成功,就可以通过该网页添加下载任务了。

衣服自己洗发现Firefly在办公网络下无法下载ed2k资源,感觉非常的奇怪。

这里有2个比较重要的信息是:

1、衣服自己洗使用家里的香蕉派运行portal程序始终没有成功过,网络上也搜索过,按网络上的说法,似乎是无法解析remote.yuancheng.xunlei.com,也就是说是小区的宽带问题。说起这个宽带,简直了。

2、迅雷官方每次在发布的时候,都提供了好几个不同的版本供大家使用。衣服自己洗是以树莓派做关键字去搜索的。大家都说树莓派使用Xware1.0.31_armel_v5te_glibc这个版本就可以了,但是在单位和家里刚开始尝试的时候都失败了。后来挨个尝试,发现居然是要使用Xware1.0.31_cubieboard 才可以,不然就会提示未找到目录的错误提示。这个问题坑了好多天,都快要放弃的时候才找到可用的版本。

分类: Firefly, 日常 标签: ,

C#实现中文的简体和繁体的相互转换

2017年1月24日 没有评论

最近在收集唐诗,准备提供给小朋友联系韵律。但是网络上搜索出来的全唐诗,都是繁体中文的表示,所以想着是否可以有库来进行转换。

搜索出来发现用C#来实现的话,还是比较简单的。

首先在工程中添加Microsoft.VisualBasic 引用,然后就可以写2个通用方法了。

// 字符串简体转繁体
public static string ToTraditionalChinese(string strSimple)
{
string strTraditional = Microsoft.VisualBasic.Strings.StrConv(strSimple, Microsoft.VisualBasic.VbStrConv.TraditionalChinese, 0);
return strTraditional;
}
// 字符串繁体转简体
public static string ToSimplifiedChinese(string strTraditional)
{
string strSimple = Microsoft.VisualBasic.Strings.StrConv(strTraditional, VbStrConv.SimplifiedChinese, 0);
return strSimple;
}

需要特别说明的是,从繁体转换为简体基本上没有什么问题,但是因为存在多个繁体字对应一个简体字的情况,所以从简体转换为繁体就存在一些错误。具体的解决方法就得使用勘误表来特别处理。

好在衣服自己洗的需求只是繁体转简体,没有这个问题。

分类: 一句话 标签: ,

Win10 UWP 默认控件样式和模板

2017年1月17日 没有评论

很多时候发现设计给出的文档,系统默认的控件并不能直接使用。对于复杂的控件,可以新写一个自定义控件,但是对于一些很简单的控件,就想在系统默认的控件基础上通过调整样式来实现。

那么我们就需要知道系统默认控件的布局和样式是如何定义的,幸好微软已经给出了 UWP 控件的默认样式和模板。

https://msdn.microsoft.com/zh-cn/library/windows/apps/mt299122.aspx

大家一定要好好保存喔,方便查询使用。

分类: 一句话 标签:

win10修复UWP程序无法联网的问题

2017年1月3日 没有评论

衣服自己洗的办公机已经有一段时间不能使用UWP程序上网了,包括微软自带的应用商店,然而win32桌面程序却没有这个问题,很是恼火。

于是自己写了一个测试程序,发现代码会崩溃在

Windows.Networking.Connectivity.NetworkInformation.GetHostNames();

后来在某一个偶然的时机,发现如果开着 Fiddler的情况下,应用商店就可以正常访问了,太神奇了。这么看起来似乎是系统代理的问题导致,但是其它的UWP程序仍然无法上网。

在网上搜索了一番,各种所谓的重置答案都试过,均没有效果。何况,工作中可是直接和UWP相关,这个出问题了那简直是要了老命了。

趁着元旦放假的工夫,想在家尝试解决,后来还是放弃了。突然灵光一闪,听说windows在每次大的更新后,都会重置系统的一些设置,就寻思着从这块下手。

好在上次下载的14393的系统镜像还在,就以升级的方式重新安装了一遍系统,各位同学这里可要记住,千万要勾选“保留个人文档和程序”选项。升级后,终于恢复正常了。剩下的例如文件关联之类的都是小问题,以后慢慢回填就可以了。

回想起整个事情,可能出现的情况,感觉问题可能是出现在科学上网上面,以前曾经把玩过一段时间的蓝灯程序,后来购买了shadowsocks后,就卸载了蓝灯。估计是卸载没有完全卸载干净导致。

虽然代价有点大,但好歹也是终于修复了这个问题。

分类: 一句话 标签:

Firefly控制自带的Led灯

2017年1月3日 没有评论

在前面的文章中,衣服自己洗提及为了打开自带的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,但是是相互独立的,如果一起使用的话,可能会出现意想不到的后果。不过就目前来看,应该没有这个风险。

分类: Firefly, 日常 标签: ,

Golang安装和配置

2017年1月3日 没有评论

在说正事前,衣服自己洗需要说下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,还是可以正确显示的。

至此,基本的运行环境就准备完毕了。

分类: 日常 标签: ,