Mac OS上的一些小工具

本文记录一些 Mac OS 上能提升使用体验的实用小工具。

1. Itsycal for Mac

Mac 菜单栏右上角的日期,点击后是个设置菜单,不够方便。Itsycal (官网)这个小工具可以定制一个额外的日期时间区域,像Windows一样方便。而且,完全免费。

2. Moom

Moom(官网)能方便的调整各种窗口的大小。此工具需要10美元,非常划算。

3. Vanilla

Vanilla(官网) 是一个解决 Mac OS 菜单栏图标过多问题的小工具,能隐藏一部分不常用的图标。自动隐藏和开机自启动需要升级到Pro版,升级方式有两种:4.99美元;或者邀请4个人。目前只需要被邀请人下载就算邀请成功,所以相当简单。

4. Popclip

Macbook 坏了一段时间,那段时间只能切换到 Windows 平台。让人最不习惯的,就是平时这个不起眼的小工具:Popclip(官网)。当你选中一段文字时,popclip会根据类型自动弹出一个菜单,点击即可搜索、转换或进行其他操作。

使用HE.NET的DDNS服务更新群晖的IP

不知道从何时开始,群晖自带的 DDNS 服务器 i234.me 不可用了,访问之前设置好的 ddns 服务器访问到别家的 NAS 上,看了几分钟没看出端倪,所以尝试使用第三方的 DDNS 服务。之前做网站用到的 DNS 服务器是 HE.NET 的,免费稳定。所以考虑DDNS服务也用他家的免费服务。

总体来说也是非常简单,只是有些网站上写的不太清楚或者过于复杂,所以这里做一下记录。

一、在 DNS.HE.NET 后台创建 DDNS 指向

登录到 https://dns.he.net 后台,选择要设定的域名,点击「New A」添加A记录。


创建A记录时,有个选项「 Enable entry for dynamic dns 」,勾选此选项后,「 IPv4 Address 」和「 TTL 」选项会自动生成,不用动。给「 A记录 」定义一个「 Name 」比如「 ddns 」,点提交即可。

二、设定DDNS KEY

第一步添加了用作 DDNS 解析的域名 A 记录,这里是 ddns.yourdomain.com。添加后,在域名的记录列表中有这条记录。这条记录右侧有一个类似刷新的按钮,鼠标放上去会提示 「 Generate a DDNS key 」 ,点击进入生成 DDNS KEY 界面。

这里可以手动输入或者点击 「 Generate a key 」自动生成一个 DDNS Key。我选择的自动生成,毕竟自动生成的比较复杂,不容易被猜到,相对安全。

三、在群晖上设置定时任务

进入群晖后台,在 「控制面板 – 系统 – 任务计划」,点击 「 新增 – 计划的任务 – 用户定义的脚本 」


基本设定如上图所示,我设置为每天运行,每10分钟更新一次。在任务设置中,输入用户定义的脚本:

wget "http://ddns.yourdomain.com:key_for_your_ddns@dyn.dns.he.net/nic/update?hostname=ddns.yourdomain.com"

将上面一句话中的「 ddns.yourdomain.com 」 key_for_your_ddns 替换成第一步中设置的域名和第二步中设置的 KEY。

这样设定后,每十分钟就会更新NAS的外网IP到指定的域名上,便于远程访问。顺便说一句,如果没有外网IP,电信是可以打电话要求开通的。

一个新手如何在四个月内成为专业码农?

假设有一个大学生,通过四年学习获取了一张计算机科学的本科文凭;同时,他在学校也应该有一些编程经验。当他从学校毕业,刚踏入他的编程职业生涯时,你觉得他会获得一个怎样的称号么?

答案是:菜鸟。

我带新人已经有十多年了。根据我的经验,从一个菜鸟成长为一个能应付现实中复杂编程的码农,通常至少需要一年到一年半时间。而且,必须有专业的导师辅导,这个专业导师能力需要很强的能力,才不至于带偏。实际情况是,现实中码农每天都肯定会遇到的问题,学校的课程从未涉及的。只有在实际的工作中,才能学会如何处理这些问题。

正常人从初级码农到高级码农通常需要花4-5年时间。所以,是什么让你产生了只需要四个月就能成为专业码农的想法?

你现在最需要做的,是改变你的想法。的确,也许你只需要花4个月时间就能获得一份码农的工作,然后在工作中遇到各种大坑。如果你选择进入一个小作坊式的公司混日子应该也可以,但这与专业二字无关。我建议你调整你的目标;并且在接下来一年里参与一门线上或线下的教学课程,然后写一些难度适中的程序。「难度适中」是指,你感兴趣的,并且对你有一些压力但又不至于太大完全无法实现。说白了,放弃「创造另一个 Facebook」的想法。

在语言的选择上,建议选择 Python 或者 Smalltalk,这些语言入门较为简单。听说过某种编程语言与掌握编程语言是两码事。很明显,很多声称了解某种语言的人并没有真的学习过这种语言,充其量只是跟着入门教程走了一遍而已。

