Thứ Tư, 31 tháng 1, 2018

Tất Cả Những Điều Bạn Cần Biết Về big Data

 

phân tách nhiều dữ liệu chỉ là một phần của việc khiến phân tách big data khác với việc phân tích dữ liệu trước đây. Hãy cùng tìm hiểu các góc cạnh khác.

Có data, và sau đó có big data. Vậy, sự khác biệt là gì?

Big data được định nghĩa

Big data nhìn chung liên quan đến các tập dữ liệu có khối lượng lớn và phức tạp đến mức các phần mềm xử lý dữ liệu truyền thống không có khả năng thu thập, quản lý và xử lý dữ liệu trong một khoảng thời kì hợp lý.

 

Những tập dữ liệu lớn này có thể bao gồm các dữ liệu có cấu trúc, không có cấu trúc và bán cấu trúc, mỗi tập có thể được khai thác để tìm hiểu insights.

Bao nhiêu dữ liệu để đủ gọi là ” big ” vẫn còn được tranh cãi, nhưng nó có thể là các bội số của petabyte – và các dự án lớn nhất với phạm vi exabytes.

Big data thường đặc trưng với ba Vs:

  • Khối lượng dữ liệu
  • Nhiều loại dữ liệu đa dạng
  • véc tơ vận tốc tức thời mà dữ liệu cần phải được xử lý và phân tách

Dữ liệu tạo thành các kho dữ liệu lớn có thể đến từ các nguồn bao gồm các trang web, công cụ truyền thông xã hội, áp dụng dành cho máy tính để bàn và áp dụng trên thiết bị di động, các thử nghiệm khoa học, và các thiết bị cảm biến ngày càng tăng và các thiết bị khác trong internet (IoT).

Khái niệm big data đi kèm với các thành phần có liên quan cho phép các tổ chức đưa dữ liệu vào dùng thực tế và giải quyết một số vấn đề kinh dinh, bao gồm cơ sở hạ tầng IT cấp thiết để hỗ trợ big data; các phân tích áp dụng với dữ liệu; công nghệ cần thiết cho các dự án big data; các bộ kĩ năng liên hệ; và các trường hợp thực tiễn có ý nghĩa đối với big data.

Big data and analytics

Điều đích thực mang lại giá trị từ các tổ chức dữ liệu lớn là phân tách dữ liệu. Nếu không có phân tích, nó chỉ là một tập dữ liệu với việc sử dụng hạn chế trong kinh dinh.

Bằng cách phân tích dữ liệu lớn, các công ty có thể có những lợi. như tăng doanh thu, dịch vụ khách hàng được cải thiện, hiệu quả cao hơn và tăng khả năng cạnh tranh.

phân tích dữ liệu can dự đến việc rà bộ dữ liệu để thu thập thông báo chi tiết hoặc rút ra kết luận về những gì chúng chứa, chả hạn như các thiên hướng và dự đoán về hoạt động trong ngày mai.

Bằng cách phân tích dữ liệu, các tổ chức có thể đưa ra các quyết định kinh dinh tốt hơn như khi nào và ở đâu nên chạy chiến dịch tiếp thị hoặc giới thiệu một sản phẩm hoặc dịch vụ mới.

Sự phân tách có thể tham khảo các ứng dụng kinh doanh sáng dạ hay tiền tiến hơn, phép phân tách dự đoán như vận dụng được các tổ chức khoa học sử dụng. Loại phân tách dữ liệu cao cấp nhất là data mining , nơi các nhà phân tích đánh giá các bộ dữ liệu lớn để xác định mối quan hệ, mô hình và xu hướng.

phân tách dữ liệu có thể bao gồm phân tách dữ liệu thăm dò ( để xác định các mẫu và mối quan hệ trong dữ liệu) và phân tích dữ liệu xác nhận ( ứng dụng các kĩ thuật thống kê để tìm ra giả định về một bộ dữ liệu có đúng hay không).

Một mảng khác là phân tách dữ liệu định lượng ( hoặc phân tích dữ liệu số có các biến có thể so sánh theo thống kê) so với phân tách dữ liệu định tính ( tụ hội vào các dữ liệu không phải là dữ liệu cá nhân như video, hình ảnh và văn bản).

Cơ sở hạ tầng IT để hỗ trợ big data

Đối với khái niệm big data để làm việc, các tổ chức cần phải có cơ sở hạ tầng để thu thập và chứa dữ liệu, cung cấp quyền truy cập và bảo đảm thông tin trong khi lưu trữ và chuyển tiếp.

Ở cấp độ cao, bao gồm hệ thống lưu trữ và máy chủ được thiết kế cho big data, phần mềm quản lý và tích hợp dữ liệu, thông báo kinh dinh và phần mềm phân tích dữ liệu, và các ứng dụng big data.

đa số các cơ sở hạ tầng này sẽ hội tụ một chỗ, vì các công ty muốn tiếp tục tận dụng các khoản đầu tư vào trọng tâm dữ liệu của mình. Nhưng ngày càng có nhiều tổ chức dựa vào các dịch vụ điện toán đám mây để xử lý nhiều đề nghị big data của họ.

Thu thập dữ liệu đòi hỏi phải có nguồn. Rất nhiều trong số những áp dụng sau đây, như các áp dụng web, các kênh truyền thông xã hội, ứng dụng di động và lưu trữ email đã được cài sẵn. Nhưng khi IoT trở nên phổ biến hơn, các công ty có thể cần phải khai triển cảm biến trên ắt các loại thiết bị, công cụ và sản phẩm để thu thập dữ liệu, cũng như các ứng dụng mới tạo ra dữ liệu người dùng. ( phân tách dữ liệu theo định hướng IoT có các kỹ thuật và dụng cụ chuyên biệt của nó.)

Để lưu trữ bít tất các dữ liệu đến, các tổ chức cần phải có đủ dung lượng lưu trữ tại chỗ. Các tùy chọn lưu trữ bao gồm kho dữ liệu truyền thống, data lakes và lưu trữ trên đám mây.

Các phương tiện cơ sở hạ tầng bảo mật có thể bao gồm việc mã hóa dữ liệu, xác thực người dùng và các điều khiển truy cập khác, hệ thống giám sát, tường lửa, quản lý di động của doanh nghiệp và các sản phẩm khác để bảo vệ hệ thống và dữ liệu.

Big-data-specific technologies

Ngoài cơ sở hạ tầng IT được sử dụng cho dữ liệu nói chung, có một số công nghệ cụ thể dành cho big data mà cơ sở hạ tầng IT của bạn nên hỗ trợ.

Hệ sinh thái Hadoop

Hadoop là một trong những công nghệ hệ trọng chém đẹp nhất với big data. Dự án Apache Hadoop phát triển phần mềm mã nguồn mở cho máy tính có khả năng mở rộng và phân tán.

Thư viện phần mềm Hadoop là một khuôn mẫu cho phép xử lý phân tán các bộ dữ liệu lớn trên các nhóm máy tính sử dụng các mô hình lập trình đơn giản. Nó được thiết kế để mở mang từ một máy chủ độc nhất vô nhị sang hàng ngàn máy khác, mỗi máy cung cấp tính tình và lưu trữ cục bộ.

Dự án bao gồm rất nhiều phần:

  • Hadoop Common, các tiện ích phổ thông tương trợ các phần Hadoop khác
  • Hadoop Distributed File System, cung cấp khả năng truy cập dữ liệu vận dụng cao
  • Hadoop YARN, một khuôn mẫu cho kế hoạch làm việc và quản lý tài nguyên cụm
  • Hadoop MapReduce, một hệ thống dựa trên YARN để xử lý đồng thời bộ dữ liệu lớn.

Apache Spark

Một phần của hệ sinh thái Hadoop, Apache Spark là một khuôn mẫu tính toán cụm nguồn mở được sử dụng làm dụng cụ xử lý big data trong Hadoop. Spark đã trở nên một trong những khuôn mẫu xử lý big data quan yếu, và có thể được triển khai theo nhiều cách khác nhau. Nó cung cấp các buộc ràng bản địa đối với Java, Scala, Python (đặc biệt là Anaconda Python distro ), và tiếng nói lập trình R ( R đặc biệt ăn nhập với big data ) và tương trợ SQL , streaming data, machine learning  xử lý đồ thị .

Data lakes

