Bài đăng

Đang hiển thị bài đăng từ Tháng 2, 2017

Two common CSS problems I usually meet and solution

Hình ảnh
Footer need to be always at the bottom Most of web applications have a footer. Footer is for your company or organization’s infomation, copyright, etc. And as its name, it need to be at the bottom. But somethime your body content is too short, your footer is still at the bottom of the page, but not the bottom of viewport. Like this Solution: HTML <div id= "container" > <div id= "header" ></div> <div id= "body" ></div> <div id= "footer" ></div> </div> CSS html , body { margin : 0 ; padding : 0 ; height : 100% ; } #container { min-height : 100% ; position : relative ; } #body { padding-bottom : 60px ; /* Height of the footer */ } #footer { position : absolute ; bottom : 0 ; width : 100% ; height : 60px ; /* Height of the footer */ } References:  http://matthewjamestaylor.c

Chế độ ăn lành mạnh cho một sức khỏe tốt

Hình ảnh
Con người là động vật ăn tạp nhưng hơn 85% là từ thực vật Để biết một loài động vật là động ăn cỏ, ăn thịt hay ăn tạp, người ta hay dựa vào các đặc điểm sinh lý của bộ máy tiêu hóa của động vật đó. Về cơ bản chúng ta có thể dựa vào cấu tạo răng hàm và ruột. Với các động vật ăn thịt, răng thường sắc nhọn, bén để xé thịt. Dạ dày của chúng thì ngắn, khoảng 1 đến 2 so với độ dài cơ thể. Bởi vì thịt dễ bị lên men sinh ra các chất độc hại nên cần có ruột ngắn để thải chúng ra nhanh. Động vật ăn cỏ thì chủ yếu là các răng vuông có chức năng nghiền cỏ và mỏng để nhai cỏ. Dạ dày thưòng dài từ 5 đến 7 so với độ dài cơ thể. Con người có tất cả 32 cái răng sau khi trưởng thành, trong đó có 8 cái răng cửa, 4 cái răng nanh (thức ăn động vật) và 20 chục cái răng hàm. Như vậy chúng ta thấy 28 (ăn thực vật) / 4 (ăn động vật). Chỉ mỗi ruột non đã dài gấp 4 lần chiều cao của 1 người trưởng thành. Từ tỉ lệ răng chúng ta thể suy ra con người nên ăn 87.5% thức ăn thực vật và 12,5% còn lại là động v

High-tech and natural/organic agriculture

Hình ảnh
Nông nghiệp công nghệ cao là nền nông nghiệp áp dụng khoa học kỹ thuật công nghệ để tạo và kiểm soát các yếu tố ảnh hưỏng tới sự phát triển của cây trồng nhằm phục vụ nhu cầu của con người. Chúng ta có thể kiểm soát ánh sáng, độ ẩm, nhiệt độ, các chất dinh dưỡng/ phân bón, đất hay giá thể, kiểm soát côn trùng, dịch hại. Tùy theo cây trồng mà con người có thể điều chỉnh các yếu tố để cây trồng được phát triển tốt nhất, đẹp nhất. Tất cả hiện nay có thể làm tự động được nếu như người trồng hiểu được sinh lý của cây mình trồng. Nhưng không phải là tất cả và con người không phải là tự nhiên. Các sản phẩm nông nghiệp công nghệ cao rất đẹp, an toàn và ăn khá ngon. Nhưng thiếu chất và thiếu nhiều nhất là các enzyme. Nhà màn ngăn các tia cực tím/UV nên cây trồng không sản xuất ra các enzyme chống oxy hóa nữa. Côn trùng bị tiêu diệt nên cây trồng không hấp thu được khoáng chất từ lớp vỏ của côn trùng. Môi trường nuôi dưỡng cây trồng được pha chế từ các hoạt chất bạn có thể mua được từ các c

Nông nghiệp hiện đại và vòng tròn vấn đề của thế giới

