8大实用又重要Mac使用技巧

一、区分App Store、iTunes Store、Apple Store

【App Store】是苹果公司经营的应用商店,供iPhone、iPod Touch、iPad以及Mac等设备的用户下载各种应用程序。用户可以购买收费项目和免费项目,让该应用程序直接下载安装到iPhone或iPod touch、iPad、Mac等设备。

【iTunes Store】是苹果公司经营的音乐商店,需要使用iTunes软件连接,供用户购买和下载正版音乐。由于版权保护的原因,目前iTunes Store在中国大陆地区尚未开放。

【Apple Store】是苹果公司经营的线下实体连锁零售商店,以展示和销售iPhone、iPod Touch、iPad以及Mac等电脑和消费电子产品为主,并提供各种售后服务。

二、常用的快捷键之——顶行快捷键、空格键

Mac的快捷键辣么多,全部记住是不太可能的。但是如果能记住几个常用键,可以大大提高使用效率。

在一些Apple自己的键盘上,通常顶行会有特殊案件,有音量图标、显示屏亮度图标和其他功能图标。按图标建可执行相应功能,或者将其与Fn键组合使用,来作F1、F2、F3或其他标准功能键。

至于空格(space)键,这是一个神奇的按键。在Mac系统里,这个键几乎可以预览所有格式文件。如视频、图片、音乐、页面、文档、PDF等等。

拿图片举例,只要点选文件夹里某张图片,点击空格键就打开了,再点击上上下下左右键即可切换浏览其他图片,而不用每次都双击打开、再关闭、再双击打开另一张、再关闭……

绳命诚可贵,space大法好。

三、常用的快捷键之——通用快捷键

以下都是小编编觉得最为常用的Mac快捷键,背下来不如多多实操,自然就熟悉了哦~

Command+H——隐藏窗口

Command+M——最小化窗口

Command+N——新建

Command+O——打开

Command+S——保存

Command+shift+S——另存为

Command+W——关闭

Command+Q——退出(小编编最喜欢用的快捷键,关一堆应用不能更爽)

四、常用的快捷键之——文件管理器

让我们告别鼠标,快速管理自己的所有文件~

空格键——快速查看(查看照片时非常有用哦!)

Command+A——选择全部

Command+I——显示简介

Command+N——新建文件夹

Command+F——搜索

Command+C——复制

Command+V——粘贴(用习惯windows的宝宝,应该能看出来Command就相当于Ctrl~)

Command+delete——删除

Command+shift+delete——清空回收站

五、常用的快捷键之——截屏、切换

Command+shift+3——截取整个屏幕(这个非常有用~截图在“Finder-我的所有文件”就能找到,从此告别QQ截图)

Command+shift+4——截取选择区域

Command+shift+4+空格——截取选择窗口(注意和上条的区别,手动操作试试吧!)

Command+tab——在应用程序间切换

Command+ ~(左上角那个键)——在应用程序中的窗口间切换

六、常用的快捷键之——系统控制

Control+shift+↑——关闭显示器

Command+option+esc——强制退出程序

Command+option+↑——睡眠

Command+control+↑——关闭所有应用程序并重新启动

Command+shift+Y——用当前选中的文字生成便签

Command+空格——切换输入法(Mac切换输入法有多坑爹大家都懂,这个快捷键必须记住啊~)

七、修改快捷键的正确姿势

屏幕左上角的【→系统偏好设置→键盘→快捷键】,列表里可以修改系统的快捷键,想要给特定的App设置快捷键的话,直接点击“+”号就可以设置了。

每个App左上角都有菜单栏,理论上所有功能都会列在菜单栏里的。不记得快捷键可以在菜单栏里找~

八、还有一些隐蔽又帅气的快捷小技巧

 QQ新开一个账号的快捷键是Command+N,虽然这个功能并没有放在菜单列表里。

 给Finder增加一个路径显示底栏是Command+option+P

 快速关机:按住右上角电源键5秒

 快速睡眠(马上要去开会or如厕):按住右上角电源键3秒

 想要了解更多Mac快捷键可以访问官网:https://support.apple.com/zh-cn/HT201236

 以及对快捷键有需求,又记不住的话,可以百度一发 KeyCue,这是一个长按Command就会出现快捷键列表的小型App

 想要帅气地打出的快捷键是:shift+option+K

————— 我是一条分割线 —————

其实,Mac使用中最重要的还是对触控板的熟练操作。不要再告诉我,你还在用鼠标操作你的Mac!

熟悉触控板的各种用法,比使用鼠标效率更高,什么三指拖移、四指滑屏…都超好用!

