Điều khoản sử dụng

huuthangit duy trì Website này như một dịch vụ cung cấp cho khách hàng, bao gồm nhưng không giới hạn các cá nhân, tổ chức sử dụng dịch vụ hoặc hợp tác kinh doanh với chúng tôi (sau đây gọi là Bạn). Khi sử dụng Website này và bất kỳ sản phẩm/dịch vụ nào tại đây (gọi sau đây gọi là Dịch vụ) có nghĩa là Bạn đã chấp nhận và đồng ý tuân theo bản Điều khoản sử dụng này. Ngoài ra khi sử dụng các Dịch vụ cụ thể của chúng tôi, Bạn phải tuân theo các điều khoản và điều kiện riêng áp dụng cho Dịch vụ đó theo từng thời điểm.

1. Sử dụng hợp pháp
Bạn phải chấp nhận rằng Bạn sẽ không được phép có bất cứ hành vi nào có thể hiểu rằng Bạn đã, đang hoặc sẽ tổ chức kinh doanh dưới bất kỳ hình thức bao gồm nhưng không giới hạn như đề nghị hoặc chào hàng, bán hàng, cho thuê, cấp phép, trưng bày, giao hàng, quảng cáo và khuyến mãi trực tiếp hoặc gián tiếp bất kỳ sản phẩm, dịch vụ, dữ liệu, thông tin, hình ảnh có nội dung vi phạm pháp luật hiện hành và thuần phong mỹ tục Việt Nam; Bạn không được tham gia vào bất cứ hoạt động nào liên quan đến việc phát tán, xuất bản hoặc chuyển các loại email không mong muốn (thư rác) đến người dùng khác trong hệ thống trên Website như thông tin khuyến mãi, quảng cáo.

2. Sự tuân thủ
huuthangit  có quyền hợp pháp yêu cầu Bạn tuân thủ những Điều khoản sử dụng, Chính sách bảo mật hoặc Thỏa thuận sử dụng tương ứng khi sử dụng Dịch vụ. Nếu xác định được Bạn vi phạm những điều khoản và điều kiện này, huuthangit  có thể đơn phương chấm dứt hoặc đình chỉ ngay lập tức việc: (1) Sử dụng Dịch vụ; (2) Thỏa thuận sử dụng Dịch vụ; (3) Truy cập Website này. Chúng tôi cũng có quyền thông báo các hoạt động này bị nghi ngờ vi phạm qui định với cơ quan chức trách hoặc bên thứ ba.huuthangit  cũng có thể hợp tác với với cơ quan pháp luật để hỗ trợ điều tra và truy tố các hoạt động vi phạm pháp theo quy định. Nếu Bạn muốn thông báo bất kỳ hành động vi phạm những điều khoản này, vui lòng liên hệ với chúng tôi.

3. Liên kết website của bên thứ ba
Website này có thể kết nối đến những website của các bên thứ ba. huuthangit  cung cấp những đường dẫn để thực hiện các kết nối này nhằm đem đến sự thuận tiện cho Bạn. Những website của nhà cung cấp hoặc quảng cáo này được sở hữu bởi những tổ chức có hoạt động độc lập. Chúng tôi không chịu trách nhiệm, xác nhận hay có nghĩa vụ đối với bất kỳ nội dung, quảng cáo, các sản phẩm có sẵn từ các website đó. Thêm nữa, Bạn xác nhận và đồng ý rằng huuthangit  sẽ không chịu trách nhiệm hoặc có nghĩa vụ, trực tiếp hoặc gián tiếp, đối với bất kỳ thiệt hại hoặc tổn thất nào liên quan tới việc sử dụng hay căn cứ vào nội dung, sản phẩm hoặc dịch vụ hiện có trên bất kỳ website đó. Bạn nên tìm hiểu kỹ về các nhà cung cấp trước khi thực hiện bất kỳ giao dịch nào với bên thứ ba.

4. Quyền sở hữu trí tuệ
Tất cả hình ảnh, biểu tượng, và tất cả các nội dung khác (gọi tắt là Nội dung) tại Website này thuộc sở hữu củahuuthangit hoặc các tổ chức, cá nhân khác được trích dẫn một cách hợp pháp. Chúng tôi cho phép Bạn xem, tải về và in Nội dung khi:

  • – Bạn chỉ sử dụng cho mục đích cá nhân chứ không phải cho mục đích thương mại.
  • – Bạn không sao chép, xuất bản hoặc sử dụng lại Nội dung.
  • – Bạn không chỉnh sửa Nội dung.
  • – Bạn không di chuyển bất kỳ bản quyền, thương hiệu và các Nội dung độc quyền khác trên Website.

