Friday, March 30, 2018

Git bash_ref_update 不用输入用户名和密码

使用了如下方法:

作者:鸟麦

链接:https://www.jianshu.com/p/f54053afecf2

1.方法一

1.1 创建文件存储GIT用户名和密码

在%HOME%目录中,一般为C:\users\Administrator或类似用户名,也可以是你自己创建的系统用户名目录,反正都在C:\users\中。文件名为.git-credentials,由于在Window中不允许直接创建以"."开头的文件,所以需要借助git bash进行,打开git bash客户端,进行%HOME%目录,然后用touch创建文件 .git-credentials, 用vim编辑此文件,输入内容格式:

touch .git-credentials
vim .git-credentials
https://{username}:{password}@github.com

然后按esc,输入:wq保存退出。

1.2 添加Git Config 内容

进入git bash终端, 输入如下命令:
git config --global credential.helper store
执行完后查看%HOME%目录下的.gitconfig文件,会多了一项:
[credential] helper = store
确认[user] 一项有 email = %自己的邮箱%
重新开启git bash会发现git push时不用再输入用户名和密码


Saturday, January 13, 2018

折腾家里的网络记录

最近iphone坏了,加上新的iphone变得邪恶,不但降了频率,还变得特别贵,导致我一个肾已经不够用了。于是转到了Android。买了新手机以后,发现家里还有以前老婆买的一个乐视盒子,于是拿出来折腾了一个寒假,现在把乐视盒子装成了家里的NAS,比较有成就感。现在记录一下家里的网络设置,以备将来还要重装系统……

硬件:老板跑路的公司 New C1S, 2015年老婆回国买的。

1. Root,参考这个帖子:https://bbs.le.com/thread-482694-1.html
固件下载:http://pan.baidu.com/s/1i3xJLR3
装好以后自动root了。

2. 装samba,参考这个帖子: http://www.iszip.com/post/SambaC1s.html
我是用putty先去装了samba,然后装了个adb,不是用vi更改smb.conf,而是先改好smb.conf,在用adb push推送到盒子上打开的。记得chmod 777加权限。

改完smb.conf之后要去/opt/etc/init.d/S08samba,打开samba服务。记得chmod 777加权限。

按如下做的话,如果盒子ip是a.b.c.d,那么:

下载控制台在: a.b.c.d:8081
推送apk控制台在: a.b.c.d:8888

有几个要注意的坑:

1. 所谓盒子伴侣不用下载了,下载了就会让你在电脑上安装升级,然后会被杀毒软件搞死。盒子伴侣没有一个可以工作的老版本可以下载。

2. 装optware按照这个帖子来:http://www.hdpfans.com/thread-468444-1-1.html
要注意的是那个自动安装的bat文件没有用,它只是一个bash文件,用记事本打开bat,在adb里面把bash命令一行一行敲进去就行。

Wednesday, February 08, 2017

Numpy.interp的问题

前几天写一个code,遇到Numpy.interp不正常工作的情况,具体的表现是无论是什么值的插值,最后都变成array最后一个元素的对应值。查了一下栈溢出,发现这是一个已知问题,原因是自变量array并不是单调递增的。遇到这种情况,需要把自变量和函数变量都反向才行:

x = x[::-1]
y = y[::-1]

然后内插值就可以正常工作了。

Sunday, September 11, 2016

我应该多读一下评论……

MoonKnight在我一年前的一则post里说:

List, dictionary, set, tuple etc. are all objects (classes) in python. When copying an object in python, the default way is to do a "shallow copy". 
Basically x=y just copy the reference (or pointer if you are more familiar with C) of x to y, so now they point to the same address in your memory. Thus change one will automatically change the other.If you want a "deep copy" (a separate copy with a different memory address) for a list, you can do x=list(y). There is also a package called copy, with a function called deepcopy, so x=copy.deepcopy(y) should do the same.On the other hand, the difference of "shallow copy" and "deep copy" only exists for objects. If you are copying an integer, string, boolean etc. It can only create a deep copy.

我要是早点看到就没今天这个问题了……

Python的数组赋值问题

今天晚上写code遇到如下问题:

Code1:

a=0
b=6
while b!=a:
    a=b
    print a
    b=b-1
    print a
这段代码将陷入死循环,输出如下:
6
6
5
5
4
4
... 

Code2:
a=[0]
b=[6]
while b!=a:
    a=b
    print a
    b[0]=b[0]-1
    print a 
这段代码在第一个循环结束就停了,输出如下:
[6]
[5] 

这个网站有讨论。 主要原因是,python的list名字其实是一个指针。假设有两个list,分别为a和b,如果赋值a=b,并不是建立一个新的list a,使其内容跟b一样,而是将a和b同时指向一个list对象。

所以,如果有如下两个list:

a=[0,1]
b=[0,1]
# a==b: TRUE
# a is b: FALSE