苹果内置很详细的演示教程【→系统偏好设置→触控板】,建议大家好好学习掌握~

有趣的经济学段子

段子一

中国房地产就像无肩带胸罩,一半人在疑惑:是什么支撑了它?另一半人则在盼着它掉下去,以抓住机会。

谁知这个女人,永不可能让它掉下来。就算快掉下来了,提一提还是又上去了…..

段子二

某专家称:现在房价并不贵,胸罩比房子贵多了。好胸罩600元,面积仅为0.02平米。即一平米胸罩超过3万元。

按全国二三线城市商品房均价4000元计算,胸罩相当于房价7倍多。如考虑胸罩使用期限只有一年,而商品房平均寿命约40年,胸罩实际价格相当于房价300倍。

可见,房价并不贵…

段子三

经济上行时股市惨跌,经济下行时股市却暴涨,一位村长解释:在我们村,经济形势好的时候大家都出去搬砖挣钱,形势不好的时候都聚村口赌钱……

段子四

有人将财务自由分成5个等级:一级财务自由,菜市场买菜不看贵贱;二级财务自由,商场购物不看贵贱;三级财务自由,珠宝奢侈店血拼不看贵贱;四级财务自由,楼盘买房不看贵贱;五级财务自由,买公司不看贵贱。

段子五

甲有5套房,不上班,靠收房租生活;乙有1套房,上班赚工资;丙无房,租房子住,菜场卖菜,忽然有天要收房产税了。

丙说:“太好了,我没房,收那帮炒房人的税,我全力支持,房价大跌了,我就可以买房了。”

乙说:“没关系,我只有一套,收那帮炒房人的税,我支持,房价大跌了,我可以再买一套。”

甲说:“哦,房.产.税收多少?1%对吧,下个月房租涨5%。”

房租上涨了,丙很郁闷,想换个房子,发现大家房租都涨了,只好忍。不过也不能吃亏,明天菜价也涨5%,恩,就这么干。乙和甲去买菜,发现菜价涨了,很郁闷,想换个菜场,发现菜价都涨了,只好少吃点了。

于是乎,生活水平就这样下降了,但是房价和租金都涨了,直观的道理,反而很多人都不懂!

段子六

一个北京人,1984年为了圆出国梦,卖了鼓楼大街一个四合院的房子,凑了30万,背井离乡到意大利淘金…

风餐雨宿,大雨送外卖,夜半学外语,在贫民区被抢7次被打3次…辛苦节俭,如今已两鬓苍苍,30年了,终于攒下100万欧元(人民币768万)打算回国养老享受荣华!

一回北京,发现当年卖掉的四合院现中介挂牌8000万,刹那间崩溃了……

或许,人一生多半是瞎忙…有些时候,选择比努力更重要!

段子七

一个小伙子用2000元其中的1500元给MM买了部手机,留500元吃饭开房,骑着电瓶车去找MM,MM说:你是一个好人,可是我们真的不合适。

改善方案:

一个小伙子用700元租了一辆BMW5,然后去批发市场300元买了99朵玫瑰,告诉MM他喜欢手牵手去那些浪漫的小吃店,最多消费100元。

当晚MM就跟他睡了,而且是因为爱情……

这告诉我们商业模式才是决定项目成败的关键,而不是成本!

段子八

男:老板,你这儿洗澡多少钱?
店老板:男浴池10元,女浴池100元

男:你抢钱啊…
店老板:你想去男浴池还是女浴池?

男:…果断交了100块。
进去女浴池一看,全是男的

浴池里的兄弟:…尼玛,又来一男的!

点评:营销从来不是靠低价,关键是引导客户需求。

做业务系统如何能成长为架构师

前段时间有个朋友找到我,问了个非常典型的问题。他说:『我现在在做偏业务开发方向的工作,在平时需要如何积累基础服务和系统架构方面的经验和知识。 』

很显然他意识到了两种系统的区别,而且正在试图转型。然而我知道,他也走进了一个让人难以反驳的认识误区,这就是,因为业务系统技术要求不高,所以开发人员在走向架构师的路上成长缓慢。

业务系统技术要求有多高

如果说从门槛来看,业务逻辑确实是最容易写的代码。产出好量化,功能又好测试。就算真的坏了,系统一般不会因此垮掉。只是,门槛低并不意味着容易做好。

有一种工作是API设计与实现,行话叫『包接口』,也是很多同学刚毕业的第一份工作。这事说起来简单,只要调用方跟被调用方协商一致即可,但是真正做的时候你会发现很多问题。

调用方首当其冲。如果命名混乱,找到想要的接口和参数就会变得很难。而如果你错误码定义得不够清晰,调通一个接口将会变成一个令人崩溃的事情。

