Black Desert Mobile Global bật full đồ hoạ xem sao?

Hôm nay, hân hoan kỷ niệm ngày 30/4 mình dành nguyên một buổi sáng để test thử chức năng “bật full đồ hoạ” trong game Black Desert Mobile và viết một bài review về tính năng này.

Mặc dù mình chỉ mới chơi game này trong một khoảng thời gian ngắn, nhưng vì yêu thích game nên mình đã dành ra khoảng 20tr sắm ngay một em iPad Pro 2018 để có thể trải nghiệm game tốt nhất. Và mình thật sự ưng ý với em iPad Pro 2018 này. Sơ lược về cấu hình em iPad Pro 2018 như sau các bạn nhé.

1. Bật max settings

Chức năng này chỉ hoạt động đối với một số máy đời mới, có cấu hình cao. Ở bài viết này mình lấy iPad Pro ra làm ví dụ, mình đã thử em HTC U11 và một số máy khác của iPhone hoặc Xiaomi để bật full settings nhưng kết quả không được như ý.

Game sẽ kiểm tra khả năng chịu tải của máy chơi và đưa ra cấu hình hợp lý, mình cũng chưa có thời gian thử test chơi trên giả lập máy tính nên bài viết dưới đây của mình chỉ áp dụng cho iPad Pro thôi nhé.

Đầu tiên, vào Settings của game, chọn Graphics và bật thử Max Settings. Dính liền! 😀

Vào settings và chọn Custom: Max Settings như trên.
Vào settings và chọn Custom: Max Settings như trên.

Oki! Sau khi đã bật full settings, mình bắt đầu chơi thử một số các nhiệm vụ, trò chơi trong game. Thật đáng đồng tiền bát gạo, game đã có những sự trải nghiệm khác hẳn đối với mình, điển hình là một số trường hợp dưới đây mình đã thử, hãy xem cùng với mình nhé.

2. Trải nghiệm

Farm quái:

Mình đánh train quái chỗ này không được đông cho lắm, nhưng cơ bản các chiêu thức của e Ranger Miumiu 18 của mình xuất ra với đầy đủ hiệu ứng và liên miên bất tận. Game mượt mà, ko cho cảm giác giật lag.

Arena 1vs1:

Arena 1vs1 của mình diễn ra khá nhanh, đối thủ của mình lần này quá nhanh và mạnh nên mình chỉ kịp nhìn thấy chiêu của em kia vừa xuất ra mà mình bốc hơi rồi. Tuy vậy, với màn hình retina full settings thì thua cũng sướng

Arena 3vs3:

Àh phải nói là mình khoái đấu cặp hơn, như thế mới thể hiện được team work chứ. Haha! Đồ hoạ của game phải nói thật mượt mà, chơi đánh 3vs3 rất thích.

Đánh Boss thế giới: Nouver – Tyrant of the Desert

Mình thử đánh boss thế giới, em nó chết rất nhanh và mượt. Mấy khẩu cung pháo ở dưới đất liền bắn rụng cánh trứng em Rồng Nouver ngay, nhưng mịa nó có điều “đồ” ra vẫn “khắm” như hàng ngày 😀

Đánh Boss Ruins:

Mình không tìm thấy tem nào để bem nó nên cho qua phần này đi 😀

Đánh Boss Rush:

Trò này tự kỉ vl, mình thường là cắm “auto repeat” hoặc “raise difficulty” để rảnh rang mà “quên đi ngày tháng” và cắm đầu vào code.

Về Camp:

Mình coi Camp như là một chức năng mạng xã hội thu nhỏ trong game, bạn có thể giao lưu, kết bạn, buôn bán mọi thứ với bạn bè của mình trong game.

3. Lời kết

Có nhiều tính năng độc đáo trong game, mời các bạn xem video trên để trải nghiệm và khám phá game Black Desert Mobile phiên bản Global bật full settings. Mọi chi tiết về hướng dẫn cài đặt game trên Android và iOS, các bạn có thể tìm đọc tại đây nhé.

Chúc các bạn một ngày vui vẻ, Thân ái!

Quảng cáo

Những bức ảnh hết đỗi bình dị về Việt Nam

Con người Việt Nam bình dị, dân dã, hiền hậu, trung thực. Dưới đây là những bức hình đẹp về Việt Nam đất nước con người thân yêu:

1-người-phụ-nữ-bán-hàng-trên-chiếc-xe-đạp-bình-dị
1 người phụ nữ bán hàng trên chiếc xe đạp bình dị
Cafe hè phố
Cafe hè phố
Đà Nẵng thân yêu
Đắk Ya, Vietnam
Đêm đã về
Đêm thành phố đầy sao
Đồng ruộng xanh tươi bạt ngàn trên Sapa
Du lịch bằng thuyền
Góc chợ
Góc phố nhỏ
Hạ Long từ xa
Hồ Gươm cổ kính
Hội An lung linh đèn lồng
Hội An
Một chiều làm về của mẹ
Ngôi nhà và chiếc xe đạp
Người đàn ông đạp xe trên con đường làng xiêu vẹo
Nhà Thờ Lớn
Núi non hùng vĩ
Sài Gòn ở trên cao
Vịnh Hạ Long

Còn nữa…

Quảng cáo

Muốn làm Sếp, hãy học cách tự quản lý bản thân trước!

1. Quản lý cảm xúc

Các nghiên cứu khoa học cho thấy những người có các vấn đề cảm xúc dễ bị tai nạn ô tô hơn những người bình thường tới 144% hay cứ 5 nạn nhân của các vụ tai nạn chết người, có 1 người đã cãi nhau với người khác trong 6 giờ trước vụ tai nạn. Quản lý cảm xúc là điều rất quan trọng, đặc biệt là với các nhà lãnh đạo bởi mọi hoạt động của họ đều có ảnh hưởng rất lớn đến nhiều người khác.

Những nhà lãnh đạo giỏi biết khi nào nên thể hiện và khi nào nên trì hoãn cảm xúc. Đôi khi họ bày tỏ cảm xúc để tìm sự thông cảm và làm lay động người khác. Liệu đây có phải “mị dân” không? John C.Maxwell cho rằng không phải vậy, miễn sao điều đó tốt cho tổ chức và không phải là vì lợi ích cá nhân của họ. Tuy nhiên kiềm chế cảm xúc khác với phủ nhận và chôn vùi nó. Điểm mấu chốt là bạn nên đặt người khác chứ không phải bản thân lên đầu khi giải quyết và xử lý các cảm xúc.

2. Quản lý thời gian

Quản lý thời gian là vấn đề đặc biệt khó khăn đối với những người ở vị trí giữa một tổ chức. Những nhà lãnh đạo cấp cao có thể ủy quyền, những công nhân được trả tiền theo giờ và làm bất cứ điều gì có thể trong khoảng thời gian đó còn những người ở giữa thường chịu áp lực từ 2 nhóm trên và thường được kỳ vọng làm thêm giờ để hoàn thành công việc.

Thời gian là tiền bạc, một chuyên gia tâm thần học từng nói “Chừng nào chưa coi trọng bản thân, bạn còn chưa coi trọng thời gian.” Trong cuộc sống này mọi người không thanh toán mọi thứ bằng tiền mà bằng thời gian của họ. Vì vậy thay vì nghĩ đến việc bạn làm và thứ bạn mua dưới dạng tiền bạc, hãy nghĩ tới chúng dưới dạng thời gian. Hãy nghĩ xem điều gì đáng để bạn dành trọn cả cuộc đời? Từ đó bạn sẽ có cách quản lý thời gian hiệu quả hơn.

3. Quản lý các ưu tiên

Quy luật chung thường cho thấy khi bạn không biết cách quản lý các ưu tiên, công việc của bạn sẽ luôn áp lực và giảm hiệu suất. Đặc biệt với vị trí ở giữa một tổ chức, bạn sẽ có một núi công việc cần xử lý. John C.Maxwell đề xuất cách quản lý các ưu tiên như sau:

– 80% thời gian- làm những việc bạn giỏi nhất
– 15% thời gian- làm những việc bạn đang học hỏi
– 5% thời gian-làm những việc cần thiết khác.

Có thể bạn sẽ gặp khó khăn trong thời gian đầu thực hiện nhưng bạn cần học cách giao quyền, tính kỷ luật và phải “nhẫn tâm” khi quyết định đâu là những việc không nên làm. Thích làm một số công việc không có nghĩa phải đưa nó vào danh sách việc cần làm. Hãy chỉ làm những việc có thể giúp bạn phát triển khả năng hoặc những việc cấp trên yêu cầu đích thân bạn làm. Tất cả những công việc còn lại đều là ứng viên cho danh sách những việc không nên làm của bạn.

4. Quản lý năng lượng

Ngay cả những người giàu năng lượng nhất cũng có thể bị rút cạn năng lượng trong những tình huống khó khăn hoặc không biết cách phân bổ, sử dụng chúng. Có 3 nhóm hao mòn năng lượng mọi người thường mắc phải gồm: Làm những việc không quan trọng, Không có khả năng làm những việc thật sự quan trọng, Không có khả năng ứng phó với vấn đề.

Vì vậy để quản lý năng lượng bản thân tốt nhất, mỗi ngày bạn nên nhìn vào lịch làm việc của mình và tự hỏi “Việc nào là việc chính?” . Từ đó hãy đảm bạn mình có đủ năng lượng để thực hiện việc đó với sự tập trung và xuất sắc.

5. Quản lý suy nghĩ

Kẻ thù lớn nhất của suy nghĩ sâu sắc là sự bận rộn. Khi bạn muốn trở nên xuất sắc, hãy biết cách quản lý sự bận rộn quanh mình. Nếu bạn thấy nhịp độ cuộc sống quá gấp gáp và không có phút nào để suy nghĩ trong cả ngày làm việc, hãy tạo thói quen viết nhanh ra giấy 3 đến 4 điều cần đầu tư thời gian để tìm cách giải quyết. Sau đó tìm thời gian thích hợp để suy nghĩ về những điều đó.

Việc suy nghĩ chỉ mất khoảng 30 phút mỗi ngày, hoạc bạn có thể lưu lại những điều đó trong một tuần và dành thời gian xử lý trong ngày thứ 7, miễn sao đừng để quá lâu đến nỗi nó làm bạn nản lòng và sợ hãi.

Hãy nhớ một nguyên tắc: 1 phút > 1 giờ. Một phút suy nghĩ đáng giá hơn một giờ nói chuyện phiếm hay làm việc không có kế hoạch.

6. Quản lý lời nói

Các nhà lãnh đạo cấp cao thường không nghe lời bạn nói mà thường đánh giá cao hành động. Nếu họ ngừng việc đang làm lại để lắng nghe, những lời họ nghe sẽ có giá trị. Vì vậy hãy sử dụng ngôn từ hiệu quả nhất. Nếu bạn muốn lời nói của mình có sức nặng, hãy để tâm nhiều hơn đến chúng Nếu bạn quản lý tư duy và tận dụng hiệu quả khoảng thời gian tập trung suy nghĩ, kỹ năng quản lý lời nói của bạn sẽ tiến bộ trông thấy. Đối với cấp trên, nếu bạn có điều gì đáng nói, hãy nói ngắn gọn và súc tích. Nếu không có gì đáng nói, đôi khi việc tốt nhất nên làm là giữ yên lặng.

7. Quản lý cuộc sống riêng

Điều cuối cùng, dù bạn làm việc và quản lý bản thân rất tốt ở chỗ làm nhưng cuộc sống của bạn là một mớ bung bét, cuối cùng mọi thứ sẽ trở nên tồi tệ. Có ích gì khi leo lên đỉnh cao sự nghiệp nhưng hôn nhân lại tan vỡ, bạn trở thành người xa lạ với con cái?

“Không có thành công nào trong sự nghiệp đáng để ta phải hy sinh gia đình của mình”, John C.Maxwell cho biết. Vì vậy, John C.Maxwell định nghĩa thành công là có những người thân thiết nhất luôn yêu thương và tôn trọng mình. Ông muốn có được tình yêu và sự tôn trọng của vợ, con trước khi có sự tôn trọng của bất cứ ai làm việc với mình. Và bạn cũng thế chứ?

(Sưu tầm)

Quảng cáo

Cuối tuần này Big C, Vinmart, Canifa, Ivy, Aeon, Vinatex sẽ cung ứng hàng trăm nghìn khẩu trang vải

Hiện nay các hệ thống bán lẻ tìm nhà cung cấp khẩu trang vải, cuối tuần này dự kiến sẽ có một khối lượng lớn khẩu trang vải sẽ được bán tại hệ thống các siêu thị.

http://cafef.vn/cuoi-tuan-nay-big-c-vinmart-canifa-ivy-aeon-vinatex-se-cung-ung-hang-tram-nghin-khau-trang-vai-bo-cong-thuong-tong-hop-danh-sach-dau-moi-cung-cap-nguyen-lieu-san-xuat-khau-trang-20200210161809079.chn?fbclid=IwAR2-CJW9aIl1GcEYMjaqNCZ-HhsppWuVP5mSkkNk3DdIU0-HnvxvKKLE1KA

Quảng cáo

Việt Nam bắt đầu thử nghiệm thuốc điều trị bệnh do virus Corona

0

Bộ trưởng Bộ KH-CN Chu Ngọc Anh đã ký quyết định giao Bệnh viện Nhiệt đới T.Ư chủ trì, phối hợp với một số đơn vị thực hiện đề tài cấp nhà nước nghiên cứu, thử nghiệm thuốc điều trị bệnh do virus Corona.

https://thanhnien.vn/thoi-su/viet-nam-bat-dau-thu-nghiem-thuoc-dieu-tri-benh-do-virus-corona-1181112.html

Quảng cáo

Đời vốn đơn giản, con người mới phức tạp

0

1. Đời người không nằm ở việc sống lâu hay không mà nằm ở việc hiểu thấu quy luật của cuộc đời sớm hay muộn.

2. Giai đoạn khó khăn nhất cuộc đời không phải là lúc không ai hiểu bạn, mà là bạn không hiểu chính mình.

3. Cho người khác tiền là hạ sách, cho người khác năng lực là giải pháp nhất thời, còn cho người khác cách nhìn mới là thượng sách.

4. Đời có thể lấy của ta thanh xuân và tuổi tác nhưng đừng hy sinh trái tim trẻ thơ trong con người mình.

5. Đối diện với bất kỳ điều gì trên đời này, hãy nghĩ tới cùng vấn đề, đừng lo lắng vô ích.

6. Đừng tranh luận với kẻ ngốc, nếu không sẽ không thể biết rõ ai là kẻ ngốc.

7. Cuối cùng mọi thứ sẽ ổn. Nếu nó chưa ổn, thì chưa phải cuối cùng.

8. Đừng quan tâm tại sao mình nghèo. Hãy quan tâm tại sao người khác giàu.

9. Số tiền còn lại trong túi mình là điều tuyệt mật.

10. Chỉ nói về thất bại của mình khi đã thành công trở lại.

11. Đừng khi nào tham dự một bàn tiệc khi chưa biết rõ ai là kẻ trả tiền.

12. Đừng kể bí mật của mình cho bất cứ ai, vì thế nào cũng có ngày bị lôi ra giễu cợt.

13. Đừng phí tiền ăn một quán sang trọng nếu không có người nhìn.

14. Đừng đánh giá ai khi họ mặc quần áo. Hãy đánh giá khi họ cởi ra.

15. Đừng tỏ ra giàu có. Hãy tỏ ra bí hiểm.

16. Khi chia tay, luôn luôn nói tốt về người cũ. Nếu họ quá xấu thì đừng nói gì cả.

16. Đừng tin vào quảng cáo. Hãy tin vào giá tiền.

17. Hiểu thế nào là cao cấp mặc dù suốt đời không có tiền mua. Nếu không cao về tài sản, hãy cao về thẩm mỹ.

18. Chỉ có đánh nhau khi biết chắc mình có thể thắng hoặc hòa.

19. Đàn ông không bao giờ tiếc tiền với những cô gái không quan tâm tới tiền.

20. Nếu không làm cho mẹ chồng yêu, hãy nhanh chóng làm cho mẹ chồng sợ. Đừng cố hòa hợp vô ích.

21. Đối với phụ nữ, có ba thứ luôn phải để ý: khuôn mặt, mái tóc và làn da.

22. Muốn thân ai đó, phải có lúc cùng hư hỏng với người ta.

23. Cái gì mình ngu, hãy cố gắng biến nó thành phong cách sống.

24. Phải hiểu ai cũng là con ếch. Chỉ khác nhau cái giếng mà thôi.

25. Người phụ nữ duy nhất trên đời vẫn đẹp lúc già chính là vợ mình!

26. Đừng là người đầu tiên cũng đừng là người cuối cùng.

27. Chỉ làm quen với các cô gái không có anh trai nếu mình là đàn ông.

