Frossky 发布的文章

ubuntu on windows里面的蓝色几乎看不清楚,windows项目组出了个新theme,然而只针对新购windows,升级并不能覆盖。自己如何修改?
打开cmd,右上角邮件,选择默认值->颜色,依次点选各个颜色并修改右面的三个数字即可。
参考微软的新旧theme:
微软原文链接

Color Name Console Legacy RGB Values New Default RGB Values
BLACK 0,0,0 12,12,12
DARK_BLUE 0,0,128 0,55,218
DARK_GREEN 0,128,0 19,161,14
DARK_CYAN 0,128,128 58,150,221
DARK_RED 128,0,0 197,15,31
DARK_MAGENTA 128,0,128 136,23,152
DARK_YELLOW 128,128,0 193,156,0
DARK_WHITE 192,192,192 204,204,204
BRIGHT_BLACK 128,128,128 118,118,118
BRIGHT_BLUE 0,0,255 59,120,255
BRIGHT_GREEN 0,255,0 22,198,12
BRIGHT_CYAN 0,255,255 97,214,214
BRIGHT_RED 255,0,0 231,72,86
BRIGHT_MAGENTA 255,0,255 180,0,158
BRIGHT_YELLOW 255,255,0 249,241,165
WHITE 255,255,255 242,242,242

9 to 5 is for the weak. NYTimes在一篇讲硅谷工作狂们的文章中这样说到。这也是中国IT业者的同样问题。

  • 谁在提倡996,一周工作80到100小时?老板,投资人,用你们的生命换我的钞票,用你们的hustle换我的投资回报;除此之外,还有个看不见又无法抵抗的黑手:高科技行业本身,尤瓦尔说的那个不断加速的“未来”
  • 不加班就会被抛弃,虽然加班并不能提高工作效率(敏捷开发也这么说),然而这“表现出了责任感和团队精神”
  • 100年前人们被迫加班并且为休息日抗争,而现在人们却为之歌功颂德,并以奋斗之名把工作狂文化写在T恤衫上,NYTimes写得更直接:硅谷的员工却颂扬自己遭受的剥削
  • 加班变成了狂热的高科技宗教了,许以的回报则是一夜暴富,最不济也是财富自由,前两天看哪篇文章来着,就是36氪关于中年危机那篇,财富自由根本就是画的大饼
  • 这个真的和宗教或迷信的路子差不多,信则灵,如果不灵则是因为你信得不够。奋斗(加班)就有财富自由,如果没有就是你加得不够。
  • 如果宗教总得有个偶像,这个偶像就是成功,教义就是成功学

然而结果是,虽然你这么努力,但是那并没有什么用

NYTimes的这篇文章说的和我的看法一样,全文转载至此。

在硅谷,朝九晚五属于失败者

DANIEL SAVAGE
DAN LYONS
2017年9月1日
硅谷为“不同凡想(thinking different)”而自豪。因此,在许多行业开始更加注重工作和生活的平衡时,硅谷反其道而行之,把工作狂标榜为理想的生活方式之选可能看上去也说得通。那里已经出现了一个完全是作坊式的产业,贩卖以互联网为中心的成功学,称没有比创业更崇高的使命,还说要取得成功,必须愿意放弃一切。

科技行业从业者用“奋斗”(Hustle)这个词来描述这种极客突击队的生活方式。到处都能听到这个词,还能买到以它为主题的T恤和咖啡杯,上面印着“梦想、奋斗、利润、重复”和“比所有人都更辛苦、更忙碌、更努力”口号。你可以去为期八周的“创业奋斗”训练营(训练营!),也可以参加只有一天时间的奋斗大会(Hustle Con),听成功的“奋斗者”分享他们的诀窍。票价300美元左右(约合2000元人民币),或者你也可以花2000美元(约合13000人民币),成为“VIP奋斗者”。今年的大会已于6月举行,吸引了2800人,其中20多人花钱买了VIP票。

但对一些人来说,“奋斗”只是极端工作狂的一种委婉说法。加里·沃伊内楚克(Gary Vaynerchuk),又名加里·维伊(Gary Vee),是一位企业家,也是一名天使投资人。他在Twitter上有150万粉丝,还出版了一系列以《碾压它》(Crush It!)等为名的畅销书。他告诉自己的粉丝,他们应该一天工作18个小时。每天都这样。不能休假,不能约会,不能看电视。“想闪亮全场吗?想买飞机吗?”他在一场励志演讲中问道。“那就工作吧。工作才能让你得到这一切。”