Data lakes là các kho lưu trữ chứa khối lượng dữ liệu thô rất lớn ở định dạng gốc của nó cho đến khi những người dùng doanh nghiệp cần dữ liệu. Các yếu tố giúp tăng trưởng data lakes là những phong trào kỹ thuật số và sự phát triển của IoT. Các data lakes được thiết kế để giúp người dùng dễ dàng truy cập vào một lượng lớn dữ liệu khi có nhu cầu.

NoSQL Databases

Các cơ sở dữ liệu SQL bình thường được thiết kế cho các giao dịch đáng tin cậy và các truy nã tình cờ, nhưng chúng có những hạn chế như giản đồ cứng nhắc làm cho chúng không hạp với một số loại ứng dụng. Cơ sở dữ liệu NoSQL nêu ra những hạn chế, và lưu trữ và quản lý dữ liệu theo những cách cho phép tốc độ hoạt động cao và sự linh hoạt tuyệt. Nhiều cơ sở dữ liệu đã được phát triển bởi các công ty tìm cách tốt hơn để lưu trữ nội dung hoặc xử lý dữ liệu cho các trang web lớn. Không giống như các cơ sở dữ liệu SQL, nhiều cơ sở dữ liệu NoSQL có thể được mở mang theo chiều ngang trên hàng trăm hoặc hàng ngàn máy chủ.

In-memory databases

Cơ sở dữ liệu trong bộ nhớ (IMDB) là một hệ thống quản lý cơ sở dữ liệu đẵn dựa vào bộ nhớ chính, thay vì đĩa, để lưu trữ dữ liệu. Cơ sở dữ liệu trong bộ nhớ nhanh hơn các cơ sở dữ liệu được tối ưu hóa trong đĩa, một điểm quan trọng để dùng phân tách big data và tạo ra các kho dữ liệu và các siêu dữ liệu.

Các kĩ năng big data

Big data và các chũm phân tích big data đề nghị kĩ năng cụ thể, dù là từ bên trong tổ chức hay phê chuẩn các chuyên gia bên ngoài.

Nhiều kĩ năng có can dự đến các thành phần công nghệ dữ liệu quan yếu như Hadoop, Spark, NoSQL, cơ sở dữ liệu trong bộ nhớ và phần mềm phân tách.

Các lĩnh vực khác cụ thể là về các nguyên tắc như khoa học dữ liệu, khai thác dữ liệu, phân tách thống kê và định lượng, tưởng tượng dữ liệu, lập trình mục đích chung, và cấu trúc dữ liệu và các thuật toán. Ngoài ra cũng cần có những người có kĩ năng quản lý tổng thể để quản lý tiến độ của các dự án big data.

Với độ phổ thông của các dự án phân tách dữ liệu và sự thiếu hụt nhân công về các kĩ năng trên, việc từng các chuyên gia có kinh nghiệm có thể là một trong những thách thức lớn nhất đối với các tổ chức.

Các trường hợp dùng Big data

Big data và phân tích có thể được áp dụng trong nhiều vấn đề kinh doanh và nhiều trường hợp sử dụng khác nhau. Sau đây là vài tỉ dụ:

  • phân tách khách hàng. Các công ty có thể thẩm tra dữ liệu khách hàng để nâng cao trải nghiệm của khách hàng, cải thiện tỉ lệ chuyển đổi và giữ khách hàng tốt hơn.
  • phân tách hoạt động. Nâng cao hiệu quả hoạt động và dùng tốt hơn tài sản của công ty là mục tiêu của nhiều công ty. phân tách big data có thể giúp doanh nghiệp vận hành hiệu quả hơn và cải thiện hiệu suất.
  • buồng gian lận. phân tích dữ liệu có thể giúp các tổ chức xác định các hoạt động khả nghi, và các mẫu có thể chỉ ra hành vi gian lậu và giúp giảm thiểu rủi ro.
  • Tối ưu hóa giá cả. Các công ty có thể dùng phân tích big data để tối ưu hóa giá đặt cho sản phẩm và dịch vụ, giúp tăng doanh thu.

Thứ Ba, 30 tháng 1, 2018

10 bước giúp các developer newbies giải quyết bất kì vấn đề lập trình nào

Một số phản hồi tôi nghe từ các nhà phát triển mới vào nghề về vấn đề lập trình xoay quanh việc không biết bắt đầu từ đâu.
Bạn hiểu vấn đề, logic, cơ bản của cú pháp, v.v. Và nếu bạn thấy code của người khác hoặc có người hướng dẫn bạn, bạn có thể làm theo. Nhưng có thể bạn cảm thấy không chắc chắn về việc tự mình thực hiện và gặp rắc rối khi chuyển suy nghĩ của bạn thành code, mặc dù bạn hiểu cú pháp hoặc logic.
Ở đây, tôi sẽ trình bày quy trình của tôi để giải quyết một vấn đề mẫu. Hy vọng rằng, một số bạn sẽ thấy bài này hữu ích hỗ trợ hành trình lập trình của bạn.
1.Đọc vấn đề ít nhất ba lần
Bạn không thể giải quyết vấn đề mà bạn không hiểu. Có một sự khác biệt giữa vấn đề và vấn đề bạn nghĩ rằng bạn đang giải quyết. Thật dễ dàng để bắt đầu đọc vài dòng đầu tiên của một vấn đề và đặt giả thiết cho phần còn lại của nó bởi vì nó giống như một thứ bạn đã nhìn thấy trong quá khứ. Ngay cả khi bạn đang tạo ra một trò chơi phổ biến như Hangman, hãy chắc chắn đọc qua các quy tắc ngay cả khi bạn đã chơi nó trước đây. Tôi đã được hỏi một lần để làm một trò chơi như Hangman và chỉ nhận ra rằng đó là “Evil Hangman” sau khi tôi đọc qua các hướng dẫn (đó là một thủ thuật!).
Đôi khi, tôi thậm chí sẽ cố gắng giải thích vấn đề cho bạn bè và xem liệu họ có hiểu lời giải thích của tôi và đánh giá nó có phù hợp với vấn đề tôi được giao nhiệm vụ hay không. Bạn không muốn phát hiện ra rằng bạn hiểu sai vấn đề khi đã đi được nữa chặng đường. Dành thêm thời gian ở khoảng thời gian đầu là điều đáng làm. Bạn càng hiểu rõ vấn đề, bạn sẽ dễ dàng giải quyết được.
Hãy tưởng tượng chúng ta đang tạo ra một function đơn giản selectEvenNumbers đặt vào một mảng (array) các số và trả về một mảng số selectEvenNumbers chỉ có các số chẵn. Nếu không có số chẵn, nó sẽ trả lại kết quả là mảng rỗng.
Dưới đây là một số câu hỏi trong đầu tôi:
  • Làm thế nào máy tính có thể cho biết một số chẵn? Chia số đó cho 2 và xem phần còn bằng không.
  • Tôi chuyển vào function như thế nào? Một mảng ( array ).
  • Mảng đó chứa gì? Một hoặc nhiều số.
  • Các kiểu dữ liệu của các phần tử trong mảng là gì? Số.
  • Mục tiêu của chức năng này là gì? Tôi sẽ trả lại gì khi kết thúc function này? Mục đích là để lấy tất cả các số chẵn và trả lại chúng trong một mảng. Nếu không có số chẵn, hàm sẽ trả về một mảng trống.

    3. Xử lý các vấn đề thủ công với ít nhất ba bộ dữ liệu mẫu

Lấy ra một mảnh giấy và xử lý các vấn đề thủ công. Hãy nghĩ ra ít nhất ba bộ dữ liệu mẫu bạn có thể sử dụng. Đừng quên xem các trường hợp Corner Edge .
  • Trường hợp Corner: Một vấn đề hoặc tình huống xảy ra bên ngoài các thông số bình thường, đặc biệt khi nhiều biến môi trường hoặc các điều kiện xảy ra đồng thời ở mức cực cao, mặc dù mỗi tham số nằm trong phạm vi được chỉ định cho tham số đó.
  • Trường hợp Edge: Một vấn đề hoặc tình huống xảy ra chỉ ở một tham số cực trị (tối đa hoặc tối thiểu) hoạt động.
