Skip to content

Trên tay bàn phím Microsoft Sculpt Ergonomic – Tốt cho bàn tay của bạn

Chào mọi người, xin tự giới thiệu, mình là một lập trình viên vì vậy phải sử dụng bàn phím khá nhiều. Cách đây vài tháng do sử dụng màn hình rời nên mình tìm kiếm một bàn phím để hỗ trợ tốt hơn cho công việc. Mình thích sử dụng scissor-swtich hơn là mechanical-switch vì đã quen với laptop và không muốn làm ồn người khác lúc làm việc. Chợt nhớ đến khi xưa sử dụng bàn phím Microsoft “natural” ergonomic huyền thoại. Trên các trang đánh giá thì bàn phím Microsoft Sculpt Ergonomic thuộc trong một trong những bàn phím “công thái hoc” tốt nhất. Nên mình tìm mua để hỗ trợ thêm cho công việc. Tiếc rằng Microsoft không phân phối chính thức bàn phím này ở Việt Nam nên đành nhờ anh @tetepro đem về cho mình từ US.
DSC00236

1. Nhận xét bên ngoài:

Nhận xét đầu tiên của bàn phím là thiết kế nhìn rất ngầu và đẹp. So với các bàn phím Ergonomic khác thì Sculpt nhìn trông không kì dị, nhưng lại rất bắt mắt cuốn hút. Các bạn nữ trong công ty đều khen bàn phím đẹp. Thiết kế thanh thoát như vậy nhưng bàn phím khá nặng và đầm (842g), thiết kế như vậy khiến bàn phím khó bị xê dịch khi gõ hơn, nhưng điểm trừ là không cơ động vì khó bỏ chung balo với laptop.
attachFull3315110
Kiểu bàn phím Microsoft mình đã từng dùng, (hình lấy trên Internet)
DSC00238.jpg
Bàn phím đi kèm với 1 đế rời
DSC00240.jpg
Đến này giúp nâng độ cao của bàn phím lên thêm một chút nữa nếu các bạn muốn, dùng để điều chỉnh góc của bàn tay so với mặt bàn và bàn phím. Mình sẽ giải thích rõ hơn ở phần sau. Điều mình thích nhất ở đế này là các cục nam châm sẽ tự động hít vào bàn phím, để 1 phát là ăn ngay và rất chắc chắn.
Ngoài ra điểm mình thích về bàn phím nữa là phần kê tay. Nếu như các phiên bản cũ chỉ là phần nhựa bình thường. Sculpt Keyboard sử dụng một lớp bọc mềm, rờ vào rất sướng. Nếu các bạn từng dùng bàn phím cơ nhiều, sẽ thấy phụ kiện kê tay không thể thiếu để tay không bị mỏi. Miếng lót này rất mượt nên không tạo ma sát cho tay lúc di chuyển. Tuy nhiên điểm trừ như các bạn có thể thấy là nó rất dễ dính dơ. Mình không biết có rửa được hay không nhưng chắc mình sẽ không thử.

2. Trên tay lúc gõ:

 

Best practice:
Đây là tư thế 2 bàn tay khi gõ, theo trang http://thewirecutter.com/reviews/comfortable-ergo-keyboard/
thì đây là những tư thế tốt nhất cho cổ tay và ngón tay tránh hiện tượng mỏi, và các bệnh văn phòng liên quan đến tay.
[IMG]
[IMG]
Theo bài viết thì không có một thiết kế bàn phím nào được gọi là tốt nhất cho mọi người. Tuỳ theo cơ địa từng người mà sẽ tốt với một thiết kế riêng. Tuy nhiên việc tách bàn phím ra làm đôi rõ ràng sẽ giúp cổ tay chúng ta thẳng hơn, không bị căn và kéo lúc gõ giảm bớt hội chứng ống cổ tay với những người gõ nhiều.
Xin lỗi mấy bạn do mình phải dùng 1 tay để chụp hình nên không có ảnh khi cả 2 bàn tay trên phím được, nhưng sẽ có video clip lúc gõ phía sau.
DSC00251.jpg
Thêm một điểm mình thích ở bàn phím là có thể sử dụng lúc đeo đồng hồ, không hề bị vướng như các bàn phím khác, kể cả khi đã sử dụng miếng kê tay.
DSC00243.jpg
Tay phải cũng theo hướng tự nhiên chứ không bị uốn cong.
DSC00241.jpg
Chụp hướng ngang, tay thẳng và rất thoải mái.
DSC00247.jpg
So sánh với Apple Keyboard I
DSC00249.jpg
Cổ tay hơi nghiên nếu muốn để tay trên toàn bộ phím.
DSC00244.jpg
 Vì là bàn phím không dây nên có thể để trên đùi để gõ dễ dàng, khi làm việc mình không dùng chuột nên không bất tiện. Có một điểm dỡ là phím FN chức năng tăng giảm âm lượng cần phải dùng nút gạt phía trên chứ không phải phím FN
