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ứ 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:

Cisco Catalyst 3650 IOS Recovery via USB

I was preparing a new Cisco Catalyst 3650 switch and it's my first time to get a switch: prompt from a newly opened switch. I tried to initialize the it's flash but it didn't work. The IOS recovery via USB on a Cisco 3650 switch is very similar to a Cisco 3850. Below is the procedure that I've performed.


Booting...Initializing RAM +++++++@@@@@@@@...++++++++++++++++++++++++++++++++@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@done.
Memory Test Pass!

Base ethernet MAC Address: f4:0f:1b:84:f1:23

Interface GE 0 link down***ERROR: PHY link is down
Initializing Flash...

Chủ Nhật, 27 tháng 10, 2019

Những lưu ý cho người dùng Iphone lock với sim ghép 4G cần thiết

IPhone lock đã không thể active <kích hoạt> sau khi khôi phục, nâng cấp iOS hoặc hạ IOS, thay sim. Bạn đã gặp trường hợp nào như thế chưa? Sau đây chúng tôi sẽ cung cấp cho bạn một số lưu ý cho người dùng Iphone lock với sim ghép 4G.

Kể từ hệ iOS 10, ở Việt Nam rất nhiều bạn đã tự tin sắm cho mình những chiếc iPhone lock bởi một loại sim ghép có tên gọi 4G thần thánh có thể sửa tất cả các đặc điểm của chiếc iPhone lock biến nó trở thành iPhone quốc tế. Nhưng vẫn có một số khó khăn khi dùng sim ghép 4G. Vì thế chúng tôi đã đưa ra một số lưu ý cho người dùng Iphone lock với sim ghép 4G để người dùng có thể tham khảo thêm.

Thế nào là Iphone lock?

IPhone lock là iPhone bán ra kèm hợp đồng của nhà mạng nên chỉ dùng được sim của nhà mạng đó, còn iPhone quốc tế thì có thể dùng được sim của tất cả các nhà mạng trên thế giới.

Thứ Bảy, 26 tháng 10, 2019

Cẩm nang iphone lock: Tất cả những điều bạn cần biết khi đã, đang và sẽ dùng iphone lock

hư anh em đã biết sim ghép hiện tại đã bị Apple fix. Cập nhật đến ngày hôm nay 10/10/2019 chỉ có thể fix thủ công, những lỗi vặt là không thể tránh khỏi, không bao giờ có câu “Fix Full’’, ổn định nhất vẫn là sim Viettel.


+ Không phát được wifi, lỗi imess facetime, lỗi danh bạ +84 
+ Vào khu yếu sóng sẽ mất sóng, 1 số máy sẽ tự lên lại, 1 số máy sẽ phải mồi.

Thứ Ba, 8 tháng 10, 2019

HƯỚNG DẪN GHÉP SIM HEICARD V1.32 IPHONE LOCK - IOS 13 FULL SÓNG

B1: Bỏ Sim ghép + sim việt nam ---> —> UNIVERSAL ACTIVATION –> nhập mã ICCID còn hoạt động vào [vào Hack-Sim.com ] lấy iccid mới nhất rồi bấm gửi.THƯỜNG CHÚNG TÔI SẼ ADD SẴN ICCID HOẠT ĐỘNG TỐT TRÊN SIM GHÉP SẴN,KHÁCH CHỈ CẦN NHẤN GỬI .



Thứ Ba, 16 tháng 4, 2019

Sử dụng Symbolic Link để upload dữ liệu lên Dropbox từ bất kỳ thư mục nào

Sử dụng Symbolic Link để upload dữ liệu lên Dropbox từ bất cứ thư mục nào
Nếu bạn sử dụng Dropbox thì sẽ thấy có một bất tiện : nếu muốn đưa dữ liệu lên tài khoản Dropbox (xem bài viết về Dropbox tại đây), bạn phải chép nó vô thư mục Dropbox trên máy tính. Và tôi gặp vấn đề từ đây : ổ C của tôi hiện tại chỉ còn trống khoảng 2.5Gb và nếu tôi muốn upload 2Gb hình lên Dropbox, tôi buộc phải chép nó vô thư mục Dropbox trên ổ C và khi đó, ổ C chỉ còn trống khoảng 500Mb ! Vậy những lần sau thì sao ?
Và tôi liền nghĩ đến Symbolic Links, thứ mà tôi có dịp vọc và tìm hiểu vài năm trước, tôi liền áp dụng thử và nó đã thành công. Bạn hãy tưởng tượng một kịch bản như thế này : Thư mục Dropbox mặc định sẽ lưu trong thư mục MyDocument trong ổ C. Giờ tôi có thể upload lên Dropbox một thư mục hình ảnh từ ổ D mà không cần phải chép thư mục đó vào thư mục Dropbox (ở ổ C) như thông thường ! Bất cả chỉ được thực hiện bằng một dòng lệnh…

