Nguyên tắc trừ hai

Nguyên tắc trừ hai, một bài viết nhỏ từ trong cuốn sách Quà của Bố của tác Trần Đình Dũng mà tôi rất yêu thích. Lời nhắn nhủ tưởng như nhẹ nhàng của người cha dành cho còn lại chứa đựng đầy đủ triết lý nhân sinh về cuộc đời và về Đạo. Trong đó, không có sự áp đặt, dù mong mỏi đến thế nào, cha cũng không thể bắt con lựa chọn cách sống không phải của mình. Cha chỉ có thể đưa ra một bức tranh toàn cảnh để con có thể nhìn rõ những lựa chọn của mình là nhận ra con đường phù hợp nhất với bản thân mình.

Con thương yêu!

Từ cảm nhận và trải nghiệm của riêng bố về cuộc sống và sự giao thoa trong cộng đồng, bố rút gọn dễ nhớ là nguyên tắc Trừ hai. Khi hiểu và vận dụng nguyên tắc Trừ hai này, hy vọng con sẽ có cuộc sống nhẹ nhàng, thanh thản.

Tất cả những gì con đang có, tại thời điểm con đang có, nếu con nhận biết được và hưởng thụ được, thế giới đó gọi là Hạnh Phúc.

Với tất cả những gì con đang có: vật chất, tinh thần, tình cảm, sức khỏe, điểm mạnh, thế yếu, những mối quan hệ xã hội…. và con biết cách gìn giữ, hưởng thụ, bày tỏ, bộc lộ đúng với giá trị thật của nó, bố gọi là trừ không (-0), sẽ là sự TRUNG THỰC.

father and daugher

Đã nhiều lần bố nói với con, nếu con giàu sẽ có người giàu hơn, nếu con giỏi sẽ có người giỏi hơn, nhưng nếu con trung thực, sẽ chẳng bao giờ có ai trung thực hơn con, sự trung thực là giá trị sống của con người và là bản lĩnh sống của chính con, dám đối diện với nó là sức mạnh của bản ngã, không phải ai cũng làm được.

Nếu con thể hiện và hưởng thụ những gì con đang có, trừ đi hai đơn vị (-2), bố sẽ gọi đó là KHIÊM TỐN. Tức là mình sử dụng 80% những gì mình đang có, mình bày tỏ, bộc lộ và chia sẻ nguồn lực có kiểm soát. Điều đó tạo một vị thế tiềm ẩn, một sức mạnh chưa khai phá, một thế lực ngầm che giấu, một đường rút lui an toàn, một quỹ dự phòng kín đáo. Đó là phong cách sống của mỗi người, điều đó tạo một vùng đệm để mình không bỗng chốc trở thành kẻ khoe khoang, bốc đồng, không để lại những lỗ hổng trên con đường mình đi…Đây là một nghệ thuật sống đẹp và sống đầy.

Nếu con bày tỏ những gì con đang có, trừ thêm 2 đơn vị (-2-2), bố sẽ gọi đó là KHÔN NGOAN. tức là mình sử dụng 60% những gì mình đang có, mình biết mình sẽ làm gì với 40% còn lại, có định hướng, có mục đích, có phương pháp, có tính kỷ luật bản thân. Không phải tất cả đều sống với định hướng 60-40 thế này suốt đời, tùy từng giai đoạn của cuộc sống, tùy từng thời điểm của cuộc đời, tùy thời cuộc, thế thời phải thời thế. Vì thế, nó được gọi là khôn ngoan.

Nếu con lại tiếp tục trừ thêm hai đơn vị (-2-2-2) bố sẽ gọi đó là TINH QUÁI. Điều này bố không khuyến khích con làm, nhưng khuyến khích con nhận biết để sống và dè chừng những kẻ tinh quái khác. Người ta có mười nhưng người ta chỉ sử dụng bốn, số còn lại là mượn lực của những người xung quanh. Những kẻ tinh quái thường là những kẻ cơ hội, xu thời, láu lỉnh, tiểu xảo… Ta không gọi tốt hay xấu, ta chỉ cần biết để sống phù hợp. Vậy đó con ạ. Cuộc sống muôn màu muôn mặt, khôn cũng chết dại cũng chết, biết thì sống.

Nếu con biết ai đó tiếp tục trừ thêm hai đơn vị (-2-2-2-2), tức là họ có mười phần nhưng chỉ sử dụng có hai phần, tám phần còn lại không nhận ra, giấu kín hoặc lãng phí, bố sẽ gọi đó là những kẻ NGU ĐẦN. Phàm những kẻ ngu đần, thế giới quan sẽ hạn hẹp, càm ràm xét đoán với hiện tượng mà không đoái hoài đến bản chất, rên rỉ khóc lóc với những điều vụn vặt chợt đến chợt đi…

Kẻ ngu đần nói về con người.

Kẻ tinh quái nói về sự việc.

Kẻ khôn ngoan nói về cơ hội.

Kẻ khiêm tốn nghe cả ba kẻ kia.

Kẻ trung thực được cả bốn nhóm người trên chọn làm chỗ dựa.

Chọn lựa và quyết định là do con.

Steve Jobs giải thích Lập trình hướng đối tượng

Steve Jobs chưa bao giờ được coi là một lập trình viên giỏi, bản thân ông lúc còn sống cũng chưa bao giờ khẳng định như vậy. Tuy nhiên, cách Steve hiểu về công nghệ và gắn nó với cuộc sống để làm thay đổi thế giới ra sao là điều được thực tế đã và đang minh chứng. Trong một bài trả lời phỏng vấn của mình trên Rolling Stone vào vănm 1994, Steve Jobs đã giải thích về Lập trình hướng đối tượng (OOP) một cách hết sức dễ hiểu và gần gũi. Cách lý giải của Steve về OOP cho đến nay vẫn được rất nhiều người coi là định nghĩa xuất sắc nhất về lập trình hướng đối tượng: 

steve

