Saturday, December 27, 2014

[jQuery] Cach reset form hoac reset value input tren form

Cach 1:

Doing this task with jQuery is really easy:
$('#FormID').each (function(){
  this.reset();
});
The thing is, that the code above iterates through each element of the form, and calls to the DOM “reset” JavaScript method. In fact, the “reset” function does not exist in jQuery.
It would be much more simple to do something like $(“#FormID”).reset(). Fortunately creating that function in jQuery only will take a minute of programming:
jQuery.fn.reset = function () {
  $(this).each (function() { this.reset(); });
}
Using the code above, reseting a form would be just one call (as desired):
$("#FormID").reset();

Cach 2:

<input type="button" onclick="this.form.reset();">
Cach 3:

function reset(){
    $('input[type=text]').val('');  
    $('#textarea').val(''); 
    $('input[type=select]').val('');
    $('input[type=radio]').val('');
    $('input[type=checkbox]').val('');  
}

[jQuery] Su dung javascript khi page load

src: http://learn.jquery.com/using-jquery-core/
Cach 1:
// A $( document ).ready() block.
$( document ).ready(function() {
console.log( "ready!" );
});

Cach 2:
// Shorthand for $( document ).ready()
$(function() {
console.log( "ready!" );
});

Cach 3:
// Passing a named function instead of an anonymous function.
function readyFn( jQuery ) {
// Code to run when the document is ready.
}
$( document ).ready( readyFn );
// or:
$( window ).load( readyFn );

VD:
<html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
$( document ).ready(function() {
console.log( "document loaded" );
});
$( window ).load(function() {
console.log( "window loaded" );
});
</script>
</head>
<body>
<iframe src="http://techcrunch.com"></iframe>
</body>
</html>

Monday, December 1, 2014

Compare 2 DateTime

[C#]

using System;

public class Example
{
   public static void Main()
   {
      DateTime date1 = new DateTime(2009, 8, 1, 0, 0, 0);
      DateTime date2 = new DateTime(2009, 8, 1, 12, 0, 0);
      int result = DateTime.Compare(date1, date2);
      string relationship;

      if (result < 0)
         relationship = "is earlier than";
      else if (result == 0)
         relationship = "is the same time as";         
      else
         relationship = "is later than";

      Console.WriteLine("{0} {1} {2}", date1, relationship, date2);
   }
}
// The example displays the following output: 
//    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM

[VB]
Module Example
   Public Sub Main()
      Dim date1 As Date = #08/01/2009 12:00AM#
      Dim date2 As Date = #08/01/2009 12:00PM#
      Dim result As Integer = DateTime.Compare(date1, date2)
      Dim relationship As String 

      If result < 0 Then
         relationship = "is earlier than" 
      ElseIf result = 0 Then
         relationship = "is the same time as"          
      Else
         relationship = "is later than" 
      End If

      Console.WriteLine("{0} {1} {2}", date1, relationship, date2)
   End Sub 
End Module 
' The example displays the following output: 
'    8/1/2009 12:00:00 AM is earlier than 8/1/2009 12:00:00 PM

Compare 2 String fromA - toB

[JAVA]

/**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        String from_a = "$#ABDJAH000011";
        String to_b = "$#ABDJAH000010";
        int result = from_a.compareTo(to_b);
        if(result > 0){
            System.out.println("To_b must be after from_a in alphabets table");
        }
    }

var q = db.RandomTable as IQueryable;
if (checkBox.Checked)
{
    q = q.Where(/* condition */);
}

Saturday, August 16, 2014

Ý nghĩa của việc chia Level trong lập trình

Cá Trắm trong "Ao" thì to, nhưng ra "Đại Dương" mới biết cá "TO" thế nào.

Ở các công ty thường sẽ có bản tự đánh giá kỹ năng bản thân, kinh nghiệm rút ra sau mỗi dự án, mỗi quý hoặc mỗi năm.

Thang các kỹ năng thường được lấy từ 1 đến 5, rồi các nhân viên (lập trình viên) tự chấm điểm cho mình, theo dõi bảng đánh giá này để biết được sự tiến bộ của mỗi thành viên, tuy nhiên việc tự đánh giá đúng được sức mạnh của bản thân lại là một vấn đề khác.

