2014/12/10

A case study on applying Scaled Agile Framework (SAFe)

Tóm tắt:
Bài viết này tóm tắt một số ý quan trọng khi triển khai Scaled Agile Framework (SAFe) ở mức team, dự án, program (chương trình) và tổ chức (company level)

Bối cảnh:
Áp dụng trong một công ty cỡ trung bình,
tổng số nhân viên vài ngàn người,
tổng số nhân sự IT (phát triển, testers, quản trị dự án...) là vài trăm,
với nhiều tiểu dự án, dịch vụ (online) chạy song song.

Mô hình quyền quyết định và budgeting là top-down.
Hệ quả là, tư duy top-down ngay cả trong cách chạy dự án IT cũng là top-down và rất waterfall.

Thách thức:
Áp dụng mô hình Agile vào tổ chức này như thế nào để làm "đẹp lòng" lãnh đạo (cao cấp) trong khi các dự án IT vẫn chạy tốt?

Cách tiếp cận:
- Agile tới từng team, dự án, chương trình, mục tiêu (portfolio) và tổ chức,
- Áp dụng những Agile toolkit cơ bản, có lộ trình,
- Việc áp dụng Agile toolkit ở mức team (5-10 người) được phó mặc cho Project lead, scrum master.

Lựa chọn scaled Agile framework:
Tôi chọn SAFe thì mô hình này vẽ đẹp, trực quan, dễ dàng dùng hình để thuyết phục lãnh đạo.
Iteration là một Agile practice được mô tả đơn giản, chia theo các mức lãnh đạo, phòng ban trong tổ chức có thể dễ dàng áp dụng.
SAFe tập trung vào quy trình, thích hợp hơn ở mức tổ chức

Tôi có tìm hiểu qua các scaled Agile framework sau nhưng không chọn:
  1. RAP (Real Agility Program)
  2. DAD (Disciplined Agile Delivery)
  3. LeSS (Large Scale Scrum)

Lộ trình tiếp cận và áp dụng SAFe:e

  1. Áp dụng Agile toolkits cho các nhóm phát triển. Đối tượng áp dụng là scrum master, tester, developers...
  2. Áp dụng Agile toolkits cho các dự án, mục tiêu lớn. Đối tượng áp dụng là lãnh đạo ở mức trưởng phòng, product manager,
  3. Áp dụng Agile toolkits ở mức C-level (CEO, CFO, CTO...). Điều quan trọng là thay đổi mindset, chuyển đổi nó từ tư duy truyền thống sang tư duy Agile.

Trong đó, việc budgeting, được quyết định chính bởi CEO, CFO là tối quan trọng. CEO và CFO là những người khó thay đổi nhất.

Một số nhận định chung về SAFe:

  1. Áp dụng ở mức tổ chức, chứ không phải chỉ cho một team nhỏ dưới 10 người,
  2. Thích hợp với tổ chức có nhiều phòng ban, tổ chức, dự án, chương trình chạy song song,
  3. Q: SAFe có thực sự là Agile không? A: SAFe là Agile ở mức team và cũng là Agile ở mức program, tổ chức dù điều này hơi khó nhìn,
  4. Q: SAFe liên quan gì tới Scrum? Scrum là một Agile toolkit. SAFe là một mô hình Scaled Agile. Do đó, việc so sánh SAFe và Scrum là khập khiễng. Trong mô hình SAFe, ở mức team, hoàn toàn có thể áp dụng Scrum như một toolkit hoặc nhiều toolkit khác,
  5. Q: Vì sao ít người (nổi tiếng) ủng hộ SAFe? A: Vì họ thường chỉ làm dự án ở quy mô nhỏ, trong khi SAFe áp dụng ở quy mô lớn (hơn),
  6. Q: SAFe có phải là chiến lược không? A: Đúng, nó là một chiến lược, cách tiếp cận đúng để thay đổi tư duy cổ điển của lãnh đạo sang Agile,
  7. Q: SAFe có định nghĩ rõ độ dài của sprint không? A: Không. Độ dài sprint hoàn toàn tùy thuộc vào tình hình thực tế. Với mức team < 10 người, độ dài sprint có thể là 4 tuần, 1 tuần hay thậm chí một vài ngày. Với C-level, "sprint" là 1, 3 hay 6 tháng và có sự điều chỉnh (retrospect:ve) khi cần thiết.

Một số Agile toolkit:

# (mà tôi) khuyến nghị sử dụng ở mức độ công ty, cho các vị trí khác nhau.

  1. Agile for project managers
  2. Agile portfolio management
  3. Scaled Agile Framework
  4. User Stories
  5. Agile Kanban
  6. Iteration Planning
  7. Definition of Done
  8. Agile Quality
  9. Agile Planning
  10. Agile for Executives
  11. Scrum
  12. Planning poker
  13. XP (eXtreme Programming) (use with care :D)
  14. Kanban
  15. TDD (Test-Driven Development)
  16. CI (Continuous Integration)
  17. CTDD (Continuous Test Driven Development)

Topics khác:

(liên quan tới việc triển khai SAFe, hay scaled Agile frameowork nào đó)

  1. Hiring (đúng người đúng việc)
  2. Performance evaluation (đánh giá, đây là việc cần làm trong tổ chức (lớn)
  3. Communications (thông luồng liên lạc, không quá quan liêu, không quá thưa)
  4. Reporting (Hơi đi ngược lại với nguyên tắc Agile. Báo cáo là cần, dù ngắn, không để "báo cáo" trở thành gánh nặng)
  5. Organization structure (Định nghĩa lại sơ đồ tổ chức khi áp dụng SAFe, cùng với RaR)
  6. Project structure (cơ cấu tổ chức ở mức dự án)
  7. Training (Đào tạo tư duy Agile, từ lãnh đạo tới nhân viên)
  8. Authority (Chơ chế quyền quyết định thay đổi khi áp dụng Agile)
  9. RaR (Roles and Responsibilities) definition
  10. Skillset (Năng lực cần và đủ của các vị trí thay đổi khi áp dụng Agile)
  11. Governace (Không có thì móm à)

Tham khảo:

  1. unSAFe at any speed http://kenschwaber.wordpress.com/2013/08/06/unsafe-at-any-speed/
  2. The Horror Of The Scaled Agile Framework http://neilkillick.com/2012/03/21/the-horror-of-the-scaled-agile-framework/
  3. Large-Scale Agile Design & Architecture: Ways of Working http://www.infoq.com/articles/large-scale-agile-design-and-architecture





--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

"凡", "buồm" in Korean and Vietnamese. Credit to Anh Dũng Phan for pointing out the similarities.

"凡", "buồm" in Korean and Vietnamese. Credit to Anh Dũng Phan for pointing out the similarities.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/12/04

How to run an effective meeting (updated #1)

*​​Để chạy một cuộc họp hiệu quả, cần làm gì?*

- Có mục đích rõ ràng
- và được chi tiết hóa hơn bằng agenda
- Tập trung vào agenda, không đi lệch chủ đề chính
- Càng ngắn càng tốt. Thời gian cho một meeting nên không vượt quá 25 phút.
- Chỉ định người take note
- Tất cả những người tham gia có sự chuẩn bị trước về mặt tinh thần và nội dung
- Chỉ định người điều khiển cuộc họp, điều chỉnh cuộc họp theo các tiêu nói nói trên: Tập trung vào agenda, không lệch chủ đề, chủ động ngắt phát biểu nếu quá dài.

Một số biểu hiện của cuộc họp không hiệu quả:
- Thời gian quá dài
- Không đi vào nội dung chính
- Không rõ mục tiêu của cuộc họp là gì
- Có người ngủ hoặc/làm việc riêng trong khi họp
- Không có kết luận, danh sách TODO/next action sau cuộc họp

*Tham khảo bài dưới đây: *

There are good meetings and there are bad meetings. Bad meetings drone on forever, you never seem to get to the point, and you leave wondering why you were even present. Effective ones leave you energized and feeling that you've really accomplished something.

So what makes a meeting effective?

Effective meetings really boil down to three things:

    They achieve the meeting's objective.
    They take up a minimum amount of time.
    They leave participants feeling that a sensible process has been
followed.

If you structure your meeting planning, preparation, execution, and follow up around these three basic criteria, the result will be an effective meeting.

*1. The Meeting's Objective*

An effective meeting serves a useful purpose. This means that in it, you achieve a desired outcome. For a meeting to meet this outcome, or objective, you have to be clear about what it is.

Too often, people call a meeting to discuss something without really
considering what a good outcome would be.

   1.     Do you want a decision?
   2.     Do you want to generate ideas?
   3.     Are you getting status reports?
   4.     Are you communicating something?
   5.     Are you making plans?

Any of these, and a myriad of others, is an example of a meeting objective. Before you do any meeting planning, you need to focus your objective.

To help you determine what your meeting objective is, complete this
sentence:

At the close of the meeting, I want the group to ...

With the end result clearly defined, you can then plan the contents of the meeting, and determine who needs to be present.

*2. Use Time Wisely*

Time is a precious resource, and no one wants their time wasted. With the amount of time we all spend in meetings, you owe it to yourself and your team to streamline the meeting as much as possible. What's more, time wasted in a meeting is time wasted for everybody attending. For example, if a critical person is 15 minutes late in an eight person meeting, that person has cost the organization two hours of lost activity.

Starting with your meeting objective, everything that happens in the
meeting itself should further that objective. If it doesn't, it's superfluous and should not be included.

To ensure you cover only what needs to be covered and you stick to relevant activities, you need to create an agenda. The agenda is what you will refer to in order to keep the meeting running on target and on time.

To prepare an agenda, consider the following factors:

   1.     Priorities – what absolutely must be covered?
   2.     Results – what do need to accomplish at the meeting?
   3.     Participants – who needs to attend the meeting for it to be
   successful?
   4.     Sequence – in what order will you cover the topics?
   5.     Timing – how much time will spend on each topic?
   6.     Date and Time – when will the meeting take place?
   7.     Place – where will the meeting take place?

With an idea of what needs to be covered and for how long, you can then look at the information that should be prepared beforehand. What do the participants need to know in order to make the most of the meeting time?
And, what role are they expected to perform in the meeting, so that they can do the right preparation?

If it's a meeting to solve a problem, ask the participants to come prepared with a viable solution. If you are discussing an ongoing project, have each participant summarize his or her progress to date and circulate the reports amongst members.

Assigning a particular topic of discussion to various people is another
great way to increase involvement and interest. On the agenda, indicate who will lead the discussion or presentation of each item.

Use your agenda as your time guide. When you notice that time is running out for a particular item, consider hurrying the discussion, pushing to a decision, deferring discussion until another time, or assigning it for discussion by a subcommittee.

An important aspect of running effective meetings is insisting that everyone respects the time allotted. Start the meeting on time, do not spend time recapping for latecomers, and, when you can, finish on time.
Whatever can be done outside the meeting time should be. This includes circulating reports for people to read beforehand, and assigning smaller group meetings to discuss issues relevant to only certain people.

Download our free agenda template here, and use this as a starting point for creating your own agenda.

*3. Satisfying Participants that a Sensible Process Has Been Followed*

Once you have an agenda prepared, you need to circulate it to the
participants and get their feedback and input. Running a meeting is not a dictatorial role: You have to be participative right from the start.

Perhaps there is something important that a team member has to add. Maybe you have allotted too much, or too little, time for a particular item. There may even be some points you've included that have been settled already and can be taken off the list for discussion.

Whatever the reason, it is important you get feedback from the meeting participants about your proposed agenda.

Once in the meeting, to ensure maximum satisfaction for everyone, there are several things you should keep in mind:

    If certain people are dominating the conversation, make a point of
asking others for their ideas.
    At the end of each agenda item, quickly summarize what was said, and ask people to confirm that that's a fair summary. Then make notes regarding follow-up.
    Note items that require further discussion.
    Watch body language and make adjustments as necessary. Maybe you need a break, or you need to stop someone from speaking too much.
    Ensure the meeting stays on topic.
    List all tasks that are generated at the meeting. Make a note of who is
assigned to do what, and by when.
    At the close of the meeting, quickly summarize next steps and inform everyone that you will be sending out a meeting summary.

After the meeting is over, take some time to debrief, and determine what went well and what could have been done better. Evaluate the meeting's effectiveness based on how well you met the objective. This will help you continue to improve your process of running effective meetings.

You may even want to get the participants' feedback as well. Depending on the time frame, this debriefing can be done within the meeting itself or afterward.

Finally, prepare the meeting summary. This will be forwarded to all
participants and other stakeholders. It is a record of what was accomplished and who is responsible for what as the team moves forward.
This is a very crucial part of effective meetings that often gets
overlooked. You need a written record of what transpired, along with a list of actions that named individuals have agreed to perform. Make sure someone is assigned to take notes during the meeting if you think you will be too busy to do so yourself.

Key Points:

Running an effective meeting is more than sending out a notice that your team is to meet at a particular time and place. Effective meetings need structure and order. Without these elements they can go on forever and not accomplish a thing.

With a solid objective in mind, a tight agenda, and a commitment to
involving the meeting participants in the planning, preparation, and
execution of the meeting, you are well on your way to chairing great
meetings.

Given the frustration most people feel when their time is wasted, gaining a reputation for running efficient and successful meetings is good for you and your career.

Tham khảo:


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/12/01

OpenBSD: No More Loadable Kernel Modules

"no more lkm": OpenBSD đã quyết định không hỗ trợ Loadable Kernel Module. Độc quyền, tự kỷ và paranoid về bảo mật như thế này đã được gọi là bá đạo chưa? https://bitbucket.org/braindamaged/openbsd-src/commits/all?search=lkm

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Compare distributed version control system (Git vs. Mercurial)

Kết quả so sánh distributed version control system (Git vs. Mercurial)

In terms of implementation effort, Mercurial has a clear advantage due to its efficient HTTP transport protocol.

In terms of features, Git is more powerful, but this tends to be offset by it being more complicated to use.

ref. https://code.google.com/p/support/wiki/DVCSAnalysis

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

killall does not work with Java

vuhung@d330:~$killall freemind
-> Freemind was not killed ;)

vuhung@:~$ps -ef | grep java
vuhung   14071     1  0 14:43 ?        00:00:05 /usr/lib/jvm/java-6-openjdk-amd64/bin/java -Xmx256M -Dgnu.java.awt.peer.gtk.Graphics=Graphics2D -Dfreemind.base.dir=/usr/share/freemind -cp ::/usr/share/freemind/lib/freemind.jar:/usr/share/java/SimplyHTML.jar:/usr/share/java/gnu-regexp.jar:/usr/share/java/jibx-run-1.1.6a.jar:/usr/share/java/xpp3.jar:/usr/share/freemind/lib/bindings.jar:/usr/share/java/forms.jar:/usr/share/freemind freemind.main.FreeMindStarter /home/vuhung/Downloads/file.mm
vuhung   14187  6891  0 15:03 pts/1    00:00:00 grep --color=auto java

vuhung@:~$kill -9 14071
You died.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Size of Facebook's source code


​As of 2013:

17 MLOC (17 million lines of source code) is the size of FB system's *main* source code - that is many times larger than even the Linux kernel.

44k is number of files in source code.

(D)VCS used in Facebook is Mercurial: https://code.facebook.com/posts/218678814984400/scaling-mercurial-at-facebook/


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/11/24

Agile Tour 2014 (Hanoi): Beyond Agile: practices and mindset

Slide: http://www.slideshare.net/vuhung16plus/nguyen-vu-hung-beyond-agile-practices-and-mindset-agile-tour-vietnam-hanoi-2014

Topic: "Beyond Agile: practices and mindset"

At Septeni Technology, we've been trying to apply Agile practices and and its principles for over two years for IT projects as well as web-based services since the beginning of the company. In this session, as a case study, with the purpose of sharing our knowledge, I would like to share our best practices for applying Agile, the tools we are using, the mindset we must have for applying Agile successfully.


About Nguyen Vu Hung

Nguyen Vu Hung is the CTO of Septeni Technology, a development center of Tokyo based Septeni Group that focuses on developing and operating, mostly, web-based online advertisement systems. He has numerous years of IT and software development, project/product management in both Japan and Vietnam. Considering himself as a FOSS and Agile evangelist and being a Agile lover and an CTO, he is also interested in not-so-related domains such as human resource management and (organization) (re)structuring.

References:
https://www.facebook.com/nguyenvuhung
http://www.agiletourvietnam.org/
https://www.facebook.com/groups/agilevietnam/

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/11/20

What is this certificate: CCMNR (Yeah, I know what is CCNA, CCDA)

Just found "CCMNR" certificate in a resume.
Never heard of it.
Anyone has any idea bout this?

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/10/29

systemd bloated - ôm đồm, làm quá nhiều thứ

systemd bloated - ôm đồm, làm quá nhiều thứ

Câu hỏi: Liệu triết lý về/và thiết kế của Unix đã lạc hậu với hệ thống/hệ điều hành hiện đại?

systemd hay là câu chuyện chính trị giữa Linux kernel và công ty Redhat, với nhóm phát triển chính của systemd là một số nhân viên của Redhat?

Người dùng Linux desktop dễ dàng hơn với systemd.
Vậy với Linux servers và người quản trị nó - sysadmins - thì systemd có thích hợp nếu số lượng server phải quản lý lên tới hàng ngàn?

Nhưng phải công nhận là utiities của systemd tiện lợi cho người dùng cuối (sysadmin) https://wiki.archlinux.org/index.php/systemd


2014/10/22

Trung tâm dữ liệu VCCorp bị tin tặc tấn công

Cuộc tấn công tới VCCorp vào giữa tháng 10 vừa quan đến từ một nhóm người có chuyên môn, quy mô lớn, rất chuyên nghiệp có khả năng lớn từ nội bộ tập đoàn. VCCorp bị cài cắm mã độc từ rất lâu trên 1000 (một ngàn) thiết bị của nhân viên VCCorp, bao gồm cả nhân sự cao cấp.

Các đợt tấn công:
1. Xóa DB, có tính phá hoại, đặc biệt nghiêm trọng
2. Xóa source
3. Thay đổi DNS/domain

Cảnh báo của C50:
4. Doanh nghiệp cần áp dụng chuẩn bảo mật ISO27001
5. Sử dụng phần mềm bản quyền (không dùng phần mềm lậu)
6. Đặc biệt lưu ý phishing

http://youtu.be/HLE3psWrejc


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/10/03

GNU Bash Shellshock Hits

If your servers can pass both of the following commands, we maybe safe, for now

$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
$ env X='() { (a)=>\' bash -c "echo ls"; cat echo

However, I don't think GNU bash as well as other Linux distros can provide a solid patch in up coming few days.

IMO, if we don't limit ourself to bash - which is the default shell in most Linux distros,
we can switch to other shells like C/K/Z shells in the mean time.

bash shellshock based botnets are in the wild.

Bash shell shock is even more dangerous then SSL heartbleed because it will be exploited to the core, a shell of the OS.

As of 2014/10/03, patches for bash shellshocks seem not to resolve to root caues of the bugs. I guess that more and more batches are coming.

See these links:

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7169
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7186
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-7187

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6277
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-6278

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/08/19

It seems that by the law in England, you have to confirm your age in order to take a look at a bottle of wishky, even that you are not going to buy it.



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/08/18

3 yếu tố cần để CIO không bị đuổi việc sớm

3 yếu tố cần để CIO không bị đuổi việc sớm:
1. Kiên định
2. Hiếu kỳ
3. Khả năng communicate
http://www.computerworld.com/s/article/9250034/3_secrets_to_CIO_longevity?taxonomyId=14&pageNumber=1

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/07/28

​ ​ ​​Phân biệt "trình" qua 6 mức độ.

​​
​​Phân biệt "trình" qua 6 mức độ.

Nghĩ là muốn làm: Chưa đủ
Nói ra là muốn làm: Chưa đủ
Liên tục phát ngôn là "muốn lắm rồi": Chưa đủ
Làm thật: Tốt hơn là chỉ nói. Chưa đủ
Làm thật chăm chỉ: Vẫn chưa đủ.

Mà phải làm ra kết quả cơ.

Động cơ, Quá trình, Nỗ lực thì không thể phủ nhận. Nhưng nếu không ra kết quả thì không nhiều ý nghĩa.



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/07/27

Thuc hoc 実学 là gì

​​
Thực học:
- Em không nghĩ đây là "từ cũ". Nó được dùng khá nhiều vào năm 2014 này
- Định nghĩa: Là kiến thức và học thức đúng với mức độ học lý thuyết

Người có thực học:
Là người không chỉ có kiến thức lý thuyết mà còn có khả năng áp dụng kiến thức đó vào thực tế.

Từ liên quan:
- Thực lực
- Thực nghiệp

Từ "thực học" và "thực nghiệp" trước đây dùng để phân biệt với "hư văn". Đúng như Hưng nhận xét, "thực học" được dùng nhiều để đối lập với cái "sự học giả" đang phổ biến trong xã hội hiện nay.

Có thể sửa lại như sau:
* thực học d. học thức có thật và thiết thực, đúng với những gì đã học.

Chú ý "kiến thức" và "học thức" khác nhau, học thức là "những điều hiểu biết ... do học tập mà có", còn kiến thức là "những điều hiểu biết ... do tìm hiểu và học tập mà có". Tức là "kiến thức" có nội hàm rộng hơn "học thức".

Đối chiếu với tiếng Nhật

Thực học = 実学
社会生活に実際に役立つ学問
Là thứ học vấn có ích cho thực tế trong công việc xã hội

Chủ nghĩa thực học = 実学主義
事実・経験・実践などを重視する教育思想上の立場
Là quan điểm giáo dục coi trọng thực tiễn, kinh nghiệm và thực tế

Định nghĩa từ wikipedia tiếng Nhật:
実学(じつがく)

    一般には、空理空論でない実践・実理の学のこと。虚学の対立語。
    実際生活に役立つ学問のこと。工学・医学・農学・法律学・経営学などを指すことが多い。
        より狭義には、応用科学を指す。
    明・清時代の中国で盛んになった経世致用の学のこと。
    朝鮮王朝後期に正統官学である性理学への批判を通じて登場した思想・学問潮流。「実事求是の学」とも(ko:실학(實學))。

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/07/11

​​Modified condition/decision coverage for critical software testing

Câu hỏi: Này, với những phần mềm siêu quan trọng đòi hỏi chất lượng cao thì phải test thế nào?

MC/DC là gì?
"Modified condition/decision coverage" (MC/DC) là một cách test như thế. Phương pháp này được sử dụng để test phần mềm điều khiển cất cánh và hạ cánh của máy bay.

MC/DC được áp dụng ở đâu?
MC/DC được dùng 2 tiêu chuẩn
DO-178B DO-178B, Software Considerations in Airborne Systems and Equipment Certification
DO-178C, Software Considerations in Airborne Systems and Equipment Certification
MC/DC cũng được sử dụng bởi NASA.

MC/DC yêu cầu tất cả tất cả các loại test sau
  1.     Each entry and exit point is invoked
  2.     Each decision tries every possible outcome
  3.     Each condition in a decision takes on every possible outcome
  4.     Each condition in a decision is shown to independently affect the outcome of the decision.

Câu hỏi: Bọn em làm website cho bên Chăn ga gối đệm thì có cần áp dụng MC/DC không ạ?
Trả lời: Không em ạ.


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/07/07

How to run an effective meeting

​​Để chạy một cuộc họp hiệu quả, cần làm gì?

- Có mục đích rõ ràng
- và được chi tiết hóa hơn bằng agenda
- Tập trung vào agenda, không đi lệch chủ đề chính
- Càng ngắn càng tốt. Thời gian cho một meeting nên không vượt quá 25 phút.
(- Chỉ định người take note)

Tham khảo bài dưới đây:

There are good meetings and there are bad meetings. Bad meetings drone on forever, you never seem to get to the point, and you leave wondering why you were even present. Effective ones leave you energized and feeling that you've really accomplished something.

So what makes a meeting effective?

Effective meetings really boil down to three things:

    They achieve the meeting's objective.
    They take up a minimum amount of time.
    They leave participants feeling that a sensible process has been followed.

If you structure your meeting planning, preparation, execution, and follow up around these three basic criteria, the result will be an effective meeting.

1. The Meeting's Objective

An effective meeting serves a useful purpose. This means that in it, you achieve a desired outcome. For a meeting to meet this outcome, or objective, you have to be clear about what it is.

Too often, people call a meeting to discuss something without really considering what a good outcome would be.

  1.     Do you want a decision?
  2.     Do you want to generate ideas?
  3.     Are you getting status reports?
  4.     Are you communicating something?
  5.     Are you making plans?

Any of these, and a myriad of others, is an example of a meeting objective. Before you do any meeting planning, you need to focus your objective.

To help you determine what your meeting objective is, complete this sentence:

At the close of the meeting, I want the group to ...

With the end result clearly defined, you can then plan the contents of the meeting, and determine who needs to be present.

2. Use Time Wisely

Time is a precious resource, and no one wants their time wasted. With the amount of time we all spend in meetings, you owe it to yourself and your team to streamline the meeting as much as possible. What's more, time wasted in a meeting is time wasted for everybody attending. For example, if a critical person is 15 minutes late in an eight person meeting, that person has cost the organization two hours of lost activity.

Starting with your meeting objective, everything that happens in the meeting itself should further that objective. If it doesn't, it's superfluous and should not be included.

To ensure you cover only what needs to be covered and you stick to relevant activities, you need to create an agenda. The agenda is what you will refer to in order to keep the meeting running on target and on time.

To prepare an agenda, consider the following factors:

  1.     Priorities – what absolutely must be covered?
  2.     Results – what do need to accomplish at the meeting?
  3.     Participants – who needs to attend the meeting for it to be successful?
  4.     Sequence – in what order will you cover the topics?
  5.     Timing – how much time will spend on each topic?
  6.     Date and Time – when will the meeting take place?
  7.     Place – where will the meeting take place?

With an idea of what needs to be covered and for how long, you can then look at the information that should be prepared beforehand. What do the participants need to know in order to make the most of the meeting time? And, what role are they expected to perform in the meeting, so that they can do the right preparation?

If it's a meeting to solve a problem, ask the participants to come prepared with a viable solution. If you are discussing an ongoing project, have each participant summarize his or her progress to date and circulate the reports amongst members.

Assigning a particular topic of discussion to various people is another great way to increase involvement and interest. On the agenda, indicate who will lead the discussion or presentation of each item.

Use your agenda as your time guide. When you notice that time is running out for a particular item, consider hurrying the discussion, pushing to a decision, deferring discussion until another time, or assigning it for discussion by a subcommittee.

An important aspect of running effective meetings is insisting that everyone respects the time allotted. Start the meeting on time, do not spend time recapping for latecomers, and, when you can, finish on time. Whatever can be done outside the meeting time should be. This includes circulating reports for people to read beforehand, and assigning smaller group meetings to discuss issues relevant to only certain people.

Download our free agenda template here, and use this as a starting point for creating your own agenda.

3. Satisfying Participants that a Sensible Process Has Been Followed

Once you have an agenda prepared, you need to circulate it to the participants and get their feedback and input. Running a meeting is not a dictatorial role: You have to be participative right from the start.

Perhaps there is something important that a team member has to add. Maybe you have allotted too much, or too little, time for a particular item. There may even be some points you've included that have been settled already and can be taken off the list for discussion.

Whatever the reason, it is important you get feedback from the meeting participants about your proposed agenda.

Once in the meeting, to ensure maximum satisfaction for everyone, there are several things you should keep in mind:

    If certain people are dominating the conversation, make a point of asking others for their ideas.
    At the end of each agenda item, quickly summarize what was said, and ask people to confirm that that's a fair summary. Then make notes regarding follow-up.
    Note items that require further discussion.
    Watch body language and make adjustments as necessary. Maybe you need a break, or you need to stop someone from speaking too much.
    Ensure the meeting stays on topic.
    List all tasks that are generated at the meeting. Make a note of who is assigned to do what, and by when.
    At the close of the meeting, quickly summarize next steps and inform everyone that you will be sending out a meeting summary.

After the meeting is over, take some time to debrief, and determine what went well and what could have been done better. Evaluate the meeting's effectiveness based on how well you met the objective. This will help you continue to improve your process of running effective meetings.

You may even want to get the participants' feedback as well. Depending on the time frame, this debriefing can be done within the meeting itself or afterward.

Finally, prepare the meeting summary. This will be forwarded to all participants and other stakeholders. It is a record of what was accomplished and who is responsible for what as the team moves forward. This is a very crucial part of effective meetings that often gets overlooked. You need a written record of what transpired, along with a list of actions that named individuals have agreed to perform. Make sure someone is assigned to take notes during the meeting if you think you will be too busy to do so yourself.
Key Points:

Running an effective meeting is more than sending out a notice that your team is to meet at a particular time and place. Effective meetings need structure and order. Without these elements they can go on forever and not accomplish a thing.

With a solid objective in mind, a tight agenda, and a commitment to involving the meeting participants in the planning, preparation, and execution of the meeting, you are well on your way to chairing great meetings.

Given the frustration most people feel when their time is wasted, gaining a reputation for running efficient and successful meetings is good for you and your career.

Tham khảo:
http://www.mindtools.com/CommSkll/RunningMeetings.htm
http://www.forbes.com/sites/dailymuse/2013/09/17/the-21-unwritten-rules-of-meetings/​​



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

​​​Project Executive Summary Reports

Câu hỏi:
Viết gì trong báo cáo (giữa kỳ) dự án, vừa ngắn gọn, vừa nêu được các điểm chính (nhất) tới quản lý cấp cao hơn và những người liên quan.

1. Major risks:
- Rủi ro chính của dự án
- Hạn chế tới 3 hay 5 rủi ro nổi cộm nhất

2. Major issues:
- Vấn đề (đang gặp phải) chính của dự án
- Hạn chế tới 3 hay 5 vấn đề cần giải quyết luôn và ngay

3. Progress summary
- Dự án hoàn thành bao nhiêu % tiến độ tổng thể, theo từng sprint, so với kế hoạch
- Công việc nào chậm, nhanh?

4. Project health indicator:
- Diễn tả bằng 3 màu giống như đèn giao thông (xanh, vàng đỏ).

The traffic light colors highlight for project management:

(Red): the project needs management attention,
(Yellow): is at risk of not hitting its targets,
(Green): is progressing according to plan.

5. Budget forecast:
- Tiền tiêu được bao nhiêu rồi?
- Với số tiền ấy đã hoàn thành bao nhiêu % khối lượng công việc rồi? (EVM)
- Để làm nốt thì cần chi bao nhiêu? Bao giờ phải chi


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/06/18

Jira's basic definitions (​Một số khái niệm trong Jira)

Issues
Được gọi là "ticket" trong Redmine. Issue là một công việc phải làm. Ví dụ về issue là: lỗi phần mềm, công việc cụ thể của dự án, ticket hỗ trợ người dùng cuối, form xin nghỉ. Issue là đơn vị công việc nhỏ nhất.

Project
Project (dự án) là một tập hợp các issue nhằm giải quyết một mục đích nào đó. Một Issue phải thuộc một dự án nào đó. Ví dụ về Project:
    a software development project
    a marketing campaign
    a helpdesk system
    a leave request management system
    a website enhancement request system

Components

Là tập các issue được gộp lại theo một logic nào đó. Một Project có thể chứa nhiều Component tùy vào cách tổ chức thông tin. Ví dụ về Component:
 'Documentation', 'Backend', 'Email Subsystem', 'GUI'.
Version
Version (phiên bản) là cách đánh số phần mềm phát triển. Ví dụ về version: 1.0, 1.1, 1.2.0, 1.2.1.3.

Workflow
Worklow (luồng) là tập các trạng thái và sự di chuyển giữa các trạng thái đó.

Status
Status (trạng thái) của một Issue cho biết Issue đó đang được xử lý ở mức nào. Vòng đời cơ bản một Issue trải qua các trạng thái: 1) Open (mới được tạo ra) 2) In Progress (đang làm) 3) Resolved (đã làm xong) và 4) Closed (được cấp trên xác nhận sự hoàn thành).