Đối tượng (Object) cũng như con người vậy. Con người thì sinh sống và có kiến thức để làm những công việc họ muộn, mỗi con người cũng có những ký ức của được lưu trong bộ nhớ của mình. Bởi vậy cũng giống như con người, tương tác giữa các Object có mức độ trừu tượng hoá (abstract) rất cao. Chẳng hạn như: Tôi là đối tượng chịu trách nhiệm giặt đồ cho bạn, bạn chỉ cần đưa quần áo bẩn cho tôi, gửi cho tôi mệnh lệnh (send message) “Giặt quần áo cho tôi”. Tôi biết được đâu là nơi giặt quần áo tốt nhất ở San Francisco. Tôi có tiền trong vì và tôi có thể giao tiếp bằng tiếng Anh. Sau đó tôi sẽ gọi một chiếc xe Taxi, yêu cầu được chở đến địa điểm giặt đồ, giặt đồ cho bạn sau đó gọi Taxi đi về, đưa quần áo sạch cho bạn và nhắn rằng (send message) “Quần áo sạch của bạn đây”. 

Bạn hoàn toàn không biết rằng tôi làm thế nào để giặt sạch quần áo cho bạn. Bạn không biết chỗ giặt quần áo ở đâu, có thể bạn cũng không biết tiếng Anh và không gọi được taxi. Tôi biết cách làm tất cả những điều này còn bạn thì không và thực ra bạn cũng không cần biết, tất cả những kỹ năng này được ẩn giấu (hidden) trong tôi. Sự tương tác giữa tôi với bạn ở mức độ trừu tượng hoá (abstraction) rất cao. Đó chính là Đối tượng (Object). Chúng đóng gói lại (encapsulation) tất cả những gì phức tạp. 

Trong lập trình hướng đối tượng có 04 đặc điểm chính mà ai cũng cần phải nhớ: 

  • Tính kế thừa (Inheritance) 
  • Tính đa hình (Polymophism) 
  • Tính tường tượng (Abstraction) 
  • Tính đóng gói (Encapsulation) 

Ngoài tính kế thừa tương đối dễ hiểu, 03 khái niệm còn lại thường gây nhầm lẫn. Những cách lý giải của Steve Jobs đã khiến cho vấn đề trở nên đơn giản hơn rất nhiều.  

Tính trừu tượng (abstraction) được Steve diễn tả rất thông mình, bạn không có khái niệm thế nào giặt quần áo, bạn chỉ cần biết đến nhu cầu của mình là làm thế nào để chuyển quần áo bẩn sang quần áo sạch. 

Bên cạnh đó, vì tôi là một con người, trong bối cảnh được giao nhiệm vụ là giặt quần áo, tôi sẽ sử dụng đến các kỹ năng liên quan đến giặt quần áo của mình để làm điều này do mệnh lệnh (message) quy định. Nếu có mệnh lệnh khác, tôi sẽ sử dụng đến những kiến thức (data) và kỹ năng (method) khác của mình để thực hiện. 

Tính đóng gói (encapsulation) giống như một khái niệm nối dài của tính trừu tượng. Bởi khi bạn tương tác với tôi ở mức độ trừu tượng, bạn không thể can thiệp vào những gì tôi biết (data), phương thức (method)thực hiện của tôi. Bởi tất cả đã được tôi giấu kín và bảo vệ (private & protected). 

Với những ai chưa hiểu rõ về Lập trình hướng đối tượng như tôi, khi đọc xong lý giải của Steve, khái niệm này bỗng trở lên gần gũi và đơn giản đơn hơn rất nhiều, không có gì “thần thánh” như trước nữa. Có lẽ cũng với chính tư duy về công nghệ rất gần gũi với con người, Steves đã có thể tạo ra mối liên hệ/ tính ứng dụng của công nghệ với cuộc sống của chúng ta.

Black Friday – Các ứng dụng iOS giảm giá & Free

Black friday sale's tag

Black Friday là dịp rất tốt để mua về những ứng dụng trên iOS, dưới đấy là danh sách những ứng dụng giảm giá và Free nhân dịp Sale Black Friday.

Games


 

Về Ung thư và người Nông dân

Suốt những ngày qua, cứ mở báo mạng ra đọc là thấy hai chữ Ung thư. Ung thư  — cái khái niệm tưởng chừng như rất xa xôi, giờ đây bỗng như một chiếc đồng hồ đếm ngược của tử thần có thể xuất hiện với bất kỳ ai, vào bất kỳ thời điểm nào. Thủ phạm gây ra nỗi kinh hoàng này nhanh chóng được chỉ mặt: Thực phẩm bẩn.

Ai làm ra thực phẩm bận? Người nông dân. Họ đã làm gì đối với thực phẩm: Lạm dụng thuốc trừ sâu đối với rau sạch, tiêm thuốc tăng trộng đối với gia súc, sử dụng các hoá chất đốc hại để tăng thời gian bảo quản thực phẩm, dùng thuốc tẩy, các hoá chất độc hại để biến thực phẩm ôi, thiu, thối thành thực phẩm sạch, bán ra thị trường.

 

Tại sao họ lại làm như vậy? Người nông dân — Ai trong chúng ta từ thuở bé đều có trong mình hình ảnh người nông dân với chiếc nón lá, một nắng hai sương trên đồng ruộng, bán mặt cho đất bán lưng cho trời. Tôi tin rằng ngay cả vào thời điểm hiện tại, khi chương trình cái cách giáo dục đã sửa lên sửa xuống sách giáo khoa, thì hình ảnh người nông dân vẫn được mô tả như vậy. Hình ảnh đó thật đẹp, nó vẫn duy trì được nét đẹp khi mà trong xã hội ai cũng là người nông dân, hoặc khoảng cách giữa những người nông dân và những nhóm lao động khác chưa quá tách biệt. Tôi trăn trở để tự tìm ra câu trả lời cho chính mình rằng tại sao từ hình ảnh người nông dân đẹp đẽ vậy lại trở thành những “sát thủ” ngày ngày giết chết giống nòi một cách gián tiếp, ít nhất là theo cách mô tả của báo chí hiện nay.

