-
Năm 2024 của mình
Chào mọi người, năm 2024 vừa qua là một năm rất đáng nhớ của bản thân mình, nên mình cũng muốn chia sẻ một chút về nó, trước khi bước qua năm mới.
Ngủ sớm thôi
Bài blog đầu tiên mình đọc trong năm 2024 chính là từ người bạn Hynduf, trong đó bạn đã nhắc đến một kĩ thuật ngủ gọi là Polyphasic sleep. Mình cảm thấy nó khá là hay và cũng muốn thử xem hiệu quả của nó như thế nào. Và sau tầm 2 tháng tập luyện, từ một người thường xuyên thức đến 12h~1h sáng, mình đã ngủ từ 10h30~11h và dậy lúc 5h30 sáng. Mình cảm thấy việc tập trung học tập vào sáng sớm (khi cơ thể có đủ năng lượng, và không gian cũng rất yên tĩnh) mang lại hiệu quả cao đối với mình hơn là việc thức khuya. Điều này đã góp phần không nhỏ vào những gì mà mình đã đạt được trong năm 2024 vừa rồi hihi. Cảm ơn Hynduf nhé ^^.
Những chuyến đi
2024 là năm của những chuyến đi. Mình được đi rất nhiều nơi, từ những địa điểm vui chơi với nhóm bạn của mình như Tà Xùa, Ba Vì,… cho đến những chuyến đi xa vào Sài Gòn hay sang Thái Lan trong hơn 1 tháng. Những chuyến đi đó đều mang lại cho mình những kỉ niệm đẹp đẽ, cùng những giá trị bài học và cũng như tác động mạnh đến tư duy và khả năng của mình. Thật sự đến tận bây giờ, mình chưa hoàn toàn tin rằng mình đã tiến xa như thế, nhưng cùng với đó là sự cảm kích vô cùng tới những người đã cho mình cơ hội được thực hiện những chuyến đi này.
Suy
À thì ngoài những nốt thăng trong cảm xúc như ở trên, mình cũng gặp nhiều trải nghiệm suy lắm. Thật ra mình thấy việc ngủ sớm giúp mình bớt suy hơn, vì trước đó nhiều lần mình thức khuya xong bị rảnh và cuối cùng não mình sẽ tự động nghĩ ra những suy nghĩ không mấy tích cực. Nhưng dù như vậy, mình đôi lúc cũng cảm thấy bị áp lực và “suyyy” lắm. Lý do chính là mình đã bắt đầu đi làm, và thời gian đầu việc sắp xếp thời gian cân bằng giữa học và làm khiến mình bị stress. Lúc đó thì mình với tâm lý của một chú ngựa non háu đá thì sẵn sàng ôm hết những thứ mình cho là làm được, và dẫn đến bị burn out. Dần dần những thứ tiêu cực đó dồn lại vào trong tư duy của mình nhiều, và mình bị suy thật. Thật may khi mình quyết định tập viết ra những thứ tiêu cực đó trên blog này, và cảm thấy như tư tưởng thoải mái hơn được phần nào.
Năm vừa rồi mình có lẽ suy về chuyện công việc và học tập nhiều hơn là về tình cảm. Cơ bản mình thấy bản thân chưa dành thời gian để u sầu vì một tình yêu nào đó, nên tự nhiên cũng thấy lạ lạ. Chẳng hiểu đây là dấu hiệu tốt hay xấu nữa, nhưng mong là nó không khiến con tim bị chai sần đi, vì mình cũng thích cảm giác nó đập nhanh lắm ^^.
Mình được gì
Nói về những thứ mình nhận được thì rất là nhiều, nhưng mình thấy ấn tượng hơn cả là những mối quan hệ mới. Mình quen biết được nhiều người giỏi khi đi Thái, và họ giúp đỡ mình cũng nhiều trong công việc. Ngoài ra mình cũng bắt đầu tập đọc sách trở lại, và cũng thử nghiệm vài kĩ thuật giúp tăng sự tập trung nhưng não mình đợt cuối năm này nó bị sao ấy, khó hoạt động trơn tru cực. Nếu như mọi người hứng thú thì sắp tới mình sẽ viết thêm 1 bài về những kĩ thuật này, cũng như thời gian biểu và cách áp dụng của mình nhé.
2024 mang cho mình suy nghĩ khác về nhân sinh (thật đấy không đùa), về sự hữu hạn của tuần hoàn. Mình nhận ra việc chăm sóc sức khỏe cho bản thân và gia đình luôn là ưu tiên số một dù trong hoàn cảnh nào. Do đó mình bắt đầu tập ăn uống một cách bổ dưỡng và đầy đủ hơn (không bỏ bữa), và bắt đầu đi tập gym. Sau 3 tháng thì mình thấy sức khỏe và cơ bắp được cải thiện rất nhiều, nên xin cảm ơn những người anh em phòng gym đã kéo mình đi tập, vì mình cũng lười thật hihi.
Mình đánh mất những gì
Cái này mình hiện vẫn chưa có câu trả lời rõ ràng. Mình biết là có những người sẽ không còn liên lạc nữa, và mình không trách họ bởi lẽ phần lớn trong số đó sự chủ động thuộc về bản thân mình. Đôi khi mình bị tham công việc quá nhiều, dẫn đến những cuộc hẹn hoặc những lần đi chơi mình chấp nhận bỏ lỡ. Nhưng mình cảm thấy không hối tiếc với nó, vì mình tin vào lý do lựa chọn của bản thân.
Thật ra mình cũng thấy mình trưởng thành hơn 1 chút, và những cảm xúc tươi trẻ hồn nhiên của mình cũng mất đi, thay và đó là những góc nhìn sâu và lí trí hơn. Mình nghĩ ai cũng trải qua điều này để trưởng thành, nên mình cũng sẵn sàng chấp nhận, và để bản thân tự do trong cảm xúc nhiều nhất có thể trước khi không được nữa.
Những sự thật về mình trong 2024
Dưới đây là phần liệt kê số thứ mình thấy thú vị mà mình có trong năm vừa rồi: (flex cực mạnh)
Album nghe nhiều nhất: Đánh Đổi - Obito. Cơ bản vì nó toàn bài hay ấy, còn buff động lực cho mình nhiều lắm nên là trong 2 tháng 10 và 11 hôm nào mình cũng nghe ^^.
Món đồ ưng ý nhất: Laptop. Mình mua laptop mới vào tháng 4, sau khi laptop cũ của mình khá yếu để làm việc (và mình không thích sử dụng laptop công ty lắm).
Cuốn sách yêu thích nhất: Thư viện nửa đêm - Matt Haig, cuốn sách cho mình nhiều góc nhìn về sự ngẫu nhiên cũng như là lựa chọn của con người trong cuộc đời.
Thứ mới mẻ làm được: Decor lại góc học tập với nhiều poster phim ảnh và âm nhạc. Mình khá thích cách sắp xếp này, vì mình khá yêu âm nhạc và làm màu. Cảm ơn bạn cùng phòng đã giúp thỏa mãn đam mê nghệ thuật nửa mùa này của mình hihi.
Thật ra có nhiều fact khá vô tri của mình nữa mà lâu lâu mình hãy share trên facebook, nên thôi mình lười đề cập lại ở đây hihi.
Đôi lời
Cảm ơn 2024 đã mang lại một bản thể vjp pro hơn cho mình, và mình cũng thấy mình đã tiến xa hơn khá nhiều so với những dự định 1 năm về trước. Dù sao cũng khá là trọn vẹn cho 1 năm, và mình biết là mình không thể viết ra những dòng này nếu thiếu đi những người gia đình, bạn bè, đồng nghiệp, anh chị em thân thiết. Cảm ơn tất cả mọi người đã dành thời gian đọc những blog vô tri này của mình, hi vọng mọi người đều sẽ có một năm 2025 trên cả tuyệt vời.
Peace!
-
7 tuần ở Thái Lan
Xin cảm ơn đến những người tổ chức, nhà tài trợ và những mentors trong quá trình tham gia Invisible Garden và Antalpha Hacker House.
Xin chào mọi người, mình vừa trở về sau chuyến đi Thái Lan kéo dài 7 tuần, và thât sự đây là trải nghiệm rất là đáng nhớ trong 21 năm cuộc đời của mình. Do đó, mình sẽ chia sẻ một chút những gì mình quan sát và học hỏi được từ chuyến đi này dưới dây nhé.
Những gì mình tham gia
Mình tham dự pop-up city tên là Invisible Garden, là một nơi các builders với niềm đam mê về Blockchain và ZKP đến để học tập và cố gắng tạo ra sản phẩm trong vòng 1 tháng. Ban đầu mình chỉ đến Thái Lan để tham gia cái này, nhưng sau đó có một Hacker House của Antalpha Labs cũng tổ chức ở cùng địa điểm, nên mình cũng hứng thú chơi luôn hihi.
2 sự kiện trên được tổ chức ở ChiangMai trong 6 tuần, sau đó mình và mọi người lên Bangkok để tham dự Devcon, một trong những lễ hội blockchain lớn nhất năm cho những người đam mê blockchain như mình.
Lần đầu tiên của mọi thứ
Đây là lần đầu tiên mình được ra nước ngoài, và cũng là lần đầu tiên mình đến Thái Lan. Sự khác biệt giữa văn hóa và con người khiến mình phải thích nghi một cách từ từ. Mình sử dụng tiếng Anh để giao tiếp cũng như học tập và làm việc hàng ngày. Đây chính là môi trường mà mình mơ ước được trải nghiệm từ lâu, khi mình được có cơ hội sử dụng tiếng Anh liên tục từ việc giao tiếp, giải thích, thuyết trình, và nó giúp cải thiện khả năng nghe nói của mình rất nhiều.Mình cũng có những người bạn quốc tế đầu tiên, từ những nước châu Á hoặc ở lục địa khác như Nga, Đức, Ecuador,… Đây là một kỉ niệm đáng nhớ khi có thể kết bạn, đi chơi ăn uống cùng với những người bạn đó, dù đôi khi giao tiếp hơi “nhập nhằng” 1 chút (lý do chính thì là kĩ năng nghe nói của mình vẫn chưa hoàn thiện ^^).
Những người bạn ở Invisible Garden
Bên cạnh đó, mình cũng có lần đầu tiên được tham dự lễ hội lớn như Devcon, được sống trong không khí “thế giới vl” trong suốt gần 1 tuần. Ngoài ra mình cũng có lần đầu tiên được tiếp xúc và trò chuyện với những người đang làm những công việc mà mình mơ ước, và lắng nghe những lời khuyên từ họ thật sự giúp ích cho tầm nhìn và suy nghĩ của mình rất nhiều.
Ngoài ra đây cũng là lần đầu mình thử những món ăn lạ (đa phần là rất cay), có những món ngon nhưng cũng có những món khá là 3 chấm. Bên Thái Lan thì hợp pháp hóa cần sa, nên mình cũng có lần đầu mình thử món này. Thật sự mà nói thì nó không như những gì mình nghĩ vì mùi khó chịu và thật sự không mang lại cảm giác “high” một chút nào.
Món duy nhất mình không dám thử
Tóm lại thì mình cũng có khá nhiều “lần đầu tiên” ở đây, và thật tuyêt khi lần này mình có thể nắm bắt nó thật kĩ càng.
Những gì mình học được
Một lần nữa, đây là trải nghiệm vô giá với mình, vì mình học hỏi được quá nhiều thứ ở đây. Mình học được những kiến thức về Blockchain và ZKP một cách khá bài bản từ những mentor, những thứ mà trước giờ mình chỉ hay tự học một cách chắp vá ở trên mạng (vì trường của mình không có chuyên đề về phần này). Mình cũng học được kinh nghiệm từ những người đi trước, từ những người là PhD về lĩnh vực Cryptography, hoặc những người đang là Senior Engineer trong chuyên ngành này. Những lời khuyên và kinh nghiệm của họ giúp ích cho định hướng tương lai của mình bây giờ, nhất là khi mình sắp tốt nghiệp :))). Thật may lời khuyên đến rất đúng lúc, và mình hiểu được mọi lựa chọn của họ đều có mặt lợi cũng như mặt hại riêng, và bức tranh sự nghiệp cũng rõ hơn chút đối với mình rồi =)). Đùa chứ nó cũng chưa rõ hết đâu, nhiều chỗ vẫn mờ lắm nhưng ít nhất rõ một chút còn hơn không, nhỉ?
Ngoài ra, mình cũng học được cách làm viêc khá là hay ho, khi họ làm việc không giống những gì mình từng thực hiện trước đây. Họ chỉ làm 6 giờ mỗi ngày (từ 10h sáng đến 17h chiều, nghỉ 1h trưa), nhưng mình thấy họ làm việc rất tập trung, không bị sao nhãng bởi những thứ giải trí khác như mình vẫn hay bị. Điều này thât sự giúp đảm bảo năng suất và chất lượng công việc của họ. Quả thật mình vẫn chưa quen với việc làm việc cường độ cao thế (và không ngủ trưa), nên mình vẫn cảm thấy mệt mỏi trong nửa đầu buổi chiều với thời gian biểu này.
Mình cảm thấy may mắn khi những người mình quen được đều giúp mình nâng tầm nhìn và sự hiểu biết lên rất nhiều. Mình học hỏi thêm từ góc nhìn của họ, từ những thế giới quan khác lạ nhưng đầy màu sắc tươi mới, và ít nhiều nó giúp bức tranh trong đầu mình bớt bị “đen trắng” hơn. Cũng có thể vì mình là người trẻ nhất trong đó (không biết sao nhưng ai cũng cảm thấy khá bất ngờ khi mình đang là sinh viên 21 tuổi, chắc do nhìn mặt mình già…).
Những thứ cần cải thiện
Kĩ năng giao tiếp thật sự quan trọng
Nhờ có những lần như thế này, mình mới biết mình cần cải thiện những gì. Sự thật ban đầu mình khá tự tin về vốn tiếng Anh của mình, nhưng khi sang đây mới thấy trình độ của mình vẫn còn gà lắm. Mình giao tiếp ở mức tương đối, nhưng nhiều khi mình không thể nghe rõ đối phương nói gì. Nhất là những người bạn nói khá là nhanh, hoặc ngữ âm của họ hơi khó nghe chút (như người Ấn), khiến việc giao tiếp có hơi khó khăn bước đầu. Ngoài ra những session học tập, mình chỉ hiểu tầm 80% những gì họ nói, vì đơn giản vốn từ của mình cũng chưa đủ tốt, và có quá nhiều từ chuyên ngành khiến mình chưa rõ nghĩa lắm. Đây là thứ mình thật sự cần cải thiện khi về Việt Nam, và thật tuyệt khi nhận ra được điều này.
Khả năng làm việc nhóm của mình cũng khá tệ, nếu so với những người bạn khác. Họ giao tiếp và làm việc rất hiệu quả, và rất chủ động trong việc trình bày ý tưởng với mọi người. Chỉ cần tầm 5 - 10 phút, những người bạn đó hoàn toàn có thể nói ra một giải pháp với các bước rõ ràng và tóm gọn. Đây là kĩ năng rất tốt trong công việc, và mình thấy mình chưa làm được tốt nó. Để đi xa hơn, mình nghĩ mình cần luyện thành thạo điều này, và sẽ bắt đầu tập trình bày nhiều hơn bằng tiếng Việt trước, sau đó là tiếng Anh (vì bình thường trình bày bằng tiếng Việt mình cũng nói khá là khó hiểu…).
Còn nhiều thứ nữa mà mình cần cải thiện lắm, nhưng mình biết mình sẽ không quá vội, vì cái gì cũng cần thời gian để hoàn thiện mà hihi. Nhưng dù sao mình cũng thấy thật tuyệt khi tự thấy những điểm yếu của mình, và cũng có phương án cho nó.
Những người bạn mới
Điều tuyệt vời là mình quen được nhiều bạn mới, và những người giúp đỡ mình rất nhiều, cả về tư tưởng và kiến thức.
Mình xin cảm ơn đến họ trong bài viết này, và hi vọng được gặp lại những người bạn này trong tương lai gần.
Đầu tiên chắc sẽ là Dr.Guo, người hướng dẫn và thầy dạy ZKP cho mình trong suốt hơn 1 tháng ở Invisible Garden. Thầy dạy rất hay và dễ hiểu, cũng chính thầy rủ mình tham gia HackerHouse, và từ đó gặp gỡ được thêm nhiều người mạnh hơn. Thầy cũng cho mình lời khuyên từ kinh nghiệm nghiên cứu PhD của thầy, và nhiều thứ khác cũng hay ho nữa. Mình cũng được tham gia một group học tập về ZKP của thầy qua Discord, và hôm qua là hôm đầu tiên mọi người nói chuyện trên đó hihi.
Vào bar với Dr.Guo (đùa chứ đây là ở Devcon)
Gặp lại mọi người qua discord
Ngoài ra, cảm ơn đến những người anh chị Bing đẹp trai, anh trai thất lạc LongKa (0xhhh), Jeff, Dr.Shuang, Varun, Harry, Emily đã đưa ra những lời khuyên bổ ích về những hướng đi sự nghiệp cho bản thân mình. Họ đang là những người làm công việc mà mình mơ ước trong 2 - 3 năm tới, và thật sự kinh nghiệm của họ là thứ giúp ích mình rất nhiều. Bing, LongKa và Jeff rất cởi mở đưa ra cho mình góc nhìn của họ về Engineer, và còn dẫn mình đi trò chuyện với những người trình độ cao hơn nữa. Với thằng nhóc chưa biết gì như mình, thì mình rất cảm kích sự nhiệt tình giúp đỡ từ các anh, dù mới quen chưa quá lâu ^^.
Bên cạnh đó, không thể không cảm ơn đến Alok, John, Dmitry, Andy, Eric, Beng đã cùng chia sẻ với mình trong cả 6 tuần ở Invisible Garden. Mình hay trên Alok là Ashock, vì ổng học ngành Điện, còn John thì là người nước ngoài đầu tiên mình đi ăn tối cùng (không hiểu sao 2 thằng đang bàn luận về project thì thấy đói nên rủ nhau đi ăn luôn). Dmitry là người rất thân thiện và tốt bụng, cho mình ở free 5 ngày trên Bangkok luôn (vì ổng thuê nguyên 1 căn trên AirBnB). Andy, Eric và Beng là người mình trò chuyện rất nhiều, cơ bản vì vốn tiếng Anh của 4 thằng ngang nhau, nên cũng dễ nói chuyện =)).
Ngoài ra còn rất nhiều người bạn nữa ở Invisible Garden và Hacker House, nhưng mình xin phép để những bức ảnh với họ dưới đây, như một lời cảm ơn hihi.
Mình tiếc khi không thể có ảnh riêng với tất cả những người bạn, nhưng những tấm hình chung này thì vẫn rất đáng giá và chắc chắc mình sẽ giữ lại như một phần kí ức tươi đẹp trong hành trình trưởng thành của mình.
Invisible Garden, Hacker House và Devcon
Invisible Garden là pop-up city mà mình tham dự trong 6 tuần, và thật sự đây là một ngôi nhà chung của mình khi ở ChiangMai. Đó là nơi bắt đầu cho hành trình này của mình, và mình rất biết ơn về những gì mọi người cùng xây dựng ở đây. Nó cho mình cơ hội được học hỏi, giao tiếp và trao đổi trong vòng tròn rộng lớn những con người từ đa quốc gia, độ tuổi và góc nhìn với thế giới.
Team Invisible Garden
Cũng nhờ Invisible Garden mà mình có cơ hội chơi bóng và bị hành sml bởi những team khác, nhưng mà không sao mình vẫn thấy vui vì đươc cháy hết mình với anh em. Chắc mỗi lần bài hát Viva La Vida được phát lên, mình sẽ lại nhớ đến hình ảnh hơn 15 người đội mình cùng ngồi trên con xe màu đỏ, vừa hát vang ca khúc vừa nhảy sau trận đấu.
Trải nghiệm đá bóng đáng nhớ
Với Hacker House, mình tình cờ biết đến khi nó tổ chức cùng địa điểm với Invisible Garden (vì cùng nhà tài trợ là Ethereum Foundation). Đây là nơi mọi người cùng nghiên cứu, bàn luận và thuyết trình về chủ đề ZKP trong vòng 3 tuần. Mình được nghiên cứu những chủ đề mới, những gì đang thịnh hành nhất về Cryptography, cũng kết bạn và học hỏi từ nhiều nguời đi trước. Mình nhận được nhiều hơn cho đi ở đây (vì trình mình gà quá so với mọi người nên không đóng góp quá nhiều), và thật may mắn khi được tham dự nó.
Antalpha Hacker House
Cảm ơn đến Antalpha Labs, và mọi người với những bài chia sẻ thú vị. Mọi người có thể xem danh sách những bài thuyết trình tại đây (trong đó có mình nữa ^^).
Cuối cùng, Devcon, một trải nghiệm có 1-0-2 của mình. Ban đầu mình không có vé tham dự chỗ này, nhưng trong lúc ở Invisible Garden, mình có quen 1 người bạn và bạn này có cho mình vé thừa của bạn đó (cảm ơn Nathalia nhiều ạ ^^).
Thẻ Devcon này
Devcon rất lớn với quy mô quốc tế, khiến cho mình bị ngợp ở ngày đầu tiên. Rất nhiều sessions hay và bổ ích, từ 10-25 phút, và việc đi lại giữa các địa điểm tổ chức session (dù chỉ trong 1 tòa nhà duy nhất), khiến mình bị “mệt”. Rất may là đồ ăn luôn được phục vụ đầy đủ, với quá nhiều món, từ Tây, Tàu, Thái đến cả đặc sản Việt Nam như Phở và Gỏi cuốn. Mình cảm thấy tuyệt khi ở đó, dù có 3 ngày nhưng cũng đủ để mình trải nghiệm không khí lớn như vậy, và cũng rất là vui nữa (đi lễ hội mà, kk).
Tạm kết
7 tuần là khoảng thời gian không ngắn, nhưng cũng không quá dài với bản thân mình. Nó đủ để cho mình có những kỉ niệm đẹp, những người bạn mới và những bài học đắt giá. Mình sẽ vẫn giữ liên lạc với họ, và vẫn sẽ ghi nhớ mãi những kỉ niệm đẹp này. Nếu có cơ hội trong tương lai, mình rất mong được gặp lại họ, và cùng ngồi ôn lại những điều đẹp đẽ đó. Dù sao thì mình viết ra những sự việc và cảm xúc ra đây để nếu một ngày mình quên đi điều gì, thì những dòng chữ này vẫn sẽ giúp mình ghi nhớ lại.
Cảm ơn tất cả mọi người đã đọc bài viết này.
-
Cỗ máy thời gian
Cũng giống như mọi người, mình cũng từng suy nghĩ rằng nếu mình có cỗ máy thời gian, mình sẽ làm gì? Có thể mình sẽ chọn đến tương lai, xem trước những sự việc không may mắn sắp xảy ra với mình (để lập kế hoạch phòng tránh); hoặc đơn giản là xem trước kết quả sổ số và trở thành triệu phú sau 6h30. Cũng có thể mình chọn quay về quá khứ, sửa chữa những lỗi lầm mà mình đã gây ra, hoặc tránh những chuyện không vui đã xảy ra với mình và những người mình quan tâm. Nhưng mình cũng từng nghĩ, nếu tương lai mà biết trước thì không còn gì thú vị để sống tiếp cả, như kiểu xem một bộ phim dài tập khi đã biết hết kịch bản và plot twist. Cùng với đó là nếu mình chọn quay về để không mắc những sai lầm trong quá khứ, thì liệu mình có thể được như hiện tại ??? Thế là tự nhiên suy nghĩ việc sử dụng cỗ máy thời gian với mình trở nên hơi “kém thú vị”.
Nhưng thật lòng mà nói, mình muốn sử dụng cỗ máy thời gian, đưa ý thức của mình trở về quá khứ. Mình sẽ không né tránh những lỗi lầm mà mình đã mắc phải, mà chỉ đơn giản là có những sự việc và cảm giác mình muốn trải qua thêm lần thứ hai.
Những kí ức đẹp
Nếu để chọn, tất nhiên mình sẽ chọn trải qua những kí ức đẹp từ khi mình còn nhỏ. Mình thích cảm giác được ngồi sau xe của bố mỗi khi đi học về. Những hôm trời mưa, mình ngồi ở yên sau của chiếc xe đạp mini Nhật cũ màu xanh đã hoen rỉ, chùm tấm áo mưa bằng bạt qua đầu, và ôm chặt vào eo của bố. Mình nhắm chặt mắt lại, dựa vào hướng xe và đoán xem mình đang đi đến đoạn nào trên đường về nhà để rồi lâu lâu lại chấp nhận ướt đầu một chút, mở áo mưa ra xem mình đoán đúng hay sai ^^. Mình thích cảm giác đó, cái cảm giác đi trong tiết trời mưa hơi hơi lạnh, trên con đường trơn trượt ẩm ướt đầy những vũng nước to, mùi hơi nước kéo theo cả mùi đất và cỏ dại ở một bên đường và cả tiếng lộp độp mỏng nhẹ của những hạt mưa rơi trên tấm áo mưa bạt tím than. Lúc đó trong chiếc cặp của mình có thể là quyển truyện doremon mới tinh vừa mượn được của bạn, hoặc cũng là hình bông hoa được làm bằng giấy thủ công sắc màu trong giờ học kĩ thuật, hoặc là một món đồ chơi robot xếp hình bằng nhựa nào đó. Mình không chắc, nhưng mình biết những món đồ đó đều mang lại cho mình sự háo hức và niềm vui rạo rực sau mỗi buổi học.
Mình muốn quay lại những ngày đầu tiên mình vào cấp 3. Lúc đó mình chỉ quen 1 người duy nhất là Đạt, học với mình từ những ngày cấp 2, còn lại mọi người đều khá xa lạ với mình. Cái cảm xúc duy nhất mình nghĩ lúc đó chỉ là sự nhút nhát và khá là mặc cảm, đơn giản vì mình tự ti về hoàn cảnh, với một học sinh từ huyện lẻ lên thành phố học, và gia đình cũng không có điều kiện giống các bạn cùng lớp. Thành ra mình rất ngại giao tiếp với những bạn khác, chỉ mở miệng khi trả lời câu hỏi hoặc xung phong lên giải bài tập từ thầy. Idk why nhưng mà mọi người lúc đó kiểu nhận xét là mình cool ngầu, lạnh lùng và ít nói. Mình thì nghĩ lại: “hmm không phải thế, tôi nói nhiều lắm nhưng tội ngại á,..”. Nhưng thôi đã chót rồi, cứ từ từ mở lòng cũng được. Thế là chắc cả kì I năm lớp 10 mình ít nói hẳn, hoặc cố tỏ ra lạnh lùng như thế. Dù tỏ ra như thế không được lâu nhưng mình thấy cái cảm giác tỏ ra ít nói đó cũng hay hay, nhất là khi chưa ai biết gì về mình, và cho mình cái cảm giác như đang trở thành một người khác. Dù bây giờ nghĩ lại thấy lúc đó nhìn mình tấu hài quá, nhưng mà nếu được quay lại mình vẫn sẽ thử như thế, không biết sẽ kéo dài thêm được bao lâu, nhỉ :))))
Có những lần đầu tiên
Tồn tại trong tiềm thức của mình là những cảm giác mơ hồ về những lần đầu tiên, những lần mà mình chưa đủ lớn để nắm chặt lấy nó thật kĩ. Đó là lần đầu tiên mình cảm thấy thích một người, và người đó cũng thích lại mình. Ngày cuối cùng của cấp 2, mình nhận được bức thư phản hồi lại lời tỏ tình của mình từ em. Phong thư được vẽ bằng hình trái tim màu đỏ, chắc là em vẽ, với dòng chữ đơn giản là gửi anh Việt Anh:??. Trong thư chỉ là một tờ giấy A4, và những dòng cảm xúc của em ấy gửi cho mình. Giá mà mình còn nhớ được tất cả những gì mà em đã viết trong đó, hoặc còn giữ lại bức thư đó. Mình muốn quay lại lúc đó, chỉ để trải qua cảm giác đó lần nữa, cảm giác nhận ra người mình thích cũng đang trân trọng mình, và cũng để nhận ra sự thỏa mãn khi công sức theo đuổi một người cũng được trả lại xứng đáng.
Mình cũng muốn quay lại lần đầu tiên mình gặp bạn, bạn là người bạn thân nhất của mình. Mình và bạn học chung với nhau từ mẫu giáo, rồi bắt đầu thân nhau từ lớp 2 đến bây giờ. Thật sự, mình cũng không rõ mình và bạn bắt đầu thân thiết với nhau từ lúc nào, nhưng đã cùng nhau đi qua bao nhiêu cảm xúc, chia sẻ nhiều niềm vui buồn, và cả những lần bất đồng. Những gì mình nhớ xa nhất là những lần tan học năm lớp 2, bạn luôn rủ mình về nhà bạn chơi. Lúc đó 2 thằng cùng đi bộ, nhưng vì mình sợ bị lạc nên chỉ đi đến nửa đường nhà bạn là mình lại quay về ^^. Nhưng mình muốn quay lại lần đầu mình gặp bạn, vì mình chỉ tò mò xem lúc đó tại sao chúng ta quen nhau, và chơi với nhau như thế nào. Quả thật đến giờ mình không thể nhớ nổi, và nếu bạn còn nhớ thì sắp tới kể cho mình nghe nhé Vĩ ^^.
Những kí ức không đẹp
Yeah phải đấy, mình cũng muốn quay lại để trải qua những kí ức không đẹp này, vì đơn giản những thứ đó tạo ra mình, và mình trải qua nó chỉ để nhận ra bản thân mình bây giờ còn đang sống đúng với những gì mình suy nghĩ lúc đó không.
Năm đó mình học lớp 7, khi mùa đông đã về được gần một nửa, nhiều bạn trong lớp đã có những chiếc áo ấm mới để mặc. Mình cũng muốn như thế, nhưng nhà mình khi đó tiền ăn học của 2 chị em mình chưa chắc đã có đủ, nói gì đến việc mua đồ mới. Nhưng với tâm lý của một đứa trẻ, mình đâu nhận ra điều đó. Mình cũng đòi mẹ mua cho bằng được những chiếc áo mới, mà đâu biết được mẹ có bao nhiêu thứ phải lo cho mình và chị. Mình không nhớ kĩ mình đòi mẹ được mấy tuần, nhưng cuối cùng mẹ quyết định dẫn mình đi xin quần áo từ những người bạn bè và họ hàng. Tối hôm đó, mẹ và mình trên chiếc xe đạp đi từng nhà, và hỏi xin quần áo cũ của những người quen có con trai lớn tuổi hơn mình. Nhưng những đồ quần áo mà mình và mẹ nhận được cũng không vừa vặn là mấy. Hơn nửa trong số đó là rộng và dài hơn người mình rất nhiều (người mình ngày trước rất còi và gầy), và gần như không thể mặc được. Mình cũng chỉ biết ôm đồ về, dù trong lòng vẫn buồn lắm vì mình không thích những cái áo đó nhưng mẹ bảo là mình là người đi xin, người ta cho là quý rồi, cũng không nên đòi hỏi gì đó quá nhiều. Không biết lúc đó ngồi sau yên xe mình nghĩ gì nữa, nhưng mình đoán chắc sẽ không có gì tốt đẹp; nhưng mình vẫn muốn quay lại, chỉ để hiểu rõ hơn những gì mình nhận được ngày hôm đó, và nó tác động như thế nào đến bản thân mình bây giờ.
Tạm kết
Thật ra còn rất nhiều những khoảnh khắc mình muốn quay trở lại lần 2, cả vui và cả buồn. Nhưng mình sẽ để rành nó cho bản thân mình, vì mình nghĩ ai cũng có những thứ cảm xúc chưa sẵn sàng để chia sẻ. Dù sao cũng cảm ơn đến những sự việc và kí ức đó, giúp tạo nên bản thân mình bây giờ. Một chút tâm sự ngắn của buổi chiều chủ nhật lười biếng bên Thái, cảm ơn mọi người vì đã đọc ^^.
-
Midnight Sun
Có thể mọi người nên đọc phần Lời kết trước để tránh bị spoil ạ.
Mỗi ngày, anh mơ về những hoài niệm đẹp đẽ mà ta đã cùng nhau trải qua, và thức giấc với nỗi nhớ về em không dứt nổi. Anh bật những bài nhạc mà em đã thu âm, xem lại những video mà anh đã ghi lại khi nghe em hát dưới ánh đèn đường mờ. Cô gái với thân hình mỏng manh nhưng quyến rũ, ôm chiếc guitar lớn của người mẹ quá cố để lại, hát những bài em đã viết trong suốt những năm tuổi trẻ, khi bên cạnh là những người xa lạ đang dừng lại và trao cho em những tiếng vỗ tay khích lệ. Anh luôn dừng video này ở khoảnh khắc mà em nhìn vào anh, mỉm cười kèm theo một chiếc hôn gió đầy tinh nghịch. Và rồi, anh lại làm điều mà đã từ lâu trở thành một thói quen, mở nhật kí của em và đọc những dòng tâm sự trên đó. Anh lại được chìm vào trong tâm trí của em, được cùng em trải qua những vui buồn lẫn lộn trong suốt dòng thời gian tuổi trẻ. Có những câu chuyện anh đã thuộc lòng, có những dòng cảm xúc khiến anh rơi nước mắt, và như mọi ngày, anh vẫn nghĩ về em.
Gặp nhau
Đã 3 tháng trôi qua kể từ ngày anh chuyển đến Berkeley, ngôi trường mà anh luôn ao ước khi anh chỉ mới 15 tuổi. Mọi chuyện với anh đều tốt, anh đang có một tương lai tương sáng với những cơ hội mà anh được trao tặng từ nơi này. Nhưng anh biết rằng, anh có thể không với tới những điều này, nếu như lúc đó anh không gặp được em. Em là người đã cho anh niềm tin và khát vọng, là ánh sáng giúp anh tìm thấy được bản ngã của chính mình. Anh không nghĩ rằng cô gái mà anh gặp đang ngồi hát trước cửa ga tàu vào đêm đó sẽ thay đổi cả cuộc đời của mình như vậy.
Ngày đó, anh đã bị mê mẩn trước giọng hát và tiếng đàn của em, khi em cất giọng ngay khi chuyến tàu đêm cuối cùng về thị trấn tới đích. Có những đồng xu lẻ được các hành khách đưa tặng vào trong hộp đàn, tô điểm ở giữa là một gói kẹo M&M màu vàng đậm, chắc là của một cô bé nào đó gửi tặng. Thật lạ, thị trấn này nhỏ thế, nhưng anh chưa từng gặp em bao giờ trong suốt 18 năm ở đây, và cũng thật lạ khi em nhận lời làm quen của anh.
Sau đó là những đêm đi chơi cùng nhau, ta lái xe đi hết 1 vòng quanh cái thị trấn này, những địa điểm thường ngày anh xem là tẻ nhạt, vì em mà khoác lên gam màu tươi mới, tràn đầy sức sống. Nhưng anh lúc đó vẫn chưa biết sự thật mà em đang che giấu, vẫn thắc mắc tại sao em và anh chỉ có thể gặp nhau vào buổi tối, khi mặt trời đã khất dưới đỉnh đồi sau lưng. Và anh liệu có ích kỉ không, khi không muốn tình yêu của chúng ta mãi nằm trong đêm đen, mặc dù trong những buổi hẹn đó, màn đêm bao vây anh như biến mất khi có một mặt trời soi rọi ?
Chia xa
Anh có lẽ sẽ chẳng thể đưa ra được câu trả lời cho câu hỏi ở trên, và anh nghĩ rằng em cũng thế. Chúng ta ở cạnh nhau trong 1 tháng đầy ắp hạnh phúc nhưng ngắn ngủi. Một tháng để em cho anh niềm tin quay trở lại với đam mê bơi lội sau chấn thương nặng đó, một tháng để anh cùng em đến những nơi mà em chưa từng đặt chân, một tháng để anh nhận ra cuộc đời này bất công như thế nào. Nhưng tại sao, tại sao em không nói với anh về bệnh XP của em sớm hơn, tại sao em không nói trước rằng tiếp xúc trực tiếp với ánh nắng mặt trời sẽ làm cạn kiệt sức khỏe của em, tại sao em lại làm như thế với anh? Để rồi buổi đêm mà chúng ta gọi là đẹp nhất trong cuộc đời đó, lại kết thúc khi bình minh đang ló rạng, và dù anh đã lái xe nhanh hết mức thể, em vẫn phải chịu những đau đớn mà những tia nắng đáng chết đó mang lại. Ngang trái thay, ngày mà em tận hưởng được những gì em mong muốn được trải nghiệm, cũng chính là ngày mà căn bệnh quái ác đó bắt đầu tiến triển, khiến thời gian của em không còn nhiều nữa.
Đó hoàn toàn là lỗi của anh, dù em đã bảo rằng không phải, và nói với anh rằng đó trái lại là những gì em mong muốn, muốn được ngắm nhìn thế giới như những người bình thường, chứ không phải qua căn gác ngăn cách bởi những cửa sổ chống tia cực tím. Em cũng nói yêu anh, và bảo với anh rằng điều đó làm em cảm thấy rất hạnh phúc. Anh chỉ trách bản thân không đủ tinh tế, để rồi khiến căn bệnh đó hành hạ em trong suốt những ngày cuối đời còn lại. Anh tin rằng, nếu như anh không gặp em khi đó, em sẽ tiếp tục cuộc sống lâu hơn và liệu rằng vào một thời điểm nào đó sau này, chúng ta vẫn sẽ gặp lại nhau theo một cách nào đó khác ?
Hiện tại
Có quá nhiều câu hỏi kèm theo những hối tiếc ở trong đầu anh mỗi khi anh nhớ về em. Anh không biết liệu mình có thể vượt qua những chuyện đó, nhưng anh vẫn sẽ tiếp tục sống theo những gì mà những vì sao chỉ lối cho anh, bởi vì đó là những gì em nói muốn được nhìn thấy ở anh sau này.
Hôm nay, radio lại phát lên giai điệu của “Charlie’s Song”, bài hát mà em đã viết tặng cho anh:
I wish, I could be where you are
They say don't you ever give up
It's so hard to be something when you're not
But I have walked alone
With the stars in the moonlit night
I have walked alone
No one by my side
Now I walk with you
With my head held high
In the darkest sky
I feel so alive
Một lần nữa, anh được nghe lại giọng em hát. Chỉ tiếc là lần này, mình không còn đứng cùng nhau.
Love you, my midnight sun, Katie Price.
Lời kết
Ở trên là một Fic mà mình đặt góc nhìn của bản thân vào nhân vật nam chính trong bộ phim Midnight Sun, một bộ phim rất hay và cảm động. Nếu mọi người chưa xem phim này thì mình rất mong mọi người có thể xem thử ạ :)).
Cảm ơn mọi người đã đọc bài viết này của mình.
-
Mất động lực
Mình đang muốn gì ?
Mình cũng chẳng biết nữa. Suốt 1 tháng trở lại đây, mình không muốn dồn lực để làm bất cứ thứ gì cả. Công việc thì trì trệ, những ngày dài trên công ty cứ như lặp đi lặp lại không có điểm ngừng. Việc học cũng thế, mình cũng chả thèm tìm hiểu một số các khóa học online như trước đó mình vẫn hay làm. Mấy lần đi chơi cùng hội bạn, mình cũng không muốn đi, đơn giản vì mình nghĩ nếu đi thì mình sẽ cảm thấy chán ???. Chắc điều duy nhất mình duy trì được là đi tập gym, nhưng cũng chỉ đi để duy trì sức khỏe và “chém gió” với mấy người anh em ở đó là chính.
Haizz, tệ thật. Mình không chắc đây có phải là lần đầu tiên mình gặp phải tình trạng này không nhưng chắc chắn đây là lần kéo dài nhất. Mình không chắc nếu mình không tìm ra được động lực và niềm cảm hứng cho bản thân, thì mình sẽ trở nên khó hiểu và suy hơn bây giờ bao nhiêu lần nữa.
Mình chả muốn gì ?
Câu trả lời là ngược lại, mình muốn rất nhiều thứ mới đúng. Mình muốn có nhiều tiền, có nhiều trải nghiệm, được ra nước ngoài học tập và làm việc trong vài năm, được mở mang trí tưởng tượng và tầm nhìn của mình, được tiếp xúc với những người tốt và tài giỏi,… Mình từng ôm tất cả tham vọng đó trong người, và nó khiến mình có động lực “cày” những kiến thức mà mình cho hữu ích trên con đường đạt đến những tham vọng đó. Dù vậy, càng đi xa, mình càng nhận ra mình chưa đủ bản lĩnh để đạt hết tất cả những thứ đó trong thời gian ngắn, mà phải từng bước nhỏ một, nhỏ đến mức mình dường như không cảm nhận được mình đang tiến lên hay lùi lại. Quả thật, lòng tham của mình mang lại cho mình nhiều bài học, và rất nhiều trong số đó, mình chẳng thể học nổi.
Mất động lực
Thật sự, những tham vọng của mình sẽ không mất đi, mà nó chỉ nên được sắp xếp ưu tiên, chờ một ngày đến lượt để thỏa mãn. Tệ rằng, mình không giỏi sắp xếp, và mình cũng không biết nên đặt mục tiêu nào lên trước và để ở sau. Rồi điều gì đến cũng sẽ đến, mình bị phân tâm vào quá nhiều thứ, mình muốn làm quá nhiều thứ, và nó phản tác dụng, dẫn đến mình chả biết làm điều gì trước. Mỗi lần bắt đầu làm việc gì đó, mình lại tốn thời gian cân đo đong đếm xem làm như thế này có hợp lý hơn hay không, dần dần khiến mình mang cảm giác “ngại làm”. Đó cũng chính là lý do khiến mình mất hết động lực làm việc và học tập.
Mình dần cảm thấy chán trước công việc ở trên công ty, dù trước đó mình từng rất yêu thích và tin tưởng nó sẽ giúp mình mở ra những cánh cửa tương lai sáng lạn và đầy hứa hẹn. Giờ đây, mình ngại việc phải đi làm, lên công ty gặp mọi người, vì đơn giản mình thấy mình đang tự tách bản thân ra khỏi luồng hoạt động chung, không còn muốn cống hiến nữa. Không phải là mình cố chấp hoặc cứng đầu, mình cũng đã nhờ sự giúp đỡ để giúp mình kiên trì hơn với những gì mình đang làm, nhưng có lẽ điều đó chưa hiểu quả lắm, hihi.
Những sở thích khác của mình như chơi đàn, sáng tác, đọc sách,… cũng không khiến mình cảm thấy vui hơn. Ngược lại, nó còn khiến mình cảm thấy tệ hơn về bản thân, vì mình làm những sở thích này không hay như mình muốn. Haizz, chả hiểu nữa, có lẽ đầu óc mình bị ngu thật gòi huhu.
Mình sẽ làm gì
Và nếu một ngày động lực tan biến và không còn viết ra câu
Thì tao sẽ đánh mất hết tất cả lần nữa để xây lại từ đầu.
"Welcome to the show - Bray"
Mình vô tình nghe được câu này, và mình nhìn lại bản thân mình. Mình không tự nhận là mình có tất cả, nhưng mình thấy mình đang có được những thành tựu mà 2 năm trước mình từng nghĩ. Có một công việc lương ổn, làm việc mình thích, có thời gian để tìm hiểu, khám phá bản thân và thế giới, có những người bạn mang lại sự tích cực thoải mái. Nhưng liệu, mình có dám bỏ đi tất cả, bắt đầu lại từ vị trí thấp hơn, chỉ để tìm lại động lực cố gắng ?
I dont know man. Không biết nữa, tương lai là một điều gì đó mình không dám chắc. Mình không rõ rằng mình sẽ tự tin, đủ mạnh mẽ và bản lĩnh để vượt qua, hoặc sẽ tự chìm vào trong hố sâu thất bại và tiêu cực thêm một lần nữa. Và, mình có dám hi vọng về một viễn cảnh tốt đẹp hơn, nếu mình bắt đầu từ vị trí thấp hơn bây giờ ? Well, I still dont know.
Nhưng, nếu một ngày, mọi người thấy mình nghỉ việc, nhốt mình trong phòng, không còn đi tập gym hay chơi cùng lũ bạn, cũng không tương tác gì nhiều trên mạng xã hội, thì chắc mọi người cũng sẽ không quá bất ngờ. Mình tin lúc đó, mình biết mình đang làm gì, mình biết cách để tìm lại được động lực một lần nữa, và để xây lại mọi thứ, “từ đầu”.
Welcome, to the show.
-
Có phải tôi đang sống quá nhanh?
Trong mấy ngày gần đây, mình đang bị một câu hỏi khá là “khó chịu” đeo bám, đó chính là “Liệu mình đang sống quá vội hay không ?”. Thật sự, mình chưa có đáp án cho câu hỏi này, nhưng mình cũng có những suy nghĩ về nó. Thật sự mình sẽ viết ra một chút xem sao, nhỉ ?
Tại sao nó xuất hiện ?
Chuyện là vào một ngày chủ nhật đẹp trời, mình có nghe qua bài Vô Điều Kiện của Obito, trong đó có 2 câu là:
“Tại vì tao lớn quá nhanh
Hay tâm hồn đang héo mòn dần ?”
Ừ, mình cũng có suy nghĩ một chút, dạo này tâm hồn của mình cũng không còn mơ mộng, thoải mái như những tháng về trước nữa. Nói thật ra, mình không còn cảm nhận được nhiều từ những thứ xung quanh như con người, bầu trời, những câu chuyện, những bộ phim tình cảm… Thứ duy nhất giữ cho đầu óc mình thoải mãi có lẽ là âm nhạc, nhưng khác với những lần trước, gần đây mình không còn hay tưởng tượng hoặc mơ mộng ra hình ảnh và câu truyện mà những bài hát đó mang lại. Những ngày trước, khi đặt đầu xuống gối, mình có xu hướng suy nghĩ ra những viễn cảnh kiểu tương lai hoặc những hình ảnh hài hước mà mình đã gặp trong ngày hoặc mấy cái kí ức suy đét hihi. Nhưng gần đây, mình quá mệt đến nỗi đặt lưng xuống là ngủ, hoặc sẽ lướt Facebook hoặc Instagram trong vô thức, khá tệ. Có lẽ mình đã ít dành thời gian chăm sóc cho tâm hồn này, và nó cũng đang “héo mòn” dần, dẫn đến nhiều tác hại đến não mình :(((.
Lý do thì chắc tại gần đây mình bắt đầu dành nhiều thời gian cho công việc và học tập. Việc đi làm fulltime cũng ảnh hưởng đến thời gian biểu của mình nhiều. Mình gần như chỉ được rảnh chủ nhật (có thể không), vì lịch học và đi làm, và vào chủ nhật mình cũng (hoặc xem như bị ám ảnh) muốn học hoặc tìm hiểu thêm những kiến thức nào đó,… Hệ quả, mình không dành được thời gian quan tâm nhiều lắm để gặp bạn bè xung quanh, gia đình. Mình chỉ quan tâm xem hôm nay mình làm được gì, và mai sẽ làm gì hoặc học gì, và cố gắng cải thiện theo từng ngày. Điều đó khiến mình thấy mệt mỏi, burned out sau mỗi tuần, dẫn đến kết quả giảm đi, nhưng vì đó mà lại càng cố để làm được nhiều hơn trong tuần tiếp theo,… Vòng lặp mẹ rồi :)))
À thì, có thể mọi người sẽ hỏi là tại sao mình lại cố thế, mình có thể nghỉ ngơi vài buổi, chơi game giải trí, xem phim cà phê với bạn, hoặc ra công viên chạy vài vòng mà. Tất nhiên, mình cũng muốn thế, nhưng mình có những lý do để không làm (hoặc chưa làm) :))
23 tuổi như là 232 tuổi
Mình mượn câu hát trong bài 232 tuổi, nhưng nó cũng đúng với mình dù mình mới 21 hihi. Mình hơi nghiện sự cố gắng và theo đuổi 1 cái gì đó đến cùng, và với công việc cũng thế. Mình đặt ra những mục tiêu khá cao (có lẽ cao hơn so với sức mình hiện tại), và việc cố gắng đó giúp mình gần mới mục tiêu hơn. Lý do thì mình thấy mình đang già đi :>))). Mình gặp nhiều người giỏi hơn mình (trong đó có nhiều người trẻ hơn), và mỗi lần gặp như thế mình thấy bị thụt lùi đi. Mình thấy mình “già” đi trong cái lĩnh vực của mình, và mình cũng thèm muốn sự thành công, nên càng tập trung để có được càng sớm càng tốt,… Khá là “ngựa non háu đá”, nhỉ :))
Ok, nhưng ngược lại, nếu mình không cố gắng mà cứ chill chill, từ từ thì mình sẽ nghĩ gì :? Đó là cảm giác “không an toàn” :)). Nếu bạn biết đến các game bắn súng như PUBG hoặc Lửa chùa Fi Fai, mình sẽ xem như thời gian là cái vòng bo đang thu dần. Mình nếu ở ngoài vòng bo, tức là không nỗ lực nhiều so với tốc độ thời gian trôi, thì dần dần sẽ bị mất máu, và ngỏm :))). Nhưng nếu mình cố gắng, chạy vào trong trước khi vòng bo thu, mình sẽ đến vùng an toàn :)). So sánh hơi nôm na, nhưng thật sự thì mình sợ cảm giác không an toàn, hoặc rộng hơn là cảm giác bị bỏ lại phía sau, hoặc lớn hơn là bị thất bại. I dont know but I always feel like this everytime. Fck it.
Muốn mạo hiểm, nhưng lại sợ sự không an toàn ?
Đúng vậy, mình đang gặp phải cái nghịch lý này. Mình sẵn sàng mạo hiểm với ngành mình đang chọn, nhưng càng vào sâu lại càng sợ nó không an toàn. Khá là tệ. Mình không biết mình đang đi đúng hay không, hay nếu đi con đường khác giống nhiều người thì mình sẽ cảm thấy an tâm hơn, dù việc tiến đến mục tiêu của mình sẽ xa và lâu hơn? Tự nhiên nó là vòng lặp trong suy nghĩ, và việc cố gắng của mình chỉ đang chạy xung quanh cái nghịch lý này, đến khi nào đủ nhanh để phá vỡ 1 trong 2, (hoặc có thể là không, mình kiệt sức và out :v).
Sống chậm thôi
Dù sao thì, mình cần điều chỉnh từ trong suy nghĩ, một cách từ từ, và sống chậm lại. Mình sẽ dành thời gian cho những thứ raw hơn, ít nhất là bắt đầu với những thứ mà mình đã từng làm trước đây. Dạo gần đây mình có đi tập gym, không biết đó có phải là việc tốt hay xấu với tâm hồn này nữa, nhưng mà khá là khỏe nên cũng vui hihi.
À tuần trước, mình có tình cờ thấy con cô giáo dạy lớp 1 của mình. Ngày xưa mình hay chơi với bạn ấy, nhưng lâu dần cũng không gặp nên mình cũng không nhớ rõ mặt nên cũng không tiện nói chuyện. Lúc về thì mình cũng thử nhắn tin hỏi, và bạn cũng bảo là sợ mình không nhớ bạn là ai nên cũng không gọi ;)). Bạn bảo cô vẫn hay kiểu hỏi han mình, và cũng khen mình ngoan và học giỏi, hihi. Tự nhiên lúc đó mình cũng vui vì vẫn được một vài người quen đã lâu nhớ đến, và cảm giác đó như kiểu 1 dòng nước nhỏ chảy qua con sông tâm hồn cằn cỗi này vậy :))). Đó cũng là một lời nhắc để mình nhận ra xung quanh còn nhiều thứ đẹp đẽ đáng chân trọng và tận hưởng, từ đó làm động lực cho mình chậm lại, hihi.
Btw, cảm ơn mọi người đã đọc bài tâm sự viết cũng khá nhanh này của mình :)) Mong sau này sống chậm lại thì vẫn viết blog nhanh như thế, hehe.
-
My private distributed storage.
Intro
Last semester, I studied System Administration subject and worked on a project about Ethereum applications. Specifically, my topic involved using Ethereum Private Blockchain as a distributed storage system. I found this quite challenging initially because I knew nothing about distributed storage or how to build DApps on Ethereum. I asked my teacher for help, and he suggested some keywords like Geth and IPFS. I then researched these topics extensively, experimented, and ultimately earned an A+ score for my project. I believe it’s worth sharing my experience with everyone who is interested. So, let’s dive into it!
This post does not explain in detail what Geth and IPFS are. Instead, I will outline the structure of my project and the way I implemented it.
My repository is here. It includes the set up tutorial, so I will not mention it in this post. I suggest reading the tutorial simultaneously with reviewing the code.
Geth and Ethereum Private Blockchain
Geth is an Ethereum client written in Go. Running Geth transforms a computer into an Ethereum node. Since I only have one computer, I decided to create multiple nodes using Docker, as I wanted to learn it. I set up three Ethereum nodes using Geth. In order to make my network private, I created a bootstrap node. The bootstrap node is a normal node that is designated to be the entry point that other nodes use to join the network.
So, I have 4 nodes in my private network. To start my private blockchain with these nodes, I needed to configure my chain a little bit. First, I created a local chain with a unique chainId, which Ethereum supports. I also configured some features for my private chain such as the gas limit and consensus protocol,…. Finally, I used Docker to run all the nodes with the set up above to create my private blockchain ^^. You can read my setup in Dockerfile and docker-compose.yml.
Actually, I primarily followed this tutorial from Geth , but I ran all the nodes in Docker.
To test my private blockchain, I created accounts for each node and made some transactions:
eth.sendTransaction({to: "0xb166b7aaed24a12b3dd5dfa668ba3b9d10b1950d", from: eth.accounts[0], value: 25000})
Here is the demo:
IPFS
IPFS is a distributed file system in a peer-to-peer (P2P) network architecture. The machines participating in the system can store and upload data without going through a server. When a file is added to IPFS, it is split into smaller blocks. Each block is hashed using a cryptographic hash function, producing a unique identifier (hash) for each block. This hash is returned to the user, who can then retrieve their file using this hash.
I created two nodes, each running IPFS via Docker to participate in my distributed system. They share the same SWARM key to join the same network and communicate with each other.
To run IPFS on the two Docker nodes, I added this image to them and copied the SWARM key:
FROM ipfs/go-ipfs:latest
COPY swarm.key /swarm.key
Here is how I set up and use my private IPFS:
Combine
Now it’s time to combine my private blockchain and IPFS. Users can use my project to upload pictures into distributed storage.
Here is the structure for my project:
There are 4 components:
Frontend: Where users interact with my system.
Backend: Handle request from user via the frontend.
IPFS: My distributed storage, consisting of 2 nodes
Private Ethereum Network: My private network, consisting of 3 nodes.
How it works
First, let’s look at the uploading process:
The user uploads a file with the corresponding name to our system via the frontend. The file and name are then sent to the backend. The backend uploads the file to the private IPFS and receives a hash. Next, this hash is stored in the private Ethereum network by invoking smartcontract via a transaction, which also indicates whether the file was stored successfully.
Now, let’s dive into the downloading process:
When a user requests his files via the frontend, the request is sent to the backend. The backend retrieves the hash file from the private Ethereum network by invoking the smart contract. Then, the frontend receives the hash and uses it to get the file from the private IPFS. Finally, the file is sent back to the user.
SmartContract
Above is the basic workflow of my project. To store and retrieve the file hash from the network, I wrote a smart contract
with two functions: one for storing the hash and one for retrieving it. I used Hardhat to deploy the contract on Ethereum.
Here is the contract and the setup of my project:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
contract Store {
struct File {
string filename;
string cid;
}
mapping(address => File[]) public userFiles;
function storeFile(string memory _filename, string memory _cid) public {
File[] storage files = userFiles[msg.sender];
files.push(File(_filename, _cid));
}
function getUserFiles() public view returns (File[] memory) {
return userFiles[msg.sender];
}
}
# init hardhat
npx hardhat init
# select: Create an empty hardhat.config.js
# compile smart contract
npx hardhat compile
# deploy smart contract
npx hardhat ignition deploy ./ignition/modules/Store.js --network localhost
I recommend following the tutorial of HardHat here. I found HardHat quite user-friendly for beginners like me, and it took only two days to deploy everything. Since I coded the backend in Javascript, I needed to import ethers library to interact with the Ethereum blockchain.
Finally, let’s see how my project performs:
End
After this post, I hope you understand the architecture of my project, and this post will help you in some ways. You can find the full demo video and slide in Vietnamese here:
Slide
Video
If you have any questions or need clarification, feel free to comment on this post. Additionally, I encourage you to contribute to the project by creating issues or making pull requests on the repository.
-
Tình yêu và những sự hối tiếc
Well, mình không nghĩ mình sẽ viết blog về chủ đề tình yêu của bản thân, bởi vì tình yêu trong những trải nghiệm của mình có vẻ khá là kì lạ. Nhưng mà ai biết được, vào một sáng sớm Hà Nội mưa rả ríc thế này, sau một giấc mơ mơ hồ, mình lại có cảm hứng để viết ra một chút, hihi.
Tình yêu từ bản thân mình
Dù sao thì, mình mới 21 tuổi, và trải nghiệm yêu đương của mình cũng không được phong phú lắm. Nói hoa mĩ là thế, chứ thật ra mình chưa bắt đầu 1 mối tình nào nghiêm túc cả. Những kí ức của mình về tình yêu chỉ là đơn giản những lần yêu đơn phương hoặc một vài giây phút mập mờ nhỏ bé. Mình không biết cách để tiếp tục những cảm xúc đó, hoặc đơn giản mình chưa học được cách đón nhận tình yêu từ người khác. Thế nên mình nhiều lần đã chọn cách né tránh, hoặc chạy chốn khi nhận ra những người mình đang thích có vẻ như cũng đã bật đèn xanh cho mình. Nghĩ lại thấy mình tệ thật.
Hiển nhiên, mình cũng từng yêu đơn phương, một mình, và không dám thổ lộ. Lạ thay, mình lại có vẻ hứng thú với cảm giác theo đuổi một người, nghĩ về họ, mơ tưởng về khoảng thời gian tốt đẹp của mình với họ trong tâm trí hơn là việc thực hiện điều đó… Nhiều lúc không hiểu tại sao mình lại làm thế, liệu mình có bị biến thái nhân cách hay tâm lí mình nhát gái hay không ???
Mình cũng đã từng phạm những sai lầm, dẫn đến mất đi những mối quan hệ có vẻ như đang tiến triển rất tốt. Lẽ ra, mình nên suy nghĩ kĩ hơn, trưởng thành hơn trong cách nhìn nhận thế giới xung quanh, hoặc chỉ đơn giản, mình nên… tốt hơn. Bởi lẽ, không như những tình yêu đơn phương, mình cảm thấy có chút gì đó hối tiếc và tự ti khi đắm chìm vào trong kí ức này, hoặc chỉ đơn giản là mơ về nó. Có lẽ mình cần học cách đối mặt với nó trong suốt cuộc đời, hoặc cho đến khi tâm hồn của mình được chữa lành bằng những kí ức tươi đẹp hơn.
Hối tiếc của tuổi trẻ
Những sai lầm của mình khá là… ngu. Nhưng sai lầm này có lẽ là tệ nhất mà mình từng mắc phải.
Mình từng vô cớ unfriend bạn, một người mình rất thích, dù không hiểu tại sao lại làm như vậy. Trước đó, mình và bạn có học chung với nhau một năm cấp 2. Mối quan hệ lúc đó chỉ đơn giản là bạn bè ngô nghê như những người khác. Rồi khi bạn chuyển trường, mình vẫn còn liên lạc với bạn qua Facebook (thật may lúc đó mình và bạn dùng Facebook sớm như zzz), cũng chia sẻ những câu chuyện khá là trẻ con khác. Mình kể về những người học cùng lớp cấp 2 đó giờ thay đổi ra sao, hay những thay đổi trong chiều cao và ngoại hình của họ, đôi khi khiến bạn khó hiểu tại sao họ lại cao nhanh thế, cao hơn cả bạn nữa. Bạn cũng kể về những lần nghịch dại ở nhà ông bà, bạn vô tình làm cháy chiếc bóng bay, suýt làm cháy nhà. Bạn cũng kể về những cảm xúc ở môi trường mới, hoặc về vài chuyện mà mình cũng không nhớ nữa. Thật tiếc khi những tin nhắn đó không còn :(.
Bẵng đi một thời gian, khi thi vào năm cấp 3, mình vô tình gặp bạn ở cổng trường. Well, khá là trùng hợp lẫn khó tả, dưới cái nắng chói chang mùa hạ, mình không nghĩ dạo này bạn thay đổi nhiều như thế. Một vài câu chuyện, và chúng mình add lại acc facebook nhau, vì cơ bản account cũ của mình đã mất. Không hiểu tại sao, tin nhắn đầu tiên của mình cho bạn lúc đó, lại là “Miss U”.
Về nhà, mình cùng bạn hỏi han nhau xem kì thi lần này thế nào, với những hi vọng về việc sẽ lại học cùng một trường lần nữa. Nhưng thật tiếc, mình và bạn vẫn học khác trường. Bạn gửi cho mình 1 tin nhắn khiến mình lúc đó ngây thơ vừa nhìn vào màn hình, vừa cười trong vô thức: “Miss U”.
Hờ, có vẻ cả mùa hè ở trong tay mình rồi, mình tự nhủ. Rồi khi lên cấp 3, môi trường mới khiến mình vất vả thích nghi, và có những tư tưởng lệch lạc. Mình vẫn nhắn tin với bạn, kể những câu chuyện cỏn con, hoặc vài lời bâng quơ vô cớ. Bọn mình nói về nhạc rap, và bạn bảo cũng hay nghe Bray, nhưng bài bạn thích nghe lại là Qua Ta của Hades. Mình cũng bảo là mình ở Kí túc xá, ăn cơm có vẻ không hợp, bạn cũng khoe là bạn nấu cơm ngon lắm, để bạn nấu cho ăn thử 1 hôm. Ơ kìa, cảm giác trong lồng ngực mình là gì vậy, tình yêu là thế ư ??? Mình ngại, cũng chả dám nhắn là đồng ý, rồi tin nhắn cũng bị trôi qua. Ngu thật Vanh ạ.
Tại sao mình lại làm thế ư, vì lúc đó mình quá tự cao về bản thân, và cho rằng việc bạn thích mình là hiển nhiên, còn mình không cần thiết phải thích bạn. “Ơ kìa, mày từng mơ gặp bạn rồi còn nắm tay cơ mà, sao lúc đó lại nghĩ như thế hả VanhG”. Chịu, chả hiểu tâm lý của 1 thằng lớp 10 này như thế nào nữa.
Và tiếp theo, với cái tư tưởng đó, mình chọn cách né tránh tình yêu lẽ ra là sẽ rất đẹp và có 1 kết thúc trọn vẹn hơn. Mình dần không nhắn tin với bạn, hoặc reply một cách qua loa. Đỉnh điểm, 1 ngày mình unfriend với bạn. Ơ damn, tại sao lại vậy ???
Dấu hỏi to lớn trong đầu mình mỗi khi nghĩ lại, mình bị gì vậy, tâm thần hả? Và có vẻ bạn cũng không hiểu giống mình, và chắc bạn cũng nhận lại nhiều tổn thương mà lẽ ra bạn không nên nhận nó. Haizz, tuổi trẻ, nghĩ lại thấy thật hối hận và trách bản thân lẽ ra có thể làm tốt hơn.
Rồi 1 khoảng thời gian, hình như mình cũng có kết bạn lại với bạn, nhưng có thể mọi người cũng đoán được, nó quá trễ rồi. Thi thoảng, mình không biết cảm xúc của mình dành cho bạn là gì, có thể là sự hối tiếc hoặc cảm giác được yêu hơn là việc mình thật sự thích bạn. Nhưng dù nó là gì đi nữa, nó cũng khiến mình có những cảm xúc mạnh mẽ khi nghĩ về bạn.
Lần gần nhất, có lẽ là năm trước, mình và bạn nhắn tin như những người bạn cũ từng quen và vì trong một hoàn cảnh đặc biệt khác về gia đình (mình không tiện kể hihi), cũng không đề cập nhiều đến những việc khác. Mình biết bạn đã hạnh phúc hơn và có được một chàng trai ấm áp, ít nhất là bạn xứng đáng được như vậy.
Đôi lời
Mình biết rằng ai cũng có những sai lầm, và mình hiện tại cũng đang cố gắng đối mặt và vượt qua mỗi khi nghĩ về nó. Đôi khi nó cũng mãnh liệt và dữ dội, đi sâu cả vào trong những giấc mơ của mình (ví dụ là hôm nay…). Mình chọn cách viết ra, vì nó có thể giúp mình bớt đi 1 phần sự hối hận và tiếc nuối. Mình cũng biết, bộ não con người có giới hạn, những kí ức đẹp đẽ về bạn rồi sẽ bị mình quên đi theo năm tháng, nên mình chọn viết ra, xem như là lưu giữ những kỉ niệm này mãi mãi, nhỉ ?
-
Taxua trip: An Unexpected Fear
Hi there! It’s me again. I’ve just finished my trip to Ta Xua for one week, and a lot of feelings are still
here with me rightnow. So, I think it’s great to write some down.
Well, Ta Xua is located in the landscape of the Bac Yen district in Son La province. It offers an enchanting blend
of untouched nature and a sense of tranquility that is rare to find in popular.
I went there with my group of friends, and we stayed there for 2 days, renting motobikes to travel around. Unfortunately, the weather on the first day wasn’t too supportive. It was cloudy and foggy, with temperatures around 20 degrees Celsius, so persionally, I found it hard to go by motobike. However, on the second day, it was sunny and windy, and of course, we enjoyed many beautiful moments that day. Here are some pictures Ta Xua and us:
Cloud in Taxua
Sunset...without the sun
Me & my friends
The sun is here...
It was fun, right? But look at the blog title… Yeah you see, I experienced a pretty terrible fear.
There is one thing you shoud know about Ta Xua: it is situated on the mountain, so in order to travel around its tourist destinations, we must drive downhill and uphill many times. The road, therefore, is narrow and dangerous, so we had to drive very carefully. I think it’s the trade-off to admire the magnificient scenery. And do you remember what I said in the first day? It was foggy and cloudy. So, when my friend and I were driving downhill, we had an accident. We spun around, fell to the ground, and narrowly avoided being crashed into by the car behind. God blessed us; we were still fine after that and continued driving to the homestay.
But is that done? Not yet, at least not to me. For the rest of the day and the next day, I felt affaid of going downhill, and everytime I was on the motobike, I remembered that terrible moment. My hands were shaking when holding the handlebars, and even going uphill I had a hard time. So, on the first night there, I knew that I shouldn’t travel anymore, because I was scared of going downhill, scared of… death.
Then, on the second day, I saw that the weather is better, no more fog, and the sun rising made me feel better. Also, our team have only 4 boys, if I didn’t drive,the other girls would have to and it would have been a worse situation. So, with no choice, I continued drive. And well, at the end of that trip, I drove carefully and didn’t have any accidents. Thanks God.
That story showed me that when I experience a new fear, I also experienced some physiscal reactions like fast breath, shaking hand,… which I thought only happened in the movie. Man proposes God deposes, I had a chance to feel that and that changed my mind a little bit, hihi.
To end this post, I will share with you some pictures from my memorable trip that my friends captured: here.
-
Mình đã tạo một game bằng C++ và SDL2.0
Xin chào mọi người. Ở kì học thứ 2, mình được học môn Lập trình nâng cao, là môn thứ 2 để hướng dẫn học sinh về lập trình sau môn “Nhập môn lập trình” thuộc kì học 1. Tại môn này, mình đã được hướng dẫn làm một project game 2D bằng ngôn ngữ C++ và sử dụng SDL 2.0 để hỗ trợ. Đây là project đầu tiên của mình, và hôm nay mình sẽ viết về cách mà mình tạo ra nó.
1. Cài đặt môi trường và sử dụng SDL2.0
Về môi trường cài đặt, mình đã được giảng viên dành 1 buổi trên lớp để hướng dẫn cụ thể các bước về tải thư viện SDL2.0, chỉnh sửa các câu lệnh và chạy thử. Mình code game này ở trên CodeBlock , và có dựa theo hướng dẫn sau để cài đặt môi trường: Youtube và Lazyfoo.
Về việc sử dụng SDL2.0, mình tham khảo trên website Lazyfoo, ở đây có những hướng dẫn rất chi tiết theo từng bước, rất phù hợp cho việc tìm hiểu và học tập.
Bài viết này, mình sẽ không đi sâu về mặt kĩ thuật cài đặt và xử lý (vì trong tài liệu trên website Lazyfoo ở trên đã nói rất kĩ từng phần) mà chủ yếu là hành trình mình tạo ra game này.
2. Ý tưởng về game này
Mình là một người rất đam mê tìm hiểu về các bí ẩn và đặc biệt là các truyền thuyết về truy tìm kho báu nên ý tưởng đầu tiên nảy ra trong đầu mình sẽ là làm game về đề tài này. Tuy nhiên, để cụ thể hoá ý tưởng thì là điều không hề dễ dàng. Lý do là vì trong những tài liệu hay bộ phim về truy tìm kho báu, nhân vật chính thường phải trải qua rất nhiều thử thách và cạm bẫy thì mới có thể tiến đến kho báu. Kết quả là sau một khoảng thời gian suy nghĩ, mình quyết định tạo ra các mini-game trong game này, với mỗi mini-game tượng trưng cho mỗi thử thách cần vượt qua với độ khó tăng dần, cùng với đó là việc xây dựng nội dung từng thử thách sao cho có tính logic và cốt truyện. Mình nghĩ rằng nếu như chỉ code một game đơn giản thì điểm cho project này sẽ không cao, nhưng nếu là tổng hợp của nhiều game như thế thì có thể sẽ khác. Tiếp theo, mình sẽ phát triển loại game là dạng game đồ hoạ Pixel, như một số game nổi tiếng: Stardrew Valley , Harvest Town ,… Cuối cùng, khi ý tưởng gốc đã xong xuôi, mình sẽ đi vào phần chi tiết cho từng thử thách.
3. Thử thách thứ nhất
Khi bắt tay vào làm, mình vẫn chưa nghĩ ra được mini-game đầu tiên sẽ là gì cho phù hợp. Cho đến buổi thực hành thứ 2 ở môn này, giảng viên đã cho mình làm 1 bài tập nhỏ là sử dụng hàm Random trong C++ để tạo ra các số từ 1 đến 3, tương ứng với Kéo, Búa, Bao trong trò chơi One - Two - Three (Oẳn tù tì) huyền thoại. Từ đây, mình đã quyết định chưa Oẳn tù tì vào làm một mini-game đầu tiên, với độ khó là dễ, nhưng cũng dựa vào may mắn là chính. Và để thêm phần thú vị cho minigame này, mình đã xây dựng một cốt truyện nhỏ và đồ hoạ phù hợp để tăng tính hình thức và bắt mắt. Một bật mí nhỏ là khi chấm game này cho mình, thầy giảng viên phải chơi mini game này 3 lần mới có thể dành được chiến thắng.
4. Thử thách thứ hai
Thử thách này mình lên ý tưởng từ nhân vật tượng nhân sư Sphinx trong Ai Cập cổ đại. Nhân sư sẽ canh gác lăng mộ và chỉ cho phép người đi qua nếu họ trả lời đúng được câu hỏi của nó. Mình quyết định sẽ đưa nhân vật chính đi qua lăng mộ và phải trả lời câu hỏi của Nhân sư này. Tuy nhiên, để đơn giản (vì đây mới là thử thách số 2) nên nhân vật sẽ có 7 lần đoán số tuổi của Sphinx, với điều kiện là tuổi của Nhân sư là nhỏ hơn 100. Nếu đoán sai thì tất nhiên, nhân vật chính sẽ dừng chân tại đây. Đến đây, nhiều bạn sẽ hiểu được tại sao mình để là 7 lần đoán. Đó là dựa theo thuật toán tìm kiếm nhị phân mà mình đã được học từ môn Nhập môn lập trình.
5. Thử thách thứ ba
Sau khi làm xong 2 thử thách trên, mình nghĩ mình cần nâng cấp độ khó cho game lên một chút, và đòi hỏi thao tác của người chơi nhiều hơn. Trong nhiều bộ phim truy tìm kho báu kinh điển, nhân vật chính sẽ đi qua một đường hầm với nhiều bẫy ở xung quanh, đòi hỏi sự khéo léo và dẻo dai của nhân vật. Với ý tưởng này, mình cũng tạo ra một đường hầm để đi tới chìa khoá của kho báu, với rất nhiều bẫy như rắn độc, hố sâu dung nham, vòng lửa,… đòi hỏi người chơi phải nhanh nhẹn điều khiển để tránh mất máu đi đến đích để nhận chìa khoá.
Phần này đòi hỏi mình làm tỉ mỉ, từ việc điều hướng các vòng lửa, năng lượng cho tới việc xử lý va chạm và cân bằng lượng máu để có được trải nghiệm game tốt nhất.
6. Thử thách cuối cùng
Việc mình kết thúc hành trình ở thử thách thứ 4 vì mình lười :v, nhưng thật ra mình nghĩ việc dừng ở minigame số 4 là đủ để mọi người có thể trải nghiệm toàn bộ game, và có thêm thời gian cho mình hoàn thiện phần code.
Ở phần này, nội dung thử thách là việc trốn chạy khỏi đám zombie bảo vệ kho báu trong một khoảng thời gian nhất định. Đây là thử thách mình tốn nhiều thời gian làm nhất (cũng là thử thách khó nhất) vì phải code rất nhiều phần như tự động bắn, tự động nâng cấp sức mạnh, di chuyển bản đồ khi nhân vật chuyển động… Đây là minigame mình lấy ý tưởng từ game Vampire Survivors, nhưng mình làm đơn giản hơn rất nhiều. Ngoài ra, việc tự tạo các hình ảnh vũ khí, zombie,… cũng khiến mình cảm thấy khá là vất vả. Nhưng sau cùng, mình cũng tạo được 1 bản gọi là tạm được của tựa game này.
7. Những phần phụ khác
Tất nhiên, để tạo được game Truy tìm kho báu này, không thể không kể đến những bản đồ, nhân vật, quái vật, vũ khí,… Về phần nhân vật, quái vật,… mình lấy từ trang OpenGameArt. Đây là trang web chia sẻ miễn phí các spritesheet nhân vật, vũ khí,… thuộc dạng pixel 2D. Ngoài ra, mình cũng sử dụng phần mềm PhotoshopCS6 để chỉnh sửa, cắt ghép các phần sao cho phù hợp, tạo map, menu, bản đồ kho báu cho từng màn.
Bên cạnh đó, mình cũng tạo các cốt truyện nhỏ trong mỗi thử thách, từ việc đi qua kim tự tháp để nhận chỉ dẫn cho đến vượt qua những cạm bẫy để lấy được chìa khoá kho báu, qua đó giúp đảm bảo tính hợp lý về cốt truyện tổng thể cho game.
Tổng kết
Toàn bộ ở trên là những chia sẻ về quá trình làm game Truy Tìm Kho Báu của mình. Mọi người có thể tải mã nguồn của game tại đây. Hy vọng bài viết này sẽ giúp mọi người có một góc nhìn khác về việc lập trình một project game, một góc nhìn hứng thú và sáng tạo hơn.
-
Các mô hình phát triển phần mềm (P2)
Ở phần 2 này, mình sẽ giới thiệu về 2 loại mô hình truyền thống còn lại là Bản mẫu (Prototype) và mô hình xoắn ốc (Spiral Model).
3. Bản mẫu (Prototype)
Thực tế, các yêu cầu đặc tả từ khách hàng rất hiếm khi rõ ràng, đầy đủ ngay từ đầu để thuận tiện cho việc sử dụng mô hình thác nước hay chữ V, nên mô hình bản mẫu được ra đời nhằm giải quyết vấn đề này. Bản mẫu là mô hình phát triển dựa trên việc thiết kế các bản thử của phần mềm theo yêu cầu của khách hàng, và khách hàng tham gia vào quá trình phát triển, từ đó giúp có cái nhìn tổng quát về hệ thống.
Mô hình bản mẫu:
Trong sơ đồ trên, các pha có nhiều điểm tương đồng với mô hình thác nước. Tuy nhiên, ở pha tinh chế bản mẫu, các bản mẫu sau khi được khách hàng đánh giá, sẽ phải tinh chế theo các yêu cầu của khách hàng, rồi xây dựng lại bản mẫu khác đến khi đáp ứng những yêu cầu của khách hàng thì đưa sản phẩm.
Bản mẫu là mô hình có nhiều ưu điểm. Ưu điểm dễ nhận thấy nhất là việc nhanh có sản phẩm thử. Việc thực hiện bản mẫu cần có sản phẩm thử (bản mẫu) để khách hàng có thể đánh giá, từ đó giúp yêu cầu đặc tả kĩ càng hơn. Thứ hai là giải quyết các yêu cầu không rõ ràng. Việc đưa ra 1 bản mẫu, và thu thập yêu cầu của khách hàng dựa trên bản mẫu đó sẽ giúp ích cho khách hàng có thể hình dung ra được sản phẩm họ cần là gì, từ đó sẽ có đặc tả yêu cầu rõ ràng từ khách hàng, giúp cho việc phát triển phần mềm chính xác và đáp ứng được những gì khách hàng đưa ra.
Thực tế hiện nay, các bản mẫu được sử dụng để đề xuất cho khách hàng hoặc là một kĩ thuật thu thập yêu cầu cho các mô hình khác. Có nhiều lí do cho việc này. Thứ nhất, khi dồn chi phí và nhân lực cho việc phát triển bản mẫu, các công đoạn còn lại sẽ thiếu thời gian và chi phí. Nên kết quả là dù có đầy đủ yêu cầu rõ ràng nhưng sản phẩm vẫn gặp vấn đề về chất lượng, nhất là phần tài liệu và code.Thứ hai, việc chú trọng quá vào bản mẫu cho yêu cầu chức năng dẫn đến dễ bỏ qua các yêu cầu phi chức năng và đa số các dự án thường không đạt yêu cầu phi chức năng (ví dụ như không đạt hiệu suất thời gian, độ bảo mật, toàn vẹn dữ liệu, dễ tương tác,…).
4. Mô hình xoắn ốc (Spiral model)
Mô hình xoắn ốc là một mô hình chú trọng vào tính rủi ro của những dự án. Xoắn ốc là sự kết hợp giữa các mô hình Thác nước và Bản mẫu và thêm phần Phân tích rủi ro ở trong. Ở đây, bản mẫu sử dụng để thu thập yêu cầu cho mô hình cũng như phát triển tăng dần, tuần tự. Mỗi giai đoạn trong mô hình xoắn ốc sẽ bắt đầu với yêu cầu, mục đích thiết kế và kết thúc với việc khách hàng kiểm tra tiến độ của sản phẩm.
Đây là mô hình có tỉ lệ thất bại cao khi áp dụng cho các dự án lớn. Bởi vì trước khi thực hiện một dự án, các nhà phân tích rủi ro sẽ nhận thông tin dự án, sau đó đánh giá rủi ro và quyết định xem có nên làm dự án này hay không. Nhưng việc khả thi của phân tích rủi ro là rất thấp vì các công ty phải cần người có chuyên môn cao và kinh nghiệm để có thể phân tích được những loại rủi ro này. Mà trên thị trường, việc các công ti vừa và nhỏ có thể có những con người như thế là rất hiếm gặp.
Ngoài ra, việc quản lý rủi ro, thực hiện các pha nhiều lần cần công sức rất lớn và tài nguyên, con người nên mô hình xoắn ốc được ít dự án sử dụng, chỉ có những công ty lớn với dự án quy mô rộng, nhiều nguồn lực, nhân lực ưu tú và việc phân tích rủi ro cho dự án rất quan trọng thì mới sử dụng mô hình này.
5. Tổng hợp
Ở trên là các mô hình phát triển phần mềm truyền thống, được sử dụng qua rất nhiều dự án. Tuy nhiên, trong thực tế người phát triển sẽ dựa vào những mô hình này mà cải tiến, điều chỉnh sao cho phù hợp nhất đối với dự án của mình.
-
Các mô hình phát triển phần mềm (P1)
Mô hình phát triển phần mềm là một quy trình tiêu chuẩn để phát triển phần mềm. Nó xác định các giai đoạn/ pha trong xây dựng phần mềm, từ lúc bắt đầu định hình yêu cầu cho đến khi phần mềm hoạt động được. Mô hình phát triển đóng vai trò rất quan trọng trong việc giúp các nhà phát triển thực hiện phần mềm một cách có hệ thống và hiệu quả, đảm bảo chất lượng và yêu cầu từ khách hàng.
Có rất nhiều loại mô hình phát triển như thác nước, bản mẫu, RAD, TDD,… Trong bài viết này, mình sẽ giới thiệu về 2 mô hình đầu tiên trên 4 loại mô hình phát triển truyền thống cơ bản là mô hình thác nước (Waterfall Model), mô hình chữ V (V-model), bản mẫu (Prototype) và mô hình xoắn ốc (Spiral Model).
1. Mô hình thác nước
Mô hình thác nước là mô hình phát triển phần mềm theo quy trình tuần tự và liên tiếp. Sau khi kết thúc giai đoạn trước, thì mới chuyển sang giai đoạn sau, không thể có 2 giai đoạn được xử lý song song. Lý do bởi vì kết quả của giai đoạn này sẽ đóng vai trò là đầu vào, yêu cầu của giai đoạn tiếp theo.
Minh hoạ mô hình thác nước:
Trong giai đoạn định nghĩa yêu cầu, các yêu cầu từ khách hàng sẽ được xác định và đặc tả chi tiết trong tài liệu, làm cơ sở để thực hiện giai đoạn thiết kế. Ở giai đoạn thiết kế, các nhà phát triển phải thảo luận, tìm ra yêu cầu của phần cứng, và đưa ra kiến trúc tổng thể của hệ thống phần mềm. Trong pha triển khai, nhà phát triển sẽ lập trình các chương trình nhỏ để tích hợp trong giai đoạn tiếp theo. Cuối cùng, sẽ là việc tích hợp các chương trình và kiểm thử trước khi đưa ra cho khách hàng sản phẩm.
Mô hình thác nước có những ưu điểm nổi trội về chất lượng và thoả mãn các yêu cầu phi chức năng. Thứ nhất là việc dễ học, dễ áp dụng. Việc làm các giai đoạn một cách tỉ mỉ, cẩn thận kèm theo việc viết tài liệu song song sẽ khiến cho phần mềm có tài liệu hướng dẫn kĩ càng, phục vụ cho việc sử dụng và đào tạo khách hàng. Về chất lượng đây là mô hình giúp sản phẩm có chất lượng cao vì các giai đoạn được làm cẩn thận, dành nhiều thời gian cho việc kiểm thử, tích hợp.
Bên cạnh các ưu điểm, mô hình này cũng bao gồm nhiều nhược điểm sau:
Thứ nhất, đây là mô hình vận hành lâu, chi phí cao. Lí do là vì việc phát triển theo mô hình thác nước đảm bảo sản phẩm có chất lượng cao, do đó trong từng giai đoạn, phải làm một cách kĩ càng và cẩn thận bởi lẽ nếu sai phạm ở giai đoạn nào đó, việc quay ngược lên để sửa chữa là rất tốn thời gian. Ngoài ra, việc làm tài liệu, giảng giải các hoạt động ở giai đoạn trước để những người thực hiện giai đoạn sau có thể dễ dàng hiểu cũng tốn rất nhiều công sức của người làm phần mềm.
Thứ hai là chỉ phù hợp với dự án vừa và nhỏ, có yêu cầu rõ ràng từ đầu các dự án nhỏ, vừa thì yêu cầu sẽ đơn giản hơn, do đó dễ thiết kế và thực hành hơn. Các dự án lớn thì có yêu cầu phức tạp, phạm vi dự án có thể thay đổi nên mô hình thác nước là rất khó xác định và đặc tả tổng thể các yêu cầu cùng 1 lúc. Thứ ba, mô hình thác nước sẽ khiến cho việc sản phẩm có chậm. Việc làm tuần tự và phải đảm bảo chất lượng cao dẫn đến tốc độ ra sản phẩm chậm. Do đó ảnh hưởng đến tiến độ của dự án. Ngoài ra, việc ra sản phẩm chậm thì sẽ có ít thời gian hướng dẫn khách hàng sử dụng sản phầm. Điều này sẽ dẫn đến việc trong quá trình sử dụng, khách hàng sẽ vô tình gây ra các lỗi cho phần mềm.
Trong thực tế, việc xây dựng các pha đầy đủ và không mắc phải lỗi nào là điều rất khó xảy ra. Nên khi trong quá trình phát triển, gặp phải vấn đề thì người phát triển phải quay lại các pha trước đó, tìm và sửa lỗi, rồi lại tiếp tục đi theo quá trình tuần tự và liên tục của model.
2. V-model
Về vấn đề kĩ thuật, mô hình thác nước còn có các điểm cần khắc phục là việc kiểm thử vẫn đang quá chung chung, chưa được đề cập rõ ràng. Hơn nữa, việc sinh test muộn (bước cuối cùng mới sinh test để kiểm tra sản phẩm) sẽ dễ đến việc chât lượng bộ test thấp, không đủ tính khách quan. Từ đó khiến chất lượng của phần mềm sẽ không đảm bảo. Do vậy, V-model ra đời nhằm cải tiến những điểm yếu về kĩ thuật này.
Minh hoạ:
Mô hình chữ V cũng bao gồm các pha gần giống như thác nước. Tuy nhiên để tránh việc chung chung trong kiểm thử, mô hình này đã cụ thể các pha kiểm thử là kiểm thử tích hợp, kiểm thử hệ thống và kiểm thử cấp nhận. V-model đưa việc sinh các test song song với các giai đoạn. Ví dụ khi ở giai đoạn đặc tả yêu cầu, khi có yêu cầu, nhà phát triển sẽ sinh bộ test cho việc đặc tả đó, vv. Sau khi cài đặt xong, sẽ lấy những bộ test đó để kiểm tra hiểu quả của từng pha. Việc sinh test này sẽ khách quan hơn rất nhiều so với mô hình thác nước, và chất lượng bộ test cũng sẽ cao hơn. Lý do chính là việc sinh test do chủ quan người phát triển. Nếu như sinh test trước từng pha, test sẽ cụ thể hơn và giúp tăng khả năng phát hiện lỗi hơn rất nhiều. Ngược lại, việc sinh test sau khi có sản phẩm, bộ test sẽ rất chung chung, dễ pass.
Bên cạnh đó, việc kiểm thử được chia ra rất rõ ràng các pha như đã nói ở trên. Cụ thể thì unit test (kiểm thử đơn vị) sẽ chịu trách nhiệm kiểm tra từng thành phần phần mềm như mô hình thác nước. Kiểm thử tích hợp là nhóm các thành phần phần mềm do kiến trúc quy định, để kiểm tra sự tương tác của chúng với nhau. Đối tượng kiểm thử không phải là một hệ thống hoàn chỉnh. Ở pha kiểm thử hệ thống, hệ thống hoàn chỉnh sẽ được đội phát triển kiểm tra, đánh giá trước khi gửi cho khách hàng. Cuối cùng là kiểm thử chấp nhận, pha này sẽ do khách hàng dùng thử sản phẩm và đánh giá cuối cùng.
Tạm kết
Ở trên là 2 trên 4 loại mô hình phát triển phần mềm truyền thống. Ở phần 2, mình sẽ giới thiệu thêm về bản mẫu và mô hình xoắn ốc.
-
Cách mình tạo blog này
Hello mọi người, đây là bài viết đầu tiên của mình trên blog này. Và tất nhiên, mình sẽ viết về hành trình và cách mà mình tạo ra blog này.
Bắt đầu
Mình có suy nghĩ tập viết blog khi đang ở trong khu quân sự. Vì lúc đó mình không được sử dụng điện thoại và laptop thường xuyên, cộng thêm có nhiều thời gian rảnh nên mình chợt nghĩ là mình nên thử viết nhật ký về trải nghiệm khi ở đó xem như thế nào. Tuy vậy, khi viết nhật ký mình thường gặp rất nhiều lỗi về ngữ pháp, bố cục và việc sửa lỗi đó là không khả thi khi viết. Vậy nên, mình quyết định sẽ chuyển sang dạng blog, phù hợp cho mình hơn trong việc sửa lỗi, và đơn giản hơn là mình gõ phím nhanh hơn là viết, hehe.
Hành trình tạo blog
Ban đầu, mình tạo blog dựa trên Blogger của Google, và đã bắt đầu viết được một ít bài ở đó. Lúc đó mình chỉ chia sẻ link blog đó cho một số người bạn để họ nhận xét về bài viết của mình. Trùng hợp thay, vào tuần trước khi chpia sẻ với 1 Dũng, người bạn cùng lớp, thì bạn ấy cũng kể là đang tập viết blog. Nhưng khác mình ở chỗ là bạn ấy tự code 1 website trên Github Pages để lưu trữ blog của mình (Đây là link blog của bạn ấy Zhaospei ). Hiển nhiên, mình cũng nghĩ tại sao lại không thử làm như thế nhỉ, và cuối cùng là blog này ra đời.
Cách tạo blog này
Đầu tiên, mình muốn gửi lời cảm ơn đến Dũng đã giúp đỡ mình rất nhiều trong quá trình tạo blog này.
Về việc tạo blog, mình sử dụng Jekyll để tạo trên Github. Mình làm theo những hướng dẫn ở trên link này để tạo ra một website cơ bản đầu tiên. Tiếp theo, mình tạo theme dựa trên cảm hứng là theme của Jekyll-Theme-Simple-Texture. Ở đây đã có sẵn hướng dẫn cài đặt, mọi người có thể xem thử. Mình chỉ lại một chút về font chữ (mình rất thích Pixel nên mình chọn font này hehe) và một chút giao diện. Ngoài ra, mình đã kết nối phần bình luận của Disqus vào blog này để mọi người có thể comment, nhận xét. Cuối cùng, blog này ra đời sau 1 tuần coding miệt mài của mình.
Một số hình ảnh của blog:
Đôi lời về blog
Vì mình đang tập viết bài trên blog này, nên nếu các bạn thấy nó có điều gì chưa ổn, hãy comment ở dưới để mình cải thiện nhé. Sắp tới, mình sẽ viết những bài viết cả về cuộc sống và học tập của bản thân mình. Mong các bạn sẽ ủng hộ blog này và tìm được gì đó hữu ích trong các bài viết của mình. Cảm ơn rất nhiều.