被调用方也没有轻松到哪里去。如果没有遵循正交原则,那么你每个接口都可能涉及后端的很多资源调用和库的引用,导致服务不可避免得变大。一个资源的变化,都将有可能会影响到很多接口,这对回归测试和问题排查都将是一个灾难。 阅读详细 »

如何靠挖矿比特币致富?

比特币

什么是比特币?

2009年,一个叫中本聪的日裔美国人发明了比特币,它是一种开源代码的数字货币。大多数人听到数字货币这个概念第一反映就是太虚了,既不是黄金本位,也没有政府背书,万一突然有一天所有人都不认了,我买进去的钱不是日了狗了?

要解决这个困惑,就得了解比特币最重要的三大属性。

第一是总量有限,比特币从代码被设计出来的第一天就已经确定,它一共有2100万枚。考虑到夜报粉丝的阅读能力,我没法把详细原理在这里讲清楚,但可以告诉大家比特币的代码是开源的,全世界每一个人都可以下载,到目前为止没有任何一个人对2100万的总币数提出质疑,所以你即便对自己没信心,也应该对全世界的码农有信心。

限量是有价货币的核心属性,我们持有人民币最怕的就是央行瞎印钞票,美元其实也一样,为什么每次一打仗黄金就暴涨,因为黄金作为稀有金属全世界一共就16万吨,大家手里拿着金子心里塌实。

第二就是知名度,虚拟货币很多,比特币是其中知名度最高的,而这对于互联网产品来说就是巨大价值。

举个例子,微信可能是现今中国商业价值最高的软件,但它的商业价值并不在于软件本身有多了不起,而是在于它有接近6亿的用户。比特币也是一样的道理,全球有几十亿人知道它,这就等于为它的价值背书。

第三是流动性,数字货币天然有优势,不多介绍了。

比特币谁在掌控?

并没有一个实际存在的实体在掌控比特币,这就好象问你,互联网是谁在掌控,google?facebook?中宣部?都不是,互联网是由千千万网民组成,比特币也是一个离散的状态存在。 阅读详细 »

GIT报You have not concluded your merge (MERGE_HEAD exists) 解决办法

git merge 代码是报错 :You have not concluded your merge (MERGE_HEAD exists)

需要放弃本地的修改,用远程的库的内容就可以,应该怎么办?最笨的做法就是重新clone一个,正确的做法是什么?

正确的做法应该是:

git fetch –all
git reset –hard origin/master
git fetch 只是下载远程的库的内容,不做任何的合并git reset 把HEAD指向刚刚下载的最新的版本

参考链接:

http://stackoverflow.com/questions/1125968/force-git-to-overwrite-local-files-on-pull

Spring源码分析(一)——DelegatingFilterProxy

在开发web项目时,经常需要添加自己的filter,在web.xml文件中一般都这么定义自己的filter,filter的name是自己定义的beanName,class一般都是使用org.springframework.web.filter.DelegatingFilterProxy。 配置如下:

<filter>
    <filter-name>userInfoFilter</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>

<filter-mapping>
    <filter-name>userInfoFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

DelegatingFilterProxy 是Spring的一个类,它实现了GenericFilterBean,而GenericFilterBean又实现了javax.servlet.Filter接口,并对Filter的init方法进行了重写,而Filter的doFilter交给其子类去实现。而GenericFilterBean的init方法内部调用了GenericFilterBean的initFilterBean方法。该方法的默认实现为空,其采用了模板方法的设计模式交给其子类去实现initFilterBean的具体逻辑。

public final void init(FilterConfig filterConfig) throws ServletException {
    //...此处省略部分代码
    // Let subclasses do whatever initialization they like
    initFilterBean();
    //...此处省略部分代码
}

现在,来看看DelegatingFilterProxy的initFilterBean的现实代码

@Override
protected void initFilterBean() throws ServletException {
    synchronized (this.delegateMonitor) {
        if (this.delegate == null) {
            // If no target bean name specified, use filter name.
            if (this.targetBeanName == null) {
                this.targetBeanName = getFilterName();
            }
            // Fetch Spring root application context and initialize the delegate early,
            // if possible. If the root application context will be started after this
            // filter proxy, we'll have to resort to lazy initialization.
            WebApplicationContext wac = findWebApplicationContext();
            if (wac != null) {
                this.delegate = initDelegate(wac);
            }
        }
    }
}

