Kleine Funktion zum schönen ausgeben von Arrays.
# [1, 2, 3] => "1, 2 and 3"
# [1, 2] => "1 and 2"
# [1] => "1"
def humanize_array a
[a[0..-3], [a[-2], a[-1]].compact.join(" and ")].flatten.join(", ")
end
Hier ist mein HTML-Hex-Viewer als Rails-Helper. Er markiert die Bytes, wenn man mit der Maus drĂŒberfĂ€hrt und fĂ€rbt optional verschiedene Codesegmente bunt ein (z.B. Header, Text und Data-Segmente einer EXE).
Das hier war einer der vielen EntwĂŒrfe fĂŒr die neue Robsite. Pixel-perfekt, schön blau, somit bemerkenswert grandios.
Dachte ich.
Bis mich der Hr. Gramberg darauf aufmerksam machte, dass die Seite doch sehr gedrĂŒckt und eng aussieht.
Er hatte leider recht. Somit nahm ich das schlichte Layout des Adminbereichs auch fĂŒr die Front und warf den alten Entwurf weg.
Damit die 2 Wochen Arbeit nicht komplett fĂŒr die Katz sind, veröffentliche ich die alte Seite nun als kleines Weihnachtsgeschenk.
Im Paket sind vier Versionen als Photoshop-Datei sowie die HTML-Umsetzung der letzten Version. Diese validiert, sieht gut aus in Firefox, Safari und Opera und zerbricht spektakulÀr im Internet Explorer, was aber gewollt ist
Das ganze ist zwar unfertig, es gibt kein Druck-Stylesheet, der Footer fehlt etc. aber vielleicht kann jemand was damit anfangen oder fĂŒhlt sich inspiriert.
Lizenz: (Creative Commons Namensnennung-Weitergabe unter gleichen Bedingungen 3.0).
HeiĂt, mach damit was du willst, solange du mir Credits gibst und das verĂ€nderte unter eine Ă€hnlich freie Lizenz stellst. Das "robsite" im Logo muss natĂŒrlich geĂ€ndert werden.
Download: Robsite-Entwurf - 1.1 MB
Wie vor 44 Monatan angekĂŒndigt ist die neue Robsite nun fertig.
Es ist ein Neuanfang. Ich hab wenig alten Content ĂŒbernommen, hauptsĂ€chlich, weil er mich nicht mehr interessierte oder die Links gestorben sind.
Seit den Tagen der alten Robsite haben sich meine Interessen leicht verschoben. Ich bin von Windows auf Mac gewechselt, interessier mich mehr fĂŒr Ruby und Webentwicklung statt *Basic und Spieleentwicklung und fang langsam an Musik am Rechner zu machen. Dies alles, neben diversem lustigem Zeug, wird also die Seite fĂŒllen. Oder auch nicht. Je nachdem.
Ruby on Rails ist derweil die Technik meiner Wahl um Webzeug zu basteln. In den Semesterferien hab ich mich mit wenig anderem beschÀftigt und die Robsite mit Rails neugebaut. Was ich dabei gelernt hab, werd ich nach und nach hier veröffentlichen. Die neue Seite mag zwar schlicht aussehen, aber der Adminbereich hats in sich. Simpel aber mÀchtig. Wie George W. Bush.
Warum nun Rails statt PHP? Vor allem SpaĂ. SpaĂ bei der Arbeit = höhere ProduktivitĂ€t, QualitĂ€t und Motivation. Entweder du schaffst in gleicher Zeit mehr und bessere Ergebnisse, oder du schaffst gleiche Ergebnisse in weniger Zeit. Es ist einfach keine lĂ€stige Arbeit, wenn es SpaĂ macht. Und das motiviert :>Bis sich mein Domainhoster auskĂ€st und robsite.de auf meinen neuen Hoster ĂŒbertrĂ€gt, erfolgt die Weiterleitung auf robsite.net mit einer .htaccess. Das heisst, robsite.de wird demnĂ€chst kurz offline gehen. robsite.net sollte aber weiterlaufen, solange mein kleiner vServer bei Slicehost nicht aufgibt.
Andererseits hab ich eh nur noch 3 Besucher pro Tag, also betriffts sowieso keinen (img 358 t:big)
Mit Brainfuck-Code fĂŒr Fibonacci-Zahlen. Oh Jubel.
# brainfuck Interpreter
class Array
def rtrim empty = 0
(self.length-1).downto(0) do |a|
return self[0..a] if self[a] != empty
end
[]
end
end
class Brainfuck
attr_accessor :code, :ascii, :debug
def initialize(code = "", memsize = 30000)
@code = code.gsub(/[^.,+-<>[]]/, "")
@mem = Array.new(memsize, 0)
@ascii = true # In/Output als ASCII oder mit puren Zellwerten arbeiten?
@debug = false
end
def run
p = 0
cp = 0
brackets = []
while cp < @code.length
c = @code[cp].chr
case c
when "+"
@mem[p] += 1
when "-"
@mem[p] -= 1
when ">"
p += 1
when "<"
p -= 1
when "["
brackets.push(cp)
when "]"
if @mem[p] != 0
cp = brackets.pop - 1
else
brackets.pop
end
when "."
if @debug
print "p: #{p} cp: #{cp} "
p @mem.rtrim
end
if @ascii
print @mem[p].chr
else
puts @mem[p]
end
when ","
input = gets
if @ascii
@mem[p] = input[0]
else
@mem[p] = input.to_i
end
end
cp += 1
end
end
end
# Die ersten 10 Fibonacci-Zahlen: +>++>>>++++++++++[<<<<.>[->+>+<<]>>[-<<+>>]<<<[->+>>+<<<]>>>[-<<<+>>>]<<<[-]>>[<<+>>-]>>-]
# Die ersten n Fibonacci-Zahlen: +>++>>>,[<<<<.>[->+>+<<]>>[-<<+>>]<<<[->+>>+<<<]>>>[-<<<+>>>]<<<[-]>>[<<+>>-]>>-]
code = <<END
+>++>>>,[<<<<.>[->+>+<<]>>[-<<+>>]<<<[->+>>+<<<]>>>[-<<<+>>>]<<<[-]>>[<<+>>-]>>-]
END
bf = Brainfuck.new(code)
bf.ascii = false
bf.debug = false
bf.run