DSC00246.jpg
Receiver và Pin theo máy, Receiver có thể dấu dễ dàng phía trong, 2 cục pin mình xài hơn 2 tháng rồi vẫn thấy không có dấu hiệu hết. (1 ngày dùng hơn 10 tiếng nhé).
DSC00245.jpg
Bàn phím số rời, mình hầu như không dùng. Chị kế toán rất thích nhưng không cho được, vì dùng chung receiver. Mình chỉ mua bàn phím thường chứ không sử dụng chuột đi chung bộ bàn phím vì rất khi sử dụng.
DSC00253.jpg
Toàn bộ setup góc làm việc.
Có một điểm trừ của bàn phím và màn hình Dell 2515H đó là cổng USB phía sau, nếu chỉ sleep máy rồi gắn USB vào thì không sao, nhưng nếu tắt màn hình bật lại thì bàn phím không nhận được nữa, phải tháo receiver ra lắp vào lại. Hơi bất tiện vì mỗi ngày phải lắm 1 lần.
Khi sử dụng với MacOS, bàn phím làm việc rất tốt, các phím chức năng chạy bình thường. Phím Control rất to dễ bấm không sợ bị bấm hụt hay bấm nhầm. Thường trên bàn phím Mac mặc định các lập trình viên dùng vim phải Map phím Ctrl với phím khác như Caplock, Tab hoặc Fn.
3. Âm thanh lúc gõ:
 
Như mình nói lúc đầu, mình sợ ồn nên không muốn dùng bàn phím cơ. Lúc làm việc mình dùng vim IDE để code Python và hoàn toàn không dùng chuột, cho nên một bàn phím tốt và thoải mái giúp tăng hiệu suất rất nhiều. Theo mình để ý thì mình chỉ ssử dụng 8 ngón khi gõ máy (ngón út phải  và ngón cái trái mình không sử dụng). Khi gõ tiếng Việt được khoảng 120 kí tự/ phút, tiếng Anh hay code được 60 kí tự/ phút (không dùng code auto complete nhé). So sánh về tốc độ thì bàn phím Sculpt không giúp mình gõ nhanh thêm được chút nào hết. Nhưng độ sướng khi gõ thì tăng lên rất nhiều.
[MEDIA=youtube]qvyhFSbK-3E[/MEDIA]
4. Kết luận:
Nhiều bạn nói rằng bàn phím này sẽ khó làm quen. Đối với mình do từng sử dụng các đời bàn phím trước (cũng không dùng hơn 10 năm), sau khi quay lại thì không bỡ ngỡ, mất chừng 3 ngày để quen lại. Theo mình nghĩ đối với những người chưa dùng bàn phím kiểu này bao giờ, nhưng có thể gõ mà không nhìn bàn phím thì mất chừng 2 tuần để có thể bắt đầu sử dụng quen mà không bị nhầm phím.
Mình vẫn chuyển đổi sử dụng giữa bàn phím trong Macbook và Sculpt một cách bình thường mà không gặp khó khăn gì, kiểu như các bạn chạy xe số và xe tự động vậy, thao tác sẽ khác nhau một chút nhưng sẽ học được. Tuy nhiên bây giờ dùng bàn phím thường gõ thì đúng là cổ tay mình hơi khó chịu một chút và cảm giác bị căng.
Nhưng giá trị quan trọng nhất mang lại cho các bạn chính là sức khoẻ. Sẽ không nhận thấy ngay lúc này mà sau sẽ thấy dần dần. Một anh đồng nghiệp công ty mình đã bắt đầu cảm thấy mỏi cổ tay lúc làm việc, mình đang nói ảnh tập dùng thử cái này. Nếu ổn sẽ đề nghị công ty trang bị cho tất cả nhân viên.