Tham khảo:
https://confluence.atlassian.com/display/JIRA/Defining+a+Component
https://confluence.atlassian.com/display/JIRA/What+is+a+Project
https://confluence.atlassian.com/display/JIRA/What+is+Workflow



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/06/17

(High level) progress management with Redmine

​Background:
- Product owner, sales person, C-level muốn theo dõi tiến độ dự án bằng Redmine giống như MS Project
- Cần trả lời câu hỏi cho khách hàng: Dự án đã hoàn thành bao nhiêu % chức năng, chạy được bao nhiêu thời gian, đã chi bao nhiêu tiền? (xem thêm: Earned Value)

Hiện trạng:
- Lập trình viên cứ tạo task, code và làm. Họ chỉ nhìn thấy cây mà không nhìn thấy rừng, chỉ thấy từng task mà không thấy tiến độ tổng thể
- Khách hàng và người quản lý muốn biết tiến độ ở mức high level

Kịch bản:

(Để đơn giản, giả sử có) Một dự án gồm 10 module nhỏ và việc thực hiện mỗi module gồm các công đoạn: requirement study, design, coding, unit test (4 công đoạn). Như vậy, số lượng công việc chính bao gồm 10 modules x 4 công đoạn = 40 đầu việc. Ngoài 40 đầu việc chính ra, còn có các gói công việc khác như: dịch thuật, quản lý, kiểm thử tích hợp, release, deploy, họp, báo cáo...

