<?xml version="1.0" encoding="utf-8"?><!-- generator="b2evolution/7.2.3-stable" -->
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:admin="http://webns.net/mvcb/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>10x More Productive Blog!</title>
		<link>https://fb2.hu/blogs/x10.php</link>
		<atom:link rel="self" type="application/rss+xml" href="https://fb2.hu/blogs/x10.php?tempskin=_atom" />
		<description>Java, XML, software development, focusing on the WebLogic Platform</description>
		<language>en-EU</language>
		<docs>http://blogs.law.harvard.edu/tech/rss</docs>
		<admin:generatorAgent rdf:resource="http://b2evolution.net/?v=7.2.3-stable"/>
		<ttl>60</ttl>
				<item>
			<title>CEE and the Entertainment Industry</title>
			<link>https://fb2.hu/blogs/x10.php/cee_and_the_entertainment_industry</link>
			<pubDate>Thu, 11 Jun 2009 12:13:25 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Blogpost</category>			<guid isPermaLink="false">806@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;Living in Hungary, which is a country located in Central-Eastern Europe, and being a part of the EU can be such a weird experience.&lt;/p&gt;

&lt;p&gt;Globalization, the internet, outsourcing, trends like these enabled us to work for international companies, allowed us to read sites, magazines, follow blogs like anybody would do in Western Europe. Being the citizen of the European Union, and having access to the same information as anybody else in the EU makes us want to consume the same things. &lt;/p&gt;

&lt;p&gt;Our expectation is to watch movies at the same time we read about them on movie blogs, we would like to purchase games that game sites talk about right now, we&#039;d like to download music that shows up on rollingstone.com, NME or Pitchfork reviews, we&#039;d like to IMPULSE BUY online like anybody else with the same taste and budget.&lt;/p&gt;

&lt;div class=&quot;image_block&quot;&gt;&lt;img src=&quot;http://fb2.hu/blogs/media/users/admin/buy.jpg&quot; alt=&quot;&quot; title=&quot;&quot; width=&quot;300&quot; height=&quot;222&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Not only this is not happening, I don&#039;t even see any trends that would change the situation. The major online music stores like iTunes or Amazon do not sell to CEE countries, console gaming download stores like the XBox Live Marketplace, the Playstation Network Store, or the Wiiware/DSiWare stores from Nintendo do not allow purchase using a Hungarian registration and a Hungarian debit or credit card. We don&#039;t have Amazon Kindle store access. Basically the only major, international entertainment content provider is Apple with a Hungarian AppStore here, only providing iPhone and iPod apps, not music or movies.&lt;/p&gt;

&lt;p&gt;There are many reasons companies use internally or externally about why this is happening, some of them:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Copyright is not managed and controlled centrally within the EU, agreements have to be made with local copyright management groups&lt;/li&gt;
  &lt;li&gt;The standard of living, and with it, entertainment budgets tend to be lower in this region&lt;/li&gt;
  &lt;li&gt;Localization costs money, it takes a budget to create a translated, localized store front, and it costs money to provide support and maintain the sites&lt;/li&gt;
  &lt;li&gt;Piracy is a big issue, people have ample access to movies, music, games for free&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;My opinion is, while these points are valid, in the end, all these companies essentially turn down free money in a globally shrinking economy and a significantly impacted entertainment market. &lt;/p&gt;

&lt;h3&gt;Copyright&lt;/h3&gt;
&lt;p&gt;While the EU is talking about working towards a single copyright solution across the EU, companies should work extra hard to accommodate these new markets, and enable rightful product purchases instead of driving more and more customer generations toward piracy themselves. Force the major content providers (game publishers, major labels) to sign EU-wide publishing contracts for these online stores.&lt;/p&gt;

&lt;h3&gt;Market size&lt;/h3&gt;
&lt;p&gt;The recent recession seems to become an equalizer, wiping out family entertainment budgets worldwide. I suspect this will even out across the EU within a few years. Reuse the marketing budgets, the videos, ad campaigns EU-wide, we don&#039;t expect any specific local messages.&lt;/p&gt;

&lt;h3&gt;Cost of localization&lt;/h3&gt;
&lt;p&gt;Virtually everybody I know who wants to have access to this digital media would be just fine with non-localized store fronts and non-localized content. We all speak English and we&#039;re used to this. Add to the Terms of Service we need to accept that support will only be provided in English or German or whatever, we can deal with it. If the market becomes significant enough, localize things step by step.&lt;/p&gt;

&lt;h3&gt;Piracy&lt;/h3&gt;
&lt;p&gt;Piracy is a classical chicken-and-egg problem across the region. It will obviously not change until we have equal ease of access (and equally reasonable pricing) to legal content. There is no other way to turn the tide: publishers need to provide quality and quantity online, make it possible to buy!&lt;/p&gt;

&lt;p&gt;By ignoring these markets, publishers and online platform providers risk losing new generations of consumers forever. I applaud services available to us, like Valve&#039;s Steam online game store service, the Apple AppStore, and the EU-wide World of Warcraft service. I don&#039;t think it required a major investment from them to accept my Hungarian card. I suggest a similar approach to Sony, Microsoft, Nintendo, Amazon, etc. Just let us give you money!&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/cee_and_the_entertainment_industry&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>Living in Hungary, which is a country located in Central-Eastern Europe, and being a part of the EU can be such a weird experience.</p>

<p>Globalization, the internet, outsourcing, trends like these enabled us to work for international companies, allowed us to read sites, magazines, follow blogs like anybody would do in Western Europe. Being the citizen of the European Union, and having access to the same information as anybody else in the EU makes us want to consume the same things. </p>

<p>Our expectation is to watch movies at the same time we read about them on movie blogs, we would like to purchase games that game sites talk about right now, we'd like to download music that shows up on rollingstone.com, NME or Pitchfork reviews, we'd like to IMPULSE BUY online like anybody else with the same taste and budget.</p>

<div class="image_block"><img src="http://fb2.hu/blogs/media/users/admin/buy.jpg" alt="" title="" width="300" height="222" /></div>

<p>Not only this is not happening, I don't even see any trends that would change the situation. The major online music stores like iTunes or Amazon do not sell to CEE countries, console gaming download stores like the XBox Live Marketplace, the Playstation Network Store, or the Wiiware/DSiWare stores from Nintendo do not allow purchase using a Hungarian registration and a Hungarian debit or credit card. We don't have Amazon Kindle store access. Basically the only major, international entertainment content provider is Apple with a Hungarian AppStore here, only providing iPhone and iPod apps, not music or movies.</p>

<p>There are many reasons companies use internally or externally about why this is happening, some of them:</p>
<ul>
  <li>Copyright is not managed and controlled centrally within the EU, agreements have to be made with local copyright management groups</li>
  <li>The standard of living, and with it, entertainment budgets tend to be lower in this region</li>
  <li>Localization costs money, it takes a budget to create a translated, localized store front, and it costs money to provide support and maintain the sites</li>
  <li>Piracy is a big issue, people have ample access to movies, music, games for free</li>
</ul>

<p>My opinion is, while these points are valid, in the end, all these companies essentially turn down free money in a globally shrinking economy and a significantly impacted entertainment market. </p>

<h3>Copyright</h3>
<p>While the EU is talking about working towards a single copyright solution across the EU, companies should work extra hard to accommodate these new markets, and enable rightful product purchases instead of driving more and more customer generations toward piracy themselves. Force the major content providers (game publishers, major labels) to sign EU-wide publishing contracts for these online stores.</p>

