<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Official Joroto Blog &#187; Tom CTO</title>
	<atom:link href="http://www.joroto.com/blog/author/tom/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joroto.com/blog</link>
	<description>From the people at Joroto, Inc.</description>
	<lastBuildDate>Thu, 20 Oct 2011 21:10:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to find your resources and how to generally find the directory layout</title>
		<link>http://www.joroto.com/blog/2011/08/14/how-to-find-your-resources-and-how-to-generally-find-the-directory-layout/</link>
		<comments>http://www.joroto.com/blog/2011/08/14/how-to-find-your-resources-and-how-to-generally-find-the-directory-layout/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 03:24:41 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bundle]]></category>
		<category><![CDATA[compile]]></category>
		<category><![CDATA[compiled]]></category>
		<category><![CDATA[compiling]]></category>
		<category><![CDATA[directory]]></category>
		<category><![CDATA[file]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPlatform]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[resource]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=612</guid>
		<description><![CDATA[To find the main download directory for when you are receiving files, put this snippet of code in a test project or your main project at the point of opening: NSArray *pathsForDownloadedFiles = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *pathMain = [pathsForDownloadedFiles &#8230; <a href="http://www.joroto.com/blog/2011/08/14/how-to-find-your-resources-and-how-to-generally-find-the-directory-layout/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>To find the main download directory for when you are receiving files, put this snippet of code in a test project or your main project at the point of opening:</p>
<pre> NSArray *pathsForDownloadedFiles = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
 NSString *pathMain = [pathsForDownloadedFiles objectAtIndex:0];
 NSLog(@"main download directory is [%s]", [pathMain UTF8String]);</pre>
<p>The first line lets you allow Apple to put the application download directory anywhere it likes. It will also be able to change it at will, without breaking your program.<br />
The second line means that there is only one directory you need to access and its the first one. Remember in C arrays are zero based which means the first element of the array is at index number zero not at index number one.<br />
NSLog will let you run the app in the simulator OR on your device and send logging information back to the debug console in XCode. Nice and integrated.</p>
<p>An alternative method:</p>
<pre> NSString *mainPath = [self getDataPath];</pre>
<p>Uhhhhh yeah a bit shorter. Its not deprecated from what I see so one can use this method also.</p>
<p>Finally lets see where our resource is. Again, if you use this method, then XCode will be able to re-layout the resource directory structure anyway it wants without breaking your program. You KNOW they&#8217;re going to do this someday and they won&#8217;t tell you until its been done. So lets Program Defensively. Just like you drive defensively.<br />
To find a specific resource that was compiled into your application:</p>
<pre> NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"mission1" ofType:@"jmf"];
 NSLog(@"Path for mission file is [%s]", [resourcePath UTF8String]);</pre>
<p>The AT (@) sign is the NSString constructor without declaring an NSString. In case you&#8217;re wondering.</p>
<p>Good Luck and God&#8217;s Speed to ya mates.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2011%2F08%2F14%2Fhow-to-find-your-resources-and-how-to-generally-find-the-directory-layout%2F&amp;title=How%20to%20find%20your%20resources%20and%20how%20to%20generally%20find%20the%20directory%20layout" id="wpa2a_2"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/08/14/how-to-find-your-resources-and-how-to-generally-find-the-directory-layout/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>XCode FAIL Cannot Browse an SMB Windows Share</title>
		<link>http://www.joroto.com/blog/2011/04/29/xcode-fail-cannot-browse-an-smb-windows-share/</link>
		<comments>http://www.joroto.com/blog/2011/04/29/xcode-fail-cannot-browse-an-smb-windows-share/#comments</comments>
		<pubDate>Sat, 30 Apr 2011 03:03:08 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=603</guid>
		<description><![CDATA[XCode cannot browse an SMB Windows Share. This has worked in the previous versions of XCode. Current version is 4.02 (4A2002a). Apple Test Engineers you suck. Ummm Yeah I know you hate Windows, but the JOB you took on is &#8230; <a href="http://www.joroto.com/blog/2011/04/29/xcode-fail-cannot-browse-an-smb-windows-share/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>XCode cannot browse an SMB Windows Share. This has worked in the previous versions of XCode. Current version is 4.02 (4A2002a). Apple Test Engineers you suck. Ummm Yeah I know you hate Windows, but the JOB you took on is to help your customers, i.e. Us lowly programmer serfs. OK???<br />
DUH yeah don&#8217;t test that.<br />
The share is active, Finder had it open already.<br />
I opened XCode after Finder had it open. I closed all the Finder windows.<br />
Just a plain old bug. </p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2011%2F04%2F29%2Fxcode-fail-cannot-browse-an-smb-windows-share%2F&amp;title=XCode%20FAIL%20Cannot%20Browse%20an%20SMB%20Windows%20Share" id="wpa2a_4"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/04/29/xcode-fail-cannot-browse-an-smb-windows-share/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Droid will not assimilate you. Long live iOS.</title>
		<link>http://www.joroto.com/blog/2011/01/17/droid-will-not-assimilate-you-long-live-ios/</link>
		<comments>http://www.joroto.com/blog/2011/01/17/droid-will-not-assimilate-you-long-live-ios/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 03:39:11 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[droid]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[ios]]></category>
		<category><![CDATA[mobile phones]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=568</guid>
		<description><![CDATA[TechCrunch is reporting that if you&#8217;re on iOS there is a 90% chance you have the latest OS version, but get this, if you are using droid, there is only four tenths of one percent chance (yes that&#8217;s correct) that &#8230; <a href="http://www.joroto.com/blog/2011/01/17/droid-will-not-assimilate-you-long-live-ios/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>TechCrunch <a href="http://techcrunch.com/2011/01/17/ios-android-breakdown/">is reporting</a> that if you&#8217;re on iOS there is a 90% chance you have the latest OS version, but get this, if you are using droid, there is only four tenths of one percent chance (yes that&#8217;s correct) that you have the latest version of the Android Operating System.</p>
<p>We have talked about Droid fragmentation and holy smokes this underscores the mess that is called Droid. Actually, its not Google&#8217;s fault, they are actively upgrading and maintaining the operation system. The problem is with the handset makers and carriers (who contract for handsets). They are not going back, testing the old droid hardware with the new OS, and then updating the new OS. We wish it were not so. We love Linux and want it to proliferate.</p>
<p>There is obvious demand for Droid phones, regardless the reasons for buying Droid, which are as varied as for buying the iPhone from Apple. The only way out of this mess is for Google to contract with a/some handset makers and create one phone that will step up against the iPhone. Google should be able to be innovative in this space. I would recommend that Sergey stop buying companies and put his creative genius behind this problem. A second option is to open &#8220;Google Operations and Update Program&#8221; (GOUP) that will update the OS for high volume handsets. This way Google will be able to help the handset makers, and themselves, improve the image of Droid as a mobile OS.</p>
<p>Sergey, you can&#8217;t be pleased with this situation. Change it.</p>
<p>Update 1/20/2011 10:07pm</p>
<p>Well the boys <a href="http://www.foxbusiness.com/markets/2011/01/20/googles-larry-page-takes-ceo-reins/">pulled the trigger</a> finally. Larry is going to run the company and Sergey is back to the creative work that he is genius at. Hooray, a return to a more exciting Google. Good work guys.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2011%2F01%2F17%2Fdroid-will-not-assimilate-you-long-live-ios%2F&amp;title=Droid%20will%20not%20assimilate%20you.%20Long%20live%20iOS." id="wpa2a_6"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/01/17/droid-will-not-assimilate-you-long-live-ios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Steve Jobs, best of health. Tim Cook its time to man-up.</title>
		<link>http://www.joroto.com/blog/2011/01/17/steve-jobs-the-best-of-health-tim-cook-its-time-to-man-up/</link>
		<comments>http://www.joroto.com/blog/2011/01/17/steve-jobs-the-best-of-health-tim-cook-its-time-to-man-up/#comments</comments>
		<pubDate>Tue, 18 Jan 2011 03:10:14 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=566</guid>
		<description><![CDATA[As you all know Steve Jobs has taken a medical leave. While we know he will stay informed of the new features and products at Apple, he needs to concentrate his energy on his health and his family. The only &#8230; <a href="http://www.joroto.com/blog/2011/01/17/steve-jobs-the-best-of-health-tim-cook-its-time-to-man-up/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As you all know Steve Jobs has <a href="http://techcrunch.com/2011/01/17/steve-jobs-health-uncertainty/">taken a medical leave</a>. While we know he will stay informed of the new features and products at Apple, he needs to concentrate his energy on his health and his family. The only way for him to do that with a clear head is for Tim Cook to step up and control all aspects of Apple in a way that Steve can accept that its being taken care of as if Steve himself were doing it.</p>
<p>If Steve steps down in a more permanent manner, Tim can take the company in whatever direction he and the board feel it should go. But until then, everyone needs to pull in the same direction that they know Steve would go. Steve is important just because he is Steve, and not because he runs Apple and is the genius behind all of these industries he has dominated. The money, the <a href="http://www.businessinsider.com/apples-stock-down-7-in-germany-on-steve-jobs-medical-leave-2011-1?utm_source=alerts">Apple stock price</a>, the products be damned. They don&#8217;t mean anything.</p>
<p>Our best to you Steve, and we wish strength and wisdom to Tim.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2011%2F01%2F17%2Fsteve-jobs-the-best-of-health-tim-cook-its-time-to-man-up%2F&amp;title=Steve%20Jobs%2C%20best%20of%20health.%20Tim%20Cook%20its%20time%20to%20man-up." id="wpa2a_8"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/01/17/steve-jobs-the-best-of-health-tim-cook-its-time-to-man-up/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Amazon App Store for Droid &#8211; developers lose control</title>
		<link>http://www.joroto.com/blog/2011/01/16/amazon-app-store-for-droid-developers-lose-control/</link>
		<comments>http://www.joroto.com/blog/2011/01/16/amazon-app-store-for-droid-developers-lose-control/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 20:50:48 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Mobile Devices]]></category>
		<category><![CDATA[amazon pricing]]></category>
		<category><![CDATA[droid apps]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=562</guid>
		<description><![CDATA[Amazon's app store pricing model is incorrect and needs to be revised, if not scrapped. <a href="http://www.joroto.com/blog/2011/01/16/amazon-app-store-for-droid-developers-lose-control/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Amazon is attempting to create <a href="http://news.cnet.com/8301-30685_3-20027300-264.html">a new pricing model</a> and it sucks.</p>
<p>Currently a manufacturer would set a &#8220;list price&#8221;. The seller (like Walmart) knew what they bought it for from the manufacturer, typically 35% &#8211; 55% discount from the list price. The seller would then set, what they would call, a fair price. This included their profit and overhead. For example: Huffy sells a bicycle to Walmart for $50 but the list price is $100. Walmart looks benevolent by setting the price at $75 which, theoretically, gives the consumer a $25 discount. Walmart has grown its business by competing on discounts.</p>
<p>Amazon wants software to be sold that way too. Currently, the boxed programs are sold to it at the vendor price, Amazon displays the List price and how much they are going to discount it. Fair enough. They&#8217;ve done a spectacular job in my opinion and have served the world well.</p>
<p>However, <a href="http://techcrunch.com/2011/01/05/amazon-android-app-store-2/">the change </a>they are trying to implement is that the manufacturer (software developer) will have NO CLUE how much they will make off of each app. If the manufacturer wants to make a minimum price at all pricing levels, then the list price will look like a boxed set of software. This is ridiculous and has to be rethought. I understand all the people saying that Amazon knows its client base and sets the prices accordingly. No problem, let them do that, but don&#8217;t mess with the developer. We have to eat too. For us, I think Amazon is not the way the truth and the light for our apps. Amazon needs to ask &#8220;what is the minimum price you will accept for your product. What is the maximum you want for the product. What is the cheapest price you have listed it for elsewhere (if you have posted the app elsewhere).</p>
<p>With these facts, Amazon can vary its pricing according to the wishes of the developer. Everyone wins. Just like <a href="http://pgeist.blogs.ocala.com/10119/new-year%E2%80%99s-resolutions-for-success-in-2011/">Steven Covey and Zig Ziglar</a> want (Habit 4). The developer needs to create a budget and project sales. When the sales numbers come in, it will be a mess by having the numbers all over the place. Also, a high level of trust needs to be had. For instance, not that I do not trust Jeff Bezos and his crew, but just imagine for a second that Amazon needed to &#8220;make its numbers&#8221;. Couldn&#8217;t they say that various apps didn&#8217;t sell for $2 they had sold for $1 because they priced it according to Christmas pricing, or some other promotion? The developer has to take Amazon&#8217;s word for it. In the Apple app store, you always know what it sold for no matter what. You change the price to reflect sales, trends, etc&#8230;</p>
<p>I believe Amazon needs to rethink how this all works because all the business books I have read (I bought them from Amazon) say that one needs to control their costs, their pricing, and their business. Amazon&#8217;s app store pricing gives the developer no control.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/01/16/amazon-app-store-for-droid-developers-lose-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dave Ramsey had a guy on that made a full time living from You Tube</title>
		<link>http://www.joroto.com/blog/2011/01/16/dave-ramsey-had-a-guy-on-that-made-a-full-time-living-from-you-tube/</link>
		<comments>http://www.joroto.com/blog/2011/01/16/dave-ramsey-had-a-guy-on-that-made-a-full-time-living-from-you-tube/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 20:15:31 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=559</guid>
		<description><![CDATA[Cool way for people who need to make money/more money. Even shut-ins can make money this way if they have some unique content. <a href="http://www.joroto.com/blog/2011/01/16/dave-ramsey-had-a-guy-on-that-made-a-full-time-living-from-you-tube/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.daveramsey.com/home/">Dave Ramsey</a> is a financial guy with a radio show. He&#8217;s hard hitting, and very logical in the financial plan that he wants you to invoke. Mainly its get out of short term debt so you can make financial and life decisions from a position of strength.</p>
<p>Anyway, this guy calls up last week (Jan 10-14, but I can&#8217;t find the audio clip), and it sounds like he was making more than enough money for a full time job from You Tube videos. The gist of it was that You Tube (i.e. Google) <a href="http://techcrunch.com/2009/08/25/youtube-extends-revenue-sharing-program-to-anyone-with-a-viral-video/">revenue shares</a> when your video goes viral. They monitor this and are proactive by sending you an email when it hits one of their thresholds. Then they put ads on your video and share the revenue with you. Cool.</p>
<p>Here are a couple of links about how to get started:<br />
<a href="http://www.youtube.com/partners">You Tube<br />
Frank Furness<br />
</a><a href="http://www.youtube.com/watch?v=aC-KOYQsIvU&amp;feature=related">Making Hot Ice</a> &#8211; Look at the number of views. People want to know how to do things.<a href="http://www.youtube.com/partners"></a></p>
<p>-T-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/01/16/dave-ramsey-had-a-guy-on-that-made-a-full-time-living-from-you-tube/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>eBook Lending &#8211; my rant</title>
		<link>http://www.joroto.com/blog/2011/01/16/ebook-lending-my-rant/</link>
		<comments>http://www.joroto.com/blog/2011/01/16/ebook-lending-my-rant/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 06:04:13 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=555</guid>
		<description><![CDATA[Book publishers haven't a clue about who their customer is and what they want. Long live the trees. <a href="http://www.joroto.com/blog/2011/01/16/ebook-lending-my-rant/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The reason I buy dead trees is because I cannot loan eBooks out. Amazon has begun a baby step in the right direction (with the publishers dragged kicking and screaming) but the standard, <a href="http://www.amazon.com/gp/help/customer/display.html?nodeId=200549320">sub-standard explanation</a> can be found here. (That&#8217;s a reference to the original Tron movie which was great and glorious)</p>
<p>The question is: Once the loaned book is placed back in my library, can I loan it out again? That point is unclear from their explanation. But of course. And enough people have asked that question, that it &#8220;should be&#8221; on the FAQ for this policy, but is noticeably absent. I think they are figuring out if they really need to let you.</p>
<p>For me, until that question is answered, my eBook buying is limited. I&#8217;m not sure why this is such a big question because <a href="http://my.safaribooksonline.com/">O&#8217;Reilly&#8217;s Safari</a> does something like this, but on a global scale. No lending, mind you, but they&#8217;re all &#8220;lent&#8221; books because one checks them out and back in.</p>
<p>Barnes &amp; Noble has had this feature for a year according to <a href="http://www.techflash.com/seattle/2010/10/amazon-making-kindle-into-digital.html">Tech Flash</a>.</p>
<p>The reference to the kicking and screaming publishers is because &#8220;The publisher&#8217;s have the right to determine which titles are allowed to be loaned&#8221;. This is stupid, idiotic and moronic. These publisher&#8217;s have NO CLUE. What in the world do they think happens with their current dead trees? Hey CLUELESS *knock*   *knock*  I just gave my Guerrilla Marketing book to a friend who was flying out of town. DUH yeah now she can read it &#8220;from afar&#8221; like you are afraid the eLending will cause. No DUH. If you haven&#8217;t read the writing on the wall, dead trees are not in demand, Kindles are. And iPads and the eBook apps that have proliferated lately.</p>
<p>Publishers: GIVE  IT   UP  already. This is not the Alamo, Steve at Apple and Jeff at Amazon will make you a boatload of money if you let them. They understand your customers WAY better than you. You have lost your way and these innovative companies and people are going to smash you. In fact our next book will probably bypass you and publish right to the iBook store in the modified ePub standard that Steve is championing because you all couldn&#8217;t get you act together and make a standard that allowed multimedia, and references, etc&#8230; Long Live King Steve and the <a href="http://mac.blorge.com/2010/08/29/iwork-9-0-4-brings-epub-publishing/">Pages</a> app (for like $80) that creates ePub ready books for you. OOO RAHH</p>
<p>Does anyone have faith that the publishers will catch on BEFORE they go bankrupt? I think not. The music houses haven&#8217;t caught on yet either. Direct Author/Singer/etc to Digital is here and not going to go away. Musicians are in direct contact with their fans (called Customers in business) and that relationship is AWESOME. Say it again AWESOME. The Musicians will get a much larger cut of their profits, just like the Authors will get a larger cut.</p>
<p>This is not to say that the publishers don&#8217;t offer something to the authors like editing, artwork, and distribution . . . . OH STRIKE the distribution word. They don&#8217;t control that anymore. They haven&#8217;t come to grips with that yet.</p>
<p>Long live the Trees. . . LONG LIVE THE TREES saith the faithful.</p>
<p>Live long and prosper Authors, musicians, and all content producers.</p>
<p>-T-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/01/16/ebook-lending-my-rant/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Standard Deviation Explained</title>
		<link>http://www.joroto.com/blog/2011/01/16/standard-deviation-explained/</link>
		<comments>http://www.joroto.com/blog/2011/01/16/standard-deviation-explained/#comments</comments>
		<pubDate>Sun, 16 Jan 2011 05:38:30 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[standard deviation]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=552</guid>
		<description><![CDATA[This is the best explanation I&#8217;ve seen so far. http://amarsagoo.blogspot.com/2007/09/making-sense-of-standard-deviation.html Kudos to Amar Sagoo]]></description>
			<content:encoded><![CDATA[<p>This is the best explanation I&#8217;ve seen so far.</p>
<p>http://amarsagoo.blogspot.com/2007/09/making-sense-of-standard-deviation.html</p>
<p>Kudos to Amar Sagoo</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2011%2F01%2F16%2Fstandard-deviation-explained%2F&amp;title=Standard%20Deviation%20Explained" id="wpa2a_10"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2011/01/16/standard-deviation-explained/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Popping up the keyboard on the iPlatform</title>
		<link>http://www.joroto.com/blog/2010/08/28/popping-up-the-keyboard/</link>
		<comments>http://www.joroto.com/blog/2010/08/28/popping-up-the-keyboard/#comments</comments>
		<pubDate>Sat, 28 Aug 2010 22:43:05 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[focus]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[textfield]]></category>
		<category><![CDATA[virtual keyboard]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=531</guid>
		<description><![CDATA[If you want the virtual keyboard to popup when you display a text field in a view do the following: In your viewDidLoad or if you call any method to do &#8220;things&#8221; before displaying then the variable that points to &#8230; <a href="http://www.joroto.com/blog/2010/08/28/popping-up-the-keyboard/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you want the virtual keyboard to popup when you display a text field in a view do the following:</p>
<p>In your viewDidLoad or if you call any method to do &#8220;things&#8221; before displaying then the variable that points to the text field should have the becomeFirstResponder message sent to it.<br />
Example:<br />
In the .h of your viewcontroller or class<br />
UITextField *tfJoroto;</p>
<p>In the .m of your viewcontroller or class<br />
-(void)viewDidLoad {<br />
[tfJoroto becomeFirstResponder];<br />
} // viewDidLoad</p>
<p>This should also set the focus to the UITextField.</p>
<p>Good hunting.<br />
-T-</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F08%2F28%2Fpopping-up-the-keyboard%2F&amp;title=Popping%20up%20the%20keyboard%20on%20the%20iPlatform" id="wpa2a_12"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/08/28/popping-up-the-keyboard/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPad Universal App</title>
		<link>http://www.joroto.com/blog/2010/08/14/ipad-universal-app/</link>
		<comments>http://www.joroto.com/blog/2010/08/14/ipad-universal-app/#comments</comments>
		<pubDate>Sun, 15 Aug 2010 03:29:02 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[launch image]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[splash]]></category>
		<category><![CDATA[Universal]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=517</guid>
		<description><![CDATA[This is for the uninitiated and for posterity. Running XCode 3.2.3. Please NOTE: I had forgotten this. If you update the OS of your iPlatform device (pod/phone/pad) then you MUST update the XCode SDK. Now this makes sense in a &#8230; <a href="http://www.joroto.com/blog/2010/08/14/ipad-universal-app/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>This is for the uninitiated and for posterity.<br />
Running XCode 3.2.3.<br />
Please NOTE: I had forgotten this. If you update the OS of your iPlatform device (pod/phone/pad) then you MUST update the XCode SDK. Now this makes sense in a way, however last night&#8217;s (8/13/10) update of the device was NOT matched by and Upgrade notification of the XCode SDK platform. I had to go a lookin.  Bottom line is, unless you NEED something from that update, don&#8217;t do it in the middle of a project. It waste Humungo time. That means ALOT for you marketing weasels.</p>
<p>1) Create a View Based app<br />
2) Name it of course.<br />
3) Drop down the targets folder in the project explorer. Its where it drops you after project creation.<br />
4) Select your named project as the target.<br />
5) Go to the top menu drop down the Project menu.<br />
6) Choose  &#8220;Upgrade Current Target for iPad&#8230;&#8221; selection.<br />
7) Choose One Universal Application. It is already selected.<br />
YAH MULE. Head thumping music going now. Very loud is better.<br />
 <img src='http://www.joroto.com/blog/wp-includes/images/smilies/icon_cool.gif' alt='8)' class='wp-smiley' /> Click OK . Umm duh<br />
9) Holy smokes Batman it auto-created the MainWindow~iPad.xib for you. Waycool.<br />
As my speakers blow. Joroto will buy me another set right? Part of the &#8220;support you local programmer&#8221; program. Right!?<br />
It also created a Resources-iPad Group folder for you. It is in your BEST interest to keep your assets separated. Ya know the graphics, etc.<br />
10) It is autoset for a device. Use the drop down on the left under the window control buttons to change to Simulator, and then choose iPad.<br />
11) Build and Run. Everything is ok.<br />
12) Close it and choose the iPhone simulator. Build and run. Everything is ok.<br />
13) You have an icon for your app right? RIGHT!? Double tap the (your project name).plist.<br />
This is the file that tells the app store and the iPlatform OS where to start when running you app and showing things when the app isn&#8217;t running.<br />
14) Fifth line down it says &#8220;Icon file&#8221;. Double tap the blank line on the right and enter the name of your icon. You don&#8217;t need the extension, it assumes png. No path is necessary.<br />
So how does it know where the graphic is?<br />
15) Right two-finger tap the Resources Group line. The context menu comes up. Move the cursor over Add, then choose existing file. Now find your file and choose Add (lower right hand corner of the Finder window). A Dialog pops up. I always choose the ALSO COPY the file into the project. This is so all my projects are self contained.<br />
16) Now we want a splash screen, because your bloated code (unless you grew up on CP/M and embedded systems like I did, or had an excellent mentor) will load too slowly.<br />
In the editing of the (your project name).plist where you placed the icon information:<br />
Double finger tap and choose Add Row.<br />
From the list choose &#8220;Launch Image (iPad)&#8221; selection.<br />
Tap the blank box to the right and enter the name of your splash screen graphic.<br />
Import that graphic into the project using the technique in step 15.<br />
You&#8217;ll need a splash images sized for the iPad and then ANOTHER for the iPhone. Graphic Artists are loving this.</p>
<p>Ok you&#8217;re cooking with gasoline. Build and run on each simulator.  You should see your splash screen, then hit the round button at the bottom of the simulator and you&#8217;ll see your icon on the simulator home screen.</p>
<p>Naming convention, although I have yet to fully test this.<br />
(Image name)-(orientation)~(device)@(size).png<br />
For ours its:<br />
Splash-Portrait~iPad.png<br />
Splash-Portrait~iPhone.png<br />
Splash-Portrait~iPhone@2X.png</p>
<p>&#8220;Remember, No matter where you go, there you are&#8221;<br />
Buckaroo Bonsai</p>
<p>Peace. Unless war is necessary.<br />
-T-</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F08%2F14%2Fipad-universal-app%2F&amp;title=iPad%20Universal%20App" id="wpa2a_14"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/08/14/ipad-universal-app/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>iPad &#8211; The Conqueror</title>
		<link>http://www.joroto.com/blog/2010/04/24/ipad-the-conqueror/</link>
		<comments>http://www.joroto.com/blog/2010/04/24/ipad-the-conqueror/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 07:00:53 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipad features]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=446</guid>
		<description><![CDATA[I went to Best Buy and they had the requisite four iPads to touch and feel and play with. Lots of kids/teens/college age. They were all over everything, the macbooks, iPads, everything that was there. It was &#8220;an event&#8221; for &#8230; <a href="http://www.joroto.com/blog/2010/04/24/ipad-the-conqueror/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I went to Best Buy and they had <a href="http://www.electronista.com/articles/10/03/28/apple.plans.limited.third.party.ipad.sales/">the requisite four iPads</a> to touch and feel and play with. Lots of kids/teens/college age. They were all over everything, the macbooks, iPads, everything that was there. It was &#8220;an event&#8221; for them. The fun they were having, the giggling, &#8220;makes&#8221; the sale as much as the device. It was like watching one the &#8220;cool, hip&#8221; commercials.</p>
<p>Anyway, my impression is that it is a larger iPlatform device. The larger size allows several things like a larger keyboard, and they had a piano simulator loaded. Pretty neat.</p>
<p>I also played pre-loaded video and YouTube video and it was seamless. No jitters. Very nice quality. Definitely a kid-in-the-car device. The kids will never again ask &#8220;Are we there yet&#8221;. Most likely they&#8217;ll say &#8220;Wait, I&#8217;m not done with my video. Do I HAVE to go into the hotel?&#8221;</p>
<p>I have big hands/fingers. Not FAT mind you, umm just big. I was in the market for a netbook. Something to hold in one hand and type with the other. Yes I can type pretty quickly with one hand. I know you can&#8217;t (and you&#8217;ll have other reasons why the iPad sucks), but that&#8217;s tough. I could type full speed. The key, it seems, is that the device is sensitive enough to notice my tapping on the glass.</p>
<p>Yes there were games, but I was looking more for productivity. I need to use this on the train ride into work. Have you ever tried to write while the train is jostling around? Not neat, and sometimes impossible to read. Voice is bad because others can hear what one is speaking into a voice recorder.</p>
<p>Overall, I &#8220;need&#8221; one. It would make the idea sessions that I have on the train more convenient to record. With the wifi I could email it back to the Guild.</p>
<p>If you&#8217;re not convinced, then you may not have a need so don&#8217;t get excited and buy one. If you don&#8217;t have an iPod, and have the cash (stay off the credit card) buy the iPad.</p>
<p>Edit 5/8/10 08:21pm EST</p>
<p>I&#8217;ve decided to get the 3G + Wifi model ($629). Lord help me if <a href="http://chucksblog.emc.com/chucks_blog/2010/05/what-ipads-did-to-my-family.html">this</a> happens to me. Help me . . . Spock. . . Help . . . me. . . .</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F04%2F24%2Fipad-the-conqueror%2F&amp;title=iPad%20%26%238211%3B%20The%20Conqueror" id="wpa2a_16"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/04/24/ipad-the-conqueror/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Flash on the iPlatform</title>
		<link>http://www.joroto.com/blog/2010/04/17/flash-on-the-iplatform/</link>
		<comments>http://www.joroto.com/blog/2010/04/17/flash-on-the-iplatform/#comments</comments>
		<pubDate>Sun, 18 Apr 2010 01:22:58 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[Miscellaneous Apps and Services]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=441</guid>
		<description><![CDATA[Yeah yeah yeah, yet another &#8220;why Flash isn&#8217;t on the iPlatform&#8221; article points out some of the spurious points. The author points out &#8220;The facts remain, however, that the iPad will run HTML5 video inline today (and iPhone OS 4 &#8230; <a href="http://www.joroto.com/blog/2010/04/17/flash-on-the-iplatform/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yeah yeah yeah, yet another &#8220;why Flash isn&#8217;t on the iPlatform&#8221; <a href="http://www.tipb.com/2010/04/15/iphone-support-flash-2007/">article points out some</a> of the spurious points. The author points out &#8220;The facts remain, however, that the <a href="http://www.tipb.com/ipad/">iPad</a> will run <a href="http://www.tipb.com/tag/html5/">HTML5</a> video inline <em>today</em> (and <a href="http://www.tipb.com/iphone-4/">iPhone OS 4</a> this summer) without even getting warm to the touch while our laptops  and multicore desktops turn into noisy miniature blast furnaces when the  plugin spins up on their far more powerful hardware.&#8221; and yet the target must be the non-thinking public. Not the I.T. industry. This statement is ridiculous. Yeah the laptop gets hot, well, I don&#8217;t think the mobile devices have a spinning hard drive with close to a terabyte of storage, or RAM in the amounts necessary to run a regular desktop OS. This is laughable. In a need to be clear, one can do &#8220;so much more&#8221; with a laptop than with the iPad. Sorry fanboy.</p>
<p>So back to what was supposed to be the topic which is &#8220;Why isn&#8217;t Flash allowed on mobile devices?&#8221;. Well, to be direct. . . IT . . . IS . . . A . . . PIG. Yep I said it. Everyone dances around it, but that is the reason. Mobile CPUs do not have the power to run their OS as well as this virtual machine. That is truly all there is to it. HOWEVER, this is NOT Mr. Jobs&#8217; issue with Flash. His issue is somehow personal and he, in some way, hates Adobe and wants to destroy it. Maybe when he was at <a href="http://en.wikipedia.org/wiki/NeXT">Next, Inc.</a> or the early days of Apple, when he was working on WYSIWYG technology that he was burned. Back then one HAD to PAY FOR fonts. Adobe had a lock on the early fonts.</p>
<p>I have to wonder if Steve is vindictive like this or not. However, the way Bill Gates did him in the early days, he probably playing Payback. Well, he has the right, and he definitely has the money to destroy some of his early foes. May I coin the term &#8220;Steve the Destroyer&#8221;?   Mwahahahaaaa I LOVE IT !</p>
<p>I would love to work with Steve or at least talk with him regularly. He doesn&#8217;t mince words, it seems. He demands excellence from his people, and he seems to pay them well for excellence. I say let the Apple machine crush their enemies under their treads. Most other companies that get large do that too. Apple is not different, why should they be? Google wanted to be different, it was for a while, and now it is like the rest of the companies. This truth is as inevitable as there is change in the Universe.</p>
<p>As far as HTML5 goes. I&#8217;m not an expert, but I&#8217;ve done a TON of Adobe Flash work. HTML5 addresses a small segment of what Flash offers. I would EXPECT it to be more efficient. It is the difference between a mobile phone OS and a Desktop OS. I don&#8217;t understand why this would be so profound to some people. I guess many people don&#8217;t think deeply. To all of you who love to think only about the surface of problems and offer only surface solutions, please grok your subject before talking about it. If Flash were only about presenting videos on the web then I would accept that HTML 5 is a replacement for Flash. Good luck to ya. Sounds like there is still &#8220;some&#8221; variance in &#8220;how&#8221; HTML 5 is implemented unlike in Flash that it is the same on all platforms. Just like PDF. The reason people use PDF is because one is guaranteed to have it displayed the same (or extremely similar to the original) on every platform where it is displayed. Flash runs the same everywhere. HTML 5 does not yet. Umm I would assert that HTML 4 does not, nor any of our standards. Microsoft always tries to muck up the works. Why do we not see articles that SilverLight (Microsoft&#8217;s attempt at replacing Flash) doesn&#8217;t run on platform XYZ? Because no one uses it.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F04%2F17%2Fflash-on-the-iplatform%2F&amp;title=Flash%20on%20the%20iPlatform" id="wpa2a_18"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/04/17/flash-on-the-iplatform/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gruber is not completely correct about Apple&#8217;s policy change</title>
		<link>http://www.joroto.com/blog/2010/04/11/gruber-is-not-completely-correct-about-apples-policy-change/</link>
		<comments>http://www.joroto.com/blog/2010/04/11/gruber-is-not-completely-correct-about-apples-policy-change/#comments</comments>
		<pubDate>Sun, 11 Apr 2010 18:19:44 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[cross platform]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iPlatform]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[SDK 4.0]]></category>
		<category><![CDATA[steve jobs]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=433</guid>
		<description><![CDATA[This post was sent to me about Gruber&#8217;s analysis of the new Apple policy (3.3.1) that stated that developers were not allowed to use third party development tools that could target multiple mobile phone platforms. We were looking into these &#8230; <a href="http://www.joroto.com/blog/2010/04/11/gruber-is-not-completely-correct-about-apples-policy-change/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.businessinsider.com/henry-blodget-steve-jobs-weighs-in-on-adobe-flash-furor-and-tells-you-to-read-john-grubers-post-about-it-2010-4">This post</a> was sent to me about <a href="http://daringfireball.net/2010/04/why_apple_changed_section_331">Gruber&#8217;s analysis</a> of the new Apple policy (3.3.1) that stated that developers were not allowed to use third party development tools that could target multiple mobile phone platforms. We were looking into these currently and I have to say I&#8217;m quite miffed.</p>
<p>Concerning Gruber, though, he had stated that for iPhone developers there will be &#8220;No change. If you’re a developer and you’ve been following Apple’s  advice, you will never even notice this rule.&#8221; This is quite myopic to me. This can only apply for indie developers who are supporting themselves or there might be a couple of developers who are just targeting one platform. As far as an evil mean greedy company goes, we try to develop one app that can run on as many platforms as possible. This allows us to spread the risk across platforms and hopefully to recoup the development costs and *ghast* make a profit.</p>
<p>This issue is emotional out there in the developer world. I wanted to see what Steve Jobs would say and possibly write him myself. Well, he has chimed in (above first link) and said that its because these intermediary IDEs that generate code for a target platform produce mediocre code/apps. It just might be me, but XCode (THE IDE that Apple tells us we must use to develop with) does this too. You may target the SDK version that you need to target. So XCode falls into 3.3.1 and should not be used either. So really, we should ALL be coding with a simple text editor. Steve, is Notepad++ ALLOWED????? It would be an intermediate program between me and the OS, I really don&#8217;t want to think you still aren&#8217;t the god of the platform.</p>
<p>Btw, I like Steve. He&#8217;s amazing and has completely created, due to his force of presence, a MACHINE that is reshaping the consumer electronics world. He has entered the cell phone market at the smirk of Microsoft. And he has won. He contracted with AT&amp;T for a piece of the pie where no one else was able to. And he won. He faced off with the record labels for $1. And he won. Yes he has slid back a bit, but one must admit he was the single force that blew the doors WIDE OPEN for MP3 song downloads on the Internet. He has done the same for the book market. However, I don&#8217;t think Amazon was that bad with their ebooks. He was not even NEAR first with a portable MP3 player, yet he blew the doors off the market.</p>
<p>Therefore, I am not a Steve basher, nor am I an Apple fanboy. I am, and Joroto are consumer advocates. This 3.3.1 policy is not good for consumers. Steve, doesn&#8217;t want crap-apps in his store. He already had them there and has been culling the herd for the last several months. He doesn&#8217;t want a crap-app in the store, then so-be-it, he needs to train his people to dump the crap-apps. However, this is bad for the consumer, in a way, because it limits choice, which is why Steve is a lightning rod for bashing. Steve, if this post actually makes it to your eyes, contact us (Joroto), and we&#8217;ll help you establish a policy that balances the needs of developers, the iPlatform/Apple, and consumers. There is PEACE to be made here, and we can help.</p>
<p>You need to drop this last policy change for the code generators. Its bad mojo for the iPlatform. It actually makes me, of all people, not want to develop for the iPlatform anymore. What I may establish is that the iPlatform will be done last because all other platforms can use an IDE, then we have to reprogram some of the code in order to make it work on the iPlatform.</p>
<p>Steve, you&#8217;ve lost sight of something here.</p>
<p>Update 3:30p</p>
<p>Here is a <a href="http://rss.slashdot.org/%7Er/Slashdot/slashdot/%7E3/of5mu2HQO5M/Steve-Jobs-Weighs-In-On-iPhone-Programming-Language-Mandate">link from SlashDot</a> on this issue. It explains that Steve has said &#8220;intermediate layers between the platform and the developer ultimately  produces sub-standard apps and hinders the progress of the platform&#8221;. I believe in context he&#8217;s talking about Flash. Following the Slashdot link is the <a href="http://www.taoeffect.com/blog/2010/04/steve-jobs-response-on-section-3-3-1/">Tao Effect Post</a>. It seems like &#8220;most&#8221; developers agree that an extra layer on the iPlatform would be too much processing for those CPUs and &#8220;mostly&#8221; do not begrudge that decision. However, for most of these cross-platform IDEs that also target the iPlatform, they produce native code. In the case of the iPlatform, the one I was looking at produced native Objective C++ that gets compiled under XCode. So there is NO RATIONAL REASON why Steve needs to implement this policy, other than &#8220;because he can&#8221;. If a developer has a complicated project that some component or feature of the iPlatform will perform, but other platforms don&#8217;t, then one must make a decision as to how essential that feature it is. If it is essential, then it gets programmed in, and the other platforms will either: 1) No have that feature (common), or 2) the developer will need to code that feature into that other platform.</p>
<p>Again, I don&#8217;t fully understand this decision to implement this policy.</p>
<p>Update 4/13/10 9:05p</p>
<p>Simon over at Bloggasm emailed in a link to <a href="http://www.bloggasm.com">his blog</a> discussing <a href="http://bloggasm.com/why-adobe-and-apple-are-bypassing-traditional-media-outlets-to-wage-war-in-the-blogosphere">why this war is being waged in the blogs</a> instead of the retro mainstream way. Simon&#8217;s correct, the mainstream umm authors are not techs and do not understand anything about tech. So they quote &#8220;the famous guy&#8221; and offer up a cheap &#8220;how benevolent&#8221; the famous guy is. blah blah. Right now Apple is the elephant in the china shop and I feel like one of the cheaper ceramic teacups. Go pay Simon a visit and email him your thoughts.</p>
<p>Update 4/17/10 8:50p</p>
<p><a href="http://stevecheney.posterous.com/the-genius-in-apples-vertical-platform">This guy</a> doesn&#8217;t get it either. He&#8217;s drinking the Kool-aid (no I don&#8217;t own Kool-aid stock but A LOT of Apple fanboys MUST). He said &#8220;But in order for  these speed improvements to be realized, apps would need to be written  in objective C—which is exactly what Apple is now telling developers to  do.&#8221; Umm &#8216;scuse me for saying this but RTFM. Mr. Steven &#8220;The genius&#8221; Jobs has stated that IF you use a code generator that outputs Native Objective-C code and then one uses XCode to compile it into the native app, then YOU SUCK! One is in VIOLATION of the development agreement. Please RTFM or go back to reporting on main-stream news that has only &#8220;some&#8221; surface tension. These issues run deep because, as developers, we are constantly trying to become LAZY. Programmers are the laziest people on the planet. We try to be the most efficient with our time so we can get back to playing Bioshock, or the upcoming Starcraft II games. We don&#8217;t have any life beyond Programming and Games. The main-stream press needs to play in another sandbox, you don&#8217;t even begin to understand tek.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F04%2F11%2Fgruber-is-not-completely-correct-about-apples-policy-change%2F&amp;title=Gruber%20is%20not%20completely%20correct%20about%20Apple%26%238217%3Bs%20policy%20change" id="wpa2a_20"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/04/11/gruber-is-not-completely-correct-about-apples-policy-change/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>I offer our talent to Yet-another-failed I.T. project run by the government</title>
		<link>http://www.joroto.com/blog/2010/04/02/i-offer-our-talent-to-yet-another-failed-i-t-project-run-by-the-government/</link>
		<comments>http://www.joroto.com/blog/2010/04/02/i-offer-our-talent-to-yet-another-failed-i-t-project-run-by-the-government/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 07:24:23 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[PRESS RELEASES]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=428</guid>
		<description><![CDATA[Open letter to the soon-to-be-fired person who contracted the Failed Census Bureau I.T. Project. We at Joroto can code your failed Census Bureau system in less than 2 years, using the equipment that you will obviously get socked with for &#8230; <a href="http://www.joroto.com/blog/2010/04/02/i-offer-our-talent-to-yet-another-failed-i-t-project-run-by-the-government/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Open letter to the soon-to-be-fired person who contracted the Failed Census Bureau I.T. Project.</p>
<p>We at Joroto can code your <a href="http://www.informationweek.com/news/mobility/messaging/showArticle.jhtml?articleID=207001691">failed Census Bureau system</a> in less than 2 years, using the equipment that you will obviously get socked with for $100 million or less. We&#8217;ve done projects like this before, and we can do them again. In fact I will also offer the U.S. government a bonus: The code will work. . . perfectly. That&#8217;s right if there is a problem we&#8217;ll fix it for free. We know how to implement mega-million dollar projects and &#8220;get &#8216;er done&#8221;.</p>
<p>Contact our President if you run across this post. I&#8217;m sure another 100 companies are clamoring to stick it to our government &#8220;one more time&#8221;.</p>
<p>From that article, the comment says it all. John is our user interface expert. I&#8217;m sure he&#8217;ll say &#8220;no problem, I have an idea for a more efficient interface&#8221;.</p>
<p>I.T. btw does NOT stand for Idiots in Training. Harris needs to go wash cars or move sand piles. They don&#8217;t have to care at this point. They&#8217;ve received their kickbacks and profits.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F04%2F02%2Fi-offer-our-talent-to-yet-another-failed-i-t-project-run-by-the-government%2F&amp;title=I%20offer%20our%20talent%20to%20Yet-another-failed%20I.T.%20project%20run%20by%20the%20government" id="wpa2a_22"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/04/02/i-offer-our-talent-to-yet-another-failed-i-t-project-run-by-the-government/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I quit</title>
		<link>http://www.joroto.com/blog/2010/04/02/i-quit/</link>
		<comments>http://www.joroto.com/blog/2010/04/02/i-quit/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 07:09:36 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=424</guid>
		<description><![CDATA[I just read an interesting article about it being ok for go-getters and talented individuals to quit. Hmmmm. &#8220;Its ok Dave, continue&#8221;. . . &#8220;Ok I quit. Its not you its me&#8221;. I&#8217;ve had these discussions with more people than &#8230; <a href="http://www.joroto.com/blog/2010/04/02/i-quit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just read an <a href="http://thedailywtf.com/Articles/Up-or-Out-Solving-the-IT-Turnover-Crisis.aspx">interesting article</a> about it being ok for go-getters and talented individuals to quit. Hmmmm. &#8220;Its ok Dave, continue&#8221;. . . &#8220;Ok I quit. Its not you its me&#8221;.<br />
I&#8217;ve had these discussions with more people than I can count. I HATE mediocres. I won&#8217;t work with them. At least I &#8220;don&#8217;t want to&#8221; work with them. Sometimes one MUST work with them. I&#8217;m not talking about inexperienced people. I&#8217;m talking about people who come to work to pick up a check (anyone in this company know whom I am talking about?). Those people need to be fired. They are a drag on the high-fliers.<br />
You know what you do for the high fliers? Everything. That&#8217;s right. You remove EVERY excuse they have for not working as efficiently as they can. And when you do that you tell them to prove it. Prove they are better than 10 mediocre programmers/workers. If you&#8217;ve never worked with this type of person, you&#8217;ll be amazed because they will absolutely, hands down, prove that they are worth 10 mediocres.<br />
I liked the above article. It is one of those always relevant pieces of expository that is timeless and succinct.<br />
So, everyone, fire ONE mediocre person in your organization and let&#8217;s get on the path to productivity again. You know who I&#8217;m talking about. That person who goes to compile a program that takes 5 minutes to compile, and sits there and waits for it to compile. Doesn&#8217;t timeslice to anything else, like documentation, regressions, pick his nose, ANYTHING. That person needs to be fired now. The rest of the employees need to be TOLD why that person was fired. Once the scapegoat is gone, productivity improves. If not start the beatings.</p>
<p>Mwhahahahhahaaaaaaaaa I LOVE world domination.</p>
<p>The <a href="http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-dead-sea-effect/">Dead Sea Effect</a> article is funny because its true. Read that also. Most of us live that article every day. This guy is a good observer. Here&#8217;s <a href="http://brucefwebster.com/2008/04/26/the-wetware-crisis-the-expert-pool/">another observation</a> for you to read. Bruce posted this link to the <a href="http://it.slashdot.org/article.pl?sid=08/04/12/2241216">slashdot thread</a>.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F04%2F02%2Fi-quit%2F&amp;title=I%20quit" id="wpa2a_24"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/04/02/i-quit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Appfuse &#8211; width of web page</title>
		<link>http://www.joroto.com/blog/2010/02/15/appfuse-width-of-web-page/</link>
		<comments>http://www.joroto.com/blog/2010/02/15/appfuse-width-of-web-page/#comments</comments>
		<pubDate>Mon, 15 Feb 2010 07:48:03 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[appfuse]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[menu]]></category>
		<category><![CDATA[width]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=387</guid>
		<description><![CDATA[Ok this took a ton of time to figure out. Problem: I don&#8217;t like 800&#215;600 pages. I have widescreen LCDs and many other people do too. I will check the stats which is a developer type site, and here which &#8230; <a href="http://www.joroto.com/blog/2010/02/15/appfuse-width-of-web-page/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ok this took a ton of time to figure out.<br />
Problem: I don&#8217;t like 800&#215;600 pages. I have widescreen LCDs and many other people do too. I will check the <a href="http://www.w3schools.com/browsers/browsers_display.asp">stats</a> which is a developer type site, and <a href="http://www.w3counter.com/globalstats.php">here</a> which is more general and based on 32,000+ sites.</p>
<p>Edit the files:<br />
./tree/src/main/webapp/styles/simplicity/layout-1col.css and change line 8 to 924 (1024 &#8211; 100 which is what it was set to initially). This will set the login.jsp menu to this width.<br />
./tree/src/main/webapp/styles/simplicity/layout.css and change line 11 to 1004 (1024 &#8211; 20 which is the same amount that was initially subtracted to arrive at 780px by the appfuse developers). this seems to set all pages to this width.<br />
./tree/src/main/webapp/styles/simplicity/laout-navtop-subright.css and change line 8 to 924. This changes the menu size for the mainMenu.jsp page.</p>
<p>Also, while we&#8217;re on the subject of menus, you may want to edit ./tree/src/main/webapp/WEB-INF/menu-config.xml. Notice that your new classes (see previous posts) have a menu item for them. Well they also show up on the Login menu even though the user has to login before being able to access the menu item. This is clunky (IMHO) so I don&#8217;t want them there. In this menu-config file, you&#8217;ll notice there are no roles= attribute. Put one in there for each menu item and the menu generator (struts-menu) will take care of whether to display the menu item or not. This is one of the good things about these frameworks. You get to do a little config with no programming.<br />
NOTE:<br />
in ./tree/src/main/webapp/styles/simplicity/layout.css in the section marked  div#main form ul li    &#8211; this section affects the box around the Login fields. I added a width to this section and the login box adapted.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F02%2F15%2Fappfuse-width-of-web-page%2F&amp;title=Appfuse%20%26%238211%3B%20width%20of%20web%20page" id="wpa2a_26"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/02/15/appfuse-width-of-web-page/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appfuse &#8211; Test failure</title>
		<link>http://www.joroto.com/blog/2010/02/14/appfuse-test-failure/</link>
		<comments>http://www.joroto.com/blog/2010/02/14/appfuse-test-failure/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 23:44:12 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[appfuse]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[mvn]]></category>
		<category><![CDATA[web testing]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=385</guid>
		<description><![CDATA[Sometimes the tests will fail because you have generated your classes in an order that does not support the tests. For example, I have a Base class that is included as an attribute of another class. However, I had made &#8230; <a href="http://www.joroto.com/blog/2010/02/14/appfuse-test-failure/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Sometimes the tests will fail because you have generated your classes in an order that does not support the tests.<br />
For example, I have a Base class that is included as an attribute of another class. However, I had made a change in the base class and regenerated the code. This causes the file in ./tree/src/test/resources/sample-data.xml to generate the data in the wrong order. So what happens is that there are zero base class records in the table when the other class runs its test. This second class is, due to me regenerating the base class, now first in the sample data and first to be tested.</p>
<p>The fix:<br />
To fix this, just move the data around in the sample-data.xml file. Poof no more Constraint problem.</p>
<p>Example pseduocode:<br />
Class Communications {<br />
   Long uid;<br />
   Email email;<br />
   { . . . methods . . . }<br />
}<br />
This Communications class is first in the sample-data.xml file because the Email class was generated second<br />
Class Email {<br />
    Long uid;<br />
    String emailAddr;<br />
   { . . . methods . . .}<br />
}<br />
So initially I had autogenerated the Email class first. Then made an addition to the email class&#8217;s attributes. Then regenerated it with<br />
mvn appfuse:gen -Dentity=Email ; mvn appfuse:install -Dentity=Email<br />
Did my fixup of the ./tree/src/main/webapp/WEB-INF/applicationContext.xml<br />
Finally    mvn test<br />
So before the   mvn test  fix the sample-data.xml file and you&#8217;ll be fine.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F02%2F14%2Fappfuse-test-failure%2F&amp;title=Appfuse%20%26%238211%3B%20Test%20failure" id="wpa2a_28"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/02/14/appfuse-test-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appfuse &#8211; Extending your classes</title>
		<link>http://www.joroto.com/blog/2010/02/14/appfuse-extending-your-classes/</link>
		<comments>http://www.joroto.com/blog/2010/02/14/appfuse-extending-your-classes/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 06:45:07 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[appfuse extend classes]]></category>
		<category><![CDATA[autogeneration]]></category>
		<category><![CDATA[event class]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=380</guid>
		<description><![CDATA[I had extended my Event class to include references to other objects. I also created @OneToOne annotations of them. All of a sudden the tests wouldn&#8217;t run. Well the problem lay in the sample data that is loaded into the &#8230; <a href="http://www.joroto.com/blog/2010/02/14/appfuse-extending-your-classes/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I had extended my Event class to include references to other objects. I also created @OneToOne annotations of them.<br />
All of a sudden the tests wouldn&#8217;t run.<br />
Well the problem lay in the sample data that is loaded into the table during the tests. I was referencing the appfuse User class. During the autogeneration of my Event class, it autogenerates three records into ./tree/src/test/resources/sample-data.xml  . However, the original Appfuse where you did the quickstart from the main site, only outputs two User records.<br />
So I added a third User record and everything fell into place and started working again.</p>
<p>Peace out.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F02%2F14%2Fappfuse-extending-your-classes%2F&amp;title=Appfuse%20%26%238211%3B%20Extending%20your%20classes" id="wpa2a_30"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/02/14/appfuse-extending-your-classes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appfuse &#8211; the next step</title>
		<link>http://www.joroto.com/blog/2010/02/14/appfuse-the-next-step/</link>
		<comments>http://www.joroto.com/blog/2010/02/14/appfuse-the-next-step/#comments</comments>
		<pubDate>Sun, 14 Feb 2010 04:18:55 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[appfuse]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[freemarker]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=376</guid>
		<description><![CDATA[Appfuse &#8211; personalizing the app 2/13/2010 Purpose: Which files to edit in order to personalize the existing app for my company. Remember: App name is: tree Company is: joroto.com Source is in: ./tree/src/ ./tree/src/main/resources/mail.properties Change to be your email and &#8230; <a href="http://www.joroto.com/blog/2010/02/14/appfuse-the-next-step/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Appfuse &#8211; personalizing the app<br />
2/13/2010</p>
<p>Purpose:<br />
Which files to edit in order to personalize the existing app for my company.</p>
<p>Remember:<br />
App name is: tree<br />
Company is: joroto.com<br />
Source is in: ./tree/src/</p>
<p>./tree/src/main/resources/mail.properties<br />
Change to be your email and the login properties for your smtp server.</p>
<p>./tree/src/main/resources/ApplicationResources.properties<br />
Search for appfuse and change all to your product or company name. Depends on context.<br />
I added on line 7 the following line<br />
webapp.image=wr_logo3_230x100.jpg<br />
This is our site logo. I can see it being translated into different languages. We can offer one per locale. Also the colors may be offensive in some cultures, and the picture might have cultural significance as well.<br />
This file holds all of the localization (meaning strings to be translated) strings. You&#8217;ll see different file names each of which represent a language for a specific country code.</p>
<p>./tree/src/main/webapp/common/header.jsp<br />
I&#8217;m putting an image (webapp.img) into the headers instead of the text I entered in the ApplicationResources.properties. First I copied my jpg to the ./tree/src/main/webapp/images directory.<br />
Editing this file, I am interested in commenting out lines 8 and 9. Never delete until release. You never know when you might return to the text version of the page.<br />
Now my header.jsp looks like this:<br />
&lt;%@ include file=&#8221;/common/taglibs.jsp&#8221;%&gt;<br />
&lt;c:if test=&#8221;${pageContext.request.locale.language ne &#8216;en&#8217;}&#8221;&gt;<br />
&lt;div id=&#8221;switchLocale&#8221;&gt;&lt;a href=&#8221;&lt;c:url value=&#8217;/?locale=en&#8217;/&gt;&#8221;&gt;&lt;fmt:message key=&#8221;webapp.name&#8221;/&gt; in English&lt;/a&gt;&lt;/div&gt;<br />
&lt;/c:if&gt;<br />
&lt;div id=&#8221;branding&#8221;&gt;<br />
&lt;!&#8211; TAH 2/13/10<br />
&lt;h1&gt;&lt;a href=&#8221;&lt;c:url value=&#8217;/'/&gt;&#8221;&gt;&lt;fmt:message key=&#8221;webapp.name&#8221;/&gt;&lt;/a&gt;&lt;/h1&gt;<br />
&lt;p&gt;&lt;fmt:message key=&#8221;webapp.tagline&#8221;/&gt;&lt;/p&gt;<br />
&#8211;&gt;<br />
&lt;a href=&#8221;<a href="../../">http://www.joroto.com</a>&#8221; title=&#8221;Logo&#8221;&gt;<br />
&lt;img src=&#8221;&lt;fmt:message key=&#8221;webapp.img&#8221; /&gt;&#8221;<br />
alt=&#8221;&lt;fmt:message key=&#8221;webapp.name&#8221; /&gt;&#8221; /&gt;<br />
&lt;/a&gt;<br />
&lt;/div&gt;<br />
&lt;hr /&gt;<br />
&lt;%&#8211; Put constants into request scope &#8211;%&gt;<br />
&lt;appfuse:constants scope=&#8221;request&#8221;/&gt;</p>
<p>Note: I wanted to use the &lt;c:url construct but this would need freemarker to produce a two pass per line mode. Not sure if it can do this, but maybe I&#8217;ll have time later to see.<br />
My image is 100 pixels tall so I needed to change the CSS for the header.</p>
<p>Edit   ./tree/src/main/webapp/styles/simplicity/layout.css<br />
I commented out line 22 and added a new line that looks like this:<br />
height: 100px; /* TAH 2/13/10 */</p>
<p>Rerun the jetty:run-war and you&#8217;ll see the changes.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F02%2F14%2Fappfuse-the-next-step%2F&amp;title=Appfuse%20%26%238211%3B%20the%20next%20step" id="wpa2a_32"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/02/14/appfuse-the-next-step/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Appfuse &#8211; quick start guide for newbies.</title>
		<link>http://www.joroto.com/blog/2010/02/13/appfuse/</link>
		<comments>http://www.joroto.com/blog/2010/02/13/appfuse/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 06:03:45 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[appfuse]]></category>
		<category><![CDATA[code generator]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[raible]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[struts]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2010/02/13/appfuse/</guid>
		<description><![CDATA[Appfuse Add classes to initial project creation 2/12/2010 Overview: You have done the QuickStart to see if you can get everything to work. This article assumes you DID indeed get the initial project working. You&#8217;re excited and want to &#8220;add &#8230; <a href="http://www.joroto.com/blog/2010/02/13/appfuse/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p style="margin: 0in; font-family: Calibri; font-size: 11pt;"><a title="Appfuse web page home" href="http://appfuse.org">Appfuse</a></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Add classes to initial project creation</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">2/12/2010</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Overview:</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">You have done the QuickStart to see if you can get everything to work. This article assumes you DID indeed get the initial project working. You&#8217;re excited and want to &#8220;add something&#8221; to that project and begin working on your own. You need to read through this with a clear head because there is a gotcha once you get past adding ONE java class file. Not sure why but there is a fix.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Ok here&#8217;s the scoop.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Use the videos for the tutorial. They&#8217;re up to date. The other tutorials never worked for me.</p>
<p></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">This is the writeup translating the videos into text. I did not add ANYTHING to this except a little clarification for us newbies.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">All we&#8217;re doing here is generating CRUD which is not normally what is needed in a real app. However, we do this here to get a feel for how all these frameworks work.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">You want to create a Plain Old Java Object (POJO). This is a simply a java class file. One Object per file.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">I use cygwin for development on Windows. I need to resetup my Linux box. I will try to write clarifying statements so you can figure out what I am doing.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">So let&#8217;s say we create a Java Class called Person. Why? Because I need one in my project.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">My app name is tree. My company is Joroto.com.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">So the path to my source is:</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">./tree/src/main/java/com/joroto</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">We&#8217;re going to create this Person.java file in a NEW directory called model.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">So you now have a directory structure</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">./tree/src/main/java/com/joroto/model</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Step 1 of a &#8220;Template for working in Appfuse&#8221;. When I say execute Step 1 again, do this with a different Java Class (just trying to be clear).</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Create a Person.java file in ./tree/src/main/java/com/joroto/model</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Here&#8217;s mine so you can first test that this works for you, then extend it. There is a note about renaming files and objects, later in this tutorial. READ THOSE NOTES, maybe even before you do this here. Nothing devastating, but important just the same.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">package com.joroto.model;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import org.appfuse.model.BaseObject;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import javax.persistence.*;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import org.compass.annotations.Searchable;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import org.compass.annotations.SearchableComponent;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import org.compass.annotations.SearchableId;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import org.compass.annotations.SearchableProperty;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">import java.sql.Timestamp;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">// Entity tells the processing framework that you want this object to be backed by a database.</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Entity @Table(name=&#8221;person&#8221;)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">// The searchable is to help identify tables that need a search engine, are highly searched. Might be a &#8220;Trails-hibernate&#8221; module for search engine like capability.</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">// </span><a href="http://docs.codehaus.org/display/TRAILS/Querying+entities+and+full-text+search"><span style="background: yellow none repeat scroll 0% 0%;">http://docs.codehaus.org/display/TRAILS/Querying+entities+and+full-text+search</span></a></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Searchable </span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">public class Person extends BaseObject /* implements java.io.Serializable */ {</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">private Long uid; </span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">private String title; // Mr., Dr. etc.</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">private String fName; // First name </span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">private String mName; // Anything other than first and last name</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">private String lName; // Last name</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>@Override</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public String toString() {</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>String s = new String();</span></p>
<p style="margin: 0in 0in 0in 1.125in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">if (mName.length() &gt; 0) {</span></p>
<p style="margin: 0in 0in 0in 1.5in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">s=String.format(&#8220;%s %s %s %s&#8221;, title, fName, mName, lName);</span></p>
<p style="margin: 0in 0in 0in 1.125in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">} else {</span></p>
<p style="margin: 0in 0in 0in 1.5in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">s=String.format(&#8220;%s %s %s&#8221;, title, fName, lName);</span></p>
<p style="margin: 0in 0in 0in 1.125in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">} // if-else</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return s;</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>@Override</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public int hashCode() {</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>throw new UnsupportedOperationException(&#8220;Not supported yet.&#8221;);</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>@Override</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>@SuppressWarnings(&#8220;EqualsWhichDoesntCheckParameterClass&#8221;)</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public boolean equals(Object o) {</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>Person p = (Person)o;</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return(p.uid == this.uid);</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>} // equals</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">// Getters and Setters</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">// Indicates that this is the primary key for this event</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>@Id@GeneratedValue(strategy=GenerationType.AUTO) </span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Column(name=&#8221;uid&#8221;)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public Long getUid() {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return uid;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Column(name=&#8221;uid&#8221;)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public void setUid(Long uid) {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>this.uid = uid;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Column(name=&#8221;title&#8221;, length=20)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public String getTitle() {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return title;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public void setTitle(String s) {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>this.title = s;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Column(name=&#8221;firstname&#8221;, length=100)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public String getFirstName() {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return fName;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public void setFirstName(String s) {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>this.fName = s;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Column(name=&#8221;middlename&#8221;, length=100)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public String getMiddleName() {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return mName;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public void setMiddleName(String s) {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>this.mName = s;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">@Column(name=&#8221;lastname&#8221;, length=100)</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public String getLastName() {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>return lName;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>public void setLastName(String s) {</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>this.lName = s;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">}</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">The statements with the @ signs are annotations that are used when this code generates the database table. The database table (in Hibernate) will store the information the flows into and out of this class.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">That&#8217;s all we need to do in this file so save it.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">We need to tell the system that we&#8217;ve created this and it needs to be backed by hibernate. Open the following file (it is already in the directory structure from your initial generation of the project.</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">./tree/src/main/resources/hibernate.cfg.xml</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Add a new line at line 8 below the other &lt;mapping class…&gt; members.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Add the following line to that new line.</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;mapping class=&#8221;com.joroto.model.Person&#8221;/&gt;</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Save and close that file.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">You&#8217;re ready for the cool automation that Matt and his Magical Minions dreamed up.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">In the ./tree directory execute the following command</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn appfuse:gen -Dentity=Person</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">If the build is not successful, make a very basic Class file like I did up there. We WILL be able to regenerate the files with more of the Class attributes in it.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">After a successful build execute the next command (Matt thinks executing these two commands is &#8220;too much&#8221; and will release a future version combining the two. However, just &#8220;think&#8221; of all the work these two command are saving us and you should be sending the guy some percentage of your commercial profits)</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn<span> </span>appfuse:install -Dentity=Person</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">And then execute</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn test</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">It will work.</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn jetty:run-war</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Point your browser to</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">Localhost:8080</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Go back to the step 1 of this tutorial and enter a new and different Java class. When you get to the mvn test, you&#8217;ll notice that it fails the test classes. The Person class is flagged. Matt (not me) to the rescue in his MarkMail app. On the appfuse home, click on Project Information, Mailing Lists and then MarkMail. Enter the error about creating the bean and up pops his answer. You&#8217;re asking &#8220;where is the error? The console displays where to go, but for clarity go to</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">./tree/target/surefire-reports</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Any .txt file that is not 1k is telling you about the test errors.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Here is Matt&#8217;s fix for the problem, then I&#8217;ll explain:</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Open the file</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">./tree/src/main/webapp/WEB-INF/applicationContext.xml</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;">There are now three things that need to be done to the file. As you add Classes for CRUD you&#8217;ll need to edit its Bean element after you do the</span><span style="font-family: monospace;"> mvn appfuse:install -Dentity=Person</span><span style="font-family: Calibri;"><span> </span>above. </span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;">Add the </span><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">&lt;context:component-scan base-package=&#8221;org.appfuse&#8221;/&gt;</span><span style="font-family: Calibri;"> element.</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">AND you have to add the element &lt;property name=&#8221;sessionFactory&#8221; ref=&#8221;sessionFactory&#8221;/&gt; to each bean. One for the personManager bean and once for (in my case) teventManager bean. So the file now looks like this:</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;UTF-8&#8243;?&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">&lt;beans xmlns=&#8221;</span><a href="http://www.springframework.org/schema/beans"><span style="background: yellow none repeat scroll 0% 0%;">http://www.springframework.org/schema/beans</span></a><span style="background: yellow none repeat scroll 0% 0%;">&#8221; xmlns:xsi=&#8221;http://www.w3.org/2001/XMLSchema-instance&#8221;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>xmlns:context=&#8221;http://www.springframework.org/schema/context&#8221;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>xsi:schemaLocation=&#8221;http://www.springframework.org/schema/beans </span><a href="http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"><span style="background: yellow none repeat scroll 0% 0%;">http://www.springframework.org/schema/beans/spring-beans-2.0.xsd</span></a></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span></span><a href="http://www.springframework.org/schema/context"><span style="background: yellow none repeat scroll 0% 0%;">http://www.springframework.org/schema/context</span></a><span style="background: yellow none repeat scroll 0% 0%;"> </span><a href="http://www.springframework.org/schema/context/spring-context.xsd"><span style="background: yellow none repeat scroll 0% 0%;">http://www.springframework.org/schema/context/spring-context.xsd</span></a><span style="background: yellow none repeat scroll 0% 0%;">&#8220;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>default-lazy-init=&#8221;true&#8221;&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211; Activates scanning of @Autowired &#8211;&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 30px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;context:annotation-config/&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211; Activates scanning of @Repository and @Service &#8211;&gt;</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;context:component-scan base-package=&#8221;com.joroto&#8221;/&gt;</span></p>
<p style="margin: 0in 0in 0in 0.375in; font-weight: bold; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">&lt;context:component-scan base-package=&#8221;org.appfuse&#8221;/&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211; Add new DAOs here &#8211;&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211;PersonManager-START&#8211;&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 30px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;bean id=&#8221;personManager&#8221; class=&#8221;org.appfuse.service.impl.GenericManagerImpl&#8221;&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 60px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;constructor-arg&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 90px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;bean class=&#8221;org.appfuse.dao.hibernate.GenericDaoHibernate&#8221;&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 150px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;constructor-arg value=&#8221;com.joroto.model.Person&#8221;/&gt;</span></p>
<p style="margin: 0in 0in 0in 1.5in; font-weight: bold; font-family: &amp;amp;amp; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">&lt;property name=&#8221;sessionFactory&#8221; ref=&#8221;sessionFactory&#8221;/&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 90px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;/bean&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 60px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;/constructor-arg&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 30px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;/bean&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211;PersonManager-END&#8211;&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211;TeventManager-START&#8211;&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;bean id=&#8221;teventManager&#8221; class=&#8221;org.appfuse.service.impl.GenericManagerImpl&#8221;&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 30px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;constructor-arg&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 60px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;bean class=&#8221;org.appfuse.dao.hibernate.GenericDaoHibernate&#8221;&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 120px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;constructor-arg value=&#8221;com.joroto.model.Tevent&#8221;/&gt;</span></p>
<p style="margin: 0in 0in 0in 1.5in; font-weight: bold; font-family: &amp;amp;amp; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">&lt;property name=&#8221;sessionFactory&#8221; ref=&#8221;sessionFactory&#8221;/&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 60px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;/bean&gt;</span></p>
<p style="margin: 0in; font-size: 11pt; padding-left: 30px;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;/constructor-arg&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;/bean&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211;TeventManager-END&#8211;&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;">
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;"><span> </span>&lt;!&#8211; Add new Managers here &#8211;&gt;</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">&lt;/beans&gt;</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Matt was right. This fixes the test errors and you&#8217;re off and running. The above file is generated during the gen and install command.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Notes:</p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;"><span> </span></span><span style="background: yellow none repeat scroll 0% 0%; font-family: &amp;amp;amp;">mvn clean</span><span style="font-family: Calibri;"> will clear out the target directory.</span></p>
<p style="margin: 0in; font-weight: bold; font-family: Calibri; font-size: 11pt;">Renaming a class</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Ok so you want to rename a Class. You need to search the ./tree/src/ directory for your class and all variants and clear them out.</p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;">First fix the </span><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">./tree/src/main/resources/hibernate.cfg.xml</span><span style="font-family: Calibri;"><span> </span>file</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Then rename your class, any references inside the file, and finally the name of your class file.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">In this case I&#8217;m going to rename the Tevent class (which was my second class added. I did not post that above) to Event. So I rename the @Table, the Class name is now Event. Inside the Class is a reference to Tevent that is now Event. Save your class in the</p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">./tree/src/main/java/com/joroto/model</span><span style="font-family: Calibri;"><span> </span>directory.</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Run the following command from the command line.</p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">mvn clean</span><span style="font-family: Calibri;"> command to get rid of the target files.</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">If in cygwin, issue the find command<span> </span><span style="background: yellow none repeat scroll 0% 0%;">find . -name &#8220;[tT]event*&#8221;</span><span> </span>to see all of the files leftover that need to be deleted. In windows search for the name of the OLD class. Delete all those files. In cygwin do this:</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">find . -name &#8220;[tT]event*&#8221; | xargs rm -f</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Let&#8217;s generate the files<span> </span>and test them by running the commands on the command line:</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn appfuse:gen -Dentity=Event</span></p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn appfuse:install -Dentity=Event</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Edit the file</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">./tree/src/main/webapp/WEB-INF/applicationContext.xml</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Delete the old Class reference for the bean. You have to take out the whole &lt;bean ….&gt; to &lt;/bean&gt;</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Add the &lt;property … sessionFactory<span> </span>line from above. Save the file. Then enter on the command line:</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn test</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Should be good to go. Lets check. At the command line:</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">mvn jetty:run-war</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;">Point your browser to </span><span style="background: yellow none repeat scroll 0% 0%; font-family: &amp;amp;amp;">localhost:8080</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">You&#8217;ll notice that ALL of the Classes are on the tab bar. You&#8217;ll need to clean out the jsp files for the classes that don&#8217;t exist. SO. . . Let&#8217;s look for all of these references. Change directory to the ./tree/src directory. Run the cygwin command:</p>
<p style="margin: 0in; font-family: monospace; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%;">grep -lri tevent main/*</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">This will list the files that need to be cleaned up. I don&#8217;t know how to do this automatically, so let&#8217;s edit each file looking for the reference to the old class name.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">My list is (Use this as a learning experience as to how to modify your web application. These are the pages and values that go to the final html that is output):</p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">main/resources/ApplicationResources.properties</span><span style="font-family: Calibri;"><span> </span>- You&#8217;ll see the section for your old class. Pretty easy to delete it.</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">main/resources/struts.xml</span><span style="font-family: Calibri;"><span> </span>- You&#8217;ll see the section for your old class. Pretty easy to delete it.</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">main/webapp/common/menu.jsp</span><span style="font-family: Calibri;"> &#8211; You&#8217;ll see the section for your old class. Pretty easy to delete it.</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">main/webapp/WEB-INF/menu-config.xml</span><span style="font-family: Calibri;"> &#8211; You&#8217;ll see the section for your old class. Pretty easy to delete it.</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Now edit these files:</p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">test/resources/sample-data.xml</span><span style="font-family: Calibri;"> &#8211; You&#8217;ll see the section for your old class. Pretty easy to delete it.</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">test/resources/web-tests.xml</span><span style="font-family: Calibri;"> &#8211; You&#8217;ll see the depends clause. Now each time you gen a Class you&#8217;ll see it added here. So if you mess up and keep gen&#8217;ing the Person class, it will have that many Person entries here. Then down further in the file you&#8217;ll see the section for that your old class created. Delete that section.</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;">Change directory back to</span><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;"> ./tree</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">At the command line run</p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;"><span> </span></span><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">mvn clean</span></p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;"><span> </span></span><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">mvn test</span><span style="font-family: Calibri;"> </span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">The test should be successful. If not, then recheck your editing. Mine always worked. However, your editing is definitely where the problem lies at this time since you&#8217;ve already tested the New class you generated above.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">Finally, to make sure the old class &#8220;stuff&#8221; no longer displays in the web app. Execute from the command line:</p>
<p style="margin: 0in; font-size: 11pt;"><span style="font-family: Calibri;"><span> </span></span><span style="background: yellow none repeat scroll 0% 0%; font-family: monospace;">mvn jetty:run-war</span></p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">I&#8217;m done here. Hopefully this gets you quickly up to speed on this cool stuff that Matt and his Magic Minions create. Kudos to the the AppFuse team.</p>
<p style="margin: 0in; font-family: Calibri; font-size: 11pt;">
<p><span> </span></p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F02%2F13%2Fappfuse%2F&amp;title=Appfuse%20%26%238211%3B%20quick%20start%20guide%20for%20newbies." id="wpa2a_34"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/02/13/appfuse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Management 901 &#8211; Why you want to become a manager</title>
		<link>http://www.joroto.com/blog/2010/01/29/management-901-why-you-want-to-become-a-manager/</link>
		<comments>http://www.joroto.com/blog/2010/01/29/management-901-why-you-want-to-become-a-manager/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 03:27:18 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[management sucks]]></category>
		<category><![CDATA[programmer's rule]]></category>
		<category><![CDATA[r&d spending]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=336</guid>
		<description><![CDATA[I&#8217;ve come to some realizations while watching some, ummm managers at another company. Yes that&#8217;s it. One ponders the question &#8220;Why do you want to be a manager&#8221;. 1) I&#8217;m stupid so I can be a great manager and lead &#8230; <a href="http://www.joroto.com/blog/2010/01/29/management-901-why-you-want-to-become-a-manager/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve come to some realizations while watching some, ummm managers at another company. Yes that&#8217;s it.<br />
One ponders the question &#8220;Why do you want to be a manager&#8221;.<br />
1) I&#8217;m stupid so I can be a great manager and lead the company to nowhere.<br />
2) I know how to spend money at home, what&#8217;s the difference?<br />
3) I can budget money, that&#8217;s what the checkbook&#8217;s for right? So managing a budget at work is no different.<br />
4) I buy things at home for the important people (me) and the others, just have to make do. This philosophy has served me well.</p>
<p>Seriously, where is it written that just because things have been done &#8220;this way&#8221;, that &#8220;this way&#8221; will forevermore be THE ONLY CORRECT WAY? Well ok we&#8217;ve seen that in Amazon&#8217;s management books, but who are they? People who want to self-promote. Rant over. Bring the rain.<br />
1) Give your top developers the best tools that money can buy. They will produce ten times more than the mediocres.<br />
2) Fire all the mediocres. There is no room in a startup for those people.<br />
3) Budgeting your department DOESN&#8217;T mean to say NO to every purchase that you&#8217;re asked for. If you trust them with developing the future of the company, they &#8220;PROBABLY&#8221; aren&#8217;t asking for crap that they won&#8217;t use. They are saying &#8220;I want to be more productive, please help me . . . .Spock. . . . help . . . . me. . . &#8220;.  Why are you turning them away? For what a $500 piece of software. Are you batty? Fire yourself, THAT IS A SMART MOVE.<br />
4) If they&#8217;re late or leave early an hour or 10 minutes. IT . . . IS . . . OK.  The world will NOT stop turning ok? Don&#8217;t be so draconian to forget about what it means to be a drone. Its hellish sometimes. But guess what pinhead, when you NEED that person to work overtime, they won&#8217;t make an excuse to NOT work overtime. Use the T word THINK! (We should make a tshirt of this).</p>
<p>Ok I&#8217;m done. I&#8217;ve seen enough. I&#8217;m going home.<br />
-T-</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F01%2F29%2Fmanagement-901-why-you-want-to-become-a-manager%2F&amp;title=Management%20901%20%26%238211%3B%20Why%20you%20want%20to%20become%20a%20manager" id="wpa2a_36"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/01/29/management-901-why-you-want-to-become-a-manager/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>iPad &#8211; uh yeah great name</title>
		<link>http://www.joroto.com/blog/2010/01/29/ipad-uh-yeah-great-name/</link>
		<comments>http://www.joroto.com/blog/2010/01/29/ipad-uh-yeah-great-name/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 03:17:21 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[bashing Steve Jobs]]></category>
		<category><![CDATA[idea generators]]></category>
		<category><![CDATA[ipad]]></category>
		<category><![CDATA[ipad features]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=334</guid>
		<description><![CDATA[Don't be stupid about the iPad <a href="http://www.joroto.com/blog/2010/01/29/ipad-uh-yeah-great-name/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Open letter to Mr. Steven Jobs:</p>
<p>Steve,<br />
This isn&#8217;t a pile on session, I&#8217;ve seen the ignorant bashing you incessantly.   I&#8217;m too tired). I&#8217;m not here to do the same.  Well of course I am. Its fun, its the NEW new thing to bash Apple for not providing everyone their own personal spaceship to Mars (see previous blog post).<br />
<strong>iPad: </strong>This name, sucks. Steve, next time spend some money on drugs like you used to do (I&#8217;m from your past) and come up with something sexy like &#8220;The Apple Tablet&#8221;. At least it isn&#8217;t blah and sound like some hygiene product. That one&#8217;s free, pay me and I&#8217;ll let Joroto make a memorable descriptive name. We do that for a living. We&#8217;re idea men (yes we&#8217;re gay mwhahaaa).</p>
<p>The iPad will succeed, and not because Apple&#8217;s behind it. Steve did a good job at a first cut features list. One glaring missing one is the video iChat. He would&#8217;ve cornered the market on that one. The iChat on the Macbook is seamless, impressive, rock solid, awesome. Now I&#8217;ll REALLY tell you what I think.</p>
<p>The price on the iPad is correct.</p>
<p>Those with a hundred gadgets won&#8217;t buy it because, well they&#8217;re gadget freaks and ran up their credit card bills. They can&#8217;t afford it and are envious. Those of us who held off buying a netbook waiting for a tablet type device will buy one. I will be in line for one. I believe it will serve the niche when I ride the tram or wait in queue at the unsympathetic doctor&#8217;s office. I need another, um script.<br />
The larger size is good. The display is gorgeous. Processor is fast.<br />
Oh NOOOO no multiple apps ALL running at the same time. Save me Superman ahhhhhh I&#8217;m falling. Pinheads listen closely. No a little closer. If you want that BUY A LAPTOP. You&#8217;ll have the screen real estate to have a movie AND browser open. OH JOY. You can be completely distracted and not remember either the movie nor what you scanned on the Internet. Duh.<br />
On the netbooks people RAILED at Microsoft for limiting, yet another windows OS, from being able to run only 3 apps because it would bog down the Atom. Well some of our Quad core 4G systems are bogged down by Windows Vista 7. Ummm well my work here is done.</p>
<p>The 3G plan price is excellent.</p>
<p>The ebook reader app (or whatever) is fine and I&#8217;ll buy into that one. Where this will kill (small k) the Kindle is in the rich output of the books. I don&#8217;t care a rat&#8217;s a** about the authors. They will or won&#8217;t get paid. If one doesn&#8217;t pay the workers, then the workers stop working. Very simple. From what I&#8217;ve read, the authors barely get paid anything now. I couldn&#8217;t imagine trying to eek out a living as a no-name author. It HAS to be just a Napoleon complex for them. Its like the rush we get from open source (umm I mean others, not us good corporate drones who work for a paycheck).</p>
<p>iPad needs a webcam though Steve. Did you miss this, or as I presume, was this left out because AT&amp;T&#8217;s overwhelmed network couldn&#8217;t handle the crush as millions buy this device.</p>
<p>Another goodie is the pads wirelessly connecting to each other to play games like the Nintendo DS/DSi playthings do. Can anyone say Apple competes with Nintendo? Nintendo takes the iPlatform VERY seriously (Management: I need a researcher to insert links here). Apple, it seems, is trying to elbow into Nintendo&#8217;s bread basket. My son has a DS and MANY games (spoiled brat) and I just bought a DSi for my wife. Yep she asked for one specifically. She uses some brain game, and my son just got Scribblenauts and says it is absolutely awesome. I&#8217;ll just take his word for it. We also have a Wii. The little punk beat me at Wii Resort&#8217;s Swordplay. One works up a sweat trying to kill his son.</p>
<p>The iPad will sell millions. Up to the 6-8 million in 2010 as predicted by fanboy analysts? Ummm probably not. However by Christmas 2010 I believe they will be closing fast. If they put this A4 processor into the iPhone as rumored then that will send iPhone sales up. However, can the iPhone sales go up higher than they are now? Nokia had better do something or they stand to become the next Microsoft: i.e. marginalized because they have no visionary and are paralyzed with fear about LOSING customers. Nokia needs to slap their senior management, who have been highed to MAINTAIN the business. Idiots. Don&#8217;t maintain JACK, grow the sucker. Innovate, or YES the T word THINK.</p>
<p>Apple will win. Others will lose. They don&#8217;t know what they don&#8217;t know. They don&#8217;t ask questions about what they don&#8217;t know. If any of you are reading this, then contact Joroto, and we can help you come up with real ideas about either extending your existing products, or creating new products that no one has thought of yet. Until then, we work on our black projects.<br />
-T-</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/01/29/ipad-uh-yeah-great-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mars needs women</title>
		<link>http://www.joroto.com/blog/2010/01/29/mars-needs-women/</link>
		<comments>http://www.joroto.com/blog/2010/01/29/mars-needs-women/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 02:50:16 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[geeks who can't get dates]]></category>
		<category><![CDATA[tech geeks make love to their projects]]></category>
		<category><![CDATA[Women]]></category>
		<category><![CDATA[women in startups]]></category>
		<category><![CDATA[women in technology]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=332</guid>
		<description><![CDATA[Yeah another startup with no babes. Great. We&#8217;re geeks and we must be gay. Can someone please recruit some hot intelligent women please? Eye candy while we wile away our lives working for DA MAN. 30 hour programming sessions are &#8230; <a href="http://www.joroto.com/blog/2010/01/29/mars-needs-women/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Yeah another startup with no babes. Great. We&#8217;re geeks and we must be gay.<br />
Can someone please recruit some hot intelligent women please?<br />
Eye candy while we wile away our lives working for DA MAN.<br />
30 hour programming sessions are too long.<br />
Why is our blog &#8220;from the guys&#8221;? Cause there aren&#8217;t any chicks here. Isn&#8217;t that against the law?<br />
Help me . . . . Spock.<br />
-T-</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2010%2F01%2F29%2Fmars-needs-women%2F&amp;title=Mars%20needs%20women" id="wpa2a_38"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2010/01/29/mars-needs-women/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>NO JOY. An OS 3.0 upgrade story</title>
		<link>http://www.joroto.com/blog/2009/09/05/no-joy-an-os-3-0-upgrade-story/</link>
		<comments>http://www.joroto.com/blog/2009/09/05/no-joy-an-os-3-0-upgrade-story/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 02:05:31 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[OS 3.0]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2009/09/05/no-joy-an-os-3-0-upgrade-story/</guid>
		<description><![CDATA[Went to the iTunes store to upgrade one of my iPods to the OS 3.0 SDK to see if we can monetize the crap out of it. Hey, I&#8217;ve BEEN BUSY, so shutup. Anyway, No joy. An UNKNOWN ERROR occurred &#8230; <a href="http://www.joroto.com/blog/2009/09/05/no-joy-an-os-3-0-upgrade-story/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Went to the iTunes store to upgrade one of my iPods to the OS 3.0 SDK to see if we can monetize the crap out of it. Hey, I&#8217;ve BEEN BUSY, so shutup.<br />
Anyway, No joy. An UNKNOWN ERROR occurred on my transaction.<br />
I will report back on this when I solve Apple&#8217;s problem (again).<br />
Update and FIX:<br />
The error was &#8220;An Unknown Error Occurred (1004)&#8221;. OH how precious that is. Apple must have hired a couple of hundred Microsoft Programming Wizards for that one. Yeah 100 mediocre programmers. Idiots.<br />
OK here is what it is telling you: </p>
<ol>
Go into your iTunes (mine is on the Mac).<br />
Choose Store from the Menu.<br />
View My Account.<br />
Put the credit card security code into the app.<br />
Close that pane.<br />
Click on your iPod device.<br />
Choose update.<br />
Click on Buy now.<br />
WHOA! It works now. AMAZING. Stupid. Imbecile. Mediocre programmers need to be shot. Where is Adolf Eichmann when we need him.<br />
You&#8217;re done baby. Wait the 20 minutes to download this puppy.<br />
Remember to BACKUP your iPlatform before upgrading dude and dudettes.
</ol>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F09%2F05%2Fno-joy-an-os-3-0-upgrade-story%2F&amp;title=NO%20JOY.%20An%20OS%203.0%20upgrade%20story" id="wpa2a_40"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/09/05/no-joy-an-os-3-0-upgrade-story/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>HOLY CRAP BATMAN SNOW LEOPARD&#8217;S GOT ME</title>
		<link>http://www.joroto.com/blog/2009/09/05/holy-crap-batman-snow-leopards-got-me/</link>
		<comments>http://www.joroto.com/blog/2009/09/05/holy-crap-batman-snow-leopards-got-me/#comments</comments>
		<pubDate>Sun, 06 Sep 2009 02:03:31 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[CRAP]]></category>
		<category><![CDATA[OS X upgrade]]></category>
		<category><![CDATA[SDK]]></category>
		<category><![CDATA[Snow Leopard]]></category>
		<category><![CDATA[upgrade]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2009/09/05/holy-crap-batman-snow-leopards-got-me/</guid>
		<description><![CDATA[As the "Ultimate End-User" I could remark...but I upgraded the blog theme and it wiped our customizations...Yea it was in the manual.

What the HECK are these programmers thinking?  Or unthinking?

NOTE: Tom's swearing was SELF removed, twas not I.  Thank you for saving me the effort Mr. Know It All.

JB <a href="http://www.joroto.com/blog/2009/09/05/holy-crap-batman-snow-leopards-got-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Face (our undead President) close your eyes and skip this rant.<br />
Ok folks, spent the whole $25 in cheeseballs on the OS X upgrade.<br />
Those *beep* *beep* *BEEPITY* *beeps* (edited by Face) at Apple have completly wiped my XCode links to the SDKs. NOTHING BUILDS NOW!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!<br />
HOLY **** Batman!<br />
I&#8217;ll update here about this crap. GREAT! Like we need MORE WORK. Of course WE&#8217;LL be blamed for this. Those BEEEEEEeeeeeeeeeeeeeeeeeeeeep (edited by Face).<br />
-T-<br />
Update:<br />
Ok my fault, when I upgraded, I should have put XCode 3.2 into A NEW PLACE!!! otherwise it &#8220;upgrades&#8221; your existing install (assuming you used the defaults) by erasing all your SDKs! How intuitive. Yeah if I RTFM. Ok so the way out is to download the OS 3.0 SDK which &#8220;doesn&#8217;t have all the 2.x SDKs&#8221;. Hmmm Let&#8217;s see nope. No more ranting. By this time you want answers.<br />
I&#8217;m doing that right now and its taking 20 minutes for 404MB.<br />
The original solution is to install the new 3.2 Xcode into A NEW PLACE and DO NOT UPGRADE the existing installation. Well they at least got that part correct.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/09/05/holy-crap-batman-snow-leopards-got-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Matrix for the rest of us &#8211; Virtualization for the masses</title>
		<link>http://www.joroto.com/blog/2009/08/07/the-matrix-for-the-rest-of-us-virtualization-for-the-masses/</link>
		<comments>http://www.joroto.com/blog/2009/08/07/the-matrix-for-the-rest-of-us-virtualization-for-the-masses/#comments</comments>
		<pubDate>Sat, 08 Aug 2009 02:21:58 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[centOS]]></category>
		<category><![CDATA[Linux image]]></category>
		<category><![CDATA[Sun Virtual Box]]></category>
		<category><![CDATA[Virtual PC stinks]]></category>
		<category><![CDATA[virtualization]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=213</guid>
		<description><![CDATA[Virtual PC sucks. Virtual Box rocks. VMWare is good too. <a href="http://www.joroto.com/blog/2009/08/07/the-matrix-for-the-rest-of-us-virtualization-for-the-masses/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ok I got one of those stinkin locked down Corporate PCs. Yep one of dem.<br />
I wanted to put CentOS and my other Linux PC&#8217;s image (The one I used until the Corporate Execs caught me. Jack booted thugs).<br />
Anyway I thought (stupidly of course) let&#8217;s give Microsoft&#8217;s Virtual PC a try. Nope. Choked and then spit it out. Not what a geek wants from his trusted minion.<br />
Next up let&#8217;s try Sun Microsystems&#8217; Virtual Box. Ahhhh bliss. A free solution to the &#8220;You&#8217;ll run what WE want whether you like it or not you cubitized pond scum&#8221;. LOL I now run Linux &#8220;underneath&#8221; the corporate package. Network is connected, I&#8217;m even sending to the corporate printers. Way cool. I thumb my nose at those dweebs.<br />
Props for VMWare. I use it at home and it is truly seamless. I don&#8217;t run it on the corp PCs so that the suits won&#8217;t have even more cause to, umm, flush me. You can see by an other post that they work us hard. Some of us need not work as hard because we&#8217;re 10 times more productive than the other 100 mediocre programmers. So we skate and the manager&#8217;s lick our boots and think we ARE gods! Mwhwhahahaahahahaaaaaa</p>
]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/08/07/the-matrix-for-the-rest-of-us-virtualization-for-the-masses/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>udev is your friend</title>
		<link>http://www.joroto.com/blog/2009/07/23/udev-is-your-friend/</link>
		<comments>http://www.joroto.com/blog/2009/07/23/udev-is-your-friend/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 01:33:59 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[Miscellaneous Apps and Services]]></category>
		<category><![CDATA[cups]]></category>
		<category><![CDATA[lp0]]></category>
		<category><![CDATA[printers.conf]]></category>
		<category><![CDATA[rules]]></category>
		<category><![CDATA[SUSE 11]]></category>
		<category><![CDATA[udev]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2009/07/23/udev-is-your-friend/</guid>
		<description><![CDATA[I was solving yet another problem with deployment where we replace a printer with one interface (a parallel port /dev/lp0) with the same printer with a different interface (a usb port /dev/usb/lp0). Our junior programmer solved this ultimately, however udev &#8230; <a href="http://www.joroto.com/blog/2009/07/23/udev-is-your-friend/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I was solving yet another problem with deployment where we replace a printer with one interface (a parallel port /dev/lp0) with the same printer with a different interface (a usb port /dev/usb/lp0). Our junior programmer solved this ultimately, however udev worked perfectly for this. I wanted the /dev to automatically switch back and forth between the printers while cups pointed to one /dev. This allows one to have a static /etc/cups/printers.conf yet dynamically react to these printer changes.<br />
Please note that since its the same printer, and we won&#8217;t have two of them at the same time, one wants the user to not notice that a configuration change was necessary.<br />
The rule in udev was:<br />
KERNEL==&#8221;lp0&#8243;, SYMLINK+=&#8221;lblprinter&#8221;<br />
and for the usb<br />
SUBSYSTEM==&#8221;usb&#8221;, (printer id here), SYMLINK+=&#8221;lblprinter&#8221;<br />
What our programmer found was that the lp0 symlink would NOT be created (called TRIGGERED) until some event occurs with /dev/lp0. Interestingly odd since the normal &#8220;device is detected&#8221; triggers the rules in udev.<br />
To solve this we put &#8220;touch /dev/lp0&#8243; into the SUSE 11 /etc/initscript and poof when it boots it creates the symlink. This is the desired behaviour.<br />
What is cool, is that I plugged the usb printer in, the /dev/lblprinter symlinked to /dev/usb/lp0. It worked fine. Then when I unplugged the usb printer, the original symlink appeared.<br />
Waycooool. Life is good.<br />
-T-</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F07%2F23%2Fudev-is-your-friend%2F&amp;title=udev%20is%20your%20friend" id="wpa2a_42"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/07/23/udev-is-your-friend/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Create an iPhone app splash screen</title>
		<link>http://www.joroto.com/blog/2009/07/10/splash-screen-over-easy/</link>
		<comments>http://www.joroto.com/blog/2009/07/10/splash-screen-over-easy/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 02:53:15 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[default.png]]></category>
		<category><![CDATA[graphic]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[splash]]></category>
		<category><![CDATA[splash screen]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=112</guid>
		<description><![CDATA[1-Create a .png file with Adobe Fireworks, Adobe Photoshop, Gimp, or any of the graphic programs out there. 2-Name it Default.png. 3-Add it to the Resources tab of your Xcode project. This will add this splash screen automatically to your &#8230; <a href="http://www.joroto.com/blog/2009/07/10/splash-screen-over-easy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>1-Create a .png file with Adobe Fireworks, Adobe Photoshop, Gimp, or any of the graphic programs out there.</p>
<p>2-Name it Default.png.</p>
<p>3-Add it to the Resources tab of your Xcode project. </p>
<p>This will add this splash screen automatically to your program when it runs, and will place this graphic on the screen as your app loads into memory and runs.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F07%2F10%2Fsplash-screen-over-easy%2F&amp;title=Create%20an%20iPhone%20app%20splash%20screen" id="wpa2a_44"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/07/10/splash-screen-over-easy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codesigning Kumite #92,232</title>
		<link>http://www.joroto.com/blog/2009/07/10/codesigning-kumite-92232/</link>
		<comments>http://www.joroto.com/blog/2009/07/10/codesigning-kumite-92232/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 01:05:31 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[code sign]]></category>
		<category><![CDATA[codesign]]></category>
		<category><![CDATA[compress]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[finder]]></category>
		<category><![CDATA[upload]]></category>
		<category><![CDATA[zip]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2009/07/10/codesigning-kumite-92232/</guid>
		<description><![CDATA[Real world example. I&#8217;m updating our Lite version of Trisaic to reintroduce to the app store. In Xcode but of course. Choose distribution. Select trisaiclite under the &#8220;targets&#8221; Click on &#8220;Info&#8221; or the &#8220;i&#8221; button. Select the properties button. Identifier &#8230; <a href="http://www.joroto.com/blog/2009/07/10/codesigning-kumite-92232/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Real world example. I&#8217;m updating our Lite version of Trisaic to reintroduce to the app store.<br />
In Xcode but of course.<br />
Choose distribution.<br />
Select trisaiclite under the &#8220;targets&#8221;<br />
Click on &#8220;Info&#8221; or the &#8220;i&#8221; button.<br />
Select the properties button.<br />
Identifier should read com.joroto.${PRODUCT_NAME}.<br />
Change the version field to something meaningful. Increment it if you are publishing an update.<br />
Choose the &#8220;Build&#8221; button.<br />
Change &#8220;Configuration&#8221; to &#8220;Distribution&#8221;.<br />
Go the &#8220;Code signing Identity&#8221;. Make sure it is set to &#8220;iPhone Distribution: Joroto, Inc.&#8221;<br />
Close that window.<br />
Choose Build and Build.<br />
In Finder go to your project directory, into the build directory, go to &#8220;Distribution-iphoneos&#8221;.<br />
Double click your ${APPNAME}.app in our case trisaiclite.app.<br />
Choose Compress.<br />
Run the AppLoader.<br />
Choose the open slot for the upgrade.<br />
Upload the application zip file.<br />
If it fails, fear not, just be afraid. The dreaded &#8220;Codesign error&#8221; with absolutely NO explanation as to what it found wrong with your freaking zip file. Thanks Apple.<br />
FIX IT YOURSELF I say. A CALL TO ARMS, and fingers.<br />
We&#8217;re going to do it the old fashioned way. Screw the non-helpful graphical interface. Give me a terminal window.<br />
Go to finder, applications, and run a terminal window.<br />
cd to your project directory. Example of mine below (an underscore represents a SPACE not an underscore):<br />
cd_/Projects/Trisaic/build/Distribution-iphoneos<br />
You&#8217;ll see your app&#8217;s directory called in my case Trisaiclite.app. Yes this is actually a directory not a binary. The binary is buried in the directory. I like this construct.<br />
Now you want to use the command line zip program like this. Again a real world example (an underscore represents a SPACE not an underscore):<br />
zip_-y_-r_trisaiclite.app.zip_trisaiclite.app<br />
OHHH Baby I feel the energy.<br />
Upload this puppy to the app store AND IT WILL WORK!!! WOOHOO.<br />
Everyone has this error and Apple still hasn&#8217;t figured out how to give us extended errors during the upload. Oh well, we like the rest of what they do.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F07%2F10%2Fcodesigning-kumite-92232%2F&amp;title=Codesigning%20Kumite%20%2392%2C232" id="wpa2a_46"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/07/10/codesigning-kumite-92232/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Codesign error number 5,202,203,023. Frustrated but undaunted.</title>
		<link>http://www.joroto.com/blog/2009/07/10/codesign-error-number-5202203023-frustrated-but-undaunted/</link>
		<comments>http://www.joroto.com/blog/2009/07/10/codesign-error-number-5202203023-frustrated-but-undaunted/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 00:48:50 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[App ID]]></category>
		<category><![CDATA[app store]]></category>
		<category><![CDATA[Appid]]></category>
		<category><![CDATA[code sign]]></category>
		<category><![CDATA[codesign]]></category>
		<category><![CDATA[codesign error]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[upload]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2009/07/10/codesign-error-number-5202203023-frustrated-but-undaunted/</guid>
		<description><![CDATA[The AppID in the Dev Central is setup with a specific application id code. Ex. hc124g12.com.joroto.agauge My app had the product name ${PRODUCT_NAME} as aGauge. The capital &#8216;G&#8217; was the problem. Do you see it? Yep neither did I, not &#8230; <a href="http://www.joroto.com/blog/2009/07/10/codesign-error-number-5202203023-frustrated-but-undaunted/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>The AppID in the Dev Central is setup with a specific application id code.<br />
Ex. hc124g12.com.joroto.agauge<br />
My app had the product name ${PRODUCT_NAME} as aGauge.<br />
The capital &#8216;G&#8217; was the problem. Do you see it? Yep neither did I, not the first blurry eyed time. One skims over these details after so many codesign errors during upload.<br />
I changed it by:<br />
Select &#8220;Target&#8221;<br />
Press &#8220;i&#8221; info button<br />
Choose &#8220;Build&#8221; tab.<br />
Go to packaging.<br />
Two finger click the grey packaging bar<br />
Choose the first option &#8220;Show Names&#8221;<br />
Find the &#8220;Product name&#8221; line.<br />
Change your product name to match the App ID.<br />
Good luck young Jedi you&#8217;ll need it more than the Force.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F07%2F10%2Fcodesign-error-number-5202203023-frustrated-but-undaunted%2F&amp;title=Codesign%20error%20number%205%2C202%2C203%2C023.%20Frustrated%20but%20undaunted." id="wpa2a_48"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/07/10/codesign-error-number-5202203023-frustrated-but-undaunted/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Replacing graphics files in XCode</title>
		<link>http://www.joroto.com/blog/2009/07/10/replacing-graphics-files-in-xcode/</link>
		<comments>http://www.joroto.com/blog/2009/07/10/replacing-graphics-files-in-xcode/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 00:42:27 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[replace graphics files xcode]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/2009/07/10/replacing-graphics-files-in-xcode/</guid>
		<description><![CDATA[I wanted to replace some graphics files under my resources in the Xcode environment. They are currently symlinks. I wanted them to be actual files in order to zip up and send to other developers. I thought an inexperienced user &#8230; <a href="http://www.joroto.com/blog/2009/07/10/replacing-graphics-files-in-xcode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I wanted to replace some graphics files under my resources in the Xcode environment. They are currently symlinks. I wanted them to be actual files in order to zip up and send to other developers. I thought an inexperienced user may appreciate this content.</p>
<p>Select the graphics files with a click, and then scroll down and do a Shift Click (if the files are in a contiguous list). A click is a single tap on the touchpad. The alternate way is to hold down the command key and click once for each additional file. This creates a list of files that you&#8217;ll delete.<br />
Now do a two finger tap on the touchpad.<br />
Choose delete.<br />
Choose &#8220;Also move to trash&#8221;.<br />
Boom they&#8217;re gone.<br />
Now go to finder in your project directory. You&#8217;ll see the links are still there. So you need to &#8220;move them to trash&#8221; also. Its the same sequence as above.<br />
Go back to Xcode.<br />
Double finger tap the resources tab.<br />
Choose &#8220;Existing files&#8221;.<br />
At the top choose the project&#8217;s default directory. I choose the drop down control, select my directory where the original graphic is and then select my graphics.<br />
Now click &#8220;Add&#8221; or press .<br />
Make sure &#8220;Copy items into destination group&#8217;s folder (if needed)&#8221; is selected. I do this so I can zip up the entire development directory and have zero external references.<br />
That&#8217;s it. Just another tidbit to hopefully help you develop for the iPlatform.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F07%2F10%2Freplacing-graphics-files-in-xcode%2F&amp;title=Replacing%20graphics%20files%20in%20XCode" id="wpa2a_50"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/07/10/replacing-graphics-files-in-xcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iPod/iPhone &#8220;No provisioned device&#8221; error in XCode</title>
		<link>http://www.joroto.com/blog/2009/06/14/ipodiphone-no-provisioned-device-error-in-xcode/</link>
		<comments>http://www.joroto.com/blog/2009/06/14/ipodiphone-no-provisioned-device-error-in-xcode/#comments</comments>
		<pubDate>Sun, 14 Jun 2009 22:01:38 +0000</pubDate>
		<dc:creator>Tom CTO</dc:creator>
				<category><![CDATA[iPod and Apple Platform]]></category>
		<category><![CDATA[error]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[provisioning]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://www.joroto.com/blog/?p=39</guid>
		<description><![CDATA[In the Organizer in XCode you notice that your iPlatform device (iPod/iPhone) is not recognized as a provisioned device. The little &#8220;light&#8221; is not green. However iTunes can sync with it and give it a great big kiss. Cause: I &#8230; <a href="http://www.joroto.com/blog/2009/06/14/ipodiphone-no-provisioned-device-error-in-xcode/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>In the Organizer in XCode you notice that your iPlatform device (iPod/iPhone) is not recognized as a provisioned device. The little &#8220;light&#8221; is not green. However iTunes can sync with it and give it a great big kiss.<br />
Cause: I believe this is due to the iPlatform device being plugged in when the computer goes to sleep.<br />
Solution:<br />
1) Unplug the iPlatform device from the USB.<br />
2) Hold down the top power off and the circle App Exit button at the same time, then release at the same time.<br />
3) A slide switch appears saying &#8220;Power off&#8221;. Do so. This is a hard power down of the device.<br />
4) Now you can just plug the device back into the USB cable. XCode will see it and use it now. This has happened many times to me and this is the exact solution to that.</p>
<p><a class="a2a_dd a2a_target addtoany_share_save" href="http://www.addtoany.com/share_save#url=http%3A%2F%2Fwww.joroto.com%2Fblog%2F2009%2F06%2F14%2Fipodiphone-no-provisioned-device-error-in-xcode%2F&amp;title=iPod%2FiPhone%20%26%238220%3BNo%20provisioned%20device%26%238221%3B%20error%20in%20XCode" id="wpa2a_52"><img src="http://www.joroto.com/blog/wp-content/plugins/add-to-any/share_save_256_24.png" width="256" height="24" alt="Share"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.joroto.com/blog/2009/06/14/ipodiphone-no-provisioned-device-error-in-xcode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

