<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		
		<title>MOC Systems Blog</title>
		<link>http://www.mocsystems.com/</link>
		<description>Sidste nyt fra MOC Systems</description>
		<language>en</language>
		<image>
			<title>MOC Systems Blog</title>
			<url>http://www.mocsystems.com/EXT:tt_news/ext_icon.gif</url>
			<link>http://www.mocsystems.com/</link>
			<width></width>
			<height></height>
			<description>Sidste nyt fra MOC Systems</description>
		</image>
		<generator>TYPO3 - get.content.right</generator>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		
		
		
		<lastBuildDate>Tue, 29 Jun 2010 16:53:00 +0200</lastBuildDate>
		
		
		<item>
			<title>The new MOC Systems hosting setup.</title>
			<link>http://www.mocsystems.com/blog/article/the-new-moc-systems-hosting-setup/</link>
			<description>I am writing this article for two reasons.The first is that i wish to share my observations and the...</description>
			<content:encoded><![CDATA[<p class="bodytext">I am writing this article for two reasons.<br />The first is that i wish to share my observations and the plan for the future of our hosting setup, <br />The second is to open up for any and all comments to the design.<br /><br /><b>The old setup</b><br />The old setup is what i think is pretty standard.<br />We have a bunch of servers, each working on their own with the basic components;<br />Webserver, PHP, SMTP-daemon, FTP-server and Database server, all on the same box.<br />Some are on a virtual server, some run bare-metal.<br /><br /><b>The new setup</b><br />The new setup is something i have been planning and researching for a long time.<br />It started with the a basic idea of wanting complete N+1 infrastructure. <br />So we had a failover anytime something would die.<br />This is not something we have experienced often, but the knowledge that it could happen is still there.<br /><br /><i>On virtualisation</i><br />We started trying to overcome this problem by moving to a virtual infrastructure.<br />We had some initial trouble getting everything working with virtualisation, and still have.<br />The biggest problem with virtualisation is that there is a noticeable performance degredation.<br />I think virtualisation is a great technology. <br />And for someone looking to save some money on running a company's internal servers on a pretty failsafe system, without a great need to scale, it's perfect.<br />But i think that for us, to run our most important service on, its wrong.<br /><br /><i>A different type of virtualisation</i><br />Basicly, we already have a point of virtualisation and seperation of workloads. Our virtual hosts in apache.<br />With this as our basis i have designed the new setup.<br />I want to split up everything on virtual hosts, and genereally seperate our primary service, web-hosting, out from everything else.<br />This will allow us to focus on the performance and stability of this service, and give it a layer of isolation.<br />To allow our webservers to shift workloads around and scale-up on the web-workload of a single site, we will be using a reverse caching proxy.<br />The caching is just a bonus, the real trick is in the proxy, which will send the request for any site to the correct webserver, based on what host is defined in the request.<br />Beyond the proxy, two other things are required for this setup to work.<br />All webservers must be able to access the files that make up the website.<br />This is accomplished somewhat simply by holding all files on a NAS.<br />The second item that is required is a non-local database.<br />Luckily MySQL allows network connections so we can place the database on a dedicated server which the webservers then connect to.<br /><br /><i>SQL clustering</i><br />Putting our MySQL servers on their own hardware has two advantages.<br />We don't have to deal with the MySQL performance killing IO of a SAN drive, and we can setup a failover system<br />that can handle MySQL easier. If we dont have to worry about other services on the same service.<br />The search for &quot;the one good solution&quot; to scaling MySQL performance while running Typo3 has not been easy.<br />I have looked at every type of high-availability and scaling method i could find for MySQL.<br />But all look like they have severe complications for the sites we run, and would require significant changes in how we connected to and use MySQL.<br />The solution that i think will win and prove itself as actually useful is in two parts.<br />The first is the high-availability element. This will be done by running a Multi-Master setup with a shared Multi-Master-Manager.<br />The way we then scale performance is a bit of a kludge, but the best way i could find. We scale out.<br />We will create several MySQL groups, consisting of two servers. An active and an inactive master.<br />And then we move sites from one server to the other when it becomes overcrowded.<br />The Multi-Master-Manager will handle the monitoring and switching of the active and inactive servers, if one is to fail.<br />It will also handle syncronisation so failover and failback should be automatic.<br /><br /><i>Other services</i><br />With the main focus of the services on a good stable platform, its time to look at the less critical stuff.<br />This is the services like FTP and email.<br />These have a very specific trait. They are for most of the time idle, and they then have sudden spikes of workloads.<br />And while a 1-2 second lag on a website can be really bad, its okay for FTP and a lag of 15 minuts or more is generally accepted for email, especially newsletters.<br />FTP is going to be handled very simply by assigning a group of sites file-access through a single FTP-server. <br />All the FTP-servers will be run on a virtual host.<br />Email has to be handled a bit differently. Here we can't just seperate on sites, but have to seperate on what type of email it is.<br />If a user just signed up for a services on a website, that user would expect the confirmation email to arrive near instantly.<br />But if you are sending out a newsletter to a large group of customers, you will probably not care if it's 15-30 minuts in transit.<br />We handle notification and normal hosted email services the same. <br />They are eather send from the webserver or the webmail server, and they go out directly.<br />Newsletter emails are handled quite a bit differently. We have any hosting customer add a header to their outgoing email when it is a newsletter.<br />This allows us to offload all the generated emails to an email server which will create a long queue of emails and then send them out as fast as possible. The time used to build the queue also allows the email server to group emails going to the same domain.<br />Both types of email servers will be run on virtual hosts.<br />For some customers we also have a third form of special service. They have a dedicated video conversion service.<br />As this shares the peak-load behavior of the other services mentioned here, they also run on virtual hosts.<br />With this setup we can share the resources of the servers who only have a peak-load, and we can still get a high fault-tolerance.<br /><br /><b>Our current level of deployment</b><br />So, how much of this have we actually deployed?<br />Well a good part of it.<br />The email-splitting and handling is well in place and working.<br />The first group of sites have been moved into a setup with redundant webservers, and a file server.<br />They are also running behind a reverse-proxy. With great results both in performance and stability.<br /><br />We also have some of our most demanding sites running behind the proxy. <br />Although this is not yet to use the failover ability, but to highten performance.<br />You can read the other blog post about the Varnish-cache proxy on this blog to get an idea of the performance boost it gives.<br /><br />We have also gotten the special video-conversion services moved to their own virtual hosts.<br /><br />We are also running some sites on a dedicated MySQL server and we have started the test-phase for the failover setup for MySQL.<br /><br /><br /><b>Expected project results</b><br />What we are already seeing as results from this project is two things.<br />More stability and better performance.<br />What I expect to get from this setup in the future is the folloing set of features.<br /><br />The ability to easily see where a performance problem is. As the services are isolated, its easier to spot.<br />F.X. A climbing load on the MySQL server will most likely mean theres a need for more MySQL muscle, or a problem with the way the database is used.<br /><br />The ability to easily respond to a performance problem by moving the problematic site to a new server in the group where its giving problems.<br />F.X. if a site is putting allot of load on its assigned webservers, we can easily give it more muscle by extending the range of servers which handle that site. Again without downtime. Equally if its a problem with MySQL load, a site can be moved to a new server. <br />Although this would give downtime.<br /><br />The ability to take a webserver out of production, upgrade it, and put it back online. Without any downtime to any sites.<br />A failsafe, in case a database or webserver fails. And better stability for FTP, email and specialised services. <br /><br /><br />I hope this little intro to our new setup for our servers has been interesting.<br />All comments are ofcourse welcome.<br /><br /></p>]]></content:encoded>
			
			<author>kim@mocsystems.com</author>
			<pubDate>Tue, 29 Jun 2010 16:53:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>High perfomance TYPO3 with varnish proxy</title>
			<link>http://www.mocsystems.com/blog/article/high-perfomance-typo3-with-varnish-proxy/</link>
			<description>Take a look at how we managed to increase maximum peak performance at least 7 times using a reverse...</description>
			<content:encoded><![CDATA[<p class="bodytext">For the last year or so, we have had the privilege of hosting a subsite of the danish newspaper bt.dk. The site is targeted towards women, and is very heavy on graphics, most of it dynamically generated PNG's made with TYPO3s GIFBUILDER.&nbsp;</p>
<p class="bodytext">The site is fairly visited during normal hours, but we are experiencing a very large increase in traffic, when a link to the site is put on the frontpage of bt.dk. Usually we experience a few hundred connections during such peak-hours.</p>
<p class="bodytext">The site is not specifically built for this kind of load, and we had problems with very long response times.&nbsp;We actually had to limit Apache to a maximum of 125 simultaneous connections, in order to keep the server from spiralling into unresponsiveness.</p>
<p class="bodytext">Together with the agency that made the site, we decided to put a&nbsp;reverse proxy in front of the site to&nbsp;cache a lot of the requests. The site has no login features.</p>
<p class="bodytext">After investigating the market, we decided to go with Varnish, primarily because it is built for exactly this, and also because it had a straight forward configuration language.</p>
<p class="bodytext">&nbsp;</p>
<h2>The configuration</h2>
<p class="bodytext">We decided to go with a simple setup. We disrespect TYPO3's no-cache headers (sorry), and cache all HTML for 60 seconds even though the headers have a no-cache pragma. We decided that all image-material could have a longer lifetime, and thus cache it longer (about an hour).</p>
<p class="bodytext">Only GET-requests are cached, since we assume that a POST is probably the result of submitting a form, and we do not wish to cache this. Similarly we check if a typo3 backend cookie is present, and that will disable cache (except for images).</p>
<p class="bodytext">This setup, although simple, turns out to work very well for sites with no front-end login.</p>
<p class="bodytext">One last thing, we have a rule that checks for force-reload, not only will a force-reload disable cache for that request, but will also purge the cache, thus rebuilding it again. This way a TYPO3 editor can force re-caching of a certain page.&nbsp;</p>
<p class="bodytext">Of course the right solution is to make a small TYPO3 module that clears the varnish cache after a page is saved (or any other action&nbsp; that triggers clearing of TYPO3's internal cache). But for the sake of simplicity this is omitted here. </p>
<p class="bodytext">A slightly modified version of our basic configuration file is attached to this blog post.</p>
<p class="bodytext">&nbsp;</p>
<h2>Results</h2>
<p class="bodytext">We have been fairly surprised with the result. We have seen a very large increase in perfomance, both under high load, but also for single page-impressions. Since the images are cached (and correct Expires-headers are set) the page loads very quickly compared to before the cache setup.</p>
<p class="bodytext">Today the setup was tested even further. An article was put on the very top of bt.dk, and apparently is was very popular. We were alerted that the number of incoming connections on the proxy were a constant 700  and increasing. Looking at the graphs, we could see that neither the proxy nor the actual TYPO3 sever was under any load. Both had a load below 0.5, and a quick investigation showed that the site&nbsp;performed well within the limits of responsiveness.</p>
<p class="bodytext">We can conclude that the setup is really working, and that we&nbsp;would probably be capable of handling a much higher load than the one we experienced.</p>
<p class="bodytext">&nbsp;</p>]]></content:encoded>
			<category>TYPO3</category>
			<category>English</category>
			
			<author>janerik@mocsystems.com</author>
			<pubDate>Mon, 07 Dec 2009 20:53:00 +0100</pubDate>
			<enclosure url="http://www.mocsystems.com/uploads/media/setup.txt" length ="2392" type="text/plain" />
		</item>
		
		<item>
			<title>Inspiration from the Fronteers 2009 conference</title>
			<link>http://www.mocsystems.com/blog/article/inspiration-from-the-fronteers-2009-conference/</link>
			<description>Back from the Fronteers 2009 conference in Amsterdam, I have decided to share my notes and thoughts...</description>
			<content:encoded><![CDATA[<p class="bodytext">The conference itself was something new for me, usually the conferences I attend are very TYPO3 specific, and this was targeted at frontend developers, i.e. CSS, HTML and JavaScript. And the first thing to say about the conference is that the lineup was incredible.&nbsp; Douglas Crockford (JavaScript guru), John Resig (author of jQuery), Steve sounders (inventor of YSlow), Christian Heilmann (Yahoo maps etc) and many other very, very talented speakers where lined up for the conference.</p>
<p class="bodytext">I can highly recommend the conference to everyone even remotely interested in HTML, CSS and/or JavaScript. And Amsterdam is always a nice city:)</p>
<h3>Inspiration</h3>
<p class="bodytext">Here is the list of things I found very interesting. I'll try to explain some of them in more details, but if you are just looking for the lo-down og concepts, prorams and URL's I need to check out, here it is</p><ul><li> Yahoo query language</li><li> Aptimize WAX (No it's not a hair product)</li><li> Box model in CSS3:&nbsp; <a href="http://www.the-haystack.com/presentations/fronteers09/" target="_blank" >http://www.the-haystack.com/presentations/fronteers09/</a></li><li> Sprite ME</li><li>Goggles Page Speed</li><li>Showslow</li><li> ADSafe</li><li> CAVA</li><li>Object capability pattern</li><li> TTf2eot</li><li>Snook.ca</li><li>FontForge</li><li>Batik</li><li>Font squirrel</li><li> Scriptv2.com</li><li> Github </li></ul><h3>Yahoo query language</h3>
<p class="bodytext">Christian Heilmann from Yahoo, gave a very good talk with the intriguing name &quot;Of Hamsters, Feature creatures and missed opportunities&quot;. Besides the funny title, and some good points about programmers hamstring code, not wanting to reuse others code, and the tendency to always add more features to your otherwise simple programs, he demonstrated a very cool thing: The Yahoo query language. To make is short, it's a webservice (REST) that allows you to query a long line of other Webservices/APIs (like flickr, RSS feeds and even HTML) through a SQL like syntax. The very cool thing is that you can combine the queries, so you can select Geotags from Amsterdam, then query Flick with you found geotag Ids' and fetch all information about them, all in one simple query to the Yahoo webservice. </p>
<p class="bodytext">The codesample below is stolen from Christians talk which fetches images from Flickr with geotag that contains Amsterdam.</p>
<p class="bodytext">SELECT * from flickr.photos.search where woe_id IN ( SELECT woeid FROM geo.places where text=&quot;Amsterdam&quot; )</p>
<p class="bodytext">Extremely cool way to do even very complicated mashups. And if the service you need is not provided, you can even write your own little wrapper that makes it possible to query your source through the YQL.</p>
<p class="bodytext">Take a look at <a href="http://developer.yahoo.com/yql/" target="_blank" >developer.yahoo.com/yql/</a> here.</p>
<p class="bodytext">Slides from the presentation: <a href="http://www.wait-till-i.com/2009/11/05/of-hamsters-feature-creatures-and-missed-opportunities-my-talk-at-fronteers-2009/" target="_blank" >http://www.wait-till-i.com/2009/11/05/of-hamsters-feature-creatures-and-missed-opportunities-my-talk-at-fronteers-2009/</a> </p>
<p class="bodytext">Twitter: @codepo08</p>
<h3>Even faster websites </h3>
<p class="bodytext">Steve Souders is probably most famous for his firebug extension YSlow developed while he was at Yahoo. He is now at Google, but is apparently not involved in the development of the Google YSlow equivalent &quot;Page speed&quot;.&nbsp; Steve is also the author of a very good book: &quot;High performance websites&quot; and the sequel &quot;Even faster websites&quot; (together with Nicole Sullivan). </p>
<p class="bodytext">One of the cool things he presented was a small tool he made: SpriteME which will take your website, detect which background images could benefit from being part of a Sprite, send a request to a webservice to make the sprites, inject the needed CSS in your page, ready for you to inspect. </p>
<p class="bodytext">If you have ever tried spending hours producing the needed sprites for a website, you will realize how cool this little tool is.</p>
<p class="bodytext">Take a look here: <a href="http://www.stevesouders.com" target="_blank" >http://www.stevesouders.com/</a> </p>
<h3>Object oriented CSS</h3>
<p class="bodytext">Now this sounds llike a weird title, since I would argue that there is no such thing as Object Oriented CSS. This talk by Nicole Sullivan was really an eye-opener for me. I realized that CSS is a topic where I can really learn a lot, and I need to improve my skills with an order of magnitude. </p>
<p class="bodytext">What Nicole argued was that you can really use a lot of the concepts from OOP when writing CSS, re-using code, encapsulation etc. She gave a brief introduction to the cascade of CSS, and continued with explaining how specificity works in CSS. This is something I, and every other at MOC should know by heart. </p>
<p class="bodytext">One of the key points of her talk (http://slideshare.net/stubbornella/)&nbsp; were to make proper use of the cascade, don’t style specifically for a single module, never use id (i.e. # in CSS) unless you really, really know that you will ever only need one instance. Lots of cool points in her presentation.</p>
<p class="bodytext">Twitter: @stubbornella</p>
<h3>Github</h3>
<p class="bodytext">Apparently I'm really behind on this. Without exception all links to code was not SourceForge, SVN, CVS&nbsp; etc, but instead all links where to GitHub. I need to check this out...</p>
<h3>Object capability pattern</h3>
<p class="bodytext">Douglas Crockford gave a very good talk about security in JavaScript, and one of his key points was that we need to alter the way objects communicate with each other in order to make JavaScript more secure. He briefly presented the Object Capability Pattern, which looked very cool, also for other OOP programming languages. Look out for this, and for version 5 of the ECMAScript specification due this year.</p>
<p class="bodytext">&nbsp;</p>]]></content:encoded>
			
			
			<pubDate>Sat, 07 Nov 2009 18:44:00 +0100</pubDate>
			
		</item>
		
		<item>
			<title>T3CON09 set fra en forretningsvinkel</title>
			<link>http://www.mocsystems.com/blog/article/t3con09-set-fra-en-forretningsvinkel/</link>
			<description>Sidste uge var Jan-Erik, Christian og jeg en tur i Tyskland for at deltage i den årlige europæiske...</description>
			<content:encoded><![CDATA[<p class="bodytext">Sidste uge var <a href="medarbejdere/jan-erik-revsbech/" title="Opens internal link in current window" class="internal-link" >Jan-Erik</a>, <a href="medarbejdere/christian-jul-jensen/" title="Opens internal link in current window" class="internal-link" >Christian</a> og <a href="medarbejdere/jesper-scheuer-nielsen/" title="Opens internal link in current window" class="internal-link" >jeg</a> en tur i Tyskland for at deltage i den årlige europæiske TYPO3 konference - T3CON. Konferencen foregik i år i Frankfurt og strakte sig over tre dage - torsdagen med forskellige tutorials og fredag og lørdag som egentlig konference med tre forskellige spor: Business, development og orientation.</p>
<p class="bodytext">Selvom jeg har været i TYPO3 miljøet i mange år efterhånden, så var det første gang jeg deltog i konferencen, men efter en meget vellykket og informativ konference må jeg konkludere, at det&nbsp;at det&nbsp;ikke bliver&nbsp;den sidste.</p>
<p class="bodytext">Vi havde valgt at springe torsdagen tutorials over og ankom derfor sent torsdag eftermiddag og fik der lejlighed til at mødes med gamle venner og bekendte&nbsp;fra TYPO3 miljøet over det lokale udbud af&nbsp;af både vådt og tørt.</p>
<p class="bodytext"><b>TYPO3 5.0</b><br />Fredagen startede fint ud med et første smugkig på det&nbsp;nye brugerinterface til TYPO3 version 5.0. Det ser utroligt interessant ud og arbejder med en sammensmeltning af backend og frontend som - ikke mindste for mindre frekvente brugere - vil&nbsp;give et løft i brugervenlighed og arbejde med&nbsp;systemet. Således er det tanken at de funktioner som man i dag kender fra backend'en kommer til at ligge øverst i browservinduet, mens indholdet vil fylde resten af vinduet og i store træk vil ligne det som en besøgende på websitet vil se - bare med mulighed for at redigere.</p>
<p class="bodytext">Af andre spændende ting i det nye interface kan nævnes auto-save, en mere integreret versionshistorik/undo-mulighed og en mere bred tilgang til hvad &quot;indhold&quot; er. </p>
<p class="bodytext">Du kan læse om det nye interface på <a href="http://typo3.org/teams/usability/t35ui/" title="Læs mere om det nye TYPO3 5.0 UI" target="_blank" class="external-link-new-window" >TYPO3.org</a>&nbsp;(se specielt nederst under Content View).</p>
<p class="bodytext"><b>TYPO3 overvågning</b><br />Et andet spændende indslag fredag var et indlæg om TYPO3 monitorering. To nordtyske TYPO3 virksomheder har i fællesskab lavet en løsning de kalder &quot;Caretaker&quot;. Løsningen består af en &quot;server&quot; som egentlig bare er en TYPO3 installation med Caretakers server-modul installeret, samt et &quot;klient&quot;-modul der installeres på de TYPO3 instanser der skal overvåges.</p>
<p class="bodytext">Set i en kontekst hvor mange virksomheder er helt afhængige af uforstyrret drift af&nbsp;deres&nbsp;websites - det være sig internet eller intranet - så synes jeg at det er&nbsp;en rigtig god idé med en specialiseret løsning til TYPO3 der kan overvåge utallige sites på&nbsp;så forskellige områder som TYPO3 version, extension versioner, sikkerhedsproblemer, tilgængelighed af frontend og Nagios (overvågningssystem) scripts.</p>
<p class="bodytext">Rigtigt spændende - jeg glæder mig til at se den endelige løsning.</p>
<p class="bodytext"><b>iPhone app</b><br />Som iPhone bruger var det også med stor interesse at jeg kunne følge en præsentation af en ny iPhone app. der gør det muligt at redigere forskellige former for TYPO3 elementer. Løsningen&nbsp;er i første omgang i stand til at redigere nyheder ved at man dels henter applikationen der simpelthen hedder &quot;TYPO3&quot;&nbsp;på app store og dels installere extension'en typo3_webservice&nbsp;på den ønskede TYPO3 installation.</p>
<p class="bodytext">Konceptet er i fascinerende i sin relative enkelthed og samtidig en god løsning på at lægge nyheder på sit website uden at skulle sidde foran computeren. Læs mere om løsningen og prøv en demo&nbsp;<a href="http://www.naw.info/en/skills-and-services/typo3-web-service-iphone-app.html" title="Opens external link in new window" target="_blank" class="external-link-new-window" >her</a>.</p>
<p class="bodytext"><b>Mere 5.0, FLOW3, kundecases og et venskabligt battle med Drupal om lørdagen</b></p>
<p class="bodytext">Lørdagen startede jeg ud med at høre&nbsp;Robert Lemkes tale om den nye contentmodel for 5.0, hvorefter jeg deltog i en orientering omkring FLOW3. Mest interessant for mig var dog at høre 2 forretningscases om hhv. pladeselskabet EMI's brug af TYPO3 til at udforme ikke alene indhold men også design til et væld af forskellige kunstner-specifikke nyhedsbreve, samt en integration imellem TYPO3 og ERP-systemet SAP. Endelig havde jeg lejlighed til at være tilskuer til et venskabeligt &quot;battle&quot; imellem TYPO3 og Drupal. Det var interessant at høre hvordan andre open source CMS communities fungerer.</p>
<p class="bodytext">Alt i alt havde jeg et godt udbytte af at deltage i konferencen, og kan anbefale det til såvel&nbsp;leverandører som kunder der ønsker at følge med i hvad der sker indenfor TYPO3 verdenen.</p>]]></content:encoded>
			
			
			<pubDate>Sat, 19 Sep 2009 12:18:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Running FLOW3 on debian-based systems.</title>
			<link>http://www.mocsystems.com/blog/article/running-flow3-on-debian-based-systems/</link>
			<description>FLOW3 is the cutting edge php development framework developed by the TYPO3 Community. It brings...</description>
			<content:encoded><![CDATA[<p class="bodytext">We're in Berlin for the <a href="http://t3con08.typo3.org/" target="_blank" class="external-link-new-window" >T3CON08</a> at the moment and I have been able to catch up on the development of <a href="http://flow3.typo3.org" target="_blank" class="external-link-new-window" >FLOW3</a> which I haven't had time to do for the last months.</p>
<p class="bodytext">Lots of cool stuff has happened: Karsten did a very cool implementation of the persistence framework, so finally it is now possible to store stuff, which of course is a prerequisite for making real webapplications and not just play around with the framework. Also Andi has made the AOP-based security framework that looks really promising. So all in all, while FLOW3 is still in it's early development phase, things are really starting to look good and usable. I can't wait to play around with the current source and hopefully find some time to participate in development again.</p>
<p class="bodytext">Anyway, one of the reasons that I haven't been running the framework for a while is that the guys in Lübeck decided to be first-movers and require PHP 5.3, which is still only in alpha. The main reason for this is the support for namespaces.</p>
<p class="bodytext">It turns out that it is not the easiest thing to actually get PHP 5.3 running. Obviously there are no packages for any system yet, you have to compile it yourself.</p>
<p class="bodytext">The PHP make script assumes some different stuff about the apache environment which is not true for debian-based systems, so there is a few tricks you need to do.</p>
<p class="bodytext">I found this <a href="http://phpmelb.org/index.php?option=com_content&amp;view=article&amp;id=69" target="_blank" class="external-link-new-window" >tutorial about installing PHP 5.3 on ubuntu</a> which works pretty well.</p>
<p class="bodytext"><i>Update (2008-10-13): One important thing is to use the alpha1 release from <a href="http://downloads.php.net/johannes/" target="_blank" >downloads.php.net/johannes/</a>, later versions produces fatal errors when running FLOW3.<br /></i>  </p>
<p class="bodytext">Just a few comments to this: I found it kind of annoying that you have to trick the PHP make by adding fake apache config to httpd.html. I looked into the issue and it seems that there is really no way to get around this.</p>
<p class="bodytext">The other thing is that I really suggest that you use <a href="http://www.asic-linux.com.mx/~izto/checkinstall/" target="_blank" class="external-link-new-window" >checkinstall</a> instead of 'make instal&#314;'. This will generate a debian package to install, keeping your system clean. I didn't succed in installing it this way unfortunately, so right now I have no package to offer for you, but you should defintely try it out first.</p>
<p class="bodytext">Also I had to install the libtool package.</p>
<p class="bodytext">After following the tutorial, I just had to restart apache, an <a href="http://flow3.typo3.org/download/" target="_blank" class="external-link-new-window" >check out FLOW3</a> from <a href="https://svn.typo3.org/FLOW3/Distribution/trunk/" target="_blank" class="external-link-new-window" >subversion</a>, and voila it was running.</p>
<p class="bodytext">BTW: We are now the official FLOW3 Coffee Sponsor :)</p>]]></content:encoded>
			<category>TYPO3</category>
			<category>English</category>
			
			<author>christian@mocsystems.com</author>
			<pubDate>Sat, 11 Oct 2008 10:51:00 +0200</pubDate>
			
		</item>
		
		<item>
			<title>Domain driven design framework released</title>
			<link>http://www.mocsystems.com/blog/article/domain-driven-design-framework-released/</link>
			<description>I'm very proud to announce that the first stable version of our domain driven design framework is...</description>
			<content:encoded><![CDATA[<p class="bodytext">Today we released the framework that is used at MOC Systems for writing enterprise webapplications.</p>
<p class="bodytext">The framework is a php library that provides the programmer with at way to work with domain model in an easy way.&nbsp; We have worked on it for about a year and a half, and used it in many applications ranging from very small extensions to large scale web-applications.</p>
<p class="bodytext">Usually the hardest, and sometimes most tedious task, when applying domain driven design, is the storage of objects, and mapping objects to database tables, but now our problems (at least regarding this issue)&nbsp;are solved.</p>
<p class="bodytext">The MOC DB Framework automatically generates a full domain model based on your database layout. The generated code lets you concentrate the manpower in understanding the domain of your project/client and coming up with a good model. The code for persistance is created for you automatically. </p>
<p class="bodytext">The framework lets you create your domain model yourself, and just use the framework for the persistance part (storing objects to the database).</p>
<p class="bodytext">Attached to this post is the presentation I gave at the TYPO3 developer days 2008 in Hamburg about MOC Dblib.</p>
<p class="bodytext">The extension can be downloaded from TER. Extension key: moc_dblib</p>
<p class="bodytext">We released another extension at the same time: moc_dblib_unittest which contains the unittests for the framework. Do not install this on production websites, as it creates new pages during the unittests!</p>]]></content:encoded>
			<category>TYPO3</category>
			<category>Programmering</category>
			
			<author>janerik@mocsystems.com</author>
			<pubDate>Thu, 08 May 2008 20:19:00 +0200</pubDate>
			<enclosure url="http://www.mocsystems.com/uploads/media/Domain_Models_with_TYPO3_v2.pptx" length ="122418" type="text/plain" />
		</item>
		
		<item>
			<title>TYPO3 on Google Summer of Code [updated]</title>
			<link>http://www.mocsystems.com/blog/article/typo3-on-google-summer-of-code-updated/</link>
			<description>This year we (TYPO3 core developers) managed for TYPO3 to apply for participating in the Google...</description>
			<content:encoded><![CDATA[<p class="bodytext">This year we (TYPO3 core developers) managed for TYPO3 to apply for participating in the <a href="http://code.google.com/soc/2008/" target="_blank" class="external-link-new-window" >Google Summer of Code</a>. For some reason they have a very short window for applications for mentoring projects, and we missed the last years.</p>
<p class="bodytext">But this year the application will be there, and hopefully TYPO3 will be accepted. I volunteered for mentoring development. And suggested an <a href="http://openid.net" target="_blank" class="external-link-new-window" >OpenID</a> <a href="http://typo3.org/development/gsoc/ideas/openid-for-typo3-febe/" target="_blank" class="external-link-new-window" >implementation</a>, that I wanted to do for a year, but haven't had the time for. So hopefully this will be the chance.</p>
<p class="bodytext"><em>23-03-03:</em></p>
<p class="bodytext">So we didn't make it, too bad, and very disappointing. I hope the great ideas aren't wasted, but that we find some other way to make them happen</p>]]></content:encoded>
			
			<author>christian@mocsystems.com</author>
			<pubDate>Wed, 12 Mar 2008 13:28:00 +0100</pubDate>
			
		</item>
		
		<item>
			<title>Seminar om TYPO3 hos SAMDATA i Århus</title>
			<link>http://www.mocsystems.com/blog/article/seminar-om-typo3-hos-samdata-i-aarhus/</link>
			<description>Mandag den 21. april skal jeg holde et 3 timers seminar om TYPO3 hos SAMDATA i Århus. Her er en...</description>
			<content:encoded><![CDATA[<p class="bodytext">Mandag den 21. april skal jeg holde et 3 timers seminar om TYPO3 hos SAMDATA i Århus. Her er en lille beskrivelse: <br /><br />&quot;TYPO3 er et danskstartet php-baseret open-source Content Mangement System, som gennem de sidste 10 år har udviklet sig til at være et af verdens førende CMS. TYPO3 bruges i både enterprise-konfigurationer og i standard websites, ligesom det anvendes til både intra- og extranet, samt som framework til applikationsudvikling.<br /><br />Christian vil tage os igennem &quot;past, present &amp; future&quot;, vi skal høre historien om systemets udvikling, have en hands-on præsentation af systemet og tage et kig ind i version 5.0 som er en komplet genskrivning af systemet som tager helt nye skridt indenfor softwarearkitektur i PHP-verdenen.<br /><br />Christian Jul Jensen har arbejdet med TYPO3 siden dets spæde start i slutningen af 90'erne, er en del af kerneudviklingsgruppen, medstifter af The TYPO3 Association og driver til daglig en kosnulentvirksomhed baseret på systemet.&quot;<br /><br />Jeg ved ikke om det kun er for medlemmer, men man kan snart læse mere om det her: <a href="https://www.sam-data.dk/aarhus/start/default.asp" target="_blank" >https://www.sam-data.dk/aarhus/start/default.asp</a> under <br />Aktiviteter.<br /><br /></p>]]></content:encoded>
			<category>TYPO3</category>
			<category>Dansk</category>
			
			
			<pubDate>Thu, 21 Feb 2008 11:24:27 +0100</pubDate>
			
		</item>
		
		<item>
			<title>Is good manners extraordinary in support?</title>
			<link>http://www.mocsystems.com/blog/article/is-good-manners-extraordinary-in-support/</link>
			<description>Why is good manners and normal courtesy not the the norm when requesting support?</description>
			<content:encoded><![CDATA[<p class="bodytext">Recently I was at a reception&nbsp;held by&nbsp;one of&nbsp;our customers (their webmaster&nbsp;had a 40 year anniversary!), and at one point she told me that she was very happy with our support. Being CEO of a small company, I know how hard it is to provide decent support, the volume is not high enough for a dedicated support division, so the support has to be done by developers which are then interrupted in their work.</p>
<p class="bodytext">So I was very glad to hear that, and asked into why she was so happy with it, expecting to hear something like short respondtimes, fast solution times or other of the stanard parameters upon which support is normally measured. Instead I got an upexpected answer: She was happy because we always spoke to her in a decent manner.</p>
<p class="bodytext">As glad as I am to hear that our empolyees speak nice to her, I consider this part of decent behavoir, and I would expect nothing less of anyone who worked for me. This made me think, is it really something exceptionel when support employess speak nice to (paying) customers? I hope not, but it might actually be the case.</p>
<p class="bodytext">I will certanly have this in mind the next time I consider what we can do to improve support: Make sure that there is enough time to provide decent support.</p>]]></content:encoded>
			<category>English</category>
			
			<author>janerik@mocsystems.com</author>
			<pubDate>Sun, 03 Feb 2008 12:31:00 +0100</pubDate>
			
		</item>
		
		<item>
			<title>https with PHP5</title>
			<link>http://www.mocsystems.com/blog/article/https-with-php5/</link>
			<description>When using https connections through PHP5s stream wrappers, PHP needs to be configured with...</description>
			<content:encoded><![CDATA[<p class="bodytext">When using https connections through PHP5s stream wrappers, PHP needs to be configured with ssl.<br /><br />This makes a lot of sense of course, and if you get an errormessage&nbsp; similar to this: &quot;Unable to find the wrapper &quot;https&quot; - did you forget to enable it when you configured PHP?&quot; you should be hinted in the right direction.<br /><br />I was and I fired up phpinfo() to look at our configuration which had lots of OpenSSL entries in it, so I started searching the net, and found out that OpenSSl needed to be statically linked in PHP4 for this to work.<br /><br />Since it is kind of a hassle I tried out other solutions (phpnuke on curl instead of the built in SoapClient), but got annoyed with this, so I started looking into re-compiling Apache with a static link, while I was staring at phpinfo again I suddenly realized that all the entries regarding OpenSSL was related to apache and not php.<br /><br />So I looked again and PHP was not configured with '--with-ssl', we did that and voila, everything worked like expected.<br /><br />Time well wasted on a problem that I was actually given the answer to in the error messag :(<br /><br />Hope this saved you some time!</p>]]></content:encoded>
			
			
			<pubDate>Thu, 24 Jan 2008 15:55:51 +0100</pubDate>
			
		</item>
		
	</channel>
</rss>