我爱学习,
学习使我快乐,
We cannot predict the future, but we can invent it.

Mac 日常使用笔记

使用 zsh

除了 bash,还有 zsh 可以作为终端,有好看的皮肤,推荐 yc。改完皮肤记得把终端的字体颜色调成白色,背景调成黑色,不透明度不要100%。

终端挂代理

Mac OSX终端走shadowsocks代理 · Issue #18 · mrdulin/blog

一个靠谱的梯子非常重要,影响 brew 安装软件的体验。

安装 Homebrew

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

然后其他很多软件都可以用它装,网上搜软件时试试加个 brew,也许就可以一句话安装了。

未知来源程序

永久允许打开未知来源程序:

sudo spctl --master-disable

临时允许:右键 - 打开


Xcode

How to download Xcode DMG or XIP file? - Stack Overflow

APP Store 也有 Xcode,不过是最新版,需要较高的 MacOS版本

OpenCV

Install OpenCV 3 on MacOS | Learn OpenCV

Xcode - Mac+Xcode+OpenCV 配置 - CSDN博客

在新建工程时,需要改一下设置:

Header Search Paths:

/usr/local/include

Library Search Paths:

/usr/local/lib

Other Linker Flags:

-lopencv_calib3d -lopencv_core -lopencv_features2d -lopencv_flann -lopencv_highgui -lopencv_imgcodecs -lopencv_imgproc -lopencv_ml -lopencv_objdetect -lopencv_photo -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_video -lopencv_videoio -lopencv_videostab

Verilog

如何在Mac OS X上安裝Verilog環境 - Eason's Playground

brew install icarus-verilog
brew cask install gtkwave

SSH

把我在 Ubuntu 里使用的密钥拿过来,给个600权限。提示invalid_format,虽然能用,还是修复一下:

ssh-keygen -f ~/.ssh/id_rsa -y > ~/.ssh/id_rsa.pub

Ubuntu 日常 | 双系统

如果你是在即刻APP阅读到本文的,那么你所看到的将是过时的版本,请访问原网页以查看更新。


我电脑有两个 m.2 插槽,同学翻出来一个 32GB 的 SSD(固态硬盘),我就拿来装了个 Ubuntu kylin 16.04.2(硬盘里有这个镜像就拿来装了)。

安装 Win 10 和 Ubuntu 双系统的步骤对于我这样的老司机是非常简单了。

首先我的 Win 10 已经装好了,在 128GB 的SSD里。我的电脑是 UEFI启动 + GPT硬盘 的组合。

拆开电脑后盖,插上 32GB SSD,装上后盖,开机 F2 进入 BIOS,将这个 m.2 插槽设置为 硬盘(还可以是 LTE 网卡)。

开机进入 Win10,能检测到硬盘,用磁盘管理(按Win+X,再按K)将这个硬盘上的分区都删除,并转换为 GPT 的硬盘,这一步是灰色的,所以我用 DiskGenius 来转换硬盘。

从硬盘里翻到 ubuntukylin-16.04.2-desktop-amd64.iso,想起来以前第一次装 Ubuntu 的时候,装得就是 Ubuntu kylin,当时的壁纸非常炫酷,还是小白的我记忆深刻,现在十分怀念。那个酷炫壁纸的版本也许是 14 版本的 Ubuntu kylin。kylin 和普通 Ubuntu 区别不大,就是对中文友好一点,预装了不少中文应用。找个U盘,注意格式为FAT32,把Ubuntu kylin的镜像解压到U盘里面,然后关机。

把U盘插入电脑,开机 F7 进入引导选项,选择U盘,即可进入Ubuntu安装。如果没有找到U盘,应该是插的松了,可以重新插拔/更换USB口。有些电脑比较坑,只能识别USB 2.0的U盘,这时候就换用2.0U盘就好了。也可以按F2进入BIOS,再检查一下是不是 UEFI 引导,是不是关了 Secure boot(不太确定是否需要,有人说不需要)。BIOS 里面有个 boot override,下面列出的是引导项,选择一个然后回车,就会用这个作为引导来启动电脑,比较坑的是,这样不会保存你前面对BIOS的改动。所以还是要先save一下。