<h3>Market size</h3>
<p>The recent recession seems to become an equalizer, wiping out family entertainment budgets worldwide. I suspect this will even out across the EU within a few years. Reuse the marketing budgets, the videos, ad campaigns EU-wide, we don't expect any specific local messages.</p>

<h3>Cost of localization</h3>
<p>Virtually everybody I know who wants to have access to this digital media would be just fine with non-localized store fronts and non-localized content. We all speak English and we're used to this. Add to the Terms of Service we need to accept that support will only be provided in English or German or whatever, we can deal with it. If the market becomes significant enough, localize things step by step.</p>

<h3>Piracy</h3>
<p>Piracy is a classical chicken-and-egg problem across the region. It will obviously not change until we have equal ease of access (and equally reasonable pricing) to legal content. There is no other way to turn the tide: publishers need to provide quality and quantity online, make it possible to buy!</p>

<p>By ignoring these markets, publishers and online platform providers risk losing new generations of consumers forever. I applaud services available to us, like Valve's Steam online game store service, the Apple AppStore, and the EU-wide World of Warcraft service. I don't think it required a major investment from them to accept my Hungarian card. I suggest a similar approach to Sony, Microsoft, Nintendo, Amazon, etc. Just let us give you money!</p><div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/cee_and_the_entertainment_industry">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/cee_and_the_entertainment_industry#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=806</wfw:commentRss>
		</item>
				<item>
			<title>Day One with Google App Engine</title>
			<link>https://fb2.hu/blogs/x10.php/day_one_with_google_app_engine</link>
			<pubDate>Sat, 12 Apr 2008 21:00:25 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Articles</category>			<guid isPermaLink="false">750@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;I was quite excited to hear about Google&#039;s hosted application platform. I grew somewhat tired of my home project setup, which is PHP/MySQL located at a shared host. The &lt;a href=&quot;http://code.google.com/appengine&quot;&gt;Google App Engine&lt;/a&gt; seems like an ideal environment for me to do some educational hacking, without having to bother with the software and hardware infrastructure, great!&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://code.google.com/appengine/images/appengine_lowres.jpg&quot; alt=&quot;&quot; title=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Although I&#039;ve been looking at Python for a number of years, I&#039;ve never completed a serious project with it. I&#039;d be probably more ready to work with Ruby or even Java. Still, Python does seem to be the right language for the platform. It&#039;s a modern, dynamic language and has an established, extensive set of class libraries for nearly every need. Though only Python-native libraries can be used on the App Engine, there are still thousands of readily available modules to work with.&lt;/p&gt;

&lt;p&gt;It&#039;s interesting how Google customized Python 2.5 for the App Engine to keep it safe and control its resource impact. Threading, spawning sub-processes is disabled, there&#039;s no socket or file access, and each process must terminate within a time limit, otherwise it is shut down. These limitations make sense, they need to keep shared hosting viable. By locking down potentially troublesome areas, it&#039;s not up to the individual developers to manage the resource consumption in check, it&#039;s the safest route. On the other hand, it&#039;ll be interesting to see how seriously this will impact the development of a relatively complex application.&lt;/p&gt;

&lt;p&gt;Although developers can work with a number of native Python Web frameworks, I&#039;ve decided to work with the built-in frameworks, to minimize the hassle of configuring and debugging stuff. It took me about an hour to get the &lt;a href=&quot;http://code.google.com/appengine/downloads.html&quot;&gt;SDK&lt;/a&gt;, install it, and watch the demonstation video. This is what I&#039;ve achieved in about 4-5 hours of hacking afterwards:&lt;/p&gt;

&lt;h4&gt;1. Setting up URL Handling&lt;/h4&gt;

&lt;p&gt;I&#039;ve structured my web application into three separate sites, under three URLs, one area for public access, one back-end site for authoring, and one administrative website. I needed to configure the web application to handle these separately. &lt;/p&gt;

&lt;p&gt;There are two discrete layers where URLs are handled. The initial configuration is managed in the &lt;em&gt;app.yaml&lt;/em&gt; application configuration file, like this:&lt;br /&gt;
&lt;code&gt;&lt;br /&gt;
- url: /index\.html&lt;br /&gt;
  script: home.py&lt;/code&gt;&lt;/p&gt;

- url: /admin/.*&lt;br /&gt;admin.py&lt;br /&gt;
  login: admin&lt;br /&gt;

&lt;p&gt;This maps specific URL patterns to the Python scripts that will handle them, and configures authentication as well. It&#039;s fantastic just to declare the login attribute, and get the whole login, logout, registration process from Google Accounts.&lt;/p&gt;

&lt;p&gt;Developers are able to fully configure URL handling in the yaml file, however it makes sense to dispatch the individual Actions users can do on the specific area of the site through the provided Python WSGI framework. After the request is routed based on the URL pattern, the Python script where the request was routed to is able to process the request further, and instantiate specific classes for specific operations.&lt;/p&gt;
&lt;div class=&quot;image_block&quot;&gt;&lt;img src=&quot;http://fb2.hu/blogs/media/users/admin/gap_dispatch.png&quot; alt=&quot;Dispatching requests&quot; title=&quot;&quot; width=&quot;527&quot; height=&quot;196&quot; /&gt;&lt;/div&gt;
&lt;p&gt;In this example, the /author URL pattern is mapped to &lt;em&gt;author.py&lt;/em&gt;, and within the &lt;em&gt;author.py&lt;/em&gt; file, the actions are dispatched to individual classes (which can be implemented in external modules, or within the main .py file).&lt;/p&gt;

&lt;h4&gt;2. Displaying content, templates&lt;/h4&gt;
&lt;p&gt;Once the requests are dispatched to classes, the &lt;em&gt;post&lt;/em&gt; or &lt;em&gt;get&lt;/em&gt; functions are called on the class, depending on the type of HTTP request. Not surprisingly the function will have access to all the request variables, and will be able to output the response through a simple &lt;em&gt;self.response.out.write()&lt;/em&gt; function. Any reasonable complex web application will probably need more than that. Instead of developing yet another web templating application, Google decided to bundle the (quite decent) templating module from the Django framework.&lt;/p&gt;

&lt;div class=&quot;image_block&quot;&gt;&lt;img src=&quot;http://fb2.hu/blogs/media/users/admin/gap_handle.png&quot; alt=&quot;Template handling&quot; title=&quot;&quot; width=&quot;623&quot; height=&quot;166&quot; /&gt;&lt;/div&gt;

&lt;p&gt;Basically you can set the dynamic data into variables, and pass them into a HTML template through this framework. Within the template, lists can be iterated, there are conditional expressions available, and you can even invoke functions.&lt;/p&gt;

&lt;div class=&quot;image_block&quot;&gt;&lt;img src=&quot;http://fb2.hu/blogs/media/users/admin/gap_html.png&quot; alt=&quot;HTML example&quot; title=&quot;&quot; width=&quot;404&quot; height=&quot;190&quot; /&gt;&lt;/div&gt;

&lt;p&gt;It&#039;s not a tag-based template engine, but it&#039;s quite easy to read and author.&lt;/p&gt;

&lt;h4&gt;3. Working with the datastore&lt;/h4&gt;

&lt;p&gt;One unique aspect of the Google App Engine is that Google&#039;s &lt;a href=&quot;http://labs.google.com/papers/bigtable.html&quot;&gt;BigTable&lt;/a&gt; platform is provided for persistent storage. This is extremely cool as us developers get the same highly scalable, high-performance data store that many Google Apps use. It is however not a traditional relational database, so I had to read up on it for a while to figure out how to use the API. It is not difficult at all to quickly create Model classes, add various attributes, use the GQL query language to do selects, and create new persistent items through simple put() methods. I&#039;ll however need to spend some more time to understand how to handle relationships by adding ReferenceProperty type attributes to the model classes.&lt;/p&gt;

