Văn hoá tip khi đi ăn ở Mỹ

Ở Mỹ thì đi đâu cũng phải tip. Đi ăn tip. Vào khách sạn tip. Trước khi trả phòng cũng tip. Tip dường như đã trở thành văn hoá ở Mỹ. Văn hoá này không hề có ở Việt Nam và Anh (ăn bao nhiêu trả bấy nhiêu, thậm chí còn chả có thuế vì tất cả đã được tính vào giá bán). Trước giờ đi ăn ở đâu tôi cũng tip, nhưng không phải chỗ nào tôi cũng nhận được service giống nhau. Có chỗ waiter/waitress (gọi tắt là wait) rất nice, thường xuyên rót thêm nước và hỏi ăn có ngon không, có vấn đề gì không. Nhiều chỗ gọi thêm xì dầu hoặc lettuce mà đến cuối buổi vẫn chưa thấy đâu. Tôi nghĩ tip nên phản ánh chất lượng dịch vụ mà mình nhận được, nhưng không biết thế là đúng hay sai nên đem hỏi trên Stack Exchange. Chủ đề này được khá nhiều người quan tâm và cũng có khá nhiều luồng ý kiến khác nhau. Nhưng chung quy lại thì câu mà mình kết nhất là: Tipping is for the service, the menu price is for the food. Tức là thức ăn dù có ngon hay dở thì giá đã nằm trên menu rồi. Ngon đến mấy thì cũng không cần tip và dở đến mấy thì cũng không được vì thế mà trừ đi tiền tip. Ngon thì lần sau quay lại còn dở thì tất nhiên là một đi không trở lại rồi. Quan trọng hơn là tip đúng là nên phản ánh chất lượng dịch vụ. Câu hỏi đầu tiên là tại sao cần phải tip? Chẳng lẽ nhà hàng không trả lương cho nhân viên? Theo luật ở Mỹ thì nhà hàng phải đảm bảo đủ lương tối thiểu

Giới thiệu Virtual Environment trong Python

