Ervin

真正的强者是认清了生活的本质,并且去热爱他的人。


  • 首页

  • 标签

  • 分类

  • 归档

  • 搜索

怎么用Kotlin去提高生产力:Kotlin Tips

发表于 2018-11-23 | 分类于 技术
字数统计: 10.7k | 阅读时长 ≈ 46

目录

  • Tip1-更简洁的字符串
    • 1、三个引号 2、字符串模版
  • Tip2-Kotlin中大多数控制结构都是表达式
    • 1、语句和表达式 2、if 3、when
  • Tip3-更好调用的函数:显式参数名及默认参数值
    • 1、显式参数名 2、默认参数值 3、@JvmOverloads
  • Tip4-扩展函数和属性
    • 1、扩展函数 2、扩展属性
  • Tip5-懒初始化bylazy和延迟初始化lateinit
    • 1、by lazy 2、lateinit
  • Tip6-不用再手写findViewById
    • 1、Activity 2、子View或者include标签 3、Fragment
  • Tip7-利用局部函数抽取重复代码
    • 1、局部函数 2、扩展函数
  • Tip8-使用数据类来快速实现model类
  • Tip9-用类委托来快速实现装饰器模式
  • Tip10-Lambda表达式简化OnClickListener
  • Tip11-with函数来简化代码
  • Tip12-apply函数来简化代码
  • Tip13-在编译阶段避免掉NullPointerException
    • 1、可空和不可空类型 2、let 3、Elvis操作符
  • Tip14-运算符重载
  • Tip15-高阶函数简化代码
  • Tip16-用Lambda来简化策略模式
    阅读全文 »

寒冬将至,Android的出路

发表于 2018-11-14 | 分类于 文章
字数统计: 2.3k | 阅读时长 ≈ 7

本文摘自CSND的《寒冬已至?四面楚歌的Android工程师该何去何从》,对于文中的一些观点比较认同,转载部分。

Android开发的天花板

很多人觉得很多人会觉得Android技术深度不深,技术栈不庞大,Android职业发展有限,这个真是大大的误解。先说技术上,Android的技术栈随着时间的推移变得越来越庞大,细分领域也越来越多,主要有Android应用开发、逆向安全、音视频、车联网、物联网、手机开发和SDK开发等等,每个细分领域都有很多技术栈组成,深度都足够精深,就拿所有细分领域通用的Android系统底层源码来说,就会叫你学起来生不如死。

阅读全文 »

小程序之CSS入门

发表于 2018-11-09 | 分类于 技术
字数统计: 651 | 阅读时长 ≈ 2

详解css中的display属性(行内元素和块级元素)

首先,所有主流浏览器都支持display属性。其次,display属性规定了元素应该生成的框的类型。默认值:inline

我们常用的display属性有:

  1. inline
  2. block
  3. inlien-block
  4. none
阅读全文 »

Java网络编程中的TCP和UDP通信方式简介

发表于 2018-11-03 | 分类于 技术
字数统计: 2.5k | 阅读时长 ≈ 9

主要通过以下几个方面来解释两种方式的区别(enough talk and let’s look at some code)

  1. TCP方式和UDP的区别
  2. TCP的上层应用Socket实现:Socket,ServerSocket以及代码实现
  3. UDP的上层应用Socket实现:DatagramSocket,DatagramPacket以及代码实现

阅读全文 »

HEXO+Github搭建个人Blog

发表于 2018-10-24 | 分类于 技术
字数统计: 738 | 阅读时长 ≈ 2

HEXO背景

hexo是基于NodeJS的静态博客框架,简单,轻量,其生成的静态页面可以托管在Github或者Heroku上面

  • 超快部署
  • 支持MarkDown
  • 一键部署
  • 丰富的插件

下面以我的Blog为例,记录搭建过程。

阅读全文 »

Android存储

发表于 2018-10-22 | 分类于 技术
字数统计: 735 | 阅读时长 ≈ 2

