Docker và ứng dụng trong design micro-service app

Docker đã và đang trở thành một trong những project open source “hot” nhất trên github. Trừ khi 2 năm gần đây bạn không truy cập internet, nếu không mình chắc rằng ít nhất bạn cũng nghe qua về từ khóa docker. Vậy docker là gì? Tại sao lại sử dụng docker? Sử dụng docker có lợi ích gì? Trong bài viết này, mình sẽ trình bày một số khái niệm cơ bản về docker và demo một ví dụ đơn giản về micro service sử dụng docker với lamp stack và mysql để phát triển các ứng dụng web. Kết thúc bài viết này, chúng ta sẽ biết cách làm thế nào để chỉ cần sửa 3 text trong 2 files và chạy 1 command là có môi trường phát triển ngon lành rồi.

Read more …

Giới thiệu về Less CSS

Hiện nay có 2 CSS pre-processor thông dụng là SASS và Less. Sass có vẻ được ưu ái hơn, đã trở thành mặc định trong Rails. Nhưng trong bài viết này chúng ta sẽ nói về Less, vì nó được dùng để phát triển bootstrap, nên chúng ta có thể kế thừa, sử dụng một số biến cơ bản của Bootstrap trong quá trình phát triển UI.
Read more …

Điều cần biết cho Newbie web UI developer

Bài viết này dành cho những người mới bắt đầu với vị trí UI Developer, Full-stack developer hay thậm chí là back-end developer muốn sửa UI mà không cần phải nhờ đội front-end.
Dưới đây là những kinh nghiệm với CSS để xử lý một số vấn đề hay gặp phải trong quá trình làm UI.

Read more …

Functional Programming, hay Declarative Programming

Sau bài RxJava và ứng dụng trong Android, mình có tìm hiểu thêm về Functional Programming, thứ mà hồi sinh viên mình chưa được biết tới nhiều. Functional Programming, chính bản thân cái tên cũng đã nói lên phần nào đặc trưng của nó. Nhưng khi google thì mình thấy rằng Functional Programming là một phần của Declarative Programming(DP) thứ mà nằm ở một “thái cực” đối với Imperative Programming(IP) – thứ thường được gắn liền với Object-Oriented Programming (OOP) hay cứ gọi là lập trình hướng đối tượng đi cho nó quen thuộc. Hồi còn sinh viên, mình có cảm giác các môn học và chương trình học luôn hướng sinh viên đi theo hướng này. Cũng đúng thôi, Imperative Programming đã quá quen thuộc với lập trình viên nói chung, có thể nói là thống trị thế giới lập trình trong suốt hơn 50 năm qua.

Vậy Functional Programming, hay Declarative Programming là gì?

Read more …

Cách làm việc với Git một cách hiệu quả

Blog này miêu tả quy trình làm việc với git một cách có hiệu quả và chuyên nghiệp áp dụng cho mọi project từ bé đến lớn, team size từ 1 cho tới n. Nó được tao ra với mục đích ban đầu là 1 wiki cho engineers của SotaTek, nhưng nếu bạn chưa dùng git bao giờ hoặc dùng nhiều mà thấy nó loạn quá, khó kiểm soát thì cũng có thể thử follow theo xem hiệu quả đến đâu.

Read more …

RxJava và ứng dụng trong Android

ReactiveX là gì?

ReactiveX là sự kết hợp của những ý tưởng tốt nhất từ Observer pattern, Iterator pattern và Functional programming. ReactiveX cung cấp các API để giải quyết vấn đề đồng bộ dữ liệu trên các luồng dữ liệu khác nhau.

1

Read more …

Câu chuyện nhân sự

Trong lúc chờ bài khai trương post thêm một bài cũ về nhân sự viết từ năm ngoái


Hôm nay được một chuyên gia nhân sự 7x kể cho nghe một series chuyện khá lý thú, học được khá nhiều bài học. Từ trước đến giờ trong chuyện học hỏi thì mình luôn đi theo đường lối của constructivism. Nếu ai chưa rõ constructivism là gì thì vào cái link này mình đã trình bày cụ thể trong đó.

https://www.facebook.com/notes/794608127268575

Còn tóm tắt lại thì tinh thần của constructivism có thể diễn đạt ngắn gọn trong mấy câu:

Những gì ta nghe – ta quên

Những gì ta thấy – ta nhớ

Những gì ta làm  – ta hiểu

Những gì ta dạy – ta tinh thông

Read more …

Học thuyết kiến tạo, nón trải nghiệm, bốn hoàn cảnh tạo tri thức

Đợt vừa rồi giục anh em làm cái blog của công ty, bây giờ đã xong mà lại không có thời gian để viết bài khai trương. Vì tinh thần bà con ta lập ra blog nằm trong chiến lược biến công ty thành một “tổ chức học tập” nên tạm thời kiếm lại bài cũ cách đây 2 năm trên facebook về chủ đề học tập để post lên trước mở hàng, đợi một hai tuần nữa có thời gian rảnh thì khai phím.

————————————————-

Lâu rồi không viết cái gì có “tính học thuật”. Hôm nay ngồi tổng kết lại mấy điều cơ bản sau khi ngâm cứu Constructivism. Share lại với mọi người.

 

Mình nghĩ là sẽ không có nhiều người  nghe đến “Học thuyết kiến tạo” ( Constructivism ) bởi đây chưa phải là khái niệm được đề cập đến nhiều ở Việt nam. Tuy nhiên có một cụm từ dây mơ rễ má đến nó là lấy người học làm trung tâm ( Leaner-centered Learning hay Student-centered Learning ) thì chắc mọi người cảm thấy quen thuộc vì nó là từ ngữ khá hot được nhắc đến nhiều trong các phương tiện truyền thông khi những vấn đề cải cách giáo dục được đặt ra trong thời gian gần đây.

Trên tinh thần “học từ gốc rễ, hiểu từ nguyên lý” thì để hiểu tại sao lại lấy người học làm trung được xem là quan điểm giáo dục tiên tiến thì  chúng ta cần truy hồi về nguồn gốc hình thành nên quan điểm này ở mức độ bao quát rộng lớn hơn là “Học thuyết kiến tạo” được khởi xướng bởi nhà tâm lý học Piaget.

Bản thân Constructivism không phải là một cách học, mà nó là lý thuyết về cách học, là đường lối cơ bản cung cấp  những nguyên lý để từ nó sẽ giúp cho việc xây dựng một cách học thế nào cho hợp lý nhất.

Read more …