Một số khái niệm:

- Gantt chart
- Earned value management
- WBS, work package, (master) schedule

Một số giải pháp để đo tiến độ (dùng để báo cáo với khách hàng):

1. Redmine EVM (Earned value management)
http://www.redmine.org/plugins/redmine_evm
"This plugin generates line graphical indicators, per Project and open Versions, used in EVM (Earned-Value Management). It shows actual cost (hours reported in log time), planned value (estimated hours indicated in new issue), and earned value distributed in weeks / years."

2. Sử dụng burndown chart - tính lượng công việc còn lại cần để hoàn thành dự án (cách tiếp cận ngược so với EVM).
http://www.redmine.org/projects/redmine/wiki/PluginCharts
http://www.redmine.org/plugins/version-burndown-charts

3. Import MS project → Redmine.
http://www.redmine.org/plugins/redmine-msp-sync
Hướng dẫn sử dụng: Tạo master plan bằng MS Project, sau đó import plan này vào Redmine. Một cách đơn giản để theo dõi tiến độ là track tiến độ của các work package (được tạo bằng MS Project và imported vào Redmine). Tùy theo nhu cầu, có thể track tiến độ ở mức 1.x, 1.1.x , 1.1.1.x (trong WBS)
 
3. Tạo riêng một tracker trong Redmine có tên là "Master Progress" với các task là module, hoặc module x công đoạn. Với cách làm thủ công này, project manager chỉ cần nhận báo cáo tiến độ từ thành viên, ghi vào các task với tracker đó, export gantt chart và báo cáo khách hàng.

