This is my blog: vuvanson.tk

Go to Blogger Vi-et Spaces.

This is my blog: sonblog.tk

Go to Blogger Vi-et Spaces.

This is my blog: vi-et.tk

Go to Blogger Vi-et Spaces.

This is my facebook: https://www.facebook.com/vusonbk

Go to Facebook Blogger Vi-et Spaces.

This is my facebook page: https://www.facebook.com/ViEtSpaces

Go to Facebook Page Blogger Vi-et Spaces.

Thứ Hai, 29 tháng 6, 2020

Khắc phục lỗi SearchFilterHost.exe - CPU cao [Vô hiệu hoá / Lỗi]

Giới thiệu microsoft như một tính năng al Windows VistaSearchFilterHost.exe là một quá trình được duy trì trên hệ điều hành Windows 7. Mặc dù nó nằm trong thư mục tập tin lõi (C: WINDOWSSystem32), Bạn có thể làm cho quá trình này mà không làm giảm tốt chức năng hệ điều hành. Cùng với SearchIndexer.exe si SearchProtocolHost.exe, SearchFilterHost.exe, nói Dịch vụ lập chỉ mục.

CPU searchfilerhost

Thứ Năm, 7 tháng 5, 2020

SDN là gì? Tại sao SDN lại là xu thế cho công nghệ mạng tương lai?

SDN (Software-defined networking) là một công nghệ mạng mới ra đời trong vòng chục năm trở lại đây và được giới thiệu là công nghệ mạng cải tiến, cách mạng cho công nghệ mạng hiện tại. Tuy nhiên “SDN là gì?“, “Openflow là gì?“, “Tại sao nó lại là xu thế cho công nghệ mạng tương lai?” là những câu hỏi mà không phải ai cũng trả lời được một cách rõ ràng. Bài viết này sẽ tập trung vào trả lời những câu hỏi trên.
Đây là bài đầu tiên trong series bài biết Tổng quan về SDN. Để theo dõi những bài viết khác trong series này, bạn có thể tham khảo tại đây.
SDN là gì
Nguồn: Cumulus Networks
Dạo trước đón sau như vậy là đã đủ rồi, giờ chúng ta hãy cùng bắt đầu với nội dung chính của bài viết.

Thứ Bảy, 4 tháng 4, 2020

Các loại đui đèn xoắn theo tiêu chuẩn tại Việt Nam

Khi lựa chọn các dòng đèn chiếu sáng có đui xoáy để lắp mới, đặc biệt là khi thay thế bóng đèn cũ tại gia đình. Làm sao các bạn có thể lựa chọn đúng các loại đui đèn lắp vừa đế đèn cũ, mà không cần phải mang bóng đèn cũ ra hỏi người bán hàng?
Tất cả các dòng đèn: đèn sợ đốt, đèn huỳnh quang, đèn led thì đui đèn đều được sản xuất theo tiêu chuẩn chung. Nên bạn hoàn toàn có thể mua bóng đèn led về thay vào vị trí của các loại bóng đèn cũ, miễn là cùng chuẩn về đui đèn nhé.
Thông số về tiêu chuẩn đui đèn được nhà sản xuất ghi vào từng sản phẩm khi xuất xưởng. Kích thước đui đèn to hay nhỏ, thường tỷ lệ thuận với kích thước của bóng đèn.
Hôm nay, Fawookidi sẽ chia sẻ tới các bạn các tiêu chuẩn đui đèn thông dụng ở Việt Nam, để bạn dễ dàng xác định được loại đèn cần mua nhé.

