Home
Useless

Реклама


Holub Michael (Mysterio)
Date: 2009-08-26 09:21
Subject: Ruby + Apple = ?
Security: Public
Location:Ukraine, Sevastopol
Mood:geeky geeky
Music:Múm - Sing Along
Tags:apple, dhh, ruby, snow leopard

dhh: Apple loves Ruby. Note how the Ruby icon for scripting language is taking precedence on the Snow Leopard page: http://bit.ly/xcxt2

Вполне очевидно, в python'е ничего особенного нет, а ruby повкуснее будет. За последние годы технология заматерела, обзавелась достойным набором либ, получился очень даже вкусный язык для скриптинга и веба.

Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-06-14 03:24
Subject: Небольшая, но прикольная тонкость.
Security: Public
Music:Desimal Tribute
Tags:hints, ruby

Подсказали на фриноде, сижу в шоке :)
А вы знали, что в форме условного оператора или оператора цикла в конце можно использовать несколько выражений? Я нет. И всегда писал, если нужно, как


unless false
  expr1
  expr2
end


оказалось, что никто не мешает писать вот так:

(expr1
 expr2) unless false


Вау! Теперь мои руки будут уставать еще меньше! Хвала ruby :)

6 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-06-13 03:00
Subject: Йо-хо-хо и бутылка рома!
Security: Public
Mood:crazy crazy
Music:neurofunk
Tags:fun, ruby

Сегодня ночью я решил поиграться с ruby. Вспомнил о таком веселом сайте, как http://99-bottles-of-beer.net.
Там собраны версии программ, которые печатают знаменитую песенку про 99 бутылок на разных языках.
Ну и немножко посидев, написал свою версию. Она получилась слегка громоздкой ;), поэтому не выкладываю ее здесь, а даю ссылку:
http://pastie.caboo.se/private/fkjfxgx9w7ee0wqco9

1 Comment | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-22 00:36
Subject: (без темы)
Security: Public



Интересно, какой ninja way написан вот в таких книжках? И каков он вообще настоящий ninja way? И свой ли он у каждого человека или есть какой-то true ninja way?

3 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-21 17:48
Subject: (без темы)
Security: Public
Music:Infected Mushroom - Merlin (Infected Remix)
Tags:psychedelic ambient, this world, мысли в 3 часа ночи

Хм... продолжаю продвигать свое мнение, что хардкор (== противоположность попсы) это тоже попса, как это не парадоксально звучит.

Вот есть фанатики попсы (их уже ничего не спасет), есть фанатики НЕ попсы (их тоже ничего не спасет), а есть Infected Mushroom, которые плевали на то, что их считают попсой, которые не пишут музыку специально хардкорно, а пишут ее так, чтобы было приятно слушать.

1. Heavyweight
2. Becoming Insane
3. Artillery
4. Merlin (Infected Remix)
5. Deeply Disturbed (Infected Remix)
6. Vicious Delicious
7. Suliman
8. Change The Formality

И это только с последних альбома и сингла

Короче, истина она не с краю, она посередине.

7 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-20 18:29
Subject: (без темы)
Security: Public
Tags:simple, useless

По ссылке увидел это:

require 'date'

class Date
  def self.last_of_month( arg = Time.now )
    year = ( arg.is_a? Fixnum ) ? Time.now.year : arg.year
    mon  = ( arg.is_a? Fixnum ) ? arg : ( arg.mon rescue Time.now.mon )
    
    raise ArgumentError unless mon.between?( 1, 12 )

    begin; Date.new year, mon, mday ||= 31
    rescue ArgumentError; mday -= 1; retry
    end
  end
end

Подумал, нафик так было извращаться и написал вот это:
class Date
  def last_of_month
    (self >> 1) - mday
  end
end

1 Comment | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-18 23:54
Subject: В следующих строчках нет ни слова о ruby
Security: Public
Music:non cadenza - серёжки
Tags:ninja way

Сходил в театр на "Медовый месяц в Венеции". Первый раз между прочим сходил за лет 8 как минимум. Можете кинуть в меня тапком, но вот такой вот я человек. Понравилось, рассчитываю появляться в театрах почаще. Море позитива и вдохновения и +1 очко к статусу ниндзя :)

3 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-16 03:02
Subject: (без темы)
Security: Public
Tags:lisp, ninja way

...Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list. -- Kent Pitman

1 Comment | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-14 20:59
Subject: (без темы)
Security: Public
Music:что-то психоделично-депрессивно-веселое от infected mushroom
Tags:ruby, study, why

Задание: технический перевод с английского на русский.
Сижу и думаю, для кого пишутся эти тексты? Вот кому-то доставляет удовольствие читать сухие технические тексты, где слов реально написано в 3-4 раза больше чем надо, а diagnostics utility program через каждые 3 слова просто убивает мозг к концу текста?
Почему нельзя писать это по-человечески? Впрочем для этого нужен талант и чувство меры, который дан не каждому.
Вот _why's poignant guide этими качествами пропитана,
а Учебник по Ruby на wikibooks нет.

2 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-13 22:22
Subject: Metamagic
Security: Public
Tags:java, metamagic, ruby

Java, ты мне теперь интересна лишь как виртуальная машина.

Кстати именно из-за этой штуки я и свалил на Ruby. Отличный "перетаскиватель".

1 Comment | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-13 20:58
Subject: nil is not nil?
Security: Public
Tags:just for fun, ruby

У нас конечно не смолток, но тоже кое-что умеем:

class << nil
  def nil?
    false
  end
end


Только вот проверить уже не удается, irb после такого умирает на следующей инструкции.

4 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-09 02:46
Subject: Кто сказал, что в руби нельзя задать метод из нескольких слов?
Security: Public
Tags:just for fun, ruby

Michael G.  	
в груви прикольно сделали.. там имя метода любое может быть..
Michael G. 	
по-моему даже с пробелами (не уверен)
Yurii R. 	
в руби тоже можно с пробелами
Michael G. 	
впрочем.. там это описано
Michael G. 	
метод? как?
Yurii R. 	
View paste

irb(main):002:0> Fixnum.class_eval do
irb(main):003:1*  define_method("hello world") { 1 }
irb(main):004:1> end
=> #<proc:0x00088aa4@(irb):3>
irb(main):005:0> 1.send "hello world"
=> 1

Michael G. 	
ми в шоке
Yurii R. 	
View paste

irb(main):007:0> 1.public_methods.sort.grep /hello/
=> ["hello world"]

5 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-09 00:37
Subject: еще немножко бесполезного кода (ну вы же видели название журнала?)
Security: Public
Tags:gpath, groovy, ruby, ruby newbie

Я конечно не думаю, что вам интересно смотреть на мой код, но все же буду флудить сюда хотя бы для себя :)

Реализация следующей вещи (идея взята из Groovy GPath):
tasks - коллекция каких-то элементов
Task имеет аттрибут name
Тогда tasks.names вернет коллекцию их имен..
А такие вещи можно будет соединять: tasks.names.uppercase - выдаст коллекцию имен в верхней раскладке: NAME_1, NAME_2, ...

Ах, да.. еще зачем-то решил задавать метод на лету прямо в объекте, не знаю.. будет ли быстрее, нужно провести бенчмарки.

require 'rubygems'
require 'active_support'

module GPathable
        alias :old_method_missing :method_missing
        @@method_missing_stack_deep = 0

        def method_missing(sym, *args)
                begin
                        if ((@@method_missing_stack_deep += 1) == 1)

                                old_method_missing(sym, *args)
                        else
                                raise NoMethodError
                        end

                rescue NoMethodError
                        meth = sym.id2name.singularize
                        instance_eval %Q{
                                def #{meth}(*args)

                                        collect { |elem| elem.#{meth}(*args) }
                                end
                        }
                        @@method_missing_stack_deep = 0

                        send(meth, *args)
                end
        end
end

class Array
        include GPathable
end

class MyTest
        attr_accessor :name
        def initialize(name)

                @name = name
        end
end

puts (1..100).inject([]) { |tests, i| tests << MyTest.new("name_#{i}") }.names.join(', ')



P.S. И сорри за такие длинные табы, я исправлюсь :)

11 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-06 00:40
Subject: (без темы)
Security: Public

First they ignore you, then they laugh at you, then they fight you, then you win. //Mahatma Gandhi

3 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-05-02 18:55
Subject: Нет предела совершенству..
Security: Public
Tags:ruby, smalltalk way

