Gaubaccuc

khong co con duong cuoi cung

Subscribe to RSS feed

Sticky post

Halfway around the World

Halfway around the World

Read more...

Hợp đồng niềm tin

“Trong cuộc sộng ta vẫn thường hay gặp những số phận kém may mắn quanh mình. Nhìn thấy sự bất hạnh của họ, đôi khi sẽ cho ta thêm niềm tin, nghị lực để giúp ta vượt qua những khó khăn của cuộc sống. nhưng cũng có khi ta gặp những số phận không may kia và động lòng trắc ẩn, rồi hứa hẹn đủ điều sẽ giúp đỡ họ. Có thể cuộc sống hối hả đã khiến ta bỗng quên đi những lời hứa hẹn kia tuy nhiên, cũng có khi ta cố tình quên nó bởi ta chỉ nói với họ bằng lời chót lưỡi đầu môi, chứ không phải xuất phát từ cái tâm tốt của mình. Bạn à, tôi mong bạn hãy sống và làm những điều tốt để đi giúp những con người kém may mắn hơn mình, bằng cái tâm không vụ lợi, để giúp họ có thêm niềm tin vào cuộc sống, chứ không phải ta đi lấy nỗi đau, sự bất hạnh của họ mà PR hình ảnh mình trước công chúng. Đôi khi người tốt cũng có hai loại, một người tốt là muốn giúp những ai đang thiệt thòi hơn mình, để đưa họ thoát ra khỏi khó khăn. Còn người tốt thứ hai, chỉ đơn giản là họ muốn làm điều tốt để người khác phải ngưỡng mộ tôn sùng mình lên mà thôi. Vậy bạn sẽ làm một người tốt nào đây?”


Ảnh minh họa: Raysoda.com



Viết tặng bạn nhân sinh nhật lần thứ 28

- Em biết anh là một doanh nhân nên việc ký những bản hợp đồng làm ăn là một điều rất bình thường, đúng không ạ? Nhưng… thử hỏi anh đã bao giờ thử ký một bản hợp đồng mang tên niềm tin chưa? Nghĩa là sẽ có một ai đó họ muốn đặt trọn niềm tin vào anh, trong một thời gian nhất định.




Giọng cô gái thật buồn, nhỏ nhẹ từng câu một nói tiếp:





- Và em muốn ký một bản hợp đồng như vậy với anh. Anh đồng ý chứ ạ?


Chàng trai đôi mắt mở to ngạc nhiên nhìn cô gái, trên khuôn mặt những giọt nước mắt đang rơi xuống hai gò má.




- Xin lỗi em sai rồi! Không phải là em không tin anh, nhưng… - Giọng cô gái trùng xuống, nghẹn ngào chìm vào nước mắt. - Nhưng em đã bị nhiều người làm cho em mất niềm tin, nên giờ em sợ anh cũng như vậy?





- Đã có bao nhiêu người đến và họ hứa hẹn với em đủ điều và rồi họ bỏ em ra đi, đúng không? Và giờ em không tin anh, nhưng em muốn mạo hiểm đặt trọn niềm tin vào anh, một người xa lạ tự nhiên trên trời rơi xuống. Đúng không em ? - Chàng trai đứng dậy nhìn thẳng vào mắt cô gái để quát lớn giọng tức giận.



Nói xong chàng trai vội cất bước ra về.


Ảnh minh họa: Raysoda.com

***Sự giận dữ vẫn bủa vây lấy chàng trai, cảm giác mình bị tổn thương, cảm giác mình đang cố gắng làm điều tốt cho một ai đó nhưng chính người đó lại không hề tin tưởng mình. Và hình ảnh cô gái đang khóc lúc nãy cứ trôi lơ lững trong tâm trí chàng trai. Cũng giống như hai năm trước, vào một buổi chiều mưa như thế, chàng trai lúc ấy đang rơi vào tâm trạng tuyệt vọng khi nhận được lá đơn bị thôi việc, bởi không hoàn thành kế hoạch bán hết sản phẩm theo đúng chỉ tiêu mà cấp trên đề ra. Và đúng buổi chiều còn lại cuối cùng ở công ty, chàng trai không biết làm gì để giết thời gian ngoài việc lang thang trên mạng. Lang thang của một kẻ chán nản bị mất việc, mò mẫm giữa thế giới thông tin bao la trên internet khiến chàng trai không biết mình nên tìm cái gì trên đó? Sẽ tìm một công việc khác ư? Thì đó là một điều hiển nhiên của những ai đang mất việc như anh. Nhưng lúc này đây chàng trai quá mệt mỏi với những gì mình đã làm, đã cống hiến suốt thời gian qua cho công ty, vậy mà vẫn bị sa thải.






***
Mò mẫm click vào các trang web chỉ như một sự vô thức và không biết như thế nào chàng trai vô tình vào một trang báo điện tử. Vẫn là trang báo ngày ngày anh vẫn vào để check tin tức đó thôi. Và rồi mọi thứ chợt dừng lại trước mắt chàng trai… đơn giản đó chỉ là một đoạn clip ngắn, nên người ta chỉ mất 5 phút để xem xong, nhưng với chàng trai thì ngược lại. Cứ ngồi như vậy mà xem đi xem lại và bất giác chàng trai thấy sống mũi mình cay cay, mọi thứ chợt nhoè đi trong nước mắt.





“Em biết chúng ta sinh ra rồi đến một ngày cũng sẽ chết, nhưng điều quan trọng là ta sẽ làm gì để cống hiến cho cuộc sống này mà thôi! Em sinh ra đã bị cha mẹ bỏ rơi, bản thân em lại phải đang chống trọi với căn bênh ung thư và sự sống của em chỉ được tính từng ngày, nên có người khuyên em đừng vẽ vời gì nữa, bởi sẽ chẳng ai xem nó. Tuy nhiên em vẫn mơ ước một ngày nào đó em sẽ mở một cuộc triển lãm của riêng mình. Đơn giản là khi em còn sống thì em vẫn còn cống hiến, dù đó chỉ là những bức tranh mà thôi!”



Đoạn kết của clip là giọng dõng dạc đầy tự tin của cô gái, đã khiến chàng trai phải xem đi xem lại như một diễn viên đang cố học thuộc lời thoại.




Ảnh minh họa: Raysoda.com
***
- Em đã soạn bản hợp đồng xong chưa cô bé?


- Ơ, thế không phải giận em nên bỏ về, không thèm chơi với em nữa à? - Giọng cô gái vẫn tinh nghịch reo lên trong điện thoại.


- Người lớn ai thèm chấp trẻ con chứ! - Chàng trai bỗng chuyển giọng ân cần như mọi ngày - Em chuẩn bị đi nhé, lát nữa đi với anh đến một Gallery của một họa sĩ nổi tiếng, anh hi vọng ông ấy sẽ giúp chúng ta.


Trước gương, cô gái lại vật lộn với câu hỏi: “Hôm nay mình sẽ mặc gì để đi với anh đây?”



Đôi khi cô gái hay nghĩ sự xuất hiện của anh như một giấc mơ, một giấc mơ mà hàng đêm cô gái vẫn mơ và chính nhờ giấc mơ đó đã khiến cô gái có thêm nghị lực sống, để chống trọi với bệnh tật bao năm qua. Thế nhưng vẫn có một chút gì đó lo sợ cứ rình rập quanh cô gái? Vì biết đâu anh rồi cũng giống như những người khác, chỉ đến, mang theo một chút hi vọng hảo huyền hay thậm chí, có người đến vào bảo mang tranh của cô ra nước ngoài bán, để giúp cô có thêm kinh phí chữa bệnh. Nhưng…đôi khi lời hứa vẫn mãi chỉ là lời hứa, khi nó được phát ra từ miệng và chỉ khi nào lời hứa đó được phát ra từng chính cái tâm của người đang hứa thì nó mới thành hiện thực!


***
Trên bức tường cũ kỹ nơi cô gái đang sống là những bức tranh đã từng đoạt giải. Những bức tranh đã có lúc cô gái từng muốn đốt đi trong cơn tuyệt vọng và nếu như anh không xuất hiện thì có lẽ nó đã bị đốt di, để đem sang thế giới bên kia, vì bác sĩ bảo sức khỏe của cô giờ chỉ còn tính bằng ngày nếu như vẫn chưa tìm ra đươc ai đó có cùng nhóm máu cùng ADN, để thay tủy. Căn bệnh ung thư tủy quái ác kia đã khiến cô, từ một cô gái chạy nhảy bình thường dần dần phải ngồi xe lăn, bởi hai chân cô giờ chỉ như một vật trang trí mà thôi! Và chính điều đó nên đôi khi đi với anh, cô gái vẫn có cảm giác mất tự tin, bởi anh đơn giản là một người đàn ông thành đạt, lịch lãm và thông minh còn cô gái chỉ là một con số 0 không có gì hơn!


***


Ngồi trước gương với khuôn mặt đăm chiêu suy nghĩ, lựa chọn cân nhắc về chiếc áo sơmi cô sẽ mặc để đi cùng anh. Vẫn biết mình có một vẻ ngoài không như bao cô gái khác, nhưng vậy không có nghĩa là cô gái buộc phải thu mình lại trong cái vỏ óc mang tên mặc cảm mãi được! Những chiếc áo sơmi đủ màu sắc cứ bình thản được cô gái cầm từ tay trái sang tay phải vào để nó xuống giường, vì vẫn chưa vừa ý. Và khi cầm trên tay chiếc áo sơmi màu đen, với những đường viền nhỏ chạy quanh cổ, ngắm mình trước gương cô gái chợt nhớ có lần chàng trai đã hỏi cô rằng:



