Friday, June 30, 2006

BK_Links_June_30_2006

hxxp://www.thegioioto.com.vn
Trang web tiếng Việt về ôtô

Thursday, June 29, 2006

KeyLogger Preview

hxxp://www.securityfocus.com/infocus/1829

khá hay, nói rất chi tiết về các loại KeyLogger và cách phòng tránh.

Wednesday, June 28, 2006

Tham khảo thêm

http://www2.sys-con.com/ITSG/virtualcd/Dotnet/archives/0104/brown/index.html

WMI on WindowsXP Embedded
1
http://support.microsoft.com/newsgroups/default.aspx?dg=microsoft.public.windowsxp.embedded&tid=95dabda4-8776-4305-a108-80ff45d24dd4&p=1


2
http://msdn.microsoft.com/chats/transcripts/mobileembedded/05_0810_dn_emb.aspx

3.
http://www.derkeiler.com/Newsgroups/microsoft.public.windowsxp.security_admin/2003-03/2572.html

4.
http://www.pcreview.co.uk/forums/archive/forum-171.php

Một vài lưu ý khi làm với Image trên .Net (cont)

3. Điều chỉnh các thông số trước khi save : dùng để điều chỉnh Quality của ảnh, v.v.... giúp giảm size của ảnh

Listing 1: Rotating a Bitmap Image

private int _totalRotation = 0;


private void btnRotateCW_Click
(object sender, System.EventArgs e)
{
// Rotate image clockwise (90)
if (pbox.Image != null)
{
_totalRotation += 90;
pbox.Image.RotateFlip(
RotateFlipType.Rotate90FlipNone);
pbox.Invalidate();
}
}


private void btnRotateCC_Click
(object sender, System.EventArgs e)
{
// Rotate image counter-clockwise (270)
if (pbox.Image != null)
{
_totalRotation -= 90;
pbox.Image.RotateFlip(
RotateFlipType.Rotate270FlipNone);
pbox.Invalidate();
}
}



Listing 2: Saving a Bitmap Image

private string _origFileName = null;


private void btnSave_Click
(object sender, EventArgs e)
{
if (_origFileName == null)
return;


SaveFileDialog dlg = new SaveFileDialog();


dlg.Filter = "JPG Files (*.jpg)|*.jpg";
dlg.FileName = _origFileName;


if (dlg.ShowDialog() == DialogResult.OK)
{
pbox.Image.Save(dlg.FileName,
ImageFormat.Jpeg);
}
}



Listing 3: Locating an ImageCodecInfo object

private ImageCodecInfo GetImageCodec(string mimeType)
{
ImageCodecInfo[] codecs
= ImageCodecInfo.GetImageEncoders();


foreach (ImageCodecInfo codec in codecs)
{
if (String.Compare(codec.MimeType,
mimeType, true) == 0)
{
return codec;
}
}


return null;
}






Listing 4: Saving an image using encoder parameters


private string _origFileName = null;
private Bitmap _origBitmap = null;
private ImageCodecInfo jpgCodec = null;


private void btnSave_Click
(object sender, EventArgs e)
{
if (_origFileName == null)
return;


SaveFileDialog dlg = new SaveFileDialog();


dlg.Filter = "JPG Files (*.jpg)|*.jpg";
dlg.FileName = _origFileName;


if (dlg.ShowDialog() != DialogResult.OK)
return;


// Ready to save the image
while (_totalRotation < 0)
_totalRotation += 360;
_totalRotation %= 360;
if (_totalRotation == 0 && !cboxQuality.Checked)
{
// No parameters, so just save image.
_origBitmap.Save(dlg.FileName,
ImageFormat.Jpeg);
}
else
{
if (jpgCodec == null)
jpgCodec = GetImageCodec("image/jpeg");


// Determine required number of parameters
int paramSize = udQuality.Enabled ? 1 : 0;
if (_totalRotation != 0)
paramSize ++;
EncoderParameters encoderParams
= new EncoderParameters(paramSize);


if (_totalRotation != 0)
{
// Create transformation parameter
EncoderValue rValue
= EncoderValue.TransformRotate90;
if (_totalRotation == 180)
rValue = EncoderValue.TransformRotate180;
else if (_totalRotation == 270)
rValue = EncoderValue.TransformRotate270;


EncoderParameter tParam
= new EncoderParameter(
Encoder.Transformation,
(long)rotateValue);
encoderParams.Param[paramSize-1] = tParam;
}


if (udQuality.Enabled)
{
// Create quality parameter
EncoderParameter qParam
= new EncoderParameter(
Encoder.Quality,
(long)udQuality.Value);
encoderParams.Param[0] = qParam;
}


// Save the image using encoder settings
_origBitmap.Save(dlg.FileName,
jpgCodec, encoderParams);
}
}