Nhưng xã hội thì không thể không phát triển, sự phát triển (không bền vững) mà chúng ta đã lựa chọn khiến cho khoảng cách giữa các nhóm thu nhập ngày càng trở nên rộng hơn. So với những nhóm thu nhập khác, người nông dân có lẽ đã bị tụt hậu lại xa nhất, xét trên mọi mặt của sự phát triển. Hệ quả là, mặc dù là nhóm dân số vài trò đầu tầu trong xuất khẩu, đảm bảo an ninh lương thực, nhưng nông dân lại là những người dễ bị tổn thương nhất trong xã hội. Mất mùa — họ khổ trước tiên, được mùa — thương lái ép giá, thiên tai sâu bệnh — vụ mùa mất trắng. Và còn biết bao yếu tố khác nữa khiến cho những vất vả người nông dân thêm chồng chất. Vất vả vậy, nhưng nghề nông lại không được xã hội tôn trọng. Một nền kinh tế nông nghiệp nhưng lại không coi trọng người nghề nông và những người nông dân. Điều này mỉa mai như việc một nền kinh tế tự cho rằng mình là nền kinh tế tri thức nhưng trí thức cứ mở mồm là bị cho ngay cục shit vào mồm.

Điều này dẫn đến một hệ quả tất yếu là họ chỉ có thể nhìn thấy những lợi ích trước mắt. Khi đó, những khái niệm như an toàn thực phẩm, sức khoẻ cộng đồng… là những điều quá xa xôi và cao siêu. Họ nhìn thấy rau phun đẫm thuốc trừ sâu sẽ chống được sâu bệnh, không sợ mất mùa, gia súc, gia cầm tiêm thuốc tăng trọng sẽ lớn nhanh, bán sớm được giá hơn. Chẳng được ai định hướng, người nông dân cứ làm những điều mà từ trước đến nay họ thấy có lợi, đôi khi còn coi đó như những sáng kiến. Chúng ta, từ trước đến nay vốn chẳng quan tâm đến họ, kệ họ muốn làm gì thì làm, miễn là chúng ta làm ra nhiều tiền và mua sản phẩm của họ với giá rẻ, càng ép giá được càng tốt (vì chúng ta khôn và thông minh hơn họ mà).

Đến khi mọi việc trở nên quá tầm kiểm soát, chúng ta xuất hiện như những vị quan toà và phán xét, nhìn nhận họ như những kẻ diệt chủng. Tôi không muốn bênh vực hay bảo vệ ai cả, nhưng hệ quả nào cũng có nguyên nhân của nó. Bộ mặt của xã hội có một phần đóng góp của chúng ta, nhưng con người tự cho mình là văn minh — tân tiến. Những người ngày ngày nuốt không thiếu một tin lá cải nào, ngồi cà phê rung đùi chém gió như những triết gia, phân tích một cách say sưa về những thực trạng tồi tệ của xã hội thối nát này, sau đó về nhà kê cao gối ngủ ngon vì vừa hoàn thành “trách nhiệm xã hội”. Thay vào đó, tại sao chúng ta không để dành những phẫn nộ, bức xúc vào những việc ít vĩ mô hơn. Kiểu như “tôi phẫn nộ vì đặt mục tiêu giảm cân 3 năm nay vẫn chưa thực hiện được”, “tôi bức xúc vì kế hoạch học thêm một ngoại ngữ từ thập kỷ trước chưa hoàn thành”.

Nếu mỗi người tự bức xúc trước những thứ nhỏ nhỏ, liên hệ mật thiết tới cuộc sống bản thân và gia đình để từ đó cải thiện, làm cho những thứ khiến mình khó chịu trở nên tốt đẹp hơn, tôi tin rằng cuộc sống sẽ trở nên tốt đẹp hơn, ít nhất là đối với bản thân bạn. Nếu bạn không tin, cứ thử đi!

Dùng Bootstrap để thiết kể theme WordPress, nên hay không? 

bootstrap-3-wordpress-theme

Chỉ cần search Google “”WordPress Theme with Bootstrap” là bạn có ngày hàng trăm theme WordPress, cả mất phí và miễn phí, sử dụng Bootstrap để phát triển. Có vẻ như sự tiện dụng mà Bootstrap mang lại đang tạo ra một trào lưu. Tuy nhiên, đây liệu có phải là cách tiếp cận tốt nhất trong quy trình phát triển WordPress hay không? Hãy nhìn vào những ưu nhược điểm dưới đây để có câu trả lời cho riêng bạn:

Boostrap là gì?

Trước hết, từ khái niệm Bootstrap, ta có thể thấy:

  • Bootstrap là một framework với tiêu chí responsive và mobile first.
  • Nó sử dụng HTML, CSS và JavaScript.

Điều này đồng nghĩa với việc Bootstrap không sử dụng PHP. Bootstrap là một framework ứng dụng, không phải là theme framework, nó không cung cấp những template file kiểu như _underscores hay Genesis để bạn phát triển theme. Bootstrap chỉ cung cấp một số CSS và JavaScript script để bạn dễ dàng tạo các trang web responsive và đưa vào các tương tác.

Với mục đích ban đầu chỉ là nhằm đưa ra một framework chung giúp các lập trình viên của Twitter có thể phối hợp hiệu quả hơn, tên gọi ban đầu là Twitter Blueprint đã phần nào thể hiện rõ điều này.

Khi mà dự án này bắt đầu phát triển, nhận được phản hồi tích cực từ phía các lập trình viên. Twitter đã open source Bootstrap vào năm 2011, từ đó framework này được ứng dụng rộng rãi, trong đó có cả việc phát triển WordPress themes.

Khi download Bootstrap về máy, bạn sẽ thấy rằng nó bao gồm nhiều file CSS và JavaScript. Bạn sử dụng Bootstrap bằng cách đưa vào các CSS #id.class đã được định nghĩa sẵn vào trong file HTML của mình.

Những lợi thế của Bootstrap

Responsive và Mobile-First