- Sao anh thấy trong các bức tranh em vẽ toàn là những gam màu tươi sáng, còn mỗi lần gặp em lúc nào cũng thấy ton màu đen trên các trang phục của em hết vậy?



- Vì màu đen tượng trưng cho sự mạnh mẽ và cá tính, mà em thì không có hai thứ đó. Thế nên em luôn chọn những ton màu tươi sáng để đưa vào những tác phẩm của mình, bởi em nghĩ dù có sinh ra trong một hoàn cảnh bất hạnh đến mức nào thì nếu có niềm tin thì vẫn còn hi vọng! - Cô gái bảo


Ảnh minh họa: Raysoda.com



***

Chiếc ôtô vẫn chạy một cách từ tốn trên đường phố tấp nập. Chàng trai đang chăm chú cầm vô- lăng, nhưng ánh mắt vẫn không thôi hướng cái nhìn về cô gái ngồi ghế bên cạnh. Khuôn mặt cô gái lúc này vẫn không thôi suy nghĩ và phảng phất sự lo sợ nào đó? Đôi mắt buồn của cô gái hướng cái nhìn ra ngoài cửa xe, cô gái đang nhìn dòng người tấp nập đang hối hả ngược xuôi trên đường phố ư? Không hẳn là vậy! Chần chừ mãi rồi cô gái quyết định phá vỡ sự im lặng ấy.




- Anh à, nếu lần này ta lại thất bại, nghĩa là họ sẽ không giúp chúng ta thì sao anh? Mình đã đi đến mấy cái Gallery rồi, nhưng…




Anh đã bảo với em rất nhiều lần rằng:





- Anh sẽ không như những người khác, chỉ đến và mang theo những lời hứa viễn vong, rồi biến mất. Mà anh đến để đi cùng em. Nghĩa là chúng ta sẽ cùng nhau đi vào con đường mang tên thật bại và bước qua nó để đi đến thành công được. Em hiểu không? Có thể lần này ta vẫn không tìm được người giúp chúng ta mở cuộc triển lãm, nhưng điều đó không có nghĩa là chúng ta bỏ cuộc hay chán nản!



Vẫn là chất giọng đầy tự tin của chàng trai như mọi ngày, nhưng sao hôm nay cô gái chợt có cảm giác khang khác? Bởi đơn giản trong đôi mắt của chàng trai sáng lên hai chữ chân thành! Một sự tin tưởng rất lớn mà cô gái chưa có ở những người khác.



- Nè, làm ơn tập trung nghe anh nói tiếp chứ làm gì mà nhìn anh dữ vậy? - Giọng chàng trai vội lớn tiếng làm cô gái bỗng giật mình hướng ánh mắt ra phía khác.


- Dạ thì em vẫn đang nghe nè… nhưng em vẫn thấy mệt mỏi và điều quan trọng là vì em mà anh đã mất quá nhiều thời gian, trong khi công việc anh chồng chất.





Ngừng một lát cô gái nói tiếp:



- ... Và em lo cho anh!


Ảnh minh họa: Raysoda.com

*** Chàng trai chợt mỉm cười và hỏi:



- Vậy em có nhớ lần đầu tiên anh trông thấy em, anh đã nói câu gì không?


- Em nhớ chứ! Đấy là câu: “Anh nhìn thấy em rồi!”. Em đã nhớ mãi câu nói đó, vì cảm giác như chúng ta đã gặp nhau từ rất lâu và lạc mất nhau và nay đã tìm lại nhau, đúng không anh? - Cô gái nói với nụ cười rạng rỡ hiện trở lại trên khuôn mặt ngây thơ trong sáng.


- Thì đúng vậy. Trong hai năm biết em đã có những lúc tưởng chừng như quên em, vì bị công việc cuốn đi. Nhưng đã có lúc anh lấy em ra làm động lực cho những thất bại của mình. Và sự thật anh đã hạnh phúc đến mức nào khi bắt gặp em lên nhận giải thưởng đêm đó. Hạnh phúc khi em đã làm những gì em muốn và anh cũng hạnh phúc khi nghĩ mình sẽ làm điều gì đó để giúp em, nó như là một sự trả ơn khi em đã vô tình tạo niềm tin cho anh, trong lúc anh đang trong cơn tuyệt vọng nhất. - Chàng trai hồi tưởng lại và nói thêm



- Nhưng anh à, bác sĩ bảo sự sống của em giờ chỉ tính từng ngày nếu như vẫn không tìm thấy ai thích hợp để cho tủy, vậy thì anh giúp em để làm gì? Tại sao vậy anh? Sao số phận lại cứ lấy đi của em tất cả vậy? - Cô gái bỗng bật khóc


Chiếc xe chợt dừng lại ở vệ đường, chàng trai nhẹ nhàng ôm lấy cô gái lúc này đang khóc trong sự tức tối.


- Em à, anh tin rằng trên đời này có số phận nhưng số phận không vô cớ lấy đi của ta tất cả đâu! Em thấy đó tuy em bị vậy nhưng em vẫn có những người bạn tốt để luôn giúp em. Anh tin rằng sau khi cuộc triển lãm tranh của em diễn ra, sẽ có rất nhiều người biết đến các tác phẩm của em và quan trọng nhất là ở đâu đó trên thế giới này sẽ có người cùng nhóm máu, cùng AND để cho em thay tủy và lúc đó em sẽ lành bệnh để tiếp tục thực hiện giấc mơ trở thành họa sĩ nổi tiếng.


Để nói ra những câu như vậy trong tim của chàng trai cảm giác đau buốt đến ngột thở. Ôm trọn cô gái trong lòng , chàng trai chợt ước giá mà khoảnh khắc này thời gian có thể tạm dừng lại, dù chỉ là một phút thôi cũng được. bởi anh biết cứ mỗi phút trôi qua là sự sống cô gái càng bị rút ngắn lại. Chính điều đó đã thôi thúc chàng trai bằng mọi cách để cố gắng giúp cô gái hoàn thành tâm niệm cuối cùng này.

Ảnh minh họa: Raysoda.com

*** Sau tất cả những nổ lực cuối cùng cuộc triển lãm mang tên: “Sắc màu niềm tin” đã được diễn ra. Khán phòng nhỏ chật ních khách khứa, phóng viên đến đưa tin. Ở đó mỗi bức tranh là từng câu chuyện khác nhau được cô gái kể lại bằng ngôn ngữ của những sắc màu…Một cuộc triển lãm với kịch bản khác hẳn những cuộc triển lãm tranh khác, bởi người xem khi bước vào thế giới của những bức tranh ấy đều không biết thông tin gì về tác giả, tất cả cứ diễn ra tự nhiên cho đến khi mọi người thấy hình ảnh một chàng trai đẩy chiếc xe lăn từ phía dưới sân khấu đi vào. Những âm thanh xì xào hòa vào tiếng nhạc nền. Có người bảo hình như đây chỉ là một khán giả cũng vào xem tranh tuy nhiên, cũng có người bảo hình như đây chính là họa sĩ của những bức tranh kia. Chỉ có phóng viên là đến vây quanh từng bánh xe lăn đang di chuyến ấy. Cô gái với khuôn mặt đẹp rạng rỡ, nụ cười đầy ắp niềm tin như chính tiêu đề của cuộc triển lãm. Giọng MC truyền cảm cất lên và câu chuyện bắt đầu…


***
Không khí ồn ào hào nhoáng lúc nãy giờ đã tan theo sóng biển trắng xóa kia. Từng bánh xe lăn đang tạo thành hai vệt dài trên cát. Giọng chàng trai áp sát mặt vào tai cô gái nói:



- Thế là điều anh hứa với em anh đã thực hiện xong. Anh biết em vui lắm phải không?


Đôi mắt cô gái ngâm ngấm nước mắt vẫn chăm chú nhìn về phía biển xa xăm kia.



- Anh à, cuộc sống chúng ta đâu chỉ cần có niềm tin mà cần phải có sự kiên nhẫn nữa, phải không anh? Chứ nếu chỉ có mỗi niềm tin thôi thì chúng ta không thể có thành công được!


- Ừ, đúng rồi vì cuộc sống này có rất nhiều điều bất công, vô lý thế nên ta phải kiên nhẫn đối diện với nó em ạ.

Đang nói giữa chừng bất chợt chàng trai nghe tiếng thở gấp của cô gái, liền vội cúi người xuống trong khuôn mặt cô gái lúc này đang tái nhợt, những giọt mồ hôi lấm tấm trên trán và người bắt đầu rung lên.


- Em sao vậy? Anh gọi bác sĩ cho em nhé. Hay anh đẩy em về?- Giọng chàng trai hốt hoảng vừa nói vừa đưa tay vào túi quần lấy chiếc điện thoại ra.



Cô gái vội cầm lấy tay chàng trai, giọng run rẫy đứt quãng:



- Không, đừng anh…không kịp đâu anh ạ! Em… em chỉ muốn anh làm giúp em một việc cuối cùng, được không anh?


- Ừ, anh nghe nè. - Chàng trai nói và cầm lấy bàn tay lạnh toát của cô gái.


- Anh hãy cõng em đi dọc bãi biển này được không ạ?!


Ảnh minh họa: sonybmg.com.hk

*** Giọng cô gái thều thào bên tai chàng trai:





