Checklist khi thiết kế công trình

Trước khi đi vào tính toán một công trình, cần kiểm tra xem có đủ dữ liệu để tính toán hay chưa. Dưới đây là một list cần kiểm tra trước khi bắt đầu công việc :

+ Mô tả công trình / mục đích sử dụng công trình:
Công trình là nhà ở, hay travaux publics, hay ouvrages d’art … bởi vì mỗi công trình sẽ có một quy chuẩn, yêu cầu khác nhau …

+ Mong muốn của client :
Những quy chuẩn chung có thể được chỉnh lại một chút dựa theo yêu cầu của khách hàng (hoặc có khi khách hàng đã tự tính toán rồi nên không cần phải làm double công việc nữa)

+ Điều kiện công trường :
Công trường có bị vướng nhà dân hay đường ray xe lửa không? Công trình có bị ngập nước không? V.v..

+ Tải trọng

+ Hình học của công trình : khung, hay là dầm? Dalle hay là mur de soutènement?

+ Vật liệu : beton và thép cường độ khác nhau sẽ ảnh hướng rất nhiều đến các chi tiết tính toán sau này. Một vật liệu khác như gỗ, thép cũng thay đổi hoàn toàn ứng xử của công trình.

+ Điều kiện biên : công trình gối tựa đơn, hay là ngàm, nền móng có độ cứng bao nhiêu, móng đơn hay móng cọc hay móng bè v.v.. tất cả những chi tiết này sẽ ảnh hướng tới định nghĩa của mô hình tính toán cũng như ứng xử của mô hình. Công thức cho các điều kiện biên khác nhau cũng sẽ khác nhau.

+ Độ bền công trình (durability)

+ Công trình có hoạt động chống hoả không ?

+ Performance của công trình: biến dạng, độ võng, rung động v.v…

+ Ảnh hưởng của những công trình phụ lên công trình chính

+ Điều kiện móng và đất

+ Linh tinh khác…

Một số công cụ Office có sẵn có thể bạn chưa biết – phần 1

Tôi viết bài này từ kinh nghiệm của bản thân sau gần 10 năm nghiên cứu khoa học và hơn 1 năm làm trong industry, với mục đích cung cấp thông tin về những công cụ giúp tôi khi làm việc; tôi cũng sẽ nói luôn từ sinh viên, lên nghiên cứu sinh, rồi post doc, rồi kĩ sư, cái quan niệm về công cụ nó thay đổi như thế nào. Tôi sẽ nói về những option trả phí, những option tính phí và những option pirate. Và thỉnh thoảng tôi sẽ nói về những gì người ta cần, và làm sao để sống tốt với người ta để tồn tại lâu theo thuyết của Darwin.

Soạn văn bản – LaTeX hay Word:

Trong giới academic, thể nào bạn cũng đã/sẽ nghe qua LaTeX, sinh viên gần đây được các bạn thầy/cô chỉ bảo và bắt ép cũng dùng LaTeX thường xuyên hơn. Còn Microsoft Word thì một người dùng máy tính phổ thông tôi nghĩ chắc ai cũng biết. Còn một vài ứng viên khác như MathCad, LibreOffice, ASCIIDoc, Markdown… nhưng những cái này số ít và hơi đặc thù, tôi chỉ nói về hai ứng viên nổi tiếng nhất.

Như khá nhiều dân nghiên cứu và viết về Toán Lý… khi dùng LaTeX phải nói là tôi thấy tiện; file văn bản xuất ra đẹp như li như lau, căn lề đặt trang chỉnh chu nếu bạn không muốn sửa gì thêm. Bên cạnh đó, công thức toán và reference của LaTeX rất mượt. LaTeX nhìn qua sẽ ngại học nhưng biết sơ sơ rồi thì viết article (chẳng cần học nhiều, template có sẵn, một số tạp san họ còn có file mẫu bắt người ta dùng theo, phiền toái cũng ở chỗ đó), làm beamer để thuyết trình, viết sheet nhạc, technical note không vấn đề gì v.v… Nói chung là đẹp, nhanh (?), công thức toán tốt và reference quản lý dễ dàng. Tikz cũng không đến nỗi nào nhưng đó là mấy cậu maniac dư thời gian, công cụ vẽ tôi sẽ nói sau.