Các loại đui đèn; Giá mua bán Đèn LED Fawookidi giá rẻ tại Hà Nội HN sài gòn tphcm thành phố hồ chí minh; đèn led chiếu sáng Fawookidi giá rẻ; đèn cắm cỏ Fawookidi; Đèn trang trí cắm cỏ Fawookidi; Đèn LED panel ốp nổi Fawookidi; Đèn led panel âm trần Fawookidi; Đèn LED panel tròn Fawookidi; Đèn led panel vuông Fawookidi; Đèn led panel đổi màu Fawookidi; Đèn led panel dimming dimmer Fawookidi; Đèn led panel mặt kính Fawookidi; Đèn led panel siêu mỏng Fawookidi; Đèn led ốp nổi Fawookidi; Đèn led âm trần Fawookidi; Đèn led bub Fawookidi; Đèn led tuýp tube Fawookidi; gia mua ban Den LED Fawookidi gia re , den led chieu sang Fawookidi gia re, den cam co Fawookidi; Den trang tri cam co Fawookidi; Den LED panel op noi Fawookidi; Den led panel am tran Fawookidi; Den LED panel tron Fawookidi; Den led panel vuong Fawookidi; Den led panel doi mau Fawookidi; Den led panel dimming dimmer Fawookidi; Den led panel mat kinh Fawookidi; Den led panel sieu mong Fawookidi; Den led op noi Fawookidi; Den led am tran Fawookidi; Den led bub Fawookidi; Den led tuyp tube Fawookidi tai ha noi HN tphcm thanh pho ho chi minh; Giá mua bán Đèn led downlight Fawookidi tại Hà Nội HN sài gòn tphcm thành phố hồ chí minh; Đèn led spotlight Fawookidi; Đèn led sân vườn Fawookidi; Đèn led pha hắt Fawookidi; Đèn led nhà xưởng Fawookidi; Đèn led dây Fawookidi; Đèn led thanh nhôm Fawookidi; Đèn led ray rọi ray Fawookidi; Đèn led rọi gương Fawookidi; Đèn led âm đất Fawookidi; Đèn led âm nước ngâm nước Fawookidi; Đèn led chùm trang trí Fawookidi; Đèn led tường Fawookidi; Đèn led chiếu hắt Fawookidi; Đèn dẫn hướng âm tường Fawookidi; gia mua ban Den led downlight Fawookidi; Den led sportlight Fawookidi; Den led san vuon Fawookidi; Den led pha hat Fawookidi; Den led nha xuong Fawookidi; Den led day Fawookidi; Den led thanh nhom Fawookidi; Den led ray roi ray Fawookidi; Den led roi guong Fawookidi; Den led am dat Fawookidi; Den led am nuoc ngam nuoc Fawookidi; Den led chum trang tri Fawookidi; Den led tuong Fawookidi; Den led chieu hat Fawookidi; Den dan huong am tuong Fawookidi tai ha noi HN tphcm thanh pho ho chi minh; Đèn led cao cấp Fawookidi; Den led cao cap Fawookidi; Đèn led trang trí fawookidi; Den led trang tri fawookidi;
Các loại đui đèn xoắn theo tiêu chuẩn

  • Chữ E là ký hiệu của đui xoắn

Thứ Năm, 26 tháng 3, 2020

Những tác dụng của phương pháp ‘Vẫy tay Đạt Ma Dịch Cân Kinh’

Phải có hào khí: nghĩa là có quyết tâm tập cho đến nơi và đều đặn, kiên nhẫn vững vàng, tin tưởng, không nghe lời bàn ra tán vào mà chán nản bỏ đi. Phải lạc quan: không lo sợ vì bệnh mà mọi người cho là bệnh hiểm nghèo và tươi tỉnh tin rằng mình sẽ thắng bệnh do luyện tập.

Trước tiên nói về tinh thần
Phải có hào khí: nghĩa là có quyết tâm tập cho đến nơi và đều đặn, kiên nhẫn vững vàng, tin tưởng, không nghe lời bàn ra tán vào mà chán nản bỏ đi. Phải lạc quan: không lo sợ vì bệnh mà mọi người cho là bệnh hiểm nghèo và tươi tỉnh tin rằng mình sẽ thắng bệnh do luyện tập

Thứ Ba, 18 tháng 2, 2020

Luyện Tập " Vẫy Tay Đạt Ma Dịch Cân Kinh"

Bài 1. Tác dụng kì diệu sau 20 năm vẩy tay