Ngoại trừ việc cho phép rõ ràng như trên, nghiêm cấm mọi việc sao chép, điều chỉnh hoặc sử dụng lại Nội dung Website mà không có sự cho phép trước bằng văn bản củahuuthangit . Để yêu cầu sử dụng Nội dung, Bạn có thể liên hệ với chúng tôi. Nếu được chấp thuận, Bạn phải bảo đảm là việc sử dụng Nội dung Website của Bạn sẽ phù hợp với Quy định này và việc sử dụng này không vi phạm quyền, lợi ích của các cá nhân, tổ chức khác hoặc vi phạm hợp đồng, nghĩa vụ luật pháp của cá nhân, tổ chức khác.

5. Loại trừ trách nhiệm
huuthangit  tuyên bố loại trừ trách nhiệm theo các quy định tại Điều khoản miễn trừ.

6. Bồi thường
Bạn có nghĩa vụ bồi thường chohuuthangit  hoặc bất cứ bên thứ ba nào cho toàn bộ hay bất cứ thiệt hại thực tế nào mà phần lỗi được xác định là do Bạn khi xảy ra một trong các tình huống dưới đây:

  • – Vi phạm các Điều khoản sử dụng này hoặc Chính sách bảo mật hoặc các Thỏa thuận sử dụng Dịch vụ khác của chúng tôi.
  • – Vi phạm các quy định và pháp luật hiện hành gây thiệt hại cho chúng tôi.
  • – Sự vô ý hoặc hành vi cố ý làm sai của Bạn, hoặc nhân viên và đại lý của Bạn gây ảnh hưởng/thiệt hại đến chúng tôi.
  • – Xâm phạm quyền sở hữu trí tuệ hoặc quyền lợi hợp pháp của bất kỳ cá nhân, tổ chức nào; tranh chấp trong việc quảng cáo, khuyến mãi, phân phối hàng hóa của Bạn gây thiệt hại đến chúng tôi.

7. Truy cập vào khu vực có mật khẩu
Chỉ những người được huuthangit  ủy quyền hợp pháp hoặc cho phép bằng văn bản mới được thực hiện việc truy cập và sử dụng những khu vực được bảo vệ bằng mật khẩu của Website. Những cá nhân, tổ chức cố ý xâm nhập vào vùng này tuỳ từng mức độ có thể sẽ bị khởi kiện hay tố cáo theo pháp luật hiện hành.

8. Chính sách bảo mật
Tất cả những thông tin nhập vào Website này được áp dụng theo Chính sách bảo mật của huuthangit .

9. Sửa đổi Điều khoản sử dụng
huuthangit  có thể thay đổi, điều chỉnh Điều khoản sử dụng này theo quyết định của mình mà không cần thông báo cho Bạn. Bạn có thể xem những thông tin mới cập nhật vào bất cứ lúc nào tại Website này. Nếu Bạn tiếp tục sử dụng Dịch vụ có nghĩa là Bạn chấp nhận và đồng ý tuân theo Điều khoản sử dụng mới được cập nhật.


REST là gì? RESTful khác với REST như thế nào?

rest-api

Theo như wikipedia, “Representational State Transfer (REST) is an architectural style that defines a set of constraints and properties based on HTTP”.

Nói một cách dễ hiểu, REST đưa ra 1 chuẩn chung quy định format của URL cùng cách sử dụng các HTTP method (GET, POST, PUT, PATCH, DELETE) tương ứng để quản lý tài nguyên web (resource).

Các tài nguyên web (web resources) có thế là bất cứ thứ gì hoặc là 1 model được định nghĩa như Car, User, Color… Các thao tác CRUD (create, read, update, delete) các resource được REST quy định như sau.
Đối với Collection:
+ Lấy thông tin tất cả các resources (read):
– URL: https://api.example.com/resources/
– HTTP method: GET

+ Tạo mới 1 resource vào trong collection:
– URL: https://api.example.com/resources/
– HTTP method: POST

+ Xoá 1 collection:
– URL: https://api.example.com/resources/
– HTTP method: DELETE

+ Thay thế 1 collection:
– URL: https://api.example.com/resources/
– HTTP method: PUT

Element:
+ Lấy thông tin resource cụ thể với id (read):
– URL: https://api.example.com/resources/12
– HTTP method: GET

+ Xoá 1 resource:
– URL: https://api.example.com/resources/12
– HTTP method: DELETE

+ Thay thế 1 resource hoặc tạo mới nếu không tồn tại:
– URL: https://api.example.com/resources/12
– HTTP method: PUT