28. Muốn thân ai đó- phải có lúc cùng hư hỏng với người ta.

29. Không tranh luận với kẻ có địa vị và kiến thức thấp hơn mình.

30. Cấp trên bao giờ cũng đúng. Nếu cấp trên sai – cấp trên sẽ đúng vào lúc khác.

31. Đừng sợ kẻ thông minh. Hãy sợ kẻ ngốc tưởng mình thông minh.

32. Đừng kể những mơ ước nhỏ bé của mình cho bất cứ ai- vì thế nào cũng có ngày bị lôi ra giễu cợt.

33. Chỉ đánh nhau khi biết chắc mình có thể thắng hoặc hòa.

34. Đối với phụ nữ- có hai thứ luôn phải để ý:Khuôn mặt & Bàn chân.

35. Không khi nào lấy vợ hoặc chồng cùng công ty.

36. Ra nước ngoài bao giờ cũng có mì gói trong va li.

37. Muốn thử một cô gái, hãy dẫn cô ta vào cửa hiệu vì lòng tham là thứ khó giấu nhất trên đời.

38. Khi xem một bức tranh, nếu chưa hiểu gì, hãy tin chắc những người chung quanh đều như thế.

39. Cố gắng đọc một vài cuốn sách và nghe thuộc lòng vài bản nhạc cổ điển vì thực ra chúng rất ít.

(Sưu tầm)

Quảng cáo

Tin nóng Video: Cả thành phố Vũ Hán như bị nhấn nút tạm dừng, không sao 'chúng tôi chờ đợi bạn'

Không có tiếng ồn và sự vội vã, thành phố Vũ Hán dường như bị nhấn nút tạm dừng vì đại dịch corona. Song, tình yêu và hi vọng sẽ luôn lan tỏa từ sự kiên cường của Vũ Hán. Vũ Hán cố lên – Chúng tôi chờ đợi bạn.

Quảng cáo

Python | Bài 1: Làm quen

0
Python Lessions 1: Xin chào!
Python Lessions 1: Xin chào!

Có lẽ đối với nhưng người mới nhập môn như mình thì… khi học một ngôn ngữ lập trình thật trong sáng và ngây thơ như Python thì sẽ có vô vàn những điều bất ngờ dẫn tới ngỡ ngàng không thể lường trước được.

Giới thiệu

Nhận thấy Python là một ngôn ngữ lập trình dễ đọc, mô tả đơn giản và cú pháp thông thường nhất có thể nên trải nghiệm của người dùng cũng được ưu tiên. Vì vậy, đây là ngôn ngữ rất phù hợp để dạy cho trẻ em. Và đơn giản hơn là trẻ em có thể học Python từ Minecraft Pi – một phiên bản trò chơi của Minecraft.

Python cũng phù hợp để giáo dục mở rộng. Một số trường đại học dạy ngôn ngữ lập trình này không chỉ trong ngành khoa học máy tính mà còn cho sinh viên toán. Ngoài ra, Matplotlib (một thư viện Python phổ biến) được sử dụng cho các đối tượng ở tất cả các cấp để thể hiện dữ liệu phức tạp. Python cũng là một trong những ngôn ngữ phát triển nhanh nhất trên Codecademy, vì rất dễ để học từ xa.

Mình có làm một bài tìm hiểu về Python trước đây, mời các bạn cùng đọc. Và để tiếp nối chương trình ngày hôm nay, chúng ta hãy cùng bắt đầu chào nhau phát nhỉ?.

Đọc thêm về “Cài đặt & tìm hiểu đặc điểm của Python“.

Hi! Python

Bất kì một ngôn ngữ lập trình nào khi mới học chúng ta đều tìm cách chạy được dòng lệnh này:

print("Chào! Python.")

Đây là dòng lệnh cơ bản vừa để kiểm tra, vừa để hiểu cách viết và chạy 1 ứng dụng Python, vừa để kiểm tra xem mình đã cài đặt đúng chưa. Các bạn có thể kiểm tra phiên bản Python được cài trên máy bằng câu lệnh:

Để kiểm tra xem bạn đã cài đặt python trên Windows PC hay chưa, chạy lệnh sau trên Command Line (cmd.exe):

C:\Users\Your Name>python --version

Để kiểm tra xem bạn đã cài đặt python trên Linux hoặc Mac hay chưa, hãy mở Terminal và nhập:

python --version 

Nếu chương trình hoạt động bình thường, tức là nó in ra đc dòng chữ “Chào! Python” đó thì ô kê, chúng ta nên tiếp tục bước thứ 2.

Bắt đầu vọc

Cách 1. Tạo file helloworld.py và chạy

Python là một ngôn ngữ lập trình thông dịch, điều này có nghĩa là với tư cách là nhà phát triển, bạn viết các tệp Python (.py) trong trình soạn thảo văn bản và sau đó đưa các tệp đó vào trình thông dịch python để được thực thi.

Trong đó “helloworld.py” là tên tệp python của bạn. Hãy tạo tệp Python đầu tiên của chúng ta, gọi là helloworld.py, tệp này có thể được thực hiện trong bất kỳ trình soạn thảo văn bản nào. Cách chạy tệp python như sau:

C:\Users\Your Name>python helloworld.py

Ta được kết quả:

Chào! Python.

Xin chúc mừng, bạn đã viết và thực thi chương trình Python đầu tiên của mình.

Cách 2. Dùng Command Line và chạy

Có những đoạn code Python rất ngắn, bạn có thể chạy thẳng trên Command Line để tiết kiệm thời gian. Nhập dòng lệnh sau trên Windows, Mac hoặc Linux:

C:\Users\Your Name>python 

hoặc viết tắt

C:\Users\Your Name>py 

Từ đó, bạn có thể viết bất kỳ lệnh:

C:\Users\Your Name>python
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:04:45) [MSC v.1900 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> print("Chào! Python.")

Kết quả hiện ra:

Chào! Python.

Bất cứ khi nào bạn muốn thoát khỏi giao diện dòng lệnh python, gõ lệnh:

exit()

Kết luận

Như vậy là qua 2 cách trên bạn và mình đã học được cách chạy 1 tệp python như thế nào hoặc chạy thẳng trên command line nếu cần tốc hành luôn.

Chúc các bạn thành công!

Quảng cáo

Flutter | Cách đơn giản để gỡ Debug Banner trong Flutter

0
Cách đơn giản để gỡ Debug Banner trong Flutter
Cách đơn giản để gỡ Debug Banner trong Flutter

Thật ra thì cũng không lạ lắm đâu, mỗi ông mỗi vẻ cố gắng tạo ra nét riêng là điều không thể tránh. Nhưng nét riêng của anh Flutter này có vẻ hơi phiền toái nhỉ?

Ví dụ bạn tạo chương trình Flutter đầu tay và chạy thử lên mà xem:

Cách đơn giản để gỡ Debug Banner trong Flutter
Debug Banner hiện lên góc bên phải màn hình ứng dụng

Để xoá chế độ Debug này, bạn chỉ việc sử dụng câu lệnh:

debugShowCheckedModeBanner: false

Chi tiết như ở đoạn code minh hoạ dưới đây:

// lib/main.dart

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(   // or CupertinoApp
      title: 'My Flutter App',
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: Text('Welcome to Flutter Igniter!'),
        ),
        body: Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}

Chúc các bạn thành công!

Quảng cáo

Ngày đầu học Python

0

Việc học một ngôn ngữ lập trình không phải là dễ, nó không giống như việc chúng ta cứ mua sách về đọc là có thể bắt tay vào làm ngay được. Cần phải có một chút khả năng, thật nhiều đam mê thì mới có thể theo ngành này được. Dưới đây là một vài cảm nhận của mình trong ngày đầu tiên gõ code, đó “thật là phê”. H mình mới hiểu tại sao cái tụi lập trình viên nó hay “vò đầu bứt tai” nhiều đến như vậy.

1. Cắp sách tới trường

Đầu tiên mình hiểu ra rằng, việc lập trình chính là viết ra những dòng lệnh cho máy tính xử lý trình tự theo thời gian. Còn sâu xa hơn thì mình cũng không rõ lắm, cần phải mất rất nhiều thời gian nữa để làm rõ vấn đề này. Nôm na thì lập trình nó là một con đường đầy đau khổ, chỉ có hoa thơm và cỏ dại thôi, cok có trái ngọt đâu (tự trấn an bản thân). Ngày trước khi còn mài mông trên ghế nhà trường thì cũng có chút thời gian để làm quen với anh Pascal. Nhưng có lẽ chỉ có mình là biết anh ấy, còn anh ấy thì không thèm để ý tới mình luôn nên cái gọi là khả năng tư duy lập trình của mình hồi đó nó gần như là một con số 0 to tướng. Đến nay đi làm, thật ra nghề nào cũng có nỗi khổ riêng của nó, nhưng mà nhìn mấy đứa bạn xung quanh thấy chúng nó ngoài làm phần cứng, phần mềm ra còn biết thêm chút ít lập trình. Nghe nói là có thể lên mấy trang web nước ngoài để nhận việc về làm thêm cũng kiếm được nên mình đương nhiên cũng không thể bỏ qua một cơ hội như thế. Sẵn còn độc thân lại chưa có người iu nên dành chút ít thời gian để học lập trình cũng không phải là không có lý.

Nhưng mà nó đâu có đơn giản như thế, để hiểu và nắm bắt được một ngôn ngữ lập trình bạn cần phải có tư duy của một cỗ máy. Tức là ở đây mình muốn nói tới logic trong mọi ngóc ngách của vấn đề. Bạn biết đấy, để đi từ A đến C thì nó đương nhiên phải đi qua B, hay là đơn giản hơn nếu bạn không phải là con trai thì có thể bạn là con gái, còn không thì chắc chắn bạn thuộc thế giới thứ 3. Vậy thôi, logic nó là như vậy, đơn giản và chính xác như một cái máy. Nếu mọi thứ bạn làm đều hợp logic thì phần mềm bạn tạo ra sẽ chạy một cách trơn chu, ngon lành cành đào. Nói tóm lại, cố gắng làm ít lỗi nhất có thể để không phải cắm đầu vào đi sửa cho người ta.

Dài dòng văn tự như thế cũng chỉ là mở màn cho một con đường sắp tới đây mà mình tin tưởng đi theo, đó là sử dụng ngôn ngữ Python để xây dựng ra những phần mềm ăn khách nhất. Thế thôi nhỉ?

2. Chào mừng đến với Python

# Python 3: Simple arithmetic
>>> 1 / 2
0.5
>>> 2 ** 3
8
>>> 17 / 3  # classic division returns a float
5.666666666666667
>>> 17 // 3  # floor division
5

Nhìn đoạn mã trên, hẳn các bạn sẽ cùng suy nghĩ giống mình “Python đây sao? Thật đơn giản”. Đúng vậy, Python đơn giản cũng như cái tên của nó. Việc đầu tiên là mình vào trang chủ Python, cài đặt python3 và sau đó là cố gắng làm theo những ví dụ trên sách. Để làm gì nhỉ? Để mình hiểu môi trường làm việc của Python, cách viết và chạy mã Python trên máy tính nó ra làm sao.

Enter là xong thôi chứ gì? Ah ha! Hẳn như thế, vì Python có cấu trúc sáng sủa, rõ ràng, cú pháp của Python dễ đọc, dễ học và dễ thuộc nên rất thích hợp cho mình là những người mới bắt đầu học lập trình. Và tính đến này Python cũng có 30 năm tuổi đời rồi đấy nhé. Vậy trước hết chúng ta hãy cùng tìm hiểu xem ông tướng Python này làm được những gì nhé.

3. 7 Ứng dụng của Python trong thực tế

7 ứng dụng này mình copy từ nordiccoder, mặc dù vậy mình đọc cũng thấy khả dễ hiểu về những gì Python đã và đang làm được. Xin mạn phép chia sẻ bên dưới:

1. Scripting language

Ứng dụng đầu tiên là dùng ngôn ngữ Python để viết ngôn ngữ lập trình kịch bản. Nếu bạn đang có ý định viết một chương trình mẫu (miniature) hay một chương trình tùy biến (ad-hoc) để tự động hóa những việc bạn làm trên máy tính, hãy nghĩ tới việc ứng dụng Python! Người ta hay dùng nó với mục đích này.

Trên thực tế, bạn có thể viết script bằng những ngôn ngữ khác, không chỉ riêng ngôn ngữ Python. Nhưng nếu bạn muốn viết những đoạn script có liên quan tới thư viện toán các hàm toán học Math, để phân tích dữ liệu, nghiên cứu dữ liệu thì Python là ứng cử viên sáng giá.

Khả năng khai thác những nguồn thư viện đa dạng của loại ngôn ngữ này sẽ cho phép bạn làm được rất nhiều thứ thú vị.

Nhiều người đã ứng dụng Python để viết ra một đoạn script mà bạn có thể đưa vào bất cứ một video nào và chương trình sẽ cho ra hàng loạt các bản ghi (transcript) đã được chuyển ngữ ngẫu nhiên. Những bản này cũng không mấy hoàn hảo nguyên nhân là do cách dùng từ và ngữ điệu của người Châu Á chúng ta, tuy nhiên ít nhất thì nó cũng được miễn phí.

2. Nghiên cứu mang tính học thuật với dữ liệu lớn

Ngôn ngữ Python là một nguồn mở và miễn phí. Điều này có nghĩa là nếu nghiên cứu của bạn thành công và bạn muốn dùng cái bạn vừa tạo ra vào mục đích thương mại thì bạn không cần phải chi trả gì cả.

Luis Otavio Martins có chia sẻ một câu chuyện , rằng, một người bạn của anh đã dùng phần mềm MATLAB để làm nghiên cứu. Khi anh này muốn xin cấp bằng sáng chế cho công trình nghiên cứu của mình, anh phát hiện ra rằng anh cần phải trả rất nhiều tiền bản quyền cho công ty Mathworks, chủ sở hữu phần mềm trên.

Không phải ai cũng là một nhà nghiên cứu, cũng có thể bạn hoàn toàn không có nhu cầu để nhận bằng cái bằng sáng chế nào. Tuy nhiên, có những ngành nghề, lĩnh vực mà dữ liệu là vấn đề quan trọng.

Ví dụ, nhà báo luôn cần dữ liệu lưu trữ những câu chuyện của mình, nhà thuốc của các bệnh viện cần dữ liệu để theo dõi xem loại thuốc nào có hiệu quả nhất với bệnh nhân của họ.

Nếu bạn là một nhà nghiên cứu, thì đã đến lúc bạn cần xắn tay áo lên để làm quen với loại ngôn ngữ lập trình này. Việc nghiên cứu sẽ đòi hỏi bạn phải tổng hợp, xử lý, hình dung và phân tích dữ liệu khá nhiều.

Gregory Saxton, người đã và đang tiến hành nghiên cứu về truyền thông xã hội (social media) đã viết các đoạn script bằng ứng dụng Python để phục vụ việc nghiên cứu của mình. Đoạn script mà anh viết có thể tự động tải xuống các bài tweet (có API) hoặc các dữ liệu trích xuất (nếu không có API), rồi chuyển những thông tin thô sang các định dạng có thể đọc được và thậm chí là có thể phân tích ngôn ngữ luôn.

3. Ứng dụng web

Bạn có biết rằng một số đơn vị đình đám đã được xây dựng nhờ vào ngôn ngữ lập trình Python không?

Ứng dụng web Instagram bằng Python
Ứng dụng web Instagram bằng Python

Dưới đây là một danh sách lướt nhanh những công ty này:

  • Dropbox
  • Netflix
  • Spotify
  • Instagram
  • 21% cơ sở hạ tầng dữ liệu của Facebook
  • Youtube

Trong lĩnh vực phát triển ứng dụng web, khi nói đến ngôn ngữ Python, ta có thể kể tới các framework như DjangoFlask. Nếu bạn có một sự hiểu biết nhất định về lập trình và các framework cho web, bạn có thể xây dựng rất nhiều loại ứng dụng Python.

4. Data science: Ngành khoa học dữ liệu

Các nhà khoa học dữ liệu (data scientist) có 3 nhiệm vụ chính là phân tích, tổng hợp và tối ưu hóa dữ liệu cho các công ty.

Nếu bạn biết bất cứ một nhà khoa học dữ liệu nào, họ sẽ đều nói cho bạn nghe về R, một loại ngôn ngữ lập trình khác. R là ngôn ngữ tuyệt để phân tích dữ liệu, thống kế dữ liệu và các mô hình đồ họa.

Tuy nhiên, ngôn ngữ Python cũng đã tiến một bước dài trong lĩnh vực này. Nhìn vào biểu đồ bên dưới bạn sẽ thấy, Python ứng dụng đang đóng vai trò một loại ngôn ngữ lập trình phổ biến nhất trong ngành khoa học dữ liệu và nó đang dần nuốt chửng thị phần của R.