Если Ruby - это все объект, то SmallTalk все-все-все объект:
Все взаимодействия это посылки сообщений - абсолютно все: if, while, for, or, and, etc - это не структуры языка, это сообщения.

Примерчик?


charlie radius: 40.
[simon radius > charlie radius and: [simon radius > teresa radius]]
whileTrue: [ simon shrinkBy: 10 ].


Код тяжеловато сначала прочитать, но вполне возможно привыкнуть.
Будем учить ST вместе? :)

Update от [info]9__:
Еще задолго до появления Smalltalk Алан Кей сформулировал три фундаментальных принципа объектно-ориентированного программирования:
• Объект — базовая единица объектно-ориентированной системы.
• Объекты могут обладать состоянием.
• Посылка сообщения — единственный способ обмена информацией между объектами.

Просто и красиво, не так ли?

2 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-04-30 16:35
Subject: (без темы)
Security: Public
Tags:rspec, ruby, scite

При написании спеки (rspec) в Scite случайно нажал F5. И бинго! Она запустилась.
Чего-то я пропустил этот момент при чтении документации.

Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-04-29 16:53
Subject: (без темы)
Security: Public
Tags:solving everyday problems with ruby

С помощью  [info]9__ написал клиентик к http://colorer.sourceforge.net/php/generator.php. Может быть это решение проблемы слегка через задницу, но оно хотя бы уже работает.


#client to http://colorer.sourceforge.net/php/

#usage ruby colorize.rb [path/to/file] -t [type]
#if filename were not provided, source text would be given from the windows clipboard

%w{hpricot net/http uri win32/clipboard}.each { |it| require it }

require 'win32/clipboard' if RUBY_PLATFORM =~ /win/

COLORER_URL = 'http://colorer.sourceforge.net/php/generator.php'

if !($*[0]) || $*[0] == '-t'
  content = Win32::Clipboard.get_data  
else
  content = File.new($*[0]).read 
end  

res = Net::HTTP.post_form(URI.parse(COLORER_URL),
  {:file_content => content, :i_encoding => 'UTF-8', :hrd_color => 'default',
   :type => $*[-1], :o_encoding => 'UTF-8'})

doc = Hpricot(res.body)
Win32::Clipboard.set_data((doc/"pre").to_html.gsub!(/\nCreated with colorer.*\n/, ''))

Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-04-29 14:06
Subject: Java 7
Security: Public
Tags:java 7 closures, ruby

Вот это они называют простым? http://feeds.feedburner.com/~r/dion/~3/112824381/001469.html

<R, T extends java.io.Closeable, throws E>
R with(T t, {T=>R throws E} block) throws E {
    try {
      return block.invoke(t);
    } finally {
    try { t.close(); } catch (IOException ex) {}
    }
} 
Да я убьюсь 3 раза, пока это просто прочитаю.

Я правильно понимаю, что они хотят с помощью замыканий сделать гарантированную обработку ошибок? ТИПА транзакции..

Для сравнения нечто похожее на ruby:
class File
  def File.my_open(*args)
    result = file = File.new(*args)
    if block_given?
      begin
        result = yield file
      ensure
        file.close
      end
    end
    return result
  end
end

#А используется вот так.. И мы точно знаем, что файл закроется..
File.my_open(__FILE__) { |file| puts file.entries }

Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-04-28 20:15
Subject: (без темы)
Security: Public
Tags:programming learning, ruby way, why

Требую _why'ю присвоить звание дважды героя планеты Земля:
За это:
1. http://poignantguide.net/ruby
и за это:
2. http://hacketyhack.net/

Вы поняли, да? Even infants can learn Ruby! It's just that simple!

На форуме заметил поползновения по переводу hacketyhack на другие языки (человеческие).
Может сподвигнуться и перевести на русский? От 12-летних детей глупо требовать хороший английский.

9 Comments | Post A Comment | в избранное | рассказать другу | ссылка



Holub Michael (Mysterio)
Date: 2007-04-25 23:03
Subject: Недавно осознанная мысль
Security: Public
Tags:agile, bdd, rspec, ruby way, tdd

BDD не заменяет TDD
Они должны использоваться вместе.

Крутилась в голове некоторое время, а Олег Андреев (http://novemberain.com) ее озвучил.

5 Comments | Post A Comment | в избранное | рассказать другу | ссылка



browse
my journal
Август 2009