Dưới đây là một số bộ dữ liệu mẫu chúng ta có thể sử dụng:
Khi bạn lần đầu tiên bắt đầu, nó rất dễ dàng để vượt qua các bước. Bởi vì não của bạn có thể đã quen với các con số, bạn chỉ có thể nhìn vào một tập hợp các dữ liệu mẫu và kéo ra các con số như 2, 4, 6 và nhiều hơn nữa trong mảng mà không nhận thức đầy đủ về từng bước và mỗi bước bộ não của bạn đang giải quyết nó. Nếu điều này khó khăn, hãy thử sử dụng các bộ dữ liệu lớn vì nó sẽ ghi đè lên khả năng giải quyết vấn đề tự nhiên của bộ não của bạn chỉ bằng cách nhìn vào nó. Điều đó giúp bạn làm việc thông qua thuật toán thực tế.
Chúng ta hãy đi qua mảng đầu tiên [1]
  1. Nhìn vào phần tử duy nhất trong mảng [1] .
  2. Quyết định xem nó là số chẵn hay không. Nó không phải
  3. Lưu ý rằng không có nhiều phần tử trong mảng này.
  4. Xác định rằng không còn số chẵn nào trong mảng được cung cấp này.
  5. Trả lại một mảng trống.
Chúng ta hãy đi qua mảng 1, 2]
  1. Nhìn vào phần tử đầu tiên trong mảng [1, 2]
  2. Đó là 1.
  3. Quyết định xem nó có phải số chẵn hay không. Nó không phải.
  4. Nhìn vào phần tử tiếp theo của mảng.
  5. Đó là 2 .
  6. Quyết định xem nó có phải evenNumbers hay không. Nó đúng là evenNumbers .
  7. Thực hiện một mảng evenNumbers và thêm 2 vào mảng này.
  8. Lưu ý rằng không có nhiều phần tử trong mảng này.
  9. Trả lại mảng evenNumbers với số 2.
Đi qua một vài lần nữa. Lưu ý cách mà tôi đã viết về [1] thay đổi một chút từ [1, 2] . Đó là lý do tại sao tôi cố gắng đi qua một vài bộ khác nhau. Tôi có một số bộ chỉ với một phần tử, một số có thả nổi thay vì số nguyên, một số có nhiều chữ số trong một phần tử, và một số âm để an toàn.

3. Đơn giản hóa và tối ưu hóa các bước

Tìm các mẫu và xem liệu có bất kỳ điều gì bạn có thể khái quát hay không. Xem bạn có thể giảm bất kỳ bước nào hoặc nếu bạn đang lặp lại điều gì.
  1. Tạo một function selectEvenNumbers .
  2. Tạo một mảng rỗng mới evenNumbers khi bạn có thể lưu trữ các số chẵn nếu có.
  3. Đi qua từng phần tử trong mảng y [1, 2] .
  4. Tìm phần tử đầu tiên.
  5. Quyết định xem nó có phải là số chẵn bằng cách xem nó có chia hết cho hai. Nếu nó là số chẵn, thêm nó vào evenNumbers .
  6. Tìm phần tử tiếp theo.
  7. Lặp lại bước # 4.
  8. Lặp lại bước # 5 và # 4 cho đến khi không có thêm các phần tử trong mảng này.
  9. Trả lại array evenNumbers . bất kể nó có bất cứ điều gì trong nó.
Cách tiếp cận này có thể nhắc bạn về cảm ứng toán học bởi vì bạn:
  • Cho rằng nó đúng với n = 1 , n = 2 , ...
  • Giả sử nó đúng cho n = k
  • Chứng minh nó đúng với n = k + 1
  1. Viết pseudocode

Ngay cả sau khi bạn đã tạo ra các bước chung, viết pseudocode mà bạn có thể dịch thành code sẽ giúp xác định cấu trúc code của bạn và làm cho lập trình dễ dàng hơn nhiều. Viết dòng code giả lập theo dòng. Bạn có thể làm điều này trên giấy hoặc qua bình luận trong trình biên tập code của bạn. Nếu bạn mới bắt đầu và thấy các màn hình trống rùng rợn hoặc làm bạn bối rối, tôi khuyên bạn nên làm nó trên giấy.
Pseudocode thường không có các quy tắc cụ thể, đặc biệt là đôi khi tôi kết thúc bằng một số cú pháp từ một ngôn ngữ chỉ vì tôi đã quen với nó. Đừng theo đuổi cú pháp. Tập trung vào logic và các bước.
Đối với vấn đề của chúng tôi, có rất nhiều cách khác nhau để làm điều này. Ví dụ: bạn có thể sử dụng bộ lọc, nhưng để ví dụ này dễ dàng theo dõi tốt nhất, chúng tôi sẽ sử dụng một vòng lặp cơ bản cho bây giờ (nhưng chúng tôi sẽ sử dụng bộ lọc sau này khi chúng tôi tái cấu trúc code của chúng tôi).
Dưới đây là ví dụ về giả mã có nhiều từ hơn:


Dưới đây là ví dụ của pseudocode có ít từ hơn:


Dù bằng cách nào miễn là bạn đang viết nó ra và hiểu được logic trong mỗi dòng.
Hãy tham khảo lại vấn đề để chắc chắn rằng bạn đang đi đúng hướng.
  1. Dịch pseudocode thành code và debug

Khi bạn có sẵn pseudocode của bạn, dịch từng dòng thành mã thực bằng ngôn ngữ mà bạn đang làm việc. Chúng ta sẽ sử dụng Javascript cho ví dụ này.
Nếu bạn đã viết nó trên giấy, hãy viết như bình luận trong trình biên tập code của bạn. Sau đó, thay thế mỗi dòng trong pseudocode của bạn.
Sau đó tôi gọi function và cung cấp cho nó một số tập hợp dữ liệu mẫu mà chúng ta đã sử dụng trước đó. Tôi sử dụng chúng để xem nếu mã của tôi trả về kết quả tôi muốn hay không. Bạn cũng có thể viết bài kiểm tra để kiểm tra xem kết quả thực tế bằng với kết quả dự kiến hay không.


Tôi thường sử dụng console.log () sau mỗi biến hoặc dòng. Điều này giúp tôi kiểm tra xem các giá trị và code có hoạt động như mong đợi trước khi tôi tiếp tục. Bằng cách này, tôi phát hiện ra bất kỳ vấn đề nào trước khi tôi đi quá xa. Dưới đây là một ví dụ về những gì tôi sẽ kiểm tra trước khi bắt đầu. Tôi làm điều này thông qua mã của tôi khi tôi gõ ra.


Sau khi làm việc thông qua mỗi dòng pseudocode của tôi, dưới đây là những gì chúng tôi kết thúc. / / là các dòng trong pseudocode và văn bản in đậm là mã thực tế trong Javascript.


Sau đó tôi thoát khỏi pseudocode để tránh nhầm lẫn.


Đôi khi, các nhà phát triển mới sẽ gặp khó khăn với cú pháp mà nó sẽ trở nên khó khăn để tiếp tục. Hãy nhớ rằng cú pháp sẽ tự nhiên hơn theo thời gian và không cần ngại trong việc tham khảo tài liệu sao cho các cú pháp chính xác sau này khi mã hóa.
  1. Đơn giản hóa và tối ưu hóa mã của bạn

Bây giờ bạn có thể nhận thấy rằng đơn giản hóa và tối ưu hóa là các chủ đề lặp lại.
Trong ví dụ này, một cách để tối ưu hóa chức năng đó là lọc các khoản mục khỏi một mảng bằng cách trả về một mảng mới sử dụng filter . Bằng cách này, chúng ta không cần phải định nghĩa một biến evenNumbers nữa bởi vì bộ lọc sẽ trả về một mảng mới với các bản sao của các phần tử phù hợp với bộ lọc. Điều này sẽ không thay đổi mảng gốc. Chúng tôi cũng không cần phải sử dụng một vòng lặp với cách tiếp cận này. Bộ lọc sẽ đi qua từng khoản mục và trả về true (bao gồm phần tử đó trong mảng) hoặc false (bỏ qua phần tử trong mảng đó).