&lt;p&gt;Overall I don&#039;t think I&#039;ll have problems with the Datastore API, but so far this API had the biggest learning curve for me.&lt;/p&gt;

&lt;h4&gt;4. Deployment, hosting &lt;/h4&gt;
&lt;p&gt;I already had a registered domain for the project I plan to implement on the Google App Engine platform. It took a little while to find the proper docs about how to set it up:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;I had to register the domain within &lt;a href=&quot;http://www.google.com/a/help/intl/en/index.html&quot;&gt;Google Apps for Domains&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;Then once the domain is registered for Google Apps, I needed to configure a verification CNAME within GoDaddy&#039;s TDC management tool.&lt;/li&gt;
  &lt;li&gt;Once the domain works within Google Apps, the App Engine application can be configured to work with the domain through the &lt;a href=&quot;http://appengine.google.com/&quot;&gt;Console&lt;/a&gt;, in the Administration/Version section.&lt;/li&gt;
  &lt;li&gt;The wizard that leads through the process of configuring the domain has one problem - it does not display the additional step required to configure the &quot;A name&quot; for the domain. Luckily I&#039;ve found the &lt;a href=&quot;http://www.google.com/support/a/bin/answer.py?answer=91080&quot;&gt;FAQ&lt;/a&gt; for this.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So I now have a few working pages, querying and persisting data into the Google Datastore, configured for the proper domain. It&#039;s been a blast to work with this. The local development environment is great (which I use with TextMate as an IDE), the documentation and the examples are a decent starting point, and it&#039;s very easy to deploy the code onto the hosted environment. I&#039;ll try to finish this application in the next few weeks, and will report on my progress through &lt;a href=&quot;http://fb2.hu/x10&quot;&gt;this blog&lt;/a&gt;. &lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/day_one_with_google_app_engine&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>I was quite excited to hear about Google's hosted application platform. I grew somewhat tired of my home project setup, which is PHP/MySQL located at a shared host. The <a href="http://code.google.com/appengine">Google App Engine</a> seems like an ideal environment for me to do some educational hacking, without having to bother with the software and hardware infrastructure, great!</p>

<p><img src="http://code.google.com/appengine/images/appengine_lowres.jpg" alt="" title="" /></p>

<p>Although I've been looking at Python for a number of years, I've never completed a serious project with it. I'd be probably more ready to work with Ruby or even Java. Still, Python does seem to be the right language for the platform. It's a modern, dynamic language and has an established, extensive set of class libraries for nearly every need. Though only Python-native libraries can be used on the App Engine, there are still thousands of readily available modules to work with.</p>

<p>It's interesting how Google customized Python 2.5 for the App Engine to keep it safe and control its resource impact. Threading, spawning sub-processes is disabled, there's no socket or file access, and each process must terminate within a time limit, otherwise it is shut down. These limitations make sense, they need to keep shared hosting viable. By locking down potentially troublesome areas, it's not up to the individual developers to manage the resource consumption in check, it's the safest route. On the other hand, it'll be interesting to see how seriously this will impact the development of a relatively complex application.</p>

<p>Although developers can work with a number of native Python Web frameworks, I've decided to work with the built-in frameworks, to minimize the hassle of configuring and debugging stuff. It took me about an hour to get the <a href="http://code.google.com/appengine/downloads.html">SDK</a>, install it, and watch the demonstation video. This is what I've achieved in about 4-5 hours of hacking afterwards:</p>

<h4>1. Setting up URL Handling</h4>

<p>I've structured my web application into three separate sites, under three URLs, one area for public access, one back-end site for authoring, and one administrative website. I needed to configure the web application to handle these separately. </p>

<p>There are two discrete layers where URLs are handled. The initial configuration is managed in the <em>app.yaml</em> application configuration file, like this:<br />
<code><br />
- url: /index\.html<br />
  script: home.py</code></p>

- url: /admin/.*<br />admin.py<br />
  login: admin<br />

<p>This maps specific URL patterns to the Python scripts that will handle them, and configures authentication as well. It's fantastic just to declare the login attribute, and get the whole login, logout, registration process from Google Accounts.</p>

<p>Developers are able to fully configure URL handling in the yaml file, however it makes sense to dispatch the individual Actions users can do on the specific area of the site through the provided Python WSGI framework. After the request is routed based on the URL pattern, the Python script where the request was routed to is able to process the request further, and instantiate specific classes for specific operations.</p>
<div class="image_block"><img src="http://fb2.hu/blogs/media/users/admin/gap_dispatch.png" alt="Dispatching requests" title="" width="527" height="196" /></div>
<p>In this example, the /author URL pattern is mapped to <em>author.py</em>, and within the <em>author.py</em> file, the actions are dispatched to individual classes (which can be implemented in external modules, or within the main .py file).</p>

<h4>2. Displaying content, templates</h4>
<p>Once the requests are dispatched to classes, the <em>post</em> or <em>get</em> functions are called on the class, depending on the type of HTTP request. Not surprisingly the function will have access to all the request variables, and will be able to output the response through a simple <em>self.response.out.write()</em> function. Any reasonable complex web application will probably need more than that. Instead of developing yet another web templating application, Google decided to bundle the (quite decent) templating module from the Django framework.</p>

<div class="image_block"><img src="http://fb2.hu/blogs/media/users/admin/gap_handle.png" alt="Template handling" title="" width="623" height="166" /></div>

<p>Basically you can set the dynamic data into variables, and pass them into a HTML template through this framework. Within the template, lists can be iterated, there are conditional expressions available, and you can even invoke functions.</p>

<div class="image_block"><img src="http://fb2.hu/blogs/media/users/admin/gap_html.png" alt="HTML example" title="" width="404" height="190" /></div>

<p>It's not a tag-based template engine, but it's quite easy to read and author.</p>

<h4>3. Working with the datastore</h4>

<p>One unique aspect of the Google App Engine is that Google's <a href="http://labs.google.com/papers/bigtable.html">BigTable</a> platform is provided for persistent storage. This is extremely cool as us developers get the same highly scalable, high-performance data store that many Google Apps use. It is however not a traditional relational database, so I had to read up on it for a while to figure out how to use the API. It is not difficult at all to quickly create Model classes, add various attributes, use the GQL query language to do selects, and create new persistent items through simple put() methods. I'll however need to spend some more time to understand how to handle relationships by adding ReferenceProperty type attributes to the model classes.</p>

<p>Overall I don't think I'll have problems with the Datastore API, but so far this API had the biggest learning curve for me.</p>

<h4>4. Deployment, hosting </h4>
<p>I already had a registered domain for the project I plan to implement on the Google App Engine platform. It took a little while to find the proper docs about how to set it up:</p>
<ul>
  <li>I had to register the domain within <a href="http://www.google.com/a/help/intl/en/index.html">Google Apps for Domains</a></li>
  <li>Then once the domain is registered for Google Apps, I needed to configure a verification CNAME within GoDaddy's TDC management tool.</li>
  <li>Once the domain works within Google Apps, the App Engine application can be configured to work with the domain through the <a href="http://appengine.google.com/">Console</a>, in the Administration/Version section.</li>
  <li>The wizard that leads through the process of configuring the domain has one problem - it does not display the additional step required to configure the "A name" for the domain. Luckily I've found the <a href="http://www.google.com/support/a/bin/answer.py?answer=91080">FAQ</a> for this.</li>
</ul>

