<?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>FuGeRTech &#187; Technology</title>
	<atom:link href="http://fugertech.com/tag/technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://fugertech.com</link>
	<description>Enduring, Sustainable Results</description>
	<lastBuildDate>Mon, 10 Jan 2011 23:09:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>CakePHP Sessions in Applications</title>
		<link>http://fugertech.com/2010/05/12/cakephp-sessions-in-applications/</link>
		<comments>http://fugertech.com/2010/05/12/cakephp-sessions-in-applications/#comments</comments>
		<pubDate>Wed, 12 May 2010 21:04:50 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://fugertech.com/?p=520</guid>
		<description><![CDATA[Preface I have yet to run across anyone in the Google search result world that is running a CakePHP application that contains multiple sub-applications. I have been developing multiple web-based applications in CakePHP that all reside in a single virtual host. The &#8220;master&#8221; application controls access to these applications. Each application is a sub-directory of <a href='http://fugertech.com/2010/05/12/cakephp-sessions-in-applications/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h2>Preface</h2>
<p>I have yet to run across anyone in the Google search result world that is running a CakePHP application that contains multiple sub-applications. I have been developing multiple web-based applications in CakePHP that all reside in a single virtual host. The &#8220;master&#8221; application controls access to these applications. Each application is a sub-directory of the master APP/webroot (actually contains symlinks pointing back to the applications&#8217; APP/webroot and Apache +FollowSymLinks).</p>
<h2>Problem</h2>
<p>My Session-&gt;flash notices do not work when I call a redirect within these sub-applications. If I do NOT redirect, then the flash appears as expected. The moment I redirect, it&#8217;s gone.<span id="more-520"></span></p>
<h2>Solution</h2>
<p>I went through a lot of &#8220;solutions&#8221; according to people experiencing the similar problems. In doing so, I noticed that I had all the Session.cookie parameters configured the same in every APP/config/core.php file.</p>
<pre>Configure::write('Session.cookie', 'CAKEPHP');
</pre>
<p>I changed this for one of my sub-applications to something unique. Voila! It worked. I have not gone into the details as to why, but it seems apparent to me that the Session.cookie must be unique across the &#8220;master&#8221; application and any sub-applications residing within the &#8220;master&#8221; app. This allows individual session cookies to be started for each application to use/access. The &#8220;master&#8221; app is probably wiping the slate clean behind the scenes.</p>
<pre>Configure::write('Session.cookie', 'APP_NAME');</pre>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Ffugertech.com%2F2010%2F05%2F12%2Fcakephp-sessions-in-applications%2F&amp;title=CakePHP%20Sessions%20in%20Applications" id="wpa2a_2">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://fugertech.com/2010/05/12/cakephp-sessions-in-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CakePHP Custom Queries and Concatenate</title>
		<link>http://fugertech.com/2010/05/11/cakephp-custom-queries-and-concatenate/</link>
		<comments>http://fugertech.com/2010/05/11/cakephp-custom-queries-and-concatenate/#comments</comments>
		<pubDate>Tue, 11 May 2010 17:01:40 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[CakePHP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://fugertech.com/?p=492</guid>
		<description><![CDATA[Problem I recently ran into an issue where I found it much more efficient to write a custom query to gather the data I needed to perform some processing than it was to utilize CakePHP&#8217;s model/controller normal data accessing functionality. At first, I wanted to make sure that all of my related tables gathered all <a href='http://fugertech.com/2010/05/11/cakephp-custom-queries-and-concatenate/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<h2 style="text-align: justify;">Problem</h2>
<p style="text-align: justify;">I recently ran into an issue where I found it much more efficient to write a custom query to gather the data I needed to perform some processing than it was to utilize CakePHP&#8217;s model/controller normal data accessing functionality.</p>
<p style="text-align: justify;">At first, I wanted to make sure that all of my related tables gathered all of the data from each other. This created numerous objects filled with data that I may or may not use. It also resulted in the need to loop through every array multiple times to gather the final data required.</p>
<p style="text-align: justify;">So, I decided to make a custom query  in the model that would handle joining all the tables into one array. I ran into trouble where fields were being grouped into their respective models as expected by CakePHP&#8217;s model class. This caused a headache to access the data properly again.<span id="more-492"></span></p>
<h3 style="text-align: justify;">Original Custom Query</h3>
<pre>SELECT
	environments.id,
	environments.name,
	deploy_files.name,
	web_services.name,
	CONCAT(web_services.name,\'.\',users.name,\'=\',users.password) line
FROM
	deploy_files,
	environments,
	users,
	web_services,
	users_web_services,
	users_environments,
	web_services_deploy_files
WHERE
users.id = users_web_services.user_id
AND web_services.id = users_web_services.web_service_id
AND users.id = users_environments.user_id
AND environments.id = users_environments.environment_id
AND web_services.id = web_services_deploy_files.web_service_id
AND deploy_files.id = web_services_deploy_files.deploy_file_id
AND users.active = 1
AND web_services.active = 1
AND deploy_files.active = 1
AND environments.active = 1
ORDER BY
	environments.name,
	deploy_files.name,
	web_services.name,
	users.hidden DESC,
	users.name</pre>
<h3>Original Output</h3>
<pre>array (
  0 =&gt;
  array (
    'environments' =&gt;
    array (
      'id' =&gt; '1',
      'name' =&gt; 'Production',
    ),
    'deploy_files' =&gt;
    array (
      'name' =&gt; 'test.login',
    ),
    'web_services' =&gt;
    array (
      'name' =&gt; 'WebService',
    ),
    0 =&gt;
    array (
      'line' =&gt; 'WebService.security=on',
    ),
  )
)</pre>
<p style="text-align: justify;">This output is usable, but I would have preferred to have everything simplified a bit and not grouped into sub associative arrays</p>
<h2 style="text-align: justify;">Solution</h2>
<p style="text-align: justify;">I noticed the results of the CONCAT in the original query were in their own sub-array (0, zero). So, I took every column and put them in their own CONCAT and gave them an alias.</p>
<h3 style="text-align: justify;">New Custom Query</h3>
<pre>SELECT
	CONCAT(environments.id) env_id,
	CONCAT(environments.name) env_name,
	CONCAT(deploy_files.name) file_name,
	CONCAT(web_services.name) ws_name,
	CONCAT(web_services.name,\'.\',users.name,\'=\',users.password) line
FROM
	deploy_files,
	environments,
	users,
	web_services,
	users_web_services,
	users_environments,
	web_services_deploy_files
WHERE
users.id = users_web_services.user_id
AND web_services.id = users_web_services.web_service_id
AND users.id = users_environments.user_id
AND environments.id = users_environments.environment_id
AND web_services.id = web_services_deploy_files.web_service_id
AND deploy_files.id = web_services_deploy_files.deploy_file_id
AND users.active = 1
AND web_services.active = 1
AND deploy_files.active = 1
AND environments.active = 1
ORDER BY
	environments.name,
	deploy_files.name,
	web_services.name,
	users.hidden DESC,
	users.name</pre>
<h3 style="text-align: justify;">New Output</h3>
<pre>array (
  0 =&gt;
  array (
    0 =&gt;
    array (
      'env_id' =&gt; '1',
      'env_name' =&gt; 'Production',
      'file_name' =&gt; 'test.login',
      'ws_name' =&gt; 'WebService',
      'line' =&gt; 'WebService.security=on',
    ),
  )
)</pre>
<p style="text-align: justify;">Now everything is inside the single 0 sub-array. The biggest problem I see with this is that I have concocted a custom query that breaks any CakePHP naming conventions. My controller and other data consuming components now rely on <em>KNOWING</em> these specific columns from this query. However, it is a large query that generates a lot more data than has been shown in these examples. Therefore, I think it is more efficient and memory-saving than the CakePHP natural methods or even a basic custom query like the original custom query above.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Ffugertech.com%2F2010%2F05%2F11%2Fcakephp-custom-queries-and-concatenate%2F&amp;title=CakePHP%20Custom%20Queries%20and%20Concatenate" id="wpa2a_4">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://fugertech.com/2010/05/11/cakephp-custom-queries-and-concatenate/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SharePoint Designer 2007 is Free</title>
		<link>http://fugertech.com/2009/04/14/sharepoint-designer-2007-is-free/</link>
		<comments>http://fugertech.com/2009/04/14/sharepoint-designer-2007-is-free/#comments</comments>
		<pubDate>Tue, 14 Apr 2009 14:59:39 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[WSS 3.0]]></category>

		<guid isPermaLink="false">http://fugertech.com/?p=137</guid>
		<description><![CDATA[Microsoft is now offering SharePoint Designer 2007 for free!]]></description>
			<content:encoded><![CDATA[<p>Microsoft is now offering <a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;FamilyID=baa3ad86-bfc1-4bd4-9812-d9e710d44f42" target="_blank">SharePoint Designer 2007 for free</a>!</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Ffugertech.com%2F2009%2F04%2F14%2Fsharepoint-designer-2007-is-free%2F&amp;title=SharePoint%20Designer%202007%20is%20Free" id="wpa2a_6">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://fugertech.com/2009/04/14/sharepoint-designer-2007-is-free/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LogMeIn Interface v0.1</title>
		<link>http://fugertech.com/2009/02/11/logmein-interface-v01/</link>
		<comments>http://fugertech.com/2009/02/11/logmein-interface-v01/#comments</comments>
		<pubDate>Thu, 12 Feb 2009 00:38:30 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[LogMeIn.com]]></category>
		<category><![CDATA[remote desktop]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://fugertech.com/?p=94</guid>
		<description><![CDATA[I&#8217;ve been using LogMeIn.com&#8216;s LogMeIn Pro for about a year now and it is great for accessing my desktops and laptops at home from anywhere. With most people carrying laptops these days it seems useless as one would have his/her computer along for the ride. However, when I am at work and there is a <a href='http://fugertech.com/2009/02/11/logmein-interface-v01/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a href="http://www.logmein.com" target="_blank">LogMeIn.com</a>&#8216;s LogMeIn Pro for about a year now and it is great for accessing my desktops and laptops at home from anywhere. With most people carrying laptops these days it seems useless as one would have his/her computer along for the ride. However, when I am at work and there is a website blocked by WebSense or some other limitation that slows me down, I can jump onto my desktop at home and get something done without hassle. It also provides IT shops with the ability to manage hundreds of clients&#8217; PCs from the office. This can be extremely helpful!</p>
<p>One annoyance I have though is with the ActiveX based remote desktop. Unfortunately, I am stuck with IE6 at work. I am not allowed to install IE7, Firefox, Chrome or any other browser than IE6. I also prefer not to run the ActiveX plugin in full-screen mode. I like to be able to quickly and efficiently tab to another window on my local desktop. Running it from the browser requires me to hide/un-hide the address bar and standard buttons though. I have Visual Studio 2005 though. So, I made a very quick little tool that allows me to maximize the space in which the browser sits. It is a Windows application but has nothing except a web browser object that fills the entire window. The default URL is <a href="http://www.logmein.com" target="_blank">http://www.logmein.com</a>. It allows me to save my IE6 toolbar settings and maximize the space for my remote desktop!</p>
<p>I know, I know the tool is really simple and lame, but I figured not everyone has access to the development tools to make something like this. So, for the non-developers out there, I present FuGeRTech&#8217;s <a href="http://fugertech.com/wp-content/uploads/2009/02/logmein.zip" target="_blank">LogMeIn Interface v0.1</a>.</p>
<p>Code is released under the <a href="http://en.wikipedia.org/wiki/MIT_License" target="_blank">MIT License</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Ffugertech.com%2F2009%2F02%2F11%2Flogmein-interface-v01%2F&amp;title=LogMeIn%20Interface%20v0.1" id="wpa2a_8">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://fugertech.com/2009/02/11/logmein-interface-v01/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brought Back to Life: Compaq Presario 1277</title>
		<link>http://fugertech.com/2008/07/16/brought-back-to-life-compaq-presario-1277/</link>
		<comments>http://fugertech.com/2008/07/16/brought-back-to-life-compaq-presario-1277/#comments</comments>
		<pubDate>Thu, 17 Jul 2008 00:59:07 +0000</pubDate>
		<dc:creator>Tony</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[1200 series]]></category>
		<category><![CDATA[1277]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[Anti-Spyware]]></category>
		<category><![CDATA[Compaq]]></category>
		<category><![CDATA[DIMM]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[Laptop]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[Linksys]]></category>
		<category><![CDATA[Malwarebytes]]></category>
		<category><![CDATA[McAfee]]></category>
		<category><![CDATA[Memory]]></category>
		<category><![CDATA[Office 2000]]></category>
		<category><![CDATA[Presario]]></category>
		<category><![CDATA[RAM Upgrade]]></category>
		<category><![CDATA[SDRAM]]></category>
		<category><![CDATA[travel]]></category>
		<category><![CDATA[Vista]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Windows 2000]]></category>
		<category><![CDATA[Wireless]]></category>
		<category><![CDATA[WPC54GX]]></category>
		<category><![CDATA[XP]]></category>

		<guid isPermaLink="false">http://www.fugertech.com/?p=16</guid>
		<description><![CDATA[First off, welcome to my first IT related post on FuGeRTech. A few weeks ago, my (soon to be) in-laws came to town. As they brought in their bags, Tamara&#8217;s father says to me, &#8220;hey Tony, I&#8217;ve got a project for you.&#8221; I turn to see a laptop bag in his hands. I think to myself, <a href='http://fugertech.com/2008/07/16/brought-back-to-life-compaq-presario-1277/'>[...]</a>]]></description>
			<content:encoded><![CDATA[<p>First off, welcome to my first IT related post on FuGeRTech. A few weeks ago, my (soon to be) in-laws came to town. As they brought in their bags, Tamara&#8217;s father says to me, &#8220;hey Tony, I&#8217;ve got a project for you.&#8221; I turn to see a laptop bag in his hands. I think to myself, &#8220;must need an OS scrub, defrag, clean-up, etc.&#8221; I reply, &#8220;alright, what have you got there?&#8221; He pulls out the laptop. I see the first piece of it, and then it hit me&#8230; &#8220;OMG! My college laptop!&#8221; I had a 1200 series Presario my Freshman year.</p>
<p><a href="http://www.fugertech.com/wp-content/uploads/2008/07/presario-001.jpg"><img class="aligncenter size-medium wp-image-19" title="presario-001" src="http://www.fugertech.com/wp-content/uploads/2008/07/presario-001-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p><span id="more-16"></span>This machine in particular is a 1277 rev B. Here&#8217;s the specs.:</p>
<ul>
<li>Processor/Cache<br />
AMD K6-2 433MHz, 100MHz Bus, 512KB L2</li>
<li>Memory<br />
64MB SDRAM (soldered), 1 SO DIMM 144-PIN SDRAM slot (upgradeable to 192MB total)</li>
<li>Storage<br />
IDE Controller, 4.8GB Hard Drive, 3.5&#8243; 1.44MB Floppy, 24x CD-ROM</li>
<li>Display<br />
13&#8243;, SVGA (800&#215;600), 24-bit (16.7 million colors) display</li>
<li>Video<br />
Trident Blade 3D AGP, Shared Video Memory (UMA), External Display up to SXGA (1280&#215;1024)</li>
<li>Audio<br />
Sound Blaster 16/Pro, Integrated Microphone</li>
<li>Input Devices<br />
Keyboard, Trackpad</li>
<li>Telecom<br />
PCI Fax modem, 56Kbps, ITU V.90/Hayes AT command set</li>
<li>Expansion<br />
CardBus Type II, 15-pin HD-15, 4 PIN USB Type A, RS-232 DB-9, IEEE-1284 DB-25, PS/2 style mouse/keyboard, RJ-11 phone line, 3.5mm headphones, 3.5mm microphone</li>
</ul>
<p>I did not have this specifications list in front of me at the time, so seeing the 433MHz K6-2 and 64MB of RAM was funny to see at first. Onto the rest of the story. So, Tamara&#8217;s father asked me to clean it up and make it run smoothly so that Tamara&#8217;s mother can use it for gathering information on trips, etc. I power it up and the first thing I notice is&#8230;</p>
<p style="text-align: center;"><img class="size-medium wp-image-17" style="vertical-align: middle;" title="win98_logo" src="http://www.fugertech.com/wp-content/uploads/2008/07/win98_logo-300x224.jpg" alt="" width="300" height="224" /></p>
<p>That&#8217;s right folks Windows 98. Now I know what you&#8217;re thinking, &#8220;but that machine came with Windows 98 from the factory.&#8221; Well, it did. I know that. I just expected to see it running Windows 2000 I guess&#8230; So, it&#8217;s not a shock, but I haven&#8217;t seen this splash screen in so long&#8230;</p>
<p>So, the machine is running quite slow. I hop online and pray that I can find memory for this thing. Luckily, it wasn&#8217;t that hard. I found a handful of places still selling memory for this dinosaur. I ordered the largest DIMM I could (128MB). It was about $20 after shipping. This upgraded the machine to 192MB total.</p>
<p>I proceeded to attempt to install Windows XP. This was a mistake as XP was just about as slow as the old, hosed up Windows 98 (despite Microsoft&#8217;s published minimum requirements). So, I found an old Windows 2000 disk and slapped on that OS.</p>
<p>I also ordered a Linksys CardBus Type II wireless card (model: WPC54GX) from eBay for ~$20. I got it installed without a hitch and was then able to go to the Internet to get the latest Service Pack installed. I noticed a very annoying sound coming from the speakers when the wireless card was actively transferring data. After some brief Googling, I found that Compaq had a flawed design where the CardBus slots of their 1200 series and many other Presario models lacked proper EMF shielding. The sound card was susceptible to this EMF noise. The two solutions:</p>
<ol>
<li>Try to get a plastic-coated MU-Metal shield package from Compaq/HP</li>
<li>Plug in some headphones</li>
</ol>
<p>Having headphones plugged in to the laptop routed the noise to the headphones. I found an old pair of headphones that I did not care about and cut the wires off of the plug. This proved sufficient for hiding the noise while using the Internet&#8230; better than nothing I suppose.</p>
<p style="text-align: center;"><a href="http://www.fugertech.com/wp-content/uploads/2008/07/presario-003.jpg"><img class="aligncenter size-medium wp-image-20" title="presario-003" src="http://www.fugertech.com/wp-content/uploads/2008/07/presario-003-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Now the machine is up and running and ready to go with Windows 2000, Office 2000, McAfee Anti-Virus, Malwarebytes&#8217; Anti-Spyware, upgraded RAM, and a wireless card. It appears to run very smoothly. I forgot how nice and paired-down Windows 2000 is compared to XP and Vista. I really miss the simplicity of the operating system. It will make an excellent laptop for data gathering on the road.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Ffugertech.com%2F2008%2F07%2F16%2Fbrought-back-to-life-compaq-presario-1277%2F&amp;title=Brought%20Back%20to%20Life%3A%20Compaq%20Presario%201277" id="wpa2a_10">Share/Save</a></p>]]></content:encoded>
			<wfw:commentRss>http://fugertech.com/2008/07/16/brought-back-to-life-compaq-presario-1277/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