有很多人从没有越过这道门槛。根据我的经验,问出你这种问题的人中,有80%的人没能成功。通常,他们都止步于刚开始的快速入门和了解,并没有深入到某种语言中去。只有通过多年的实践,才能比较熟练的掌握编程技能,这个过程绝对不像你想象的那么简单。

几乎没人能仅仅只花4个月就达到专业码农的水平。所以,现实一点,先写一点比较小的程序,这样至少还有机会。如果专业码农这么好当的话,程序员这个职业就会变得非常廉价,事实上并非如此。

原文:How do I become a pro coder from total noob in 4 months? Where should I start?

UBNT ER-X 日常家用简单配置

开启upnp2

sudo su
configure
set service upnp2 wan pppoe0
set service upnp2 listen-on switch0
set service upnp2 nat-pmp enable
set service upnp2 secure-mode enable
commit
save
exit

路由器直接访问光猫

打开 eth0(config),在 Address 中改成 Manually define IP address 然后给 eth0 设置一个与光猫相同网段的 IP 地址,比如默认的光猫的 IP 地址是 192.168.1.1,那么你设置的 IP 地址可以是 192.168.1.2/24,后面的 24 是 C 类子网掩码 255.255.255.0 的意思。

然后,找到 Firewall/NAT – NAT,默认这里已经有一条记录 masquerade for WAN。如果没有说明你不是使用向导创建的 WAN-2LAN2 网络设置,重来。

点击 Add Source NAT Rule,新建一条 NAT 规则。

Description: 自定义,我这里设置的是 masquerade for LAN
Outbound Interface: eth0 (这里很重要,选择刚才设置的端口eth0)
Translation: Use Masquerade(重要)
Protocol: All protocols

保存后,既可以通过路由器下的设备直接访问光猫的管理界面。

我的2016年总结

这几天鹏城的气温一路下降,穿着薄羽绒服也不敢轻易出门了。2015年没有写年终总结,2016年还是写一下吧,作为一种仪式。对于我这个阶段的普通人来说,在旁人看来,能拿出来说的成就,也就不外乎升职加薪这两样。今年是毫无成就的一年,既没有升职,也没有加薪。

我感到很惭愧,没有脸去丈母娘家吃年夜饭。还记得前几年有一次去老婆那边的爷爷奶奶家,岳父逼着我跟爷爷说当年的年终奖多少。那一年的年终奖,虽然绝对值不算多,但比现在的年终双薪还是多了好几倍。现在想来,实在是庆幸。如果是这两年去,就没办法说了。

继续阅读 →

闲鱼 App 地区选择功能可能的交互优化

闲鱼 App 最近更新了。选择地区时,自动定位当前地区的功能更明显了。如下图:

UI 设计上没话说,简约而清晰。然而我在用了一次之后就再也没用过这个功能,甚至让我感到非常难受:它知道我的位置,却不能帮助我快速选择。

因为我在闲鱼上淘物件的时候,通常会选择同城交易,但是我不会精确到必须在同一个行政区。所以对于我来说,闲鱼这种定位到区级行政范围的快捷方式有点「过度设计」了。如果闲鱼的后台统计数据显示出更多的用户是选择同区域交易,则这种设计倒是有几分道理。

不过,就算闲鱼有数据证明,选择同一个区级行政区域交易的用户最多,我们也还是可以做出一个更灵活的设计。

我粗略的画了一个,在设计上可以做出更明显的可点击暗示。这样设计后,偏好同省、同市或同区域的用户都可以快速选择。

Python 随机生成手机号码

import random


def random_mobile_phone():
    firsts = ['133', '153', '180', '181', '189', '177', '173', '149', '130', '131', '132', '155', '156', '145', '185',
              '186', '176', '134', '135', '136', '137', '138', '139', '150', '151', '152', '158', '159', '182', '183',
              '184', '157', '187', '188', '147', '178', '184']
    phone = random.choice(firsts) + ''.join(random.sample('0123456789', 8))
    return phone

print(random_mobile_phone())

使用 Smart App Banners 提升应用安装体验

从 iOS 6 开始,Safari 有了 Smart App Banner 这项全新的特性。有了这项新特性,网站能通过标准化的方法,更好的引导用户从网页转向 App Store 下载应用。

smartbanner_2x

与其他方法相比,使用 Smart App Banner 能极大地提升用户的浏览体验。Smart App Banner 在所有应用到这项技术的网站上的外观都保持了统一的风格。这种风格有助于提升用户的信任感,当用户看到 Smart App Banner 时,将确信他们点击按钮后会跳转到 App Store,而不是什么其他的广告网站。与那些打断浏览体验的全屏广告相比,用户更容易接受 Smart App Banner 这种顶部的广告。同时,用户能够通过 Smart App Banner 上明显的关闭按钮,轻松的关掉这个提示;当用户以后再访问这个页面时,Smart App Banner 也不会再出现。

继续阅读 →

Nexus 5X 解锁/Recovery/ROOT

注意:

  1. 进行以下操作会清除手机所有数据,请谨慎。
  2. 鉴于第一条,建议将手机恢复出厂状态进行操作,避免不必要的错误。
  3. 本文不适用于 Android N 系统,会导致无限 TEAMWIN 界面。

继续阅读 →