Group Details Private

Global Moderators

Forum wide moderators

  • RE: Cache variables in memory

    @Lê-Duy-Trung Nếu bạn muốn sử dụng được luôn mà ko cần khởi tạo đối tượng (sử dụng toán tử new) thì nên dùng memory-cache có vẻ tiện hơn. Với node-cache thì có nhiều options với api hơn cho bạn lựa chọn, ví dụ như lấy nhiều giá trị cùng 1 lúc mget, ... tùy nhu cầu của bạn mà quyết định sử dụng cái nào.

    Nhân tiện đây mình cũng viết 1 thư viện node cache, tên là kiper. Một số tính năng mới mình thêm vào:

    • Lấy đối tượng được cache theo tiêu chí mà giá trị nó mang
    • Xóa đối tượng cache không được sử dụng trong 1 thời gian timeout.
    • Theo dõi đối tượng cache thay đổi giá trị của nó

    Bạn tham khảo thêm bài mình giới thiệu ở đây về Kiper:

    posted in General Discussion
  • RE: Lỗi Configuration property "token" is not defined khi dùng PM2

    @lamphanqt Bạn phải kiểm tra trong ứng dụng khi chạy chứ? Đâu phải trên cmd/terminal như kia :D

    Thế này nhé! Bạn tạo 1 thư mục config ngang cấp với file package.json, nếu có rồi thì thôi, sau đó tạo cả 2 file default.jsonproduction.json có cùng nội dung như sau:

    {
        "token": "XXXXXX_TOKEN_CUA_BAN"
    }
    

    Chạy lại bằng pm2 xem ok không ?

    posted in General Discussion
  • RE: Lỗi Configuration property "token" is not defined khi dùng PM2

    @lamphanqt Bạn kiểm tra xem pm2 đang sử dụng biến môi trường NODE_ENV là gì ? Có 2 tình huống mà bạn cần kiểm tra xem tn.

    • Nếu NODE_ENV=production, thì kiểm tra file cấu hình ./config/production.json (hoặc .yml nếu bạn dùng YAML) đã có cấu hình token chưa ?
    • Nếu NODE_ENV=development, thì kiểm tra file cấu hình ./config/default.json (hoặc .yml nếu bạn dùng YAML) đã có cấu hình token chưa ?
    posted in General Discussion
  • Otomat Search - Tìm kiếm mẫu xấp xỉ, động và mềm dẻo theo tiếp cận Otomat mờ

    Hi,

    Thời sinh viên mình có nghiên cứu về tìm kiếm văn bản. Kết quả khá tốt và có được chương trình thử nghiệm, mà nghĩ để trong máy thì vô giá trị. Nay mình public source code và chuyển đổi mã nguồn từ .NET sang NodeJS. Hi vọng sẽ có ích cho các bạn có nhu cầu 1 lúc nào đó. :D

    Các bạn có thể tìm thấy báo cáo và mã nguồn ở đây:

    Một vài hình ảnh

    1. Tìm kiếm mẫu chính xác, pattern: giấy phép + nộp lệ phí

    0_1507871543443_Tim mau chinh xac + dynamic.PNG

    1. Tìm kiếm mẫu xấp xỉ, pattern: (c.quan + cấp tỉnh) % nộp l.phí

    0_1507871563665_Tim kiem mau xap xi + dynamic.PNG

    posted in Showcase - Open Source
  • RE: Nodejs express router treo... press ctrl + C

    @Lê-Duy-Trung À bạn chú ý thêm các thao tác sử dụng chuột của mình nhé! Bạn đang dùng Windows 10 phải ko ? Khi bạn nhỡ đặt click 1 lần lên màn hình CMD thì nó chuyển dang mode Edit và toàn bộ tiến trình đang chạy trên CMD bị dừng, cần click chuột phải hoặc Ctrl + C. Nếu muốn tránh tình trường hợp này thì chuyển sang Git bash hoặc Bash on Ubuntu on Windows.

    posted in General Discussion
  • RE: Nodejs express router treo... press ctrl + C

    @Lê-Duy-Trung Nếu code ko quá private thì bạn share cho mọi người xem giúp. Có lẽ chỉ là cấu hình chưa đúng thôi ;)

    posted in General Discussion
  • RE: Nodejs express router treo... press ctrl + C

    @Lê-Duy-Trung Bạn dùng OS gì ? có chạy các nghiệp vụ nặng gì ko ? bạn đã xem xét các cấu hình liên quan chưa ?

    posted in General Discussion
  • RE: Thư viện fulltextsearch(Chắc chỉ hỗ trợ tiếng Việt)

    @Khoa-Lê-Duy said in Thư viện fulltextsearch(Chắc chỉ hỗ trợ tiếng Việt):

    Theo những gì mình nhận ở đây
    1, Theo cách mình làm nó sẽ đẩy phần xử lý về phía mongodb
    2, Kết hợp với bộ từ điển như trên thì lại đẩy phần xử lý về phía nodejs
    Mình cũng không rõ cái nào tối ưu
    Cần ai đó phán xử vụ này

    Benchmark về hiệu năng chắc phải có kế hoạch cẩn thận, trước và sau khi áp dụng, so với tool khác thì như thế nào.

    Nhưng nếu nhét vào mongodb những data đó hoặc có cơ chế cache kiểu gì đó chắc giải quyết được

    File từ điển này thì cũng nhẹ, việc đọc 1 lần lúc khởi động + truy xuất bộ nhớ thì nhanh hơn nhiều nên có thể ko cần dùng thêm cơ chế cache khác nữa.

    Thôi thì what the "best choose"? :)

    Trong quá trình phát triển, cải tiến sẽ biết được cái nào là the best :D

    posted in Showcase - Open Source
  • RE: Thư viện fulltextsearch(Chắc chỉ hỗ trợ tiếng Việt)

    Mình sẽ sớm đưa bộ từ điển này vào Vntk, toolkit cho NodeJS.

    posted in Showcase - Open Source
  • RE: Thư viện fulltextsearch(Chắc chỉ hỗ trợ tiếng Việt)

    @Khoa-Lê-Duy do chưa trải nghiệm nên mình cũng ko biết đóng góp thế nào :)) Ko biết vấn đề hiện tại của thư viện :D

    Như mình thấy có 1 vấn đề lớn ở đây, cỡ hòn sỏi, ko phải là hạt sạn :v

    // tổng hợp mẫu tìm kiếm, thì nó ra thế này
    
    fullTextSearchVi('xin chào')
    "xin|xìn|xỉn|xĩn|xín|xịn|chào|chao|chảo|chão|cháo|chạo|chăo|chằo|chẳo|chẵo|chắo|chặo|châo|chầo|chẩo|chẫo|chấo|chậo|chaò|chaỏ|chaõ|chaó|chaọ|chaô|chaồ|chaổ|chaỗ|chaố|chaộ|chaơ|chaờ|chaở|chaỡ|chaớ|chaợ|chàò|chàỏ|chàõ|chàó|chàọ|chàô|chàồ|chàổ|chàỗ|chàố|chàộ|chàơ|chàờ|chàở|chàỡ|chàớ|chàợ|chảò|chảỏ|chảõ|chảó|chảọ|chảô|chảồ|chảổ|chảỗ|chảố|chảộ|chảơ|chảờ|chảở|chảỡ|chảớ|chảợ|chãò|chãỏ|chãõ|chãó|chãọ|chãô|chãồ|chãổ|chãỗ|chãố|chãộ|chãơ|chãờ|chãở|chãỡ|chãớ|chãợ|cháò|cháỏ|cháõ|cháó|cháọ|cháô|cháồ|cháổ|cháỗ|cháố|cháộ|cháơ|cháờ|cháở|cháỡ|cháớ|cháợ|chạò|chạỏ|chạõ|chạó|chạọ|chạô|chạồ|chạổ|chạỗ|chạố|chạộ|chạơ|chạờ|chạở|chạỡ|chạớ|chạợ|chăò|chăỏ|chăõ|chăó|chăọ|chăô|chăồ|chăổ|chăỗ|chăố|chăộ|chăơ|chăờ|chăở|chăỡ|chăớ|chăợ|chằò|chằỏ|chằõ|chằó|chằọ|chằô|chằồ|chằổ|chằỗ|chằố|chằộ|chằơ|chằờ|chằở|chằỡ|chằớ|chằợ|chẳò|chẳỏ|chẳõ|chẳó|chẳọ|chẳô|chẳồ|chẳổ|chẳỗ|chẳố|chẳộ|chẳơ|chẳờ|chẳở|chẳỡ|chẳớ|chẳợ|chẵò|chẵỏ|chẵõ|chẵó|chẵọ|chẵô|chẵồ|chẵổ|chẵỗ|chẵố|chẵộ|chẵơ|chẵờ|chẵở|chẵỡ|chẵớ|chẵợ|chắò|chắỏ|chắõ|chắó|chắọ|chắô|chắồ|chắổ|chắỗ|chắố|chắộ|chắơ|chắờ|chắở|chắỡ|chắớ|chắợ|chặò|chặỏ|chặõ|chặó|chặọ|chặô|chặồ|chặổ|chặỗ|chặố|chặộ|chặơ|chặờ|chặở|chặỡ|chặớ|chặợ|châò|châỏ|châõ|châó|châọ|châô|châồ|châổ|châỗ|châố|châộ|châơ|châờ|châở|châỡ|châớ|châợ|chầò|chầỏ|chầõ|chầó|chầọ|chầô|chầồ|chầổ|chầỗ|chầố|chầộ|chầơ|chầờ|chầở|chầỡ|chầớ|chầợ|chẩò|chẩỏ|chẩõ|chẩó|chẩọ|chẩô|chẩồ|chẩổ|chẩỗ|chẩố|chẩộ|chẩơ|chẩờ|chẩở|chẩỡ|chẩớ|chẩợ|chẫò|chẫỏ|chẫõ|chẫó|chẫọ|chẫô|chẫồ|chẫổ|chẫỗ|chẫố|chẫộ|chẫơ|chẫờ|chẫở|chẫỡ|chẫớ|chẫợ|chấò|chấỏ|chấõ|chấó|chấọ|chấô|chấồ|chấổ|chấỗ|chấố|chấộ|chấơ|chấờ|chấở|chấỡ|chấớ|chấợ|chậò|chậỏ|chậõ|chậó|chậọ|chậô|chậồ|chậổ|chậỗ|chậố|chậộ|chậơ|chậờ|chậở|chậỡ|chậớ|chậợ"
    

    Trước khi tổng hợp mẫu tìm kiếm, bạn nên map nó với 1 từ điển tiếng Việt trước. Đây là dự án mã mở về xử lý tiếng việt mình đang contribute cùng, bạn tham khảo bộ từ điển của nó:

    Sample trong python, việc chuyển nó sang nodejs không khó:

    from unittest import TestCase
    from underthesea.dictionary import Dictionary
    from underthesea.feature_engineering.text import Text
    
    
    class TestDictionary(TestCase):
        def test_1(self):
            dictionary = Dictionary.Instance()
            senses = dictionary.lookup(Text("đi"))
            self.assertEqual(22, len(senses))
            sense = senses[0]
            self.assertEqual("V", sense["pos"])
            self.assertGreater(len(sense["definition"]), 0)
    
        def test_2(self):
            dictionary = Dictionary.Instance()
            word = dictionary.lookup(Text("không có từ này"))
            self.assertEqual(None, word)
    
    posted in Showcase - Open Source