Trước tiên xin giải thích sơ qua về Symbolic links, chi tiết bạn có thể tự tìm hiểu trên mạng. Symbolic Links là một loại tập tin mà nó tham chiếu đến một tập tin hoặc thư mục khác và chỉ sử dụng được nếu ổ đĩa được format ở định dạng NTFS (đối với Windows). Ví dụ : tôi có một thư mục “anhhangxom” trên ổ C và tôi sử dụng symbolic links để tạo một thư mục “anhhangxomonline” trên ổ D, lúc này thư mục “anhhangxomonline” sẽ có toàn bộ dữ liệu của thư mục “anhhangxom”. Nhìn thì bạn sẽ thấy nó giống như là một Shortcut nhưng thực sự không phải. Với các dạng shortcut thông thường, nó luôn mở ra thư mục hoặc tập tin gốc nhưng với dạng Symbolic Links thì không.
Mặc dù thư mục “anhhangxomonline” tham chiếu đến thư mục “anhhangxom” trên ổ C nhưng khi bạn mở nó ra, bạn sẽ thấy thanh địa chỉ sẽ hiển thị đường dẫn là chính nó, tức là “D:anhhangxomonline” (thay vì “C:anhhangxom” nếu như đó là một shortcut). Mọi thay đổi trong 2 thư mục này đều được cập nhật qua lại và có một điều mà bạn lưu ý là : thư mục anhhangxomonline hoàn toàn không chứa dữ liệu và chiếm dụng dung lượng ổ đĩa D bởi vì nó chỉ là một thư mục tham chiếu đến thư mục gốc ở địa chỉ : C:anhhangxom.
Giải thích cái này đuối hàng luôn, hồi mới tìm hiểu nó vài năm trước, tôi cũng chả hiểu rốt cuộc nó là cái gì và rất là rối. Giờ thì ổn rồi, hehe.
Trong trường hợp của Dropbox, tôi buộc phải dùng Symbolic Links bởi vì không thể sử dụng một shortcut ở đây được. Cách làm cụ thể như sau : Giờ tôi sẽ tạo một Symbolic Links cho thư mục “anhhangxomonline” trên ổ D (chứa dữ liệu cần upload lên Dropbox), tôi sẽ đặt tên cho nó là “anhhangxom” (tên gì cũng được) và lưu nó trong thư mục Dropbox :
Vào Start > Run > gõ dòng lệnh “cmd” để mở Command Prompt. Cửa sổ hiện ra như sau :
Sử dụng Symbolic Link để upload dữ liệu lên Dropbox từ bất cứ thư mục nào
Gõ dòng lệnh mklink /d “C:UserssoftvinhDocumentsMy Dropboxanhhangxom” “D:anhhangxomonline”
Trong thư mục Dropbox sẽ có một thư mục con có tên là “anhhangxom” và quá trình đồng bộ dữ liệu lên Dropbox sẽ bắt đầu.
Sử dụng Symbolic Link để upload dữ liệu lên Dropbox từ bất cứ thư mục nào
Thư mục gốc (chứa dữ liệu thật cần upload lên dropbox) được lưu trên ổ D :
Sử dụng Symbolic Link để upload dữ liệu lên Dropbox từ bất cứ thư mục nào
Lưu ý :
– Nếu bạn xóa thư mục tham chiếu “anhhangxom”, thư mục gốc sẽ không bị ảnh hưởng gì hết và vẫn tồn tại. Nhưng nếu bạn thay đổi nội dung thư mục “anhhangxom” (xóa, tạo mới, cập nhật) thì nội dung đó sẽ được cập nhật trên thư mục gốc !
– Nếu bạn xóa thư mục gốc “anhhangxomonline” thì đơn giản là thư mục tham chiếu “anhhangxom” sẽ không thể truy xuất được nữa. Bạn sẽ nhận được thông báo :
– Trong trường hợp sử dụng Dropbox. Sau khi tạo thư mục tham chiếu “anhhangxom”, nếu bạn xóa thư mục gốc (thư mục “anhhangxomonline” trên ổ D) thì không sao hết, dữ liệu trên Server của Dropbox vẫn còn đó bởi vì thư mục tham chiếu “anhhangxom” vẫn còn tồn tại. Còn nếu bạn xóa thư mục tham chiếu “anhhangxom”, dữ liệu trên Server cũng bị xóa do tính năng đồng bộ của Dropbox.
Thôi, phải ngừng lại ở đây thôi, không dám đọc lại bài viết này bởi vì tôi sợ tác giả của nó cũng sẽ bị “tẩu hỏa nhập ma”, haha.