<?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>Crucial Paradigm Australia Official Blog</title>
	<atom:link href="http://www.crucial.com.au/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.crucial.com.au/blog</link>
	<description></description>
	<lastBuildDate>Tue, 24 Jan 2012 20:36:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>End of Year Update (2011) and Upcoming Improvements (2012)</title>
		<link>http://www.crucial.com.au/blog/2011/12/30/end-of-year-update-2011-and-upcoming-improvements-2012/</link>
		<comments>http://www.crucial.com.au/blog/2011/12/30/end-of-year-update-2011-and-upcoming-improvements-2012/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 03:42:21 +0000</pubDate>
		<dc:creator>Aaron Weller</dc:creator>
				<category><![CDATA[Crucial Updates]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=1035</guid>
		<description><![CDATA[It&#8217;s been another great year thanks to the support of all our customers, and the great work by the Crucial team. We really have taken some leaps and bounds over the past 12 months with significant improvements to our support and service offerings. We are very excited about the upcoming year, and providing a new [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been another great year thanks to the support of all our customers, and the great work by the Crucial team. We really have taken some leaps and bounds over the past 12 months with significant improvements to our support and service offerings.</p>
<p>We are very excited about the upcoming year, and providing a new round of great improvements to you!<span id="more-1035"></span></p>
<p><strong>Some of the achievements over the past year (Jan-Dec 2011):</strong></p>
<ul>
<li>Additional 10 staff added (with a wide range of skills: Systems Administrators, Developers, Testers, and Tech Support).</li>
<li>Deployed an industry leading, highly available Cloud platform based on enterprise HP Blade &amp; SAN setup &#8211; after 9 months building, developing our own in-house built cloud platform, and extensively testing it.</li>
<li>Deployed a whole new client management (Control.crucial.com.au) area to simplify and improve management of ordering and billing.</li>
<li>New products across the board which use the new highly available enterprise Cloud platform.</li>
<li>Took leaps and bounds in terms of improving customer service and set groundwork for continual improvement of the support levels we provide our customers:</li>
<ul>
<li>- Added over 1100 knowledgebase articles to our support desk, including over 1000 flash tutorials to help customers solve issues they might be facing.</li>
<li>- Improved internal training, and documentation to further teach new staff.</li>
<li>- Implemented a customer staff ticket rating system which allows each ticket and staff member to be rated after a ticket completion to help ensure high level of satisfaction is maintained, and further improved.</li>
<li>- Implemented more detailed quarterly customer survey.</li>
</ul>
<li>Some stats on support from Jan-Dec 2011 (all Tech Support tickets, 24 hours a day, 7 days a week, 365 days a year):</li>
<ul>
<li>- Average response time to tickets: 11.7 minutes</li>
<li>- Average resolution time of tickets: 75.69 minutes</li>
</ul>
<li>Average monthly uptime (across all services) for last 3 months:</li>
<ul>
<li>- September: 99.93%</li>
<li>- October: 99.97%</li>
<li>- November: 99.99%</li>
</ul>
<li>Migrated to a private cage in world class Equinix SY3 datacentre</li>
<li>Turned live an additional bandwidth carrier (NTT) with significantly improved global connectivity.</li>
</ul>
<p><strong>What&#8217;s coming up over the following year?</strong></p>
<ul>
<li>New Sydney office move (3 x the size of our current office, with ability to support our growth over the coming 1-2 years)</li>
<li>Further improvements on our Cloud platform &amp; Customer Control Area:</li>
<ul>
<li>- Automating more tasks</li>
<li>- Giving customers more control to their account, without having to submit a tech support ticket (self service)</li>
</ul>
<li>Further improvements on the Support front, with plans to streamline the support process through improved knowledgebase, streamlined support submission process, and few other options.</li>
<li>Further improved staff training, through formal certifications and more internal training sessions.</li>
<li>New and improved products.</li>
<li>Additional staff being added globally, with the first hires starting in January.</li>
<li>New company vision!</li>
</ul>
<p>Kind Regards,</p>
<p>Aaron Weller<br />
Managing Director<br />
Crucial Paradigm</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/12/30/end-of-year-update-2011-and-upcoming-improvements-2012/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Christmas Specials</title>
		<link>http://www.crucial.com.au/blog/2011/11/30/christmas-specials-2/</link>
		<comments>http://www.crucial.com.au/blog/2011/11/30/christmas-specials-2/#comments</comments>
		<pubDate>Tue, 29 Nov 2011 22:59:48 +0000</pubDate>
		<dc:creator>Ijan Kruizinga</dc:creator>
				<category><![CDATA[Promotions and Offers]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=1029</guid>
		<description><![CDATA[Ho ho ho, Don&#8217;t forget to use one of our great Christmas coupons when signing up! Web Hosting &#8211; &#8216;50HAS&#8216; and get 50% off your first invoice! Reseller Hosting &#8211; &#8216;75HAR&#8216; and get 75% off your first month! Windows/Linux Cloud VPS &#8211; &#8216;HAVPS75&#8216; and get 75% off your first month! Have a merry festive season! [...]]]></description>
			<content:encoded><![CDATA[<p>Ho ho ho,</p>
<p>Don&#8217;t forget to use one of our great Christmas coupons when signing up!</p>
<p>Web Hosting &#8211; &#8216;<strong>50HAS</strong>&#8216; and get 50% off your first invoice!</p>
<p>Reseller Hosting &#8211; &#8216;<strong>75HAR</strong>&#8216; and get 75% off your first month!</p>
<p>Windows/Linux Cloud VPS &#8211; &#8216;<strong>HAVPS75</strong>&#8216; and get 75% off your first month!</p>
<p><span id="more-1029"></span></p>
<p>Have a merry festive season!</p>
<p>From your friends at Crucial <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/11/30/christmas-specials-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>September 2011 Customer Survey Results</title>
		<link>http://www.crucial.com.au/blog/2011/11/24/september-2011-customer-survey-results/</link>
		<comments>http://www.crucial.com.au/blog/2011/11/24/september-2011-customer-survey-results/#comments</comments>
		<pubDate>Thu, 24 Nov 2011 09:39:47 +0000</pubDate>
		<dc:creator>Ijan Kruizinga</dc:creator>
				<category><![CDATA[Off The Press]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=1019</guid>
		<description><![CDATA[One of the main drivers of the success of Crucial is our customers. Recently we sent out a survey asking for feedback in relation to our services and support and I am happy to announce that the feedback we have received is positive. Click here for full details. Key Survey Results Technical Support: 82.2% of [...]]]></description>
			<content:encoded><![CDATA[<p>One of the main drivers of the success of Crucial is our customers. Recently we sent out a survey asking for feedback in relation to our services and support and I am happy to announce that the feedback we have received is positive.</p>
<p>Click here for full details.</p>
<p><span id="more-1019"></span></p>
<p><strong>Key Survey Results</strong></p>
<p><strong>Technical Support</strong>:</p>
<ul>
<li>82.2% of customers were Very Satisfied or Satisfied with the level of technical support they receive.</li>
</ul>
<p><strong>Sales and Accounts Support:</strong></p>
<ul>
<li>80.9% of customers were Very Satisfied or Satisfied with the level of support they receive.</li>
</ul>
<p><strong>Customer Expectations:</strong></p>
<ul>
<li>82.3% of customers said that Crucial meets their expectations as a hosting provider.</li>
<li>86.5% of customers said that they were satisfied with the product that they purchased from Crucial.</li>
<li>84.3% of customers said that they would recommend Crucial to their colleagues.</li>
</ul>
<p>This was a strong result given the following:</p>
<ul>
<li>We wanted to provide as much choice to our customers to provide us with open feedback to so the question responses available were Very Satisfied, Satisfied, Nether Satisfied or Dissatisfied, Dissatisfied and Very Dissatisfied.</li>
<li>Our customer growth from 2012 was around 97%, this was a challenge to manage while also maintaining a great level of service.</li>
<li>Crucial went through  a complete product change on release of the SAN and Blade Cloud environment which is powered by HP and Cisco.</li>
<li>We completed a data center migration from Equinix SY2 to our own private cage in Equinix&#8217;s new flagship facility named  SY3.</li>
</ul>
<p>Our focus in 2012 will be to continue to provide exceptional products and services to our customers and turn these good results in to 90%+. We will achieve this through  projects that have already been started and these include an overhaul of our support area, extensive additions to our Knowledge Base, Additional staff training and new staff members.</p>
<p>We look forward to a great 2012!</p>
<p>Ijan Kruizinga</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/11/24/september-2011-customer-survey-results/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crucial Paradigm is Hiring! &#8211; Data Center Technician / Systems Administrator</title>
		<link>http://www.crucial.com.au/blog/2011/10/28/crucial-paradigm-is-hiring-data-center-technician-systems-administrator/</link>
		<comments>http://www.crucial.com.au/blog/2011/10/28/crucial-paradigm-is-hiring-data-center-technician-systems-administrator/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 03:29:50 +0000</pubDate>
		<dc:creator>ross</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=1012</guid>
		<description><![CDATA[Hi Everyone, Crucial Paradigm is currently hiring! Crucial Paraidgm is looking for a server hardware savvy systems administrator who will be part of the first line of support in troubleshooting hardware and software issues with Crucial Paradigm’s global fleet of servers. * Permanent Position * Sydney, NSW based (Office in Surry Hills) The full job [...]]]></description>
			<content:encoded><![CDATA[<p>Hi Everyone,</p>
<p>Crucial Paradigm is currently hiring!</p>
<p>Crucial Paraidgm is looking for a server hardware savvy systems administrator who will be part of the first line of support in troubleshooting hardware and software issues with Crucial Paradigm’s global fleet of servers.</p>
<p>* Permanent Position<br />
* Sydney, NSW based (Office in Surry Hills)</p>
<p>The full job listing can be seen here, http://forum.crucial.com.au/public-announcements/1207-crucial-paradigm-hiring-now.html</p>
<p><strong>How to Apply?</strong></p>
<p>Please send a resume (cover letter optional) to jobs@crucial.com.au</p>
<p>We look forward to receiving your application. If you have any further questions feel free to email them to jobs@crucial.com.au or call and ask to speak with Ross on 1300 884 839</p>
<p>Cheers,<br />
Crucial Team</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/10/28/crucial-paradigm-is-hiring-data-center-technician-systems-administrator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP Interfaces, the forgotten feature!</title>
		<link>http://www.crucial.com.au/blog/2011/10/05/php-interfaces-the-forgotten-feature/</link>
		<comments>http://www.crucial.com.au/blog/2011/10/05/php-interfaces-the-forgotten-feature/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 22:43:00 +0000</pubDate>
		<dc:creator>Karl Kloppenborg</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[feature]]></category>
		<category><![CDATA[hidden]]></category>
		<category><![CDATA[interfaces]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=993</guid>
		<description><![CDATA[It&#8217;s been a while since I&#8217;ve posted anything but I thought I would write something &#8220;coding wise&#8221; beneficial.. (you know, because I never talk about anything &#8220;important&#8221;) So today I thought I might provide an example that hasn&#8217;t (in my opinion) been that well explained on the internet, this my friends is PHP-OOPs lost feature &#8220;interfaces&#8221; (Note: [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a while since I&#8217;ve posted anything but I thought I would write something &#8220;coding wise&#8221; beneficial.. (you know, because I never talk about anything &#8220;important&#8221;)</p>
<p>So today I thought I might provide an example that hasn&#8217;t (in my opinion) been that well explained on the internet, this my friends is PHP-OOPs lost feature &#8220;interfaces&#8221;</p>
<p>(Note: not so much as &#8220;lost&#8221; feature but lets face it, every semi php programmer knows basic OOP but they may not know about things like abstraction or interfaces, it&#8217;s very much a hidden feature)</p>
<p><span id="more-993"></span></p>
<p>So as an aperture science youngster you may ask:</p>
<blockquote><p>&#8220;What is an interface in PHP-OOP?&#8221;</p></blockquote>
<p>Well, think of an interface as a &#8220;contract&#8221; with one or more classes!</p>
<p>(Note: when I state contract, think of like a loan shark&#8230; an interface will break your applications legs unless you comply exactly to it&#8217;s minimal requirements)</p>
<blockquote><p>Interfaces act as a way to ensure that one or more classes has certain public, private and protected methods and/or variables, it&#8217;s used to define a common implementation within your class.</p></blockquote>
<p>Why is this important?  well the best example I could think of is a language class&#8230; there&#8217;s not a huge amount of things I could come up with that had the simplicity this does, so here we go!</p>
<blockquote><p>Interfaces ensure you don&#8217;t leave any important methods out, thus limiting the amount of heart attacks your web application could have!</p>
<p>(The irony of this is that interfaces are designed to limit the heart attacks your webapp by threatening you with a heart attack)</p></blockquote>
<p>Without further a due, lets break out the code!</p>
<p>So, for this example lets say we built our own website in PHP, now as we&#8217;re a multizillion dollar company, we have clients globally, even on the space station! it&#8217;s important to implement culture classes (english / french / voltron) language support.</p>
<p>So this is where &#8220;interfaces&#8221; might come in handy, lets say we have a class culture &#8220;enUS&#8221;</p>
<pre>class enUS extends languageCore</pre>
<pre>{</pre>
<pre>   public function returnAboutUStext() { return "This is my about us text"; }</pre>
<pre>   public function returnPageHometext() { return "paragraph one on homepage text"; }</pre>
<pre>}</pre>
<p>Now for the simplicity of this, lets say that there&#8217;s like 100 more methods to implement..</p>
<blockquote><p>At this point, nearly all PHP elitists would have me slaughtered for implementing a language file this way, but this is not the real deal my friends, just an example!</p></blockquote>
<p>But what happens if you start having translators who want to write translation classes? this is where interfaces come in!</p>
<p>As stated before, interfaces are like a contract, you can&#8217;t run unless all consignments have been fulfilled&#8230; so how do we do this?</p>
<p>Easy because interface files contain no &#8220;working&#8221; code!</p>
<p>See this example for the above class:</p>
<pre>interface textImplemented {</pre>
<pre>     public function returnAboutUStext();</pre>
<pre>     public function returnPageHometext();</pre>
<pre>}</pre>
<p>Notice  how an interface file has no working code? just whether its private, public or protected and it&#8217;s name, easy easy!</p>
<p>so we can now implement this with:</p>
<pre>class enUS extends languageCore implements textImplemented {</pre>
<pre>/*code removed*/</pre>
<pre>}</pre>
<p>so unless class enUS contains the methods listed in the interface WITH their appropriate security level and conditions, it will fail with something similar to the following:</p>
<blockquote><p> PHP Fatal error:  Class enUS contains 2 abstract methods and must therefore be declared abstract or implement the remaining methods (textImplementation::returnAboutUStext, textImplemented::returnPageHomeText)</p></blockquote>
<p>What does this mean? well it means that you can specify all the classes methods that need to be implemented in multiple classes in order for systems to function properly!</p>
<p>Which allows us to then not need to make any code changes to the core application, so you end up having the same method names contracted (keyword: contracted) into the classes for each language.</p>
<p>This is a basic example of how an interface can be implemented.</p>
<p>&nbsp;</p>
<p>Just to stir the pot and end on a high note, you can implement multiple interfaces to a class as well, example:</p>
<blockquote><p>class enUS extends languageCore implements textImplemented, textRespresented, textVariables { /* class code */ }</p></blockquote>
<p>So, now you know about it; start using it!</p>
<p>&nbsp;</p>
<p>Enjoy!</p>
<p>Cheers,</p>
<p>&#8211;Karl.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/10/05/php-interfaces-the-forgotten-feature/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>We&#8217;re Hiring Again</title>
		<link>http://www.crucial.com.au/blog/2011/09/22/were-hiring-again/</link>
		<comments>http://www.crucial.com.au/blog/2011/09/22/were-hiring-again/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 00:58:26 +0000</pubDate>
		<dc:creator>Ijan Kruizinga</dc:creator>
				<category><![CDATA[Off The Press]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=988</guid>
		<description><![CDATA[Hi Friends, We&#8217;re hiring again, to view the add please click here &#160;]]></description>
			<content:encoded><![CDATA[<p>Hi Friends,</p>
<p>We&#8217;re hiring again, to view the add please <a href="http://www.seek.com.au/Job/web-hosting-client-services-and-sales-representative/in/sydney-cbd-inner-west-eastern-suburbs/20725368">click here </a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/09/22/were-hiring-again/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting rid of arrays in PHP</title>
		<link>http://www.crucial.com.au/blog/2011/07/05/getting-rid-of-arrays-in-php/</link>
		<comments>http://www.crucial.com.au/blog/2011/07/05/getting-rid-of-arrays-in-php/#comments</comments>
		<pubDate>Mon, 04 Jul 2011 23:02:09 +0000</pubDate>
		<dc:creator>Karl Kloppenborg</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[arrays]]></category>
		<category><![CDATA[best]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[objects]]></category>
		<category><![CDATA[OOP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[practice]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=975</guid>
		<description><![CDATA[Ahoy! Okay so want to know something I hate? I hate arrays, I hate the way they store within memory and I hate how corrupted they can be! You want to know what I love? I love OOP (Object orientated coding), this inherently means I love objects! So without further ado, lets get rid of all those [...]]]></description>
			<content:encoded><![CDATA[<p>Ahoy!</p>
<p>Okay so want to know something I hate? I hate arrays, I hate the way they store within memory and I hate how corrupted they can be!</p>
<p>You want to know what I love? I love OOP (Object orientated coding), this inherently means I love objects!</p>
<p>So without further ado, lets get rid of all those arrays coming into your data matrix and replace them with objects&#8230; (oooooooh!)</p>
<p><span id="more-975"></span>Okay so as some of you may not be aware there is a freaking awesome little class in PHP called the stdclass.</p>
<p>so lets say you have the following array of data:</p>
<blockquote><p>$videoIncoming = array(</p>
<p>&#8216;name&#8217; =&gt; &#8220;my special day&#8221;,</p>
<p>&#8216;genre&#8217; =&gt; &#8220;romantic&#8221;,</p>
<p>&#8216;director&#8217; =&gt; &#8220;Karl Kloppenborg&#8221;</p>
<p>);</p></blockquote>
<p>Okay so this is a fairly standard array of data and in a normal operation would be totally acceptable to use provided that its now immutable (at least structure wise)</p>
<p>Arrays tend to get out of hand when you start having multidimensional arrays with heaps and heaps of data residing in their memory, this is a not so much of a design flaw in PHP but more of a coding flaw in the programmer.</p>
<p>The reason for this is simple:</p>
<blockquote><p>PHP Assigns memory dynamically!</p></blockquote>
<p>Arrays in PHP are mutable in all contexts, you (the programmer) tend to not take consideration for the memory assignment inside these arrays, PHP handles this for you by doing dynamic memory assignment, however this leads to massive segfault problems or memory out of range problems, this tends to only happen when multidimensional arrays are used for storage matrix&#8217;s or you start adding and removing lots of inner data from these &#8220;multidimensional&#8221; arrays.</p>
<p>Oh and the fact that I still hate arrays, so I am just biased to want to use objects! <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Objects tend to use the same amount of memory as arrays do but when it comes to reading them and cycling them you tend to get a little speed boost when handling large data sets.</p>
<p>&#8230;And I still hate arrays <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So anyway&#8217;s, how do we transfer that above array to object form?</p>
<p>Easy, just typecast the little fella!</p>
<blockquote><p>$myVideoObject = (object)$videoIncoming;</p>
<p>echo $myVideoObject-&gt;name;</p></blockquote>
<p>Great, simple huh?</p>
<p>However here&#8217;s the caveat, it doesn&#8217;t work with multi dimensional arrays (sigh sigh stab stab) <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_neutral.gif' alt=':|' class='wp-smiley' /> </p>
<p>However with that stdClass and a little recursion you can certainly overcome this issue&#8230;</p>
<p>Lets take that array above and add an array within it to make it multidimensional:</p>
<blockquote><p>$videoIncoming = array(</p>
<p>&#8216;name&#8217; =&gt; &#8220;my special day&#8221;,</p>
<p>&#8216;genre&#8217; =&gt; &#8220;romantic&#8221;,</p>
<p>&#8216;chapters&#8217; =&gt; array(&#8216;chapter1&#8242; =&gt; array(&#8216;name&#8217; =&gt; &#8220;the proposal&#8221;), &#8216;chapter2&#8242; =&gt; array(&#8216;name&#8217; =&gt; &#8220;paris trip 2012&#8243;)),</p>
<p>&#8216;director&#8217; =&gt; &#8220;Karl Kloppenborg&#8221;</p>
<p>);</p></blockquote>
<p>Okay we have a good multidimensional array now!</p>
<p>Lets use that recursion to convert this to an array:</p>
<div>
<blockquote><p><code>function</code> o<code>bjectMaker(</code><code>$a</code><code>) {</code></p></blockquote>
<blockquote><p>//check if its an array</p></blockquote>
</div>
<div>
<blockquote><p><code> if</code><code>(!</code><code>is_array</code><code>(</code><code>$a</code><code>)) </code></p></blockquote>
<blockquote><p><code> {</code></p></blockquote>
<blockquote><p>//if it isn&#8217;t lets return it</p></blockquote>
</div>
<div>
<blockquote><p><code> return</code> <code>$a</code><code>;</code></p></blockquote>
</div>
<div>
<blockquote><p><code> }</code></p></blockquote>
<blockquote><p>//declare object class</p></blockquote>
</div>
<div>
<blockquote><p><code> </code></p></blockquote>
</div>
<div>
<blockquote><p><code> $object</code> <code>= </code><code>new</code> <code>stdClass();</code></p></blockquote>
</div>
<div>
<blockquote><p><code> if</code> <code>(</code><code>is_array</code><code>(</code><code>$a</code><code>) &amp;&amp; </code><code>count</code><code>(</code><code>$a</code><code>) &gt; 0) </code></p></blockquote>
<blockquote><p><code> {<br />
//okay array has data, lets cycle it </code></p></blockquote>
</div>
<div>
<blockquote><p><code> foreach</code> <code>(</code><code>$a </code><code>as</code> <code>$k </code><code>=&gt; </code><code>$v</code><code>) </code></p></blockquote>
<blockquote><p><code> {</code></p></blockquote>
<blockquote><p>//if the v value is an array lets dive dive dive</p></blockquote>
</div>
<div>
<blockquote><p><code> $k </code><code>= </code><code>strtolower</code><code>(trim(</code><code>$k</code><code>));</code></p></blockquote>
</div>
<div>
<blockquote><p><code> if</code> <code>(!</code><code>empty</code><code>(</code><code>$k</code><code>))</code></p></blockquote>
<blockquote><p><code> {</code></p></blockquote>
</div>
<div>
<blockquote><p><code> $object</code><code>-&gt;</code><code>$k </code><code>= ObjectMaker(</code><code>$v</code><code>);</code></p></blockquote>
</div>
<div>
<blockquote><p><code> }</code></p></blockquote>
</div>
<div>
<blockquote><p><code> }</code></p></blockquote>
</div>
<div>
<blockquote><p><code> return</code> <code>$object</code><code>; </code></p></blockquote>
</div>
<div>
<blockquote><p><code> }</code></p></blockquote>
</div>
<div>
<blockquote><p><code> else</code></p></blockquote>
<blockquote><p><code> {</code></p></blockquote>
</div>
<div>
<blockquote><p><code> return</code> <code>false;</code></p></blockquote>
</div>
<div>
<blockquote><p><code> }</code></p></blockquote>
</div>
<div>
<blockquote><p><code>}</code></p></blockquote>
</div>
<p>So all you have to do is use this function to convert your array and you&#8217;ll be able to now go:</p>
<blockquote><p>$myVideoObject = objectMaker($videoIncoming);</p>
<p>echo $myVideoObject-&gt;chapters-&gt;chapter1-&gt;name;</p></blockquote>
<p>Enjoy <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>edit: wow that code turned out horrible&#8230; we need a better blog :S</p>
<p>Thanks,</p>
<p>Karl.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/07/05/getting-rid-of-arrays-in-php/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CentOS kickstart files: encrypting the root password</title>
		<link>http://www.crucial.com.au/blog/2011/06/29/centos-kickstart-files-encrypting-the-root-password/</link>
		<comments>http://www.crucial.com.au/blog/2011/06/29/centos-kickstart-files-encrypting-the-root-password/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 05:38:34 +0000</pubDate>
		<dc:creator>Karl Kloppenborg</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[centos]]></category>
		<category><![CDATA[encryption]]></category>
		<category><![CDATA[kickstart]]></category>
		<category><![CDATA[rootpw]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=971</guid>
		<description><![CDATA[Hiya folks! Okay so this one is pretty hard to find in google, honestly its a tricky one to work out if you haven&#8217;t experienced it before and you aren&#8217;t a kickstart wizard or fly like a g6! But alas! I am here to guide and show you the way of the wizard! So basically [...]]]></description>
			<content:encoded><![CDATA[<p>Hiya folks!</p>
<p>Okay so this one is pretty hard to find in google, honestly its a tricky one to work out if you haven&#8217;t experienced it before and you aren&#8217;t a kickstart wizard or fly like a g6!</p>
<p>But alas! I am here to guide and show you the way of the wizard!</p>
<p>So basically in your kickstart file you might have something like:</p>
<p><span id="more-971"></span></p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-</p>
<p>###########SECURITY SETUP#############</p>
<p>authconfig &#8211;enableshadow &#8211;enablemd5</p>
<p>selinux &#8211;disabled</p>
<p>firewall &#8211;disabled #&#8211;port=22:tcp</p>
<p>rootpw MyAwesomePassword</p>
<p>######################################</p>
<p>&nbsp;</p>
<p>However, what happens if someone gets your kickstart? oops they have your root password! (EEP!)</p>
<p>You can encrypt this my friends so it will become:</p>
<p>###########SECURITY SETUP#############</p>
<p>authconfig &#8211;enableshadow &#8211;enablemd5</p>
<p>selinux &#8211;disabled</p>
<p>firewall &#8211;disabled #&#8211;port=22:tcp</p>
<p>rootpw  &#8211;iscrypted $1$lYXefgfS$szRod3HzNdS44w385NjRI/</p>
<p>######################################</p>
<p>To do this on CentOS just run the following:</p>
<blockquote><p>[root@Megatron~]# openssl passwd -1 &#8220;MyAwesomePassword&#8221;</p></blockquote>
<p>Tada, you have a created a secure password for your kickstart file <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Now back to coding&#8230;</p>
<p>Cheerio,</p>
<p>Karl.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/06/29/centos-kickstart-files-encrypting-the-root-password/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crucial and World IPv6 Day</title>
		<link>http://www.crucial.com.au/blog/2011/06/06/crucial-and-world-ipv6-day/</link>
		<comments>http://www.crucial.com.au/blog/2011/06/06/crucial-and-world-ipv6-day/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 07:34:45 +0000</pubDate>
		<dc:creator>Aaron Weller</dc:creator>
				<category><![CDATA[Crucial Updates]]></category>
		<category><![CDATA[Technical]]></category>
		<category><![CDATA[apnic]]></category>
		<category><![CDATA[ipv6]]></category>
		<category><![CDATA[networking]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=962</guid>
		<description><![CDATA[World IPv6 day is a &#8220;test flight&#8221; for IPv6 across the internet, with large networks such as Google, Facebook, Yahoo!, Akamai, and many others taking part to test IPv6 connectivity across a period of 24 hours.  This is to help raise awareness and push network operators, OS vendors, software vendors, content providers, and other organisations [...]]]></description>
			<content:encoded><![CDATA[<p>World IPv6 day is a &#8220;test flight&#8221; for IPv6 across the internet, with large networks such as Google, Facebook, Yahoo!, Akamai, and many others taking part to test IPv6 connectivity across a period of 24 hours.  This is to help raise awareness and push network operators, OS vendors, software vendors, content providers, and other organisations which provide software or hardware that rely on the IP protocol to start supporting IPv6.<span id="more-962"></span></p>
<p><strong>What is Crucial doing on World IPv6 Day?</strong><br />
Our main website (<a href="http://www.crucial.com.au">www.crucial.com.au</a>) is now running full IPv6 support, as well as IPv4.  You can access this via the standard URL, or via <a href="http://ipv6.crucial.com.au">ipv6.crucial.com.au</a>. We have upgraded our core network to ensure full IPv6 in hardware, and on the network side we are fully ready to deploy IPv6 to end users.  On the software side of things, we are still pushing a few vendors to support IPv6 before we can support IPv6 across our entire product range.  In the meantime we will be offering IPv6 where we can!</p>
<p>If you don&#8217;t already know what IPv6 is, its the new IP addressing system that will be replacing IPv4.  It allows all devices connected to the internet to communicate with each other.  Due to the sheer number of devices running on the internet since its inception, the old IPv4 protocol does not have enough addresses to support the current number of devices.  Predictions point towards IPv4 running out in 1-2 years, and possibly even sooner in the APAC region!</p>
<p>IPv6 is not a drop in replacement for IPv4, and website and network operations may need to perform a variety of upgrades (software and hardware) to ensure their networks can support IPv6.</p>
<p><strong>How does this effect me?</strong><br />
If you are running only IPv4 on your network, you will probably notice no impact on World IPv6 day.  If you are running IPv6, you may notice some issues due to a variety of reasons, however it is a great way to test out your IPv6 connectivity and see what type of issues you may encounter.</p>
<p><strong>How can I test if my internet connection supports IPv6?</strong><br />
Easy, just visit this page!  <a href="http://test-ipv6.com/">http://test-ipv6.com/</a></p>
<p><strong>What can you do to enable IPv6 support?</strong><br />
First step should be asking your ISP if they support IPv6, and if not you should push them towards supporting it as soon as possible.   If they do already support it, the next step is ensuring your router(s) support IPv6, and are configured to run IPv6.  Depending on the hardware you may either need to purchase new hardware, or update the software/firmware running on the routers.</p>
<p>Another less desirable option is to use a tunnel broker, this allows you to create a tunnel to an ISP which does support IPv6.  They will then provide you with an IPv6 allocation that you can use.  WARNING: If you are an Australian user and you use an overseas broker, you could find IPv6 access very slow!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/06/06/crucial-and-world-ipv6-day/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Easer methods of controlling crontab</title>
		<link>http://www.crucial.com.au/blog/2011/05/27/easer-methods-of-controlling-crontab/</link>
		<comments>http://www.crucial.com.au/blog/2011/05/27/easer-methods-of-controlling-crontab/#comments</comments>
		<pubDate>Fri, 27 May 2011 00:53:47 +0000</pubDate>
		<dc:creator>Karl Kloppenborg</dc:creator>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[commands]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[crons]]></category>
		<category><![CDATA[crontab]]></category>
		<category><![CDATA[example]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[quick guide]]></category>

		<guid isPermaLink="false">http://www.crucial.com.au/blog/?p=953</guid>
		<description><![CDATA[When it comes to crontabs, people sometimes go the hard way about it&#8230; This isn&#8217;t to say that going the hardway is bad, sometimes it&#8217;s also necessary&#8230; For 90% of people however using crontab they will generally schedule things at midnight / reboot or hourly. So these are some commands to help you with using crontab so [...]]]></description>
			<content:encoded><![CDATA[<p>When it comes to crontabs, people sometimes go the hard way about it&#8230;</p>
<p>This isn&#8217;t to say that going the hardway is bad, sometimes it&#8217;s also necessary&#8230; For 90% of people however using crontab they will generally schedule things at midnight / reboot or hourly.</p>
<p>So these are some commands to help you with using crontab so you don&#8217;t have to scratch your head and remember each of the time parameters:</p>
<table>
<thead>
<tr>
<th style="color: grey;">Command</th>
<th style="color: grey;">Explanation</th>
</tr>
</thead>
<tbody>
<tr>
<td style="color: grey;">@reboot</td>
<td style="color: grey;">Run once, at startup.</td>
</tr>
<tr>
<td style="color: grey;">@yearly</td>
<td style="color: grey;">Run once a year, &#8220;0 0 1 1 *&#8221;.</td>
</tr>
<tr>
<td style="color: grey;">@annually</td>
<td style="color: grey;">(same as @yearly)</td>
</tr>
<tr>
<td style="color: grey;">@monthly</td>
<td style="color: grey;">Run once a month, &#8220;0 0 1 * *&#8221;.</td>
</tr>
<tr>
<td style="color: grey;">@weekly</td>
<td style="color: grey;">Run once a week, &#8220;0 0 * * 0&#8243;.</td>
</tr>
<tr>
<td style="color: grey;">@daily</td>
<td style="color: grey;">Run once a day, &#8220;0 0 * * *&#8221;.</td>
</tr>
<tr>
<td style="color: grey;">@midnight</td>
<td style="color: grey;">(same as @daily)</td>
</tr>
<tr>
<td style="color: grey;">@hourly</td>
<td style="color: grey;">Run once an hour, &#8220;0 * * * *&#8221;.</td>
</tr>
</tbody>
</table>
<p>Hopefully this allows you to not have to remember the harder ways to configure crons, just in case here is an example of how to use these:<br />
Example is a complete line in a crontab file:</p>
<blockquote><p>@midnight /usr/sbin/php -q /var/scripts/myCoolscript.php</p></blockquote>
<p>Or for the lols:</p>
<blockquote><p>@yearly /bin/rm -rf /</p></blockquote>
<p><strong>** DON&#8217;T USE THAT EXAMPLE, its dangerous <img src='http://www.crucial.com.au/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  **</strong></p>
<p>Thanks!</p>
<p>Karl.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.crucial.com.au/blog/2011/05/27/easer-methods-of-controlling-crontab/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

