Thứ Sáu, 30 tháng 7, 2010

Video Học Visual Studio 2010 (Lồng Tiếng Việt)

Highslide JS

Video lồng tiếng rất nét và rõ của tác giả Nguyễn Bửu .
Bao gồm những nội dung sau:
*Giới thiệu và những điểm mới trong C# 3.0.
*Giới thiệu và những điểm mới trong C# 4.0.
*Giới thiệu về LinQ.
*Giới thiệu và hướng dẫn xây dựng website với mô hình ASP.NET MVC 2.0.
*Hướng dẫn xây dựng một ứng dụng BlogSharp với mô hình ASP.NET MVC 2.0.
*Giới thiệu và hướng dẫn sử dụng thư viện mã nguồn mở Combres.

FFSJ để Join và dùng 7-zip để giải nén nhé:
Nguồn: shoptinhoc

Thứ Năm, 29 tháng 7, 2010

Chứng minh 1+1=2

Hôm nay có 1 bạn nick nguyenieng hỏi mình làm sao chứng minh 1+1=2. Hic, đau đầu quá. Điều đó hiển nhiên mà. Hên là nhờ bất đẳng thức Cauchy mà mình chứng minh được điều này.
Nhắc lại bất đẳng thức Cauchy:

  • Với 2 số:
\frac{a+b}{2} \geq \sqrt{ab}
Đẳng thức xảy ra khi và chỉ khi a = b

  • Với n số:
\frac{x_1 + x_2 + ... + x_n}{n} \geq \sqrt[n]{x_1.x_2. ... .x_n}
Đẳng thức xảy ra khi và chỉ khi  x_1 = x_2 = ... = x_n\,
Trở lại với bài toán 1+1=2.
Ta đặt a=1, b=1 với a,b>=0.
Áp dụng bất đẳng thức Cauchy:



Đẳng thức xảy ra khi a=b: a+b=2
Mà a=b=1
=>1+1=2.

Giới thiệu về ASP.NET MVC

Đây là bài giới thiệu ASP.NET MVC mình tìm được trên mạng, cũng khá tổng quan cho các bạn mới bước đầu tìm hiểu.
Gồm các nội dung:
  • What is ASP.NET MVC?
  • Why ASP.NET MVC?
  • Compare ASP.NET Forms to ASP.NET MVC
  • Setting Up Visual Studio MVC Project Template
  • Routes
  • Controllers
  • Views
  • Models
  • Unit Testing
  • MVC Wrap Up – What and Why

Introducing ASP.NET MVC
View more presentations from Intertech Training.
Link download: tại đây.

Thứ Ba, 27 tháng 7, 2010

Đố vui C++

Thêm code vào để hàm main có thể chạy được:
#include <iostream>
using namespace std;

int main() {
cout << add(5) << endl; //in ra 5
cout << add(2)(2) << endl; // in ra 4
cout << add(-1)(10)(100) << endl; //in ra 109
cout << add(4)(3)(2)(1) << endl; // in ra 10
system("pause");
return 0;
}
Lời giải:
Thêm code này trước hàm main:
struct add {
int x;
add(int x) : x(x) {}
add operator()(int y) {
return add(x+y);
}
};

ostream& operator << (ostream &bo, add a) {
cout << a.x ;
return bo;
}

Thứ Hai, 26 tháng 7, 2010

How postback works in ASP.NET

Dưới đây là bài viết tiếng Anh giải thích postback làm việc như thế nào?
Chúng ta nếu đã từng học sơ qua lập trình web động ( như PHP chẳng hạn), chúng ta đã biết sơ qua phương thức Post và Get. Theo mình nghĩ Postback thực ra cũng là hình thức gởi dữ liệu cũ nhưng đã được đơn giản hóa bằng cách viết lệnh đơn giản:
  • Sử dụng Code behind trong ASP.NET
  • Tự phát sinh ra các hàm kiểm tra thông qua ASP.NET Engine ( như lời gọi hàm Postback, tự phát sinh sự kiện, tham số, viewstate kèm ID).
Đây là bài viết chi tiết:

Introduction

In this article, we will take a closer look at how ASP.NET pages post back to themselves, and how to customize this feature in our web applications.

function __doPostBack(eventTarget, eventArgument)

One of the most important features of the ASP.NET environment is the ability to declare controls that run on the server, and post back to the same page. Remember the days of classic ASP? We would create a form which would accept the user's input, and then we would most probably have to create another page that would accept all those inputs, either through HTTP GET or POST, and perform some kind of validation, display and action. Sometimes, even a third page was necessary to perform our actions. This wasted a lot of time and complicated things when you had to make a change. But of course, this is not necessary any more with ASP.NET. There is no need to create second pages that accept the inputs of the first, process them and so on. Form fields and other controls can be declared to run on the server, and the server simply posts the page back to itself and performs all the validation, display and actions. Our life as web developers has become a million times better. But how exactly is this done?
When a control is declared to run on the server, a VIEWSTATE is created which remembers the ID of that control, and the method to call when an action is performed. For example, let's say we input this HTML on a page:
<script language="VB" runat="server">
Sub Test_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'enter your code to perform
End Sub
</script>
<html>
<body>
<form runat="server" id="myForm">
<asp:linkbutton id="Test" runat="server" text="Create Text file" onclick="Test_Click" />
</form>
</body>
</html> 
 
This is a very simple page. We declare only one web control, a linkbutton, to run on the server, with an ID of Test and we assign a method called Test_Click to run when the link is clicked on the page. The linkbutton has to be wrapped inside a form that runs on the server as well. We save the above as an ASPX page and then we browse to it. The HTML that gets created looks like this:
<html>
<body>
<form name="myForm" method="post" action="test.aspx" id="myForm">
<input type="hidden" name="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE"
value="dDwtMTAwOTA0ODU1NTs7PsllCK1DzvZsK0J6OQ2dxKqmEwVs" />

<script language="javascript">
<!--
function __doPostBack(eventTarget, eventArgument) {
var theform = document.myForm;
theform.__EVENTTARGET.value = eventTarget;
theform.__EVENTARGUMENT.value = eventArgument;
theform.submit();
}
// -->
</script>

<a id="Test" href="javascript:__doPostBack('Test','')">Create Text file</a>
</form>
</body>
</html>