- Cảm ơn nhé. Cảm ơn anh đã đến và chạm vào trái tim non nớt và đầy những vết cắt của em, cảm ơn anh đã giúp em thực hiện tâm niệm cuối cùng của em, là bán những bức tranh ấy để lấy tiền đó đi giúp lại những người đang mắc căn bệnh ung thư. Đó là những gì mà em muốn đáp đền lại với đời, với những người đã giúp em trong suốt khoảng thời gian em sống.


Chàng trai vẫn cõng cô gái trên lưng và bước những bước nặng trĩu không phải vì thân hình gầy gò của cô gái, mà vì có một nỗi đau như muốn cắt trái tim chàng trai ra hàng ngàn mảnh.




- Không, nhất định em phải sống để vẽ, để chúng ta sẽ mở thêm rất nhiều cuộc triển lãm lớn hơn vậy và lúc ấy em sẽ có nhiều tiền để đi giúp những người có cùng số phận như em.Tin anh đi. Chỉ mai khi tất cả truyền thông đưa tin về em, thì anh tin rằng trên thế giới này sẽ có người có cùng nhóm máu cùng ADN để em thay tủy, hoặc em sẽ tìm thấy người thân của em, để họ có thể cho tủy. - Chàng trai vẫn nói và vẫn bước đi những bước chân đang trĩu nặng dần …




Hai tay cô gái bắt đầu từ từ buông ra như hai nhành hoa đang dần mất đi sự sống mà rủ xuống một cách nhẹ nhàng. Mọi cố gắng cuối cùng của cô gái lúc này là khẽ thì thầm bằng một âm giọng mỏng mênh nhất:





- Em biết mà…nhưng …



Chỉ vậy thôi, rồi tất cả bỗng dừng lại… Trên lưng chàng trai giờ chỉ còn lại một tảng băng lạnh giá đè lên…


Trên bãi cát những dấu giày nặng trĩu vẫn nối tiếp nhau in lên…



Chàng trai vẫn cõng cô gái, mải miết đi trong vô thức tiến về phía hoàng hôn và mọi thứ lại nhòe đi trong nước mắt…

Lý trí gửi trái tim!

Lý trí gửi trái tim!

Gửi cậu... đứa bạn thân nhất của tớ, cũng là đứa tớ ghét nhất...

Mấy hôm nay tớ ghét cậu kinh khủng.

Tớ ghét... khi ai đó nói đến tớ đều nhắc đến cậu... chẳng ai bảo tớ tự chăm sóc mình mà chỉ luôn dặn tớ phải chăm sóc tốt cho cậu... thấy ghét...

Tớ ghét... cậu luôn là người đi trước tớ. Cậu sinh ra trước tớ, trước khi nhắc đến tớ người ta nhắc đến cậu... Tớ hay chống lại “Tại sao không phải là tớ sinh ra trước mà là cậu "...tớ thấy ghét cái nụ cười nửa miệng của cậu "Khoa học đã chứng minh tớ sinh ra trước cậu".... phải, phải, phải.... khoa học đã chứng minh, con người cũng đã kiểm nghiệm và tớ cũng đã chứng kiến,vẫn là cậu sinh ra trước tớ, trước cả cái đầu điên điên khùng khùng của tớ và trước cả tứ chi kém phát triển của tớ. Thế đấy đã được chưa... Lúc nào tớ cũng thua cậu hết.

Tớ ghét... tớ chả hiểu tại sao tớ ghét cậu mà mỗi lần cậu đau hay buồn tớ đều bị lây theo. Sao không làm bạn thân của đứa khác đi, theo tớ làm gì... mà tại sao tớ cứ phải sống bằng cảm xúc của cậu chứ... Đồ bạn tồi!

Mà cũng đâu phải lỗi tại cậu đâu chứ... là tại tớ… tại tớ theo cậu...thế đấy... ai bảo từ khi sinh ra tớ với cậu đã là bạn thân của nhau...
Ảnh minh hoạ: vi.sualize


Tại sao mấy hôm nay cậu cứ buồn hoài thế? Tớ thì đang tràn trề sức sống, đang rất vui vẻ bên bạn bè tớ...thế mà mặt cậu lúc nào cũng rầu rầu... làm tớ cũng rầu rầu, mặt tớ ngầu ngầu luôn....bạn bè tớ xum xoe lại hỏi tớ bảo tớ bị điên... vì cậu... cậu có thấy hạnh phúc chút nào khi nghe tớ nói thế không?


Bạn thân là gì nhỉ? Là đồng cam cộng khổ cùng nhau, là con chí cắn đôi, là con chim đồi mồi xẻ nữa, có lon sữa cũng nhường nhau... đấy tớ và cậu đã từng thề thốt thế đấy... và giờ tớ thấy đau khổ vì cái lời thề ấy... Lúc cậu vui những lúc ấy đối với tớ như ngày hội ấy... Còn lúc cậu buồn, đời tớ giống đưa đám tang con chuột cống quá. Mấy hôm nay tớ tình nguyện nhường hết sữa cho cậu...không thèm uống, nhường hết đồ ăn ngon cho cậu… bỏ bữa... rủ cậu đi lang thang, đi quậy phá... làm mặt ngầu... hát cho cậu nghe... mắt cậu ướt ướt...


Cậu là bạn thân của tớ, mà nhiều lúc chán bỏ xừ... ba cái chuyện không đâu cũng buồn, cũng đau... Sao không vứt hết mấy cái vu vơ của cậu sang một bên mà quan tâm đến tớ đây này... Tớ có khối chuyện muốn kể với cậu... Có đầy thứ hay cho cậu xem... Vậy mà cả tuần nay làm lơ với tớ. Cậu có tin tớ nghỉ chơi với cậu không? Khi đó cấm khóc bu lu bu loa lên nha. Tớ chúa ghét đứa nào mít ướt - nhất là cậu, vì cậu mà khóc tớ cũng khóc theo...


Tớ biết cậu rất nhạy cảm và yếu đuôi. Cậu luôn mềm lòng trước mọi thứ, cậu tưởng cậu mạnh mẽ giống tớ… thực ra cậu yếu xìu, lại hay xúc động nữa chứ. Cậu là người tốt nhất mà trước giờ tớ chơi. Cậu luôn bên tớ, sống cùng tớ, ăn chơi ngủ nghỉ cùng tớ...Tớ có chuyện gì cậu cũng buồn vui với tớ... Tớ thương cậu nhất, nhiều lúc chính tớ lại là kẻ làm cậu bị tổn thương...


Nhưng dạo này cậu hay buồn quá... Tớ hết cách cứu cậu rồi....


Cậu nói cho cậu thời gian được ở một mình. Cậu đi đi, đôi khi như vậy tốt hơn cho cậu.


Ảnh minh hoạ: vi.sualize


Cậu nên nhớ rằng dù tớ ghét hay yêu thương cậu, cậu cũng luôn là bạn thân của tớ....


Vì ghét cậu, nên tớ chả biết nói gì với cậu hết... Tớ chỉ muốn nói với cậu một câu thôi.... "Hãy luôn là chính cậu, bên cạnh tớ"


Trái tim của tớ ơi! Tớ yêu cậu và cũng ghét cậu thật nhiều. Hãy biết cách chăm sóc cho mình đừng bị đau nhé! Cậu đau tớ cũng sẽ đau lắm đấy…

Yêu cậu…

10 nguyên tắc cơ bản của những bậc thầy PHP

1. Chỉ sử dụng PHP khi bạn cần đến nó - Rasmus Lerdorf
Không ai có thể sử dụng PHP thành thạo hơn chính người tạo ra nó. Vào năm 1995, Rasmus Lerdorf đã tạo ra ngôn ngữ lập trình PHP và từ đó ngôn ngữ này nhanh chóng được giới phát triển ứng dụng và làm thay đổi bộ mặt Internet. Tuy nhiên, Rasmus Lerdorf không tạo ra PHP với mục đích đó, PHP được tạo ra nhằm mục đích giải quyết các vấn đề của các nhà lập trình và phát triển ứng dụng we.

And as with many open source projects that have gone on to become popular, the motivation was never philosophical or even narcissistic. It was purely a case of needing a tool to solve real-world Web-related problems. In 1994 the options were fairly limited when it came to Web development tools

Tuy bạn có thể sử dụng PHP cho mọi thứ trên website. Lerdorf là người đầu tiên thừa nhận rằng PHP đơn thuần chỉ là một công cụ trong danh sách các các công cụ bạn sử dụng cho website của mình, và tất nhiên PHP có những hạn chế.

Use the right tool for the job. I have run across companies that have completely bought into PHP, deploying it absolutely everywhere, but it was never meant to be a general-purpose language appropriate for every problem. It is most at home as the front-end scripting language for the Web.

Sử dụng PHP cho mọi thứ trên website là việc làm không hiệu quả, nếu bạn là một nhà phát triển ứng dụng web thì nó không phải là một ngôn ngữ tốt nhất để làm việc. Đừng ngại sử dụng những ngôn ngữ lập trình khác trong dự án của bạn nếu cảm thấy nó tốt hơn cho PHP.

2. Sử dụng nhiều table cho PHP và MySQL cho những cơ sở dữ liệu lớn - Matt Mullenweg
Hầu như không có ai hỏi Matt Mullenweg là ai và tại sao anh ta lại được tôn vinh như một bật thầy của PHP bởi vì anh đã quá nổi tiếng và nhiều người biết đến.