x-post from kipalog.com Virtual Environments là gì và dùng để làm gì? Virtual Environment dịch nôm na là môi trường ảo :D Cũng giống như máy ảo (Virtual Machine), Virtual Environment thiết lập một môi trường ảo, cho phép bạn nghịch ngợm lung tung với các packages của Python mà không làm ảnh hưởng đến những packages đã được cài đặt sẵn trên Python. Ví dụ bạn muốn thử nghiệm với Django 1.8 trong khi trên hệ thống đang cài đặt Django 1.4 LTS. Cũng giống như việc bạn dùng Virtual Machine để thử nghiệm phiên bản Chrome beta mới nhất mà không muốn làm ảnh hưởng đến phiên bản đang có trên máy. Công cụ tạo ra Virtual Environment trên Python là virtualenv. virtualenv tạo ra một thư mục chứa tất cả những thứ cần thiết (executables, libraries). Sử dụng Virtual Environment như thế nào? Trước hết để sử dụng được Virtual Environment thì bạn phải cài virtualenv cái đã. $ pip install virtualenv Tạo Virtual Environment $ virtualenv [project_name] virtualenv sẽ tạo ra một thư mục có tên là [project_name] chứa tất cả những gì cần thiết. Hãy thử xem nội dung của thư mục này: ./lib ./lib/python2.6 ./lib/python2.6/site-packages ./lib/python2.6/distutils ./include ./bin Nếu trên server có nhiều phiên bản Python (2.x, 3.x) bạn hoàn toàn có thể khởi tạo Virtual Environment với một phiên bản chỉ định: virtualenv -p /usr/bin/python2.7 [project_name] Hoặc bạn có thể tạo một Virtual Environment mà không có các packages đã được cài đặt sẵn (trong trường hợp bạn muốn làm mọi thứ từ đầu: virtualenv –no-site-packages [project_name] Sử dụng Virtual Environment Khởi động Virtual Environment bằng câu lệnh: $ source [project_name]/bin/activate Tên của Virtual Environment sẽ xuất hiện ở phía trước command prompt, cho ta thấy Python đang sử dụng Virtual Environment. Từ

PayPal, reddit, Youtube, … đã lôi kéo người dùng như thế nào

x-post from kipalog.com PayPal, reddit, Youtube hay bất cứ trang nào sống nhờ nội dung do người dùng tạo ra (user-generated contents), dù có nổi tiếng đến đâu thì đều trải qua giai đoạn khó khăn ban đầu: thu hút người dùng. Có nội dung thì mới có người dùng, nhưng có người dùng thì mới có nội dung. Sẽ không có ai đăng video lên Youtube nếu không có ai xem, nhưng để có người xem thì trước hết phải có nội dung cái đã. Những nền tảng trực tuyến, đặc biệt là những nền tảng đòi hỏi sự tương tác giữa người dùng (phía cung cấp nội dung (producers) và phía tiêu thụ nội dung (consumers) thường gặp rất nhiều khó khăn khi bắt đầu hoạt động. Cả producers và consumers đều phải tồn tại và tương tác cùng lúc từ những ngày đầu tiên thì nền tảng đó mới có cơ hội thành công. Vậy những nền tảng đó đã giải quyết bài toán đó như thế nào để lôi kéo người dùng? Dưới đây là 3 phương pháp chính. Seeding and Weeding (nôm na là tự sản tự tiêu) Bản chất của phương pháp này là tạo ra người dùng ảo ở cả 2 phía consumers và producers, đồng thời tạo ra các tương tác ảo giữa 2 bên. Ví dụ điển hình là các trang hẹn hò hoặc bán hàng trực tuyến. Hồ sơ và tương tác (hẹn hò, mua bán) của người dùng được tạo ra tự động, làm cho người dùng mới có cảm giác những trang này đang hoạt động rất sôi nổi. Seeding Demand (tạo cầu ảo) Còn gì thích hơn khi bạn đăng một sản phẩm đấu giá lên eBay và ngay lập tức có hàng chục bid? Khi bạn

Giới thiệu SSH Tunnel và một số ứng dụng

x-post from kipalog.com Liệu đây có phải là động lực để mình viết nhiều hơn không? Hy vọng thế. SSH, viết tắt của Secure Shell, là một giao thức mã hoá thường được sử dụng để truy nhập vào các máy chủ từ xa (đặc biệt là các máy chủ Linux). Hầu hết các máy chủ Linux đều được cài đặt mặc định một chương trình SSH Server như OpenSSH hay Dropbear, sẵn sàng phục vụ các kết nối tới cổng mặc định 22. Ở phía người dùng, có rất nhiều phần mềm để tạo kết nối tới server như PuTTY cho Windows và ssh cho Linux/Mac. 2 phương thức xác thực chủ yếu được sử dụng là mật khẩu và khoá công khai. Sau khi đăng nhập thành công, người sử dụng sẽ có quyền sử dụng shellmặc định hoặc shell được gán cho người dùng đó. Toàn bộ trao đổi qua lại giữa người dùng và máy chủ được mã hoá với giao thức được chỉ định khi kết nối. SSH Tunnel cho phép trao đổi dữ liệu thông qua một kênh mã hoá. SSH Tunnel tuy thiết lập rất đơn giản nhưng lại có rất nhiều ứng dụng. Nếu bạn có quyền truy nhập (không nhất thiết phải là root) tới một máy chủ Linux thì SSH Tunnel sẽ đem lại những lợi ích rất thiết thực. Nếu không thì bạn có thể tham khảo một số server giá rẻ trên trang này: http://lowendbox.com Tôi cũng đang sử dụng một máy chủ dành riêng cho SSH Tunnel với giá chỉ có $15/năm. Dưới đây là một số ứng dụng phổ biến. Trong đó A là máy chủ mà bạn có quyền truy nhập SSH. C là workstation.port_number là một cổng bất kỳ chưa được sử dụng bởi

WordPress Permalink Settings on Windows Hosting

My 2 cents: You should not host WordPress (or any script other than ASP, .NET) on Windows hosting. Try Linux. You will not be disappointed. In case you still want to use Windows hosting for your WordPress, here is a piece of code that will save you lots of time trying to figure out how to update Permalink Settings on WordPress. You will probably got this message: You should update your web.config now. Open FTP and put the following into web.config file (create a new one if you can’t see it) <?xml version=”1.0″ encoding=”UTF-8″?> <configuration> <system.webServer> <rewrite> <rules> <rule name=”wordpress” patternSyntax=”Wildcard”> <match url=”*”/> <conditions> <add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true”/> <add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true”/> </conditions> <action type=”Rewrite” url=”index.php”/> </rule></rules> </rewrite> </system.webServer> </configuration> That’s it. You’re welcome.

Interview: Đam mê là chìa khóa thành công cho nghề lập trình viên – Phỏng vấn Hoàng Vũ Tuấn Anh

Mấy hôm trước tôi có trả lời phỏng vấn qua email bạn Hồ Sỹ Hùng ở blog Vinacode. Dưới đây là nội dung đầy đủ (bê nguyên từ đây) “…muốn theo đổi ngành CNTT nói riêng và bất kỳ ngành nào nói chung, điều quan trọng nhất vẫn là đam mê. Không có đam mê mà chỉ làm việc vì cơm áo gạo tiền thì không “sướng”, và khi đã không “sướng” thì đến một lúc nào đó sẽ cảm thấy nhàm chán. Chỉ có theo đuổi đam mê thì công việc mới bền lâu được…” ~ Hoàng Vũ Tuấn Anh Đọc bài phỏng vấn của blog Vinacode với anh Hoàng Vũ Tuấn Anh, nguyên là Kỹ Sư Tài Năng khoa CNTT trường Đại học BKHN, để nghe anh chia sẻ về: Bí quyết để lọp vào top 9 freelancer người Việt tại trang webFreelancer.com Những kinh nghiệm và kỹ năng để bid được nhiều dự án Những thuận lợi và khó khăn khi theo đuổi nghề freelancer Kinh nghiệm xin học bổng Tiến Sĩ tại Hoa Kỳ Anh có thể giới thiệu với độc giả blog Vinacode đôi chút về background IT của mình? Mình là sinh viên khoá K50 lớp KSTN CNTT trường Đại học BKHN. Trước khi vào đại học mình đã từng mày mò làm forum cho lớp cấp 3. Hồi đó chưa có blog và phong trào forum thì vẫn rất sôi nổi. Mình bắt đầu học lập trình web từ trang manguon.com, lúc đó còn chạy ASP. Khi vào đại học thì mình cũng ít làm web hơn mà chuyển sang lập trình hệ thống và mày mò cấu hình server. Năm thứ 4 mình xin làm việc part-time ở công tyCazoodle rồi chuyển thành full-time sau khi ra trường. Được biết ngay trong

Mailbox (from Dropbox) is using Nodemailer to send your emails from Amazon AWS

So I started testing Mailbox on my iPhone and my Mac recently. It has a very elegant interface and a nice Snooze feature (basically you can tell Mailbox to put some messages back to your inbox to process at a later time – this is quite similar to a Chrome extension — Boomerang). The Mac version is beta, but the iPhone version has been around for more than a year, so I don’t think the core functions will change any time soon. One thing I notice about Mailbox is they don’t send email using Gmail SMTP servers. Wait. Something definitely wrong here. The question is Why? The Mailbox app has granted full access to Gmail account, so why don’t they just use Gmail’s SMTP to send mail? Instead, they use Nodemailer on Amazon AWS. What the hell? Return-Path: <> Received: from hedwig-51.prd.orcali.com (ec2-54-85-253-165.compute-1.amazonaws.com. [54.85.253.165]) by mx.google.com with ESMTPSA id u2sm2020155qap.22.2014.10.28.11.54.28 for <> (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 28 Oct 2014 11:54:28 -0700 (PDT) Date: Tue, 28 Oct 2014 11:54:28 -0700 (PDT) X-Google-Original-Date: Tue, 28 Oct 2014 18:54:27 GMT MIME-Version: 1.0 X-Mailer: Nodemailer (0.5.0; +http://www.nodemailer.com/) So what is the point of promoting domain keys, or DKIM? Why not send email using a legitimate and foolproof? Instead, they send users email from a fake SMTP server hosted somewhere on Amazon AWS. I don’t get their point. Update: Thanks Sean Beausoleil and Andris Reinman for clearing that up. I would definitely prefer Amazon AWS over my own IP address to be revealed in email headers.

How to use Tor as a socks5 proxy

Yes, you can definitely use Tor as a socks5 proxy. Never heard of it? Tor is a network that uses peer-to-peer connections to allow people securely surfing the web without leaving any trace. Originally developed by U.S. Naval Research Laboratory, now Tor is being used by millions of Internet users. When you start a Tor session, it also comes with a socks5 proxy at port 9150 on your computer. So you can easily use any application that supports socks5 proxy under Tor with a simple configuration. Remember that Tor application need to be opened the entire time. Again, the socks5 address for Tor proxy is : socks5://localhost:9150

Increase “a little” privacy by disabling third party cookies

Have you remember searching for something or browsing some products, and the next day Facebook recommends the same or similar type of products? Companies these days try pretty hard to track your every movement. Cookies is one of the main tracking panel. 1+ button, Like button, social button, … in general come with a tracking code that can track your behavior on the current website, and if, by accident (but very likely) you also logged in to Google, Facebook, …, these information will be linked to your Google, Facebook, … accounts. These information will be used to track, identify and ultimately, make money. If you fell comfortable about this, that’s completely fine. However, if you fell disturbing and disguising, here are some little tricks that can gain you a little privacy. Install AdBlock or AdBlockPlus. They are not the same, by the way. Disable third party cookies. On Safari, it’s located at Preferences -> Privacy and select “Allow from current website only”. On Chrome, it’s located at Settings -> Show advanced settings… -> Content settings… and check “Block third-party cookies and site data”. I don’t use any other browser, so I can’t tell where this option located, but it should be pretty easy to figure it out. Do-Not-Track option does not help at all, so don’t bother trying this. Hope this make you fell a little secure.

Update on DigitalOcean’s connectivity issue with 4.2.2.2

This is the followup post of the following report: Seems that DigitalOcean haven’t fixed anything yet. 8 days since my last post. This page https://status.digitalocean.com/ show no information regarding this issue. Other people also reported similar behavior. Come on, do something DigitalOcean! Here is the latest benchmarks from my server to 3 different DNS provider: 4.2.2.2 (Level3), 8.8.8.8 (Google) and 208.67.222.222 (OpenDNS). I issued 10 dig queries for google.com, each of them 10 seconds apart. 6/10 queries sent to 4.2.2.2 are timed out. None of them happen for 8.8.8.8 and 208.67.222.222 tuananh@codepie:~$ for i in {1..10}; do dig google.com @4.2.2.2 | grep ‘connection timed out’; sleep 10; done; ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached ;; connection timed out; no servers could be reached tuananh@codepie:~$ for i in {1..10}; do dig google.com @8.8.8.8 | grep ‘connection timed out’; sleep 10; done; tuananh@codepie:~$ for i in {1..10}; do dig google.com @208.67.222.222 | grep ‘connection timed out’; sleep 10; done;