Một vài đánh giá về hệ thống an ninh trong jurassic world 2015

Vì một vài trục trặc mình không coi rạp phim 4DX phim này được nên đành đợi bản HD. Sau đây không phải là một review phim mà là về hệ thống an ninh của công viên. Nói chung hệ thống này có vẻ ấn tượng hơn rất nhiều so với các phần trước, tuy nhiên mình nhận ra những sai lầm chết người trong hệ thống an ninh của hòn đảo Isla Nublar này khiến nguyên nhân dẫn đến thảm họa.

Chết vì thiếu hiểu biết.

Đây là ảnh đồ họa khu công viên khủng long.

j1

Theo thông tin từ www.jurassicworld.com

Công viên có sức chứa 23.000 người, với tiêu chí Safety first, và 150 giao thức an toàn để bảo vệ cả người và khủng long, thế nhưng khi thảm họa xảy ra thì chẳng thấy mấy giao thức hiệu quả.

Vấn đề sơ tán

Việc đầu tiên phải nghĩ đó là phương án cuối cùng, sơ tán mọi người ngay lập tức. Với lượng khách khổng lồ như vậy+ với số lượng nhân viên chắc phải lên tới 2 ngàn người. Thì không một phương tiện nào có thể vận chuyển sơ tán hiệu quả được ngoại trừ đã xây dựng thành công phương tiện Teleport. Ngay cả tàu sân bay, cũng chỉ có thể sơ tán được 5000 người. Vậy phải cần 5 chiếc như vậy để có thể chứa hết, và cần thời gian tối đa 30 phút cho việc này. Nói chung xét về sơ tán thì những người điều hành đã thành công khi tập trung tất cả các hành khách lại khu vực trung tâm ở Phase One. Cộng với thiết bị đeo tay như vé có thể giúp theo dõi dễ dàng hơn.

Tuy nhiên sơ tán là phải đến nơi an toàn, liệu khu vực trung tâm có an toàn hay không?

Screenshot from 2015-09-27 22:36:22

Khu vực sơ tán hoàn toàn ngoài trời, và khi bị tấn công bởi Pteranodon và Dimorphodon mọi người chạy toán loạn, ít nhất thì họ vẫn phải có một khu vực sơ tán trong nhà, nếu họ không tiên liệu trước điều này thì ít nhất cũng giới hạn người ở khu vực sơ tán. Sau đợt tấn công của các con khủng long có cánh, khu vực trung tâm vắng vẻ hẳn. Chắc mọi người đã biết sợ chui vô chỗ sơ tán an toàn. Tại sao không sơ tán vào khu vực này từ đầu ở Phase One?

Tiếp theo là protocol trong trường hợp Aviary containmnet breach, chỉ gọi thêm nhân viên Aviary xách súng ra bắn thì có vẻ như protocol này đã chấp nhận thiệt hại về người. Nhân viên phải đi lấy súng, đi nạp đạn tìm và diệt thì lúc đó chắc chết hơn cả trăm mạng rồi.

Screenshot from 2015-09-27 22:55:07

Đơn giản chỉ cần lắp 4 hệ thống CIWS ở 4 góc. Không cần 1 lượng lớn vũ khí cầm tay như vậy, đã có thể đủ tiêu diệt toàn bộ đám chim đó. Trong vòng chưa tới 1 phút khi tụi nó tiếp cận

CIWS

Nhưng có vẻ công nghệ lúc đó tiên tiến, chỉ cần trang bị hệ thống laser là đủ, đỡ ồn và thân thiện với môi trường hơn.

d3be3566a7694ca33330c77e926ef380

Asset containment

Screenshot from 2015-09-27 22:34:35