Nếu bạn chưa rõ về Matt Mullenweg tôi có thể trích ngang cho bạn vài dòng thế này: Matt Mullenweg là người phát triển hệ thống blog khá thịnh hành hiện nay: Wordpress. Sau khi hoàn thành Wordpress, Matt cùng với công ty của mình đã cho ra đời website

http://www.wordpress.com

- một website có thể được liệt vào hàng tinh tú của thế giới mạng và được xây dựng trên code Wordpress MU. Đây là một ứng dụng multi blog tốt nhất hiện nay. Vào thời điểm bải viết này được viết, website

http://www.wordpress.com

đang chứa khoảng 4 triệu blog con và mỗi ngày có khoảng 140.000 bài viết được đăng. Bạn có thể xem các thông số mới nhất của nó tại đây.

Vào năm 2006, Matt Mullenweg đã đưa ra những quyết định sáng suốt cho việc thiết kế cấu trúc cơ sở dữ liệu của Wordpress và lý giải tại sao Wordpress MU sử dụng những table riêng biệt cho mỗi blog thay vì gom chúng lại thành một khối lớn cho tất cả các blog.

We tested this approach for MU, but found it was too expensive to scale past a certain point. With monolithic structures you hit a wall based on your hardware. In MU users are divided and can be partitioned easily, for example on WordPress.com we have the users partitioned between 4096 databases, which allows you to scale very cheaply and efficiently to hundreds of thousands and even millions of users and extremely high levels of traffic.

3. Đừng bao giờ tin vào bản thân bạn và người dùng của bạn - Dave Child

Dave Child là cha đẻ của website Added Bytes (trước đây có tên là ilovejackdaniels.com) với loạt bài viết cheat sheets for many programming languages. Ông đã từng làm việc cho nhiều công ty ở Anh và thiết lập nên uy tín riêng của mình trong cộng đồng giới lập trình viên thế giới.

Dave Child mang đến cho bạn lời khuyên hữu ích trong bài viết writing secure code in PHP: đừng bao giờ tin vào người dùng của bạn (your users). Họ chỉ làm cho bạn tổn thương …

So the cardinal rule of all web development, and I can’t stress it enough, is: Never, Ever, Trust Your Users. Assume every single piece of data your site collects from a user contains malicious code. Always. That includes data you think you have checked with client-side validation, for example using JavaScript. If you can manage that, you’ll be off to a good start. If PHP security is important to you, this single point is the most important to learn.

Dave chỉ cho chúng ta thấy những ví dụ cụ thể về việc bảo mật trong phần một, phần hai và phần 3 của loạt bài viết “Writing Secure PHP“.

Finally, be completely and utterly paranoid. If you assume your site will never come under attack, or face any problems of any sort, then when something eventually does go wrong, you will be in massive amounts of trouble. If, on the other hand, you assume every single visitor to your site is out to get you and you are permanently at war, you will help yourself to keep your site secure, and be prepared in case things should go wrong.

4. Đầu tư và nghiên cứu caching - Ben Balbo

Ben Balbo đã viết cho Site Point một bài viết hướng dẫn các developer và các designer.

If you have a busy and predominantly static web site–such as a blog–that’s managed through a content management system, it will likely require little alteration, yet may benefit from huge performance improvements resulting from a small investment of your time. Setting up caching for a more complex site that generates content on a per-user basis, such as a portal or shopping cart system, will prove a little more tricky and time consuming, but the benefits are still clear.

Đây là một vài kỹ thuật cache dữ liệu cho PHP

* cached function calls
* setting expiry headers
* caching file downloads in IE
* template caching
* Cache_Lite

Và còn nhiều kỹ thuật khác Ben Balbo chưa đề cập đến.

Vì tính chất của một ngôn ngữ động, cache bị phê phán và chỉ trích vì làm mất đi tính linh hoạt của trang web do ít bị thay đổi nhưng dù sao đi nữa caching cũng là một phương án rất hữu hiệu và được ứng dụng khá rộng trong lập trình website.

5. Tăng tốc độ trang web bằng cách sử dụng một IDE Template và cắt nhỏ ảnh - Chad Kieffer
Khi Chad Kieffer không bận bịu trong các công việc thiết kế giao diện người dùng và quản trị database cho khách hàng, anh thường đưa ra rất nhiều lời khuyên sáng suốt trên blog của mình: 2 tablespoons.
Chad tin rằng sử dụng một bộ IDE như Eclipse PDT (một gói phát triển của Eclipse giành cho PHP) với sự kết hợp các kỹ thuật cắt template và chia nhỏ nó có thể giúp tăng tốc độ tải trang web.

Busy schedules, long to do lists, and deadlines make it tough for developers to get familiar with some of the advanced features their tools provide. This is a shame, because some features, like Eclipse Templates, can really reduce coding time and errors.

Ngụ ý của câu nói trên nói rằng một khi bạn thực hiện một số nhiệm vụ một cách tự động, bạn sẽ cải thiện được thời gian hoàn thành project của mình.Một ví dụ mà dễ thấy là với bạn lưu những đoạn lặp lại trên website lại thành những phần riêng biệt bạn có thể kết hợp, sử dụng lại chúng một cách nhanh chóng mà chẳng tốn thời gian viết lại chúng. Vả lại còn có thể sử dụng lại chúng trong những project khác nữa.