Một vài lưu ý khi làm với Image trên .Net (cont)

2. Class Để Resize một Bitmap

can found at: hxxp://www.codeproject.com/csharp/imageresize.asp

khá đơn giản và dễ hiểu.

Một vài lưu ý khi làm với Image trên .Net

1. Khi cần gửi một Bitmap thẳng qua Client, nhất thiết là phải gửi mảng byte[], ta dùng đoạn code sau:

// we have an Image or Bitmap object already, named imageNeedToSend
MemoryStream ms = new MemoryStream();
imageNeedToSend.Save(Stream, System.Drawing.ImageFormat)

the MemoryStream class has a method to return a ByteArray.
ms.ToArray()



Kiểm tra xe trước khi đi xa

Kiểm tra dầu động cơ, dầu thắng, bánh ....
hxxp://www.vnexpress.net/Vietnam/Oto-Xe-may/2006/06/3B9EB40D/

Tuesday, June 27, 2006

SystemTimeChanged not fire

Cái này là do lỗi MTA và STA, chỉ cần chuyển sang MTA là OK hết.

Monday, June 26, 2006

Cười với Vova - cont

Giờ học tiếng Pháp hôm đó có 1 giáo viên đến dự giờ nên cô giáo rất run. Cô vừa viết lên bảng một từ tiếng Pháp và hỏi:
- Em nào có thể nói cho cô biết nghĩa của từ này không?
Đúng lúc đó thì cô làm rơi viên phấn xuống đất. Lúc cô cúi xuống nhặt thì ông thầy ngồi lẩm bẩm câu gì đó. Vova vội giơ tay xung phong trả lời.
- Mời em Vova, từ này là gì?
- Dạ, thưa cô nghĩa là "mông to quá" ạ!
- Ngồi xuống, 1 điểm. Cô giáo tức giận nói
- Lần sau nếu không biết thì đừng có nhắc bài nhé!. Vova quay sang hầm hừ nói với ông thầy ngồi cạnh!

Cười với Vova - cont

Bé Vôva vào lớp 1. Để buổi đi học đầu tiên của các cháu được hứng thú, cô giáo bắt đầu bằng trò chơi đố vui.
Cô nghĩ đến cái bàn, rồi đặt câu hỏi :
- Đố các em, trong nhà ta có cái gì bằng gỗ, có 4 chân?
Bé Vôva nhanh nhảu:
- Cái ghế ạ
Cô gật gù, ừ, cái em nghĩ cũng được đấy, nhưng mà câu trả lời của cô là cái bàn. Rồi cô đố tiếp, lần này cô nghĩ đến con mèo:
- Đố các em, trong nhà ta nuôi con gì có 4 chân mà các em hay vuốt ve nó?
Bé Vôva vẫn là người nhanh nhất:
- Thưa cô, con chó ạ.
- Ừ cũng được đấy, cô nói, em giỏi lắm, nhưng cái câu trả lời của cô là con mèo cơ.
Bé Vôva xin phép cô ra câu đố:
- Đố cô, cái gì mà đàn ông hay giấu trong quần lâu lâu lấy ra sử dụng, dài dài, tròn tròn , đầu đỏ đỏ...
Chưa nói hết câu, cô giáo đã nổi giận ngắt ngang:
- Vôva, sao em dám ăn nói bậy bạ như vậy
Nước mắt lưng tròng, bé Vôva thút thít trả lời:
- Cái mà cô nghĩ cũng được đấy, nhưng câu trả lời của em là những que diêm cơ...

