Ruby

หอคอยแห่งฮานอย (Tower of Hanoi)

เมื่อวันพุธที่ผ่านมานั้นมี Programming Day โดยอาจารย์เดฟได้ให้ทำโจทย์ต่างๆ แต่มีข้อนึงต้องแก้ปัญหา หอคอยแห่งฮานอย (Tower of Hanoi) ซึ่งผมใช้ภาษารูบี้ (Ruby) ในการเขียนโปรแกรม โดยอาจารย์ได้แนะนำการทำดังนี้

1. กำหนดปัญหาดังรูปด้านล่าง และกำหนดให้แผ่นจานล่างสุดเป็น head ที่เหลือเป็น tail

5
Your rating: None Average: 5 (1 vote)

Convert Decimal to Binary in C++ and Ruby

C++

void binary(int number) {
  int remainder;
 
  if(number <= 1) {
    cout << number;
    return;
  }
 
  remainder = number%2;
  binary(number >> 1);
  cout << remainder;
}

Ruby

>> 7403.to_s(2)
=>1110011101011

ใช้ภาษา ruby สบายใจกว่ากันเยอะ bug ที่จะเกิดน้อยกว่าภาษา C++ แน่ๆ (พูดให้คนอ่านเปลี่ยนมาเล่น ruby กันมากขึ้น)

0
Your rating: None

ความแปลกของ String Ranges ใน Ruby

> ('1'..'10').to_a
=> ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
> ('2'..'10').to_a
=> []
> ('3'..'10').to_a
=> []
> ('2'..'20').to_a
=> ["2", "3", "4", "5", "6", "7", "8", "9", . . . . ., "18", "19", "20"]
> ('3'..'20').to_a
=> []
> ('10'..'20').to_a
=> ["10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"]
> (1..10).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
> (2..10).to_a
=> [2, 3, 4, 5, 6, 7, 8, 9, 10]
> (3..10).to_a
=> [3, 4, 5, 6, 7, 8, 9, 10]

update:

> (2′..’10).to_a
=> []

5
Your rating: None Average: 5 (1 vote)

การแปลงจาก string ให้เป็น date ใน Ruby

พอดีว่าทำงานเกี่ยวกับปฏิทินนิดหน่อย และต้องมีการใส่วัน เดือน และปี จากนั้นจะเปลี่ยน String ที่ได้รับเข้ามาให้เป็น Date จึงพึ่งพาพลังของ Google ก็เจอ code ด้านล่างนี้

> require 'date'
> date = Date.strptime('24-07-2007', '%d-%m-%Y')
> date.mday # => 24
> date.month # => 7
> date.year # => 2007

อยากจดเก็บไว้เสียหน่อย…กันลืม

0
Your rating: None

การ generate password โดยใช้ ruby

ในการใช้งานบางครั้งเราจะต้อง generate อะไรบางอย่างออกมา แต่งานที่ผมทำนั้นจะต้อง generate password เพื่อใช้ในการสมัครสมาชิก ซึ่ง code ที่เขียนนั้นก็มีดังนี้

irb(main):001:0> def generate_password(length = 6)
irb(main):002:1> chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('1'..'9').to_a - ['o', 'O', 'i', 'I']
irb(main):003:1> Array.new(length) { chars[rand(chars.size)] }.join
irb(main):004:1> end
=> nil

การใช้งาน

irb(main):005:0> pass = generate_password
=> "khbNP9"

หรือ

irb(main):006:0> pass = generate_password(15)

0
Your rating: None

Beautiful Ruby in TextMate

เนื่องจาก TextMate ไม่ได้มีการจัด code ของ ruby ให้อ่านได้ง่ายๆ ดังนั้น Paul Lutus จึงได้ทำ Ruby code beautifier in Ruby โดยเพิ่มมันเข้าไปใน TextMate

วิธีการเพิ่มเข้าไปใน TextMate

1. ไปที่เมนู Bundles –> Bundle Editor –> Show Bundle Editor

TextMate01
0
Your rating: None