Skip to content

Ider

沉淀我所学习,累积我所见闻,分享我所体验

Primary Navigation Menu
Menu
  • Home
  • About Ider
    • Who Ider?
    • Why Ider?
    • How Ider?
    • Where Ider?
    • What Ider?
2016-03-30
30 March
On March 30, 2016
In Front Interface(界面构想), IT Products(数码产品), Special Tricks(奇技妙招)

实用Mac的Dictionary应用程序

dictionary学习英文最需要的是一本字典来查看单词的意思。在电脑上虽然可以上网来搜单词,但是被网速约束总是会让人烦躁,让英文阅读变得不流畅,所以就更希望能够有电子字典可以直接使用。以前使用Window PC的时候有很多英汉汉英字典可以选用,但到了Mac电脑上就没有什么功能和界面都比较完善的应用。

其实Mac自带的Dictionary应用就已经非常强大:庞大词库,准确释义;离线查询,在线Wiki;屏幕选词,原生结合;清爽界面,稳定流畅。而且在最新的系统中,字典库还包含了牛津英汉和牛津汉英字典,就不用在网上到处找中英字典安装。
Read More →

2016-02-29
29 February
On February 29, 2016
In Article Collection(聚宝收藏), IT Products(数码产品), Knowledge Base(心得笔库), Special Tricks(奇技妙招)

关闭Mac的不同模式和方法

现在每个公司都为会员工配备工作电脑,但是对电脑的使用也会有诸多的限制和保护,以免公司的重要资料被泄露。其中最基础的一条就是电脑必须要有登录密码,并且当人离开电脑的时候必须要锁定电脑(Lock Screen)防止被别人获取到电脑上的内容。本文就来分享一些快速让电脑进入屏幕锁定状态的技巧和操作。

首先来分一下“关闭”的几个等级,它们从高到低的等级如下:

  • 关闭电脑(Shut down):这个功能只在系统或者软件更新,或者死机时才会用到,其它时候电脑基本不关闭。
  • 登出用户(Log out):公司电脑大多只用一个账户,除了少数应用需要登出后重新登录才能初始化好。
  • 进入睡眠(Sleep):这个功能基本是取代关机功能,大多数情况是因为电脑在一定时间没有操作自动进入了该状态。
  • 关闭屏幕(Display off):只是屏幕没有显示,电脑还在运行,启动屏保也可以算是其中一种。

之后我们主要也是针对最后两种等级来讨论。

让Mac笔记本电脑进入睡眠方式最直接的方法自然是合上电脑。而其他关闭状态则可以从Mac的苹果菜单栏( Menu)下选择相应的选项。
menu

当按住Option键时选项中的…会消失,此时点中选项系统不会弹出确认框,直接执行选定的操作。
Read More →

2016-02-23
23 February
On February 23, 2016
In Design Patterns(设计模式), Knowledge Base(心得笔库), Language Tips(语言初试), Special Tricks(奇技妙招)

Java的final关键字

在《Java关键字分类解析》里介绍了所有Java关键字和保留字的基本用途,到《Java修饰符及其作用对象》又介绍了所有Java修饰符的应用。通过修饰符的表格看到final是唯一一个可以在类(Class)、方法Method、变量(Variable)上都能应用的,但前文也提到final在这些作用对象上的效果是不太一样的,本文就详细展开介绍一下final的具体效果。

final class

当一个类被定义成final class,表示该类的不能被其他类继承,即不能用在extends之后。否则在编译期间就会得到错误。
[codesyntax lang=”java” lines=”normal”]

package com.iderzheng.finalkeyword;

public final class FinalClass {
}

// Error: cannot inherit from final
class PackageClass extends FinalClass {
}

[/codesyntax]
Java支持把class定义成final,似乎违背了面向对象编程的基本原则,但在另一方面,封闭的类也保证了该类的所有方法都是固定不变的,不会有子类的覆盖方法需要去动态加载。这给编译器做优化时提供了更多的可能,最好的例子是String,它就是final类,Java编译器就可以把字符串常量(那些包含在双引号中的内容)直接变成String对象,同时对运算符+的操作直接优化成新的常量,因为final修饰保证了不会有子类对拼接操作返回不同的值。

