Chiyuki's Notebook

  • Home

  • Tags

  • Categories

  • Archives

  • About

日记 - Android 实习测试题

Posted on 2017-06-14 | Edited on 2017-06-15 | In Programming , Android | Comments:

Preface

有个小伙伴给我介绍了一家互联网公司,说让我投份简历看看能不能争取到一份校招实习资格。后来和这个公司的 HR 联系了一下,说让我先做做题。题目一共两道:

  1. 第1题可能涉及到公司的业务,这里不做透露。
  2. 第2题是写一个 Android 自定义控件,是个尺子控件,要求使用系统提供的绘图API(android.graphics.Canvas)来做。

下面我就说下这次做自定义尺子控件都学到了什么。

Read more »

The ICMP Tunnel

Posted on 2017-06-03 | Edited on 2019-06-09 | In Programming , Python | Comments:

Preface

经过一段时间的学习和研究,总算是把 ICMP Tunnel 的理论知识了解个大概了。
研究这项技术期间,出现次数对多的问题大概就是下面这几个:

  1. 包从哪里来的?
  2. 包去哪儿了?
  3. Tunnel 的另一端是谁?
    答:操作系统,由操作系统进行包转发,就算设置了 tunnel 的对等端(Peer-to-Peer)也得由操作系统进行转发。于是 前两个问题基本上解决了。

本文包含如下内容:
ICMP Tunnel 的基本技术细节, 包括但不限于 IP包、路由、iptables、Python 代码.

Read more »

日记 - 招聘会

Posted on 2017-06-03 | Edited on 2017-06-06 | In Tech & Life | Comments:

Preface

又是好些天没写 blog 了。本篇 blog 包含如下内容:

  • Grand Theft Auto - Vice City 的哲♂学版
  • 蓝桥 x 拉勾 举办的招聘会
  • 招聘会之后到 McDonald’s 就餐
Read more »

Linux Tunnel Device and Route

Posted on 2017-05-12 | Edited on 2017-06-02 | In Programming , Networking | Comments:

Preface

通过这些天的研究和各种资料的查阅,终于对路由以及 Linux 的 Tunnel 设备有个大致的了解了。
先说路由,然后再带着路由的知识谈 tun 设备。

Read more »

python-pytun scapy

Posted on 2017-05-04 | Edited on 2019-06-09 | In Programming , Python | Comments:

Preface

好几天没写博客了,今天睡前写一篇糊弄一下吧。内容主要有2:

  • 用 python-pytun 和 scapy 试着弄个包转发工具
  • Depression 与自我恢复
Read more »

SysRq 键 - Linux 系统崩掉前最后的救命稻草

Posted on 2017-04-20 | Edited on 2019-06-09 | In Server , Linux | Comments:

Preface

今天看英语语法的时候 随意的看了一眼键盘,意外的发现 除了 pause break 和 scroll 这几个键以外,还有个 SysRq。然后查了一下,发现这个键在 Linux 下大有用途:

In Linux, the kernel can be configured to provide functions for system debugging and crash recovery. This use is known as the “Magic SysRq key”.
在 Linux 下,通过对内核进行配置 可以让它来提供一些功能,比如调试操作系统以及崩溃恢复(Crash Recovery)。这种 SysRq 用法被称之为 “Magic SysRq key”。
- System request - wikipedia.org

当 Linux 系统崩溃但还没到 kernel panic 的地步的时候(比如 CPU soft lockup),就可以使用这棵最后的救命稻草。下面我就来介绍一下 SysRq 的使用方法。

Read more »

用 Docker & Nginx 搭建自己的账本(Firefly)

Posted on 2017-04-18 | Edited on 2017-05-13 | In Server , Deployment | Comments:

Preface

“我辛辛苦苦挣的钱都去哪儿了”,我可不希望以后什么什么时候开始说这种话,于是 搭建个记账软件来记录自己的收支吧。
该软件优点如下:

  • 资金流向:比如钱都花在哪些类目上了,钱都流向哪些商家了。
  • 资金预算:比如打算每个月花多少钱在饮食上。
  • 分类 & 标签:比如钱都花在那些类目上了。
  • 交易记录:除了收入和支出记录外,如有多个银行账户的话 还能记录不同账户之间的转帐交易
  • 存钱罐(Piggy Banks):比如想买个手机但是目前没有那么多预算,可以先弄个存钱罐,然后一点一点的往里面存。相当于一个长远的资金预算。
  • 账单:每月水电费之类的。
  • 规则:比如填写支出描述时自动填写预设的支出金额。
  • 报表(Reports):按月、季、年生成报表,账户余额、资金流向、短期/长期预算、账单 等等。
  • 多货币:软妹币, 美刀, 英镑, 比特币,想用什么就用什么(不支持货币换算,在创建收支记录时候可以手动填写换算前后的金额)。
  • 数据导入导出:导入导出 csv 格式的文件,进一步对资金流向做分析什么的。