Đầu năm 1991, khi về nghỉ hưu, mới tròn 60 tuổi tôi đã có nhiều bệnh mạn tính: Huyết áp cao, viêm đại tràng, viêm họng hạt, trĩ nội…
Huyết áp có khi lên tới 160/100. Trĩ gây chảy máu liên tục có chu kì kéo dài cả nửa tháng. Viêm đại tràng luôn làm bụng quặn đau, táo bón rất khó chịu. Còn viêm họng hạt cứ hai ba tháng lại bị một lần, gây sốt nhẹ, ho khan kéo dài cả tuần lễ, uống kháng sinh, nhai lá “sống đời”, lá dẻ quạt, chanh muối… cũng chỉ đỡ một phần nào…
Sau Tết Tân Mùi đầu năm 1991, có ông bạn thân cùng quân ngũ thời chống Pháp khuyên tôi: “Ông nên tập vẩy tay đi, rất tốt. Chữa được nhiều bệnh thông thường, thậm chí còn phòng tránh được cả ung thư”. Mới đầu, tôi không tin, sau lại nghĩ mình cứ thử làm xem sao. Thế là bắt đầu nhập cuộc. Vừa tập theo hướng dẫn của bạn, tôi vừa tìm đọc các tài liệu của Trung Quốc. Qua đó, biết đây là phương pháp “Dịch cân kinh” một cách tập luyện đã có từ hơn 2.000 năm về trước của các võ sư, võ sinh Tây Tạng để rèn luyện sức khỏe trên đường hành hương kiếm sống qua sa mạc vùng Tây Á khắc nghiệt, chống chọi với bệnh tật và bọn “lục lâm thảo khấu” cướp đường.

Thứ Ba, 11 tháng 2, 2020

Sự khác nhau giữa parameter và argument


Chắc hẳn nhiều người vẫn còn boăn khoăn về sự khác nhau giữa hai thuật ngữ này khi đọc một số ebook và tham khảo tài liệu. Và sau đây là sự khác biệt giữa hai thuật ngữ này.
  1. Parameter (Tham số)Đây là những gì chúng ta gọi khi định nghĩa một hàm. Parameter sẽ đại diện cho một giá trị mà hàm của bạn sẽ nhận được khi được gọi. Ví dụ sau khai báo hàm có 2 tham số là x và y:
  2. int Add(int x, int y)
    {
        return (x+y);
    }
  3. Argument (Đối số)
    Đây là đại diện cho giá trị truyền cho parameter khi chúng ta thực hiện lời gọi hàm. Mỗi argument sẽ tương ứng với một parameter khi khai báo. Ví dụ sau thực hiện lời gọi hàm Add bên trên và truyền vào hai đối số là 3 và 5:
  4. int Sum = Add(3, 5);

Parameter là tên biến được khai báo trong phần định nghĩa hàm.

Argument là giá trị biến thực được truyền vào khi gọi hàm.

Trong C++
#include "stdafx.h"
#include <iostream>
 
int Sum(int a /*đây là Parameter*/, int b /*đây là Parameter*/)
{
    return a + b;
}
 
int main()
{
    std::cout << "Sum Program:" << "\n" << Sum(5 /*đây là Argument*/ ,10 /*cái này cũng là Argument*/) << "\n";
    system("pause" /*và cái này cũng là Argument*/);
    return 0;
}

Còn đây là C#
namespace ConsoleApplicationCS
{
    class Program
    {
        static void Main(string[] args /*đây là Parameter*/)
        {
            System.Console.WriteLine("Sum Program:" /*còn đây là Argument*/);
            System.Console.WriteLine(Sum(5, 10 /*đây cũng là Argument*/));
            System.Console.ReadLine();
        }
 
        static int Sum (int a, int b /*cả 2 đều là Parameter*/)
        {
            return a + b;
        }
    }
}

Nguồn bài viết: Sưu tầm

Thứ Sáu, 7 tháng 2, 2020

Cấu trúc của MPD MPEG-DASH

MPEG-DASH Media Presentation Description (MPD) là dạng XML document chứa thông tin về các phân đoạn media, các mối quan hệ và thông tin cần thiết để chọn giữa chúng và các siêu dữ liệu khác có thể được client cần.
Bài post này mô tả các phần quan trọng nhất của MPD, bắt đầu từ top-level (Period) và đến bottom level (Segment).

