<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1672233813945040344</id><updated>2021-12-10T09:01:42.203-08:00</updated><category term="Advantage"/><category term="Delphi"/><category term="ARC"/><category term="FoxPro"/><category term="Screencasts"/><category term="ARC DYK"/><category term="Delphi DYK"/><category term=".NET"/><category term="Utilities"/><category term="ITC Boise SoftwareEd"/><category term="SQL"/><category term="VisualStudio"/><category term=".NET twiPing"/><category term="Advantage hardware performance"/><category term="bookreview"/><category term="csExtras"/><category term="iOS"/><category term="oData"/><title type='text'>J.D. Was Here</title><subtitle type='html'>Thoughts on software and Software Engineering</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>92</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1088405292746928646</id><published>2015-04-15T07:34:00.000-07:00</published><updated>2015-04-15T07:52:42.092-07:00</updated><title type='text'>Rethinking dev.idaho</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;I&#39;ll never forget the very first discussions about what would eventually become the dev.idaho conference. It was 2010 or 2011, and we were just putting together the ITC software alliance.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;a href=&quot;http://www.tsheets.com/about/ceo&quot; target=&quot;_blank&quot;&gt;Matt Rissell&lt;/a&gt; was the president of the software alliance, and I was the chair of the education committee (I didn&#39;t work for Matt at the time. I was still at SAP and had a trip to WhiteCloud in my future). Matt kept saying we needed a &quot;big event&quot;. I thought it was a terrible idea. We were a group of volunteers giving everything we had to just make a difference with our small community initiatives. Typical short-sighted engineer response on my part, but I felt we were spread thin already and an event would be an absolute waste of time.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;I chose to focus on my&amp;nbsp;committee&amp;nbsp;and abstained from all planning and discussions about the event.&amp;nbsp;This was my first experience with Matt&#39;s persuasive personality and his ability to get people around him to step up to a challenge. It was also my first experience with Martin Hambalek&#39;s project management and planning capabilities. I would learn over the years that both are incredibly capable and this single event was not an&amp;nbsp;anomaly.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;I attended the first dev.idaho event, which was paired with &lt;a href=&quot;http://tech.co/&quot; target=&quot;_blank&quot;&gt;Tech Cocktail&lt;/a&gt;, and I was blown away. The community showed up, the startup showcase was a blast, the speakers were great with awesome stories to tell, Mark Solon dropped some F-bombs and after the event a number of attendees shut down The Modern. It was an experience to say the least!&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;Over the years, Martin&#39;s team has organized multiple events that fill the gap between a developer conference like Boise CodeCamp, and an&amp;nbsp;entrepreneur&amp;nbsp;or business&amp;nbsp;conference. &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;This year&#39;s agenda is a departure from the format used the last couple of years and promises to entertain, educate and motivate like never before. A fantastic keynote from Hadi Partovi of &lt;a href=&quot;http://code.org/&quot;&gt;code.org&lt;/a&gt; combined with numerous panel discussions from local software peers and a new networking format should make this a brand new experience even for those who have attended the event in the past.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;I encourage everyone to attend the redesigned&amp;nbsp;&lt;a href=&quot;http://www.idahotechcouncil.org/blog/developidaho-2015-code-growth&quot; target=&quot;_blank&quot;&gt;dev.idaho event&lt;/a&gt;, contribute to the discussions, network with your peers, and remember why we loved the first event so much.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: 15px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-family: Helvetica Neue, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1088405292746928646/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2015/04/rethinking-devidaho.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1088405292746928646'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1088405292746928646'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2015/04/rethinking-devidaho.html' title='Rethinking dev.idaho'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-7793183286004287339</id><published>2015-03-26T20:29:00.003-07:00</published><updated>2015-04-07T15:56:10.514-07:00</updated><title type='text'>I despise Hackfort and dev.idaho, and I will attend EVERY year</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial; font-size: 15px; line-height: 1.38; white-space: pre-wrap;&quot;&gt;When push comes to shove, I despise attending Hackfort and dev.idaho. But I will go EVERY. SINGLE. YEAR. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I’m a sucker for people who have an idea, a vision, and execute on it. I love people who DO THINGS versus talk about things. I love people passionate about Boise and software, and even if only a small group of them assemble at these events, I want to be around them and talk to them.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;I have no affiliation with Hackfort, but nothing but respect for volunteers who can get four to five hundred software engineers to assemble in a single place at a specific time. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Three themes emerged during discussions at Hackfort today that come up every single time Boise developers and entrepreneurs assemble, and they all drive me freaking crazy:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Lack of funding in Boise&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Inability to pull software developers from their “day jobs” to work on a startup&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li dir=&quot;ltr&quot; style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; list-style-type: decimal; text-decoration: none; vertical-align: baseline;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;How we stay involved as a community and meet more frequently&lt;/span&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Topic number one is BS. If you have a great idea, you can find funding anywhere and develop your product from Idaho. Better yet, bootstrap with a few angel investors (even if they aren’t from Boise) and build something cool. The reality is rather than being short on funding, we are short on innovative ideas. It’s hard to stomach and say out loud, but money is easy to find if your idea is sound. It’s too easy to blame a lack of funding when the reality is we are short on awesome ideas and teams that can execute on them. &lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Topic number two is also BS, but I understand the frustration. If your idea is compelling, and developers think it will work, they will help you build it. The problem is software engineers today are in high demand, often very well compensated, and they are very likely happily employed. When you offer no salary and limited equity in something that is simply an idea, you shouldn’t be frustrated when they are not chomping at the bit to drop everything and join your new venture. Believe it or not, they are people too, and have families to support. They are by definition risk-averse and analytical type-A personalities. I’m sorry your super-popular and personable high school quarterback friend can’t build out the infrastructure for your new product idea, but that’s the way things go. Offer developers an awesome salary and equity, or expect to be shot down. I’m sorry, but that is reality.&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Topic number three should be so simple, but even I struggled today with a simple answer to the question of “how do I get involved or connect with the Boise dev community.&quot; The reality is, there are a LOT of software user groups, and a lot of entrepreneur groups meeting regularly in Boise. The Idaho Technology Council has a page listing a ton of meet-up groups (&lt;/span&gt;&lt;a href=&quot;http://www.idahotechcouncil.org/local-places-techies-network&quot; style=&quot;text-decoration: none;&quot;&gt;&lt;span style=&quot;background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;http://www.idahotechcouncil.org/local-places-techies-network&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;). Myself and some friends agree there should be an easy to remember URL to find a list of active groups, and next week we will start something up so in the future we as a community can answer this question with a simple URL. &lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;b&gt;Update:&lt;/b&gt; We&#39;re starting with a easy URL that redirects to the ITC page for now, and we&#39;ll build out a better (and more dynamic) site as we can: &lt;a href=&quot;http://gemstate.io/&quot;&gt;gemstate.io&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;What do we need to do to build Boise’s tech startup community? Simple:&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;1) Build awesome, compelling products and companies&lt;/span&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2) Stay in Boise when you exit the business&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3) Stay in Boise and keep building your business (never exit)&lt;/span&gt;&lt;/div&gt;
&lt;b style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/b&gt;
&lt;br /&gt;
&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Build cool products and services, and if you have a liquidity event, please stay in Boise and build something else. That’s it. We should all be striving for this. It isn’t easy and it won&#39;t happen overnight, but until we reach critical mass, nothing is going to change and we will continue to attend events where all we do is fantasize about being the next big “tech hub.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;span style=&quot;line-height: 20.7000007629395px;&quot;&gt;&lt;b&gt;Update: &lt;/b&gt;Most of the conversation around this post happened when Jess posted it on Facebook. You can &lt;a href=&quot;https://www.facebook.com/jessica.flynn1/posts/10205066841123006&quot; style=&quot;font-weight: normal;&quot; target=&quot;_blank&quot;&gt;read those comments here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/7793183286004287339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2015/03/i-despise-hackfort-and-devidaho-and-i.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7793183286004287339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7793183286004287339'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2015/03/i-despise-hackfort-and-devidaho-and-i.html' title='I despise Hackfort and dev.idaho, and I will attend EVERY year'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1981332235196850824</id><published>2012-05-18T12:35:00.004-07:00</published><updated>2014-09-10T04:44:58.970-07:00</updated><title type='text'>Two &quot;Must Use&quot; Chrome Dev Tools Shortcuts</title><content type='html'>&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;I switched from Firebug to the Chrome Dev Tools about 4 months ago and couldn&#39;t be happier. Until this week (May 14th, 2012), navigating to specific script files and functions was tedious. I&#39;m happy to see some of the Chrome beta tools make their way to production this week.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Brand New&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;In scripts tab, cmd-O now brings up a dialog to open a specific script file. No more mousing over to the scripts drop-down.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Even better, cmd-shift-O brings up a dialog to navigate to a specific function in the current script. The only thing that would make this better is if it worked across ALL loaded scripts, vs just the current script. If this feature alone doesn&#39;t excite you I question your geek standing... seriously.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;In options (the gear icon at the bottom-right of the dev tools screen), select &quot;dock to right&quot; to dock the dev tools with your existing browser window. Awesome option when you have a good monitor (24&quot; or wider). I wish it could dock left, but this is better than nothing.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;In options, &quot;enable source maps&quot;. Cool way to map source files from compiled js to the actual source files. I REALLY hope this turns into a more advanced feature where you can map a server source file to a local host version, and then persist your in-browser changes to disk.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Speaking of in-browser changes, you can modify js source files in the dev tools and their changes are respected until you do an explicit browser refresh.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Tree view of loaded scripts. I&#39;m not fond of this, and I hide it since I can cmd-O to find them anyway, but still a nice addition.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/-9o-QV5TyQB8/T7akCeNEcHI/AAAAAAAAKbg/FkFw9-vbYEU/s1600/Chrome+Developer+Tools_+Overview+-+Chrome+Developer+Tools+%E2%80%94+Google+Developers-4.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://3.bp.blogspot.com/-9o-QV5TyQB8/T7akCeNEcHI/AAAAAAAAKbg/FkFw9-vbYEU/s400/Chrome+Developer+Tools_+Overview+-+Chrome+Developer+Tools+%E2%80%94+Google+Developers-4.jpg&quot; height=&quot;395&quot; width=&quot;400&quot; /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;Not New, But Useful&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;cmd-shift-F, search for a string across ALL loaded scripts&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;would be even cooler if could get cursor into the results automatically (can set up keyboard maestro command to get there, though)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;cmd-shift-C, activate the &quot;select element to inspect&quot; functionality&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif;&quot;&gt;cmd-option-I, start debugging session&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1981332235196850824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2012/05/3-must-use-chrome-dev-tools-shortcuts.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1981332235196850824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1981332235196850824'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2012/05/3-must-use-chrome-dev-tools-shortcuts.html' title='Two &quot;Must Use&quot; Chrome Dev Tools Shortcuts'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-9o-QV5TyQB8/T7akCeNEcHI/AAAAAAAAKbg/FkFw9-vbYEU/s72-c/Chrome+Developer+Tools_+Overview+-+Chrome+Developer+Tools+%E2%80%94+Google+Developers-4.jpg" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-156847657659924859</id><published>2011-11-04T13:46:00.001-07:00</published><updated>2012-03-08T20:55:10.937-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="csExtras"/><category scheme="http://www.blogger.com/atom/ns#" term="ITC Boise SoftwareEd"/><title type='text'>Side Effects</title><content type='html'>&lt;p class=&quot;p1&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Last month we hosted a CS Extras event at Keynetics, inviting all CS students, but focusing on freshman and sophomore students. The Keynetics team put on a great presentation. They focused on describing what kinds of things students can expect in the workplace, what a typical work day/week/month is like, why they love their jobs and the industry, what tools they use, etc.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;The November presentation itself was a success, but I wanted to focus on how small events like this can indirectly result in long lasting returns. &lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To someone on the outside an event like this might seem like a waste of time or a futile effort. &quot;How will talking to 20-60 students for 2 hours increase the number and quality of software professionals in Idaho?&quot;. This is a great question, and one I constantly ask myself as it can often feel like we are fighting an uphill battle.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;This presentation, and the events following it helped solidify my motivation and confidence in our program. &lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;At the BBQ after the presentation, two students told me they had been considering switching to an Electrical Engineering degree, but now they were motivated to stick with Computer Science and excited about the opportunities. That provided a warm fuzzy feeling and I was more than happy to take that as ample justification for the event. But that isn&#39;t why I&#39;m writing this.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;It wasn&#39;t until two weeks later that I realized the full impact of the event. This is a circumstance of one small act of giving turning into something much bigger than itself.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Amit, a professor at BSU, told me that the students came back to class and asked him about automated testing (which was mentioned in the presentation). As Amit uses tests to verify the students programming assignments, he was able to expose an interface the students could use to run his tests against their programs before submitting them. &lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;If you work in the software industry, you understand the significance of that last paragraph. We now have first year CS students that understand the value of automated testing and how it can be applied to almost any program. This is a fundamental career skill that will not only help them with programming tasks in college, but that they will take with them into the work force.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;We have a situation where one event, that was easy to coordinate, and took only a few hours of each volunteers time, instilled a process that will likely stick with these students (and possibly the curriculum) for years and years to come. In addition, the benefit of the presentation has now filtered to all students in that class, not just those who attended CS Extras.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;Perhaps I&#39;m being too optimistic, but these are the kinds of positive side effects that you just can&#39;t plan for but that can make the entire endeavor worthwhile.&lt;/span&gt;&lt;/p&gt; &lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;To keep up with CS Extras events; like our &lt;a href=&quot;http://tinyurl.com/csextras&quot;&gt;Facebook page&lt;/a&gt;, subscribe to &lt;a href=&quot;http://jdmullin.blogspot.com/&quot;&gt;my blog&lt;/a&gt;, or watch the &lt;a href=&quot;http://www.idahotechcouncil.org/dev/itc/&quot;&gt;ITC website&lt;/a&gt; for event updates. To volunteer, post on the &lt;a href=&quot;http://www.linkedin.com/groups/Idaho-Technology-Council-3794326?trk=myg_ugrp_ovr&quot;&gt;ITC LinkedIn discussion group&lt;/a&gt; and I will contact you.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;&gt;&lt;b&gt;Update&lt;/b&gt;: Be sure to check out the comments on this post, more good side effects.&lt;/span&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/156847657659924859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/11/side-effects.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/156847657659924859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/156847657659924859'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/11/side-effects.html' title='Side Effects'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-582487261179586599</id><published>2011-08-02T12:31:00.001-07:00</published><updated>2011-08-02T12:31:57.269-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><title type='text'>Hello Tomorrow</title><content type='html'>&lt;p&gt;I started at Extended Systems in the fall of 1995 during my second year of college. I was immediately placed on a team with incredibly smart people working on fun products. That trend has continued for the past 16 years and I have had a wonderful time. Great coworkers, cool customers and constantly changing technologies have kept things interesting for a very long time.&lt;/p&gt;  &lt;p&gt;I’m also excited to take on some new challenges and with that in mind I have accepted a position at a local startup and will be saying goodbye to my friends at ESI/Sybase soon.&lt;/p&gt;  &lt;p&gt;While the last few years I have been the public face of Advantage via blog posts and screencasts, this product is much bigger than one person and is in great hands. The development team is strong and works with an equally experienced sales, support and marketing team. I know Advantage will continue to thrive.&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;I still plan to continue writing, however the content will likely shift a bit towards different software technologies. I look forward to continuing our conversations and friendships. &lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/582487261179586599/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/08/hello-tomorrow.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/582487261179586599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/582487261179586599'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/08/hello-tomorrow.html' title='Hello Tomorrow'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-7252792826152521123</id><published>2011-06-22T07:23:00.001-07:00</published><updated>2011-10-10T06:50:38.274-07:00</updated><title type='text'>iPhone oData Client, Part 3</title><content type='html'>&lt;p&gt;In Part 2 of this series we moved our service query to a background thread and added “pull to refresh” functionality. In Part 3 we take a quick look at insert, update and delete functionality.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.screencast.com/t/bS47aFFxkxNS&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;odatademo3&quot; border=&quot;0&quot; alt=&quot;odatademo3&quot; src=&quot;http://lh5.ggpht.com/-e6VhljvpEuE/TgH6yr2t1NI/AAAAAAAAKZI/rbsQRS35gY8/odatademo3%25255B1%25255D.png?imgmax=800&quot; width=&quot;654&quot; height=&quot;504&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can &lt;a href=&quot;http://www.jdwashere.com/blog/screencasts/oDataDemo3.mp4&quot; target=&quot;_blank&quot;&gt;view (or right-click and download) the screencast here&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;Resources&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;The Example Application &lt;a href=&quot;https://github.com/jdmullin/iOS_oData_Example&quot; target=&quot;_blank&quot;&gt;Source Code&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Paul Crawford’s &lt;a href=&quot;https://github.com/pcrawfor/PCCustomSwitch&quot; target=&quot;_blank&quot;&gt;PCCustomSwitch&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://jdmullin.blogspot.com/2011/05/iphone-odata-client-part-2.html&quot;&gt;Part 2 of this series&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/7252792826152521123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/06/iphone-odata-client-part-3.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7252792826152521123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7252792826152521123'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/06/iphone-odata-client-part-3.html' title='iPhone oData Client, Part 3'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-e6VhljvpEuE/TgH6yr2t1NI/AAAAAAAAKZI/rbsQRS35gY8/s72-c/odatademo3%25255B1%25255D.png?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1606280550322586456</id><published>2011-05-26T12:23:00.001-07:00</published><updated>2011-10-10T06:52:26.664-07:00</updated><title type='text'>iPhone oData Client, Part 2</title><content type='html'>&lt;p&gt;In Part 1 of this series we set up an XCode project to use the Objective-C oData client and pulled some rows into a grid. In Part 2 we will move our service query into a background thread to keep our UI responsive. In addition, we will add some visual feedback and “pull to refresh” functionality.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.screencast.com/t/gZ7hfgoNb6&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px&quot; title=&quot;refresh&quot; border=&quot;0&quot; alt=&quot;refresh&quot; src=&quot;http://lh6.ggpht.com/-ZmH7M6_poxI/Td6t97GcsnI/AAAAAAAAKZM/wZliIgret70/refresh%25255B1%25255D.png?imgmax=800&quot; width=&quot;684&quot; height=&quot;527&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can &lt;a href=&quot;http://www.jdwashere.com/blog/screencasts/oDataDemo2.mp4&quot;&gt;view the screencast here (or right-click and download)&lt;/a&gt; (61MB).&lt;/p&gt;  &lt;h2&gt;Resources&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;The Example Application &lt;a href=&quot;https://github.com/jdmullin/iOS_oData_Example&quot; target=&quot;_blank&quot;&gt;Source Code&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;iOS &lt;a href=&quot;http://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/Introduction/Introduction.html&quot; target=&quot;_blank&quot;&gt;Concurrent Programming&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;iOS &lt;a href=&quot;https://developer.apple.com/library/ios/#documentation/General/Conceptual/ConcurrencyProgrammingGuide/OperationObjects/OperationObjects.html&quot; target=&quot;_blank&quot;&gt;Operation Queues&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Leah Culver’s &lt;a href=&quot;http://blog.leahculver.com/2010/12/iphone-pull-to-refresh.html&quot; target=&quot;_blank&quot;&gt;Pull to Refresh&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://jdmullin.blogspot.com/2011/05/getting-started-with-ios-development.html&quot;&gt;Part 1 of this series&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://jdmullin.blogspot.com/2011/06/iphone-odata-client-part-3.html&quot;&gt;Part 3 of this series&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1606280550322586456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/05/iphone-odata-client-part-2.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1606280550322586456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1606280550322586456'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/05/iphone-odata-client-part-2.html' title='iPhone oData Client, Part 2'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-ZmH7M6_poxI/Td6t97GcsnI/AAAAAAAAKZM/wZliIgret70/s72-c/refresh%25255B1%25255D.png?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-7729790312532886775</id><published>2011-05-17T14:04:00.001-07:00</published><updated>2011-10-10T06:57:47.741-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><category scheme="http://www.blogger.com/atom/ns#" term="iOS"/><category scheme="http://www.blogger.com/atom/ns#" term="oData"/><title type='text'>Getting Started with iOS Development and Advantage</title><content type='html'>&lt;p&gt;The &lt;a href=&quot;http://jdmullin.blogspot.com/2010/09/advantage-web-api.html&quot; target=&quot;_blank&quot;&gt;Advantage Web API&lt;/a&gt; makes it easy to expose your Advantage databases via the &lt;a href=&quot;http://www.odata.org&quot; target=&quot;_blank&quot;&gt;oData&lt;/a&gt; protocol. The oData protocol includes a &lt;a href=&quot;http://www.odata.org/developers/odata-sdk&quot; target=&quot;_blank&quot;&gt;variety of clients&lt;/a&gt;, including an Objective-C client for iOS devices (iPhone, iPod Touch, iPad, etc.). &lt;/p&gt;  &lt;p&gt;I’ve posted an introduction to using the Objective-C oData client with Advantage. This 20 minute video shows how to download the client, configure a new XCode project, and display the contents of a table. You can &lt;a href=&quot;http://www.jdwashere.com/blog/screencasts/oDataDemo1.mp4&quot; target=&quot;_blank&quot;&gt;stream the presentation (or right-click and download) here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;While this presentation is targeted towards Advantage developers getting started with iOS development, aside from the first 3 minutes the rest of the presentation is provider agnostic and applies to all oData services, not just those provided by the Advantage Database Server.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update:&lt;/strong&gt; If you’d like to use SSL, I’ve submitted a patch to the oData client you can download and use (as opposed to disabling SSL in the web api conf file). The patch provides a new switch for odatagen (/trustServer=1) and a new trustServer parameter when initializing your WindowsCredential object:&lt;/p&gt;  &lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;   &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;     &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;WindowsCredential *cred = &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px&quot;&gt;  [[WindowsCredential alloc] initWithUserName:&lt;span style=&quot;color: #006080&quot;&gt;@&amp;quot;adssys&amp;quot;&lt;/span&gt; password:&lt;span style=&quot;color: #006080&quot;&gt;@&amp;quot;&amp;quot;&lt;/span&gt; trustServer:true];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;See &lt;a href=&quot;http://odataobjc.codeplex.com/SourceControl/list/patches&quot;&gt;http://odataobjc.codeplex.com/SourceControl/list/patches&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;&lt;/h2&gt;

