<?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</title> <atom:link href="http://blog.biernacki.ca/feed/" rel="self" type="application/rss+xml" /><link>http://blog.biernacki.ca</link> <description>Jakub&#039;s rants and raves on Life</description> <lastBuildDate>Sat, 18 May 2013 19:39:12 +0000</lastBuildDate> <language>en-US</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.5.1</generator> <xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" /> <item><title>Samsung Epic 4G (Nexus S) running on Ting.com</title><link>http://blog.biernacki.ca/2013/05/samsung-epic-4g-nexus-s-running-on-ting-com/</link> <comments>http://blog.biernacki.ca/2013/05/samsung-epic-4g-nexus-s-running-on-ting-com/#comments</comments> <pubDate>Sat, 18 May 2013 19:39:12 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[CellPhones]]></category> <category><![CDATA[Cool Apps]]></category> <category><![CDATA[How To]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[samsung]]></category> <category><![CDATA[sph-d700]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=679</guid> <description><![CDATA[So my dear brother down in Knoxville, is all psyched up about ting.com a branded reseller for the Sprint network.  The beauty behind ting.com is that they charge you for &#8216;what you eat&#8217;, not some stupid package from AT&#38;T / T-Mobile / Verizon that barelly starts at ~$50. My brothers bill is about ~$23 a [...]]]></description> <content:encoded><![CDATA[<p>So my dear brother down in Knoxville, is all psyched up about <a
href="http://ting.com">ting.com</a> a branded reseller for the Sprint network.  The beauty behind <a
href="http://ting.com">ting.com</a> is that they charge you for &#8216;what you eat&#8217;, not some stupid package from AT&amp;T / T-Mobile / Verizon that barelly starts at ~$50.</p><p>My brothers bill is about ~$23 a month with regular usage and that is with a Samsung Galaxy SII with full messaging, data and voice minutes (you use more, you pay a bit more). Ting has a <a
title="See how much it would cost" href="https://ting.com/plans">sweet &#8216;plan&#8217; calculator you</a> can check out.</p><p>That being the case, I had an &#8216;older&#8217; Samsung Epic 4G Nexus S (SPH-D700) phone:</p><p><a
href="http://blog.biernacki.ca/wp-content/uploads/2013/05/samsungepic4.jpeg"><img
class="aligncenter size-full wp-image-680" alt="SPH-D700" src="http://blog.biernacki.ca/wp-content/uploads/2013/05/samsungepic4.jpeg" width="540" height="433" /></a></p><p>So my issue came into play because I wanted to test drive Ting, and this phone had an old OS, so I googled for alternative ROMs that I could enable and found that CyanogenMod supports it (I was overjoyed &amp; very happy to learn this fact).  The original phone supported only the 2.3.x Gingerbread OS, which is <em>ancient</em> at this point.</p><p><strong>CyanogenMod Download files:</strong><br
/> <a
href="http://download.cyanogenmod.com/?device=epicmtd">http://download.cyanogenmod.com/?device=epicmtd</a></p><p>Since I updated the OS to the latest Android Jellybean release (supported by cyanogenmod) I found myself unable to do a carrier wipe, PRL update, or Profile update. So I kept on googling and found this <a
title="temporary ROM that boots Samsung's FC09 firmware" href="http://epiccm.blogspot.com/2012/01/boot-el30-stock-from-sdcard.html?m=1" target="_blank">awesome multi-boot solution</a> for stock ROMs (without having to wipe your phone or do anything else to it). The neat thing about it is that one can simply add it to their SD card and ClockWorkMod &#8216;install from zip&#8217; which results in booting from that ROM (without an install!).</p><p>So once you boot into the stock FC09 firmware, you are able to go through all of Ting&#8217;s requirements for setting up the phone on their network.</p><p><strong>Ting Supported Devices:</strong><br
/> <a
href="https://help.ting.com/entries/22567167-Bring-Your-Sprint-Device-to-Ting-A-List-of-All-Supported-Devices">https://help.ting.com/entries/22567167-Bring-Your-Sprint-Device-to-Ting-A-List-of-All-Supported-Devices</a></p><p><strong>Ting instructions for SPH-D700:</strong><br
/> <a
href="https://help.ting.com/entries/22535762-configuring-mms-and-wimax-on-your-epic-4g-sph-d700">https://help.ting.com/entries/22535762-configuring-mms-and-wimax-on-your-epic-4g-sph-d700</a></p><p>In closing, I&#8217;ve had a really good learning experience with doing this type of modding for getting a Sprint &#8216;locked&#8217; phone onto Ting.  It was a bit challenging but it is all worth it when you realize you just brought back to life a phone that was lying in the corner unused.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2013/05/samsung-epic-4g-nexus-s-running-on-ting-com/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Got hard drive failure? Put it on ice!</title><link>http://blog.biernacki.ca/2013/02/got-hard-drive-failure-put-it-on-ice/</link> <comments>http://blog.biernacki.ca/2013/02/got-hard-drive-failure-put-it-on-ice/#comments</comments> <pubDate>Thu, 28 Feb 2013 04:36:27 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[Hardware]]></category> <category><![CDATA[How To]]></category> <category><![CDATA[SysAdmin]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[backup]]></category> <category><![CDATA[data loss]]></category> <category><![CDATA[data recovery]]></category> <category><![CDATA[freeze]]></category> <category><![CDATA[hard drive recovery]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=673</guid> <description><![CDATA[Currently as I write this, my WD 750GB is sitting in the freezer, and waiting for another round of quick copying (frozen recovery? eh..)]]></description> <content:encoded><![CDATA[<p>So in the last 3 months, my aging hard drives started to fail on me.  I actually lost one after the other in about 2 months time, which really got me ticket off (as you can imagine, losing hard drives is NEVER fun!  I lost a Seagate 750GB 7200.11 and a Western Digital 750GB drive (in that order).</p><p>Currently as I write this, my WD 750GB is sitting in the freezer, and waiting for another round of quick copying (frozen recovery? eh..).  Maybe like you, I often wondered if putting your drive in the freezer actually help you with any sort of recovery, and having never tried it before, I thought &#8220;what the hell? why not, its pretty much dead anyways!?&#8221;.</p><p><strong>Some background:</strong></p><p>My WD750 hard drive suddenly died and took all my media with it (majority of it, that is personal like photos, music, and documents, I backed up regularly to my basement server), however a bunch of stuff was not backed up, so I was not pleased when the drive just &#8216;dropped&#8217; out of windows.  It wouldn&#8217;t show up in Windows 7 management, and most certainly not in &#8216;My computer&#8217;.  But I did find that it would show up upon boot in BIOS.  So with that shred of hope, I gave Ubuntu a try (to see if Linux would see the drive).</p><p><strong>The plan:</strong></p><p>With a dead drive, and very little hope, I quickly downloaded Ubuntu 12.10, and set it up on a spare USB drive.  Rebooted my machine and tried out Ubuntu&#8217;s LIVE feature (basically full OS running off my spare USB pen drive).  My plan to see if Linux would mount the drive and ultimately make it accessible.</p><p><strong>The outcome:</strong></p><p>I was pleasantly surprised to learn that INDEED Ubuntu (even off the live usb) was able to see my drive (as well as my other regular drives).  This allowed me to try to get at the &#8216;failed&#8217; hdd.  But alas, I could only pull a couple gigs off the drive before it gave me I/O errors.<br
/> I ended up sticking the HDD into a zip-lock bag, and sticking it in the freezer for 20 min or so.  After having the drive get ice cold, I would quickly run back to the machine, HOT SWAP it in (its a sata drive after all), and have it re-mount, which allowed me about ~10 min or 30gigs more of data transfer, before it would click or spin wildly (signaling its reheating).</p><p>I am not sure if the cold helped &#8216;harden&#8217; the drives insides, or components, or maybe tighten up its lubrication, and I really don&#8217;t care! All I can tell you is that its a stupid thing, sticking your drive in the freezer, BUT it works!</p><p>So if you find yourself wishing you backed up that data sooner, and are about to take your anger out on a piece of metal (by tossing it out a window per say), freeze it first! You might just get a few more minutes of life to say &#8220;goodbye!&#8221;.</p><p>Happy recovery!</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2013/02/got-hard-drive-failure-put-it-on-ice/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>A3M Updated and Re-factored to use Twitter Bootstrap</title><link>http://blog.biernacki.ca/2013/02/a3m-updated-and-re-factored-to-use-twitter-bootstrap/</link> <comments>http://blog.biernacki.ca/2013/02/a3m-updated-and-re-factored-to-use-twitter-bootstrap/#comments</comments> <pubDate>Thu, 07 Feb 2013 01:44:05 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[CSS]]></category> <category><![CDATA[GitHub]]></category> <category><![CDATA[Javascript]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[a3m]]></category> <category><![CDATA[fork]]></category> <category><![CDATA[github]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=664</guid> <description><![CDATA[Well it took a lot of work, and some holiday time (over Xmas) but I squeezed together time to tackle gutting the aging A3M application. My initial commit of what I am calling &#8216;A3M &#8211; Bootstrapped&#8217; is available for forking @ Github here: https://github.com/donjakobo/A3M If you haven&#8217;t had any experience designing with Twitter Bootstrap, I [...]]]></description> <content:encoded><![CDATA[<p>Well it took a lot of work, and some holiday time (over Xmas) but I squeezed together time to tackle gutting the aging A3M application. My initial commit of what I am calling &#8216;A3M &#8211; Bootstrapped&#8217; is available for forking @ Github here:<br
/> <a
title="https://github.com/donjakobo/A3M" href="https://github.com/donjakobo/A3M">https://github.com/donjakobo/A3M</a></p><p>If you haven&#8217;t had any experience designing with <a
href="http://twitter.github.com/bootstrap/index.html" title="Twitter Bootstrap">Twitter Bootstrap</a>, I would suggest you give it a look, as it is a sleek, intuitive, and powerful front-end framework for faster and easier web development.  I know personally it has saved me countless hours for personal projects.</p><p>A3M has been a long time running library (mind you with hands-free support) by <a
href="https://github.com/pengkong" title="@pengkong">@pengkong</a> on <a
href="https://github.com/pengkong/A3M-for-CodeIgniter-2.0" title="https://github.com/pengkong/A3M-for-CodeIgniter-2.0"></a>, that I&#8217;ve tried to support.  Finally I took it upon myself to gut the library and add new functionality as well as get rid of the modular approach the library initially held, which made sense architecturally but not from a site maintainers view, as you needed to dive into the module subfolder to edit minor things for account details and views.</p><p>Anyway, take a look at my &#8216;Bootstrapped&#8217; version, fork it if you want to help out.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2013/02/a3m-updated-and-re-factored-to-use-twitter-bootstrap/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>A3M Updated to latest CodeIgniter v2.1.2 named PB&amp;J</title><link>http://blog.biernacki.ca/2012/07/a3m-updated-to-latest-codeigniter-v2-1-2-named-pbj/</link> <comments>http://blog.biernacki.ca/2012/07/a3m-updated-to-latest-codeigniter-v2-1-2-named-pbj/#comments</comments> <pubDate>Tue, 24 Jul 2012 06:49:08 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[GitHub]]></category> <category><![CDATA[In the News]]></category> <category><![CDATA[PHP]]></category> <category><![CDATA[a3m]]></category> <category><![CDATA[github]]></category> <category><![CDATA[update]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=650</guid> <description><![CDATA[As of tonight I&#8217;ve happily updated the long idle A3M project on github. You can check it out here: https://github.com/pengkong/A3M-for-CodeIgniter-2.0 Also, I will be updating the official A3M guide later (as its almost 3am as I write this). Check it out, and enjoy. Feel free to fork and offer bugs, enhancements and suggestions to make [...]]]></description> <content:encoded><![CDATA[<p>As of tonight I&#8217;ve happily updated the long idle A3M project on github.</p><p><strong>You can check it out here:</strong><br
/> <a
href="https://github.com/pengkong/A3M-for-CodeIgniter-2.0">https://github.com/pengkong/A3M-for-CodeIgniter-2.0</a></p><p>Also, I will be updating the official A3M guide later (as its almost 3am as I write this).</p><p>Check it out, and enjoy.  Feel free to fork and offer bugs, enhancements and suggestions to make it even better!</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2012/07/a3m-updated-to-latest-codeigniter-v2-1-2-named-pbj/feed/</wfw:commentRss> <slash:comments>2</slash:comments> </item> <item><title>Adding a non-standard WIFI card into an IBM T61 laptop</title><link>http://blog.biernacki.ca/2012/07/adding-a-non-standard-wifi-card-into-an-ibm-t61-laptop/</link> <comments>http://blog.biernacki.ca/2012/07/adding-a-non-standard-wifi-card-into-an-ibm-t61-laptop/#comments</comments> <pubDate>Wed, 04 Jul 2012 17:44:02 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[Apple]]></category> <category><![CDATA[How To]]></category> <category><![CDATA[SysAdmin]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[hackintosh]]></category> <category><![CDATA[ibm]]></category> <category><![CDATA[lenovo]]></category> <category><![CDATA[T61]]></category> <category><![CDATA[wifi]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=640</guid> <description><![CDATA[If you&#8217;ve the owner of a Lenovo IBM T61 7XXX model, and ever tried upgrading the internal mini pci-e card to something like 802.11BGN (N) you will find yourself running into an error that says: Well this error is because IBM added a whitelist to its BIOS, which basically means you are limited to only [...]]]></description> <content:encoded><![CDATA[<p>If you&#8217;ve the owner of a Lenovo IBM T61 7XXX model, and ever tried upgrading the internal mini pci-e card to something like 802.11BGN (N) you will find yourself running into an error that says:</p><pre class="brush: xml; title: ; notranslate">
1802 - Unauthorized network card is plugged in - power off and remove the mini pci network card
</pre><p>Well this error is because IBM added a whitelist to its BIOS, which basically means you are limited to only a few authorized mini pci-e devices, so the moment you see this error it means you cannot get past it. The error simply halts the boot process and won&#8217;t let you proceed until you remove the &#8216;offending&#8217; device from your laptop.</p><p>There are a number of ways to thwart this error, but the easiest that I&#8217;ve found is via this post:<br
/> <a
href="http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443" title="Modded BIOS T61 Lenovo IBM">http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-8.html#post6501443</a></p><p>I was able to quickly update my BIOS by using the modified BIOS v 2.29-1.08.  Inside the archive (that you download) is an `.ISO` file that you want to burn (using a utility like IMGBURN) to a blank CD-R.  Boot your laptop using this CD-R and then it will run the flash process and restart your machine (as always the necessary precautions are: grab the right bios file! I&#8217;m not responsible for you messing up your system). If you need a more hand holding approach to this, just follow <a
href="http://forum.notebookreview.com/lenovo-ibm/459591-t61-x61-sata-ii-1-5-gb-s-cap-willing-pay-solution-12.html#post6510253" title="Quick BIOS update guide">the quick guide</a>.</p><p>Once I flashed the BIOS, I was able to confirm that I was running 2.29-1.08 via the BIOS config (F1 on boot).</p><p>This allowed me to utilize a cheap Monoprice WIFI device for my hackintosh build (which worked great, altho the device shows up as an ETH2 device, and not wifi, but still works 100%). If you want to get the same device, <a
href="http://www.monoprice.com/products/product.asp?c_id=105&#038;cp_id=10501&#038;cs_id=1050103&#038;p_id=6417&#038;seq=1&#038;format=2" title="Monoprice WIFI Adapter (mini pci-e)">here are the details</a>. If you are also making a Hackintosh, you can grab the necessary files for this device from this thread: <a
href="http://www.tonymacx86.com/viewtopic.php?f=19&#038;t=42271" title="Hackintosh Guide">http://www.tonymacx86.com/viewtopic.php?f=19&#038;t=42271</a>.</p><p>Enjoy!</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2012/07/adding-a-non-standard-wifi-card-into-an-ibm-t61-laptop/feed/</wfw:commentRss> <slash:comments>4</slash:comments> </item> <item><title>Write your code correct the first time around</title><link>http://blog.biernacki.ca/2012/06/write-your-code-correct-the-first-time-around/</link> <comments>http://blog.biernacki.ca/2012/06/write-your-code-correct-the-first-time-around/#comments</comments> <pubDate>Thu, 28 Jun 2012 17:49:54 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[How To]]></category> <category><![CDATA[Thoughts & Rants]]></category> <category><![CDATA[clean code]]></category> <category><![CDATA[codeigniter]]></category> <category><![CDATA[framework]]></category> <category><![CDATA[logic]]></category> <category><![CDATA[mvc]]></category> <category><![CDATA[proper programming]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=630</guid> <description><![CDATA[After hanging around on StackOverflow.com for so long, I&#8217;ve started seeing bad programming patterns in the way new posters go about creating code, specifically using CodeIgniter, an MVC Framework. The code they write almost always shows a general lack of understanding of MVC design. A typical &#8216;bad programmer&#8217; will create a controller, which would just [...]]]></description> <content:encoded><![CDATA[<p>After hanging around on <a
href="StackOverflow.com">StackOverflow.com</a> for so long, I&#8217;ve started seeing bad programming patterns in the way new posters go about creating code, specifically using <a
href="http://codeigniter.com">CodeIgniter</a>, an MVC Framework. The code they write almost always shows a general lack of understanding of MVC design.</p><p>A typical &#8216;bad programmer&#8217; will create a controller, which would just call a view:</p><pre class="brush: php; title: ; notranslate">
function index()
{
	$this-&gt;load-&gt;view('process_something_page');
}
</pre><p>and then their view would be jam packed with business logic, database queries, and very much a glob of code that defeats the whole purpose of utilizing an MVC framework.</p><p><strong>WAKE UP!</strong></p><ul><li>Keep your Controllers skinny, and free of business logic</li><li>Stick your business logic, into your MODELS</li><li>Your VIEW should output results/output generated from your MODELS</li><li>As a programmer, do it RIGHT from the START, don&#8217;t say &#8220;I&#8217;ll fix it later&#8221;, later never comes!</li><li>If you don&#8217;t know where something should go, ask (StackOverflow is a great place to ask, make sure to properly define your question tho)</li></ul><p>I&#8217;ve created a brief and somewhat comical view of what you should do to keep your MVC pattern clean. Just remember, don&#8217;t put it all in the VIEW, even if you are just doing a &#8216;test&#8217;, be smart about where you put things.</p><p><strong>Controller</strong></p><ul><li>Control the flow of logic, when business logic is needed, utilize a model, once output is gathered, call a view</li><li>Don&#8217;t add business logic here that results in a if/else check and logic, leave that for the model, return the result to the controller</li><li>Keep your controller skinny, if you are calculating something, it shouldn&#8217;t be in there.</li></ul><p><strong>Model</strong></p><ul><li>Where your business logic goes, if you have conditions that need to be met, and data pulled on those conditions, let the model handle that lifting.</li><li>Most people associate a model with a database interaction, while true, that&#8217;s not all its used for. Keep that in mind.</li><li>Don&#8217;t format your data output for HTML, or anything specific, a models data object should be generic. Styling data should be done in the view.</li></ul><p><strong>View</strong></p><ul><li>Free of logic, should not have any validation, error checking, or database queries.</li><li>Focus on displaying data provided by the model, style the output here.</li><li>A view should be flexible enough that output works for command line output, web app output, or mobile output without much work.</li></ul><p>You might ask yourself, &#8220;Why does it matter that I use proper MVC patterns?&#8221;, and in truth, it doesn&#8217;t matter unless you work in a group, or if you are the type of person that wants to maintain code in the future. As always, if I misrepresented something, or am flat out wrong, let me know. Post your comments below.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2012/06/write-your-code-correct-the-first-time-around/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Want to pretend you have an iPhone capable of 4g? Well install 5.1, available now!</title><link>http://blog.biernacki.ca/2012/03/want-to-pretend-you-have-an-iphone-capable-of-4g-well-install-5-1-available-now/</link> <comments>http://blog.biernacki.ca/2012/03/want-to-pretend-you-have-an-iphone-capable-of-4g-well-install-5-1-available-now/#comments</comments> <pubDate>Thu, 08 Mar 2012 01:30:27 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[Apple]]></category> <category><![CDATA[Thoughts & Rants]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=610</guid> <description><![CDATA[If you've always wanted 4G speeds on your iPhone 4/4s, well now you can.. err.. somewhat, umm have it.  As of today's release of 5.1  iOS.]]></description> <content:encoded><![CDATA[<p>If you&#8217;ve always wanted 4G speeds on your iPhone 4/4s, well now you can.. err.. somewhat, umm have it.  As of today&#8217;s release of 5.1  iOS. Your 3G symbol (if you are on AT&#038;T) will be changed to 4G. Why you might wonder? Well its just another bait and switch from Apple &#038; your friends at AT&#038;T.</p><p>Oh don&#8217;t worry it will still be painfully slow, and you will feel like you are driving a Chevette with a BMW logo on it.  But thats how the marketing works these days, its a typical bait and switch.</p><p><strong>But I guess you can see a screenshot to be sure:</strong></p><p><img
src="http://blog.biernacki.ca/wp-content/uploads/2012/03/iphone_now_4G.jpg" alt="" title="iphone_now_4G" width="640" height="766" class="aligncenter size-full wp-image-611" style="margin-bottom: 30px;" /></p><blockquote><p>The iPhone 4S supports HSPA+ networks up to 16 megabits per second, which is just enough to count as 4G in AT&#038;T’s book as well as that of the FCC (even though HSPA+ is not technically a fourth-generation technology like LTE). When the iPhone 4S first launched in October, 2011, Apple revealed that it was working together with AT&#038;T to make the 4G indicator show up.</p></blockquote><p><em>Quote Source:</em> <a
href="http://venturebeat.com/2012/03/07/want-to-pretend-your-iphone-4s-is-4g-just-install-ios-5-1/" target="_blank">http://venturebeat.com/2012/03/07/want-to-pretend-your-iphone-4s-is-4g-just-install-ios-5-1/</a></p><p>Personally, I think I am going to call up AT&#038;T support, and demand a reduction in my monthly fee, if I am paying for 4G service and getting pitiful throughput in my area, which supposedly has `great` coverage. Yet another reason to love AT&#038;T, now with more market speak.</p><p>Its just funny, that nothing improves for the throughput but they have reason enough to change the symbol to something that is <em><strong>INVALID</strong></em>.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2012/03/want-to-pretend-you-have-an-iphone-capable-of-4g-well-install-5-1-available-now/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>The iPhone Is a Nightmare For Carriers</title><link>http://blog.biernacki.ca/2012/02/the-iphone-is-a-nightmare-for-carriers/</link> <comments>http://blog.biernacki.ca/2012/02/the-iphone-is-a-nightmare-for-carriers/#comments</comments> <pubDate>Thu, 09 Feb 2012 03:10:39 +0000</pubDate> <dc:creator>Jakub</dc:creator> <category><![CDATA[Apple]]></category> <category><![CDATA[In the News]]></category> <category><![CDATA[Thoughts & Rants]]></category> <guid
isPermaLink="false">http://blog.biernacki.ca/?p=600</guid> <description><![CDATA[According to the latest EBITDA numbers from AT&#038;T, Sprint, and Verizon, the subsidies they have to pay Apple in order to carry the iPhone are drastically reducing their profits.]]></description> <content:encoded><![CDATA[<p>I seen this article on slashdot, and it made me smile:</p><blockquote><p>&#8220;According to the latest EBITDA numbers from AT&#038;T, Sprint, and Verizon, the subsidies they have to pay Apple in order to carry the iPhone are drastically reducing their profits. From the Article: &#8216;&#8221;A logical conclusion is that the iPhone is not good for wireless carriers,&#8221; says Mike McCormack, an analyst at Nomura Securities. &#8220;When we look at the direct and indirect economics that Apple has managed to extract from the carriers, the carrier-level value destruction is quite evident.&#8221;&#8216; So one money sucking leech has attached itself to another money sucking leech?&#8221;</p></blockquote><p>I love the last bit about one leech onto another leech <img
src='http://blog.biernacki.ca/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p><p>Somehow I have no pitty for the likes of AT&#038;T &#038; telco&#8217;s, for years they&#8217;ve f&#8217;d over customers, now they are getting burned on their bottom line, and they can&#8217;t seem to pass it on to consumers as they are being squeezed from both sides.</p> ]]></content:encoded> <wfw:commentRss>http://blog.biernacki.ca/2012/02/the-iphone-is-a-nightmare-for-carriers/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <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>10</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>3</slash:comments> </item> </channel> </rss>