Cười với Vova - from UDS

Cô giáo hôm nay mặc áo mới, trên ngực thêu hoa hồng. Thấy các học sinh chăm chú nhìn, cô giáo rất vui, hỏi: "Thế các em có biết hoa hồng sống bằng gì ko?"

Vôva trả lời: "Thưa cô bằng sữa ạ" Cô giáo đỏ mặt đuổi Vôva ra đứng hành lang.

Thầy hiệu trưởng đi ngang thấy Vôva vật vờ ở ấy, hỏi đầu đuôi sự tình rồi nói: "Vôva em nhầm rồi, hoa hồng sống bằng phân và nước tiểu"

Vôva lầm bầm:"Em đâu biết rễ nó dài đến thế"

Học tiếng Anh tại hội Việt - Mỹ

Có một ông người Việt và một ông Tây đi đụng phải nhau, ông người Việt thấy thế bàn xin lỗi:
- I'm sorry
- I'm sorry, too - ông Tây lịch sự đáp lại
- I'm sorry, three - ông người Việt trả lời
Ông Tây nghe vậy thấy lạ quá bèn hỏi:
- What are you sorry for?
- I'm sorry five - ông người Việt trả lời
Ông Tây nghe vậy bực quá:
- Shit!
- Seven - ông người Việt đáp lại tỉnh queo.

Thursday, June 22, 2006

Scancode Map example

Trong ví dụ sau ta sẽ bỏ đi phím delete trên numpad và swap phím delete gần nút phím End với phím Scroll Lock

http://photos1.blogger.com/hello/86/9387/1024/swapKey.jpg

Dùng Scancode Map

Cái này dùng để định nghĩa map các phím trên keyboard
Ví dụ: khi user nhấn nút a thì các map này chỉnh lại thành phím b

Dùng HKEY_LOCAL_MACHINE nếu muốn toàn bộ hệ thống (mọi user) đều dùng map này ngược lại dùng CURRENT_USER để chỉ chỉnh cho user hiện tại

Step1: vào
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Keyboard Layout

Step2: Add thêm Value Scancode Map có kiểu là REG_BINARY

Xem ví dụ sau để hiểu cách thêm vào
00 00 00 00 00 00 00 00 02 00 00 00 1d 00 3a 00 00 00 00 00

Trong ví dụ trên:
+ Tám cặp số "00" là bắt buộc phải có, tiếp đến là số
mapping ("02") ta sẽ định nghĩa, kế đến là phím đầu tiên
1D 00 là phím LCtrl sẽ thay thế cho phím 3A 00 là phím CapsLock, 4 cặp số "00" sau cùng là bắt buộc.

Lưu ý: Nếu muốn swap hay phím phải làm:
Swap phím 1 -> phím 2 và swap phím 2 về lại phím 1

Step 4: Restart hay Log Off

Chi tiết để tham khảo và lấy list các key code tại:
hxxp://www.microsoft.com/whdc/device/input/w2kscan-map.mspx

Wednesday, June 21, 2006

Diable AutoRun CD

Step1: Run/ regedit

Step2: Go to ->HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services>Cdrom->

Step3: Change AutoRun ValueData to 0

Step4: Restart again.

Không thể Debug trong VS .Net

Unable to debugging

hxxp://www.gotdotnet.com/community/messageboard/Thread.aspx?id=239063

Tuesday, June 20, 2006

Backup links

Game Mahjong Escape
hxxp://rapidshare.de/files/21139890/escaping.rar.html
Password: estrange