<p>So I now have a few working pages, querying and persisting data into the Google Datastore, configured for the proper domain. It's been a blast to work with this. The local development environment is great (which I use with TextMate as an IDE), the documentation and the examples are a decent starting point, and it's very easy to deploy the code onto the hosted environment. I'll try to finish this application in the next few weeks, and will report on my progress through <a href="http://fb2.hu/x10">this blog</a>. </p><div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/day_one_with_google_app_engine">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/day_one_with_google_app_engine#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=750</wfw:commentRss>
		</item>
				<item>
			<title>BEAWorld experiences</title>
			<link>https://fb2.hu/blogs/x10.php/beaworld_experiences</link>
			<pubDate>Sat, 06 Oct 2007 09:52:41 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Blogpost</category>			<guid isPermaLink="false">722@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;This week I had the chance to travel to Barcelona, as a booth bunny at EPAM&#039;s stand in the Exhibitors area at BEAWorld.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://lh5.google.com/fbalazs/RwZ3a4W_XGI/AAAAAAAAAFo/AC80xiB6YFE/s288/beaworld18.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I&#039;ve been to a San Francisco BEAWorld as well as the one two years ago in London. This one seemed to be smaller in scope and especially the number of exhibitors and partners was significantly less. I guess the Enterprise space has been consolidating and shrinking in the last few years. &lt;/p&gt;

&lt;p&gt;Obviously BEA is buying many of the companies building products and extensions on top of its platforms, like the recent acquisitions around portals (Plumtree), BPM(Fuego), commerce, Voip, etc. The other big vendors (Oracle, SUN, IBM) are also buying up some of the smaller players, which is probably a good thing, a sign of a maturing industry. It does however make a more boring and smaller ecosystem around BEA.&lt;/p&gt;

&lt;p&gt;While mostly I was focusing on talking to visitors, I had some time to sneak into some of the keynotes and presentation sessions throughout the conference. &lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://lh6.google.com/fbalazs/RwZ3MIW_W3I/AAAAAAAAADw/QEeml_MlsQg/s288/beaworld3.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The opening speech by CEO Alfred Cheung I thought was on par with the previous ones. He&#039;s a well-trained, competent but unexciting speaker in my opinion. The only thing that caught my attention was his quite tough rally against enterprise software package solutions, and how these don&#039;t fit the current business environment of rapid change and agility. It makes sense to be aggressive and fight back, as these package vendors (SAP, Oracle, Siebel, etc.) are moving more and more agressively into the platform space, positioning their own portal and BPM platforms, even Java EE containers and SOA frameworks against pure-play platform vendors like BEA. It&#039;s smart to acknowledge this and fight back by relying on a promise of a flexible, adaptable, agile platform.&lt;/p&gt;

&lt;p&gt;The other keynote I was really interested in was by Paul Patrick, Chief Architect of BEA Systems.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;http://lh4.google.com/fbalazs/RwZ3YoW_XDI/AAAAAAAAAFQ/5ECGq_e3bvg/s288/beaworld15.jpg&quot; /&gt;&lt;/p&gt;

&lt;p&gt;He&#039;s BEA&#039;s chief &quot;SOA guy&quot;, coming from the AquaLogic product line into the Chief Architect position. He has an interesting &lt;a href=&quot;http://weblog.infoworld.com/podcasts/2007/07/patrick_prescription/&quot;&gt;podcast series&lt;/a&gt; at InfoWorld (albeit the reading-from-paper type). On his keynote, it was fascinating to listen to the overall architectural strategy, and I&#039;ve learned concepts I&#039;m sure I&#039;ll be able to use in various sales situations. I liked the analogy of &quot;neighborhoods&quot; for distinct logical subsystems in an enterprise, formed around corporate divisions or newly acquired subsidiaries with separate needs and IT infrastructure. BEA&#039;s vision on how to serve these loosely coupled enterprise neighborhoods through a &quot;service fabric&quot; sounds fascinating and tantalizing for large enterprises.&lt;/p&gt;

&lt;p&gt;My biggest worry is BEA&#039;s insistence on providing simplicity through more and more complex product suites and frameworks. It&#039;s great that they realize the need to provide a simpler development and runtime platform for Enterprise SOA development. But layering more and more complex products and frameworks (especially through acquisitions of disparate product suites) creates a new landslide of complexity both in terms of development and deployment. The current &lt;a href=&quot;http://bea.com/framework.jsp?CNT=pr01856.htm&amp;amp;FP=/content/news_events/press_releases/2007&amp;amp;WT.ac=HPM_BEAWorld_Genesis&quot;&gt;&quot;Project Genesis&quot;&lt;/a&gt; vision looks extremely appealing, and the ability to quickly and painlessly assemble and deploy new services makes a fantastic sales demo, but I&#039;m not sure if this complex assembly of ESB, BPM, Portal, Security, &quot;Web 2.0&quot; products will just blend in this seamlessly.&lt;/p&gt;

&lt;p&gt;BEA does have the engineering capabilities to provide a seamless integrated experience for complex problems, WebLogic Workshop 8.1 did prove me that a good few years ago. I have a good opinion on most of the individual products the new strategy will be built on. BEA&#039;s biggest challenge will be to take these different products, make their management, development, deployment interfaces as similar as possible, and to simplify aggressively, even at the cost of losing features. Perhaps moving these products to the new, more lightweight &lt;a href=&quot;http://www.webforefront.com/archives/2007/07/osgi_takes_on_s.html&quot;&gt;OSGi-based Server core&lt;/a&gt; will be the strategy to achieve this.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/beaworld_experiences&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>This week I had the chance to travel to Barcelona, as a booth bunny at EPAM's stand in the Exhibitors area at BEAWorld.</p>

<p><img src="http://lh5.google.com/fbalazs/RwZ3a4W_XGI/AAAAAAAAAFo/AC80xiB6YFE/s288/beaworld18.jpg" /></p>

<p>I've been to a San Francisco BEAWorld as well as the one two years ago in London. This one seemed to be smaller in scope and especially the number of exhibitors and partners was significantly less. I guess the Enterprise space has been consolidating and shrinking in the last few years. </p>

<p>Obviously BEA is buying many of the companies building products and extensions on top of its platforms, like the recent acquisitions around portals (Plumtree), BPM(Fuego), commerce, Voip, etc. The other big vendors (Oracle, SUN, IBM) are also buying up some of the smaller players, which is probably a good thing, a sign of a maturing industry. It does however make a more boring and smaller ecosystem around BEA.</p>

<p>While mostly I was focusing on talking to visitors, I had some time to sneak into some of the keynotes and presentation sessions throughout the conference. </p>

<p><img src="http://lh6.google.com/fbalazs/RwZ3MIW_W3I/AAAAAAAAADw/QEeml_MlsQg/s288/beaworld3.jpg" /></p>

<p>The opening speech by CEO Alfred Cheung I thought was on par with the previous ones. He's a well-trained, competent but unexciting speaker in my opinion. The only thing that caught my attention was his quite tough rally against enterprise software package solutions, and how these don't fit the current business environment of rapid change and agility. It makes sense to be aggressive and fight back, as these package vendors (SAP, Oracle, Siebel, etc.) are moving more and more agressively into the platform space, positioning their own portal and BPM platforms, even Java EE containers and SOA frameworks against pure-play platform vendors like BEA. It's smart to acknowledge this and fight back by relying on a promise of a flexible, adaptable, agile platform.</p>

<p>The other keynote I was really interested in was by Paul Patrick, Chief Architect of BEA Systems.</p>