Đơn giản hóa và tối ưu hoá code của bạn có thể yêu cầu bạn phải lặp lại một vài lần, xác định các cách để đơn giản hóa và tối ưu hóa code.
Dưới đây là một số câu hỏi cần ghi nhớ:
  • Mục tiêu của bạn để đơn giản hóa và tối ưu hóa là gì? Mục tiêu sẽ phụ thuộc vào phong cách của nhóm hoặc sở thích cá nhân của bạn. Bạn đang cố gắng làm gọn code càng nhiều càng tốt? Là mục tiêu để làm cho code dễ đọc hơn? Nếu đó là trường hợp, bạn có thể thích dùng thêm dòng để xác định biến hoặc tính toán một cái gì đó hơn là cố gắng xác định và tính toán tất cả trong một dòng.
  • Làm thế nào khác bạn có thể làm cho code dễ đọc hơn?
  • Có thêm bất kỳ bước nào bạn có thể thực hiện được không?
  • Có bất kỳ biến hoặc function nào mà bạn đã kết thúc thậm chí không cần hoặc sử dụng?
  • Bạn có lặp lại một số bước rất nhiều? Xem nếu bạn có thể xác định trong một function khác.
  • Có những cách tốt hơn để xử lý các trường hợp edge?
  1. Debug

Bước này thực sự cần được áp dụng trong suốt quá trình. Debug toàn bộ sẽ giúp bạn phát hiện bất kỳ cú pháp lỗi hoặc khoảng trống trong logic sớm hơn hơn là sau này. Tận dụng lợi thế của môi trường phát triển tích hợp (IDE) và trình debug. Khi tôi gặp lỗi, tôi theo dõi các dòng mã theo dòng để xem nếu có bất cứ điều gì mà không đi như mong đợi. Dưới đây là một số kỹ thuật tôi sử dụng:
  • Kiểm tra bảng điều khiển để xem những gì thông báo lỗi nói. Đôi khi, nó sẽ chỉ ra một số dòng. Điều này cho tôi ý tưởng sơ bộ về nơi để bắt đầu – mặc dù vấn đề đôi khi không thể ở trong dòng này.
  • Nhận xét các khối hoặc các dòng mã và đầu ra mà tôi có cho đến nay để nhanh chóng xem code có hoạt động như tôi mong đợi hay không. Tôi luôn luôn có thể sửa lại code khi cần thiết.
  • Sử dụng dữ liệu mẫu khác nếu có những tình huống mà tôi không nghĩ đến và xem liệu code vẫn hoạt động hay không.
  • Lưu các phiên bản khác nhau của tệp nếu tôi đang thử một cách tiếp cận hoàn toàn khác. Tôi không muốn mất bất kỳ công việc của tôi nếu tôi chưa muốn kết thúc nó!
  1. Viết những lời bình luận hữu ích

Bạn có thể không nhớ mỗi dòng có ý nghĩa là gì một tháng sau đó. Và một người khác làm trên dòng code của bạn cũng không biết. Đó là lý do tại sao việc viết những nhận xét hữu ích rất quan trọng để tránh những vấn đề và tiết kiệm thời gian sau này nếu bạn cần quay lại làm.
Tránh xa những bình luận như:
// This is an array. Iterate through it.
// This is a variable
Tôi cố gắng viết những bình luận ngắn giúp tôi hiểu điều gì đang xảy ra nếu nó không hiển nhiên. Điều này có ích khi tôi đang làm việc với các vấn đề phức tạp hơn. Nó giúp tôi hiểu những gì một chức năng cụ thể đang làm và tại sao. Thông qua việc sử dụng các tên biến, tên chức năng và nhận xét rõ ràng, bạn (và những người khác) sẽ có thể hiểu được:
  • Code này dành cho cái gì
  • Nó đang làm gì
  1. Nhận phản hồi thông qua đánh giá code

Nhận phản hồi từ các đồng đội, giáo sư của bạn và các nhà phát triển khác. Kiểm tra Stack Overflow . Xem cách những người khác giải quyết vấn đề và học hỏi từ họ. Đôi khi, có một số cách để tiếp cận vấn đề. Tìm hiểu xem chúng là gì và bạn sẽ dần giỏi hơn và nhanh hơn trong việc tự tìm ra giải pháp.
  1. Thực hành, thực hành, thực hành

Ngay cả các nhà phát triển giàu kinh nghiệm, họ vẫn luôn thực hành và học tập. Nếu bạn nhận được phản hồi hữu ích, hãy thực hiện nó. Làm lại vấn đề hoặc làm những vấn đề tương tự. Tiếp tục thúc đẩy bản thân. Với mỗi vấn đề bạn giải quyết, bạn sẽ trở nên giỏi hơn. Đánh dấu mỗi thành công và nhớ kĩ bạn đã đi bao xa. Hãy nhớ rằng lập trình, giống bất cứ điều gì, đang ngày càng trở nên dễ dàng hơn và tự nhiên hơn.
Cảm ơn, Gavin Stark.

Thứ Sáu, 26 tháng 1, 2018

Những “bóng hồng” quyền lực trong ngành tiền ảo

Số phụ nữ trong lĩnh vực công nghệ hiện đang tăng lên nhanh chóng, nhưng con số này vẫn còn rất thấp. Mặc dù nó thay đổi theo từng lĩnh vực, tỷ lệ trung bình bạn sẽ tìm thấy những nữ founder chỉ là 5%.
Mặc dù con số về công nghệ là rất thấp nhưng hiện tại nó vẫn có vị trí tốt hơn khi so với lĩnh vực tiền ảo. Hiện nay, chỉ khoảng từ 5 đến 7% số người dùng là phụ nữ. Mặc dù những con số này thấp dựa trên rất nhiều yếu tố, điều đó vẫn thể hiện rằng phụ nữ cũng tham gia tích cực vào thế giới crypto.

Rachel Wolfson

Wolfson là một doanh nhân và nhà báo đã góp phần thúc đẩy sự phát triển của nền kinh tế tiền ảo. Đồng thời là một nhà báo cho HuffPost, các bài viết của cô ấy có phạm vi trải dài từ các lĩnh vực khác nhau có liên quan tiền ảo -cryptocurrency. Gần đây cô cũng bắt đầu viết cho Tạp chí Bitcoin.


Khi cô ấy không viết về bảo mật, cô ấy dành thời gian của mình làm tư vấn tiếp thị cho các công ty mới thành lập, tập trung chủ yếu vào blockchain và tiền ảo. Cô chuyên về đưa yếu tố con người vào công nghệ, điều mà chắc chắn là cần thiết trong lĩnh vực tiền ảo.

Meltem Demirors

Demirors là một thành viên của Digital Currency Group, cô giữ chức vụ Giám đốc Phát triển. DCG là một công ty đầu tư vào tiền ảo trong khi cũng xây dựng và hỗ trợ các công ty đang tìm kiếm để thay đổi tương lai tài chính. Tại DCG, Demirors giúp giữ mọi người trên cùng chí hướng trong khi cũng tạo ra những con đường mới để phát triển.


Với bằng Thạc sỹ Quản trị Kinh doanh của Trường Quản lý MIT Sloan và bằng B.A trong Toán học Kinh tế từ Đại học Rice, Demirors cũng là một thành viên của Hội đồng Global Future Council on Blockchain tại Diễn đàn Kinh tế Thế giới.

Ambre Soubiran

Với nền tảng về Marketing và 8 năm kinh nghiệm tại ngân hàng toàn cầu HSBC, Soubiran rất đam mê thị trường tài chính, tiền ảo và blockchain. Chính những niềm đam mê và sở thích khác nhau này đã dẫn đến sự ra đời của công ty Kaiko.


Được thành lập vào năm 2014, Kaiko đã được đặt tên theo một đơn vị thăm dò biển sâu từ trạm Mariana. Cũng giống như các tàu ngầm, Kaiko thu thập và lưu trữ thông tin tiền tệ kỹ thuật số có thể được mua bởi các công ty khác để giúp họ hiểu biết tốt hơn về thị trường.

Pamela Morgan

Được ít nói tới hơn nhưng cũng không kém phần quan trọng khi đối phó với thị trường tiền ảo, là luật pháp. Morgan là một luật sư hiểu được điều đó và đã lập ra Empowered Law, một công ty luật chuyên về mật mã số, giúp giải quyết các tranh chấp về tài sản kỹ thuật số.


