<?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>Thomas Spycher &#187; Business</title>
	<atom:link href="http://tspycher.com/category/business/feed/" rel="self" type="application/rss+xml" />
	<link>http://tspycher.com</link>
	<description></description>
	<lastBuildDate>Sat, 07 Jan 2012 15:34:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Getting in contact with OpenStack</title>
		<link>http://tspycher.com/getting-in-contact-with-openstack/</link>
		<comments>http://tspycher.com/getting-in-contact-with-openstack/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 07:47:05 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Openstack]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Virtualisierung]]></category>
		<category><![CDATA[VMware]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=673</guid>
		<description><![CDATA[Till now, i was only able to deploy some vm&#8217;s on my MacMini Server with VMware Fusion on it. This worked oukay so far&#8230; Due to the mac mini is reaching its second birthday, it does not power vm&#8217;s very well. Also to keep the vm powered on, i need always stay logged in with [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://tspycher.com/wp-content/upload/2011/12/openstack-logo512.png" rel="lightbox[673]"><img class="alignleft size-thumbnail wp-image-674" title="openstack-logo512" src="http://tspycher.com/wp-content/upload/2011/12/openstack-logo512-150x150.png" alt="" width="150" height="150" /></a>Till now, i was only able to deploy some vm&#8217;s on my MacMini Server with VMware Fusion on it. This worked oukay so far&#8230; Due to the mac mini is reaching its second birthday, it does not power vm&#8217;s very well. Also to keep the vm powered on, i need always stay logged in with the user and of course the management is only possible trough vnc directly on the server.</p>
<p>That was the reason for me to rent some virtual machines by rackspacecloud.com. Seriously, rackspacecloud is impressive! But keeping two or more vm&#8217;s up and running for more than a month is a really expensive playground! Moving to Amazon&#8217;s EC2 wasn&#8217;t an option too. So i decided to buy a extreme low-end cheap virutalisation capable server. After some research (Hardware should be compatible with ESXi in case of whatever) i&#8217;ve build the following server for me:</p>
<p><strong>Case:</strong> Asus Vintage V8-P8H67E, Intel H67, Socket 1155, USB 3.0 (about 170$)</p>
<p><strong>CPU: </strong>Intel Core i5 2500 BOX, 3.3GHz, LGA 1155, 4C/4T (about 200$)</p>
<p><strong>RAM: </strong>Kingston ValueRAM, 3&#215;4 GB, DDR3-1333, CL9 (about 60$)</p>
<p><strong>Raid (optional):</strong> Adaptec RAID 2405, 4-Channel SAS/SATA, low profile (about 200$)</p>
<p><strong>Additional Network:</strong> Intel PWLA8391GTBLK Pro 1000GT Gigabit Adapter PCI, Bulk (about 30$)</p>
<p><strong>VLAN Gigabit Switch: </strong>HP ProCurve Switch V1810G-8 8 Port 10/100/1000 Mbps, SFP (about 110$)</p>
<p><strong>Harddisk:</strong> got some at home</p>
<p>The Result is a Box with 100% Virtualisation Support (vPro, VT-x, VT-d, 64bit), 12GB RAM and small in form and silent too.</p>
<p>In the past i&#8217;ve landed several times on openstack.org during some research in automating virtualisation infrastructures. Openstack is a framework for building private clouds. Openstack promises an virtualisation ecosystem with all needed components to build a perfect world. The project looks very mature and there are a lot of partners supporting them. Openstack supports also a wide range of Hypervisors though they&#8217;r strongly recommending to use KVM for virtualistion. I will give the project a try&#8230;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/getting-in-contact-with-openstack/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enabling Redmine for Receiving Mails</title>
		<link>http://tspycher.com/enabling-redmine-for-receiving-mails/</link>
		<comments>http://tspycher.com/enabling-redmine-for-receiving-mails/#comments</comments>
		<pubDate>Wed, 25 May 2011 13:44:56 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sourceTube]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[Technisches]]></category>
		<category><![CDATA[zero-one]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=635</guid>
		<description><![CDATA[Today i struggled around getting Redmine pulling Mails from a remote IMAP server and creating issues with its content. Finally i&#8217;v get it working&#8230; There are several rules you should keep in mind: Be carful if you have defined any mandatory additional fields for your Issues If you set unknown_user=create be sure the newly created [...]]]></description>
			<content:encoded><![CDATA[<p>Today i struggled around getting Redmine pulling Mails from a remote IMAP server and creating issues with its content. Finally i&#8217;v get it working&#8230; There are several rules you should keep in mind:</p>
<ul>
<li>Be carful if you have defined any mandatory additional fields for your Issues</li>
<li>If you set unknown_user=create be sure the newly created user has access to the project automatically. If he has no access, the issue will not be created</li>
<li>If you just want to pipe Mails into a Redmine project use unknown_user=accept and o_permission_check=1 and issues are getting created with the anonymous User. Works well for a simple &#8220;one-way&#8221; posting</li>
</ul>
<p>Finally i&#8217;ve created a small bash script to run the import process all 5 minutes:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #007800;">SERVER</span>=host.domain.tld
<span style="color: #007800;">USER</span>=jbauer
<span style="color: #007800;">PASS</span>=ILike24
&nbsp;
rake <span style="color: #660033;">-f</span> <span style="color: #000000; font-weight: bold;">/</span>path<span style="color: #000000; font-weight: bold;">/</span>to<span style="color: #000000; font-weight: bold;">/</span>your<span style="color: #000000; font-weight: bold;">/</span>Redmine<span style="color: #000000; font-weight: bold;">/</span>installation<span style="color: #000000; font-weight: bold;">/</span>Rakefile redmine:email:receive_imap <span style="color: #007800;">RAILS_ENV</span>=<span style="color: #ff0000;">&quot;production&quot;</span> \
<span style="color: #007800;">host</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$SERVER</span>&quot;</span> \
<span style="color: #007800;">username</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$USER</span>&quot;</span> \
<span style="color: #007800;">password</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$PASS</span>&quot;</span> \
<span style="color: #007800;">move_on_success</span>=<span style="color: #c20cb9; font-weight: bold;">read</span> \
<span style="color: #007800;">project</span>=sandbox \
<span style="color: #007800;">allow_override</span>=project,tracker,category,priority,status \
<span style="color: #007800;">unknown_user</span>=accept \
<span style="color: #007800;">no_permission_check</span>=<span style="color: #000000;">1</span> \
<span style="color: #007800;">status</span>=New \
<span style="color: #007800;">tracker</span>=Bug \
<span style="color: #007800;">priority</span>=Low
<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #007800;">$?</span></pre></div></div>

<p>For mor detailed information visit the <a href="http://www.redmine.org/projects/redmine/wiki/RedmineReceivingEmails" target="_blank">Redmine Wiki</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/enabling-redmine-for-receiving-mails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Redmine and GMail SMTP Server</title>
		<link>http://tspycher.com/redmin-and-gmail-smtp-server/</link>
		<comments>http://tspycher.com/redmin-and-gmail-smtp-server/#comments</comments>
		<pubDate>Wed, 13 Apr 2011 12:51:41 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sourceTube]]></category>
		<category><![CDATA[Actionmailer]]></category>
		<category><![CDATA[GMail]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[SMTP]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=622</guid>
		<description><![CDATA[It&#8217;s kind of tricky to configure redmine to send mails over GMail to project participants. The following configurations works very well for sourceTube.net. Tested with the actual Redmine Version 1.1.2 and ActionMailer 2.3.5. Be careful editing the file. Do not use tabs, just spaces! Just put the following in config/email.yml production: delivery_method: :smtp smtp_settings: tls: [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s kind of tricky to configure redmine to send mails over GMail to project participants. The following configurations works very well for <a href="http://sourcetube.net" target="_blank">sourceTube.net</a>. Tested with the actual Redmine Version 1.1.2 and ActionMailer 2.3.5.</p>
<p>Be careful editing the file. Do not use tabs, just spaces!</p>
<p>Just put the following in config/email.yml</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">production:
  delivery_method: <span style="color:#ff3333; font-weight:bold;">:smtp</span>
  smtp_settings:
    tls: <span style="color:#0000FF; font-weight:bold;">true</span>
    address: <span style="color:#996600;">&quot;smtp.gmail.com&quot;</span>
    port: <span style="color:#006666;">587</span>
    domain: <span style="color:#996600;">&quot;domain.tld&quot;</span>
    authentication: <span style="color:#ff3333; font-weight:bold;">:plain</span>
    user_name: <span style="color:#996600;">&quot;MyEmailAddress@domain.tld&quot;</span>
    password: <span style="color:#996600;">&quot;ThisIs$ecret&quot;</span>
    enable_starttls_auto: <span style="color:#0000FF; font-weight:bold;">true</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/redmin-and-gmail-smtp-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to keep your Redmine uptodate</title>
		<link>http://tspycher.com/how-to-keep-your-redmine-uptodate/</link>
		<comments>http://tspycher.com/how-to-keep-your-redmine-uptodate/#comments</comments>
		<pubDate>Thu, 03 Mar 2011 12:19:40 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[sourceTube]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[Subversion]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=503</guid>
		<description><![CDATA[Usually its hard the server all the time the latest version of a software in a hosted environment like sourceTube.net. For example, sourceTube is a hosted Redmine solution. This piece of software is under heavy development with a tight roadmap. To server always the latest version of the code I handle two directories with all [...]]]></description>
			<content:encoded><![CDATA[<p>Usually its hard the server all the time the latest version of a software in a hosted environment like <a href="http://sourceTube.net" target="_blank">sourceTube.net</a>. For example, sourceTube is a hosted <a href="http://redmine.org" target="_blank">Redmine</a> solution. This piece of software is under heavy development with a tight roadmap. To server always the latest version of the code I handle two directories with all the data.</p>
<ul>
<li>The first folder contains the productive data, which i&#8217;m using for my hosted environment</li>
<li>The second folder contains a checkout of the latest stable revision (gotten from the tag repository folder) of the trunk repository folder</li>
</ul>
<p>After the successful setup of the folders the following short script does the whole magic for me:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;"># Thomas Spycher - Zero-One - 05.11.2010</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Init</span>
<span style="color: #007800;">TAR</span>=<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">tar</span>
<span style="color: #007800;">SVN</span>=<span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span><span style="color: #c20cb9; font-weight: bold;">svn</span>
<span style="color: #007800;">SKELETON</span>=<span style="color: #000000; font-weight: bold;">/</span>var<span style="color: #000000; font-weight: bold;">/</span>data<span style="color: #000000; font-weight: bold;">/</span>redmine<span style="color: #000000; font-weight: bold;">/</span>skeleton
&nbsp;
<span style="color: #666666; font-style: italic;">#Create Backup of the current data</span>
<span style="color: #007800;">$TAR</span> <span style="color: #660033;">-czf</span> <span style="color: #007800;">$SKELETON</span><span style="color: #000000; font-weight: bold;">/</span>redmine_backup_before_update.tar.gz <span style="color: #007800;">$SKELETON</span><span style="color: #000000; font-weight: bold;">/</span>redmine
<span style="color: #007800;">$SVN</span> update <span style="color: #660033;">-r</span> <span style="color: #007800;">$1</span> <span style="color: #007800;">$SKELETON</span><span style="color: #000000; font-weight: bold;">/</span>redmine_svn<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">cp</span> <span style="color: #660033;">-r</span> <span style="color: #007800;">$SKELETON</span><span style="color: #000000; font-weight: bold;">/</span>redmine_svn<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #007800;">$SKELETON</span><span style="color: #000000; font-weight: bold;">/</span>redmine<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #666666; font-style: italic;"># remove all .svn folders from the target</span>
<span style="color: #c20cb9; font-weight: bold;">find</span> <span style="color: #007800;">$SKELETON</span><span style="color: #000000; font-weight: bold;">/</span>redmine<span style="color: #000000; font-weight: bold;">/</span> <span style="color: #660033;">-type</span> d <span style="color: #660033;">-name</span> .svn <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">xargs</span> <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-fr</span></pre></div></div>

<p>The Script gets started with the revision number as argument:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">.<span style="color: #000000; font-weight: bold;">/</span>redmineBaseUpdate.sh <span style="color: #000000;">4786</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/how-to-keep-your-redmine-uptodate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sourceTube.net ist geboren</title>
		<link>http://tspycher.com/sourcetube-net-ist-geboren/</link>
		<comments>http://tspycher.com/sourcetube-net-ist-geboren/#comments</comments>
		<pubDate>Sun, 05 Dec 2010 15:45:39 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Engineering]]></category>
		<category><![CDATA[Persönliches]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[sourceTube]]></category>
		<category><![CDATA[Zero-One]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[ITS]]></category>
		<category><![CDATA[Redmine]]></category>
		<category><![CDATA[RESTful]]></category>
		<category><![CDATA[soruceTube]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=453</guid>
		<description><![CDATA[Nach einigen Wochen Arbeiten am Abend und Wochenende ist nun endlich sourceTube.net zur Welt gekommen. sourceTube ist eine cloud basierende Projekt Plattform. In sourceTube können, vorzugsweise IT/Software Projekte, von A-Z geplant, realisiert und gepflegt werden. Hier ein paar Stichworte: Cloud Based Redmine als Projektmanagement System ITS System Zeit erfassung Subversion nahtlos integriert Webbasiertes Management Scrum [...]]]></description>
			<content:encoded><![CDATA[<p>Nach einigen Wochen Arbeiten am Abend und Wochenende ist nun endlich <a href="http://sourceTube.net" target="_blank">sourceTube.net</a> zur Welt gekommen.</p>
<p>sourceTube ist eine cloud basierende Projekt Plattform. In sourceTube können, vorzugsweise IT/Software Projekte, von A-Z geplant, realisiert und gepflegt werden. Hier ein paar Stichworte:</p>
<ul>
<li>Cloud Based</li>
<li>Redmine als Projektmanagement System</li>
<li>ITS System</li>
<li>Zeit erfassung</li>
<li>Subversion nahtlos integriert</li>
<li>Webbasiertes Management</li>
<li>Scrum Integriert</li>
</ul>
<p>sourceTube ist im Moment noch Beta und somit offen für alle interessierten zum testen. Und das Beste am ganzen ist, dass während der Testphase 50mb gratis sind!</p>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/sourcetube-net-ist-geboren/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teil 1: Scrum&#8230; Management von Chaos?</title>
		<link>http://tspycher.com/teil-1-scrum-management-von-chaos/</link>
		<comments>http://tspycher.com/teil-1-scrum-management-von-chaos/#comments</comments>
		<pubDate>Wed, 17 Nov 2010 11:15:31 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Management]]></category>
		<category><![CDATA[Scrum]]></category>
		<category><![CDATA[Projektmanagement]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=390</guid>
		<description><![CDATA[Heute ist mein Buch über Scrum angekommen. Wie jedes neue Thema fällt der Startschuss mit dem Pöstler der, das Päckli mit einem neuen Buch bringt. Ich habe schon diverse Artikel über Scrum gelesen, aber effektiv etwas vorstellen kann ich mir nicht. Was ist Scrum? Scrum ist eine Projektmangement Methode für Projekte deren Weg das Ziel [...]]]></description>
			<content:encoded><![CDATA[<p>Heute ist mein <a href="http://www.amazon.de/Scrum-Agiles-Projektmanagement-erfolgreich-einsetzen/dp/3898644782/ref=sr_1_1?ie=UTF8&amp;qid=1289984484&amp;sr=8-1" target="_blank">Buch</a> über Scrum angekommen. Wie jedes neue Thema fällt der Startschuss mit dem Pöstler der, das Päckli mit einem neuen Buch bringt. Ich habe schon diverse Artikel über Scrum gelesen, aber effektiv etwas vorstellen kann ich mir nicht.</p>
<p>Was ist Scrum?<br />
Scrum ist eine Projektmangement Methode für Projekte deren Weg das Ziel ist. Vorzugsweise in der Software Entwicklung.</p>
<p>Was erhoffe ich mir durch Scrum?<br />
Mein Job als Engineer bei der Firma Genotec ist sehr hektisch. Ein Projekt zu managen ist mit herkömmlichen Methoden meist fast unmöglich. Einen Zeitplan einhalten ist Nervenraubend. Ebenfalls braucht ein Management eines Projekt&#8217;s unter diesen Umständen sehr viel Zeit! Mit Scrum erhoffe ich mir &#8220;Chaos zu managen&#8221; .</p>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/teil-1-scrum-management-von-chaos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCode und Objective-C 2.0</title>
		<link>http://tspycher.com/xcode-und-objective-c-2-0/</link>
		<comments>http://tspycher.com/xcode-und-objective-c-2-0/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 15:23:24 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Gedanken]]></category>
		<category><![CDATA[Homepage]]></category>
		<category><![CDATA[Technisches]]></category>
		<category><![CDATA[Cocoa]]></category>
		<category><![CDATA[Objective-C]]></category>
		<category><![CDATA[XCode]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=367</guid>
		<description><![CDATA[Ich denke es ist mal an der Zeit meine Eindrück, über die Welt der Entwicklung, aus Apples Auge, ein paar Worte zu verlieren. Im Rahmen meiner Weiterbildung beschäftige ich mich seit 1.5 Jahren mit C/C++. Java habe ich in den letzten Jahren auch programmiert, jedoch sehr wenig. Die meisten Zeilen Code habe ich in PHP [...]]]></description>
			<content:encoded><![CDATA[<p>Ich denke es ist mal an der Zeit meine Eindrück, über die Welt der Entwicklung, aus Apples Auge, ein paar Worte zu verlieren. Im Rahmen meiner Weiterbildung beschäftige ich mich seit 1.5 Jahren mit C/C++. Java habe ich in den letzten Jahren auch programmiert, jedoch sehr wenig. Die meisten Zeilen Code habe ich in PHP und Perl geschrieben &#8211; bis jetzt.</p>
<p>Seit nun etwas mehr als 6 Monaten programmiere ich immer wieder etwas in Objective-C. Das Resultat sind zahlreiche Codeschnippsel welche in einem Verzeichnis &#8220;Experimente&#8221; in meinem Subversion Repository liegen. Effektiv ist eine iPhone App einen kurzen Schritt vor seiner Vollendung.<br />
Der Anfang in Objective-C war steinig, verwirrend und meine Kopfhaut war anfänglich ziemlich wund vom vielen Kratzen. Der Syntax und Aufbau des Codes lässt sich schwer mit dem von C++ vergleichen. Nach langem schwertun wurde mir auch bewusst, dass es komplett falsch ist, diese beiden Sprach miteinander zu vergleichen! Objective-C hat seinen Ursprung schliesslich auch nicht in C++ sondern in C. Alles bereits vorhandene Programmierwissen ausgeblendet, startete ich einen zweiten Versuch mit der Sprache klar zu kommen. Es funktionierte!</p>
<p>Objective-C ist eine &#8220;menschenfreundliche&#8221; Programmiersprache. Sich ständig wiederholende Methoden, wie z.b. Setter/Getter Methoden wurden komplett <a href="http://en.wikipedia.org/wiki/Objective-c#Properties" target="_blank">vereinfacht</a>. Hier sei angemerkt, dass ich nur von Objective-C 2 spreche!<br />
Was ein C++ oder Java Programmierer unter Interfaces verstehen würde sind bei Apples Sprache <a href="http://en.wikipedia.org/wiki/Objective-c#Protocols" target="_blank">Protokolle</a>. Diese sind als Vertrag mit dem Programmierer zu verstehen. Ein Protokoll definiert Methoden die zwingend und solche die optional implementiert werden müssen resp. können. Hält sich der Entwickler nicht daran wird er sich mit dem Compiler in die Haare kriegen.<br />
Wesentlich anderst ist der Aufruf von Methoden einer Klasse. Diese werden übrigens nicht mehr strikt in public, private,protected, virtual kategorisiert. Vielmehr unterscheidet man unter Instanz- und Statischen <a href="http://en.wikipedia.org/wiki/Objective-c#Interface" target="_blank">Methoden</a>. Die Parameter einer Methode werden zwingend beschrieben. Dies macht den Code für den Menschen lesbar, als würde er einen Satz lesen.</p>
<p>[APIObjekt sendeAnfrage:anfrage anUrl:url];</p>
<p>Wobei &#8220;sendeAnfrage&#8221; und &#8220;anUrl&#8221; keinen Einfluss auf den Code haben. Sie beschreiben ausschliesslich den Methodenaufruf resp. dessen Parameter.</p>
<p>Bemerkenswert ist auch die gewonnene Dynamik dank den <a href="http://en.wikipedia.org/wiki/Objective-c#Messages" target="_blank">Selektoren</a>. Mit diesen können Nachrichten, so werden Methodenaufrufe genannt, an Klassen verschickt werden. Sprich, eine Methode dynamisch aufgerufen werden. Wobei auch erst überprüft werden kann ob die entsprechende Klasse überhaupt auf diese Nachricht antworten kann.<br />
Ebenfalls möchte ich an diesem Punkt noch die <a href="http://en.wikipedia.org/wiki/Objective-c#Categories" target="_blank">Kategorien</a> erwähnen. Angenommen der String Klasse von Cocoa fehlt eine tolle Funktion die ich meinem Programm nutzen möchte, musste ich bis jetzt diese Klasse spezifizieren und dann diese in meinem Code verwenden. Im schlimmsten Fall würde dies bedeuten, dass ich tausende von Codezeilen durchsuchen und meine Klasse anstelle der alten einsetzen müsste. Mit Kategorien kann ich neue Methoden zu bestehenden Klassen anghängen. Somit sind diese Methoden ohne erbrechtliche Geschichten überall in meinem Code vorhanden. Cool, nicht?</p>
<p>Programmieren in Objective-C bedeutet Spass! Schönen Code zu schreiben wird somit einiges einfacher. Nun zur Schattenseite&#8230; Ja, es gibt tatsächlich eine!<br />
Speichermanagement wird GROSS geschrieben in Objective-C. Es gibt drei Möglichkeiten seinen Arbeitsspeicher sauber zu halten.</p>
<ul>
<li> Manuelles aufräumen des Speichers</li>
<li>Autoreleasepools, welche die Objekte anhand ihres internen Zählers eliminieren.</li>
<li>Garbage-Collection</li>
</ul>
<p>Letzteres wird von den eingefleischten Apple Entwicklern verteufelt zudem gibt es in den iOS Geräten kein GC! Wird beim programmieren nicht äusserst sorgfältig auf den Speicher aufgepasst, beisst einem sein eigenes Programm ganz sicher bald in den Allerwertesten! Ist es soweit, und bei jedem wird dies der Fall sein, greift man gerne auf die Analyse Tools von XCode zurück!</p>
<p>Fazit: Objective-C 2.0 hat einiges vom Zauberstaub der Zukunftsfee abgekriegt! Aber einfach so mal Objective-C lernen ist nicht&#8230; Dafür ist die Sprache zu komplex! Hat man sich mit der Sprache angefreundet findet man schnell gefallen an Apples Cocoa Framework. Dieses bietet für &#8211; fast &#8211; alle Situation einen schnuckelige Klasse bereit. Leider sind diese wirklich zum teil nur schnuckelig. Fehlende Methoden für z.b. Base64 Encoding, HMAC Verschlüsselung und fehlende API Klassen für XML-RPC und REST-API, verhindern eine innige, heisse Beziehung mit Cocoa!<br />
Glücklicherweise findet man im Internet viele fertige Klassen, die dieses Defizit irgendwie, mit viel Klebeband, aufheben.<br />
Noch ein letztes Wort zur Entwicklungsumgebung <a href="http://en.wikipedia.org/wiki/Xcode" target="_blank">XCode</a>. Jeder, der mit der Version 3.x gearbeitet hat und die Version 4 gesehen hat, wird mir recht geben, dass die Aktuelle Version (3.irgendwas) mit einem Sportwagen mit Slicks im Regen zu vergleichen ist. Das Teil schleudert und man verliert schnell den überblick und streift mal eine Leitplanke! XCode 4 hingegen, fühlt sich eher wie ein britischer Sportwagen mit einer angemessenen Bereifung an! Die nahtlos integrierten Versionierungs Hilfsmittel lassen jeden Entwickler entspannt arbeiten!</p>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/xcode-und-objective-c-2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basic Cisco Steps</title>
		<link>http://tspycher.com/basic-cisco-steps/</link>
		<comments>http://tspycher.com/basic-cisco-steps/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 13:10:02 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Technisches]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=292</guid>
		<description><![CDATA[IP setzen Switch#conf t Enter configuration commands, one per line. End with CNTL/Z. Switch&#40;config&#41;#interface vlan 1 Switch&#40;config-if&#41;#ip address 10.123.1.254 255.255.255.0 Switch&#40;config-if&#41;#exit Switch&#40;config&#41;#exit Switch#wr Port Mirroring Switch&#40;config&#41;#monitor session 1 source interface fastEthernet 0/1 Switch&#40;config&#41;#monitor session 1 destination interface fastEthernet 0/24 ! If VLAN tags are needed Switch&#40;config&#41;#monitor session 1 destination interface fastEthernet 0/24 encapsulation dot1q Switch&#40;config&#41;#no [...]]]></description>
			<content:encoded><![CDATA[<p><strong>IP setzen</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #666666; font-style: italic;">#conf t</span>
Enter configuration commands, one per line.  End with CNTL<span style="color: #000000; font-weight: bold;">/</span>Z.
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#interface vlan 1</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#ip address 10.123.1.254 255.255.255.0</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#exit</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#exit</span>
Switch<span style="color: #666666; font-style: italic;">#wr</span></pre></div></div>

<p><strong>Port Mirroring</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#monitor session 1 source interface fastEthernet 0/1</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#monitor session 1 destination interface fastEthernet 0/24</span>
<span style="color: #000000; font-weight: bold;">!</span> If VLAN tags are needed
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#monitor session 1 destination interface fastEthernet 0/24 encapsulation dot1q</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#no monitor session 1</span></pre></div></div>

<p><strong>MAC Address Security</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#interface fastEthernet 0/1</span>
---<span style="color: #000000; font-weight: bold;">&amp;</span>gt;Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#switchport port-security mac-address sticky</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#switchport mode access</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#switchport port-security</span>
Switch<span style="color: #666666; font-style: italic;">#show port-security</span></pre></div></div>

<p><strong>Port wieder aktivieren</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#shutdown</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#exit</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#no shutdown</span></pre></div></div>

<p><strong>Spanning Tree</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-if<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#spanning-tree portfast</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#no spanning-tree vlan 1</span></pre></div></div>

<p><strong>CDP</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#no cdp run</span></pre></div></div>

<p><strong>Telnet anschalten</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#line vty 0 15</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-line<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#password ktsi</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-line<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#login</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-line<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#transport input telnet</span>
Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config-line<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#transport output telnet</span></pre></div></div>

<p><strong>Webbrowser Access</strong></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">Switch<span style="color: #7a0874; font-weight: bold;">&#40;</span>config<span style="color: #7a0874; font-weight: bold;">&#41;</span><span style="color: #666666; font-style: italic;">#ip http server</span></pre></div></div>

</pre>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/basic-cisco-steps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Chaning IP on an AIX System</title>
		<link>http://tspycher.com/chaning-ip-on-an-aix-system/</link>
		<comments>http://tspycher.com/chaning-ip-on-an-aix-system/#comments</comments>
		<pubDate>Wed, 20 Oct 2010 12:58:54 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Howto]]></category>
		<category><![CDATA[Technisches]]></category>

		<guid isPermaLink="false">http://tspycher.com/?p=286</guid>
		<description><![CDATA[A friend of mine asked for how to change the IP on an IBM AIX System without Smitty or smit. It took some minutes playing around on the system, but finally i figured out how to change basic network settings. First of all you should query the system for possible attributes. After that you can [...]]]></description>
			<content:encoded><![CDATA[<p>A friend of mine asked for how to change the IP on an IBM AIX System without Smitty or smit. It took some minutes playing around on the system, but finally i figured out how to change basic network settings.</p>
<p>First of all you should query the system for possible attributes. After that you can change these settings and make them permanent.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">bash</span><span style="color: #666666; font-style: italic;"># lsattr -El en0</span>
alias4                      IPv4 Alias including Subnet Mask           True
alias6                      IPv6 Alias including Prefix Length         True
arp           on            Address Resolution Protocol <span style="color: #7a0874; font-weight: bold;">&#40;</span>ARP<span style="color: #7a0874; font-weight: bold;">&#41;</span>          True
authority                   Authorized Users                           True
broadcast                   Broadcast Address                          True
mtu           <span style="color: #000000;">1500</span>          Maximum IP Packet Size <span style="color: #000000; font-weight: bold;">for</span> This Device     True
netaddr       192.168.1.99   Internet Address                           True
netaddr6                    IPv6 Internet Address                      True
netmask       255.255.255.0 Subnet Mask                                True
prefixlen                   Prefix Length <span style="color: #000000; font-weight: bold;">for</span> IPv6 Internet Address    True
remmtu        <span style="color: #000000;">576</span>           Maximum IP Packet Size <span style="color: #000000; font-weight: bold;">for</span> REMOTE Networks True
rfc1323                     Enable<span style="color: #000000; font-weight: bold;">/</span>Disable TCP RFC <span style="color: #000000;">1323</span> Window Scaling True
security      none          Security Level                             True
state         up            Current Interface Status                   True
tcp_mssdflt                 Set TCP Maximum Segment Size               True
tcp_nodelay                 Enable<span style="color: #000000; font-weight: bold;">/</span>Disable TCP_NODELAY Option          True
tcp_recvspace               Set Socket Buffer Space <span style="color: #000000; font-weight: bold;">for</span> Receiving      True
tcp_sendspace               Set Socket Buffer Space <span style="color: #000000; font-weight: bold;">for</span> Sending        True
<span style="color: #c20cb9; font-weight: bold;">bash</span><span style="color: #666666; font-style: italic;"># chdev -l en0 -a netaddr=192.168.1.100 </span>
&nbsp;
<span style="color: #c20cb9; font-weight: bold;">bash</span><span style="color: #666666; font-style: italic;"># lsattr -El inet0</span>
authm         <span style="color: #000000;">65536</span>                       Authentication Methods              True
bootup_option no                          Use BSD-style Network Configuration True
gateway                                   Gateway                             True
<span style="color: #c20cb9; font-weight: bold;">hostname</span>      thisismyname                      Host Name                           True
rout6                                     IPv6 Route                          True
route         net,-hopcount,<span style="color: #000000;">0</span>,,<span style="color: #000000;">0</span>,192.168.1.254 Route                               True
<span style="color: #c20cb9; font-weight: bold;">bash</span><span style="color: #666666; font-style: italic;"># chdev -l inet0 -a route=0,192.168.1.1</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/chaning-ip-on-an-aix-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iBank::Finanzapplikation für OSX/iPhone</title>
		<link>http://tspycher.com/ibankfinanzapplikation-fur-osxiphone/</link>
		<comments>http://tspycher.com/ibankfinanzapplikation-fur-osxiphone/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 14:00:37 +0000</pubDate>
		<dc:creator>Thomas Spycher</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Application Review]]></category>
		<category><![CDATA[Business]]></category>
		<category><![CDATA[Technisches]]></category>
		<category><![CDATA[iBank]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[osx]]></category>

		<guid isPermaLink="false">http://newblog.spychernet.com/?p=184</guid>
		<description><![CDATA[Es gibt tonnenweise Finanzapplikationen auf dem Markt. Viele sind kompliziert, bieten keine Möglichkeit für die Synchronisation mit dem iPhone etc. Es ist schwer diesbezüglich eine Entscheidung zu treffen. iBank kostet zwar etwas, aber es deckt alle Needs ab&#8230; Die Applikation läuft nur auf OSX, bindet sich dort aber nahtlos ein. Die Oberfläche ist Apple klassisch, [...]]]></description>
			<content:encoded><![CDATA[<p>Es gibt tonnenweise Finanzapplikationen auf dem Markt. Viele sind kompliziert, bieten keine Möglichkeit für die Synchronisation mit dem iPhone etc. Es ist schwer diesbezüglich eine Entscheidung zu treffen. iBank kostet zwar etwas, aber es deckt alle Needs ab&#8230;<span id="more-184"></span></p>
<p><a href="http://newblog.spychernet.com/wp-content/upload/2009/12/ibank_logo1.png" rel="lightbox[184]"><img class="aligncenter size-medium wp-image-192" title="ibank_logo" src="http://newblog.spychernet.com/wp-content/upload/2009/12/ibank_logo1-178x200.png" alt="ibank_logo" width="178" height="200" /></a></p>
<p>Die Applikation läuft nur auf OSX, bindet sich dort aber nahtlos ein. Die Oberfläche ist Apple klassisch, sauber strukturiert und man findet sich sehr schnell zu recht. Budgeting, geplante Transaktionen und Synchronisation mit MobileME etc sind nur ein paar der vielen Funktionen. Speziell gut gefällt mir die iPhone Applikation. Diese erlaubt es unterwegs Buchungen zu erfassen und zu bearbeiten. Ebenfalls hat man immer einen Überblick über die aktuellen Kontostände.</p>
<p>Kurz und knapp. Wer einen Mac besitzt und seine Finanzen organisieren möchte, kommt um diese Applikation nicht rum&#8230;</p>
<p>Mehr Informationen <a href="http://www.iggsoftware.com/ibank/" target="_self">hier</a>.</p>
<p><a href="http://newblog.spychernet.com/wp-content/upload/2009/12/budget.jpg" rel="lightbox[184]"><img class="alignleft size-thumbnail wp-image-193" title="budget" src="http://newblog.spychernet.com/wp-content/upload/2009/12/budget-150x150.jpg" alt="budget" width="150" height="150" /></a> <a href="http://newblog.spychernet.com/wp-content/upload/2009/12/register.jpg" rel="lightbox[184]"><img class="alignleft size-thumbnail wp-image-194" title="register" src="http://newblog.spychernet.com/wp-content/upload/2009/12/register-150x150.jpg" alt="register" width="150" height="150" /></a> <a href="http://newblog.spychernet.com/wp-content/upload/2009/12/accounts.png" rel="lightbox[184]"><img class="alignleft size-thumbnail wp-image-195" title="accounts" src="http://newblog.spychernet.com/wp-content/upload/2009/12/accounts-150x150.png" alt="accounts" width="150" height="150" /></a> <a href="http://newblog.spychernet.com/wp-content/upload/2009/12/spending.png" rel="lightbox[184]"><img class="alignleft size-thumbnail wp-image-196" title="spending" src="http://newblog.spychernet.com/wp-content/upload/2009/12/spending-150x150.png" alt="spending" width="150" height="150" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tspycher.com/ibankfinanzapplikation-fur-osxiphone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

