Sunday, 29 April 2012

[MySQL] Chọn 2 "dòng" từ 1 bảng trong 1 câu lệnh

Đây là 1 vấn đề tớ gặp phải lúc làm việc vớ CSDL.
Yêu cầu cần lấy ra tên của 2 đội bóng tham gia 1 trận đấu
Nghe rất bình thường nhưng khi lấy ví dụ hay làm bài tập hiếm khi ta gặp :D
Trong 1 record của bảng matches có chứaa id đội nhà và id đội khách, câu hỏi là giờ làm sao bạn có thể lấy ra tên 2 đội ấy từ bảng teams chỉ trong 1 câu truy vấn?
NOTE: kết quả trả về tên 2 đội phải nằm trên 1 dòng

Trước giờ tớ quen dùng kiểu Natural Join :
FORM matches, teams
WHERE teams.id = matches.guessTeamId

Kính mời test Blog mới.

Blog mới đã bước sang giai đoạn close  beta.
Tại địa chỉ http://lam.thanhmien.org
Đăng nhập: http://lam.thanhmien.org/index.php/mypage/assmin
Key: fml-<năm sinh các bạn>

Vậy kính mời các thành viên FML test và cho phản hồi.
Thực hành An toàn máy tính để check chiếc nữa nhé :x

Friday, 27 April 2012

Tuyển coder cho blog mới

Theo ý kiến của Hưng xồn tớ đang code blog mới cho Familug,.
Để:
- Cho cây nhà lá vườn.
- Dễ tùy biến cho đẹp đẽ ngon ngẻ.

Mọi người ngía qua và test nó tại đây http://lam.thanhmien.org/. Hiện tại vẫn còn 1 số hạng mục nữa tớ cần mọi người đấu thầu:
- Import data cũ của Familug trên Blogspot vào database:
Thực ra nó là 1 file text, có thể dùng bất kỳ ngôn ngữ lập trình nào để lọc ra nội dung bài viết, ngày đăng, tác giả... rồi import vào database (MySQL).
Khuyến cáo: chip corei3 + 2Gb RAM trở lên  để xử lý file này. Môi lần mở máy tớ bị treo luôn @@

- Thiết kế chatbox riêng: Dùng PHP + AJAX + MySQL gì đấy, thực ra là vác cái TUT: http://advancedphptutorial.blogspot.in/2012/04/create-shoutbox-using-php-and-ajax-with.html
về edit

Ai nhận phần nào tớ sẽ pm nói thêm.
Quyền lợi:
- Về vật chất thì chả có gì :D
- Vận động đầu óc, luyện cho tay to.
- Rèn luyện kỹ năng code, làm việc nhóm, xử lý tình huống.
- Đóng góp vào xây dựng FML.

Tuesday, 24 April 2012

Party FAMILUG 01

Xin kính mời tất cả memb FAMILUG chiều mai 4h có mặt ở nhà Chung để liên hoan. Lí do thì rất nhiều :))
1. Chào mừng domain mới "sắp" về
2. Chào đón Ubuntu 12.04 LTS
3. Chúc mừng chiến thắng của memb FAMILUG tại cuộc thi ANLAB open day
4. Sinh nhật sớm FAMILUG 2 tuổi :D
http://www.familug.com/2010_05_01_archive.html
....
và còn nhiều lí do khác. Mong các bạn có mặt đủ, không có cũng ko sao =)) xin kính chào :))

Game , C++ và Java

Cho những ai chưa biết: phần lớn game trên PC, console (máy PS, 360...) đều viết bằng C++


Sao không phải là Java?
Ai đó có thể đưa ra câu trả lời là vì Java chậm nhưng điều này chỉ còn đúng với những năm 90!

Vậy lí do là vì đâu?
(Bài viết cho vui, sai thì sửa :)) )

- 1 yếu tố cực quan trọng khi làm game đó là game engine, game engine 3D khủng nhất hiện nay có lẽ là Unreal , và nó hỗ trợ chính cho C++. Hầu hết mọi người đều dùng engine có sẵn chứ viết lại 1 cái từ đầu thì đúng là "cực hình" :D
Java có http://jmonkeyengine.com/ nhưng nó không thể đú được với Unreal

- Tính năng garbage collect của Java có thể khiến game bị chậm hoặc pause
- Các máy console không cài JVM

Vậy tôi viết game trên Java được không?
- có chứ, và cũng rất nên :D 2 ví dụ điển hình là :
Runescape và  Minecraft , 2 trò cực nổi tiếng ở nước ngoài. Java có cộng đồng người dùng đông đảo nhất thế giới, có tính portable (có thể chuyển nền tảng dễ dàng) tuyệt vời.
Ai muốn làm game, C++ chính là một ngôn ngữ tuyệt vời mà bạn đang có cơ hội chạm vào.
Ai muốn thay đổi cách người ta làm game, Java chính là con đường của bạn ;)
(PS: bài viết nói về game java trên PC, còn trên di động thì vô đối rồi :D chạy trên android cũng ngang ngửa Object C trên iOS)

dựa trên : http://programmers.stackexchange.com/questions/55104/why-isnt-java-more-widely-used-for-game-development


Saturday, 21 April 2012

Something news

có thể ai đó sẽ tìm thấy gì đó ở đây:

Cẩm nang và chiến lược dành cho học tập
http://www.studygs.net/vietnamese/index.htm

Friday, 20 April 2012

Mời tài trợ tiền mua domain mới :))