进了安装界面就没什么了,分区可以参考:EFI模式 win10+Ubuntu16.04双系统

安装界面需要输入的3个名字:
开机显示的用户名/主机名/用户名
以后的终端开头就是username@hostname:~$

安装完理论上应该重启,但实际上可能画面会卡住,强制关机再开机也是卡在登录界面,这是显卡驱动的问题,我的战神笔记本可以在 BIOS 里设置,只使用独立显卡,这样再开机就不会开住了。BIOS 里用的两个单词是“混合的”和“离散的”,也就对应“集显独显一起用”和“只使用独显”。

关于引导顺序:
BIOS 里可以设置 Windows boot loader 和 Ubuntu xxx 的顺序,把前者放到前面,就默认和以前一样启动Windows,把后者放到前面,就默认使用 Ubuntu 的引导,如果想修改这个引导,可以在进入了Ubuntu以后:

sudo vim /etc/default/grub

grub_default是默认启动项,可以设置顺序。

对于中文版Ubuntu,用户主目录下的文件夹是中文的,例如“下载”“桌面”等,想要修改的话:

vim $HOME/.config/user-dirs.dirs

set m 1

打开dash,输入gnome-session,选择startup applications

参考:Linux(Ubuntu)怎样设置鼠标速度(灵敏度)_百度经验


安装KeePassX

sudo apt-get install keepassx

参考:keepassx/keepassx: KeePassX is a cross platform port of the windows application “Keepass Password Safe”.


下载安装坚果云

deb包安装及解决依赖方法

  1. 使用gdebi安装,自动安装依赖
    sudo gdebi  nautilus_nutstore_amd64.deb
  2. ubuntu双击使用软件中心安装,自动安装依赖

  3. 使用dpkg安装,使用apt-get -f install安装依赖
    sudo dpkg -i nautilus_nutstore_amd64.deb
    sudo apt-get install -f

参考:https://www.jianguoyun.com/s/downloads/linux

树莓派智能小车

购买材料

  • 树莓派
  • Pi Camera V2.1 夜视版
  • Arduino

夜视版白天看东西的色彩有偏差,绿色变成红色了。黄昏下效果较好,想夜视还要配合红外照明器。

树莓派配置

下载树莓派系统 raspbian 镜像:https://www.raspberrypi.org/downloads/raspbian/

Snipaste_2018-06-06_01-33-37.png

阅读全文...