Period

Period nằm trong top-level của MPD cấp cao nhất, mô tả phần nội dung với thời gian bắt đầu và thời lượng là bao nhiêu. Period có thể được sử dụng cho scence (cảnh) hoặc chapter (chương) để tách biệt phần quảng cáo khỏi nội dung chương trình.

Adaptation Sets

Adaptation Set chứa luồng media hoặc tập hợp các luồng media. Trong trường hợp đơn giản nhất, một Period có thể có một Adaptation Set chứa tất cả nội dung âm thanh và hình ảnh, nhưng để giảm băng thông, mỗi luồng có thể được chia vào trong một Adaptation khác nhau. Một trường hợp phổ biến là một bộ Adaptive Video và nhiều bộ Adaptive Audio (giống như option có nhiều ngôn ngữ). Adaptive có thể chứa phụ đề (subtitle) hoặc metadata tùy biến.
Adaptation Set thường được lựa chọn bởi người dùng hoặc bởi các tác nhân người dùng (trình duyệt web hoặc TV) bằng cách sử dụng tùy chọn của người dùng (như ngôn ngữ hoặc nhu cầu truy cập của họ).

Representations

Representation cho phép bộ Adaptive chứa cùng một nội dung được mã hóa theo các cách khác nhau. Trong hầu hết các trường hợp, Representation sẽ được cung cấp ở screen size và bandwidth. Điều này cho phép client yêu cầu nội dung chất lượng cao nhất mà có thể phát mà không cần chờ buffer, không lãng phí băng thông với các pixel không cần thiết (ví dụ TV 720p không cần nội dung 1080p). Representation cũng có thể được mã hóa bằng các codec khác nhau, cho phép hỗ trợ client với các codec được hỗ trợ khác nhau (như xảy ra trong trình duyệt, với một số hỗ trợ MPEG-4 AVC / h.264 và một số VP8 hỗ trợ) hoặc để cung cấp Representation chất lượng cao hơn cho các client mới hơn trong khi vẫn hỗ trợ client cũ (ví dụ cung cấp cả h.264 và h.265). Nhiều codec cũng có thể hữu ích trên các thiết bị chạy bằng pin, Representation thường được chọn tự động, nhưng một số player cho phép người dùng ghi đè các option (đặc biệt là độ phân giải). Người dùng có thể chọn đưa ra option Representation của riêng mình nếu họ không muốn lãng phí băng thông trong một video (có thể họ chỉ quan tâm đến âm thanh) hoặc nếu họ sẵn sàng dừng video để đổi lại chất lượng chuẩn high quality.

SubRepresentation

SubRepresentation chứa thông tin chỉ áp dụng cho một luồng phương tiện trong Representation. Ví dụ: nếu một Representations có chứa cả âm thanh và video, thì sẽ có một SubRepftimeation để cung cấp thêm thông tin bổ sung là chỉ áp dụng cho âm thanh. Thông tin bổ sung này có thể là các codec cụ thể, tỷ lệ lấy mẫu (sampling rate), nhúng các subtitle (embeded subtitle). SubRepftimeations cũng cung cấp thông tin cần thiết để trích xuất một luồng từ một bộ chứa đa kênh hoặc để trích xuất một phiên bản chất lượng thấp hơn của luồng (như chỉ các I-frame, rất hữu ích trong chế độ chuyển tiếp nhanh – fast-forward mode).

Media Segment

