<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1910035575143312395</id><updated>2011-11-07T10:14:02.047+01:00</updated><category term='joojoo'/><category term='GWT'/><category term='introduction'/><category term='fusion garage'/><category term='apple'/><category term='nimbus'/><category term='tablet'/><category term='look and feel'/><category term='symbol 2208'/><category term='ipad'/><category term='star tsp143'/><category term='help'/><category term='logo'/><category term='roadmap'/><category term='Swing'/><category term='chrome web app'/><category term='Code'/><category term='bugfixes'/><category term='printer'/><category term='video'/><category term='windows'/><category term='usplash'/><category term='Qash'/><category term='inkscape'/><category term='solaris'/><category term='Animation'/><category term='barcode'/><category term='hardware'/><category term='Arora'/><category term='KDE'/><category term='i18n'/><category term='Plugin'/><category term='boot'/><category term='platform'/><category term='java'/><category term='star tsp100'/><category term='translation'/><category term='refactoring'/><category term='security'/><category term='Opera'/><category term='bsd'/><category term='teaser'/><category term='mac os x'/><category term='gtk'/><category term='swingx'/><category term='API'/><category term='Gnome'/><category term='java6'/><category term='android'/><category term='receipt'/><category term='pos'/><category term='Linux'/><category term='twitter'/><category term='Macbook'/><category term='CoPlan'/><category term='Scene graph'/><category term='Ubuntu'/><category term='release'/><category term='svn'/><title type='text'>Qash blog</title><subtitle type='html'>The evolvement of an web based Point Of Sales(POS) system.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.qash.dk/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>45</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-557588326134375485</id><published>2011-06-22T21:34:00.001+02:00</published><updated>2011-06-22T21:34:29.312+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='twitter'/><title type='text'>Follow Qash on twitter</title><content type='html'>Just a short notice!&lt;br /&gt;&lt;br /&gt;You can follow &lt;a href="http://twitter.com/qashapp"&gt;Qash on twitter&lt;/a&gt;. News about Qash will be posted there for your convenience.&lt;br /&gt;&lt;br /&gt;- The @Qashapp team!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-557588326134375485?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://twitter.com/qashapp' title='Follow Qash on twitter'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/557588326134375485/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2011/06/follow-qash-on-twitter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/557588326134375485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/557588326134375485'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2011/06/follow-qash-on-twitter.html' title='Follow Qash on twitter'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-7443725262850583442</id><published>2011-06-15T21:47:00.000+02:00</published><updated>2011-06-15T21:47:14.544+02:00</updated><title type='text'>The summer brings a breeze</title><content type='html'>Since winter the team behind &lt;a href="http://qashapp.com/"&gt;Qash&lt;/a&gt; has has something coming along - a brand new cash register interface for &lt;a href="http://qashapp.com/"&gt;Qash&lt;/a&gt;. We are almost there - just 5-6 weeks left.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Why a new user interface?&lt;/b&gt;&lt;br /&gt;During the development of the current interface, it became clear that the technology we were using worked, but required to much effort for even simple things. We have a lot of ideas we want to bring to life but we could not find the time.&lt;br /&gt;&lt;br /&gt;Therefore we chose to go down a path that makes it easier for us developers, while giving the customers an even nicer experience using the product.&lt;br /&gt;&lt;br /&gt;When we finally release the new interface we should be able to find more time for nifty new features. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-7443725262850583442?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/7443725262850583442/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2011/06/summer-brings-breeze.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7443725262850583442'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7443725262850583442'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2011/06/summer-brings-breeze.html' title='The summer brings a breeze'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-3743692970611415303</id><published>2011-04-01T18:02:00.000+02:00</published><updated>2011-04-01T18:02:48.033+02:00</updated><title type='text'>The new interface is coming along nicely</title><content type='html'>The new interface is really progressing nicely. The new tolls we have used gives us more flexibility and it much faster for us to develop. We are looking forward to present you all with a beta of this new sweet interface.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-zP_urDu1sqs/TZX3DNzMjlI/AAAAAAAARws/R1lQLQlT2PA/s1600/qash_1_4_2011.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="208" src="http://3.bp.blogspot.com/-zP_urDu1sqs/TZX3DNzMjlI/AAAAAAAARws/R1lQLQlT2PA/s320/qash_1_4_2011.png" width="320" /&gt;&lt;/a&gt;Check out the screenshot. It's possible to edit directly in the table of orderlines and to make it easier for you to work with we have thought well of flow of focus between fields should be - so you dont have to use the mouse so much. You should simply automatically move to the next natural element you want to use when you leave a field.&lt;br /&gt;&lt;br /&gt;Again. Feedback appreciated. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-3743692970611415303?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/3743692970611415303/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2011/04/new-interface-is-coming-along-nicely.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/3743692970611415303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/3743692970611415303'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2011/04/new-interface-is-coming-along-nicely.html' title='The new interface is coming along nicely'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-zP_urDu1sqs/TZX3DNzMjlI/AAAAAAAARws/R1lQLQlT2PA/s72-c/qash_1_4_2011.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6617762677052983455</id><published>2011-03-17T22:24:00.000+01:00</published><updated>2011-03-17T22:24:35.349+01:00</updated><title type='text'>We are developing a new User Interface</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-bokuSX9Lguc/TYJ79kyVNqI/AAAAAAAARwE/zf6pBF0tQFo/s1600/Sk%25C3%25A6rmbillede+2011-03-17+kl.+22.19.22.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"&gt;&lt;img border="0" height="162" src="https://lh6.googleusercontent.com/-bokuSX9Lguc/TYJ79kyVNqI/AAAAAAAARwE/zf6pBF0tQFo/s320/Sk%25C3%25A6rmbillede+2011-03-17+kl.+22.19.22.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;The current User Interface has some technical issues that makes it very hard to develop the features we really want. Therefore we are prototyping a new development framework while also taking time to optimize the interface.&lt;br /&gt;&lt;br /&gt;The attached screenshot is a nonfunctional prototype we are working on, but feedback is appreciated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6617762677052983455?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6617762677052983455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2011/03/we-are-developing-new-user-interface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6617762677052983455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6617762677052983455'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2011/03/we-are-developing-new-user-interface.html' title='We are developing a new User Interface'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-bokuSX9Lguc/TYJ79kyVNqI/AAAAAAAARwE/zf6pBF0tQFo/s72-c/Sk%25C3%25A6rmbillede+2011-03-17+kl.+22.19.22.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-1567862974874820540</id><published>2011-01-27T07:54:00.001+01:00</published><updated>2011-01-27T08:19:20.998+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='printer'/><category scheme='http://www.blogger.com/atom/ns#' term='translation'/><category scheme='http://www.blogger.com/atom/ns#' term='boot'/><title type='text'>New version: 1.3.4</title><content type='html'>Qash has been released in a new version: 1.3.4&lt;br /&gt;&lt;br /&gt;This is just a bugfix version:&lt;br /&gt;- App has got more translations in place&lt;br /&gt;- Quicker boot time for the system(less downtime when upgrading)&lt;br /&gt;- Ensuring correct printer selected when printing.&lt;br /&gt;- more....&lt;br /&gt;&lt;br /&gt;&lt;a href="http://qashapp.com/"&gt;Try it out: http://qashapp.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-1567862974874820540?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://qashapp.com' title='New version: 1.3.4'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/1567862974874820540/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2011/01/new-version-134.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1567862974874820540'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1567862974874820540'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2011/01/new-version-134.html' title='New version: 1.3.4'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6488198903750289309</id><published>2011-01-11T22:39:00.000+01:00</published><updated>2011-01-11T22:39:20.187+01:00</updated><title type='text'>Qash 1.3.2 is out</title><content type='html'>The last couple of weeks has some small but convenient features.&lt;br /&gt;&lt;br /&gt;We have compiled these into a new release: Version 1.3.2.&lt;br /&gt;&lt;br /&gt;New features&lt;br /&gt;- Better exception information in the Client.&lt;br /&gt;- Better information concerning low stock hold when completing orders.&lt;br /&gt;- Allow confirmation for completing orders when not enough items are in stock.&lt;br /&gt;- Alert user when completing order with negative balance.&lt;br /&gt;- Alert user if logged out of the system.&lt;br /&gt;&lt;br /&gt;Bugs fixed&lt;br /&gt;- Some platforms might get an exception when printing caused by security exception. (fixed)&lt;br /&gt;- Unable to search for orders.&amp;nbsp;&amp;nbsp;(fixed)&lt;br /&gt;- Unable to extends list of orders.&amp;nbsp;&amp;nbsp;(fixed)&lt;br /&gt;&lt;br /&gt;Feel free to try it out. :)&lt;br /&gt;&lt;br /&gt;Best Regards&lt;br /&gt;Qash Dev Team&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6488198903750289309?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://qash.dk' title='Qash 1.3.2 is out'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6488198903750289309/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2011/01/qash-132-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6488198903750289309'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6488198903750289309'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2011/01/qash-132-is-out.html' title='Qash 1.3.2 is out'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-2244594810406221407</id><published>2010-12-18T19:31:00.001+01:00</published><updated>2010-12-18T19:31:48.168+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help'/><category scheme='http://www.blogger.com/atom/ns#' term='bugfixes'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='chrome web app'/><title type='text'>Qash 1.2 is out!</title><content type='html'>Just about 8 weeks after we pushed Qash 1.1 out the door we now 1.2 available. But what has happened in those 8 weeks?&lt;br /&gt;&lt;br /&gt;A lot:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Added better audit strip support by extending the postings export.&lt;/li&gt;&lt;li&gt;Added daily turnover information.&lt;/li&gt;&lt;li&gt;Fixed bug causing not being able to add samme item to an order twice.&lt;/li&gt;&lt;li&gt;New shops has a default order and a default item upon creation.&lt;/li&gt;&lt;li&gt;Added help system&lt;/li&gt;&lt;li&gt;Added more margins on receipts.&lt;/li&gt;&lt;li&gt;Refactored business logic to the correct code layer.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Changed the security model from a home built system to Spring Security.&lt;/li&gt;&lt;li&gt;Implemented a hibernate backend to replace the Datanucleus one.&lt;/li&gt;&lt;li&gt;Added som better admin tools&lt;/li&gt;&lt;li&gt;Lots of bugfixes....&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Try it out now: http://qashapp.com&lt;/div&gt;&lt;div&gt;(Or &lt;a href="https://chrome.google.com/webstore/detail/ceacpnfkcjdipihilfmboccnajllcjpn"&gt;install as Chrome Web App&lt;/a&gt;)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-2244594810406221407?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://qashapp.com' title='Qash 1.2 is out!'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/2244594810406221407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/12/qash-12-is-out.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/2244594810406221407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/2244594810406221407'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/12/qash-12-is-out.html' title='Qash 1.2 is out!'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-7215251714052541238</id><published>2010-12-10T14:24:00.000+01:00</published><updated>2010-12-10T14:24:42.573+01:00</updated><title type='text'>Qash available at Chrome Web Store</title><content type='html'>Chrome Web Store is in the air and Qash is the first online POS application to be available there.&lt;br /&gt;&lt;br /&gt;You can &lt;a href="https://chrome.google.com/webstore/detail/ceacpnfkcjdipihilfmboccnajllcjpn"&gt;install Qash as an application here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-7215251714052541238?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='https://chrome.google.com/webstore/detail/ceacpnfkcjdipihilfmboccnajllcjpn' title='Qash available at Chrome Web Store'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/7215251714052541238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/12/qash-available-at-chrome-web-store.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7215251714052541238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7215251714052541238'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/12/qash-available-at-chrome-web-store.html' title='Qash available at Chrome Web Store'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-4637022930503792047</id><published>2010-11-17T10:41:00.000+01:00</published><updated>2010-11-17T10:41:36.564+01:00</updated><title type='text'>Qash 1.2 comes with optimized codebase</title><content type='html'>I you want to follow whats going on with Qash towards the 1.2 release, feel free to &lt;a href="http://code.google.com/p/qashweb/issues/list?can=2&amp;q=Milestone%3DRelease1.2+&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary&amp;cells=tiles"&gt;take a look at the issues&lt;/a&gt;. It gives an in depth view of what is up for the next release.&lt;br /&gt;&lt;br /&gt;Some of the important stuff we are going to include are:&lt;br /&gt;- Daily fund status&lt;br /&gt;- Audit strip&lt;br /&gt;- Editable startnumbers for orders and invoices.&lt;br /&gt;&lt;br /&gt;In the backend, and more technical part:&lt;br /&gt;- Spring Security model&lt;br /&gt;- Serverside code restructuring&lt;br /&gt;- Change from JDO(Datanucleus &amp; Compass) to JPA(Hibernate &amp; Hibernate Search)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-4637022930503792047?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/4637022930503792047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/11/qash-12-comes-with-optimized-codebase.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4637022930503792047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4637022930503792047'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/11/qash-12-comes-with-optimized-codebase.html' title='Qash 1.2 comes with optimized codebase'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-8081343858056640004</id><published>2010-10-27T08:04:00.000+02:00</published><updated>2010-10-27T08:04:28.013+02:00</updated><title type='text'>Qash Release 1.1 is up!</title><content type='html'>After months of work we have released Qash 1.1.&lt;br /&gt;&lt;br /&gt;As we wrote earlier on this blog, this contains some important features regarding prints. It is now possible to switch between invoices(normal printer) and receipts(dedicated receipt printer). Furthermore the groundwork is made to add features like 'Email Invoice as PDF', 'Download Receipt as Png' etc. &lt;br /&gt;&lt;br /&gt;We have build a complete framework around Html-rendering which renders to several formats(PDF, Svg, Png, Html, Zipfiles) and many more can be added.&lt;br /&gt;&lt;br /&gt;Next up is version 1.2. You can already &lt;a href="http://code.google.com/p/qashweb/issues/list?can=2&amp;q=Milestone%3DRelease1.2+&amp;colspec=ID+Type+Status+Priority+Milestone+Owner+Summary&amp;cells=tiles"&gt;check out some of the currently planned features&lt;/a&gt;. We are especially excited about the&lt;a href="http://code.google.com/p/qashweb/issues/detail?id=115&amp;q=Milestone%3DRelease1.2"&gt; Audit strip&lt;/a&gt;, &lt;a href="http://code.google.com/p/qashweb/issues/detail?id=112&amp;q=Milestone%3DRelease1.2"&gt;the daily fund status&lt;/a&gt; and &lt;a href="http://code.google.com/p/qashweb/issues/detail?id=113&amp;q=Milestone%3DRelease1.2"&gt;the new spring based security model&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-8081343858056640004?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/8081343858056640004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/10/qash-release-11-is-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8081343858056640004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8081343858056640004'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/10/qash-release-11-is-up.html' title='Qash Release 1.1 is up!'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6101085464179528476</id><published>2010-10-23T09:13:00.001+02:00</published><updated>2010-10-23T09:14:08.428+02:00</updated><title type='text'>New release coming up!</title><content type='html'>It's exciting times. We have been working hard on a new release(v. 1.1) for a couple of months, and this this is by far our most important release in a long time.&lt;br /&gt;&lt;br /&gt;One of the things a lot of customers has been asking for is support for &lt;b&gt;printing invoices&lt;/b&gt; on a standard printer. The new release will support this.&lt;br /&gt;&lt;br /&gt;Furthermore we had to rewrite the hole receipt printing stuff. Until now they were completely generated by the applet that controls printing, but this was limiting us in some ways. Now they are generate on the server, and sent to the applet. &lt;br /&gt;&lt;br /&gt;These changes has made it possible for us to generate invoices and receipts in many formats fx. PDF, SVG, PNG, Html and more.&lt;br /&gt;&lt;br /&gt;We will keep you posted as soon as the new release is uploaded.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6101085464179528476?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6101085464179528476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/10/new-release-coming-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6101085464179528476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6101085464179528476'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/10/new-release-coming-up.html' title='New release coming up!'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-4414826815160227337</id><published>2010-08-25T20:18:00.000+02:00</published><updated>2010-08-25T20:18:50.595+02:00</updated><title type='text'>Demo videos of Qash available showing how to use the free online cash register</title><content type='html'>&lt;a href="http://qashapp.com/en/tour.jsp"&gt;The demo page at qashapp.com&lt;/a&gt; is now updatet with new videos.&lt;br /&gt;&lt;br /&gt;I have embedded them here for easy access.&lt;br /&gt;&lt;div class="SubTitle"&gt;How to create a Shop&lt;/div&gt;    &lt;object width="400" height="240"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4sJQxlZfooA?fs=1&amp;amp;hl=da_DK"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4sJQxlZfooA?fs=1&amp;amp;hl=da_DK" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="240"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;    &lt;br/&gt;&lt;br /&gt;    &lt;br/&gt;&lt;br /&gt;    &lt;hr/&gt;    &lt;br /&gt;    &lt;div class="SubTitle"&gt;How to create items in the stock&lt;/div&gt;    &lt;object width="400" height="240"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FPHOA7Rve1A?fs=1&amp;amp;hl=da_DK"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/FPHOA7Rve1A?fs=1&amp;amp;hl=da_DK" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="240"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;    &lt;br/&gt;&lt;br /&gt;    &lt;br/&gt;&lt;br /&gt;    &lt;hr/&gt;    &lt;br /&gt;    &lt;div class="SubTitle"&gt;How to create orders&lt;/div&gt;    &lt;object width="400" height="240"&gt;&lt;param name="movie" value="http://www.youtube.com/v/zRrigu3uiA4?fs=1&amp;amp;hl=da_DK"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/zRrigu3uiA4?fs=1&amp;amp;hl=da_DK" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="400" height="240"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;    &lt;br/&gt;&lt;br /&gt;    &lt;br/&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-4414826815160227337?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/4414826815160227337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/08/demo-videos-of-qash-available-showing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4414826815160227337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4414826815160227337'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/08/demo-videos-of-qash-available-showing.html' title='Demo videos of Qash available showing how to use the free online cash register'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-1739419934790942549</id><published>2010-08-24T15:07:00.000+02:00</published><updated>2010-08-24T15:07:40.030+02:00</updated><title type='text'>Online Cash Registers are getting more popular</title><content type='html'>It looks like we chose the right time to hit the market. When surfing the web for cash registers and Point of sale systems, its clear that people are getting more used to applications available on the web.&lt;br /&gt;&lt;br /&gt;That trend is seen in our statistic for our application (&lt;a href="http://qashapp.com/en?a=online_cash_register"&gt;Qash - the online cash register&lt;/a&gt;) as well - the last month we have experienced a 18% increase in traffic - each week.&lt;br /&gt;&lt;br /&gt;If you havent experienced a profressional online Cash regsiter yet, then &lt;a href="http://qashapp.com/en"&gt;try Qash now&lt;/a&gt; or &lt;a href="http://qashapp.com/en/tour.jsp?a=demo_of_qash"&gt;watch the demo of Qash&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-1739419934790942549?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/1739419934790942549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/08/online-cash-registers-are-getting-more.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1739419934790942549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1739419934790942549'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/08/online-cash-registers-are-getting-more.html' title='Online Cash Registers are getting more popular'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-1200896972756725772</id><published>2010-07-30T14:09:00.001+02:00</published><updated>2010-07-30T14:36:07.788+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fusion garage'/><category scheme='http://www.blogger.com/atom/ns#' term='tablet'/><category scheme='http://www.blogger.com/atom/ns#' term='joojoo'/><category scheme='http://www.blogger.com/atom/ns#' term='ipad'/><category scheme='http://www.blogger.com/atom/ns#' term='apple'/><title type='text'>Tablet's might be good alternatives to traditional POS hardware</title><content type='html'>A new trend started when the Apple's tablet, the &lt;a href="http://www.apple.com/ipad/"&gt;iPad&lt;/a&gt;, was announced. Now several others are announcing their tablet or are already selling their version of a tablet: This goes for the &lt;a href="https://thejoojoo.com/"&gt;JooJoo&lt;/a&gt;, HP SLate, Asus eee tablet and others.&lt;br /&gt;&lt;br /&gt;Related to &lt;a href="http://qashapp.com"&gt;Qash, the online cash register, &lt;/a&gt;I have found the JooJoo both &lt;b&gt;interesting&lt;/b&gt; and &lt;b&gt;disappointing&lt;/b&gt;. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Interesting&lt;/b&gt; because it has USB and could be connected to printer, barcodereader etc., but its format makes it possible to unplug the usb and use the tablet around a store which is great in some POS setups. This would not be possible with an iPad.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disappointing&lt;/b&gt; because the software on the JooJoo has gotten a lot of negative feedback.&lt;br /&gt;&lt;br /&gt;But the trend is cool. It gives us brand new possibilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-1200896972756725772?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/1200896972756725772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/07/tablets-might-be-good-alternatives-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1200896972756725772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1200896972756725772'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/07/tablets-might-be-good-alternatives-to.html' title='Tablet&apos;s might be good alternatives to traditional POS hardware'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6808647569416028778</id><published>2010-07-19T12:55:00.001+02:00</published><updated>2010-07-19T12:56:08.479+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><category scheme='http://www.blogger.com/atom/ns#' term='i18n'/><category scheme='http://www.blogger.com/atom/ns#' term='translation'/><title type='text'>More translations added</title><content type='html'>We have spent the last couple of weeks on preparing the codebase for more translations.&lt;br /&gt;Our first initial approach worked, but adding a new language was complicated.&lt;br /&gt;&lt;br /&gt;This is fixed now(a few things are temporarily english only though). And we added&lt;br /&gt;some new translations - translated via Google translate. So translations are not perfect,&lt;br /&gt;but should be usable.&lt;br /&gt;&lt;br /&gt;If you want to help improving the translations, please feel free to contact us.&lt;br /&gt;&lt;br /&gt;The languages supported by Qash now are:&lt;br /&gt;- Danish&lt;br /&gt;- English&lt;br /&gt;- French&lt;br /&gt;- German&lt;br /&gt;- Icelandic&lt;br /&gt;- Italian&lt;br /&gt;- Japanese&lt;br /&gt;- Norwegian&lt;br /&gt;- Portuguese&lt;br /&gt;- Spanish&lt;br /&gt;- Swedish&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6808647569416028778?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6808647569416028778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/07/more-translations-added.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6808647569416028778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6808647569416028778'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/07/more-translations-added.html' title='More translations added'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5890257491706453794</id><published>2010-07-08T16:01:00.001+02:00</published><updated>2010-07-08T16:02:08.227+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='pos'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><title type='text'>Translation</title><content type='html'>Qash will soon be translated to other languages. We are refactoring some of the I18N bit and pieces which will make it a lot easier to translate afterwards.&lt;br /&gt;&lt;br /&gt;These are the translations we are focusing on first:&lt;br /&gt;- German&lt;br /&gt;- French&lt;br /&gt;- Spanish&lt;br /&gt;- Norwegian&lt;br /&gt;- Swedish&lt;br /&gt;&lt;br /&gt;If you want to contribute by translating from English to one of the languages mentioned, please feel free to say so - We will be very thankfull.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5890257491706453794?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5890257491706453794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/07/translation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5890257491706453794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5890257491706453794'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/07/translation.html' title='Translation'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-1166723402970711819</id><published>2010-06-12T20:13:00.000+02:00</published><updated>2010-06-12T20:13:57.906+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='roadmap'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='platform'/><category scheme='http://www.blogger.com/atom/ns#' term='release'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><title type='text'>Qash is online!</title><content type='html'>It's finally here. Qash is officially online.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What does it mean?&lt;/b&gt;&lt;br /&gt;I means that everyone can jump to &lt;a href="http://qashapp.com"&gt;qashapp.com&lt;/a&gt; and create their own store for free - and easily have their own cash register.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What now?&lt;/b&gt;&lt;br /&gt;We have a list of features on our roadmap which we will implement over time. One of them is creating a default platform for the hardware we are going to sell(which may very well be a KDE-based platform).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-1166723402970711819?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://qashapp.com' title='Qash is online!'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/1166723402970711819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2010/06/qash-is-online.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1166723402970711819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1166723402970711819'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2010/06/qash-is-online.html' title='Qash is online!'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-1378935923214816321</id><published>2009-12-07T20:32:00.004+01:00</published><updated>2009-12-07T21:54:31.259+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><title type='text'>A year passed by...</title><content type='html'>Wow. Did´nt 2009 just start? And now its ending.&lt;br /&gt;&lt;br /&gt;And what have happened to Qash in the meantime?&lt;br /&gt;It changed - totally.&lt;br /&gt;&lt;br /&gt;I realized that I had over engineered it - and it killed it.&lt;br /&gt;I had to go back to basics, think about it and simplify it.&lt;br /&gt;&lt;br /&gt;I threw nearly everything away and started over. &lt;br /&gt;&lt;br /&gt;This means that Qash is now a webapp instead - living &lt;br /&gt;online only. Its written in Java using GWT for the webapp.&lt;br /&gt;&lt;br /&gt;A test is up and running here(except when the server isnt):&lt;br /&gt;http://test.qash.dk&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-1378935923214816321?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/1378935923214816321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2009/12/year-pasted-by.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1378935923214816321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1378935923214816321'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2009/12/year-pasted-by.html' title='A year passed by...'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-8158374810644591609</id><published>2008-09-30T08:05:00.004+02:00</published><updated>2008-09-30T08:30:41.696+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='GWT'/><category scheme='http://www.blogger.com/atom/ns#' term='Arora'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><title type='text'>Arora, browser printing and stuff</title><content type='html'>Qash(my POS project) is coming along nicely. As &lt;a href="http://qashapp.blogspot.com/2008/08/qash-has-been-webalized.html"&gt;pointed out earlier&lt;/a&gt;, it is now GWT based and runs in a browser, and Im planning to recommend KDE as platform and use it on preinstalled appliances.&lt;br /&gt;&lt;br /&gt;While GWT made things a lot more flexible and simple for me, compared to Java+Swing, I still have some real challenges.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Pointed towards Arora&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;As Konqueror is not supported by GWT, I had planned to use Opera as my recommended browser. &lt;a href="http://aseigo.blogspot.com/"&gt;Aaron&lt;/a&gt;, however, told me about &lt;a href="http://code.google.com/p/arora/"&gt;Arora&lt;/a&gt;. Arora is a really nice fit for this project. It is fast and simple and uses the rendering engine which in my opinion is the best engine for GWT.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Browser printing&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Another obstacle to overcome is printing. Sure printing is supported, but for a POS system, direct printing(without a dialog) is a really really nice feature. I know I can dot this by using a Java Applet, but I rather not as Java applets is not supportet by Arora yet. Im try to figure out if I can do it using flash, which Arora will support as soon as QT 4.5 is out.&lt;br /&gt;&lt;br /&gt;Furthermore support for empty printouts would be nice too!&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: italic;"&gt;"Empty printouts? U crazy?"&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-style: normal;"&gt;Nope! Me sane! (kinda)&lt;br /&gt;Most cashdrawers opens automatically on a printout - controlled via a cabel connected to the receipt printer. This is clever because each new receipt means a new buy and cash is therefore most likely needed. But sometimes you just want to open the drawer. This could be done in Java by just printing 0(zero) pages.&lt;br /&gt;&lt;br /&gt;If you have a good solution to this, please post it! :-)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-8158374810644591609?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/8158374810644591609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/09/arora-browser-printing-and-stuff.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8158374810644591609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8158374810644591609'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/09/arora-browser-printing-and-stuff.html' title='Arora, browser printing and stuff'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-1991827288202902093</id><published>2008-08-14T08:21:00.003+02:00</published><updated>2008-08-14T08:39:05.010+02:00</updated><title type='text'>Qash has been webalized!</title><content type='html'>&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;History&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;When I started developing &lt;a href="http://code.google.com/p/qash/"&gt;Qash&lt;/a&gt; I was aiming for an interface with a native feel and a nice UI + I wanted the possibility of controlling which components should be enabled.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I started developing in Java using Swing for GUI. And I must say now - it really can be a timeconsumer. If you want to create a standard desktop GUI, it might be ok, but the API is in my opinion not that easy to use when creating custom components. Swing really was a blocker in my project and nearly made me give up on it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The pluginframework I created was ok, but I had a lot of trouble making it work in applets, which would be great to have for demo purposes. But it also made the whole developing process more complicated as I suddenly had to maintain a  core codebase AND 3 or 4 plugins.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Furthermore I made the mistake of overdesigning the whole thing. I tried to take everything into account, but that is just to big for a one man show. I would have taken years before I reached a stable version.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;So what now.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;div&gt;Well as the title says: &lt;a href="http://code.google.com/p/qashweb/"&gt;Qash has been webalized&lt;/a&gt; (or in real words: It is now a Web application)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I will still use Java for developing, but it will be using &lt;a href="http://code.google.com/webtoolkit/"&gt;GWT&lt;/a&gt;. It will use &lt;a href="http://en.wikipedia.org/wiki/Model-view-controller"&gt;MVC&lt;/a&gt; to create a better overview over the GUI code and make it simpler to reuse. I will keep it simple. And I will plug into existing server backends - starting with oscommerce.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This means Qash can work directly as a frontend to an existing webshop - but designed for retail stores supporting barcode-scanning and printing receipts.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It also makes it VERY simple to have an online demo of the thing. And it should soon be ready for that. I will post on this blog when ready.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-1991827288202902093?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/1991827288202902093/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/08/qash-has-been-webalized.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1991827288202902093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/1991827288202902093'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/08/qash-has-been-webalized.html' title='Qash has been webalized!'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6678531293557699784</id><published>2008-03-07T18:14:00.002+01:00</published><updated>2008-03-07T18:28:15.755+01:00</updated><title type='text'>Im almost well</title><content type='html'>So Im feeling a lot better know. And I actually got some work done today also.&lt;br /&gt;&lt;br /&gt;The techie stuff is this:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ConfigurationManager got a rewrite - now it is a lot simpler and more logical way to use retrieve and write configuration.&lt;/li&gt;&lt;li&gt;ControlPanel behaves well now.&lt;/li&gt;&lt;li&gt;Receiptprinter supports the configuration(signature can be changed and barcode turned on/off)&lt;/li&gt;&lt;/ul&gt;It is really starting to look great.&lt;br /&gt;&lt;br /&gt;I have been thinking of skipping the jdbc repository and go with another solution. I have the following 2 issues with the jdbc repository right now:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;It needs a refactoring - I fear its rather big.&lt;/li&gt;&lt;li&gt;Even if it were great, it will some day have caused some data errors - and those hard to correct off-site in a DB.&lt;/li&gt;&lt;/ul&gt;So im thinking of a Virtual File System instead(Apache VFS) on a netshare.  All data could be saved as Jsoni seperate files. This way it will still be very easy to edit via fx. a texteditor.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6678531293557699784?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6678531293557699784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/03/im-almost-well.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6678531293557699784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6678531293557699784'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/03/im-almost-well.html' title='Im almost well'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6891977237243516889</id><published>2008-03-05T18:29:00.001+01:00</published><updated>2008-03-05T18:40:34.114+01:00</updated><title type='text'>I caught a nasty cold. :-/</title><content type='html'>I've been sick a couple of days. However today I was in fact able to get out of bed. :-)&lt;br /&gt;And, best of all, clear enough in my head to actually get som work done.&lt;br /&gt;&lt;br /&gt;On top of my head, this has been the progress since the last blog:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Barcode reading works nicely&lt;/li&gt;&lt;li&gt;Barcodes are printed on the receipts for easy retrieval of order.&lt;/li&gt;&lt;li&gt;Cashdrawer can open without having to execute a print&lt;/li&gt;&lt;li&gt;System keys are enabled(HOME=Main menu, Escape=go back, End=Open cashdrawer)&lt;/li&gt;&lt;li&gt;Default template for receipt is almost done.&lt;/li&gt;&lt;li&gt;Orderlist for pausedorders is done&lt;/li&gt;&lt;li&gt;OrderList for archivedorders partially done&lt;/li&gt;&lt;li&gt;Lots of bug fixes.&lt;/li&gt;&lt;/ul&gt;And because a picture says more than a lot of words:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://bp3.blogger.com/_WF_AceEmS9o/R87ZAx8UVcI/AAAAAAAAAD4/r9PLks6gFLg/s1600-h/photo-706673.jpg"&gt;&lt;img src="http://bp3.blogger.com/_WF_AceEmS9o/R87ZAx8UVcI/AAAAAAAAAD4/r9PLks6gFLg/s320/photo-706673.jpg" alt="" id="BLOGGER_PHOTO_ID_5174311629324834242" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6891977237243516889?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6891977237243516889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/03/i-caught-nasty-cold.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6891977237243516889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6891977237243516889'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/03/i-caught-nasty-cold.html' title='I caught a nasty cold. :-/'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_WF_AceEmS9o/R87ZAx8UVcI/AAAAAAAAAD4/r9PLks6gFLg/s72-c/photo-706673.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-6879456657298118284</id><published>2008-02-26T09:00:00.003+01:00</published><updated>2008-02-26T09:18:37.990+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='barcode'/><category scheme='http://www.blogger.com/atom/ns#' term='receipt'/><title type='text'>Status of the hardware integration</title><content type='html'>Last night I spend a couple of hours writing some Java code for handling the Receipt printer and the barcode reader. And here is the status:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Receipt printer:&lt;/span&gt;&lt;br /&gt;It works! :-) I started out going for the "big" solution using Apache FOP and all that, but after some time I decided to go fore a more simple implementation. I means no templating at this point - at most fonts and logo can be changed. The benefit is that it was done in about 2 hours and the API is very easy to use(like in "PrintFacade.printReceipt(invoice);")&lt;br /&gt;&lt;br /&gt;I dont do any setup on the printer. I take it that the printer has been setup as it should be via the systems print service(fx. CUPS)  and set as the default printer. Later on I will make it possible to choose which printer, but for now I just use the default one.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Cash drawer:&lt;/span&gt;&lt;br /&gt;This was an easy task. Plugged it into the printer and i worked - even with the default printer settings. When a receipt is printed the drawer opens.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Barcode reader:&lt;br /&gt;&lt;/span&gt;The barcode reader emulates a keyboard. It makes it very simple to read the data. The firstobstacle, however, was how to implement a "global" keyevent listener. I want to be able to receive a barcode reading no matter which dialog I am at in the application.&lt;br /&gt;&lt;br /&gt;I found out that its possible to implement a KeyEventDispatcher and add it to the default KeyboardFocusManager. I will use this to implement "barcodelisteners" making it possible to receive events upon barcode reads.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-6879456657298118284?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/6879456657298118284/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/status-of-hardware-integration.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6879456657298118284'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/6879456657298118284'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/status-of-hardware-integration.html' title='Status of the hardware integration'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5986504437155636071</id><published>2008-02-25T14:44:00.002+01:00</published><updated>2008-02-25T14:48:54.900+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='star tsp143'/><category scheme='http://www.blogger.com/atom/ns#' term='hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='symbol 2208'/><category scheme='http://www.blogger.com/atom/ns#' term='star tsp100'/><title type='text'>Testing hardware</title><content type='html'>I received some of the hardware the other day - the printer, scanner and cashdrawer.&lt;br /&gt;So now its time for some fun developing. :-)&lt;br /&gt;&lt;br /&gt;Im planning on having barcode reading and simple receiptprinting ready tonight.&lt;br /&gt;&lt;br /&gt;Here is some pictures of the scanner and printer:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.timeclockplus.com/images/products/hardware/symbol2208_189x300.gif"&gt;&lt;img style="cursor: pointer; width: 246px; height: 371px;" src="http://www.timeclockplus.com/images/products/hardware/symbol2208_189x300.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.nurol.com/claycart/images/STAR_TSP100-5L.jpg"&gt;&lt;img style="cursor: pointer; width: 273px; height: 271px;" src="http://www.nurol.com/claycart/images/STAR_TSP100-5L.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5986504437155636071?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5986504437155636071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/testing-hardware.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5986504437155636071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5986504437155636071'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/testing-hardware.html' title='Testing hardware'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5652277904872289273</id><published>2008-02-17T22:03:00.003+01:00</published><updated>2008-02-17T22:15:12.592+01:00</updated><title type='text'>Firewall-penetrating network ready.</title><content type='html'>This afternoon I decided to try out XMPP as a network between the stores. It required that an employee is able to look up stocks etc. in other stores.&lt;br /&gt;&lt;br /&gt;The problem with this has been having a reliable setup for this, which also wont require a lot of manual work(setting up routers etc.).&lt;br /&gt;&lt;br /&gt;Using the &lt;a href="http://www.igniterealtime.org/projects/smack/index.jsp"&gt;Smack API&lt;/a&gt; I have developed a client-server solution which uses the Intent/Outcome style already in use by Qash Retail and converted into JSON under transportation like promoted by &lt;a href="http://freemote.blogspot.com"&gt;Freemote&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The API for this client-server solution is plain simple.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Server&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:78%;"  &gt;ConnectionConfiguration conf = new ConnectionConfiguration("talk.google.com", 5222, "gmail.com");&lt;br /&gt;           XMPPConnection connection = new XMPPConnection(conf);&lt;br /&gt;           connection.connect();&lt;br /&gt;           connection.login("&lt;gtalk-id&gt;", "&lt;password&gt;");&lt;br /&gt;&lt;br /&gt;           IntentServerManager manager = IntentServerManager.getIntentServerManager(connection, new IntentListener() {&lt;br /&gt;&lt;br /&gt;               public Outcome processIntent(Intent intent) {&lt;br /&gt;                   return new Outcome(Result.Ok);&lt;br /&gt;               }&lt;br /&gt;           });&lt;/password&gt;&lt;/gtalk-id&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Client&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:78%;"  &gt;            ConnectionConfiguration conf = new ConnectionConfiguration("talk.google.com", 5222, "gmail.com");&lt;br /&gt;           XMPPConnection connection = new XMPPConnection(conf);&lt;br /&gt;           connection.connect();&lt;br /&gt;           &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:78%;"  &gt;connection.login("&lt;gtalk-id&gt;", "&lt;password&gt;");&lt;/password&gt;&lt;/gtalk-id&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:78%;"  &gt;&lt;br /&gt;           Intent intent = new Intent();&lt;br /&gt;           intent.setAction("qash.action.QuantityInStock");&lt;br /&gt;           IntentClientManager manager = IntentClientManager.getIntentManager(connection);&lt;br /&gt;           manager.sendIntent("jabberid", intent);&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5652277904872289273?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5652277904872289273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/firewall-penetrating-network-ready.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5652277904872289273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5652277904872289273'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/firewall-penetrating-network-ready.html' title='Firewall-penetrating network ready.'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-9137675247759476297</id><published>2008-02-16T17:54:00.005+01:00</published><updated>2008-02-16T17:57:38.355+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Added link directly into view of recent changes</title><content type='html'>Just a small post to let everybody know that I &lt;a href="http://code.google.com/p/qash/source/list"&gt;added a link&lt;/a&gt; to the right on this blog - directly to recent changes in the code. If you're fluent in Java, then check it out.&lt;br /&gt;&lt;br /&gt;It'll give you a good idea of the pace the development is going at.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-9137675247759476297?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/9137675247759476297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/added-link-directly-into-view-of-recent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/9137675247759476297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/9137675247759476297'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/added-link-directly-into-view-of-recent.html' title='Added link directly into view of recent changes'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-2152764163823197297</id><published>2008-02-15T23:39:00.001+01:00</published><updated>2008-02-16T08:54:08.602+01:00</updated><title type='text'>Killing time in the airport</title><content type='html'>Im sitting in the airport, waiting for my wife. And they have free &lt;br /&gt;wifi. ;)&lt;p&gt;While killing time i found this:&lt;br /&gt;&lt;a href="http://barcode4j.sourceforge.net/"&gt;http://barcode4j.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;- Michael Krog&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-2152764163823197297?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/2152764163823197297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/killing-time-in-airport.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/2152764163823197297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/2152764163823197297'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/killing-time-in-airport.html' title='Killing time in the airport'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-3395989950854896083</id><published>2008-02-15T22:13:00.005+01:00</published><updated>2008-02-25T09:22:42.906+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='pos'/><category scheme='http://www.blogger.com/atom/ns#' term='receipt'/><title type='text'>Printing receipts</title><content type='html'>Was I in for a treat or what? I spent a couple of hours this afternoon, trying to learn &lt;a href="http://java.sun.com/j2se/1.5.0/docs/guide/jps/"&gt;Java's printing API&lt;/a&gt;. Seems it's a part of Java that is not that well documented.&lt;br /&gt;&lt;br /&gt;Well. I had some success. I even succeded in converting an &lt;a href="http://xmlgraphics.apache.org/"&gt;xsl-fo document&lt;/a&gt; into postscript and printing that, which is an awesome setup for templated receipts.&lt;br /&gt;&lt;br /&gt;But(always a but).. Then I discovered that receiptprinters just dont follow the normal standard(or so it seems). I havent found any that is supported by standard Java printing API, and I dont understand how it would either, as&lt;br /&gt;a receipt print never has a size of the printout until the printing is done - and its needed in the Java Printing API BEFORE the printing starts.&lt;br /&gt;&lt;br /&gt;Luckily some of the printers (fx. &lt;a href="http://www.futureprnt.com/en/poweredusb"&gt;Star Microtronics TSP100&lt;/a&gt;) comes with driver for JavaPOS and/or just plain Java API.&lt;br /&gt;&lt;br /&gt;Oh..  And searching on the salespanel was fixed today. Uses some neat regular expressions.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE&lt;br /&gt;&lt;/span&gt;And then again. I just received the Star Microtronics TSP100 which comes with  a cups-driver for Linux(and also drivers for Mac and Windows). Using this driver it should be possible to use standard Java Printing. I'll look into it tonight.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-3395989950854896083?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/3395989950854896083/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/printing-receipts.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/3395989950854896083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/3395989950854896083'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/printing-receipts.html' title='Printing receipts'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-7823827726139080499</id><published>2008-02-15T09:32:00.003+01:00</published><updated>2008-02-26T09:22:12.707+01:00</updated><title type='text'>Sales view almost done</title><content type='html'>So more &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;work&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;went&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;into&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;the&lt;/span&gt; Sales &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;view&lt;/span&gt; last &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;night.&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;This&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;makes&lt;/span&gt; it &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_8"&gt;almost&lt;/span&gt; feature &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_9"&gt;complete.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_10"&gt;now&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_11"&gt;only&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_12"&gt;lacks&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_13"&gt;this&lt;/span&gt;:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_14"&gt;Reciept&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_15"&gt;printing&lt;/span&gt; support (Started - &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_16"&gt;Need&lt;/span&gt; a real &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_17"&gt;reciept&lt;/span&gt; printer for test)  &lt;span style="font-weight: bold;"&gt;(DONE)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Better &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_18"&gt;search&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_19"&gt;among&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_20"&gt;items.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;(DONE)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_21"&gt;Polishing&lt;/span&gt; look and &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_22"&gt;feel&lt;/span&gt; (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_23"&gt;Code&lt;/span&gt; for &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_24"&gt;renderers&lt;/span&gt; is done)&lt;/li&gt;&lt;li&gt;Bar &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_25"&gt;code&lt;/span&gt; scanner support&lt;/li&gt;&lt;li&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_26"&gt;Cash&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_27"&gt;drawer&lt;/span&gt; support &lt;span style="font-weight: bold;"&gt;(DONE)&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-7823827726139080499?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/7823827726139080499/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/sales-view-almost-done.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7823827726139080499'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7823827726139080499'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/sales-view-almost-done.html' title='Sales view almost done'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-4444947434996682004</id><published>2008-02-15T09:20:00.002+01:00</published><updated>2008-02-15T09:24:43.649+01:00</updated><title type='text'>Solution for Media handling in Retail Stores (Video/Music)</title><content type='html'>Some day in the future Qash Retail will get the ability to control music in the store and perhaps video showing on well placed screens.&lt;br /&gt;&lt;br /&gt;But I had yet to descide how to control it. It must be possible to control it directly from Qash Retail, see what is playing etc. &lt;a href="http://freemote.blogspot.com/"&gt;Freemote&lt;/a&gt; will make this happen.&lt;br /&gt;&lt;br /&gt;It is a project in its early stages, but the flexibility of the API will make almost any remote controlling possible.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-4444947434996682004?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/4444947434996682004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/solution-for-media-handling-in-retail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4444947434996682004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4444947434996682004'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/solution-for-media-handling-in-retail.html' title='Solution for Media handling in Retail Stores (Video/Music)'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-4547550517294354281</id><published>2008-02-13T18:40:00.003+01:00</published><updated>2008-02-14T11:03:45.540+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><category scheme='http://www.blogger.com/atom/ns#' term='swingx'/><category scheme='http://www.blogger.com/atom/ns#' term='refactoring'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><title type='text'>Everything is better after refactoring</title><content type='html'>As you may have noticed in my earlier posts I did some refactoring the last couple of days. This refactoring has made the Qash Retail application a lot more flexible and it is now a lot easier to write new plugins from scratch.&lt;br /&gt;&lt;br /&gt;It has inherited the "Start-Activity-By-Intent" idea originally from Android. It is really cool. It still needs a lot of testing, but its already a lot easier to separate stuff. Actually Qash Retail contains no activities now. All activities are available through plugins - even the main menu.&lt;br /&gt;&lt;br /&gt;I did loose a bit of the design during the refactoring because I decided to trash most of the custom look and feel I had done, and instead find a suitable look and feel and then use Painters from SwingX for the rest of the looks.&lt;br /&gt;&lt;br /&gt;It now looks like this(though it will change a bit):&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_WF_AceEmS9o/R7MtA0F_PUI/AAAAAAAAADE/1bEEnn9I8AA/s1600-h/Screenshot-Qash.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_WF_AceEmS9o/R7MtA0F_PUI/AAAAAAAAADE/1bEEnn9I8AA/s400/Screenshot-Qash.png" alt="" id="BLOGGER_PHOTO_ID_5166522689531100482" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-4547550517294354281?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/4547550517294354281/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/everything-is-better-after-refactoring.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4547550517294354281'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4547550517294354281'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/everything-is-better-after-refactoring.html' title='Everything is better after refactoring'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_WF_AceEmS9o/R7MtA0F_PUI/AAAAAAAAADE/1bEEnn9I8AA/s72-c/Screenshot-Qash.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5711007452798441316</id><published>2008-02-09T19:57:00.001+01:00</published><updated>2008-02-09T23:09:10.495+01:00</updated><title type='text'>Example of bloatness</title><content type='html'>After just a quick cleanup, this is my svn status for Qash Retail:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family: courier new;"&gt;M      plugins/Qash_Base_Plugin.jar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;M      plugins/Qash_Sales_Plugin.jar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailPanel.form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/qpclient&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/event&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/panels/input&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;M      src/apaq/qash/panels/MainMenuPanel.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailApplet.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailForm.form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/swing/QashTableUI.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/swing/BlackButton.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;M      src/apaq/qash/swing/actions/ItemListAction.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailPanel.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/handlers&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailForm.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailApplet.form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/QashRetailApplet.html&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;M      src/apaq/qash/base/dialogs/customer/SearchCustomerDialog.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/renderers/UITest.form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/renderers/UITest.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/delegates&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/delegates/QashMenuButtonUI.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/delegates/buttons&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/delegates/buttons/ImageComponent.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/ui/delegates/buttons/ControlPanelButton.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/base/plugin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/coplanclient&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/coplanclient/http&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/coplanclient/dummy&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/coplanclient/CompanyFactory.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/util/TestForm.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;M      src/apaq/qash/util/PanelNavigator.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/util/TestForm.form&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: courier new;"&gt;D      src/apaq/qash/util/Calculation.java&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It really needed it! :-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:&lt;/span&gt;&lt;br /&gt;Even more cleaning :-)&lt;br /&gt;&lt;span style="font-family: courier new;font-size:78%;" &gt;M      src/apaq/qash/dialogs/ControlPanel.java&lt;br /&gt;M      src/apaq/qash/dialogs/ControlPanel.form&lt;br /&gt;M      src/apaq/qash/panels/MainMenuPanel.java&lt;br /&gt;M      src/apaq/qash/panels/SearchTable.java&lt;br /&gt;A  +   src/apaq/qash/Messages_da_DK.properties&lt;br /&gt;A  +   src/apaq/qash/swing/ToolbarLayout.java&lt;br /&gt;A  +   src/apaq/qash/swing/QashTableCellRenderer.java&lt;br /&gt;A  +   src/apaq/qash/swing/ToolbarButton.java&lt;br /&gt;M      src/apaq/qash/MainForm.java&lt;br /&gt;M      src/apaq/qash/Retail.java&lt;br /&gt;A  +   src/apaq/qash/Messages.properties&lt;br /&gt;A      src/apaq/qash/events&lt;br /&gt;A  +   src/apaq/qash/events/ItemActionListener.java&lt;br /&gt;A  +   src/apaq/qash/events/QashMenuEvent.java&lt;br /&gt;A  +   src/apaq/qash/events/QashMenuListener.java&lt;br /&gt;A  +   src/apaq/qash/events/ItemActionEvent.java&lt;br /&gt;A      src/apaq/qash/config&lt;br /&gt;A  +   src/apaq/qash/config/ConfigurationKey.java&lt;br /&gt;A  +   src/apaq/qash/config/ConfigurationManager.java&lt;br /&gt;D      src/apaq/qash/base&lt;br /&gt;D      src/apaq/qash/base/input&lt;br /&gt;D      src/apaq/qash/base/input/NumpadPanel.java&lt;br /&gt;D      src/apaq/qash/base/input/NumpadPanel.form&lt;br /&gt;D      src/apaq/qash/base/dialogs&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/AddressBookTableModelColumn.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/AllAddressBookAction.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/SearchCustomerDialog.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/AddressBookTableModel.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/SearchCustomerDialog.form&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/StarShape.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/ContactShape.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/SearchPersonPanel.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/VIPAddressBookAction.java&lt;br /&gt;D      src/apaq/qash/base/dialogs/customer/SearchPersonPanel.form&lt;br /&gt;D      src/apaq/qash/base/toolbar&lt;br /&gt;D      src/apaq/qash/base/toolbar/QashToolbar.java&lt;br /&gt;D      src/apaq/qash/base/toolbar/ToolbarLayout.java&lt;br /&gt;D      src/apaq/qash/base/toolbar/ToolbarButton.java&lt;br /&gt;D      src/apaq/qash/base/events&lt;br /&gt;D      src/apaq/qash/base/events/ItemActionListener.java&lt;br /&gt;D      src/apaq/qash/base/events/QashMenuEvent.java&lt;br /&gt;D      src/apaq/qash/base/events/QashMenuListener.java&lt;br /&gt;D      src/apaq/qash/base/events/ItemActionEvent.java&lt;br /&gt;D      src/apaq/qash/base/config&lt;br /&gt;D      src/apaq/qash/base/config/ConfigurationKey.java&lt;br /&gt;D      src/apaq/qash/base/config/ConfigurationManager.java&lt;br /&gt;D      src/apaq/qash/base/ui&lt;br /&gt;D      src/apaq/qash/base/ui/renderers&lt;br /&gt;D      src/apaq/qash/base/ui/renderers/QashTabPanelRenderer.java&lt;br /&gt;D      src/apaq/qash/base/ui/renderers/QashTableCellRenderer.java&lt;br /&gt;D      src/apaq/qash/base/ui/renderers/QuantityHolder.java&lt;br /&gt;D      src/apaq/qash/base/translation&lt;br /&gt;D      src/apaq/qash/base/translation/Messages.properties&lt;br /&gt;D      src/apaq/qash/base/translation/Messages_da_DK.properties&lt;br /&gt;D      src/apaq/qash/util/SplineEditorStarter.java&lt;br /&gt;D      src/apaq/qash/util/Alignment.java&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5711007452798441316?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5711007452798441316/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/example-of-bloatness.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5711007452798441316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5711007452798441316'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/example-of-bloatness.html' title='Example of bloatness'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-4716708635617171056</id><published>2008-02-09T19:39:00.000+01:00</published><updated>2008-02-09T19:45:04.550+01:00</updated><title type='text'>Keep It Simple (KIS)</title><content type='html'>Pheew.&lt;br /&gt;&lt;br /&gt;Just used almost my entire Saturday in cleaning up stuff.&lt;br /&gt;&lt;br /&gt;After I...:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;integrated an Android-based Activity framework.&lt;/li&gt;&lt;li&gt;incorporated some stuff from SwingX.&lt;/li&gt;&lt;li&gt;decided to use more components directly from the look and feel instead of just creating my own.&lt;/li&gt;&lt;/ul&gt;..., I think I might get rid of half the codebase in Qash Retail. It was getting bloated so it was needed.&lt;br /&gt;&lt;br /&gt;I have already commited most of the changes, but I still need to remove the unneeded classes.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-4716708635617171056?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/4716708635617171056/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/keep-it-simple-kis.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4716708635617171056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4716708635617171056'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/keep-it-simple-kis.html' title='Keep It Simple (KIS)'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-4120501257087084050</id><published>2008-02-07T12:12:00.000+01:00</published><updated>2008-02-07T12:15:54.502+01:00</updated><title type='text'>Swingx Painters rulez</title><content type='html'>I have been using a lot of time on making Qash have som nice Swing components. Nice buttons etc.&lt;br /&gt;Then the other day I discoveres what SwingX was all about - and that it included something called painters.&lt;br /&gt;&lt;br /&gt;It is REALLY neat.&lt;br /&gt;Check out &lt;a href="http://developerlife.com/tutorials/?p=140"&gt;this tutorial&lt;/a&gt; and the images.&lt;br /&gt;&lt;br /&gt;It really enables a lot of great GUI potential.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://developerlife.com/tutorials/wp-content/uploads/2007/12/image2.png"&gt;&lt;img style="cursor: pointer; width: 310px; height: 174px;" src="http://developerlife.com/tutorials/wp-content/uploads/2007/12/image2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-4120501257087084050?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/4120501257087084050/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/swingx-painters-rulez.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4120501257087084050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/4120501257087084050'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/swingx-painters-rulez.html' title='Swingx Painters rulez'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-2986199705407803754</id><published>2008-02-07T11:58:00.000+01:00</published><updated>2008-02-08T11:43:41.139+01:00</updated><title type='text'>Plugin API change UPDATE</title><content type='html'>So I have almost finished the changes in the plugin API. It is now a lot easier to make a plugin plus the plugins a more reuseable. I took some inspiration of the Android project and implemented "Intents" for switching between views.&lt;br /&gt;&lt;br /&gt;Basicly it means that a "view" implements the Activity interface. When ever an Activity needs to show a new view it creates an Intent of what it wants to do. Say you want to choose an order and the system comes with an Activity to choose an order.&lt;br /&gt;&lt;br /&gt;Then you would create an Intent showing that you want to choose(PICK_ACTION)  an order(content="orders"). Then you use the intent to start the new activity and "BOOM" - its done.&lt;br /&gt;&lt;br /&gt;Code-example(not final API):&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;Intent intent = new Intent(Intent.PICK_ACTION,"orders");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;startActivity(intent);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;Not to hard is it?  :-)&lt;br /&gt;&lt;br /&gt;Well.. Anyways..  When the API is more solid, I will post a small tutorial here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-2986199705407803754?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/2986199705407803754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/02/plugin-api-change-update.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/2986199705407803754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/2986199705407803754'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/02/plugin-api-change-update.html' title='Plugin API change UPDATE'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-9123839658205470067</id><published>2008-01-31T08:54:00.000+01:00</published><updated>2008-01-31T09:20:44.472+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><category scheme='http://www.blogger.com/atom/ns#' term='Code'/><title type='text'>Change in plugin API</title><content type='html'>Im going to change the plugin API in Qash Retail a bit. Why?&lt;br /&gt;&lt;br /&gt;First let me show you an example of how a Qash Retail plugin is created today.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First you need to make a class implement the Activity interface:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;public class NetworkWidget implements Activity {&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &lt;/span&gt;&lt;span style="font-family:courier new;"&gt;public String getName() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return "Name"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public String getDescription() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return "Description";&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public ImageIcon getIcon() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return null;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public JComponent getComponent() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        return new NetworkPanel();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;This is a class that gives basic information about the plugin. But this might be a bit confusing, because the real Activity is the component returned by getComponent(). Which means that we have to do another class that extends JComponent so we can create and return it here.&lt;br /&gt;&lt;br /&gt;Further more to make it all work we need som configuration in the plugin.config(which is in the META-INF package in the jar).&lt;br /&gt;&lt;br /&gt;This is an example of plugin.config:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    id:"qash_base_plugin",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    name:"Qash Base Plugin",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    author:"Michael Krog",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    created-by:"Apaq",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    major-version:0,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    minor-version:1,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    micro-version:0,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    extensions:[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        id:"networksetup",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        class:"apaq.qash.plugin.base.network.NetworkWidget",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        type:"QashRetailControlWidget",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        category:"configuration"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    ]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;This is just plain studip API design from my part. If you think about it both the plugin.config file and the class implementing Activity describes the plugin. All info should be placed in the plugin.config instead.&lt;br /&gt;&lt;br /&gt;After looking into Android, I have seen how much easier it is to create an Android activity, and it is mainly because you have to extend a class instead of implementing an interface. The class you extend gives you access to a lot of cool protected methods.&lt;br /&gt;&lt;br /&gt;To conclude it, the API will change to something like this.&lt;br /&gt;&lt;br /&gt;plugin.config:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    id:"qash_base_plugin",&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    name:"Qash Base Plugin",&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    author:"Michael Krog",&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    created-by:"Apaq",&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    major-version:0,&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    minor-version:1,&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    micro-version:0,&lt;/span&gt;&lt;br /&gt; &lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    extensions:[&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;        id:"networksetup",&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:78%;"&gt;   &lt;span style="font-family:courier new;"&gt;        name:"Name",&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:78%;"&gt;   &lt;span style="font-family:courier new;"&gt;        description:"Description",&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-size:78%;"&gt;   &lt;span style="font-family:courier new;"&gt;        icon:"&lt;url&gt;",&lt;br /&gt;&lt;/url&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;        class:"apaq.qash.plugin.base.network.NetworkActivity",&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;        type:"QashRetailControlWidget",&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;        category:"configuration"&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;        }&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;    ]&lt;/span&gt;&lt;br /&gt;  &lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;And the Activity:&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-family:courier new;"&gt;public class NetworkActivity extends Activity{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public void onCreate(){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        //do initialize&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    public void onStart(){&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;        //do start&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;}&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-9123839658205470067?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/9123839658205470067/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/change-in-plugin-api.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/9123839658205470067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/9123839658205470067'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/change-in-plugin-api.html' title='Change in plugin API'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-7531791984202736593</id><published>2008-01-28T19:07:00.000+01:00</published><updated>2008-01-28T19:37:27.744+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='teaser'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><title type='text'>First video teaser of Qash</title><content type='html'>At last. I made the first video clip of Qash in action. It demonstrates some configuration and the sales picture.&lt;br /&gt;&lt;br /&gt;Give it a look - and a comment if you like.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;object width="320" height="266" class="BLOG_video_class" id="BLOG_video-a11a3ea394e0da76" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="movie" value="http://www.youtube.com/get_player"&gt;&lt;param name="bgcolor" value="#FFFFFF"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;param name="flashvars" value="flvurl=http://v24.nonxt8.googlevideo.com/videoplayback?id%3Da11a3ea394e0da76%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330038096%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D514075F07304C1AF7D35FDE0E93948867051A8BB.133CBD06756F79243C6C4E9C129045AF417958C0%26key%3Dck1&amp;amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da11a3ea394e0da76%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dxfjb2KlJ0qnJ3GSg4uUejhS9AuI&amp;amp;autoplay=0&amp;amp;ps=blogger"&gt;&lt;embed src="http://www.youtube.com/get_player" type="application/x-shockwave-flash"width="320" height="266" bgcolor="#FFFFFF"flashvars="flvurl=http://v24.nonxt8.googlevideo.com/videoplayback?id%3Da11a3ea394e0da76%26itag%3D5%26app%3Dblogger%26ip%3D0.0.0.0%26ipbits%3D0%26expire%3D1330038096%26sparams%3Did,itag,ip,ipbits,expire%26signature%3D514075F07304C1AF7D35FDE0E93948867051A8BB.133CBD06756F79243C6C4E9C129045AF417958C0%26key%3Dck1&amp;iurl=http://video.google.com/ThumbnailServer2?app%3Dblogger%26contentid%3Da11a3ea394e0da76%26offsetms%3D5000%26itag%3Dw160%26sigh%3Dxfjb2KlJ0qnJ3GSg4uUejhS9AuI&amp;autoplay=0&amp;ps=blogger"allowFullScreen="true" /&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-7531791984202736593?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='enclosure' type='video/mp4' href='http://www.blogger.com/video-play.mp4?contentId=a11a3ea394e0da76&amp;type=video%2Fmp4' length='0'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/7531791984202736593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/first-video-teaser-of-qash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7531791984202736593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7531791984202736593'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/first-video-teaser-of-qash.html' title='First video teaser of Qash'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-9112662692218800138</id><published>2008-01-26T16:14:00.000+01:00</published><updated>2008-01-26T16:26:03.216+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='look and feel'/><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='gtk'/><category scheme='http://www.blogger.com/atom/ns#' term='mac os x'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='nimbus'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><category scheme='http://www.blogger.com/atom/ns#' term='bsd'/><category scheme='http://www.blogger.com/atom/ns#' term='solaris'/><title type='text'>Qash will most likely use the Nimbus L&amp;F</title><content type='html'>&lt;a href="http://nimbus.dev.java.net/"&gt;Nimbus&lt;/a&gt; is a really cool look and feel for Java. It looks great and will be cross platform. Furthermore &lt;a href="http://gnome-look.org/content/show.php/Nimbus+%28+Ubuntu+7.10+%29?content=70212"&gt;a GTK theme&lt;/a&gt; is available to, so the systems entirely based on Linux/BSD/Solaris and Java can get a very consistant interface. But the application will still look the same on those not-so-open systems like Mac OS X and Windows.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://nimbus.dev.java.net/spec/images/JTable-Example.png"&gt;&lt;img style="cursor: pointer; width: 400px;" src="https://nimbus.dev.java.net/spec/images/JTable-Example.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-9112662692218800138?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.jasperpotts.com/blog/2007/12/nimbus-large-small-mini-components/trackback/' title='Qash will most likely use the Nimbus L&amp;F'/><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/9112662692218800138/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/qash-will-most-likely-use-nimbus-l.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/9112662692218800138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/9112662692218800138'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/qash-will-most-likely-use-nimbus-l.html' title='Qash will most likely use the Nimbus L&amp;F'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5884758234741086424</id><published>2008-01-26T16:10:00.000+01:00</published><updated>2008-01-27T09:23:08.269+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inkscape'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><title type='text'>Logo is almost there</title><content type='html'>The logo is coming along rather nicely. I borrowed some ideas from the net, fired up &lt;a href="http://www.inkscape.org/"&gt;inkscape&lt;/a&gt;, and badabim-badabom - 2 hours later - there it is.&lt;br /&gt;&lt;br /&gt;Or..  Here it is ! :)  (Click for a larger view)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_WF_AceEmS9o/R5tN9-AVA2I/AAAAAAAAACk/oPyG4xrXXpg/s1600-h/logo.png"&gt;&lt;img style="cursor: pointer;" src="http://bp1.blogger.com/_WF_AceEmS9o/R5tN9-AVA2I/AAAAAAAAACk/oPyG4xrXXpg/s200/logo.png" alt="" id="BLOGGER_PHOTO_ID_5159803525094769506" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5884758234741086424?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5884758234741086424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/logo-is-almost-there.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5884758234741086424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5884758234741086424'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/logo-is-almost-there.html' title='Logo is almost there'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_WF_AceEmS9o/R5tN9-AVA2I/AAAAAAAAACk/oPyG4xrXXpg/s72-c/logo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-7114800790662157538</id><published>2008-01-25T00:18:00.001+01:00</published><updated>2008-09-25T07:53:00.863+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='usplash'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnome'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='logo'/><title type='text'>Featuring uSplash screen for Qash</title><content type='html'>Yesterday I had one of my random surfings through descent linux-related sites.&lt;br /&gt;&lt;a href="http://www.gnome-look.org/"&gt;Gnome-look&lt;/a&gt;, &lt;a href="http://www.kde-look.org/"&gt;KDE-look&lt;/a&gt;, &lt;a href="http://www.linux.com/"&gt;Linux.com&lt;/a&gt;, &lt;a href="http://www.linuxdevices.com/"&gt;Linuxdevices.com&lt;/a&gt; and more.&lt;br /&gt;&lt;br /&gt;A guy had &lt;a href="http://gnome-look.org/content/show.php/MacX+Usplash+Theme?content=73611"&gt;posted a Mac OS X like boot splash&lt;/a&gt; for uSplash. I liked it; I grabbed it. :-)&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp1.blogger.com/_WF_AceEmS9o/R5keVeAVA1I/AAAAAAAAACc/cfAaCCnXM4I/s1600-h/qash.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://bp1.blogger.com/_WF_AceEmS9o/R5keVeAVA1I/AAAAAAAAACc/cfAaCCnXM4I/s320/qash.png" alt="" id="BLOGGER_PHOTO_ID_5159188202310140754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Shortly after I had the image showing here as my boot splash. I thinks it's ok! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-7114800790662157538?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/7114800790662157538/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/featuring-usplash-screen-for-qash.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7114800790662157538'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/7114800790662157538'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/featuring-usplash-screen-for-qash.html' title='Featuring uSplash screen for Qash'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp1.blogger.com/_WF_AceEmS9o/R5keVeAVA1I/AAAAAAAAACc/cfAaCCnXM4I/s72-c/qash.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5396367321725765088</id><published>2008-01-23T13:40:00.000+01:00</published><updated>2008-01-31T09:24:04.402+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='KDE'/><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Macbook'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Finally - I took my time to reinstall!</title><content type='html'>My macbook really needed a fresh Linux installation. It started out as a test of Xubuntu. But i didnt really like it so I added the ubuntu  packages. Then when KDE 4.0 Beta arrived, I added those packages as  well.&lt;p&gt;It has been a mess. :(&lt;/p&gt;&lt;p&gt;So I decided to reinstall. But its a bad time. What I really want is&lt;br /&gt;KDE 4, but not before 4.0.1. Guess I'll do it again in a couple of&lt;br /&gt;months. :)&lt;/p&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:&lt;br /&gt;&lt;/span&gt;Looks like I need to reinstall once more. I used a beta of Ubuntu(the ISO I had) and upgraded the packages. This has caused some stuff not to work properly. Half the times my gfx card will not initialize. And somehow Flash doesnt work. :-(&lt;br /&gt;(When will KDE 4.0.1 arrive?)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5396367321725765088?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5396367321725765088/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/finally-i-took-my-time-to-reinstall.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5396367321725765088'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5396367321725765088'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/finally-i-took-my-time-to-reinstall.html' title='Finally - I took my time to reinstall!'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-670558676918349956</id><published>2008-01-21T18:28:00.000+01:00</published><updated>2008-01-21T18:34:38.937+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='Scene graph'/><category scheme='http://www.blogger.com/atom/ns#' term='Swing'/><category scheme='http://www.blogger.com/atom/ns#' term='Animation'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><title type='text'>Animating via Scene Graph</title><content type='html'>I just took a look at &lt;a href="https://scenegraph.dev.java.net/"&gt;Project Scene Graph&lt;/a&gt;. I looks really awesome.&lt;br /&gt;&lt;br /&gt;It makes it possible to easily animate movements, transparency etc.&lt;br /&gt;of existing Swing components.&lt;br /&gt;&lt;br /&gt;It will be perfect for making some sweet animations in Qash. :-)&lt;br /&gt;An iPhone like animation for the main menu would indeed be nice!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-670558676918349956?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/670558676918349956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/animating-via-scene-graph.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/670558676918349956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/670558676918349956'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/animating-via-scene-graph.html' title='Animating via Scene Graph'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-5629431027696214295</id><published>2008-01-20T18:03:00.000+01:00</published><updated>2008-01-21T12:44:07.020+01:00</updated><title type='text'>Made my first Digg</title><content type='html'>I just did my first Digg. And of course it was about - Qash :)&lt;p&gt;How to celebrate it?&lt;br /&gt;By doing my first mobile blogpost of course!&lt;br /&gt;(from iphone)&lt;/p&gt;&lt;p&gt;You digg it? &lt;a href="http://digg.com/software/Qash_is_an_open_source_POS_system"&gt;Digg it here!&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-5629431027696214295?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/5629431027696214295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/made-my-first-digg.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5629431027696214295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/5629431027696214295'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/made-my-first-digg.html' title='Made my first Digg'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-8488561168095966077</id><published>2008-01-20T17:31:00.000+01:00</published><updated>2008-01-21T12:31:37.361+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><title type='text'>Updates to documentation</title><content type='html'>I finally started creating some real and public documentation for Qash. Until now its only been Javadocs and some internal documents. I have started creating wiki-pages on Qash's google &lt;a href="http://qash.googlecode.com/"&gt;project page&lt;/a&gt;. Take a look. :-)&lt;br /&gt;&lt;br /&gt;It even has a screenshot. Here is a teaser. See a bigger one at the &lt;a href="http://qash.googlecode.com/"&gt;project page&lt;/a&gt;. :-)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://bp3.blogger.com/_WF_AceEmS9o/R5N4ZI7C2JI/AAAAAAAAAAY/aKxYoNHvSTA/s1600-h/MainMenu_b1_thumbnail.png"&gt;&lt;img style="cursor: pointer;" src="http://bp3.blogger.com/_WF_AceEmS9o/R5N4ZI7C2JI/AAAAAAAAAAY/aKxYoNHvSTA/s200/MainMenu_b1_thumbnail.png" alt="" id="BLOGGER_PHOTO_ID_5157598371556546706" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-8488561168095966077?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/8488561168095966077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/updates-to-documentation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8488561168095966077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8488561168095966077'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/updates-to-documentation.html' title='Updates to documentation'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://bp3.blogger.com/_WF_AceEmS9o/R5N4ZI7C2JI/AAAAAAAAAAY/aKxYoNHvSTA/s72-c/MainMenu_b1_thumbnail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1910035575143312395.post-8819403782012665654</id><published>2008-01-19T16:16:00.000+01:00</published><updated>2008-01-20T00:40:51.948+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='introduction'/><category scheme='http://www.blogger.com/atom/ns#' term='CoPlan'/><category scheme='http://www.blogger.com/atom/ns#' term='Qash'/><category scheme='http://www.blogger.com/atom/ns#' term='java6'/><title type='text'>The first post at the Qash blog.</title><content type='html'>This is the first post at this blog. The purpose of this blog is to tell a little about what's going on at the Qash project - the opensource POS.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a starter:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;The project is hosted at http://qash.googlecode.com &lt;/li&gt;&lt;li&gt;Its all written in Java and will support all platforms supported by Java 6. Linux will have most focus though.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Qash consists of the following modules:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;CoPlan&lt;/span&gt;&lt;/div&gt;&lt;div&gt;An interface API whichs implements all logic towards orders, invoices, payments, stock control, accounts and more.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Qash Jdbc Repository&lt;/span&gt;&lt;/div&gt;&lt;div&gt;An implementation of CoPlan that makes i possible to persist all the data within the CoPlan interface to a Jdbc database. Mainly focused on the Derby Database.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Qash Retail&lt;/span&gt;&lt;/div&gt;&lt;div&gt;This is a swing application for Point Of Sales(POS) usage. Its just a shallow shell that loads plugins for the UI. It offers these plugins access to the CoPlan implementation(fx. Qash Jdbc Repository) in use, plugin management, Configuration manager and more. Furthermore it handles the transition between the plugins.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Qash Base Plugin&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Holds the most basic plugins for Qash Retail. Right now that is a plugin for configuring, a ClockWidget for the bottom panel and a widget for showing current connection status for the CoPlan implementation in use.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Qash Sales Plugin&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Holds the plugins related to sale. Actually thats currently 3 "Activities": (1) A sales view with a table over the current order, itemlist and more and (2) a paused order view with a list of orders currently in process and (3) a history of orders, making it possible to traverse through completed orders.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Plugins to come&lt;/span&gt;&lt;/div&gt;&lt;div&gt;In the future the following plugins will be added:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Stock control (Already implemented in CoPlan and Qash Jdbc Repository but needs this UI plugin)&lt;/li&gt;&lt;li&gt;Media control (For controlling a media server that plays music or video in the store)&lt;/li&gt;&lt;li&gt;Customer plugin (For controlling customer lists)&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1910035575143312395-8819403782012665654?l=blog.qash.dk' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.qash.dk/feeds/8819403782012665654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.qash.dk/2008/01/first-post-at-qash-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8819403782012665654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1910035575143312395/posts/default/8819403782012665654'/><link rel='alternate' type='text/html' href='http://blog.qash.dk/2008/01/first-post-at-qash-blog.html' title='The first post at the Qash blog.'/><author><name>Michael Krog</name><uri>http://www.blogger.com/profile/18377747566530907498</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://bp3.blogger.com/_WF_AceEmS9o/R5IikY7C2HI/AAAAAAAAAAM/b7tbwkseex8/S220/SSL21240.JPG'/></author><thr:total>0</thr:total></entry></feed>
