编程之路

We fear the thing we want most.


  • 首页

  • 关于

  • 归档

  • 标签

Java static 关键字理解

发表于 2016-04-10   |  

对Java static关键字的理解总结。

阅读全文 »

Guava 源码阅读之 TreeMultiset

发表于 2016-04-09   |  

  崇祯五年十二月,余住西湖。大雪三日,湖中人鸟声俱绝。是日更定矣,余拏一小舟,拥毳衣炉火,独往湖心亭看雪。雾凇沆砀,天与云与山与水,上下一白。湖上影子,惟长堤一痕、湖心亭一点、与余舟一芥、舟中人两三粒而已。

  到亭上,有两人铺毡对坐,一童子烧酒炉正沸。见余,大喜曰:“湖中焉得更有此人?”拉余同饮。余强饮三大白而别。问其姓氏,是金陵人,客此。及下船,舟子喃喃曰:“莫说相公痴,更有痴似相公者!”
– 《湖心亭看雪》(明)张岱

阅读全文 »

Programmers Reading Everyday 2016

发表于 2016-04-07   |  

Programmer

Why I love ugly, messy interfaces — and you probably do too 并非总要将Beautiful. Fresh. Clean. Simple. Minimal的设计原则奉为圭臬,完成功能是最重要的,太他妈好用的一个产品,谁会在意他很庞杂混乱。

My Biggest Regret As A Programmer 比较深沉的一个blog,后悔没有抓住时代的机会转型以及在94从Apple离开,说到作为程序员能改变的太少了,是因为作为程序员比较简单。自己也可以思考一下。

Lessons from a Google App Engine SRE on how to serve over 100 billion requests per day 应该算是运维相关,谷歌的Site Reliability Engineer(网站可靠性工程师) Chris Jones阐述了SRE工作的一些方面,自动化,“It’s better to have people do things people are good at and computers do things computers are good at.”, 有 contingency(应急)计划,有网络负载均衡器,有数据迁移,有内部的分析机制及时发现问题。

How BuzzFeed Thinks About Data Science

3 simple reasons why you need to learn Scala

Working at Netflix 2016 谈了自己2年在Netflix的感受以及SRE方面的经验。结合Netflix其他的博客可以看到,其中的开发基本是关于Java和Linux性能调优。

Reclaiming Design Patterns (20 Years Later)

How to get rich in tech, guaranteed.

Fail at Scale-Reliability in the face of rapid change

#define CTO

Do the Right Thing

When I Learned that Computers Have Soul

The software engineer’s guide to asserting dominance in the workplace

Being data-driven: It’s all about the culture

What I learned about software architecture from running a marathon

Defining a reactive microservice

MY Y COMBINATOR EXPERIENCE

Git

(√)Git - Useful Tips

Math

Immersive Linear Algebra – free interactive online book 线性代数书籍,很生动的图画,可以参阅。

Java


(√)Java for Everything 作者根据自己的自己的体会,决定使用java做所有的事情,其中说道了动态语言和静态语言的优劣,Python虽然能够快速着手,但是面对大型,需要长期维护,需要单元测试的项目,java更胜任,而且java比Python快10倍,作者提到了忠实于java后,可以构建自己的lib常用组件。

(√)How (not) to write Factorial in Java 作者从写一个阶乘的util层层递进,引人入胜,其实是要说明over-engineering的弊端,不要以后这个地方要扩展,所以先做好可扩展性的架构设计,这不过是意淫罢了,要着眼于重点,不要过度设计。

(√)java-magic-part-4 sun.misc.Unsafe 学习Unsafe的魔法。

Quora - How is Hashmap in Java implemented internally?

Differences between HashMap and Hashtable?(stackoverflow)

Equals and Hash Code
A generic input/output API in Java

10 Things You Didn’t Know About Java

HowToDoInJava 一系列Java方面的文章,可以看看。

Introduction to Java threads (1996)

The Little Singleton

Modern Java - A Guide to Java 8

JVM

JVM Internals