+ Cập nhật 1 resource:
– URL: https://api.example.com/resources/12
– HTTP method: PATCH

REST API với RESTful API có khác nhau không?

Câu trả lời: chúng có thể xem là một. Vì RESTful API là webservice APIs sử dụng các chuẩn của kiến trúc REST.


Tạo link cài đặt ios app sử dụng ipa file

Để cài đặt ứng dụng cho các thành viên trong team tester, hoặc muốn sếp test ứng dụng trước khi release app, có 3 cách theo mình biết là:

1. Kết nối máy từng người với máy tính và build
2. Upload lên testflight và những thành viên trong team sẽ nhận được thông báo cài đặt khi quá trình upload hoàn thành.
3. Tạo link cài đặt thông qua OTA (over-the-air)

Mỗi cách sẽ có những ưu nhược điểm khác nhau, bản thân mình thích và sử dụng nhiều nhất cách thứ 3 nên nay sẽ trình bày ngắn gọn cách tạo ra link cài đặt cho ứng dụng của bạn.

Yêu cầu:

+ https server: server cá nhân hoặc 1 kho lưu trữ data như S3 của amazon có cài đặt ssh certificate.
+ file ipa cài đặt
+ file manifest.plist

Step 1:
Trên xcode sau khi archive app xong -> chọn export -> Ad hoc distribution

Step 2:
Check vào mục Inclide manifest for over-the-air installation.

スクリーンショット 2018-06-26 17.12.50

Step 3:
Điền url nơi sẽ lưu trữ file .ipa trên server, image url thì ko cần điền chính xác cũng đc vì sau này ko cần dùng đến.

スクリーンショット 2018-06-26 17.13.48

Step 4:
Export ra file ipa.

Step 5:
Upload file ipa và file manifest.plist lên server

Step 6:
Tạo file html có link đến file manifest.plist:

 

Step 7:
Gửi link file html đến cho tester.


Internet of Things sẽ bùng nổ như thế nào năm 2020?

“Internet of Things” (IOT), tạm dịch là “Thời đại Internet hoá”, được ví như cuộc “cách mạng công nghiệp” tiếp theo trong hành trình phát triển của loài người.

Internet of Things sẽ bùng nổ như thế nào năm 2020?

 

Lý do cho tên gọi đó là sự thay đổi mà nó mang đến cho sinh hoạt, làm việc, giải trí, du lịch của mọi người dân trên hành tinh, thậm chí cả cách các chính phủ và doanh nghiệp ở các nước tương tác với thế giới.

Trong thực tế, cuộc cách mạng ấy đã bắt đầu từ vài năm trước. Khi mua một chiếc xe ôtô mới, người dùng sẽ thấy có rất nhiều “đồ chơi” và ứng dụng nối mạng được cài đặt sẵn sàng trong xe.

Những thiết bị gia đình thông minh giúp bạn điều khiển nhiệt độ phòng, kéo rèm, hoặc chơi nhạc với chỉ vài tiếng nói. Thiết bị theo dõi tập luyện thể dục mà bạn đeo trên cổ tay của mình có thể chia sẻ cho người thân và bạn bè của bạn biết những hoạt động bạn đang tập.

Tất cả đều là một phần của cuộc cách mạng IOT.

Nhưng đó chỉ mới là sự bắt đầu.

Một dự án nghiên cứu của Business Insider Intelligence (BII) đã theo dõi sự phát triển của IOT trong suốt 2 năm qua, đặc biệt là cách người tiêu dùng, doanh nghiệp, và các chính phủ đang sử dụng hệ sinh thái IOT.  John Greenough và Johnathan Camhi tại BIIđã lập ra một bản báo cáo kết quả nghiên cứu phân tích từng bộ phận của toàn bộ hệ sinh thái IOT, và đưa ra dự báo về hướng phát triển sắp tới của các thị trường IOT tiên phong.

Sau đây là một số tóm tắt của bản báo cáo nghiên cứu này:

IOT thực ra là gì?

Đó là một hệ thống mạng lưới các thiết bị được kết nối internet, có thể thu thập và trao đổi dữ liệu.

Hệ sinh thái IOT là gì?

Hệ sinh thái IOT cho phép các tổ chức có thể kết nối, kiểm soát và sử dụng các thiết bị IOT. Trong hệ sinh thái này, một tổ chức có thể sử dụng các thiết bị như điện thoại thông minh, máy tính bản, … để gửi đi các hiệu lệnh, hoặc truy cập thông tin từ một mạng lưới các thiết bị IOT khác.

Trong trường hợp hiệu lệnh, thiết bị nhận lệnh sẽ thực hiện các công việc được thiết kế, thu thập dữ liệu để được truy cập và phân tích nhanh chóng.