对于所有不同的类定义—顶层类(全局或包可见)、嵌套类(内部类或静态嵌套类)都可以用final来修饰。但是一般来说final多用来修饰在被定义成全局(public)的类上,因为对于非全局类,访问修饰符已经将他们限制了它们的也可见性,想要继承这些类已经很困难,就不用再加一层final限制。

另外要提到的是匿名类(Anonymous Class)虽然说同样不能被继承,但它们并没有被编译器限制成final。
[codesyntax lang=”java” lines=”normal”]

import java.lang.reflect.Modifier;

public class Main {

    public static void main(String[] args) {
        Runnable anonymous = new Runnable() {
            @Override
            public void run() {
            }
        };

        System.out.println(Modifier.isFinal(anonymous.getClass().getModifiers()));
    }
}

// Output:
// false

[/codesyntax]
Read More →

2016-01-24
24 January
On January 24, 2016
In Programming Life(程序人生)

言传而身教,求知并实践

在我第一份实习工作里,我跟着老板学习并进入了软件开发行业;从我第一份全职工作那,我看到了工程师的不同职业路。在现在的公司里,我也获得了很多身边同事们的指导和帮助,看到了更多在行业和领域中的佼佼者。学习他们写的代码,观察他们设计的架构,与他们交流,甚至只是看着他们工作,都让我发现新的领域,加深流程理解,提速知识学习。他们让我了解到了工程师在不同阶段所作出的贡献大不相同。更可贵的是他们总是愿意抽出他们宝贵的时间给我指导,帮助我变成像他们那样杰出的工程师。

现在的公司员工数比以往的公司要多几十几百倍,所以很难像以前那样找到几个经典人物来表述,也因为公司庞大所以有着更明确的职称(Title),所以此篇文章里我将对“位”分别描述,回顾并感谢每位同事带给我的提携和指导。

(文章比较长,主要讲述在我身边工作的Senior Engineer,Manager和Staff Engineer让我感受到的执行力(Execution)、领导力(Leadership)、主动性(Initiative)这些能力特性,也让朝着他们的方向不断的去学习获取这些能力。)

  • Senior Engineer – Execution
  • Engineer Manager – Leadership
  • Staff Engineer – Initiative
  • Title ≠ Ability – Study

Read More →

2016-01-20
20 January
On January 20, 2016
In Article Collection(聚宝收藏), IT Products(数码产品)

一些实用的在线课程的网站

现在的学习已经不仅仅局限于课堂之上,也不光来自于工作之中,借着在线教育网站(Massive open online course, MOOC)的崛起,越来越多的人通过在线学习了补充自身的知识,提高各个方面的能力。之前分享过《一些视频教程网站推荐》,这里再分享一些非常有用的提供在线课程的网站,可以在上下班路上或者平时休息时播放观看。

Udacity

Udacity

Udacity主要是编程开发技术类的在线课程,而且这些课程的由诸如Google、Facebook这些大公司提供,所以质量也很高。这些视频大部分需要付费才能观看,但也有很多免费又值得学习的内容。我个人在上边获得了很多关于Android开发方面的能力提升。

对于付费用户,网站还会在完成某些课程内容后提供“Nanodegree”的荣誉来证明对某项知识已被掌握。

Udemy

Udemy

Udemy上的视频教程包罗万象,对于不满足于一个领域的知识的人,可以在上边了解其他领域的基础知识,比如房产投资,股票交易。

同样的,网站的大部分课程的需要付费,而且价格还不低,但是一些免费课程也非常的受欢迎。另外很多课程每节视频的长度都较短,所以很容易快速完成一节课程的学习。
Read More →

2015-12-28
28 December
On December 28, 2015
In Algorithm Analysis(算法分析), Knowledge Base(心得笔库), Programming Life(程序人生)

聊聊刷题

在之前的《谈谈面试》中我讲述了我在面试上的经历和看法,而对于软件行业的面试很多都要求被面试者解决一些编程上的问题。这类面试有很多名字:算法题(Algorithm Question)、编程题(Programming Problem)、考代码(Coding Interview)等等,但基本形式都是:给出一道问题的描述和目的,要求写出程序能够接受相应的参数然后完成目标需求最终得到结果。