Data science: Ngành khoa học dữ liệu
Data science: Ngành khoa học dữ liệu

Có rất nhiều thư viện Python mà bạn có thể dùng cho các bộ dữ liệu lớn. Một số thư viện đáng chú ý như NumPy (cho những thứ thuộc về toán học), SciPy (thư viện tin học kỹ thuật cao), Pandas (dành cho phân tích dữ liệu) và Matplotlib (dành cho mô hình hóa dữ liệu – data visualization).

5. Machine Learning và Trí thông minh nhân tạo (AI)

Ngày nay, Machine Learning (tạm gọi là Học Máy) và Ai (Trí thông minh nhân tạo hay Trí tuệ nhân tạo) là những thuật ngữ hết sức thông dụng, ta thấy ở khắp mọi nơi. Người ta cho rằng Machine Learning và AI cùng chỉ một thứ nhưng ở sắc thái khác nhau. Dưới đây là một bức hình thể hiện mối quan hệ giữa A.I và Deep Learning (Học Sâu)

Machine Learning và Trí thông minh nhân tạo (AI)
Nguồn: StepUp Analytics

AI là một chương trình mô phỏng quá trình nhận thức của con người.

Machine Learning hay là Học Máy là khả năng máy móc có thể tiếp nhận một bộ dữ liệu và tự tìm hiểu, học hỏi từ bộ dữ liệu này rồi thay đổi thuật toán cho phù hợp. Trong phạm trù Deep Learning hay Học Sâu, khả năng học hỏi của máy là nhờ vào mạng lưới nơ-ron thần kinh nhân tạo đa dạng. Một mạng lưới nơ-ron thần kinh hay còn gọi là Neural Network là một hệ thống máy tính mô phỏng bộ não và hệ thống thần kinh của con người.

Rất nhiều thư viện Python có thể và đang được sử dụng cho lĩnh vực Machine Learning, Deep Learning và AI. Có thể kể tới: Tensorflow, Theano và PyTorce. Càng nhiều lập trình viên làm việc trong lĩnh vực này thì số lượng nguồn (resources) và thư viện (libraries) lại càng tăng lên.

Một trong những học viên đã tốt nghiệp của chúng tôi hiện giờ đang khởi động dự án Nurture.ai tại Singapore với mục tiêu tối ưu hiệu quả cho những nghiên cứu về AI, giúp những nghiên cứu này phát triển và  dễ tiếp cận hơn.

6. Lĩnh vực IoT – Internet Vạn Vật

IoT là một trong những thuật ngữ thông dụng nữa thường được dùng ở khắp nơi. Bất kể đâu, người ta cũng đề cập tới Internet Vạn Vật và Công nghệ 4.0

Bạn muốn khởi động trong lĩnh vực này? Bạn không cần phải trả một khoản tiền quá lớn hay mua từ cửa hàng nào cho việc ứng dụng Python vào Internet Vạn Vật. Ngày nay, người ta chỉ cần đầu tư một cái máy tính Raspberry Pi để khởi động những dự án DIY IoT của riêng mình.

Bạn có thể tham khảo thêm dự án Lock n’ Roll, hệ thống khóa của nhà từ xa do một trong những học viên của chúng tôi xây dựng nên.

Tin hay không tùy bạn, cậu ta và nhóm của mình đã xây dựng một ứng dụng và lập trình thiết bị trong khoảng 2 tuần lễ. Họ thậm chí còn làm được cả một nguyên mẫu.  Rất nhiều thư viện Python liên quan tới IoT – Internet Vạn Vật đang được xây dựng và phát triển.

Nếu bạn không tin,hãy xem qua website Zerynth này để thấy hơn 100 kho chứa của nó.

Tính ứng dụng Python trong thực tế mở ra rất nhiều khả năng. Bên cạnh việc lập trình các thiết bị IoT, bạn có thể dùng Python để tạo ra các ứng dụng web giúp điều khiển, kiểm soát các thiết bị, thu thập dữ liệu và phân tích chúng.

7. Lập trình game

Dù Python không mạnh như là Unity trong lĩnh vực lập trình game nhưng nó cho phép bạn xây dựng dăm ba thứ khá thú vị.

Game 2D

Super Potato Bruh
Super Potato Bruh một dạng game nhái của game Super Mario Brothers

Nếu bạn có dùng PyGame, bạn có thể tạo ra một game như kiểu Super Potato Bruh (một dạng game nhái của game Super Mario Brothers)

Text-based game (còn gọi là game text)

Nhờ vào Python ứng dụng vào nhiều ngành nghề nên Python được nhiều công ty, trường học sử dụng để dạy lập trình cho trẻ em và những người mới lần đầu học lập trình. Bên cạnh những tính năng và khả năng tuyệt vời thì cú pháp đơn giản và dễ sử dụng của nó là lý do chính cho việc này.

Hiện tại Nordic Coder đang có khóa học Data Analysis với Python đang được đào tạo trực tiếp từ các giảng viên đến từ các công ty công nghệ hàng đầu cũng như nhiều năm kinh nghiệm trong lĩnh vực Data Analysis/Data Science.

4. Viết chương trình đầu tiên

Sau khi vọc một đống tài liệu ở trên mạng nó khiến cái đầu tôi bung bung lên nhiều thứ “âm thanh” hỗn tạp khó mà nghe cho được. Tôi như bị lạc vào một ma trận Python vì nhận thấy có quá nhiều tài liệu, quá nhiều người viết chia sẻ về cách học. Tôi thử vào trang web Python của học để nghiên cứu thì ôi thôi hoá ra rằng nó viết bằng tiếng Anh các bạn ah. Lật đật đi tìm cuốn từ điển, ah không bây giờ đã có anh Google anh ấy dịch hộ cho rồi nên không phải mất thời gian tra từ nữa. Nào, những công cụ cần thiết của mình đâu hết rồi, hiện hình lên đi chứ.

1. Tải và cài đặt Python

Nói dông nói dài cũng phải bắt đầu từ cái gọi là Ứng dụng Python. Nếu không có nó, bạn sẽ không thể viết mã lệnh Python và biên dịch cho nó chạy ngon lành cành đào được. Bạn có thể tải xuống Python tại đây nhé. Tìm tới phiên bản mới nhất, hỗ trợ cho hệ điều hành máy tính của bạn và tải nó về máy. Sau khi tải xong, bấm vào nó để tiến hành cài đặt như bình thường. Python rất dễ tải và dễ cài đặt nên việc này mình làm trong nháy mắt.

Chương trình đầu tiên của mình đây

Hình ảnh trên là chương trình đầu tiên mình thực hiện sau khi đã cài đặt thành công python3, các bạn hãy thử phát xem sao nhé. Đương nhiên, đây không phải là một chương trình khó, nó là bước đầu mình chỉ muốn kiểm tra xem Python của mình đã hoạt động chưa thôi. Phần sau mới mông lung nè các bạn.

Lưu ý: mình chạy python3 trên máy Macbook nên sử dụng phần mềm Terminal, nếu bạn chạy Window thì phải sử dụng phần mềm Command

Ah mà tại sao lại là python3? Vì mình tải bản Python mới nhất, mà Python có lịch sử như sau nên các bạn lưu ý, cài phiên bản nào thì gõ lệnh python đó nha. Sự phát triển Python đến nay có thể chia làm các giai đoạn:

  • Python 1: bao gồm các bản phát hành 1.x. Giai đoạn này, kéo dài từ đầu đến cuối thập niên 1990. Từ năm 1990 đến 1995, Guido làm việc tại CWI (Centrum voor Wiskunde en Informatica – Trung tâm Toán-Tin học tại Amsterdam, Hà Lan). Vì vậy, các phiên bản Python đầu tiên đều do CWI phát hành. Phiên bản cuối cùng phát hành tại CWI là 1.2.
    • Vào năm 1995, Guido chuyển sang CNRI (Corporation for National Research Initiatives) ở Reston, Virginia. Tại đây, ông phát hành một số phiên bản khác. Python 1.6 là phiên bản cuối cùng phát hành tại CNRI.
    • Sau bản phát hành 1.6, Guido rời bỏ CNRI để làm việc với các lập trình viên chuyên viết phần mềm thương mại. Tại đây, ông có ý tưởng sử dụng Python với các phần mềm tuân theo chuẩn GPL. Sau đó, CNRI và FSF (Free Software Foundation – Tổ chức phần mềm tự do) đã cùng nhau hợp tác để làm bản quyền Python phù hợp với GPL. Cùng năm đó, Guido được nhận Giải thưởng FSF vì Sự phát triển Phần mềm tự do (Award for the Advancement of Free Software).
    • Phiên bản 1.6.1 ra đời sau đó là phiên bản đầu tiên tuân theo bản quyền GPL. Tuy nhiên, bản này hoàn toàn giống bản 1.6, trừ một số sửa lỗi cần thiết.
  • Python 2: vào năm 2000, Guido và nhóm phát triển Python dời đến BeOpen.com và thành lập BeOpen PythonLabs team. Phiên bản Python 2.0 được phát hành tại đây. Sau khi phát hành Python 2.0, Guido và các thành viên PythonLabs gia nhập Digital Creations.
    • Python 2.1 ra đời kế thừa từ Python 1.6.1 và Python 2.0. Bản quyền của phiên bản này được đổi thành Python Software Foundation License. Từ thời điểm này trở đi, Python thuộc sở hữu của Python Software Foundation (PSF), một tổ chức phi lợi nhuận được thành lập theo mẫu Apache Software Foundation.
  • Python 3, còn gọi là Python 3000 hoặc Py3K: Dòng 3.x sẽ không hoàn toàn tương thích với dòng 2.x, tuy vậy có công cụ hỗ trợ chuyển đổi từ các phiên bản 2.x sang 3.x. Nguyên tắc chủ đạo để phát triển Python 3.x là “bỏ cách làm việc cũ nhằm hạn chế trùng lặp về mặt chức năng của Python”. Trong PEP (Python Enhancement Proposal) có mô tả chi tiết các thay đổi trong Python. Các đặc điểm mới của Python 3.0 sẽ được trình bày phần cuối bài này.

Mình thì mình chỉ biết tải bản mới nhất để sử dụng thôi…

2. Đặc điểm

Dưới đây là 11 đặc điểm của Python mình tổng hợp được. Để có cái nhìn tổng quan, dễ hiểu về Python thì 11 đặc điểm sau sẽ giúp bạn rất nhiều.

Triết lý căn bản của ngôn ngữ Python được trình bày trong tài liệu The Zen of Python (PEP 20), có dạng thơ Haiku, tóm gọn như sau:

  • Đẹp đẽ tốt hơn xấu xí
  • Minh bạch tốt hơn che đậy
  • Đơn giản tốt hơn phức tạp
  • Phức tạp tốt hơn rắc rối
  • Dễ đọc

Dễ học, dễ đọc

Python được thiết kế để trở thành một ngôn ngữ dễ học, mã nguồn dễ đọc, bố cục trực quan, dễ hiểu, thể hiện qua các điểm sau:

Từ khóa

  • Python tăng cường sử dụng từ khóa tiếng Anh, hạn chế các ký hiệu và cấu trúc cú pháp so với các ngôn ngữ khác.
  • Python là một ngôn ngữ phân biệt kiểu chữ HOA, chữ thường.
  • Như C/C++, các từ khóa của Python đều ở dạng chữ thường.
anddelforisraise
asserteliffromlambdareturn
breakelseglobalnottry
classexceptiforwhile
continueexecimportpassyield
deffinallyinprint

Khối lệnh

Trong các ngôn ngữ khác, khối lệnh thường được đánh dấu bằng cặp ký hiệu hoặc từ khóa. Ví dụ, trong C/C++, cặp ngoặc nhọn { } được dùng để bao bọc một khối lệnh. Python, trái lại, có một cách rất đặc biệt để tạo khối lệnh, đó là thụt các câu lệnh trong khối vào sâu hơn (về bên phải) so với các câu lệnh của khối lệnh cha chứa nó.

Ví dụ, giả sử có đoạn mã sau trong C/C++:

#include <math.h>
//...
delta = b * b – 4 * a * c;
if (delta > 0)
{
    // Khối lệnh mới bắt đầu từ ký tự { đến }
    x1 = (- b + sqrt(delta)) / (2 * a);
    x2 = (- b - sqrt(delta)) / (2 * a);
    printf("Phuong trinh co hai nghiem phan biet:\n");
    printf("x1 = %f; x2 = %f", x1, x2);
}

Đoạn mã trên có thể được viết lại bằng Python như sau:

import math
#...
delta = b * b – 4 * a * c
if delta > 0:
    # Khối lệnh mới, thụt vào đầu dòng
    x1 = (- b + math.sqrt(delta)) / (2 * a)
    x2 = (- b – math.sqrt(delta)) / (2 * a)
    print "Phuong trinh co hai nghiem phan biet:"
    print "x1 = ", x1, "; ", "x2 = ", x2

Ta có thể sử dụng dấu tab hoặc khoảng trống để thụt các câu lệnh vào.

Như trên thì mình thấy để viết ngôn ngữ Python có vẻ trong sáng, rõ ràng dễ hiểu hơn rồi đấy. Một điều cực quan trọng là mình phải biết sử dụng Tab (thụt lùi) để phân biệt những đoạn code “ông – cha – con” thứ tự ưu tiên thực thi code rất quan trọng nha các bạn. Cái này khi vào viết chi tiết từng ứng dụng nho nhỏ các bạn sẽ dễ hiểu ngay thôi. Nhớ nhé, Tab rất là quan trọng trong việc viết code Python.

Các bản hiện thực

Python được viết từ những ngôn ngữ khác, tạo ra những bản hiện thực khác nhau. Bản hiện thực Python chính, còn gọi là CPython, được viết bằng C, và được phân phối kèm một thư viện chuẩn lớn được viết hỗn hợp bằng C và Python. CPython có thể chạy trên nhiều nền và khả chuyển trên nhiều nền khác. Dưới đây là các nền trên đó, CPython có thể chạy.

Ngoài CPython, còn có hai hiện thực Python khác: Jython cho môi trường JavaIronPython cho môi trường .NETMono.

Khả năng mở rộng

Python có thể được mở rộng: nếu ta biết sử dụng C, ta có thể dễ dàng viết và tích hợp vào Python nhiều hàm tùy theo nhu cầu. Các hàm này sẽ trở thành hàm xây dựng sẵn (built-in) của Python. Ta cũng có thể mở rộng chức năng của trình thông dịch, hoặc liên kết các chương trình Python với các thư viện chỉ ở dạng nhị phân (như các thư viện đồ họa do nhà sản xuất thiết bị cung cấp). Hơn thế nữa, ta cũng có thể liên kết trình thông dịch của Python với các ứng dụng viết từ C và sử dụng nó như là một mở rộng hoặc một ngôn ngữ dòng lệnh phụ trợ cho ứng dụng đó.

Trình thông dịch

Python là một ngôn ngữ lập trình dạng thông dịch, do đó có ưu điểm tiết kiệm thời gian phát triển ứng dụng vì không cần phải thực hiện biên dịchliên kết. Trình thông dịch có thể được sử dụng để chạy file script, hoặc cũng có thể được sử dụng theo cách tương tác. Ở chế độ tương tác, trình thông dịch Python tương tự shell của các hệ điều hành họ Unix, tại đó, ta có thể nhập vào từng biểu thức rồi gõ Enter, và kết quả thực thi sẽ được hiển thị ngay lập tức. Đặc điểm này rất hữu ích cho người mới học, giúp họ nghiên cứu tính năng của ngôn ngữ; hoặc để các lập trình viên chạy thử mã lệnh trong suốt quá trình phát triển phần mềm. Ngoài ra, cũng có thể tận dụng đặc điểm này để thực hiện các phép tính như với máy tính bỏ túi.

Lệnh và cấu trúc điều khiển

Mỗi câu lệnh trong Python nằm trên một dòng mã nguồn. Ta không cần phải kết thúc câu lệnh bằng bất kì ký tự gì. Cũng như các ngôn ngữ khác, Python cũng có các cấu trúc điều khiển. Chúng bao gồm:

  • Cấu trúc rẽ nhánh: cấu trúc if (có thể sử dụng thêm elif hoặc else), dùng để thực thi có điều kiện một khối mã cụ thể.
  • Cấu trúc lặp, bao gồm:
  • Lệnh while: chạy một khối mã cụ thể cho đến khi điều kiện lặp có giá trị false.
  • Vòng lặp for: lặp qua từng phần tử của một dãy, mỗi phần tử sẽ được đưa vào biến cục bộ để sử dụng với khối mã trong vòng lặp.
  • Python cũng có từ khóa class dùng để khai báo lớp (sử dụng trong lập trình hướng đối tượng) và lệnh def dùng để định nghĩa hàm.

Hệ thống kiểu dữ liệu