Bằng cách sử dụng các IDE như Eclipse và các gói PDT, bạn có thể nhận ra thời gian thực hiện dự án của bạn được rút ngắn đáng kể. Các IDE sẽ cho phép bạn thực hiện rất nhiều công việc như gộp file, debug, kiểm tra việc thiếu các dấu chấm phẩy (wink, một vài IDE còn cho phép bạn thực hiện các tác vụ cao cấp hơn như upload lên hosting.

6. Khiến cho việc dùng PHP trở nên thuận tiện hơn bằng cách sử dụng Filter - Joey Sochacki

While Joey Sochacki có thể không phải là một cái tên nổi tiếng giống như Matt Mullenweg trong cộng đồng PHP, anh ấy chỉ là một nhà phát triển website một cách ngẫu nhiên và chia sẻ kinh nghiệm anh có trong thời gian làm một developer trên blog Devolio của mình.

Filtering data. We all have to do it. Most, if not all of us, despise doing it. However, unbeknown to most are PHP’s filter_* functions, that allow us to do all sorts of filtering and validation. Using PHP’s filter_* functions, we can validate and sanitize data types, URLs, e-mail addresses, IP addresses, strip bad characters, and more, all with relative ease.

Bộ lọc có thể là một thứ gì đó thật xa vời và khó hiểu. Nhưng bạn có thể ghé thăm Blog của Joey Sochacki và với sự giúp đỡ của Joey Sochacki bạn có thể học được cách cài đặt bộ lọc, tìm hiểu những thứ một bộ lọc cần, tìm hiểu nó và cải thiện để tận dụng sức mạnh của PHP.

7. Sử dụng một PHP Framework - Josh Sharp
Hiện vẫn có những cuộc tranh cãi quanh việc sử dụng framework nào giữa Zend, CakePHP, Code Igniter, hoặc những framework khác.
Josh Sharp là một lập trình viên và là một nhà phát triển website cho khách hàng. Đâu là lý do tại sao bạn nên tin Josh khi anh bảo sử dụng framework để tiết kiệm thời gian và hạn chế lỗi khi lập trình ? Josh tin điều đó vì một lẽ đơn giản : PHP rất dễ học.

But PHP’s ease of use is also its downfall. Because there are less restrictions on the structure of the code you write, it’s much easier to write bad code. But there is a solution: use a Framework

Framework có thể giúp bạn chuẩn hóa chương trình, bạn có thể tiết kiệm rất nhiều thời gian trong quá trình xử lý mã nguồn … Bạn có thể đọc thêm lợi ích của việc sử dụng framework tại blog của Josh.

8 Đừng sử dụng Framework - Rasmus Lerdorf

Trái ngược với ý kiến ở trên của Josh ở trên, Rasmus Lerdorf - cha đẻ của PHP lại cho rằng framework không phải là một lựa chọn sáng suốt. Tại sao? Bởi vì nó sẽ làm cho chương trình của bạn biên dịch chậm hơn so với viết code PHP đơn thuần. Trong bài thuyết trình của mình tại Drupalcon 2008 , Rasmus đã so sách tốc độ xử lý của một trang “Hello world !” đơn giản sử dụng framework và không sử dụng framework (slides 24-32) và chỉ ra rằng framework làm cho tốc độ xử lý web page chậm hơn code php trực tiếp.

Bạn có thể xem và nghe toàn bộ bài phát biểu của Rasmus Lerdorf tại đây.

9. Sử dụng bộ xử lý đồng bộ (Batch Processing) - Jack D. Herrington

Theo từ điển Lạc Việt Batch Processing là một chế độ thao tác của máy tính, trong đó các thao tác lệnh của chưng trình được thực hiện liên tiếp nhau mà không có sự can thiệp của người sử dụng máy tính.

Jack D. Herrington không phải là người xa lạ trong cộng đồng PHP và Developer của thế giới. Herrington khuyến khích sử dụng batch processing và cron cho việc xử lý các tác vụ dưới tầng nền hệ thống. Người sử dụng web không muốn phải ngồi đợi quá lâu trong lúc hệ thống tải trang lên. Vì vậy, những thứ không cần thiết phải hiển thị ra ngoài bạn hãy để nó chạy dưới nền ứng dụng.

Certainly, in some small cases, it’s a bit easier to fire off of a helper thread to handle small jobs. But it’s easy to see that with the use of conventional tools — cron, MySQL, standard object-oriented PHP, and Pear::DB — creating batch jobs in PHP applications is easy to do, easy to deploy, and easy to maintain.

Jack tin rằng thay vì sử dụng các tiến trình trên server, để đơn giản hơn có thể sử dụng kết hợp cron, PHP và MySQL để xử lý các ứng dụng nền.

I’ve done both, and I think cron has the advantage of the “Keep It Simple, Stupid” (KISS) principle. It keeps the background processing simple. Instead of having a multithreaded job-processing application that runs forever and, thus, can never leak memory, you have a simple batch script that cron starts. The script determines whether there’s anything to do, does it, then exits. No need to worry about memory leaks. No need to worry about a thread stalling or getting caught in an infinite loop.

10.Bật chức năng Error Reporting - David Cummings

David Cummings điều hành công ty phần mềm của mình với một CMS đặc trưng và đã đạt được rất nhiều giải thưởng. Nếu nói về một người phát triển ứng dụng PHP thành công nhất, có lẽ đó là David.

David đã viết một vài viết trên SitePoint về Hai lời khuyên cho những người muốn học PHP. Một trong hai lời khuyên là “Turn on error reporting immediately“

The single most important thing I tell people who use PHP is to turn error reporting to its maximum level. Why would I want to do this? Generally the error reporting is set at a level that will hide many little things like:

* declaring a variable ahead of time,
* referencing a variable that isn’t available in that segment of code, or
* using a define that isn’t set.

Error Reporting giúp bạn tìm kiếm các lỗi lập trình trong quá trình thực hiện project dễ dàng hơn. Rất nhiều lỗi nhỏ của PHP dễ dàng được tìm thấy với mô tả lỗi giúp bạn dễ dàng khắc phục nó hơn.

Refresh

Đã bao lần mình đã cố làm mới mình làm thay đổi bản thân nhưng sao vẫn không tài nào thay đổi được. Phải chẳng nó đã ăn sâu vào chính con người mình rồi. giờ đây mình thấy mệt mỏi vô cùng. chẳng biết mọi thứ sẽ đi về đâu nữa. thời gian cứ lặng lẽ trôi ngày qua ngày. mình sợ những khoảng thời gian vô hình đó. giờ đây mình cần một sức mạnh có thể giúp mình như 5 năm về trước. Nhưng tất cả đã tan biến theo hư vô mất rồi.
Nhiều lúc mình chẳng biết mình làm gì sai mà mọi người lại đối xử với mình như thế. càng ngày mình càng giống người lữ hành đơn độc giữa sa mạc. không xác định được phương hướng và nhìn xung quanh chẳng còn ai.
Có nhiều hôm mình chỉ muốn khóc để xóa tan đi tất cả, để có thể bắt đầu lại tất cả vậy mà những giọt nước mắt kia dường như đã khô cằn theo năm tháng rồi. bây giờ nó chỉ dành cho những giây phút hạnh phúc nữa thôi.
Từ trước tới giờ điều mình làm là chạy trốn tất cả mọi thứ. Không dám đối mặt với thực tại. Mình sợ đối mặt thất bại và sợ mình sẽ bị tổn thương. Phải chăng đó là cách tốt nhất cho mình???
Con đường phía trước còn dài lắm. mình còn phải bước tiếp chặng đường tiếp theo.

10 điều phải chấp nhận nếu làm ngành IT




“Dương thịnh âm suy”, thường xuyên bị stress, lương tăng chậm, dễ phải lấy người cùng nghề… là những thực tế bạn phải đối mặt nếu muốn theo đuổi nghề IT.

Dưới đây là 10 thống kê vui những “nguy cơ” tiềm ẩn trong ngành IT mà bạn có thể phải đối mặt nếu quyết tâm theo đuổi nghề này, thông qua con mắt của một blogger làm trong nghề.

10 điều phải chấp nhận nếu làm ngành IT



1. Ở những ngành khác thì nữ vừa nhiều vừa xinh đẹp, ngành IT thì ngược lại

Điều này ai đã và đang học CNTT ở các trường ĐH đều biết rồi. Không riêng gì trong ngành CNTT mà những ngành kỹ thuật, số lượng nữ giới cũng rất thấp. Tuy nhiên so với các ngành như cơ khí, điện tử thì tỉ lệ nữ giới học CNTT cũng còn khá cao. Nhưng khi học xong và đi làm, tỉ lệ nữ giới làm lập trình lại càng giảm, đa số các bạn ấy làm QC, DB, BA… Ở nhóm tôi khoảng 20 người chỉ có mỗi 2 dev, 2 QC là nữ, còn lại toàn “đực rựa”. Tuy nhiên điều an ủi là trong công ty vẫn có nhiều chị em xinh lắm, nhưng không làm ở bộ phận lập trình. Thiếu thốn này thường dẫn đến điều thứ hai.

2. Xác suất phải lập gia đình với người cùng ngành rất cao

Nghe có vẻ như hơi mâu thuẫn, đã ít nữ thì làm sao xác suất này cao được. Thế nhưng với những người làm IT thì kể từ lúc đi làm thường nhìn máy tính nhiều hơn giao tiếp với ngưòi thật nên sẽ ăn nói kém, giao tiếp kém, cơ hội gặp phụ nữ khác ngành cũng ít hơn người làm ở ngành khác nên trời kêu ai nấy dạ. Tuy nhiên chúng ta thường quen nửa cuộc đời của mình từ trong trường ĐH hoặc ở nơi làm việc nên điều này có thể cũng đúng với những người làm ở các ngành khác. Dù những người làm ở ngành IT chúng ta thường được cái thông minh, nhưng hai người thông minh thì sinh con ra chưa chắc thông minh nên đây cũng là một hiểm họa tiềm tàng. Hơn nữa, hai người cùng ngành IT giờ gặp nhau ngoài nói chuyện bug, code thì chán chết. Phải chi chàng kể chuyện bug, nàng hỏi bug là gì hở anh thì có phải thú vị hơn biết bao.

3. Bạn sẽ bị yếu đi

Điều này không có gì phải bàn cãi. Thứ nhất ngồi nhiều… thì bụng và mông sẽ to. Bụng càng to càng khó làm… nhiều thứ và tuổi thọ giảm. Ngồi nhiều còn có thể gây ra nhiều bệnh tế nhị khác. Ngoài hai bệnh đằng trước và đằng sau thì còn bệnh ở mắt do nhìn quá nhiều. Đa số người làm IT xung quanh ta đều bị cận thị. Gõ máy tính thường xuyên sẽ ảnh hưởng đến tim, rê chuột thường xuyên sẽ thoái hóa cổ tay. Ngoài ra cột sống sẽ bị chai hoặc mọc gai do tật ngồi nhiều hơn đứng của công việc này.

Ngoài ra, người làm IT thường có thói quen làm việc, sinh hoạt ban đêm. Cái giờ đáng lẽ những người ở những ngành khác làm cái việc mà ai cũng biết là việc gì thì người trong ngành IT lại gõ gõ, click click và thường gây ra bệnh đau bao tử. Tay chân ít hoạt động nên con người thường cảm thấy mỏi mệt, lười vận động, thậm chí cả lười tắm nên đừng thắc mắc tại sao một số SV ngành IT thường ở dơ. Nói chung làm cái nghề này nếu ko chịu sinh hoạt… điều độ thì đừng mong thọ.

4. Bạn sẽ thường xuyên bị làm phiền bởi người quen

Đây là một trong những điều tệ hại và khó chịu nhất bạn sẽ gặp phải. Những người quen của bạn: bạn bè, bà con, cô dì chú bác, bạn của ba của mẹ sẽ gọi điện nhờ bạn giúp khi họ không nghe nhạc được, máy khởi động chậm, không thấy webcam, không biết đưa hình lên blog. Kiểu hỗ trợ kỹ thuật miễn phí này nên cẩn thận vì nó sẽ thường xuyên lặp đi lặp lại. Một số trường hợp bạn sẽ được trả công nhưng theo tôi, bạn chẳng cần số tiền chả đáng đổ xăng đó làm gì so với thời gian phải chạy đi chạy lại. Đa số người nhờ bạn giúp sẽ mong muốn được hỗ trợ miễn phí và tôi chắc chúng ta sẽ không vui gì về điều đó. Vì vậy hãy tập nói không khi có thể.

5. Bạn sẽ phải thường xuyên về trễ mà không được trả tiền

Đặc thù của ngành IT là công việc thường không thể tính chính xác bằng giờ. Có nghĩa là không phải cứ một lượng thời gian nào đó thì sẽ làm xong một công việc. Thường chúng ta sẽ phải ở lại thêm 1 giờ, 2 giờ để làm nốt công việc của mình nếu bạn là người có trách nhiệm. Nhưng dù có trách nhiệm hay không thì khi công việc chưa xong mà đã gần đến deadline thì bạn vẫn phải ở lại để hoàn thành những gì còn dở dang, tất nhiên không có xu nào cả.

6. Bạn sẽ thường xuyên bị stress

Khi làm việc với những project lớn nhiều người, công việc sẽ theo flow rõ ràng, bạn làm, người khác test, manager gí, và khi đến những ngày cuối cùng là lúc bạn làm việc nhiều nhất. Phải suy nghĩ nhiều, cơ thể mệt mỏi, thiếu ngủ cộng với căng thẳng khi làm việc sẽ khiến nhiều người bị stress. Theo một số điều tra, thủ phạm gây stress nhiều nhất là email. Khi phải đọc khoảng 100 email một ngày thì người hiền lành cũng trở nên gắt gỏng. Bởi vậy những người làm IT thường hay khó chịu đột xuất.

7. Lương bạn sẽ tăng rất chậm

Làm IT lương khởi điểm sẽ khá cao so với một số ngành nhưng tốc độ tăng sẽ chậm và ít đột biến. Thường người làm IT sẽ giải quyết nhu cầu tăng lương bằng cách nhảy sang công ty khác. Cho nên những bạn sinh viên mới ra trường nên tìm một công ty có lương khởi điểm khá tốt, vì thông thường chu kỳ tăng lương sẽ là từng năm và khi lạm phát hai chữ số mà tăng lương dưới 15% cộng với trả lương bằng tiền Việt thì hơi bị đuối. Tốt nhất nên tìm hiểu những anh chị đi trước hoặc xác định mục tiêu của mình để tìm hướng đi khác vì làm lập trình chay khó làm giàu lắm.

8. Không phải lúc nào cũng được làm công việc ưa thích

Bạn từng nghĩ sẽ áp dụng những kỹ thuật tiên tiến nhất của các ngôn ngữ lập trình hiện đại, sẽ học hỏi những công nghệ mới nhất và làm việc với những chuyên gia đầy kinh nghiệm trong lĩnh vực CNTT nhưng thường không phải như vậy. Ở những công ty càng lớn càng có những project kỳ lạ kiểu như chuyển nguyên một chương trình từ VB6 sang C#, hoặc từ một ngôn ngữ rất cổ xưa sang C#.

Tuy đòi hỏi kiến thức lập trình trên hai ngôn ngữ, khả năng đọc hiểu code nhưng nói chung công việc như vậy khá nhàm chán và tôi nghĩ chẳng ai muốn theo đuổi lâu dài. Đối với những project lớn thì chi phí công nghệ mới là một trong những vấn đề quan tâm của khách hàng. Bạn muốn sử dụng SQL 2005 nhưng khách hàng sẽ nói “No” khi họ đã có licence cho SQL 2000 và không muốn bỏ tiền mua thứ mới. Bạn muốn sử dụng ASP.NET để làm website cho khách hàng nhưng họ cho rằng PHP sẽ rẻ hơn vì không tốn nhiều licence cho máy chủ WINDOWS. Bạn muốn dùng ORM tool để tiết kiệm thời gian lập trình nhưng khách hàng nhất quyết bạn phải dùng Store Procedure và viết code gọi bằng C# vì làm vậy nhanh hơn 30 milisecond khi gọi 10.000 query. Nói chung khách hàng là thượng đế và chúng ta phải nghe theo.

9. Khi nhảy việc cũng không đơn giản, có khi phải bắt đầu lại từ đầu

Lương bạn hiện không cao trong khi lương tụi bạn đã gấp hai mình. Đề nghị sếp tăng lương thì sao, liệu sếp có chịu tăng cho mình gấp rưỡi không chứ đừng nói gấp hai. Tại sao không nhảy việc khi vừa có thể có lương cao hơn lại có thể học hỏi nhiều cái mới và làm quen nhiều con người mới. Nhưng khi nhảy việc là lúc bạn phải chấp nhận làm lại từ đầu. Có thể bạn có nhiều kinh nghiệm từ công ty cũ nhưng sang môi trường mới sẽ không có đất để dụng võ. Và khi chưa biết gì hết thì bạn sẽ là một newbie (dân tay mơ) và chấp nhận làm lại từ con số không. Vì vậy, theo tôi, nếu tìm được công việc mới lương gấp rưỡi trở lên thì hãy nhảy, còn không ở lại cho lành và chờ thời cơ.

10. Rất khó để tự kinh doanh riêng về IT

Tỉ lệ thất bại cao của các công ty IT mới thành lập đã nói lên điều này. Nếu bạn làm IT khi muốn mở một công ty làm phần mềm thì rất khó. Một trong những khó khăn lớn nhất là sự cạnh tranh. Bạn sẽ khó kiếm được project từ những khách hàng lớn khi công ty của bạn chưa hề có tên tuổi hoặc không có công ty mẹ đỡ đầu. Nếu chấp nhận làm dự án nhỏ thì có vô khối công ty đã làm như vậy. Những công ty may mắn sống sót nhờ vào dạng những project nhỏ này họ có thể thực hiện website trong một tuần nhờ tái sử dụng những cái đã có từ project cũ và chúng ta sẽ khó cạnh tranh mỗi khi kinh nghiệm tổ chức và kinh doanh là con số 0. Giỏi lập trình không có nghĩa là giỏi quản lý, và càng không có nghĩa là giỏi kinh doanh nên làm công ty về IT không hề đơn giản. Và khi không có project nào trong khi phải nuôi đội quân cỡ năm người, cộng với trả tiền điện, tiền mặt bằng trong ba tháng là bạn phải nghĩ đến chuyện giải tán.

Đó là 10 trong khá nhiều những khó khăn, thiệt thòi, gian khổ của ngành IT. Làm IT không đơn giản và không sướng chút nào, càng không dễ làm giàu. Thế nên những ai nghĩ làm IT sướng và lương cao thì nên xem lại và cân nhắc nếu như đang chọn nghề cho mình. Đây là những ý kiến chủ quan của tôi, có thể có nhiều ý kiến trái ngược và bổ sung khác nên rất mong được sự chia sẻ từ các bạn. Mọi comment khen ngợi, chửi bới đều hoan nghênh.

Thao tac mang trong php

Bài 1. Mảng. (Từ PHP MySQL) I. Mảng là gì? Mảng để lưu trữ bộ các giá trị, bằng cách ấy cho phép bạn nhóm các biến vô hướng lại. Sau khi chúng ta có mảng, chúng ta có thể làm nhiều thứ hữu ích với nó. Ví dụ như sort(),... Các giá trị lưu trữ trong một mảng gọi là các phần tử. Mỗi phần tử mảng có một index kết hợp (hay key) được sử dụng để truy nhập phần tử mảng. Mảng trong phần lớn các ngôn ngữ lập trình có các chỉ số bắt đầu từ 0 hay 1. PHP cũng như vậy. PHP còn cung cấp mảng kết hợp, mảng kết hợp có thể có mọi thứ giống mảng chỉ số, nhưng thường sử dụng chuỗi. II. Mảng chỉ số. 1. Khởi tạo các mảng chỉ số. Ví dụ tạo mảng tên là products, bao gồm ba phần tử: $products = array("Tires","Oil","Spark Plugs"); Chú ý rằng, như echo, array() là một cấu trúc ngôn ngữ, không phải là hàm. Tuỳ thuộc vào nội dung bạn cần trong array, bạn có thể không cần thao tác khởi tạo chúng như ví dụ trước. Nếu bạn cần có dữ liệu trong một mảng khác, bạn có thể copy một mảng vào mảng khác sử dụng toán tử =. Nếu bạn muốn tăng tuần tự các số lưu trữ trong mảng bạn có thể sử dụng hàm range() để tự động tạo mảng. Ví dụ sau tạo một mảng numbers với các phần tử trong phạm vi từ 1 đến 10: $numbers = range(1,10); Nếu bạn có thông tin lưu trữ trong một file, bạn có thể load nội dung mảng trực tiếp từ file. Bạn còn có thể sử dụng các hàm khác nhau để trích một phần mảng hay đảo lại trật tự một mảng. 2. Truy nhập nội dung mảng. Để truy nhập nội dung của biến sử dụng tên của nó. Nếu là mảng, truy nhập nội dung sử dụng tên mảng và key hay index. key hay index cho biết giá trị lưu trữ nào mà chúng ta truy nhập. Ví dụ: $products[0], $products[1]. Như với các biến khác, nội dung các phần tử mảng được thay đổi bằng toán tử =. Ví dụ: $products[0] = "Fuses"; Ví dụ sau có thể dùng để thêm một phần tử mới (mảng đã có 3 phần tử): $products[3] = "Fuses"; Để hiển thị nội dung của mảng: echo "$product[0] $products[1] $products[2] $products[3]"; Như các biến PHP khác, mảng không cần khởi tạo trước. Chúng được tự động tạo khi sử dụng lần đầu. Ví dụ để tạo mảng products: $products[0] = "Tires"; $products[1] = "Oil"; $products[2] = "Spark Plugs"; Nếu $products chưa tồn tại, dòng đầu tiên sẽ tạo một mảng với một phần tử, sau đó thêm các giá trị vào mảng. 3. Sử dụng vòng lặp để truy nhập mảng. Vì mảng được index bởi thứ tự các số, nên chúng ta có thể sử dụng vòng lặp for để hiển thị nội dung mảng dễ dàng hơn: for($i=0;$i<3;$i++) echo "$products[$i]; Khả năng sử dụng vòng lặp đơn giản để truy nhập phần tử mảng là một đặc điểm hay của mảng chỉ số. Các mảng kết hợp không dễ lặp, nhưng cho phép các chỉ số có ý nghĩa hơn. III. Mảng kết hợp (còn có tên mảng băm). Trong mảng products ở trên, chúng ta cho phép PHP đưa mỗi item một chỉ số mặc định. PHP còn cung cấp mảng kết hợp. 1. Khởi tạo mảng kết hợp [/code] $prices = array("Tires"=>100, "Oil"=>10, "Spark Plugs"=>4); [/code] 2. Truy nhập phần tử mảng kết hợp $prices["Tires"]; Cũng như mảng chỉ số, mảng kết hợp có thể được tạo và khởi tạo một phần tử cùng lúc. Đoạn mã sau tạo mảng $prices, tạo một phần tử sau đó thêm 2 phần tử: $prices = array("Tires"=>100); $prices["Oil"] = 10; $prices["Spark Plugs"] = 4; Sau đây là một ví dụ khác. Trong đó chúng ta không tạo tường minh một mảng. Mảng được tạo khi chúng ta tạo phần tử đầu: $prices["Tires"] = 100; $prices["Oil"] = 10; $prices["Spark Plugs"] = 4; 3. Sử dụng vòng lặp với each() và list() Vì chỉ số trong mảng kết hợp không phải là số, chúng ta không thể sử dụng bộ đếm trong vòng lặp for để làm việc với mảng. Đoạn mã sau liệt kê nội dung mảng $prices: while($element = each($prices)) { echo $element["key"]; echo " - "; echo $element["value"]; echo "
"; } Kết quả: Tires - 100 Oil - 10 Spark Plugs - 4 Hàm each() trả về phần tử hiện hành trong mảng và làm cho phần tử tiếp theo là phần tử hiện hành. Vì chúng ta đang gọi hàm each() trong vòng lặp while, nó sẽ trả về mọi phần tử trong mảng quay vòng và dừng lại khi kết thúc mảng. Trong đoạn mã này, $element là một mảng. Khi chúng ta gọi hàm each(), nó cho chúng ta một mảng 3 giá trị và 3 chỉ số chỉ tới các vị trí mảng. Vị trí "key" và "0" chứa key của phần tử hiện hành, vị trí "value" và "1" chứa value của phần tử hiện hành. Nhưng chúng ta thường hay sử dụng tên vị trí, hơn là dùng các number. Có một cách hay hơn để làm việc đó. Hàm list() có thể được sử dụng để chia một mảng thành một số giá trị. Chúng ta có thể chia hai giá trị mà hàm each() đưa ra như sau: list($product,$price) = each($prices); Lệnh trên sử dụng each() để lấy phần tử hiện hành từ $prices, trả về mảng và làm phần tử sau thành phần tử hiện hành. Sử dụng list() để đưa các phần tử 0 và 1 từ mảng trả về bởi each() vào các biến mới là $product và $price. Chúng ta có thể lặp qua mảng $price, đưa ra nội dung như sau: while( list( $product, $price) = each( $prices)) echo "$product - $price
"; Một điều chú ý khi sử dụng each() là nếu chúng ta muốn sử dụng mảng hai lần trong cùng một script, chúng ta cần đặt phần tử hiện hành trở lại đầu của mảng sử dụng hàm reset(). Do khi kết thúc each() sẽ trỏ đến phần tử cuối cùng của mảng. Để lặp lại mảng $prices, làm như sau: reset($prices); while( list($product,$price)=each($prices)) echo "$product - $price
"; IV. Mảng nhiều chiều Các mảng không chỉ đơn giản là danh sách các key và value - mỗi vị trí trong mảng có thể lưu giữ mảng khác. Bằng cách này chúng ta có thể tạo mảng 2 chiều. Nếu chúng ta muốn lưu trữ nhiều hơn một piece dữ liệu về mỗi sản phẩm , chúng ta có thể sử dụng mảng hai chiều. Ví dụ sau mô tả các sản phẩm như là các mảng 2 chiều với mỗi hàng mô tả một sản phẩm riêng và mỗi cột mô tả một thuộc tính sản phẩm. Code Description Price TIR Tires 100 OIL Oil 10 SPK Spark Plugs 4 Sử dụng PHP, chúng ta sẽ viết mã sau để cài dữ liệu vào mảng đó: $products = array( array("TIR","Tires",100), array("OIL","Oil",10), array("SPK","Spark Plugs",4) ); Để truy nhập dữ liệu trong mảng hai chiều tương tự mảng một chiều, chỉ khác là mỗi phần tử của mảng có hai chỉ số - hàng và cột. Để hiển thị nội dung của mảng này, chúng ta truy nhập mỗi phần tử theo thứ tự như sau: [/code] echo "|".$products[0][0]."|".$products[0][1]."|".$products[0][2]."|
"; echo "|".$products[1][0]."|".$products[1][1]."|".$products[1][2]."|
"; echo "|".$products[2][0]."|".$products[2][1]."|".$products[2][2]."|
"; [/code] Cách khác chúng ta có thể dùng for để nhận cùng kết quả: for($row=0;$row<3;$row++) { for($column=0;$column<3;$column++) { echo "|".$products[$row][$column]; } echo "|
"; } Kết quả: |TIR|Tires|100| |OIL|Oil|10| |SPK|Spark Plugs|4| Có thể bạn thích tạo các tên cột hơn là dùng các số. Để làm việc này, bạn có thể sử dụng các mảng kết hợp. Để lưu trữ cùng bộ products, với các cột có tên, bạn sẽ dùng mã sau: $products = array(array"Code"=>"TIR","Description"=>"Tires","Price"=>100), array("Code"=>"OIL","Description"=>"Oil","Price"=>10), array("Code"=>"SPK","Description"=>"Spark Plugs","Price"=>4) ); Mảng này dễ dàng làm việc với, nếu bạn muốn nhận một giá trị đơn. Sự mô tả được chứa trong cột Description dễ nhớ hơn là nhớ nó được chứa trong cột 1. Sử dụng các mảng kết hợp bạn không cần phải nhớ một mục được chứa tại [x] [y]. Bạn có thể dễ dàng tìm dữ liệu của bạn bằng cách tham chiếu tới vị trí với tên hàng và cột có ý nghĩa hơn. Đây là một cách để hiển thị nội dung mảng: for($row=0;$row<3;$row++) { echo "|".$products[$row]["Code"]."|".$products[$row] ["Description"]. "|".$products[$row] ["Price"]."|
"; } Dùng for, chúng ta có thể duyệt mảng $products chỉ số. Mỗi hàng trong mảng $products bây giờ là một mảng kết hợp. Sử dụng each() và list() trong vòng lặp while, chúng ta có thể duyệt qua các phần tử mảng. Vì vậy phải dùng while bên trong for: [/code] for($row=0;$row<3;$row++) { while(list($key,$value)=each($products[$row])) { echo "|$value"; } echo "|
"; } [/code]

Một số hàm thao tác với files trong PHP

1.basename ( string $path [, string $suffix] )

a.Trả về tên file, $suffix là phần mở rộng của file. Nếu cung cấp thông tin này thì tên file trả về sẽ không chứa phần mở rộng.

b.Example:
PHP Code:
$file = "C:\Audition\Khi da muon mang.wma";
echo basename($file, ".wma"); //Khi da muon mang
echo basename($file); //Khi da muon mang.wma


2.copy ( string $source, string $dest [, resource $context] )

a.Copy file từ $source to $dest. Nếu $source or $dest là URL thì hàm có thể trả về failure

b.Example:
PHP Code:
$source = "C:\Audition\Khi da muon mang.wma";
$dest = "D:\Khi da muon mang.wma";
echo copy($source, $dest); //Output: 1 --> copy success


3.resource fopen ( string $filename, string $mode [, bool $use_include_path [, resource $context]] )

a.Mở file hoặc URL

b.Nếu $filename là một URL thì PHP sẽ tìm protocol handler(wrapper) cho protocol đó. Nếu ko wrapper nào được tìm thấy thì PHP sẽ hiển thị thông báo lỗi. Bạn cũng cần phải kiểm tra thông số allow_url_fopen đã được bật

c.Nếu file được chỉ định là file local thì bạn cần chắc chắn rằng đã setting quyền cho file này được đọc.

d.Ở mỗi họ hệ điều hành khác nhau thì có những cách để kết thúc một dòng khác nhau. Unix sử dụng “\n”, windows là “\r\n” và Mac là “\r”. Nếu bạn sử dụng sai thì script sẽ hiển thị không đúng những gì mong đợi.

e.Mode: chỉ định kiểu mà bạn muốn truy cập tới stream. Danh sách mode:
·“r”: mở để đọc, đặt con trỏ ở đầu file
·“r+”: mở để đọc và ghi, con trỏ sẽ được đặt ở đầu file
·“w”: mở chỉ để ghi, con trỏ file đặt ở đầu, tiến hành xóa hết dữ liệu của file. Nếu file ko tồn tại thì sẽ tạo file mới
·“w+”: tương tự như w nhưng có thể đọc
·“a”: mở file chỉ để ghi, con trỏ file đặt ở cuối, nếu file ko tồn tại thì sẽ tự động tạo
·“a+” tương tự như a, có thể đọc file
·“x”: tạo file và chỉ open để ghi, con trỏ đặt ở đầu file. Nếu file đã tồn tại thì sẽ thông báo lỗi, nếu file chưa tồn tại sẽ tự động tạo
·“x+” tương tự như x, có thêm chức năng đọc

f.Example:
PHP Code:
$handle = fopen("C:\\Audition\\Khi da muon mang.wma", "r");
$handle3 = fopen("ftp://userassword@diendanphp.com/somefile.txt", "w");


4.string fgets ( resource $handle [, int $length] )

a.Đọc nội dung file theo từng dòng

b.Nếu $length ko được chỉ định thì hàm sẽ đọc đến dòng cuối cùng

c.Example:

PHP Code:
$handle = @fopen("C:\\testlog.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle);
echo $buffer . "
";
}
fclose($handle);
}
//Output:
//09:34:28 VirtualDisk - couldn't load BBArchive.dll - 126
//09:34:40 VirtualDisk - couldn't load BBArchive.dll - 126