沃伊内楚克还是苹果《应用星球》(Planet of the Apps)的评委。这是一档应用开发者争夺一家风险投资公司资金的真人秀节目。在最近的广告中,一名参赛者旁边的引语是:“我几乎见不到我的孩子。这是必须承担的风险。”节目的宣传推文接着说:“为了最终的奖励,他将投入一切。”

天哪。这名参赛者正在开发一款应用,它能让你直观地看到商品目录上的一款咖啡桌放在你家客厅里是什么样子。我想,这款应用很酷,但它真的比见到自己的孩子更重要吗?筹集到一些风险投资的机会,真的是“最终的奖励”吗?(在Twitter上引发批评浪潮后,苹果撤下了这篇宣传推文。)

这对创业者来说够惨了,但普通员工也相信这种疯狂。去年,Lyft发表了一篇博客,称赞一名在开始阵痛后仍坚持载客并自己驾车去医院分娩的司机。批评人士从中看到了反乌托邦的意涵——Gizmodo网站的评价是“骇人听闻”——Lyft删除了博客。但该公司的员工,包括那名司机自己,似乎真的对文章引起的负面反馈感到不解。

一百年前,工厂工人成立工会并举行罢工,要求改善工作条件和限制工作时间。如今,硅谷的员工却颂扬自己遭受的剥削。一款流行T恤上写着“朝九晚五属于无能者”(9 to 5 is for the weak)。一个名叫基思·拉布瓦(Keith Rabois)的风险投资人最近在Twitter上炫耀自己工作18年,休假时间不超过一周。渴望成为扎克伯格的人被告知,创业就像加入海豹突击队(Navy SEALs)一样。对某一类人——通常是年轻、男性——来说,磨难也是诱惑的一部分。

真相是,这些创业者和他们的员工付出的额外努力中,很多是没有意义的。根据斯坦福大学的经济学家约翰·彭卡韦尔(John Pencavel)在2014年发布的一份报告,一周工作超过56个小时几乎不会带来生产率的增加。但重要的可能不是生产率,而是表现出责任感和团队精神。

“人人都想当模范员工,”目睹很多科技行业员工压力过大的湾区临床社工阿尼姆·阿韦(Anim Aweh)说。“一个女人告诉我:‘对员工的期望不是聪明地工作,而是努力地工作。就是工作、工作、工作,直到再也动不了。’”

广告

这已经造成了悲剧。去年,优步(Uber)的工程师约瑟夫·托马斯(Joseph Thomas)自杀。他的遗孀将其归咎于公司工作时间长、心理压力大的拼命文化。

现在,一些人开始反击。软件开发人员戴维·海涅迈尔·汉森(David Heinemeier Hansson)正试图说服创业者,让他们相信不用累得要死也能成功。(遗憾的是,这一点居然还需要说。)

在最近的一篇文章中,汉森指责风险投资人用“根深蒂固的创业神话”给创业者洗脑,“不仅颂扬掏空自己,还把这作为基本要求。”他说,风险投资人在剥削创业者。他们的态度是,“要么让我富起来,要么就死在尝试的过程中,”他写道。

到目前为止,“死在尝试的过程中”的可能性更大。绝大部分创业公司都会以失败告终。取得Facebook那种级别的巨大成功的几率微乎其微。没人比风险投资人更清楚这一点了。他们通过把赌注分散在几十家公司上,并鼓动它们都变得狂热来增加自己成功的几率。

汉森的文章把工作了18年却几乎没有休假的风险投资人拉布瓦单独挑了出来。这在Twitter上引发了一场争论。拉布瓦抨击说,汉森轻松对待的创业方式堪称完美,但只是“对希望一事无成的懒人而言”。

汉森和商业伙伴贾森·弗里德(Jason Fried)经营着一家名为Basecamp的芝加哥软件公司,雇佣了56名员工,公司已经在盈利。每周的工作时间上限为40小时,夏季削减到32小时。汉森先生拥有足够多的空闲时间,可以作为业余车手参加耐力赛车比赛。

2010年,两人出版了一本谴责工作狂的书《重来》(Rework),明年他们还要出版一本《平静的公司》(The Calm Company)。汉森对我说,“看到人们在创业的祭坛上被要求放弃假期、睡眠、青春、家庭和伦理”,他们有一种触目惊心的感觉。

他们举办研讨会,发表了很多公开演讲。弗里德说,他们的发言通常都被很好地接纳——尽管在旧金山,他们经常听到“不可思议的吸气声”。汉森则说:“有人对我们说,我们的雄心壮志不够。我们并不试图改变世界。这种扭曲的毒害太深了。”

成为下一位高科技界身家上亿的20出头名人,这种机会的吸引力依然很大。每年有数以千计的新人涌入旧金山,希望能够接受这种奋斗的宗教的洗礼。如今的情况已经很糟糕,但以后还可能更加糟糕。