Python sử dụng hệ thống kiểu duck typing, còn gọi là latent typing (tự động xác định kiểu). Có nghĩa là, Python không kiểm tra các ràng buộc về kiểu dữ liệu tại thời điểm dịch, mà là tại thời điểm thực thi. Khi thực thi, nếu một thao tác trên một đối tượng bị thất bại, thì có nghĩa là đối tượng đó không sử dụng một kiểu thích hợp.

Python cũng là một ngôn ngữ định kiểu mạnh. Nó cấm mọi thao tác không hợp lệ, ví dụ cộng một con số vào chuỗi ký tự.

Sử dụng Python, ta không cần phải khai báo biến. Biến được xem là đã khai báo nếu nó được gán một giá trị lần đầu tiên. Căn cứ vào mỗi lần gán, Python sẽ tự động xác định kiểu dữ liệu của biến. Python có một số kiểu dữ liệu thông dụng sau:

  • int, long: số nguyên (trong phiên bản 3.x long được nhập vào trong kiểu int). Độ dài của kiểu số nguyên là tùy ý, chỉ bị giới hạn bởi bộ nhớ máy tính.
  • float: số thực
  • complex: số phức, chẳng hạn 5+4j
  • list: dãy trong đó các phần tử của nó có thể được thay đổi, chẳng hạn [8, 2, 'b', -1.5]. Kiểu dãy khác với kiểu mảng (array) thường gặp trong các ngôn ngữ lập trình ở chỗ các phần tử của dãy không nhất thiết có kiểu giống nhau. Ngoài ra phần tử của dãy còn có thể là một dãy khác.
  • tuple: dãy trong đó các phần tử của nó không thể thay đổi.
  • str: chuỗi ký tự. Từng ký tự trong chuỗi không thể thay đổi. Chuỗi ký tự được đặt trong dấu nháy đơn, hoặc nháy kép.
  • dict: từ điển, còn gọi là “hashtable”: là một cặp các dữ liệu được gắn theo kiểu {từ khóa: giá trị}, trong đó các từ khóa trong một từ điển nhất thiết phải khác nhau. Chẳng hạn {1: "Python", 2: "Pascal"}
  • set: một tập không xếp theo thứ tự, ở đó, mỗi phần tử chỉ xuất hiện một lần.

Ngoài ra, Python còn có nhiều kiểu dữ liệu khác. Xem thêm trong phần “Các kiểu dữ liệu” bên dưới.

Module

Python cho phép chia chương trình thành các module để có thể sử dụng lại trong các chương trình khác. Nó cũng cung cấp sẵn một tập hợp các modules chuẩn mà lập trình viên có thể sử dụng lại trong chương trình của họ. Các module này cung cấp nhiều chức năng hữu ích, như các hàm truy xuất tập tin, các lời gọi hệ thống, trợ giúp lập trình mạng (socket),…

Đa năng

Python là một ngôn ngữ lập trình đơn giản nhưng rất hiệu quả.

  • So với Unix shell, Python hỗ trợ các chương trình lớn hơn và cung cấp nhiều cấu trúc hơn.
  • So với C, Python cung cấp nhiều cơ chế kiểm tra lỗi hơn. Nó cũng có sẵn nhiều kiểu dữ liệu cấp cao, ví dụ như các mảng (array) linh hoạt và từ điển (dictionary) mà ta sẽ phải mất nhiều thời gian nếu viết bằng C.

Python là một ngôn ngữ lập trình cấp cao có thể đáp ứng phần lớn yêu cầu của lập trình viên:

Multiple paradigms (đa biến hóa)

Python là một ngôn ngữ đa biến hóa (multiple paradigms). Có nghĩa là, thay vì ép buộc mọi người phải sử dụng duy nhất một phương pháp lập trình, Python lại cho phép sử dụng nhiều phương pháp lập trình khác nhau: hướng đối tượng, có cấu trúc, chức năng, hoặc chỉ hướng đến một khía cạnh. Python kiểu kiểu động và sử dụng bộ thu gom rác để quản lý bộ nhớ. Một đặc điểm quan trọng nữa của Python là giải pháp tên động, kết nối tên biến và tên phương thức lại với nhau trong suốt thực thi của chương trình.

5. Cú pháp

Mặc dù mới làm quen với ngôn ngữ lập trình Python nhưng mình hiểu việc học và tuân thủ cú pháp của một ngôn ngữ là điều tối thượng. Giống như bạn chơi một trò chơi, bạn phải tuân thủ luật của trò chơi đó. Cho nên, dù là Python hay bất kì ngôn ngữ sau này bạn học thì cú pháp “đã viết là phải chuẩn” nhé.

Sau đây là cú pháp cơ bản nhất của ngôn ngữ Python:

Khối lệnh

Khác với đa số ngôn ngữ họ C sử dụng cặp ngoặc ngọn { } để phân chia khối lệnh, Python sử dụng lùi đầu dòng (indentation) như dấu cách hay tab để biểu thị khối lệnh. Các lệnh nằm cùng mức lùi đầu dòng sẽ cùng thuộc một khối. Để biểu thị một khối rỗng Python có từ khoá “pass”.

Toán tử

+ - * / // (phép chia số nguyên) % (chia lấy dư) ** (lũy thừa)
~ (not) & (and) | (or) ^ (xor)
<< (left shift) >> (right shift)
== (bằng) <= >=  != (khác)

Python sử dụng ký pháp trung tố thường gặp trong các ngôn ngữ lập trình khác.

Các kiểu dữ liệu

Kiểu số

1234585396326 (số nguyên dài vô hạn)  -86.12   7.84E-04
2j     3 + 8j

Kiểu chuỗi (string)

Kiểu bộ (tuple)

(1, 2.0, 3)   (1,)    ("Hello",1,())

Kiểu danh sách (list)

[4.8, -6]    ['a','b']

Kiểu từ điển (dictionary)

{"Hanoi":"Vietnam", "Haiphong":"Vietnam", "Hochiminh":"Vietnam", "Amsterdam":"Netherlands", "Paris":"France"}

Chú thích

# dòng chú thích
"" " đa chú thích
    đa chú thích
    đa chú thích " ""

Lệnh gán

tên biến = biểu thức
x = 23.8
y = -x ** 2
z1 = z2 = x + y
loiChao = "Hello!"

i += 1    # tăng biến i thêm 1 đơn vị

In giá trị

print biểu thức
print (7 + 8) / 2.0
print (2 + 3j) * (4 - 6j)

Nội suy chuỗi (string interpolation)

print "Hello %s" %("world!")
print "i = %d" %i
print "a = %.2f and b = %.3f" %(a,b)

Cấu trúc rẽ nhánh

Dạng 1:

if biểu_thức_điều_kiện:
    # lệnh...

Dạng 2:

if biểu_thức_điều_kiện:
    # lệnh...
else:
    # lệnh...

Dạng 3:

if biểu_thức_điều_kiện_1:
    # lệnh... (được thực hiện nếu biểu_thức_điều_kiện_1 là đúng/true)
elif biểu_thức_điều_kiện_2:
    # lệnh... (được thực hiện nếu biểu_thức_điều_kiện_1 là sai/false, nhưng biểu_thức_điều_kiện_2 là đúng/true)
else:
    # lệnh... (được thực hiện nếu tất cả các biểu thức điều kiện đi kèm if và elif đều sai)

Cấu trúc lặp

while biểu_thức_đúng:
    # lệnh...
for phần_tử in dãy:
    # lệnh...
L = ["Ha Noi", "Hai Phong", "TP Ho Chi Minh"]
for thanhPho in L:
    print thanhPho

for i in range(10):
    print i

Hàm

def tên_hàm (tham_biến_1, tham_biến_2, tham_biến_n):
    # lệnh...
    return giá_trị_hàm
def binhPhuong(x):
    return x*x

Hàm với tham số mặc định:

def luyThua(x, n=2):
   """Lũy thừa với số mũ mặc định là 2"""
   return x**n

print luyThua(3)   # 9
print luyThua(2,3) # 8

Lớp

class Tên_Lớp_1:
    #...

class Tên_Lớp_2(Tên_Lớp_1):
    """Lớp 2 kế thừa lớp 1"""
    x = 3  # biến thành viên của lớp
    #
    def phương_thức(self, tham_biến):
        #...

# khởi tạo
a = Tên_Lớp_2()
print a.x
print a.phương_thức(m)  # m là giá trị gán cho tham biến

List Comprehension

List Comprehension là dạng cú pháp đặc biệt (syntactic sugar) (mới có từ Python 2.x) cho phép thao tác trên toàn bộ dãy (list) mà không cần viết rõ vòng lặp. Chẳng hạn y là một dãy mà mỗi phần tử của nó bằng bình phương của từng phần tử trong dãy x:

y = [xi**2 for xi in x]

Xử lý ngoại lệ

try:
    câu_lệnh
except Loại_Lỗi:
    thông báo lỗi

6. Tốc độ thực hiện

Là một ngôn ngữ thông dịch, Python có tốc độ thực hiện chậm hơn nhiều lần so với các ngôn ngữ biên dịch như Fortran, C,… Trong số các ngôn ngữ thông dịch, Python được đánh giá nhanh hơn RubyTcl, nhưng chậm hơn Lua.

7. Các đặc điểm mới trong Python 3.x

Vì mình đang sử dụng phiên bản Python 3.x nên giới thiệu luôn trong bài viết này. Nội dung phần này được trích từ tài liệu của Guido van Rossum. Phần này không liệt kê đầy đủ tất cả các đặc điểm; chi tiết xin xem tài liệu nói trên.

Một số thay đổi cần lưu ý nhất

Lệnh print trở thành hàm print(). Theo đó sau print() ta cần nhớ gõ vào cặp ngoặc ():

print("Goodbye")
print(2+3)

Trả lại kết quả không còn là list trong một số trường hợp:

  • dict.keys(), dict.items(), dict.values() kết quả cho ra các “view” thay vì list.
  • mapfilter trả lại các iterator.
  • range bây giờ có tác dụng như xrange, và không trả lại list.

So sánh:

Không còn hàm cmp, và cmp(a, b) có thể được thay bằng (a > b) - (a < b)

Số nguyên:

  • Kiểu long được đổi tên thành int.
  • 1/2 cho ta kết quả là số thực chứ không phải số nguyên.
  • Không còn hằng số sys.maxint
  • Kiểu bát phân được ký hiệu bằng 0o thay vì 0, chẳng hạn 0o26.

Phân biệt văn bản – dữ liệu nhị phân thay vì Unicode – chuỗi 8-bit

  • Tất cả chuỗi văn bản đều dưới dạng Unicode, nhưng chuỗi Unicode mã hóa lại là dạng dữ liệu nhị phân. Dạng mặc định là UTF-8.
  • Không thể viết u"a string" để biểu diễn chuỗi như trong các phiên bản 2.x

Các thay đổi về cú pháp

Cú pháp mới

  • Các tham biến chỉ chấp nhận keyword: Các tham biến phía sau *args phải được gọi theo dạng keyword.
  • Từ khóa mới nonlocal. Muốn khai báo một biến x với có phạm vi ảnh hưởng rộng hơn, nhưng chưa đến mức toàn cục, ta dùng nonlocal x.
  • Gán giá trị vào các phần tử tuple một cách thông minh, chẳng hạn có thể viết (a, *rest, b) = range(5) để có được a = 0; b = [1,2,3]; c = 4.
  • Dictionary comprehension, chẳng hạn {k: v for k, v in stuff} thay vì dict(stuff).
  • Kiểu nhị phân, chẳng hạn b110001.

Cú pháp được thay đổi

raise [biểu_thức [from biểu_thức]]except lệnh as biến Sử dụng metaclass trong đối tượng:

class C(metaclass=M):
    pass

Cách dùng biến __metaclass__ không còn được hỗ trợ.

Cú pháp bị loại bỏ

  • Không còn dấu ``, thay vì đó, dùng repr.
  • Không còn so sánh <> (dùng !=).
  • Không còn các lớp kiểu classic.

8. Tổng Kết

Phù!!! Như vậy là mình đã tổng kết được một số thứ hay ho trong quá trình bắt đầu học lập trình ngôn ngữ Python của mình. Đầu tiên là việc cài đặt, kế tiếp là chạy thử 1 chương trình đơn giản, sau đó là nghiên cứu các đặc điểm hình thành lên ngôn ngữ này. Và mình nhận thấy cú pháp là một cái cực kì quan trọng trong việc viết code, vì nếu sai cú pháp thì chương trình của mình sẽ không thể dịch chạy được.

Một số điểm mình muốn lưu ý với những bạn đang học từ đầu giống như mình là, có thể mình sẽ không thể hiểu hết nó trong một sớm một chiều nhưng hiển nhiên những gì là cơ bản của một ngôn ngữ lập trình thì mình sẽ cố gắng nắm & hiểu nó rõ ràng nhất có thể. Từ những cái cơ bản mình đã hiểu sau đó mình mới học nâng cao các vấn đề lên được. Hãy đi từ những ví dụ nhỏ, cụ thể để hiểu các tạo biến, hàm, lớp vvv… trong Python như thế nào, sau đó làm và mở rộng nó ra.

Chúc các bạn học vui vẻ!

Quảng cáo

Flutter | Thế nào là Widget trong Flutter

0
widget flutter
widget flutter

Bài viết này mình sẽ giới thiệu về widget, một trong những nền tảng của ứng dụng Flutter

Nền tảng widget

Trong phần này, chúng ta sẽ tìm hiểu khái niệm về một widget, cách tạo nó và các loại khác nhau của chúng có sẵn trong Flutter framework. Chúng ta đã biết trước đó rằng mọi thứ trong Flutter đều là một widget.

Nếu bạn đã quen thuộc với React hoặc Vue.js, thì bạn sẽ dễ dàng hiểu được Flutter.

Bất cứ khi nào bạn định viết mã để xây dựng bất cứ thứ gì trong Flutter, nó sẽ nằm bên trong một widget. Mục đích chính là xây dựng ứng dụng từ các widget. Nó mô tả chế độ xem ứng dụng của bạn trông như thế nào với cấu hình và trạng thái hiện tại của chúng. Khi bạn thực hiện bất kỳ thay đổi nào trong mã, widget con sẽ xây dựng lại mô tả của nó bằng cách tính toán sự khác biệt của widget con hiện tại và trước đó để xác định những thay đổi tối thiểu đối với việc hiển thị trong giao diện người dùng của ứng dụng.

Các widget được lồng vào nhau để xây dựng ứng dụng. Nó có nghĩa là thư mục gốc của ứng dụng của bạn tự nó là một widget, và bản thân nó cũng là một widget. Ví dụ: một widget có thể hiển thị một thứ gì đó, có thể xác định thiết kế, có thể xử lý tương tác, v.v.

Hình ảnh dưới đây là một mô tả trực quan đơn giản của cây widget.

Widget trong Flutter
Mô tả về sử dụng Widget trong Flutter. Ảnh Internet

Chúng ta có thể tạo Flutter widgets như sau:

Class ImageWidget extends StatelessWidget {  
// Class Stuff  
}

Hello World Example

import ‘package:flutter/material.dart’;  

class MyHomePage extends StatelessWidget {    
  MyHomePage({Key key, this.title}) : super(key: key);    
  // This widget is the home page of your application.    
  final String title;    

  @override    
  Widget build(BuildContext context) {    
    return Scaffold(    
      appBar: AppBar(    
        title: Text(this.title),    
      ),    
      body: Center(    
        child: Text(‘Hello World’),    
      ),    
    );    
  }    
}    

Các kiểu Widget

Chúng ta có thể chia tiện ích Flutter thành hai loại:

1. Hiển thị (Đầu ra và Đầu vào)

2. Vô hình (Bố cục và Kiểm soát)

Widget hiển thị

Các widget hiển thị có liên quan đến dữ liệu đầu vào và đầu ra của người dùng. Một số loại quan trọng của widget con này là: văn bản

Widget Văn bản giữ một số văn bản để hiển thị trên màn hình. Chúng ta có thể căn chỉnh widget văn bản bằng cách sử dụng thuộc tính textAlign và thuộc tính style cho phép tùy chỉnh Văn bản bao gồm phông chữ, độ đậm của phông chữ, kiểu phông chữ, khoảng cách giữa các chữ cái, màu sắc và nhiều thứ khác. Chúng ta có thể sử dụng nó như các đoạn mã dưới đây.

new Text(     
'Hello, Javatpoint!',     
textAlign: TextAlign.center,       
style: new TextStyle(fontWeight: FontWeight.bold),   
)  

Nút

Widget này cho phép bạn thực hiện một số hành động khi nhấp chuột. Flutter không cho phép bạn sử dụng trực tiếp widget Nút; thay vào đó, nó sử dụng một loại nút như FlatButton và RaisedButton. Chúng ta có thể sử dụng nó như các đoạn mã dưới đây.