Một số điều kiện cần để theo dõi/quản lý tiến độ tốt hơn:
- Roadmap rõ ràng (ở mức high level) (từ đầu đến cuối dự án)
- Quản lý backlog, change request tốt (phần mờ, đã không có trong master plan khi dự án mới start)
- Plan cho từng sprint rõ ràng
- Kết quả công việc của từng sprint rõ ràng

Ví dụ về Redmine Monitor & Control plugin Dashboard
https://www.flickr.com/photos/vuhung/10190749665/
https://www.flickr.com/photos/vuhung/10190839023/in/photostream/
https://www.flickr.com/photos/vuhung/10190784896/in/photostream/


--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2014/06/12

HippyVM: Facebook's HHVM

​HippyVM (viết bằng Python, dùng PyPy = sặc) on average is 7.3x faster than stock PHP and 2x faster than Facebook's HHVM. http://hippyvm.com/#performance



--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

Xu hướng Mùa hè Sáng tạo 2009 - 2014

2014/06/08

phabricator - command line interface and http json api rock

http://phabricator.org/ là một project/task/source code management system hỗ trợ CLI (command line interface), hiếm. Thử cài và chạy lệnh arc (arcanist). Ngoài ra conduit (cung cấp HTTP JSON API) cũng cool, nhẹ nhàng cho tích hợp.​