<p><img src="http://lh4.google.com/fbalazs/RwZ3YoW_XDI/AAAAAAAAAFQ/5ECGq_e3bvg/s288/beaworld15.jpg" /></p>

<p>He's BEA's chief "SOA guy", coming from the AquaLogic product line into the Chief Architect position. He has an interesting <a href="http://weblog.infoworld.com/podcasts/2007/07/patrick_prescription/">podcast series</a> at InfoWorld (albeit the reading-from-paper type). On his keynote, it was fascinating to listen to the overall architectural strategy, and I've learned concepts I'm sure I'll be able to use in various sales situations. I liked the analogy of "neighborhoods" for distinct logical subsystems in an enterprise, formed around corporate divisions or newly acquired subsidiaries with separate needs and IT infrastructure. BEA's vision on how to serve these loosely coupled enterprise neighborhoods through a "service fabric" sounds fascinating and tantalizing for large enterprises.</p>

<p>My biggest worry is BEA's insistence on providing simplicity through more and more complex product suites and frameworks. It's great that they realize the need to provide a simpler development and runtime platform for Enterprise SOA development. But layering more and more complex products and frameworks (especially through acquisitions of disparate product suites) creates a new landslide of complexity both in terms of development and deployment. The current <a href="http://bea.com/framework.jsp?CNT=pr01856.htm&amp;FP=/content/news_events/press_releases/2007&amp;WT.ac=HPM_BEAWorld_Genesis">"Project Genesis"</a> vision looks extremely appealing, and the ability to quickly and painlessly assemble and deploy new services makes a fantastic sales demo, but I'm not sure if this complex assembly of ESB, BPM, Portal, Security, "Web 2.0" products will just blend in this seamlessly.</p>

<p>BEA does have the engineering capabilities to provide a seamless integrated experience for complex problems, WebLogic Workshop 8.1 did prove me that a good few years ago. I have a good opinion on most of the individual products the new strategy will be built on. BEA's biggest challenge will be to take these different products, make their management, development, deployment interfaces as similar as possible, and to simplify aggressively, even at the cost of losing features. Perhaps moving these products to the new, more lightweight <a href="http://www.webforefront.com/archives/2007/07/osgi_takes_on_s.html">OSGi-based Server core</a> will be the strategy to achieve this.</p><div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/beaworld_experiences">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/beaworld_experiences#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=722</wfw:commentRss>
		</item>
				<item>
			<title>Scott Guthrie audio interview from Microsoft REMix'07</title>
			<link>https://fb2.hu/blogs/x10.php/scott_guthrie_audio_interview_from_micro_07</link>
			<pubDate>Sun, 17 Jun 2007 14:55:59 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Blogpost</category>			<guid isPermaLink="false">703@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;We don&#039;t really have many developer-focused conferences here in Budapest, so even though I&#039;m more of a Java/Ruby/Open Source guy, I was really psyched to visit the Microsoft REMix&#039;07 conference.&lt;/p&gt;

&lt;p&gt;Not only I had a good time at the main event, I was lucky enough to have an open discussion with one of the key .NET guys at Microsoft, &lt;a href=&quot;http://www.scottgu.com/&quot;&gt;Scott Guthrie&lt;/a&gt;. The focus of the conference as well as our discussion was the recently unleashed Silverlight browser plug-in from Microsoft.&lt;/p&gt;

&lt;p&gt;I&#039;ve recorded about an hour&#039;s worth of a really interesting, engaging discussion with Scott, who is the GM for the Developer Division at Microsoft, &lt;a href=&quot;http://metaliq.com/portfolio/silverlight.html&quot;&gt;Beau Ambur&lt;/a&gt; from Metaliq, and &lt;a href=&quot;http://blogs.msdn.com/petel/&quot;&gt;Pete LePage&lt;/a&gt;, a Microsoft Product Manager for Internet Explorer.&lt;/p&gt;

&lt;p&gt;Although I did not have the chance to unpack and build up my &quot;proper&quot; audio recording kit, I think the recorded audio is good enough, I&#039;d recommend anyone interested in Web technologies to have a listen.&lt;/p&gt;

&lt;p&gt;Here&#039;s &lt;a href=&quot;http://feeds.feedburner.com/tentimes&quot;&gt;Part 1&lt;/a&gt; of the discussion, where we&#039;re talking about:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;Scott&#039;s blogging habit, cats, wives&lt;/li&gt;
  &lt;li&gt;Silverlight - is it a replacement for HTML?&lt;/li&gt;
  &lt;li&gt;Why would I select Silverlight vs. Flash&lt;/li&gt;
  &lt;li&gt;Silverlight 1.0 as a media platform, what&#039;s coming up in 1.1&lt;/li&gt;
  &lt;li&gt;LINQ as a query API, is it &quot;The One&quot; data access API?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;embed style=&quot;width:220px; height:160px;&quot; 
id=&quot;FeedPlayerAudioSlim&quot; 
align=&quot;middle&quot; 
type=&quot;application/x-shockwave-flash&quot; 
src=&quot;http://www.bigcontact.com/feedplayer-slim.swf?r=1&amp;amp;xmlurl=http%3A%2F%2Ffeeds%252efeedburner%252ecom%2Ftentimes&quot; 
quality=&quot;best&quot; 
bgcolor=&quot;#ffffff&quot; 
scale=&quot;noScale&quot; 
wmode=&quot;window&quot; 
salign=&quot;TL&quot;  
FlashVars=&quot;initialview=menu&amp;amp;autoplay=no&amp;amp;standalone=no&amp;amp;share=yes&amp;amp;repeat=no&quot; /&gt;  &lt;br /&gt;&lt;/p&gt;

&lt;p&gt;As time permits, in the next few days I&#039;m going to edit the other 2 or so segments and make it available here. You can subscribe to my podcast feed at &lt;a href=&quot;http://feeds.feedburner.com/tentimes&quot;&gt;feeds.feedburner.com/tentimes&lt;/a&gt; to get the other segments automatically.&lt;/p&gt;


&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/scott_guthrie_audio_interview_from_micro_07&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>We don't really have many developer-focused conferences here in Budapest, so even though I'm more of a Java/Ruby/Open Source guy, I was really psyched to visit the Microsoft REMix'07 conference.</p>

<p>Not only I had a good time at the main event, I was lucky enough to have an open discussion with one of the key .NET guys at Microsoft, <a href="http://www.scottgu.com/">Scott Guthrie</a>. The focus of the conference as well as our discussion was the recently unleashed Silverlight browser plug-in from Microsoft.</p>

<p>I've recorded about an hour's worth of a really interesting, engaging discussion with Scott, who is the GM for the Developer Division at Microsoft, <a href="http://metaliq.com/portfolio/silverlight.html">Beau Ambur</a> from Metaliq, and <a href="http://blogs.msdn.com/petel/">Pete LePage</a>, a Microsoft Product Manager for Internet Explorer.</p>

<p>Although I did not have the chance to unpack and build up my "proper" audio recording kit, I think the recorded audio is good enough, I'd recommend anyone interested in Web technologies to have a listen.</p>

<p>Here's <a href="http://feeds.feedburner.com/tentimes">Part 1</a> of the discussion, where we're talking about:</p>
<ul>
  <li>Scott's blogging habit, cats, wives</li>
  <li>Silverlight - is it a replacement for HTML?</li>
  <li>Why would I select Silverlight vs. Flash</li>
  <li>Silverlight 1.0 as a media platform, what's coming up in 1.1</li>
  <li>LINQ as a query API, is it "The One" data access API?</li>
</ul>

