MỚI NHẤT

Thứ Ba, 19 tháng 7, 2016

[EXE + APK] Mời dùng thử: MyChat cập nhật phiên bản mới cho Windows và Android


Nghỉ hè, trong khi người khác đi chơi cùng bạn bè thì mình chỉ có suốt ngày vùi đầu vào cái máy tính :))
Sau mấy ngày "ngâm cứu" thì cũng ra ít sản phẩm.
MyChat nay đã có trên nền tảng Android (rất tiếc là chưa thể lên AppStore)
Các tính năng chính của ứng dụng này cũng tương tự như trên phiên bản Windows

  • Nhắn tin thông qua mạng LAN
  • Truyền file với dung lượng lớn, tốc độ cao

Để có thể kết nối ứng dụng Android với phần mềm trên máy tính yêu cầu điện thoại và máy tính của bạn phải kết nối vào cùng 1 mạng, và đảm bảo mạng đó phải thông giữa 2 máy.
Một vài hình ảnh của ứng dụng
MyChat cập nhật phiên bản mới cho Windows và Android
Giao diện khởi động, có thể nhập địa chỉ của server rồi KẾT NỐI, hoặc dùng quét mã QR để scan địa chỉ từ máy server

MyChat cập nhật phiên bản mới cho Windows và Android
Quét mã QR từ server
MyChat cập nhật phiên bản mới cho Windows và Android
Giao diện chính của chương trình

MyChat cập nhật phiên bản mới cho Windows và Android
Có thể chuyển file với dung lượng lớn

Thông tin và cài đặt

MyChat trên windows cũng được cập nhật phù hợp
  • Chỉnh lại giao diện
  • Thêm cài đặt
  • Thêm phần tạo mã QR 
Một vài hình ảnh của phiên bản mới
MyChat cập nhật phiên bản mới cho Windows và Android
Màn hình khởi động

MyChat cập nhật phiên bản mới cho Windows và Android
Giao diện chính (của server)

MyChat cập nhật phiên bản mới cho Windows và Android
Tạo mã QR cho ứng dụng trên điện thoại

>> DOWNLOAD <<

Thứ Năm, 2 tháng 6, 2016

[EXE + APK] Phần mềm ĐẾM GIỜ

Code ngày code đêm, code quên cả ăn và hậu quả là... bụng 1 múi.
Lướt facebook vô tình đọc được tit "Chỉ cần tập các động tác này trong 20s bạn sẽ có cơ bụng 6 múi", ô thật bất ngờ, không thể tin nổi.
Bình thường cũng muốn tập tành lắm đấy nhưng do yêu cái máy tính quá nên nhiều lúc không dứt ra được, đọc được cái tit này nghĩ ngay đến "ờ thì chẳng nhẽ lại không bỏ ra 20s được"  :))
Click vào xem hóa ra đó là các động tác tập bụng, mỗi động tác thực hiện trong 20s, thực hiện hết động tác này đến tư thế kia, và quan trọng mỗi cái chỉ cần 20 giây



=> Trong đầu lóe ra ý tưởng: tại sao không dùng phần mềm đếm ngược để thông báo cho ta sau mỗi 20s ấy? Những phần mềm hiện tại chỉ cho phép đếm 1 lần rồi dừng, thế là lại có ý tưởng ngay để code :))
Phần mềm Đếm giờ đã ra đời  :D

Chức năng của phần mềm chỉ là: đếm ngược thời gian 1 số lần nhất định, sau khi hết mỗi 1 khoảng thì có thông báo bằng âm thanh.

Mình viết trên C# đã khá lâu rồi. Trong phần mềm có sử dụng:
- Dùng timer để đếm giờ
- Phát nhạc, file âm thanh
- User Control để vẽ hình vành khăn thể hiện tiến trình
- Giao diện tùy chỉnh...

dem-gio-window
Giao diện khi đếm giờ
dem-gio-window
Giao diện khởi động

Tự dưng có hứng học lập trình android, vọc vạch trong gần 1 tuần, Đếm giờ trên android đã hoàn chỉnh, chức năng cũng tương tự như trên window.
Giao diện ứng dụng:

dem-gio-android