​Chức năng review code tiện, nhưng chưa hẳn là đặc biệt.

Authorization - phân quyền cho người này, người kia (không) xem được code khá tiện.

phabricator built bằng PHP, không thích lắm.

Apache 2.0 license thoải mái cho doanh nghiệp.

--
Best Regards,
Nguyen Hung Vu [aka: NVH] (in Vietnamese: Nguyễn Vũ Hưng, グェン ヒュン ウー, 阮武興)
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype: vuhung16plus, twitter: vuhung, MSN: vuhung16.
vuhung's facebook  Nguyễn Vũ Hưng's blog on Free and Open Source, Blog tiếng Nhật, Vietnamese LibreOffice, Mozilla & Firefox tiếng Việt

Disclaimer: When posted to social networking groups include, but not limited to Linux Users' Groups, Free and Open Sources forums, mailing lists, the above is my personal opinion and is *not* the opinion of my employer(s), associations and/or groups I join.

2011/11/05

Dùng Translation Memory để dịch với Pootle và Virtaal

Pootle: Công cụ dịch online
Virtaal: Công cụ dịch offline

Cả hai đều cùng tác giả/dự án và đều hỗ trợ Translation Memory

# Tất nhiên hỗ trợ tiếng Việt :)

Về các TM tiếng Việt "to" nhất
- Gnome
- Debian
- Ubuntu
- Mozilla
- OpenOffice/LibreOffice