<p><embed style="width:220px; height:160px;" 
id="FeedPlayerAudioSlim" 
align="middle" 
type="application/x-shockwave-flash" 
src="http://www.bigcontact.com/feedplayer-slim.swf?r=1&amp;xmlurl=http%3A%2F%2Ffeeds%252efeedburner%252ecom%2Ftentimes" 
quality="best" 
bgcolor="#ffffff" 
scale="noScale" 
wmode="window" 
salign="TL"  
FlashVars="initialview=menu&amp;autoplay=no&amp;standalone=no&amp;share=yes&amp;repeat=no" />  <br /></p>

<p>As time permits, in the next few days I'm going to edit the other 2 or so segments and make it available here. You can subscribe to my podcast feed at <a href="http://feeds.feedburner.com/tentimes">feeds.feedburner.com/tentimes</a> to get the other segments automatically.</p>


<div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/scott_guthrie_audio_interview_from_micro_07">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/scott_guthrie_audio_interview_from_micro_07#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=703</wfw:commentRss>
		</item>
				<item>
			<title>Silverlight will burn your retina</title>
			<link>https://fb2.hu/blogs/x10.php/silverlight_will_burn_your_retina</link>
			<pubDate>Wed, 02 May 2007 12:36:18 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Blogpost</category>			<guid isPermaLink="false">691@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;With all these recent announcements (Microsoft&#039;s Silverlight, and Adobe&#039;s Flex push), I have the following vision of &quot;The Web&quot; for the next 2 years or so:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Every self-described designer and web developer will have a powerful toolset to design and implement highly dynamic, rich UI with animations and video for the web&lt;/li&gt;
  &lt;li&gt;These new websites will look like those ridiculous &quot;multimedia&quot; CD-ROM products 10 years ago&lt;/li&gt;
  &lt;li&gt;Navigation, bookmarking, linking will not work, it will be inconsistent and badly implemented&lt;/li&gt;
  &lt;li&gt;All the advances of CSS-based, mobile-adaptable, clean XHTML pages will be gone for these new &quot;rich&quot; websites.&lt;/li&gt;
  &lt;li&gt;You&#039;ll have to support your mother and your extended family to troubleshoot broken browser plug-in installations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But this is all OK. Eventually new standards and best practices will emerge, and we will figure out ways to make the new &quot;rich&quot; web experience reasonably consistent and usable.&lt;/p&gt;

&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/silverlight_will_burn_your_retina&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>With all these recent announcements (Microsoft's Silverlight, and Adobe's Flex push), I have the following vision of "The Web" for the next 2 years or so:</p>

<ul>
  <li>Every self-described designer and web developer will have a powerful toolset to design and implement highly dynamic, rich UI with animations and video for the web</li>
  <li>These new websites will look like those ridiculous "multimedia" CD-ROM products 10 years ago</li>
  <li>Navigation, bookmarking, linking will not work, it will be inconsistent and badly implemented</li>
  <li>All the advances of CSS-based, mobile-adaptable, clean XHTML pages will be gone for these new "rich" websites.</li>
  <li>You'll have to support your mother and your extended family to troubleshoot broken browser plug-in installations</li>
</ul>

<p>But this is all OK. Eventually new standards and best practices will emerge, and we will figure out ways to make the new "rich" web experience reasonably consistent and usable.</p>

<div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/silverlight_will_burn_your_retina">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/silverlight_will_burn_your_retina#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=691</wfw:commentRss>
		</item>
				<item>
			<title>Mobile Development With Flash Lite</title>
			<link>https://fb2.hu/blogs/x10.php/mobile_development_with_flash_lite</link>
			<pubDate>Sat, 31 Mar 2007 17:59:18 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Articles</category>			<guid isPermaLink="false">675@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;&lt;a href=&quot;http://fb2.hu/x10/Articles/FlashLiteDev.html&quot;&gt;http://fb2.hu/x10/Articles/FlashLiteDev.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Mobile applications still seem to be just about to happen. Every year there are some great advances in the underlying network, data transfer is faster, devices are smarter, more consumers buy them, and even the providers seem to come up with reasonable data rates. Customer interest seems to be the last (and biggest) battle ground, and this year it’s the iPhone that makes me hope again that people realize the power of the little devices they’re already carrying with them.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://fb2.hu/x10/Articles/FlashLiteDev.html&quot;&gt;Read my article&lt;/a&gt; on how to develop mobile software using Adobe&#039;s Flash Lite mobile platform, and how it compares to other development platforms.&lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/mobile_development_with_flash_lite&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p><a href="http://fb2.hu/x10/Articles/FlashLiteDev.html">http://fb2.hu/x10/Articles/FlashLiteDev.html</a></p><p>Mobile applications still seem to be just about to happen. Every year there are some great advances in the underlying network, data transfer is faster, devices are smarter, more consumers buy them, and even the providers seem to come up with reasonable data rates. Customer interest seems to be the last (and biggest) battle ground, and this year it’s the iPhone that makes me hope again that people realize the power of the little devices they’re already carrying with them.</p>

<p><a href="http://fb2.hu/x10/Articles/FlashLiteDev.html">Read my article</a> on how to develop mobile software using Adobe's Flash Lite mobile platform, and how it compares to other development platforms.</p><div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/mobile_development_with_flash_lite">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/mobile_development_with_flash_lite#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=675</wfw:commentRss>
		</item>
				<item>
			<title>Gesture Description Languages for the Wii, iPhone</title>
			<link>https://fb2.hu/blogs/x10.php/gesture_description_languages_for_the_wi</link>
			<pubDate>Mon, 22 Jan 2007 15:47:01 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Blogpost</category>			<guid isPermaLink="false">657@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;With the recent introduction of the Nintendo Wii and the great iPhone demo on Macworld, I became really curious on how these new gesture-based UIs can be programmed.&lt;/p&gt;

&lt;p&gt;Event-driven UI programming is fairly straight-forward. When the user clicks a button, moves a joystick, or presses the pen down on the surface, your component or event handler receives a message, and usually its type and parameters will be quite straight forward to describe the actual user intention.&lt;/p&gt;

&lt;p&gt;I&#039;m sure it&#039;s much more difficult with both the Wii controller, which has a large number of sensors to capture your arm gestures in 3d space and time, and with the iPhone, which has a multi-touch interface, which must have a much more varied event model than a straight pen-based touch interface.&lt;/p&gt;

&lt;p&gt;On a sensor-level, there&#039;s nothing particularly complex, these sensors will produce some sort of digital reading that&#039;s ready to be analyzed. However there must be some sort of abstraction layer to make it easier to consume than the raw sensor readings. After all, these input devices (the Wiimote and the iPhone multi-touch digitizer) want to capture gestures, not just a particular change on a sensor. The Wii game developer is interested if the player performed a proper throw in the Baseball game, with the proper aim and force, and the iPhone developer wants to know if the user &quot;pinched&quot; an image on the screen to make it appear smaller. &lt;/p&gt;

&lt;p&gt;Relying on individual sensor readings would be horrific in development time, on the other hand just providing a number of simplified events, like &quot;THROW_TO_SCREEN&quot; on the Wii, or &quot;LOWER_CORNER_PINCHED&quot; events on the iPhone would limit what developers can do to take advantage of the new controls.&lt;/p&gt;

&lt;p&gt;So I guess Nintendo and Apple has some sort of abstract gesture descriptions that can be mapped to sensor readings, combining the output of the individual sensors (Wiimote held upwards, facing the screen), the changes over time (controller swung within a 2-second range), and the threshold to accommodate small differences (like a kid with smaller hands will produce smaller motion on the controller).&lt;/p&gt;

&lt;p&gt;I have no doubt that these gesture-driven user interfaces work well in this context, in fact I absolutely love to play with the Nintendo Wii, and I will likely not be able to resist the iPhone when it comes out. As a developer, I wonder how these new, more complex user input paradigms are available for the developer. &lt;/p&gt;&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/gesture_description_languages_for_the_wi&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>With the recent introduction of the Nintendo Wii and the great iPhone demo on Macworld, I became really curious on how these new gesture-based UIs can be programmed.</p>

<p>Event-driven UI programming is fairly straight-forward. When the user clicks a button, moves a joystick, or presses the pen down on the surface, your component or event handler receives a message, and usually its type and parameters will be quite straight forward to describe the actual user intention.</p>

<p>I'm sure it's much more difficult with both the Wii controller, which has a large number of sensors to capture your arm gestures in 3d space and time, and with the iPhone, which has a multi-touch interface, which must have a much more varied event model than a straight pen-based touch interface.</p>

<p>On a sensor-level, there's nothing particularly complex, these sensors will produce some sort of digital reading that's ready to be analyzed. However there must be some sort of abstraction layer to make it easier to consume than the raw sensor readings. After all, these input devices (the Wiimote and the iPhone multi-touch digitizer) want to capture gestures, not just a particular change on a sensor. The Wii game developer is interested if the player performed a proper throw in the Baseball game, with the proper aim and force, and the iPhone developer wants to know if the user "pinched" an image on the screen to make it appear smaller. </p>

<p>Relying on individual sensor readings would be horrific in development time, on the other hand just providing a number of simplified events, like "THROW_TO_SCREEN" on the Wii, or "LOWER_CORNER_PINCHED" events on the iPhone would limit what developers can do to take advantage of the new controls.</p>

<p>So I guess Nintendo and Apple has some sort of abstract gesture descriptions that can be mapped to sensor readings, combining the output of the individual sensors (Wiimote held upwards, facing the screen), the changes over time (controller swung within a 2-second range), and the threshold to accommodate small differences (like a kid with smaller hands will produce smaller motion on the controller).</p>

<p>I have no doubt that these gesture-driven user interfaces work well in this context, in fact I absolutely love to play with the Nintendo Wii, and I will likely not be able to resist the iPhone when it comes out. As a developer, I wonder how these new, more complex user input paradigms are available for the developer. </p><div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/gesture_description_languages_for_the_wi">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/gesture_description_languages_for_the_wi#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=657</wfw:commentRss>
		</item>
				<item>
			<title>J2EE/JBoss webapp authentication for the impatient</title>
			<link>https://fb2.hu/blogs/x10.php/j2ee_jboss_webapp_authentication_for_the</link>
			<pubDate>Tue, 28 Feb 2006 16:43:07 +0000</pubDate>			<dc:creator>admin</dc:creator>
			<category domain="main">Articles</category>			<guid isPermaLink="false">565@https://fb2.hu/blogs/</guid>
						<description>&lt;p&gt;I just went through tons of articles and documents and howtos to implement a simple web application authorization, so I thought I should save the effort for other impatient people like me. Read through the extensive JBoss documentation for detailed specifications and such, if you&#039;re in the mood.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Basic concept: &lt;/strong&gt;&lt;br /&gt;
I want a set of pages to require username-password authentication.&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;The username-password combination should be stored in a database&lt;/li&gt;
  &lt;li&gt;I am not concerned about EJB security right now, just the webapp&lt;/li&gt;
  &lt;li&gt;I don&#039;t want to write my own code for this&lt;/li&gt;
  &lt;li&gt;I&#039;m using MySQL&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;&lt;p&gt;Secure the protected URLs in your web.xml. Put the following lines into the web.xml file in your WEB-INF directory:&lt;br /&gt; 
&lt;code&gt;
&amp;lt;security-constraint&amp;gt;
&lt;br /&gt;     &amp;lt;web-resource-collection&amp;gt;&lt;br /&gt;
&lt;br /&gt;       &amp;lt;web-resource-name&amp;gt;Secure Content&amp;lt;/web-resource-name&amp;gt;
&lt;br /&gt;       &amp;lt;url-pattern&amp;gt;/restricted/*&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;
&lt;br /&gt;     &amp;lt;/web-resource-collection&amp;gt;
&lt;br /&gt;     &amp;lt;auth-constraint&amp;gt;&lt;br /&gt;
&lt;br /&gt;       &amp;lt;role-name&amp;gt;AuthorizedUser&amp;lt;/role-name&amp;gt;
&lt;br /&gt;     &amp;lt;/auth-constraint&amp;gt;&lt;br /&gt;
&lt;br /&gt;   &amp;lt;/security-constraint&amp;gt;
&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;    &amp;lt;login-config&amp;gt;
&lt;br /&gt;        &amp;lt;auth-method&amp;gt;BASIC&amp;lt;/auth-method&amp;gt;&lt;br /&gt;
&lt;br /&gt;        &amp;lt;realm-name&amp;gt;The Restricted Zone&amp;lt;/realm-name&amp;gt;
&lt;br /&gt;    &amp;lt;/login-config&amp;gt;&lt;br /&gt;
&lt;br /&gt;    
&lt;br /&gt;   &amp;lt;security-role&amp;gt;&lt;br /&gt;
&lt;br /&gt;      &amp;lt;description&amp;gt;The role required to access restricted content&amp;lt;/description&amp;gt;
&lt;br /&gt;      &amp;lt;role-name&amp;gt;AuthorizedUser&amp;lt;/role-name&amp;gt;&lt;br /&gt;
&lt;br /&gt;   &amp;lt;/security-role&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This means that any page that&#039;s within the /restricted URL will get protected, the authentication mechanism will be BASIC (ugly popup screen which requests the credentials), and anyone who is in the AuthorizedUser role will be able to see it. See the login-config documentation about how to configure a JSP page with form based authentication instead of this.&lt;br /&gt;
&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;
&lt;p&gt;Make the database accessible for JBoss. Drop the mysql client jar into your JBoss domain&#039;s lib folder, and customize the mysql-ds.xml file, which you can find in the JBoss docs/examples/jca directory, using your own database&#039;s URL, login, etc. Drop the modified file into your JBoss domain&#039;s deploy folder. This is a great feature for datasource configuration!&lt;/p&gt;&lt;/li&gt;
  &lt;li&gt;&lt;p&gt;Create a Users and Roles table in mysql, with the following structure:&lt;br /&gt;
- Users should have an username and password field&lt;br /&gt;
- Roles table should have a username field, and a roles and role_group field.&lt;br /&gt;
&lt;/p&gt;
&lt;/li&gt;
  &lt;li&gt;&lt;p&gt;Configure JBoss to use your new table for the JBoss-provided DatabaseServerLoginModule. This is configured in your JBoss domain&#039;s conf folder, in the login-config.xml file. Basically you need to provide the datasource, and the SQL selects you would use to return these values.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&amp;lt;application-policy name=&amp;quot;myOwnDomain&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;        &amp;lt;authentication&amp;gt;
&lt;br /&gt;            &amp;lt;login-module code=&amp;quot;org.jboss.security.auth.spi.DatabaseServerLoginModule\&amp;quot;&lt;br /&gt;
&lt;br /&gt;                             flag=&amp;quot;required&amp;quot;&amp;gt;
&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;dsJndiName&amp;quot;&amp;gt;java:/MySqlDS&amp;lt;/module-option&amp;gt;&lt;br /&gt;
&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;principalsQuery&amp;quot;&amp;gt;
&lt;br /&gt;                    select passwd from Users where username=?&amp;lt;/module-option&amp;gt;&lt;br /&gt;
&lt;br /&gt;                &amp;lt;module-option name=&amp;quot;rolesQuery&amp;quot;&amp;gt;
&lt;br /&gt;                    select role, role_group from Roles where username=?&amp;lt;/module-option&amp;gt;&lt;br /&gt;
&lt;br /&gt;            &amp;lt;/login-module&amp;gt;
&lt;br /&gt;        &amp;lt;/authentication&amp;gt;&lt;br /&gt;
&lt;br /&gt;    &amp;lt;/application-policy&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Make sure your Datasource name matches the one you configured in the Mysql DS &lt;a href=&quot;http://www.tellmewhatis.com/xml&quot;&gt;xml&lt;/a&gt; file.&lt;/p&gt;
&lt;/li&gt;
  &lt;li&gt;&lt;p&gt;Connect your webapp&#039;s J2EE standard authorization settings with the JBoss-specific provider implementation. The place for this is the jboss-web.xml file in your webapp&#039;s WEB-INF directory.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;br /&gt;
&amp;lt;jboss-web&amp;gt;&lt;br /&gt;
&lt;br /&gt;  &amp;lt;security-domain&amp;gt;java:/jaas/myOwnDomain&amp;lt;/security-domain&amp;gt;
&lt;br /&gt;&amp;lt;/jboss-web&amp;gt;&lt;br /&gt;
&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;This will make JBoss look up the myOwnDomain settings in the login-config.xml file, which will use the JDBC based module to query your database for authentication.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It is quite straight forward to use hashed passwords as well, this is documented in the DatabaseServerLoginModule provider&#039;s documentation. Enjoy!&lt;/p&gt;



&lt;div class=&quot;item_footer&quot;&gt;&lt;p&gt;&lt;small&gt;&lt;a href=&quot;https://fb2.hu/blogs/x10.php/j2ee_jboss_webapp_authentication_for_the&quot;&gt;Original post&lt;/a&gt; blogged on &lt;a href=&quot;http://b2evolution.net/&quot;&gt;b2evolution&lt;/a&gt;.&lt;/small&gt;&lt;/p&gt;&lt;/div&gt;</description>
			<content:encoded><![CDATA[<p>I just went through tons of articles and documents and howtos to implement a simple web application authorization, so I thought I should save the effort for other impatient people like me. Read through the extensive JBoss documentation for detailed specifications and such, if you're in the mood.</p>

<p><strong>Basic concept: </strong><br />
I want a set of pages to require username-password authentication.</p>
<ul>
  <li>The username-password combination should be stored in a database</li>
  <li>I am not concerned about EJB security right now, just the webapp</li>
  <li>I don't want to write my own code for this</li>
  <li>I'm using MySQL</li>
</ul>

<p><strong>Solution:</strong></p>
<ol>
  <li><p>Secure the protected URLs in your web.xml. Put the following lines into the web.xml file in your WEB-INF directory:<br /> 
<code>
&lt;security-constraint&gt;
<br />     &lt;web-resource-collection&gt;<br />
<br />       &lt;web-resource-name&gt;Secure Content&lt;/web-resource-name&gt;
<br />       &lt;url-pattern&gt;/restricted/*&lt;/url-pattern&gt;<br />
<br />     &lt;/web-resource-collection&gt;
<br />     &lt;auth-constraint&gt;<br />
<br />       &lt;role-name&gt;AuthorizedUser&lt;/role-name&gt;
<br />     &lt;/auth-constraint&gt;<br />
<br />   &lt;/security-constraint&gt;
<br /><br />
<br />    &lt;login-config&gt;
<br />        &lt;auth-method&gt;BASIC&lt;/auth-method&gt;<br />
<br />        &lt;realm-name&gt;The Restricted Zone&lt;/realm-name&gt;
<br />    &lt;/login-config&gt;<br />
<br />    
<br />   &lt;security-role&gt;<br />
<br />      &lt;description&gt;The role required to access restricted content&lt;/description&gt;
<br />      &lt;role-name&gt;AuthorizedUser&lt;/role-name&gt;<br />
<br />   &lt;/security-role&gt;<br />
</code></p>
<p>This means that any page that's within the /restricted URL will get protected, the authentication mechanism will be BASIC (ugly popup screen which requests the credentials), and anyone who is in the AuthorizedUser role will be able to see it. See the login-config documentation about how to configure a JSP page with form based authentication instead of this.<br />
</p></li>
  <li>
<p>Make the database accessible for JBoss. Drop the mysql client jar into your JBoss domain's lib folder, and customize the mysql-ds.xml file, which you can find in the JBoss docs/examples/jca directory, using your own database's URL, login, etc. Drop the modified file into your JBoss domain's deploy folder. This is a great feature for datasource configuration!</p></li>
  <li><p>Create a Users and Roles table in mysql, with the following structure:<br />
- Users should have an username and password field<br />
- Roles table should have a username field, and a roles and role_group field.<br />
</p>
</li>
  <li><p>Configure JBoss to use your new table for the JBoss-provided DatabaseServerLoginModule. This is configured in your JBoss domain's conf folder, in the login-config.xml file. Basically you need to provide the datasource, and the SQL selects you would use to return these values.</p>
<p><code><br />
&lt;application-policy name=&quot;myOwnDomain&quot;&gt;<br />
<br />        &lt;authentication&gt;
<br />            &lt;login-module code=&quot;org.jboss.security.auth.spi.DatabaseServerLoginModule\&quot;<br />
<br />                             flag=&quot;required&quot;&gt;
<br />                &lt;module-option name=&quot;dsJndiName&quot;&gt;java:/MySqlDS&lt;/module-option&gt;<br />
<br />                &lt;module-option name=&quot;principalsQuery&quot;&gt;
<br />                    select passwd from Users where username=?&lt;/module-option&gt;<br />
<br />                &lt;module-option name=&quot;rolesQuery&quot;&gt;
<br />                    select role, role_group from Roles where username=?&lt;/module-option&gt;<br />
<br />            &lt;/login-module&gt;
<br />        &lt;/authentication&gt;<br />
<br />    &lt;/application-policy&gt;<br />
</code></p>
<p>Make sure your Datasource name matches the one you configured in the Mysql DS <a href="http://www.tellmewhatis.com/xml">xml</a> file.</p>
</li>
  <li><p>Connect your webapp's J2EE standard authorization settings with the JBoss-specific provider implementation. The place for this is the jboss-web.xml file in your webapp's WEB-INF directory.</p>
<p><code><br />
&lt;jboss-web&gt;<br />
<br />  &lt;security-domain&gt;java:/jaas/myOwnDomain&lt;/security-domain&gt;
<br />&lt;/jboss-web&gt;<br />
</code></p>
<p>This will make JBoss look up the myOwnDomain settings in the login-config.xml file, which will use the JDBC based module to query your database for authentication.</p>
</li>
</ol>
<p>It is quite straight forward to use hashed passwords as well, this is documented in the DatabaseServerLoginModule provider's documentation. Enjoy!</p>



<div class="item_footer"><p><small><a href="https://fb2.hu/blogs/x10.php/j2ee_jboss_webapp_authentication_for_the">Original post</a> blogged on <a href="http://b2evolution.net/">b2evolution</a>.</small></p></div>]]></content:encoded>
								<comments>https://fb2.hu/blogs/x10.php/j2ee_jboss_webapp_authentication_for_the#comments</comments>
			<wfw:commentRss>https://fb2.hu/blogs/x10.php?tempskin=_atom&#38;disp=comments&#38;p=565</wfw:commentRss>
		</item>
			</channel>
</rss>
