dgAliens IT Leben
IT related Blog.
Donnerstag, März 08, 2012
isUnique Validator for lithium (li3)
If you want to check your model against uniqueness. this snippet might help you:
Mittwoch, November 02, 2011
Lithium & HTML5 Boilerplate => new default Template
Lithium, the most RAD php5 Framework is great, but still not yet fully perfect.
You ill need to download hmtl5 compatibility ressources (js,css) from HTML 5 Boilerplate and use this template:
Then, your site is prepared for html5 Contend and will work even in IE6 ;)
In the (far) future, i will add automatic minification.. so stay tuned
Montag, Oktober 31, 2011
PHP Project deployment via Capistrano under OS-X Lion with git
Installing rvm (ruby version manager):
First you should install the ruby version manager (rvm) for installing ruby 1.9.2.:>bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer )
this will install rvm under in /Users/your_username/.rvm/then copy the bash statement and move it into your users .profile or .bash_profile
>[[ -s "/Users/your_osx_username/.rvm/scripts/rvm" ]] && source "/Users/your_osx_username/.rvm/scripts/rvm"
next step is to restart your terminal or source the profile´s file:>source .profile
or>source .bash_profile
Installing ruby 1.9.2 via rvm:
Thats easy! Just type:>rvm install 1.9.2
This will download and compile ruby 1.9.2. Now you have to tell rvm to use 1.9.2>rvm --default 1.9.2
if you open a new konsole and run>ruby -v
This will print out : ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.2.0]or newer
Installing capistrano:
In the future we will deploy our project in different environments (aka.: test, staging,production...) So you need two gems: capistrano and capistrano-ext> gem install capistrano capistrano-ext
Now your system is capable to deploy!Setup your Project:
go into your project root and setup capistrano:
>cd my_project
my_project> capify .
deploy.rb contains:
my_project> cat config/deploy.rb
set :application, "set your application name here" set :repository, "set your repository location here" set :scm, :subversion # Or: `accurev`, `bzr`, `cvs`, `darcs`, `git`, `mercurial`, `perforce`, `subversion` or `none` role :web, "your web-server here" # Your HTTP server, Apache/etc role :app, "your app-server here" # This may be the same as your `Web` server role :db, "your primary db-server here", :primary => true # This is where Rails migrations will run role :db, "your slave db-server here" # if you're still using the script/reaper helper you will need # these http://github.com/rails/irs_process_scripts # If you are using Passenger mod_rails uncomment this: # namespace :deploy do # task :start do ; end # task :stop do ; end # task :restart, :roles => :app, :except => { :no_release => true } do # run "#{try_sudo} touch #{File.join(current_path,'tmp','restart.txt')}" # end # endSet the name of your Project, (Capistrano will deploy the project under this name). Your repository, scm and server ip´s. Addtionally we want to deploy via git as our current systems git user. So we have to forward our git agent and define the servers user name.
An example deploy.rb: (assuming my_project as Projectname, an example git repo and that your server is running a unix system with a user named administrator)
set :application, "my_project" set :repository, "git@github.com:example/my_project.git" set :scm_user, :git set :deploy_via, :remote_cache set :scm, :git set :deploy_to, '/home/administrator' set :use_sudo, false set :ssh_options, {:forward_agent => true} set :branch, "master" set :user, :administrator role :web, "ipV4" role :app, "ipV4" role :db, "ipV4", :primary => true namespace :deploy do task :copy_database_yml do run "cp #{deploy_to}/shared/connections.php #{release_path}/app/config" end end after "deploy:finalize_update", "deploy:copy_database_yml"So you have to put in:
- the project name
- the git repo
- and the ip´s of your application + webserver and your db ip
Finally, you have to set up your server, check its dependencies and just do deployment :)
Server Setup
you could check your deploy.rb like so:my_project> cap deploy:check
If you will be asked about a password, you should setup ssh key login (e.G.: create a keyfile and append it to administrators authorized keys)* executing `deploy:check' * executing "test -d /home/administrator/releases" servers: ["ipV4"] [ipV4] executing command command finished in 170ms * executing "test -w /home/administrator" servers: ["ipV4"] [ipV4] executing command command finished in 88ms * executing "test -w /home/administrator/releases" servers: ["ipV4"] [ipV4] executing command command finished in 89ms * executing "which git" servers: ["ipV4"] [ipV4] executing command command finished in 91ms * executing "test -w /home/administrator/shared" servers: ["ipV4"] [ipV4] executing command command finished in 89ms The following dependencies failed. Please check them and try again: --> `/home/administrator/releases' does not exist. Please run `cap deploy:setup'. (ipV4) --> You do not have permissions to write to `/home/administrator/releases'. (ipV4) --> `/home/administrator/shared' is not writable (ipV4)So you have to create the directories by running capistranos setup script and activate the servers git ssh:
my_project> cap deploy:setup
Capistrano will create some directories, which are not used by php and you could modify caps deploy and setup tasks for it but, for now: You are able to deploy via capistrano :)my_project> cap deploy
I will add some more php setup info later. (Especially for lithium, li3 PHP Projects)Update:
If agent forwarding wont work on osx see:http://www.schmidp.com/2009/06/23/enable-ssh-agent-key-forwarding-on-snow-leopard/
Mittwoch, Oktober 19, 2011
Push objects and arrays to lithiums Logger-Class
Just added a simple Filter to my projects debug environment:
With it, you are able to push objects and arrays to the Logger Class.
If you combine it with the FirePHP Loging Adapter, debugging is kind of fun ;)
Mittwoch, Oktober 12, 2011
Dumping lithium SQL Statements via Filters
Zum einfachen Debuggen /dumpen von Raw-SQL Statements in lithium (li3) einfach folgende Zeilen in sein bootstrap Prozess mit einbinden und gewünschtes var_dump auskommentieren:
Alternativ zu var_dump könne man auch den Lithium eigenen Logger nutzen, welcher die Daten dann beispielsweise (je nach eigener Logger Konfiguration) in ein File schiebt:
\lithium\analysis\Logger\Logger::write('info', $your_data_as_str);
\lithium\analysis\Logger\Logger::write('info', $your_data_as_str);
Montag, September 12, 2011
ITunes und die zweite Festplatte. (Error 13001)
Kürzlich habe ich meinem 2007er MBP eine SSD gegönnt und sie mittels Drive-Bay Adapter, statt des Super-Drives" eingebaut.
Anschließend mittels Carbon Copy Cloner die OS-X Installation auf die SSD geschoben und erleichtert festgestellt, dass sich OS-X Snow-Leopard problemlos starten ließ. Um die SSD nicht übermäßig vollzuknallen, wurde vorher ein "nackter"-Admin Account erstellt. Das Home-Verzeichnis meines bisherigen Users sollte vorerst auf der alten Platte bleiben.
In den Systemeinstellungen -> Benutzer und Gruppen -> Username -> erweiterte Einstellungen (Durch "Rechtsklick" erreichbar) :habe ich für meinen User als Home-Verzeichnis daher die alte Platte unter /Volumes//Users/username stehen. Auf der SSD legte ich sicherheitshalber noch einen Symlink von /Users/username auf den obigen Pfad an.
Die alte Platte hieß (warum auch immer) MBP 15". Also mit Leerzeichen und Anführungszeichen!
Alle Programme starteten ohne Probleme und das System war merklich schneller als vorher. Leider startete iTunes nicht mehr. Bzw. quittierte immer mit dem Fehler 13001 den Dienst.
Selbst nachdem sich iTunes eine neue Lib bauen sollte. Auch: Apple Helpdesk: iTunes: "Error 13001" und diverse andere Foren/Blogs konnten mir nicht weiterhelfen.
Bis ich heute auf die Idee kam, meine alte Platte in old_drive umzubenennen.
Merke: Der Source von iTunes scheint so alt zu sein, dass es mit Anführungszeichen im HomePfad nicht zurecht kommt...
Anschließend mittels Carbon Copy Cloner die OS-X Installation auf die SSD geschoben und erleichtert festgestellt, dass sich OS-X Snow-Leopard problemlos starten ließ. Um die SSD nicht übermäßig vollzuknallen, wurde vorher ein "nackter"-Admin Account erstellt. Das Home-Verzeichnis meines bisherigen Users sollte vorerst auf der alten Platte bleiben.
In den Systemeinstellungen -> Benutzer und Gruppen -> Username -> erweiterte Einstellungen (Durch "Rechtsklick" erreichbar) :habe ich für meinen User als Home-Verzeichnis daher die alte Platte unter /Volumes/
Die alte Platte hieß (warum auch immer) MBP 15". Also mit Leerzeichen und Anführungszeichen!
Alle Programme starteten ohne Probleme und das System war merklich schneller als vorher. Leider startete iTunes nicht mehr. Bzw. quittierte immer mit dem Fehler 13001 den Dienst.
Selbst nachdem sich iTunes eine neue Lib bauen sollte. Auch: Apple Helpdesk: iTunes: "Error 13001" und diverse andere Foren/Blogs konnten mir nicht weiterhelfen.
Bis ich heute auf die Idee kam, meine alte Platte in old_drive umzubenennen.
Merke: Der Source von iTunes scheint so alt zu sein, dass es mit Anführungszeichen im HomePfad nicht zurecht kommt...
Donnerstag, September 23, 2010
VMware Konsole mit OSX
Es ist ein altbekanntes leidiges Thema: VMware bietet keinen OSX Client für die VMWare Konsole an.
Das Plugin für das Webfrontend des VMWare-Servers ist nämlich nur unter Linux und Windows nutzbar.
Aber es gibt dennoch zwei Möglichkeiten via Server auf die Clients zuzugreifen.
Da ich eigentlich nur während des Installationsprozesses eine Konsole benötige, ist der zweite Weg für mich die erste Wahl.
Für OSX wird ein VNC Client benötig. z.B. Chicken of the VNC
Das Plugin für das Webfrontend des VMWare-Servers ist nämlich nur unter Linux und Windows nutzbar.
Aber es gibt dennoch zwei Möglichkeiten via Server auf die Clients zuzugreifen.
- Auf dem Server X11 und einen Firefox installieren und ein SSH VNC Routing einrichten.
- Einzelne VM´s so zu konfigurieren, dass man via VNC Server-Connect eine VM erreichen kann.
Da ich eigentlich nur während des Installationsprozesses eine Konsole benötige, ist der zweite Weg für mich die erste Wahl.
Für OSX wird ein VNC Client benötig. z.B. Chicken of the VNC
- Via WebUi die "Ziel-VM" herunterfahren/stoppen.
- SSH Connect mit dem VM Server User/Root User herstellen.
- in das Verzeichnis der "Ziel-VM" gehen und als Superuser das *.vmx File um folgenden Inhalt erweitern:
remotedisplay.vnc.enabled = "TRUE"
remotedisplay.vnc.port = "5900"
remotedisplay.vnc.password = "test123" - Im WebUi die VM wieder starten.
- VNC Client in OSX öffnen und die IP des VM Servers eingeben.
Abonnieren
Posts (Atom)