Dan Lyons是《混乱:我在创业泡沫里的不幸遭遇》(Disrupted: My Misadventure in the Start-Up Bubble)的作者,他正在撰写一本关于职场文化的书。

翻译:陈亦亭、土土

用了这么多年的vim,居然只会用i, :wq, /三板斧,哈哈哈
最近用cmder开bash发现无法使用上下左右键,才又增加了一些学vim的动力。
用hjkl替代上下左右以前就知道,但用的不大顺手,
移动到行尾并编辑:Shift+A
翻页:Ctrl+F/B
文件开头:gg
文件末尾:shift+G
句首句尾:()
段首段尾:{}

删除后面前面: x/X

~/.vimrc改造

syntax enable
syntax on
set ai

如果代码中使用了一些es2015的特性,最典型的就是用import替代require,就需要以es2015的方式运行node

npm install -g babel-cli
babel-node xxx.js --presets es2015,stage-3

腾讯电脑管家里面freecommander版本太老,是2014版的,网上好多2017 x64都是假x64,这儿是一个真实的下载地址:freecommander x64 2017 760 beta
2017 760中,支持dos box改为第三方软件从当前目录启动,我喜欢用cmder。修改方式是:
工具>设置>dos命令行>dos命令说明,改为:

C:\your_app_path\Cmder.exe %ActivDir%

原文链接
仍然是先root
然后使用一个终端,我用的是termux

su
iplink show wlan0
ifconfig eth0 hw ether XX:XX:XX:XX:XX:XX 

使用le max2改过, 结果是无法连接wifi...或许是没有重启的缘故?没有进一步测试, 赶快用同一个命令改回来. 连接就正常了.

一、输入w命令查看已登录用户信息(who)

[root@KW_S01_192.168.1.106_A ~]# w
19:22:31 up 2:11, 3 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 192.168.1.178 18:41 0.00s 0.16s 0.01s w
root pts/1 192.168.1.178 19:22 4.00s 0.14s 0.05s ssh localhost
root pts/2 localhost.locald 19:22 4.00s 0.07s 0.07s -bash

二、使用命令pkill -kill -t 用户tty
[root@KW_S01_192.168.1.106_A ~]# pkill -kill -t pts/2

这篇文章不错
常用的命令:

screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session

按C-a d就可以detach当前的screen

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。
C-a ? -> 显示所有键绑定信息
C-a c -> 创建一个新的运行shell的窗口并切换到该窗口
C-a n -> Next,切换到下一个 window
C-a p -> Previous,切换到前一个 window
C-a 0..9 -> 切换到第 0..9 个 window
Ctrl+a [Space] -> 由视窗0循序切换到视窗9
C-a C-a -> 在两个最近使用的 window 间切换
C-a x -> 锁住当前的 window,需用用户密码解锁
C-a d -> detach,暂时离开当前session,将目前的 screen session (可能含有多个 windows) 丢到后台执行,并会回到还没进 screen 时的状态,此时在 screen session 里,每个 window 内运行的 process (无论是前台/后台)都在继续执行,即使 logout 也不影响。
C-a z -> 把当前session放到后台执行,用 shell 的 fg 命令则可回去。
C-a w -> 显示所有窗口列表
C-a t -> Time,显示当前时间,和系统的 load
C-a k -> kill window,强行关闭当前的 window
C-a [ -> 进入 copy mode,在 copy mode 下可以回滚、搜索、复制就像用使用 vi 一样
C-b Backward,PageUp
C-f Forward,PageDown
H(大写) High,将光标移至左上角
L Low,将光标移至左下角
0 移到行首
$ 行末
w forward one word,以字为单位往前移
b backward one word,以字为单位往后移
Space 第一次按为标记区起点,第二次按为终点
Esc 结束 copy mode
C-a ] -> Paste,把刚刚在 copy mode 选定的内容贴上

这篇文章比较好
下面是debian/ubuntu上的配置

sudo apt install vsftpd
sudo service start vsftpd
sudo vim /etc/vsftpd.conf
sudo openssl req -x509 -days 365 -newkey rsa:2048 -nodes -keyout /etc/vsftpd.pem -out /etc/vsftpd.pem

配置修改

# change to your port
listen_port=21

# enable TLS/SSL
ssl_enable=YES

# force client to use TLS when logging in
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
require_ssl_reuse=NO
ssl_ciphers=HIGH

# specify SSL certificate/private key (Debian/Ubuntu)
# For CentOS/Fedora/RHEL, replace it with /etc/vsftpd/vsftpd.pem
rsa_cert_file=/etc/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem

# define port range for passive mode connections
pasv_max_port=65535
pasv_min_port=64000