5.string fgetss ( resource $handle [, int $length [, string $allowable_tags]] )

a.Đọc nội dung file theo từng dòng, loại bỏ các thẻ HTML và thẻ PHP trong nội dung đọc được.

b.$allowable_tags chỉ định thẻ nào ko bị loại bỏ

c.$length ko được chỉ định thì hàm sẽ đọc đến cuối file

d.Example: trong ví dụ này thì thẻ a sẽ ko bị loại bỏ

PHP Code:
$handle = @fopen("C:\\testlog.php", "r");
$allowable_tags = ""; if ($handle) { while (!feof($handle)) { $buffer = fgetss ($handle , 4096, $allowable_tags); echo $buffer . " "; } fclose($handle); } 6.string file_get_contents ( string $filename [, int $flags [, resource $context [, int $offset [, int $maxlen]]]] ) a.Function đọc nội dung file và trả về một chuỗi, hàm bắt đầu đọc từ giá trị offset đến $maxlen đã được chỉ định, giá trị này tính theo bytes. Nếu thất bại thì hàm trả về FALSE b.$flags chỉ có trong PHP6 7.fread ( resource $handle , int $length ) a.Đọc nội dung file giới hạn bởi $length(bytes) b.Example: PHP Code: $source = "C:\\testlog.php"; $handle = fopen($source, "r"); $contents = fread($handle, filesize($source)); var_dump($contents); //ouput: string(158) "09:34:28 VirtualDisk -....xxxxxxxx" 8.int file_put_contents ( string $filename, mixed $data [, int $flags [, resource $context]] ) a.Cho phép ghi nội dung vào file, nếu file ko tồn tại thì sẽ tạo file mới b.$data ở đây có thể là một string, array hoặc stream resource. Nếu data là một array thì function này sẽ tự động convert array thành string và ghi vào file. Việc convert này tương đương với việc ta dùng hàm implode(“”, $array) c.$flags ở đây nhận một số giá trị: ·FILE_APPEND: ghi tiếp tục vào file, ko ghi đè ·LOCK_EX: lock file trước khi ghi nội dung PHP Code: $source = "C:\\testlog.php"; $data = "This is a string"; $data2 = array('element 1', 'element 2','element 3'); $res = file_put_contents($source, $data2); //Content of file: element 1element 2element 3 $res1 = file_put_contents($source, $data); //Content of file: This is a string 9.array fgetcsv ( resource $handle [, int $length [, string $delimiter [, string $enclosure [, string $escape]]]] ) a.Đọc nội dung file CSV theo từng dòng 10.int fputcsv ( resource $handle, array $fields [, string $delimiter [, string $enclosure]] ) a.Ghi nội dung ra file CSV PHP Code: $csvfile = "C:\\xxx.csv"; $csvfile2 = "C:\\xxx1.csv"; $f = fopen($csvfile, "r"); while ($r = fgetcsv($f)) { $array[] = $r; } print "
";
print_r($array);