Trong ứng dụng có các tính năng:

  • EditText, Button cơ bản (drawable, ripple...)
  • Activity single top: Activity chỉ khởi tạo 1 lần
  • Navigation bar: Navigation View và chuyển qua lại giữa các thẻ
  • Itent: Mở ứng dụng khác, mở ứng dụng từ thanh thông báo
  • Fragment, hiệu ứng chuyển cảnh (animation)
  • Notification: Hiển thị thông tin trên thanh thông báo, bắt sự kiện khi click thông báo (new Intent)
  • Press Back: Xử lý sự kiện ấn Back
  • Press twice to exit: ấn back 2 lần để thoát
  • Progressbar: hình dạng tùy chỉnh
  • Shared preferences... Lưu cấu hình chương trình: Sáng màn hình, show notification
  • Phát âm thanh
  • Luôn sáng màn hình: KeepScreenOn


==>> DOWNLOAD phần mềm:

Bạn nào cần mã nguồn, comment ở dưới để mình gửi cho.

Thứ Tư, 6 tháng 4, 2016

[Show] C# - MYCHAT Nhắn tin, gửi file qua LAN

Bọn mình vừa mới học xong môn Lập trình mạng. Nói thẳng ra là lúc học trên lớp không để ý mấy, bị hổng nhiều quá, nên học xong mới quyết định viết 1 cái app nho nhỏ. Chẳng biết đặt tên là gì nên cứ đặt đại là MYCHAT  :D
Về cơ bản my chat có những tính năng sau:

  • Nhắn tin qua lại trong mạng (LAN)
  • Gửi file, hỗ trợ file dung lượng lớn (chưa test max, nhưng theo lý thuyết thì khoảng 2TB :) ). Nếu file là ảnh thì sẽ hiển thị trực tiếp
  • Hỗ trợ nhiều client, server gửi đồng loạt cho các client nhưng client chỉ gửi cho server thôi, tùy chỉnh nickname, giao diện màu sắc cho từng client
  • Giao diện phẳng
  • Sau khi đóng chương trình, các file vừa nhận sẽ bị xóa, vì vậy nếu muốn giữ lại file thì phải copy ra thư mục khác trước khi đóng chương trình…

Trong chương trình đã sử dụng
  • Truyền tin qua socket TCP, sử dụng StreamWriter, StreamReader
  • Đa tiểu trình, đồng bộ hóa, delegate
  • FileStream, FlashWindow
  • HTML, JS, Uri,…
Giao diện chương trình
Giao diện khởi chạy, sẽ có lựa chọn là server hoặc client, nếu chạy là client thì bạn phải nhập địa chỉ IP của server vào ô
Giao diện phía client
Giao diện phía server, cột bên phải là danh sách các client đã kết nối

=> DOWNLOAD <=

Thứ Ba, 8 tháng 12, 2015

[PHOTOSHOP] Lý thuyết các hệ màu, áp dụng blend màu nước biển

Trong Photoshop sử dụng 2 hệ màu chính là RBG CMYK
Để hiểu rõ về 2 hệ màu này và cách áp dụng trong blending các bạn xem video dưới đây:

Thêm bài hướng dẫn về cách sử dụng Selective ColorHue-Saturation trong blending



(Nguồn video: Vietdesigner, Tập huấn)

Sau đây sẽ hướng dẫn các bạn 1 cách sử dụng Selective Color để kéo màu nước biển cho xanh hơn:
(ảnh lấy nguồn từ 1 bài đăng trong Blend & Retouch)











Thứ Năm, 19 tháng 11, 2015

[SQL] Gộp bảng - Các loại JOIN (inner join, left outer join, right outer join, full join, cross join) trong truy vấn SQL Server

i. Giới thiệu

Mệnh đề Join trong SQL Server dùng để kết nối các bảng, view, sub query lại với nhau thông qua các foreign key hoặc các cột có giá trị tương ứng ở cả hai bảng, view hoặc các sub query.

ii. Chuẩn bị

Trước hết bạn hãy tạo ra hai table rất đơn giản và insert vào đó một ít dữ liệu như đoạn script sau:
create table Item
(
      MaHang nvarchar(20) primary key,
      TenHang nvarchar(200)
)


