<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
  <id>tag:www.refactormycode.com,2007:users1909</id>
  <link type="application/atom+xml" href="http://www.refactormycode.com/users/1909" rel="self"/>
  <title>darkleo.myopenid.com</title>
  <updated>Mon May 24 10:39:35 -0700 2010</updated>
  <entry>
    <id>tag:www.refactormycode.com,2007:Refactor510068</id>
    <published>2010-05-24T10:39:35-07:00</published>
    <title>[Ruby] On I'm having trouble thinking in Ruby today.</title>
    <content type="html">&lt;p&gt;Range#map ?&lt;/p&gt;

&lt;pre&gt;# Read data and convert it
file = File.open(&amp;quot;18.txt&amp;quot;, 'r')
data = []
file.each_line {|line| 
  data &amp;lt;&amp;lt; line.split(/ /).map {|i| i.to_i}}
file.close

n = data.size
(1..n).map {|i|
  (2..data[n-i].size).map {|k|
    data[n-i-1][k-2] += data[n-i][k-2, 2].max}}

p data[0][0]&lt;/pre&gt;</content>
    <author>
      <name>darkleo.myopenid.com</name>
      <email>cestleonard@aol.com</email>
    </author>
    <link type="text/html" href="http://www.refactormycode.com/codes/1298-i-m-having-trouble-thinking-in-ruby-today/refactors/510068" rel="alternate"/>
  </entry>
  <entry>
    <id>tag:www.refactormycode.com,2007:Refactor452059</id>
    <published>2010-02-19T22:01:02-08:00</published>
    <title>[Ruby] On Anagram Solver</title>
    <content type="html">&lt;p&gt;and what wrong with reverse ?
&lt;br /&gt;&amp;quot;stressed&amp;quot;.reverse =&amp;gt; &amp;quot;desserts&amp;quot;&lt;/p&gt;

&lt;pre&gt;&lt;/pre&gt;</content>
    <author>
      <name>darkleo.myopenid.com</name>
      <email>cestleonard@aol.com</email>
    </author>
    <link type="text/html" href="http://www.refactormycode.com/codes/1184-anagram-solver/refactors/452059" rel="alternate"/>
  </entry>
  <entry>
    <id>tag:www.refactormycode.com,2007:Refactor438271</id>
    <published>2010-02-07T21:44:49-08:00</published>
    <title>[Ruby] On Symplify few loops</title>
    <content type="html">&lt;p&gt;@Ants : It is obviously much faster with powers of two, at least with ruby-opengl
&lt;br /&gt;@Ben Marini : Thank you very much, It will help me a lot, particularly the methods 'map' and 'flatten'&lt;/p&gt;

&lt;pre&gt;&lt;/pre&gt;</content>
    <author>
      <name>darkleo.myopenid.com</name>
      <email>cestleonard@aol.com</email>
    </author>
    <link type="text/html" href="http://www.refactormycode.com/codes/1163-symplify-few-loops/refactors/438271" rel="alternate"/>
  </entry>
  <entry>
    <id>tag:www.refactormycode.com,2007:Refactor432549</id>
    <published>2010-01-31T21:36:36-08:00</published>
    <title>[Ruby] On Symplify few loops</title>
    <content type="html">&lt;p&gt;I read `data`, `width` and `height` directly from a bmp file.
&lt;br /&gt;To use it, OpenGL requires that the image size (on each dimension) be a power of 2.
&lt;br /&gt;So `real_size` is the closest power of 2 who match the image size.
&lt;br /&gt;The original data is encoded in BGR, and i need it in RGBA.
&lt;br /&gt;Finally i need to reverse the rows, because the data &amp;quot;begin from the end&amp;quot;&lt;/p&gt;

&lt;p&gt;I give an example with a very simple bitmap, 3 rows, 2 columns :
&lt;br /&gt;  Red/Red
&lt;br /&gt;Green/Green
&lt;br /&gt; Blue/Blue&lt;/p&gt;

&lt;p&gt;With this 3*2 bitmap :
&lt;br /&gt;data = [ 255,   0,   0, # 1st pixel, blue (third row)
&lt;br /&gt;         255,   0,   0, # 2st pixel, blue
&lt;br /&gt;           0, 255,   0, # 3nd pixel, green (second row)
&lt;br /&gt;           0, 255,   0, # 4nd pixel, green
&lt;br /&gt;           0,   0, 255, # 5rd pixel, red (first row)
&lt;br /&gt;           0,   0, 255, # 6rd pixel, red
&lt;br /&gt;       ]
&lt;br /&gt;width = 2
&lt;br /&gt;height = 3&lt;/p&gt;

&lt;p&gt;We calculate :
&lt;br /&gt;real_size = 4 # closest power of 2&lt;/p&gt;

&lt;p&gt;And we obtain a 4*4 bitmap :
&lt;br /&gt;corrected = [ 255,   0,   0, 255 # 1st pixel, red (first row)
&lt;br /&gt;              255,   0,   0, 255 # 2st pixel, red
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0, 255,   0, 255 # 3nd pixel, green (second row)
&lt;br /&gt;                0, 255,   0, 255 # 4nd pixel, green
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0, 255, 255 # 5rd pixel, blue (third row)
&lt;br /&gt;                0,   0, 255, 255 # 6rd pixel, blue
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0,   0,   0 # Empty (last row)
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;                0,   0,   0,   0 # Empty
&lt;br /&gt;            ]&lt;/p&gt;