//FlatButton Example  
new FlatButton(  
  child: Text("Click here"),  
  onPressed: () {  
    // Do something here  
  },  
),  
  
//RaisedButton Example  
new RaisedButton(  
  child: Text("Click here"),  
  elevation: 5.0,  
  onPressed: () {  
    // Do something here  
  },  
),  

Trong ví dụ trên, thuộc tính onPressed cho phép chúng ta thực hiện một hành động khi bạn nhấp vào nút và thuộc tính độ cao được sử dụng để thay đổi mức độ nổi bật của nó.

Hình ảnh

Widget con này chứa hình ảnh có thể tìm nạp hình ảnh từ nhiều nguồn như từ thư mục nội dung hoặc trực tiếp từ URL. Nó cung cấp nhiều hàm tạo để tải hình ảnh, được đưa ra dưới đây:

  • Image: Đây là một trình tải hình ảnh chung, được sử dụng bởi ImageProvider.
  • asset: Nó tải hình ảnh từ thư mục tài sản dự án của bạn.
  • file: Nó tải hình ảnh từ thư mục hệ thống.
  • memory: Nó tải hình ảnh từ bộ nhớ.
  • network: Nó tải hình ảnh từ mạng. Để thêm hình ảnh vào dự án, trước tiên bạn cần tạo một thư mục nội dung nơi bạn lưu giữ hình ảnh của mình và sau đó thêm dòng bên dưới vào tệp pubspec.yaml.
assets:  
  - assets/  

Bây giờ, thêm dòng sau vào tệp Dart

Image.asset('assets/computer.png')

Mã nguồn hoàn chỉnh để thêm hình ảnh được hiển thị bên dưới trong ví dụ hello world.

class MyHomePage extends StatelessWidget {  
  MyHomePage({Key key, this.title}) : super(key: key);  
  // This widget is the home page of your application.  
  final String title;  
  
  @override  
  Widget build(BuildContext context) {  
    return Scaffold(  
      appBar: AppBar(  
        title: Text(this.title),  
      ),  
      body: Center(  
        child: Image.asset('assets/computer.png'),  
      ),  
    );  
  }  
}  

Khi bạn chạy ứng dụng, nó sẽ đưa ra kết quả sau.

Sử dụng Widget trong Flutter
Sử dụng Widget trong Flutter

Biểu tượng

Widget này hoạt động như một thùng chứa để lưu trữ Biểu tượng trong Flutter. Đoạn mã sau đây giải thích rõ ràng hơn.

new Icon(  
  Icons.add,  
  size: 34.0,  
)  

Widget ẩn

Các widget vô hình có liên quan đến cách bố trí và kiểm soát các widget. Nó cung cấp việc kiểm soát cách các widget thực sự hoạt động và cách chúng sẽ hiển thị trên màn hình. Một số loại widget quan trọng là:

Cột

Một widget cột là một loại widget sắp xếp tất cả các widget con của nó theo một hàng dọc. Nó cung cấp khoảng cách giữa các widget bằng cách sử dụng các thuộc tính mainAxisAlignmentcrossAxisAlignment. Trong các thuộc tính này, trục chính là trục tung, và trục chéo là trục hoành.

Thí dụ

Các đoạn mã dưới đây xây dựng hai phần tử widget con theo chiều dọc.

new Column(  
  mainAxisAlignment: MainAxisAlignment.center,  
  children: <Widget>[  
    new Text(  
      "VegElement",  
    ),  
    new Text(  
      "Non-vegElement"  
    ),  
  ],  
),  

Hàng

Widget con hàng tương tự như widget con cột, nhưng nó xây dựng một widget con theo chiều ngang chứ không phải theo chiều dọc. Ở đây, trục chính là trục hoành, và trục chéo là trục tung.

Thí dụ

 Các đoạn mã dưới đây xây dựng hai phần tử widget theo chiều ngang.

new Row(  
  mainAxisAlignment: MainAxisAlignment.spaceEvenly,  
  children: <Widget>[  
    new Text(  
      "VegElement",  
    ),  
    new Text(  
      "Non-vegElement"  
    ),  
  ],  
),  

Trung tâm

Widget con này được sử dụng để căn giữa widget con, nằm bên trong nó. Tất cả các ví dụ trước đều chứa bên trong widget trung tâm.

Thí dụ

Center(  
  child: new clumn(  
    mainAxisAlignment: MainAxisAlignment.spaceEvenly,  
    children: <Widget>[  
      new Text(  
        "VegElement",  
      ),  
      new Text(  
        "Non-vegElement"  
      ),  
    ],  
  ),  
),  

Đệm lót

Widget này bao bọc các widget khác để cung cấp cho chúng phần đệm theo các hướng được chỉ định. Bạn cũng có thể cung cấp đệm theo mọi hướng. Chúng ta có thể hiểu nó từ ví dụ dưới đây cung cấp cho phần đệm widget văn bản là 6.0 theo mọi hướng.

Thí dụ

Padding(  
  padding: const EdgeInsets.all(6.0),  
  child: new Text(  
    "Element 1",  
  ),  
),  

Scaffold

Widget con này cung cấp một khuôn khổ cho phép bạn thêm các yếu tố thiết kế material design phổ biến như AppBar, Floating Action Buttons, Drawers, v.v. Stack

Nó là một widget thiết yếu, được sử dụng chủ yếu để chồng lên một widget, chẳng hạn như một nút trên nền gradient.

Widget quản lý

Trong Flutter, chủ yếu có hai loại widget:

  • StatelessWidget
  • StatefulWidget

StatefulWidget

StatefulWidget có thông tin trạng. Nó chủ yếu chứa hai lớp: đối tượng trạng thái và widget con. Nó là động vì nó có thể thay đổi dữ liệu bên trong trong suốt thời gian tồn tại của widget. Widget con này không có phương thức build (). Nó có phương thức createState (), trả về một lớp mở rộng Lớp trạng thái Flutters. Các ví dụ của StatefulWidget là Checkbox, Radio, Slider, InkWell, Form và TextField.

Ví dụ:

class Car extends StatefulWidget {  
  const Car({ Key key, this.title }) : super(key: key);   
  
  @override  
  _CarState createState() => _CarState();  
}  
  
class _CarState extends State<Car> {  
  @override  
  Widget build(BuildContext context) {  
    return Container(  
      color: const Color(0xFEEFE),  
           child: Container(  
            child: Container( //child: Container() )  
        )  
    );  
  }  
}  

StatelessWidget

StatelessWidget không có bất kỳ thông tin trạng thái nào. Nó vẫn tĩnh trong suốt vòng đời của nó. Các ví dụ về StatelessWidget là Văn bản, Hàng, Cột, Vùng chứa, v.v.

Thí dụ

class MyStatelessCarWidget extends StatelessWidget {  
  const MyStatelessCarWidget ({ Key key }) : super(key: key);  
  
