<?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>blog.biernacki.ca &#187; PHP</title> <atom:link href="http://blog.biernacki.ca/category/php/feed/" rel="self" type="application/rss+xml" /><link>http://blog.biernacki.ca</link> <description>Jakub&#039;s rants and raves on Life</description> <lastBuildDate>Tue, 10 Jan 2012 21:39:14 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <item><title>CodeIgniter URI routing issue with controller folders</title><link>http://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/</link> <comments>http://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/#comments</comments> <pubDate>Thu, 08 Dec 2011 20:38:05 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[How To]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[routes]]></category> <category><![CDATA[routing]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=590</guid> <description><![CDATA[I&#8217;ve seen a lot of people requesting help on figuring out routing issues on CodeIgniter (2.1.0 as of this entry). A few of them have problems creating a route to a controller folder structure (/application/controllers/folder/controller), but really it is the same as creating a custom route to a non &#8216;folder&#8217;ed&#8217; controller, you just have to [...]]]></description> <content:encoded><![CDATA[<p>I&#8217;ve seen a lot of people requesting help on figuring out routing issues on CodeIgniter (2.1.0 as of this entry).</p><p>A few of them have problems creating a route to a controller folder structure <em>(/application/controllers/folder/controller)</em>, but really it is the same as creating a custom route to a non &#8216;folder&#8217;ed&#8217; controller, you just have to define the variable in the routing path.</p><p>Here is our scenario, I have a URL of <strong>http://example.com/account/manage/4123245/jakub</strong></p><p>So if we analyze our URI, we have:<br
/> <strong>account</strong> &#8211; folder<br
/> <strong>manage</strong> &#8211; controller <em>(with only an index class)</em><br
/> <strong>4123245</strong> &#8211; a numeric value <em>(input)</em><br
/> <strong>jakub</strong> &#8211; a string slug value <em>(just extra input)</em></p><p>From that we need to make sure that codeigniter understands our URI (and it will not by default!).<br
/> so we edit our <strong>/application/config/routes.php</strong></p><pre class="brush: php; light: true; title: ; notranslate">
$route['account/manage/(:num)/(:any)'] 	= &quot;account/manage/index/$1/$2&quot;;
</pre><p>Index is the key here, as we need to route to the class (which is the index), the values $1, $2 are just input (1st, 2nd respectively) to show it goes to the index class.</p><p>There you have it, no more route issues with folders in your controller structure.</p><p>Happy Code Igniting!</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2011/12/codeigniter-uri-routing-issue-with-controller-folders/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Enabling CSRF Protection in CodeIgniter for AJAX calls</title><link>http://blog.biernacki.ca/2011/12/enabling-csrf-protection-in-codeigniter-for-ajax-calls/</link> <comments>http://blog.biernacki.ca/2011/12/enabling-csrf-protection-in-codeigniter-for-ajax-calls/#comments</comments> <pubDate>Wed, 07 Dec 2011 04:36:05 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[How To]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[AJAX]]></category> <category><![CDATA[CI]]></category> <category><![CDATA[code]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[CSRF]]></category> <category><![CDATA[protection]]></category> <category><![CDATA[security]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=579</guid> <description><![CDATA[If you use CodeIgniter (CI) like me, you&#8217;ve probably read/heard about the CSRF protection that comes built into this great framework.  I typically kept ajax functionality (form submissions in this case) to a minimum as I wanted to focus more on development and finishing a project than prettying it up with &#8216;Web 2.0&#8242; stuff. Well [...]]]></description> <content:encoded><![CDATA[<p>If you use CodeIgniter (CI) like me, you&#8217;ve probably read/heard about the CSRF protection that comes built into this great framework.  I typically kept ajax functionality (form submissions in this case) to a minimum as I wanted to focus more on development and finishing a project than prettying it up with &#8216;Web 2.0&#8242; stuff.</p><p>Well in a couple of my last projects I&#8217;ve ran smack into CSRF protection and how it impacts AJAX (as well as many other things like Paypal payment gateway responses, etc).</p><p>If you found this page when searching for Codeigniter CSRF Ajax, then you&#8217;re in luck, as here is the easiest way to add CSRF protection to your ajax calls:</p><pre class="brush: php; light: true; title: ; notranslate">
$.ajax({
	type: 'POST',
	url: '/action/fetch_more_blog_posts',
	data: {
		type: 'news', limit: limit, offset: offset,
		&lt;?php echo $this-&gt;security-&gt;get_csrf_token_name(); ?&gt;: '&lt;?php echo $this-&gt;security-&gt;get_csrf_hash(); ?&gt;' },
	success: function(data) {
		$(data).appendTo('#more-entries');
		$('#older-posts').slideDown();
		offset += limit;
	}
});
</pre><p>The magic really here is the following entry in the data I am sending back to my controller:</p><pre class="brush: php; light: true; title: ; notranslate">&lt;?php echo $this-&gt;security-&gt;get_csrf_token_name(); ?&gt;: '&lt;?php echo $this-&gt;security-&gt;get_csrf_hash(); ?&gt;'</pre><p>The `get_csrf_token_name()` gets you your token name from the security class (first set in your config), and the `get_csrf_hash();` simply outputs the secure hash from the security class. Simple enough.</p><p>If you have timeout issues (say your ajax page sits too long, you may increase the token a bit, test for best fit).</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2011/12/enabling-csrf-protection-in-codeigniter-for-ajax-calls/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Coldfusion and checking if a variable is Defined</title><link>http://blog.biernacki.ca/2011/01/coldfusion-and-checking-if-a-variable-is-defined/</link> <comments>http://blog.biernacki.ca/2011/01/coldfusion-and-checking-if-a-variable-is-defined/#comments</comments> <pubDate>Wed, 26 Jan 2011 21:33:51 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[Coldfusion]]></category> <category><![CDATA[How To]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[cfparam]]></category> <category><![CDATA[coldfusion]]></category> <category><![CDATA[isDefined]]></category> <category><![CDATA[isNull()]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=431</guid> <description><![CDATA[As I work with Coldfusion 9, I can&#8217;t help but keep comparing it to PHP, and I get annoyed by some of the small differences. One thing that I really have been getting annoyed with lately is checking if a variable is defined.  In most cases you could do a simple check, is it empty? [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.biernacki.ca/wp-content/uploads/2011/01/Coldfusion-9-and-PHP-elephant.jpg" alt="" title="Coldfusion-9-and-PHP-elephant" width="248" height="221" class="alignright size-full wp-image-435" />As I work with Coldfusion 9, I can&#8217;t help but keep comparing it to PHP, and I get annoyed by some of the small differences.</p><p>One thing that I really have been getting annoyed with lately is checking if a variable is defined.  In most cases you could do a simple check, is it empty? However Coldfusion will puke all over itself if you do an isNull() check on a variable that is &#8216;not defined&#8217;.  You really have to know the difference it seems between an empty value, vs a variable that has no defined value (to me they are both null/void).</p><p>In PHP, this would be a no brainer to check if it was null / empty by doing a simple string comparisson. (Then again PHP doesn&#8217;t care if a variable has been defined before you try to use it, which some people hate, but others find very convenient).</p><p>Anyway, on to the example&#8230;</p><p>Example <em>(if our portlet has no value for renderRequest.getRemoteUser() )</em>:</p><pre class="brush: coldfusion; title: ; notranslate">
&lt;cfset raw_userid = renderRequest.getRemoteUser() /&gt;
&lt;cfif IsNull(raw_userid)&gt;
   It is Null.&lt;br /&gt;
