Áp dụng GnuPG vào việc bảo mật giao tiếp giữa 2 server

Tôi may mắn có dịp được làm vài dự án có liên quan đến mã hoá, lĩnh vực mà tôi chả biết gì, nhớ lại thời đi học cứ mỗi lúc thầy Khang Võ (khoa mạng máy tính dạy) thì nổ lùng bùng cái đầu (có lẽ thời đó quá gà, hoặc có thể thầy dạy khó hiểu quá xD :))). Rảnh rổi, ngồi gom góp tổng hợp lại, biết đâu ai đó lại cần, mà cũng có thể diễn giải theo cách của dân không chuyên lại dễ hiểu hơn cho các bạn cần tìm hiểu về mã hoá, và các ứng dụng thực tế của nó....

September 21, 2020 · 4 min · longka

Check python syntax within nodejs application

Sometimes , we need to check the python script syntax in a NodeJS application. For eg: a formular is stored in a database (via NodeJS application) as a python script syntax, then we use python eval() function to execute that python function. # invalid syntax, lack of ) in the end of the line "(20000 if x <= 4 else 20000 + (x - 4) *5000 " We can use NodeJS child process to call to python (py_compile module) to check the syntax only (not exec)...

June 12, 2018 · 1 min · longka

php - is isset way is faster than array_search?

Theory speaking, looking into hashmap (isset) is faster than array_search or in_array. But, let’s see how it work in php in practice. Look at this code block: function detectGender($keyword) { $gender = 0; $genderKeywords = [ 'MY' => [ 1 => 'men,male', 2 => 'women,female', ], 'SG' => [ 1 => 'men,male', 2 => 'women,female', ], 'HK' => [ 1 => 'men,male', 2 => 'women,female', ], 'PH' => [ 1 => 'men,male', 2 => 'women,female', ], 'TH' => [ 1 => 'ชาย,ผชาย', 2 => 'หญง,ผหญง', ], 'VN' => [ 1 => 'nam', 2 => 'nu', ], 'ID' => [ 1 => 'pria', 2 => 'wanita', ], ]; foreach ($genderKeywords['VN'] as $key => $keywords) { if (array_search($keyword, explode(',', $keywords)) !...

March 13, 2018 · 3 min · longka

Mockery exception: could not load mock class already exists

Mockery\Exception\RuntimeException: Could not load mock , class already exists When working with those spaghetti legacy code base, sometimes, it is fucking hard to write the test along with refactoring. We may face with some situation that need to mock the public static function call. class Foo { public function bar() { Utils::staticFunction(); // do another thing } } And the test class: use \Mockery as m; use Foo; class FooTest { public function testBar() { $out = new Foo(); $utils = m::mock('alias:Utils'); $util->shouldReceive('staticFunction')->withAnyArgs(); $out->bar(); // do another mock and test } } We use mockery to mock the static function call, run the test with single function, it’s green....

July 5, 2017 · 1 min · longka

SEO Bot baiting from idea to practice

What the hell is BOT: * Those big giant search engine has there own bot for scrapping all the data of the website everyday * Understanding how the search engine bot works will help us a lot when doing SEO Bot Bating concept: Main idea: injecting those page with high google search volume (GSV), but low google crawling frequency (GCF) INTO those pages have high GCF Google search volume (GSV) https://support....

July 4, 2017 · 1 min · longka

Don't make things complicated

This is the email I received from Edmond (blog) - author of The Effective Engineer book. I think it’s good to re-share here on my blog. – “It’ll only take me a few hours to implement the feature,” we sometimes say. But after finishing, we find that every few weeks, we’re either fixing a bug with the feature, explaining it to another engineer, or helping answer a question from customer support about how it works....

June 7, 2017 · 9 min · longka

kết hợp cat grep awk khi xử lý log file trong linux

cat grep awk là những lệnh hay dùng và cực kỳ tiện lợi khi làm việc với log file. Trong phạm vi bài viết này, giả sử tôi có một đống log file rất lớn Và tôi muốn, in nội dung của đống log trên vào một file khác csv chẳng hặn, nội dung file csv như trên nhưng thay dấu “:” bằng tab Có rất nhiều cách, lệnh sed chẳng hạn, nhưng trong bài này tôi muốn kết hợp cat grep awk để xử lý và dùng cờ(flag) F để replace “:” thành tab....

May 25, 2017 · 1 min · longka

Lảm nhảm cuối tuần

Cuối tuần, rảnh rỗi, vô tư gẫm nghĩ lung tung. Chuyện này, đan chuyện kia, đan đến chuyện học guitar, học tập, viết lách. Túm lại là lảm nhảm … Hồi nhỏ, lúc còn nhỏ, còn vô tư lắm - lúc đó lớp 2 hay lớp 3 gì đó, một bài tập làm văn ghép chữ “hoa phượng” và “đỏ chói”. Tôi nối từ đỏ chói sang hoa phượng, thế là ra từ “đỏ chói hoa phượng”....

May 6, 2017 · 6 min · longka

Sáu phép tịnh tiến của Inamori Kazuo

Tôi may mắn được đọc cuốn “Cách Sống” của tác giả Inamori Kazuo. Tôi nghĩ đọc đi đọc lại và trích dẫn lại những đoạn hay từ cuốn sách sẽ giúp tôi nhớ lâu hơn và biết đâu được ai đó vô tình lướt qua blog sẽ biết nó. Nỗ lực để không thu kém người khác Đi sâu vào nghiên cứu học hỏi nhiều hơn người khác và duy trì nghiêm túc quá trình này....

May 3, 2017 · 2 min · longka

pagekit-formmaker extension event handler

pagekit-formmaker is a good extension of pagekit cms for dealing with user feedback https://github.com/Bixie/pagekit-formmaker Beside good functionality, there are quite lots configurable options when playing with this extension. For eg: if you wanna add a Cc email after client submit a feedback Well, let’s take a look at their code, in this line App::trigger('formmaker.form.submission', [$form, $submission]); It triggers an event after saving client’s submission to the database. The event name is formmaker....

May 1, 2017 · 1 min · longka