Có thể import vào để dùng

---------- Forwarded message ----------
From: F Wolff <friedel@translate.org.za>

>
> Not really; Pootle can create a terminology file which you
> can then edit. Terminology is mostly a word-by-word aide to
> have consistent terms in your texts and can be used in
> Pootle itself (as well as in many offline editors).

For reference, here is the information about this functionality in
Pootle:
http://translate.sourceforge.net/wiki/pootle/terminology_matching

Similar terminology matching is available in Virtaal.


> Translation Memory Database (TM) works with one or many
> words (segments) so that one can have suggestions on longer
> text strings - some translation software lets you decide how
> close matches you want as suggestions, and to construct
> rules about word order and such.

For the upcoming version of Pootle we have support for translation
memory during translation. The new version isn't quite ready for release
yet, but we have already used it successfully at some localisation
events and it looks very promising. It uses an online Translation Memory
service that we can keep up to date with the latest translations of
things like LibreOffice.

This service is already available with Virtaal 0.7. I don't think the
current TM database has the very latest LibreOffice translations, but we
can hopefully do a refresh of the data quite soon.

If people are able to help in testing or giving the last bit of
refinement for the upcoming Pootle release, that would be great to speed
up the process. A testing server for the upcoming release is available
here:

http://test.locamotion.org/

It is loaded with some old copy of the database of our main Pootle
server. All data entered there will be lost at some stage, but feel free
to play around. You can see a translation memory result here, for
example:

http://test.locamotion.org/fr/virtaal/fr.po/translate/#unit=187419

Keep well
Friedel

--
Recently on my blog:
http://translate.org.za/blogs/friedel/en/content/firefox-maybe-now-most-popular-africa


--
Unsubscribe instructions: E-mail to l10n+help@global.libreoffice.org
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/l10n/
All messages sent to this list will be publicly archived and cannot be deleted

--
Best Regards,
Nguyen Hung Vu [aka: NVH] ( in Vietnamese: Nguyễn Vũ Hưng )
vuhung16plus{remove}@gmail.dot.com , YIM: vuhung16 , Skype:
vuhung16plus, twitter: vuhung, MSN: vuhung16.
http://www.facebook.com/nguyenvuhung
http://nguyen-vu-hung.blogspot.com/

2011/08/20

Open source activities in Vietnam (Phan mem ma mo)

Một vài tổng kết về họat động phần mềm mã mở ở Việt Nam thời gian gần đây:

A. Về Cộng đồng LUG ở Việt Nam
Danh sách các cộng đồng chính:
- HanoiLug (hơn 300 thành viên) http://blog.hanoilug.org/ và trung
bình 10 emails trao đổi hàng ngày.
- HueLug http://www.huelug.org/
- SaigonLUG http://saigonlug.org/ với 75 thành viên và trung bình 4
emails trao đổi hàng ngày.
- Ubuntu-VN http://www.ubuntu-vn.org/ với hơn 21 ngàn thành viên và
130 ngàn bài viết.

Các LUG có nhiều hoạt đồng online và offline thường xuyên.

# LUG là từ viết tắt của Linux Users Group

Các nhóm FOSS khác:
Ruby on Rails, NukeViet, Magento Vietnam, Vietnam Java, OpenStreetMap

B. Doanh nghiệp mã mở:

Về các công ty liên quan tới mã mở: Theo điều tra sơ bộ, hiện có
khoảng 20 công ty ở Việt Nam chuyên về mã mở.

Vài nhận xét nhỏ về các công ty mã mở ở Việt Nam.

1. Có thể nói rằng toàn bộ các công ty IT *sử dụng* phần mềm mã mở
Chú ý: Firefox cũng là phần mềm mã mở.
Người sử dụng PNMM không ý thức được rằng họ đang dùng PNMM
và do đó không hiểu được trách nhiệm, quyền lợi của
mình với PNMM và phần mềm đóng.

2. Xu hướng tùy biến các PNMM có sẵn là chủ đạo
Lý do: Chi phí tiếp cận nhỏ, phù hợp với các công ty vừa và nhỏ ở Việt Nam.

3. Phát triển PNMM làm sản phẩm chủ đạo và coi đó là một mô hình kinh doanh
chưa phát triển ở Việt Nam.
Lý do: Xem 2.

C. Về dự án MOST:
Mục tiêu: Tạo một hệ điều hành tiếng Việt dành cho người Việt.

Thánh viên: Hơn 160 thành viên trên toàn quốc và nước ngoài:
Thành quả: Việt hóa những phần mềm chính với tỉ lệ Việt Hóa cao.
LibreOffice/OpenOffice.org: 95+%
Gnome: 90+%
Mozilla Firefox/ThunderBird: 97+%
Ubuntu (toàn bộ bản phân phối): 90+%

MOST là một dự án đòi hỏi cập nhật bản dịch liên tục và chuẩn hóa những từ ngữ,
đặc biệt là thuật ngữ IT mới xuất hiện trong quá trình dịch.

Dự án MOST đã sử dụng hiệu quả và công minh nguồn tài trợ của Bộ Khoa
học và Công nghệ trong việc Việt Hóa những sản phẩm trên.

Trao đổi: http://lists.hanoilug.org/listinfo/du-an-most
Trang chủ: http://du-an-most.hanoilug.org/MostWiki

2011/08/11

HTC hydra cracking speed

If password length is not greater than 5 and contains only lower cases,
it will take less than 1 hour and a half to crack such telnet password.

http://thc.org/thc-hydra/
wget http://www.thc.org/releases/hydra-6.5-src.tar.gz
tar xvzf hydra-6.5-src.tar.gz
cd hydra-6.5-src
./configure --prefix=$HOME; make; make install