Morgan cũng là người sáng lập và giám đốc điều hành của Third Key Solutions . Third Key hoạt động với cả cá nhân lẫn doanh nghiệp với mục tiêu bảo vệ tài sản kỹ thuật số của họ tốt hơn. Họ cũng giúp các nhà đầu tư chuẩn bị cho kế hoạch tương lai – bao gồm các vấn đề bất động sản, thừa kế và các vấn đề tương tự khác.

Anastasia Shvetsova


Cô quan tâm đến thế giới của tiền ảo kể từ những ngày đầu của Bitcoin, Shvetsova là một chuyên gia trong quan hệ công chúng, giúp đỡ rất nhiều công ty công nghệ cao. Trong thời gian gần đây, sự quan tâm của cô đến crypto cũng đã dẫn tới việc thu hút được nhiều khách hàng hơn trong lĩnh vực này như Blackmoon Crypto. Cô đã giúp những công ty mới thành lập này tăng hàng chục triệu đô la và thực hiện được mục tiêu họ đề ra.

Thứ Tư, 10 tháng 1, 2018

TSMC vượt Samsung về sản lượng chip 7 nm, độc quyền sản xuất chip A12 trên iPhone 2018

Theo Digitimes, TSMC gần như đã thắng lợi Samsung trong cuộc đua sản xuất chip bán dẫn dùng tiến trình 7 nm . Hãng gia công chip lớn nhất thế giới không chỉ thuyết phục được hơn 40 khách hàng lớn, mà thậm chí đã đạt được thoả thuận sản xuất toàn bộ các chip A12 mà Apple sẽ sử dụng trên các mẫu iPhone 2018.



Sự thành công của TSMC đến từ việc công nghệ sinh sản chip của họ được xem là tốt nhất hiện, vượt qua cả Samsung. Không ngủ quên trên chiến thắng, TSMC được cho là sẽ bổ sung công nghệ tiêu siêu cực tím (EUV) vào tiến trình 7 nm+ sắp tới và đẩy mạnh việc phát triển tiến trình 5 nm và 3 nm. Hãng dự định sẽ khởi công nhà máy thứ 18 của mình tại khu công nghệ Nam Đài Loan vào năm 2018, tụ hội vào tiến trình sản xuất 5 nm, và lên kế hoạch đầu tư 20 tỷ USD để xây dựng dây chuyền 3 nm.



Dây chuyền 5 nm được cho là một phần mở rộng của dây chuyền 7 nm, hướng đến các chip di động viễn thông, xử lý hiệu suất cao và AI. Nhà máy 5 nm của TSMC sẽ bắt đầu thí điểm hoạt động vào nửa đầu 2019.



đương nhiên, Samsung cũng không ngồi yên khi được cho là đang lên kế hoạch để phản công. Tách ra từ 5/2017, mảng sinh sản chip bán dẫn của Samsung là Samsung Foundry hiện đang là một công ty con hoạt động độc lập nhằm dễ dàng tiến hành các kế hoạch của mình. Cụ thể, Samsung Foundry đã làm việc với ban quản lý tỉnh thành Hwaseong để xây dựng nhà máy 7 nm ở đây, song song liên can với các đối tác ở Mỹ và Trung Quốc về các dự án hợp tác.



Samsung Foundry lên kế kiểm thử phần mềm hoạch đưa tiến trình 4 nm vào hoạt động trong năm 2020, đi trước một bước so với tiến trình 5 nm của TSMC. Samsung vẫn sẽ bắt đầu sản xuất chip bằng tiến trình 7 nm trong năm 2018, và phát triển tiến trình 6 nm lẫn 5 nm trong năm 2019.



Hiện tại về mảng gia công chip bán dẫn, TSMC đang dẫn đầu với thị phần lên đến 60%. Trong khi đó Samsung hiện nay chỉ chiếm chưa đầy 10%, nhưng hãng đang đặt mục tiêu sẽ đạt 25% trong vòng 5 năm tới. Việc mất 2 khách hàng lớn là Apple và Qualcomm về tay TSMC được cho sẽ khiến Samsung phải thay đổi kế hoạch, thay vì tập trung sản xuất chip di động hiệu năng cao thì sẽ mở rộng thị phần qua những lĩnh vực khác. Trước đó thì Samsung đã gây nhiều bất ngờ khi đồng ý sản xuất chip cho công ty sản xuất máy cày Bitcoin Balkai của Nga.



Tham khảo DigiTimes

Thứ Ba, 9 tháng 1, 2018

Java dù được sửa lỗi vẫn chưa an toàn

mai sau mù mịt của tê giác Java

I. Bản cập nhật OS X mới gỡ Java khỏi trình duyệt

Để đáp ứng nhu cầu phát triển, bộ phận chúng tôi cần tuyển 03 lập trình viên Java/J2me trên mobile bộc lộ công việc:- Nghiên cứu và phát triển các áp dụng java/j2me và các dự án có liên tưởng;- mỏng công việc định kỳ cho trưởng phòng;Yêu cầu:- Đã tốt nghiệp Đại học hoặc tương đương liên can đến CNTT;- dùng thuần thục tiếng nói JAVA;- Tối thiểu 1 năm kinh nghiệm lập trình java trên mobile (J2me);- Đã có các sản phẩm (áp dụng/game) trên mobile là một lợi thế lớn;- Có kinh nghiệm sử dụng chí ít 1 hệ quản trị cơ sở dữ liệu như MySQL, MS SQL, Oracle… là một lợi thế;- Có kinh nghiệm làm ứng dụng Client-Server, Socket là một lợi thế;- Có kinh nghiệm dùng j2me Polish framework, LWUIT (Lightweight UI Toolkit) là một lợi thế;- Khả năng tư duy, học hỏi nhanh;- Kỹ năng đọc/viết tài liệu kỹ thuật bằng tiếng Anh;Quyền lợi ứng viên:- Được làm việc với các hệ thống lớn hàng đầu của Việt nam;- Làm việc trong môi trường năng động, nhiều thử thách, có nhịp được đào tạo nâng cao nghiệp vụ thẳng tính;- Được cung cấp các trang thiết bị hiện đại, laptop, máy tính cá nhân. Đối tượng nhảy xuống sông bỏ trốn sang Trung Quốc, vật chứng bị thu giữ là 15 cá thể tê tê Java đặc biệt quý hiếm. Không biết sau lần “yêu cầu” sắp tới đây, Excellence có chịu “nghe lời” hay vẫn chứng nào tật nấy? Phạm Thanh. Theo thống kê của hãng bảo mật Sophos thì các lỗ hổng bảo mật trên Java chiếm đến 90% những vụ tấn công trực tuyến năm ngoái, tương đương 12.

Tình bạn giữa các oắt con có nhẽ được truyền cảm hứng từ mối quan hệ gắn bó của các mẹ. Khác với tê ngưu châu Phi, kẻ săn trộm hầu như thường có cơ hội để tiếp cận với tê ngưu Java vì chúng được các kiểm lâm thiết lập màng lưới bảo vệ khá chặt. Theo ông Trần Quang Phương, quản lý chương trình CPCP: “Đây là một trong những tín hiện khả quan trong công tác bảo tồn trút tại Việt Nam cũng như trên thế giới bởi bình thường trút có tỷ lệ sống sót khá thấp trong điều kiện nuôi nhốt nhưngvới sự tương trợ kịp thời của các cơ quan chức năng tỉnh Ninh Bình, số cá thể hồ hết số động vật được cứu hộ và bình phục thành công và được tái thả sớm hơn so với dự kiến. Để tải vận dụng Java mới về máy tính, bấm vào đây. Tôi cũng chẳng có thời kì để nghỉ ngơi vì ngay sau khi sinh, các bác sĩ bắt đầu giải thích về những rủi ro của ca phẫu thuật. Phần mềm ma này ẩn nấp dưới vận dụng RedBrowser với lời quảng cáo cho phép người dùng điện thoại truy cập các dịch vụ WAP mà không cần kết nối với trình duyệt này.

II. Phòng thương nghiệp điện tử tuyển lập trình viên .NET/JAVA

