21 thg 2, 2018

66 câu thiền ngữ trong kinh điển Phật giáo

9 thg 1, 2018

Tên file bằng Tiếng Nhật trong zip file


Khi làm việc với khách hàng Nhật Bản. Đôi khi mình nhận được tập tin nén dạng zip, 7z. Trong đó tên file đặt bằng Tiếng Nhật. Tuy nhiên khi chúng ta giải nén thì tên file không hiển thị được mà bị vỡ (corrupt).
Nguyên nhân là chúng ta đang dùng PC (Windows, Mac, Linux) bản quốc tế hỗ trợ Unicode. Còn khách hàng chúng ta đang dùng bản có encoding là shift_jis.
Giải pháp: Sử dụng tool tên là unar. Tool này tự nhận biết encoding của tên file trong file nén và giữ nó khi giải nén.
Tải tool này tại liên kết: https://theunarchiver.com/command-line
Đây là command line tool, do đó để sử dụng chỉ cần copy nó ở chỗ nào thuận lợi cho bạn. Mở Terminal lên và di chuyển đến thư mục chứ unar tool và gõ câu lệnh:
unar đường_dẫn_đến_file_nén
Chúc bạn thành công

5 thg 12, 2017

Top ten must read books for Software Architects


  1. R.Taylor, N. Medvidovic, E.Dashofy-Software Architecture: Foundations, Theory, and Practice, Wiley, 2009, ISBN:978-0470167748
  2. F.Buschmann,‎ R.Meunier,‎ H.Rohnert,‎ P.Sommerlad, M.Stal-Pattern-Oriented Software Architecture Volume 1: A System of Patterns, Wiley, 1996, ISBN:978-0471958697
  3.  E.Gamma,‎ R.Helm,‎ R.Johnson,‎ J.Vlissides-Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley Professional, 1994, ISBN:978-0201633610
  4. L.Bass,P.Clements,‎ R.Kazman-Software Architecture in Practice (3rd Edition) (SEI Series in Software Engineering), Addison-Wesley Professional, 2012, ISBN:978-0321815736
  5. S.Brown-Software Architecture for Developers, LeanPub, 2012,ISBN: Ebook
  6. I.Gorton-Essential Software Architecture, Springer, 2011, ISBN:978-3642191756
  7. M.Lippert, S.Roock-Refactoring in Large Software Projects: Performing Complex Restructurings Successfully, Wiley, 2007, ASIN: B0014ELAZA
  8. N.Rozanski, E.Woods-Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives (2nd Edition), Wesley Professional, 2011, ISBN:978-0321718334
  9. M.Fowler-Patterns of Enterprise Application Architecture, Wesley Professional, 2002, ISBN:978-0321127426
  10. D.Hendricksen-12 Essential Skills for Software Architects, Wesley Professional, 2011, ISBN:978-0321717290

29 thg 11, 2017

In stacktrace trong C++

Trong lập trình C++, rất nhiều tình huống debug bạn muốn in stacktrace giống như Java. Đoạn chương trình sau sẽ giúp bạn đạt được mục tiêu đó

#include <execinfo.h> // for backtrace
#include <dlfcn.h>    // for dladdr
#include <cxxabi.h>   // for __cxa_demangle

#include <cstdio>
#include <cstdlib>
#include <string>
#include <sstream>
std::string P2Camconnection::Backtrace(int skip)
{
    void *callstack[128];
    const int nMaxFrames = sizeof(callstack) / sizeof(callstack[0]);
    char buf[1024];
    int nFrames = backtrace(callstack, nMaxFrames);
    char **symbols = backtrace_symbols(callstack, nFrames);

    std::ostringstream trace_buf;
    for (int i = skip; i < nFrames; i++) {
        printf("%s\n", symbols[i]);

        Dl_info info;
        if (dladdr(callstack[i], &info) && info.dli_sname) {
            char *demangled = NULL;
            int status = -1;
            if (info.dli_sname[0] == '_')
                demangled = abi::__cxa_demangle(info.dli_sname, NULL, 0, &status);
            snprintf(buf, sizeof(buf), "%-3d %*p %s + %zd\n",
                     i, int(2 + sizeof(void*) * 2), callstack[i],
                     status == 0 ? demangled :
                     info.dli_sname == 0 ? symbols[i] : info.dli_sname,
                     (char *)callstack[i] - (char *)info.dli_saddr);
            free(demangled);
        } else {
            snprintf(buf, sizeof(buf), "%-3d %*p %s\n",
                     i, int(2 + sizeof(void*) * 2), callstack[i], symbols[i]);
        }
        trace_buf << buf;
    }
    free(symbols);
    if (nFrames == nMaxFrames)
        trace_buf << "[truncated]\n";
    return trace_buf.str();
}


25 thg 11, 2017

UNG THƯ TÂM HỒN


