DigitalOcean credit expiration policy changed

Yesterday I received a strange email from DigitalOcean: Honestly, I don’t think it’s a good idea at all. Basically they want to change the expiration policy of ALL new and issued credits. You will have a month to use all your remaining credits, or it will be expired. It would be much better if they only add expiration for newly issued credits. As in, older credits will be kept intact. By the way, after a small complain, DigitalOcean gave me $20 credits. That was much better than I could hope for.


Well, after several months, yesterday I seemed to figure out my eye focusing problem (and maybe the lack of focus at work). Long story short, from last summer, my eyes simply cannot focus on a single point on my monitor at work or close objects. Everything still works fine for distant objects. At first, I thought it was the lighting problem. The ceiling light above my cubicle started flickering, half of it turned red while the other half stayed normal. But my eyes did not get any better when they finally replaced the fixture (took several months complaining) Then I began suspecting the problem was with my eyes themselves. I have to wear corrective glasses all the time, and the last time I changed my glasses was 3 years ago. In fact, my left eye has better focus than my right eye. But that does not explain the problem for close objects. Yesterday, after a productive coding afternoon without having eye problem, I seemed to figure out why. The devil is multi-tasking. I have a habit of making a list of tasks I want to do everyday, and try to finish it. And it usually contains tasks from different projects. And usually, I make a very big list, keep thinking about it and can’t seem to figure out what to do next. When I don’t know what to do, I read news. Keep reading news while thinking about my problems makes my eyes weaker. After a few hours, I cannot focus on anything. And that need to change. From now, I will focus on a single project at a time, and make a smaller todo list of tasks in that project only, and try to estimate completion time for each task. And stick to that schedule. Solving problems, one at a

Healthy Competition for Bitcoin

I’ve been following the Bitcoin block size debate since Gavin’s 20mb block proposal. If you’re not familiar with the block size debate, this wiki article is a good start. During the debate, I’ve lost respect for quite a few of famous people. But let’s put it aside. Let’s talk about a healthy competition for Bitcoin. There should be more than one teams working on different implementation of Bitcoin Yes, both the software and the protocol. If there is only one implementation, who will have the authority to decide which features to include/exclude in Bitcoin software? Who should decide which rules applied/not applied to Bitcoin protocol? In the ideal world, there should be more than one implementations. Teams are freely to include/exclude whatever features they want. Users and miners will decide which softwares they want to run based on features set each implementation provides. And since teams are freely to code, companies can “lobby” (for example paying developers) for their desired features to be included into the software, if these features are not what everybody want. But, miners and users need to be well-informed in order to make decisions Yes, that’s why it is important to keep users/miners informed. Users/miners should be able to understand pros and cons of each features, and why they are included in each implementation. Therefore, it also important to have healthy discussion forums. Attack the implementation, not the people Remember, every developer/user/miner, regardless of their views are, is a person. We should assume they want Bitcoin to success. Respect every person even though (s)he does not share your view. If you don’t like a feature being included into the software, simply don’t run it. Let others know your view. Have a healthy discussion. Run what’s the best for you, or create a new one if you can’t find any

Goodbye Dropbox. Hello Google Drive!

Yep, that’s right. I finally made the switch from Dropbox to Google Drive. Dropbox is great. They have awesome and intuitive UI, and still the best UI among competitors so far. Their file sync process is simple but admirable. Instead of syncing the whole changed file, they only sync the difference. Reduce lots of network bandwidth and syncing time. So why the switch? Storage is the biggest issue. Even with edu accounts and lots of extra storage for completing Dropquests, my Dropbox limit is still far less than I need. 27GB is far less than 2PB (yes, 2PB) Google Drive offered. Dropbox used to have edge advantages. Now, not so much. Five years ago, Dropbox is the only choice. Fast and intuitive UI and also the syncing process. Now, Google Drive has almost everything. Camera Upload? Yes. Selective Sync? Yes. Revision? Yes. Sharing? Of course Yes. The only thing that Google Drive does not have is Fast sync. Google Drive still upload the whole modified file instead of only the difference. But my need has changed since five years ago. I used to use Dropbox for my thesis because they have revisions. Whenever I made something wrong, I can easily go to Dropbox and select the right revision to restore. Now I only used cloud storage for “storage”. I no longer need to keep revisions. Therefore, the switch is inevitable. The pace of Dropbox’s innovation. They acquired Mailbox, and killed it. They used to have a great Photo app called Carousel, but also killed it. They introduced a syncing platform for app a few years ago, but it does not directly add any value to end user experience.