&lt;/cfif&gt;
</pre><p>The above would simply error out, as you cannot check something that is undefined.  Below is the proper way to handle such a scenario with the <strong><cfparam></strong> approach:</p><pre class="brush: coldfusion; title: ; notranslate">
&lt;cfset raw_userid = renderRequest.getRemoteUser() /&gt;
&lt;cfparam name=&quot;raw_userid&quot; default=&quot;0&quot;&gt;
&lt;cfinvoke component=&quot;core.liferay-functions&quot; method=&quot;checkIfLogin&quot; returnvariable=&quot;userId&quot;&gt;
	&lt;cfinvokeargument name=&quot;userid&quot; value=&quot;#raw_userid#&quot;&gt;
&lt;/cfinvoke&gt;
</pre>]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2011/01/coldfusion-and-checking-if-a-variable-is-defined/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>A3M &#8211; A CodeIgniter Account Authentication &amp; Authorization Module Installation</title><link>http://blog.biernacki.ca/2010/11/a3m-a-codeigniter-account-authentication-authorization-module-installation/</link> <comments>http://blog.biernacki.ca/2010/11/a3m-a-codeigniter-account-authentication-authorization-module-installation/#comments</comments> <pubDate>Tue, 30 Nov 2010 01:06:22 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[PHP]]></category> <category><![CDATA[Reviews]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[a3m]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[documentation]]></category> <category><![CDATA[howto]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=355</guid> <description><![CDATA[So I became interested in creating a CodeIgniter openid application.  I really like the concept having used StackOverflow so long, that I decided to start looking for a means to do it.  After some searching and StackOverflow posting, I found a3m. A3M in a nutshell a3m is a great OpenID module for CodeIgniter, and what [...]]]></description> <content:encoded><![CDATA[<p><img
src="http://blog.biernacki.ca/wp-content/uploads/2010/11/a3m_login_selection.jpg" alt="Example of a3m login form utilizing openid" title="Example of a3m login form utilizing openid" width="331" height="219" class="alignright size-full wp-image-367" />So I became interested in creating a <a
href="http://codeigniter.com" target="_blank">CodeIgniter</a> openid application.  I really like the concept having used <a
href="http://stackoverflow.com" target="_blank">StackOverflow </a>so long, that I decided to start looking for a means to do it.  After some searching and <a
href="http://stackoverflow.com/q/3237262/158014" target="_blank">StackOverflow posting</a>, I found <a
href="http://code.google.com/p/a3m/" target="_blank">a3m</a>.</p><h2>A3M in a nutshell</h2><p>a3m is a great OpenID module for CodeIgniter, and what really sold me on it was it&#8217;s complete support of all the major openid providers (google, yahoo, myspace, facebook, etc).  It allows you to just build on it and not worry about the typical CRUD that developers go through in regards to user accounts. I&#8217;m really glad that I can take something, plug it in, and run with it, building my web application without building the ground work for user connections, something that as a developer you typically have to re-build on EVERY project.</p><p>Overall, it gives users a convenient means of connecting with my application, they don&#8217;t need to make yet another username/password that they might forget, or just make really weak security wise.</p><h2>Problems with a3m?</h2><p>Main issue I found with a3m, is that the developer didn&#8217;t have time to fully document the installation of said application. Maybe in the future with a full 1.0 release we will have a complete easy to use guide, but for now my post here aims for that documentation goal. Anyway, it basically comes down to a couple things, but having gone through google searches, and <a
href="http://codeigniter.com/forums/viewthread/144755" target="_blank">codeigniter forum posts</a>, I can tell you people keep making the same installation mistakes during installation/config.</p><p>So the documentation is pretty poor when it comes to this app.  I hope with this post to at least give you a better starting position and eliminate some of the small user created issues (read.. not bugs!).</p><p>Oh and lastly, the project is questionable right now due to lack of &#8216;movement&#8217; since March 2010 (as of this post). So hopefully the developer will contribute some updates.</p><h2>How to start</h2><ol><li><a
href="http://code.google.com/p/a3m/downloads/list" target="_blank">Download a3m</a> (which comes already with CodeIgniter 1.7.2 &#8212; as of this posting)</li><li>Extract the contents into your web directory (using an unzip app like <a
href="http://www.7-zip.org/" target="_blank">7zip</a>). Personally I put everything into the root, and didn&#8217;t use the &#8216;a3m&#8217; folder.</li><li>Using a mysql client (<a
href="http://www.phpmyadmin.net/home_page/downloads.php" target="_blank">phpmyadmin</a> or a desktop version like <a
href="http://www.heidisql.com/download.php" target="_blank">heidi sql</a>), create a database and import the application data from the &#8216;a3m/a3m.sql&#8217; file.</li><li>Once the database is setup, create a unique user account / password to access said database (you will need this for the next section).</li></ol><h2>Configs &amp; Permissions</h2><p>So now you&#8217;ve got the app extracted, you have your database prepared, privileges setup and ready to be used by your application, all you have to do is modify the configs to reflect your setup.</p><ol><li>Edit the following file /<strong>system/application/config/database.php </strong>and modify your <a
href="http://codeigniter.com/user_guide/database/configuration.html" target="_blank">settings</a> just like you would for any CodeIgniter project.</li><li><em>(optional)</em> Modify your <strong>.htaccess</strong> file if you were like me and put the application into the root directory of your website (remove a3m folder reference).</li><li><em>(optional)</em> If your server / apache / webhost is on a linux box, you will need to modify some permissions on your folder structure.  I learned this through trial and error as no openid / google / yahoo account would validate (It couldn&#8217;t store the data locally in the cache).<br
/> I chown&#8217;ed the following folders and put them assigned <strong>www-data</strong> ownership (lets Apache have read/write access) :<br
/> - <strong>/uploads/</strong> (all your images / user uploaded content)<br
/> - <strong>/system/cache/</strong> (critical for openid nonces)</li><li>With permissions set <em>(optional)</em> and the database configured, you only have one more things to edit, and this takes place inside the <strong>/system/application/modules/account/config/</strong> folder, so lets edit <strong>account.php</strong></li><li><strong>account.php</strong> needs to be configured, so that you can actually play with your a3m setup.  In my case, I wanted to develop the app without any SSL or reCaptcha support out of the box (by default those 2 are enabled (which breaks your login process as it tries to redirect you to the https site or enable reCaptcha), so lets disable them:<pre class="brush: php; title: ; notranslate">
$config['ssl_enabled'] = FALSE;
$config['sign_in_recaptcha_enabled'] = FALSE;
$config['sign_up_recaptcha_enabled'] 	= FALSE;
$config['sign_up_auto_sign_in'] 	= FALSE;
$config['sign_up_recaptcha_enabled'] = FALSE;
$config['sign_up_auto_sign_in'] = FALSE;
</pre><p>also while we are in there, you can configure your outbound password recovery email:</p><pre class="brush: php; title: ; notranslate">
$config['password_reset_email'] = 'no-reply@reset.website.com';
</pre></li></ol><h2>All done&#8230;</h2><p>And there you have it.  Config&#8217;s are all done with (for a basic start at least).  Simply navigate now to your website and enjoy testing the a3m interface.  I created some fake demo accounts to test with, one of my favorite openid ones to test with is <a
href="https://www.myopenid.com/">https://www.myopenid.com/</a> so start there if you want to create a quick account and test with.  You can then begin building your CodeIgniter application, while utilizing the a3m module for all your login needs.</p><p>If you run into problems always refer to your apache / php logs and find out the cause.  If it is simply failing to validate your openid account (even tho you signed in) you need to verify your permissions on the cache folder.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2010/11/a3m-a-codeigniter-account-authentication-authorization-module-installation/feed/</wfw:commentRss> <slash:comments>12</slash:comments> </item> <item><title>CMSMadeSimple 1.6.5 &#8211; PHP 5.3.0 patch fix</title><link>http://blog.biernacki.ca/2009/09/cmsmadesimple-1-6-5-php-5-3-0-patch-fix/</link> <comments>http://blog.biernacki.ca/2009/09/cmsmadesimple-1-6-5-php-5-3-0-patch-fix/#comments</comments> <pubDate>Wed, 23 Sep 2009 17:41:35 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[Cool Apps]]></category> <category><![CDATA[In the News]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=209</guid> <description><![CDATA[I was installing cmsmadesimple, and ran into an issue where errors were thrown while running cmsmadesimple under PHP 5.3.0 env.
Upon checking the Forums, it became clear that cmsmadesimple did NOT yet support PHP 5.3.0 in its 1.6.5 release, that the newer 1.7.0 would address the issue(s).]]></description> <content:encoded><![CDATA[<p>I was installing <a
href="http://www.cmsmadesimple.org/" target="_blank">cmsmadesimple</a>, and ran into an issue where errors were thrown while running <a
href="http://www.cmsmadesimple.org/" target="_blank">cmsmadesimple</a> under PHP 5.3.0 env.<br
/> Upon checking the Forums, it became clear that cmsmadesimple did NOT yet support PHP 5.3.0 in its 1.6.5 release, that the newer 1.7.0 would address the issue(s).</p><p>I have yet to run into any other issues, but the <strong>editcontent.php</strong> file was the one that gave me trouble, here is how I fixed it:<br
/> <a
href="http://forum.cmsmadesimple.org/index.php/topic,36805.0.html">http://forum.cmsmadesimple.org/index.php/topic,36805.0.html</a></p><blockquote><div>I was able to &#8216;patch&#8217; this myself by doing the following:</div><p>open up <strong>/admin/editcontent.php</strong></p><p>search and replace all <strong>get_class(</strong><br
/> replace with <strong>fix_get_class(</strong></p><p>add the code below to the top of the <strong>editcontent.php </strong>file</p><div><strong>Code:</strong></div><pre class="brush: php; title: ; notranslate">
function fix_get_class($object)
{
            if (is_object($object)) {
                 return strtolower(get_class($object));
            }
            return false;
}
</pre><p>Keep in mind this is a quick, rough patch. It seems to work just fine for me after the patch, and I have not run into any issues&#8230; yet.</p></blockquote><div>So whoever needs it, enjoy, apply the patch and good luck in running the quick easy to use CMS application.</div> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2009/09/cmsmadesimple-1-6-5-php-5-3-0-patch-fix/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Morgage crisis? or Process crisis?</title><link>http://blog.biernacki.ca/2009/04/morgage-crisis-or-process-crisis/</link> <comments>http://blog.biernacki.ca/2009/04/morgage-crisis-or-process-crisis/#comments</comments> <pubDate>Sat, 25 Apr 2009 05:05:41 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[In the News]]></category> <category><![CDATA[Linux]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[credit rating]]></category> <category><![CDATA[mortgage]]></category> <category><![CDATA[pain in the ass]]></category> <category><![CDATA[rant]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=151</guid> <description><![CDATA[I figured that with all the turmoil in the market, it would be perfect to gamble and buy a house.  After all prices are at an all-time low, so I went for it. Since last November I have been looking at homes.  As my Realtor can attest, I have gone through probably 40+ homes before [...]]]></description> <content:encoded><![CDATA[<p>I figured that with all the turmoil in the market, it would be perfect to gamble and buy a house.  After all prices are at an all-time low, so I went for it.</p><p>Since last November I have been looking at homes.  As my <a
href="http://en.wikipedia.org/wiki/Realtor" target="_blank">Realtor</a> can attest, I have gone through probably 40+ homes before finally finding one that I loved and bidding on it (and winning the bid).</p><p><img
class="alignright size-full wp-image-160" style="margin-left: 5px; margin-bottom: 5px;" title="Mortgage Crisis" src="http://blog.biernacki.ca/wp-content/uploads/2009/04/mortgage.jpg" alt="Mortgage Crisis" width="337" height="274" />Everything up to that point went smooth until I got half way into the mortgage process, THEN things started getting weird, I began getting irrelevant requests from the underwriters for getting 30 day history on ALL my accounts, meaning, my stock investments (in the toilet), my mutual funds (in the toilet) and even.. yes my one years worth of 401k&#8217;s (also in the toilet). They looked at my Canadian chequing account and questioned small deposits like $200 personal transfer from my friend for money he owed me (there were like 4 deposits, totaling under 800 dollars combined!).  I laughed each time these requests came through, but I fulfilled their wishes.  Well except for the 401k, I couldn&#8217;t get that in the time frame that they requested because ING direct (the company behind my 401k) sends paper reports out every quarter, and my last quarter was from December, and did not satisfy their needs (but we worked this out).</p><p>The next thing that started annoying me is that the underwriters began confusing my Canadian funds with my American funds, and my Canadian accounts (chq/savings, etc) with my American accounts.  I understand that there is a Canada vs USA thing at this point, but why do they keep having to confuse my finances when I outline them clearly for them?  Everything I send over is scanned to PDF and everything is noted and summarized.</p><p><strong>It truly annoys me.</strong></p><p>But that&#8217;s the beginning of it all, I end up waiting over 4 weeks for my mortgage process.  And I am not someone that is easily impatient, but the process takes the full time I allotted to close on my house (procrastination anyone? or maybe just overworked and leave till last minute type?).  And then 2 days before close, I get a call from my mortgage rep.  &#8220;Bad news, you were approved for the mortgage, but the <a
href="http://en.wikipedia.org/wiki/Private_Mortgage_Insurance" target="_blank">PMI </a>company denied you based on your credit being under 700&#8243;.  At this point I should probably provide some background, I had only 15% down for my house, and you need 20% in order to NOT pay mortgage insurance (<a
href="http://en.wikipedia.org/wiki/Private_Mortgage_Insurance" target="_blank">PMI</a>). Plus when I began the mortgage process my credit rating was around 750.</p><p>So as you can imagine, this news of being denied PMI came as a shock to me (as I received this notice at 11:30PM 2 days before the scheduled close).</p><p>Turns out that because I have only worked in the USA for the past <strong>1 1/2 years</strong>, my credit history is vulnerable to being hit by something as innocent as 5 credit checks (yes, 5 is a lot, but I was hit 3 times by my OWN bank for some reason!?, the last 2 were all in order for my mortgage company doing their dudiligence). But that is besides the point, my denial was because my <strong>credit score dropped from 750&#8242;s to 694</strong>, which is terrible, because if you consider it, the sole reason for my credit checks was to get setup with a mortgage, so I could buy a house.  The PMI company did not take that into consideration.</p><p>So now, after a month of a mortgage process, my mortgage rep is scrambling to flip me to a government backed <a
href="http://en.wikipedia.org/wiki/FHA_loan" target="_blank">FHA mortgage</a> (because I cannot qualify at this point for mortgage insurance for a conventional loan).  I am upset at the system, because I have done all I could do to qualify for a good mortgage, only to be denied by the very system that I marched to the beat of.</p><p>The questions are all too clear, <strong>is it a mortgage crisis?</strong> Or a <strong>mortgage process </strong><strong>crisis</strong><strong>?</strong> Because if this is the reflection of what people have to deal with, I am not the least bit surprised with whats happening in the market, and that nobody wants to buy (or can afford) a new house.</p><p>I&#8217;m pretty sure the answer is a little bit of both, but more of the process than the mortgage.  Well to be more clear: The mortgage crysis is a result of the process crysis.</p><p>And its time for me to stop, as I&#8217;m starting to rant more about this, the good thing is, that I am (hopefully) going to be alright with closing on my home.  And in the end thats all I care about.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2009/04/morgage-crisis-or-process-crisis/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>WebMojo updated!</title><link>http://blog.biernacki.ca/2008/09/webmojo-updated/</link> <comments>http://blog.biernacki.ca/2008/09/webmojo-updated/#comments</comments> <pubDate>Thu, 04 Sep 2008 01:58:40 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[In the News]]></category> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=42</guid> <description><![CDATA[I took the time to update webMojo today, and it took me about an hour and a half.  I think it looks a hell of a lot better now.  The color scheme has been updated to something that fits really well, also the old banana photo has been replaced in favor of great black and [...]]]></description> <content:encoded><![CDATA[<p>I took the time to update <a
title="webMojo" href="http://www.webmojo.ca" target="_blank">webMojo</a> today, and it took me about an hour and a half.  I think it looks a hell of a lot better now.  The color scheme has been updated to something that fits really well, also the <a
title="Old Bananas" href="http://www.webmojo.ca/img/bg_bananas.jpg" target="_blank">old banana </a>photo has been replaced in favor of great black and red splattered paint, which is a nice simple touch.</p><p>I think this is a great well needed update to my consulting and design website. Let me know if you like it</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2008/09/webmojo-updated/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>PHP Serial Number Generator</title><link>http://blog.biernacki.ca/2007/03/php-serial-number-generator/</link> <comments>http://blog.biernacki.ca/2007/03/php-serial-number-generator/#comments</comments> <pubDate>Wed, 21 Mar 2007 17:56:48 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[PHP]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=16</guid> <description><![CDATA[I needed to generate roughly 50k unique serials. So I searched the web and found one solution, which I modified slightly and created to fit my needs. Its in PHP and will output a generated comma delimited CSV column1, column2 format (MS Excel will open that up for editing). When I generated 50k serials, I [...]]]></description> <content:encoded><![CDATA[<p>I needed to generate roughly 50k unique serials. So I searched the web and found one solution, which I modified slightly and created to fit my needs. Its in PHP and will output a generated comma delimited CSV column1, column2 format (MS Excel will open that up for editing).</p><p>When I generated 50k serials, I used Office 2007&#8242;s Functions to remove duplicates (I didn&#8217;t code this into PHP as it was a waste of time for me due to the nature of what I needed the output for).</p><p>To give you an idea how many dupes I got it was about 1k dupes our of 50k serials, so not bad. One way to get around not having duplicates (if you use this for a web based serial number process) would be to combine the generated serial with say a database column that only takes unique serials, so if you have an existing serial, simply generate another and you shouldn&#8217;t have any problems).</p><p><strong>Download the Code:</strong><br
/> <a
href="http://blog.biernacki.ca/wp-content/uploads/2007/03/generateserials.zip" title="PHP Serial Generator">PHP Serial Generator</a></p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2007/03/php-serial-number-generator/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> </channel> </rss>