Những động lực và rào cản của thị trường

Có 4 động lực chính cho thị trường IOT: kết nối Internet ngày càng mở rộng, thiết bị di động bùng nổ, thiết bị cảm biến với chi phí ngày càng thấp hơn, các nguồn đầu tư lớn đang đổ vào IOT.

Bênh cạnh đó, cũng có 4 rào cản đáng chú ý cho sự phát triển của thị trường IOT: các quan ngại về an ninh mạng, bảo mật thông tin cá nhân, các vấn đề trong quá trình ứng dụng, những tiến bộ về công nghệ còn đang phân tán.

Quy mô của thị trường

Trong tóm tắt tổng quan, báo cáo ước tính có khoảng 24 tỷ thiết bị IOT trên thế giới vào năm 2020. Tổng vốn đầu tư trong lĩnh vực IOT trong 5 năm tới sẽ đạt mức 13 nghìn tỷ đô la Mỹ

Ba đối tượng chính sử dụng thiết bị IOT, bao gồm các chính phủ, doanh nghiệp và người tiêu dùng. Các nhóm thị trường này được dự đoán sẽ đóng góp chủ yếu cho thị trường IOT.

Đối với người tiêu dùng: 5 tỷ thiết bị IOT được cài đặt vào năm 2020, người tiêu dùng chi tiêu khoảng 900 triệu đô la Mỹ cho IOT, và dự báo vốn đầu tư vào thị trường này là 400 triệu đô la Mỹ đến 2020.

Đối với các chính phủ: sẽ có khoảng 7,7 tỷ thiết bị IOT được cài đặt đến năm 2020, tiêu tốn khoản 2,1 tỷ đô và 4,7 tỷ đô trong vốn đầu tư.

Đối với thị trường doanh nghiệp: sẽ có khoảng 11,2 tỷ thiết bị được cài đạt vào năm 2020, với chi phí 3 tỷ đô và 7,6 tỷ đô cho đầu tư.

Các ngành được hưởng lợi từ hệ sinh thái IOT

Ngành công nghiệp sản xuất: 35% các nhà sản xuất đã sử dụng các thiết bị cảm biến thông minh trong hiện tại, 10% đang có kế hoạch sử dụng trong năm tới, theo báo cáo từ PwC.

Ngành dầu khí và khai khoán: ước tính 5,4 triệu thiết bị IOT sẽ được sử dụng tại các mỏ khai thác dầu vào năm 2020. Các thiết bị này chủ yếu là các cảm ứng nối Internet được sử dụng để cung cấp thông tin về các chỉ số môi trường tại mỏ khai thác.

Ngành giao thông: Các phương tiện giao thông nối mạng là các thiết bị IOT chính trong ngành này. Ước tính sẽ có khoản 220 triệu xe ôtô nối mạng được sử dụng vào năm 2020.

Ngành bảo hiểm: 74% các nhà lãnh đạo trong lĩnh vực bảo hiểm nói rằng họ tin tưởng IOT sẽ cách mạng hoá ngành bảo hiểm trong 5 năm tới. 74% có kế hoạch đầu tư vào phát triển và ứng dụng các chiến lược IOT trong năm tới, theo nguồn từ trung tâm nghiên cứu SMA.

Ngành nông nghiệp: Ước tính 75 triệu thiết bị IOT sẽ được bán cho khối ngành nông nghiệp đến năm 2020. Các thiết bị này chủ yếu cảm biến trong đất để theo dõi nồng độ axit, nhiệt độ, và những yếu tố khách để giúp nông dân nâng cao sản lượng thu hoạch.

Ngành năng lượng: các công ty năng lượng khắp thế giới đang cố gắng đáp ứng nhu cầu năng lượng toàn cầu đang tăng lên nhanh chóng. Để thực hiện điều đó một cách hiệu quả, họ sẽ cài đặt 1 tỷ thiết bị đo lường thong minh cho đến năm 2020.

Ngành quốc phòng: ước tính chi tiêu cho các thiết bị bay không người lái sẽ đạt mức 8,7 tỷ đô la Mỹ vào năm 2020. Thêm vào đó, 126 000 robot quân sự sẽ được chuyển giao đến năm 2020, theo nguồn từ Frost & Sullivan.

Ngành cơ sở hạ tầng: ước tính các đô thị lớn trên thế giới sẽ tăng chi tiêu cho các hệ thống IOT thông minh từ 36 tỷ đô trong năm 2014 lên 133 tỷ đô vào năm 2019. Sự đầu tư này sẽ tạo ra 421 tỉ đô về giá trị kinh tế cho các thành phố lớn trên thế giới vào năm 2019.