大部分常见的这类面试问题都被大家总结在了网上,可以直接搜索找到,或者在一些论坛的特定板块(比如未名空间的待字闺中,一亩三分地的面经)里见到讨论,甚至形成了在线测试网站(比如LeetCode、LintCode)直接验证程序的正确性。

由于面试题目的公开性,造就了软件行业特殊的面试准备过程:刷题。很多朋友也会问我:“出去面试还刷题吗?”准确地讲,我刷过算法题目,也经常后悔没有早在还在学校里时就开始刷题,那样就能更早地进入心仪的公司。但现在出去面试前基本都还是忙着正常的工作,不会专门去练习题目。

刷题的目是理解算法和数据结构

好比读书的时候每次老师教授了新的知识后都会布置习题,完成那些作业可能会让我们在考试中碰到原题而拿到高分,但正真的作用是帮助我们理解和消化所学的知识。从简单的理解:“程序=算法+数据结构”,要写好程序就必须去熟悉算法和数据结构,刷题就应该是完成这样的作用。如果题目做不出来,就说明连最基本写程序的能力都没有,自然很难得到公司的青睐。

我常常幻想如果我高考没有失常,能进入更好的学校学习计算机知识,甚至参加ACM小组,得到老师在算法上更好的点拨指导,也因为要参加计算机竞赛,我也会练习更多的题目,现在就不需要刷题了。但现实是在我就读的大学里,算法只是一门选修课,我也没有参加过任何计算机竞赛。但联想高中数学竞赛的培训过程,老师肯定会分类进行知识传授和练习。所以刷题也一样要分类进行强化训练。

LeetCode虽然是最火的题库,但是在我刷题的时候它只是简单的罗列一百多道题目(可参看我的不完全题解列表),所以当时我更倾向去做UVa上的题目。那上边有上千道题目,肯定是不可能做完的,但是有比较好的分类专区,可以专门的加强某一特定算法和数据结构的基础知识。

一开始我连最简单的二分查找(Binary Search)算法都写不好,但是在反复练习之后,我也能总结出二分法的实现,并汇总一些变形题目到博客里。刚毕业那会找工作,好多次面试都挂在了二叉树(Binary Tree)上,后来做遍各类遍历算法,总结了不同的实现方式,就不再担心关于树的操作。动态规划(Dynamic Programming)在我看来是面试时会碰到最难的问题,后来我发现这类问题的关键在于找到类似于数学中的“递归公式”,这样就可以找到递归的实现,之后利用空间来存放中间值来减少时间复杂度。
Read More →

2015-12-11
11 December
On December 11, 2015
In IT Products(数码产品), Programming Life(程序人生)

我不是传说-关于《炉石传说》游历

2014年一月,《炉石传说(Hearthstone)》进入beta测试。我向来对暴雪的游戏非常喜欢,时而不时的会拿出《暗黑3》和《魔兽争霸3》来玩。不过我并没用玩过《魔兽世界》,主要是当年沉迷《传奇》这款网游造成的阴影面积过大,所以我对需要充点卡的游戏,我都是拒绝的。但是出于对《游戏王》的喜爱,而且自己当时所处的游戏公司里又有很多人在玩,我也毅然加入了《炉石传说》之中。
Read More →

2015-11-26
26 November
On November 26, 2015
In English Posts(英文写作), Mobile Development(移动开发)

2015 Android Dev Summit Schedule and Videos

ads
Here is the full schedule of Android Dev Summit. If you missed the live stream, you can find the YouTube Play List here. You can find the video link for each session from the title in the following schedule table as well.
The table also contains the speakers of each session, and their Twitter accounts are attached to their names. If you like to know more about Android Development, you can follow them and @AndroidDev.

Day 1

9:05am – 9:45am

Keynote

Dave Burke & Stephanie Saad Cuthbertson

9:45am – 10:30am

Android Application Architecture

Yigit Boyar & Adam Powell

10:30am – 11:00am Coffee Break
11:00am – 11:45am