Tình hình là cái familug.com cũng sắp hết hạn rồi, các admin quyết định sẽ mua tên miền mới familug.org về chạy song song và sau là thay thế luôn familug.com. Tớ thông báo lên đấy xin xỏ mỗi thành viên tối thiểu 10k để lấy tiền đi mua domain mới :D

Thông báo này thay cho giấy mời, ai đóng >= 20k(20k chẳng hạn ;))) sẽ tặng subdomain >:)
Loa loa loa loa :X

Mọi người đóng tiền cho HVN vào ngày thứ 2 nhé :D

Wednesday, 18 April 2012

Something new...

Trang này có rất nhiều video online giúp bạn học về lập trình ... , điểm nổi bật nhật là... bằng Tiếng Anh ;))

http://www.parleys.com/#st=1

Monday, 16 April 2012

Tuesday, 10 April 2012

OOP languages

Nếu bạn đi hỏi phần lớn những người lập trình hướng đối tượng ngôn ngữ nào tốt nhất để học OOP hoặc đơn giản hơn là "google cụm từ pure oop language" , câu trả lời nhận được sẽ không bao giờ  là C++!

"I invented the term 'Object-Oriented', and I can tell you I did not have C++ in
mind."    — Alan Kay

Nhưng với cái giáo trình cũ rích mà trường mình vẫn dạy, bạn vẫn học C++ ;)

Một sự thay thế tốt hơn:

http://en.wikipedia.org/wiki/Objective-C
Ngôn ngữ này nếu bạn chưa nghe đến bao giờ và nghĩ nó "vô giá trị" thì hãy nhớ rằng Objective-C là ngôn ngữ được dùng để viết phần mềm IPhone :D

Objectivi C = C + OOP (Lấy ý tưởng từ 1 ngôn ngữ "cực OOP" - smalltalk)

Smalltalk nghe tên có vẻ thuộc loại siêu hiếm có :)) nhưng nó chính là ngôn ngữ thuần OOP nhất. Chả biết là để làm gì ngoài học :p

Smalltalk được thiết kế nhằm bảo vệ tối đa các đặc điểm ngắn gọn và trong sáng của nó và không hướng đến tính khả dụng (usability) hay tính hiệu năng (performance). Vì vậy nó phù hợp với các mục đích giáo dục hơn là mục đích thương mại, tuy nhiên các đặc điểm của Smalltalk đã ảnh hưởng và góp phần mang lại thành công cho nhiều ngôn ngữ khác trong đó có Java, C#.

http://vi.wikipedia.org/wiki/Smalltalk

Nếu mình là thầy giáo :))  Python hay Java sẽ được mang ra dạy, thay vì C++ :-"

Nhưng cuối cùng vẫn phải nhắc lại, OOP là 1 paradism, không phải ngôn ngữ lập trình. Và chương trình của bạn "OOP" đến đâu thì phần lớn là do bạn, không phải do ngôn ngữ. Chỉ là kiếm chỗ để đổ tội mà thôi :))

Sunday, 8 April 2012

Chú ý BTL ĐHMT

Yêu cầu là chỉ làm 1 bài để qua, nên ai muốn chỉ làm 1 bài thì nên làm bài vẽ đa giác rồi biến đổi tỷ lệ là nhanh gọn nhất!

Có 1 điều tớ chưa rõ là CÓ PHẢI VIẾT CODE VẼ ĐƯỜNG THẲNG KHÔNG?
nhờ Hà email hỏi thầy rồi báo cho cả lớp luôn. Nhớ viết khéo khéo theo kiểu : bài nhiều, thầy cho dùng hàm vẽ đth có sẵn cho nhanh.
Vì thật ra tất cả các bài đều từ cỡ xử lý đa giác chứ ko bài nào vẽ đường thẳng cả.

Somethings new

Dùng parameterized queries hoặc stored procs thay vì blacklist để phòng chống sql injection - thầy đã dạy :))
http://blogs.lessthandot.com/index.php/DataMgmt/DBProgramming/please-don-t-use-blacklists

CSS3 framework
http://zoomzum.com/css3-tools-presentation-frameworks-and-cheat-sheets/

nếu bạn hỏi sao lắm JS với CSS3 thế thì câu trả lời là rất nhiều người ở đây đang đã sẽ làm web và 2 thứ này là siêu cần thiết để viết 1 web ngon lành, bán được :D

Saturday, 7 April 2012

mkdir và những nghệ thuật quanh nó!

Công việc tạo 1 thư mục là việc ai dùng máy tính cũng đều phải làm. Việc đơn giản này đôi khi nếu không giải quyết 1 cách nghệ thuật lại khiến bạn vô cùng vất vả ;) xem nhé!
Nếu phải tạo 100 folder có kiểu như : team001, team002 ... bạn sẽ làm gì?
Tớ đã thấy người ta mở file explorer lên, tạo 1 folder, sửa tên 1 cái thành team001 rồi copy nó ra 10 hay 100 lần và hì hục sửa từng cái tên? :)) bắt đầu cảm thấy đau khổ rồi chứ?
Trên bash có thể dùng lệnh sau để tạo 100 folder với tên như vậy:
famihug@hvn:~/TestRoom/LearnMkdir$ mkdir team{001..100}
Còn team1 , team2 ... team100?
famihug@hvn:~/TestRoom/LearnMkdir$ mkdir team{1..100}
Còn teamA, teamB..., teamZ
famihug@hvn:~/TestRoom/LearnMkdir$ mkdir team{A..Z}
Thế teamHVN, teamCICI, teamNVH...?