Lĩnh vực nhà ở
: Đến năm 2030, kết quả nghiên cứu dự đoán rằng phần lớn các thiết bị gia dụng được sản xuất và tiêu dùng là các thiết bị IOT, đặc biệt là từ động lực cạnh tranh giữa các nhà sản xuất lớn để kết nối các thiết bị do mình sản xuất.

Ngành dịch vụ ăn uống
: dự đoán 310 triệu thiết bị IOT sẽ được sử dụng bởi các công ty dịch vụ ăn uống vào năm 2020. Phần lớn các thiết bị này là các bản hiệu điện tử kết nối và thu thập thông tin trong các cửa chuỗi cửa hàng bách hoá và thức ăn nhanh.

Ngành dịch vụ khách sạn: 31% các khách sạn lớn sử dụng khoá cửa thông minh, 33% có các thiết bị điều khiển phòng thông minh, 16% có TV kết nối internet, và 15% sử dụng các thiết bị cảm ứng báo động khắp khách sạn, theo một khảo sát năm 2015 của tổ chức Hospitality Technology. Bạn có thể tưởng tượng ngành này sẽ phát triển các hệ thống IOT đến mức nào trong năm 2020.

Ngành dịch vụ bán lẻ: các thiết bị cảm ứng kết nối với các ứng dụng điện thoại thông minh đã được sử dụng trong các cửa hàng để tìm hiểu hành vi khách hàng và cải tiến cách quảng cáo đến khách hàng. Chỉ trong nước Mỹ, ước tính khoảng 44,4 tỷ đô thu được từ tin nhắn quảng cáo được tạo từ phân tích dữ liệu của các cảm biến.

Ngành dịch vụ vận tải: các thiết bị cảm biến theo dõi lộ trình được cài đặt vào các kiện hàng và các công hàng được vận chuyển để giảm thiểu chi phí vận chuyển, đồng thời tăng hiệu quả của mạng lưới. Thêm vào đó, các robot IOT như robot Kiva của Amazon giúp giảm thiểu chi phí kho bãi, nhân lực và các vấn đề hư hỏng hàng hoá.

Ngành dịch vụ sức khoẻ: ước tính 646 triệu thiết bị IOT sẽ được sử dụng trong ngành y tế vào năm 2020. Các thiết bị chăm sóc y tế được kết nối IOT có thể thu thập dữ liệu, xử lý thông tin tự động, và hơn thế nữa.

Nhưng những thiết bị này cũng có nguy cơ bị tấn công, vì thế có những quan ngại lớn về khả năng bảo mật của các thiết bị này khi mà sự an nguy của người bệnh có thể phụ thuộc hoàn toàn vào chúng.

Ngành ngân hàng: có gần 3 triệu máy ATM đã được cài đặt toàn cầu vào năm 2015, theo World Bank. Các thiết bị IOT có thể tạo ra lựa chọn kết nối các giao dịch viên ngân hàng với các máy ATM để tăng chất lương dịch vụ, đồng thời giảm chi phí của các phòng giao dịch.

Lĩnh vực quản lý các toà nhà thông minh: tại Mỹ, 43% các toà nhà được quản lý bằng các công nghệ IOT. Trong vài năm tới chúng ta sẽ thấy xu hướng này càng tăng lên nhanh chóng và ảnh hưởng đến tất cả những người sử dụng các toà nhà này.

Kết luận

Vậy chúng ta có thể thấy gì từ bảng tóm tắt của bức tranh toàn cảnh “Thời đại Internet hoá” trên? Có một số điểm nổi bật từ kết quả nghiên cứu như sau:

Dự báo có tổng cộng 34 tỷ thiết bị kết nối với mạng Internet đến năm 2020, từ con số 10 tỷ trong năm 2015. Các thiết bị IOT sẽ chiếm 24 tỷ, trong khi số lượng các loại thiết bị kỹ thuật số truyền thống ( điện thoại thông minh, máy tính bảng, đồng hồ thông minh, …) chỉ chiếm 10 tỷ trong tổng số này.

Gần 6 nghìn tỷ đô sẽ được chi cho các giải pháp IOT trong vài năm tới cho đến 2020.

Các doanh nghiệp sẽ là những tổ chức đi đầu trong ứng dụng các giải pháp công nghệ IOT. Họ thấy được có 3 cách mà IOT có thể giúp họ tăng hiệu quả kinh doanh: 1) giảm chi phí hoạt động, 2) tăng hiệu quả lao động, và 3) phát triển các thị trường mới hoặc phát triển các sản phẩm mới.