Link ve hook tren C#
hxxp://www.codeproject.com/csharp/GlobalSystemHook.asp
hxxp://www.codeproject.com/csharp/GlobalSystemHook.asp
hxxp://www.codeproject.com/csharp/globalhook.asp
hxxp://www.codeproject.com/info/search.asp?cats=3&cats=5&searchkw=keyboard+hook&Submit1=Search&author=&sd=15+Nov+1999&ed=20+Jun+2006

.NET Framework Solutions: In Search of the Lost Win32 API

links: hxxp://tinyurl.com/znu23

.NET Framework Solutions: In Search of the Lost Win32 API

If you've begun programming using Microsoft's .NET Framework, you've discovered a lot of new and improved functionality. But, more than likely, you've also discovered a lot of missing functionality. Indeed, a third of the functions supported by the old Win32 API are not yet supported by .NET. Although you may not at first notice the loss of Win32 API functionality in .NET, the more you program, the more you'll realize how essential it is. As a programmer, you will not want to do without these solutions.

.NET Framework Solutions: In Search of the Lost Win32 API is one more thing you can't do without: a complete guide to your options for dealing with the functionality missing from .NET. As you'll learn, some functions are handily situated within Visual Basic or C#. In most cases, however, you'll need to access the old Win32 API from the .NET Framework. This is demanding work, but this book makes it easy, walking you through every step and paying special attention to the work of managing memory manually-the most error-prone part of the process. The topics covered inside are as varied as the missing functionality: direct hardware access, low-level security control, certain aspects of OS access, support for multimedia and utilities, and DirectX. You also get hard-to-find information on COM access, plus a collection of examples-dealing with DirectX and the MMC Snap-ins-that unite COM and Win32 access in especially illuminating ways.

Maximizing .NET Performance

Maximizing .NET Performance will focus on providing developers and architects with information on performance characteristics of various aspects of the .NET Framework. In addition to providing high-level material on achieving software with good performance characteristics, the books aims to enhance readers’ knowledge of the design and implementation of the Framework, and to provide the tools and techniques to allow readers to conduct their own investigation into performance problems.

The dominant feature of this book will be the systematic analysis of performance relating to key Framework topics like remoting, garbage collection, and threading. Rather than a ‘tips and tricks’ approach, the book aims to provide a detailed exploration of each topic, and explore the ‘whys’ and ‘by how much’ aspects (with actual benchmark results) of performance that are often overlooked.

Author Information

Nicholas J. Wienholt - Nicholas J. Wienholt is a Windows and .NET consultant based in Sydney, Australia. He has worked on a variety of IT projects over the last decade, ranging from numerical modeling of beach erosion to financial and payroll systems. Career highlights include the highly successful NSW State Rail Passenger Information Display System (PIDS) project, and the Mobile Number Portability (MNP) system. Nick was also responsible for the design and implementation of the messaging layer for Concentrics Pty Ltd, a network provider to Australian telecommunication companies. Nick is the co-founder and president of the Sydney Deep .NET User group, writes technical articles for Pinnacle Publishing and the Microsoft Developer Network, and is a keen participant in .NET related newsgroups.

Table of Contents

Chapter 1: .NET Framework Performance
Chapter 2: Investigating Performance
Chapter 3: Class Design and Implementation
Chapter 4: Strings, Text and Regular Expressions
Chapter 5: Collections
Chapter 6: Language Specifics
Chapter 7: Garbage Collection and Object Lifetime Management
Chapter 8: Exceptions
Chapter 9: Security
Chapter 10: Threading
Chapter 11: IO and Serialization
Chapter 12: Remoting
Chapter 13: Unmanaged Code Interoperability
Chapter 14: The Common Language Runtime
Chapter 15: Solving Performance Problems
Appendix A: Performance Measurement Framework for .NET

Links: hxxp://tinyurl.com/zxhyt

Thursday, June 15, 2006

Link về Fiat Siena 1.5 HL của mình