insert Item(MaHang, TenHang)
      values('NO1700', N'Điện thoại Nokia 1700'),
            ('NO1200', N'Điện thoại Nokia 1200'),          
            ('IPHONE3', N'Điện thoại Iphone 3'),
            ('IPHONE4', N'Điện thoại Iphone 4'),
            ('IPHONE5', N'Điện thoại Iphone 5'),
            ('IPHONE6', N'Điện thoại Iphone 6')


create table OrderDetail
(
      ID int identity primary key,
      NgayDatHang datetime,
      MaHang nvarchar(20),
      SoLuong decimal(19,6) default 0 not null
)


insert OrderDetail(NgayDatHang, MaHang, SoLuong)
      values('20140401', 'NO1700', 5),
            ('20140402', 'NO1700', 1),
            ('20140402', 'IPHONE3', 2),
            ('20140401', 'IPHONE4', 1),
            ('20140401','NO0001', 1000) 

Chúng ta đã có 2 bảng dữ liệu với liên kết như trên, vậy nếu muốn truy xuất cùng lúc thông tin đặt hàng và thông tin hàng thì ta phải làm thế nào? Đây chính là nhiệm vụ của liên kết hay JOIN các bảng lại với nhau.
Trong SQL hỗ trợ các kiểu JOIN như sau:

1. INNER JOIN

INNER JOIN hay viết tắt là JOIN trả về kết quả là tập hợp dữ liệu từ 2 bảng trong đó giá trị dùng để join đều có ở cả 2 bảng, nói cách khác kiểu join này giống phép giao trong tập hợp
Hình minh họa

Câu truy vấn SQL cụ thể như sau:
SELECT t2.MaHang, t1.TenHang, t2.SoLuong
FROM Item t1 INNER JOIN OrderDetail t2 ON t1.MaHang = t2.MaHang

-- Hoặc dạng viết tắt

SELECT t2.MaHang, t1.TenHang, t2.SoLuong
FROM Item t1 JOIN OrderDetail t2 ON t1.MaHang = t2.MaHang

Kết quả là tập hợp sau:
Bốn mã hàng hóa ở cột MaHang đều có trong table Item và table OrderDetail.

2. OUTER JOIN

a. LEFT OUTER JOIN

Viết tắt: LEFT JOIN
Có thể diễn giải LEFT JOIN trong SQL như sau: "Lấy toàn bộ các dòng dữ liệu ở table bên trái và những dòng dữ liệu ở bảng bên phải CÓ giá trị MaHang tồn tại ở bảng bên trái.".
Kết quả minh họa như hình sau, kết quả trả về là hình oval màu xanh:
Câu truy vấn như sau:
SELECT t1.MaHang, t1.TenHang, t2.SoLuong
FROM Item t1 LEFT JOIN OrderDetail t2 ON t1.MaHang = t2.MaHang
Kết quả trả về:
Một số dòng có SoLuong == null là do các MaHang này không tồn tại ở bảng bên phải (OrderDetail), nhưng có tồn tại ở bảng bên trái (Item).

b. RIGHT OUTER JOIN

Viết tắt: RIGHT JOIN
Trái ngược với LEFT JOIN, RIGHT JOIN trong SQL Server lấy toàn bộ dữ liệu của bảng bên phải và dữ liệu của bảng bên trái nhưng giá trị cột JOIN cũng tồn tại trong bảng bên phải.

c. FULL OUTER JOIN

Viết tắt: FULL JOIN

FULL OUTER JOIN trong SQL Server chính là kết quả gộp lại của cả hai table bên trái và bên phải.
Hình minh họa:
Câu truy vấn:
SELECT t1.MaHang, t1.TenHang, t2.SoLuong
FROM Item t1 FULL JOIN OrderDetail t2 ON t1.MaHang = t2.MaHang
Kết quả:
Quan sát kết quả trên có thể thấy:
Các dòng có MaHang = null là do bảng bên phải (OrderDetail) có giá trị nhưng table bên trái (Item) không có giá trị MaHang tương ứng.

Các dòng có SoLuong = null là do các mặt hàng IPHONE5, 6, NO1200 có trong bảng Item nhưng không có dòng nào tương ứng trong table OrderDetail.

d. CROSS JOIN