Nhưng tôi sẽ không vì LaTeX mà chê Word, mấy bạn dùng LaTeX mà chê Word là mấy bạn ngồi trong giếng. Word quá phổ biến nên ai cũng ít nhất một lần dùng qua, và vì nó là WYSIWYG, ai cũng tưởng nó dễ dùng và cứ nghĩ mình master nó rồi. Không đúng. Những điểm mạnh của LaTeX như công thức toán và reference, LaTeX vẫn mạnh hơn (ý kiến chủ quan), nhưng Word không thua kém, thậm chí còn tiện hơn nhiều, Word 365 gần đây còn cho phép gõ code LaTeX để xuất ra công thức không vấn đề gì, thích sửa chỗ nào thì bấm chỗ đấy gõ 2 3 phím là xong, đặc biệt sau khi bạn biết phím tắt Alt + =. Tiếp, về reference, công cụ reference chuẩn của Word không đến nỗi nào, nhưng tôi khuyên dùng Zotero : miễn phí, citation đưa vào Word nhẹ nhàng và Bibliography bấm 1 nút là tự động cập nhật. Chưa kể Word còn có nhiều plugin (trả phí) khác như MathType hoặc AxMath. MathType sau khi chuyển về mô hình trả tiền hàng năm để dùng thì rất shit (MathType is shit since its subscription model). Tôi khuyên dùng AxMath, 15$, ngay cả bản free cũng đủ dùng (tôi cứ tưởng là dùng thử sau đó sẽ không dùng được nữa nhưng tôi vẫn dùng bản free trên laptop cá nhân tới tận bây giờ, gần nửa năm , không vấn đề gì).

Có một điểm tôi nghĩ phiền đó là hình ảnh trong Word nếu cho vào không khéo thì sắp xếp chữ trong văn bản dễ tiêu luôn, không như LaTeX begin{figure} phát là xong, để nó tự compile. Nhưng lí do này không phải do Word mà là vì lí do tôi đã nói ở trên, thường đến từ những người nghĩ họ biết Word nhưng thực ra không biết gì về Word. Một điểm khác về công thức là LaTeX đặt label công thức và cross reference tiện hơn Word nhiều.

Ngay cả khi đang trong giới academic, chưa cần ra ngoài đời, tôi đã thấy LaTeX bất tiện, từ khi Overleaf (trước đó có ShareLaTex và Overleaf là hai dịch vụ song song) có việc collab thì viết LaTeX đồng tác giả nó mới dễ hơn một chút, nhưng so với Word thì thua xa. Công cụ review trong Word là bất khả chiến bại, LaTeX có package để bắt chước trò này nhưng chỉ làm rối tinh sự vụ thêm. Giải pháp tôi thời đó hay làm với mấy công giáo là các ông ấy in ra; ghi vẽ chi chít lên rồi scan lại cho tôi; hoặc “thời thượng” hơn chút thì annotate trên PDF, rồi tôi phải dò từng dùng trong PDF để sửa file tex. Nếu là Word, tôi bấm accept review và file được cập nhật ngay. Sau này làm với một cậu trẻ hơn vài tuổi, chúng tôi dùng Overleaf, ban đầu tưởng dễ, sau một vài lần làm song song thì file conflict loạn cả lên, thế là mỗi lần vào Overleaf thấy cậu ý online thì tôi đi làm ly cà phê cho cậu ấy yên tâm không bị lỗi chấm than đầy màn hình.
Submit báo bằng Word cũng dễ thở hơn LaTeX, tôi gửi file Word một phát là các bạn editor im im làm không thấy hỏi han gì. Còn tôi mà submit LaTeX thì ôi thôi, hơn nửa thời gian là tìm cách để cái file nó compile được ra PDF đàng hoàng một chút, tốn thời gian vô cùng. Lúc đó tôi mới biết, trừ khi dùng một template tầm thường thì LaTeX đâu cũng xài được; nếu bạn hí hoáy với style hay package, đưa qua máy khác nó sẽ ì ạch một chút, thậm chí là PDF ra loạn xì xà ngầu lên hết.