Tại hòn đảo Java, một hiện tượng phun trào bùn đất thiên nhiên được gọi là “núi lửa bùn” đã cuộn rất đông du khách đến tham quan trong nhiều năm qua. Gần ba tháng trước, Britney cũng nhuộm đen mái tóc “vàng hoe” đặc trưng của mình, tiếp đó đến lượt Cameron Diaz. Sau một tháng được cứu hộ, trút có tiến triển tốt về sức khỏe cũng như ý thức, nhiều cá thể tăng từ 1 đến 1,5 kg. Sammy Arkinstall, du khách Anh san sớt trên Twitter: “Tôi còn quá trẻ để chết”. Các hãng Samsung, Panasonic, LG, Sendo, Samsung, Siemens và tất nhiên cả Nokia cũng đều khẳng định như vậy vì hiện nay có khoảng 25 triệu thiết bị cầm tay chạy trên nền Series 60 được người dùng sử dụng. Siêu mẫu người Đức 34 tuổi này đã là mẹ của 3 đứa con nhưng cô vẫn chứa chan tự tín khi là một trong những “chân dài” kiếm được nhiều tiền nhất trên thế giới.

Các nhà bảo tàng quốc tế hy vọng có thể tăng số lượng tê ngưu Java, cùng loài với con tê ngưu đánh dấu sự tuyệt diệt ở Nam Cát Tiên. Con tê ngưu Java này có tên khoa học là rhinoceros sondaicus annamiticus hay còn gọi là tê giác một sừng được cho là tuyệt chủng ở khu vực Đông Nam Á. Không cần quan tâm các thí sinh khác thế nào, thể hiện tốt nhất khả năng của em là được!”. Phát hiện đối tượng lái đò trên sông có nhiều miêu tả nghi vấn, lực lượng chức năng phối hợp tiến hành áp sát.Sun là công ty đóng góp lớn nhất thế giới cho cộng đồng mã nguồn mở. Tìm các Video về người đẹp Heidi Klum tại Baamboo.

III. VCCorp tuyển PHP, Java developer

Không sở thú nào trên thế giới, ngay cả các chương trình nhân giống có thể tạo ra tê ngưu Java. Ảnh: K' LiệpTheo một cán Học lập trình Java

Thứ Hai, 1 tháng 1, 2018

Hiểu sâu về trí tuệ nhân tạo & Machine Learning tại Apple

Nhiều khả năng, thước đo chuẩn xác nhất cho sự tiến bộ của Machine Learning tại Apple đến từ cộng cuộc mua lại AI quan yếu nhất từ trước đến nay, Siri. nguồn cội của Siri chính là chương trình DARPA tham vọng can dự đến các trợ lý sáng ý. Sau đó, 1 số scientists đã thành lập công ty riêng, sử dụng chương trình DARPA để phát triển thành áp dụng. Steve Jobs đã tự mình thuyết phục những người sáng lập bán DARPA lại cho Apple vào năm 2010 và trực tiếp đưa Siri vào hệ thống điều hành. Sau đó, màn ra mắt của Siri chính là điểm nhấn trong sự kiện ban bố iPhone 4S (10/2011). Giờ đây, cách thức hoạt động của Siri đã tiên tiến đến nỗi users không cần phải kích hoạt nó bằng nút home hay thậm chí không cần nói “Hey, Siri” (1 tính năng tận dụng công nghệ Machine Learning, giúp iPhone nghe ngóng được thông báo mà không hao tốn pin). Trí sáng ý của Siri đã được tích hợp vào Apple Brain và tự hoạt động dù users không trực tiếp mở lời ra lệnh.

 

 

Eddy Cute chỉ ra 4 nguyên tố cốt lõi của Siri chính là: nhận diện giọng nói (để hiểu được thời khắc nào bạn trò chuyện với Siri), khả năng hiểu ngôn ngữ tự nhiên (để nắm bắt những gì bạn đang nói), execution (để thực hiện tầm nã hoặc request) và phản hồi (để đáp lại với bạn). “Machine Learning có sức ảnh hưởng đáng kể đến sờ soạng các yếu tố đó” – Eddy Cue nói.


Tom Gruber – Trưởng Bộ phận Phát triển Siri Cấp Cao (hình trên) và Alex Acero – Chuyên viên nghiên cứu Giọng nói (hình dưới)

Tom Gruber – người đến với Apple phê duyệt thương vụ xác nhập trên (các đồng sáng lập cùng thời với Gruber rời đi sau năm 2011) cho rằng thậm chí trước khi Apple vận dụng neural nets vào Siri thì quy mô user base của Apple đã cung cấp nguồn dữ liệu dùng để “huấn luyện” các nets về sau. “Steve Jobs nói rằng tôi đang có 1 bước ngoặt lớn, từ 1 người đi đầu, 1 áp dụng đến với hàng trăm triệu users mà không hề sở hữu 1 chương trình beta nào. Cứ thế, bạn bất chợt sở hữu rất nhiều users. Users sẽ nói với bạn cách mọi người bàn tán về những gì thích hợp với ứng dụng của bạn. Đây chính là bước phát triển trước nhất. Và sau đó, neural networks đã xuất hiện”

Quá trình chuyển đổi sang neural net xử lý nhận diện giọng nói của Siri được thực hành khi rất nhiều chuyên gia AI nhập Apple, trong đó có Alex Acero. Acero đã bắt đầu sự nghiệp với nhận diện giọng nói tại Apple trong những năm đầu 90 và sau đó dành nhiều năm làm việc tại Microsoft Research. “Tôi rất yêu thích công việc đó và đã xuất bản nhiều bài viết. Nhưng khi Siri ra đời, tôi nhận ra: Đây là cơ hội để biến các deep neural networks thành hiện thực, không phải là thứ hàng trăm người sẽ đọc, mà là thứ được hàng triệu người sử dụng”. Nói cách khác, Alex Acero là 1 kiểu scientist mà Apple đang tầm – tối ưu hóa sản phẩm hơn là hội tụ vào publishing.

Khi Acero đến “nhà táo” cách đây 3 năm, Apple vẫn đang cấp giấy phép cho hồ hết công nghệ giọng nói cho Siri từ bên thứ 3. Federighi bảo đây là 1 pattern mà Apple nghiên cứu liên tiếp. “Khi 1 lĩnh vực công nghệ có đóng góp quan yếu cho sản phẩm trong thời gian dài, chúng tôi sẽ xây dựng đội ngũ in-house để truyền tải được kinh nghiệm mà user muốn. Để tạo ra 1 sản phẩm nhẵn, chúng tôi muốn sở hữu và đổi mới công nghệ đó hơn nữa bằng nguồn lực nội bộ. Speech là 1 tỉ dụ ngoại lệ khi chúng tôi áp dụng các tài nguyên bên ngoài có sẵn, nhờ đó đạt được hiệu quả tốt ngay từ đầu”

Từ đây, team bắt đầu huấn luyện neural net để thay thế nguyên bản của Siri. “Chúng tôi có GPU (graphics processing unit microprocessor – 1 bộ vi xử lý chuyên dụng nhận nhiệm vụ tăng tốc, xử lý đồ họa cho bộ vi xử lý trọng tâm CPU) lớn nhất và tệ nhất… Và rất nhiều dữ liệu”. Lần ra mắt của Siri vào 7/2014 đã cho thấy thảy hoạt động đó không hề vô dụng.

“Tỷ lệ mắc lỗi của Siri giảm… hồ hết là nhờ deep learning và cách chúng tôi tối ưu deep learning – không chỉ nhờ chính thuật toán mà còn nhờ context của thảy sản phẩm end-to-end”

Nói về “end-to-end”, Apple không phải là công ty trước nhất sử dụng DNNs trong nhận diện giọng nói. Nhưng bằng cách kiểm soát toàn bộ hệ thống delivery, Apple lại có lợi thế riêng. Vì Apple tự tạo chips riêng nên Acero có thể làm việc trực tiếp với hàng ngũ thiết kế silicon và các kĩ sư viết firmware cho các thiết bị để tối ưu hiệu suất của neural net. Nhu cầu của Siri team thậm chí còn ảnh hưởng đến thiết kế của iPhone.

“Không chỉ là silicon” – Federighi san sẻ – “Đó chính số lượng những microphones chúng tôi đặt trong thiết bị, là nơi chúng tôi đặt microphones. Cách chúng tôi điều chỉnh hardware, những mics đó và software stack xử lý audio. Chúng trở thành những mảnh ghép gắn kết với nhau – 1 lợi thế không tưởng so với các doanh nghiệp phải xây dựng 1 vài phần mềm nào đó, và chỉ biết ngồi xem chuyện sẽ xảy đến”.