Như mọi người đã thấy xem qua, thì nhà của đám khủng long có cánh làm bằng kính rất sơ xài, trong khi độ nguy hiểm nó cao hơn nhiều so với con T Rex. Chỉ cần 1 con khủng long tông vào thì chắc 1 chiếc xe cũng tông vào được, các con chim đó đã thoát ra dễ dàng. Vì vậy việc trang bị hệ thống phòng thủ tự động như CIWS là cần thiết. ngoài ra cấu trúc của khung vòm phải thật vững chắc, có thể làm thêm các khung bằng sắt xung quanh và các cấu trúc tự hồi phục, tự vá được.

indominus-rex-attraction-box

Chỗ chứa Indominus Rex còn ác liệt hơn, mặc dù cảm thấy không an toàn và gia cố thêm một phần, có lẽ đang làm thêm vỏ bọc nhưng chắc chưa hoàn thiện xong, nhưng vẫn có một vài vấn đề về quy trình cho đối tượng đặc biệt nguy hiểm này.

  • Giám sát 24/24 lại nằm ở HQ mà không kết nối trực tiếp tại vị trí.
  • Không hề có camera giám sát và cảm biến ở các khu vực phía trên hàng rào.
  • Không hề có giao thức đưa người vào trong. Chẳng lẽ con khủng long trong đó sẽ không có người vào để bảo dưỡng hay làm gì đó sao?
  • Không hề có biện pháp an toàn thứ 2, đáng lẽ phải xây dựng từ đầu.
  • Không hề có cửa an toàn, và cửa chính có thể mở dễ dàng. Con người rất sợ chết, vì vậy phải tính tới chuyện sẽ có người mở từ trong ra (nếu không có làm điều khiển làm gì). Lúc đó có thể sổng ra ngoài. Cửa an toàn vừa đủ người vào là một lựa chọn hợp lý. Cửa chính chỉ mở được khi được cấp phép. Tránh tình trạng phá hoại.
  • Không hề có một vũ khí hoặc cách thức nào ngăn chặn tại chỗ khu vực đó nếu con vật bị sổng. Một cái lưới loại lớn với vật liệu siêu bền có thể giúp ngăn chặn và bắt con vật.

Hệ thống chủ động

Ngoài các bước bảo vệ thụ động, thì protocol cho việc bảo vệ chủ động để đóng cửa công viên và tiêu diệt tất cả mối đe dọa. Cả công viên chỉ có 1 chiếc trực thăng, với súng M134 nhưng có thể huy động thêm nhiều trực thăng cho việc này. Tại sao không sử dụng tất cả? Lỡ 1 chiếc trực thăng bị hư thì sao?

Ít nhất cũng nên trang bị một vài robot bảo vệ chiến đấu đủ sức để tiêu diệt 1 T Rex.

amp 2

Nhắc đến T Rex thì thấy việc mở cổng cho nó quá dễ dàng, nó lại có thể bò ra khu vực trung tâm và sơi tái cả trăm người. Việc áp dụng Robot để bảo vệ có thể giúp phản ứng với việc này khá nhanh.

Sơ sơ viết nhiêu đây thôi. Hôm nay trung thu ở nhà hơi rảnh. Chắc mình sẽ dịch sang tiếng Anh rồi nộp đơn cho vị trí an ninh của công ty  masraniglobal quá :))

http://www.masraniglobal.com/careers/index.html

Lỗ hổng bảo mật trong hệ thống của Mobifone khiến khách hàng có bị tự đăng kí dịch vụ MobileTV ngoài ý muốn

Cảnh báo: bài viết có sử dụng những API thật của Mobifone để minh họa. Nếu người xem sử dụng dịch vụ Internet 3G của Mobifone để đọc bài này có thể đã bị đăng kí dịch vụ nếu lỗ hổng bảo mật vẫn chưa được sửa chữa, hãy kiểm tra tin nhắn và hủy dịch vụ được tự động đăng kí nếu có.
Bài viết sử dụng giấy phép Creative Common, có thể được chia sẽ sửa đổivà dùng mục đích thương mại. Tuy nhiên lưu ý gỡ bỏ các API khi đăng bài để tránh gây ảnh hưởng đến người đọc. 