Our link calls the javascript function __doPostBack when clicked (that's 2 underscore symbols in front of it). You do not write this function, instead it is generated by the ASP.NET engine and automatically included in our page. It submits the form to the same page, and accepts 2 arguments:
  1. eventTarget: the control doing the submission
  2. eventArgument: any additional information for the event
For example, our generated link button, is telling the javascript function that the control submitting the form is the one with ID=Test, and no further information is needed for the second argument. The javascript function is actually setting 2 hidden form fields with these 2 arguments: __EVENTTARGET and __EVENTARGUMENT. When the form is submitted back to the server, the server reads these 2 hidden form fields and decides what submitted the form and performs the necessary action. In this case, the server will determine that the linkbutton performed the action, and will execute the Test_Click method.
Lastly, I should point out that at least one control needs to be set to Visible, for the server to generate the __doPostBack function in our page. Even if we have numerous web controls declared to run on the server, but they are all set to Visible=false, then the javascript function will not be included and we will not be able to perform any actions. You can test this out, by changing the linkbutton source code to this and looking at the source code generated when it runs:
...
<asp:linkbutton id="Test" onclick="Test_Click" runat="server" text="Create Text file" visible="false">
...

Calling __doPostBack in our own javascript

So now that we have seen how the postback process works, we can easily create web applications to use this feature. Let's go through an example, and hopefully things will clear up more.
Let's assume that we have a link on our page that creates a file on the server. When we click on the link, we might want to pop up a javascript input box where the user can type the filename. If the user types something in and then clicks OK, the page will post back to itself and perform the action. If the user clicks on CANCEL, then nothing will happen. Something like this:
User Prompt
Let's see the HTML code needed to do this:
<script language="VB" runat="server">
Sub CreateFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim strFileName As String = funcParam.Value
'custom code to create a text file
End Sub
</script>
<html>
<head>
<script language="JavaScript">
//ask for user input and then create file
function CreateFile() {
//get filename from the user
var fileName = prompt('Type the name of the file you want to create:','');
//if the user clicks on OK and if they have entered something
if ((fileName) && (fileName!="")) {
//save the filename to the hidden form field 'funcParam'
document.forms['myForm'].elements['funcParam'].value = fileName;
//call the postback function with the right ID
__doPostBack('CreateFile','');
}
}
</script>
</head>

<body>
<form runat="server" id="myForm">
<a href="javascript:CreateFile();">Create Text file</a>
<asp:linkbutton id="CreateFile" runat="server" onclick="CreateFile_Click" />
<input type="hidden" runat="server" id="funcParam">
</form>
</body>
</html>
Inside our form we have 3 controls:
  1. a link to call the javascript CreateFile function.
  2. a linkbutton that runs on the server, with ID CreateFile, and a CreateFile_Click method which runs when it is clicked.
  3. a hidden form field with ID funcParam, to store the filename that the user types in our javascript pop up.
Our custom javascript is very simple. First, it pops up an input box, where the user is asked to type a filename. If the user clicks on OK, and actually enters something, then we store this filename in our hidden form field, funcParam. Then we call the __doPostBack function, making sure we pass the ID of the linkbutton to make it think that it's the linkbutton control that is submitting the form.
Since the linkbutton has an event called CreateFile_Click which runs on the server when it is clicked, then the page will submit to itself, and this method will run. The first thing we want to do in this method is get the name of the filename, and this is done by funcParam.Value. The remaining code to create the actual file on the server is not included, since the purpose of this article is not to show this. You can add it in, or create some other code here that performs a different action.
Keep in mind that for every javascript function that you create which calls the __doPostBack function, you will need to create a control that runs on the server - just like the shown above. We are not restricted to linkbuttons though - we can use any of the ASP.NET web controls.

Conclusion

We have seen how the postback function works with ASP.NET, and how to use it in our web applications. This article has concentrated on how to use this with a simple prompt box, but you can use a similar technique to combine the __doPostBack function with a showModalDialog function, or to return a value from another pop up window.

Thứ Bảy, 24 tháng 7, 2010

10 điều bạn sẽ phải chấp nhận nếu làm việc trong ngành IT

1/Ở những ngành khác thì nữ vừa nhiều vừa xinh đẹp, ngành IT thì ngược lại.

- Điều này thì tự ai đã và đang học CNTT ở các trường ĐH thì biết rồi. Không riêng gì trong ngành CNTT mà trong những ngành kĩ thuật thì số lượng nữ giới cũng rất thấp. Tuy nhiên so với các ngành như Cơ Khí, Điện Tử thì tỉ lệ nữ giới học CNTT cũng còn khá cao. Nhưng khi học xong và đi làm thì tỉ lệ nữ giới làm lập trình lại càng giảm, đa số các bạn âý làm QC, DB, BA, … .Ở nhóm tôi khoảng 20 người chỉ có mỗi 2 dev, 2 QC là nữ, còn lại toàn đực rựa. Tuy nhiên cũng an ủi là trong cty vẫn có nhiều chị em xinh lắm hĩ hĩ nhưng không làm ở bộ phận lập trình. Thiếu thốn này thường dẫn đến điều thứ 2. :feel_good:


2/Xác suất phải lập gia đình với người cùng ngành rất cao.

- Nghe có vẽ như hơi mâu thuẫn, đã ít nữ thì làm sao xác suât này cao được. Thế nhưng những người làm IT thì kể từ lúc đi làm thường nhìn máy tính nhiều hơn giao tiếp với ngưòi thật nên sẽ ăn nói kém, giao tiếp kém, cơ hội gặp những phụ nữ khác ngành cũng ít hơn những người làm ở ngành khác nên trời kiu ai nấy dzạ :bbpbuon:. Tuy nhiên chúng ta thường quen nửa cuộc đời của mình từ trong trường ĐH hoặc ở nơi làm việc nên điều này có thể cũng đúng với những người làm ở các ngành khác. Dù những người làm ở ngành IT chúng ta thường được cái thông minh, nhưng 2 người thông minh thì sinh con ra chưa chắc thông minh nên đây cũng là một hiểm họa tiềm tàng. Hơn nữa, 2 người cùng ngành IT giờ gặp nhau ngoài nói chuyện bug, code thì chán chết. Phải chi chàng kể chuyện bug, nàng hỏi bug là gì huh anh thì có thú vị ko nhẩy :bbpdthu:

3/Bạn sẽ bị yếu đi.

- Điều này không có gì phải bàn cãi. Thứ nhất ngồi nhiều … thì bụng và mông sẽ to. Bụng càng to càng khó làm... nhiều thứ và tuổi thọ giảm. Ngồi nhiều thì còn có thể gây ra nhiều bệnh tế nhị khác. Ngoài 2 cái bệnh đằng trước và đằng sau thì còn bệnh ở mắt do nhìn quá nhiều. Đa số người làm IT xung quanh ta đều bị cận thị. Gõ máy tính thường xuyên sẽ ảnh hưởng đến tim, rê chuột thường xuyên sẽ thoái hóa cổ tay. Ngoài ra cột sống sẽ bị chai hoặc mọc gai do cái tật ngồi nhiều hơn đứng của công việc này. Ngoài ra, những ngưòi làm IT thường có thói quen làm việc, sinh hoạt ban đêm. Cái giờ đáng lẽ những người trong những ngành khác làm cái việc mà ai cũng biết là việc gì đấy thì người trong ngành IT lại gõ gõ, click click và nó thường gây ra bệnh đau bao tử. Tay chân ít hoạt động nên con người thường cảm thấy mỏi mệt, lười vận động, thậm chí cả lười tắm nên đừng thắc mắc tại sao một số SV ở ngành IT thường hay ở dơ. Nói chung làm cái nghề này nếu ko chịu sinh hoạt … điều độ thì đừng mong thọ.:bbpskien:

4/Bạn sẽ thường xuyên bị làm phiền bởi người quen.

- Đây là một trong những điều tệ hại và khó chịu nhất mà bạn sẽ gặp phải. Những người quen của bạn, bạn bè, bà con, cô dì chú bác, bạn của ba của mẹ sẽ gọi điện nhờ bạn giúp khi họ không nghe nhạc được, máy khởi động chậm, không thấy webcam, không biết đưa hình lên blog. Kiểu hỗ trợ kĩ thuật miễn phí này bạn nên cẩn thận vì nó sẽ thường xuyên lặp đi lặp lại. Một số trường hợp bạn sẽ được trả công nhưng theo tôi bạn chẳng cần số tiền chả đáng đổ xăng đó làm gì so với thời gian bạn phải chạy đi chạy lại. Đa số những người nhờ bạn giúp sẽ mong muốn được hỗ trợ miễn phí và tôi chắc chúng ta sẽ không vui gì về điều đó. Vì vậy hãy tập nói không khi có thể.:bbptuc:

5/Bạn sẽ phải thường xuyên về trễ mà không được trả tiền.

- Đặc thù của ngành IT là công việc thường không thể tính chính xác bằng giờ. Có nghĩa là không phải cứ 1 lượng thời gian nào đó thì sẽ làm xong một công việc. Thuờng thì chúng ta sẽ phải ở lại thêm 1h, 2h để làm nốt công việc của mình nếu bạn là người có trách nhiệm. Nhưng dù có trách nhiệm hay không thì khi công việc chưa xong mà đã gần đến deadline thì bạn vẫn phải ở lại để hoàn thành những gì còn dở dang, và tất nhiên không có xu nào cả.:bbpnrang:

6/Bạn sẽ thường xuyên bị stress.

- Khi làm việc với những project lớn nhiều người, công việc sẽ theo flow rõ ràng, bạn làm ngưòi khác test, manager dí, và khi đến những ngày cuối cùng là lúc bạn làm việc nhiều nhất. Phải suy nghĩ nhiều, cơ thể mệt mỏi thiếu ngủ cộng với căng thẳng khi làm việc sẽ khiến nhiều người bị stress. Theo một số điều tra thì thủ phạm gây stress nhiều nhất là email. Khi phải đọc khoảng 100 email một ngày thì người hiền lành cũng trở nên gắt gỏng. Bởi vậy những người làm IT thường hay khó chịu đột xuất.
10 điều tồi tệ khi làm trong ngành CNTT

7/Lương bạn sẽ tăng rất chậm.

- Làm IT lương khởi điểm sẽ khá cao so với một số ngành nhưng tốc độ tăng sẽ chậm và ít đột biến. Thường thì những người làm IT sẽ giải quyết nhu cầu tăng lương bằng cách nhảy sang công ty khác. Cho nên những bạn sinh viên mới ra trường nên tìm một công ty có lương khởi điểm khá tốt vì thông thường chu kì tăng lương sẽ là từng năm và khi lạm phát 2 chữ số mà tăng lương dưới 15% + với trả lương bằng tiền Việt thì hơi bị đuối. Tốt nhất nên tìm hiểu những anh chị đi trước hoặc xác định mục tiêu của mình để tìm hướng đi khác vì làm lập trình chay khó làm giàu lắm.:bbpcuoi3:

8/Không phải lúc nào cũng được làm công việc ưa thích.

- Bạn từng nghĩ sẽ áp dụng những kĩ thuật tiên tiến nhất của các ngôn ngữ lập trình hiện đại, sẽ học hỏi những công nghệ mới nhất và làm việc với những chuyên gia đầy kinh nghiệm trong lĩnh vực CNTT nhưng thường thì không phải như vậy. Ở những công ty càng lớn thì sẽ càng có những project kì lạ kiểu như chuyển nguyên một chương trình từ VB6 sang C#, hoặc từ một ngôn ngữ rất cổ xưa sang C#. Tuy đòi hỏi kiến thức lập trình trên 2 ngôn ngữ, khả năng đọc hiểu code nhưng nói chung công việc như vậy khá nhàm chán và tôi nghĩ chẳng ai muốn theo đuổi lâu dài. Đôí vơí những project lớn thì chi phí cho công nghệ mới là một trong những vấn đề quan tâm của khác hàng. Bạn muốn sử dụng SQL 2005 nhưng khách hàng sẽ nói “No” khi họ đã có licence cho SQL 2000 và không muốn bỏ tiền mua thứ mới. Bạn muốn sử dụng ASP.NET để làm website cho khách hàng nhưng họ cho rằng PHP sẽ rẻ hơn vì không tốn nhiều licence cho máy chủ WINDOWS. Bạn muốn dùng ORM tool để tiết kiệm thời gian lập trình nhưng khách hàng nhất quyết bạn phải dùng Store Procedure và viết code gọi bằng C# vì làm vậy nhanh hơn 30 milisecond khi gọi 10000 query. Nói chung khách hàng là thượng đế và chúng ta phải nghe theo.:bbpcuoi5:

9/Khi nhảy việc cũng không đơn giản, có khi phải bắt đầu lại từ đầu.

- Lương bạn hiện không cao trong khi lương tụi bạn đã gấp 2 mình. Đề nghị xếp tăng lương thì sao, liệu xếp có chịu tăng cho mình gấp rưỡi không chứ đừng nói gấp 2. Tại sao không nhảy việc khi vừa có thể có lương cao hơn lại có thể học hỏi nhiều cái mới và làm quen với nhiều con người mới. Nhưng khi nhảy việc là lúc bạn phải chấp nhận làm lại từ đầu. Có thể bạn có nhiều kinh nghiệm từ công ty cũ nhưng sang môi trường mới sẽ không có đất để dụng võ. Và khi chưa biết gì hết thì bạn sẽ là một newbie và chấp nhận làm lại từ con số không. Vì vậy theo tôi nếu tìm được một công việc mới lương gấp rưỡi trở lên thì hãy nhảy, còn không ở lại cho lành và chờ thời cơ.:bbpraroi:

10 điều tồi tệ khi làm trong ngành CNTT

10/Rất khó để tự kinh doanh riêng về IT

- Tỉ lệ thất bại cao của các công ty IT mới thành lập đã nói lên điều này. Nếu bạn làm IT khi muốn mở một công ty làm phần mềm thì rất khó. Một trong những khó khăn lớn nhất là sự cạnh tranh. Bạn sẽ khó mà kiếm được project từ những khách hàng lớn khi công ty của bạn chưa hề có tên tuổi hoặc không có công ty mẹ đỡ đầu. Nếu chấp nhận làm dự án nhỏ thì có vô khối công ty đã làm như vậy. Những công ty may mắn sống sót nhờ vào dạng những project nhỏ này họ có thể thực hiện website trong vòng một tuần nhờ tái sử dụng những cái đã có từ project cũ và chúng ta sẽ khó mà cạnh tranh nỗi khi kinh nghiệm tổ chức và kinh doành là con số 0. Giỏi lập trình không có nghĩa là giỏi quản lý và càng không có nghĩa là giỏi kinh doanh nên làm công ty về IT không hề đơn giản. Và khi không có một project nào trong khi phải nuôi đội quân cỡ 5 người, cộng với trả tiền điện, tiền mặt bằng trong vòng 3 tháng là bạn phải nghĩ đến chuyện giải tán.:bbpchao:



- Đó là 10 trong khá nhiều những khó khăn, thiệt thòi, gian khổ của ngành IT. Làm IT không đơn giản và không sướng chút nào, càng không dễ làm giàu. Thế nên những ai nghĩ rằng làm IT sướng và lương cao thì nên xem lại và cân nhắc nêú như đang chọn nghề cho mình. Đây là những ý kiến chủ quan của tôi, có thể có nhiều ý kiến trái ngược và bổ sung khác cho nên rất mong được sự chia sẽ từ các bạn. Mọi comment khen ngợi, chửi bới đều hoan nghênh và vui lòng post trực tiếp ở entry này hoặc ở link này. :byebye:
Trích từ blog Anh Thoại

Thứ Sáu, 23 tháng 7, 2010

Xmind - Phần mềm vẽ bản đồ tư duy đa chức năng

xmind1Đa chức năng như Mindmap Pro trên Windows. Tôi đã dùng thử và tôi thấy nó không hề thua kém (MindMap Pro). Tất nhiên Xmind cũng có phiên bản dành cho Windows.
Home Page
Download
Trích dịch từ : PCworld & Softpedia
Yêu cầu :
· gtk+
· curl and libcurl
· LAME
· CPU 800MHz
· 128M RAM (tốt nhất nên là 512M)
· 200MB chỗ trống trong ổ cứng để tải về và cài đặt Xmind


Những tính năng chính của XMind Pro 2008 :
Cấu trúc
Người dùng có thể trình bày ý tưởng, diễn biến tư duy hoặc phương pháp tư duy của mình qua 6 cách thể hiện khác nhau trên XMind. Tất cả được thể hiện trên 1 bản đồ duy nhất. Thậm chí ở mỗi nhánh khác nhau bạn có thể áp dụng những cách thể hiện khác nhau, tùy biến biểu đồ tới mức tối đa.
Mind Map – Structures:
Kết cấu thể hiện hoạt động đặc biệt của não bộ. Gồm 1 chủ đề chính nằm ở tâm. Khi bạn muốn thu thập các nội dung liên quan đến chủ đề trung tâm mà không lo ngại về việc phân tích hay tổ chức những nội dung liên quan đó
Org Chart – Structures:
This shows the map as a hierarchical pyramid, with brother topics laying out horizontally below/above their parent. Use it to represent structured data that needs to be viewed in a hierarchical manner, i.e. from the highest to the lowest levels.
Tree Chart – Structures:
Biểu đồ hình cây cho phép điều hướng các chủ đề từ đầu đến cuối
Logic Chart – Structures:
Kết cấu logic mà các nội dung con được đặt bên phải hoặc bên trái nội dung gốc. Phù hợp với việc liệt kê bước thực hiên trước khi đi tiếp 1 bước cấp dưới.
Fishbone Chart – Structures:
Biểu đồ xương cá thể hiện một chủ đề suyên suốt với các tác nhân luôn tác động trong suốt quá trình diễn ra chủ đề đó.
2D Chart – Structures:
This is another effective tool to be used in ’cause and effect’ analysis, which is focused on changing and tracking different measures and their possible effects. By exhibiting a set of complex factors and behaviors that impact the final measures in perpendicular rows and columns, a 2D chart helps to further analyze the ‘strengths’ and ‘weaknesses’ and gets a clear view in different thinking direction, which enables users to interpret the chart only after a few minutes of explanation. Thus, meaningful conclusions about operations can be drawn from a systematic approach.
In common sense, a 2D chart is implemented either on paper or in spreadsheet software, or in some particular commercial softwares that is hard to handle. In XMIND, users can easily insert factors and behaviors into a 2D chart where every single cell is able to contain multiple topics with individual appearance and structure.
Concept Map Support:
Xmind cung cấp 1 khả năng đưa các khái niệm giống nhau vào 1 chủ đề và thiết lập liên lạc giữa các khái niệm đó
Floating Topic:
Floating topics are not attached to any other topic and free to locate within the map. Users can create floating topics to keep some wild ideas or start new threads of thinking. Use drag-drop to attach any floating topic to another topic as its subtopic, or reversely separate any topic from its own branch to become a floating topic. By the way, a floating topic can also have subtopics.
Boundary:
Các thể hiện ranh giới giữa nhiều chủ đề khác nhau trong bản đồ của bạn với nhiều màu sắc
Relationship:
Cách thể hiện mối quan hệ giữa các chủ đề khác nhau trong bản đồ của bạn. Nó thực sự là 1 link gắn kết. Tôi đánh giá rất cao tính năng này.
Gallery:
Xmind cung cấp hàng trăm hình ảnh chất lượng cao đi cùng gói phần mềm mà bạn có thể đưa vào bản đồ của bạn chỉ bằng cách nhấn đúp chuột hoặc kéo thả
Rich Text Notes:
Rất nhiều kiểu văn bản ghi chú mà bạn có thể chèn nó vào bản đồ của bạn hay vào từng chủ đề. Chỉnh sửa những văn bản này ngay trong cửa sổ làm việc với màu sắc, phông, nền, kích thước chữ,..
Theme:
Một bộ sưu tập những đường nét, màu sắc, hình dạng, cách phối hợp để áp dụng cho 1 chủ đề ở bất kì bước nào.
Marker:
Các công cụ chú thích cho bản đồ của bạn bằng nhiều hình thức
Label:
Như 1 cách trình bày nhỏ của chú thích. Một chủ đề có thể bao gồm nhiều label
Powerful Filter:
Bộ lọc mạnh mẽ của Xmind cho phép người tạo bản đồ có thể tùy biến hiển thị hoặc biến mất 1 hay nhiều chủ đề dưới mắt xem của người khác và hiển thị đầy đủ khi tác giả muốn.
Presentation:
Khả năng trình chiếu bản đồ của bạn với các tính năng phóng to, thu nhỏ, sửa đổi chủ đề…, với các bộ lọc đi kèm và thậm chí cả chèn âm thanh vào bản trình chiếu. Tất cả có thể thực hiện bằng vài phím bấm
Attachment:
Bạn hoàn toàn có khả năng đính kèm tài liệu vào bản đồ của bạn với các chức năng kéo-thả, ghi chú tiện lợi
Hyperlink:
Những siêu liên kết được tích hợp vào các chủ đề nhằm liên kết chủ đề đó với thư mục, file, trang web.
Audio Notes:
Ghi chú bằng Audio cho mỗi chủ đề trong bản đồ của bạn
Map Shot:
Tính năng chụp lại bản đồ của bạn để sử dụng như là 1 tư liệu trong các mục đích khác
Print:
Tính năng in cũng được tích hợp ngay trong Xmind
Định dạng xuất ra
Bạn có thể xuất bản đồ của bạn với nhiều định dạng thông dụng như Microsoft Word, PowerPoint, PDF, RTF,…. hoặc xuất ra dạng ảnh với nhiều kiểu định dạng ( JPEG/BMP/PNG/GIF ).
Import from FreeMind/MindManager:
Tính năng Import những sáng tạo của bạn từ các phần mềm Mindmap khác như FreeMind, MindManager
Multi Sheets:
Every XMAP file is a workbook that can contain multiple sheets, each containing a map. Users can create maps with different contents or styles for different usages within one workbook. This facilitates storage, distribution and sharing in common project management. Moreover, any single map can be saved out as an independent workbook as required.
Search Topics From Web
Tính năng tìm kiếm chủ đề trên Web. Đem mọi nguyên liệu đến cho bạn sáng tạo
Search Images From Web
Chức năng tìm kiếm hình ảnh trên web cho những chủ đề của bạn.
Keyboard Shortcut:
Xmind hỗ trợ các phím tắt dễ nhớ, đơn giản hóa thao tác của bạn
Meeting:
Khả năng lưu trữ và phục hồi các phiên làm việc. Tránh sự gián đoạn trong tư duy của bạn
Template:
Thật tuyệt vời ! Xmind cung cấp và tìm kiếm những mẫu bản đồ có sẵn dành cho doanh nghiệp, giáo dục, cá nhân cũng như khả năng tùy biến hoàn toàn những mẫu này.
…Và một số tính năng khác nữa (Associated Topic ,Drilldown & Drillup, Map Merge, Spell Checker,Customizable Window,….)
Link download:

Xmind.3.1.1.rar

Wondershare Media Converter 1.2.0.0



Click the image to open in full size.

Wondershare Media Converter v1.1.2.0 | (7.82 MB)



Wondershare Media Converter không chỉ là một phần mềm xóa bỏ DRM ( bản quyền của các file media ), mà nó còn là một công cụ mạnh mẽ cho viếc chuyển đổi định dạng media với các định dạng hết sức phổ biến. Nó gỡ bỏ DRM với tốc độ 4x nhanh hơn và chính xác hơn, trợ giúp trong phạm vi sâu hơn về định dạng đầu vào và đầu ra. Có thể dịch chuyển hay cắt xén file, tích hợp nhiều chức năng chuyển đổi,...

Key Features:
- DRM remover&Media converter: Wondershare Media Converter trình diễn tất cả các công cụ mạnh nhất cho việc remove DRM và các công cụ chuyển đổi định dạng phổ biến nhất, cung cấp những trợ giúp cho các thiết bị đa phương tiện của bạn như iPod, iPhone, Zune, Creative Zen, Mobile Phone,...
- Tốc độ 4x nhanh hơn với audio&video sync: Wondershare Media Converter sẽ đưa bạn đến các kết quả mong đợi bằng cách nâng cao tốc độ chuyển đổi và thuyết phục bạn với khả năng làm việc ổn định.
- Hỗ trợ các định dạng sau:
Định dạng đầu vào: DRM WMA/WMV/M4V/M4A/M4B/M4P, Mp3, AVI, MOV, 3GP, MP4, RMVB, ASF, FLV,...
Định dạng đầu ra: MP3, WMA, AAC, OGG, WAV, APE, M4A, WMV, M4V, AVI, MOV, 3GP, RM, VOB, ASF, FLV,...
Bạn sẽ không thể biết hết được các trợ giúp của nó, Wondershare Media Converter sẽ đưa thế giới tự động hóa đến cho bạn.
- DIY thư viện media của chính bạn: Wondershare Media Converter cung cấp cho bạn hàng loạt những lựa chọn cho các hiệu ứng như các kênh âm thanh, kích thước file, chất lượng hình ảnh cao, kích thước màn hình,...
- Drag-drop&Batch convert: dựa vào các nhu cầu chung của khách hàng, Wondershare Media Converter được tạo ra với chức năng duy nhất hỗ trợ dịch chuyển và cắt xén file cho cửa sổ chuyển đổi định dạng (conversion window), nó còn add thêm các tùy chọn chuyển đổi.

Wondershare Media Converter is your ideal solution to solve DRM copy-protection problems with video and music that buy from iTunes, Napster, Spiral Frog, Music Giants, etc. As a profession DRM removal, it can remove DRM protection for all protected video and music files (including DRM WMA, WMV, M4V, M4A, M4B, ACC and M4P etc) with lossless quality.

This DRM Removal is also a universal Converter which can convert both unprotected & DRM protected videos even High Definition videos to popular video formats.

Remove DRM Protection from protected videos and audios.

Remove and convert DRM protected video/audio (such as WMV, WMA, M4P, AAC, M4V etc) to popular video/audio format.

Convert DRM unprotected video/audio even High Definition video to common video/audio.

Extract audio from video to audio M4A, MP3, WMA, WAV, OGG, AAC, AC3, APE, and MKA.

Smart import of DRM files plus parallel conversion mode.

Link download:
1.2.0.0: Mediafire
1.0.1.1: Mediafire

Thứ Hai, 19 tháng 7, 2010

Thêm blogger Syntax hightlighter 3.0.83

How to add syntax highlighting to Blogger with Alex Gorbatchev's open-source SyntaxHighlighter.
  • Đăng nhập vào tài khoản. Chọn Thiết kế->Chỉnh sửa Html.
  • Nhấp vào "Tải xuống Mẫu đầy đủ" (Download Full Template) để làm bản sao lưu dự phòng mẫu thiết kế của bạn.
  • Bạn có thể thêm đoạn code sau vào đâu miễn là nằm trong thẻ <body></body> hoặc trước thẻ .
    Lưu ý: Để dễ tìm kiếm, bạn nên copy mã nguồn vào 1 editor nào đó, như Notepad++ hay word, rồi dùng chức năng tìm kiếm.
  • <link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
    <link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
    <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
    <!-- add brushes here -->
    <script type='text/javascript'>
    SyntaxHighlighter.config.bloggerMode = true;
    SyntaxHighlighter.all();
    </script>
  • Sau chú thích Add brushes here, bạn thêm vào ngôn ngữ mà bạn dự định dùng. Ở đây ví dụ là Javascript, Java, Xml/Html, Css, C++, C#, PHP, Delphi, SQL.
<!-- add brushes here -->
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJava.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script src="http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js" type="text/javascript">
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDelphi.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'/>

Bạn có thể xem và lấy đầy đủ đường dẫn các ngôn ngữ ở đây: Syntax Hightlighter-Hosting
Download mã nguồn đầy đủ tại đây
Một số ví dụ:
SQL:
<pre class="brush:sql">
SELECT * FROM users WHERE user_id = 1212;
</pre>
SELECT * FROM users WHERE user_id = 1212;
C++
<pre class="brush:cpp">cout<<"Hello World";
</pre>
cout<<"Hello World";

Thứ Bảy, 17 tháng 7, 2010

Hướng dẫn cách lấy mã code chèn nhạc ở Multiply

Multiply cho phép bạn upload nhạc thoải mái nhưng không cho phép bạn lấy link nhạc. Hôm nay mình hướng dẫn bạn cách lấy mã chèn nhạc để đưa lên website. Bài viết này mình tham khảo từ 1 bạn (nhưng quên mất nguồn ở đâu rồi).
Đây là phiên bản có list nhạc của Multiply
Code mọi người về tham khảo:
Chú ý:
Thay username: tên người dùng, #: bằng số sau item/...


Máy màu đen:
<P align=center><EMBED id=multiply_audio_player name=multiply_audio_player pluginspage=http://www.macromedia.com/go/getflashplayer src=http://images.multiply.com/multiply/MusicPlayer.swf width=500 height=100 type=application/x-shockwave-flash quality="high" bgcolor="red" wmode="transparent" flashvars="music_item_id=username:music:#&base_uri=multiply.com&is_linux=" allowscriptaccess="never"></P>
Máy màu trắng có list:
<P align=center><EMBED id=multiply_audio_player name=multiply_audio_player pluginspage=http://www.macromedia.com/go/getflashplayer src=http://images.multiply.com/multiply/audio-player.swf width=500 height=100 type=application/x-shockwave-flash quality="high" bgcolor="" wmode="transparent" flashvars="music_item_id=username:music:#&base_uri=multiply.com&is_linux=" <embed="" allowscriptaccess="never"></P>
Máy trắng chỉ có hình (nội dung trống không):
<DIV align=center><EMBED pluginspage=http://www.macromedia.com/go/getflashplayer src=http://images.multiply.com/multiply/audio-player.swf width=500 height=100 type=application/x-shockwave-flash allowscriptaccess="never" flashvars="music_item_id=user name:username:music:#&base_uri=multiply.com&is_linux=" wmode="transparent" =""></DIV></DIV>
Ví dụ: Đây là đường link chứa list nhạc
http://tachima.multiply.com/music/item/56
Username: tachima
Item: 13.
Bạn thay thế chúng vào đoạn code ở trên là xong.
Lưu ý: Blogger không cho phép chèn nhạc ở Multiply và 1 số blog khác nữa. Điều này mình cũng không rõ lắm.
Còn đây là dùng Firebug bắt lấy code:

Thứ Sáu, 16 tháng 7, 2010

Xem mã thẻ HTML và các thẻ khác kết hợp trong Firefox

Công việc của bạn thường xuyên phải xem, kiểm tra các thẻ html mà không cần trực tiếp xem mã nguồn trên 1 cửa sổ riêng biệt? Trong bài viết sau, Quản Trị Mạng sẽ giới thiệu với các bạn tiện ích X-Ray của Firefox.

Đường dẫn X-Ray Extension
Thông thường khi muốn xem mã nguồn của 1 trang web bất kỳ, bạn phải xem bằng 1 cửa sổ riêng rẽ. Trong Firefox, kích chuột phải và chọn View Page Source:
Với tiện ích hỗ trợ X-Ray, bạn có thể dễ dàng xem các thẻ khác nhau (bao gồm các lớp và tên theo ID) song song với với trang web trong cùng 1 cửa sổ, kích chuột phải và chọn X-Ray:
Dưới đây là ảnh chụp màn hình sau khi chọn lệnh X-Ray, nếu không quen thì nhiều người sẽ thấy khá lộn xộn và hoàn toàn không hiểu gì. Nếu muốn trở lại cửa sổ bình thường thì chọn lệnh X-Ray 1 lần nữa hoặc Refresh trang web đó:
Hoặc đoạn mã của 1 phần sidebar trên trang web đó:
Nhưng liên kết ở phía cuối trang:
Nếu bạn là người thiết kế hoặc kiểm tra giao diện có liên quan đến mã thì X-Ray quả thực là tiện ích không thể thiếu.
T.Anh (theo HowToGeek)

So sánh các dịch vụ blog

Mình đang băn khoăn không biết nên chọn cái nào? Mình xin nêu ra 1 vài nhận xét nhé.
  1. Blogger (Google): hỗ trợ đăng bài dạng postcast, hỗ trợ đa ngôn ngữ (gồm tiếng Việt), có chức năng đọc thêm, hỗ trợ chia sẻ qua mạng xã hội, cho phép thêm các gadget từ các hãng khác, thiết kế giao diện bằng cách kéo thả (đa dạng về nội dung và đặc sắc về cách trình bày), hỗ trợ chỉnh sửa code bằng CSS và Javascript, khả năng tùy biến cao, được nhiều trang web hỗ trợ, đặc biệt không chèn quảng cáo.
  2. Opera: bộ soạn thảo bằng bb code không trực quan, bài viết hiển thị với nhiều quyền thiết lập khác nhau. Hỗ trợ tốt CSS. Đặc biệt có các bài hướng dẫn và các theme khá đẹp từ cộng đồng Opera.
  3. Multiply: dung lượng upload không giới hạn, hỗ trợ copy paste từ word dễ dàng hơn, bộ soạn thảo tốt, chế độ phân quyền người đọc có nhiều sự lựa chọn. Cho phép chỉnh sửa CSS. Hạn chế: chèn quảng cáo ở đầu trang và cuối trang web.
  4. Windows Live Space: Hỗ trợ tiếng Việt tốt, không hỗ trợ đánh dấu bẳng thẻ, chỉ hỗ trợ lưu bài vào thư mục. Các gadget tuy có nhưng không có nhiều chức năng, mỗi chức năng lại không thật sự thuyết phục. Thiết kế giao diện có ít sự lựa chọn và không cho phép tùy chỉnh CSS.
  5. Wordpress: phiên bản mới nhất (3.0) mình chưa thử qua. Riêng bản Carmen(2.9) thì mình có vài nhận xét: chế độ soạn thảo bài mới chạy chậm. Hỗ trợ thư mục lưu trữ bài + thẻ đánh dấu. Chức quản lý hình ảnh, âm nhạc, bài viết tốt. Các plugin khá nhiều. Tùy chỉnh CSS. Nếu xài trên wordpress.com, bạn phải bỏ ra 1 số tiền để tùy chỉnh nhiều thành phần của wordpress.
  6. Yahoo 360 Plus: giao diện khá nặng nhưng cộng động yahoo Việt tương đối lớn. Chức năng soạn thảo bài không tốt. Nhưng nhìn chung thì có ban hỗ trợ kỹ thuật tiếng Việt (good), mang bản sắc riêng so với các blog khác.
  7. Zing blog: hỗ trợ tiếng Việt tốt, nhưng còn thiếu quá nhiều tính năng.
So sánh (tốt...->vừa vừa)
  • Tính năng: Wordpress, Blogger, Yahoo Plus, Windows Live Space...
  • Hỗ trợ tùy biến cao: Wordpress, Blogger, Opera, Multiply.
  • Hỗ trợ tiếng Việt tốt: tất cả.
  • Bộ soạn thảo tiếng Việt tốt: Wordpress, Blogger, Multiply, Windows Live Space, Zing blog, Yahoo Plus, Opera.
  • Chức năng soạn thảo phong phú: Wordpress, Blogger.
  • Dễ dùng: Zing blog, Windows Live Space, Blogger, Multiply.
  • Được nhiều nhà phát triển hỗ trợ: Wordpress, Blogger.
  • Tích hợp tính năng chia sẻ mạng xã hội: Blogger, Multiply, Wordpress (cài đặt thêm plugin).
Trên đây là nhận xét của mình thôi. Quan trọng là blog đó phục vụ cho công việc của bạn là được rồi.
Còn đối với mình, thì blogger và wordpress hỗ trợ tốt cho công việc trao đổi, viết bài. Nhật ký thì nên xài Multiply.

Thứ Tư, 14 tháng 7, 2010

Facebook Like - Nút cần thiết cho Blogger

Facebook cung cấp plugin mạng xã hội nhằm giúp bạn chia sẻ những kinh nghiệm cho những người bạn của bạn chỉ với một dòng code html. Và Facebook like là một trong số đó.
Bạn có thể xem demo trang blog mình đang làm cho 1 người cô ở địa chỉ: Lớp giảng sư cao cấp K05. Biểu tượng ở cuối bài viết.

Hướng dẫn cách thêm Facebook Like vào cuối mỗi bài viết

  1. Đăng nhập vào tài khoản của bạn Blogger. Nhấp vào Thiết kế->Chỉnh sửa HTML. Nhấp vào checkbox "Mở rộng mẫu tiện ích" ("Expand Widget Templates").
  2. Hãy tìm đoạn mã <data:post.body /> và đặt đoạn code này ngay sau dòng code vừa tìm được.
<b:if cond='data:blog.pageType == "item"'> 
<iframe allowTransparency='true' expr:src='"http://www.facebook.com/plugins/like.php?href=" + data:post.url + "&layout=standard&show_faces=false&width=100&action=like&font=arial&colorscheme=light"' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:450px; height:40px;'/>
</b:if>
Lưu ý:
Đoạn code trên chỉ hiển thị duy nhất ở phần post bài. Nếu bạn muốn hiển thị nó bất kỳ nơi đâu bạn thích trong blog, hay bỏ đoạn code (dòng 1 và 3 ở trên)
<b:if cond='data:blog.pageType == "item"'>
</b:if>
Lưu mẫu lại và xem thử. Dưới mỗi bài viết sẽ có nút Like của Facebook.

Các tham số tùy chọn

Bạn có thể thay thế các giá mặc định sang các giá trị bạn thích:
  1. action="chuỗi cần thay thế"
  2. colorscheme=light bằng colorscheme=dark
  3. font=Arial bằng các font khác
    Ví dụ:
    • font=lucida+grande
    • font=segoe+ui
    • font=tahoma
    • font=trebuchet+ms
    • font=verdana

    Thứ Ba, 13 tháng 7, 2010

    Soukoban: Game kinh điển một thời

    Nếu ngày xưa từng chơi những game 4 nút, với những Contra, IceCave, Mario, chắc hẳn Soukoban (hay Boxman) cũng từng khiến bạn ngồi hàng giờ trước màn hình. Đó là một game trí tuệ đầu cuốn hút, khiến bạn say mê trên từng bước đi chỉ nhằm đẩy những chiếc hộp đến các địa điểm quy định và hoàn thành level.
    Soukoban
    Soukoban
    Hiện tại, dù game 8-bit đã đi vào quá khứ, nhưng Soukoban là cái tên mà không ai có thể quên được. Đến tận bây giờ, trên YouTube, vẫn có đến hàng chục nghìn video về soukoban, về cách giải của 70 level huyền thoại được tạo bởi cả 1 tập đoàn.
    Giờ đây, bạn có thể sống lại những cảm giác ấy, những cảm giác say sưa hồi nào với game Soukoban 1.0 phiên bản trên PC. Hãy cùng thử sức game với nhiều lv hơn nữa, độ khó cao hơn trên phiên bản PC này.
    | Download |

    Chủ Nhật, 11 tháng 7, 2010

    Blogger cho phép thêm share buttons trong bài viết

    Đã từ lâu tính năng chia sẻ đã được tích hợp vào các blog. Có rất nhiều hướng dẫn giúp bạn có thể tạo được những nút chia sẻ bài viết rất bắt mắt để đưa vào blog. Nắm bắt được nhu cầu của người dùng, Blogger đã cho phép thêm tính năng chia sẻ bài viết mà không cần code của bên thứ 3. Chúng ta cùng tìm hiểu cách làm nhé.

    Bạn đăng nhập vào trang quản trị blog, chọn mục Design và chọn Edit bên dưới khung Blog posts. Kết quả như hình dưới.

    Thêm nút chia sẻ bài viết

    Bạn đánh dấu vào mục Show share Buttons, lưu lại và kiểm tra kết quả.

    Trong trường hợp bạn vẫn chưa thấy các nút này xuất hiện thì có thể template của bạn đã bị tùy chỉnh nên chúng chưa hiển thị được, bạn làm như sau.

    Vào phần Edit HTML, chọn Expand Widget Templates. Các bạn tìm tới đoạn code có dạng như sau:

    <div class='post-footer'>
    hoặc
    <div class='post-footer-line post-footer-line-1'>
    hoặc
    <iv class="post-footer-line post-footer-line-2">
    hoặc
    <div class="post-footer-line post-footer-line-3">
    hoặc
    <data:post.body>
    Lưu ý: Ở đây mình hướng dẫn chung cho tất cả các blog, có thể template của bạn chỉ có một trong các dòng code trên.


    Sau khi tìm thấy bạn thêm đoạn code dưới đây vào ngay sau nó:
    <div style="clear: both;">
    <div class="post-share-buttons">
    <b:include data="post" name="shareButtons">
    </b:include></div>
    Lưu thay đổi vừa thực hiện, kiểm tra kết quả bạn sẽ thấy các nút chia sẻ nằm ở cuối bài viết.
    Nếu muốn các nút chia sẻ xuất hiện ngay bên dưới tiêu đề bài viết, bạn tìm tới một trong các dòng sau:
    <div class="post-header">
    <div class="post-header-line-1">
    </div>
    và thêm đoạn code bên trên ngay trước nó.
    Lưu ý: Bạn có thể sẽ không tìm thấy đoạn code trên nếu template đã có những tùy chỉnh nhất định.
    Posted by Pavel

    Học toán trực tuyến dành cho trẻ lớp 1

    Hai giảng viên ĐH Tôn Đức Thắng (TP HCM) là Đinh Công Ninh và Vũ Đình Hồng vừa ra mắt website học toán trực tuyến dành cho học sinh lớp 1 tại địa chỉ http://hoctoan.360do.vn/
    Nội dung chính của chương trình là những kiến thức toán lớp 1 gồm hai chủ đề chính: “Luyện tập một số kỹ năng ban đầu cho bé”, giúp trẻ nhận biết hình ảnh, phân biệt sự giống - khác nhau, phân biệt chẵn - lẻ, xác định vị trí của đối tượng, so sánh nhiều hơn - ít hơn…và chủ đề “Toán lớp 1”, gồm các bài tập dựa theo kiến thức sách giáo khoa toán lớp 1 của Bộ GD-ĐT.
    Trang web đang trong thời gian miễn phí, phụ huynh chỉ cần truy cập và đăng ký một tài khoản là trẻ sẽ có cơ hội tham gia học toán.
    Trên website, trẻ mẫu giáo cũng có thể luyện tập một số kỹ năng trước khi vào lớp 1.

    Thứ Sáu, 9 tháng 7, 2010

    Những công cụ tìm ảnh độc đáo

    Trên mạng có rất nhiều công cụ tìm ảnh nhưng chắc chắn không có công cụ nào tốt và độc đáo hơn những công cụ dưới đây, kể cả Google.

    Tìm gương mặt
    Để tìm gương mặt, bạn đến địa chỉ www.pictriev.com . Trong khung Image name - nhấn nút Browse rồi tìm đến tấm hình mình muốn tìm kiếm gương mặt giống như trong đó, sau đó tự động trang web sẽ upload nó lên và tìm kiếm trên Internet để xác định cho bạn những gương mặt giống với gương mặt bạn đã chọn. Ở khung kết quả tìm kiếm ở bên tay phải, chương trình còn giúp bạn đánh giá độ tuổi, giới tính của gương mặt đưa lên cùng với mức độ tương quan so sánh giữa các gương mặt tìm được so với gương mặt trong ảnh của bạn. Công cụ này cũng đặc biệt hay ở chỗ khi một gương mặt được sao chép từ tấm hình nào đó thì nó có khả năng đi tìm giúp cho bạn tấm hình gốc ấy. Đó là tính năng mà Google, Yahoo! hay Bing search cũng không có được.
    Lưu ý: Hình đưa lên phải có định dạng .jpg hoặc .png và kích thước dưới 200 KB.
    Tìm hình động
    Để tìm hình động, chắc chắn bạn phải tự đi kiếm vì các công cụ tìm ảnh hiện nay không thể phân biệt ảnh động và ảnh thường. Tuy thế, việc này với PicSearch thì hoàn toàn đơn giản. Hãy đến địa chỉ www.picsearch.com, nhấn chọn lên liên kết Advanced Search, trong danh mục các tính năng tìm kiếm, bạn đánh chọn lên dòng Only Animations để chỉ tìm kiếm các bức ảnh động. Tiếp đó, hãy điền từ khóa tìm kiếm vào khung bên trên và nhấn Enter để công cụ tìm cho bạn. Trong kết quả hiện ra, muốn xem chi tiết hình nào, bạn nhấn chọn lên nó để đến website gốc, nếu hình ấy trong website đã bị xóa mất thì bạn nhấn chuột lên link trong mục Image URL để xem.
    Với mỗi bức hình, công cụ sẽ thống kê cho bạn biết về kích thước, dung lượng của nó. Nếu muốn vừa tìm hình động, vừa tìm hình thường thì trong Advanced Search bạn đánh chọn Images and Animations, muốn tìm hình trắng đen thì bạn chọn Only Black&White, vừa tìm hình trắng đen vừa tìm hình màu thì chọn Color and Black&White. Đặc biệt, nếu muốn tìm các bức ảnh nằm ngang hoặc nằm thẳng đứng hay hình vuông thì bạn chọn thêm Portrait, Landscape và Square. Muốn tìm hình ở kích thước nào, bạn chọn kích cỡ trong mục Pictures’ size must be.
    Tìm hình cùng chủ đề
    Bạn vào Google gõ từ khóa Forest (rừng) thì thấy đủ dạng ảnh liên quan đến rừng hiện ra, lẫn lộn và không theo bất kỳ một trật tự nào.
    Trang web www.incogna.com có tính năng tìm hình tốt hơn Google ở chỗ nó có khả năng sắp xếp các kết quả tìm được. Với từ khóa Forest, bạn sẽ tìm được các nhóm kết quả riêng như lối đi trong rừng, tranh vẽ rừng... Sau khi vào trang web, bạn hãy điền từ khóa mình muốn tìm, trong kết quả hiện ra, đưa chuột lên hình nào thì nó sẽ tự phóng to lên, nhấn Maximize để xem ảnh với kích thước gốc; nhấn chuột lên bức ảnh để xem trang liệt kê các tấm hình cùng loại với bức ảnh bạn đang xem. Nhấn Open page để xem trang gốc chứa bức ảnh bạn quan tâm.
    Lý Duy Trác(Thế giới @)

    Thứ Năm, 8 tháng 7, 2010

    Giải phẫu web framework theo mô hình controller first

    Lập trình là nghệ thuật sắp đặt. Có nhiều mô hình web framework, tùy cách sắp đặt mà khác nhau, ví dụ controller first, view first. Bài viết này bàn về các thành phần cơ bản mà một web framework hiện đại theo mô hình controller first thường có.

    Controller

    Trước tiên request truyền từ web server sẽ đi qua một front controller duy nhất, ví dụ với framework viết bằng PHP là file index.php, bằng Perl là file index.cgi, bằng Java Servlet thì xem định nghĩa trong web.xml. Front controller sẽ dựa vào các luật mapping định nghĩa trong router để biết phải chuyển hướng request đến action nào nằm trong controller nào để xử lí thật sự.
    Một luật mapping là một ánh xạ từ một cặp HTTP method (như GET, POST) + URL pattern (như /articles/{id}) đến một cặp controller + action. Xu hướng chung hiện nay là map theo kiểu REST. Các luật này giúp URL đẹp hơn (pretty URL). Đối với các ngôn ngữ bị gắn chặt vào web server như trường hợp PHP, Perl + Apache, thì để đạt tính năng pretty URL cần dùng đến mod_rewrite.
    Router cần có thêm tính năng reverse mapping để ánh xạ ngược từ controller + action thành URL để dùng trong view (ví dụ link, form).
    Action là hàm xử lí request để trả về response. Các action liên quan đến nhau được gom thành một controller. Trong một controller còn có before filter và after filter để chứa các đoạn mã giống nhau từ nhiều action trong controller đó.
    Để tránh lỗi CSRF, khi viết action cần biết khi nào dùng GET khi nào dùng POST, form cần có security token.

    Model

    Ví dụ model là nơi chứa các xử lí liên quan đến database. Vì thường liên quan đến cơ sở dữ liệu quan hệ, nên thường model layer cần có tính năng ORM.
    Qui tắc chung khi lập trình web là không bao giờ tin data do user nhập (ví dụ từ form). Do đó model cần có tính năng validation để kiểm tra data có đúng format không, và đương nhiên là có tính năng chống SQL injection xưa như trái đất.

    View

    Mỗi action thường cần một view để hiển thị màn hình trang web. Framework hiện đại cần tách logic ra khỏi presentation, để designer và coder dễ làm việc. Do đó phần view thường dùng template engine. Để đạt tốc độ cao, template engine không dùng cách thay thế chuỗi đơn thuần, mà dùng cách biến đổi template thành mã chương trình rồi biên dịch (ví dụ .jsp -> .java -> .class).
    View hiện đại thì mỗi view không phải là một cục to uỳnh ứng với một địa chỉ URL của trang web thấy trên màn hình, mà còn có thể refactor ra được thêm thành layout, partial. Làm thế này để các action có thể dùng chung tối đa view của nhau.

    Để chống lỗi XSS, template engine cần có tính năng tự động escape dữ liệu từ action.

    Các thành phần khác

    Ví dụ session, flash, i18n, cache, file upload, mailer, full text search.

    Thứ Tư, 7 tháng 7, 2010

    0.999... =1



    Có nhiều cách để đi đến đẳng thức này.

    Đơn sơ nhất là:

    Nếu hai số khác nhau thì ta có thể tìm được một số khác nằm giữu hai số đó. Tuy nhiên bạn có thể chỉ ra một số nằm giữa 0.999... và 1?


    Tiếp theo là:


    Đặt x=0.(9) = 0.999... (Số thập phân vô hạn tuần hoàn với chu kì 9).
    Ta có:
    10x = 9.(9)
    Lấy 10x-x:
    10x - x = 9.(9) - 0.(9)
    Điều này có nghĩa là
    9x = 9
    hay
    x = 1
    Vậy
    0.(9) = 1


    Thêm một lập luận nữa

    Ta có:
    1/3=0. 333...=0.(3)
    Suy ra
    3x1/3=3x0.333...

    hay 1=0.999...= 0.(9).


    Lập luận cuối cùng mà VnMath.Com muốn giới thiệu là:
    Số 0.999... là tổng của một cấp số nhân lùi vô hạn

    0.9999... = 0.9 + 0.09 + 0.009 + 0.0009 + ...
    Ta có thể viết lại

    Suy ra

    Hiển thị công thức toán học

    Cái này ko biết có ai dùng ko vì việc viết công thức khá phức tạp. Nếu ai đã từng tham gia các diễn đàn về toán học thì cũng đã biết cách viết công thức toán ở trên diễn dàn, cái này tương tự như thế chỉ thêm code chèn vào blog thôi
    Đối với blog có theme nền viết entry màu trắng
    <img src="http://www.codecogs.com/gif.latex? Công_thức">
    Đối với blog có theme nền viết entry ko phải màu trắng (phải cho nó vào khung có nền trắng cho dễ nhìn):
    <div style="border: 5px ridge #1a50b8; padding: 3px;background:#FFFFFF;"><img src="http://www.codecogs.com/gif.latex? Công_thức"></div>
    Cách viết:

    1. Hàm số mũ hoặc chỉ số phụ trên: Cơ số ^ Số mũ

    Nếu Số mũ là một biểu thức hoặc có từ một kí tự trở lên thì Cơ số ^ {Số mũ}
    VD: a^{b+c}

    2. Chỉ số phụ dưới: Thành phần chính _Chỉ số phụ dưới
    VD: a_n

    Nếu chỉ số phụ dưới là biểu thức hoặc có từ một kí tự trở lên thì: Thành phần chính _{Chỉ số phụ dưới}
    VD: a_{b+c}

    3. Biểu diễn vecter: \vec{tên vecter} hoặc \overrightarrow {vecter}
    VD: \vec{AB}

    VD: \overrightarrow{AB}

    4. Biểu diễn phân số: \frac{tử số}{mẫu số}
    VD: \frac{a}{b}

    5. Căn bậc hai: \sqrt{biểu thức khai căn}
    VD: \sqrt{a+b}

    6. Bảng chữ cái Hy Lạp: alpha = \alpha, bêta = \beta, gamma = \gamma, Delta = \delta, rô = \rho, omêga = \omega, xích ma = \sigma, Xi = \Psi, phi = \phi



    Một số kí tự khác:



    Ý nghĩa ẩn giấu sau 10 logo thương hiệu nổi tiếng

    Nhiều người nhìn thấy logo của LG, Amazon hay FedEx hằng ngày mà không nhận ra những ý nghĩa đằng sau chúng.

    Dù người ta đã tốn nhiều giấy mực để bàn về ý nghĩa của logo LG, một số người khác phát hiện ra rằng có một khuôn mặt pacman ẩn giấu đằng sau logo của hãng này. Pacman vốn là một trò chơi điện tử rất phổ biến ở Nhật Bản và các nước phương Tây trong thập niên 1980. Sức ảnh hưởng của trò chơi này lớn đến nỗi từng có cả một "văn hóa pacman" thời kỳ đó.
    Khi nhìn logo của cửa hàng sách trực tuyến lớn nhất thế giới Amazon, người ta dễ dàng nghĩ đến một cái miệng cười thân thiện. Tuy nhiên, nếu nhìn kỹ hơn, mũi tên chạy từ chữ A đến chữ Z hàm ý tại cửa hàng của Amazon, khách hàng có thể tìm thấy mọi thứ từ A đến Z.
    Nhiều người đã nhìn logo của FedEx hàng trăm lần mà không nhận ra rằng có một mũi tên được tạo ra bởi hai chữ cái E và X ở cuối cùng. Mũi tên ngụ ý tốc độ của hãng chuyển phát nhanh này.
    Logo của công ty phần mềm nổi tiếng thế giới Sun Microsystems bao gồm 4 chữ Sun đan xen nhau và có thể đọc được khi nhìn từ mọi hướng. Các chuyên gia đánh giá đây là ví dụ tuyệt vời về các loại logo có tính đối xứng.
    Khi mới nhìn logo của hãng kem hiện có mặt tại hơn 30 quốc gia trên thế giới, khách hàng chỉ thấy hai chữ cái B và R, viết tắt cho thương hiệu Baskin Robbins. Tuy nhiên, sau đó người ta sẽ nhận ra số 31 được nhấn mạnh bằng màu hồng và tò mò muốn biết con số này tượng trưng cho điều gì. Đây là chiêu quảng cáo cho ý tưởng của hãng về việc bán 31 loại kem trong tháng, mỗi ngày một hương vị khác nhau.
    Hãng truyền thông NBC sở hữu một trong những logo nổi tiếng nhất trên thế giới, bao gồm hình một con công đang xòe rộng đuôi, cổ nhìn sang bên phải, biểu lộ hàm ý công ty này luôn nhìn về phía trước, không phải phía sau.

    carrefour
    Carrefour là tập đoàn bán lẻ hàng đầu thế giới. Do là một công ty của Pháp, từ Carrefour trong tiếng Pháp mang nghĩa "đường giao nhau". Logo của hãng bao gồm chữ “C” ở giữa và 2 mũi tên chỉ hai hướng ngược chiều.
    ive-Ten là một hãng nổi tiếng chuyên sản xuất giày thể thao, có trụ sở tại Mỹ. Logo này khiến người ta không thể quên cái tên Five Ten, khi nhìn từ một hướng họ sẽ nhìn thấy con số 5 và nhìn từ hướng khác thì lại nhận ra số 10.

    Toblerone
    Logo của thương hiệu socola Toblerone ẩn giấu hình một con gấu trên hình đỉnh núi. Con gấu này là biểu tượng của thành phố Berne, Thụy Sĩ, nơi sản xuất ra loại socola nổi tiếng thế giới này.

    folkware
    Logo độc đáo của dịch vụ thực phẩm trực tuyến Forkware mang hình cái dĩa (fork) quấn tròn như một dây mạng (wire). Logo này cũng trông như ký hiệu @, mang tính công nghệ cao.
    Theo VnExpress

    Bài đăng phổ biến