đang gặp khó khăn trong việc điều khiển xe mới nên phải tìm hiểu về cách thức vận hành của nó, cũng như cách bảo dưỡng. Tui nghĩ chắc cũng không khó với người thích tìm tòi như tui.
Links

Tuesday, June 13, 2006

Chuyện cười - Chế nhạo đàn bà

Chế tạo đàn bà

Ông vua xe hơi, Henry Ford sau khi chết được đưa lên thiên đàng. Tại cổng thiên đàng có Thánh St' Peter chờ sẵn để đón Ford.

Vừa gặp Ford, Thánh Peter cho biết: Ford hồi còn sống, ngươi đã làm nhiều việc công ích cho xã hội, như sáng chế phương pháp làm việc dây chuyền cho kỹ nghệ xe hơi làm thay đổi cả thế giới. Với thành quả như vậy, ngươi sẽ được một ân huệ là có thể chuyện trò với bất cứ ai ở thiên đàng này.

Suy nghĩ vài giây, Ford xin được gặp Thượng Đế. Thánh Peter dẫn Ford đến gặp Thượng Đế. Vừa gặp Thượng Đế, Ford hỏi ngay:

- Thưa Ngài, lúc ngài chế tạo ra đàn bà, ngài đã suy nghĩ gì?

Thượng Đế nghe xong bèn hỏi lại:

- Ngươi hỏi như vậy là ý gì?

Ford liền trả lời:

- Trong sáng chế của ngài có quá nhiều sơ sót. Phía trước thì bị phồng lên, phía sau thì bị nhô ra. Máy thường kêu to khi chạy nhanh. Tiền bảo trì và nuôi dưỡng quá cao. Thường xuyên đòi hỏi nước sơn mới. Cứ đi 28 ngày là lại bị chảy nhớt và không làm việc được. Chỗ bơm xăng và ống xả lại quá gần nhau. Đèn trước thì quá nhỏ. Tiêu thụ nhiên liệu thì nhiều kinh khủng khiếp.

Thượng Đế nghe qua liền bảo:

- Ngươi hãy đợi một chốc lát để ta xem lại bản thiết kế.

Ngài bèn cho gọi toàn bộ kỹ sư thiết kế và cơ khí trên thiên đàng lại để xem lại quá trình, sau một thời gian họ đã trình lên cho Thượng Đế bản báo cáo. Xem xong, ngài bèn phán rằng:

- Những lời ngươi vừa nói hoàn toàn đúng, bằng sáng chế của ta thật có nhiều sai sót, nhưng nếu tính trên phương diện kinh tế thì hiệu quả thị phần lại rất cao: Có gần 98% đàn ông trên thế giới xài sản phẩm do ta chế tạo, trong khi chỉ chưa đầy 10% đàn ông xài sản phẩm của ngươi.

(theo ngoisao.net)

Cười chút vậy mà

Tại một trại giam nữ trại trưởng đi nhận tiếp tế về khoe:
- Chị em ơi tôi muốn báo cho chị em 2 tin: một tin vui và một tin buồn
- Nói tin vui trước đi sau rồi hay nói tin buồn

Nữ trại thông báo:
- Tin vui là: chúng ta được tiếp tê rất nhiều " Dưa Chuột Tươi Và To"

Cả phòng giam như tức nước vỡ bờ reo lên vui sướng. Chị em hỏi:
- Thế tin buồn là gì?
- Tin buồn là: Tất cả các quả dưa đều bị thái lát hết rồi

Monday, June 12, 2006

www.kitco.com

Trang Web về giá vàng thế giới
Đổi đơn vị:
ounce = 28.35 g
1 Lượng (tael) = 37.4999 g

Giá vàng tại đổi ra lượng là = giá vàng tính bằng ounce * 28.35 / 37.4999
hay gần đúng là: giá vàng thế giới * 1.322751

Dùng IIS Final Test

I Hope It's work properly

Thursday, June 08, 2006

Updater in C++