This blog post content vulnerable API request. Becareful when reading this post with Mobifone 3G Internet connection.

=======================================================================

Thông tin về lỗi bảo mật:

Loại lỗ hổng:     Cross-site request forgery

Khả năng khai thác: Rất dễ

Hậu quả: Người dùng bị đăng kí dịch vụ cộng thêm ngoài ý muốn gây mất tiền hàng tháng và không có thể không hay biết.

Cách tránh từ người dùng: Dùng các phần mềm chặn gửi yêu cầu đến tên miền tv.mobifone.com.vn.  Kiểm tra tin nhắn từ điện thoại để xem có được tự động đăng kí hay không. Soạn tin nhắn nội dung      GTGT       gửi 901 để xem các dịch vụ đang sử dụng.

Cách khắc phục lỗi của hệ thống: Thay đổi các đầu API đăng kí từ HTTP GET sang HTTP POST kết hợp với Synchronizer token pattern.

Mô tả chi tiết về lỗi bảo mật:

Lỗ hổng ở trang đăng kí dịch vụ MobileTV của Mobifone. ở bước tiến hành xác nhận đăng kí, sẽ gửi đến một request HTTP GET đến địa chỉ http://tv.mobifone.com.vn/inc/regdone.jsp?code=TV1 để xác nhận mà không cần kiểm tra thêm. Bất kì thông tin nào từ phía người dùng.

Hệ thống của Mobifone. Chỉ thực lấy và xác nhận thuê bao thông qua thông tin kết nối Internet 3G. Sau khi đăng kí thành công sẽ gửi tin nhắn thông báo đến số thuê bao điện thoại.

Lỗ hổng có thể khai thác một cách dễ dàng bằng cách đặt một thẻ ảnh đến đầu API để thực hiện yêu cầu đăng kí:

API Nguy hiểm:

======================

Dangerous API

====================== 

Ngoài ra việc hủy dịch vụ cũng có thể được thực hiện thông qua API:
http://tv.mobifone.com.vn/inc/unreg.jsp?code=TV1

Đoạn API này có thể được chèn vào bất kì nơi nào chấp nhận thẻ tag IMG, người dùng và các phần mềm bảo mật không thể biết đến. Có thể bị lợi dụng để đặt trên các diễn đàn và mạng xã hội có lượng người truy cập cao. Bởi bất kì ai có quyền chèn ảnh. Ngoài ra không chỉ người sử dụng điện thoại ảnh hưởng, nếu máy tính sử dụng kết nối Internet 3G để truy cập vào các trang chứa lỗi này đều có thể bị tấn công.

Trình diễn thử nghiệm lỗ hổng bảo mật:

Để đảm bảo công bằng, sử dụng một máy tính sạch chưa từng truy cập vào Website của Mobifone, không hề có chứa Cookie hay đăng nhập từ trước. Máy tính sử dụng kết nối Internet 3G của Mobifone được phát từ điện thoại.

Truy cập vào 2 website html trên máy với nội dung đơn giản là:

<html>
<body>
<img src=”http://tv.mobifone.com.vn/inc/regdone.jsp?code=TV1″/&gt;
Lỗi bảo mật: Đăng kí dịch vụ.
</body>
</html>

<html>
<body>
<img src=”http://tv.mobifone.com.vn/inc/unreg.jsp?code=TV1″/&gt;
Lỗi bảo mật: Hủy đăng kí dịch vụ.
</body>
</html>

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

ubuntu phone BQ 4.5 – điện thoại với một hệ điều hành hứa hẹn

Chắc có lẽ các bạn đã quá quen thuộc với hệ điều hành ubuntu linux. Trải qua 10 năm phát triển trên thị trường máy tính. Đến nay phiên bản ubuntu trên điện thoại, gọi tắt là ubuntu touch cũng chính thức được phân phối thông qua chiếc điện thoại đầu tiên.  bq 4.5 ubuntu edition. Thật tiếc vì dự án Ubuntu Edge không vẫn chưa đạt được cột mốc mặt dù có khá đông đảo người dùng và nhà đầu tư đã góp vốn vào khi chỉ được 1/3 kế hoạch. Tuy nhiên với sự quan tâm đông đảo của người dùng, thì hệ điều hành ubuntu touch vẫn được phát triển và hoàn thiện, và tham gia vào cuộc chạy đua với những đại gia iOS, Android…

