Test

Tháng Năm 19, 2011

http://localhost/egame/templates/player/player.swf


Chấp nhận chuyển dịch nhân sự

Tháng Mười Một 26, 2008

Bài viết hay về nhân sự, chia sẻ cùng các bạn:

Một vấn đề rất quan trọng khiến nhân viên cảm thấy bất mãn dẫn đến thôi việc là khi niềm tin bị xói mòn. Có một câu nói rất hay mà các nhà quản trị nhân sự cần phải nhớ: “Dùng người phải tin, không tin thì không dùng”.

Khi nhân viên bị xói mòn niềm tin thì không gì có thể cứu vãn nổi, kể cả khi chế độ đãi ngộ cực kỳ hấp dẫn, họ sẽ cảm thấy bị sốc và như bị phản bội. Niềm tin của nhân viên có thể là từ đồng nghiệp, từ chính sách trong công ty, từ chính người sếp trực tiếp của mình… và tất cả những yếu tố này phải được nuôi dưỡng và xây dựng từ chính văn hóa doanh nghiệp.

“Vòng thời gian dịch chuyển nhân sự”

Xu hướng ngày nay, việc nhân viên trung thành, gắn bó với công ty suốt đời ngày càng hiếm. Do đó doanh nghiệp phải chấp nhận một thực trạng là có sự chuyển dịch nhân sự, hơn thế nữa, phải xem đó là một xu hướng tất yếu, thay vì quan niệm “nhân viên phải gắn bó suốt đời với doanh nghiệp”. Nên xem sự dịch chuyển nhân sự là một xu hướng tích cực và điều quan trọng là doanh nghiệp phải có kế hoạch để chủ động hoạch định vòng thời gian chuyển dịch đó sao cho có hiệu quả.

Chiến lược “vòng thời gian dịch chuyển nhân sự” giúp doanh nghiệp không rơi vào thế bị động nếu nhân viên giỏi ra đi. Doanh nghiệp phải luôn luôn xây dựng đội ngũ kế thừa.

Trong trường hợp doanh nghiệp nhỏ, không có điều kiện xây dựng đội ngũ kế thừa, thì phải thay thế bằng cách xây dựng các chuẩn mực, tiêu chuẩn, quy trình rõ ràng trong công việc, làm tăng khả năng thay thế người và không phụ thuộc quá sâu vào một nhân viên nào, cũng như làm giảm thiểu thời gian thích nghi của người mới.

Đối với các doanh nghiệp dịch vụ, việc gìn giữ và đãi ngộ nhân viên là công việc cực kỳ quan trọng và phải được ưu tiên trong chính sách của công ty.

Một công nhân, hay một nhân viên khi thôi việc và chuyển qua một công ty khác không đáng ngại bằng một nhân viên trong một doanh nghiệp dịch vụ này chuyển qua doanh nghiệp dịch vụ khác, nhất là các dịch vụ cùng ngành nghề với nhau. Họ ra đi mang theo cả thông tin, khách hàng và thậm chí cả bí mật của công ty. Đây là những thiệt hại mà các doanh nghiệp dịch vụ không thể nào lường hết hậu quả.

Chiến lược phát triển nguồn nhân lực

Một chiến lược gìn giữ và phát triển nguồn nhân lực phải đi từ gốc, theo một chuỗi liên tục từ khâu tuyển dụng đến đào tạo gìn giữ và phát huy nguồn nhân lực.

Trước tiên, doanh nghiệp phải xây dựng một chính sách nhân sự phù hợp với hoàn cảnh của doanh nghiệp mình. Trong đó, chỉ rõ cơ cấu tổ chức của công ty và các vị trí tương ứng vào cơ cấu đó.

Có bảng mô tả công việc rõ ràng ứng với từng vị trí. Trong bảng mô tả công việc cần quy định rõ theo thứ tự ưu tiên các yêu cầu bắt buộc phải có, cần có và nên có đối với ứng viên. Những yêu cầu này không chỉ bao gồm năng lực chuyên môn mà quan trọng hơn còn là hành vi, thái độ sống, quan niệm, động lực của ứng viên.