Một góc cạnh khác: Khi 1 Apple neural net hoạt động trong 1 sản phẩm, nó có thể trở thành 1 công nghệ chủ chốt dùng cho những mục đích khác. bởi vậy, khi Machine Learning tương trợ Siri thấu hiểu user, Machine Learning đã trở thành công cụ dùng để xử lý chính tả thay thế cho typing. Hệ quả là, users nhận ra thông điệp và emails của họ trở thành mạch lạc hơn nếu họ không sử dụng bàn phím mềm; dần dần, users sẽ nhấn vào microphone key và nói chuyện nhiều hơn.

yếu tố thứ 2 của Siri mà Eddy Cue đề cập chính là khả năng hiểu được ngôn ngữ tự nhiên (natural language understanding). Siri bắt đầu sử dụng Machine Learning để hiểu được hoài vọng của người dùng kể từ tháng 11/2014 và ra mắt 1 phiên bản học sâu hơn 1 năm sau đó. thời điểm Siri sở hữu tính năng nhận diện giọng nói thì Machine Learning đã có kinh nghiệm trong việc phiên dịch các dòng lệnh linh hoạt hơn. Eddy lấy iPhone của mình ra, kích hoạt Siri làm ví dụ. “Thông qu vận dụng Square Cash, gửi đến Jane 20 dollars”. Màn hình lúc này sẽ phản ảnh hết thảy request của Cue. Eddy Cue thử 1 lần nữa, nhưng đổi thay ngôn từ 1 chút. “Bắn 20 bucks đến vợ của tôi”. Kết quả vẫn tương tự.

Nếu không có các tiến bộ về Siri, Apple sẽ không thể liên tiếp ra mắt Apple TV – thiết bị trội với tính năng quản lý giọng nói tân tiến. Tuy các phiên bản trước đây của Siri đề nghị bạn nói 1 cách hạn chế thì phiên bản supercharged-nhờ-deep-learning không chỉ mang đến những tuyển lựa chuyên biệt từ rất nhiều catalog về movies và bài hát, mà còn giải quyết các concepts như: Hãy cho tôi 1 bộ phim kinh dị có Tom Hanks (Nếu Siri thật sự thông minh, nó sẽ trả về kết quả The Da Vinci Code). “Trước khi có công nghệ supercharged-nhờ-deep-learning, bạn sẽ không thể cung cấp được tính năng này” – Federighi đề cập.

Với iOS 10, được ra mắt vào mùa thu năm nay, giọng nói của Siri đã trở nên yếu tố cuối cùng trong 4 yếu tổ được chuyển đổi bởi machine learning. Về bản tính, dấu ấn của Siri đến từ database gồm các bản ghi âm thu thập được tại voice center; mỗi câu nói là sự chắp vá từ các bản ghi âm này. Theo Gruber, Machine Learning khiến mọi thứ trở thành mượt mà hơn và giúp âm thanh Siri giống người thực hơn.

Acero đã thực hiện 1 phiên bản demo đâu tiên hao hao giọng của Siri với các nhân tố robot quen thuộc. Phiên bản này sẽ hỏi bạn bằng 1 chất giọng hấp dẫn trôi chảy: “Hi, tôi có thể làm được gì cho bạn?”. Điểm dị biệt ở đây là gì? Chính deep learning!

dù rằng chỉ là 1 chi tiết nhỏ, nhưng khi sở hữu 1 giọng nói tự nhiên hơn, Siri có thể đem đến những khác biệt lớn. “Mọi người sẽ thấy tin cậy hơn nếu giọng nói có chất lượng cao hơn. Giọng nói càng vấn người dùng thì càng khiến users sử dụng nhiều, góp phần tăng hiệu ứng hồi lại (return effect)”

Việc dùng Siri cũng như thực hành những cải tiến trên Machine Learning của Apple càng có nhiều ý nghĩa hơn khi rốt cục, Apple cũng mở Siri cho lập trình viên. Tuy nhiên với các chuyên gia thì quy trình này vẫn xảy ra quá muộn vì số lượng đối tác Siri bên thứ 3 mà Apple sở hữu chỉ dừng lại vài chục, trong khi Alexa của Amazon đã có hơn 1000 “kỹ năng” được cung cấp bởi các lập trình viên bên ngoài. Apple lại cho rằng điều này không kéo dài vì users của Amazon phải dùng tiếng nói riêng để tiếp cận các kĩ năng đó. Theo Apple, Siri sẽ tích hợp những thứ như SquareCash hoặc Uber 1 cách thiên nhiên hơn (1 đối thủ khác, Viv - được 1 vị đồng sáng lập Siri tạo nên – cũng hẹn quy trình tích hợp chặt chịa dù chưa công bố ngày ra mắt cụ thể)

Cùng lúc đó, Apple cũng thông tin rằng những cải tiến của Siri đang dần tạo ra sự khác biệt nhờ vào những tính năng mới hoặc thu được các kết quả tốt hơn từ những truy nã thân thuộc. “Số lượng requests vẫn đang tăng và tăng. Tôi nghĩ Apple đang thực hiện tốt hơn công việc truyền thông vớ những gì chúng tôi làm. ví dụ, tôi thích thể thao và bạn có thể hỏi Siri ai là người mà nó nghĩ sẽ chiến thắng trận bóng, nó sẽ trả lại cho bạn 1 đáp án. Tôi còn không biết là Apple có thể làm được điều đó nữa cơ!” – Eddy Cue san sớt.

Có thể vấn đề lớn nhất khi Apple hài lòng Machine Learning chính là cách để đạt được thành công dù vẫn cam kết những nguyên tắc bảo mật người dùng. Apple đã mã hóa thông tin users để không ai, kể cả các luật sư của Apple có thể đọc được (kể cả FBI dù có lệnh nhà lao từ tòa án). Apple cũng không hề thu thập thông tin người dùng nhằm mục đích lăng xê.

Tất nhiên đứng từ giác độ người dùng thì rất đáng khen ngợi nhưng sự nghiêm túc quá mức của Apple với vấn đề bảo mật này vẫn chưa mang lại hiệu quả trong việc lôi kéo các tài năng AI về với công ty. “vớ những gì mà các chuyên gia Machine Learning mong muốn đó chính là dữ liệu” – 1 nhân viên cũ của Apple, hiện đang làm cho công ty về AI cho biết – “Nhưng vì lập trường bảo mật mà Apple thường âm thầm làm mọi thứ. Bạn có thể sẽ tự hỏi liệu đó có phải là điều đúng đắn nhưng cũng chính điều đó khiến Apple trở thành nổi tiếng vì đã không trở thành những kẻ chạy đua theo công nghệ AI”

Quan điểm này bị các nhà điều hành của Apple tranh luận rất nhiều vì họ cho rằng: vẫn có thể lấy được quờ quạng các dữ liệu và tận dụng mạnh mẽ dụng cụ Machine Learning mà không cần phải giữ thông tin cá nhân của users trên cloud, thậm chí cũng không cần lưu lại hành vì của user để huấn luyện cho neural nets.

Có 2 vấn đề ở đây. Thứ nhất, chính là việc xử lý thông tin cá nhân trong các hệ thống dựa trên Machine Learning. Khi thông tin chi tiết về 1 user được thu lượm qua hệ thống xử lý neural-net, chuyện gì sẽ xảy ra với thông tin đó? Thứ hai, việc thu thập thông báo đòi hỏi phải huấn luyện các neural-nets nhận diện hành vi. Nhưng làm thế nào để làm được điều đó mà không thu thập thông báo cá nhân của users?

Apple đã có câu trả lời cho cả 2 vấn đề. “Một số người nhận thức được chúng tôi chẳng thể thực hiện những điều này với AI vì chúng tôi không có data. Nhưng chúng tôi đã tìm ra cách để lấy dữ liệu mà chúng tôi cần nhưng vẫn giữ được tính bảo mật. Đó chính là điểm mấu chốt”