Java Code To ByteCode . PartOne

The infamous sun.misc.Unsafe explained

The Black Magic of (Java) Method Dispatch

What is a Java Safepoint?

Understanding Java Garbage Collection

How to Monitor Java Garbage Collection

Creating a JVM language

Message Queue

Adventures in message queues - Disqueue

Top 10 Uses For A Message Queue 消息队列的应用场景。

Dissecting Message Queues 解析比较了几种常见的消息队列

Apache Kafka, Samza, and the Unix Philosophy of Distributed Data Unix的很多哲学,值得我们不时回头反思汲取

The value of Apache Kafka in Big Data ecosystem

Putting Apache Kafka To Use: A Practical Guide to Building a Stream Data Platform (Part 1)

Announcing Kafka Connect: Building large-scale low-latency data pipelines

Security

What technical details should a programmer of a web application consider before making the site public?(stackexchange)

Data Architecture in an Anti-Fraud Architecture

Database

Elements of Scale: Composing and Scaling Data Platforms

Database versioning best practices

How does a relational database work 知其所以然,关系型数据库如何工作的。

NoSQL & Redis &Memcached

Scaling Memcache at Facebook

Operating System

Operating Systems: Three Easy Pieces

Distributed System & Software Architecture

6-824-distributed-computer-systems-engineering-spring-2006 MIT的分布式系统课程。

A Distributed Systems Reading List

Facebook’s software architecture

Software Architecture cheat sheet

Notes on Distributed Systems for Young Bloods

The Log: What every software engineer should know about real-time data’s unifying abstraction - 中文版

Consistent Hashing

Linux & Unix Philosophy

Apache Kafka, Samza, and the Unix Philosophy of Distributed Data

UNIX TOOLBOX

0xAX/linux-insides(github)

Semaphores in Plan 9 [pdf]

Miller is like sed, awk, cut, join, and sort for name-indexed data such as CSV

How I came to find Linux

Network & TCP/IP

Webcomic: How DNS Works (howdns.works)

Python

Python List Comprehensions: Explained Visually解析Python中的列表解析

Architecture

Backend infrastructure at Spotify

Airbnb Shares The Keys To Its Infrastructure Mike Curtis讲述了Airbnb很多的技术方面-分享经济;数据中心使用的AWS,工程师应该把注意力放在企业的独特之处;更多的server是用来做分析和机器学习,为用户找到合适的place;Airbnb工程上的重点就是实现更好的匹配,有机器学习,搜索排名,欺诈发现;Hadoop等等。

Scaling Knowledge at Airbnb

basic infrastructure patterns

HOW UBER THINKS ABOUT SITE RELIABILITY ENGINEERING

Stack Overflow: The Architecture - 2016 Edition

The Epic Story of Dropbox’s Exodus From the Amazon Cloud Empire

4 reasons why microservices resonate

Object-oriented vs. functional programming

Go

Packet Capture, Injection, and Analysis with gopacket

Others

In search of the perfect URL validation regex

Internet for All

How a Car Engine Works 汽车发动机是如何工作的,长点知识。

2015 找工作总结

发表于 2016-04-07   |  

前言

找工作毕竟为人生之大事,所以总结一下,然后做该做的事情。掐指一算,也花了将近半年的时间了,从找实习开始,有点当年考研的味道,有目标,有力量。

实习拿到了阿里和腾讯的offer,想了太远,以及考虑阿里允许实习一个月,所以就去了淘宝城,进行了为期一个多月的实习,那段日子很辛苦,为了习得更多东西,晚上零点之后才会住房,总想尽快熟悉相关的东西,然后给众人留下好印象,收获还是有的,实习期间就有了以后长留于此的想法。可是,变化总是要拥抱的,今年阿里大规模缩招,我一个B+级别的何以能留下,而且实习时间短,^_^。

等待结果的过程是痛苦的,你总是试图往好的方向去意淫,但是事实来的时候你不得不坦然。所以接下来就进入了战斗模式,各种通道,各种公司,狂轰乱炸。在面试中成长,在面试中寻找自信。