[user@serverName hydra-6.5-src]$ cd
[user@serverName ~]$ hydra
Hydra v6.5 (c) 2011 by van Hauser / THC and David Maciejak - use allowed only fo r legal purposes.
Hydra (http://www.thc.org/thc-hydra) starting at 2011-08-10 18:43:14
Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns]
[-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV]
[-4|-6] [-x MIN:MAX:CHARSET] [server service [OPT]]|[service://server[:PORT][/O PT]]

Options:
-R restore a previous aborted/crashed session
-S connect via SSL
-s PORT if the service is on a different default port, define it here
-l LOGIN or -L FILE login with LOGIN name, or load several logins from FILE
-p PASS or -P FILE try password PASS, or load several passwords from FILE
-x MIN:MAX:CHARSET password bruteforce generation, type "-x -h" to get help
-e ns additional checks, "n" for null password, "s" try login as pass
-C FILE colon separated "login:pass" format, instead of -L/-P options
-M FILE server list for parallel attacks, one entry per line
-o FILE write found login/password pairs to FILE instead of stdout
-f exit after the first found login/password pair (per host if -M)
-t TASKS run TASKS number of connects in parallel (default: 16)
-W TIME defines the wait time between connects for one thread in seconds
-w TIME defines the max wait time in seconds for responses (default: 20)
-4 / -6 prefer IPv4 (default) or IPv6 addresses
-v / -V verbose mode / show login+pass combination for each attempt
-U service module usage details
server the target server (use either this OR the -M option)
service the service to crack. Supported protocols: cisco cisco-enable cvs ft p[s] http[s]-{head|get} http[s]-{get|post}-form http-proxy icq irc imap ldap2 ld ap3[-{cram|digest}md5] mssql mysql nntp oracle-listener oracle-sid pcnfs pop3 pc anywhere rexec rlogin rsh sip smb smtp smtp-enum snmp socks5 svn teamspeak telne t vnc vmauthd xmpp
OPT some service modules need special input (use -U to see details)

Use HYDRA_PROXY_HTTP/HYDRA_PROXY_CONNECT and HYDRA_PROXY_AUTH env for a proxy.
Hydra is a tool to guess/crack valid login/password pairs - use allowed only
for legal purposes! If used commercially, tool name, version and web address
must be mentioned in the report. Find the newest version at http://www.thc.org/t hc-hydra

Examples:
hydra -l john -p doe 192.168.0.1 imap
hydra -l john -p doe 192.168.0.1 imap PLAIN
hydra -l john -p doe 192.168.0.1 imap PLAIN -s 143
hydra -l john -p doe imap://192.168.0.1/PLAIN
hydra -l john -p doe imap://[::FFFF:192.168.0.1]:143 -6
[user@serverName ~]$ hydra -x -h
Hydra v6.5 (c) 2011 by van Hauser / THC and David Maciejak - use allowed only for legal purposes.
Hydra (http://www.thc.org/thc-hydra) starting at 2011-08-10 18:45:41
Hydra bruteforce password generation option usage:

-x MIN:MAX:CHARSET

MIN is the minimum number of characters in the password
MAX is the maximum number of characters in the password
CHARSET is a specification of the characters to use in the generation
valid CHARSET values are: 'a' for lowercase letters,
'A' for uppercase letters, '1' for numbers, and for all others,
just add their real representation.

Examples:
-x 3:5:a generate passwords from length 3 to 5 with all lowercase letters
-x 5:8:A1 generate passwords from length 5 to 8 with uppercase and numbers
-x 1:3:/ generate passwords from length 1 to 3 containing only slashes
-x 5:5:/%,.- generate passwords with length 5 which consists only of /%,.-

The bruteforce mode was made by Jan Dlabal, http://houbysoft.com/bfg/
[user@serverName ~]$
[user@serverName ~]$ hydra -l user -x 3:5:a localhost telnet
Hydra v6.5 (c) 2011 by van Hauser / THC and David Maciejak - use allowed only for legal purposes.
Hydra (http://www.thc.org/thc-hydra) starting at 2011-08-10 18:47:10
[DATA] 16 tasks, 1 servers, 12355928 login tries (l:1/p:12355928), ~772245 tries per task
[DATA] attacking service telnet on port 23
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)
Error: Not a TELNET protocol or service shutdown: (null)

[STATUS] 282.00 tries/min, 282 tries in 00:01h, 12355646 todo in 730:15h
The session file ./hydra.restore was written. Type "hydra -R" to resume session.

Microsoft patches 1990s-era 'Ping of Death'

Tin hot về security của Microsoft đây.

Đúng là với mã đóng thì security chỉ là thuốc an thần.

Microsoft today issued 13 security updates that patched 22 vulnerabilities in Internet Explorer, Windows, Office and other software, including one that harked back two decades to something dubbed "Ping of Death."

http://www.computerworld.com/s/article/9219022/Microsoft_patches_1990s_era_Ping_of_Death_

2011/08/04

Install zip 3.0 on Linux

Install zip 3.0 on Linux #latest as of 2011/08/03

sudo yum -y install zip
$ rpm -qil zip
-> Sẽ biết gói "zip" ở http://www.info-zip.org/

Download
wget ftp://ftp.info-zip.org/pub/infozip/src/zip30.tgz

tar xvzf zip30.tgz
cd zip30
vim INSTALL

# make -f unix/Makefile generic
# make -f unix/Makefile install

gzip, bip2, xz benchmark

[vuhung@ tmp]$ time tar czf FileName.`date -I`.tar.gz /home/FileName/FileName/
tar: Removing leading `/' from member names

real 0m15.661s
user 0m14.136s
sys 0m2.837s
[vuhung@ tmp]$ time tar cjf FileName.`date -I`.2.tar.bz2 /home/FileName/FileName/
tar: Removing leading `/' from member names

real 1m51.738s
user 1m49.911s
sys 0m3.423s
[vuhung@ tmp]$ time tar cJf FileName.`date -I`.2.tar.xz /home/FileName/FileName/
tar: Removing leading `/' from member names

real 2m26.520s
user 2m24.423s
sys 0m3.217s
[vuhung@ tmp]$ ls -l FileName.2011-08-03.*
-rw-rw-r-- 1 vuhung vuhung 148975540 Aug 3 20:03 FileName.2011-08-03.2.tar.xz
-rw-rw-r-- 1 vuhung vuhung 191752152 Aug 3 20:00 FileName.2011-08-03.2.tar.bz2
-rw-rw-r-- 1 vuhung vuhung 199892101 Aug 3 19:56 FileName.2011-08-03.tar.gz