Reading Summary 2016-12

C/C++

How to find size of an array in C without sizeof

The difference between arr and &arr - basically, arr is of type int *, and &arr is of type (int *)[size].

Very excellent article on the fundamentals of C/C++!

What Every C Programmer Should Know About Undefined Behavior

Some “gotchas” and pitfalls in the C programming language and how sometimes compiler optimizations can make it worse. Long story short is, steer away from undefined behaviors.

This post is from Chris Lattner himeself. Really nice article.

Python

Python Has Big Impact At Red Hat

Why Python is such a cool language and how Python is used in Redhat. Most of redhat’s important infrastructure is written in Python, including but not limited to firewalld, yum, and its successor dnf, and many cloud PaaS tools for OpenShift.

Read More

Reading Summary 2016-11

C/C++

“Effective C++” and “C++ In A Nutshell”

Finished most part of “C++ In A Nutshell”, and Scott Meyer’s “Effective C++”, and started to learn the basics of C++ language. Really great books to start to learn the basics of C++, and some of the fundamental problems in the language.

Read More

Reading Summary 2016-08

Reading

Alan Kay’s Reading List

If this site is reliable, this is Alan Kay’s reading list for all his students. He’s a great thinker, not just in Computer Science, but human intelligence in general. His list is a constant reminder how much I’m trailing the great minds of this generation, and how much I should pick up the pace in reading.

How to use your full brain when writing code

Tips on being an efficient programmer.

Digital Rights

How Technology Hijacks People’s Minds -from a Magician and Google’s Design Ethicist

Interestingly how big companies like Facebook and Google use techniques to enchant you to stay on their page for more time, or click on more of their links. I think it’s an interesting read that raises our awareness against cases such tricks, and help us defend ourselves from such exploitation.

Reweaving the web

How a slew of new startup decide to use the latest technology such as “Blockchain” and “Ethereum” to decentralize the key web infrastructures and the World Wide Web they support, to compete against giant cooperations like Google and Facebook. It’s an interesting to trend to keep an eye on, but so far I don’t know if I have the optimism that they’ll succeed.

Reading Summary 2016-04

Programming

Eli Bendersky’s Website

Eli Bendersky’s blog has always been a must-read to me. He never fails to regularly come up with posts of interesting and insightful ideas, or detailed tutorials.

He also actively participates in LLVM-dev mailing list and based on his blogs, has board interests in programming language, computer systems and etc..

Computer Science

What is HCI research? And what is its relationship to computer science?

Phillip Guo is another one of my favorite bloggers. This time he wrote an intro to HCI research.

Read More

Here Comes Everybody - Book Review

Just finished Clay Shirky’s Here Comes Everybody, which I think it’s a very interesting book. The author shared his insights on how the Internet effectively gathers the power of people, and how it is rapidly reshaping the society today. Book starts with a story on how Internet helps a lady to regain her lost cellphone with the assistance and pressure from people online, and expands discussion to what why it could happen, and what we should do about it. The world is smaller and people are closer than ever before, for better or worse, because of technologies. In this book, the author carefully analyzed ways Internet could affect our lives, what it means to the world.

I listed several observations the authors provided in this book, which I find very interesting.

Read More

Reading Summary 2015-11

Compilers

Directed graph traversal, orderings and applications to data-flow analysis

On the graph traversal and their efficiency.

  • Pre-order depth-first-search
  • Reverse post-order depth-first-search

This could be a very helpful reference when designing data-flow analysis on programs.

Programming

Semantic Version

How to use version numbers in a sensible way: the MAJOR.MINOR.PATCH format. And I quote:

  1. MAJOR version when you make incompatible API changes.
  2. MINOR version when you add functionality in a backwards-compatible manner.
  3. PATCH version when you make backwards-compatible bug fixes.

Internet

I’m a Privacy Advocate, but I Still Use Windows 10 and Google Now

Your personal data is the fuel to power the Internet today, and how should we face it.