Trước tiên mình xin trân trọng mời bạn nào tên ĐẠT vào nhận hàng. Có một gấu xinh và một mối quen biết cực kỳ hợp nếu bạn chấp nhận bạn đổi tên thành Đạt. :3 Cuối tuần rồi mình cũng muốn dành chút bất ngờ tới bạn đọc, và bạn thử xem đi số lượng tin nhắn khá nhiều và một mối tình mới quen chớm nở từ đấy. Tình yêu cao thượng vốn không phân biệt giàu nghèo...hay những vấn đề nhức nhối trong xã hội. Nhưng hẳn đây là một tình yêu vĩ đại :D :D
Có lẽ trong số chúng ta, ai cũng từng có một câu thần chú trong đầu rất nổi tiếng là “để mai làm”. Bản thân mình ngày trước cũng vậy, mình là người rất lười biếng và luôn hẹn tới hẹn lui, rồi rốt cuộc việc mình làm vẫn chưa đâu vào đâu. Vậy lý do nào khiến bản thân mình trở nên lười biếng và trì hoãn? Bài viết sau đây mình sẽ nói về vấn đề này.
Chúng ta đã bao giờ biết quý trọng thời gian?
“5 phút nữa mình sẽ dậy”, “xem xong bộ phim này sẽ học bài”, “còn 2 tuần nữa mới thi, xoã đi”,… là những câu mà mình tin rằng mỗi chúng ta đều đã từng suy nghĩ tới. Bạn thử thống kê xem trong 1 ngày mình đã nói bao nhiêu câu như vậy rồi? Và liệu rằng bạn đã hoàn thành nó hay chưa? Nếu hoàn thành rồi thì nó có đạt chất lượng như mình mong đợi hay không?
Tưởng tượng công việc của bạn là 1 cái thùng lớn, động lực của bạn là lực đẩy tới thì tính trì hoãn chính là lực ma sát, và lực ma sát trong trường hợp này chưa bao giờ có lợi cả. Nếu ta muốn đẩy cái thùng một cách nhẹ nhàng, ta có thể dùng nhiều cách, ví dụ như gắn bánh xe vào chân thùng. Tính trì hoãn cũng vậy, nếu bạn gắn “bánh xe” vào việc bạn muốn làm, bạn sẽ đạt được thành công nhất định.
Chúng ta thường trì hoãn bởi vì những lý do sau:
1. Có hứng mới làm
Mình tin chắc rằng với mỗi người đều có 1 câu giống như vầy: “thôi làm biếng quá, có hứng rồi làm luôn” (lâu lâu mình cũng vậy :v). Điều đó rất là nguy hiểm, bởi vì trong cuộc sống đâu phải lúc nào chúng ta cũng có hứng. Ngay cả những người thành công cũng vậy, đôi lúc khi làm việc sẽ cảm thấy mệt mỏi, lười biếng, đó là chuyện rất bình thường. Con người chứ đâu phải trâu bò, đâu phải lúc nào cũng đầy đủ năng lượng để mà làm việc đâu
Những lúc thế này, đi chơi với bạn bè thì tuyệt vời!
Mỗi người đều có 1 giải pháp riêng cho vấn đề này, có thể là xả stress bằng cách nghe nhạc, xem phim, đi tán gẫu với bạn bè,… Mình rất khuyến khích điều này, bởi vì trong quá trình ta xả stress, có thể những ý tưởng sẽ “trồi lên”. Và việc chúng ta cần làm khi đó là ghi chú lại việc mình muốn làm để khi giải trí xong, ta có thể bắt tay vào làm ngay lập tức.
Nhưng với những công việc cần ta hoàn thành trong thời gian nhất định thì đào đâu ra thời gian để mả xả stress? Trong nhiều trường hợp, ta cần phải hoàn thành công việc ngay cả khi có hứng hay không có hứng. Quan trọng một điều, những lúc có hứng thì ta phải nỗ lực làm nhiều hơn những khi không có hứng.
2. Không có mục tiêu rõ ràng
Bạn muốn ra trường có việc làm tốt, muốn sau này sẽ học giỏi, muốn được người khác kính trọng. Tất nhiên những điều ước đó rất đẹp, và mình tôn trọng những điều ước của các bạn. Nhưng liệu bạn đã vạch ra những lộ trình để đến với những ước mơ đó chưa?
Đề ra mục tiêu rõ ràng cho công việc là hết sức quan trọng đấy!
Ra trường có việc làm tốt, rất nhiều người ước điều này. Và mình khẳng định 1 điều, đa số các ngành nghề nếu ta có đầu tư cho nó thì sau này sẽ có việc làm tốt. Quan trọng là bạn đầu tư những thứ “có liên quan” với nghề bạn chọn. Bạn không thể thích viết phần mềm mà trong khi bản thân suốt ngày đi học nhảy dance, cũng như không thể thích làm ca sĩ mà mình suốt ngày sáng tác những bài thơ… con cóc.
Đặt những mục tiêu để hoàn thành công việc là điều quan trọng, nó giống như việc bạn chơi 1 tựa game RPG mang tên “cuộc sống” vậy. Ban đầu bản thân mình ở level 1, để mạnh hơn thì ta cần phải làm những nhiệm vụ mà các NPC “nhà trường”, “gia đình”, “công ty” giao để lên cấp và có những trang bị mạnh. Trong quá trình chơi game, ta có thể bắt gặp những con boss hoàng kim “đồ án”, “project” rất khó khăn, mà khi ta kết liễu nó sẽ cho những món đồ quý hiếm như “kinh nghiệm”, “sự tin tưởng”, “tiền”. Và cuối cùng ta phải về đích, kết liễu trùm cuối để hoàn thành tựa game.
Ta đang chơi một game RPG mang tên “cuộc sống” đấy!
Bạn thấy đấy, công việc khi chia ra làm những mục tiêu nhỏ nhưng rõ ràng sẽ khiến bạn thấy hào hứng hơn phải không nào? Vậy bạn tưởng tượng xem, mình đã ở level mấy rồi?
3. Nghĩ rằng nó dễ hoàn thành
“Xời, bài toán này dễ mà, để tí rồi làm”, “ông sếp giao việc có khó gì đâu, mai làm cũng được” là những câu tự an ủi bản thân khi gặp những việc được giao. Và thường tới những lúc ta bắt đầu làm mới nhận ra rằng có nhiều vấn đề phát sinh hơn ta tưởng. Đó chính là lúc sự trì hoãn bắt đầu thể hiện, và ta nhận ra rằng thời gian còn lại để hoàn thành công việc là không đủ…
Điều đó rất nguy hiểm, nó tạo cho ta thói quen ỷ lại, nghĩ rằng mình có thể hoàn thành công việc một cách nhanh gọn. Nhưng “đời đâu như là mơ”, rất nhiều lý do khiến ta chưa hoàn thành công việc, và đấy là 1 ví dụ điển hình. Vì vậy, mỗi bản thân khi có việc phải hoàn thành thì phải làm ngay lập tức, bất kể nó có khó khăn hay không.
4. Xao lãng
Trong quá trình bạn làm việc, đôi lúc sẽ có những tác động ngoại cảnh ảnh hưởng. Chẳng hạn như âm thanh quen thuộc dưới đây:
Theo nghiên cứu của các nhà khoa học Mỹ, thì công nghệ hay những trang mạng xã hội lớn như Facebook, Google+ là nguyên nhân chính của sự xao lãng. Bạn có thể ngắt ngang công việc chỉ để trả lời tin nhắn của bạn rủ đi ăn, hay bỏ hẳn chỉ vì “có kèo đi chơi”. Tất nhiên là bạn sẽ hoàn toàn quên hẳn công việc mà mình đang làm khi nãy.
Tất nhiên, đôi lúc trong công việc ta cần phải có sự nghỉ ngơi, giải trí. Nhưng làm sao để không trộn lẫn công việc với giải trí lại là 1 vấn đề khác. Bạn có thể tạm thời tắt Facebook, đóng 1 cửa sổ xem phim yêu thích, để điện thoại ở chế độ yên lặng để tập trung hoàn thành công việc. Có thể “tự thưởng” cho bản thân khi hoàn tất việc, chẳng hạn như “xong đống bài tập mình sẽ xem 3 tập phim”, “code xong deadline mình sẽ làm vài ván LoL”,… như vậy sẽ giúp ta có động lực để hoàn thành việc hơn (nhưng đừng vì vậy mà làm ẩu nhé!).
Có quá nhiều thứ cản trở công việc của ta đấy!
Có một câu chuyện như thế này:
“Mỗi buổi sáng, một ngân hàng sẽ mở cửa và chuyển cho bạn $86400, nhưng kèm theo 2 điều kiện:
Tất cả số tiền không chi tiêu trong ngày thì đến tối sẽ bị lấy đi. Ta không thể gian lận, không thể gửi tiền sang tài khoản khác mà chỉ có cách là chi tiêu. Nhưng sáng hôm sau ngân hàng sẽ chuyển cho bạn $86400 mới.
Ngân hàng có thể đóng cửa bất kì lúc nào mà không cần phải báo trước, và sẽ không có tài khoản khác cho bạn.
Liệu bạn có biết được ngân hàng hào phóng trên là gì không?”
Vâng, đó chính là thời gian. Mỗi buổi sáng, ta được phát 86000 giây, vậy bạn tưởng tượng khi bạn xao lãng trong khoảng 1 giờ thì bạn phải tổn thất bao nhiêu? $3600 đấy! Và trung bình những người xao lãng thường chi trả 2 đến 3 tiếng chỉ để “làm những việc linh tinh”.
Thời gian chính là ngân hàng quý báu nhất của mỗi chúng ta.
Với mỗi người có những cách hạn chế trì hoãn khác nhau, nhưng điều tiên quyết là phải biết quản lý thời gian hợp lý. Bạn có thể tạm ngưng công việc đang làm, nhưng thời gian thì không, nó vẫn trôi qua đều đặn đấy thôi. Một người thành công là những người biết làm chủ thời gian, bởi vì thời gian chẳng hề dư ra, và nếu bạn không biết tận dụng – thiệt hại chỉ thuộc về BẠN.
Đừng bao giờ để đến ngày mai những việc bạn có thể làm ngày hôm nay.
Có lẽ với mỗi bản thân thì trì hoãn rất khó để bỏ hoàn toàn, nhưng hạn chế thì có thể. Vậy liệu bạn đã hoàn thành việc mình đang làm ngày hôm nay chưa?
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:
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!
Sau khi nhìn giao diện của 1 blog sử dụng blogspot để làm blog phim rất bắt mắt cộng với việc mình nhận được nhiều yêu cầu từ bạn đọc về ý kiến các templates phù hợp với việc chiếu phim online...Và một mẫu giao diện mình thấy rất phù hợp và khả năng tuỳ chỉnh cũng rất tốt đó là Movies On mà mình sẽ giới thiệu với bạn đọc ngay dưới đây. Nổi bật theo cách thiết kế hiện đại và nếu bạn đang sử dụng điện thoại di động thông minh thì hãy thử lướt vào demo xem nhé.
Rất phiền toái...rất phiền toái....và VÔ CÙNG PHIỀN TOÁI Chắc chắn bạn đã từng bị thêm vào một nhóm chát vô duyên nào đó trên Facebook và nội dung đó không gì khác ngoài những tin nhắn quảng cáo: sim điện thoại, bất động sản, bán hàng linh tinh ... và đủ các thể loại trong đó. - Không những thế, bạn cảm thấy phiền hơn khi số lượng thông báo tin nhắn ngày càng nhiều và bạn chỉ biết cách rời khỏi nhóm trò chuyện đó. Rời khỏi nhóm này thì lại bị thêm vào nhóm inbox khác. Thật khốn nạn ! Để giải quyết nỗi khốn nạn ấy, bài viết này ITViet360 hướng dẫn bạn cách chặn tin nhắn inbox spam nhóm (Group) trên Facebook (FB), chỉ với một vài thao tác đơn giản. Cùng chấm dứt ngay nạn spam inbox bạn nhé.
Chặn tin nhắn spam Facebook trên giao diện máy tính
Đàu tiên bạn vào CÀI ĐẶT -> QUYỀN RIÊNG TƯ (nếu muốn nhanh thì nhấp vào link này là tới nó luôn) nhìn thấy Ai có thể liên hệ với tôi? => trong đó có 2 mục Ai có thể gửi lời kết bạn với tôi và Tôi muốn lọc tin nhắn của ai vào Hộp thư đến của mình? Thì chọn mục 2 và chọn lọc nghiêm nghặt như hình chụp dưới đây
Thế là các tin nhắn từ người lạ không có trong danh sách bạn bè của bạn sẽ bị hạn chế :D :D chi tiết
Chào các bạn! Đã lâu không trở lại với blog mình nhỉ :D dạo này mình lười quá, đồ án và deadline cũng nhiều. Thôi không dài dòng nữa, mình sẽ đi vào vấn đề chính.
GIỚI THIỆU
Đã bao giờ bạn nghĩ một phần mềm khi có quá nhiều control thì làm sao để quản lý nhanh các control đó. Hoặc khi có những "nhóm" các control phục vụ các chức năng liên quan đến nhau, khi cần show, hide chúng đồng loại lại phải gọi từng control??? Panel đã ra đời để giải quyết vấn đề đó Panel dùng để tạo nhóm các control. Là một container với dạng một khung đơn giản để chưa các sub-control (button, textbox, ...) ở trong nó.
THUỘC TÍNH CỦA PANEL
Cũng tương tự như các control khác Panel có những thuộc tính rất cơ bản. Lưu ý: Các sub-control nằm trong panel, thì sẽ bị ảnh hưởng bởi thuộc tính Enable và Visible của panel. Cả hai thuộc tính này đều phụ thuộc vào thuộc tính của panel chứa nó. Đây cũng là lý do dùng panel để show/hide một cụm các control Có lẽ các bạn đang thắc mắc khi panel có những chức năng tương tự như Groupbox, vậy thi nó khác gì với groupbox mà chúng ta đã tìm hiểu qua các bài trước. Bạn hãy mở Properties của panel, xem và kiểm tra thử nhé
Điểm khác nhau giữa Panel và Groupbox: - Panel có khả năng Scrollable trong khi groupbox thì không. Panel khi chứa nhiều control có kích thước quá lớn thì thanh cuộn sẽ hỗ trợ việc hiển thị các control đó. - Panel còn có hỗ trợ khung viền (borders) đa dạng hơn groupbox - Groupbox có thuộc tính Text, dùng làm Caption hiển thị trên đầu khung, trong khi Panel không có
THÊM CONTROL VÀO PANEL
Để thêm control vào panel bạn có thể kéo thả control đó trực tiếp vào panel chứa nó. Hoặc sử dụng code để thêm
TextBox textBox1 = new TextBox(); textBox1.Location = new Point(10, 10); textBox1.Text = "Học lập trình cùng IceTea Việt"; textBox1.Size = new Size(200, 30);
CheckBox checkBox1 = new CheckBox(); checkBox1.Location = new Point(10, 50); checkBox1.Text = "Check Me"; checkBox1.Size = new Size(200, 30);
Panel control là một container hay hay là một cơ chế nhóm control trong C# WinForms, và phù hợp cho cả mục đích hình ảnh giao diện và logic chương trình. Với nhiều phong các border, bạn có thể tổ chức giao diện các sub-control trong panel. Và vì khả năng điều khiển các thuộc tính của các sub-control bạn có thể làm giảm độ phức tạp của code cho chương trình.