CROSS JOIN trong SQL ít được sử dụng hơn so với các loại JOIN ở trên do tính ít ý nghĩa của nó, kết quả trả về của CROSS JOIN là lấy số dòng của bảng bên trái x số dòng của bảng bên phải. Ví dụ bảng Item có 6 dòng, bảng OrderDetail có 5 dòng, kết quả trả về là 30 dòng.
Dữ liệu được nhân lên do cứ tương ứng với 1 dòng trong Item thì sẽ nối với toàn bộ 5 dòng trong OrderDetail mà không cần quan tâm đến tiêu chí so sánh nào (không có mệnh đề ON t1.ColumnA = t2.ColumnB như các kiểu JOIN khác). Cái này là phép nhân Đề các 2 quan hệ với nhau.
Câu truy vấn:
SELECT t1.*, t2.*
FROM Item t1 CROSS JOIN OrderDetail t2
Tương tự khi như ta viết:
SELECT t1.*, t2.*
FROM Item t1, OrderDetail t2
Kết quả trả về:
Thường với những câu truy vấn này ta phải thêm điều kiện WHERE để hạn chế kết quả trả về.

Chỉ có liên kết các bảng với nhau mà đã có nhiều cách như vậy. Hy vọng bạn hiểu rõ chức năng của từng loại JOIN ở trên để sử dụng hợp lý.
Chúc bạn thành công!

(Nguồn: Big Data)

Thứ Tư, 15 tháng 7, 2015

[AE Template] Adobe After Effect và chia sẻ mẫu làm video tổng hợp ảnh

Nếu bạn là 1 người hay vọc vạch thiết kế đồ họa, hiệu ứng video, kỹ xảo cho phim thì không thể không biết tới Adobe After Effect.
AE là 1 phần mềm chuyên xử lý video, hiệu ứng trong phim, giúp tạo các kỹ xảo trong phim.

Nếu bạn có hứng thú về lĩnh vực này mà máy tính của mình chưa có AE thì bạn có thể tham khảo bài viết hướng dẫn cài đặt ở link sau
After Effect CS6 64 & 32 bit + crack

Để máy chạy tốt các tính năng của AE máy bạn phải cài thêm QuickTime. Cái này rất quan trọng, vì trong khoảng thời gian đầu mình phải mất mấy ngày để xử lý mấy lỗi linh tinh khi chưa cài Quicktime.
Bạn download QuickTime tại đây.

Sau đây mình sẽ chia sẻ cho các bạn 1 template tạo video từ ảnh + hiệu ứng chuyển động 3D
Video mình đã làm

Download Template tại đây: MEGA

Để chạy tốt template này bạn phải cài thêm 1 plugin làm các hiệu ứng như pháo hoa..., đó là Trapcode Particular
Download Full bộ hiệu ứng Trapcode tại đây.

Hướng dẫn sử dụng Template:
- Bạn down temp về, giải nén, mở lên
- Chỉnh sửa các Footage thành các hình ảnh của bạn
- Xem thử và Render ra video (video khá nặng khoảng 20GB  :v , phải encode lại)

Các trang web chia sẻ AE Template: VietDesigner

Chúc bạn thành công!

Thứ Hai, 14 tháng 7, 2014

[PHOTOSHOP] Hướng dẫn tạo hình nền chữ huyền ảo

Chẳng biết nó là thể loại gì nhưng thấy đẹp nên post chia sẻ với mọi người.
DEMO:
 Hướng dẫn tạo hình nền chữ huyền ảo

Thật awesome!!!   :)
Nào hãy cùng bắt tay vào thực hiện, bài này rất đơn giản, chỉ với vài thao tác cơ bản mà thôi!

B1: Mở PTS, tạo 1 hình mới

Hướng dẫn tạo hình nền chữ huyền ảo

Ở đây mình để Full HD.

B2: Tạo nền.

Tô đen bức ảnh.
Ấn Ctrl + J để nhân đôi layer gốc, dùng công cụ Gradient Tool (hoặc Brush) để vẽ một nửa hình tròn màu trắng, có độ rộng, độ tỏa vừa phải trên layer vừa nhân đôi.
Dùng Filter > Noise > Add Noise để thêm noise cho layer này.
Hướng dẫn tạo hình nền chữ huyền ảo

Hạ Opacity hoặc Fill xuống cho vừa mắt.
Mục đích của việc này là tạo ra một cái nền không quá đơn điệu, tạo cảm giác như có 1 bóng đèn đang chiếu vào   :v