&lt;p&gt;I give also the entire method.
&lt;br /&gt;Thanks a lot by advance !&lt;/p&gt;

&lt;pre&gt;  def self.load_bmp name
    fail unless FileTest.exist?('Media/'+name)
    file = File.open('Media/'+name, 'rb')
    struct = {:name =&amp;gt; name}
    file.seek(18, IO::SEEK_CUR)
    # Read width and height
    struct[:width]      = file.read(4).unpack('i')[0]
    struct[:height]     = file.read(4).unpack('i')[0]
    # Calculate closest power of 2
    struct[:real_size]  = 2
    struct[:real_size] *= 2 while struct[:real_size] &amp;lt; struct[:width]
    struct[:real_size] *= 2 while struct[:real_size] &amp;lt; struct[:height]
    file.seek(28, IO::SEEK_CUR)
    # Read data from file
    size = struct[:width]*struct[:height]*3
    data = file.read(size).unpack('C*')
    file.close
    
    corrected = []
    # BGR =&amp;gt; RGB &amp;amp; miror y
    for y in 0...(struct[:height])
      for x in 0...(struct[:width])
        z = (struct[:height]-y-1)*struct[:width]*3 + 3*x
        corrected &amp;lt;&amp;lt; data[z+2]
        corrected &amp;lt;&amp;lt; data[z+1]
        corrected &amp;lt;&amp;lt; data[z  ]
        corrected &amp;lt;&amp;lt; 255 # Add alpha value
      end
      for x in struct[:width]...struct[:real_size]
        corrected &amp;lt;&amp;lt; 0
        corrected &amp;lt;&amp;lt; 0
        corrected &amp;lt;&amp;lt; 0
        corrected &amp;lt;&amp;lt; 0
      end
    end
    for y in struct[:height]...struct[:real_size]
      for x in 0...struct[:real_size]
        corrected &amp;lt;&amp;lt; 0
        corrected &amp;lt;&amp;lt; 0
        corrected &amp;lt;&amp;lt; 0
        corrected &amp;lt;&amp;lt; 0
      end
    end
    # Return corrected texture
    struct[:data] = corrected.pack('C*')
    return struct
  end&lt;/pre&gt;</content>
    <author>
      <name>darkleo.myopenid.com</name>
      <email>cestleonard@aol.com</email>
    </author>
    <link type="text/html" href="http://www.refactormycode.com/codes/1163-symplify-few-loops/refactors/432549" rel="alternate"/>
  </entry>
  <entry>
    <id>tag:www.refactormycode.com,2007:Code1163</id>
    <published>2010-01-30T20:36:41-08:00</published>
    <updated>2010-02-11T02:04:09-08:00</updated>
    <title>[Ruby] Symplify few loops</title>
    <content type="html">&lt;p&gt;I need to reformat .bmp data, by adding a lot of '0'
&lt;br /&gt;But my code is... horribly ugly.
&lt;br /&gt;'data' contain the original data (array)
&lt;br /&gt;'corrected' is an empty array&lt;/p&gt;

&lt;p&gt;Before process :
&lt;br /&gt;[XXXX
&lt;br /&gt; XXXX
&lt;br /&gt; XXXX]&lt;/p&gt;

&lt;p&gt;After process :
&lt;br /&gt;[XXXX0000
&lt;br /&gt; XXXX0000
&lt;br /&gt; XXXX0000
&lt;br /&gt; 00000000
&lt;br /&gt; 00000000
&lt;br /&gt; 00000000]&lt;/p&gt;

&lt;pre&gt;for y in 0...height
  for x in 0...width
    # BGR =&amp;gt; RGB &amp;amp; miror y
    z = (height-y-1)*width*3 + 3*x
    corrected &amp;lt;&amp;lt; data[z+2]
    corrected &amp;lt;&amp;lt; data[z+1]
    corrected &amp;lt;&amp;lt; data[z  ]
    corrected &amp;lt;&amp;lt; 255 # Add alpha value
  end
  for x in width...real_size
    corrected &amp;lt;&amp;lt; 0
    corrected &amp;lt;&amp;lt; 0
    corrected &amp;lt;&amp;lt; 0
    corrected &amp;lt;&amp;lt; 0
  end
end
for y in height...real_size
  for x in 0...real_size
    corrected &amp;lt;&amp;lt; 0
    corrected &amp;lt;&amp;lt; 0
    corrected &amp;lt;&amp;lt; 0
    corrected &amp;lt;&amp;lt; 0
  end
end&lt;/pre&gt;</content>
    <author>
      <name>darkleo.myopenid.com</name>
      <email>cestleonard@aol.com</email>
    </author>
    <link type="text/html" href="http://www.refactormycode.com/codes/1163-symplify-few-loops" rel="alternate"/>
  </entry>
</feed>