Làm được bước này, doanh nghiệp sẽ chọn lọc được nhân viên phù hợp ngay từ khâu tuyển dụng, thu hút đúng người, tránh tình trạng nhân viên vào thử việc sau vài tháng lại thấy không phù hợp phải nhảy việc.

Khi đã tuyển dụng đúng người, bước tiếp theo cần phải có sự hỗ trợ để nhân viên mới hòa nhập được vào môi trường làm việc và văn hóa riêng của công ty. Ở các công ty chuyên nghiệp, có hẳn một quy định đón chào nhân viên mới như thế nào.

Nếu không, tối thiểu thì công ty phải thông tin cho nhân viên mới hiểu và biết rõ công ty đang muốn gì ở họ, công ty có trách nhiệm gì với họ, và như thế nào là làm tốt công việc. Một bảng mô tả cơ cấu công ty rõ ràng, quy định trách nhiệm, nghĩa vụ, quyền hạn, sự thăng tiến của từng vị trí sẽ giúp rất nhiều cho nhân viên mới.

Lương bổng đóng vai trò như thế nào đối với sự trung thành, gắn bó, nỗ lực của nhân viên? Thông thường, nhân viên đi làm luôn muốn được trả lương tương xứng với công sức họ bỏ ra. Lưu ý ở đây là mức lương “tương xứng”chứ không phải là mức lương cao.

Vậy, làm thế nào để nhân viên cảm thấy “tương xứng” là một nghệ thuật của người quản lý nhân sự. Đôi lúc “tương xứng” được hiểu là giá trị lao động của họ được tôn trọng, được đánh giá cao và họ cảm thấy đã đóng góp được rất nhiều vào sự phát triển của công ty. Quan trọng hơn, nhân viên thấy chính mình đóng vai trò quyết định đối với việc tăng lương cho chính họ nếu chính sách của công ty tạo được sự gắn kết giữa quyền lợi nhân viên và quyền lợi của công ty.

Tạo động lực cho nhân viên, hướng nhân viên vào những yếu tố khác ngoài lương cũng rất quan trọng. Ví dụ như gia tăng tính thử thách trong công việc giúp nhân viên vượt qua bản thân họ, giúp nhân viên yêu bản thân, yêu công việc hơn.

Văn hóa doanh nghiệp cũng đóng một vai trò rất quan trọng trong việc gìn giữ và phát huy nguồn nhân lực. Một môi trường làm việc minh bạch, rõ ràng cho hiệu quả làm việc cao. Nhưng để giữ người, cần phải xây dựng mối quan hệ đoàn kết, thân ái, vui vẻ, phấn khởi trong công ty, làm sao để mỗi người đều cảm thấy mình có liên hệ rất mật thiết, có vai trò quan trọng trong một tập thể, đó là nghệ thuật của một nhà quản trị nhân sự tài ba.

Hơn nữa, các hoạt động ngoại khóa (teambuilding) còn giúp nhân viên rèn luyện kỹ năng sống, tinh thần đoàn kết vì mục tiêu chung, tự tin và yêu công việc hơn và đó là xu hướng được hướng tới đối với các doanh nghiệp thành đạt.

Thanh Danh (TBKTSG)



People says

Tháng Mười Một 20, 2008

1.  

I know…you don’t know…that I know

That you don’t know what I know…

But you know that we all know nothing


CakeAMFPhp installation steps

Tháng Mười 30, 2008

1. Download cakeamfphp at cakefore project website, I use CakeAMFPHP.0.6.0.

2. Download Cakephp1.2.x at CakePHP website

3. Extract cakeamfphp and cakephp 