&lt;h2&gt;Resources&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;The Example Application &lt;a href=&quot;https://github.com/jdmullin/iOS_oData_Example&quot; target=&quot;_blank&quot;&gt;Source Code&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;&lt;a href=&quot;http://odataobjc.codeplex.com/&quot; target=&quot;_blank&quot;&gt;Objective-C oData Client&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href=&quot;http://jdmullin.blogspot.com/2010/09/advantage-web-api.html&quot;&gt;Advantage Web API&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href=&quot;http://odataobjc.codeplex.com/SourceControl/list/patches&quot;&gt;SSL Self-Signed Certificates Patch&lt;/a&gt; &lt;/li&gt;

  &lt;li&gt;&lt;a href=&quot;http://jdmullin.blogspot.com/2011/05/iphone-odata-client-part-2.html&quot;&gt;Part 2 of this series&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/7729790312532886775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/05/getting-started-with-ios-development.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7729790312532886775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7729790312532886775'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/05/getting-started-with-ios-development.html' title='Getting Started with iOS Development and Advantage'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-3116563678303456602</id><published>2011-03-21T06:49:00.000-07:00</published><updated>2011-03-21T07:04:35.594-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ITC Boise SoftwareEd"/><title type='text'>CS Extras #1 and #2</title><content type='html'>&lt;p&gt;&lt;a href=&quot;http://jdmullin.blogspot.com/2010/10/itc-software-alliance-industry-led.html&quot; target=&quot;__blank&quot;&gt;CS Extras&lt;/a&gt; kicked off in February with its first presentation. Seven industry volunteers collaborated to teach an introduction to web development fundamentals. Over sixty students from area universities participated in the inaugural event.
