<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BOHUCO.NET &#187; Software</title>
	<atom:link href="http://bohuco.net/blog/category/tech/software/feed/" rel="self" type="application/rss+xml" />
	<link>http://bohuco.net/blog</link>
	<description>Die Sollbruchstelle des Internets.</description>
	<lastBuildDate>Mon, 30 Apr 2012 10:30:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Firefox 4 &#8211; Neue HTTP Header</title>
		<link>http://bohuco.net/blog/2011/04/firefox-4-neue-http-header/</link>
		<comments>http://bohuco.net/blog/2011/04/firefox-4-neue-http-header/#comments</comments>
		<pubDate>Tue, 05 Apr 2011 18:52:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Online Marketing]]></category>
		<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Entwicklung]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1764</guid>
		<description><![CDATA[Mit der neuen Version des Firefox wurden einige neue HTTP Header eingeführt die Entwicklern die Arbeit etwas erleichtern sollen und den Benutzer besser schützen. Framebreaker &#8211; X-Frame-Options Mit dem Header X-Frame-Options:DENY wird angezeigt das die Seite nicht in einem iFrame/Frame eingebunden werden darf. Alternativ geht auch die Einstellung: SAMEORIGIN damit zumindest Seiten von der selben [...]]]></description>
			<content:encoded><![CDATA[<p>Mit der neuen Version des Firefox wurden einige neue HTTP Header eingeführt die Entwicklern die Arbeit etwas erleichtern sollen und den Benutzer besser schützen.</p>
<p><span id="more-1764"></span></p>
<h2>Framebreaker &#8211; X-Frame-Options</h2>
<p>Mit dem Header<a href="https://developer.mozilla.org/en/The_X-FRAME-OPTIONS_response_header"> X-Frame-Options:DENY</a> wird angezeigt das die Seite nicht in einem iFrame/Frame eingebunden werden darf. Alternativ geht auch die Einstellung: SAMEORIGIN damit zumindest Seiten von der selben Domain die Seite framen dürfen.</p>
<h2>Nicht Tracken &#8211; DNT</h2>
<p>Der DNT (Do Not Track)-Header wird vom Firefox als Anfrage-Header mitgeschickt wenn der Benutzer das konfiguriert hat. Er soll anzeigen das man den User nicht für Werbezwecke verfolgen soll. Laut <a href="http://blog.sidstamm.com/2011/01/opting-out-of-behavioral-ads.html">Blog Artikel</a> sind damit die &#8220;Online Behavioral Ads&#8221; bzw. Remarketing gemeint.</p>
<h2>User Agent kürzer</h2>
<p>Der <a href="https://developer.mozilla.org/En/Gecko_User_Agent_String_Reference">Firefox User Agent Header</a> wurde verkürzt und verrät jetzt weniger. Der <a href="http://hacks.mozilla.org/2010/09/final-user-agent-string-for-firefox-4/">UA für Firefox 4</a> sieht damit zum Beispiel so aus: </p>
<pre>Mozilla/5.0 (Windows NT x.y; rv:2.0.1) Gecko/20100101 Firefox/4.0.1</pre>
<h2>SSL aber fix &#8211; Strict-Transport-Security</h2>
<p>Der <a href="https://developer.mozilla.org/en/Security/HTTP_Strict_Transport_Security">Strict-Transport-Security Header</a> zeigt an das die Seite nur über SSL aufrufbar ist. Dieser Header wird vom Server geschickt und dann im Browser zwischengespeichert. Nach dem ersten Aufruf weiß der Browser also dann immer das die Seite nur verschlüsselt angezeigt werden kann. Man kann den Header auf Subdomains ausweiten und mit einem Timeout versehen:</p>
<pre>Strict-Transport-Security: max-age:expireTime [; includeSubdomains]</pre>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2011/04/firefox-4-neue-http-header/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Embed YouTube Videos With iFrame in WordPress (Editor removes Tag Problem)</title>
		<link>http://bohuco.net/blog/2011/03/embed-youtube-videos-with-iframe-in-wordpress-editor-removes-tag-problem/</link>
		<comments>http://bohuco.net/blog/2011/03/embed-youtube-videos-with-iframe-in-wordpress-editor-removes-tag-problem/#comments</comments>
		<pubDate>Tue, 15 Mar 2011 22:05:17 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[WordPress]]></category>
		<category><![CDATA[Youtube]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1737</guid>
		<description><![CDATA[This damn WordPress visual editor removes always your YouTube video iFrame? Just install the TSL iframe unfilter plugin and the editor will leave your code untouched &#8230;]]></description>
			<content:encoded><![CDATA[<p>This damn WordPress visual editor removes always your YouTube video iFrame? Just install the <a href="http://wordpress.org/extend/plugins/tsl-iframe-unfilter/">TSL iframe unfilter</a> plugin and the editor will leave your code untouched &#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2011/03/embed-youtube-videos-with-iframe-in-wordpress-editor-removes-tag-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP in der Cloud: cloudControl aus Deutschland bietet PaaS für PHP</title>
		<link>http://bohuco.net/blog/2011/02/php-cloud-cloudcontrol-paas/</link>
		<comments>http://bohuco.net/blog/2011/02/php-cloud-cloudcontrol-paas/#comments</comments>
		<pubDate>Tue, 08 Feb 2011 21:11:39 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[paas]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1689</guid>
		<description><![CDATA[Wer eine Webseite betreibt oder gar eine Webapplikation muss sich unweigerlich um Hosting und Server Administration kümmern. Dabei gibt es mittlerweile unendlich viele Möglichkeiten &#8230; aber jetzt kommt noch eine dazu: Platform as a Service (PaaS) Keine Hardware Investitionen, nie wieder Server administrieren oder Sicherheitspatches einspielen müssen, das System skaliert automatisch und das Deploy wird [...]]]></description>
			<content:encoded><![CDATA[<p>Wer eine Webseite betreibt oder gar eine Webapplikation muss sich unweigerlich um Hosting und Server Administration kümmern. Dabei gibt es mittlerweile unendlich viele Möglichkeiten &#8230; aber jetzt kommt noch eine dazu: <strong>Platform as a Service (PaaS)</strong></p>
<p>Keine Hardware Investitionen, nie wieder Server administrieren oder Sicherheitspatches einspielen müssen, das System skaliert automatisch und das Deploy wird einfacher: Das klingt doch alles wunderbar und das alles bietet SaaS!</p>
<p>Platform as a Service (PaaS) gibt es seit einigen Jahren für Java (<a href="http://code.google.com/appengine/">Google AppEngine</a>) oder für .NET (<a href="http://www.microsoft.com/windowsazure/">Microsoft Azure</a>) aber für PHP sieht es derzeit noch etwas mau aus. Diese Lücke möchte jetzt <a href="http://cloudcontrol.com">cloudControl</a> aus Potsdam schließen &#8230;</p>
<p><span id="more-1689"></span></p>
<p><strong>Die Features</strong></p>
<p>cloudControl ist in erster Linie eine Webserver-Plattform basierend auf Linux mit Apache und PHP, für eine funktionierende Webapplikation wird allerdings auch eine Datenbank benötigt. Derzeit stehen MongoDb und MySQL in unterschiedlichen Größen zur Auswahl. Maximal kann eine MySQL Datenbank ein Terabyte groß sein. Für MongoDb ist regulär bei 250 GB Schluss, mehr gibt&#8217;s aber anscheinend auf Anfrage.</p>
<p>Außerdem stehen noch folgende Add-ons zur Verfügung: <a href="http://memcached.org/">Memcached</a> als Caching-Layer, für das Monitoring <a href="http://www.newrelic.com/web-app-monitoring-features.html">New Relic RPM</a> und SSL. </p>
<p>Alle Plattform-Funktionen werden über das spezielle Kommandozeilen Werkzeug cctrl gesteuert. Manche Features kann man zusätzlich über die geschützte WebConsole abrufen.</p>
<p>Mit cloudControl lässt sich ein Staging-System mit beliebigen Aufbau realisieren. Jeder Stage (auch Deployment genannt) ist dabei ein eigener Branch und lässt sich mit dem Deploy-Tool separat ansprechen, ein Deploy auf den Test-Stage würde so aussehen:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">&nbsp;
cctrlapp bohuco/test deploy</pre></div></div>

<p>Die <a href="http://cloudcontrol.com/developers/documentation/user-management/account-management/">Benutzerverwaltung</a> wird auch über die Kommandozeile gemacht. Der Inhaber einer Applikation kann beliebige Entwickler hinzufügen und entfernen (cctrluser create / activate / delete).</p>
<p><strong>Der Preis</strong></p>
<p>cloudControl rechnet in sogenannten Boxen ab. Eine Box kann 2 PHP Requests pro Sekunde bearbeiten und ist vergleichbar mit einer viertel <a href="http://aws.amazon.com/ec2/faqs/#What_is_an_EC2_Compute_Unit_and_why_did_you_introduce_it">Amazon EC2 Compute Unit</a>. Die erste Box ist kostenlos, jede weitere kostet 0,05 EUR pro Stunde. Die Boxen werden automatisch auf die aktuellen Anforderungen skaliert bis zu einer Maximalgrenze die der Benutzer festlegen kann.</p>
<p><a href="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-20.16.07.png"><img src="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-20.16.07-300x208.png" alt="" title="Bildschirmfoto 2011-02-08 um 20.16.07" width="300" height="208" class="aligncenter size-medium wp-image-1690" /></a></p>
<p>Alle Features lassen sich kostenlos auf unbegrenzte Zeit testen. Dabei sind die Add-ons auf relativ enge Grenzen gesetzt, wenn man mehr braucht werden dann zusätzliche Kosten fällig die auch stündlich abgerechnet werden. Die kostenlose MySQL-DB darf zum Beispiel nur 5 Mb haben, eine MongoDB 16 Mb. </p>
<p><strong>Handling</strong></p>
<p>Die Kommunikation mit der Plattform wird über ein Kommandozeilen-Tool namens <a href="http://pypi.python.org/pypi/cctrl/1.0.0">cctrl</a> abgewickelt (in Python geschrieben ???). Das Tool ist für Windows, Mac und Linux verfügbar und die Handhabung wird in verschiedenen Tutorials beschrieben. Für die Source-Code-Versionierung wird standardmäßig <a href="http://bazaar.canonical.com/en/">Bazar</a> verwendet, man kann aber einfach beim Anlegen eines neuen Projekts Git angeben:</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">&nbsp;
cctrlapp APP_NAME create php --repo git</pre></div></div>

<p>Mein Test-Projekt war innerhalb weniger Minuten angelegt und am Server verfügbar. Folgende Schritte waren notwendig (Mac OSX):</p>

<div class="wp_syntax"><div class="code"><pre class="sh" style="font-family:monospace;">&nbsp;
mkdir bohuco
cd bohuco
cctrlapp bohuco create php --repo git
vim index.php
git init
git add .
git commit -m &quot;initial commit&quot;
cctrlapp bohuco push
cctrlapp bohuco deploy</pre></div></div>

<p>Voilà: <a href="http://bohuco.cloudcontrolled.com/">http://bohuco.cloudcontrolled.com/</a></p>
<p>Wie man auf dem phpinfo() Screenshot sieht, ist derzeit PHP 5.3.2 installiert, APC ist aktiviert, memory_limit ist auf 128 MB, post_max_size auf 20 MB &#8230;</p>
<p> <a href="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-20.56.34.png"><img src="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-20.56.34-281x300.png" alt="" title="Bildschirmfoto 2011-02-08 um 20.56.34" width="281" height="300" class="aligncenter size-medium wp-image-1692" /></a></p>
<p>Gehostet wird laut Twitter-Aussage auf Amazon EC2 in Irland: &#8220;@brgmn Freut uns, dass es gefällt. Server sind zur Zeit Amazon EC2 EU Region. ^pst&#8221;. Einige Details zum technische Setup kann man in den <a href="http://cloudcontrol.com/developers/faq-en/features-and-functions/">FAQs</a> finden.</p>
<p><strong>Dokumentation und Support</strong></p>
<p>&#8230; lassen keine Wünsche offen. Support via Telefon, E-Mail, Twitter und Chat. Die Dokumentation ist umfangreich und gut gegliedert. <a href="http://cloudcontrol.com/developers/tutorial/choose-operating-system/">Tutorials</a> für unterschiedliche Betriebssysteme und sogar einen <a href="http://cloudcontrol.com/assets/downloads/cloudControl_cheatsheet.pdf">Cheet Sheet</a> für die wichtigsten Funktionen wurde erstellt.</p>
<p><a href="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-21.11.35.png"><img src="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-21.11.35-300x187.png" alt="" title="Bildschirmfoto 2011-02-08 um 21.11.35" width="300" height="187" class="aligncenter size-medium wp-image-1694" /></a></p>
<p><strong>Performance</strong></p>
<p>Hier die Ausgabe eines ab -n 1000 -c 10 auf meine einfache PHP-Seite. Die Seite macht nur ein echo und die Applikation ist auf eine Box begrenzt.</p>
<pre>

Server Software:
Server Hostname:        bohuco.cloudcontrolled.com
Server Port:            80

Document Path:          /
Document Length:        28 bytes

Concurrency Level:      10
Time taken for tests:   14.203 seconds
Complete requests:      1000
Failed requests:        0
Write errors:           0
Total transferred:      290000 bytes
HTML transferred:       28000 bytes
<strong>Requests per second:    70.41 [#/sec] (mean)</strong>
Time per request:       142.027 [ms] (mean)
Time per request:       14.203 [ms] (mean, across all concurrent requests)
Transfer rate:          19.94 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:       53   63   5.0     62     105
Processing:    56   79  28.9     69     335
Waiting:       56   78  28.8     69     335
Total:        113  141  29.4    133     400

Percentage of the requests served within a certain time (ms)
  50%    133
  66%    140
  75%    146
  80%    152
  90%    166
  95%    187
  98%    234
  99%    295
 100%    400 (longest request)
</pre>
<p><strong>Auch Nice &#8230;</strong></p>
<p>Das Deployment ist via SFTP zugänglich:<br />
sftp://dep_id@app_name.cloudcontrolled.com/files</p>
<p>Die Log-Files lassen sich abrufen:<br />
cctrlapp bohuco/default log error</p>
<p>Es wird bald ein MySQL Admin Tool geben.</p>
<p>.htaccess ist möglich und mod_rewrite ist aktiv</p>
<p><strong>Fazit</strong></p>
<p><a href="http://cloudcontrol.com/">cloudControl</a> sieht auf den ersten Blick wunderbar aus. Wie sich die Plattform im Live-Betrieb bzw. Entwickler-Alltag verhält kann ich nach so kurzer Zeit nicht sagen. Aber das Ding ist auf jeden Fall einen zweiten Blick wert. Fast alles was ich ausprobiert habe hat auf Anhieb funktioniert (nur Apache Access Log konnte ich nicht downloaden).</p>
<p><a href="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-21.44.46.png"><img src="http://bohuco.net/blog/wp-content/uploads/2011/02/Bildschirmfoto-2011-02-08-um-21.44.46-300x178.png" alt="" title="Bildschirmfoto 2011-02-08 um 21.44.46" width="300" height="178" class="aligncenter size-medium wp-image-1696" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2011/02/php-cloud-cloudcontrol-paas/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mount Amazon Ec2 with Mac OSX</title>
		<link>http://bohuco.net/blog/2011/01/mount-amazon-ec2-with-mac-osx/</link>
		<comments>http://bohuco.net/blog/2011/01/mount-amazon-ec2-with-mac-osx/#comments</comments>
		<pubDate>Fri, 07 Jan 2011 08:16:02 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[ec2]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1647</guid>
		<description><![CDATA[MacFusion is a free OSX app for mounting FTP and SFTP (SSH) drives into mac finder. Usually you use a user/password combination for authentification but if you want mount an amazon ec2 instance you have to use the pem-file you get here. First copy the pem file to the hidden .ssh folder and add the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://macfusionapp.org/">MacFusion</a> is a free OSX app for mounting FTP and SFTP (SSH) drives into mac finder. Usually you use a user/password combination for authentification but if you want mount an amazon ec2 instance you have to use the pem-file you get <a href="https://aws-portal.amazon.com/gp/aws/developer/account/index.html?ie=UTF8&amp;action=access-key">here</a>.</p>
<p><span id="more-1647"></span></p>
<p>First copy the pem file to the hidden .ssh folder and add the content of the pem-file to your keychain:</p>
<pre>cp mypemfile.pem ~/.ssh
ssh-add -K ~/.ssh/mypemfile.pem</pre>
<p>Next open the ssh-config file (usually its empty) &#8230;</p>
<pre>vim ~/.ssh/config</pre>
<p>&#8230; and add the config for you instance:</p>
<pre>Host public-ec2-dns.compute.amazonaws.com
HostName public-ec2-dns.compute.amazonaws.com
User root
IdentityFile ~/.ssh/mypemfile.pem</pre>
<p><a href="http://www.macupdate.com/app/mac/24768/macfusion">Download MacFusion</a><br />
<a href="http://aws.amazon.com/ec2/">Amazon EC2</a><br />
see <a href="http://superuser.com/questions/88359/mount-ec2-instance-via-ssh-on-mac-os-x">superuser.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2011/01/mount-amazon-ec2-with-mac-osx/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WordPress Quicky: Query Posts by Custom Meta Field</title>
		<link>http://bohuco.net/blog/2010/10/wordpress-quicky-query-posts-by-custom-meta-field/</link>
		<comments>http://bohuco.net/blog/2010/10/wordpress-quicky-query-posts-by-custom-meta-field/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 14:31:27 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Posts]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1629</guid>
		<description><![CDATA[If you have already added a custom meta field to your wordpress posts with add_meta_box you probably want to query such posts in your template. You can do that with query_posts(), it supports the meta_key and meta_value attributes. &#160; query_posts&#40;$query_string.'&#38;meta_key=onStartpage&#38;meta_value=1'&#41;;]]></description>
			<content:encoded><![CDATA[<p>If you have already added a custom meta field to your <a href="http://www.wordpress.org">wordpress</a> posts with add_meta_box you probably want to query such posts in your template. You can do that with <strong><a href="http://codex.wordpress.org/Function_Reference/query_posts#Custom_Field_Parameters">query_posts()</a></strong>, it supports the <strong>meta_key</strong> and <strong>meta_value</strong> attributes.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
query_posts<span style="color: #009900;">&#40;</span><span style="color: #000088;">$query_string</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'&amp;meta_key=onStartpage&amp;meta_value=1'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/10/wordpress-quicky-query-posts-by-custom-meta-field/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Quicky: Add User Profile Fields</title>
		<link>http://bohuco.net/blog/2010/10/wordpress-quicky-add-user-profile-fields/</link>
		<comments>http://bohuco.net/blog/2010/10/wordpress-quicky-add-user-profile-fields/#comments</comments>
		<pubDate>Sat, 16 Oct 2010 16:10:16 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[profile]]></category>
		<category><![CDATA[user]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1625</guid>
		<description><![CDATA[If you want add fields to the wordpress user profile then two hooks are important for you. The &#8216;show_user_profile&#8217; counts if you open your profile and the &#8216;edit_user_profile&#8217; if you open another users profile in admin. &#160; function my_profile&#40;$user&#41; &#123; $fields = array&#40;'my_field1', 'my_field2'&#41;; &#160; // load already saved data from database foreach&#40;$fields as $key&#41; [...]]]></description>
			<content:encoded><![CDATA[<p>If you want add fields to the wordpress user profile then two hooks are important for you.<br />
<span id="more-1625"></span><br />
The &#8216;show_user_profile&#8217; counts if you open your profile and the &#8216;edit_user_profile&#8217; if you open another users profile in admin.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> my_profile<span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>	
	<span style="color: #000088;">$fields</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'my_field1'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_field2'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #666666; font-style: italic;">// load already saved data from database</span>
	<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fields</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>		
		<span style="color: #000088;">$$key</span> <span style="color: #339933;">=</span> get_user_meta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$user</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">ID</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #b1b100;">include</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #009900; font-weight: bold;">__FILE__</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">.</span><span style="color: #0000ff;">'/profile.php'</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'show_user_profile'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_profile'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'edit_user_profile'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_profile'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>In the profile.php is the html for our new fields. I change the positions of the fields with jQuery.</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&nbsp;
&lt;div class=&quot;wrap&quot;&gt;
&nbsp;
	&lt;script type=&quot;text/javascript&quot;&gt;
&nbsp;
		jQuery(function(){
			jQuery('#my_field1').appendTo('.form-table:eq(1)');
			jQuery('#my_field2').appendTo('.form-table:eq(2)');
		});
&nbsp;
	&lt;/script&gt; 
&nbsp;
	&lt;form action=&quot;?page=my_profile&quot; method=&quot;post&quot;&gt; 
		&lt;table class=&quot;form-table&quot;&gt;
			&lt;tr id=&quot;my_field1&quot;&gt;
				&lt;th&gt;&lt;label for=&quot;my_field1&quot;&gt;Position&lt;/label&gt;&lt;/th&gt;
				&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;my_field1&quot; id=&quot;my_field1&quot; value=&quot;&lt;?=$my_field1?&gt;&quot; class=&quot;regular-text&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;			
			&lt;tr id=&quot;my_field2&quot;&gt;
				&lt;th&gt;&lt;label for=&quot;my_field2&quot;&gt;Company*&lt;/label&gt;&lt;/th&gt;
				&lt;td&gt;&lt;input type=&quot;text&quot; name=&quot;my_field2&quot; id=&quot;my_field2&quot; value=&quot;&lt;?=$my_field2?&gt;&quot; class=&quot;regular-text&quot; /&gt;&lt;/td&gt;
			&lt;/tr&gt;
		&lt;/table&gt;
	&lt;/form&gt;
&lt;/div&gt;</pre></div></div>

<p>i guess you want to save the new user fields to your wordpress database, so you have to add user meta.</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> my_save_user<span style="color: #009900;">&#40;</span><span style="color: #000088;">$userId</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000088;">$fields</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'my_field1'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'my_field2'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span> 
		<span style="color: #b1b100;">foreach</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$fields</span> <span style="color: #b1b100;">as</span> <span style="color: #000088;">$key</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			<span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				update_usermeta<span style="color: #009900;">&#40;</span><span style="color: #000088;">$userId</span><span style="color: #339933;">,</span> <span style="color: #000088;">$key</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_POST</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$key</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span>
&nbsp;
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'personal_options_update'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_save_user'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
add_action<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'edit_user_profile_update'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'my_save_user'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/10/wordpress-quicky-add-user-profile-fields/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WordPress Quicky: Exclude Categories</title>
		<link>http://bohuco.net/blog/2010/09/wordpress-quicky-exclude-categories/</link>
		<comments>http://bohuco.net/blog/2010/09/wordpress-quicky-exclude-categories/#comments</comments>
		<pubDate>Thu, 23 Sep 2010 07:35:41 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Programmierung]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[theme]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1607</guid>
		<description><![CDATA[Another quicktipp for wordpress theme developers. If you want to exclude one or more categories from a page (startpage, category-page), you can call the query_posts function with negative category-ids &#8230; &#60;?php query_posts&#40;$query_string . '&#38;cat=-1,-2,-3'&#41;; ?&#62; &#60;?php if &#40; have_posts&#40;&#41; &#41; : while &#40; have_posts&#40;&#41; &#41; : the_post&#40;&#41;; ?&#62; &#60;!-- POST --&#62; &#60;?php endwhile; endif; ?&#62;]]></description>
			<content:encoded><![CDATA[<p>Another quicktipp for wordpress theme developers.</p>
<p>If you want to exclude one or more categories from a page (startpage, category-page), you can call the query_posts function with negative category-ids &#8230;</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> query_posts<span style="color: #009900;">&#40;</span><span style="color: #000088;">$query_string</span> <span style="color: #339933;">.</span> <span style="color: #0000ff;">'&amp;cat=-1,-2,-3'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> <span style="color: #b1b100;">while</span> <span style="color: #009900;">&#40;</span> have_posts<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#41;</span> <span style="color: #339933;">:</span> the_post<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span>
    &lt;!-- POST --&gt;
<span style="color: #000000; font-weight: bold;">&lt;?php</span> <span style="color: #b1b100;">endwhile</span><span style="color: #339933;">;</span> <span style="color: #b1b100;">endif</span><span style="color: #339933;">;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/09/wordpress-quicky-exclude-categories/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Multiple Sign-in aktiv</title>
		<link>http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/</link>
		<comments>http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/#comments</comments>
		<pubDate>Tue, 03 Aug 2010 14:48:17 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[Account]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1519</guid>
		<description><![CDATA[Google hat jetzt das angekündigte Multiple Sign-In aktiviert. Endlich kann man mit unterschiedlichen Benutzern auf verschiedenen Google Diensten angemeldet sein ohne das man mehrere Browser geöffnet haben muß. Multi Sign-In funktioniert derzeit nur mit Gmail, Google Docs, Google Reader, Google Sites, Google Calendar und Google Code, weitere Dienste können folgen. Das neue Feature muss auf [...]]]></description>
			<content:encoded><![CDATA[<p>Google hat jetzt das <a href="http://googlesystem.blogspot.com/2010/07/google-tests-multiple-accounts-sign-in.html">angekündigte Multiple Sign-In</a> aktiviert. Endlich kann man mit unterschiedlichen Benutzern auf verschiedenen Google Diensten angemeldet sein ohne das man mehrere Browser geöffnet haben muß. Multi Sign-In funktioniert derzeit nur mit Gmail, Google Docs, Google Reader, Google Sites, Google Calendar und Google Code, weitere Dienste können folgen.</p>
<p>Das neue Feature muss auf der <a href="https://www.google.com/accounts/MultipleSessions">Account-Seite</a> aktiviert werden und ist noch nicht überall aktiv.</p>
<p><a href="http://googlesystem.blogspot.com/2010/08/google-multiple-sign-in-now-available.html">Multi Sign-in available</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/08/google-multiple-sign-in-aktiv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SproutCore Erfinder eröffnet HTML5-Firma</title>
		<link>http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/</link>
		<comments>http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 05:39:52 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Mobile]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web Entwicklung]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[MobileMe]]></category>
		<category><![CDATA[SproutCore]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1428</guid>
		<description><![CDATA[Der SproutCore Erfinder Charles Jolley verlässt Apple und gründet ein Unternehmen das sich mit der Entwicklung neuer Rich-Web Applikationen auf HTML5-basis beschäftigen wird. Jolley war unter anderem für die MobileMe Plattform zuständig und hat für Apple Javascript Frameworks entwickelt. Die neue Firma wird Strobe Digital Publishing heißen und Jolley beschreib sie so: Strobe Digital Publishing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-07.37.33.png"><img class="alignright size-full wp-image-1429" title="Bildschirmfoto 2010-07-09 um 07.37.33" src="http://bohuco.net/blog/wp-content/uploads/2010/07/Bildschirmfoto-2010-07-09-um-07.37.33.png" alt="" width="118" height="135" /></a>Der <a href="http://www.sproutcore.com/">SproutCore</a> Erfinder Charles Jolley verlässt <a href="http://www.apple.com">Apple</a> und gründet ein Unternehmen das sich mit der Entwicklung neuer Rich-Web Applikationen auf HTML5-basis beschäftigen wird.</p>
<p><span id="more-1428"></span></p>
<p>Jolley war unter anderem für die MobileMe Plattform zuständig und hat für Apple Javascript Frameworks entwickelt. Die neue Firma wird Strobe Digital Publishing heißen und Jolley beschreib sie so:</p>
<blockquote><p>Strobe Digital Publishing is a better way to put content onto the iPad  and other mobile touch devices.  Based on a blend of HTML5 and native  technology, Strobe content applications offer a great native-style  reading experience with the ability to deep link and share content to  drive traffic.</p></blockquote>
<p>SproutCore ist ein HTML/Javascript Framework das diverse Komponenten für Rich-Web Applikationen zur Verfügung stellt &#8211; <a href="http://demo.sproutcore.com/sample_controls/">Demo</a>.</p>
<p>via <a href="http://news.cnet.com/8301-30685_3-20009681-264.html?part=rss&amp;subj=news&amp;tag=2547-1_3-0-20">cnet</a>, <a href="http://www.maclife.de/ehemaliger-apple-entwickler-gruendet-html5-unternehmen">maclife.de</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/07/sproutcore-erfinder-eroffnet-html5-firma/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Second Lifes Bold Move?</title>
		<link>http://bohuco.net/blog/2010/02/second-lifes-bold-move/</link>
		<comments>http://bohuco.net/blog/2010/02/second-lifes-bold-move/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 19:36:44 +0000</pubDate>
		<dc:creator>DerFichtl</dc:creator>
				<category><![CDATA[Mixed Up]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[3D]]></category>
		<category><![CDATA[second life]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[viewer]]></category>
		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://bohuco.net/blog/?p=1379</guid>
		<description><![CDATA[Ich war ja immer der Meinung das es noch nicht vorbei ist. Heute Vormittag dann eine kurze Ankündigung beim Scobleizer: &#8220;Linden Lab zeigt was Neues&#8221; &#8230; soso, und jetzt ist es raus. Der Bold Move besteht aus einem komplett neu designten Viewer und einem lang erwarteten Content-Feature. Der neue Viewer ist einem Webbrowser nachempfunden, mit [...]]]></description>
			<content:encoded><![CDATA[<p>Ich war ja immer der Meinung das es noch nicht vorbei ist. Heute Vormittag dann eine <a href="http://scobleizer.com/2010/02/22/is-second-life-about-to-enter-its-second-life/">kurze Ankündigung beim Scobleizer</a>: &#8220;Linden Lab zeigt was Neues&#8221; &#8230; soso, und jetzt ist es raus. Der Bold Move besteht aus einem komplett neu designten Viewer und einem lang erwarteten Content-Feature.</p>
<p><span id="more-1379"></span></p>
<p>Der neue Viewer ist einem Webbrowser nachempfunden, mit Adressleiste und Sidebar. Das Ganze ist etwas langsamer als der bisherige Viewer, allerdings befindet sich das Programm noch in der Beta-Version.</p>
<p>Linden Lab führt sogenannte &#8220;Shared Media&#8221; Objekte ein, und macht es somit endlich möglich Web-Inhalte in Second Life zu verwenden. Ein Shared Media Objekt kann eine Webseite sein, oder ein Flash Film, auch Videos &#8220;and other WebMedia&#8221; werden unterstützt. Das Shared Media Objekt wird als Textur auf ein Objekt gelegt und updatet sich regelmäßig selber. Javascript und AJAX funktionieren problemlos, ich hab es mit der Twitter-Suche getestet. Wenn der Ersteller es zulässt kann man auch auf andere Seiten wechseln, dazu wird am oberen Bildschirmrand eine kleine Navigations-/Adressleiste eingeblendet. Mehr zum Thema will Linden morgen in einem Blog-Post bekanntgeben.</p>
<p>Hoffentlich bringen diese Neuerungen wieder ein bisschen Schwung in die Entwicklung von Second Life. Es wär Schade wenn dieses tolle Produkt einfach in den Tiefen des SocialMedia-Sumpfes versinken würde.</p>
<p><a href="http://scobleizer.com/2010/02/23/second-lifes-new-player-builds-toward-web/">mehr bei Scobleizer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://bohuco.net/blog/2010/02/second-lifes-bold-move/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