Với grid layout 12 cột của mình, Bootstrap đưa ra một loạt class để bạn có thể tuỳ biến theo ý nhu cầu:

  • Nếu bạn không rành @media query, bạn sẽ không cần phải lo việc việc lại từng breakpoint cho từng loại device.
  • Hệ thống grid layout của bootstrap được viết dựa trên nguyên tắc CSS-hướng-đối-tượng (OOP CSS), do đó việc bố trí layout sẻ rất linh hoạt và dễ dàng.
  • Các tiếp cận mobile-first đồng nghĩa với việc file CSS cảu bạn sẽ gọn gàng và hiệu quả hơn so với desktop-first.

Boosttrap có thiết kế hiện đại và clean:

Cho dù không thể mang đến những đột phá trong thiết kế web, khó có thể phụ nhận vai trò của Bootstrap trong việc tạo ra những trang web trông rất hiện đại và clean. Việc quen với những layout này cũng góp phần giúp người dùng dễ làm làm quen và tương tác với website hơn.

Boostrap tương thích rất tốt với HTML5

Thay vì phải sử dụng các loại plugin hoặc paste code từ nơi khác, Bootstrap cũng cấp cho bạn hầu hết các tương tác phổ biển trong một website như:

  •  Transition
  •  Modals (Thường sử dụng để đăng ký nhận newsletter)
  •  Dropdowns (sub catergory cho menu items)
  •  Tooltips (Hover chuột để biết thêm chi tiết)
  •  Popover
  •  Buttons

Điểm yếu của Bootstrap

Có quá nhiều thứ cần nhớ

Ưu điểm về grid-layout của Bootstrap là không cần bàn cãi. Tuy nhiên, việc cung cấp quá nhiều .class lựa chọn để layout để lựa chọn nhiều khi cũng khiến bạn phải mò mẫm trong đống document của Bootstrap để tìm ra đúng layout mình cần. Trong khi đó, nếu chỉ cần một vài layout đơn giản như fullwidth, 3-3-3 hoặc 6-6 thì bạn có thể chỉ cần một vài dòng code CSS là ổn.

Bootstrap sử dụng fixed @media query:

Những breakpoint mà Bootstrap sử dụng dựa trên một số viewport cố định, nhưng viewport này đang dần trở nên lỗi thời.

Trong một vài năm quá, responsive design đang chuyển dần từ những breakpoint cố định sang cái gọi là design-based breakpoints. Nhưng breakpoints sẽ không có vấn đề gì nếu như bạn thiết kế theo một số layout cơ bản của Bootstrap, tuy nhiên nếu bạn cần nhiều breakpoints linh hoạt hơn thì việc thêm vào những breakpoints sẵn có của Bootstrap còn mất thời gian hơn là viết lại từ đầu.

Quá nhiều code thừa:

Không thể phủ nhận rằng Bootstrap có rất nhiều ưu điểm khi nó cũng cấp gần như đầy đủ những tính năng cơ bản của một trang web responsive hiện đại. Tuy nhiên, mặt trái của việc này là website của bạn sẽ phải tải thêm rất nhiều dòng code không cần thiết khi mà bạn chỉ cần chưa đến 10% những gì Bootstrap cung caaps.

Bootstrap không khuyến khích sáng tạo

Chỉ cần nhét Bootstrap vào themes sẵn có, gọi ra cái .class từ stylesheet và thế là bạn đã có một trang web responsive trông cũng ổn ổn. Sự tiện dụng và dễ dàng của Bootstrap nhiều khi sẽ khuyễn khích tính lười sáng tạo, vốn luôn thường trực trong mỗi chúng ta. Kết quả là, chúng ta thướng thoả hiệp những gì mình thực sự muốn cho website để đổi lấy sự tiện dụng và tiết kiệm thời gian mà Bootstrap mang lại.

Điều đáng nói của sự làm dụng này là việc chúng ta sẽ có một loạt các website trông na ná nhau. Những WordPress webdesingner đã mất nhiều công sức để đưa theme thoát ra khỏi cái bóng mang tên “giống WordPress” giờ lại đang đi vào lối mòn của “giống Bootstrap”?

Tóm lại

Tất nhiên là Bootstrap có những ưu điểm không thể chối cãi. Nếu bạn cần một trang website mobile-first, clean và không quá cầu kỳ về layout, Bootstrap có thể giúp bạn tiết kiệm được rất nhiều thời gian dev.

Tuy nhiên, để có thể làm chủ được Bootstrap, thời gian bỏ ra để làm chủ được nó cũng không phải là một sớm một chiều. Có quá nhiều thứ phải nhớ, bạn sẽ thường xuyên chuyển qua lại phần document để kiểm tra xem việc mình định làm theo cách của Bootstrap thế nào.

Tóm lại, tôi cho rằng bạn nên dùng Bootstrap trong các trường hợp sau:

  • Bạn sẵn sàng bỏ thời gian và công sức ra để học và làm chủ Bootstrap.
  • Bạn biết những gì mình cần là sử dụng được phần lớn các công của của Bootstrap vào trong trang của mình.
  • Bạn không có designer riêng để thiết kế web và không muốn site của mình quá xấu.

Bạn muốn viết responsive web nhưng không muốn đụng vào @media query.

Những trường hợp sau không nên dùng Bootstrap

  • Nếu bạn muốn một website linh hoạt, với nhiều breakpoints và layout đặc biệt.
  • Nếu bạn chỉ sử dụng 1 script có sẵn của javaScript hoặc không dùng grid layout.
  • Nếu bạn đã có thể sử dụng một WordPress theme framework hoặc một starter theme khác, vốn cũng cấp sãn các functions và hooks của WordPress.

Và trên hết, choose wisely, sự lựa chọn là của bạn!

Objective-C vs Swift (phần 1)

Khởi tạo một đối tượng trong Objective-C:

NSDate *myDate = [[NSDate alloc] init];

Trong đó, NSDate là tên Class