Media Segment là các file media mà client DASH phát, nói chung bằng cách phát chúng qua lại nếu như chúng là cùng một file (mặc dù có thể phức tạp hơn khi chuyển đổi giữa các Representation). Các định dạng sẽ được đề cập chi tiết hơn bởi bài đăng của tôi trên hồ sơ, nhưng hai bộ chứa được mô tả bởi MPEG là Định dạng tệp phương tiện cơ sở ISO - ISO Base Media File Format (ISOBMFF), tương tự như định dạng bộ chứa MPEG-4 và MPEG-TS. WebM trong DASH được mô tả trong một tài liệu trên wiki của dự án WebM .
Location của media segment có thể được chỉ định bằng BaseURL cho single-segment của Representation, mộ danh sách các phân đoạn (SegmentList) hoặc mẫu segment (SegmentTemplate). Thông tin áp dụng cho tất cả các segment có thể được tìm thấy trong SegmentBase. Thời gian bắt đầu và thời lượng bắt đầu một segment có thể được mô tả bằng SegmentTimeline (đặc biệt quan trọng đối với phát trực tiếp, do đó client có thể nhanh chóng xác định phân đoạn mới nhất). Thông tin này cũng có thể xuất hiện ở các mức cao hơn trong MPD, trong trường hợp đó thông tin cung cấp là mặc định trừ khi bị ghi đè bởi thông tin thấp hơn trong hệ thống phân cấp XML. Điều này đặc biệt hữu ích với SegmentTemplate.
Các phân đoạn có thể ở các tệp riêng biệt (phổ biến cho phát trực tiếp) hoặc chúng có thể là các dải byte trong một tệp duy nhất (phổ biến cho tĩnh / "on-demand").

Index Segments

Index Segment (Phân đoạn chỉ mục) có hai loại: một Phân đoạn chỉ mục Representation cho toàn bộ Representation hoặc Phân đoạn chỉ mục duy nhất cho mỗi Media Segment. Phân đoạn chỉ mục Representation luôn là một file riêng biệt, nhưng Index Segment đơn có thể là một phạm vi byte trong cùng một file với Media Sengment.
Index Segment chứa các box 'sidx' của ISOBMFF, với thông tin về thời lượng của Media Segment (theo cả byte và thời gian), các loại điểm truy cập luồng và thông tin gửi tùy chọn trong các hộp 'ssix' (cùng thông tin, nhưng trong các phân đoạn). Trong trường hợp Representation Index Segment, các hộp 'sidx' nối tiếp nhau, nhưng chúng được đặt trước một 'sidx' cho chính phân đoạn chỉ mục.

Thí dụ

