<?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-8212598729014210803</id><updated>2011-11-09T16:21:20.251+01:00</updated><category term='rest'/><category term='juegos'/><category term='augmented reality'/><category term='programación'/><category term='java'/><category term='3d'/><category term='tecnología'/><category term='inauguración'/><category term='desarrollo'/><category term='realidad aumentada'/><category term='ted'/><category term='web services'/><category term='jgf'/><category term='blogs'/><title type='text'>inmensoSofa</title><subtitle type='html'>...¡qué verguenza! por todo lo que hemos hecho y todo lo que hemos sido: sólo ceros y unos...</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://inmensosofa.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>17</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-5211527653964455417</id><published>2011-10-31T14:00:00.000+01:00</published><updated>2011-11-09T16:21:20.333+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='rest'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>A look into various REST APIs</title><content type='html'>I have recently been working on a web application for data mining. We were initially using a typical stack of server Java technologies. The web MVC part was written on Struts 2.&lt;br /&gt;&lt;br /&gt;Our application is pretty UI intensive and we wanted it to have a nice, modern look and feel. As development went on, we soon found ourselves issuing a good amount of AJAX calls to the server. Without careful planning, this can soon become an unmanageable mixture of HTML, JSON and XML response formats, and dozens or hundreds of different GET and POST requests that expect various parameters.&lt;br /&gt;&lt;br /&gt;Our architect soon tackled the issue and we decided to define a full featured REST API for the application (incidentally,&amp;nbsp; we moved to Spring MVC which we found nicer), which we then access from the client side.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-large;"&gt;REST methods&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We have since defined dozens of URLs that handle our application requests. Much has been said about how REST method signatures should look: &lt;a href="http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it"&gt;should resource names be used in singular or plural&lt;/a&gt; [1]? &lt;a href="http://stackoverflow.com/questions/7016785/is-put-delete-idempotent-with-rest-automatic"&gt;is it mandatory to use PUT and DELETE methods and do they need to be idempotent&lt;/a&gt; [2]? &lt;a href="http://stackoverflow.com/questions/1418114/questions-on-proper-rest-design"&gt;how do list/search methods look like&lt;/a&gt; [3]? Not to forget that there are also some well known implementations that provide default methods for most operations.&lt;br /&gt;&lt;br /&gt;Besides, &lt;a href="http://en.wikipedia.org/wiki/Representational_state_transfer"&gt;REST is not a protocol, but an application architecture style&lt;/a&gt; [4]. Without an strict definition, nowadays there are many REST principles that are sistematically violated in real-world applications: not many REST APIs use hyperlinks as their only method reference (rather, they publish API documentation and expect programmers to directly access their published methods). Not all services use all four HTTP methods (GET, POST, PUT, DELETE) as defined by HTTP. Not all of them have consistent naming rules for resources.&lt;br /&gt;&lt;br /&gt;Seeing how loose REST is about API aspect, I have collected a few examples from some of the most famouse services on the Internet, so we can have an oversight of how famous REST APIs look as of today.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Facebook (Graph API)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Facebook publish &lt;a href="http://developers.facebook.com/docs/reference/api/"&gt;resources as a graph of social objects&lt;/a&gt; [5]. Every object in the social graph has a unique ID. You can access the properties of an object by requesting:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com/ID&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;For example, the official page for the Facebook Platform has id 19292868552, so you can fetch the object at: https://graph.facebook.com/19292868552.&lt;br /&gt;&lt;br /&gt;Responses are JSON:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; "name": "Facebook Platform",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; "type": "page",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; "website": "http://developers.facebook.com",&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; "id": 19292868552,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; "category": "Technology"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Relationships between objects are called connections and are accessed using the name of the connection:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com/ID/CONNECTION_TYPE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com/me/likes?access_token=...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com/me/friends?access_token=...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And results are also JSON:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;{&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; "data": [&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "name": "John John",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id": "201095685"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "name": "Andy Andy",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "id": "202921236"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; ]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;You can render the current profile photo for any object by adding the suffix /picture to the object URL. They have consistent support for paging, selecting fields and/or multiple objects in one call, accepting/returning different date formats and fulltext search:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com/bgolub?fields=id,name,picture&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com?ids=arjun,vernal&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://graph.facebook.com/search?q=mark&amp;amp;type=user&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;They also provide support for publishing (via POST) to the appropriate resource, using a few simple parameters. The following URL is used to add a comment to an object:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;POST:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; https://graph.facebook.com/OBJECT_ID/comments&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;arguments: message&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This API uses only GET and POST. They don't use hyperlinks to reference other objects (for example, lists are composed of object IDs, not URLs).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Twitter&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://dev.twitter.com/docs/api"&gt;Twitter API&lt;/a&gt; [6] is also GET/POST based:&lt;br /&gt;&lt;br /&gt;Get user home timeline, users who retweeted a post, followers:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GET statuses/home_timeline&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GET statuses/ID/retweeted_by&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GET followers/ids&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Modifications are done via POST, like the URL used for actually tweeting:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;POST statuses/update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;These GET and POST methods accept a variety of parameters which are very well documented. Parameters can be used to filter the timespan of the object we want to retrieve, for defining pagination, filtering, whether to include extra metadata about objects returned... Twitter API can also provide a number of response formats: JSON, XML, RSS, Atom.&lt;br /&gt;&lt;br /&gt;This is an example of a response list of tweets in JSON format (which is an array of tweet objects):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "coordinates": null,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "favorited": false,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "created_at": "Fri Jul 16 16:58:46 +0000 2010",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "truncated": false,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "entities": {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "urls": [&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "expanded_url": null,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "url": "http://www.flickr.com/photos/cindyli/4799054041/",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "indices": [&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 75,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 123&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "hashtags": [&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ],&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "user_mentions": [&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Google Custom Search API&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is a &lt;a href="http://code.google.com/apis/customsearch/v1/using_rest.html"&gt;very simple API&lt;/a&gt; [7]. &lt;span style="font-family: inherit;"&gt;You can retrieve results for a particular search by sending an HTTP GET request to its URI. The URI for a search has the following format:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;https://www.googleapis.com/customsearch/v1?parameters&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Parameters have to include the Google API key, the search query and other optional Google query parameters (response format, pagination, search options, filtering...). For example:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;GET https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&amp;amp;cx=013036536707430787589:_pqjad5hr1a&amp;amp;q=flowers&amp;amp;alt=json&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Response formats can be JSON or Atom. &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;{&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;"kind": "customsearch#search",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;"url": {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; "type": "application/json",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; "template": "https://www.googleapis.com/customsearch/v1?q\u003d{searchTerms}&amp;amp;num\u003d{count?}&amp;amp;start\u003d{startIndex?}&amp;amp;hr\u003d{language?}&amp;amp;safe\u003d{safe?}&amp;amp;cx\u003d{cx?}&amp;amp;cref\u003d{cref?}&amp;amp;sort\u003d{sort?}&amp;amp;alt\u003djson"&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;},&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;"queries": {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp; "nextPage": [&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "title": "Google Custom Search - flowers",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "totalResults": 10300000,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "searchTerms": "flowers",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "count": 10,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "startIndex": 11,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; "inputEncoding": "utf8",&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Summary&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;The big players have very different REST method signature approaches, but all of them share the simplicity and handyness of REST APIs. Being public APIs, all of them are also able to provide results in a number of formats, which allow for an easy consumption of these web services from a huge number of technologies.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;As the real world rules for REST web services seem so lax, my advice is to prioritize ease of usage when designing REST services, and leverage the support that your tools or framework provide when building these services. The actual aspect of method signatures and result types is not as important as the naming and type consistency across your various method calls. Using HTTP methods properly is not as critical unless full proxy-cache support is a requirement for your system, and in many cases you'll be safe just using POST for requests that change the state of the system.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size: large;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: inherit;"&gt;&lt;span style="font-family: inherit;"&gt;I hope this helps showing the different approaches used out there.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[1] &lt;a href="http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it"&gt;http://stackoverflow.com/questions/6845772/rest-uri-convention-singular-or-plural-name-of-resource-while-creating-it&lt;/a&gt;&lt;br /&gt;[2] &lt;a href="http://stackoverflow.com/questions/7016785/is-put-delete-idempotent-with-rest-automatic"&gt;http://stackoverflow.com/questions/7016785/is-put-delete-idempotent-with-rest-automatic&lt;/a&gt;&lt;br /&gt;[3] &lt;a href="http://stackoverflow.com/questions/1418114/questions-on-proper-rest-design"&gt;http://stackoverflow.com/questions/1418114/questions-on-proper-rest-design&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[4] &lt;a href="http://en.wikipedia.org/wiki/Representational_state_transfer"&gt;http://en.wikipedia.org/wiki/Representational_state_transfer&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;[5] &lt;a href="http://developers.facebook.com/docs/reference/api/"&gt;http://developers.facebook.com/docs/reference/api/&lt;/a&gt;&lt;br /&gt;[6] &lt;a href="https://dev.twitter.com/docs/api"&gt;https://dev.twitter.com/docs/api&lt;/a&gt;&lt;br /&gt;[7] &lt;a href="http://code.google.com/apis/customsearch/v1/using_rest.html"&gt;http://code.google.com/apis/customsearch/v1/using_rest.html&lt;/a&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/8212598729014210803-5211527653964455417?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=5211527653964455417' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/5211527653964455417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/5211527653964455417'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2011/10/look-into-various-rest-apis.html' title='A look into various REST APIs'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-4624144220089379419</id><published>2010-03-28T19:10:00.016+01:00</published><updated>2011-03-09T19:20:45.121+01:00</updated><title type='text'>Sistemas informáticos con Software Libre</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_fWsQ-fUU4YU/S6_a0nw5L8I/AAAAAAAAAK4/qbZ1Vtuax00/s1600/IMG_8172.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_fWsQ-fUU4YU/S6_a0nw5L8I/AAAAAAAAAK4/qbZ1Vtuax00/s400/IMG_8172.jpg" alt="" id="BLOGGER_PHOTO_ID_5453818271331069890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hace tiempo que quiero sacar a la luz este artículo, ya que he dedicado buena parte de mi tiempo a los Sistemas Informáticos basados en Software Libre a nivel profesional el último año:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Aibox: nuestra solución informática basadas en Software Libre.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Toda organización necesita hoy en día cierto nivel de servicios TIC como el acceso a Internet, el control de usuarios, los sistemas de ficheros compartidos o las copias de seguridad, por nombrar algunos.&lt;br /&gt;&lt;br /&gt;En general, se ha utilizado Windows para proporcionar los servicios TIC en nuestras organizaciones. Y actualmente, Windows Small Business Server es la oferta de Microsoft para las pequeñas y medianas empresas.  No soy un fanático de Linux: creo que hoy en día tanto Windows como MacOS son muy buenas herramientas para gestionar servicios corporativos y aportan muy buenas soluciones en diversas áreas, desde las interfaces de usuario hasta el núcleo del sistema. Pero Windows tiene muchos defectos, siendo uno de ellos el no ser Software Libre, con todo lo que ello conlleva. ¿Qué alternativas tenemos?.&lt;br /&gt;&lt;br /&gt;Sabemos que GNU-Linux está siendo utilizado en muchísimos escenarios: servidores en Internet, computación distribuída, virtualización... Sabemos que es un pilar fundamental de la estrategia de gigantes como Google y Amazon, y muchos de nuestros bancos. Está incrustado en dispositivos como routers, modems, o reproductores de DVD que utilizamos cada día. Sabemos que está cada vez más presente en los escritorios de los usuarios y que los portátiles, móviles y netbooks se ofrecen con Linux desde hace ya tiempo.&lt;br /&gt;&lt;br /&gt;Pero ¿es posible utilizar Linux para la gestión integral de una pila de servicios informáticos en la empresa?. Hace un tiempo que las herramientas necesarias son estables y suficientemente maduras, lo que considero un punto que importante ya que hace cinco años las herramientas necesarias sencillamente no estaban listas para ser usadas ágilmente en un entorno productivo. Ahora la situación es diferente.&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Cuando&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;empezamos el diseño de &lt;a href="http://www.aitire.es/infraestructuras/sistemas-gestionados/sistemas-gestionados.html"&gt;nuestros sistemas para empresas&lt;/a&gt; escogimos Ubuntu Server LTS porque proporciona soporte durante 5 años y también proporciona una solución estable de virtualización (Xen, en Ubuntu 8.04). Se estimó que nuestros clientes podrían amortizar fácilmente la instalación a 4 años.&lt;br /&gt;&lt;br /&gt;Teníamos claro que queríamos un sistema de configuración fácil y versátil: &lt;a href="http://www.zentyal.com/"&gt;&lt;span style="text-decoration: underline;"&gt;Zentyal&lt;/span&gt;&lt;/a&gt; es sencillamente perfecto. Proporciona un sistema fácil de configuración y además trae configuraciones muy robustas para los servicios, proporcionando un sistema productivo muy estable. Zentyal abarca una estupenda (y amplia) selección de servicios que solucionan prácticamente todas las necesidades de una PYME.&lt;br /&gt;&lt;br /&gt;Confiamos en Zentyal para la gestión de la red (cortafuegos, redirecciones, dns, dhcp...), el acceso a Internet (Filtrado de acceso web , antivirus y antispam de correo), gestión de usuarios y grupos, redes privadas virtuales y gestión de certificados, servicios de correo, archivos compartidos y controlador de dominio.&lt;br /&gt;&lt;br /&gt;Por otra parte, desplegamos una máquina virtual para el la gestión de copias de seguridad  y la monitorización, ya que es necesario monitorizar todas las máquinas remotamente que gestionamos para enterarnos de cualquier incidencia. En ocasiones añadimos otros sistemas, como un servidor de clonación de PCs.&lt;br /&gt;&lt;br /&gt;Todo el sistema soporta cómodamente a 20 usuarios sobre un Xeon X3460, 2.8Ghz, 8MB Cache con 8 GB DDR3 1333 MHz, y RAID1 1TB SATA2 7200rpm. Con hardware más potente, podemos gestionar unos 45 usuarios exigentes. Y podemos desplegar más máquinas virtuales, como por ejemplo un Windows, si fuese necesario para soportar aplicaciones corporativas.&lt;br /&gt;&lt;br /&gt;Podemos supervisar los sistemas de forma remota, podemos centralizar la configuración de las máquinas y disponemos de muchísimas herramientas que no se incluyen por defecto en otros sistemas. También podemos realizar pequeños desarrollos, automatizar tareas o solucionar problemas del software que sería impensable abordar fuera de un entorno de Software de Código Abierto.&lt;br /&gt;&lt;br /&gt;Herramientas que nos funcionen tan bien como &lt;a href="http://www.dovecot.org/"&gt;Dovecot&lt;/a&gt;, &lt;a href="http://www.bacula.org/en/"&gt;Bacula&lt;/a&gt;, &lt;a href="http://www.egroupware.org/"&gt;eGroupware&lt;/a&gt;, &lt;a href="http://www.centreon.com/"&gt;Centreon&lt;/a&gt; o VNC no se encuentran tan fácilmente en el universo del software privativo y, si están disponibles, a menudo tienen costes elevadísimos o malas condiciones de soporte, además de suponer un cerrojo tecnológico. Muchas herramientas privativas, a pesar de ser herramientas básicas del sistema, suponen una carga  adicional, tanto administrativa como técnica, debido a la gestión de licencias y el acceso a asistencia técnica.&lt;br /&gt;&lt;br /&gt;Esto no es tan problemático en un entorno de gran empresa, donde el coste de las licencias y la gestión se difumina en el coste total de la gestión de sistemas. Pero para una pequeña empresa las licencias suponen una partida importante, y en este sentido el software libre permite dedicar la inversión tecnológica a mantener la operatividad y las aplicaciones corporativas.&lt;br /&gt;&lt;br /&gt;(Para información a empresas, nuestro enlace comercial es: &lt;a href="http://www.aitire.es/infraestructuras/sistemas-gestionados/sistemas-gestionados.html"&gt;Aibox: Sistemas Informáticos Gestionados&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-4624144220089379419?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.aitire.es/infraestructuras/sistemas-gestionados/sistemas-gestionados.html' title='Sistemas informáticos con Software Libre'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=4624144220089379419' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/4624144220089379419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/4624144220089379419'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2010/03/sistemas-informaticos-con-software.html' title='Sistemas informáticos con Software Libre'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_fWsQ-fUU4YU/S6_a0nw5L8I/AAAAAAAAAK4/qbZ1Vtuax00/s72-c/IMG_8172.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-6307955187211256853</id><published>2009-10-24T19:49:00.004+01:00</published><updated>2009-10-24T19:58:47.449+01:00</updated><title type='text'>Avances en JGF</title><content type='html'>Comparto algunos avances de un juego que estoy escribiendo, en forma de capturas de pantalla.&lt;br /&gt;&lt;br /&gt;Este &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_0"&gt;jueguecillo&lt;/span&gt; de tanques sirve para &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_1"&gt;ejemplificar&lt;/span&gt; el uso de mi "&lt;a href="http://code.google.com/p/jgf/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_2"&gt;framework&lt;/span&gt; para juegos (&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_3"&gt;JGF&lt;/span&gt;)&lt;/a&gt;".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_fWsQ-fUU4YU/SuNMtuRDtbI/AAAAAAAAAKk/Ld6ojNliE1U/s1600-h/taunklet.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_fWsQ-fUU4YU/SuNMtuRDtbI/AAAAAAAAAKk/Ld6ojNliE1U/s400/taunklet.png" alt="" id="BLOGGER_PHOTO_ID_5396241126917387698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;En el &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_4"&gt;jueguecillo&lt;/span&gt;, el jugador está atrapado en territorio enemigo y debe escapar atravesando niveles llenos de tanques enemigos. En su camino, otra multitud de tanques intentan acabar con él.&lt;br /&gt;&lt;br /&gt;Los tanques y las balas se mueven bastante despacio, pero las balas son muchas y rebotan en las paredes. Por ahora estoy bastante contento con el resultado.&lt;br /&gt;&lt;br /&gt;Espero poder distribuir una versión &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_5"&gt;jugable&lt;/span&gt; &lt;span class="blsp-spelling-error" id="SPELLING_ERROR_6"&gt;online&lt;/span&gt; en unos meses. Por lo demás, sería muy útil la colaboración de un artista 3D y/o de un desarrollador de niveles para mejorar el aspecto gráfico y acelerar el desarrollo. Si alguien se anima puede ponerse en contacto a través de la lista de correo de &lt;a href="http://code.google.com/p/jgf/"&gt;&lt;span class="blsp-spelling-error" id="SPELLING_ERROR_7"&gt;JGF&lt;/span&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-6307955187211256853?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=6307955187211256853' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/6307955187211256853'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/6307955187211256853'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2009/10/avances-en-jgf.html' title='Avances en JGF'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_fWsQ-fUU4YU/SuNMtuRDtbI/AAAAAAAAAKk/Ld6ojNliE1U/s72-c/taunklet.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-5930800708263991748</id><published>2009-06-16T14:28:00.001+01:00</published><updated>2009-06-16T14:28:56.540+01:00</updated><title type='text'>Dinero es Deuda</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/nHt2MJTqUOQ' name='movie'/&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/nHt2MJTqUOQ'/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;Esto no lo enseñan el el colegio...&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-5930800708263991748?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=5930800708263991748' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/5930800708263991748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/5930800708263991748'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2009/06/dinero-es-deuda.html' title='Dinero es Deuda'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-1844464872172199501</id><published>2009-03-30T17:54:00.003+01:00</published><updated>2009-03-30T17:57:11.611+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='jgf'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='juegos'/><title type='text'>JGF - Java Game Framework (Early Overview 2009-03-17)</title><content type='html'>Presentando un pequeño video que muestra algunas características de JGF, el proyecto libre en que trabajo cuando tengo algo de tiempo libre.&lt;br /&gt;&lt;br /&gt;(El sitio del proyecto: &lt;a href="http://code.google.com/p/jgf/"&gt;http://code.google.com/p/jgf/&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;&lt;object height="350" width="425"&gt;&lt;param value="http://youtube.com/v/6WrPZp42dNc" name="movie"&gt;&lt;embed type="application/x-shockwave-flash" src="http://youtube.com/v/6WrPZp42dNc" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-1844464872172199501?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=1844464872172199501' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/1844464872172199501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/1844464872172199501'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2009/03/jgf-java-game-framework-early-overview.html' title='JGF - Java Game Framework (Early Overview 2009-03-17)'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-3008680782825919827</id><published>2009-03-13T17:31:00.003+01:00</published><updated>2009-03-13T18:42:48.726+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='realidad aumentada'/><category scheme='http://www.blogger.com/atom/ns#' term='tecnología'/><category scheme='http://www.blogger.com/atom/ns#' term='ted'/><category scheme='http://www.blogger.com/atom/ns#' term='augmented reality'/><title type='text'>Sexto Sentido</title><content type='html'>Cuando era pequeño alucinaba con Sophie, la sobrina del inspector Gadget, porque ésta tenía un LibroOrdenador con el que podía acceder a toda la información y controlar todos los dispositivos a su antojo.&lt;br /&gt;&lt;br /&gt;Un teléfono actual supera estas funciones. ¿Cuál es el futuro? Pues librarse del aparato... o hacerlo más accesible. Conseguir que la información que obtenemos llegue directamente al cerebro y responda directamente a nuestros pensamientos. Y aunque eso esté aún algo lejos, las respuestas a esas necesidades: nuevas formas de integración de información y herramientas con nuestra vida diaria y nuestros 5 sentidos, están cada vez más cerca, pasito a pasito:&lt;br /&gt;&lt;br /&gt;¡Potencia tu mente!&lt;br /&gt;&lt;br /&gt;&lt;object width="446" height="326"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;param name="bgColor" value="#ffffff"&gt; &lt;param name="flashvars" value="vu=http://video.ted.com/talks/embed/PattieMaes_2009-embed_high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PattieMaes-2009.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=481"&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgcolor="#ffffff" allowfullscreen="true" flashvars="vu=http://video.ted.com/talks/embed/PattieMaes_2009-embed_high.flv&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/PattieMaes-2009.embed_thumbnail.jpg&amp;amp;vw=432&amp;amp;vh=240&amp;amp;ap=0&amp;amp;ti=481" width="446" height="326"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ted.com/index.php/talks/pattie_maes_demos_the_sixth_sense.html"&gt;Entrada sobre el projecto Sexto Sentido&lt;/a&gt; en &lt;a href="http://www.ted.com/"&gt;TED&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.youtube.com/watch?v=ZfV4R4x2SK0"&gt;Demostración de Sexto Sentido (video en YouTube, sin la charla)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-3008680782825919827?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=3008680782825919827' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/3008680782825919827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/3008680782825919827'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2009/03/sexto-sentido.html' title='Sexto Sentido'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-725943894163148513</id><published>2009-02-24T20:06:00.003+01:00</published><updated>2009-02-24T20:19:58.436+01:00</updated><title type='text'>A veces...</title><content type='html'>Hace algún tiempo sugerí a algunos amigos que continuasen la frase "a veces...". Y claro, hubo un montón de "a veces llega un momento en que te haces viejo de repente" (la letra de un tema de &lt;a href="http://es.wikipedia.org/wiki/Celtas_Cortos"&gt;Celtas Cortos&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Tal y como prometí, he aquí el resto de los resultados (los nombres se omiten para proteger a los culpables :-)):&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;a veces... me gustaria cargarme a alguien&lt;/li&gt;&lt;li&gt;a veces no: pero podria ser&lt;/li&gt;&lt;li&gt;a veces... me gustaría volver atrás&lt;/li&gt;&lt;li&gt;a veces nubes pasan&lt;/li&gt;&lt;li&gt;a veces fumo *@#...&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;(Resumiendo, tengo un amigo al borde de la psicópatía, un indeciso, uno que se arrepiente, uno contemplativo  y otro de distendidas costumbres :-D)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-725943894163148513?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=725943894163148513' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/725943894163148513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/725943894163148513'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2009/02/veces.html' title='A veces...'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-8776339597890769504</id><published>2008-11-30T23:43:00.003+01:00</published><updated>2008-11-30T23:44:48.120+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='3d'/><category scheme='http://www.blogger.com/atom/ns#' term='desarrollo'/><category scheme='http://www.blogger.com/atom/ns#' term='juegos'/><title type='text'>JGF -. Java Game Framework</title><content type='html'>He estado trabajando recientemente en un framework de desarrollo de juegos en Java. Aquellos interesados podéis visitar la web en &lt;span style="text-decoration: underline;"&gt;Java Game Framework&lt;/span&gt;&lt;a href="http://code.google.com/p/jgf/"&gt;&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-8776339597890769504?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://code.google.com/p/jgf/' title='JGF -. Java Game Framework'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=8776339597890769504' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/8776339597890769504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/8776339597890769504'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2008/11/jgf-java-game-framework.html' title='JGF -. Java Game Framework'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-3733301191620993048</id><published>2008-08-16T03:15:00.001+01:00</published><updated>2008-08-16T03:15:15.617+01:00</updated><title type='text'>But do you know who I am?</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/ZHULPkZ9JeA' name='movie'/&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/ZHULPkZ9JeA'/&gt;&lt;/object&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-3733301191620993048?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=3733301191620993048' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/3733301191620993048'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/3733301191620993048'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2008/08/but-do-you-know-who-i-am.html' title='But do you know who I am?'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-7108745999815214288</id><published>2008-06-24T00:46:00.001+01:00</published><updated>2008-06-24T00:46:26.625+01:00</updated><title type='text'>Rápido, pero no lo suficiente...</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/JfFLHKH82O8' name='movie'/&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/JfFLHKH82O8'/&gt;&lt;/object&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-7108745999815214288?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=7108745999815214288' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/7108745999815214288'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/7108745999815214288'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2008/06/rpido-pero-no-lo-suficiente.html' title='Rápido, pero no lo suficiente...'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-7136423573214433513</id><published>2008-06-19T01:14:00.001+01:00</published><updated>2008-06-19T01:14:39.642+01:00</updated><title type='text'>Marvin Minsky sobre AI</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/sy8mzH-H6tM' name='movie'/&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/sy8mzH-H6tM'/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;Increíble charla de Minsky. Pionero de la Inteligencia Artificial. El artículo de la Wikipedia (http://en.wikipedia.org/wiki/Marvin_Minsky) tampoco tiene desperdicio...&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-7136423573214433513?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=7136423573214433513' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/7136423573214433513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/7136423573214433513'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2008/06/marvin-minsky-sobre-ai.html' title='Marvin Minsky sobre AI'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-1429702021390587370</id><published>2008-06-18T03:38:00.001+01:00</published><updated>2008-06-18T03:38:29.368+01:00</updated><title type='text'>Todo lo que siempre quisiste saber sobre atarte los zapatos</title><content type='html'>&lt;div xmlns='http://www.w3.org/1999/xhtml'&gt;&lt;p&gt;&lt;object height='350' width='425'&gt;&lt;param value='http://youtube.com/v/0W__eID13Mw' name='movie'/&gt;&lt;embed height='350' width='425' type='application/x-shockwave-flash' src='http://youtube.com/v/0W__eID13Mw'/&gt;&lt;/object&gt;&lt;/p&gt;&lt;p&gt;Después de ver este video me pregunto... ¿soy el único que se ata los zapatos como un capullo? En fin, tampoco es que me ate muchos zapatos la verdad... :D&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-1429702021390587370?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=1429702021390587370' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/1429702021390587370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/1429702021390587370'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2008/06/todo-lo-que-siempre-quisiste-saber.html' title='Todo lo que siempre quisiste saber sobre atarte los zapatos'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-7312696226417012232</id><published>2008-04-05T00:45:00.002+01:00</published><updated>2008-04-05T00:48:26.175+01:00</updated><title type='text'>Entendimiento e Inteligencia Artificial</title><content type='html'>¿Cual es la diferencia entre una máquina capaz de convencerte de que te entiende, y una máquina que te entiende?&lt;br /&gt;&lt;br /&gt;¿Sería dicha máquina inteligente?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-7312696226417012232?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=7312696226417012232' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/7312696226417012232'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/7312696226417012232'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2008/04/entendimiento-e-inteligencia-artificial.html' title='Entendimiento e Inteligencia Artificial'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-4820389280191766617</id><published>2007-12-01T01:19:00.000+01:00</published><updated>2007-12-02T19:42:55.972+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><title type='text'>El fin del mundo</title><content type='html'>El fin del mundo.&lt;br /&gt;&lt;br /&gt;Resulta curioso que, durante mucho tiempo, el fin del mundo fue un lugar, un punto donde el  Mundo terminaba y nadie sabía qué había más allá.&lt;br /&gt;&lt;br /&gt;Esta visión del fin del mundo resultaba en realidad de lo más oportuna para un ser humano. Nos permitía asumir que el fin del mundo estaba situado en alguna parte. Podíamos pensar en ir y volver del fin del mundo. Podíamos ignorar que no sabíamos nada del fin del mundo y, si esto nos preocupaba por un segundo, podíamos consolarnos inmediatamente con la idea de que el fin del mundo estaba ahí para quien quisiera ir a mirar y averiguarlo). Podíamos dejar el fin del mundo para otros, para quien quisiera conocerlo (ale).&lt;br /&gt;&lt;br /&gt;La realidad, sin embargo, no está carente de cierta ironía :-). La tierra resultó ser redonda, y el universo un poquito más grande de lo que nos hubiera gustado. La gente empezó a pensar que, mira por dónde, igual el Mundo iba a tener un final en otra dimensión: la cuarta. Esto mágicamente hace que el Fin del Mundo deje de ser un &lt;span style="font-style: italic;"&gt;lugar&lt;/span&gt;, para convertirse en un &lt;span style="font-style: italic;"&gt;momento&lt;/span&gt;. El momento en que el mundo termina y nadie sabe qué hay más allá.&lt;br /&gt;&lt;br /&gt;Y esto presenta también desagradables consecuencias: ya no se puede ir y volver del Fin del Mundo debido, principalmente, a que el tiempo parece decidido a ser recorrido en un único sentido. El fin del mundo llegará, y la primera pregunta es ¿estaremos aquí para verlo :-)?.&lt;br /&gt;&lt;br /&gt;Sabemos que lo deseas saber todo sobre el fin del mundo. Pero hay algo mucho mejor. Saber lo que pasa DESPUÉS.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://eldiadespuesdelmundo.wordpress.com/"&gt;El día después del mundo&lt;/a&gt; (http://eldiadespuesdelmundo.wordpress.com) es el nuevo Blog del &lt;span style="font-style: italic;"&gt;Espigado&lt;/span&gt;, artista de quien ya hemos hablado antes y para cuyos textos los eligios de cualquier diccionario son insuficientes. Con una prosa en un registro tan actual que algunos tacharían de transgresora, &lt;span style="font-style: italic;"&gt;Espigado &lt;/span&gt;utiliza sin embargo a la vez estilos de lo más elegante para desgranar un poquito algún pedacito de sociedad.&lt;br /&gt;&lt;br /&gt;Resulta a veces difícil distinguir, sin embargo, donde empieza la sátira y donde termina la cruda realidad, y esto despierta a menudo preguntas en la cabeza del lector, que si se deja llevar pueden terminar en placenteras divagaciones.&lt;br /&gt;&lt;br /&gt;¿A qué estáis esperando para haceros fans de &lt;a href="http://eldiadespuesdelmundo.wordpress.com/"&gt;El día después del mundo&lt;/a&gt; (y para agregarlo a vuestro lector de Feeds: &lt;a href="http://eldiadespuesdelmundo.wordpress.com/rss"&gt;http://eldiadespuesdelmundo.wordpress.com/rss&lt;/a&gt;)?.&lt;br /&gt;&lt;br /&gt;Sus cinco primeros capítulos ya están ahí fuera, y yo espero impaciente el siguiente.&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/8212598729014210803-4820389280191766617?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=4820389280191766617' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/4820389280191766617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/4820389280191766617'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2007/12/el-fin-del-mundo.html' title='El fin del mundo'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-5477037556826081094</id><published>2007-03-18T20:35:00.000+01:00</published><updated>2007-03-18T20:45:10.787+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blogs'/><title type='text'>El Espigado...</title><content type='html'>Hace mucho tiempo, en un lugar muy muy pequeño habitado por seres de vida palpitante, una pequeña espora creció hasta convertirse en un ser radiante de pensamiento.&lt;br /&gt;&lt;br /&gt;El fantástico Espigado sigue disfrutando de un pensamiento fresco, crítico y equilibrado. Ahora tú también tienes la oportunidad de disfrutar de sus textos, que hablan de la actualidad social con un estilo alegórico a la vez que claro, que nos permite jugar con sus historias, adaptándolas y personalizándolas al lector.&lt;br /&gt;&lt;br /&gt;Si te gusta la  lectura, no dejes de visitar &lt;a href="http://www.elespigado.blogspot.com/"&gt;El Espigado: destila pensamiento y templadas críticas&lt;/a&gt; que tanta falta hacen en estos tiempos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-5477037556826081094?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.elespigado.blogspot.com/' title='El Espigado...'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=5477037556826081094' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/5477037556826081094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/5477037556826081094'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2007/03/el-espigado.html' title='El Espigado...'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-1090954519962114436</id><published>2007-01-22T18:52:00.000+01:00</published><updated>2007-01-22T18:57:57.733+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programación'/><title type='text'>Distribuir aplicaciones en Java</title><content type='html'>Aunque sólo será de interés para informáticos, comento que he escrito un artículo para la documentación de jMonkeyEngine (un motor gráfico para Java) sobre cómo distribuir aplicaciones en Java para este motor (aunque es aplicable a la mayoría de las aplicaciones Java).&lt;br /&gt;&lt;br /&gt;Está aquí: &lt;a href="http://www.jmonkeyengine.com/wiki/doku.php?id=packaging_and_deploying_jme_applications"&gt;Packaging and Deploying jME Applications&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-1090954519962114436?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=1090954519962114436' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/1090954519962114436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/1090954519962114436'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2007/01/distribuir-aplicaciones-en-java.html' title='Distribuir aplicaciones en Java'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-8212598729014210803.post-3646466422506188367</id><published>2006-12-12T02:35:00.000+01:00</published><updated>2006-12-12T02:57:14.836+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='inauguración'/><title type='text'>La vida es sueño... ¿o no?</title><content type='html'>Todo blog tiene una primera entrada que lo estrena. Nosotros hemos invitado a nuestro amigo Pedro Calderón para tener una inauguración por todo lo alto :-).&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Con asombro de mirarte,&lt;br /&gt;con admiración de oírte,&lt;br /&gt;ni sé qué pueda decirte,&lt;br /&gt;ni qué pueda preguntarte.&lt;br /&gt;Sólo diré que a esta parte&lt;br /&gt;hoy el cielo me ha guiado&lt;br /&gt;para haberme consolado,&lt;br /&gt;si consuelo puede ser,&lt;br /&gt;del que es desdichado, ver&lt;br /&gt;a otro que es más desdichado.&lt;br /&gt;&lt;br /&gt;Cuentan de un sabio, que un día&lt;br /&gt;tan pobre y mísero estaba,&lt;br /&gt;que sólo se sustentaba&lt;br /&gt;de unas yerbas que comía.&lt;br /&gt;¿Habrá otro -entre sí decía-&lt;br /&gt;más pobre y triste que yo?&lt;br /&gt;Y cuando el rostro volvió&lt;br /&gt;halló la respuesta, viendo&lt;br /&gt;que iba otro sabio cogiendo&lt;br /&gt;las hojas que él arrojó.&lt;br /&gt;&lt;br /&gt;Quejoso de la fortuna&lt;br /&gt;yo en este mundo vivía,&lt;br /&gt;y cuando entre mí decía:&lt;br /&gt;¿Habrá otra persona alguna&lt;br /&gt;de suerte más importuna?,&lt;br /&gt;piadoso me has respondido;&lt;br /&gt;pues volviendo en mi sentido,&lt;br /&gt;hallo que las penas mías,&lt;br /&gt;para hacerlas tú alegrías,&lt;br /&gt;las hubieras recogido.&lt;br /&gt;&lt;br /&gt;Y por si acaso mis penas&lt;br /&gt;pueden aliviarte en parte,&lt;br /&gt;óyelas atento, y toma&lt;br /&gt;las que dellas me sobraren.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fuente&lt;/span&gt;: &lt;a href="http://www.cervantesvirtual.com/servlet/SirveObras/02448397211915617422202/index.htm"&gt;Biblioteca Virtual Miguel de Cervantes&lt;/a&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.cervantesvirtual.com/servlet/SirveObras/02448397211915617422202/index.htm"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/8212598729014210803-3646466422506188367?l=inmensosofa.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=8212598729014210803&amp;postID=3646466422506188367' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/3646466422506188367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8212598729014210803/posts/default/3646466422506188367'/><link rel='alternate' type='text/html' href='http://inmensosofa.blogspot.com/2006/12/la-vida-es-sueo-o-no.html' title='La vida es sueño... ¿o no?'/><author><name>J</name><uri>http://www.blogger.com/profile/04604913813248409233</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
