Gaming experts talk with Vietnamese students

According to VietNamNet:

Gaming specialists from the United States are visiting Vietnam to discuss with students a number of issues that are important to their industry. During a stop at the port city of Da Nang, more than 1,000 students showed up for a conference on game developers and their techniques. Donald Marinelli, a professor of Drama and Arts Management at Carnegie Mellon University who co-directs the Entertainment Technology Center, led the panel, “The Achievements of the Game Developers.” Marinelli and the other gaming experts also discussed how games impact real life during an event for students from Van Lang University in Ho Chi Minh City. The Entertainment Technology Center is a partnership between Carnegie Mellon’s School of Computer Science and the College of Fine Arts that focuses on digital arts and entertainment. A training cooperation program between Carnegie Mellon and the Software Engineering Group of Vietnam is sponsoring the trip.

So, what did he say?

Maybe I’m good at creating and developing games but I definitely do not recommend that you become addicted to them.

(Via ACM TechNews.)

MD5 pseudo code

From this site:
Easy pseudo code to understand.

What is Md5?

In cryptography, MD5 (Message-Digest algorithm 5) is a widely-used cryptographic hash function with a 128-bit hash value. As an Internet standard (RFC 1321), MD5 has been employed in a wide variety of security applications, and is also commonly used to check the integrity of files.

MD5 was designed by Ronald Rivest in 1991 to replace an earlier hash function, MD4. In 1996, a flaw was found with the design of MD5; while it was not a clearly fatal weakness, cryptographers began to recommend using other algorithms, such as SHA-1 (recent claims suggest that SHA-1 has been broken, however). In 2004, more serious flaws were discovered making further use of the algorithm for security purposes questionable.

MD5 Pseudocode

//Note: All variables are unsigned 32 bits and wrap modulo 2^32 when calculating

//Define r as the following
var int[64] r, k
r[ 0..15] := {7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22,  7, 12, 17, 22}
r[16..31] := {5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20,  5,  9, 14, 20}
r[32..47] := {4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23,  4, 11, 16, 23}
r[48..63] := {6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21,  6, 10, 15, 21}

//Use binary integer part of the sines of integers as constants:
for i from 0 to 63
k[i] := floor(abs(sin(i + 1)) × 2^32)

//Initialize variables:
var int h0 := 0x67452301
var int h1 := 0xEFCDAB89
var int h2 := 0x98BADCFE
var int h3 := 0x10325476

append "1" bit to message
append "0" bits until message length in bits ≡ 448 (mod 512)
append bit length of message as 64-bit little-endian integer to message

//Process the message in successive 512-bit chunks:
for each 512-bit chunk of message
break chunk into sixteen 32-bit little-endian words w(i), 0 ≤ i ≤ 15

//Initialize hash value for this chunk:
var int a := h0
var int b := h1
var int c := h2
var int d := h3

//Main loop:
for i from 0 to 63
if 0 ≤ i ≤ 15 then
f := (b and c) or ((not b) and d)
g := i
else if 16 ≤ i ≤ 31
f := (d and b) or ((not d) and c)
g := (5×i + 1) mod 16
else if 32 ≤ i ≤ 47
f := b xor c xor d
g := (3×i + 5) mod 16
else if 48 ≤ i ≤ 63
f := c xor (b or (not d))
g := (7×i) mod 16

temp := d
d := c
c := b
b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b
a := temp

//Add this chunk's hash to result so far:
h0 := h0 + a
h1 := h1 + b
h2 := h2 + c
h3 := h3 + d

var int digest := h0 append h1 append h2 append h3 //(expressed as little-endian)

OS jokes


Many others here.

* Customer: “How much do Windows cost?”
* Tech Support: “Windows costs about $100.”
* Customer: “Oh, that’s kind of expensive. Can I buy just one window?”

* Tech Support: “What version of Windows do you have installed?”
* Customer: “… Double glazed.”

Overheard in a software shop:
* Woman #1: “What this Linux thing?”
* Woman #2: “It’s a program that if you have it on your computer, you can’t turn the computer off.”
* Woman #1: “Oh.”

For my work-study job, I work tech support at a small college. One night I was working Help Desk and the phone rings. I pick it up to have a student telling me she can’t get the computer to work.
* Me: “What operating system are you running?”
* Student: “Hunh?”
* Me: “Do you have a Mac or a PC?”
* Student: “Um, I don’t know.”
* Me: “Ok. What does the screen look like?”
* Student: “It’s yellow.”
* Me: “Ok. What does it say on the computer CPU?”
* Student: “What’s that?”
* Me: “The big grey box.”
* Student: “It doesn’t say anything.”
* Me: “Never mind that…do you have a little ‘Start’ button at the bottom of the monitor?”
* Student: “Monitor?”
* Me: “The thing that looks like a TV sceen sitting on the grey box.”
* Student: “Oh! That! No. No start button.”
* Me: “Ok. Is there a little apple symbol anywhere on the screen?”
* Student: (very puzzled) “Why would I have fruit on my computer?”