&lt;/p&gt;
&lt;br/&gt;
&lt;img src=&quot;http://api.photoshop.com/v1.0/accounts/5536daad67ac415dbc57818302835382/assets/f3c65e2c3b0442f38e35ac3d322c99f0&quot; width=&quot;640&quot; height=&quot;478&quot; style=&quot;border:0px&quot;/&gt;
&lt;br/&gt;
&lt;p&gt;
The second CS Extras presentation will be held Wednesday March 23rd from 6pm to 8pm in the BSU Micron Engineering Center, room MEC106. In this session, Patrick Lee from Bodybuilding.com will be focusing on web form creation fundamentals and persisting and retrieving data once a form is submitted. In addition, I can&#39;t hold out until April to give away these Apple TV&#39;s, so we will be giving away one of the three Apple TV&#39;s at the end of the night! If you attended the first session, and you are at the second session, you will be eligible to win. We&#39;ve made a couple of tweaks to the &quot;hands on&quot; portion based on feedback from the first event as well, and pizza will be provided again. Hope to see everyone there!
&lt;/p&gt;
&lt;br/&gt;
&lt;p&gt;
Event map and other details can be found on our Facebook page as well at &lt;a href=&quot;http://tinyurl.com/csextras&quot; target=&quot;__blank&quot;&gt;http://tinyurl.com/csextras&lt;/a&gt;
&lt;/p&gt;
&lt;br/&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/3116563678303456602/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/03/cs-extras-1-and-2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/3116563678303456602'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/3116563678303456602'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/03/cs-extras-1-and-2.html' title='CS Extras #1 and #2'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-2183056384746926944</id><published>2011-02-02T09:48:00.001-08:00</published><updated>2011-02-02T09:53:56.700-08:00</updated><title type='text'>Delphi Starter Edition Database Support</title><content type='html'>&lt;p&gt;The &lt;a href=&quot;http://embarcadero.com/products/delphi/starter&quot; target=&quot;_blank&quot;&gt;Delphi Starter Edition&lt;/a&gt; was released February 1, 2011 as a low cost entry-level version of Delphi. The starter edition is a great addition to the Delphi product line, but only includes database support for IBExpress and the deprecated Borland Database Engine (BDE).&amp;#160; It does not include a simple in-process database or support for client/server databases like SQL Server, MySQL, Oracle, etc. &lt;/p&gt;  &lt;p&gt;Unlike these other database offerings, the &lt;a href=&quot;http://www.sybase.com/products/databasemanagement/advantagedatabaseserver/delphi-components&quot; target=&quot;_blank&quot;&gt;Advantage Database Server components for Delphi&lt;/a&gt; are fully compatible with the Delphi Starter Edition, and you can start using them today for free. The majority of database support was removed from the Delphi Starter edition by eliminating support for the dbExpress database layer, but Advantage does not use this extra database layer, and therefore works very well with the Delphi Starter Edition.&lt;/p&gt;  &lt;h3&gt;BDE issues&lt;/h3&gt;  &lt;p&gt;Many Delphi developers and enthusiasts have been pointing out that beginners should not be learning to use Delphi with a deprecated database engine. Michael Rozlog mentions the &lt;a href=&quot;https://forums.embarcadero.com/thread.jspa?messageID=316720&amp;amp;tstart=0#316720&quot; target=&quot;_blank&quot;&gt;BDE hasn’t been developed for 10 years and there is not a 64-bit migration path&lt;/a&gt;. This is untrue if you use the Advantage Database Server (ADS). In addition to being a fully functional client/server database and a great in-process local database, replacing the BDE with Advantage provides a clear and sustainable 64-bit migration path. Advantage already has 64-bit servers, supports a variety of 64-bit clients (ADO.NET, PHP, OLE DB, ODBC, etc.) and is ready to provide 64-bit Delphi support as soon as the Delphi compiler is available.&lt;/p&gt;  &lt;h3&gt;Free Local Engine&lt;/h3&gt;  &lt;p&gt;The Advantage Local Server is also included&amp;#160; with the Advantage Components for Delphi, and is a free in-process database library that fits perfectly with the starter edition concept. The local server is not limited to local drive access and can operate on and serve data via network shares just like the BDE (only without lock file and concurrency headaches). The Advantage Local Server is free to use and distribute, and as your product grows and puts more demand on the database, the full ADS version is available with no code changes (simply change a server type property on the connection). &lt;/p&gt;  &lt;h3&gt;Starter Edition Installation&lt;/h3&gt;  &lt;p&gt;The Delphi Starter edition does not allow the use of the Delphi command-line compiler, which the Advantage installer generally needs. With this limitation the Advantage design-time components will work fine in the Delphi IDE, but when an application is built the compiler will fail to find adsdata.dcu. A future update to the installer will address this issue, but for now this is easily resolved by opening the Delphi Tools-&amp;gt;Options menu, clicking on the Delphi Library item in the tree view (shown below), and updating the Advantage Library Path from “…\DelphiXE\win32” to “…\DelphiXE\win32\source”. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_GFOFxoBQlsY/TUmY9PLfupI/AAAAAAAAKWw/eKE_OlMAahA/s1600-h/image%5B4%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_GFOFxoBQlsY/TUmY97itWdI/AAAAAAAAKW0/vQsE0hsNH9o/image_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;673&quot; height=&quot;450&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/TUmY-b0oMdI/AAAAAAAAKW4/ZV_Cq0Ltbcs/s1600-h/image%5B9%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_GFOFxoBQlsY/TUmY_GwUwBI/AAAAAAAAKW8/amHLLqZjhhY/image_thumb%5B5%5D.png?imgmax=800&quot; width=&quot;676&quot; height=&quot;449&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;NOTE: &lt;/strong&gt;With this path change, if you are utilizing user access control in Windows, you may need to run Delphi as the administrator the first time you compile an Advantage enabled application. &lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/2183056384746926944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2011/02/delphi-starter-edition-database-support_02.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/2183056384746926944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/2183056384746926944'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2011/02/delphi-starter-edition-database-support_02.html' title='Delphi Starter Edition Database Support'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_GFOFxoBQlsY/TUmY97itWdI/AAAAAAAAKW0/vQsE0hsNH9o/s72-c/image_thumb%5B2%5D.png?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1854739701107192387</id><published>2010-12-21T09:21:00.001-08:00</published><updated>2010-12-21T09:32:17.380-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><category scheme="http://www.blogger.com/atom/ns#" term="ARC"/><category scheme="http://www.blogger.com/atom/ns#" term="ARC DYK"/><title type='text'>Copy/Paste Rows in Advantage Data Architect</title><content type='html'>&lt;p&gt;&lt;em&gt;This is a guest post by Will Foster, our R&amp;amp;D intern this year, on a feature he implemented in ARC version 10.1&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_GFOFxoBQlsY/TRDkJenmMnI/AAAAAAAAKUw/0Zex6fPX-cs/s1600-h/will%5B3%5D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;will&quot; border=&quot;0&quot; alt=&quot;will&quot; src=&quot;http://lh5.ggpht.com/_GFOFxoBQlsY/TRDkJzENkWI/AAAAAAAAKU4/NOT43E3VXtI/will_thumb%5B1%5D.jpg?imgmax=800&quot; width=&quot;71&quot; height=&quot;73&quot; /&gt;&lt;/a&gt;&lt;strong&gt;@WilliamGFoster&lt;/strong&gt;&lt;/p&gt;   &lt;h3&gt;Overview&lt;/h3&gt;  &lt;p&gt;The Advantage Data Architect (ARC) now supports copy and pasting directly from the table browser! This functionality has been added in order to allow copy and pasting into and out of ARC. This means when you select one or more records in a table view (SQL Utility in next v10.1 public update) you will now be able to right click and “Copy Records” which will place all your data, including memo and blob field types, onto the system-wide clipboard. The data is placed onto the clipboard in CSV, HTML Table, and Tab delimited formats. This means you will be able to Paste directly into Microsoft Office products with some default formatting, and directly into an HTML formatted e-mail message. This framework also allows you to select data in Microsoft Excel or other spreadsheet software and paste directly into ARC, making adding data to a table as easy as a copy and a paste. You can also copy rows from a table and paste back into that same table (to duplicate rows, then tweak individual fields, for example).&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_GFOFxoBQlsY/TRDiAk3XU5I/AAAAAAAAKTs/i1FHGj5-s14/s1600-h/copypaste%5B3%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;copypaste&quot; border=&quot;0&quot; alt=&quot;copypaste&quot; src=&quot;http://lh6.ggpht.com/_GFOFxoBQlsY/TRDiBWCA32I/AAAAAAAAKT0/xZV0sVktqNY/copypaste_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;673&quot; height=&quot;545&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Copying data directly from a table browser&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#123346&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#123346&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#123346&quot;&gt;&lt;a href=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/TRDiCIAWGxI/AAAAAAAAKT8/l__6dDDh9uI/s1600-h/paste-excel%5B3%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;paste-excel&quot; border=&quot;0&quot; alt=&quot;paste-excel&quot; src=&quot;http://lh4.ggpht.com/_GFOFxoBQlsY/TRDiCrstG2I/AAAAAAAAKUE/Kft7-dvnCxw/paste-excel_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;674&quot; height=&quot;674&quot; /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pasting directly to Microsoft Excel&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#123346&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color=&quot;#123346&quot;&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_GFOFxoBQlsY/TRDiDUI3XEI/AAAAAAAAKUM/aFvvcnZl0po/s1600-h/paste-gmail%5B4%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;paste-gmail&quot; border=&quot;0&quot; alt=&quot;paste-gmail&quot; src=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/TRDiD0qzN9I/AAAAAAAAKUU/BbkZjgvm8Dc/paste-gmail_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;670&quot; height=&quot;544&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Pasting directly into email client&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Binary/BLOB Data&lt;/h3&gt;  &lt;p&gt;It should be noted that blob field types will be 64 bit encoded prior to being placed onto the clipboard. This means that if copying large quantities of blob data, this encoding may take a while, and will remain 64-bit encoded if pasted anywhere other than ARC. However, you can feel free to copy and paste blob data within ARC, retaining all the original integrity of the field.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Field Mapping&lt;/h3&gt;  &lt;p&gt;You can also copy and paste from two entirely different tables. This is accomplished via a mapping dialog. This allows you to modify the orientation of fields from the source table so that they match the destination table. If any conflicts occur you will be notified and allowed to retry with all the data still remaining on the clipboard. This dialog will also let you choose if you have a header row or not (useful when copying partial bits of data from Excel or the Web. This dialog also attempts to match based on field names, so if you have fields in a different order on the source table it will be no problem at all!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_GFOFxoBQlsY/TRDiEmOehCI/AAAAAAAAKUc/t3l6UDJ-i14/s1600-h/field-mapper%5B3%5D.png&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;field-mapper&quot; border=&quot;0&quot; alt=&quot;field-mapper&quot; src=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/TRDiFulkIpI/AAAAAAAAKUk/o33quErUF8c/field-mapper_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;672&quot; height=&quot;536&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Field Mapping Dialog&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Conclusion&lt;/h3&gt;  &lt;p&gt;Overall, the copy/paste functionality is a great addition to ARC and we believe it will make your data manipulation tasks even easier than before! &lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1854739701107192387/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/12/copypaste-rows-in-advantage-data.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1854739701107192387'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1854739701107192387'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/12/copypaste-rows-in-advantage-data.html' title='Copy/Paste Rows in Advantage Data Architect'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_GFOFxoBQlsY/TRDkJzENkWI/AAAAAAAAKU4/NOT43E3VXtI/s72-c/will_thumb%5B1%5D.jpg?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-8162211745810173565</id><published>2010-10-06T10:08:00.001-07:00</published><updated>2011-10-17T07:01:03.166-07:00</updated><title type='text'>ITC Software Alliance: Industry-Led Education</title><content type='html'>&lt;h3&gt;CS Extras&lt;/h3&gt;  &lt;p&gt;Our goal is to increase the number and quality of software professionals in Idaho. &lt;/p&gt;  &lt;p&gt;Idaho’s software industry is vibrant and expanding. Yet, many are not aware of its growing importance. Today there are many silos of professionals and user groups in Idaho exposing high school students to software, teaching guest lectures at universities, and training their own employees valuable skills. These efforts are inspirational, but can often fade when volunteers don’t feel like they are making the impact originally envisioned. We would like to pool these existing resources, strengthen them with renewed interest from Industry partners in the Idaho Technology Council, and create a community that not only engages high school and university students, but its own members as well.&lt;/p&gt;  &lt;p&gt;By helping to build a more vibrant software community through industry led training, we can help retain existing professionals, build a solid pipeline of excellent local talent coming from our Idaho schools and universities, and avoid recruiting from out of state.&lt;/p&gt;  &lt;h3&gt;The Format&lt;/h3&gt;  &lt;p&gt;Our format simply pairs Idaho software experts with those seeking enhanced skills and information about software. The format will be flexible – presentations, interactive coding sessions, round table discussions and other discussion and training methods. &lt;/p&gt;  &lt;p&gt;Idaho’s software industry employees and leaders are encouraged to volunteer in one of these areas: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Encourage teens to consider and pursue a software degree &lt;/li&gt;    &lt;li&gt;Increase college student’s awareness of a variety of programming skills and knowledge, and showcase exciting career opportunities. &lt;/li&gt;    &lt;li&gt;Expand existing professional skills with industry-specific presentations, skills and training &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Starting early 2011, we’d like to host an event every other month, with focus areas of your interest. Scheduling will be dependent on areas of interest and the best time of year for the target audience. The target audience will vary throughout the year between high school students, university students, and industry peers.&lt;/p&gt;  &lt;h3&gt;What We Ask of Volunteers&lt;/h3&gt;  &lt;p&gt;Volunteers will be asked to present (or help present with one or more additional volunteers) one time each year or two. Topics and formats can vary based on the subject matter and the target audience. Volunteers can expect support from the Software Alliance for organizing, scheduling and communicating the sessions and discussions. The Software Alliance will lay the ground work for the volunteers to effectively share their expertise.&lt;/p&gt;  &lt;p&gt;Example topics may include:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Basics (source code control, debugging techniques) &lt;/li&gt;    &lt;li&gt;Technologies (languages, frameworks, mobile development, content mgmt) &lt;/li&gt;    &lt;li&gt;Hands on demonstrations &lt;/li&gt;    &lt;li&gt;Tips and best practices &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;We Need Your Help&lt;/h3&gt;  &lt;p&gt;Interested? Motivated? &lt;a href=&quot;mailto:jeremym1234@cableone.net?subject=ITC%20Education&quot;&gt;E-mail me&lt;/a&gt; to volunteer or ask questions.&lt;/p&gt;&lt;p&gt;You can also check out &lt;a href=&quot;https://www.facebook.com/pages/ITC-CS-Extras/166836090030542?sk=wall&quot;&gt;Facebook page&lt;/a&gt; for the most up to date information.&lt;/p&gt;  &lt;h3&gt;Still not convinced? &lt;/h3&gt;  &lt;p&gt;Still reading? The content above was the “short version”, and will be the base message we market in the future and post on our web site. I’m including some of the rational behind the plan below for those interested in more context:&lt;/p&gt;  &lt;h4&gt;A Successful Partnership&lt;/h4&gt;  &lt;p&gt;Industry led software education benefits all parties involved, making it a very powerful mechanism.&lt;/p&gt;  &lt;h5&gt;Benefits to Employers&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Develop reputations and company name recognition with potential student hires. When students are attending job fairs or looking for internship employment they will recognize companies who have invested time training them in the past. They will also likely know the instructors, and if they enjoyed those instructors they will be more likely to interview and entertain job offers with their company. &lt;/li&gt;    &lt;li&gt;Help the local community build a bigger job force to hire from, and a job force that has additional skills beyond those taught as part of the student’s course work. This will reduce ramp-up time when educating out-of-college new hires. &lt;/li&gt;    &lt;li&gt;Students will learn about the active tech community in Boise and many companies that employ software professionals here that they didn’t know existed, resulting in more graduates staying in Idaho and a larger talent pool for all companies to hire from.&lt;/li&gt;    &lt;li&gt;As the program grows, and is promoted by ITC, employers will be helping draw out of state students to Idaho universities. This in turn can result in a larger pool of students willing to consider Idaho companies for their full time employment. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h5&gt;Benefits to Students&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;ITC Software Alliance seminars will provide free training above and beyond their standard course-work. This will create students with additional “real world” training and make them more marketable when they are interviewing for internships and full time positions. &lt;/li&gt;    &lt;li&gt;Develop relationships with local companies, many of which will be looking to hire interns and full time employees. &lt;/li&gt;    &lt;li&gt;Develop a relationship with ITC and have access to its full list of relevant companies when looking for employment. &lt;/li&gt;    &lt;li&gt;Eventually we would like to have ITC scholarships we can offer students who have engaged us in these training events. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h5&gt;Benefits to Universities&lt;/h5&gt;  &lt;ul&gt;   &lt;li&gt;Student retention in engineering programs as industry guest speakers motivate students and provide glimpse into what their “real world” working environment and tasks may entail. &lt;/li&gt;    &lt;li&gt;If successful, this program will differentiate Idaho universities and make them more valuable and attractive to out of state students. &lt;/li&gt;    &lt;li&gt;Industry training will allow universities to focus on core competencies of the curriculum, while industry volunteers help educate students on specialty, cutting edge topics that the industry needs new students to understand (Python, .NET, Ruby on Rails, etc) for immediate employment (whether as interns or full time employees).&lt;a name=&quot;_GoBack&quot;&gt;&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/8162211745810173565/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/10/itc-software-alliance-industry-led.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/8162211745810173565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/8162211745810173565'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/10/itc-software-alliance-industry-led.html' title='ITC Software Alliance: Industry-Led Education'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1349186671566599681</id><published>2010-09-27T14:18:00.001-07:00</published><updated>2010-09-27T14:18:25.602-07:00</updated><title type='text'>Too Many Web Frameworks</title><content type='html'>&lt;p&gt;&lt;a href=&quot;http://www.webdesignish.com/the-best-web-development-frameworks.html&quot; target=&quot;_blank&quot;&gt;This list&lt;/a&gt; of web frameworks is not complete (read all of the additional frameworks listed in the comments), but serves as a reminder why many traditional desktop application developers encounter analysis paralysis when moving to web development.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1349186671566599681/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/09/too-many-web-frameworks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1349186671566599681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1349186671566599681'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/09/too-many-web-frameworks.html' title='Too Many Web Frameworks'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-4161115586243927454</id><published>2010-09-08T15:45:00.001-07:00</published><updated>2011-07-05T09:41:35.781-07:00</updated><title type='text'>Advantage Web API</title><content type='html'>&lt;p&gt;Currently, data stored in the Advantage Database Server can only be accessed via an Advantage client interface of some sort (Delphi components, .NET Data Provider, PHP driver, etc.). All of these interfaces are built on top of the Advantage Client Engine (ACE), and ACE only supports two platforms; Windows and Linux.&lt;/p&gt;  &lt;p&gt;The easiest way to consume your data from other platforms is to expose that data via a web service. Depending on your experience and familiarity with web services, this can be a trivial task, or a pain point. There are many choices to be made at a high level (IIS, Apache, Ruby, Python, ASP.NET, PHP, etc.) and once those decisions are made there are even more at lower levels (framework decisions, REST vs RPC, etc.).&lt;/p&gt;  &lt;p&gt;Once implemented, these technologies work well with Advantage, but have introduced a variety of moving parts that your team must now understand and maintain. In addition, the requirement for these technologies as a foundation has increased both your development time and the scope of your project. For many teams this is a manageable solution, but for others this entry barrier prevents projects from ever getting off the ground.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;A Built-In Solution&lt;/h2&gt;  &lt;p&gt;We want Advantage users to have a turnkey option to retrieve their data via a web service. You can still obviously build your own, but for teams that would like a jump start, or would like to investigate web interfaces without the overhead or commitment, we will be distributing a pre-built web server and web service that provides access to your existing Advantage data.&amp;#160; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;&lt;/h3&gt;  &lt;h3&gt;The Technology&lt;/h3&gt;  &lt;p&gt;The web service is implemented as an Apache module that will be loaded by a stand-alone instance of Apache. This web service can also be installed into an existing Apache installation, but by default will install it’s own minimal copy of Apache.&lt;/p&gt;  &lt;p&gt;The web service is a &lt;a href=&quot;http://en.wikipedia.org/wiki/Representational_State_Transfer&quot; target=&quot;_blank&quot;&gt;RESTful&lt;/a&gt; API that returns data using a format very similar to the &lt;a href=&quot;http://www.odata.org/home&quot; target=&quot;_blank&quot;&gt;oData specification&lt;/a&gt;. The initial implementation will return &lt;a href=&quot;http://en.wikipedia.org/wiki/Json&quot; target=&quot;_blank&quot;&gt;JSON&lt;/a&gt; data. XML is a possibility for future implementations, but will not be part of the initial beta. &lt;/p&gt;  &lt;p&gt;Every modern development environment I know of provides the ability to make an HTTP call and consume a web service. This means you will have access to your Advantage data from literally any programming language and on any device platform.&lt;/p&gt;  &lt;p&gt;Configuration will be VERY simple. Add the path to the database you want to expose to a configuration file, and that’s it. You will immediately be able to securely (via HTTPS) request and update data from your Advantage server via web URI’s.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Consumption Examples&lt;/h3&gt;  &lt;p&gt;I’ve included a few examples below of this web service retrieving a set of records. These examples are by no means complete, but provide a quick glimpse at the consumption of this API on a variety of platforms and devices.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Browser&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The easiest way to test the service is to simply enter a URI into your browser.&lt;/p&gt;  &lt;p&gt;For example, entering the following URI into your browser after installing the server:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href=&quot;https://myserver:6282/adsweb/v1/test_db/tables/orders&quot;&gt;https://myserver:6282/adsweb/v1/test_db/tables/orders&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;would return:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/TIgR_mvQ3PI/AAAAAAAAKHY/T9ETZGGV8ZA/s1600-h/web3.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;web&quot; border=&quot;0&quot; alt=&quot;web&quot; src=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/TIgSA9VXViI/AAAAAAAAKHg/ujGSfABSSxE/web_thumb1.png?imgmax=800&quot; width=&quot;587&quot; height=&quot;507&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;.NET&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Consumption from the .NET framework is accomplished using the built in &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx&quot; target=&quot;_blank&quot;&gt;WebClient class&lt;/a&gt; in combination with the &lt;a href=&quot;http://json.codeplex.com/&quot; target=&quot;_blank&quot;&gt;JSON.NET library&lt;/a&gt; for JSON serialization and de-serialization:&lt;/p&gt;  &lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; min-height: 260px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 260px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;   &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;     &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; WebClient w = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; WebClient();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt; w.Headers.Add( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;Authorization&amp;quot;&lt;/span&gt;, &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;Basic &amp;quot;&lt;/span&gt; + &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;    Convert.ToBase64String( Encoding.ASCII.GetBytes( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;adssys:&amp;quot;&lt;/span&gt; ) ) );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt; w.Encoding = Encoding.UTF8;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt; result = w.DownloadString( &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;    &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;https://myserver:6282/adsweb/v1/test_db/tables/orders&amp;quot;&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt; sr = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; StringReader( result );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt; olist = (oDataResults&amp;lt;Orders&amp;gt;)serializer.Deserialize( &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; JsonTextReader( sr ), &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt;                                                       &lt;span style=&quot;color: #0000ff&quot;&gt;typeof&lt;/span&gt;( oDataResults&amp;lt;Orders&amp;gt; ) );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum13&quot;&gt;  13:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// Results are now ready to use in an object list&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum14&quot;&gt;  14:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; ( olist.d.results.Count &amp;gt; 0 )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum15&quot;&gt;  15:&lt;/span&gt;    MessageBox.Show( &lt;span style=&quot;color: #0000ff&quot;&gt;string&lt;/span&gt;.Format( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;First order ID is {0}&amp;quot;&lt;/span&gt;, &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum16&quot;&gt;  16:&lt;/span&gt;                     olist.d.results[0].id.ToString() ) );&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;iPhone/iPad (Objective-C)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consumption in Objective-C is accomplished using the URLWithString constructor and the &lt;a href=&quot;http://code.google.com/p/touchcode/wiki/TouchJSON&quot; target=&quot;_blank&quot;&gt;TouchJSON library&lt;/a&gt;:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; min-height: 210px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 210px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; NSString *jsonString = [NSString stringWithContentsOfURL:&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;    [NSURL URLWithString: &lt;span style=&quot;color: #006080&quot;&gt;@&amp;quot;https://myserver:6268/adsweb/v1/test_db/tables/orders&amp;quot;&lt;/span&gt;]&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;           encoding: NSUTF8StringEncoding error:&amp;amp;error];&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// deserialize&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt; NSData *jsonData = [jsonString dataUsingEncoding:NSUTF32BigEndianStringEncoding];&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt; NSDictionary *dictionary = &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt;    [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&amp;amp;error];&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt;     &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// save reference to the rows&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt; _rows = [[NSMutableArray alloc] initWithArray:[dictionary objectForKey:&lt;span style=&quot;color: #006080&quot;&gt;@&amp;quot;d&amp;quot;&lt;/span&gt;]];&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt; [_rows retain];&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Android (Java)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Consumption in Java is accomplished using the WebClient class and the &lt;a href=&quot;http://code.google.com/p/google-gson/&quot; target=&quot;_blank&quot;&gt;Gson library&lt;/a&gt;:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; min-height: 260px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 260px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; WebClient ordersClient = &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;    &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; WebClient( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;https://myserver:6282/adsweb/v1/test_db/tables/orders&amp;quot;&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt; String jsonOrders = ordersClient.GetData( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;total&amp;gt;50000&amp;quot;&lt;/span&gt; )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt; Gson gson = &lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; Gson();&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt; OrdersListWrapper ordersList = gson.fromJson( jsonOrders, OrdersListWrapper.&lt;span style=&quot;color: #0000ff&quot;&gt;class&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// The deserialized Results are now contained in the &amp;quot;d&amp;quot; object array.&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; ( ordersList.d.Count &amp;gt; 0 ) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt;    TextView tvResults = (TextView)mainView.findViewById( R.id.txtResults );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum13&quot;&gt;  13:&lt;/span&gt;    tvResults.setText( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;The First Order ID is &amp;quot;&lt;/span&gt; + &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum14&quot;&gt;  14:&lt;/span&gt;                       (&lt;span style=&quot;color: #0000ff&quot;&gt;new&lt;/span&gt; Integer( ordersList.d[0].id ).toString() ));&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum15&quot;&gt;  15:&lt;/span&gt;    }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;JavaScript&lt;/strong&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The following example consumes the API using Javascript in a browser, and uses the JQuery framework to quickly manipulate the JSON data and present a table:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; min-height: 260px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 260px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; &amp;lt;script language=&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;javascript&amp;quot;&lt;/span&gt;&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;   $.getJSON(&lt;span style=&quot;color: #006080&quot;&gt;&#39;https://myserver:6282/adsweb/v1/test_db/tables/orders&#39;&lt;/span&gt;,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt;   &lt;span style=&quot;color: #0000ff&quot;&gt;function&lt;/span&gt;(data, status){&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt;     $.each( data.d, &lt;span style=&quot;color: #0000ff&quot;&gt;function&lt;/span&gt;(i, item) {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt;      $(&lt;span style=&quot;color: #006080&quot;&gt;&#39;#res&#39;&lt;/span&gt;).append( &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;lt;li&amp;gt;Order &#39;&lt;/span&gt; + item.OrderNo + &lt;span style=&quot;color: #006080&quot;&gt;&#39; : $&#39;&lt;/span&gt; + item.AmountPaid + &lt;span style=&quot;color: #006080&quot;&gt;&#39;&amp;lt;/li&amp;gt;&#39;&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt;     } );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt;  });&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt; &amp;lt;/script&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt; &amp;lt;ul&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum13&quot;&gt;  13:&lt;/span&gt;   &amp;lt;div id=res&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum14&quot;&gt;  14:&lt;/span&gt;   &amp;lt;/div&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum15&quot;&gt;  15:&lt;/span&gt; &amp;lt;/ul&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PHP&lt;/strong&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;The following example consumes the API using PHP, and uses the CURL extension and built in json_decode function:&lt;/p&gt;