Trước khi hoàn thiện, mình sẽ đưa ra một ví dụ và có nhận xét (chú thích) về MPD, để cho các bạn biết MPEG-DASH hoạt động như thế nào.
<?xml version="1.0"?>
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" profiles="urn:mpeg:dash:profile:full:2011" minBufferTime="PT1.5S">
<!— Phần quảng cáo -->
<Period duration="PT30S">
<BaseURL>ad/</BaseURL>
<!-- Toàn bộ nội dung của Adaptation Set -->
<AdaptationSet mimeType="video/mp2t">
<!-- 720p Representation at 3.2 Mbps -->
<Representation id="720p" bandwidth="3200000" width="1280" height="720">
<!-- Chỉ có một segment, vì quảng cáo chỉ dài có 30s -->
<BaseURL>720p.ts</BaseURL>
<SegmentBase>
<RepresentationIndex sourceURL="720p.sidx"/>
</SegmentBase>
</Representation>
<!-- 1080p Representation at 6.8 Mbps -->
<Representation id="1080p" bandwidth="6800000" width="1920" height="1080">
<BaseURL>1080p.ts</BaseURL>
<SegmentBase>
<RepresentationIndex sourceURL="1080p.sidx"/>
</SegmentBase>
</Representation>
</AdaptationSet>
</Period>
<!-- Một nội dung thông thường -->
<Period duration="PT5M">
<BaseURL>main/</BaseURL>
<!-- Chỉ chứa video -->
<AdaptationSet mimeType="video/mp2t">
<BaseURL>video/</BaseURL>
<!-- 720p Representation at 3.2 Mbps -->
<Representation id="720p" bandwidth="3200000" width="1280" height="720">
<BaseURL>720p/</BaseURL>
<!-- Đầu tiên, chúng ta sẽ list tất cả các segment ra -->
<!-- Timescale là "ticks per second" giá trị tick tắc đồng hồ trên một giây, vì thế mỗi segment có độ dài là 1 phút -->
<SegmentList timescale="90000" duration="5400000">
<RepresentationIndex sourceURL="representation-index.sidx"/>
<SegmentURL media="segment-1.ts"/>
<SegmentURL media="segment-2.ts"/>
<SegmentURL media="segment-3.ts"/>
<SegmentURL media="segment-4.ts"/>
<SegmentURL media="segment-5.ts"/>
<SegmentURL media="segment-6.ts"/>
<SegmentURL media="segment-7.ts"/>
<SegmentURL media="segment-8.ts"/>
<SegmentURL media="segment-9.ts"/>
<SegmentURL media="segment-10.ts"/>
</SegmentList>
</Representation>
<!-- 1080p Representation at 6.8 Mbps -->
<Representation id="1080p" bandwidth="6800000" width="1920" height="1080">
<BaseURL>1080/</BaseURL>
<!-- Bởi vì tất cả segments đều có name giống nhau, nên chúng ta sẽ sử dụng SegmentTemplate -->
<SegmentTemplate media="segment-$Number$.ts" timescale="90000">
<RepresentationIndex sourceURL="representation-index.sidx"/>
<!-- Bằng cách thêm SegmentTimeline, cho nên client có thể dễ dàng thấy được có bao nhiêu segment
-->
<SegmentTimeline>
<!-- This reads: Bắt đầu từ time 0, có tất cả 10 segments với một duration of
(5400000 / @timescale) seconds -->
<S t="0" r="10" d="5400000"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
<!-- Chỉ chứa audio -->
<AdaptationSet mimeType="audio/mp2t">
<BaseURL>audio/</BaseURL>
<!-- Chúng ta chỉ cần có một audio representation, bởi vì audio bandwidth thì không quan trọng lắm -->
<Representation id="audio" bandwidth="128000">
<SegmentTemplate media="segment-$Number$.ts" timescale="90000">
<RepresentationIndex sourceURL="representation-index.sidx"/>
<SegmentTimeline>
<S t="0" r="10" d="5400000"/>
</SegmentTimeline>
</SegmentTemplate>
</Representation>
</AdaptationSet>
</Period>
</MPD>
Phần kết luận
Điều này sẽ cung cấp đủ thông tin để hiểu cấu trúc của MPD và ý tưởng chung về cách hoạt động của một client DASH cơ bản. Lần tới, tôi sẽ thảo luận về siêu dữ liệu bổ sung, có thể được sử dụng để làm cho client thông minh hơn nhiều và cung cấp trải nghiệm người dùng tốt hơn.

Giảm Độ Trễ Streaming với Chunked CMAF

Do hiện nay trên streaming sử dụng chủ yếu 2 loại giao thức HLS/MPEG-DASH nên chuẩn CMAF (The Common Media Application Format) đã được Apple và Microsoft hợp tác tạo ra để kết hợp lại sử dụng livestream trên các playback.
CMAF đặc tả một số logical media object sau :
  • CMAF Track : chứa media sample bao gồm video, audio và subtitle. Các media sample được chứa trong ISO Base Media File Format (ISO_BMFF) và được mã hóa encode bởi MPEG Common Encryption (COMMON_ENC). Các track này được tạo thành từ một CMAF Header và một hoặc nhiều các CMAF Fragments.
  • CMAF Switching Set: chứa các track thay thế để chuyển đổi các CMAF Fragment thay đổi luồng thích ứng với bit rates và resolution khác nhau.
  • Aligned CMAF Switching Set: từ 2 hoặc nhiều CMAF Switching Set được encode từ cùng một source với các mã hóa hóa khác nhau.
  • CMAF Selection Set: một nhóm các Switching Set của cùng một loại sample media bao gồm các nội dung thay thế (ví dụ các language khác nhau, hoặc các góc camera khác nhau) hoặc các chuẩn encode khác nhau (ví dụ các codec…)
  • CMAF Presentation: một hoặc nhiều presentation về đồng bộ hóa theo thời gian của các selection set.

Thứ Năm, 16 tháng 1, 2020