B3: Thêm chữ nền

Dùng Text Tool để viết chữ, viết một đoạn sau đấy copy & paste sao cho phủ 1 khoảng rộng hơn bức hình. Nên để phông chữ nhỏ, dễ nhìn, màu chữ trắng.
Xong rồi thì ấn Ctrl + T rồi quay cả đám chữ đấy đi 1 góc khoảng 30 độ, tùy bạn.
Hướng dẫn tạo hình nền chữ huyền ảo

Hạ Opacity xuống khoảng 3-5% sẽ được như này
Hướng dẫn tạo hình nền chữ huyền ảo

B4: Tạo 1 kí hiệu hoặc text trung tâm của bức ảnh

Phần nền như thế coi như đã tạm, giờ ta chuyển sang thiết kế một ký hiệu hoặc viết 1 chữ làm trung tâm của bức ảnh.
Ở đây mình tạo 1 document mới, dùng Path Tool để vẽ ra 1 chữ 'N' cách điệu như này   :v
Hướng dẫn tạo hình nền chữ huyền ảo

Sau đó kéo layer chữ N trắng về file vừa nãy đang làm ở trên, chỉnh position và bóp hình đi 1 chút sẽ được như này
Hướng dẫn tạo hình nền chữ huyền ảo

Lưu ý nếu bạn viết Text trực tiếp lên đây thì phải Raterize layer đó (click chuột phải vào layer text rồi chọn rasterize layer)

B5: Sao chép layer nền phần ký hiệu trung tâm

Như ở bức ảnh hoàn thành thì phần chữ 'N' không còn là màu trằng đơn điệu như bức ảnh trên nữa mà nó được tạo nên từ các dòng text nền phía dưới. Thực chất của việc này là chọn ra 1 phần layer chữ nền vừa bao trọn phần ký hiệu kia, sau đó sao chép phần chọn đấy ra 1 layer khác, tăng opacity lên là được. Chú ý phần chữ nền ta đang để opacity khoảng 5% nên nó mới mờ như thế, nếu ta tăng lên 100% thì nó lại trắng bình thường!
Trước hết phải Rasterize Layer chữ nền.
Ctrl + click vào biểu tượng layer ký hiệu, sẽ có 1 cùng select được bao quanh ký hiệu.
Ấn sang layer text nền rồi ấn Ctrl + J để sao chép sang 1 layer khác.
Tăng opacity layer đó lên 100%, và tắt layer ký hiệu kia đi
Được như này
Hướng dẫn tạo hình nền chữ huyền ảo

Nếu vẫn còn vùng selection thì ấn Ctrl + D để bỏ đi

B6: Thêm một vài chi tiết khác

Bạn có thể dùng các công cụ như Shape, Text Tool, Brush... để thêm một vài chi tiết khác cho đỡ đơn điệu.
Hướng dẫn tạo hình nền chữ huyền ảo

Có thể thêm 1 vài Len Flare cho sinh động, cái này mình rất thích   :)

B7: Giảm bớt phần viền để làm nổi bật phần trung tâm

Bức hình đã cơ bản hoàn thiện bạn có thể lưu ngay bức ảnh coi như hoàn chỉnh. Hoặc có thể thêm 1 vài layer nhỏ để làm nổi bật phần trung tâm nên. Có thể dùng brush để bôi đen những phần góc hoặc làm như sau:
Tạo 1 layer mới ở trên cùng, bôi đen hoàn toàn, hạ opacity xuống khoảng 50% để có thể nhìn thấy các layer phía dưới
Dùng Lasso Tool để chọn 1 cùng chọn ở trung tâm bức ảnh, bao quanh phần ký hiệu hoặc một số chỗ khác muốn làm nổi bật. Xóa vùng chọn đó đi

Để Feather lớn để không làm quá lộ đường cắt
Cuối cùng, có thể giảm tiếp hoặc tăng opacity lên. Dùng Gaussian Blur (radius khoảng 50 - 60) để làm mờ đường cắt, có sự tương đối giữa phần trung tâm và phần viền
Hướng dẫn tạo hình nền chữ huyền ảo


Vậy là đã hoàn tất bức hình, chúc bạn thành công!