Bài này copy từ Internet. Mình chỉ sưu tầm và chia sẻ vì thấy nó hay. Xin cám ơn tác giả.
1. NGẠO MẠN
Loại ung thư tâm hồn này hủy diệt cái Thấy. Nó bẻ cong các chiều hướng của không gian nhận thức, triệu chứng phát ra ngoài là ảo tưởng về sự lớn, sự quan trọng, sự kiểm soát, sự độc lập của bản thân và dẫn tới triệu chứng di căn là khi cảm thấy quan trọng hơn tất thảy mọi thứ xung quanh.
Ngoài ra, loại ung thư này dễ tạo nhiều triệu chứng mà bệnh nhân không kiểm soát nổi. Đó là cảm giác cáu, giận khi người khác không làm theo ý mình. Triệu chứng gồm có Khó chịu khi nghe sự thật, dị ứng khi bị người khác góp ý. Bệnh nặng lên sẽ dẫn tới mất hoàn toàn khả năng học tập và huyễn tưởng mình có câu trả lời cho mọi câu hỏi.
2. ÍCH KỶ
Loại ung thư này làm tê liệt người bệnh bằng một cảm giác phải sở hữu. Người bệnh cảm thấy đáng được có nhiều điều hơn là cuộc sống đã ban cho họ. Vì thế, họ bị huyễn tưởng về một vũ trụ mà họ là trung tâm. Mọi thứ đều phải hút về họ, thuộc về họ. Sự tập trung vào sở hữu làm họ hoàn toàn phát triển kháng thể với Hạnh Phúc. Và những người này hoàn toàn mất đi khả năng hạnh phúc.
Vì sao? Bởi vì hạnh phúc đến từ việc phục vụ người khác. Hạnh phúc đến bởi lực hướng ngoại. Một người chỉ phục vụ chính mình và bắt buộc mọi thứ xung quanh phải phục vụ họ đi ngược chiều hướng này. Và vì thế, mọi mối quan hệ của họ đều đổ vỡ khi bệnh nặng lên.
Ngoài ra, một phản ứng phụ của loại ung thư này làm cho bệnh nhân bị mù. Mù không nhìn thấy nhu cầu của người khác. Sau đó là bị phù nề. Họ mất đi khả năng cảm nhận thế giới.
3. THAM LAM
Loại ung thư này làm cho bệnh nhân phát điên rồ. Và người bệnh nằm ở trong một trạng thái bất hạnh và đau đớn không ngừng. Họ bị mất trí nhớ về những gì họ đang có. Họ chỉ muốn có thêm nhiều nữa. Và vì thế, rất nhiều thứ quan trọng bị xóa khỏi trí nhớ của họ.
Trong quá trình bệnh phát triển, các tế bào lòng tốt, sự biết ơn, sự kiên nhẫn, lòng dũng cảm, sự trung thực v.v... dần bị thay thế bởi các tế bào hỏng hóc và lỗi. Một số triệu chứng thường được nhận thấy là họ thường xuyên so sánh với người khác về cái mà người khác có, thường xuyên than thở về điều kiện, sau đó là các triệu chứng như nói dối, lừa đảo để đạt điều họ muốn.
4. HAM MUỐN
Đây là một loại virus mang lại ung thư. Loại virus này thường được thể hiện ra bằng lời hứa không được giữ và cuộc sống đa nhân cách. Di chứng để lại là tai và mắt bị di chuyển lệch khỏi chỗ. Triệu chứng của loại ung thư này thể hiện ra bởi các loại dối trá và các suy nghĩ ti tiện.
5. HÈN NHÁT
Ung thư hèn nhát kinh khủng hơn sự viêm nhiễm của sợ hãi rất nhiều. Những người bị ung thư tâm hồn dạng hèn nhát sẽ bị bại liệt toàn thân. Loại ung thư này ăn nát nội tạng Quyết tâm và Quyết đoán. Vì thế, tất cả các giác quan liên quan tới cơ hội và phát triển đều suy giảm nặng.
KẾT LUẬN
Như các loại ung thư của cơ thể, ung thư tâm hồn, nếu không chữa trị kịp thời từ giai đoạn đầu sẽ lan truyền tới các cơ quan sống còn, hủy diệt nhân cách, tàn phá cá tính, gây thối rữa đức tin và tình yêu thương.
Khi ấy, dù cơ thể có khỏe thì cũng chỉ là một loại xác sống lờ đờ trong chốn nhân gian.

17 thg 11, 2017

Lưu ý khi debug hydrid application ở iOS


Sáng nay mất cả mấy tiếng đồng hồ tại sao cái iPad của mình không xuất hiện trong Developer menu của thằng Safari trên Mac OS PC. Kiểm tra tất cả cấu hình đều OK hết.
Cuối cùng mới phát hiện ra là cái iPad mình sử dụng iOS 11 tức là nó dùng Safari 11. Còn cái Mac OS PC thì đang dùng Safari 10.

10 thg 11, 2017

Phân biệt iPhone hay iPad trong Qt

Trong một số chương trình nhất là layout màn hình mình cần phân biệt iPhone hay iPad. Hàm sau đây sẽ giúp bạn thực hiện điều đó:

#if defined Q_OS_IOS
#include <sys/utsname.h>
QString deviceName()
{
    struct utsname systemInfo;
    uname(&systemInfo);
    QString machineName(systemInfo.machine);
    return machineName;
}
#endif

Related Posts Plugin for WordPress, Blogger...