Custom Google Search

Oct 08
2008

IT manuals (mostly programming)

Yes it takes a lot of time (in my case almost 5 hours) to get into the goog search manuals and goog appengine. But that’s ok goog is doing fine.

Quick Scanner (Host/Port)

Sep 28
2008
#!/usr/bin/ruby
 
host_port = ARGV[0]
host = host_port.split(':').first
port = host_port.split(':').last
 
puts %x[nmap -p #{port} #{host}]

Or just:

#!/usr/bin/ruby
 
puts %x[nmap -p #{ARGV[0].split(':').reverse.join(' ')}]

Usage (cli and given that the script is named scan_proxy):

./scan_proxy 202.105.182.87:808

Unaliased Fronts and KDE

Sep 24
2008

All of us (the people that hate vista and apple styled aliased fonts) have seen the ugly fonts in some KDE apps (Firefox for example). But this is not the case with XFCE where evreything works fine.
So here is a fix for KDE (just run the following command):

$ cat ~/.gtkrc-2.0
gtk-font-name = "Arial 10"

Simple Phonebook Script

Sep 20
2008
#!/usr/bin/env ruby
 
class Hash
  def search(arg)
    self.select { |k,v| k =~ /#{arg}/ or v =~ /#{arg}/ }
  end
end
 
search = ARGV[0]
search =~ /^[0-9]+/ and search = search.to_i
 
phones = {
  "me"        => "359880101020406",
  "Hitler"     => "+49 666",
  "Van Gog" => "+31",
  "devil"      => "666",
  "God"       => "1",
}
 
phones.search(search).each do |person|
  print "person:#{person.first}\tnumber:#{person.last}\n"
end

What is PHP?

Sep 15
2008

Technology, which is prohibited by the Geneva Convention. Unfortunately, there are still countries in the world where such technology is used to torture animals and developers.

According to the FMI study, 23 monkeys may make random chatter on the keypad to write the language compiler for a maximum of 292 hours.

the original text (in Bulgarian)

Ruby __DATA__ (embedded data)

Aug 22
2008
module Kernel
  RE_THIS_DATA = lambda{ |number| /^__DATA#{number}__\n/ }
  RE_THE_DATA  = /^__DATA\d+__/
 
  def __data__(num="")
    data = File.read($0).split(RE_THIS_DATA.call(num))
    data[1].split(RE_THE_DATA)[0] if data[1]
  end
end
 
puts "DATA"
print __data__()
 
puts "DATA1"
print __data__(1)
 
puts "DATA2"
print __data__(2)
 
__END__
 
__DATA__
data_1
data_2
data_3
 
__DATA1__
data1_1
data1_2
data1_3
 
data1_11
 
__DATA2__
data2_1
data2_2
data2_3
 
data2_31

Chdir Method with Block

Aug 22
2008
# temporary changes the cwd to '/tmp',
# adds content to a file and finally restores cwd
 
p Dir.getwd
 
Dir.chdir("/tmp") do
  p Dir.getwd
  File.open("test.txt", "a") do |f|
    f << Time.now << "\n"
  end
end
 
p Dir.getwd

Fighting with Opera Bugs

Aug 21
2008

Thank to Opera plugins’ implementaion I had over 100% CPU laod (dual core).
The solution: rm /usr/lib/opera/9.52/operaplugincwrapper

Random strings

Aug 19
2008
module Kernel
  def random_uc(size=16)
    Array.new(size){ rand(26)+65 }.pack('C*')
  end
  def random_lc(size=16)
    Array.new(size){ rand(26)+97 }.pack('C*')
  end
  def random_num(size=16)
    Array.new(size){ rand(10) }.join
  end
end
 
random_uc => "HRTWYJBJEZDKYPTJ"
random_lc => "onxkvkezqukspmcx"
random_num => "5862195932579950"

Setting Core Objects’ Methods in RoR

Aug 09
2008

mkdir -p RAILS_ROOT/vendor/plugins/core_methods

mkdir -p RAILS_ROOT/vendor/plugins/core_methods/init.rb

The content of init.rb:

module Rails
 
  empty_and_nil = %q{def empty_and_nil; self.empty?? nil : self end}
 
  Array.send :class_eval, empty_and_nil
  Hash.send  :class_eval, empty_and_nil
 
end

The namespace Rails isn’t necessary, it’s a cosmetic feature.

Calendar

September 2010
M T W T F S S
« Aug    
 12345
6789101112
13141516171819
20212223242526
27282930  

Tags