*myDate là tên đối tượng cần khởi tạo (thực chất đây chỉ là con trỏ, trỏ đến địa chỉ của đối tượng được đặt tên là myDate trong vùng nhớ.

[NSDate alloc]: Đăng lý một vùng nhớ dạng NSDate trong bộ nhớ.
init: Khởi tạo bộ nhớ vùng nhớ vừa đăng ký với bộ nhớ.

Trong Swift:

var myDate = NSDate()

Về bản chất, đoạn code này tương đương với:

var myDate: NSDate = NSDate()

Tuy nhiên, trình biện dịch sẽ tự hiểu, giống như khi  khai báo

var aNumber = 9 thì trình biên dịch sẽ tự hiểu aNumber thuộc type Int.

Cách gọi một method (method là cách gọi của function khi làm việc với Class):

Objective-C:
[myObject simpleMethod];
[myObject methodWithParameter: 123];
[myAVQueuePlayer insertItem:newSong afterItem: currentSong]

Swift:

myObject.simpleMethod()
myObject.simpleMethod(123)
myAVQueuePlayer.insertItem(newsong, afterItem: currentSong)

– Khởi tạo một đối tượng kèm value:
Objective-C:
NSURL *myURL = [[NSURL alloc] initWithString: "www.ikhoai.com"];

SKSpriteNode *box = [[SKSpriteNode alloc] initWithColor: color size:size];

Swift:
var myURl = NSURL(string:"www.ikhoai.com")
var box = SKSpriteNode(color: color size: size)

Nếu không có parameter, Swift sẽ tự hiểu là đối tượng myURL đã được init (khởi tạo), nếu init cùng với một value nào đó, value này sẽ được đưa vào trong ngoặc. Ở đây, có một điểm cần lưu ý là, khi một object (đối tượng) của Swift sử dụng method đã được định nghĩa trong Objective-C (hiểu là mapping method của Objective-C để dùng trong Swift) thì tên của parameter sẽ được bỏ đi “init” và “initWith“. Có thể nhận thấy rõ trong 02 ví dụ trên, khi “initWithString” đã được rút gọn là thành “string“.

Amazon – Tại sao giá sản phẩm luôn rẻ nhất?

Câu trả lời rất đơn giản: Tại vì Amazon khiến bạn nghĩ như vậy!

Tại sao bạn lại nghĩ như vậy? Câu trả lời còn đơn giản hơn: Vì Amazon muốn thế.

 Vậy, Amazon là đã làm thế nào?

 Boomberang Commerce, một công ty chuyên nghiên cứu về giá cả hàng hóa đã tiến hành nghiên cứu và chỉ ra rằng, về mặt bằng chung giá sản phẩm của Amazon không hề rẻ hơn các đối thủ nhưng họ lại khiến rất nhiều người tin rằng giá của mình luôn là rẻ nhất thông qua việc giảm giá mặt hàng trọng điểm.

 Cụ thể, Amazon sẽ lựa chọn những mặt hang được tìm kiếm nhiều nhất trên trang chủ của mình, qua đó giảm giá thành những sản phẩm đó so với các đối thủ cạnh tranh. Chẳng hạn, Amazon giảm giá một chiếc TV Samsung có trị giá 350$ (một trong những sản phẩm được tìm kiếm nhiều nhất) khoảng 6 tháng trước khi kỳ nghỉ lễ bắt đầu và đại hạ giá loại TV này xuống còn 250$ vào đúng ngày Black Friday.

Amazon chỉ thực sự giảm giá những mặt hàng được tìm kiếm nhiều nhất
Amazon chỉ thực sự giảm giá những mặt hàng được tìm kiếm nhiều nhất

Tuy nhiên, đối với dây HDMI, sản phẩm luôn được mua kèm khi mua TV, thì giá lại được đẩy lên 33% trước kỳ nghỉ lễ. Tuy nhiên, đây lại không phải là thứ được tìm kiếm nhiều nên nó không tác động tới nhận thức về giá cả của người tiêu dùng bởi họ có thói quen so sánh giá cả chiếc TV xem chỗ nào bán rẻ nhất. Dĩ nhiên mua TV ở đâu thì cũng sẽ mua them dây HDMI ở đó. Chẳng ai đi mua TV ở Amazon sau đó lại vào Wallmart mua dây HDMI cả.

 Dĩ nhiên, đây chỉ là một ví dụ rất nhỏ và dễ hiểu trong rất nhiều ví dụ khác về cách định giá sản phẩm của Amazon. Bên cạnh yếu tó giá cả, gã khổng lỗ này còn rất nhiều dịch vụ đi kèm khác để giữ chân khách hàng và biến khách hang vãng lai thành khách hành trung thành.

Đây cũng là một case study nho nhỏ có thể nhận thấy là đã được áp dụng khá rộng rãi ở Việt Nam. Chẳng hạn, các cửa hang điện thoại thường hạ giá sản phẩm được quan tâm nhất (Iphone 6, Samsung Galaxy Note 4…) so với các đối thủ cạnh tranh, nhấn mạnh vào yếu tố giá rẻ nhất trên thị trường để kích SEO, lôi kéo khách hàng. Khi khách hang đã mua sản phẩm, thường rất khó chối từ việc mua phụ kiện đi kèm (miếng dán màn hình, bao da, ốp lưng, pin sạc dự phòng…). Như vậy là đôi bên cùng có lợi, khách hang vẫn hài long vì mình là người tiêu dung thông minh khi mua được điện thoại giá tốt nhất, còn cửa hang vẫn đảm bảo được lợi nhuận.

Bài phát biểu của Trần Vinh Dự trong lễ tốt nghiệp

Có những thất bại sẽ làm các bạn bật khóc. Có những thất bại sẽ làm các bạn không thể khóc thành lời. Có những thất bại sẽ làm các bạn mất niềm tin và gục ngã một thời gian. Thậm chí có thể có những thất bại làm các bạn đau đến mức ước như mình chưa bao giờ được sinh ra. Trong những giờ phút ấy, hãy nhớ rằng ai cũng sẽ phải trải qua những thử thách tương tự. Cái gì không giết chết được chúng ta thì sẽ làm chúng ta lớn mạnh hơn. Tôi mong điều ấy ở các bạn. 

Tôi rất hân hạnh được có mặt trong buổi lễ tốt nghiệp ngày hôm nay của các bạn, những cựu sinh viên yêu quý của trường Cao đẳng Nghề Việt Mỹ. Trong ngày vui này, tôi muốn chia sẻ với các bạn 3 điều với tư cách là một người bạn. Chỉ có 3 điều thôi, không có gì là lớn lao.

Điều thứ nhất là về sự thất bại. 

Tôi tự cho mình là một người dám chấp nhận thất bại. Thất bại đầu đời của tôi là trong năm đầu Đại học. Tôi vào học Đại học Quốc Gia Hà Nội năm 1995 và đặt mục tiêu phải lấy được học bổng để đi Úc học ngay trong năm đầu tiên. Để làm được việc đó, tôi phải đứng đầu trường về thành tích học tập. Kết quả học tập của tôi năm đó đứng đầu trường. Nhưng đáng tiếc là chương trình học bổng của Úc mà tôi nhắm tới năm đó kết thúc. Giấc mơ không thành, tôi đã khóc nhiều ngày, nhưng tôi không bỏ cuộc.

Khi tốt nghiệp Đại học, tôi cũng tốt nghiệp đứng đầu khoá. Tôi được trường Đại học Quốc Gia Hà Nội giữ lại làm giảng viên. Thế nhưng mức lương khi đó chỉ có 400 nghìn Đồng mỗi tháng, đủ cho tôi uống café và ăn sáng vài ngày. Tôi nộp hồ sơ xin việc ở nhiều nơi, và trong suốt 6 tháng trời, tôi chỉ nhận được hết cái lắc đầu này tới cái lắc đầu khác. Lại một thất bại nữa.

Sự thất bại trong việc tìm việc làm tốt và lương cao khiến tôi nhận ra tôi cần phải làm tốt hơn nữa. Tôi đã dành một năm tự học và xin học bổng. Thời kỳ này áp lực lớn tới mức tóc trên đầu tôi rụng từng mảng. Tôi cao 1m74, và khi đó tôi chỉ nặng hơn 50 kg đôi chút. Nhưng nỗ lực của tôi cuối cùng không uổng. Tôi được nhận học bổng của viện Harvard Yenching tại trường Đại học Harvard và được nhận vào học tại Đại học Tổng hợp Texas tại Austin. Năm 24 tuổi, tôi bắt đầu qua Mỹ học tiến sĩ Kinh tế. 

Gần 6 năm học tiến sĩ là một thời kỳ gian khổ, đặc biệt là trong giai đoạn làm luận án. Các thất bại liên tiếp trong nghiên cứu và áp lực phải thành công để tốt nghiệp là đặc biệt nghiêm trọng. Nếu thời gian kéo dài quá lâu, học bổng của tôi sẽ hết, và tôi sẽ phải bỏ cuộc và về Việt Nam với hai bàn tay trắng. Vì thế nhiều lúc quẫn trí tôi đã tính đến việc tự sát.

Thế nhưng cuối cùng tôi vẫn vượt qua được. Khi tôi tốt nghiệp đầu năm 2007, tôi là một trong 3 nghiên cứu sinh được đánh giá cao nhất trong số khoảng gần 20 tiến sĩ Kinh tế tốt nghiệp năm đó của trường. Ngay từ trước khi ra trường, tôi đã có việc làm tại Mỹ với mức lương khởi đầu 6 con số, tức là hơn 100 nghìn USD/năm.

Năm 2010, tôi về Việt Nam và bắt đầu làm việc cho một Quỹ đầu tư lớn nhất nhì Việt Nam trên cương vị cố vấn kinh tế cao cấp. Nhiều người ngăn cản quyết định này. Nhiều người cho tôi là ngu ngốc. Và quả thật, tôi bị sa thải chỉ sau 3 tuần làm việc ở tập đoàn này. Lý do, các lãnh đạo của họ sợ những gì tôi nói và viết có thể ảnh hưởng đến tương lai chính trị của tập đoàn. Lại một thất bại nữa. Lần này nặng hơn vì tôi đã 33 tuổi.

Nhưng chính nhờ thất bại này, sự nghiệp của tôi rẽ sang một lối đi mới. Tôi tham gia cùng các bạn bè thân hữu của mình xây dựng công ty tài chính TNK Capital, giờ là một công ty tư vấn tài chính uy tín ở Việt Nam. Từ công ty này, chúng tôi lập ra Ismart Education, một công ty tiên phong ở Việt Nam trong lĩnh vực giải pháp giáo dục số, và đầu tư vào Học viện Giáo dục Hoa Kỳ, là công ty sở hữu trường Cao đẳng Nghề Việt Mỹ. Đó cũng là lý do mà tôi đứng trước các bạn ngày hôm nay với tư cách Chủ tịch của Trường.

Những thất bại mà tôi gặp phải trong 20 năm qua có thể chưa phải là những thất bại lớn. Tôi có thể sẽ còn gặp thêm nhiều thất bại nữa trong những năm tới. Nhưng mỗi khi thất bại, tôi lại thấy mình trưởng thành hơn và quyết tâm hơn.

Ngày hôm nay các bạn ra trường, cũng giống như tôi ra trường hồi 15 năm trước. Dù học giỏi tới đâu, hành trang lập nghiệp của các bạn cũng giống như tôi ngày đó, vẫn còn nghèo nàn lắm. Các bạn chắc chắn sẽ phải đối mặt với nhiều khó khăn, thử thách, và sẽ có nhiều thất bại. Có những thất bại sẽ làm các bạn bật khóc. Có những thất bại sẽ làm các bạn không thể khóc thành lời. Có những thất bại sẽ làm các bạn mất niềm tin và gục ngã. Có những thất bại thậm chí làm các bạn đau đến mức ước như mình chưa bao giờ được sinh ra. Trong những giờ phút ấy, hãy nhớ rằng ai cũng sẽ phải trải qua những thử thách tương tự. Cái gì không giết chết được chúng ta thì sẽ làm chúng ta lớn mạnh hơn. Tôi mong điều ấy ở các bạn. Và đó là chia sẻ đầu tiên.

1795273_1404913753107264_1162416414_oTiến sĩ Trần Vinh Dự chia sẻ cùng các tân cử nhân tại buổi lễ tốt nghiệp 2014

Điều thứ hai là về sự hữu hạn của cuộc đời.

Khi tôi còn ở những năm đầu của tuổi 20, tôi không bao giờ nghĩ đến một ngày nào đó mình trở nên già đi. Với tôi khi đó chỉ có tuổi trẻ. Thế nhưng đứng trước các bạn ngày hôm nay ở đây, tôi nhận ra 15 năm đã trôi qua như một giấc mơ. Chỉ 3 năm nữa tôi sẽ bước vào tuổi 40. Thêm một giấc mơ 15 năm nữa giống như giấc mơ vừa qua và tôi sẽ ngoài 50 tuổi. Điều đó cũng sẽ đến với các bạn. Rất nhanh thôi, 10 năm, 20 năm, rồi 30 năm sẽ trôi qua và một sáng thức dậy các bạn sẽ thấy tóc trên đầu mình có nhiều sợi bạc.

Điều đó không có gì là đáng buồn. Ngược lại, nó là một động lực lớn nếu các bạn biết tận dụng. Hiểu rằng mình sẽ già đi và biến mất khỏi trái đất này như là một lẽ tự nhiên cũng có nghĩa rằng bạn sẽ biết yêu quý từng ngày còn lại và biết dùng nó một cách có ích nhất.

Thế nào là có ích? Tôi không có ý nói đến việc bạn phải có những đóng góp lớn lao cho xã hội hoặc những hi sinh phi thường. Cái có ích mà tôi nói đến ở đây là các bạn chỉ sống có một lần cuộc sống này, vì thế hãy làm những gì các bạn thực sự yêu thích nhất. Tôi muốn mượn lời Steve Jobs tại lễ tốt nghiệp năm 2005 của Đại học Standford. Jobs nói rằng “thời gian của các bạn là hữu hạn, vì thế đừng phí phạm thời gian để sống cuộc đời của người khác. Đừng bị xập bẫy các giáo điều để phải sống cuộc sống của mình theo cách nghĩ của người khác. Đừng để tiếng nói quan điểm của người khác nhấn chìm tiếng nói sâu thẳm trong lòng bạn. Và điều quan trọng nhất là hãy có can đảm để đi theo tiếng gọi của trái tim và trực giác của bạn. Chúng là thứ biết rõ rất bạn thực sự muốn trở thành một người như thế nào. Những thứ khác đều là thứ yếu.”

Khi các bạn thực sự làm việc gì mà các bạn yêu thích nhất, các bạn sẽ dễ vượt qua những thử thách hơn. Công việc chiếm một phần lớn cuộc đời của các bạn, vì thế, các bạn sẽ chỉ cảm thấy thực sự mãn nguyện khi được làm việc mà các bạn cho là thích hợp nhất với mình.

Tôi là một người ham viết lách từ nhỏ. Ngay khi còn là học sinh phổ thông cơ sở, tôi đã viết tiểu thuyết và làm thơ. Tiểu thuyết của tôi chưa bao giờ được đăng, và thơ của tôi cũng vậy. Có lẽ tiểu thuyết của tôi quá dở và thơ của tôi cũng cộc cằn. Tôi không làm thơ và viết văn nữa, nhưng niềm yêu thích viết lách thì ngày một lớn. Cuối cùng, tôi trở thành một nhà phân tích và bình luận về kinh tế và quan hệ quốc tế. Trong mười năm nay, tôi đã có gần 1 nghìn bài viết đăng tải trên nhiều báo và tạp chí trong và ngoài nước. Đó là sở thích của tôi. Nó làm tôi cảm thấy cuộc sống của mình có ý nghĩa. Nếu như nhiều tuần qua đi không thể viết những gì mình muốn viết, tôi cảm thấy thiếu hụt như thiếu hụt ô xi để thở, và tôi phải quay lại viết bằng được.

Trong số các bạn ngồi đây ngày hôm nay, hẳn sẽ có một số bạn đã thực sự biết mình muốn làm gì. Các bạn thật may mắn. Với phần lớn các bạn khác, có lẽ các bạn vẫn còn chưa biết mình muốn làm gì. Các bạn hãy tiếp tục tìm kiếm. Cũng giống như tất cả các vấn đề thuộc về trái tim, các bạn sẽ biết mình tìm ra nó khi gặp nó. Các bạn không được dừng lại trước khi tìm ra. Và khi đã tìm ra công việc mà mình thực sự ưa thích, các bạn hãy theo đuổi nó bằng toàn bộ năng lượng của mình. Vì thời gian của các bạn trên đời này chỉ là hữu hạn, các bạn sẽ già đi, và chắc chắn các bạn không muốn trở thành một người già chìm đắm trong hối tiếc về quá khứ bị bỏ lỡ.

Điều thứ ba là sự thành đạt và hạnh phúc. 

Không phải ai sinh ra cũng là thiên tài, cũng có cơ hội để trở thành một thiên tài. Không phải ai sinh ra cũng trong một gia đình giàu có, hoặc có cơ hội để trở thành giàu có. Tôi không phải là một thiên tài, và cho đến giờ tôi cũng chưa bao giờ là một người thực sự giàu có. Có thể trong số các bạn tốt nghiệp ngày hôm nay sẽ có một số ít bạn trở thành những người đặc biệt nổi tiếng hoặc giàu có về sau, nhưng chắc chắn phần lớn trong số các bạn sẽ là những người có cuộc sống bình thường.

May mắn là không cần phải là một thiên tài hoặc một người đặc biệt giàu có thì mới có hạnh phúc. Thậm chí trong nhiều trường hợp điều này còn ngược lại, có nghĩa là người đặc biệt nổi tiếng hoặc giàu có nhiều khi không có hạnh phúc.

Lý do là, hạnh phúc là cảm nhận chủ quan của bạn đối với những gì bạn làm, những gì bạn có, và những gì xung quanh bạn. Hạnh phúc không phải là một khái niệm vật lý với những công thức khô cứng. Nó là thứ thuộc về con người, và vì thế, nó có có vẻ đẹp và sự bí ẩn mà chỉ có chính bạn mới giải mã cho mình được. Nếu biết cách giải mã, hạnh phúc đến từ những điều nhỏ nhặt nhất. Trong bước đường sắp tới, các bạn sẽ phải luôn bám đuổi trong một cuộc cạnh tranh gay gắt về danh lợi. Nhưng hãy đừng để nó cuốn các bạn đi vĩnh viễn. Hãy biết dừng lại, dành thời gian để cảm nhận và tự vui với những gì mình có. 

Và lý do để tôi chia sẻ điều này là vì hôm nay là ngày của các bạn. Các bạn đã đặt thêm được một dấu mốc hết sức quan trọng trong cuộc đời mình. Những khó khăn cực nhọc trên ghế nhà trường đã qua, những khó khăn cực nhọc trên con đường mưu sinh và khẳng định bản thân đang đến. Nhưng ngay lúc này, chính lúc này đây, các bạn có quyền dừng lại trong một ngày, có quyền tự hào vì những gì mình đã làm được, có quyền vui chơi với các bạn đồng khoá và thầy cô thêm một ngày nữa như những sinh viên còn đang học, có quyền tổ chức tiệc tùng để ăn mừng thành tựu của mình.

Không có ai sống thay cuộc sống của các bạn, và các bạn cũng không cần phải sống thay cuộc sống của ai. Vì thế, không ai có quyền đánh giá hay nghi ngờ những nỗ lực mà các bạn phải trải qua để đến được với thời khắc này. Chúng tôi, những người đàn anh, đàn chị, những người đã đi trước, vui mừng và nghiêng mình trước các bạn. Chúc tất cả các bạn thành công và hạnh phúc.

Nguồn Broadway.edu.vn

Nếu ai đó bảo bạn rằng học code rất dễ, đừng tin!

Code – dễ học?

Một trong những điều nguy hiểm nhất mà tôi nhận thấy đối với những người mới bắt đầu bước chân vào lập trình đó là người khác nói với họ rằng lập trình là một công việc dễ dàng. Với sự chống lưng của những nhân vật như Bill Gates, Mark Zurkerberg, tổng thống Obama… lập trình có vẻ như đang trở thành một trào lưu toàn cầu. Điều này khiến cho không ít người lao đầu vào học lập trình với tràn trề hy vọng và lạc quan để rồi bỏ cuộc không lâu sau đó.

Những người bỏ cuộc này, sẽ mang theo một sự hoài nghi rất lớn về bản thân, nghĩ rằng mình ngu ngốc, không đủ khả năng tiếp thu hoặc lập trình là một thứ năng lực đặc biệt dành cho một nhóm người đặc biệt được “thiên nhiên ưu đãi”. Thực sự thì, sẽ không có ai nói cho bạn biết rằng một kỹ năng rất quan trọng của lập trình viên là hỏi đúng vấn đề cần hỏi trên Google và biết đoạn code nào là cái mình cần đề copy-paste. Không giống với chơi game, lập trình không có trùm cuối và level max. Cái cảm giác mất phương hướng, lo lắng và cảm thấy mình ngu ngốc không phải là thứ mà lập trình viên có thể vượt quá, đó là điều họ phải học cách sống chung với chúng.

Trong cuốn “Flow: The Psychology of Optimal Experience”, nhà tâm lý học Mihaly Csikszentmihalyi đã mô tả rất chính xác quá trình tiếp thu kỹ năng mới như sau:

anxiety-boredom-3
Nói tóm lại bản sẽ phải học cách sống chung với cảm giác ngu ngốc khi học code

Tôi nhận thấy rằng đồ thị này giống hết những gì mình đã phải trải qua khi học lập trình. Cho dù bạn nghĩ rằng mình giỏi giang đến đâu, vòng lặp này sẽ tiếp diễn và không bao giờ kết thúc:

  1. Kiếm tut trên mạng, làm theo từng bước một mặc dù có thể không hiểu mình đang làm gì. Điều này giúp bạn có cái nhìn tổng quát về kỹ năng mình muốn học và cách mọi thứ kết nối với nhau. Công việc này khá dễ dàng, nếu không muốn nói là nhàm chán bởi bạn chỉ là một con vẹt. [Cảm giác lạc quan xuất hiện]
  2. Làm lại những thứ mình vừa học với một số thay đổi thử nghiệm, cố gắng không xem lại tut. Nhận ra rằng mình chả hiểu mấy về những điều vừa học. [Nỗi sợ xuất hiện, sự tin tin giảm đi]
  3. Thử tạo ra một sản phẩm nào đó tự ý tưởng của chính mình. Nhận ra rằng hóa ra đầu mình chả đọng lại được gì từng những cái tuts kia. [Cảm giác tuyệt vọng]
  4. Tìm một tut mới liên quan đến ý tưởng của mình, nếu tìm đúng tut thì phải làm theo từng bược một. [Bắt đầu vỡ ra được một chút, sự tự tin lại được nhen nhóm]
  5. Tự làm không nhìn tut. [Nỗi sợ lại xuất hiện]
  6. Thực hiện ý tưởng mới. [Tuyệt vọng]
  7. Lặp lại từ bước 1 đến 6.

Mỗi khi bạn đi qua được những cơn tuyệt vọng, hay nhìn lại và đánh giá những gì mình đã học được. Thực ra bạn đã tiến bộ qua quá trình vật lộn nhưng điều này không phải lúc nào cũng nhìn thấy được. Hãy tha thứ cho bản thân nếu bạn không hiểu hết những gì mình vừa học, giục tốc bất đạt. Cứ bình tĩnh, mọi việc rồi sẽ ổn thôi. Good luck!

Theo TechCrunch