<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Michael Kimsal's weblog</title>
	
	<link>http://michaelkimsal.com/blog</link>
	<description>Web development and new media observations</description>
	<lastBuildDate>Wed, 30 May 2012 12:05:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/michael_kimsal" /><feedburner:info uri="michael_kimsal" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>36.000487</geo:lat><geo:long>-78.449217</geo:long><creativeCommons:license>http://creativecommons.org/licenses/by-nc-nd/2.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-nd/2.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>michael_kimsal</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:browserFriendly>This is an XML content feed. It is intended to be viewed in a newsreader or syndicated to another site, subject to copyright and fair use.</feedburner:browserFriendly><item>
		<title>Freelance to fulltime</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/6MiwWUI-bTI/</link>
		<comments>http://michaelkimsal.com/blog/freelance-to-full-time/#comments</comments>
		<pubDate>Wed, 30 May 2012 12:05:02 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[Job]]></category>
		<category><![CDATA[Society]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1065</guid>
		<description><![CDATA[NOTE &#8211; this is not autobiographical &#8211; I&#8217;m currently still a fulltime freelance/independent contractor and have immediate plans to make any changes in that status. I&#8217;ve had a few friends and acquaintances recently go through periods of transition, shifting from contract and freelance work to something else.  In some cases the transition was voluntary, sometimes [...]]]></description>
			<content:encoded><![CDATA[<p>NOTE &#8211; this is not autobiographical &#8211; I&#8217;m currently still a fulltime freelance/independent contractor and have immediate plans to make any changes in that status.</p>
<p>I&#8217;ve had a few friends and acquaintances recently go through periods of transition, shifting from contract and freelance work to something else.  In some cases the transition was voluntary, sometimes not.  I wanted to share some thoughts on what I&#8217;ve observed so far.</p>
<p>In more than a couple cases, friends looking out in to the job market &#8211; interviewing at companies and such &#8211; don&#8217;t have a good idea of the market rate for either their skills or the value they&#8217;d bring to a company.  To whatever extent possible, survey your friends/colleagues in an area with similar skills, get ballpark estimates from then about what they&#8217;re earning, and try to get them to indicate salary vs benefits/perks.  Money is a personal subject for many, and you may not get a full honest answer from someone.  Ask them to just give you a range.</p>
<p>If there&#8217;s hesitation or a privacy concern, rephrase the question a bit &#8211; &#8220;if I was to apply for a job doing XYZ at your company, what should I expect as a salary?&#8221;.  I don&#8217;t know too many people who would have a problem answering that &#8211; it allows them to give specifics without disclosing what they make personally, which may be higher than what they quote you based on other factors.  Knowing that most people would be making about $80k doing mid-career PHP or Python development at companies X, Y and Z will help you when talking to company K, assuming they are of similar size/region/industry, and you&#8217;ll feel more comfortable if/when the money question comes up during an interview.</p>
<p>In some cases, this question comes up very early on, primarily as a screening tactic by HR departments.  If they&#8217;re thinking $60k, but you&#8217;re thinking $150k, there&#8217;s no point in moving forward.  Unfortunately, most HR departments I&#8217;ve talked with over the years are a bit too cagey, and demand a number from you first vs just giving you a range they have in mind.  Bear in mind, if they have a range of $60-$75k, that doesn&#8217;t mean the company may not raise that range to meet you, but that usually won&#8217;t be a consideration until after a few interviews.</p>
<p>A freelance friend of mine recently landed his &#8216;dream job&#8217; doing R&amp;D work for a large company.  I was sad to see him leave the freelance world, but I knew for him it was for the best.  What worked for him?  Hard to say if it was any one thing, but he was fairly &#8216;plugged in&#8217; to the community at large &#8211; he&#8217;s blogged in public for years, spoken at many conferences, published magazine articles, and contributed some notable open source code to projects.  Whether any of those specifically were factors in this particular job offer, I can&#8217;t say, and I&#8217;m not sure he could either.  In my view, they all contributed to his profile.  When new positions come open, they&#8217;re often floated by connections in personal networks first.  Having a strong personal network, and letting people in that network know you&#8217;re looking for new options, is a very useful tool, but also one which you can&#8217;t get overnight.</p>
<p>The other side of personal networks &#8211; if someone reaches out to you with an opportunity, *acknowledge* them.  I&#8217;m speaking from experience here.  When I reach out to someone with a project or job I think would be a good fit for them, and they simply ignore me&#8230; they&#8217;re not on my good list any more.  It&#8217;s not as if I hate them personally, but I won&#8217;t bother to go out of my way to spot opps or jobs I think would be beneficial for both parties.</p>
<p>This happens to me multiple times per year &#8211; I hear someone is looking for a new job, I forward some one or more opportunities, and *nothing* ever is responded to.  This behaviour is just *odd*, and possibly may help explain why person X may not be happy in their current job or may be continuing to look for IT work when the current IT market is pretty hot.  Few projects of mine have ever failed due to technical issues &#8211; many have failed or been derailed due to personality conflicts or communication problems. Bottom line &#8211; if someone is courteous enough to be thinking of you and your needs, reply to them acknowledging that you received the information.  Even if the position isn&#8217;t necessarily what you&#8217;d consider a good fit, replying is just good manners.</p>
<p>Another friend recently transitioned from part time contractor to full time employee.  After several years contracting for one department, he was offered an expanded role full time, which seems to be suiting him quite well.  This one is not something you can easily plan for, and in his case certainly took me by surprise.  Not because he&#8217;s not capable of the work, but I didn&#8217;t think the company was looking to expand their service offerings.  Maybe they weren&#8217;t until recently &#8211; who knows?  But an opportunity came along and he was ready to transition from freelance to full time.</p>
<p>Are you looking for a full-time gig?  What&#8217;s worked for you?  What have been the stumbling blocks?  Let me know!</p>
<p>Are you freelancing, or considering it?  I&#8217;ve got a <a href="https://groups.google.com/group/webdevradio-freelancers" target="_blank">web freelancer support group</a> to help people who are getting started or looking to grow.</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/6MiwWUI-bTI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/freelance-to-full-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/freelance-to-full-time/</feedburner:origLink></item>
		<item>
		<title>Triangle Startup Weekend 2nd place winner here!</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/hyiiFbsWYhY/</link>
		<comments>http://michaelkimsal.com/blog/triangle-startup-weekend-2nd-place-winner-here/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 12:48:04 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1055</guid>
		<description><![CDATA[I&#8217;ve not been to a startup weekend in at least a couple years (2009?  2008?).  The format&#8217;s similar, but the process is (mostly) more polished than it was back then.  Given that, I still wasn&#8217;t sure what to expect on Friday evening.  I had an idea I considered pitching, but held off for two reasons.  [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve not been to a startup weekend in at least a couple years (2009?  2008?).  The format&#8217;s similar, but the process is (mostly) more polished than it was back then.  Given that, I still wasn&#8217;t sure what to expect on Friday evening.  I had an idea I considered pitching, but held off for two reasons.  1 &#8211; there were 58 other pitches &#8211; everyone got tired towards the end.  2 &#8211; I wanted to contribute on something besides my own ideas.  That was actually harder than I thought it might be.  Let me explain&#8230;</p>
<p>Like many of the people there, I have ideas, some I&#8217;ve worked on, and having other people help could potentially be a big boon.  But it can also be disaster.  If someone challenges your idea, you take it personally.  It&#8217;s human nature, and few can rise above it, especially in the short time frame you&#8217;re working under.  Better, I thought, to try to be on the other side of things for a while &#8211; contributing and improving someone else&#8217;s idea for a change.</p>
<p>So&#8230; I listened to the <a href="http://triangle.startupweekend.org/uncategorized/triangle-startup-weekend-friday-night-pitches/">pitches</a>.  I certainly appreciate that people have interests and passions and problems, I was disappointed that so many of the pitch ideas were &#8230; somewhat lame.  Some described personal problems than someone had which a) didn&#8217;t resonate with me at all and b) just seemed petty.  These are first world problems we have, when &#8220;i can&#8217;t decide where to go on vacation&#8221; is a problem you promote to a group.  I&#8217;m over simplifying here, and reviewing the pitch list just now, I&#8217;m being a bit overly harsh, but the &#8220;first world problem&#8221; mentality just felt overwhelming to me Friday.</p>
<p>There were only a handful that resonated with me personally, and of those, only one seemed *doable* over a weekend (really, just Saturday) and also didn&#8217;t strike me as something where the pitcher would actually want to be in total control and micromanage the project:  Kate Lyndegaard&#8217;s pitch on &#8220;GPS Data Capture&#8221;.  Problem was, I couldn&#8217;t find Kate after the pitches to discuss further.  We almost didn&#8217;t connect, and I&#8217;d felt like going home at that point because so few team ideas felt worth pursuing.  Oh, I also didn&#8217;t want to be one person on a team of 12 &#8211; I wanted to be on a smaller team.</p>
<p>I met Kate, and she&#8217;d come down with her husband (Simon) and his friend (Matt), and they all wanted to work on it with someone.  I became that someone.  It was an interesting dynamic &#8211; a husband/wife team, known colleague, then unknown me.  We also had Daniel on our team for a bit, but he was splitting his design talents with another team.  Daniel also contributed a great (real) use case example video he made with Simon(?) on Saturday morning.  I think this video helped cement our pitch and explain the value proposition immensely.  As much as I&#8217;d like to think my pitching skills helped, I think the video did the trick.  <img src='http://michaelkimsal.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Back to the story.  We grouped up on Friday night, and discussed the idea in more detail  It was clear Kate had thought a lot about this.  She worked in GIS, had experience with capture/collection processes, and had developed a prototype already.  Ugh.  It was in Flex.  Double ugh.  I&#8217;m not a platform bigot as much as I used to be, but my limited experience with Flex is that it&#8217;s far more complicated for me to do some things than I expect it to be.  Classic chicken/egg, really, as if I spent years with Flex, I might be faster at it.  As it stood, Kate wasn&#8217;t a hardcore dev, and wasn&#8217;t completely tied to using the Flex app (she was &#8216;Flex&#8217;ible on that point).  At that point my brain wheels started spinning.</p>
<p>The core basic platform would be a way to assign people the task of collecting defined (yet customizable) information and associating it with a specific point on a map.  On a mobile device.  That was it.  I had 24 hours to make that happen.  In retrospect, our pitch could have been &#8220;Google Maps meets Survey Monkey&#8221;, but that trivializes it some, while also bringing the baggage of connotation of both those services with it.</p>
<p>However, I had to &#8211; we had to &#8211; convince Kate to let us &#8216;dumb it down&#8217;.  Many of the things she&#8217;s been planning relate to &#8216;high end&#8217; GIS stuff: shape files, kml/kmz, extreme accuracy, etc.  The rest of us were looking at this as a consumerization play on commodity hardware, vs building a tool with professional-grade functionality.  There was a bit of pushback from Kate, but in the end we agreed as a team to explore simpler ideas for the weekend.  This was good, because that&#8217;s all I was going to be able to build anyway.</p>
<p>Tech stuff: I started on the &#8216;nm&#8217; branch of my <a href="http://github.com/mgkimsal/zfkit">zfkit</a> (preconfigured Zend Framework using Redbean) project on github, basically because it&#8217;s what I already know and have been tweaking recently.  I had considered using Grails, which in retrospect I would have done, only to make the relationship modelling even easier on the back end, BUT&#8230; I thought I might be collaborating with others, and a PHP collaborator is easier to find than a Grails one.</p>
<p>Tech stuff 2: I started immediately trying the <a href="http://mapstraction.com/">Mapstraction</a> library, because I didn&#8217;t want to tie us to one map provider&#8217;s API.  Bing/MS vs Google vs Yahoo vs etc&#8230;  I didn&#8217;t want to have to make that decision.  Turns out I wasted two hours because the one feature I wanted wasn&#8217;t implemented &#8211; having an event fire on &#8216;drag end&#8217;.  I wanted to be able to drag a marker/pin to allow people to fix any GPS vagaries that might happen with the device, as well as to get more accurate when you can&#8217;t get to the exact spot (if a spot is in a construction zone that&#8217;s roped off, for example).  So.. I went back to Google Maps.</p>
<p>And away I went.  This was only going to be a web-app &#8211; no native app in the time allotted.  This made dev time significantly faster for me.  Much of the team had iphones, so we&#8217;d go outside and test, then I&#8217;d come back in a tweak a bit.  Biggest headaches for me were dealing with the &#8216;viewport&#8217; stuff on the iphone.  The layouts never looked right.  I&#8217;d used twitter bootstrap and the &#8216;responsive&#8217; layer, but I was doing something wrong, as things weren&#8217;t &#8216;responsive&#8217; nor did they look all that great without tons of manual tweaking.  I&#8217;m obviously missing something, but didn&#8217;t have too much time to investigate.</p>
<p>By Sat night we all felt pretty good &#8211; basic working demo, slide deck to pitch &#8211; use cases mapped out, etc.  We had no specific monetization model, but did have most other things in place  We left &#8211; late again &#8211; feeling ready for Sunday.  Sunday came, and we were still pretty solid.  Some issues with getting our PPT embedded videos to play on the main demo system for the pitches (freaked me out just a bit, but Simon and Matt took care of things!), and just a lot of pitch rehearsing.  I felt like I was taking over or even dominating the practice session, as I was telling people how to say things, and I ended up taking over some sections of the pitch which weren&#8217;t originally mine, but I think it worked out OK.  I did get some solid constructive feedback from the team on some of my original ad-libbing &#8211; this was *great* because it showed me they were listening, and felt comfortable challenging what I was doing, but in a positive and constructive and polite way &#8211; a pretty rare combination, in my experience, and I loved it.  Thanks team <img src='http://michaelkimsal.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>So, about 10 minutes before all the pitches started, I was *drained*.  I felt my body just switch off &#8211; very strange feeling.  I couldn&#8217;t move, couldn&#8217;t think, and panicked that I wouldn&#8217;t be able to move, let alone present.  The rush of the past 2 days had simply drained me.  It was a weird feeling, but after about 15 minutes I got energy back, got a second wind and was good.  Until about 10 minutes before *our* pitch, when I got *really* nervous.  I didn&#8217;t want to look silly (even in a pink shirt, you gotta have standards), nor did I want to reflect poorly on the team.  They&#8217;d put a lot of work in to this too &#8211; not just this weekend, but for months beforehand.  And I didn&#8217;t want to screw it up.</p>
<p>In the end, I think I did OK (if I can find video, I&#8217;ll post it).  I flubbed a couple things, added some nervous patter (toastmasters would have dinged me for many of these!) but overall whatever we did worked enough for second place <img src='http://michaelkimsal.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />   I did get some good reaction from people later saying &#8220;good presentation&#8221; and whatnot.  Hard to know how much was politeness and how much was genuine, but there were enough that I think I and we both must have come across well.</p>
<p>We&#8217;re going to talk hopefully sometime this week about further plans on pursuing this project, and how we go about that.  If *nothing else*, it was a fun, if exhausting, experience, but it we can make something more out of this business opportunity, that&#8217;d be great too.  I&#8217;ll have to rely far more on the rest of the gang for the business execution side of things, but I trust them enough to think good things will happen.</p>
<p>Overall, great experience, and very interesting to see the progression of ideas to execution over just 48 hours.  If you can get to a Startup Weekend event, go!  You&#8217;ll have a blast!</p>
<p>Oh&#8230; our project &#8211; <a href="http://fieldflag.com" target="_blank">fieldflag.com</a></p>
<p><a href="http://fieldflag.com" target="_blank"><img class="alignnone size-full wp-image-1062" title="fieldflaglogos (2) (2)" src="http://michaelkimsal.com/blog/wp-content/uploads/2012/04/fieldflaglogos-2-2.png" alt="" width="187" height="73" /></a></p>
<p>&nbsp;</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/hyiiFbsWYhY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/triangle-startup-weekend-2nd-place-winner-here/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/triangle-startup-weekend-2nd-place-winner-here/</feedburner:origLink></item>
		<item>
		<title>Lack of fundamentals in web programming education</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/P58uqZRERg4/</link>
		<comments>http://michaelkimsal.com/blog/lack-of-fundamentals-in-web-programming-education/#comments</comments>
		<pubDate>Thu, 12 Apr 2012 11:42:09 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1053</guid>
		<description><![CDATA[Wasn&#8217;t sure what to name this entry, but have had a few discussions with some people over the past month or so about their experiences.  All of them were finishing up &#8220;web development&#8221; degree programs (under somewhat different nams) at institutions in the area, and all were talking about looking for jobs. I was dismayed [...]]]></description>
			<content:encoded><![CDATA[<p>Wasn&#8217;t sure what to name this entry, but have had a few discussions with some people over the past month or so about their experiences.  All of them were finishing up &#8220;web development&#8221; degree programs (under somewhat different nams) at institutions in the area, and all were talking about looking for jobs.</p>
<p>I was dismayed (but not necessarily shocked) at how little understanding they had about the basics trade skills that are necessary for most real world webdev work.  Now, I&#8217;m obviously passing my own judgement here, but bear with me.</p>
<p><strong>Task/project breakdown</strong> &#8211; the idea of taking a project requirement and breaking it down in to written steps &#8211; whether inline documentation, external &#8216;requirements&#8217; doc, or tracking in an issue database.  This was not something that any of these people indicated was covered in their classes or coursework.  Whether you&#8217;re working alone or on a team, this is a fundamental basic skill that is missing in most jr devs I meet &#8211; loading an editor and starting to code is the default mode.</p>
<p><strong>Version control</strong> &#8211; none of the people I spoke with had any version control in their class work.  One knew *of* version control, but his internship mentor didn&#8217;t feel it was useful because there was just two of them working, and they could easily schedule time to edit the same files on an FTP server without stepping on each other&#8217;s changes.  I don&#8217;t expect someone to be an svn master or git guru &#8211; the specific technologies may change.  One company may use clearcase, another MS TFS, another git, and so on.  The nuances of each will be different, and the dynamics of the projects will be different.  But the core value of using version control, even on projects for yourself, isn&#8217;t even being mentioned in some of these courses.</p>
<p><strong>Testing</strong> &#8211; this is going to be different based on the project, of course, but a &#8216;web degree program&#8217; that doesn&#8217;t expose students to some testing tools &#8211; selenium being the one I&#8217;d default do &#8211; is doing a poor job of equipping these students to be proficient in their craft.  Put another way, students from a degree program that exposes them to testing concepts will produce better, more desirable/employable students.  However, if *no* programs do this, then the bar is uniformly low across the board.  Exposing students to the concept of unit testing their code &#8211; xUnit style &#8211; and understanding that code is more testable when it has fewer hard coded stuff in it &#8211; these are things that should be being taught.<br />
Note that, excepting for a ref to selenium, I&#8217;m not really advocating a particular technology (and not really even in that case), but concepts.  The need for Android developers may be gone in 5 years (at least, Android as we know it know).  The need for &#8220;PHP5 developers&#8221; may be radically lower in 5 years.  The need for Ruby3 developers may be through the roof in 5 years, and there&#8217;s not even any degree programs *talking* about Ruby3, because it doesn&#8217;t exist yet.  The need for developers who understand testing and version control will definitely be strong in 5 years.  It was strong 10 years ago, although the tools were different.  It will be strong 10 years from now.</p>
<p>These universal lifelong skills that are *fundamental* to the practice of good software development are not seeming to be taught in software development courses at a college/university level.  Some programs will have an emphasis on data structure and algorithms &#8211; certainly nothing *wrong* with them &#8211; they&#8217;re universal truisms too.  But there seems to be an ignoring of the realities of day to day work.  And I&#8217;m not just talking about the 4 year &#8216;big league&#8217; schools &#8211; local community colleges that traditionally have a more practical emphasis on &#8216;vocational skills&#8217; are seemingly ignoring this.</p>
<p>I don&#8217;t remember any of these skills being in course descriptions 20 years ago in my university, and I&#8217;m not seeing much reference to the few colleges I searched about for recently, and certainly not getting this from talking to people about to graduate from &#8220;web developer&#8221; degree programs.  Is this your experience too?  Or am I just getting a statistically skewed sample?</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/P58uqZRERg4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/lack-of-fundamentals-in-web-programming-education/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/lack-of-fundamentals-in-web-programming-education/</feedburner:origLink></item>
		<item>
		<title>ning user subscription service</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/AFwsu0mARLE/</link>
		<comments>http://michaelkimsal.com/blog/ning-user-subscription-service/#comments</comments>
		<pubDate>Sat, 24 Mar 2012 22:25:31 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1050</guid>
		<description><![CDATA[I&#8217;ve been working with a local chap investigating the feasibility of adding paid user memberships to ning.com sites.  We&#8217;d settled on one model which will work for him, but is a bit manual.  I&#8217;ve got another approach in mind which would be fairly automatic.  Essentially it involves a service in the middle which sits between [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with a local chap investigating the feasibility of adding paid user memberships to ning.com sites.  We&#8217;d settled on one model which will work for him, but is a bit manual.  I&#8217;ve got another approach in mind which would be fairly automatic.  Essentially it involves a service in the middle which sits between the ning system and an external billing service such as paypal or spreedly, and uses the APIs of each to manage account access.  If a user&#8217;s paid subscription status lapses, there&#8217;s an API call on ning which disables the account.</p>
<p>I used to have a ning site (actually, I think we&#8217;ve still got a small family one I&#8217;m paying for too) but have not done much with ning since 2006/2007.  They&#8217;ve changed their focus a lot since the very early days where they&#8217;d let you run your own PHP code on their servers, and have shifted to a more locked-down API approach.  There seems to be a small but loyal set of ning network managers, and it seems to me that paid monthly subscriptions is a service many ning network owners are looking for.</p>
<p>So&#8230; are you interested?  Drop me a line if so and you can be part of the first set of test users.</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/AFwsu0mARLE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/ning-user-subscription-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/ning-user-subscription-service/</feedburner:origLink></item>
		<item>
		<title>Wedged Lumbar Vertebrae</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/GFafxI5bH-s/</link>
		<comments>http://michaelkimsal.com/blog/wedged-lumbar-vertebrae/#comments</comments>
		<pubDate>Wed, 14 Mar 2012 04:23:24 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Personal]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1048</guid>
		<description><![CDATA[Sounds painful, doesn&#8217;t it?  It is.  I&#8217;ve had this for&#8230; not exactly sure, but I&#8217;ve been having lower back pain for many months (not quite a year, but almost).  The pain was previously episodic, and generally only small spasms that hurt, but only for a few minutes &#8211; moving around and/or aspirin made it go [...]]]></description>
			<content:encoded><![CDATA[<p>Sounds painful, doesn&#8217;t it?  It is.  I&#8217;ve had this for&#8230; not exactly sure, but I&#8217;ve been having lower back pain for many months (not quite a year, but almost).  The pain was previously episodic, and generally only small spasms that hurt, but only for a few minutes &#8211; moving around and/or aspirin made it go away pretty quickly.</p>
<p>A few months ago, it started getting worse, lasting for minutes, then hours, then almost constant.  Coincidentally, I&#8217;d begun spending a lot more time in the car.  I&#8217;m not sure it was *causal*, but it surely didn&#8217;t help.</p>
<p>I relented and went to the doctor 2 weeks ago, and got an X-ray and some pain medication and muscle relaxants.  The X-ray turned up the diagnosis which graces the title of this post, with an attendant prescription for physical therapy, which I start tomorrow.  In 7 hours and 55 minutes, really.  And yet I&#8217;m up, after midnight, writing this post.  Why?  Because I was stupid and had two cups of coffee between 5 and 7 this evening, meaning I&#8217;m wide awake trying to get to sleep, with little luck.</p>
<p>If anyone reading this has had this same diagnosis, and had physical therapy that worked, please share your story.  I&#8217;d like to make the most of my visits, and anything you can share would likely help.</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/GFafxI5bH-s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/wedged-lumbar-vertebrae/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/wedged-lumbar-vertebrae/</feedburner:origLink></item>
		<item>
		<title>Not fade away</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/Qj0XNvHMnTI/</link>
		<comments>http://michaelkimsal.com/blog/not-fade-away/#comments</comments>
		<pubDate>Tue, 21 Feb 2012 13:16:49 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Blogging]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1045</guid>
		<description><![CDATA[Sheesh &#8211; it&#8217;s been way too long since I&#8217;ve posted.  I&#8217;ve had a number of topics I&#8217;d wanted to write about, but as often happens, real life gets in the way. I&#8217;ve taken on a couple of new clients over the past 2 months which are taking about 90% of my time.  In one sense [...]]]></description>
			<content:encoded><![CDATA[<p>Sheesh &#8211; it&#8217;s been way too long since I&#8217;ve posted.  I&#8217;ve had a number of topics I&#8217;d wanted to write about, but as often happens, real life gets in the way.</p>
<p>I&#8217;ve taken on a couple of new clients over the past 2 months which are taking about 90% of my time.  In one sense this is good, but it obviously leaves less free time to be blogging and podcasting and such.</p>
<p>The <a href="http://webdevradio.com">webdevradio</a> podcast has started to fade, but not intentionally, and I&#8217;ll be working on that more in March.  The little podcasting time I&#8217;ve had has often been scheduled with Manuel Lemos at <a href="http://jsclasses.org">jsclasses.org</a>  That one is fun to do because there&#8217;s  a regular co-host, but I do enjoy doing my own thing.</p>
<p>I&#8217;ve started a freelance support group, initiated by an email from a listener to the webdevradio podcast (thanks Marc!).  It&#8217;s not open to the public &#8211; we&#8217;re going to try to keep this small and focused.  If you&#8217;re an independent web freelancer looking for some technical, business or social support (need questions answered, need to vent, etc) sign up for our <a href="https://groups.google.com/group/webdevradio-freelancers">mailing list</a>.  We&#8217;re going to try to keep this at just a handful of people, and are planning to meet regularly via phone or g+ hangout to help each other through projects, grow our business, and expand our tech knowledge.  Interested in joining?  <a href="https://groups.google.com/group/webdevradio-freelancers">Sign up</a>.</p>
<p>Lots of lessons learned over the past couple of months on these new projects which I do want to share, either via the podcast or this blog, coming soon.  Thanks for your patience!</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/Qj0XNvHMnTI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/not-fade-away/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/not-fade-away/</feedburner:origLink></item>
		<item>
		<title>Dear consultant</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/NB4PqkUHEfE/</link>
		<comments>http://michaelkimsal.com/blog/dear-consultant/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 20:43:59 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Job]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1037</guid>
		<description><![CDATA[Random emails from recruiters we don&#8217;t know &#8211; we&#8217;ve all gotten them at one point or another, but does anyone ever respond to these? I just got this email. Names removed to protect&#8230; why am I protecting them? Nah &#8211; names aren&#8217;t that important. Dear Consultant, This is an excellent opportunity to join a winning [...]]]></description>
			<content:encoded><![CDATA[<p>Random emails from recruiters we don&#8217;t know &#8211; we&#8217;ve all gotten them at one point or another, but does anyone ever respond to these?</p>
<p>I just got this email. Names removed to protect&#8230; why am I protecting them? Nah &#8211; names aren&#8217;t that important.</p>
<blockquote><p>Dear Consultant,<br />
This is an excellent opportunity to join a winning team. Take your career to the next level and turn your interest into action. Apply Now! The only way to learn more is by taking the next step.</p>
<p>Job Title : PHP/ MYSQL Developer<br />
Location : Washington DC<br />
Duration : 6+ Months<br />
Rate : $45/Hr on C2C</p>
<p>Process: Goal is a phone screen followed by a 16 hour guarantee</p></blockquote>
<p>You had me at &#8220;dear consultant&#8221;.  I have a feeling that $45/hr in DC isn&#8217;t really all that hot of a rate.  They don&#8217;t seem to do any filtering at all &#8211; this certainly isn&#8217;t taking my career to any level I haven&#8217;t already been at.</p>
<blockquote><p>Role: The new CTO inherited a Content Management System that is one of the products they sell. He has his team focused on enhancement and new architecture, but he needs someone to come in and fix/ troubleshoot the bugs of the old system.</p></blockquote>
<p>So&#8230; they&#8217;ve got a mess on their hands, and the &#8220;CTO&#8221; needs a digital janitor.  For $45/hour.  Even though the existing team probably actually understands the current product/system/business much more than a green outsider would&#8230; somehow there&#8217;s enough of a need to fix bugs, and spending money on someone to ramp up from ground zero to learn the business and fix bugs is a better use of time than having the current people (who, let&#8217;s face it, probably *wrote* the damn bugs in the first place) fix the code.</p>
<blockquote><p>Skills needed:</p>
<ul>
<li>PHP/MySQL</li>
<li>Heavy troubleshooting/ de-bugging</li>
<li>Shell Scripting</li>
<li>Expression Engine v 1</li>
</ul>
<p>http://expressionengine.com/</p>
<p>He really wants this because it is what it is built on</p></blockquote>
<p>Sounds as good a reason as any, right?</p>
<blockquote><p>This person needs to be able to work independently. Clearly this is not the most exciting work, but they have the ability to join a really cool team and do cool stuff if they do well.</p></blockquote>
<p>So&#8230; they know it&#8217;s crap work, and if I agree to do a bunch of crap work, I may be able to join a really cool team (apparently too cool to maintain their own crap code). And if you do crap stuff well, apparently you&#8217;re good enough to do &#8216;cool&#8217; stuff in the future (and then pass off your own crap code to another newbie 6 months from now).</p>
<p>Really &#8211; does ANYONE ever respond to these random recruiter emails?</p>
<p>UPDATE &#8211; I just got the same email from someone at a different company, except they didn&#8217;t have the editorial about &#8220;we know it&#8217;s not exciting work&#8221;. As corny as that was, it was actually a small spark of real humanity coming through.</p>
<p>I also know the job market is really hot for IT, and remember the dark days of 7-8 years ago when things were tougher. These same emails probably worked far more effectively than they do today, but they must still work *some* otherwise they wouldn&#8217;t be sent out like this, right?</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/NB4PqkUHEfE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/dear-consultant/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/dear-consultant/</feedburner:origLink></item>
		<item>
		<title>indieconf promo – what’s is all about?</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/ktaTruExwt4/</link>
		<comments>http://michaelkimsal.com/blog/indieconf-promo-whats-is-all-about/#comments</comments>
		<pubDate>Sun, 09 Oct 2011 01:15:14 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Conferences]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1034</guid>
		<description><![CDATA[Best shot and condensing this down to 30 seconds&#8230;]]></description>
			<content:encoded><![CDATA[<p>
Best shot and condensing this down to 30 seconds&#8230;
</p>
<p><iframe width="560" height="315" src="http://www.youtube.com/embed/hzJnmW3Yk8Q" frameborder="0" allowfullscreen></iframe></p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/ktaTruExwt4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/indieconf-promo-whats-is-all-about/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/indieconf-promo-whats-is-all-about/</feedburner:origLink></item>
		<item>
		<title>indieconf – conference for web freelancers – november 19</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/5dqNAHa6eGo/</link>
		<comments>http://michaelkimsal.com/blog/indieconf-conference-for-web-freelancers-november-19/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 16:27:28 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1030</guid>
		<description><![CDATA[indieconf &#8211; the conference for independent web professionals &#8211; is fast approaching.  This year indieconf is on Saturday, November 19, in Raleigh, NC, and it will be a full day of learning from and networking with other freelance and independent web people.  Designers, developers and everyone in between are welcome to join us! This year [...]]]></description>
			<content:encoded><![CDATA[<p><a title="conference for web freelancers" href="http://indieconf.com" target="_blank">indieconf</a> &#8211; the conference for independent web professionals &#8211; is fast approaching.  This year indieconf is on Saturday, November 19, in Raleigh, NC, and it will be a full day of learning from and networking with other freelance and independent web people.  Designers, developers and everyone in between are welcome to join us!</p>
<p>This year sees some new speakers joining us &#8211; Michael Marshall, Laura Creekmore, Pepper Oldziey just to name a few, and some of our friends from year one are back for year two, including Patrick O&#8217;Keefe, Doug Foster, Neil Tortorella and many more.</p>
<p>We&#8217;ve got a couple more surprises to the schedule which aren&#8217;t announced yet, but don&#8217;t let that stop you from <a title="register for indieconf" href="http://indieconf2011.eventbrite.com" target="_blank">registering</a> now.  <img src='http://michaelkimsal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So&#8230; what is indieconf?  Some of you readers from last year may remember, but for those of you who don&#8217;t, here&#8217;s the quick backstory.</p>
<p>I&#8217;ve been a freelance web guy for the past 4 years, and I love tech conferences.  However, I got discouraged after going to some great conferences, but realizing that most of the info there didn&#8217;t really help me all that much.  Learning about new tech was great fun, but what I really needed was to understand how to write up better contracts, land better clients, deal with collections, and so on.  Now, there&#8217;s a lot of business networking groups that help deal with many of these issues, but most of those people there aren&#8217;t web people &#8211; they don&#8217;t know javascript from java &#8211; and I just never felt like I was making the most of those events.</p>
<p>From that frustration, indieconf was born as a conference that brings together web freelancers (programmers, designer, writers, etc.) who primarily work on the web ( you know who you are!) together with experts in legal, financial, accounting, marketing and business who *also* understood the web and worked with freelancers.  The combination last year was pretty good, and this year we&#8217;re looking to make it even better, based on learning from your feedback.</p>
<p>What are you waiting for?  <a href="http://indieconf2011.eventbrite.com" target="_blank">Register today</a> or learn more at <a href="http://indieconf.com" target="_blank">indieconf.com</a>.</p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/5dqNAHa6eGo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/indieconf-conference-for-web-freelancers-november-19/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/indieconf-conference-for-web-freelancers-november-19/</feedburner:origLink></item>
		<item>
		<title>Help!  My mysql queries aren’t updating!</title>
		<link>http://feedproxy.google.com/~r/michael_kimsal/~3/i0l34VZZYaA/</link>
		<comments>http://michaelkimsal.com/blog/help-my-mysql-queries-arent-updating/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 12:44:37 +0000</pubDate>
		<dc:creator>mgkimsal</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://michaelkimsal.com/blog/?p=1027</guid>
		<description><![CDATA[I just hit a snag the other day which took me a bit to work through, and thought I&#8217;d share it here.  It wasn&#8217;t overly complex, but a bit of a bugger to track down.  I&#8217;d taken over maintenance of the system, so hadn&#8217;t set it up myself, so had to do a bit of [...]]]></description>
			<content:encoded><![CDATA[<p>I just hit a snag the other day which took me a bit to work through, and thought I&#8217;d share it here.  It wasn&#8217;t overly complex, but a bit of a bugger to track down.  I&#8217;d taken over maintenance of the system, so hadn&#8217;t set it up myself, so had to do a bit of archaeology to find the root cause.</p>
<p>The symptom was quite simple &#8211; updates to some tables were not working.  The report was &#8220;I can&#8217;t update anything&#8221;.  At first blush it looked like any update or insert wasn&#8217;t working, but I wasn&#8217;t sure.  The reports had come from someone using a Drupal front end.  When I finally got in to the system, I tried to update a table, and got an error back from the CLI client &#8211; ERROR 1449.  Something like &#8220;there is no user &#8216;root@foobar&#8217; defined&#8221;.  Well, the foobar was the name of an earlier server the database was on &#8211; it had been moved to a new home about a month earlier &#8211; coincidentally, right when the update problems started.  <img src='http://michaelkimsal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My first thought was that table level permissions were preventing these user connections from update-ing &#8211; but checking the UPDATE/INSERT/DELETE privileges in the tables_priv table showed they were already allowed those privileges.  This went a bit deeper than that.</p>
<p>It took be a bit more digging, but I finally twigged that there were triggers attached to certain tables that ran on update/insert/deletions to those tables.  The triggers were written with a &#8216;definer&#8217; of &#8216;root@foobar&#8217;.  The &#8216;definer&#8217; is the user under which the trigger will run when the conditions are met (the &#8216;security context&#8217;, if you will &#8211; and I know you will!).  Because &#8216;root@foobar&#8217; didn&#8217;t exist as a user account on the new server, the triggers weren&#8217;t running and the queries triggering the triggers were also failing.  Quite a domino effect, and at first glance hard to track down.</p>
<p>This would have been easier had I been the one to actually create this whole database, but I wasn&#8217;t.  I&#8217;m just taking over maintenance.  So I got a bit of a trial by fire yesterday making this work on a live server ASAP, but managed to get through it.</p>
<p>The final solution in this case?  I created the &#8216;root@foobar&#8217; account and granted all privileges &#8211; this was/is not the best solution, and I&#8217;m going to go back and trace through all the triggers to determine what privileges are needed on what tables, and adjust accordingly.  Additionally, another approach would be to drop the triggers and recreate them, but there&#8217;s no good way to do that other than &#8216;by hand&#8217; (at least, that&#8217;s the only way I saw &#8211; perhaps some external tools help with this?).  It looks like there were a couple dozen to deal with, so my &#8216;quick&#8217; fix was much faster.</p>
<p>This is as much for my own sanity and future reference as for anyone else&#8217;s benefit, but I hope this saves *someone* in a similar situation a bit of time in the future <img src='http://michaelkimsal.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/michael_kimsal/~4/i0l34VZZYaA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://michaelkimsal.com/blog/help-my-mysql-queries-arent-updating/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://michaelkimsal.com/blog/help-my-mysql-queries-arent-updating/</feedburner:origLink></item>
	</channel>
</rss>