Phân biệt Stateful và Stateless, khái niệm StatefulSet trong Kubernetes



Stateless

Trong lập trình web, chúng ta có sự tương tác giữa client với server. Phần mềm gồm 2 thành phần chính: phần mềm và data. Như vậy, một phần mềm được thiết kế theo tương tác client – server thì phần nhiều tập lệnh sẽ nằm phía server. Client có nhiệm vụ gửi dữ liệu lên để xử lý sau đó nhận kết quả trả về. Vậy stateful vs stateless là gì?
Stateless là thiết kế không lưu dữ liệu của client trên server. Có nghĩa là sau khi client gửi dữ liệu lên server, server thực thi xong, trả kết quả thì “quan hệ” giữa client và server bị “cắt đứt” – server không lưu bất cứ dữ liệu gì của client. Như vậy, khái niệm “trạng thái” ở đây được hiểu là dữ liệu.

Stateful

Stateful là một thiết kế ngược lại, chúng ta cần server lưu dữ liệu của client, điều đó đồng nghĩa với việc ràng buộc giữa client và server vẫn được giữ sau mỗi request (yêu cầu) của client. Data được lưu lại phía server có thể làm input parameters cho lần kế tiếp.

Tổng kết và ví dụ

HTTP là một Application Protocol dạng stateless, tương tác client-server theo HTTP thì phần server sẽ không lưu lại dữ liệu của client. HTTP ban đầu chỉ được dùng đơn thuần cho website, client gửi request, server nhận request xử lý rồi trả về lại cho client hiển thị. Sau đó thì kết thúc 1 quy trình. Sau này người ta mới bắt đầu nâng cấp cho phép website giống như một ứng dụng stateful bao gồm html, database (mysql, mongodb…), transaction…
Có 4 cách lưu data của client khi xây dựng Web Application bao gồm: URL Rewriter, Form, Cookie, HTTP Session.
Nhân dịp gần đây tôi có tham dự một meetup về Kubernetes và có tham gia thảo luận về Stateful và Stateless, nay tôi đưa phần thảo luận lên blog. Thảo luận ban đầu xoay quanh StatefulSet và được mở rộng ra Stateful và Stateless nói chung trong cả Software Development và Devops.
Cái tên StatefulSet là một cái tên dễ gây nhầm lẫn, nhất là với những bạn làm DevOps không tham gia nhiều vào Software Development.

Tổng quan về ngành thương mại điện tử B2B và B2c

Mô hình thương mại điện tử B2C là gì?

Định nghĩa mô hình kinh doanh B2C là gì?

Mô hình kinh doanh B2C (Business to customer) là hình thức kinh doanh từ doanh nghiệp, công ty tới khách hàng. Các giao dịch mua bán diễn ra mạng internet, tất nhiên khách hàng ở đây là những cá nhân mua hàng phục vụ cho mục đích tiêu dùng bình thường, không phát sinh thêm giao dịch tiếp theo. Đây là mô hình kinh doanh khá phổ biến ở nước ta, ví dụ bạn lên mạng mua một bộ quần áo từ một shop thời trang online, đấy chính là mô hình kinh doanh B2C. Hoặc bạn mua điện thoại từ một cửa hàng online về sử dụng, đó cũng là mô hình B2C. 
Mô hình thương mại điện tử B2C là gì?

Thứ Tư, 15 tháng 1, 2020

Online Video Platform (OVP) là gì? Tăng hiệu suất stream ra sao?

1. Online Video Platform (OVP) là gì?

Nền tảng video trực tuyến (viết tắt: OVP) là dịch vụ cho phép người dùng có thể tải lên (upload), chuyển đổi (convert), lưu trữ (store) và phát lại (playback) nội dung video trực tuyến.
OVP có thể sử dụng mô hình nội dung do người dùng tạo (UGC-user-generated content), mô hình kinh doanh phần mềm như một dịch vụ (SaaS-software as a service) hoặc mô hình tự làm (DIY-do it yourself). OVP cung cấp giải pháp end-to-end từ việc tạo website, upload video, mã hóa video, phát lại video đến quản lý người dùng cho cả video-on-demand (video theo yêu câu) và live streaming (phát trực tuyến).