总的来说最后拿到了一些,如何选择?

结果汇总

公司 行进 结果
阿里 业务安全实习 7.9-8.14 转正面试结果:失败!
华为 IT 产品线,云存储(成都) offer 可选杭州
网易游戏 9.15在线笔试 没有一面机会
腾讯 9.14 下午3:30 面试 9.17 二面 HR面 IEG 9.22 签两方
百度 9.12 笔试,9.15 一面,9.18 二面 二面跪了
蘑菇街 9.19 在线笔试 没有面试机会,草
UCloud 上海,和自己做的非常接近 offer
网易互联网 9.22面试 offer
微策略 电话面了两次,10.12进行了2次现场面试 无果

选择

如何选择?如何进行所为的职业生涯规划?有人说你列个表格看纠结去哪儿更胜一筹,但我想说,难道所有的条目都是等价的吗?可能就仅仅为了某个理由就肆无忌惮的选择了一个一般的公司。

尝试列个表:

因素 是否看重?
个人提升
个人情节
机会更多
公司注重工程师
加班不多
和自己想做的更接近
你的另一半
你真的热爱游戏开发吗?一辈子?
公司伙食好
外企,流程规范
有离家近的公司吗?

明天你好

找工作的事差不多就这样了,再掐指一算,在学校的日子也不多了,怀揣着一颗感恩的心去想想毕业设计做什么,并做好!
最后选择了去网易互联网。

vonzhou 2016.1.27

使用Github和Hexo写博客

发表于 2016-04-06   |  

曾经一度多次尝试过在github上写博客,包括使用hexo,后来不知不觉就冷却了,那是在换电脑之前。今天又心血来潮,又把这个流程捡起来,遇到了些问题,记录下。

前提:

  • 有个github账号
  • 安装 nodejs,git
  • 有个shell环境

安装 hexo

1
2
npm install hexo-cli -g
npm install hexo --save

创建一个文件夹,进入执行hexo init,然后会生成一些hexo的模板文件

运行本地的hexo server,在浏览器访问localhost:4000可以看到一个demo

然后就需要把hexo生成的静态文件托管到github中,在github中new一个vonzhou.github.io的仓库(vonzhou是我的用户名)

hexo g会在public目录下生成所有的静态文件,手动push到vonzhou.github.io,然后访问浏览器vonzhou.github.io可以看到OK了。但是这样每次很耗时。所以急需自动部署。

hexo工作目录下生成的_conifg.yml是一些配置,其中可以配置deploy的策略,如下:

1
2
3
4
deploy:
type: git
repo: git@github.com:vonzhou/vonzhou.github.io.git
branch: master

然后继hexo g生成所需的静态文件后,可以运行 hexo d进行自动部署到对应的仓库,这里需要安装插件:

1
npm install hexo-deployer-git --save

然后出现问题 “FATAL Permission denied (publickey)”,需要生成SSH key

1
ssh-keygen -t rsa -C "your_email@example.com"

我设置的密码和github登录密码一样,然后将~/.ssh/id_rsa.pub文件中的内容拷贝,进入github的setting中设置到SSH Key中。

然后,ssh一下github,OK后,hexo d就妥妥的了。

1
2
3
4
$ ssh -T git@github.com
Warning: Permanently added the RSA host key for IP address '192.30.252.123' to the list of known hosts.
Identity added: /Users/vonzhou/.ssh/id_rsa ((null))
Hi vonzhou! You've successfully authenticated, but GitHub does not provide shell access.

最后还出现了一个问题“FATAL EACCES: permission denied, unlink ‘/Users/vonzhou/Workspace/hexo/.deploy_git/css/style.css’”,使用sudo hexo d就好了。

1…345
vonzhou

vonzhou

A Programmer's Notes

21 日志
8 标签
GitHub 知乎
© 2017 vonzhou
由 Hexo 强力驱动
主题 - NexT.Mist