Ra industry, không ai dùng LaTeX. Chấm hết. Tốn thời gian, file collab tệ, nhiều lúc khách hàng đòi thêm cái logo vào chỗ này chỗ kia… Word Copy paste phát là xong, LaTeX lại phải nà ní nà ná một hồi từ folder Figure rồi code dẫn rồi lại [H] hay [h]… Một file trên 200 nhiều citations thì LaTeX có thể được nhắc đến; nhưng một tài liệu gần 100 trang thì Word, Word, Word.

Tôi thấy các bạn thầy cô bắt sinh viên dùng LaTeX là hơi thiếu thực tế, khi tôi còn dạy lũ Master, tôi bảo Word hay LaTeX gì thì tùy tụi mày, miễn tao có cái để coi là được. Muốn tụi trẻ dùng LaTeX thì hãy khuyến khích tụi nó bằng cách cho điểm bonus chẳng hạn. Đừng ép buộc, không hạnh phúc. Ngay cả lí do tiền cũng không phải; vì sinh viên các trường đại học lớn sau này được ưu đãi rất nhiều về các phần mềm Office (miễn phí hoặc rất rẻ); những nước đang phát triển tạm quên mất sinh viên thì sinh viên tự tìm bản crack mà dùng…

Đang viết thì thấy 2 rưỡi sáng. Chắc phải đi ngủ. Hẹn mọi người tập sau.

I hope you are doing well

Hello stranger, whoever happens to read this post.

Nothing special, just after COVID (we’re still having it, but not so panic as before) and some stupid things about war and global warming and pollution here and there, our lives are not the same anymore. For me too, beside those things, my wife and me welcomed our first born last year, a cheerful boy, I love him. I realize life has many hidden gems which can be considered an endless adventure for a human.

I’m still playing games, playing my guitar, singing Oasis, doodling, and focusing on my job to earn money for my living.

I’m writing this just to wish you a happy life, courage and luck for whatever you are doing or planning to do.

Me, another random stranger.

2 công cụ hỗ trợ về màu sắc cho lập trình viên

Lập trình web hay mobile thì đều tới lúc phải chọn màu sắc sao cho đẹp, vừa mắt và phù hợp với nội dung mình muốn truyền tải. Sau đây là 2 trang web mình thấy khá hay để hỗ trợ dev (vốn không quá ‘giỏi’ về mặt thẩm mỹ, ý kiến chủ quan) trong việc xây dựng trang web hay ứng dụng mobile.

Để chọn palette màu: https://colors.dopely.top/palettes

Để đổi màu từ hex code sang RGBA: https://rgbacolorpicker.com/hex-to-rgba