目前我能想到的唯一缺点就是:没能和各种银行/支付机构(比如支付婊)进行接口对接,实现自动记录收入支出。
另外,该软件作者表示 “不支持自动支付重复性交易”,原因是:

I believe that if you are serious about changing your financial habits, you should be aware of what happens on your accounts. The money you spend and the money you earn. By entering each transaction manually, you will feel what you spend.
我认为如果你真的想改变你的财务习惯的话,你应该更关心你的账户,你花的钱还有你挣的钱。通过手动地录入每次交易,让你切实体会到钱都花在哪里了。

Read more »

Java 并发 & 多线程 - 基础知识

Posted on 2017-04-13 | Edited on 2019-06-09 | In Programming , Kotlin / Java | Comments:

Preface

终于,今天终于有底气来谈论这个经常被各种面试官提及的话题了。
本文将涵盖目前入门 Java 并发 & 并行编程的基本理论知识。

我(面试的时候)几乎场场都面多线程,我都说我不太懂。(感觉面试官在)传达给我一层意思:(学)Java(却)不懂多线程等于我没学 Java。
- 某位不愿意透露姓名的人(不是我)

Read more »

我不知道的JS

Posted on 2017-04-10 | Edited on 2017-04-13 | In Programming , Front-end | Comments:

《你不知道的JS》 (You don’t know JS) 读书笔记

Preface

一直以为 JavaScript 就是 Script 版的 Java,但在看了这本书后才知道,它丫的就是个 Script,跟 Java 一点儿关系都没有。
JS 有一些 Java 没有的特性,比如:

  • 拿 function 当对象用(看过书后发现 function 真的是个对象)
  • 除了 null 还有 undefined 还有 undecleared
  • var 定义的变量的作用域不符合常理(至少我觉得跟 Java 里定义出来的变量的作用域不一样)
  • this is not this.
  • “半残”的面向对象概念
  • etc.

我本来还想指望看完这系列书后能对 JS 的刻板印象有所改观,然而事与愿违。
下面我将以一个水平不及初级Lava程序员的程序员的角度,为本书做一份笔记。

Read more »

用 Docker 和 Nginx 搭建自己的云服务器(Nextcloud)

Posted on 2017-03-15 | Edited on 2017-03-16 | In Server , Deployment | Comments:

Preface

前些阵子瓷国各种网盘纷纷倒下,我也越来越担心自己的数据安全,没准哪天我的网盘帐号就被”无缘无故”的删掉什么的,于是我就琢磨着搭建个自己的私人网盘。现在这个时代最不缺的就是轮子,随便一搜就有好几个符合要求的自搭建(Self-Hosted)网盘软件:

  • Owncloud
    不错的候选,不过一些高级特性(比如 Android/iOS app, 团队协作功能, etc.)需要购买订阅,而且还挺贵。
  • Cozy
    同样是不错的候选,但是试用了一会儿发现制作得比较粗糙,大部分功能只是存在而已,不够用。
  • Nextcloud
    Owncloud 的 fork,所有高级特性/企业团队协同功能全免费,还可以自己选择一些 Nextcloud 仓库内的 app 进行安装,Android app 也是免费使用(对应的 iOS app 售价是 $0.99)。

综上,我选择 Nextcloud。
接下来的问题是,我以后必定会在同一台主机内搭建多个网站,但 80 端口只能被一个进程监听。解决这个问题就是使用 Nginx 做反向代理,把入站连接根据域名/路径来转发到主机内的不同端口上。
还有一个问题就是通信安全问题。用 HTTP 这种明文通信协议的话,在通过某些恶意防火墙的时候 很可能会把通信内容给镜像下来 然后拿去分析。解决这个问题也不难,弄个免费 SSL 证书即可,比如 “Let’s Encrypt“。

注意: 本文使用 Ubuntu 作为服务器系统,部分特性(比如 ufw)不存在于其他 Linux 发行版里 或 需要代替方案(比如用 iptables 代替 ufw)。

Read more »
1234

oing9179

32 posts
15 categories
97 tags
RSS
GitHub Twitter
Creative Commons
© 2019 oing9179
Powered by Hexo v3.8.0
|
Theme – NexT.Mist