Các chính phủ đang tập trung tăng cao hiệu quả lao động, giảm chi phí, và nâng cao đời sống xã hội. Trong tương lai, họ được dự đoán là nhóm lớn thứ hai sử dụng công nghệ IOT.

Với người tiêu dùng, họ là những người được tiếp nhận dịch vụ và sử dụng sản phẩm cuối cùng trong quá trình phát triển các giải pháp IOT, tuy nhiên họ lại là nhóm tiêu thụ một số lượng rất lớn các thiết bị IOT, đồng thời là động lực thúc đẩy tất cả các ngành nghề cập nhật ứng dụng IOT trong hoạt động để cạnh tranh.

Chúng ta vừa bước sang năm 2017. Cho đến tương lai gần vào năm 2020, chúng ta sẽ chứng kiến một giai đoạn phát triển thần tốc ngắn nhất trong lịch sử loài người, với những cải cách công nghệ thay đổi hoàn toàn những thói quen trong cuộc sống hằng ngày của con người.

Có rất nhiều cảm xúc phấn khích, háo hức, cũng có không ít lo lắng và quan ngại cho sự thay đổi thần tốc này. Hiểu được những cơ hội cũng như thách thức mà “Thời đại Internet hoá” mang lại sẽ là điều kiện cần thiết để các nước như Việt Nam chúng ta hội nhập với thế giới.

Chúng ta là những nền kinh tế phát triển sau, nhưng điều đó không có nghĩa rằng chúng ta không có khả năng để bắt kịp các nước lớn trong “Thời đại Internet hoá”. Mỗi một doanh nghiệp công nghệ được ra đời và phát triển tại Việt Nam sẽ là một đứa con của hy vọng, cho tương lai rất gần của chúng ta.

 

Nguồn: doanhnhansaigon.vn


Sử dụng Dispatch Group trong swift

Giả sử bạn có 2 tasks bất đồng bộ trên 2 tiến trình riêng biệt, bạn muốn sau khi 2 tasks này được thực hiện xong thì thực hiện 1 tác vụ nào đó như hiển thị thông báo lên màn hình. Lúc này bạn có thể sử dụng Dispatch Group để thực hiện được điều đó. Dispatch Group sẽ chờ cho đến khi có tín hiệu thực hiện xong các tasks và sẽ thực hiện task tiếp theo.

 Ví dụ:

Khi số lượng hàm leave() được gọi bằng số lượng hàm enter(), hàm notify() sẽ được gọi.

Ngoài ra bạn có thể dùng hàm wait(timeout: ) thay cho hàm notify nếu bạn muốn chỉ định chờ trong một khoảng thời gian nhất định, nếu vượt quá thời gian đó mà vẫn chưa thực hiện xong các async tasks thì thực thi code trong hàm wait


Method Swizzling là gì?

+ Là cách override method có sẵn của thư viện iOS. Cụ thể hơn là cách bạn có thể thay thế 1 method có sẵn bằng một method khác.

+ Giải quyết hạn chế của extensions (Categories trong Objective-C)

Bản chất: Sử dụng objective-c runtime, thư viện hỗ trợ các API để switch các selectors.

Vấn đề phát sinh: Thư viện được cập nhật mới và có thay đổi ở method bạn sử dụng. Khi đó đòi hỏi bạn sẽ phải sửa khá là nhiều và mất thời gian.

Ví dụ: Ví dụ dưới đây thực hiện swizzling method viewWillAppear của UIViewController được viết bằng Swift4

 


Quản lý con cái trong thời đại công nghệ số

1. Cài đặt bộ lọc truy cập internet để hạn chế con vào các trang web có nội dung độc hại.

Có thể cài đặt trực tiếp ở router mạng hoặc dùng phần mềm bên thứ 3.
2. Chỉ dùng điện thoại khi ở phòng khách, có quy định cụ thể thời gian sử dụng internet của các con.
3. Xây dựng sổ tay các trang web hữu ích và định hướng cho con cái.
4. Không tiết lộ các thông tin cá nhân như địa chỉ nhà, số điện thoại, chứng minh nhân dân, địa chỉ làm việc của bố mẹ, trường học… nếu chưa được sự cho phép của bố mẹ.
5. Không đồng ý gặp bất cứ ai quen biết trên mạng mà chưa được sự đồng ý của bố mẹ.
6. Không được gửi bất kỳ ảnh, video cá nhân cho bất kỳ người lạ nào trên mạng.
7. Không dùng từ ngữ thô tục, mang tính chất phân biệt chủng tộc, vùng miền, từ ngữ kích động bạo lực, cỗ vũ việc làm sai trái, vi phạm pháp luật.. khi viết nội dung trên mạng xã hội, web cá nhân.
8. Có thể cân nhắc cài đặt phần mềm chặn quảng cáo trên điện thoại của con như AdBlock.