&lt;div style=&quot;border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; min-height: 430px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; max-height: 430px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px&quot; id=&quot;codeSnippetWrapper&quot;&gt;
  &lt;div style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot; id=&quot;codeSnippet&quot;&gt;
    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum1&quot;&gt;   1:&lt;/span&gt; $session = &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum2&quot;&gt;   2:&lt;/span&gt;   curl_init(&lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;https://localhost:6282/adsweb/pupdir/v1/query/select%20*%20from%20test1&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum3&quot;&gt;   3:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum4&quot;&gt;   4:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// configure CURL to trust our server with self-signed cert&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum5&quot;&gt;   5:&lt;/span&gt; curl_setopt($session, CURLOPT_SSL_VERIFYPEER, &lt;span style=&quot;color: #0000ff&quot;&gt;false&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum6&quot;&gt;   6:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// set db password&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum7&quot;&gt;   7:&lt;/span&gt; curl_setopt($session, CURLOPT_USERPWD, &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;adssys:&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum8&quot;&gt;   8:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// setup curl_exec to return the data instead of printing it&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum9&quot;&gt;   9:&lt;/span&gt; curl_setopt($session, CURLOPT_RETURNTRANSFER, &lt;span style=&quot;color: #0000ff&quot;&gt;true&lt;/span&gt;);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum10&quot;&gt;  10:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// set headers&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum11&quot;&gt;  11:&lt;/span&gt; curl_setopt($session, CURLOPT_HTTPHEADER, &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum12&quot;&gt;  12:&lt;/span&gt;   &lt;span style=&quot;color: #0000ff&quot;&gt;array&lt;/span&gt; ( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;Accept: application/json; charset=utf-8&amp;quot;&lt;/span&gt; ) );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum13&quot;&gt;  13:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum14&quot;&gt;  14:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// get the data&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum15&quot;&gt;  15:&lt;/span&gt; $response = curl_exec($session);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum16&quot;&gt;  16:&lt;/span&gt; curl_close($session);&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum17&quot;&gt;  17:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum18&quot;&gt;  18:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// decode the json into an object&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum19&quot;&gt;  19:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;if&lt;/span&gt; ( ! $dataset = json_decode( $response ) )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum20&quot;&gt;  20:&lt;/span&gt;   trigger_error( json_last_error() );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum21&quot;&gt;  21:&lt;/span&gt;&amp;#160; &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum22&quot;&gt;  22:&lt;/span&gt; &lt;span style=&quot;color: #008000&quot;&gt;// spit out a simple table (normally would use a view, but not in small example)&lt;/span&gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum23&quot;&gt;  23:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;print&lt;/span&gt;( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;&amp;lt;table&amp;gt;&amp;lt;tr&amp;gt;&amp;lt;hr&amp;gt;&amp;lt;th&amp;gt;Lastname&amp;lt;/th&amp;gt;&amp;lt;th&amp;gt;Firstname&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum24&quot;&gt;  24:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;foreach&lt;/span&gt; ( $dataset-&amp;gt;d-&amp;gt;results &lt;span style=&quot;color: #0000ff&quot;&gt;as&lt;/span&gt; $row )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum25&quot;&gt;  25:&lt;/span&gt;   &lt;span style=&quot;color: #0000ff&quot;&gt;print&lt;/span&gt;( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$row-&amp;gt;LASTNAME&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$row-&amp;gt;FIRSTNAME&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre style=&quot;border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &amp;#39;Courier New&amp;#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px&quot;&gt;&lt;span style=&quot;color: #606060&quot; id=&quot;lnum26&quot;&gt;  26:&lt;/span&gt; &lt;span style=&quot;color: #0000ff&quot;&gt;print&lt;/span&gt;( &lt;span style=&quot;color: #006080&quot;&gt;&amp;quot;&amp;lt;/table&amp;gt;&amp;quot;&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;Beta Testing and Discussion&lt;/h2&gt;

&lt;p&gt;The beta program is underway and we are ready for testers to try the new web API. If you would like to be included in the beta process, &lt;a href=&quot;http://response.sybase.com/forms/ADS_WebAPI_Beta&quot; target=&quot;_blank&quot;&gt;please register here&lt;/a&gt; and we will email you download and documentation links. &lt;/p&gt;

&lt;p&gt;In addition, you can visit the &lt;a href=&quot;news://devzone.advantagedatabase.com/advantage.webapi&quot; target=&quot;_blank&quot;&gt;Advantage.webapi newsgroup&lt;/a&gt; for Advantage Web API discussions and updates. If you can not access NNTP newsgroups, feel free to email me (Jeremy.Mullin at Sybase.com) with any feedback you may have.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/4161115586243927454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/09/advantage-web-api.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/4161115586243927454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/4161115586243927454'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/09/advantage-web-api.html' title='Advantage Web API'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_GFOFxoBQlsY/TIgSA9VXViI/AAAAAAAAKHg/ujGSfABSSxE/s72-c/web_thumb1.png?imgmax=800" height="72" width="72"/><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1094153700622405348</id><published>2010-07-08T11:30:00.001-07:00</published><updated>2010-07-08T11:32:39.598-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><title type='text'>Advantage Version 10 Tips</title><content type='html'>&lt;p&gt;If you didn’t catch Chris’ series of tips on utilizing the new functionality in Advantage version 10, he has created &lt;a href=&quot;http://blog.advantageevangelist.com/2010/07/advantage-10-tips-recap.html?utm_source=feedburner&amp;amp;utm_medium=feed&amp;amp;utm_campaign=Feed:+ViewsFromAnAdvantageEvangelist+(Views+from+an+Advantage+Evangelist)&quot; target=&quot;_blank&quot;&gt;a post with links to all 25 tips&lt;/a&gt;. Great material in bite-sized chunks, and much better than sitting down and reading a help file.&amp;#160; :)&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1094153700622405348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/07/advantage-version-10-tips.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1094153700622405348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1094153700622405348'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/07/advantage-version-10-tips.html' title='Advantage Version 10 Tips'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-4541314973558839595</id><published>2010-04-22T12:54:00.001-07:00</published><updated>2010-12-17T13:44:16.070-08:00</updated><title type='text'>Boise Software Mentoring</title><content type='html'>&lt;p&gt;Last night &lt;a href=&quot;http://twitter.com/davidcohen&quot; target=&quot;_blank&quot;&gt;David Cohen&lt;/a&gt; from &lt;a href=&quot;http://www.techstars.org/&quot; target=&quot;_blank&quot;&gt;TechStars&lt;/a&gt; presented at a local TechBoise event. He explained how TechStars helped to generate a software startup community and ecosystem in Boulder Colorado that feeds itself. Entrepreneurs, investors and mentors generating more entrepreneurs, more investors, and more mentors. It was motivational, to say the least. It was also hard to see why this couldn’t work in Boise. In fact, &lt;a href=&quot;http://nebula-shift.com/&quot; target=&quot;_blank&quot;&gt;Nebula Shift&lt;/a&gt; was announced a few months ago and plans to use a similar approach.&lt;/p&gt;  &lt;p&gt;I don’t plan on leaving my corporate job any time soon, but I’m fascinated with the software startup story. David’s presentation helped me realize my position in the community might be as a mentor. I want to contribute, and mentoring seems like the most immediate way to get involved.&lt;/p&gt;  &lt;p&gt;At the end of this post I offer up a little information about myself, not in the context of “look at me”, but rather as a quick overview of things I’m interested in, past endeavors, and areas I might be able to contribute. Some of these things I know in depth, some I’ve only played with for a week or two, some I’d be interested in learning more about and could only provide direction to resources and research. The list is certainly not complete, but hopefully provides a quick overview. &lt;/p&gt;  &lt;p&gt;I’m not a TechStars caliber mentor:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I can’t provide business advice (at least nothing credible). &lt;/li&gt;    &lt;li&gt;I’ve never started a company. &lt;/li&gt;    &lt;li&gt;I’ve never made millions. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I do love writing software, talking about software, and using software.&lt;/p&gt;  &lt;p&gt;I can provide architecture and framework suggestions, beta feedback, and general “have you heard of”, or “have you considered” types of conversations. I can help you locate and evaluate contractors. I can review and test the code contractors deliver as well as give you an independent assessment of the reality of their schedules. I can even write a few modules for you on a weekend every now and then.&lt;/p&gt;  &lt;p&gt;My day job working on developer tools exposes me to an outrageous number of technologies. My communication skills make it easy for me to effectively discuss these technologies with people of varying technical backgrounds. Some of the most helpful mentoring I have done so far has been helping those with little to no technical background get a handle on what is necessary, and what to expect, when implementing their business ideas.&lt;/p&gt;  &lt;p&gt;I hope a few colleagues will join me, and perhaps we can start a mentors directory on the TechBoise web site. Until a directory like that exists, feel free to email me directly.&lt;/p&gt;  &lt;p&gt;J.D. Mullin, &lt;a href=&quot;mailto:jeremy.d.mullin@gmail.com&quot;&gt;jeremy.d.mullin@gmail.com&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/jdmullin&quot; target=&quot;_blank&quot;&gt;@jdmullin&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;What I Currently Do&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;Software developer and R&amp;amp;D manager for an embedded database server and its client APIs and drivers &lt;/li&gt;    &lt;li&gt;Develop and write server and desktop client software using a variety of platforms and languages &lt;/li&gt;    &lt;li&gt;Understand of a wide variety of database technologies, development environments and programming frameworks &lt;/li&gt;    &lt;li&gt;Manage feature prioritization and roadmap &lt;/li&gt;    &lt;li&gt;Handle scheduling and dev team (they are awesome and low maintenance, though, so this job is easy) &lt;/li&gt;    &lt;li&gt;Train and interact with other software developers (we mostly sell to ISV’s) &lt;/li&gt;    &lt;li&gt;Constantly evaluating development environments and frameworks is part of my job. Provides a breadth of knowledge, but not always much depth &lt;/li&gt;    &lt;li&gt;Ship a successful software product that was conceived and is still currently developed here in Boise &lt;/li&gt;    &lt;li&gt;Read way too many software blogs &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;General Interests&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;RESTful services &lt;/li&gt;    &lt;li&gt;Scalability &lt;/li&gt;    &lt;li&gt;Concurrent programming &lt;/li&gt;    &lt;li&gt;Web APIs &lt;/li&gt;    &lt;li&gt;Post-mortem debugging &lt;/li&gt;    &lt;li&gt;Mobile device development (synchronization, data access, etc.) &lt;/li&gt;    &lt;li&gt;Social graphs &lt;/li&gt;    &lt;li&gt;Big dogs, beer, camping, motorcycles &lt;/li&gt; &lt;/ul&gt;  &lt;h2&gt;Past&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;h2&gt;&lt;/h2&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://careers.stackoverflow.com/jdmullin&quot; target=&quot;_blank&quot;&gt;My resume&lt;/a&gt; is probably the best list of past work &lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/4541314973558839595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/04/boise-software-mentoring.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/4541314973558839595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/4541314973558839595'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/04/boise-software-mentoring.html' title='Boise Software Mentoring'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-7392065670520374550</id><published>2010-02-25T10:29:00.001-08:00</published><updated>2010-02-25T10:30:52.143-08:00</updated><title type='text'>Advantage v10 Delphi SQL Property Editor</title><content type='html'>&lt;p&gt;One of my favorite new features in Advantage version 10 (beta at the end of March) is the new TAdsQuery.SQL property editor in Delphi/C++Builder. No longer will users be greeted with the default Delphi string list editor:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_GFOFxoBQlsY/S4bBckYCfzI/AAAAAAAADRg/h8_F3bEkxMg/s1600-h/boring%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;boring&quot; border=&quot;0&quot; alt=&quot;boring&quot; src=&quot;http://lh4.ggpht.com/_GFOFxoBQlsY/S4bBdIiV8kI/AAAAAAAADRo/V3E16xWOyDE/boring_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;357&quot; height=&quot;257&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Instead, you will see the familiar SQL Utility from the Advantage Data Architect:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_GFOFxoBQlsY/S4bBdUyK_2I/AAAAAAAADRw/k3_vEhvCtBk/s1600-h/qeditor%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;qeditor&quot; border=&quot;0&quot; alt=&quot;qeditor&quot; src=&quot;http://lh5.ggpht.com/_GFOFxoBQlsY/S4bBd6ovS4I/AAAAAAAADR4/zQKNQLuOPec/qeditor_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;515&quot; height=&quot;360&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;What does this mean? Now, without leaving your work flow in Delphi/C++Builder, you will have:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;syntax highlighting&lt;/li&gt;    &lt;li&gt;code templates&lt;/li&gt;    &lt;li&gt;access to the query plan&lt;/li&gt;    &lt;li&gt;ability to create indexes to help optimize the query&lt;/li&gt;    &lt;li&gt;ability to export the query results&lt;/li&gt;    &lt;li&gt;find and replace functionality&lt;/li&gt;    &lt;li&gt;ability to run and preview query results&lt;/li&gt;    &lt;li&gt;ability to verify query syntax&lt;/li&gt;    &lt;li&gt;ability to debug SQL scripts&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Write your query, preview it, and debug it. Then just click OK and the query is saved to your TAdsQuery instance. It’s all ball bearings these days.&lt;/p&gt;  &lt;p&gt;Another cool feature is this is the exact same interface you use inside the Advantage Data Architect (ARC), no need to learn any new functionality, it will all be familiar.&lt;/p&gt;  &lt;p&gt;To preview some of the other upcoming features in Advantage version 10 be sure to register for Chris’s &lt;a href=&quot;http://marketing.ianywhere.com/forms/Advantage10PS&quot; target=&quot;_blank&quot;&gt;upcoming webinars&lt;/a&gt;.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/7392065670520374550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/02/advantage-v10-delphi-sql-property.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7392065670520374550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7392065670520374550'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/02/advantage-v10-delphi-sql-property.html' title='Advantage v10 Delphi SQL Property Editor'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_GFOFxoBQlsY/S4bBdIiV8kI/AAAAAAAADRo/V3E16xWOyDE/s72-c/boring_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-8209512293602991779</id><published>2010-01-20T07:33:00.001-08:00</published><updated>2010-01-20T07:33:59.918-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><title type='text'>Object-Relational Mapping (ORM) Technology</title><content type='html'>&lt;p&gt;Sharing an interesting post by Shawn Wildermuth, &lt;a href=&quot;http://wildermuth.com/2010/01/18/Are_ORMs_Solving_Anything&quot; target=&quot;_blank&quot;&gt;Are ORM’s Solving Anything&lt;/a&gt;. Be sure to read the comments as well for more insight from his readers.&lt;/p&gt;  &lt;p&gt;I’m also fond of our colleague Glenn Paulley’s recent presentation, “ORMs: Friend or Foe?”, which can be found and downloaded from his &lt;a href=&quot;http://iablog.sybase.com/paulley/presentations/&quot; target=&quot;_blank&quot;&gt;presentations page&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I’ve written my own “poor man’s ORM” solutions in the past to facilitate object generation from a database result set, but have yet to fully embrace the latest generation of ORM technology. Like many developers, I’m a control freak and I love my database. Putting a middle man and smoke and mirrors between us is not fun for me. However, reducing the need to crank out endless lines of redundant data access code certainly is appealing. For writing simple applications, I really like the idea of using an ORM to just “get the job done”. &lt;/p&gt;  &lt;p&gt;I wish the Advantage team had the resources to support all of the ORM’s currently available, but that just isn’t possible. I could name at least 7 off the top of my head, and I bet with 5 minutes of web searching I could easily find another 10. &lt;/p&gt;  &lt;p&gt;I’m also concerned about the long term maintenance requirements. Supporting ORMs is not as basic as providing an interface to our database. We then have to deal with optimizing overly complex queries generated by the ORM (see Glenn’s presentation), record locking and visibility issues, transaction issues, etc.&lt;/p&gt;  &lt;p&gt;For now we support the .NET Entity Framework. &lt;a href=&quot;http://en.wikipedia.org/wiki/Hibernate_(Java)&quot; target=&quot;_blank&quot;&gt;Hibernate&lt;/a&gt; and &lt;a href=&quot;http://en.wikipedia.org/wiki/Nhibernate&quot; target=&quot;_blank&quot;&gt;NHibernate&lt;/a&gt; are on our radar, but no decisions have been made yet to move forward with solutions for those frameworks. There are feature requests for both on our &lt;a href=&quot;http://feedback.advantagedatabase.com&quot; target=&quot;_blank&quot;&gt;feedback page&lt;/a&gt;. I’d encourage you to vote for those or submit your own requests. Also please feel free to comment on this post to share your insights or thoughts.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/8209512293602991779/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2010/01/object-relational-mapping-orm.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/8209512293602991779'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/8209512293602991779'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2010/01/object-relational-mapping-orm.html' title='Object-Relational Mapping (ORM) Technology'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-1333666439032882431</id><published>2009-12-16T07:52:00.001-08:00</published><updated>2009-12-16T07:53:15.064-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term=".NET"/><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><category scheme="http://www.blogger.com/atom/ns#" term="FoxPro"/><category scheme="http://www.blogger.com/atom/ns#" term="Screencasts"/><title type='text'>Ken Levy “Advantage with VFP” Screencast</title><content type='html'>&lt;p&gt;Ken has recorded a cool screencast that covers the following topics:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Advantage Database Server (ADS) Components &lt;/li&gt;    &lt;li&gt;ADS Overview &lt;/li&gt;    &lt;li&gt;ADS Scenarios with Visual FoxPro &lt;/li&gt;    &lt;li&gt;Demo: ADS for VFP and .NET &lt;/li&gt;    &lt;li&gt;Resources&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The screencast can be found here: &lt;a href=&quot;http://video.sybase.com/products/advantage/Sybase_ADS_VFP.wmv&quot;&gt;http://video.sybase.com/products/advantage/Sybase_ADS_VFP.wmv&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/1333666439032882431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/12/ken-levy-advantage-with-vfp-screencast.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1333666439032882431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/1333666439032882431'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/12/ken-levy-advantage-with-vfp-screencast.html' title='Ken Levy “Advantage with VFP” Screencast'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-5459458265692499235</id><published>2009-12-10T12:30:00.001-08:00</published><updated>2009-12-10T12:31:32.795-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi DYK"/><title type='text'>Delphi Help System WITHOUT Microsoft SDK</title><content type='html'>&lt;p&gt;The help system in newer versions of Delphi and C++Builder is a pain to navigate. This blog post describes a way you can remove the Microsoft SDK from the help system. This significantly increases the odds you will find the Delphi methods/properties/etc you are looking for instead of Microsoft SDK info you likely don’t care about and can already search for on MSDN.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://blogs.embarcadero.com/deeelling/2009/12/07/38310&quot;&gt;http://blogs.embarcadero.com/deeelling/2009/12/07/38310&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In addition, if you would like to see the SDK documentation removed by default in the future, leave Dee a comment.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/5459458265692499235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/12/delphi-help-system-without-microsoft.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/5459458265692499235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/5459458265692499235'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/12/delphi-help-system-without-microsoft.html' title='Delphi Help System WITHOUT Microsoft SDK'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-7641432172653987740</id><published>2009-10-15T09:42:00.001-07:00</published><updated>2009-10-15T09:43:15.078-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><title type='text'>Advantage Delphi Components</title><content type='html'>&lt;p&gt;I’m currently in Delphi modifying and improving some of the Advantage property editors (the dialogs that help you read and set property values in the Object Inspector).&lt;/p&gt;  &lt;p&gt;If you have ideas for improvements, or if there are things that drive you crazy, post a comment to this post and I’ll see what I can do.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/7641432172653987740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/10/advantage-delphi-components.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7641432172653987740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/7641432172653987740'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/10/advantage-delphi-components.html' title='Advantage Delphi Components'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-8748829258420028107</id><published>2009-09-21T14:04:00.001-07:00</published><updated>2009-09-21T14:05:48.353-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><title type='text'>Advantage Delphi Components for RAD Studio 2010 Posted</title><content type='html'>&lt;p&gt;Advantage support for Delphi/RAD Studio 2010 was &lt;a href=&quot;http://devzone.advantagedatabase.com/dz/content.aspx?key=44&amp;amp;id=8d81d194-c6a7-e544-9ace-84685eb9bda7&quot; target=&quot;_blank&quot;&gt;released today&lt;/a&gt;.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/8748829258420028107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/09/advantage-delphi-components-for-rad.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/8748829258420028107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/8748829258420028107'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/09/advantage-delphi-components-for-rad.html' title='Advantage Delphi Components for RAD Studio 2010 Posted'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-806937349879631280</id><published>2009-09-15T12:15:00.001-07:00</published><updated>2009-09-15T12:16:45.201-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><title type='text'>Advantage CHM Help File</title><content type='html'>&lt;p&gt;The next Advantage 9.1 service update will include a CHM help file to replace the WinHelp files we are currently shipping. If you would like to try it out early, you can download a copy from &lt;a href=&quot;http://devzone.advantagedatabase.com/jeremym/advantage_chm.zip&quot;&gt;http://devzone.advantagedatabase.com/jeremym/advantage_chm.zip&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the past we only installed the help files for the client kits and products you where using. While this kept the installations smaller, it would often hide the fact that other clients existed and had functionality you might be interested in. This new help file is an “all-in-one” help file that contains ALL Advantage documentation, and is still a relatively small help file (roughly 7MB).&lt;/p&gt;  &lt;p&gt;This CHM help file will work in Windows Vista and Windows 7 without the buggy WinHelp plugin that was required in the past. Note if you want to view a CHM file stored on a network drive you will need to download and run &lt;a href=&quot;http://www.ec-software.com/products_hhreg.html&quot; target=&quot;_blank&quot;&gt;this utility from EC Software&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Our new help file is built using &lt;a href=&quot;http://www.ec-software.com/&quot; target=&quot;_blank&quot;&gt;Help &amp;amp; Manual from EC Software&lt;/a&gt;. So far it has been a great tool. I really like having access to the raw XML files the help is built from. In the event I need to manipulate the content and H&amp;amp;M doesn’t have the functionality I need, I can quickly write a Ruby or Perl script to zip through the help files and make my changes.&lt;/p&gt;  &lt;p&gt;If you encounter any problems with the help file or notice any formatting errors please use the feedback email button to send us bug reports.&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/806937349879631280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/09/advantage-chm-help-file.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/806937349879631280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/806937349879631280'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/09/advantage-chm-help-file.html' title='Advantage CHM Help File'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-6339806603796335782</id><published>2009-08-31T10:21:00.001-07:00</published><updated>2009-08-31T10:22:31.131-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Advantage"/><category scheme="http://www.blogger.com/atom/ns#" term="Delphi"/><title type='text'>Advantage Delphi 2010 Support</title><content type='html'>&lt;p&gt;As many of you have heard, &lt;a href=&quot;http://www.embarcadero.com/products/rad-studio&quot; target=&quot;_blank&quot;&gt;Delphi 2010&lt;/a&gt; (or “RAD Studio 2010”) has shipped. We will be updating the Advantage Delphi Components and releasing 8.1 and 9.1 updates in the next few weeks.&lt;/p&gt;  &lt;p&gt;Our first update will include basic changes in the &lt;a href=&quot;http://devzone.advantagedatabase.com/dz/content.aspx?key=20&amp;amp;Release=13&amp;amp;Product=10&amp;amp;Platform=6&quot; target=&quot;_blank&quot;&gt;Advantage Delphi Components&lt;/a&gt; to support Delphi 2010. This update will let you use our components in Delphi 2010 just as you do in Delphi 2009 and older versions today.&amp;#160; A subsequent release will include updates that expand on some of the new functionality in Delphi (verb hints in the Object Inspector, JSON serialization, etc.).&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/6339806603796335782/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/08/advantage-delphi-2010-support.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/6339806603796335782'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/6339806603796335782'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/08/advantage-delphi-2010-support.html' title='Advantage Delphi 2010 Support'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1672233813945040344.post-6624088186419631546</id><published>2009-07-28T17:38:00.001-07:00</published><updated>2009-07-28T17:38:06.616-07:00</updated><title type='text'>I’m Not Dead Yet</title><content type='html'>&lt;p&gt;Couldn’t resist the Monty Python reference… &lt;/p&gt;  &lt;p&gt;It’s been a long time since I’ve posted to my blog. I’ve been caught up in &lt;a href=&quot;http://twitter.com/jdmullin&quot; target=&quot;_blank&quot;&gt;Twitter land&lt;/a&gt; which appeals to my lazy programmer side (140 characters is much easier to conjure up than a blog post is). I’ve also been spending most of my free time (when I normally write these blog entries) playing with .NET, Visual Studio, Ruby, Ruby in Steel, and ASP.NET MVC. Add to that some C and Delphi stuff at work, and my brain has been mush for the last few months.&lt;/p&gt;  &lt;p&gt;I’m skipping Southwest Fox this year, but I’ll be in Washington D.C. at the end of August for our next &lt;a href=&quot;http://www.sybase.com/adssummit&quot; target=&quot;_blank&quot;&gt;Advantage Technical Summit&lt;/a&gt;. I believe we will be hosting a Visual FoxPro user group meeting while we are in town as well.&lt;/p&gt;  &lt;p&gt;As for technical blog content, I hope to post some more soon. I’ve recently had the need to slurp up a specific portion of the ads_err log and post it to a remote exception logger. I hope to publish and post a .NET version of that code when I’m finished. Unless of course some of you have already done that, in which case it would be cool if you could e-mail me the code…&amp;#160; ;)&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://jdmullin.blogspot.com/feeds/6624088186419631546/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://jdmullin.blogspot.com/2009/07/im-not-dead-yet.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/6624088186419631546'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1672233813945040344/posts/default/6624088186419631546'/><link rel='alternate' type='text/html' href='http://jdmullin.blogspot.com/2009/07/im-not-dead-yet.html' title='I’m Not Dead Yet'/><author><name>J.D. Mullin</name><uri>http://www.blogger.com/profile/07358042130535416073</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>