  @override  
  Widget build(BuildContext context) {  
    return Container(color: const Color(0x0xFEEFE));  
  }  
}  

Cuối cùng

Cám ơn bạn đã theo dõi bài viết về Widget, một trong những nền tảng của ứng dụng Flutter, ngoài ra các bạn có thể xem thêm các nội dung khác trong chuyên mục lập trình Flutter được chia sẻ bởi Nguyễn Hưng.

Quảng cáo

Vịnh Xuân Quyền so với Taekwondo

wing tzun, martial arts, self-defense

Khi nói về võ thuật, Vịnh Xuân Quyền và Taekwondo là hai môn phái rất phổ biến không bao giờ có thể bỏ qua. Nhưng nhiều người tự hỏi, môn phái nào Vịnh Xuân Quyền hay Taekwondo là tốt hơn để luyện tập?

Taekwondo là một môn võ thuật sẽ tốt hơn để học, nó đã được “cách mạng hóa” trong nhiều năm và được trang bị những chiến thuật tấn công lẫn phòng thủ hiện đại. Trong khi Vịnh Xuân Quyền lại là một môn võ cổ điển tập trung nhiều vào việc ngăn chặn các đợt tấn công của đối thủ bằng những đòn thế nhanh gọn hợp lý của mình.

Hãy cùng chúng tôi tìm hiểu về từng môn phái để có cái nhìn sâu sắc hơn về cả hai phong cách võ thuật này nhé.

wing tzun, martial arts, self-defense
Vịnh Xuân Quyền so với Taekwondo

Môn phái Vịnh Xuân Quyền?

Vịnh Xuân Quyền là một môn võ thuật có nguồn gốc từ Trung Quốc cách đây khoảng 300 năm. Nó chủ yếu liên quan đến các kỹ thuật tự vệ có thể được sử dụng trong chiến đấu cận chiến. Một võ sĩ Vịnh Xuân nắm vững các phương pháp tấn công và các kỹ thuật kiểm soát phòng thủ khác.

Một nữ tu sĩ Phật giáo và là bậc thầy của Thiếu Lâm – Ngũ Mai sư thái, đã phát triển các kỹ thuật Vịnh Xuân Quyền để loại bỏ những nhược điểm lớn của các đòn võ thuật. Ngũ Mai sư thái có chiều cao thấp, và do đó bà đã tạo ra các kỹ thuật thông thường để có thể áp dụng được cho những người có chiều khiêm tốn.

Ngũ Mai sư thái bắt đầu dạy những kỹ thuật này cho người dân miền Nam Trung Quốc. Bà chỉ có một vài môn sinh, các kỹ thuật của bà được đặt theo tên của một trong những học sinh giỏi nhất; sau này là Vịnh Xuân Quyền. Và môn võ này đã trở thành nổi tiếng khắp thế giới khi bậc thầy võ thuật, Diệp Vấn bắt đầu truyền dạy.

Vịnh Xuân Quyền đòi hỏi một số các kỹ thuật cực kỳ thông minh. Những kỹ thuật này có thể áp dụng trong võ thuật hiện đại, chúng có thể được học và luyện tập một thời gian tương đối ngắn, và phù hợp với mọi người ở mọi kích thước và chiều cao khác nhau.

Môn phái Taekwondo?

Một trong những môn võ thuật nổi tiếng nhất – Taekwondo, chủ yếu đề cập đến các kỹ thuật phòng thủ và tấn công. Một võ sĩ Taekwondo sử dụng cả tay và chân của mình để tự vệ và tấn công đối thủ trong trận chiến.

Môn phái Taekwondo cổ đại của Hàn Quốc đã có từ 2300 năm trước. Từ “Taekwondo” bao gồm ba từ; “Tae”, “Kwon” và “do”, trong đó Tae có nghĩa là “chân”, Kwon có nghĩa là “tay” và Do có nghĩa là “đạo” gợi một triết lý sống. Khi được ghép lại với nhau, từ “Taekwondo” có nghĩa là “Nghệ thuật đấu võ bằng tay và chân.” Taekwondo có vẻ giống như chỉ là tất cả về đá và đấm, nhưng trên thực tế nó dạy bạn cách sống đúng đắn.

Các chuyên gia Taekwondo có tinh thần và thể chất mạnh mẽ, đều sẵn sàng đối phó với mọi tình huống có vấn đề, cho dù có vũ trang hay không.

Sự khác biệt giữa Vịnh Xuân Quyền và Taekwondo

Taekwondo và Vịnh Xuân Quyền là hai môn võ khác nhau với hai nguồn gốc khác nhau. Tuy nhiên, một số động tác và kỹ thuật liên quan đến cả hai phong cách này đều có liên quan với nhau.

Dưới đây, chúng ta hãy xem xét một số điểm khác biệt và tương đồng chính giữa cả hai.

Ý nghĩa tên

Các kỹ thuật Vịnh Xuân được đặt theo tên của nữ võ sư Vịnh Xuân, một học trò xuất sắc của Ngũ Mai sư thái. Trong khi từ Taekwondo là sự kết hợp của ba từ có nghĩa là “Nghệ thuật đấu võ bằng tay và chân.”

Nguồn gốc

Môn phái Vịnh Xuân quyền bắt đầu ở Trung Quốc cách đây gần 300 năm, trong khi Taekwondo bắt nguồn từ Hàn Quốc hơn 2300 năm trước.

Chiến lược chiến đấu

Các chiến lược chiến đấu được áp dụng bởi cả hai phong cách võ thuật khác nhau như sau:

Vịnh Xuân QuyềnTaekwondo
Tấn công và kiểm soátPhòng thủ và tấn công
Chiến đấu tầm gầnChiến đấu tầm xa
Đánh tayĐá
Tiêu diệt kẻ thù càng sớm càng tốtDành thời gian với những bước di chuyển thần tốc
Tấn công liên tụcÍt cuộc tấn công nhưng kịp thời
Đẩy mạnh những ngón tayCú đá khí lực
Phóng bàn tayĐá sau lưng
Cánh tay hoặc bàn tayCú đá bán nguyệt
Bám tayCú đá bán nguyệt vòng trong
Điều phục bàn tayCú đá bán nguyệt vòng ngoài
Luyện bàn tayCú đá hình tròn hướng xuống
Tách rời tayCú đá hình tròn 2 lần
Bấm tayĐá trước
Vòng tayĐá móc
Xoay tayĐá sau khi đang bay
Nắm lấy tayĐá cạnh khi bay bay
Dò tayĐá nhảy về sau
Tát khóaĐá nhảy về trước
Dính hai  cánh tay hoặc dính hai bàn tayTấn công đầu gối
Khóa tayĐấ ấn
Đón bàn tayĐá lặp lại
Bảo vệ bàn tayĐá vòng tròn
Đòn cùi chỏĐá kéo
Đẩy mạnh ngón tayĐá cạnh
Phóng bàn tayĐá xoắn xoáy móc
Đấm liên tục 
Cú đấm 1 inch 
Đấm hai tay Vịnh Xuân 

Sự thích hợp

Kỹ thuật  trong Vịnh Xuân Quyền phù hợp với mọi người ở mọi loại chiều cao và trọng lượng. Trong khi, Taekwondo chỉ những người có chiều cao và thể hình cường tráng mới có thể thuần thục.

Thời gian học tập

Vịnh Xuân Quyền có thể được mài dũa trong thời gian ngắn hơn gần hai năm, trong khi Taekwondo cần ít nhất bốn năm để làm quen.

Vịnh Xuân Quyền và Taekwondo: Cái nào tốt hơn để tự vệ

Vịnh Xuân Quyền

Trong tình huống tự vệ, không có quy tắc hoặc tiêu chuẩn nào được áp dụng. Khi đối mặt với đòn tấn công của đối thủ, đòn phản công, dù có hoặc không có thủ pháp thì thường là tự do. Các kỹ thuật Vịnh Xuân Quyền hướng dẫn bạn ngăn chặn các đòn tấn công của đối thủ và đánh trả bằng các đòn thế nhanh gọn.

Một võ sĩ Vịnh Xuân được đào tạo để có thể chặn được các đòn đấm, đá của Vịnh Xuân và các đòn thế khác của người tấn công họ. Chặn được những cú đấm theo phong cách Vịnh Xuân Quyền là một điều khó khăn đối với một võ sĩ Vịnh Xuân.

Họ có thể gặp trở ngại khi bị tấn công bằng các đòn thế khác với các kỹ thuật của Vịnh Xuân. Điều đó nói rằng, nếu một võ sĩ Vịnh Xuân đối mặt với một tình huống giao tranh, anh ta có thể dễ dàng giải cứu cho mình khỏi các đòn của đối thủ chỉ khi đó là các đòn thế của Vịnh Xuân. Nhưng ngược lại, nếu đối thủ ra đòn Taekwondo, võ sĩ Vịnh Xuân rất khó chặn được những đòn thế đó. Các võ sĩ Vịnh Xuân chỉ được dạy các đòn thế trong Vịnh Xuân, và họ chỉ có thể tự vệ trước các đòn thế của Vịnh Xuân như đã được luyện tập giả định trước. Thực tế thì trong cuộc sống, bạn không bao giờ có thể đảm bảo rằng kẻ tấn công bạn chỉ biết có mỗi Vịnh Xuân Quyền.

Chỉ được huấn luyện để đánh gần, võ sĩ Vịnh Xuân không bao giờ có thể tự vệ trước các đòn tự do của đối thủ. Vì vậy, khi nói về các tình huống tự vệ trong đời thực, Vịnh Xuân Quyền không bao giờ là một môn nghệ thuật toàn diện.

Taekwondo

Trái ngược với Vịnh Xuân, Taekwondo sử dụng kỹ thuật tự vệ tự do. Các võ sĩ Taekwondo được huấn luyện để chiến đấu ở cự ly xa; điều này giúp họ có thể thấy trước các bước di chuyển của đối thủ và đánh trả phù hợp.

Hơn nữa, Taekwondo đã phát triển trong quân sự Hàn Quốc. Các kỹ thuật Taekwondo hiện đại có nhiều chức năng và phản ứng nhanh hơn. Về mặt lý thuyết, mọi chiêu thức đều dạy các bước di chuyển và kỹ thuật phòng thủ cụ thể đòi hỏi phải có thời gian và không gian. Trên thực tế, một tình huống tự vệ lại đòi hỏi phải có các quyết định ngay lập tức và các động thái phản công nhanh chóng.

Do đó, Taekwondo có lợi thế cạnh tranh đáng kể so với Vịnh Xuân Quyền. Với các kỹ thuật và cách huấn luyện linh hoạt hơn, Taekwondo là môn nghệ thuật tốt hơn khi áp dụng vào các tình huống tự vệ ngoài đời thực.

Một võ sư Vịnh Xuân Quyền nổi tiếng, Lý Tiểu Long đã từng nói: “Hãy lấy những gì hữu ích và loại bỏ những gì vô ích.” Ông đã phát triển hệ thống “Fancy Mess” để đối phó với các tình huống trong tự vệ. Hệ thống này thực ra lại không có hệ thống; nó dạy các võ sĩ luôn chuẩn bị cho tất cả mọi tình huống và chống trả bằng mọi cách, sử dụng tất cả những kỹ thuật.

Vịnh Xuân Quyền so với Taekwondo: Cái nào tốt hơn cho MMA

Võ tổng hợp (MMA) là một môn thể thao nhiều hơn và không phải là một môn võ cổ điển. Nó kết hợp các phong cách và bộ môn võ thuật khác nhau. Các võ sĩ MMA được trang bị các phong cách võ thuật đa dạng bao gồm Jiu-Jitsu, Karate, Kung Fu, Taekwondo, Muay Thái, Boxing, v.v.

Người thầy võ thuật vĩ đại, Lý Tiểu Long là cha đẻ của môn võ thuật tổng hợp cho phong cách võ thuật lạ mắt, được ông giới thiệu vào cuối những năm 60 và đầu những năm 70.

Vịnh Xuân Quyền

Vịnh Xuân Quyền là một khái niệm chiến đấu dựa trên phong cách võ thuật truyền thống của Trung Quốc. Về mặt lý thuyết, Vịnh Xuân quyền sử dụng một lối đánh tự vệ tập trung vào việc phòng thủ các đòn tấn công có sức mạnh cao. Các kỹ thuật Vịnh Xuân Quyền rất hiệu quả đối với các môn võ tổng hợp, vì chúng tập trung vào việc ngăn chặn các đòn tấn công của đối thủ.

Các kỹ thuật Vịnh Xuân quyền bao gồm đấm và đá liên tục, khiến đối thủ lo lắng và phòng thủ. Ngoài ra, Vịnh Xuân còn sử dụng đòn bẫy tay trong các trận đấu cận chiến, kĩ thuật này có thể trở thành một động tác MMA xuất sắc.

MMA là một cuộc thi đấu đối kháng được xử phạt với các quy tắc đã xác định, và bất kỳ vi phạm nào đối với các quy tắc đó sẽ khiến võ sĩ bị loại khỏi cuộc thi. Đánh vào phía sau đầu, ngón tay, cổ họng và háng là bất hợp pháp trong hầu hết các trận đấu MMA. Trong khi đó, các kỹ thuật Vịnh Xuân Quyền tập trung rất nhiều vào tất cả các mục tiêu và động tác này.

Hơn nữa, các đòn tay của Vịnh Xuân Quyền được phát triển để làm tổn thương mắt và cổ họng của kẻ tấn công, và những đòn đánh này bị cấm trong MMA. Một võ sĩ Vịnh Xuân quyền gần như không thể chiến thắng trong một trận đấu MMA trong khi không thực hành các kỹ thuật Vịnh Xuân chủ yếu.

Có một võ sĩ Vịnh Xuân thuần túy là Asbel Conica từng thi đấu MMA. Và trận đấu chỉ kéo dài trong 21 giây, anh ta đã không thể đối phó với các kỹ thuật tự do của đối thủ, và đã thua cuộc.

Taekwondo

Trong khi đó, đây không phải là vấn đề với Taekwondo. Hầu hết các phong cách Taekwondo đều bao gồm các đòn đá mạnh mẽ mang lại cho bạn lợi thế cạnh tranh siêu hạng trong các trận đấu MMA.

Trong một trận đấu MMA, mỗi người tham gia đều có các kỹ năng và phong cách chiến đấu đa dạng. Không thể chiến đấu với những cỗ máy chiến đấu đa năng như vậy mà chỉ bằng với một phong cách duy nhất. Taekwondo hiện đại là sự kết hợp của các phong cách và kỹ thuật chiến đấu khác nhau giúp võ sĩ chống lại các đòn tấn công tự do.

Do đó, các kỹ thuật Taekwondo hữu ích hơn nhiều trong việc giành chiến thắng trong một cuộc thi MMA so với Vịnh Xuân. Tuy nhiên, nhiều động tác Taekwondo, bao gồm bẻ xương, khoét mắt hoặc giết chết đối thủ của bạn, đều bị cấm trong MMA. Nhiều đòn thế Taekwondo đa dạng khác giành được lợi thế hơn so với các đòn thế của Vịnh Xuân Quyền.

Phần kết luận

Khi nói đến tự vệ hoặc MMA, Taekwondo chắc chắn tốt hơn Vịnh Xuân. Vịnh Xuân Quyền là một môn võ cổ điển tập trung nhiều hơn vào việc ngăn chặn các đòn tấn công của đối thủ bằng các kỹ thuật phản xạ nhanh gọn. Tuy nhiên, Taekwondo đã có một cuộc cách mạng trong những năm qua và được trang bị với các chiến lược phòng thủ và tấn công hiện đại.

Quảng cáo

Kinh nghiệm học lập trình Python cho người mới bắt đầu.

0
Python | 8 cuốn sách cơ bản về Python cho người mới bắt đầu học
Python | 8 cuốn sách cơ bản về Python cho người mới bắt đầu học

Mình là một người chưa biết gì về lập trình, nhưng dạo gần đây mình bắt đầu thay đổi tư duy làm việc cũng như về lối sống, mình muốn có thêm một kiến thức về một lĩnh vực nào đó trong thế giới công nghệ, từ đó mình bắt đầu nghiên cứu về một loại ngôn ngữ lập trình hướng đối tượng. Sau quá trình tìm kiếm các tài liệu và các bài so sánh thì mình thấy ngôn ngữ này khá là dễ hiểu và dễ học hơn các ngôn ngữ còn lại (so với 1 người chưa biết gì về code như mình :D).

Kinh nghiệm học lập trình Python cho người mới bắt đầu.

Bắt đầu tìm hiểu và cài đặt Python.

Đầu tiên mình lang thang trên các diễn đàng công nghệ cũng như các Blog trên youtube để tìm kiếm tài liệu về cách học Python cơ bản cho người mới bắt đầu, mình có tìm được 1 trang web với các kiến thức cơ bản đến nâng cao cho người mới bắt đầu học về Python là: https://www.w3schools.com/python/

Tiếp đến mình tải và cài đặt Python, và thử chạy những dòng lệnh ban đầu: Print(“Hello Work”) và màn hình bắt đầu xuất hiện từ Hello Work, ôi thật là vi diệu làm mình thấy hứng thú hơn và mình quyết tâm nghiêm túc tập trung vào để học, trong các bài học mình luôn chú ý đến những phần thực hành mà website đưa ra để hiệu quả hơn trong quá trình học.

Gắn bó với Python, luyện tập thường xuyên.

Kiên trì và luôn giữ nhiệt huyết để thành một người đa năng trong thế giới công nghệ cũng như nó sẽ giúp mình có thêm 1 cần câu kiếm tiền, nên hằng ngày mình luôn dành thời gian vào mỗi tối khi đi làm về để học về Python. Ban đầu nếu các bạn mới tìm hiểu về code cũng như về Python thì có thể sẽ nhàm chán vì khi học ở mức cơ bản chỉ xoay quanh các loại biến, giá trị của biến, các kiểu của biến, in ra biến và các kiểu dữ liệu. Nhưng đã là bắt đầu từ cái mình không biết thì cần học những cái thấp nhất đến nâng cao mới giúp mình hiểu về ngôn ngữ Python cũng như để code ra được những thứ hay ho hơn.

Luyện tập – thử thách – không ngại khó” là câu mình thường hay nghe được ở các anh Coder chuyên nghiệp làm lâu năm, điều này giúp mình thấu hiểu rằng chỉ học mà không hành thì khó mà hiểu hết được thứ mình đang học, nên bên cạnh xem lý thuyết đọc hiểu mình cũng tập trung vào rất nhiều về code test trong lý thuyết, sau đó mình áp dụng với chính mình và thử viết ra những thứ khác hơn với bài học.

Tổng hợp và ôn lại những gì đã học.

Sau vài bài học thường là hết một chuyên đề như: hết phần biến và cách sử dụng biến…thì mình bắt đầu thực hiện tổng hợp lại các kiến thức và ôn tập sau đó bắt đầu code lại cũng như là 1 bài kiểm tra kiến thức đã học, tránh trường hợp quên kiến thức cũ để tiếp tục cho bài học ở phần mới.

Học hỏi thêm kinh nghiệm từ người khác.

Bên cạnh việc tự học từ các tài liệu có trên mạng, mình cũng tham gia các group cộng đồng về lập trình Python trên facebook, cũng như tham gia học nhóm với các anh chị em có đam mê về lập trình và cụ thể đang tìm hiểu về ngôn ngữ này, để cùng trao đổi về kiến thức những khó khăn trong quá trình học, cũng như biết được thêm những điều hay ho từ những anh chị đã có kinh nghiệm về các ngôn ngữ khác.

Đây chỉ là những chia sẽ trên khía cạnh cá nhân của mình, vì mỗi người sẽ có các cách học khác nhau. Chúc các bạn học Python thật tốt và tìm được điều mới mẻ hơn qua quá trình học ngôn ngữ này!!!

Quảng cáo

Điều tuyệt vời trong nghi thức chào của Aikido

Những nghi thức chào trong môn võ Aikido
Những nghi thức chào trong môn võ Aikido

Dưới đây là những lời bộc bạch của tác giả Nhi Hà viết trên blog của cô. Tôi đã mạn phép xin tác giả cho đăng lại trên website của mình với mong muốn được chia sẻ thêm nhiều kiến thức phong phú về Võ thuật, cũng như về “Đạo” trong Võ học. Điều mà tôi hay tác giả Nhi Hà luôn muốn truyền tải nhất.

Thân mời các bạn cùng đọc!

Nghi thức chào trong Aikido

Một ngày đẹp trời, khi cáp quang đang được bảo trì, còn “mạng” thì chập chờn, không làm ăn được gì. Chợt thấy lòng sâu lắng lại, bỗng suy ngẫm về chuyện học võ.

Người xưa thường nói “Tiên học Lễ, Hậu học Văn“. Mỗi khi một võ sinh mới tham gia tập luyện, mình luôn dành hơn nữa buổi tập để hướng dẫn các bạn về các lễ nghi trong môn võ Aikido, chiếm phần nhiều trong đó là nghi thức chào.

môn sinh đứng thẳng hướng về di ảnh Tổ Sư rồi cúi chào
Môn sinh hướng về di ảnh Tổ Sư rồi cúi chào. Ảnh do tác giả cung cấp

Aikido xuất phát từ Nhật Bản nên không lạ lẫm gì khi các môn sinh phải học theo những nghi lễ của Nhật. Trước khi vào sân tập, môn sinh đứng thẳng hướng về di ảnh Tổ Sư rồi cúi chào. Đằng sau cái cúi chào đó, người môn sinh bước vào đạo đường sẽ bỏ lại những suy nghĩ về công việc và cuộc sống của bản thân, khi bước lên thảm tập là hoà hết tinh thần lẫn thể lực vào trong Aikido. Sau đó, người võ sinh vào sân đặt giày của mình ngay ngắn kế thảm tập, mũi giày hướng ra ngoài, cất balo vào tủ, chuẩn bị cho một buổi tập.

Những nghi thức chào trong môn võ Aikido

Cả lớp sẽ ngồi seiza hình chữ U theo quy ước đai cao nhất ở phía tay trái và đai thấp nhất ở phía tay phải lúc hướng về hình tổ sư để thực hiện nghi lễ chào sân. Huấn luyện viên cùng cả lớp sẽ hướng về di ảnh tổ sư, chắp tay lạy bái tổ hai cái và vỗ tay hai cái. Tiếp theo, HLV sẽ quay lại phía đối diện các môn sinh và hai bên chào nhau.

Nếu bạn vào trễ, bạn tuần tự thực hiện theo các bước sau:

  • Ngồi seiza chào Tổ.
  • Chào Huấn luyện viên
  • Chào đai đen (chào theo thứ tự người cao đẳng hơn thì chào trước ví dụ chào ba đẳng xong đến hai đẳng và cuối cùng là một đẳng) Nói thêm một chút về phần này, đai đen là màu đai cao nhất nhưng vẫn còn cấp đẳng. Chiếc đai đen sẽ không may thêm vạch để thể hiện cấp đẳng mà thể hiện qua sự đổi màu của chữ trên đai… Với aikido, võ phục bắt buộc sẽ kèm theo chiếc hakama nên đai sẽ được giấu vào trong nên bạn cũng khó lòng biết được ai cao đẳng hơn ai. Cách dễ nhận biết được thứ tự là quan sát khi cả lớp ngồi hình chữ U. Ai ngồi cao nhất ở phía tay trái di ảnh là người có cấp bậc lớn nhất)
  • Chào người hướng dẫn khởi động (nếu như hôm đó là đai màu hướng dẫn mà không phải Huấn luyện viên hoặc đai đen)

Lưu ý: Hình thức bắt buộc khi chào Tổ là ngồi seiza. Đối với các trường hợp còn lại, sẽ tuỳ vào người mình muốn chào đang đứng hay ngồi mà mình đứng hay ngồi seiza để chào. Tuyệt đối nghiêm cấm đứng chào mà xoay lưng vào chính diện di ảnh Tổ sư vì nó thể hiện sự thất lễ. Trường hợp này, bạn nên chỉnh hướng đứng, hay ngồi seiza chệch sang trái hoặc sang phải di ảnh.

Trong quá trình tập luyện, nghi lễ chào cũng được áp dụng khi có sự bắt đầu một tương tác. Khi muốn hỏi về kỹ thuật, muốn nhờ ai đó làm gì cho bạn hay mời cùng tập, bất kể đó là huấn luyện viên, đai đen, cùng màu đai hay cả các bạn đai trắng, ta cũng phải thực hiện nghi thức chào. Bạn đến trước người mà bạn muốn giao tiếp, tuỳ theo người đó đang đứng hay ngồi mà áp dụng tư thế đứng chào hay ngồi seiza. Khi hai người đã ra giữa sân tập, thực hiện động tác đứng chào nhau rồi tập. Khi kết thúc phần tập, hai người thực hiện động tác chào nhau để thể hiện sự kết thúc.

Kết thúc buổi tập, cả lớp sẽ cùng ngồi seiza và chào sân, quy cách như lúc chào đầu giờ. Khi ra về, không quên đứng ở cửa cúi chào hướng người về phía di ảnh Tổ Sư.

Bài học từ việc cúi chào nhau

Nãy giờ nghe tường thuật, chắc nhiều bạn sẽ nghĩ cái gì mà lắm quy cách, rắc rối vậy. Một số môn sinh bên mình vẫn hay thường quên nghi thức này và thường bị mình phạt rất nặng. Liệu có ai thực sự hiểu rõ ẩn ý sau đó?

Cái cúi chào thể hiện sự tôn trọng người sáng lập ra môn võ, tôn trọng không gian tập, Huấn luyện viên, đồng môn và cả chính bản thân bạn. Bạn có để ý khi bạn vào lớp trễ phải thực hiện trình tự chào như mình đã mô tả ở trên? Đi học về là chào ông bà, cha mẹ, anh chị. Ở đây là sự nhắc nhở những quy tắc mà ta đã được học từ thuở bé nhưng sau thời gian vô tình quên lãng. Cúi chào không có nghĩa là bạn thua thiệt ai đó mà nó thể hiện thiện chí của bạn. Theo tháp nhu cầu của Maslow, nhu cầu đứng thứ nhì của con người là được tôn trọng. Người nhận cái chào của bạn sẽ rất vui và nhiệt tình chỉ dẫn bạn. Là lời cảm ơn, thể hiện sự trân trọng những gì ta được nhận. Sự tương tác giữa người và người sẽ cởi mở và thân thiện hơn. Đó gọi là tinh thần thượng võ.

Bài học về sự cúi chào không chỉ gói gọn ở gia đình, đạo đường mà còn cần áp dụng ra cả xã hội. Mỗi con người đều có cái tôi, những mâu thuẫn thậm chí những xô xát đã xảy ra khi chúng ta thường mặc nhiên yêu cầu người khác tôn trọng mình. Mọi người đều bình đẳng như nhau nên hãy học cách tôn trọng người khác trước khi muốn người khác tôn trọng mình.