该方法中有两处关键的地方this.targetBeanName = getFilterName()与WebApplicationContext wac = findWebApplicationContext()。前者得到web.xml中filter对应的名字,将其赋予为targetBeanName;后者 得到一个WebApplicationContex对象,这个接口大家应该很熟悉其续承了ApplicationContext,而通过其getBean方法我们便可以得到在application-context.xml配置文件中配置的bean。 先来看看 initDelegate对应的代码:

protected Filter initDelegate(WebApplicationContext wac) throws ServletException {
    Filter delegate = wac.getBean(getTargetBeanName(), Filter.class);
    if (isTargetFilterLifecycle()) {
        delegate.init(getFilterConfig());
    }
    return delegate;
}

Filter delegate = wac.getBean(getTargetBeanName(), Filter.class),便是利用我们在web.xml配置文件设置的<filter-name>userInfoFilter</filter-name>去application-context.xml配置文件中找到具体的实现类。 所以,在application-context.xml文件中bean对应的id一定要与web.xml中的filter-name一致。

Java设计模式教程(二)——责任链模式(Chain of Responsibility)

责任链模式(Chain of Responsibility)是行为模式之一,该模式构造一系列分别担当不同职责的类的对象来共同完成一个任务,这些类的对象之间像链条一样紧密相连,所以被称作责任链模式。

一、应用场景:

例1:比如客户要完成一个任务,这个任务包括a,b,c,d四个部分。 首先客户Client把任务交给A,A完成a部分之后,把任务交给B,B完成b部分,…,直到D完成d部分。
例2:web开发中的filter和interceptor

二、UML类图
责任链模式

抽象处理者(Handler)角色:定义一个请求的接口。如果需要可以定义个一个方法用来设定和返回下家对象的引用。
具体处理者(ConcreteHandler)角色:如果可以处理就处理请求,如果不能处理,就把请求传给下家,让下家处理。也就是说它处理自己能处理的请求且可以访问它的下家。 阅读详细 »

老员工的工资为什么会倒挂?

因为你的薪酬待遇只有在入职的那一刻才是被人力部门以市场价值评估。

之后的若干年加薪都是遵循企业内部晋升通道,如果企业加薪幅度赶不上同岗位市场薪酬回报的上涨幅度,就会出现工资倒挂。

在2012年,某岗位本科应届毕业生起薪2K—3K;

但到了2015年,同岗位的本科应届毕业生起薪已经涨到了5K(如果低于5K面试通知都发不出去);

如果2012年入职的毕业生小A合同起薪是2K,小A在工作中尽职尽责,每年都能拿到30%的调薪(部门上限了,少数);

那么3年后,小A的薪酬是4394/月(2000*1.3*1.3*1.3),他已具备三年工作经验;同时,新入职的员工小B是应届毕业生,起薪5K。

小A不想走,部门领导也舍不得放,但部门领导能争取到的调薪上限已经是30%;

小A跳槽的话作为3年熟练员工起薪8K,有管理经验还可以再上浮,这些信息对各方都是公开的,不存在信息不对称;

但是,部门领导想将小A的薪酬从5K提升到8K将会面对千山万水甚至要高层特批,而外面招一个与小A同资历甚至不如小A的人,只要提一个招聘需求就好;

最终,小A还是走了,虽然部门领导极力挽留,但30%是越不过的坎儿; 阅读详细 »

如何准确听出英语中的数字

无论是在各类考试的英语听力中,还是练习口语对话,数字往往是关键信息,然而大多人对这都是稀里糊涂。年月日的正确读法?序数词怎么读?分数、小数怎么读?……这些英语中的数字表达你都会读吗??

先看两个例子:

1,345,233 = one million, three hundred and forty-five thousand, two hundred and thirty-three.

1,684,234,465 = one billion, six hundred and eighty-four million, two hundred and thirty-four thousand, four hundred and sixty-five.

仔细看看,有没有发现规则?

英语里把一个基数词的基础上进一位用ten表示,进两位用one hundred,进三位时就用一个新的基数词来代替,然后在新词的基础上进位用相同的方法!

好吧,我再讲一个实用的规则,这次是关于“teen”和“ty”的区别,15、50听起来傻傻分不清楚!

“-teen”和“-ty”是比较容易混淆的一对读音。我们可以通过音和音素的差异来区别两者。含有“-teen ”的词有两个重音,即“-teen”要重读,且“-teen”中的元音为长元音[ti:n],发音长而清晰;而含有 “-ty”的词只有一个重音,即“-ty”不重读,且“-ty”中的元音为短元音[ti],发音短而急促。 阅读详细 »

Java工程师应该读的几本书

《深入理解Java虚拟机:JVM高级特性与最佳实践》

深入理解Java虚拟机:JVM高级特性与最佳实践

《Java并发编程实战》

Java并发编程实战 阅读详细 »