4. Copy

                      /cakeamfphp/webroot/* => ../app/webroot/

                      /cakeamfphp/venders/* => ../app/venders/

                      /cakeamfphp/views/* => ../app/views/

5. Edit app/webroot/amfbrowser/config.inc.php, at line 75

Replace:

loadController (null);

By

App::import(‘Controller’, null);

App::import(‘Controller’, ‘App’);

6. Edit app/webroot/cake_gateway.php, at line 75

Replace

require CORE_PATH.’cake’.DS.’bootstrap.php’; 
loadController (null);   
vendor(‘cakeamfphp’.DS.’amf-core’.DS.’app’.DS.”CakeGateway”);  

to 

require CORE_PATH.’cake’.DS.’bootstrap.php’; 
App::import(‘Controller’, null); 
App::import(‘Controller’, ‘App’); 
require_once( CORE_PATH . ‘vendors’ . DS . ‘cakeamfphp’.DS.’amf-core’.DS.’app’.DS. ‘CakeGateway.php’); 

7. Edit app/vendors/cakeamfphp/amf-core/app/CakeActions.php, at line 195

Replace 

$controller->_initComponents(); 

By 

$controller->Component->init($controller); 

8. Edit app/vendors/cakeamfphp/amf-core/app/CakeGateway, at line 25

Replace:

vendor(‘cakeamfphp’.DS.’amf-core’.DS.’app’.DS.’Gateway’); 
vendor(‘cakeamfphp’.DS.’amf-core’.DS.’app’.DS.’CakeActions’);

by

require_once(APP.’vendors’.DS.’cakeamfphp’.DS.’amf-core’.DS.’app’.DS.’Gateway.php’); 
require_once(APP.’vendors’.DS.’cakeamfphp’.DS.’amf-core’.DS.’app’.DS.’CakeActions.php’); 

Let’s join in CakePHP with AMF

 

 

 




Steps to Install mysql in slackware 12.0

Tháng Mười 14, 2008

1. Download mysql package: mysql-5.0.51b-i486-1.tgz for slackware or copy it from your Slackware DVD ( …/source/ap/mysql/mysql-5.0.51b-i486-1.tgz)

2. Install package:

#installpkg mysql-5.0.51b-i486-1.tgz

3. Copy /etc/my-medium.cnf to /etc/my.cnf

#cp /etc/my-medium.cnf /etc/my.cnf

4. Install DB

#mysql_install_db

5. Make mysql user in mysql group (if not existed)

#groupadd mysql

#useradd -g mysql mysql

6. Make mysql is owner of /var/lib/mysql

#chown -R mysql /var/lib/mysql

7. Start your mysql server 

cd /etc/rc.d

#./rc.mysqld start

8. Change root password

#mysqladmin -u root -p ‘yourpassword’

If you want to access your mysql server remotely:

9. Comment line: SKIP=–skip-networking on /ect/rc.d/rc.mysqld  and comment skip-networking in /etc/my.cnf (open port 3306)

10. Configure to mysql database (make mysql server allow you to connect to)

GRANT ALL PRIVILEGES ON *.* to ‘root@yourremotehost’ identified by ‘yourpassword’ 

 

Have a nice installation.


CakePHP, Prototype & Json

Tháng Mười 7, 2008

In my recent blog, I’ve presented a development model, frameworks and tools for scalable, high performance systems as social networks. CakePhp, Prototype & Json are three tools that we must learn fisrt. In this blog, I would note some steps to use CakePHP, Prototype and Json together.

1. Download and install CakePHP 1.2x (I installed and run well in Slackware 12.0)

1.1 Download CakePHP 1.2x (Example: cake_1.2.0.7692-rc3.tar.gz

# wget http://cakeforge.org/frs/download.php/671/cake_1.2.0.7692-rc3.tar.gz

1.2 Extract and move to /www/ folder

# tar -zxf cake_1.2.0.7692-rc3.tar.gz

# mv cake_1.2.0.7692-rc3 /www/cake_1.2.0.7692-rc3

1.3 Modify /etc/httpd/httpd.conf

1.3.1. Enable mod_rewrite (just remove comment – uncomment)

LoadModule rewrite_module /lib/httpd/modules/mod_rewrite.so

1.3.2. Re-configure DirectoryRoot 

DocumentRoot “/www/cake_1.2.0.7692-rc3/”

1.3.3.  Add DirectoryIndex (index.php index.htm index.html) and modify AllowOverride ( All ) params to tag <Directoy> of “/www/cake_1.2.0.7692-rc3/”

<Directory “/www/cake_1.2.0.7692-rc3/”>

    DirectoryIndex index.php index.htm index.html

    Options Indexes FollowSymLinks

    AllowOverride All

    Order allow,deny

    Allow from all

</Directory>

1.3.4 Restart your apache

# cd /etc/rc.d/

# rc.httpd restart

1.4 Configure cakephp database, modify …/app/config/database.php

var $default = array(

‘driver’ => ‘mysql’,

‘persistent’ => false,

‘host’ => ‘yourservername_or_ip’,

‘login’ => ‘db_username’,

‘password’ => ‘db_password,

‘database’ => ‘db_name’,

‘prefix’ => ”);

You also can define more than one database, but you should define those with names are not ‘default’. 

1.5. chmod and chown cakephp ../app/tmp folder

chmod 775 -R /www/cake_1.2.0.7692-rc3/app/tmp

chown -R your_apache_account /www/cake_1.2.0.7692-rc3/app/tmp

Now, http://localhost/ is showing your cakePHP page (You should have break then go to the 2nd step)

2. Intergrate Json to CakePHP

3. Download Prototype and use with CakePHP

4. Sample

To be continous …


Mô hình hệ thống và công cụ !

Tháng Mười 6, 2008

Từ khi dùng CakePHP, tôi gần như sang một trang mới về hướng phát triển sản phẩm. Khác xưa khá nhiều, tạm bỏ .NET, C# và các công nghệ của Microsoft, tôi chuyển hướng sang phát triển những sản phẩm hệ thống mạng cộng đồng có thể cung cấp dịch vụ cho cả hàng triệu người dùng, hàng tỷ lượt truy cập và visit mỗi ngày. Đó không phải là ước mơ, đó là kế hoạch và tôi đã có những giải pháp và đường hướng đi cho chính tôi, cho những sản phẩm mà tôi sẽ phát triển. Bước đầu chuyển hướng gặp nhất nhiều bỡ ngỡ. CakePHP giúp tôi những bước làm quen đơn giản, cho tôi một nền tảng để xây dựng những kế hoạch tương lai gần.

Một hướng phát triển trong thời gian đây mà tôi quan tâm đến, khá theo định hướng của ông lớn Google, mô hình hệ thống phân tán dịch vụ đa thành phần. Tôi tạm đặt tên là như vậy. Ajax là một công nghệ, kết hợp với mô hình trên quả thực là thành bộ đôi không gì tốt hơn. Trước đây, khi định dạng dữ liệu XML giữa client-server và ngược lại được những người phát triển Ajax sử dụng rất phổ biến, nhưng từ khi xuất hiện Json, XML dần trở thành dĩ vãng bới thua kém về sự nhanh-gọn-rẻ trong sử dụng. Và từ khi Prototype hỗ trợ Json, tôi thậm chí còn không còn nghĩ đến XML nữa. Công nghệ thật thay đổi nhanh chóng.

Thật là may mắn, qua mấy buổi cafe với bạn, google tài liệu và cả đống sách tính bằng GB trong máy, mô hình phân tán dịch vụ đa thành phần là cốt lõi, là định hướng; CakePHP, Json và Prototype là những công cụ để tôi xây dựng hệ thống cho các sản phẩm sắp tới của mình. Tôi sẽ có những bài báo chi tiết hơn cách xây dựng, cấu hình hệ thống để những công cụ này làm việc với nhau thật hiệu quả và áp dụng mô hình hệ thống phân tán dịch vụ đa thành phần vào xây dựng hệ thống của riêng bạn như thế nào !!! Hãy đón đọc trong các kì sau

 

To be continuous …


Tạo ứng dụng mới trên Red5 nhanh nhất !

Tháng Mười 3, 2008

Chào. 

Thêm một bài nữa về Red5. Hôm qua tôi vừa lấy (qua svn) bản mới nhất của Red5 về dịch và chạy thử thấy có vài chút thay đổi. Thật là tuyệt, phiên bản mới Red5 cho tôi nhiều hứng khởi. Nào ta bắt đầu tạo một ứng dụng mới cho Red5.

1. Background

Một ứng dụng trên Red5 được đặt trong thử mục red5/webapps/ (ví dụ: red5/webapps/oflaDemo). Cấu trúc của một ứng dụng (trong phiên bản mới nhất) sẽ bao gồm :

webapps/myNewApp

                                +——- WEB_INF (Thư mục chạy chính)

                                +——- +——- classeses (để  các .class sau khi biên dịch)

                                +——- +——- com

                                +——- +——- +——- comname

                                +——- +——- +——- +——- mynewapp

                                +——- +——- lib (để các thư viện cho ứng dụng)

                                +——- +——- red5-web.properties

                                +——- +——- red5-web.xml

                                +——- +——- web.xml

                                +——- scr (thư mục chứa các tệp nguồn .java)

                                +——- build.properties

                                +——- build.xml

Bạn cần có một chút kiến thức cơ sở cho các vấn đề này. Để có điều này, không có gì chi tiết hơn Red5 website, tại đó bạn có rất nhiều manual và tutorial để bồi bổ kiến thức. Thậm chí, bạn có thể đọc ngay trong thư mục red5/doc cũng đã rất nhiều rồi.

2. Tạo một ứng dụng mới nhanh như thế nào

Các ứng dụng của Red5 thiết kế để dễ dàng cài đặt và khá độc lập với nhau. Đó là lợi thế để ta có thể tạo một ứng dụng trên Red5 trong nháy mắt (bạn có tin không). Thật dễ, copy/paste một ứng dụng có sẵn của Red5 (ví dụ oflaDemo) và đổi tên nó thành tên ứng dụng của bạn (ví dụ myNewApp). Xong, bây giờ đến lúc bạn cấu hình lại một chút (giả sử ứng dụng của bạn trong package: com.comname.mynewapp)

2.1 Tệp web.xml 

Thay đổi lại display-name 

<display-name>My new App</display-name>

Thay đổi <context-param> cho webAppRootKey

<context-param>

<param-name>webAppRootKey</param-name>

<param-value>/myNewApp</param-value>

</context-param>

2.2 Thay đổi red5-web.xml

Chỉnh lại tham số web.handler

<bean id=”web.handler” class=”com.comname.mynewapp.Application”>

2.3 Thay đổi red5-web.properties

Chỉnh lại webapp.contextPath

webapp.contextPath=/myNewApp

2.4 Sửa lại code

He, đi xong 1/2 quãng đường rồi đó

Tiếp theo là đến code, tạo thư mục src/com/comname/mynewapp

Ok, copy .java cũ của oflaDemo vào thư mục bạn vừa tạo rồi xóa thư mục /org/red5 …. đó đi. Sửa lại đường dẫn package thành com.comname.mynewapp. Tiếp theo hãy sửa đổi code lại theo ý bạn

2.5 Biên dịch

Sửa lại tệp build.xml cho đúng với cấu hình, sau đó trong webapps/myNewApp 

ant

 

Hãy nhớ đặt các biến môi trường: JAVA_HOME, ANT_HOME, RED5_HOME. Nếu không bạn phải sửa nhiều mới build thành công đó. Đừng quên build red5 trước khi build ứng dụng mới này, tôi có  1 bài hướng dẫn cài và build red5 rồi)

Sau khi build lại, khởi động lại red5, và thử chạy xem sao. Chúc thành công.


Ngắt tiếng beep kinh khủng của Centos, Red Hat, Fedora như thế nào ?

Tháng Mười 2, 2008

Hi

Trong bài này, tôi xin được hướng dẫn những ai đang phải khó chịu khi dùng Centos, Red Hat, hay Fedora core bởi tiếng beep mỗi khi gõ sai một lệnh trong terminal. Công việc của chúng ta thiệt là đơn giản bắt đầu với việc ngừng không load thiết bị của speaker

#rmmod pcspkr

Rồi, hãy đưa chú pcspkr này vào blacklist bằng cách mở tệp /etc/modprobe.d/blacklist

#vi /etc/modprobe.d/blacklist
Sau đó bạn thêm dòng này vào trong một đống thứ blacklist ghi trong đó
blacklist pcspkr

Lưu lại và mở tiếp file /etc/rc.d/rc.local:

# vi /etc/rc.d/rc.local

Thêm dòng này nữa :
/sbin/rmmod pcspkr

Lưu lại và thoát. Chúc mừng bạn, bây giờ bạn đã thoát khỏi tiếng beep khó chịu rùi.

Cài đặt Red5

Tháng Mười 1, 2008

Tôi nhớ hôm đó là một ngày nắng hạ, mong muốn được dịch và sửa mã Red5 một lần dù chỉ là hello Red5 cũng làm tôi tốn mất 1/2 buổi sáng. Việc đầu tiên là google với những bài hướng dẫn trong trong website còn vô cùng đơn giản của Red5 đã giúp tôi một phần đáng kể. Bắt đầu là việc đi tìm những phần cần thiết cho một Red5.

1. Slackware 12.1(Trên máy ảo VMWare): Tôi được giới thiệu từ một người bạn đang sử dụng Slackware và kết ngay nó từ cái nhìn đầu tiên với giao diện Slacke17. Nhưng thú thực, tôi chẳng mấy khi gọi lệnh startx lên. Phần lớn là command line, tôi thích vậy, không thích dùng chuột và hay dùng putty. Tôi cài Slackware rất nhanh nhưng thời gian để torrent iso Slackware DVD thì làm tôi rất sốt ruột. Có thể bạn không cài Slackware, dùng Centos, Suse hay bất kể hệ điều hành khác theo tôi không có nhiều khác biệt. 

2. ANT (Apache Ant 1.7.1)

Khi tôi đọc bài báo và làm theo hướng dẫn, Apache Ant mới đang Version 1.7.0, hiện tại phiên bản của Ant là 1.7.1, bạn cần download apache ant để có thể dịch được Red5. Việc cấu hình Red5 vô cùng đơn giản: 

– remove version ant nếu version thấp hơn 1.7.0

– Giải nén ant

tar -xzf apache-ant-1.7.1-bin.tar.gz

– Copy ant tới thư mục /usr/local/ant

mv apache-ant-1.7.1 /usr/local/ant

– Rồi đến lúc bạn cần cấu hình để chạy được Ant rồi đó, việc này không khó, nguyên tắc chung là bạn cần chèn thư mục /user/local/ant/bin vào trong biến môi trường PATH để có thể gõ và chạy ant tại bất kì đâu và cấu hình biến môi trường ANT_HOME để dịch. Trong Slackware tôi chỉ edit vào cuối /etc/profile có 2 dòng:

PATH=/usr/local/ant/bin:$PATH

ANT_HOME=/usr/local/ant/bin

Trong Centos, Suse, Fedora hay các hệ khác, bạn có thể sử dụng lệnh export

export PATH= $PATH:/usr/local/ant/bin

export ANT_HOME=”/usr/local/ant/bin”

(Tôi hay thêm hai dòng này vào .bashrc :))

Thế là xong chú Ant

3. Cài đặt Java

Các phiên bản Red5 khác nhau cần các phiên bản Java khác nhau, bản Red5 0.7.0 tôi sử dụng Jdk 1.6.0 update 01. Tốt rồi, việc cài đặt java không khó, trước tiên bạn nhớ remove version Java phiên bản thấp hơn đi.

– Download (Bạn có thể chọn version theo link)và cài đặt Java theo hướng dẫn,

– Giả sử bạn cài đặt Java vào trong thư mục /usr/local/java/jdk1.6.0_01, ta sẽ sửa đổi biến môi trường một chút:

PATH=/usr/local/java/jdk1.6.0_01/bin:$PATH  #(bạn có thể đặt biến môi trường này cùng với ant như trên)

JAVA_HOME=/usr/local/java/jdk1.6.0_01

4. Cài chú Red5 nào

He he, thế là xong vài thứ phụ kiện. Rồi chúng ta chuẩn bị dịch Red5

Bạn có thể sử dụng luôn phiên bản Red5 mà bạn đã download từ Red5 home page, tôi thì hay sử dụng svn:

svn checkout http://red5.googlecode.com/svn/java/server/trunk red5

Khà khà, bây giờ thì vui rồi:

cd red5

ant  

Sau cùng thì chạy red5 cái nào:

./red5.sh

Chúc bạn chạy được Red5 theo hướng dẫn này.