Để nhận được sự tôn trọng, đầu tiên bạn hãy học cách cúi chào bạn nhé!

Đôi điều về tác giả

Nhi hiện đang theo học và hỗ trợ giảng dạy cho CLB Aikido Bình Thạnh.

CLB Aikido Bình Thạnh
CLB Aikido Bình Thạnh

Địa chỉ: TRUNG TÂM TDTT QUẬN BÌNH THẠNH, Số 08 Phan Đăng Lưu, Phường 14, Quận Bình Thạnh, Tp.Hồ Chí Minh

Lịch tập luyện: Sáng 2 – 4 – 6: 5h30 – 7h00 Chiều + tối: 3 – 5 – 7: 17h00 – 18h45 ; 19h00 – 20h30

Thông tin liên hệ:  Huấn luyện viên: Cô Huỳnh Thị Phượng Hoàng  Điện thoại: 0913 123 207 Các bạn có thể tham khảo các bài viết khác của Nhi qua trang blog: nhiha.top

Sài Gòn, 28/06/2016, Tác giả Nhi Hà

Quảng cáo

7 giai đoạn tâm lý của những tên sát nhân hàng loạt

FBI luôn đưa ra những tình huống khó hiểu mà không phải ai trên thế giới cũng dễ dàng giải đáp để khảo sát khả năng nhận diện tâm lý những người có xu hướng phạm tội.

Theo nhà tâm thần học Joel Norris, tội phạm giết người thường trải qua 7 giai đoạn tâm lý từ săn mồi, nhử mồi… đến gây án và bị trầm cảm. Kết luận được Norris đúc kết sau khi làm việc cho đội bào chữa của một số kẻ sát nhân hàng loạt tại bang Georgia (Mỹ) và thực hiện 500 cuộc phỏng vấn với những kẻ này.

7 giai đoạn tâm lý của những tên sát nhân hàng loạt:

1. Thay đổi tính cách

Kẻ giết người bắt đầu thay đổi tính cách và tránh né các tương tác xã hội. Tuy nhiên, những thay đổi này không thể hiện ra ngoài và khó bị người xung quanh phát giác. Dần dần, trong đầu kẻ giết người thường diễn ra các cảnh tượng hư cấu có tính chất bạo lực hoặc gợi dục. Nguồn gốc cảnh tượng này có thể xuất phát từ những gì phải trải qua khi còn nhỏ.

Giai đoạn này kéo dài khác nhau, có thể được tính bằng phút song cũng có khi tính bằng năm. Chúng có thể cố dùng thuốc hoặc rượu để dập tắt các ý nghĩ hư cấu trong đầu nhưng thường không thành công và gây án.

2. Săn mồi

Chúng cố gắng tìm kiếm nạn nhân trong những khu vực cho là “vùng thoải mái”. Giai đoạn này có thể kéo dài nhiều ngày hoặc nhiều tháng cho tới khi sát nhân tìm được “con mồi” và đã nắm được thông tin như thói quen, lối sống, hoạt động hàng ngày…

3. Nhử mồi

Chúng cố gắng chiếm được sự tin tưởng của nạn nhân để nhử họ vào bẫy, thông qua những câu chuyện thân thiện, lời khen, lời hứa hẹn, quà tặng,… hoặc những hành động khác. Ví dụ, Ted Bundy, kẻ thú nhận giết 30 thiếu nữ tại Mỹ trong thập niên 1970, thường giả vờ bị gãy tay để có cớ nhờ nạn nhân nhặt hộ sách hoặc khiêng giúp đồ ra xe.

Theo Norris, giai đoạn này chỉ xuất hiện ở dạng “sát nhân ngăn nắp”, tức những kẻ gây án theo tuần tự từng bước. Nếu không chiếm được lòng tin của đối phương, sát nhân rất có thể sẽ bỏ qua và tìm con mồi khác.

4. Bắt cóc

Khi chiếm được lòng tin của nạn nhân, sát nhân mới lộ rõ bộ mặt thật. Ví dụ, một số cô gái may mắn thoát khỏi tay của Ted Bundy cho biết hắn không bao giờ thể hiện điều gì bất thường cho tới khoảnh khắc tấn công.

Quá trình bắt giữ có thể diễn ra mau gọn như tra còng vào cổ tay hoặc đánh nạn nhân bất tỉnh. Một số sát nhân có thể kéo con mồi vào chiếc xe không có tay nắm để ngăn chạy thoát. Chúng sau đó đưa nạn nhân tới nơi vắng vẻ và chuẩn bị cho giai đoạn tiếp theo.

5. Ra tay

Norris cho rằng giai đoạn giết người thường đại diện cho tuổi ấu thơ bất hạnh của kẻ sát nhân. “Kẻ sát nhân không ngăn nắp” thường dùng đòn tấn công nhanh để gây án ngay lập tức, trong khi “sát nhân ngăn nắp” có thể tra tấn nạn nhân trước.

6. Lưu giữ

Sau khi gây án, chúng có thể giữ lại đồ cá nhân của nạn nhân (ví dụ quần áo) và lưu trữ các mẩu tin trên báo giấy nói về vụ án. Một số kẻ khác còn chụp ảnh hoặc quay lại quá trình gây án.

7. Trầm cảm

Đây là bước cuối cùng trước khi vòng quay trở lại giai đoạn thứ nhất. Chúng rơi vào trạng thái trầm cảm vì nhận ra rằng quá trình gây án không thể thỏa mãn được ý nghĩ bạo lực trong đầu, thậm chí có thể dẫn tới việc sát nhân cố tự sát.

Nguồn travelmag.vn

Quảng cáo

Nhớ làm đúng Google Seo Web lên TOP 1 không có gì là khó

0
Seo Web lên TOP 1 không có gì là khó khăn
Seo Web lên TOP 1 không có gì là khó khăn

Google luôn thay đổi các thuật toán của mình để đưa ra các kết quả tìm kiếm ngày càng thông minh hơn và “khắt khe” hơn đối với những nhà SEOer website. Dưới đây là 8 thuật toán quan trong của Google mà chúng ta có lẽ phải biết để làm đúng và không vi phạm các quy tắc của Google. Đưa site của mình lên TOP 1 của Google sẽ không còn khó khăn nhưng bạn nên nhớ rằng “Sân chơi nào cũng phải có luật chơi của nó”.

Thuật toán của Google là gì?

Các bạn biết đấy, Google thường xuyên phát hành các thuật toán mới, chỉ tính riêng năm 2012 Google đã có 665 bản update. Đương nhiên, nhiệm vụ của mỗi lần update là cải thiện kết quả cho mỗi lần truy vấn để đáp ứng được múc địch tìm kiếm của người dùng. Vậy là Google nâng cấp các thuật toán để tìm kiếm chính xác hơn.

Song song đó các thuật toán cũng kiêm luôn việc trừng phát các website kém chất lượng, spam không tuân theo các nguyên tắc chung hay nói cách khác là dùng tiểu xảo để lên TOP tìm kiếm. Hành động mạnh tay này của Google thật thật đáng hoan nghênh.

1. Có “Đầu vào” thì mới có “Đầu ra”

Để có thể đưa ra các màn hình kết quả từ bộ máy tìm kiếm SERPs thì việc điều đầu tiên của Google sẽ phải index được dữ liệu từ phía trăm ngàn triệu website. Công việc tưởng chừng như chỉ cần có “Đầu vào” là sẽ có “Đầu ra” này tưởng như đơn giản nhưng thực ra lại phức tạp hơn chúng ta nghĩ. Thế mới là Google Index.

Việc index được tiến hành từ hàng chục các trung tâm dữ liệu trên toàn thế giới của Google, và từng trung tâm dữ liệu này được coi như một thành phố dữ liệu thu nhỏ, liên kêt bởi một trong những hệ thống toàn cầu tân tiến nhất.

Quá trình index được minh họa như sau:

Quá trình index được minh họa như sau
Googlebot (google bot) là con bọ của Google, còn được gọi là spider. Googlebot dùng để thu thập thông tin website, giúp Google cập nhật thêm những chỉ mục mới và website mới.

Trên thế giới có hàng triệu website liên quan về những lĩnh vực và ngành nghề khác nhau. Vậy để xử lí và tính toán hết tất cả các thông tin thì Google cần phải có thuật toán thông minh.

Những thuật toán được điều chỉnh sao cho kết quả cho mỗi từ khóa tìm kiếm là khác nhau. Dù chỉ là thay đổi nhỏ như lỗi đánh máy, trật tự sắp xếp các từ… thì các thuật toán này cũng đưa đến người dùng đến những kết quả khác nhau.

Tuy nhiên, Index không phải là Đầu vào quan trọng nhất của thuật toán, chúng ta phải hiểu là nó còn có rất nhiều đầu vào liên quan khác. Như mô tả bằng hình bên dưới:

Index không phải là đầu vào quan trọng nhất của thuật toán
Index không phải là đầu vào quan trọng nhất của thuật toán

Ngoài Index ra chúng ta còn có các hệ thống liên kết (links), dữ liệu địa phương, mạng xã hội hay các yếu tố khác mà Google thu thập được từ website trên thế giới.

2. Xếp hạng và tái xếp hạng

Chúng ta sẽ luôn quan tâm đến xếp hạng website của mình trên kết quả tìm kiếm của Google. Đương nhiên xếp hạng này không phải lúc nào cũng là cố định, nó có cơ chế tái xếp hạng. Cho nên cuộc rượt đuổi về thứ hạng cao trong tìm kiếm không bao giờ dừng lại. Website nào làm tốt hơn, “chuẩn” Google hơn sẽ có thứ hạng cao trong kết quả tìm kiếm trả về.

Đầu tiên, Google sẽ dựa vào thuật toán tìm kiếm để “nhặt ra” những trang chứa nội dung phù hợp. Sau đó sắp xếp các trang này theo thứ tự dựa vào sự tương thích của trang như: có thể có nhiều links, có google+, có chỉ số giá trị (citation) trên thế giới. Và nếu như thấy trang không phù hợp với câu truy vấn, nó sẽ không được xuất hiện trong kết quả tìm kiếm đó. Đây là kết quả xếp hạng tự nhiên đối với những trang tương thích.

Bước tiếp theo, là bước rất quan trọng Google sẽ tái cơ cấu lại kết quả xếp hạng dựa vào các thuật toán cao cấp. Nó bao gồm rất nhiều yếu tố như: tin tức, hình ảnh, video, các links, địa phương… bla bla có trong trang để Google đánh giá và tái xếp hạng thứ hạng trong kết quả tìm kiếm. Nói tóm lại là ở bước này nó sẽ không còn tự nhiên nữa, Google sẽ bắt đầu chạy các thuật toán cao cấp hơn để tìm ra, tính toán đưa ra các kết quả tìm kiếm chính xác nhất và thứ hạng sắp xếp trong kết quả tìm kiếm sẽ bắt đầu thay đổi lớn từ đây.

Xếp hạng và tái xếp hạng
Google sẽ tái cơ cấu lại kết quả xếp hạng tìm kiếm

3. Có những “Đầu vào” đặc biệt, các hình phạt và disavow

Manual penalty là một đầu vào đặc biệt (special inputs). Google áp dụng hình phạt thủ công cho site, việc này được đánh dấu ở đâu đó và đưa vào hệ thống, và cũng là một phần của index. Nhưng vì quá trình này được thực hiện thủ công, liên quan đến Google Webmaster Tools, nên chúng ta nên xem nó là một khái niệm riêng biệt.

Tương tự, công cụ Disavow cũng là một đầu vào riêng biệt, được quản lý bởi các nhà quản trị mạng, dữ liệu này được xử lý định kỳ và được đưa trở lại các thuật toán. Còn có nhiều đầu vào tác động đến các thành phần khác của hệ thống, ví dụ XML sitemaps trong Google Webmaster Tools giúp việc định hình quá trình index. 

các hình phạt và disavow
các hình phạt và disavow

Các thuật toán cốt lõi của Google cập nhật 2020

Google thường xuyên phát hành các thuật toán mới, nhiệm vụ của nó là cải thiện kết quả cho mỗi truy vấn đáp ứng được ý định tìm kiếm của người dùng, và trừng phạt các website kém chất lượng, spam không tuân theo các nguyên tắc, chất lượng. Dưới đây là 8 thuật toán cốt lõi của Google được cập nhật mới nhất năm 2020.

Các thuật toán cốt lõi của Google mới nhất 2020
8 thuật toán cốt lõi của Google mới nhất 2020

1. Thuật toán Google Panda

Ra mắt: ngày 24 tháng 2 năm 2011

Cập nhật: Hàng tháng 

Mục đích: Giảm xếp hạng của các trang web nội dung chất lượng thấp

Cập nhật Google Panda trong SEO

Cập nhật Google Panda áp đặt hình phạt đối với các trang web có nội dung chất lượng thấp, spam hoặc mỏng. Hơn nữa, các trang web với Keyword Stuffing (nhồi nhét từ khóa), Trải nghiệm người dùng kém và đạo văn phải trả giá. 

Thuật toán mã hóa Panda Panda thường trừng phạt để làm gì?

  • Nội dung không nguyên bản (đạo văn);
  • Nội dung trùng lặp trên các trang khác nhau của cùng một trang web;
  • Nội dung tự động;
  • Nội dung tràn ngập từ khóa;
  • Nội dung spam được tạo bởi người dùng (ví dụ: bình luận);
  • Thin Content – Số lượng nội dung không đủ trên một trang;
  • Trải nghiệm người dùng không tốt. 

Những điều cần tránh:

  1. Nội dung trùng lặp (sử dụng Copyscape)
  2. Đạo văn
  3. Nhồi nhét từ khóa

Cách để tránh hình phạt từ Panda

  • Kiểm tra các trang web có tính duy nhất, kiểm tra định kỳ nội dung của bạn
  • Kiểm tra sự trùng lặp nội dung, Title hay thẻ H1

Một số yếu tố nội dung dưới đây có thể bị thuật Panda đánh dấu:

  • Nội dung sơ sài: Các trang web với nội dung không phù hợp, thiếu xác đáng, ít thông tin, ít nguồn.
  • Nội dung sao chép: Các nội dung bị sao chép trên Internet nhiều hơn một lần, hoặc bị lặp lại trên website của bạn quá nhiều lần (ví dụ như trang web bán hàng chứa các trang có mô tả các sản phẩm giống nhau, chỉ khác biệt về giá cả).
  • Nội dung chất lượng kém: Các website có nội dung không giá trị cho người dùng bởi thiếu hụt thông tin sâu.
  • Trang web thiếu uy tín, thẩm quyền: Một số trang web bị đánh dấu do nguồn thông tin không rõ ràng.
  • Content farming: Trang web chứa nhiều nội dung tổng hợp, sao chép từ nhiều website khác chỉ với mục đích tăng thứ hạng trang.
  • Nội dung tự tạo chất lượng thấp: Các nội dung mắc lỗi chính tả, quá ngắn.
  • Tỷ lệ nội dung quảng cáo lớn: Các trang web được tạo nên nhằm chạy quảng cáo với tỷ lệ nội dung quảng cáo lớn hơn nội dung thường.
  • Website bị chặn bởi người dùng: Một số trang bị chặn trực tiếp bởi người dùng trên công cụ tìm kiếm bằng công cụ Chrome browser extension cho thấy trang có nội dung kém, spam.
  • Nội dung không khớp với từ khóa tìm kiếm: Nội dung không phù hợp, không đáp ứng được nhu cầu tìm kiếm của người dùng.

2. Thuật toán Google Penguin

Hay còn gọi là cập nhật chim cánh cụt của Google. Tương tự như Panda, Penguin hướng tới loại trử các website kém chất lượng, ưu tiên website tốt bằng việc rà soát các đường link dẫn và keyword sử dụng.

Ra mắt: ngày 24 tháng 4 năm 2012

Cập nhật:  hiện đang cập nhật trong thời gian thực

Mục đích: Hạ xếp hạng các trang web chứa hồ sơ có liên kết spam và các trang web thao túng trọng lượng liên kết

Cập nhật Google Penguin máy cắt chừng phạt những site:

  1. Link schemes: tham gia mạng liên kết nhằm thao túng xếp hạng
    1. Mua bán liên kết
    2. Trao đổi liên kết quá mức
    3. Sử dụng chương trình tự động tạo liên kết
    4. Vv tham khảo những link mà Google coi là không tự nhiên tại: Google quality guidelines
  2. Nhồi nhét từ khóa
  3. Tối ưu quá đà
  4. Liên kết không tự nhiên

Google Penguin xử lý chất lượng liên kết và xử phạt những trang web mua backlink từ các trang của bên thứ ba. Ngoài ra, các trang web không theo hướng dẫn của Google Webmaster phải đối mặt với các hình phạt.