Cập nhật tình hình

Lâu lắm không viết blog nên tranh thủ cập nhật tình hình tí. Hè này mình sẽ đi intern ở Uber. Công việc cụ thể thì chưa biết nhưng chắc chắn là rất thú vị. Nếu được chọc ngoáy vào data của Uber thì còn thích nữa. Mấy năm trước mình có làm việc với TaxiVis, một công cụ để visualize taxi data của NYC. Trip data của Uber chắc cũng không khác taxi data là mấy, cũng chỉ cần có pickup location, drop off location và time là đủ làm ra nhiều thứ thú vị rồi. Anyway thì đi intern cũng có khá nhiều chuyện đau đầu. Thứ nhất là nhà ở: Nhà ở SF không hề rẻ. Transit thì kém xa NYC. May mà có mạnh thường quân đã bố trí giúp mình chỗ ở từ giữa tháng 6 đến hết tháng 8. Phần việc của mình chỉ là tìm nhà từ khoảng cuối tháng 5 đến giữa tháng 6, nhưng mà cũng quá gian nan. Thứ 2 là không biết mình có mang được xe đạp đến SF hay không.Tiền mang xe lên máy bay cả 2 chiều còn nhiều hơn giá trị hiện tại của cái xe đạp. Mang được thì cũng không biết để ở đâu.  

Online conversation etiquette

I recently came across a great comment by Bruce Fenton (Bitcoin Foundation Director) regarding online conversation in Bitcoin community. His comment could be applied to any other communities. He basically said: Bitcoin people in person are the greatest people in the world. Bitcoin people online are the worst people in the world. The takeaway lesson is, when engaging in conversations over Internet, think of the human being behind those posts. Would you do the same if that human being is standing in front of you, and not behind a monitor screen? Don’t assume the worst of people for the sake of arguments. Here is his full comment (when someone was asking where is Gregory Maxwell): No first hand knowledge at all but I heard he got tired of online attacks and, at least temporarily, bowed out of some things. If correct, this isn’t shocking. The online attacks in Bitcoin circles are very sad and toxic. I’d really urge everyone to remember that real humans are behind these things. If you are arguing with someone think of the person separately from the argument. Don’t think of Greg Maxwell as a sharp tounged guy who took your argument apart – think of him as a cool guy with tons of common interests who is an active contributor to Wikipedia and who collects fascinating photos online. Think of Gavin not as some villain of blocksize debates but as a father of a beautiful family in a small New England college town, a guy who came in to this very early and has done a whole lot of work for less pay than he could have gotten from 100 other options. Think of Brian Armstrong not as a guy trying to screw the world with overbearing compliance procedures, he’s a guy trying to build a

What I’ve learned this week: Dropbox, Spark and more

1. Dropbox Dropbox is shutting down its two apps: Mailbox and Carousel. I’ve been using both apps heavily recently. The most important feature of Mailbox is auto-swipe. Other competitors also have similar features, but they require much more effort to setup, while Mailbox only requires tap and hold. Easy like a piece of cake. Auto-swipe saves me from going through 14k+ emails so far. Carousel saved me lots of iPhone space by uploading my photos to Dropbox. I heard that they will integrate important features of Carousel into Dropbox, so I will not miss Carousel too much, compare to Mailbox. Without Mailbox around, I will have to manually setup my filters in a bunch of mailboxes. 2. Spark The different between Spark submission tool and Hadoop is that, by default Hadoop uses all available machines (cores) for a single job, provide that input is big enough to be distributed into all machines. Spark, on the other hand, only use 2 cores for executors and 1 core for driver. In order to run Spark with all available cores, you first need to figure out how many executors there are on your cluster. I wonder what leads to the decision in Spark submission tool design. 3. Miscellaneous It is very hard for me to think about what I’ve leaned by the end of a week. I’d better write and update a draft right after I learned something, when the memory still fresh. Oh yes, I still need to write two meeting summaries for this week, so I’d better get going. Hence the short blog post.

Du học: Ở hay về? (Ném đá ao bèo)