Hình ảnh
Sự phát triển của ngành nghề lâu đời nhất thế giới Không một ngành nghề nào trên thế giới lâu đời hơn nông nghiệp. Những dấu tích của ngành nông nghiệp đã được phát hiện từ năm 12000 TCN. Nó gắn liền với đời sống và xã hội loài người. Khởi thủy là nông nghiệp thô sơ hay truyền thống. Đây là nền nông nghiệp sơ khai, chủ yếu dựa vào sức lao động của con người. Dụng cụ lao động còn thô sơ và năng suất thấp. Sản phẩn chủ yếu là lương thực. Các sản phẩm này tốt cho con người và môi trường nhưng năng suất không cao. Dưới áp lực của dân số và nhu cầu lương thực ngày càng cao và đa dạng, con người đã cải tiến máy móc, thiết bị, kỹ thuật để nâng cao năng suất. Họ đưa vào sử dụng những máy móc có năng suất cao, cây trồng đa dạng hơn. Và đặc biệt họ đưa vào sử dụng các loại thuốc bảo vệ thực vật(BVTV). Vấn đề năng suất phần lớn đã được giải quyết. Nhưng vấn đề mới lại xuất hiện, đó là, bệnh tật hủy hoại sức khỏe người tiêu dùng. Đây chính là nơi nông nghiệp sạch ra đời. Các tiêu chuẩn, p

Sessions là gì? Và Rails làm nó như thế nào?

Sessions là gì? Tại sao ứng dụng web cần nó? Nhiều ứng dụng web muốn lưu trữ thông tin trạng thái của người dùng theo thời gian. Ví dụ như thông tin giỏ hàng, hay thông tin chứng thực. Vì HTTP không làm đưọc điều đó nên chúng ta cần sessions. Nếu không có sessions, người dùng có thể cần phải chứng thực ở mọi request. Điều này thật sự khó chịu và không tiện nghi. Vậy sessions chỉ là 1 nơi lưu trữ thông tin của người dùng để có thể dùng chúng ở những request tiếp theo trong tương lai. Sessions được xây dựng thế nào? Mỗi khi có 1 user mới truy cập thì server sẽ cấp cho nó 1 session id. Id này đưọc gửi xuống client trong response trả về và lưu trong cookies của browser. Khi gửi yêu cầu tới server, browser của client sẽ gửi cookies có kém session_id trong đó nên server sẽ biết đc đây là request của user nào. Nếu không có session Id thì đó là 1 request của 1 user mới. Session Id tùy theo mỗi framework hay ứng dụng sẽ được build khác nhau. Ví dụ Rails thì nó là MD5 hash long value củ

Module vs class in ruby programming language

Modules are about providing methods that you can use across multiple classes - think about them as “libraries” (as you would see in a Rails app). Classes are about objects; modules are about functions. Class is mainly different from Module by 3 main methods: new, allocate, superclass. The table below show you the different between them.   Class Module instantiation can be instantiated can  not  be instantiated usage object creation mixin facility. provide a namespace. superclass module object methods class methods and instance methods module methods and instance methods inheritance inherits behaviour and can be base for inheritance No inheritance inclusion cannot be included can be included in classes and modules by using the include command (includes all instance methods as instance methods in a class/module) extension can not extend with extend command (only with inheritance) module can extend instance by using extend command (extends given instance with singleton method

Open class in Ruby

Trong ruby, không có sự khác biệt thực sự giữa code định nghĩa lớp và code của bất cứ loại nào khác. Nếu một lớp đã tồn lại, Ruby không định nghĩa nó lần nữa mà chỉ mở lớp này ra thêm các các methods mới vào. Có vẻ trong Ruby, chữ  class  giống một scope operator hơn là để khai báo lớp. Ví dụ: class OneClass def x "x" end end class OneClass def y "y" end end obj = OneClass . new obj . x # => "x" obj . y # => "y" Ở đây chúng ta có thể dùng kỹ thuật này (Open Class) để mở các lớp có sẵn, thậm chí là các lớp của Ruby, để chỉnh sửa. Kỹ thuật này giúp chúng ta có thể thêm thắt, viết lại cái hàm của lớp đã được định nghĩa trong thư viện (monkey patching). Mặt trái của nó là khi chúng ta chỉnh sửa hành vi các phương thức của thư viện chuẩn sẽ làm phần mềm khó test và kiểm soát. Nhiều khi khiến phần mềm chạy lỗi hoàn toàn. Có một số người khó tính thưòng hoàn toàn không khuyến khích các lập trình viên s