Làm thế nào để tránh hình phạt từ Penguin?

  • Theo dõi những thay đổi trong hồ sơ backlinks, định kỳ ít nhất 1 lần/tuần
  • Loại bỏ và từ chối các liên kết độc hại

Để có hồ sơ backlink tốt, việc từ chối nhận backlink xấu không mong muốn có thể do đối thủ tặng cả một tấn backlink có hại, Google cung cấp công cụ từ chối liên kết (Disavow links) tại: https://www.google.com/webmasters/tools/disavow-links-main

Với sự trợ giúp của công cụ này, chúng tôi có thể xóa bất kỳ liên kết nào gây hại cho trang web của chúng tôi và thông báo cho google không xem xét liên kết từ liên kết cụ thể đó.

2 nhân tố Penguin nhắm đến bao gồm:

  • Link dẫn: Thao túng, mua bán backlink từ những website kém uy tín, tạo nên sự phổ biến “ảo” nhằm nâng cao giá trị website, qua mắt Google đẩy thứ hạng web sẽ bị Penguin “sờ gáy”. Các đường link dẫn thiếu tự nhiên, có nội dung không khớp với mô tả đường dẫn từ bên thứ ba có thể bị Penguin đánh dấu spam.
  • Lạm dụng từ khoá: Sử dụng số lượng lớn từ khóa hay lặp đi lặp lại từ khoá nhằm thao túng xếp hạng tìm kiếm sẽ có thể bị Penguin để ý.

3. Thuật toán Google HummingBird (Chim ruồi)

Ra mắt: ngày 30 tháng 8 năm 2013 

Cập nhật: chưa rõ

Mục đích: Để cung cấp kết quả phù hợp hơn, dựa trên thành phần ngữ nghĩa của yêu cầu tìm kiếm Trí tuệ nhân tạo trong Google Hummingbird. Học máy trong Google Hummingbird.

Google HummingBird được ra mắt để xử lý Từ khóa đuôi dài dựa trên ý định của người dùng. Nó lấy ra những kết quả tìm kiếm phù hợp với mục đích của người tìm kiếm, thay vì phù hợp các từ khóa trong truy vấn.

4. Thuật toán Google Pigeon

Ra mắt: ngày 24 tháng 7 năm 2014 

Cập nhật: ngày 22 tháng 12 năm 2014 

Mục đích: Để cung cấp kết quả tìm kiếm địa phương phù hợp hơn

Cập nhật chim bồ câu của Google tập trung vào khoảng cách và khoảng cách gần của người dùng.

Google Pigeon Update cung cấp kết quả chính xác, phù hợp hơn dựa trên vị trí của người dùng và các yếu tố địa lý khác. Do SEO địa phương này trở nên nổi bật và Google Doanh nghiệp trở thành một thành phần thiết yếu cho thấy các thực thể trên bản đồ dựa trên ba yếu tố.

  1. Sự liên quan
  2. Khoảng cách tìm kiếm
  3. Nổi tiếng(Prominence)

 Vì vậy, NAP (Tên, địa chỉ và số điện thoại) Tính nhất quán là yếu tố chính để có lợi thế hơn đối thủ của bạn.

Một số cập nhật của Pigeon có thể kể đến như:

  • Kết nối sâu hơn thuật toán tìm kiếm địa phương với thuật toán website truyền thông nhằm nâng cao khả năng tìm kiếm và hiển thị. Điều này thúc đẩy doanh nghiệp địa phương tối ưu trang web, xây dựng giao diện hiển thị rõ ràng nhằm cạnh tranh xếp hạng.
  • Phạm vi, bán kính tìm kiếm được thu hẹp ưu tiên những địa điểm kinh doanh gần nhất. Bản đồ định vị thu hẹp khiến không ít doanh nghiệp bị đẩy ra ngoài vùng gợi ý.
  • Từ hiển thị 7 kết quả tìm kiếm, hiện tại Google chỉ cho hiển thị 3 kết quả địa điểm.

5. Thuật toán Mobile Friendly

Ra mắt: ngày 21 tháng 4 năm 2015

Cập nhật: chưa rõ

Mục đích: Để tăng hạng các trang được tối ưu hóa cho thiết bị di động trong kết quả tìm kiếm được gửi đến thiết bị di động.

Cập nhật thân thiện với thiết bị di động của Google hay còn gọi là Mobilegeddon đảm bảo rằng các trang web được tối ưu hóa cho thiết bị di động được coi trọng trong SERPs (Trang kết quả của công cụ tìm kiếm). Vì vậy, tính thân thiện với thiết bị di động đã trở thành một đặc điểm thiết yếu và Dự án tăng tốc độ mobile (AMP) được Google cung cấp để tăng cường tốc độ tải trang trên đi động.

Thuật toán này được Google đưa ra nhằm đáp ứng nhu cầu của lượng lớn người dùng di động tra cứu từ khoá. Bên cạnh chất lượng nội dung, tốc độ tải trang trên thiết bị di động cũng đóng vai trò lớn trong xếp hạng. Điều này thúc đẩy những nhà xây dựng web tối ưu website, tích hợp đa thiết bị, chạy tốt trên các nền tảng di dộng.

6. Thuật toán Google RankBrain

Ra mắt: ngày 26 tháng 10 năm 2015

Mục đích: Cung cấp cho người dùng kết quả tốt nhất dựa trên cả mức độ phù hợp và học máy Trí tuệ nhân tạo Google Rankbrain.

RankBrain là thuật toán Trí tuệ nhân tạo Machine Learning giúp cải thiện kết quả tìm kiếm từ khóa dựa trên ý định của người dùng. Machine Learning là một quá trình mà máy tính dạy cách tự thực hiện một nhiệm vụ cụ thể, thay vì được dạy bởi con người. Thông qua AL, công cụ tìm kiếm hoạt động thông minh như con người bằng cách hiểu các vấn đề trong thế giới thực và giải quyết nó.

Sử dụng nguyên tắc trên, RankBrain diễn giải người dùng từ khóa tìm kiếm không khớp với từ chính xác mà họ đang tìm kiếm.

Thuật toán RankBrain là một thuật toán học máy phức tạp, chúng ngày càng cải tiến, đưa ra những kết quả phù hợp hơn bằng một quá trình lâu dài học hỏi dữ liệu từ người dùng và từ khoá.

Để nâng cao thứ hạng trang, bạn cần nắm rõ và lưu ý những vấn đề sau:

  • Từng từ khóa khác nhau sẽ có những yêu cầu khác nhau trong việc ưu tiên xếp hạng, với những từ khóa liên quan đến tra cứu kiến thức, nội dung cần phải sâu, có nguồn chính thống, với những từ khóa như cập nhật thiên tai thì cần mới, xác thực.
  • Uy tín của website cũng là một trong những nhân tố ảnh hưởng đến xếp hạng, hãy xây dựng uy tín một cách tự nhiên, chú trọng vào đào sâu chủ đề chính bao phủ toàn bộ web nhằm phục vụ người dùng tìm kiếm từ khóa đó.
  • Sử dụng đa dạng từ khóa cho nội dung thay vì SEO truyền thống sử dụng lặp lại một từ khóa nhất định với nhiều biến thể tương đồng.

7. Thuật toán Google Possum

Ra mắt: ngày 1 tháng 9 năm 2016 

Cập nhật: chưa rõ

Mục đích: Để cung cấp kết quả tìm kiếm địa phương tốt hơn, phù hợp hơn dựa trên vị trí của người dùng.

Google Possum đã giới thiệu nhiều thay đổi khác nhau liên quan đến SEO địa phương.

  1. Vị trí thực tế của Người tìm kiếm: Doanh nghiệp gần khoảng cách của người tìm kiếm có nhiều khả năng xuất hiện trong SERPs.
  2. Các doanh nghiệp được đặt tại vùng ngoại ô của một thành phố cụ thể, bây giờ xuất hiện trong kết quả thành phố mục tiêu và những doanh nghiệp có nhiều Danh sách Google My Business có cùng NAP đã được xếp hạng. 

8. Thuật toán Google Fred

Ra mắt: ngày 8 tháng 3 năm 2017 

Cập nhật: chưa rõ

Mục đích: Lọc các trang chất lượng thấp khỏi kết quả tìm kiếm có mục tiêu chính để kiếm lợi từ quảng cáo và liên kết đến các trang web khác

Thuật toán Google Fred được thiết kế nhắm đến chiến thuật SEO blackhat. Thuật toán rà soát các website chứa lượng lớn quảng cáo, nội dung kém chất lượng không đem lại giá trị cho người dùng. Các trang web với mục đích chính là kiếm tiền thay vì đưa đến nhiều thông tin hữu ích cho người dùng có thể bị liệt vào “sổ đen”.

Một số nhân tố có thể ảnh hưởng xấu đến website:

  • Hiển thị quảng cáo sai lệch hoặc lừa đảo
  • Hiển thị quảng cáo có khả năng đánh lừa người dùng click chuột
  • Bao phủ bởi những link dẫn, quảng cáo, nội dung kém chất lượng
  • Gặp vấn đề về trải nghiệm người dùng
  • Tích hợp di động kém
  • Nội dung trang sơ sài
  • Lạm dụng quảng cáo

Kết

Như vậy là chúng ta đã nghiên cứu xong các thuật toán phức tạp của Google trong quá trình làm việc để xếp hạng các kết quả tìm kiếm. 8 thuật toán trên không phải là tất cả, nhưng nó đại diện cho 1 bộ máy khủng khiếp mang tên Google và nó hàng ngày, hàng tháng được cập nhật thông minh hơn để tạo ra một sân chơi bình đẳng – công bằng.

Nói các khác là thuật toán của Google sẽ thưởng phạt nghiêm minh hơn rất nhiều. Vì vậy hãy tử tế hơn với nội dung website của bạn và điều quan trọng nhất của người làm SEO là biết đầu vào của mình như thế nào để Google Index một cách thoải mái nhất.

Chúc các bạn thành công!

Quảng cáo

Kết nối máy tính với điện thoại qua Wireless Debugging

Kết nối máy tính với điện thoại qua Wireless Debugging
Kết nối máy tính với điện thoại qua Wireless Debugging

Kết nối máy tính với điện thoại qua Wireless Debugging chạy ADB Commands không cần dây cáp kết nối USB. Giờ đây dân lập trình không cần phải dùng tới cáp để kết nối thiết bị với máy tính nữa, cứ qua wireless là được rồi.

Ngày trước, mình muốn chạy thử ứng dụng lên điện thoại để kiểm tra các tính năng hoạt động đã lập trình đúng chưa, nên mình phải luôn mang theo 1 sợi dây cáp để kết nối thiết bị với máy tính. Điều này thật sự phiền phức vì thế giới bây giờ đâu phải cái gì cũng cần kết nối bằng dây dợ lằng nhằng, Bluetooth hay Wireless đâu rồi? Sao mình lại không thử sử dụng chúng nó nhỉ? Đơn giản thôi.

Các bước như sau:

1. Bật tính năng Wireless Debugging

Cũng giống như trước đây, bạn đã bật chức năng USB debugging trong Developer options Nhưng vào kỷ nguyên tên lửa này mọi thứ giao tiếp, làm việc với nhau qua dạng sóng hết rồi. Các bạn sẽ không cần phải bật USB debugging nữa, mà có thêm lựa chọn mới cho công việc của bạn.

Bây giờ bạn hãy kiểm tra xem điện thoại của bạn có tính năng Wireless debugging thì bật nó lên nhé. Như hình dưới đây:

Bật tính năng Wireless Debugging
Tắt chức năg USB debugging đi. Bật tính năng Wireless Debugging lên nào

2. Tải về Platform-Tools

Đối với những bạn làm Lập trình viên thì không còn xa lạ gì với cụm từ Platform tools nữa, còn đối với ai Lơ-tơ-mơ như mình thì Platform tools của Google là công cụ để mình giao tiếp máy tính với điện thoại của mình. Các bạn có thể tải xuống công cụ mới nhất này ở các link dưới đây.

Tải và lưu nó về một chỗ trên máy tính để lát nữa mình làm việc tiếp với nó nhé.

Tải xuống Google’s Platform-Tools: Windows | Mac | Linux

3. Kết nối Wireless Debugging

Để bắt đầu “gỡ rối” debugging cho điện thoại của bạn nào. Hãy bật Wireless debugging lên và bấm vào nó, hiện lên màn hình như dưới đây:

Step 1: Lấy thông tin kết nối

Kết nối Wireless Debugging
Thông tin IP và Port để kết nối

Ở màn hình trên, các bạn sẽ thấy 2 thông tin quan trọng để kết nối khi chọn chế độ “Pair device with pairing code“, đó là:

  1. Wifi pairing code:
    • ví dụ: 669067
  2. IP address & Port:
    • ví dụ: [IP address]192.168.1.61:[Port]40901

Step 2: Sử dụng Platform Tools

Sau khi đã có các thông tin kết nối cần thiết, bây giờ chúng ta sẽ sử dụng tới công cụ Platform tools đã tải về. Bây giờ sẽ khó hơn một chút, chúng ta sẽ phải sử dụng tới CMD của window, hay Terminal của Mac để kết nối.

– Với Window, các bạn khởi động cmd như sau. Mở thư mục Platform Tools đã lưu ở máy, sau đó gõ chữ “cmd” trên thanh địa chỉ của Window và bấm Enter, một công cụ cmd mới được mở ra và cd tới thư mục Platform Tools cho bạn.

Với Window, các bạn khởi động cmd như sau
Mở Platform Tools trên Window cực đơn giản

– Với Mac hay Linux bạn chỉ cần gõ cd rồi kéo thả thư mục Platform Tools vô Terminal xong Enter là được rồi:

Mac hay Linux bạn chỉ cần kéo thả thư mục Platform Tools vô Terminal
sử dụng Platform Tools trên Mac hay Linux

– Gõ lệnh sau trên cmd để kết nối máy tính với điện thoại:

adb pair 192.168.1.61:40901

– Hoặc trên Mac hay Linux:

./adb pair 192.168.1.61:40901

– Dùng 6 số OTP trên để truy cập:

Enter pairing code: 669067

Như hình dưới đây:

Gõ lệnh sau trên cmd để kết nối máy tính với điện thoại
Gõ lệnh sau trên cmd để kết nối máy tính với điện thoại
Kết nối Wireless Debugging thành công
Kết nối Wireless Debugging thành công

Kết

Như vậy, để làm việc với các thiết bị điện thoại có tích hợp công nghệ Wireless debugging sẵn, các bạn sẽ cảm thấy thoải mái hơn khi không cần phải dùng dây cáp USB để cắm kết nối nữa. Gọn nhẹ hơn nhiều với Wireless Debugging nhé.

Chúc các bạn thành công!

Quảng cáo

Quảng cáo

0Thành viênThích
0Người theo dõiTheo dõi
66Người theo dõiĐăng Ký

Bài viết gần đây

Quảng cáo

Chú ý

Anh em chuẩn bị cài đặt iOS 14 chưa?

0
iOS 14 đã được giới thiệu trong sự kiện WWDC 2020, bắt đầu vào ngày 22/06 năm nay, hội nghị sẽ được tổ chức trực tuyến lần đầu tiên. Giới chuyên gia dự đoán sự kiện này vẫn sẽ bao gồm bài phát biểu thường niên, khởi động sự kiện cùng với tất cả các thông báo cập nhật phần mềm lớn khác.

Đội “nón giữ khoảng cách” khi uống cafe ở Đức

0
Nước Đức hiện tại đang dần hồi sinh sau dịch Covid-19, để ăn mừng sự kiện này bạn cần "Đội "nón giữ khoảng cách" khi muốn uống cafe của tiệm này ở Đức đấy nhé!

Đại dịch Covid-19: số ca nhiễm vẫn tăng chóng mặt tại...

0
Trung tâm kiểm soát và phòng ngừa dịch bệnh Mỹ (CDC) hôm 13.5 cho biết nước này ghi nhận 1.390.250 trường hợp nhiễm virus corona chủng mới gây dịch Covid-19, tăng 21.467 trường hợp so với số lượng trước đó và cho biết số ca tử vong đã tăng thêm 1.426 người, lên tổng số 84.106.

Hóa ra lời khuyên rửa tay, đeo khẩu trang ngừa cúm...

0
Việc nhấn mạnh khuyến cáo rửa tay thường xuyên, tránh tụ tập đám đông và đeo mặt nạ cũng được đưa lên hàng loạt các tờ báo, áp phích thời bấy giờ.

Thế giới đón lễ Phục sinh kỳ lạ nhất từ trước...

0
Lễ Phục sinh năm 2020 không giống bất kỳ lễ Phục sinh những năm trước đây. Người dân không được tụ tập đông người hay thậm chí không được ra đường vì COVID-19.

Quảng cáo