大作业评分流程图(做一回恶人w(゚Д゚)w


st=>start: 2018年5月29日晚
moss=>operation: MOSS查重
moss_cond=>condition: 可疑?
comp=>operation: 人工对比
test=>operation: 当面答题/写代码
exe1=>operation: 运行代码
exe2=>operation: 运行代码
exe3=>operation: 运行代码
nop1=>operation: NOP
nop2=>operation: NOP
nop3=>operation: NOP
nop4=>operation: NOP
nop5=>operation: NOP
nop6=>operation: NOP
nop7=>operation: NOP
pas1=>condition: 通过?
pas2=>condition: 通过?
pas3=>condition: 通过?
repo=>operation: 看报告
rep2=>operation: 看报告
rep3=>operation: 看报告
scor=>operation: 打分
e=>end
con1=>operation: 联系当事人
con2=>operation: 联系当事人
cheat=>operation: 作弊挂科

st->moss->moss_cond
moss_cond(no)->exe1->pas1
moss_cond(yes)->rep3->con1->test->nop5->nop6->nop7->cheat->e
pas1(yes)->nop1->nop2->nop3->nop4->repo->scor->e
pas1(no)->rep2->exe2->pas2
pas2(yes)->repo->scor->e
pas2(no)->con2->exe3->pas3
pas3(yes)->repo->scor->e
pas3(no)->cheat->e

阅读全文...

Modelsim 基础使用教程

Vivado自带的仿真比较垃圾,工程非常大时仿真速度明显慢于ModelSim,有时还有奇奇怪怪的bug。

一、ModelSim 安装

modelsim-win64-10.4-se 下载、安装、破解全攻略 - CSDN博客

上面这个博客已经写得非常明白了,下载链接已失效,这里放一个:

链接: https://pan.baidu.com/s/1X0C5tYDukK04fq7j2dqdZg 密码: apwz

二、使用教程

新建工程 - 添加代码 - 编译 - 添加仿真配置 - 开始仿真 - 添加信号到波形 - run all。

阅读全文...

学校提供的科学上网 Chrome 配置教程

首先这个是 真· 科学上网,只能使用谷歌搜索谷歌学术谷歌专利谷歌地图等谷歌应用。

网络中心发的三篇微信:

  1. IPv6助力学术科研跨越障碍

  2. IPv4宝刀未老再助学子站在巨人的肩膀上

  3. IPv4学术代理服务支持的服务

三篇文章的备份:本博客 备份1备份2,archive.is 备份1备份2备份3

第1篇是说,在校园网内,有IPv6时,可以无障碍访问谷歌搜索、谷歌学术。

第2篇是说,有时候无法使用IPv6,那就用学校IPv4的代理服务。如何使用?文中说Firefox浏览器可以在设置中添上那个pac地址,然后打开谷歌,在弹出的窗口认证 NetID 即可。

那Chrome如何设置呢?Chrome 浏览器需要安装扩展程序来管理浏览器的代理,例如超级好用的 SwitchyOmega

阅读全文...

IPv6 hosts 使用教程

本文建立在您能访问IPv6的基础之上,国内的IPv6大部分是教育网,还有部分地区的运营商能提供IPv6。使用IPv6可以实现科学上网,例如修改 IPv6 hosts(本文)、XX-Net(这个以后再补)。

本文粗浅地分析了Github上的一个开源项目 lennylxx/ipv6-hosts 。如果想使用IPv6 hosts,可直接下载该项目中的hosts文件(对着我右键另存为),注意名字不是hosts.txt,而是hosts,没有扩展名。Windows系统替换掉 C:\Windows\System32\drivers\etc\hosts 文件,Linux系统替换掉 /etc/hosts 文件。杀毒软件通常会认定 hosts 文件是病毒,不慌,忽略警告即可。如果想深入一些了解,可看看下文。

阅读全文...

Sandboxie 沙盘使用教程

Sandboxie用途:

在你的电脑上运行你不太信任的软件,甚至病毒,访问不太信任的网址等,

或者不想留下软件的使用痕迹,

或者只是临时试用一下某个软件,希望以后不想用的时候可以完全卸载,任何痕迹都不留下,

或者想让新版和旧版软件共存。

场景一

在Sandboxie中使用360网络诊断,他判断我们的hosts有些异常,点360的修复以后:

C:\Sandbox\hujy\DefaultBox\drive\C\Windows\System32\drivers\etc\hosts
360只是修改了沙盘里的hosts,沙盘里的hosts被360加上了#号注释。

C:\Windows\System32\drivers\etc\hosts
真实系统里的hosts,没有被修改。

阅读全文...

固化程序到FPGA开发版的Flash

FPGA程序的固化。也就是将FPGA的配置文件(固化用的配置文件是二进制文件,仅bin文件)烧写到板载Flash中,实现上电自启动。

参考:

简洁一点的:

FPGA编程- 使用Vivado固化BIN文件

完整的、多种方法的:

【Arty-A7入门连载】Vivado与SDK程序固化

2018-05-02_213116.png

2018-04-14_221316.png

阅读全文...

Verilog 语言中 if else 语句完整与否对电路的影响

参考:
(筆記) always block內省略else所代表的電路 (SOC) (Verilog) - 真 OO无双 - 博客园

组合逻辑

module u_else(
    input en,
    input a,
    input b,
    output reg c
    );

    always@(*)
      if (en)
        c <= a & b;

endmodule

module u_else(
    input en,
    input a,
    input b,
    output reg c
    );

    always@(*)
      if (en)
        c <= a & b;
      else
        c <= c;

endmodule

完全相等,都会产生latch锁存器

2018-04-13_210023.png

此图上半部分是elaborate(直译:阐述?)的电路图,下边是Synthesis(综合)的。

LDCE 是 Transparent Data Latch with Asynchronous Clear and Gate Enable,xilinx的库里有,详见>>

阅读全文...