Mình thấy tồn tại ở một số công ty, các thành viên do chưa lắm được ý nghĩa của việc chia điểm từ 1 đến 5 có ý nghĩa gì, khi nào là 1 và khi nào thì được coi làm đạt điểm 5 => dẫn đến việc ảo tưởng sức mạnh hoặc tự chấm sai dẫn đến phải gánh chịu mức lương vượt quá sức mình đồng nghĩa với việc được giao những công việc quá sức ^^, nói chung là cái gì "QUÁ" cũng là không tốt, vừa đủ thôi là đẹp @@.

Thang điểm lấy từ 1 đến 5 hay còn gọi là level 1 -> level 5 bắt nguồn từ "Dreyfus model of skill acquisition", mô hình này do Brothers Stuart và Hubert Dreyfus đề xuất năm 1980 tại Đại Học California, gồm có 5 giai đoạn đi từ chưa biết gì cho đến chuyên gia:

                         Novice -> Advanced beginner -> Competent -> Proficient ->Expert

Level 1: Novice

  • Không có hoặc là có một chút ít kinh nghiệm
  • Áp dụng một các cứng nhắc theo các công thức, hay nói cách khác là nhìn người khác code, sau đó code theo
Theo đánh giá của các chuyên gia, thì đa phần chúng ta đang ở mức này, chiếm tỉ lệ rất cao trong giới lập trình ^^


Level 2: Advanced Beginner

  • Tự xử lý được vấn đề, nhưng rất khó, và chậm

Nói chung là tầm level 2 là có thể kiếm ăn được rồi, khua chân, múa tay các kiểu :v

Level 3: Competent

  • Có thể phát triển ứng dụng dưới dạng mô hình hóa
  • Tự đưa giải pháp, tự tìm lỗi
  • Giải quyết những vấn đề lâu dài

Level 4: Proficient

  • Nhìn nhận bài toán một cách toàn diện
  • Có thể hướng dẫn cho người khác

Level 5: Expert

  • Lúc này không còn dựa vào một duy tắc nào cả, code vượt qua cả giới hạn của những quy tắc, hướng dẫn
  • Làm việc chủ yếu bằng phản xạ
  • Việc phân tích bài toán chỉ xuất hiện khi đó là bài toán mới hoặc vấn đề lớn xảy ra
Nếu hiểu theo ngôn ngữ của các nhà Võ học thì khi đạt tới tuyệt đỉnh rồi, thì mọi thứ sẽ là phản xạ, ra đòn chỉ trong chớp mắt, việc coding cũng vậy, khi đã đạt tới tuyệt đỉnh, việc xử lý các bài toán phức tạp một cách tổng thể và tối ưu vượt ra ngoài giới hạn của các quy tắc lập trình.

Nói như vậy không có nghĩa là khi đạt tới Level 5 thì sẽ dừng ở đây, "Văn ôn, võ luyện", việc code cũng như học võ hay những nghề thủ công không, chúng ta phải rèn luyện một cách liên tục thì đôi tay mới trở lên khéo léo và nhuần nhuyễn được, ở Việt Nam rất ít các coder có tuổi đời từ 40 hất ngược, nhưng thực tế ở Châu Âu chúng ta vẫn thấy những coder già tuổi, khoảng chừng 40-50, thậm trí còn hơn thế.

Để đạt được level 5 chúng ta mất khoảng 10.000 giờ, học tập, nghiên cứu, đúc kết và thực hành "liên tục", ý nói tính thường xuyên luyện tập và đúng cách, rơi vào khoảng 10 năm, nhưng thực tế vì nhiều lý do mà sẽ mất khoảng 15 năm để chúng ta trở thành một người lập trình lành nghề :d

Đặc biệt mọi người chú ý khi viết CV nhé, trong CV thường có mục đánh giá các kỹ năng (ngôn ngữ lập trình), tránh đánh giá sai rồi các xếp PV hỏi vặn lại không trả lời được, chúc may mắn ^^