$f2 = fopen($csvfile2, "w+");
foreach ($array as $v) {
fputcsv($f2,$v);
}
fclose($f);
fclose($f2);  

Làm lại từ đầu

Chuỗi ngày qua đủ cho mình biết vị trí của mình ở đâu và như thế nào trong thế giới này. mình không được bỏ cuộc không thay đổi nữa. Cố lên và bắt đầu lại từ đầu. Bắt đầu muộn còn hơn kết thúc không trọn vẹn.

10 dự án lập trình viên PHP nên trải qua


Đối với một lập trình viên PHP bạn luôn hiểu rằng PHP là một ngôn ngữ phổ biến và có một lượng khổng lồ mã nguồn để tham khảo, đa số các thành phần của một Website đã được phát triển dưới dạng nguồn mở việc sử dụng nó yêu cầu tuân thủ theo giấy phép của tác giả đôi khi không bao gồm sự ràng buộc nào.

Việc mở mã nguồn mang lại rất nhiều lợi ích so với việc bạn giữ mã nguồn của mình trừ trường hợp thương mại hóa sản phẩm, đơn cử như:

* Mã nguồn mở được đóng góp bởi nhiều người, kết quả của sản phẩm được làm bởi nhiều người sẽ tốt hơn rất nhiều so với việc bạn phát triển một mình.
* Dễ dàng cập nhật tính năng mới dựa trên sự đóng góp mã nguồn của các nhà phát triển khác nhau.
* Giảm thời gian phát triển, giảm giá thành sản phẩm…
* và nhiều lợi ích khác nữa…