Phân biệt weak và unowned references

+ Đều dùng để giải quyết vấn đề memory leak khi có tham chiếu vòng (reference cycle), bằng cách không tăng thêm reference count ở instance mà có instance khác tham chiếu đến.

+ Một tham chiếu weak luôn luôn là optional và tự động nil khi đối tượng bị deinit. Chính vì vậy khi khai báo biến weak ta phải dùng var (biến có thể thay đổi đc), không thì sẽ bị báo lỗi.

+ Ngược lại, tham chiếu unowned luôn dùng cho 1 đối tượng không thay đổi được, nên khi khai báo ta sẽ phải dùng let.

+ unowned thường được dùng khi life time của instance này lớn hơn hoặc bằng so với instance còn lại.

Vì sao phải có unowned?

Thực tế nếu bạn chỉ dùng weak thôi thì bài toán memory leak đều có thể giải quyết được. Có thêm unowned là để phân biệt rõ ràng giữa let và var, giữa biến thay đổi được và biến không thay đổi được. Đảm bảo sự hợp lý khi thiết kế class.
Ví dụ:
+ Một người dùng User sẽ có thể có 1 hoặc nhiều điện thoại, và 1 chiếc điện thoại có thể từng trải qua sự sở hữu của một hoặc nhiều người khác nhau. Lúc này ta sẽ dùng tham chiếu weak cho đối tượng user nằm trong class Phone.

+ Một người dùng User có thể có nhiều hợp đồng thuê nhà, nhưng mỗi hợp đồng thuê nhà thì chỉ có 1 người duy nhất ký vào, không thể chuyển nhượng hợp đồng này cho người khác. Trường hợp này ta sẽ dùng unowned cho đối tượng user trong class HouseLease.


Trí tưởng tưởng của người Nhật

Einstein đã từng nói “Trí tưởng tượng còn quan trọng hơn kiến thức“, một người dù có giỏi đến đâu, nếu không làm ra được một sản phẩm, một ứng dụng nào có ích cho xã hội thì họ sẽ mãi mãi không được ai nhắc tới. Chính vì vậy, một xã hội phát triển, một xã hội văn minh là nơi mà trí tưởng tượng của con người luôn được đề cao, mọi người trong xã hội cùng tham gia hoạt động sáng tạo, phát minh ra cái mới, giúp làm cho cuộc sống ngày càng tiện nghi, hạnh phúc hơn.

Hôm qua mình có xem một chương trình truyền hình trong một lớp học cấp 3 ở Nhật, các học sinh trong lớp tham gia một bài kiểm tra kiến thức thế giới. Thầy giáo đã đố các học sinh về những bậc vĩ nhân, những nhà khoa học lỗi lạc, những anh hùng nổi tiếng của nhân loại. Nào là những Newton, Einstein, Graham Bell, Napoleon..những bộ óc lỗi lạc đã để lại cho hậu thế những phát minh vĩ đại, những bài học quý giá còn có giá trị cho đến ngày nay. Rất buồn thay, những chú Cuội, chị Hằng, ông Nghè không một ai được các bạn trẻ trên thế giới biết đến.

Nhìn từ trên xuống dưới từ chiếc máy tính, điện thoại đến quần áo đang mặc trên người, đều là phát minh của nước khác, mà hầu như đều là của phương Tây. Có một câu hỏi đặt ra là phải chăng trí tượng tượng của người Việt mình không có? Hay do đó hậu quả của một nền giáo dục chưa hoàn thiện, do chiến tranh, loạn lạc gây ra. Như tonybuoisang có nói ngày xưa khi các cụ đang ngồi tưởng tượng cảnh thần tiên thì giặc đến nên trí tưởng tượng bị đứt quãng, lần này đến lần khác để kết quả ngày nay là không có 1 thành tựu, phát mình nào vĩ đại.

Mình sẽ không bàn về nguyên nhân vì sao ở đây mà sẽ nói về phương pháp để có thể cải thiện khả năng tưởng tượng, để có thể mang trong mình tư duy toàn cầu, phát minh ra những sản phẩm mới, không bị bó hẹp trong luỹ tre làng. Cụ thể mình sẽ lấy Nhật Bản là một ví dụ. Đất nước cũng đi lên từ chiến tranh và vươn lên thành cường quốc kinh tế trên thế giới. Nói về trí tưởng tượng của người Nhật, chúng ta cùng điểm qua những phát minh của họ mà cả thế giới đang áp dụng cho đến ngày nay:

Nồi cơm điện: Được phát minh năm 1955 bởi công ty Toshiba.
Karaoke: Hình thức giải trí này đang rất thịnh hành ở Việt Nam và trên thế giới được bắt đầu từ đất nước mặt trời mọc năm 1971.
Thiết bị đinh vị ô tô: Hệ thống được ra mắt lần đầu năm 1981 bởi công ty Honda, mặc dù lúc đấy thiết bị còn nhiều hạn chế nhưng đó là tiền đề cho sự phát triển sau này.
Tàu cao tốc Shinkansen: Mặc dù vị trí này ngày nay đã bị thuộc về Trung Quốc nhưng nhắc đến con tàu đầu tiên nhanh nhất thế giới, ai ai cũng phải nhắc tới Nhật Bản.
Và còn rất nhiều phát minh khác nữa.

Sau gần 3 năm sống ở Nhật, mình đã phần nào tìm được câu trả lời vì sao người Nhật có thể phát minh ra những sản phẩm, đồ vật tiên phong trên thế giới như vậy, đó chính là anime, văn hoá đọc truyện tranh. Từ chú mèo máy Doraemon nổi tiếng, những Pokemon được yêu thích trên khắp thế giới, rồi đến nào là những Naruto, Luffy và đồng đội trong bộ truyện dài tập OnePiece. Tất cả đều là kết quả của trí tưởng tượng phong phú được kết tinh lại trong những bộ truyện tranh và từ đó làm cả dân tộc Nhật say mê, yêu thích. Dần dần những người say mê truyện tranh chính là những người luôn có trí tưởng tượng phong phú, tâm hồn họ luôn bay bổng, sẵn sàng sáng tạo bất cứ lúc nào.

anime1

Ở nhật, bất cứ nơi đâu bạn cũng dễ dàng bắt gặp những nhân vật trong truyện, những character ngộ nghĩnh. Từ nhà ga tàu điện ngầm, trên đường phố, trên xe bus hay thậm chí trong nhà vệ sinh.
Các gameshow thách đố trí tưởng tượng, óc quan sát luôn đầy rẫy trên các chương trình tivi. Các công ty trẻ ở Nhật lúc nào cũng đề cao trí tưởng tượng của nhân viên, luôn có các cuộc thi để nhân viên trình bày ý tưởng của mình.

Mình thấy một điểm hay ở các trang web ở nhật bản là mỗi website đều có một character đại diện cho website đó. Và từ character này họ thiết kế thêm những trạng thái cảm xúc khác nhau của character làm cho trang web trở nên bắt mắt, người dùng cũng thấy website trở nên vui nhộn, gần gũi hơn.

スクリーンショット 2018-05-21 19.47.12

Trang web với rất nhiều hình ảnh vui nhộn 

Một môi trường mà đâu đâu cũng đầy những sản phẩm kết tinh của trí tưởng tượng chính là môi trường giáo dục tốt nhất cho thế hệ trẻ. Để đất nước phát triển, hội nhập quốc tế, đầu tư giáo dục cho thế hệ trẻ rất quan trọng, và việc giáo dục đúng cách lại càng quan trọng hơn. Nền giáo dục đề cao trí tưởng tượng của học sinh theo mình chính là hướng đi đúng đắn mà nền giáo dục nước ta nên hướng đến, thay vì đề cao thành tích như hiện nay.


So sánh Delegate với Closure

+ Đều có chung mục đích là xử lý callback cho một object. Closure có cú pháp ngắn gọn, có thể dùng luôn khi khởi tạo object. Còn delegate là 1 pattern, sử dụng protocol để thực thi callback.

+ Delegates nhóm các callback về một nơi, còn closure tách biệt mỗi object sẽ có 1 callback riêng.

+ Nên dùng Closure thay vì Delegate
-> Delegate phải khai báo protocol và vì không có optional methods nên phải implement tất cả cả method.
-> Nếu có nhiều delegates thì code sẽ trở nên phức tạp, khó quản lý
+ Các ngôn ngữ lập trình Objective-C và swift đều là ngôn ngữ hướng giao thức (protocol), nên ngày trước core của các thư viện đều dùng delegate là phổ biến. Nhưng giờ apple bắt đầu chuyển đổi sang dùng closure, UIAlertController là một ví dụ, closure được dùng để thực thi callback cho action.

+ Tuỳ vào các đối tượng cụ thể mà sử dụng delegate hay closure, apple đã rất linh hoạt trong việc sử dụng. Như UITableView việc dùng delegate là thích hợp nhất cho việc khai báo datasource.


Pages:123456