This post is written in Vietnamese :), sorry If anyone can’t read the content :P. If you want to know more about some specific functionality of this phone and ubuntu touch, please leave a comment so that I might try it on my phone.

DSC05690

Dưới đây là vài nhận xét đánh giá sau một ngày sử dụng:

Xem chi tiết…

facebook phone interview experience – don’t make it worse

1 month ago. I received the Hello from Facebook email in the morning. It’s very interesting because I didn’t find any thing related to facebook jobs. They found me by somehow.

In next emails, I was told about infrastructure team and Visa project and other things then they want me to provide a date for phone interview also with a backup date. Due to a long Xmas holiday, so I decide to place technical interview on Jan-6.

I had very bad phone interview experience with HP Singapore before. The technical director with his Indian accents is very hard to listen. My current project, which have been 6 month, and all SEs use Indian accents, I can just hear about 60% of their conversation.

Come back to FB Interview. I have 4 weeks to prepare many thing. I learn from the Internet that their might be 2 coding questions each and some attitude questions. It’s been 5 years from my last ACM ICPC. That I don’t think I need to use such algorithms any more so I take time for me to practice the coding. I read again about complexity, some basic algorithm, searching, of course dynamic programming, my most favorable. Then I need to practice it with Python. Previous contest don’t allow python, but this is a fast coding language.

Because of timezone difference, I choose the schedule at 1 am. (10am PST)… This is one of my mistake.

My brain could work well at this time because of sleepy. Although I tried to stay late for week before…

I should choose 5 or 6am my time instead…

The interview started with some introduction about interviewer and me. Also with the question why facebook :). I told about my passionate with big system and high scalability.

Then start with coding question.

My most terrible mistake was I didn’t carefully read the statement of problem… Although the Interviewer asked me whether I understand the problem. But I was so self-confident about my self so that I didn’t read all the statement.

The problem was about max stock value buy and sell… Then I remembered that I solved it before with dynamic programming. So I reply right away. Interviewer asked me to just use first and simplest way…

Since this time. I was nervous, confused and unable to control my brain and my behavior. It take me about 20 minutes to write the solution. But when I finish, I realize this is not the answer. He just asked about 1 buy and sell transaction. Not for multiple transaction.

I was completely scared. I don’t know what to do next. I wasted my time for scaring about my mistake. Although I just need to edit one line of code for fixing this … If I was in just a programming contest at my high school. I could solve this problem in just 10 minutes.

But the time is out… I can’t submit my code… In just next 10 minutes I wrote 2 way of this problem with greedy – O(n^2) and dynamic programming O(n) (let me explain why I called it dynamic programming)

I sent an email with full solution and explain 10 minutes later. But I don’t think I have any other chances :).


def max_value(a):
l = len(a)
m = 0
for i in range(l):
for j in range(i+1,l):
if a[j]-a[i] > m:
m = a[j]-a[i]
return m

def max_value_2(a):
m = 0
d = 0
for i in range(len(a)):
if a[i] d:
d = a[i]-a[m]
return d

a = [20, 40, 52, 15, 30, 50, 10, 25]
print max_value(a)
print max_value_2(a)

This was my solution for wrong Problem


def max_value_3(a):
c=0
i=len(a)-1
while(i>=0):
d=a[i]
l=i
p=0
while(a[i]=0):
p+=a[i]
i-=1
c+=(l-i)*a[l]-p
return c

Come back to the dynamic programming:

– I called it this way because the formula would be

f[i] = max(f[i-1], a[i]-m[i]) for m[i] is minimum value until i position.

Because we just need to use i-1 value and one min value so we don’t need to store it in array.

I was failed this time. But I learned many things. So it’s a good thing come to me. Go to the SV might be a sweet dream but there might be next time :).

At least I knew that they found me, but they didn’t discover me :).

🙂 new game ideas for internal company contest :P.

https://github.com/afterlastangel/domino-game/blob/master/README.md