Mình đang làm việc với flutter, và cách công nghệ này chọn màu với ngôn ngữ Dart làm mình hơi lúng túng — tại có nhiều lựa chọn quá. Nếu truyền mã hex như trên mạng (ví dụ #F4F1DE thành 0xF4F1DE) rồi đặt biến thì nó hơi phiền ở chỗ: (1) nó là một biến int, khó quản lý, (2) nó hiển thị màu không đúng như ý mình. Do đó, mình chuyển nó thành RGBA, rồi gán nó vào một biến Color luôn.

Color mainColor = const Color.fromARGB(255, 244, 122, 95);

Happy coding!

Update 21/7/2022: thực ra không cần làm nhiều như thế, chỉ cần lấy mã hex xong append nó vào string sau: “0xFF”. Ví dụ màu ở trên sẽ là #0xFFF4F1DE. Learned this the hard way. 😅

Set working directory of your R script automatically

When you’re working with some datasets in R-studio, you have to define an absolute path to such file and set the working directory of your script accordingly. Doing this would be very time-consuming in some occasions. Luckily, there’s an API call that can simplify the process.

setwd(dirname(rstudioapi::getActiveDocumentContext()$path))

It is best that  you place the R-script and the datasets in the same folder. Make sure to include the given command at the top of your script for the best portability. If your collaborators want to run the R-script on their computer, they wouldn’t have to change the working directory themselves, how cool is that!

 

October – Wake me up, breast cancer awareness month, rain and waiting for November.

I’ve just had a brief look at Facebook and realized that we’re in October already. The WHO page remind us that this is the month of breast cancer awareness (I’m always mistaken the logo of this thing). I remember reading the book “Breasts” Florence Williams, haven’t finished it yet, but it already gave me a fairly good amount of knowledge about women’s body, from a man’s point of view. Maybe I should have bought the book “Mon vagin, ma vie” (in french) as well when I had chance at the bookstore last September. I look at my body sometimes and I must say that nature has such a way to build things. It’s so hard for us men to understand the women’s body, therefore I’m grateful to those mentioned books, that allow me to understand better my wife, or other half of the world in general.

The rain comes more often, this month always make me want to listen some old songs like “I’ll take the rain” and “Rain and tears”, it must be a seasonal thing. Also, it’s time to listen “Wake me up when September ends” less often, to start waiting for “November rain”. Maybe.

Autumn is an awesome season, my most favorite season of the year.

[Đọc sách] Một cần câu của Trần Thanh Địch

Ban đầu viết tính để tag là đọc sách cũ, nhưng chữ cũ ở đây không có ý nghĩa lắm nên tôi dùng Đọc sách cho nó gọn, còn giá trị của cuốn sách vẫn y nguyên.

Nếu được chọn ra một trong những cuốn sách cho tôi cảm giác gần gũi quê nhà, rất “Việt Nam”, chắc tôi sẽ liệt Một cần câu vào trong số đó. Sách được viết năm 1994 (gần 30 năm rồi má ơi), được giải khuyến khích trong cuộc thi “Văn học thiếu nhi vì tương lai đất nước”. Một trong những tác phẩm cũng được giải trong cuộc thi này là Truyện cổ tích của vườn (Nguyễn Thị Bích Nga), cũng hay nhưng có nhiều chuyện buồn ở trong hơn, chắc các bạn đã từng nghe qua. Hồi xưa mình đọc bản giấy bản cỡ hộ chiếu, dày tầm lóng tay, vừa vặn nhét gối đầu giường, không to như Tobie Lolness thay luôn cả gối.

Một cần câu là một tác phẩm thuần về chuyện câu cá, miền quê có, thành thị có. Bên cạnh chuyện đi câu cá, Trần Thanh Địch còn khéo léo thêm vào những hình ảnh gia đình Việt Nam, những mối quan hệ mẹ con cậu dì gần gũi, và kể cả những số phận bất hạnh nhưng biết vượt qua khó khăn. Nói chung là đầy đủ trải nghiệm cho thiếu nhi, không ngạc nhiên khi đạt giải A văn học thiếu nhi (tôi mới biết Một cần câu đạt giải này khi tìm lại bản sách điện tử). Tác phẩm cho bạn đọc có những kiến thức mà trường học không dạy, cuộc sống hiện đại cũng chả có. Ví dụ như dùng cám rang để dụ cá ngạnh, hay dùng chỉ cột ốc để câu tôm tít, hay dùng vịt và nhái để câu cá lóc, hay câu cá mè bằng câu chùm. Mấy bạn ở nhà ruộng vườn thì biết những chuyện này, còn mấy bạn ở phố thị thì đố mà biết, với các bạn nó như là một thế giới kì diệu hay ho để mà đắm mình vào, thế giới mà trò chơi điện tử hay mạng xã hội internet không thể nào mang lại được. Văn của Trần Thanh Địch cũng không phải kiểu trau chuốt ảo diệu, cũng không phải bi sầu thảm não, cũng không gay cấn rùng rợn đến xiêu lòng. Văn của ông mộc, đọc Một cần câu cứ có cảm giác như rúc đầu vào ụ rơm, như mặc mỗi quần đùi mà đằm mình xuống suối mát. Một cần câu được chia thành nhiều truyện nhỏ, đọc một chút rồi hôm sau đọc tiếp tốt. Mình thì mỗi lần đọc là làm một mạch hết cuốn luôn.

Những bạn tree hugger hay những bạn thích giải cứu thế giới có thể sẽ không thích Một cần câu. Nhưng đó là một phần của Việt Nam, của những miền quê, của những giai đoạn khắc khổ nhưng hạnh phúc mà bố mẹ ông bà đã từng trải qua.

Ngoài Truyện cổ tích của vườn đã đề cập ở trên, một số truyện tương tự như Năm đêm với bé Su, Nhạc giữa trời đọc cũng thú vị không kém.

 

Reading books will never be obsolete

Books have always played an integral part in my journey growing up. While there are many different platforms of entertainment and to gain knowledge, and I do enjoy them, books will never be obsolete.

When we were little, colorful books helped us recognize the world, and they planted the seed of imagination and creativity. I will never forget my mom reading those books to me, and at the same time, explaining moral stories that came within. Children are like plain sheets of paper, and books like these are the brightest colors.

Next up, comics. I guess you have once asked your mom to get a new one every week. Or the little novels to long ones, the hesitation to read them because of the walls of text quickly faded as you read more and more.

There are two subjects that I think the learn-by-heart fashion is not suitable: 3D geometry and literature. Geometry is present everywhere in the world around us, and literature is all the reasons I mentioned above. You may argue with the high school approach of literature as one-sided, and while unfortunately that is true at the moment, literature is more than that. If you learn it by heart, then humanity could just print one massive book and distribute it to everyone. Yet you see, there are millions if not more books ready for us to read and feel, and people are still publishing new ideas in books.

Lastly, you don’t read a book once. Some books deserve more than one read. There are books that you perceive one way in the past, and differently now, maybe more differently in the future. They mark our progress as a human being. A poor man’s time machine that. Maybe you’ll read your favorite novel, and the image of a 7-year-old you enjoying the same thing more than 10 years ago pops up. Personally, that’s how I keep my memory fresh, how I relive my childhood. Life is cruel sometimes, and the memory train with books as carriages is a good way to soften things a bit.

So read.

Kiểm tra số chẵn, số lẻ bằng phép thao tác bit trên c++

Với một người không rành máy móc thì hẳn họ cũng sẽ biết rằng máy tính hoạt động theo nguyên tắc của hệ nhị phân (0 và 1). Các phép thao tác bit (bit-wise operations) trong C++ là một thứ khá hay ho để ta có thể vận dụng hệ nhị phân để giải quyết một số bài toán lập trình, mà chủ đề hôm nay sẽ là về kiểm tra tính chẵn lẻ của một số bất kỳ.

Thuật toán kiểm tra cơ bản rất dễ hiểu. Ta thử xem liệu số n nào đó có chia hết cho 2 hay không: nếu chia hết thì số đó là số chẵn, ngược lại là số lẻ.

Với các thao tác bit, ta sẽ ghép n với số 1 bằng toán tử AND. Toán tử AND sẽ chỉ trả về 1 nếu cả hai bit đầu vào đều là 1, đúng theo bảng chân trị của lý thuyết toán rời rạc. Khi một số lẻ ở hệ thập phân được chuyển đổi sang hệ nhị phân, chữ số cuối cùng sẽ luôn là số 1. Lợi dụng điều này, ta sẽ biết được số n ban đầu là lẻ hay chẵn bằng cách xem xét output của AND.

Ưu điểm của thao tác bit là nó chạy nhanh hơn cách thông thường, với lại làm bạn ngầu hơn với cả những người đã biết lập trình (haha).

Sau đây là đoạn code C++ mô phỏng lại những gì mình vừa nói.

#include <bits/stdc++.h>
using namespace std;
int main(){
     int n = 7;
     if (n & 1){
           cout << "odd number.";
     } //& là ký hiệu của phép AND trên C++.
     else cout << "even number.";
}