Quan điểm của mình là: Nếu không bị vướng bận về mặt tài chính (đi theo học bổng của nhà nước hay một công ty nào đấy và trong điều khoản có ghi rõ là sau khi học xong phải về) thì du học sinh muốn ở đâu thì ở. Khoan nói đến chuyện lòng yêu nước, cống hiến cho đất nước, bla bla bla, khi mà bạn còn chưa nuôi nổi chính bản thân mình (hoặc gia đình nhỏ của mình) thì cống hiến cái nỗi gì. Con người ai cũng có quyền mưu cầu hạnh phúc (không phải là quyền hạnh phúc — hạnh phúc phải mưu cầu và phấn đấu thì mới có), còn phấn đấu ở chỗ nào, trong nước hay ngoài nước thì không liên quan lắm. Yêu nước có nhiều cách. Không phải cứ về nước, làm một việc gì đó, cuối tháng nhận lương, đóng thuế đầy đủ mới là yêu nước. Xét về mặt vật chất thì có khi ở nước ngoài làm việc rồi gửi tiền về có khi còn đóng góp được nhiều hơn. Xét về mặt tinh thần thì đúng là về nước làm việc có vẻ như là yêu nước hơn ở lại nước ngoài. Thế nhưng về nước làm việc cho tập đoàn nước ngoài thì về bản chất cũng không khác ở lại nước ngoài làm việc là mấy. Còn làm việc ở các tổ chức “hành chính” nhà nước thì không cần nói ai cũng hiểu. Túm cái váy lại là nếu bạn tự bỏ tiền đi học, hoặc đi học bằng tiền của giáo sư / nước bạn đi học, thì sau đó bạn muốn mưu cầu hạnh phúc ở đâu thì tuỳ. Về nước thì về mà ở lại thì ở, nếu bạn

What I’ve learned this week: Let’s Encrypt, Python’s lambda and more

It’s never too late to start a tradition. I haven’t been writing blogs lately. 1. Let’s Encrypt In the ideal world, everyone should be able to do anything without the fear of eavesdropping. 10 years ago, it would be very hard to do this. Personal Computers were not very strong and Internet was slow, therefore HTTPS is reasonably slower than HTTP. Things have been changed. Computers are faster now. Internet speed has been increased exponentially. The only thing that hold HTTPS back is the cost to obtain a server SSL certificate. In my opinion, it should be free because once you have an intermediate certificate that is signed by a root certificate, generating a server certificate is just a piece of cake. Honestly it costs money to obtain an intermediate certificate and maintain supporting infrastructure, and companies usually offset the cost to customers who want to purchase a server certificate. Actually server certificates have been issued for free for over two years by StartSSL, but the process is not simple. You need to sign up an account, verify your email address, verify your domain, generate a certificate signing part on your server, create a request with StartSSL and wait for your certificate to be signed. The whole process could take up to a day, YMMV. And once it’s expired, you need to go over the whole thing again, except maybe verify your email address. With the introduction of Let’s Encrypt, things are getting much better. With a simple git clone command, and another command to run the letsencrypt-auto toolkit, once can easily obtain a server certificate in a blink of an eye (no, actually it takes about a minute). And renewing a certificate could be done using the same procedures. Simple and sweet. Instruction to obtain a certificate. 2. Change

Ăn chưa con? Tiếc nuối gì những bữa cơm phải tự mình ngược đãi Mà phải ăn vội ăn vàng, Lề đường, hàng quán Bát cơm chan nước mắt Về nhà đi, mẹ nấu cơm rồi Ngủ được không con Trong cái chỗ người ta ví von, người ta lao vào bàn tán Hay ho gì những anh hùng hảo hán Chỉ đánh máy trên bàn phím thôi Nào biết thực tế là gì Về chưa con Tiếc nuối chi những phồn hoa đô thị Với những khôn lỏi, đơn đau và dị nghị Về đi Mẹ nuôi mà Sao con vẫn chưa về? Quê mình cũng có núi non, cũng có con người, phố phường và xe cộ Cớ chi con cứ phải tranh với người ta Rồi đi mãi Xa nhà Về đi Về nghe mẹ dạy những lễ nghi, những thói quen thường nhật Về nghe khôn, ngoan, chân, thật Về cùng mẹ nghe con Đi xa, mẹ nhớ lắm con à Về Đi Con – Rei