Tập các kí hiệu toán học

Bài viết này tổng hợp lại các kí hiệu toán học được sử dụng trong blog. Về cơ bản, tôi sẽ cố gắng đồng bộ hết sức có thể các kí hiệu này với các kí hiệu thường được các nhà học máy và toán học sử dụng. Ở đây tôi không đề cập tới cách tính từng phép toán cụ thể vì tôi đã trình bày trong các chuỗi bài về Toán và Xác Suất rồi.

Khái niệm về ma trận trong toán học

I. Các định nghĩa về ma trận:
1. Định nghĩa 1.1:
Một ma trận A loại (cấp) m x n trên trường K (K – là trường thực R, hoặc phức C) là một bảng chữ nhật gồm m x n phần tử trong K được viết thành m dòng và n cột như sau:
A = \left ( {\begin{array}{ccccc} a_{11} & a_{12} & a_{13} & \cdots & a_{1n} \\ a_{21} & a_{22} & a_{23} & \cdots & a_{2n} \\ a_{31} & a_{32} & a_{33} & \cdots & a_{3n} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ a_{m1} & a_{m2} & a_{m3} & \cdots & a_{mn} \\ \end{array}} \right )
Trong đó a_{ij} \in K  là phần tử ở vị trí dòng i, cột j của A. Đôi khi A được viết ngắn gọn là A = (a_{ij})_{mxn}  hay (A)_{mxn}
Các ma trận thường được ký hiệu bởi A, B, C và tập hợp tất cả các ma trận loại m x n trên trường K được ký hiệu bởi Mm x n(K)

Thứ Hai, 28 tháng 10, 2019

Recovering Switch Cisco from a Software Failure

Recovering from a Software Failure

Cách 1:

We just got our shipment of 3850 Switches in and Im upgrading all of them to the latest IOS and its a real treat to do. If you were use to doing it via tftp you will be blown away on how easy it is.

Steps
1) Down load new IOS-XE bin file from Cisco
2) Save it to a USB drive. Usb Drive must be formatted with FAT16 or 32. Mine was 32
3) Plug into 3850 Switch
4) dir usbflash0:
5) Make sure your IOS is there. "cat3k_caa-universalk9.SPA.03.06.02a.E.152-2a.E2.bin"
6) copy from usb to flash "copy usbflash0:cat3k_caa-universalk9.SPA.03.06.02a.E.152-2a.E2.bin flash:"
7) dir flash: and make sure it copied over.
8. Run the command Switch#software install file flash:cat3k_caa-universalk9.SPA.03.06.02a.E.152-2a.E2.bin switch 19) When is done doing the upgrade you will need to clean up the old files that are in flash
10) Run Switch#software clean
11) Check your flash for the new IOS package files and reboot.

Hướng dẫn Upload IOS Switch, Router Cisco bằng TFTP, XModem

Load IOS Cisco 2600 bằng lệnh:
+ Trên Server:
=> Cài đặt TFTP Server
=> Copy IOS c2600-is-mz.113-2.0.2.Q vào thư mục của TFTP
+ Trên Router:
=>  Khởi động lại Router và nhấn Ctrl + Break
=> Trong Rommon ta thiết lập như sau:
rommon 1 > set                                                               => Xem thông tin
rommon 2 > IP_ADDRESS=10.10.3.100                      => Địa chỉ IP cho port
rommon 3 > IP_SUBNET_MASK=255.255.255.0       => Subnet mask
rommon 4 > DEFAULT_GATEWAY=10.10.3.1          => Default gateway
rommon 5 > TFTP_SERVER=10.10.3.1                       => Địa chỉ TFTP server
rommon 6 > TFTP_FILE=c2600-is-mz.113-2.0.2.Q    => tên file cần nạp
rommon 7 > sync                                                           => để lưu giá trị vào NVRAM
rommon 8 > tftpdnld                                                     => Bắt đầu quá trình nạp
Load IOS Cisco 2600 bằng Xmodem: