Framework Laravel

Framework Laravel là một trong những framework rất phổ biến cho việc phát triển website

Packages/Modules

Tổ chức Project Laravel theo dạng Packages/Modules

Thứ Năm, 9 tháng 6, 2022

Cocos Creator - Lựa chọn cho ngành công nghiệp phát triển trò chơi

 


Cocos là gì?

    Cocos Creator là một công cụ phát triển trò chơi tập trung vào việc tạo nội dung, theo kịch bản, dựa trên thành phần và theo hướng dữ liệu. Nó có quy trình sản xuất nội dung dễ sử dụng và bộ công cụ dành cho nhà phát triển mạnh mẽ để triển khai logic trò chơi và các hiệu ứng trò chơi hiệu suất cao.

Workflow

    Trong quá trình phát triển, Cocos Creator đã có thể mang lại hiệu quả và sự sáng tạo tuyệt vời cho người dùng, tuy nhiên quy trình làm việc mà chúng tôi đưa ra còn vượt xa sự phát triển. Đối với một trò chơi thành công, toàn bộ quy trình phát triển và gỡ lỗi, tích hợp SDK thương mại, phát hành, thử nghiệm và khởi chạy đa nền tảng không chỉ là điều không thể thiếu mà còn phải lặp lại qua nhiều lần.



    Cocos Creator tích hợp toàn bộ giải pháp trò chơi trên trình duyệt dành cho thiết bị di động vào công cụ, loại bỏ sự cần thiết phải di chuyển giữa nhiều ứng dụng phần mềm. Khi mở trình tự động bằng một cú nhấp chuột sẽ tốn ít thời gian và công sức nhất để giải quyết các vấn đề. Các nhà phát triển có thể tập trung vào giai đoạn phát triển và tăng khả năng cạnh tranh và sáng tạo của sản phẩm.

Tạo hoặc thêm tài nguyên

    Bạn có thể thêm tài nguyên bằng cách kéo thả ảnh, âm thanh... vào trình quản lý nội dung. Ngoài ra bạn có thể tạo cảnh, bản dựng, hoạt ảnh, tập lệnh, phần tử và các tài nguyên khác trực tiếp trong trình chỉnh sửa.

Tạo bối cảnh

    Sau khi có một số tài nguyên trong project, chúng ta có thể bắt đầu cài đặt bối cảnh. Bối cảnh thì là một phần cơ bản nhất của nội dung trò chơi, và nó cũng là hình thức cơ bản để hiện thị trò chơi cho người chơi.

Tính năng

    Các tính năng nổi bật của Cocos Creator:
    • Các thuộc tính dữ liệu có thể được điều chỉnh bất kỳ lúc nào trong trình chỉnh sửa và có thể dễ dàng khai báo các tập lệnh, điều chỉnh các thông số mà không cần can thiệp vào mã.
    • Phù hợp với các kích thước màn hình khác nhau.
    • Hỗ trợ hệ thống animation, preview
    • Hỗ trợ ngôn ngữ động, có thể sử dụng JavaScript để phát triển trò chơi, xem trước và gỡ lỗi nhanh chóng trên máy và thiết bị vật lý.
    • Phát triển tiếp dựa trên Cocos2d-x duy trì được hiệu suất và phát triển thêm các tính năng mới
Kiến trúc Framework
    
    Cocos Creator bao gồm đầy đủ các tính năng bắt buộc cho việc phát triển game như là game engine, quản lý tài nguyên, chỉnh sửa cảnh, game preview, publish game, và tích hợp tất cả chức năng vào một ứng dụng duy nhất.

    Trong khi cung cấp một chuỗi công cụ mạnh mẽ, cung cấp một kiến trúc plug-in mở cho phép các nhà phát triển tích hợp thêm vào và có thể tùy trỉnh để cá nhân hóa quy trình bằng cách sử dụng các công nghệ chung front-end như HTML + JavaScript

    Dưới đây là sơ đồ kiến trúc kỹ thuật của Cocos Creator



Link nguồn: Link










Liên kết


noun

khoen, người nối tiếp, vật để nối tiếp, liên kết, vòng sắt, lổ đan, lổ lưới


verb

nối, nối liền, nối tiếp

Thứ Ba, 7 tháng 6, 2022

DB:Transaction là gì và cách sử dụng trong Laravel



Bài viết này sẽ nói về mục đích của DB:Transaction và tại sao chúng ta lại sử dụng cuối cùng là lợi ích khi sử dụng chúng.

Database Transaction là gì?

Database Transaction cung cấp một Facade DB để chạy một tập hợp hoạt động trong một câu lệnh query, xử lý có tuần tự các thao tác trên cơ sở dữ liệu. 

Nó cung cấp cho chúng ta khả năng mạnh mẽ để đảm bảo an toàn khi chạy các tập lệnh SQL, sửa đổi dữ liệu như chèn, cập nhật, xóa. Nó an toàn vì có thể khôi phục tất cả các câu truy vấn được thực hiện trước đó trong một tập các câu lệnh SQL.

Tại sao sử dụng Database Transaction

Cùng kiểm tra chúng ta có ứng dụng màn quản trị viên có thể xem tất cả các bài đăng và người dùng đó, được liên kết với nhau. Khi quản trị viên xóa bài Post của user, và nếu bất kỳ hoạt động nào fail chúng ta cần khôi phục lại hoạt động trước đó để ngăn chặn sự cố gây ra lỗi và gửi lại thông báo lỗi cho quản trị viên.

Chủ Nhật, 5 tháng 6, 2022

JWT là gì? | Khái niệm của Json Web Token | Phần 2

 


Putting all together

Đầu ra là 3 chuỗi Base64-URL được phân tách bằng dấu chấm có thể dễ dàng chuyển trong môi trường HTML và HTTP, đồng thời nhỏ gọn hơn khi so sánh với các tiêu chuẩn dự trên XML như SAML

Dưới đây là một JWT có header và payload đã được mã hóa, và nó đã được ký với một mật mã.



Nếu bạn muốn khám phá JWT và sử dụng thử, bạn có thể sử dụng jwt.io.

JSON Web Tokens hoạt động ra sao?

Trong xác thực khi người dùng đăng nhập thành công bằng thông tin của họ, một JWT sẽ được trả về. Phải hết sức cẩn thận để ngăn chặn các vấn đề bảo mật. Lưu ý bạn không nên giữ các token sống lâu hơn yêu cầu. Bạn cũng không nên lưu trữ dữ liệu nhạy cảm trong phiên làm việc của trình duyệt do thiếu bảo mật.

 Bất kỳ khi nào bạn muốn truy cập vào một route hoặc tài nguyên cần xác thực thì bạn bắt buộc phải gửi JWT kèm theo thường là trong tiêu đề bằng cách sử dụng Bearer.

Ví dụ: Authorization: Bearer <token>

Lưu ý rằng nếu bạn gửi mã thông báo JWT thông qua header HTTP, bạn nên cố gắng ngăn chúng quá lớn. Một số máy chủ không chấp nhận tiêu đề nhiều hơn 8KB. Nếu bạn đang cố gắng nhúng quá nhiều thông tin vào mã thông báo JWT, bạn cần có một giải pháp thay thế chẳng hạn như Auth0 Fine-Grained Authorization.

Nếu token được gửi trong Header, Cross-origin không phải là vấn đề vì nó không sử dụng cookie.

Sơ đồ sau thể hiện chó cách JWT được lấy và sử dụng để truy cập các API hoặc tài nguyên:


Xin lưu ý rằng với token đã ký, tất cả thông tin có trong token sẽ được hiển thị cho người dùng hoặc các bên khác, mặc dù họ không thể thay đổi nó. Diều này có nghĩa là bạn không nên đặt thông tin bí mật trong token.

Tại sao chúng ta nên sử dụng JWT?

Hãy để tôi nói cho bạn về lợi ích của JWT khi so sánh giữa SWT và SAML (Security Assertion Markup Language Tokens)

Vì JSON ít dài dòng hơn XML nên khi được mã hóa, kích thước của nó cũng nhỏ  hơn, làm cho JWT nhỏ gọn hơn SAML. 

Về mặt bảo mật, JWT chỉ có thể được ký đối xứng bằng một mật mã được chia sẻ bằng cách sử dụng thuật toán HMAC. Tuy nhiên, token JWT và SAML có thể sử dụng cặp khóa công khai hoặc riêng tu dưới dạng chứng chỉ X.509 để ký. Việc ký XML với chữ ký số XML mà không có các lỗ hổng bảo mật khó hiểu là rất khó khi so sánh với sự đơn giản của việc ký JSON.

Thứ Bảy, 4 tháng 6, 2022

JWT là gì? | Khái niệm của Json Web Token | Phần 1



JSON Web Token là một phương pháp RFC 7519 tiêu chuẩn mở để trình bày các xác nhận quyền sở hữu một cách an toàn giữa hai bên một cách nhỏ gọn và khép kín. Thông tin này có thể được xác minh và đáng tin cậy vì nó được ký điện tử. JWT có thể được ký bằng cách sử dụng một mã ( với thuật toán HMAC ) hoặc một cặp khóa công khai/riêng tư bằng RSA hoặc ECDSA.


Một ví dụ về JWT Token:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjEzODY4OTkxMzEsImlzcyI6ImppcmE6MTU0ODk1OTUiLCJxc2giOiI4MDYzZmY0Y2ExZTQxZGY3YmM5MGM4YWI2ZDBmNjIwN2Q0OTFjZjZkYWQ3YzY2ZWE3OTdiNDYxNGI3MTkyMmU5IiwiaWF0IjoxMzg2ODk4OTUxfQ.uKqU9dTB6gKwG6jQCuXYAiMNdfNRw98Hw_IWuA5MaMo

 Vậy thì khi nào chúng ta sử dụng JSON Web Tokens

  • Authorization: Đây là tình huống phổ biến nhất sử dụng JWT. Mỗi requets tiếp theo sẽ bao gồm JWT, cho phép người dùng truy cập các routes, services, và dịch vụ tài nguyên được phép với mã thông báo đó. SSO là một tính năng sử dụng rộng rãi JWT ngày nay, vì chi phí nhỏ và khả năng dễ dàng sử dụng trên các miền khác nhau
  • Trao đổi thông tin: Mã thông báo web JSON là một cách tốt để truyền thông tin giữa các bên một cách an toàn. Bởi vì JWT có thể được ký — ví dụ: sử dụng cặp khóa công khai / riêng tư — bạn có thể chắc chắn rằng người gửi là những người họ nói. Ngoài ra, vì chữ ký được tính bằng cách sử dụng tiêu đề và trọng tải, bạn cũng có thể xác minh rằng nội dung không bị giả mạo.
Cấu trúc mã thông báo web JSON là gì


Ở dạng nhỏ gọn, JWT bao gồm ba phần được phân tách bằng dấu chấm (.), Đó là:

    • Header
    • Payload
    • Signature

Do đó, một JWT thường trông giống như sau. xxxxx.yyyyyy.zzzzzz


  1. Header
    Header bao gồm 2 phần: loại của token và thuật toán đang được sử dụng
    Ví dụ: 
    {
       "alg": "HS256",
       "type": "JWT"
    }

    Sau đó JSON này sẽ được mã hóa thành Base64Url để tạo thành phần đầu tiên của JWT

  2. Payload
    Thành phần thứ 2 của token là payload. Xác nhận quyền sở hữu tuyên bố về một thực thể (typically, the user) và dữ liệu bổ sung. Có 3 loại xcas nhận quyền sở hữu: registered, public, và private.
    • Registered claims: Đây là một tập hợp các xác nhận quyền sở hữu được xác định trước, không bắt buộc nhưng được khuyến nghị, để cung cấp một tập hợp các xác nhận quyền sở hữu. Một trong số đó là: iss(nhà phát hành), exp(thời gian hết hạn), sub(chủ đề), aud(khán giả) và những thứ khác.
    • Public claims: Những người sử dụng JWT có thể xcas định những điều này theo ý muốn. Nhưng để tránh xung đột, chúng ta nên được xác định trong IANA JSON Web hoặc được định nghĩa là một URI có chứa namespace chống xung đột.
    • Private claims: Đây là những tuyên bố tùy chỉnh được tạo ra để chia sẻ thông tin giữa các bên đồng ý sử dụng chúng và không phải là tuyên bố đã đăng ký hoặc công khai.

      Ví dụ:
      {
          "sub": "1234567890",
          "name": "John Doe",
          "admin": true
      }
  3. Signature
    Để tạo phần chữ ký bạn phải lấy tiêu đề được mã hóa, mã hóa payload, một mật mã, thuật toán được chỉ định trong header, và ký tên đó.
    Ví dụ: nếu bạn muốn sử dụng thuật toán HMAC SHA256, chữ ký sẽ được tạo theo cách sau:
    HMACSHA256(
      base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)

    Do bản thân Signature đã bao gồm cả header và payload nên Signature có thể dùng để kiểm tra tính toàn vẹn của dữ liệu khi truyền tải.

Chữ ký


noun

chữ ký, dấu ở đầu bản nhạc, tên ký

Thứ Sáu, 3 tháng 6, 2022

Percona TokuDB là gì?


 Percona TokuDB là công cụ lưu trữ mã nguồn mở, hiệu suất cao dành cho máy của Percona cho Mysql giúp cải thiện khả năng mở rộng và hiệu quả hoạt động. Nó đạt được điều này bằng cách sử dụng chỉ số cây Fractal. Nó có thể mở rộng, tuân thủ ACID và MVCC, cung cấp các cải tiến truy vấn dựa trên lập chỉ mục, cung cấp các sửa đổi lược đồ trực tuyến và giảm độ trẽ sao chép cho cả ổ đĩa cứng và bộ nhớ flash.

Được thiết kế cho các yêu cầu khắt khe của các ứng dụng dữ liệu lớn và bộ dữ liệu lớn. Percona TokuDB giảm chi phí triển khai liên quan đến các nỗ lực mở rộng và tối ưu hóa.

Percona Server for MySQL tập trung vào việc tăng hiệu suất cho MySQL, và đặc biệt tối ưu cấu trúc lưu trữ InnoDB - với tên gọi XtraDB. Percona bám sát sự phát triển của các phiên bản MySQL, so với MariaDB thì Percona chỉ tối ưu hóa MySQL chứ không phát triển thêm các chức năng.

Một số tính năng chính:

  • Nhanh và có thể mở rộng
  • Hiệu suất tốt nhanh hơn tới 20 lần so với InnoDB
  • ROI mạnh hơn giảm chi phí vận hành và cơ sở hạ tầng, đồng thời tăng khả năng mở rộng và tính linh hoạt.
  • Tính khả dụng cao, ít thời gian chết cho các ứng dụng đòi hỏi trong môi trường cloud

Thứ Ba, 8 tháng 2, 2022

Tạo Project Angular

 Bắt đầu tạo một dự án bằng cách sử dụng Angular CLI. Trong hướng dẫn này, bạn sẽ bắt đầu mở một ứng dụng với tên Tour of Heroes.

Trong bài hướng dẫn này gồm có:

  • Cài đặt môi trường
  • Tạo một không gian làm việc và dự án đầu tiên
  • Serve của ứng dụng
  • Thay đổi trong ứng dụng
Cài đặt môi trường:

Bạn cần cài đặt môi trường phát triển, theo hướng dẫn link

Tạo một không gian làm việc và dự án đầu tiên

Bạn phát triển ứng dụng trong một không gian của Angular. Một không gian làm việc có thể chứa một hoặc nhiều dự án. Một dự án là một tập hợp các tệp bao gồm ứng dụng haowjc một thư viện. Đối với hướng dẫn này, bạn sẽ tạo một không gian làm việc.

Để tạo một không gian làm việc và dự án đầu tiên:

1. Đảm bảo rằng bạn ở trong thư mục không gian làm việc Angular. Ví dụ nếu trước đó bạn đã tạo không gian làm việc, thì hãy thay đổi thành thành vần cha của nó.

2. Chạy CLI ng new và tên dự án angular-tour-of-heroes

3. ng new 

Bài viết mới

Giới Thiệu Gumroad và Cơ Hội Đăng Ký Nội Dung Đặc Biệt Của Tôi

     Trong thế giới kỹ thuật số ngày nay, việc dễ dàng tiếp cận các tài nguyên học tập và công cụ hỗ trợ là rất quan trọng. Đó chính là lý d...

Bài đăng