Android存储路径

先来看一张大图:

image

阅读全文 »

思维的误区-幸存者偏见

发表于 2018-10-21 | 分类于 文章
字数统计: 3.7k | 阅读时长 ≈ 12

何为“幸存者偏见”

“幸存者偏见”,洋文写作“survivorship bias”或“survival bias”,维基百科的链接在“这里”。这玩意儿属于“认知偏差”的一种。(关于“认知偏差”这个话题,俺博客上曾经写过几篇,比如:“沉没成本谬误”、“光环效应”、“从众心理”)。

   如果用一句通俗的话来概括“幸存者偏见”,就是【死人没法开口】。如果要说得更具体点,那就是:
当你在分析某个事物的时候,可能会面对诸多的证据(样本)。但是大多数人通常只注意到【显式】的样本和证据,而忽略了【隐式】的样本和证据。从而得出错误的认知、错误的结论。
为了更形象一些,俺来说一下“幸存者偏见”的出处——古罗马的西赛罗(与凯撒同时代的知名政治家、文学家、演说家)讲过一个故事,大意如下:

有一群宗教信徒在某次沉船事故中幸存。幸存后捏,他们就找人作画(画面上是一群人在事故中祈祷),以此来宣扬说:因为他们作了虔诚的祷告,所以才在沉船事故中幸存。
某信徒拿了这幅画给一个无神论者看。这个无神论者直接反问道:那些祈祷之后淹死的人,他们的画像在哪里?

阅读全文 »

mac下全局翻墙

发表于 2018-10-20 | 分类于 技术
字数统计: 292 | 阅读时长 ≈ 1

Mac下全局翻墙

  1. 路由翻墙
  2. ssr + .bash_profile
  3. 使用工具,类似profixer,surge等

使用iterm的,环境变量也可以使用.bash的(需要在.zsh中去设置环境变量走.bash_profile)也可以在.zshrc中

由于ss或者ssr只是支持了socks5的代理,也就是所有的都走socks5协议,而浏览器本身是支持socks5的(当然还有http,https,ftp等),但是如果你想mac上装的客户端,比如telegram也能通过ssr达到科学上网就想多了,但是这些软件,还比如AS都可以手动去设置代理的(socks5),一般ssr默认的设置如下:

1
2
3
ip:127.0.0.1
# http走的是1087端口
port:1086

方法2设置步骤

  • vimb(vim .bash_profile)
  • 修改文件(添加下面代码)
  • source .bash_profile
  • 验证:curl www.google.com
1
2
3
4
5
# proxy
proxy=socks5://127.0.0.1:1086
export http_proxy=$proxy
export https_proxy=$proxy
export ftp_proxy=$proxy

通过上面设置就能在命令行中发现已经可以科学上网了,目前还有两个蛋痛的地方没解决:

  • profixer在mac上装不了了,一直弹窗。权限都给了
  • 使用Google Drive同步文件用不了,只有将ssr设置全局才可以,MD。

网易云集成IM

发表于 2018-10-20 | 分类于 技术
字数统计: 1.3k | 阅读时长 ≈ 5

背景

项目中需要实现IM通信功能,其实原来已经继承了云信的视频SDK,而IM模块其实已经在SDK中了,但是由于我们的IM聊天界面是需要自己定制了,因此就加了添加了一个lib-ui的库,方便去自定义IM界面

阅读全文 »

Mac下的常用命令行

发表于 2018-10-19 | 分类于 技术
字数统计: 257 | 阅读时长 ≈ 1

查看IP

1
2
3
$curl ip.gs

$ifconfig
阅读全文 »
1…678
Ervin Zhang

Ervin Zhang

stay hungry, stay foolish

74 日志
3 分类
47 标签
RSS
GitHub E-Mail Twitter
© 2025 Ervin Zhang | Site words total count: 93.5k
本站访客数:次 |
由 Hexo 强力驱动
|
主题 — NexT.Muse v5.1.4