PHP Module

Tớ đã làm việc với PHP trong khoảng 4 năm trở lại đây, bản thân là một Freelance Developer nên không tự cho rằng mình là Master PHP bởi tớ luôn sử dụng PHP như một thành phần phát triển theo ý thích chứ không tâm niệm mình phải làm chủ được ngôn ngữ đó
Những dự án dưới đây là những thành phần phổ biến của một Website, tính thông dụng của nó như là một bắt buộc phải biết đối với Web Developer.

* Gửi eMail: Đây là tính năng phổ biến nhất của mọi Website, hàm mail(); là đủ cho hầu hết các yêu cầu khác nhau của người dùng, ngoài ra PHP còn hỗ trợ một số hàm khác nếu bạn muốn đính kèm tập tin hay gửi mail của SMTP server để có thể dễ dàng tạo một chương trình gửi eMail.
* Hỗ trợ người dùng: cho phép cá nhân hóa nội dung Website, có thể đa sở hữu, phân cấp quyền quản lý thông tin của cá nhân cũng như các nội dung khác. Tính năng chính của thành phần này hỗ trợ việc đăng nhập, truy vấn sửa đổi cơ sở dữ liệu, phiên làm việc…
* Tạo RSS, tin rút gọn Feeds: Thời điểm hiện tại Website của bạn sẽ được đánh giá là tụt hậu nếu không hỗ trợ Feed trong việc cung cấp thông tin, lấy tin bằng Feed cho phép người dùng đơn giản hóa việc theo dõi nội dung của một Website nào đó. Tớ sử dụng Magpie RSS trong phần lớn các dự án của mình.
* Xác định vị trí: xác định vị trí địa lý của người dùng đơn giản nhằm thống kê lượng người truy cập nội dung từ nước nào để có thể phục vụ tốt hơn, tính năng này không thật sự quan trọng nhưng đôi khi lại khá hiệu quả nếu bạn muốn biết người của nước nào hay vào Website mình nhất
* Lấy thông tin từ xa: truy vấn thông tin từ nhiều nguồn khác nhau, thích hợp với một cổng thông tin tổng hợp, các nội dung này được lưu vào cơ sở dữ liệu.
* Lưu tạm dữ liệu {Cache data}: giảm truy vấn tới cơ sở dữ liệu, tránh quá tải hệ thống do phần lớn các dự án cá nhân không được tối ưu về mã nguồn cũng như hiệu xuất làm việc, lưu tạm dữ liệu là một giải pháp đơn giản đề tối ưu hệ thống Website có thể hoạt động ổn định.
* Hệ thống giao diện: Dễ dàng thay đổi giao diện Website, đơn giản hóa quá trình thiết kế, giảm công sức tạo lập Website mới. Một hệ thống giao diện tốt không có nghĩa là phải đầy đủ tính năng mà chỉ cần đáp ứng được đúng nhu cầu sử dụng, tốt nhất là bạn nên tự viết sẽ hoàn hảo hơn sử dụng của người khác, theo tớ thì Hệ thống giao diện gần như là nhân {core} của một hệ thống quản lý nội dung. Tiêu biểu như Smarty của PHP
* BBcode: Tính năng thường thấy của các diễn đàn, nó đơn giản hóa việc trình bày nội dung giúp người sử dụng thông thường có thể tạo một văn bản chuyên nghiệp mà không cần biết về mã HTML, khách hàng của bạn sẽ dễ dàng sử dụng nó như một ứng dụng văn phòng mà thôi. Hãy thử StringParser_BBcode vì nó rất dễ tùy biến theo ý muốn của bạn.
* Hệ thống truy vấn cơ sở dữ liệu: Cơ sở dữ liệu là phương án tối ưu nhất để lưu trữ dữ liệu của bạn, dữ liệu của bạn có thể lưu trong một hệ CSDL lớn như Mysql hay đơn giản như là một Text file thì hệ thống truy vấn cơ sở dữ liệu sẽ hỗ trợ việc truy vấn dữ liệu, đơn giản và giản lược mã nguồn đi rất nhiều, giảm bớt công sức viết mã nguồn. Cũng như hệ thống giao diện nó là một trong những thành phần quan trọng nhất của tớ khi viết một dự án Web. Hãy thử ezSQL để giảm bớt khai báo truy vấn cho từng query của bạn.
* Môi trường nhập liệu văn bản: Về cơ bản nó là một dạng xử lý nội dung form được hỗ trợ bở Javascript và kết hợp BBCode nhằm phục vụ người dùng một cách tốt nhất có thể, mục đích của nó là cố gắng mô phỏng môi trường làm việc như các ứng dụng văn phòng. FCKEditor là một ví dụ đơn giản nhất

Mỗi người một quan điểm khác nhau nhưng ít nhiều ai cũng từng phải làm việc qua một trong những dự án trên, 10 thành phần đó không phải là toàn bộ mà chỉ là thông dụng thôi.

Theo narga.net
February 2012
M T W T F S S
January 2012March 2012
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29