Thay Playboy bằng Einstein

Giờ đây bạn có thể gắn một tấm poster Albert Einstein trên đầu giường rồi quay phim gởi cho ba mẹ mà không nhất thiết phải gỡ tấm poster Playboy đang thật sự nằm ở đó 😀

Những nghiên cứu sinh về AI của ĐH Stanford vừa phát triển một công nghệ mới tên là ZunaVision. Công nghệ xử lý video này cho phép ta cắt bỏ một phần của một bề mặt phẳng nào đó trong đoạn phim và thay bằng hình ảnh khác — không nhất thiết là hình ảnh tĩnh. Tức là, bạn có thể quay một đoạn video căn phòng của bạn rồi sau đó dùng công nghệ này để thử đặt các tấm ảnh khác nhau vào và nhìn từ mọi phía. Bạn cũng có thể đứng hát bên cạnh thần tượng âm nhạc của mình nếu chọn được một mặt bằng phẳng để thay hình của mình vào.

Thật ra trước đây các nhà làm phim cũng đã có thể làm như vậy, nhưng chi phí công nghệ và thời gian tiền bạc tốn kém hơn nhiều. Giờ đây ZunaVision cho phép chúng ta có thể chỉnh sửa video tự làm của mình trong chốc lát rồi upload lên youtube.

Cái hay của công nghệ này là khả năng linh hoạt của nó. Trong video, bạn có thể đi qua đi lại trước bề mặt phẳng nhưng công nghệ này vẫn phân biệt được đâu là pixel của bạn và đâu là của tấm hình cần thay thế. Tương tự, các bóng đổ lên không gian ban đầu cũng sẽ được thấy trên không gian thay thế mới. Bạn cũng có thể thoải mái zoom và di chuyển camera trong khi quay mà không sợ công nghệ này “không theo kịp”. Các chuyển động của camera dường như không ảnh hưởng gì đến tấm ảnh thay thế.

Nói vậy đủ rồi, giờ bạn thử vào trang chủ của ZunaVision và xem đoạn giới thiệu ở đó hay dưới đây là hiểu.

Thêm nữa, nếu thích bạn có thể thử upload một đoạn video lên đó để thử.

Trang chủ của ZunaVision:

Biết qua Extreme makeover: computer science edition — Stanford University
Được giới thiệu bởi ACM TechNews số ngày 17/11/2008

How to deal with Adobe CS3 wacky installations

How to deal with Adobe CS3 wacky installations

Applied for: all Adobe CS3 products (e.g. Photoshop, Illustrator, InDesign, Flash, etc.)

Note: this tutorial is designed for Windows users. MAC OS X users, however, would find some interesting information and may come up with similar solutions.

Fact: so you have a situation while trying to install an Adobe CS3? Me too! Fortunately I’ve worked it out. And now you’ve found me!

I don’t know why Adobe makes things so complicated but here are some of the annoying messages popping up all the time you start the setup:

  • Setup has encountered an error and cannot continue. Contact Adobe Customer Support for assistance. The installation source for this product is not available. Verify that the source exists and that you can access it.
  • Critical errors were found in setup — session has dependencies that cannot be satisfied. Please see the Setup log file for details.
  • Add yours.

Funny enough, here is the step-by-step solution. You may want to restart your computer after each step and then run setup again.

  1. If you’re running setup from CD/DVD, copy it to your HDD (e.g. “D:\Adobe Photoshop CS3”).
  2. If that doesn’t work, check the installation files, especially files in “payloads” folder. Maybe some setup files are missed or corrupted.
  3. Go to “\Program Files\Adobe” and delete the product (that you’re trying to install) folder, if any. (i.e. Adobe Photoshop CS3, Adobe InDesign CS3, etc.)
  4. Go to “\Program Files\Common Files\Adobe” and search for your product name (i.e. photoshop, illustator, etc.) — on result delete any file that is not in other product folder. Pay attention to “\Program Files\Common Files\Adobe\Installers” — skim through each folders and check if “setup.exe” has the same icon as your product’s. (Like PS for Photoshop, ID for InDesign, AI for Illustrator, etc.) Delete that whole folder, if any.
  5. Run regedit from Start > Run > regedit (on Windows Vista you need to run as Administrative privilege), search for your product name (photoshop, indesign) and delete any key found.
  6. Run cmd form Start > Run > cmd (needed Administrative privilege on Windows Vista). Type cd \windows\System32, enter. Type regsvr32 jscript.dll, enter. Type regsvr32 vbscript.dll, enter.
  7. Download and Install Installer CleanUp Utility from here, run it and remove any current/previous version(s) of your Adobe product.
  8. If all of the above doesn’t work, try this last harsh solution: download and run Adobe CS3Clean script from here. Remember to read the readme carefully.

Feel free to contact me. Good luck!