http://www.codeproject.com/tools/updater.asp



http://www.gvhsoftware.org/products/updater/

Auto Update Application

Làm thế nào để tạo được chương trình có khả năng tự kiểm tra và update. Chỉ cần làm theo các hướng dẫn trong bài viết sau trên codeproject là chương trình của bạn đã có khả năng tự nâng cấp.

Link: Code Project

Wednesday, June 07, 2006

Tuesday, June 06, 2006

Make Magazine




























ALL OTHER ISSUES | PDF

Vol 1
http://rapidshare.de/files/5380263/vol1.pdf
41MB

Vol 2
http://rapidshare.de/files/5381284/vol2.pdf
42.6MB

Vol 3
http://rapidshare.de/files/5411478/Vol3.rar
44MB

Vol 4
http://rapidshare.de/files/12657789/makeMag_Vol4.rar
44MB

Vol5
http://rapidshare.de/files/12651841/makeMag_Vol5.rar
56.87MB

http://rapidshare.de/files/21949779/MakeMag_Vol6_.rar
27.46MB | PDF

Các magazine về điện tử để các thợ vọc có thể táy máy.

Multi-threaded file download manager - by Shailen Sukul

Introduction



A few months ago, my lovely wife was downloading her lecture notes from her university website, and I noticed that she had to manually click on every file to save it to the hard disk.

I also noticed that all the hyperlinks were on the same page, and the documents she was downloading were either Word documents or PowerPoint presentations.

Right then, a little light bulb went on in my head, and I decided to build her a file download utility. The requirements were simple:

* I should be able to point to a web page and filter URLs on it. For example, "*.doc" should give me a collection of URLs that have .doc at the end of the link.
* From the list of available files, I should be able to select the files I want to download.
* I should be able to download my selected files simultaneously.
* I should be able to nominate the number of simultaneous threads for download.
* I should be able to cancel a download at any point in time.
* I should be informed of the download status of each selected file.
* I do not want to re-download files that I have downloaded before.

Code Project Link

3 Loại Timer trên .Net

Gồm 3 loại timer: System.Windows.Form.Timer, System.Timers.Timer và System.Threading.Timer. Tạm thời chưa nắm được sự khác nhau và cách dùng của các timer này.

Link on MSDN

Monday, June 05, 2006

Kiểm tra năm nhuần

Đk năm nhuần, một năm là năm nhuần khi thoả 1 trong hai điều sau:
- chia hết cho 4 và không chia hết cho 100
- chia hết cho 400


Code
if (( nam % 4 == 0 && nam % 100 !=0) ||
(nam % 400 == 0))
{
return 0; // la nam nhuan
}
else
{
return 1;// khong phai la nam nhuan
}

Mạng Nơron - Using .Net

1. Overview

Solution Architect: "We have a new project. We need to develop a brain tumor recognition system. I hope you can do that?"

Dumb (And Lazy) Programmer: "No. Oh, probably yes - let me search whether I can I get a component or library for that"

Code Project Link

Rất đáng để xem và nghiên cứu làm theo.

Regex của .Net

The 30 Minute Regex Tutorial
By Jim Hollenhorst

Learning .NET Regular Expressions with Expresso

Did you ever wonder what Regular Expressions are all about and want to gain a basic understanding quickly? My goal is to get you up and running with a basic understanding of regular expressions within 30 minutes. The reality is that regular expressions aren't as complex as they look. The best way to learn is to start writing and experimenting. After your first half hour, you should know a few of the basic constructs and be able to design and use regular expressions in your programs or web pages. For those of you who get hooked, there are many excellent resources available to further your education.

Link on codeproject

Ghi chú về bài viết trên: giới thiệu về Regular Expression của .Net, một công cụ rất mạnh để kiểm tra xem một string có thuộc về một mẫu định trước nào hay không. Ví dụ: số điện thọai, email, hay nhập ngày tháng năm. Trong bài viết có giới thiệu về Expresso 2.1