POE供电适合10BASE-T和100BASE-TX两种标准, 也就是10M和100M局域网. 这两种标准使用的双绞线,传输数据只是用了其中的1,2,3,6(白橙,橙, 白蓝,蓝)两对线, 还有两对4,5, 7,8 没有使用. POE使用4,5线传输正电压, 7,8线传输负电压.输出电压最大48v. 使用万用表测量电压即可.

适用于DOIT的ESP32 DEVKIT v1
pyesptool.exe --chip esp32 --port COM3 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 80m --flash_size detect 0xe000 C:\r\arduino\arduino-1.6.8_1.5.4\hardware\espressif\esp32/tools/partitions/boot_app0.bin 0x1000 C:\r\arduino\arduino-1.6.8_1.5.4\hardware\espressif\esp32/tools/sdk/bin/bootloader.bin 0x10000 C:\r\arduino\dist/Blink.ino.bin 0x8000 C:\r\arduino\dist/Blink.ino.partitions.bin
esptool.py v2.1-beta1

支持flash为512KB, 1M, 2M, 4M.
4KB为1个扇区,也就是16进制的0x1000.

  1. 非OTA布局
    a) 前256KB烧写主程序+用户数据+用户参数, 主程序文件名eagle.flash.bin, 最大64KB, 用户参数占用最后4个扇区, 共16KB
    b) 后面的部分, 烧写主程序+用户数据+系统参数, 主程序文件名 eagle.irom0text.bin, 最大768KB, 默认200KB. 系统参数占用最后4个扇区, 共16KB.sdk提供. 依次为:
    b1) 初始化射频参数,1个扇区, esp_init_data_default.bin
    b2) 初始化系统参数,2个扇区, blnk.bin
    b3) bootloader, 1个扇区.

  2. OTA布局
    a) 可选前段是256KB, 512KB, 1MB, 后段至少要大于等于前段的大小.
    b) 前段包括启动程序+主程序+用户数据+用户参数(后两个扇区为云端KEY). 启动程序boot.bin为4KB, 主程序user1.bin, 用户参数4个扇区16KB的后两个扇区存储乐鑫云端KEY master_device_key.bin
    c) 后段包括预留区+主程序+用户数据+系统参数. 预留区4KB, 与启动程序的4KB对应, 主程序user2.bin,实际上是云端下载的缓存区, 事实上也不需要烧录. 系统参数与非OTA布局的相同.

  3. 布局文件的位置
    在ESP8266_NONOS_SDK/ld/eagle.app.v6.ld中的MEMORY字段.

  4. eagle.flash.bin和eagle.irom0text.bin的构成
    eagle.flash.bin是用于存储直接读取到程序内存运行的程序段和数据内存的数据段的.
    eagle.irom0text.bin是用于存储放在flash上, 不直接读取到内存中的程序段的.

程序内存:iram, internal ram, 通过ibus访问, 共32KB, 存放编译后的elf的TEXT字段
数据内存:dram, data ram, 通过 dbus访问, 可能是80kb或者96kb. 存放编译后的elf的data, rodata字段, 这部分字段可用约50kB. 其他的空间用于存放BBS, stack, heap.
FLASH存储: irom, 最大768KB, 存放编译后的elf的irom0.text字段, C源码函数前面有ICACHE_FLASH_ATTR前缀的就是说这个函数是放在irom中的. 另, 最大768KB的原因是, irom起始于256KB处, esp8266最大访问1MB程序段, 故1MB - 256KB = 768KB.
具体需要看(sdk中的eagle.app.v6.ld文件)[https://github.com/espressif/ESP8266_RTOS_SDK/blob/master/ld/eagle.app.v6.ld]对这几个存储的地址和大小的分配, 例如:

MEMORY
{
  dport0_0_seg :                        org = 0x3FF00000, len = 0x10
  dram0_0_seg :                         org = 0x3FFE8000, len = 0x18000
  iram1_0_seg :                         org = 0x40100000, len = 0x8000
  irom0_0_seg :                         org = 0x40220000, len = 0x5C000
}

  1. 编译术语
    BBS block started By Symbol. 存放未初始化的全局变量, 静态分配
    data 已经初始化的全局变量, 静态分配
    text 程序执行代码
    rodata 字符串与#define常量
    heap 堆,动态分配的内存段(malloc, free)
    stack 栈, 临时局部变量, 函数调用栈
    常量段, 编译器产生的数据

参考(ESP8266_NONOS_SDK开发包生成的镜像文件构建步骤分析)[http://blog.csdn.net/yannanxiu/article/details/51371798]
(bss,data,text,rodata,堆,栈,常量段)[http://blog.csdn.net/ouyang_linux007/article/details/7448814]