C++ 坑比较多,要想短期上手写代码不是不可以,但用在工程里很可能写出不少坑自己又坑伙伴的代码。 Essential C++ 是我唯一知道靠谱又篇幅比较短的入门书了。 但这还不够,如果急于求成的话,至少还应该通读一遍《C++ 编程规范》,如果能完全掌握,应该能回避工程中会遇到的坑了。 但这本书都是浓缩的精华,解释不够详尽,我不太确定 C++ 初学者对它的接受度。
另外这两本书都没有涵盖 C++ 1x 标准的内容。新标准中引入了不少好用的特性,条件允许的话还是应该尽量采用。
由于 C++ Primer 第五版更新到了 C++ 11 标准,我还是建议通过这本书入门,虽然中文版也超过了 800 页,但没有哪个项目会用到全部 C++ 特性,所以作为入门,阅读内容是可以裁剪的。
我的建议: “第 1 章 开始”、“第Ⅰ部分 C++ 基础”:详读。这一部分虽然有大概 300 页,但各种语言大同小异,重点比较和你常用语言的差异就能事半功倍。 “第Ⅱ部 C++ 标准库”:大部分略读,大概知道有什么内容,以后用到再查。注意,用之前一定要查!另外“第 12 章 动态内存”一定要详读。 “第Ⅲ部分 类设计者的工具”:13、15 章详读,其他略读,用到再查。 “第Ⅳ部分 高级主题”:18 章涉及到异常和命名空间的详读,其他略读。
可以直邮,但个人不建议买。以前买过几次,要么是没有电子版的,要么折扣实在低,买来收藏的。 美亚图书运费比较贵,我买的时候(现在不知道有没有变)是每一单起价 5.99 美元,每本书再加 4.99 美元,还是平邮,到国内大概 3 到 5 星期。其他更快的运费就感人了。
技术类图书建议到各出版社官网买电子版(有 PDF 格式,经常还搞折扣优惠),非技术类可以买 Kindle 版,方便。如果非要实体书,先到中亚搜一下有没有货,虽然标价比美亚贵(偶尔也能买到比美亚便宜的),但考虑到运费,价格不一定差太多,还有物流速度的优势。
香港的 VPS 貌似带宽和流量偏小,东南亚的话,有没有考察过新加坡,大型 VPS 服务商一般都有新加坡节点。
#24 楼 @libuchao 现在看来,目前的解决方案从使用效果上,相当于更好用的虚拟机。不过由于文件系统的无缝共享,也有望解决部分问题了,如 git for Windows 的效率问题。
git 本来是以快著称的,但我在工作项目上运行time git status
的结果(另,我是用 PCI-E 协议的固态硬盘):
real 0m6.824s
user 0m2.437s
sys 0m12.078s
这在 OS X 或 Linux 基本是秒开的。
git difftool
、git mergetool
每个文件弹出来目测要等好几秒(好吧,如果用原生 git,估计我不能设置某个 Windows 程序做 merge tool 了)。
git checkout
如果两个分支差异比较大,随随便便等个几分钟甚至更长时间。
总之用得很搓火。
#10 楼 @libuchao 可能我们的关注点不一样。看了视频,所谓的“无缝切换”,是建立在 Linux、Windows 可以访问同一个文件系统上的。这个功能应该是显而易见的,不然和虚拟机比,可用性上也没太多优势。另外就是,我注意到,演示时在 cmd 直接输入bash
运行。但不确定这个 bash 是 Linux 原生的(也就意味着 Windows 程序可以直接调用 Linux 工具),还是做了特别处理。
但我的疑问还是没有解决,至少从视频看不出来。举个实际的用况,假设一个 OS X 用户,使用 Textmate 做编辑器,那么他可以:
mate path/to/file
编辑指定文件$EDITOR
设为mate
,这样当命令行工具需要编辑文本时,可以调用 Textmate以上的用法,应该不算很罕见和特殊吧?我们把他挪到 Windows 上,至少需要实现:
C:/path/to/file
,甚至是C:\path\to\file
,Linux 程序怎么理解?而 Linux 程序给 Windows 的则是/mnt/c/path/to/file
或/home/username/path/to/file
。
还有ln -s
(或者通过其他脚本创建 symlink),在 Unix 是个很常用的操作,而在 Windows 上坑爹的是个特权操作。于是 cygwin 是自己实现的 symlink,出了 cygwin 环境就不认了。而 MinGW 默认配置是关掉 symlink,ln -s
实际在做拷贝,即使配置成使用系统原生的 symlink,因为权限问题,也不方便。总之现在 Windows 上使用 Unix 环境是很痛苦的,目前微软官方的方案只是解决了部分问题。
在 Windows Blog 上看到这么一条: Third, note that Bash and Linux tools cannot interact with Windows applications and tools, and vice-versa. So you won’t be able to run Notepad from Bash, or run Ruby in Bash from PowerShell.
https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/
我一直盼望 Windows 能像 OS X 一样加上一个原生的 POSIX 兼容层。所以现在微软走出这一步,还是很兴奋的。 但对以宣传的这种方式实现 Linux 兼容,听起来能直接运行 LInux 程序很厉害,但可用性怎么样还得看实际的使用效果,能用和 好用是两回事。希望这个宣传是真的:The sysbench utility is showing nearly equivalent cpu, memory, and io performance.
以 cygwin 为例,这样的工具用户体验是比较差的,我个人是没有把它投入实用的欲望,主要有两个问题:
一个是效率(也许这次微软能解决),举个栗子,Windows git 用在大型项目上速度感人,用过的人应该有所体会。这里面可能有两个原因:NTFS 处理大量小文件似乎效率不高;Linux 程序大量依赖 fork 调用子进程完成任务,本来 fork 是很轻量级的,但 cygwin 用 Windows API 模拟的 fork 代价极高。
二是和其它子系统的配合。这一点在 OS X 上都有所体现,例如通过 bash 配置的$PATH,其他应用继承不到(除非是在终端启动),需要另想办法。但人家总归是在整个系统层级实现的 Posix,少少的配置之后,日常使用不会出问题。但以类似 wine 的方式实现 Linux 兼容层,和其他 Windows 程序的配合不知道能怎样解决。比如怎样让 c:\path\to\file、/c/path/to/file、/path/to/file 这类的东西在不同子系统件顺畅的传递?
Java 程序的速度快不奇怪吧,JVM 应该是最快的虚拟机了吧,除非有什么不为大众熟知的黑科技产品。 曾经.Net的虚拟机应该是快过JVM的,毕竟有一些比JVM厉害的优化功能,例如C#有值类型可以在栈上创建,而Java对象都是在堆上动态分配的。 但我去年做过一个测试,一个计算密集型的算法(光线跟踪),在Windows平台上,Java实现的版本比C#快不少,和C++写的原生代码也只有倍数左右的差距,简直碉堡了。
如果不急用,建议等新款,有 skylake 的加持,估计升级的余地比较大
我觉得我第一段已经说明了期权和股份的关系:期权就是选择权(option),可以让你在未来一定期限内,以约定的价格(行权价),购买不超过约定数量的公司股票。
不知道你疑惑的点在哪里?
期权很复杂,就不多解释了(其实是我也讲不清楚),只说和“招聘帖”相关的东西:就是公司给你选择权(option),可以让你在未来一定期限内,以约定的价格(行权价),购买不超过约定数量的公司股票。
对你有什么用?打个比方,如果公司上市了,股票市场价格是 100 元,而你有期权 10 万股,行权价 10 元,那你理论上可以赚到 900 万(其实没那么好,继续看后面)。
听起来挺好,但你要注意:
这类情况,正统的 VIM 解法是使用 register。如果选块数量较多,操作有规律性,可以看下能不能用宏。如果楼主特别需要多重选区的功能,只有搜下看有没有插件解决问题了。
#4 楼 @wl1991724 觉得 Java 慢应该先考虑看看 Groovy 啊,一段合法的 Java 代码几乎就是合法的 Groovy 代码,可以从 Java 无缝逐步迁移,可以共享 JVM 生态环境,可以享受动态类型语言的便利和诸多语法糖以及元编程能力,在必要的情况下也可以使用其静态类型的特性,以提高运行速度或执行编译器检查。
#10 楼 @sorashiro 你是在虚拟终端下用 vim 吗?如果是的,先换成用 GUI 版本的,如 gvim,这样 colorscheme 的显示才是准确的。如果一定要用终端版本的,首先要确保$TERM
为xterm-256color
,其次要么修改虚拟终端的调色板设置,要么配合 CSApprox 插件使用。
要知道答案很简单,去看作者的.vimrc
,有这么一行
for scheme in ['janah', 'gruvbox', 'hemisu', 'desert']
自己去试下是哪个吧
强烈推荐 Karabiner 这个软件,首先按 1 楼图示互换 Control 和 Caps Lock,然后在 Karabiner 中设置左 Ctrl(即物理上的 Caps 键,根据 Karabiner 的说法,系统对 Caps 这种状态切换键的处理有些特别,不能简单的映射成别的键。所以先用系统设置把 Caps 的功能改掉是最简便的)为:单独按时当 Esc 键,和其他键组合时当左 Ctrl 键。有需要的话可以再设置 Enter 为:单独按时为 Enter,组合按时为右 Ctrl。此外我还利用它设置 key repeat 的速度,系统设置的最高速仍然太慢。不知大家有没有发现,在 mac 下面的 vim,用 hjkl 连续滚屏(尽管这是个 low end 的操作)时候总是不流畅,和 Linux 下面完全不能比,开始我百思不得解,OS X 的渲染性能怎么可能这么弱,后来发现其实是 key repeat 不够……
总之用上 Karabiner 后,使用 vim 的舒爽程度顿时提高不少,此外还有更多碉堡的设置供大家发掘。
看起来M-x
键绑定被人改了,evil 应该不会改这个键的。
你是怎么启用 evil,通过M-x evil-mode
?然后启用之后,M-x
就不起作用了?
这个应该是 ruby 用的命令行参数解析库的要求,这个 --with-pg-config
不是 gem 自己的参数,通过--
分割,让解析程序不把它当做命令行参数处理。
The argument "--" should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character. The "--" argument should not be used as an option or as an operand.
#1 楼 @blacktulip 4.5W 的 TDP 是瓶颈,别看能 turbo 到和 air 差不多的频率,但无法长久维持,否则芯片会过热,所以性能还是比不过 air 的。
不过这 CPU 对我是勉强够用了,唯一屏幕分辨率是硬伤,只相当于 1152x720。只希望下个版本会有更好的了,看这架势未来也许会出 14 寸的版本。(貌似 air 第一版也只有一个尺寸?记不清了)
#20 楼 @moyuanming 解释很清楚。
原文的算法没问题,楼主这个案例,按照文中信用卡“手续费”的提法,相当于年手续费 0.6/22.8,约 2.63%,算是比较优惠的了。当然,借钱来纯粹用于消费,即使是零利息,也不可取。
貌似你们都没算对吧。 如果我没理解错楼主的意思,应该是借 24 万,两年还完,每月还 10500(其中本金 10000,利息 500。不过看楼主的表格,又是是本金 9500,利息 500?如果是这样的话,本金应该没有 24 万)。这和按月等额本息还款方式下,年利率 4.7% 的还款金额差不多,算下来还是有点优惠的,两年期的基准利率现在是 6.0%。
在使用 BigDecimal 前建议你先仔细检查一下代码,正常情况下 Float 能表示的数的绝对值足够大了(反而有时候可能是因为精度不够——只有 15 位有效数字,所以需要采用别的表示方法)。 另外 NaN(Not a Number)也不一定是计算过程中溢出了,也有可能是有错误,如对负数开方。
WPS Office 支持直接导出 PDF 格式,较新版本的 Microsoft Office 也能另存为 PDF。可以调用它们的 COM 接口实现自动化。