<?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>bensangeorge.com &#187; web development</title>
	<atom:link href="http://bensangeorge.com/category/web-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://bensangeorge.com</link>
	<description></description>
	<lastBuildDate>Sat, 27 Mar 2010 16:19:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Drupal bits: Migrating remote files in Drupal</title>
		<link>http://bensangeorge.com/2009/06/drupal-bits-migrating-remote-files-in-drupal/</link>
		<comments>http://bensangeorge.com/2009/06/drupal-bits-migrating-remote-files-in-drupal/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 22:45:14 +0000</pubDate>
		<dc:creator>bensan</dc:creator>
				<category><![CDATA[drupal]]></category>
		<category><![CDATA[my thoughts on the matter]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[drupal6]]></category>
		<category><![CDATA[filesystem]]></category>
		<category><![CDATA[importing files]]></category>

		<guid isPermaLink="false">http://bensangeorge.com/?p=530</guid>
		<description><![CDATA[Recently I had to import a set of remote image files from another server but was not absolutely clear on how to get this done the Drupal way. I found the really came up with a solution of my own with drupal_http_request() which accepts an incoming URL and then executes a HTTP client request. The [...]]]></description>
			<content:encoded><![CDATA[<p>Recently I had to import a set of remote image files from another server but was not absolutely clear on how to get this done the Drupal way. I found the really came up with a solution of my own with drupal_http_request() which accepts an incoming URL and then executes a HTTP client request. The function returns the data and the response code.</p>
<p>[code lang="php"]$binary_image = drupal_http_request($url);[/code]</p>
<p>After checking the response code to make sure it was successful, use the Drupal function file_save_data() to physically store the file into whatever directory you want to store the image file in.</p>
<p>[code lang="php"]<br />
if ($binary_image-&gt;code == 200) {<br />
$filepath = file_save_data($binary_image-&gt;data, $save_to, FILE_EXISTS_RENAME);<br />
if ($filepath !== 0) {<br />
// attach other relevant information as well<br />
$fileinfo['filepath'] = $filepath;<br />
$fileinfo['filesize'] = filesize($save_to);<br />
$fileinfo = array_merge($fileinfo, getimagesize($save_to));<br />
return $fileinfo;<br />
}<br />
[/code]</p>
<p>The physical file should be saved but just because you&#8217;ve saved the file in the directory does not mean that Drupal is aware of the file. In order for that to happen, you also need the mime type, the file size, and the filepath and manually insert into a node. Once you&#8217;ve got those, you can create a node and insert those values along with the rest into it.</p>
<p>[code lang="php"]</p>
<p>// create a node<br />
// add the file's information into the node<br />
$node['field_thumbnail'] = array(<br />
array(<br />
'list' =&gt; 1,<br />
'data' =&gt; array(<br />
'alt' =&gt; '',<br />
'title' =&gt; '',<br />
),<br />
'fid' =&gt; $fid,<br />
'uid' =&gt; $user-&gt;uid,<br />
'filename' =&gt; $resource['logo_file'],<br />
'filepath' =&gt; 'files/_thumbnails/'.$resource['logo_file'],<br />
'filemime' =&gt; $info['mime'],<br />
'filesize' =&gt; $info['filesize'],<br />
'status' =&gt; 1,<br />
'timestamp' =&gt; time(),<br />
'alt' =&gt; '',<br />
'title' =&gt; '',<br />
'upload' =&gt; '',<br />
),<br />
[/code]</p>
<p>This will make Drupal recognize your files. Everything should be gravy. Hope this works for you. <strong></strong></p>
<p><strong>By the way, for all of you already on Drupal 7(lucky you), file_save_data() saves the data <span style="text-decoration: underline;">and</span> automatically updates the database with the file information.</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://bensangeorge.com/2009/06/drupal-bits-migrating-remote-files-in-drupal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>dumping mysql and importing mysql</title>
		<link>http://bensangeorge.com/2009/03/dumping-mysql-and-importing-mysql/</link>
		<comments>http://bensangeorge.com/2009/03/dumping-mysql-and-importing-mysql/#comments</comments>
		<pubDate>Mon, 30 Mar 2009 14:13:30 +0000</pubDate>
		<dc:creator>bensan</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://bensangeorge.com/?p=485</guid>
		<description><![CDATA[One thing that a developer has to do during the course of a project is to export a mysql database so that he can set up a new development environment, transfer data, etc. In mysql, the mysqldump command works great for this: mysqldump &#8211;verbose -user -h [hostname] -p[password] [database_name] &#62; file.sql When importing a sql [...]]]></description>
			<content:encoded><![CDATA[<p>One thing that a developer has to do during the course of a project is to export a mysql database so that he can set up a new development environment, transfer data, etc.</p>
<p>In mysql, the mysqldump command works great for this:<br />
mysqldump &#8211;verbose -user  -h [hostname] -p[password] [database_name] &gt; file.sql</p>
<p>When importing a sql file, just go the other way:</p>
<p>mysql -u [username] &#8211;verbose -p[password] -h [hostname] [database_name] &lt; file.sql</p>
<p>This two commands will make importing and exporting databases a snap.</p>
]]></content:encoded>
			<wfw:commentRss>http://bensangeorge.com/2009/03/dumping-mysql-and-importing-mysql/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Launching Running Expo 2.0</title>
		<link>http://bensangeorge.com/2009/02/launching-running-expo-20/</link>
		<comments>http://bensangeorge.com/2009/02/launching-running-expo-20/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 05:11:55 +0000</pubDate>
		<dc:creator>bensan</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[twit-worthy]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[LinkedIn]]></category>
		<category><![CDATA[running]]></category>
		<category><![CDATA[runningexpo]]></category>

		<guid isPermaLink="false">http://bensangeorge.com/?p=320</guid>
		<description><![CDATA[Do you love to run or jog? Training for a marathon or 5K? Running Expo allows you to connect with the Facebook user community and create your own digital running route information using Google Maps. Users can search on nearby routes that other people have saved against their profiles as well. For security purposes, we [...]]]></description>
			<content:encoded><![CDATA[<div class="mceTemp">
<dl id="attachment_334" class="wp-caption alignright" style="width: 310px;">
<dt class="wp-caption-dt"><a href="http://apps.facebook.com/runningexpo"><img class="size-medium wp-image-334" title="Running Expo" src="http://bensangeorge.com/wp-content/uploads/2009/02/runningexpo_screen-300x243.jpg" alt="running expo screenshot" width="300" height="243" /></a></dt>
</dl>
</div>
<p>Do you love to run or jog? Training for a marathon or 5K? <a title="Running Expo" href="http://apps.facebook.com/runningexpo" target="_blank">Running Expo</a> allows you to connect with the Facebook user community and create your own digital running route information using Google Maps. Users can search on nearby routes that other people have saved against their profiles as well. For security purposes, we made sure that all routes have access levels. Each route can be made viewable by everyone that is using the Facebook application [<strong>public</strong>], seen only by your Facebook friends <strong>[shared]</strong>, or be viewable only by you<strong>[private]</strong>.</p>
<p>The future of this project looks bright. A big shout-out to the lead developer of the app, <a href="http://www.sethcardoza.com" target="_blank">Seth Cardoza</a> for having the vision and bringing me on board. For now, one of the main responsibilities that I will have is to make sure that the word gets out about Running Expo and getting other people to realize it&#8217;s value in the Facebook app-space. Without giving away too much, the primary focus of the next iteration will be to hook integrate much deeper with the Facebook platform. So stay tuned.</p>
<p>Please look around and let me know what you think. I would love to hear some feedback. Hope you like the app as much as I enjoyed making it!</p>
]]></content:encoded>
			<wfw:commentRss>http://bensangeorge.com/2009/02/launching-running-expo-20/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keeping an engineering notebook</title>
		<link>http://bensangeorge.com/2009/02/keeping-an-engineering-notebook/</link>
		<comments>http://bensangeorge.com/2009/02/keeping-an-engineering-notebook/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 05:02:57 +0000</pubDate>
		<dc:creator>bensan</dc:creator>
				<category><![CDATA[bensangeorge]]></category>
		<category><![CDATA[book reviews]]></category>
		<category><![CDATA[my thoughts on the matter]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://bensangeorge.com/?p=243</guid>
		<description><![CDATA[If you took a lab in college like I did, you&#8217;d probably know how much your professors forced students to keep an engineering notebook. Well, it turns out that keeping an engineering notebook really pays off significantly. There&#8217;s a lot to gain by keeping a documented account of your work. It helps you record your [...]]]></description>
			<content:encoded><![CDATA[<p>If you took a lab in college like I did, you&#8217;d probably know how much your professors forced students to keep an engineering notebook. Well, it turns out that keeping an engineering notebook really pays off significantly. There&#8217;s a lot to gain by keeping a documented account of your work.</p>
<p><strong>It helps you record your solutions and store it</strong> in one centralized location. How many times have you come across the same problem when working and not recall that pivotal eureka moment that let you arrive at your solution? Even if your solution is not made explicity in your notebook, even retracing  the steps taken to achieve your answer will help you jog your memory faster than anything else can.</p>
<p><strong>Engineering notebooks can help you to reveal previous trends.</strong> The items that wasn&#8217;t so obvious when you are in the thick of it. Things such as individual workflow habits and the effort spent on each task.<img class="alignright size-medium wp-image-258" style="font-size: 19.5px; line-height: 28.5px;" title="ruled-moleskine-pic" src="http://bensangeorge.com/wp-content/uploads/2009/01/ruled-moleskine-pic-300x242.jpg" alt="ruled-moleskine-pic" width="199" height="160" /></p>
<p><strong>Documents a history of work as evidence</strong> Working in a creative role, it is sometimes hard to quantify your level of effort against a certain task or group of tasks. When it comes to software development, it seems there are always items that have not been taken into account of in the official project plan. We&#8217;ve all been there. There&#8217;s always &#8220;that one other thing&#8221; you have to do before you get into the main task at hand. Before you know it , the level of effort it takes to accomplish the periphery tasks snowball out of control. Next thing you know, your boss is hovering over your desk demanding to know why a task that was slated for half a day has been unresolved for a week. An engineering notebook can help you persuade them by showing them exactly how much effort is going into finding a solution. (Of course, it&#8217;s your job to estimate tasks responsibly but that&#8217;s another topic altogether).</p>
<p><span id="more-243"></span></p>
<p>You can set up your engineering notebook with as much flexibility as you require. Honestly, any notebook would do but what works for me are unlined spine-bound notebooks.  I feel that unlined ones are important because they allow me the flexibility to use the writing space any way I choose to. Doodle, scratch out, mindmap &#8211; it&#8217;s up to you. Marble composition books are nice but I personally went with a higher class of notebook(I am a bit of a snob when it comes to this sort of stuff). The <a title="Moleskine Cahier" href="http://www.moleskines.com/klmcx717.html" target="_blank">Moleskine Cahier</a> was my choice because I am such a big fan of Moleskine and their legacy. So, when I came across their soft-cover notebook series I knew it would be perfect for what I needed. A little bit on the pricey side but well worth it if you&#8217;re into quality. $16.00 will get you a package of 3.</p>
<p>On a typical day, I start off my entry in my notebook by writing the date at the top. Page numbers work for some but I like making my table of contents using dates as my points of reference instead of page numbers. That way once you complete a significant milestone, you can put the starting date and ending date in your table of contents along with a brief description of the milestone as your description. Most people make checklists of tasks to do for the day. This can either be a list of pending tasks or just an aggressive three-point agenda that simply has to get done. Another common thing to do is to start providing a small summary of a sizable activity you are doing. I find that the extra mental effort involved in writing down clearly of what I am doing, why I am doing it, and what the expected result is keeps me focused and motivated to push ahead with the task. It&#8217;s important to make these messages meaningful. We don&#8217;t need any pointless essays or formal pseudocode. Likewise, engineering notebooks should not be a place to collect meeting notes. Use scraps of paper or a mini-legal pad for that. Once you have had time to internalize the meeting notes, then you should record whatever you feel is relevant to your individual workflow. Test results,  case studies, and task-switching events are all acceptable items to place in your notebook as well. Remember that what you are trying to go for here is to capture the thought process involved in solving a particular problem. Don&#8217;t worry about seizing every minutiae of work into your notebook. It&#8217;s there if you need it and you are encouraged to use it.</p>
<p>In the end, the fact remains that you always need to be ready to capture valuable ideas when it hits you. Those precious flashes of insight come too far and few between. They cannot be forced out into stark reality, only encouraged. By keeping a recorded design journal, you&#8217;ll be able to document your work activities, encourage creative thinking and maybe even catch a glimpse of your next great idea hidden just between the lines. What are some ways that you record your design work?</p>
]]></content:encoded>
			<wfw:commentRss>http://bensangeorge.com/2009/02/keeping-an-engineering-notebook/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Keeping the team informed</title>
		<link>http://bensangeorge.com/2008/12/keeping-the-team-informed/</link>
		<comments>http://bensangeorge.com/2008/12/keeping-the-team-informed/#comments</comments>
		<pubDate>Tue, 23 Dec 2008 07:04:11 +0000</pubDate>
		<dc:creator>bensan</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://bensangeorge.com/?p=127</guid>
		<description><![CDATA[One of the most important responsibilities that any project manager has to undertake is to track and keep on top of the status of each project. That is part of the job. If you are working on a project that involves multiple teams, make it a priority to know where everyone is on their tasks. [...]]]></description>
			<content:encoded><![CDATA[<p>One of the most important responsibilities that any project manager has to undertake is to track and keep on top of the status of each project. That is part of the job. If you are working on a project that involves multiple teams, make it a priority to know where everyone is on their tasks. Do it in a way that doesn&#8217;t continually interrupt their train of thought.</p>
<p>One way of keeping track of tasks is to display the progress of each task (hours remaining till task is complete) in a location that everyone involved in the project has easy access to them. This could be anything from a poster sheet to a whiteboard or even a persistent online message board &#8211; as long as it is big enough and persistent to contain all the important tasks that require tracking. Also, make sure that each member of the team understands the purpose behind these information broadcasting tools and encourage them to update it on a regular basis. A good time to update the whiteboard may be every time code is checked in to your source management system(svn / cvs / git).</p>
<p>In the long run if the boards are respected and honored for their purpose both the project management and development teams can spend less time on &#8220;figuring out where we are&#8221; and more time trying to figure out the next steps to take towards a successful launch date.</p>
]]></content:encoded>
			<wfw:commentRss>http://bensangeorge.com/2008/12/keeping-the-team-informed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The difference between good and bad project managers</title>
		<link>http://bensangeorge.com/2008/12/the-difference-between-good-and-bad-project-managers/</link>
		<comments>http://bensangeorge.com/2008/12/the-difference-between-good-and-bad-project-managers/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 03:22:48 +0000</pubDate>
		<dc:creator>bensan</dc:creator>
				<category><![CDATA[project management]]></category>
		<category><![CDATA[software]]></category>
		<category><![CDATA[web development]]></category>

		<guid isPermaLink="false">http://bensangeorge.com/?p=48</guid>
		<description><![CDATA[Throughout my career working in the web development industry, one of the most interesting aspects is the dynamic between the project manager and the development team members. Developers can tell when they have a good project manager on board with them . They look forward to the chance of working with them. You are: comfortable [...]]]></description>
			<content:encoded><![CDATA[<p>Throughout my career working in the web development industry, one of the most interesting aspects is the dynamic between the project manager and the development team members.</p>
<p>Developers can tell when they have a good project manager on board with them . They look forward to the chance of working with them. You are:</p>
<ul>
<li>comfortable and conversant with technology. Ideally you ought to have some technical experience behind you.</li>
<li>you exercise courage and patience when interfacing with the business and technical personnel. You can handle whiny programmers, unrelenting clients, and the crushing weight of looming deadlines and you make it look easy.</li>
<li>you are constantly looking for and communicating solutions to decrease the burden of the programming team. We understand that you&#8217;re not on the same level as the dev team technically. Get involved anyway. You&#8217;ll only sound stupid the first few times but you may be able to catch a glimpse of how hard the problem truly is. This also takes a bit of courage.</li>
<li>you act as a buffer for the development team. Great project managers are resilient and don&#8217;t fold under pressure.</li>
</ul>
<p><span id="more-48"></span></p>
<p>The development team can very quickly peg a bad project manager as well. Don&#8217;t let this happen to you. As soon as a project manager is seen as not being effective at their job, the word spreads through the development team(s) like wildfire.</p>
<p>Want to get on the development team&#8217;s bad side? All you have to do:</p>
<ul>
<li> is not know what your team members are doing at any given point in time.</li>
<li>manage multiple teams assigned to the same project and stare at us blankly when asked where the other team is on their deliverable items.</li>
<li>don&#8217;t ask questions about the technology. In fact, remove yourself from as many technical related discussions as you possibly can. This is a very good move. Especially for you. <img src='http://bensangeorge.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </li>
<li>compare our progress with your other successful software projects and inquire innocently why it&#8217;s taking so long for our team to finish.</li>
<li>be at a level technically where even spreadsheets are a black art to you.</li>
<li>pretend to listen to important developer feedback and then inform the development &#8211; yet again &#8211; about the fast approaching deadline as if we were all oblivious to begin with.</li>
</ul>
<p>And there you have it. If you have most of the qualities of a good project manager, that&#8217;s great. Know that even if your team doesn&#8217;t necessarilly shower you with praises every day, they do have that respect and will readily give you their valuable time to hear your feedback. By reading this, you realize that you&#8217;ve got some qualities of a bad project manager, get better. Fast. Start now. Engineers are a very forgiving type of people. If we realize that there is a willingness to change on your part, most of us will see that and help you along. In fact, I think that there are times when developers need to step up and make sure that project managers are meeting the expectations of the entire team as well. As a developer, what would you suggest your project manager do?</p>
]]></content:encoded>
			<wfw:commentRss>http://bensangeorge.com/2008/12/the-difference-between-good-and-bad-project-managers/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