Apple đã giải quyết vấn đề trước nhất – bảo vệ thị hiếu và thông tin cá nhân mà neural nets đã nhận diện được – bằng cách tận dụng khả năng quản lý cả phần mềm và phần cứng độc quyền. Nói 1 cách đơn giản, đó chính là Apple Brain. “Chúng ta giữ lại 1 vài thông báo nhạy cảm nhất khi Machine Learning quét qua tất thảy thiết bị” – Federighi nói. thí dụ, Federighi chứng dẫn các suggestions ứng dụng, icons xuất hiện khi bạn quét sang phải cũng chính những áp dụng mà bạn định sẽ mở ra tiếp theo. Các dự đoán như thế được hình thành dựa trên rất nhiều nhân tố và rất nhiều trong số chúng can dự đến hành vi của riêng người dùng. Theo Federighi, 90% thời kì con người dùng để tìm những gì họ muốn nhờ các những suggestions.

thông báo khác mà Apple lưu trữ trên các thiết bị có thể là dữ liệu mang tính cá nhân nhất mà Apple thu thập được: những từ ngữ mà users gõ bằng bàn phím iPhone QuickType standard. Nhờ có hệ thống neural network theo dõi thời điểm bạn gõ chữ, Apple sẽ phát hiện được các events và items chính như thông báo chuyến bay, số liên lạc và lịch hẹn – nhưng các thông tin đó lại nằm trong điện thoại của bạn. Thậm chí trong các backups lưu trên cloud của Apple, thông báo được gạn lọc để backup chẳng thể đụng đến. “Chúng tôi không muốn thông tin đó được lưu trữ trong servers của Apple. Một tổ chức như Apple không có nhu cầu tìm hiểu về thói quen của bạn hay địa điểm bạn sẽ đến”

Apple cũng vậy giảm số lượng thông báo được giữ lại. Federighi đề cập đến thí dụ như sau: khi bạn có 1 cuộc đối thoại và ai đó nói đến 1 thuật ngữ có thể trở nên từ khóa khoảng tiềm năng, các doanh nghiệp khác sẽ phải phân tách tuốt tuột cuộc hội thoại trong cloud để nhận diện những thuật ngữ đó nhưng 1 thiết bị Apple có thể nhận diện được chúng mà không cần phải lấy data ra khỏi quyền sở hữu của người dùng. Hệ thống của Apple sẽ liên tiếp cữ các kết quả thích hợp theo knowledge base (thông tin chung) trong điện thoại (1 phần của “brain” 200 megabyte)

“Thao tác này rất gọn nhẹ nhưng được thực hiện xuyên suốt knowledge basse, với hàng trăm ngàn locations và entities….” tất cả ứng dụng của Apple đều sử dụng knowledge base (thông báo chung) như app tầng Spotlight, Maps và Safari. Knowledge base còn hỗ trợ cả auto-correct.

Nhưng liệu những quy định bảo mật nghiêm ngặt của Apple có gây chướng ngại cho các thuật toán neural net hay không – đó chính là vấn đề thứ 2 đã được đề cập trước. Neural nets cần 1 lượng lớn dữ liệu để được train đầy đủ, chuẩn xác. Nếu Apple không can thiệp vào hành vi của tuốt người dùng, vậy làm sao để lấy được dữ liệu đó? Như nhiều công ty khác đã làm, Apple huấn luyện nets của mình trên các tập thông tin công khai có sẵn (ví dụ như bộ thông tin gồm các stock images để nhận mặt hình ảnh). Nhưng đôi khi, nó cần nhiều thông báo chi tiết hơn hoặc cập nhật hơn, mà những thông tin này chỉ có thể đến từ user base. Apple đã cầm cố lấy thông báo này mà không cần biết đến users đó là ai; Apple ẩn dữ liệu, gắn nó với các mã nhận diện ngẫu nhiên không kết liên với Apple IDs.

Bắt đầu từ iOS 10, Apple dự định sẽ tuyển 1 công nghệ khá mới tên là Differential Privacy. Công nghệ này dựa vào thông báo của đám đông và không nhận mặt bất cứ cá nhân chủ nghĩa nào. Chẳng hạn Diffential Privacy sẽ tìm các từ khóa nức tiếng mới nhất không có trong knowledge base của Apple hoặc từ điển của Apple, thường xuất hiện bất ngờ dựa trên rất nhiều đáp án liên tưởng đến các truy vấn hoặc lượt dùng các emojis nào đó tăng cao. “Cách thức truyền thống mà giới công nghệ giải quyết vấn đề này chính là gửi đi mọi từ, mọi kí tự mà bạn gõ lên servers, sau đó sẽ thẩm tra tất thảy và phát hiện những thông báo thích thú” – Federighi diễn tả. “Nhờ thực hành mã hóa end-to-end, chúng tôi sẽ không làm theo cách thức truyền thống đó”. Dù Differential Privacy được phát triển trong cộng đồng research, Apple đang dần dần ứng dụng nó trên diện rộng. “Chúng tôi đang thực hiện khảo sát trên 1 tỷ users” – Eddy Cue chia sẻ.

“Chúng tôi đã bắt đầu nghiên cứu công nghệ này từ nhiều năm trước và đã hoàn thành nhiều sản phẩm hay, có tính thực tiễn. chừng độ bảo mật của nó thực rất đáng kinh ngạc” – Federighi (sau đó anh ấy trình diễn.# 1 hệ thống can hệ đến các protocols mã hóa và tung đồng xu ảo mà tôi không theo dõi kịp. Về căn bản, công nghệ này liên can đến việc thêm phương tiện toán học vào những phần nào đó của dữ liệu để Apple có thể phát hiện các usage patterns dù không nhận diện các users cá nhân). Anh cũng đề cập đóng góp của Apple rất có giá trị đối với thế giới vì nó cho phép các scientists làm việc với quy trình implementation, từ đó có thể xuất bản bài viết về công trình cá nhân chủ nghĩa.

Rõ ràng, Machine Learning đã thay đổi các sản phẩm của Apple nhưng liệu Machine Learning có đang thay đổi Apple hay không?. Ở góc cạnh nào đó, mindset về Machine Learning hình như khác biệt với các tập quán xưa nay của Apple. Apple là 1 công ty kiểm soát cẩn thận trải nghiệm người dùng, kể cả các cảm biến dự đoán thao tác quét của users. Mọi thứ được thiết kế trước và được xây dựng các đoạn code 1 cách xác thực. Nhưng khi các kĩ sư vận dụng Machine Learning, họ phải lùi lại, để chính phần mềm tự khám phá các hướng giải quyết. Liệu Apple có chấp thuận thực tại là các hệ thống Machine Learning có thể tiếp cận đến thiết kế sản phẩm?

“Thiết kế sản phẩm là cội nguồn của rất nhiều cuộc bàn cãi nội bộ. Chúng tôi thường mang đến các trải nghiệm đã được lên kế hoạch & giám sát chu đáo, từ đó chúng tôi cs thể quản lý tất các hướng đi mà hệ thống đang dự định tương tác với người dùng. Khi bạn bắt đầu huấn luyện 1 hệ thống dựa trên lượng dữ liệu hành vi người dùng lớn, [các kết quả xuất hiện] không nhất thiết là những gì mà 1 Apple designer chỉ định. Chúng là những gì xuất hiện từ dữ liệu”

Nhưng với Schiller, “Tuy những công nghệ này ảnh hưởng lớn đến cách thiết kế nhưng đến rút cục, chúng tôi mới là người sử dụng những công nghệ này vì chúng có thể giúp chúng tôi đem đến 1 sản phẩm chất lượng hơn”

Và đây là kết luận: Apple có thể không nói rõ về những gì họ đang với Machine Learning nhưng công ty sẽ tận dụng Machine Learning nhiều nhất có thể nhằm cải thiện các sản phẩm của mình. Bằng chứng chính là “bộ não” bên trong điện thoại của bạn.

“Khách hàng thông thường đang trải nghiệm deep learning mỗi ngày [và đây chính là ví dụ] cho thấy vì sao bạn lại yêu mến 1 sản phẩm nào đó của Apple. [Ví dụ] thúc nhất chính là deep learning khôn khéo đến nỗi bạn thậm chí còn không biết về nó cho đến lần thứ 3 khi thấy nó, bạn sẽ dừng lại và tự hỏi: Điều gì đang xảy ra?”

Đào tạo lập trình Java

Stack Overflow đã phát hành nghiên cứu hàng năm về ngành công nghiệp lập trình.

Công ty cho biết ấn bản 2018 của nó đại diện cho nghiên cứu 'lớn nhất từng có' về thái độ, lương và nhân khẩu học của nhà phát triển...