<?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>Obstructed Graph &#187; Programming</title>
	<atom:link href="http://robertschultz.org/tag/programming/feed/" rel="self" type="application/rss+xml" />
	<link>http://robertschultz.org</link>
	<description>A blog managed and maintained by a software engineer living in Fresno, California.</description>
	<lastBuildDate>Mon, 09 Aug 2010 07:13:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>59 Days of Code Competition Ends Today</title>
		<link>http://robertschultz.org/2010/06/22/59-days-of-code-competition-ends-today/</link>
		<comments>http://robertschultz.org/2010/06/22/59-days-of-code-competition-ends-today/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 22:47:08 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Fresno]]></category>
		<category><![CDATA[59 Days of Code]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://robertschultz.org/?p=1155</guid>
		<description><![CDATA[Today marks the end of the 59 days for the local 59 Days of Code contest behind held here in Fresno.]]></description>
			<content:encoded><![CDATA[<p>Today marks the end of the 59 days for the local <a href="http://59daysofcode.com/">59 Days of Code</a> contest behind held here in Fresno.  I was really partial to this contest as it helped promote local developers and entrpranurial talent but alas I had to drop out.  I just had no time the past month or so to do any code because of some things going on in my life on top of a hefty work schedule since we&#8217;re in QA phase of testing.</p>
<p>So tonight I am going down to watch who will win the contest (rooting for my friends <a href="http://outofeggs.com/">Out of Eggs</a> and <a href="http://mealzing.com/">MealZing!</a>) and I am wishing luck to everyone.</p>
<p>On a positive note, I have had more time now to put some focus back into <a href="http://auralify.com/">Auralify</a> and I wrapped up most of the design this past weekend.  My goal is to have most of the application written in the next month with a beta expected shortly after that.</p>
<p>Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2010/06/22/59-days-of-code-competition-ends-today/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Fresno Technology Companies: The Definitive List</title>
		<link>http://robertschultz.org/2009/10/02/fresno-technology-companies-the-definitive-list/</link>
		<comments>http://robertschultz.org/2009/10/02/fresno-technology-companies-the-definitive-list/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 17:56:51 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Fresno]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[IT]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Technology Companies]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=574</guid>
		<description><![CDATA[So I was talking the other day with someone on how there really is no way for people to clearly get an overview of all the technology companies here in Fresno.  This could be software companies, hospitals, manufacturing, basically any company located here in Fresno that has an IT or Programming department.  Everything in this [...]]]></description>
			<content:encoded><![CDATA[<p>So I was talking the other day with someone on how there really is no way for people to clearly get an overview of all the technology companies here in Fresno.  This could be software companies, hospitals, manufacturing, basically any company located here in Fresno that has an IT or Programming department.  Everything in this city is so disconnected and scattered that it&#8217;s almost impossible to locate everywhere.  This would be a perfect tool for people who may have been laid off of their job and are trying to find companies here in town who are looking a software programmer.  Also, it could help keep programmers local as they wouldn&#8217;t venture out of Fresno to look for a job.</p>
<p>What do you think?  I would like to collect as many companies here in Fresno as I can and I will compile this into a separate page on my site called &#8220;Fresno Technology Companies&#8221;.  Here is what I&#8217;m looking for:</p>
<p><strong>Name of the Company<br />
Website<br />
What skills they utilize like ASP.NET, Python, Java, etc.<br />
Are they hiring?</strong></p>
<p>I think this would be a great tool to use and keep updated, and I would try my best to keep this list refreshed as much as possible.  If you have any technology companies in Fresno to share, please do by leaving a comment!</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/10/02/fresno-technology-companies-the-definitive-list/feed/</wfw:commentRss>
		<slash:comments>31</slash:comments>
		</item>
		<item>
		<title>Interacting with Hardware Using Internet Explorer</title>
		<link>http://robertschultz.org/2009/08/27/interacting-with-hardware-using-internet-explorer/</link>
		<comments>http://robertschultz.org/2009/08/27/interacting-with-hardware-using-internet-explorer/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 06:12:15 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[ActiveX]]></category>
		<category><![CDATA[Adobe Flex]]></category>
		<category><![CDATA[ClickOnce]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=365</guid>
		<description><![CDATA[Today most of us think of applications solely interacting with the browser in a very sand-boxed, high-level way.  Because normally today our browsers hardly ever interact with our local file-system or hardware in any way since it presents a high security risk for your users. But what about behind a corporate intranet?  A lot of [...]]]></description>
			<content:encoded><![CDATA[<p>Today most of us think of applications solely interacting with the browser in a very sand-boxed, high-level way.  Because normally today our browsers hardly ever interact with our local file-system or hardware in any way since it presents a high security risk for your users.</p>
<p>But what about behind a corporate intranet?  A lot of times companies will need to interface with more advanced features of the browser and interact with related hardware.  This is a situation I&#8217;ve come to face and am curious about some of the options.  We need a way for the browser to communicate with connected hardware such as printers, cash drawers and things like that.  This is what we&#8217;ve thought of so far.</p>
<h3>VB6 COM / ActiveX</h3>
<p>This is how it&#8217;s been done in the past but it just doesn&#8217;t feel right.  VB6 is an unsupported product, and is almost impossible to even find the updates for it (SP6 download returned a 404 on microsoft.com).  Also to make any changes to your code you need to have a copy of VB6 installed always and will have to support this for the lifetime of your product.</p>
<p>But on the plus side, everyone running a modern day version of windows will have the VB6 runtimes installed already.  But what if Microsoft cancels support of ActiveX in the future?  And also there are still libraries out there that work with Vb6 and still supported.</p>
<h3>Adobe Flex</h3>
<p>I haven&#8217;t done much testing with Adobe Flex, but I do know it has printing support.  But then, how flexible and robust is it?  Are their security and permission issues when needing to interface with the local devices?</p>
<h3>Silverlight</h3>
<p>I believe this option is not feasible since Silverlight 3 still doesn&#8217;t have access to printing which we need.  Even though you can give user access now to local files it&#8217;s still not to the point of full trust.</p>
<h3>ClickOnce WinForms Application</h3>
<p>From a developer point of view, I think this is the best option.  You get to determine the trust the application requires, which gives you a sandbox environment retaining the ability to work with locally connected devices still.  But you lose the ability keep the user within the browser 100% since they&#8217;d need to launch the application.  But then again you get to provide automatic updates and a efficient user interface.  Also with this option we could use WPF and more advanced features of the .NET framework.</p>
<p>What have you done in these scenarios?  Has anyone else ever found alternatives to interface with hardware directly in the browser?</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/08/27/interacting-with-hardware-using-internet-explorer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Multiple Roles with Authorize Attribute using Enums in ASP.NET MVC</title>
		<link>http://robertschultz.org/2009/07/29/multiple-roles-with-authorize-attribute-using-enums-in-asp-net-mvc/</link>
		<comments>http://robertschultz.org/2009/07/29/multiple-roles-with-authorize-attribute-using-enums-in-asp-net-mvc/#comments</comments>
		<pubDate>Wed, 29 Jul 2009 15:49:18 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=255</guid>
		<description><![CDATA[In MVC, if you have ever used the [Authorize] attribute you will know that there are two options of using it by decorating your controller or action.  Either with pre-determined users: [Authorize(Users = &#34;Bob, John&#34;)] public class OrdersController : Controller { } Or with pre-determined roles: [Authorize(Roles = &#34;Admin, User&#34;)] public class OrdersController : Controller [...]]]></description>
			<content:encoded><![CDATA[<p>In MVC, if you have ever used the [Authorize] attribute you will know that there are two options of using it by decorating your controller or action.  Either with pre-determined users:</p>
<pre class="brush: csharp;">
[Authorize(Users = &quot;Bob, John&quot;)]
public class OrdersController : Controller
{
}
</pre>
<p>Or with pre-determined roles:</p>
<pre class="brush: csharp;">
[Authorize(Roles = &quot;Admin, User&quot;)]
public class OrdersController : Controller
{
}
</pre>
<p>But what if you want to not use untyped strings as your roles?  Specifying strings throughout the application to me seems unsafe especially if we are using these roles through hundreds of classes or action methods.  Well, the problem is if you have an Enum with your security roles like I do:</p>
<pre class="brush: csharp;">
public enum UserRoles
{
	Admin,
	User
}
</pre>
<p>You can&#8217;t specify multiple in this case because you can&#8217;t concatenate them properly.  This is where a custom AuthorizationAttribute comes in handy.  I created the following:</p>
<pre class="brush: csharp;">
public class MultipleEnumRolesAuthorizeAttribute : AuthorizeAttribute
{
	public new UserRoles Roles;

	protected override bool AuthorizeCore(HttpContextBase httpContext)
	{
		if (httpContext == null)
			throw new ArgumentNullException(&quot;httpContext&quot;);

		if (!httpContext.User.Identity.IsAuthenticated)
			return false;

		string[] userRoles = System.Web.Security.Roles.GetRolesForUser();
		foreach (string userRole in userRoles)
		{
			Constants.UserRoles role = (Constants.UserRoles) Enum.Parse(typeof(Constants.UserRoles), userRole);

			if ((Roles &amp; role) == role)
			{
				return true;
			}
		}

		return false;
	}
}
</pre>
<p>Now, all you have to do is decorate your controller or action with the new attribute and use bitwise operators to pass multiple roles.</p>
<pre class="brush: csharp;">
[MultipleEnumRolesAuthorizeAttribute(Roles = Constants.UserRoles.OrderManager | Constants.UserRoles.Admin)]
public class OrdersController : Controller
{
}
</pre>
<p>Hope this helps someone out there.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/07/29/multiple-roles-with-authorize-attribute-using-enums-in-asp-net-mvc/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>First Reactions to Ruby on Rails</title>
		<link>http://robertschultz.org/2009/07/28/first-reactions-to-ruby-on-rails/</link>
		<comments>http://robertschultz.org/2009/07/28/first-reactions-to-ruby-on-rails/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 17:52:50 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=245</guid>
		<description><![CDATA[One of my goals for this year was to learn Ruby or Ruby on Rails.  A lot of companies are using this newer technology to quickly write, deploy and test their web applications and since I&#8217;m a web developer it only made sense I learned what all of the hoopla was about. So far after [...]]]></description>
			<content:encoded><![CDATA[<p>One of my goals for this year was to learn Ruby or Ruby on Rails.  A lot of companies are using this newer technology to quickly write, deploy and test their web applications and since I&#8217;m a web developer it only made sense I learned what all of the hoopla was about.</p>
<p>So far after a couple chapters in the book on loan from my friend <a href="http://www.philderksen.com" target="_blank">Phil</a> I&#8217;ve got a good understanding how the language operates regarding syntax and so forth.  I have to say I am pretty impressed.  Ruby on Rails allows you to very quickly generate a web application complete with scaffolding, integrate automatic database versioning as well as add in unit testing.  Still today when I work with languages such as Ruby or Python, it feels just &#8220;weird&#8221; to me to not have static types and compiling code beforehand.  I understand the point of dynamic languages and do see their advantages in many scenarios.</p>
<p>The only caveat so far I have run into is the setup and deployment of a Rails application, at least in windows.  Following the book the step on setting up SQLite was a pain in the ass and I still cannot get it figured out.  I think it is because the version of SQLite 3 is not compatible with the latest version.  Also the documentation seems pretty sparse even though I know a lot of documentation is provided by the community.  I&#8217;m just a MSDN brat I guess.</p>
<p>Overall, no huge complaints and I&#8217;m going to keep pushing through the book when I have time.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/07/28/first-reactions-to-ruby-on-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome OS and Gdrive</title>
		<link>http://robertschultz.org/2009/07/25/google-chrome-os-and-gdrive/</link>
		<comments>http://robertschultz.org/2009/07/25/google-chrome-os-and-gdrive/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 01:52:55 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Technology]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=209</guid>
		<description><![CDATA[There has been a lot of talk recently regarding Google&#8217;s new OS called Chrome OS.  One of the things I have not seen mentioned was how this OS will integrate with storage options. For example, the features of this new operating system mentions that it will be a lightweight windowing system running on top of [...]]]></description>
			<content:encoded><![CDATA[<p>There has been a lot of talk recently regarding Google&#8217;s new OS called Chrome OS.  One of the things I have not seen mentioned was how this OS will integrate with storage options.</p>
<p>For example, the <a href="http://googleblog.blogspot.com/2009/07/introducing-google-chrome-os.html" target="_blank">features</a> of this new operating system mentions that it will be a lightweight windowing system running on top of a linux kernel.  Basically for application developers, the real magic is going to be web-based applications since the Chrome browser will pretty much be the desktop in my opinion.</p>
<p>Well remember the <a href="http://blogs.zdnet.com/Google/index.php?p=258" target="_blank">old talk</a> about Google&#8217;s Gdrive (or Platypus)?  That news pretty much went away but I can see this making a come back now their operating system is being released.  Think about it like this: since this operating system is made to be very lightweight and heavily driven by web applications how would you want to store all of your data?</p>
<p>In the cloud!</p>
<p>To me it only makes sense that Google releases Gdrive with a full API to allow web application developers to integrate their web apps with it between Chrome and the cloud.</p>
<p>I haven&#8217;t heard much on this but it&#8217;s been on my mind since I heard about Chrome OS.  Maybe I&#8217;m wrong, but it seems to be a logical move that Google could make.</p>
<p>Update: <a href="http://googlesystem.blogspot.com/2009/07/google-docs-slowly-morphing-into-google.html" target="_blank">Others</a> seem to think the same thing especially seeing Google&#8217;s recent change to Google Docs.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/07/25/google-chrome-os-and-gdrive/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Software Programmer Mentality in Fresno</title>
		<link>http://robertschultz.org/2009/07/22/software-programmer-mentality-in-fresno/</link>
		<comments>http://robertschultz.org/2009/07/22/software-programmer-mentality-in-fresno/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 22:00:10 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Fresno]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[Annoying]]></category>
		<category><![CDATA[Mediocrity]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Rockstar Programmers]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=212</guid>
		<description><![CDATA[What&#8217;s the deal with the mentality of software programmers in Fresno? One of the things I love about being in the field of software and programming is the fact I get to be exposed to new and exciting technologies all the time.  Learning new languages, hearing about startups being acquired by this company or that [...]]]></description>
			<content:encoded><![CDATA[<p>What&#8217;s the deal with the mentality of software programmers in Fresno?</p>
<p>One of the things I love about being in the field of software and programming is the fact I get to be exposed to new and exciting technologies all the time.  Learning new languages, hearing about startups being acquired by this company or that company.  So why is it almost impossible to meet other developers in Fresno that think the same?  I met a handful in the bay area within two weeks of moving there.</p>
<p>Most of the other people I know love their 9-to-5 job where when it&#8217;s 5:00 they are out the door, not wanting to look at another line of code again until the next morning.  Maybe this is what separates &#8220;Career Programmers&#8221; from &#8220;Passionate Programmers&#8221;.  At least that&#8217;s always been my argument.</p>
<p>I understand one of the big issues that arise with people here in Fresno yet alone the Central Valley is their families.  Family is a big driving factor here, and I think a lot of times people trump this over the whole process of continuing their love for programming outside of the job.  But I really don&#8217;t think it needs to be this way.  Who says just because junior or 1 or 2 years old you can no longer pick up a good ASP.NET 3.5 or Ruby on Rails book at home?  Or code up a side project for fun?</p>
<p>The main reason I began thinking about this was the term everyone uses today as &#8220;rockstar programmer&#8221;.  Honestly I love this term, and it gives a sense of enlightenment when most of the bullet points mentioned are similar to what I do or feel (give or take a few).  Not to be conceited in any way, I just love technology and I love learning new things both at work and at home.</p>
<p>But I think rarely any credit is given to programmers who try to achieve this mentality here.  They are often taken for granted and overlooked for mediocrity.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/07/22/software-programmer-mentality-in-fresno/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Learning Ruby</title>
		<link>http://robertschultz.org/2009/07/14/learning-ruby/</link>
		<comments>http://robertschultz.org/2009/07/14/learning-ruby/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 19:59:10 +0000</pubDate>
		<dc:creator>Robert Schultz</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://www.robertschultz.org/?p=190</guid>
		<description><![CDATA[I&#8217;ve been putting it off forever now, but I think I am going to finally purchase a Ruby book and learn the language.  It was one of my goals for 2009 and since we&#8217;re already half way through the year I might as well get started on it now.  I was scanning through some books [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been putting it off forever now, but I think I am going to finally purchase a Ruby <a href="http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1247594025&amp;sr=8-1" target="_blank">book</a> and learn the language.  It was one of my goals for 2009 and since we&#8217;re already half way through the year I might as well get started on it now.  I was scanning through <a href="http://www.amazon.com/s/ref=nb_ss_gw?url=search-alias%3Daps&amp;field-keywords=ruby&amp;x=0&amp;y=0" target="_blank">some books</a> at Amazon and <a href="http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1253726703&amp;sr=8-1" target="_blank">this</a> one seems to be a great book.</p>
<p style="text-align: left;">From what I have heard and read, Ruby is a great language built on principles of being simple and lean.  A lot of languages out there are overly complex or require heft licensing costs, which can be a turn off especially in small start-ups.  Even though I am a Microsoft .NET guy, I would love to touch bases on some new and different technology and I think I am going to start.</p>
]]></content:encoded>
			<wfw:commentRss>http://robertschultz.org/2009/07/14/learning-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
