cadego blog

Ein weiteres tolles WordPress-Blog

cadego blog header image 1

has_finder/ named_scope Beispiele

27. Januar 2010 · Keine Kommentare

Auf meinem Zweitblog( die nächste Blogleiche :D )  habe ich einige  has_finder / named_scope Beispiele veröffentlicht.

→ Keine KommentareTags: rails · ruby

Standardabweichung mit Ruby berechnen

27. Januar 2010 · Keine Kommentare

Heute ein kleines Skript, um die Standardabweichung mit Ruby zu berechnen. Erweiterungen und Optimierungen bitte als Kommentar. Gerne auch in anderen Sprachen. ;-) Details zur Standardabweichung gibt es hier

#!/usr/bin/ruby -w

include Math

# werte, für die die standardabweichung berechnet werden soll
arrValues = [ 4.58, 4.53, 4.1, 4.05 ]

# mittelwert der werte
fMedian = 0
arrValues.each do |fValue|
fMedian += fValue
end
fMedian /= arrValues.size.to_f
puts “Mittelwert = ” + fMedian.to_s

# summieren
fStandardDeviation = 0
arrValues.each do |fValue|
fStandardDeviation += (fValue – fMedian)**2
end
puts “Zwischensumme = ” + fStandardDeviation.to_s

# durch anzahl teilen
fStandardDeviation /= arrValues.size.to_f
puts fStandardDeviation

# wurzel ziehen
fStandardDeviation = Math.sqrt(fStandardDeviation)

# auf 3 stellen runden
fStandardDeviation = “%.3f” % fStandardDeviation

puts “rating = ” + fStandardDeviation.to_s

→ Keine KommentareTags: ruby

Aptana – svn: Malformed network data

27. Januar 2010 · Keine Kommentare

Am Wochenende gabs bei mir ein kleines svn-Problem mit Aptana unter (K)ubuntu.  svn commit bzw. update lieferten ein svn: Malformed network data. Auf der Konsole lief alles problemlos.

Der Vorschlag von

http://blog.maxdunn.com/articles/2006/12/07/svn-malformed-network-data-error-in-eclipse, Subclipse auf Version 1.2 zu aktualisieren, änderte nix an der Fehlerausgabe.

http://islandlinux.org/howto/installing-javahl-subclipse-eclipse-ubuntu-7-10 half mir dann weiter.

sudo apt-get -u install libsvn-javahl

Die folgenden NEUEN Pakete werden installiert:
libsvn-java libsvn-javahl

Die Startvariablen noch um den Pfad erweitern.

aptanastudio.ini -> Djava.library.path=/usr/lib/jni

Fertig

→ Keine KommentareTags: Allgemein

LoadAvg mit Ruby auslesen

15. Januar 2010 · Keine Kommentare

Hier eine kleine Klasse zum Auslesen des Load Averages unter *nix/ Linux-Systemen.


class LoadAvg
    def loadavg
        File.open('/proc/loadavg','r').readline.split.slice(0,3)
    end
    def self.get() self.new.loadavg end
end

Der Aufruf erfolgt dann mit LoadAvg.get.

→ Keine KommentareTags: ruby

mal wieder aptana(radrails)

24. September 2009 · Keine Kommentare

Was ist eigentlich bei Aptana los? Sind da ein paar Investoren abgesprungen? Der Code von Radrails liegt jetzt auch auf Github. Falls jemand einen Link mit Infos hat, was da los war/ist.

→ Keine KommentareTags: rails

Query Optimierung

12. Mai 2009 · Keine Kommentare

Eine klassische DB-Abfrage erzeugt unter Rails ein ‘select *’.  Logisch, Rails weiß ja nicht, was wir benötigen.

Als Beispiel:


@u = User.find(params[:id])
MySQL-Query:
SELECT * FROM `users` WHERE (`users`.`id` = 54312)

Wir benötigen aber nur den Namen, Permalink und die ID.
Optimierung von Hand:


@u = User.find(params[:id],:select=>['name, permalink,id'])
SELECT name,permalink,id FROM `users` WHERE (`users`.`id` = 54312)

Besser…
Man könnte jetzt alle DB-Abfragen von Hand optimieren. Der Aufwand ist bei einer größeren Rails-Anwendung aber schon heftig.


config.gem "methodmissing-scrooge",:lib=>'scrooge',:source => "http://gems.github.com"

der environment.rb hinzufügen und


rake gems:install

ausführen.

→ Keine KommentareTags: rails

NetBeans

11. Dezember 2008 · 2 Kommentare

In den letzten Tagen war ich auf der Suche nach einer kleinen IDE für mein Laptop.  Durch Mongrel, Aptana, MySQL & Firefox ist mein Reisebegleiter ständig am Limit. Nebenbei bin ich mit Aptana nicht mehr wirklich zufrieden. Updatefehler, Programmabstürze und die Performance sind aktuell schon nervig.

Bin jetzt über einen NetBeans-Beitrag gestolpert. Die Vorschaubilder schauen jedenfalls vielversprechend aus.

Hat jemand Informationen zum Speicherverbrauch und der Performance?

→ 2 KommentareTags: Allgemein · rails · ruby

Baumstruktur mit Ruby/ Rails importieren

7. Dezember 2008 · Keine Kommentare

Zur Weihnachtszeit sollte man es ja etwas gemütlicher angehen lassen. Also eine kleine REXML-Geschichte. Das Skript importiert ein Nested Set in die Datenbank von Rails.

 [Mehrlesen →]

→ Keine KommentareTags: rails · ruby

Datenbank mit Rails optimieren

5. Dezember 2008 · Keine Kommentare

Hier zwei kleine Rake-Tasks zur DB-Optimierung.

Aufruf:

rake db:optimize_tables bzw.

rake db:optimize_databases


namespace :db do
  desc "tabellen optimeren"
  task :o ptimize_tables  => :environment do
    tables=ActiveRecord::Base.connection.select_values("show tables;")
    tables.each do |table|
      puts "optimiere #{table}..."
      ActiveRecord::Base.connection.select_values("optimize table #{table};")
      puts "done"
    end
  end
  desc "alle datenbanken optimeren"
  task :o ptimize_databases  => :environment do
  dbs=ActiveRecord::Base.connection.select_values("show databases;")
    dbs.each do |db|
      puts "optimiere tabellen von #{db}..."
      unless db=="information_schema"
        tables=ActiveRecord::Base.connection.select_values("show tables from #{db};")
        tables.each do |table|
          puts "optimiere #{table}..."
          ActiveRecord::Base.connection.select_values("optimize table #{db}.#{table};")
          puts "done"
        end
        puts "done"
      end
    end
  end
end

→ Keine KommentareTags: rails

Kontonummern und Bankleitzahlen mit Ruby überprüfen

15. September 2008 · 1 Kommentar

Wer Kontonummern und Bankleitzahlen mit Ruby überprüfen muss, kann auf unser kleines C- Programm zurückgreifen. Details gibt es hier

Beispiel:

require 'ktoblzcheck'

$bc="20030700"
$an="0"

puts "Testing Bank Code: #{$bc} / Account No. #{$an}"

KtoBlzCheck.new do |kbc|
  name,location=kbc.find($bc)
  if name
    puts "Bank found! #{name} located in #{location}"
  else
    puts "Bank not found!"
  end
  case kbc.check($bc,$an)
    when KtoBlzCheck::ERROR
      puts "Failed, bank code and account number don't match"
    when KtoBlzCheck::OK
      puts "Success, valid combination of bank code and account number"
    when KtoBlzCheck::UNKNOWN
      puts "Unknown."
    when KtoBlzCheck::BANK_NOT_KNOWN
      puts "Unknown bank code"
    else
      puts "Never reached :) "
  end
end

→ 1 KommentarTags: ruby