Respecting User Attention: Notification Best Practices

Chris Wren

Secrets To App & Game Success On Google Play

Brian Quimby & Andreas Preuer

11:45am – 12:30pm

Keep It Secret, Keep It Safe

Chad Brubaker

Android Textual Layout

Raph Levien

12:30pm – 1:30pm Lunch
1:30pm – 2:15pm

RecyclerView Animations And Behind The Scenes

Chet Haase & Yigit Boyar

2:15pm – 3:00pm

Support Library: Guts And Glory

Chris Banes & Adam Powell

3:00pm – 3:30pm Office Hours
3:30pm – 4:15pm

“Mother, May I?” Asking For Permissions

Svet Ganov & Jeff Sharkey

4:15pm – 5:00pm

Framework Fireside Chat

Hosted By Dan Galpin

Read More →

2015-11-25
25 November
On November 25, 2015
In Mobile Development(移动开发)

2015 Android Dev Summit第二天

今天的演讲主要是关于Android开发工具,其中又以Android Studio 2.0作为重点介绍项目。
android-studio
(上图是唯一一张不是来自会场的照片)

9:00演讲正式开始,基本是昨天开场介绍Android Studio 2.0和新的Emulator的加长版,但同时也对Instant Run的原理做了简单的介绍。不管怎样Android Studio 2.0都是很值得期待的,而且Google已经抛弃Eclipse for Android很久了,所以赶紧转到Android Studio吧。
IMG_20151124_090044

之后跟昨天一样也是两个演讲同时进行,一个关于新出的Data Binding。我则去了另一个关于User Identity方面,不过这个演讲只是介绍了怎么用Google Service提供的Google Account来作为登录账号。更多的API的介绍和使用还得自行网上搜索。然后听了关于Android Build System的演讲,不过没有什么Demo的过程。
Read More →

2015-11-24
24 November
On November 24, 2015
In Mobile Development(移动开发)

2015 Android Dev Summit第一天

今年的Google I/O没有抽到票,不能到现场参加。不过11月举行的Android Dev Summit的票是先到先得的方式,所以早早的提交了注册。今天终于有机会当面跟Android系统的设计开发者们进行交流,还能见到来自各个公司的Android工程师,跟他们讨论Android开发中碰到的问题。
ads

演讲一开始就给大家一个惊喜:Android Studio 2.0
android-studio
Read More →

Posts pagination

Previous 1 … 4 5 6 … 11 Next
Facebook
Twitter
LinkedIn
RSS
ZhiHu

Recent Posts

  • AI Dev 26 x SF 体会
  • Google Pixel Phone 1 to 10
  • 三年居家工作感受
  • Pixel Watch智能手表和Pixel 5, 6 Pro 及 7 Pro手机
  • 我拥有过的无线耳机
  • 毕业工作一个月,我差点被开除
  • 我拥有过的移动硬盘

Categories

  • Algorithm Analysis(算法分析)
  • Article Collection(聚宝收藏)
  • Data Structures(数据结构)
  • Design Patterns(设计模式)
  • English Posts(英文写作)
  • Front Interface(界面构想)
  • IT Products(数码产品)
  • Knowledge Base(心得笔库)
  • Language Tips(语言初试)
  • Mathematical Theory(数学理论)
  • Mobile Development(移动开发)
  • Programming Life(程序人生)
  • Reading Notes(阅而后知)
  • Software Engineering(软件工程)
  • Special Tricks(奇技妙招)
  • Tangential Speech(漫话杂谈)

Tags

Aero Android API App Bash Binary Search Bitwise Operation Book C/C++ Career Chrome Conference CSS Debug Device DOM Extension Framework Game Google Gradle Hearthstone HTML Initialization Interview iOS Java JavaScript jQuery Keyword Language Issues Mac Microsoft Mobile Modifier Objective-C PHP Principle Reference Static String Tools Tutorial UI XML

Blogroll

  • Ahmed's Blog
  • Gert Lombard's Blog
  • Gordon Luk
  • Jack & Allison
  • 开发部落

Archives

Designed using Chromatic. Powered by WordPress.