Mit Ruby Primzahlen erzeugen
Hier ein kleines Beispiel, wie man mit Ruby Primzahlen erzeugen kann.
require 'prime'
p = Prime.new
(1..100).each do |n|
q = p.next()
puts "#{n}: #{q}"
end
Hier ein kleines Beispiel, wie man mit Ruby Primzahlen erzeugen kann.
require 'prime'
p = Prime.new
(1..100).each do |n|
q = p.next()
puts "#{n}: #{q}"
end
Hier ist ein Quick&Dirty Shellskript um von einer oder mehreren MySQL-Datenbanken ein Backup zu erstellen, es zu komprimieren und per Mail zu verschicken. Kann z.B. einfach von einem Cron-Job jede Nacht ausgeführt werden. Eventuell müssen einige Programme (z.B. "mutt") installiert werden.
logger "Database Backup Script: Dumping databases..."
mysqldump -B meine_wichtige_db_name anderer_db_name -u backupboy --password='backuppassword' > database_backup.sql
logger "Database Backup Script: Compressing the dump..."
tar -cjf database_backups/`date '+%Y-%m-%d'`_database_backup.tar.bz2 database_backup.sql
logger "Database Backup Script: Mailing the archive..."
mutt -s "Database Backup `date '+%Y-%m-%d'`" -a database_backups/`date '+%Y-%m-%d'`_database_backup.tar.bz2 [email protected] < /dev/null
rm database_backup.sql
logger "Database Backup Script: finished!"
exit 0
Seit dem Update auf lighttpd 1.5 gab es Problem mit den alten rewrite rules. [1]
Hier sind welche für lighttpd 1.5.
-- rewrite rules for wordpress http://greatwebguy.com/web-servers/lighttpd/lighttpd-15-rewrite-rules-for-wordpress-22/
url.rewrite-once = (
"^/(wp-.+).*/?" => "$0",
"^/(sitemap.xml)" => "$0",
"^/(xmlrpc.php)" => "$0",
"^/keyword/([A-Za-z_0-9\-]+)/?$" => "/index.php?keyword=$1",
"^/.*?(\?.*)?$" => "/index.php$1"
)
There was a time, when I shared a blog. This post was written by Stephan. See all blogpost from him or stalk him on github.
Hier möchte ich die wichtigsten Schritte festhalten, um mit dem sehr tollen wicked_pdf plugin PDF Dateien zu erstellen. Dabei soll vor allem die Integrierung von Bilddateien beschrieben werden, die ich mit dem on-the-fly processing/encoding framework dragonfly erzeuge.
Plugin installieren
cd /path/to/rails_app
rails plugin install git://github.com/mileszs/wicked_pdf.git
Statische Version von wkhtmltopdf herunterladen und in neu angelegten Rails Ordner "bin" legen
cd /path/to/rails_app
mkdir bin
# passende statische Version für wkhtmltopdf in diesem Ordner abspeichern
Neuen Initializer in der config für wicked_pdf erstellen mit folgendem Inhalt:
#Datei /path/to/rails_app/config/initializers/wicked_pdf.rb
WickedPdf.config = {
#:wkhtmltopdf => '/usr/local/bin/wkhtmltopdf',
#:layout => "pdf.html"
:exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s,
}
Den exe_path müsst ihr auf den Namen eurer geladenen wkhtmltopdf-Datei anpassen. Bei mir ist es "wkhtmltopdf-i386".
In eurem Controller gibt ihr dann an, welche Action auf PDF antworten soll. Die möglichen Optionen findet ihr hier
class MyController < ApplicationController
def show
#...
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @my }
format.pdf do
render :pdf => "my",
:layout => "pdf.html",
:disposition => "inline",
:show_as_html => params[:debug].present?
end
end
end
end
View show.pdf.erb anlegen
#view
<h1>Hallo show von MyController</h1>
In diesem View könnt ihr jetzt ganz normales HTML schreiben, das mit dem entsprechenden Styling für die PDF formatiert wird.
GANZ wichtig:
Es gibt zwei Möglichkeiten, die Urls der verwendeten AssetHelper von Rails absolut zu gestalten:
In eurer Enviromentkonfiguration (development.rb, production.rb, test.rb) könnt ihr asset hosts festlegen
ActionController::Base.asset_host = "assets.example.com"
Dies kann aber bei größeren Projekten leicht zu Problemen führen, wenn man mehrere asset hosts verwendet (ist aber mit entsprechendem Aufwand möglich).
Ich lasse mir im entsprechenden View alle Angaben zum Request ausgeben und erzeuge daraus die absoluten Url's. Dies funktioniert vor allem in Verbindung mit Dragonfly perfekt:
#Ermittlung des request, ergibt z.B. http://localhost:3000 bei einer Standard-Rails-Anwendung
<% prefix=request.protocol+request.env['HTTP_HOST'] %> # => http://localhost:3000
# project mit Draognfly macro "cover_image"
<%= image_tag prefix+project.cover_image.url %>
Alternativ kann auch eine Option von Dragonfly genutzt werden, bei dem der Host festgelegt werden kann:
<% prefix=request.protocol+request.env['HTTP_HOST'] %>
<%= image_tag project.cover_image.url(:host => prefix) %>
Wenn ihr in eurer Testumgebung aber immer noch keine generierten Bilder in der PDF vorfindet oder die PDF Generierung von wkhtmltopdf endlos weiterläuft, müsst ihr in eurer "development.rb" Datei noch folgendes setzen.
config.consider_all_requests_local = false
Ich hoffe, ich konnte euch weiterhelfen
Bis zum nächsten Mal
Lighttpd Trunk besorgen [1] und kompilieren.
apt-get install subversion pkg-config libtool automake libglib2.0-dev
svn checkout svn://svn.lighttpd.net/lighttpd/trunk/
cd trunk
./autogen.sh
./configure --prefix=/usr
make
make install
Statt 'make install' kann man auch ein 'checkinstall' versuchen.
Für PHP mit FCGI spawn-fcgi besorgen und kompilieren. [2]
svn co svn://svn.lighttpd.net/spawn-fcgi/trunk spawn-fcgi
cd spawn-fcgi
./autogen.sh
./configure --prefix=/usr
make
make install
Statt 'make install' kann man auch ein 'checkinstall' versuchen.
spawn-fcgi starten. [3]
/usr/bin/spawn-fcgi -s /tmp/php-fastcgi.sock -f /usr/bin/php-cgi -u www-data -g www-data -C 5 -P /var/run/spawn-fcgi.pid
lighttpd.conf anpassen
$PHYSICAL["existing-path"] =~ "\.php$" {
proxy-core.balancer = "round-robin"
proxy-core.protocol = "fastcgi"
proxy-core.allow-x-sendfile = "enable"
proxy-core.backends = ( "unix:/tmp/php-fastcgi.sock" )
proxy-core.max-pool-size = 16
proxy-core.rewrite-request = (
"_pathinfo" => ( "\.php(/.*)" => "$1" )
)
}
lighttpd neustarten
/etc/init.d/lighttpd restart
Fertig.