<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5864877895246617583</id><updated>2015-09-16T22:58:32.635+01:00</updated><category term="C#"/><category term="SQL"/><category term="development"/><category term="myself"/><category term="Desenvolvimento"/><category term="surf"/><category term="Windows Forms"/><category term="Outros"/><category term="microsoft"/><category term="DVD"/><category term="Entretenimento"/><category term="Reporting Services"/><category term="Tv"/><category term="dot.net"/><category term="ebook"/><category term="4.0"/><category term="4.1"/><category term="Fotografia"/><category term="SP"/><category term="Service Pack"/><category term="Vista"/><category term="Windows"/><category term="XP"/><category term="accoes"/><category term="agile"/><category term="agile development agile scrum gtd"/><category term="block"/><category term="blocks"/><category term="blog"/><category term="blogger"/><category term="blogspot"/><category term="bolsa"/><category term="bsod"/><category term="codeplex"/><category term="ebooks"/><category term="el"/><category term="enterprise library"/><category term="feedburner"/><category term="finance"/><category term="flame"/><category term="geek"/><category term="internet map pg geek"/><category term="kiss"/><category term="linux"/><category term="patterns"/><category term="pdf"/><category term="pratices"/><category term="problem"/><category term="problems"/><category term="programacao"/><category term="ps"/><category term="rss"/><category term="staples"/><category term="tip"/><category term="tips"/><category term="vista bugs windows"/><category term="vs"/><category term="vstudio"/><category term="yahoo"/><title type='text'>O problema reside entre a cadeira e o teclado ...</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default?start-index=26&amp;max-results=25'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>255</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-2561971977867195376</id><published>2014-11-24T15:36:00.000+01:00</published><updated>2014-11-24T15:37:38.974+01:00</updated><title type='text'>GIT - the stupid content tracker</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290&quot;&gt;&amp;quot;Initial revision of &amp;quot;git&amp;quot;, the information manager from hell ~ Apr 2005&amp;quot;&lt;/a&gt;&lt;blockquote style=&quot;margin:0px 0px 0px 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;GIT - the stupid content tracker&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&amp;quot;git&amp;quot; can mean anything, depending on your mood.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt; - random three-letter combination that is pronounceable, and not&lt;/div&gt;&lt;div&gt;   actually used by any common UNIX command.  The fact that it is a&lt;/div&gt;&lt;div&gt;   mispronounciation of &amp;quot;get&amp;quot; may or may not be relevant.&lt;/div&gt;&lt;div&gt; - stupid. contemptible and despicable. simple. Take your pick from the&lt;/div&gt;&lt;div&gt;   dictionary of slang.&lt;/div&gt;&lt;div&gt; - &amp;quot;global information tracker&amp;quot;: you&amp;#39;re in a good mood, and it actually&lt;/div&gt;&lt;div&gt;   works for you. Angels sing, and a light suddenly fills the room. &lt;/div&gt;&lt;div&gt; - &amp;quot;goddamn idiotic truckload of sh*t&amp;quot;: when it breaks&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;This is a stupid (but extremely fast) directory content manager.  It&lt;/div&gt;&lt;div&gt;doesn&amp;#39;t do a whole lot, but what it _does_ do is track directory&lt;/div&gt;&lt;div&gt;contents efficiently. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are two object abstractions: the &amp;quot;object database&amp;quot;, and the&lt;/div&gt;&lt;div&gt;&amp;quot;current directory cache&amp;quot;.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;The Object Database (SHA1_FILE_DIRECTORY)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The object database is literally just a content-addressable collection&lt;/div&gt;&lt;div&gt;of objects.  All objects are named by their content, which is&lt;/div&gt;&lt;div&gt;approximated by the SHA1 hash of the object itself.  Objects may refer&lt;/div&gt;&lt;div&gt;to other objects (by referencing their SHA1 hash), and so you can build&lt;/div&gt;&lt;div&gt;up a hierarchy of objects. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;There are several kinds of objects in the content-addressable collection&lt;/div&gt;&lt;div&gt;database.  They are all in deflated with zlib, and start off with a tag&lt;/div&gt;&lt;div&gt;of their type, and size information about the data.  The SHA1 hash is&lt;/div&gt;&lt;div&gt;always the hash of the _compressed_ object, not the original one.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In particular, the consistency of an object can always be tested&lt;/div&gt;&lt;div&gt;independently of the contents or the type of the object: all objects can&lt;/div&gt;&lt;div&gt;be validated by verifying that (a) their hashes match the content of the&lt;/div&gt;&lt;div&gt;file and (b) the object successfully inflates to a stream of bytes that&lt;/div&gt;&lt;div&gt;forms a sequence of &amp;lt;ascii tag without space&amp;gt; + &amp;lt;space&amp;gt; + &amp;lt;ascii decimal&lt;/div&gt;&lt;div&gt;size&amp;gt; + &amp;lt;byte\0&amp;gt; + &amp;lt;binary object data&amp;gt;. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;BLOB: A &amp;quot;blob&amp;quot; object is nothing but a binary blob of data, and doesn&amp;#39;t&lt;/div&gt;&lt;div&gt;refer to anything else.  There is no signature or any other verification&lt;/div&gt;&lt;div&gt;of the data, so while the object is consistent (it _is_ indexed by its&lt;/div&gt;&lt;div&gt;sha1 hash, so the data itself is certainly correct), it has absolutely&lt;/div&gt;&lt;div&gt;no other attributes.  No name associations, no permissions.  It is&lt;/div&gt;&lt;div&gt;purely a blob of data (ie normally &amp;quot;file contents&amp;quot;). &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;TREE: The next hierarchical object type is the &amp;quot;tree&amp;quot; object.  A tree&lt;/div&gt;&lt;div&gt;object is a list of permission/name/blob data, sorted by name.  In other&lt;/div&gt;&lt;div&gt;words the tree object is uniquely determined by the set contents, and so&lt;/div&gt;&lt;div&gt;two separate but identical trees will always share the exact same&lt;/div&gt;&lt;div&gt;object. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Again, a &amp;quot;tree&amp;quot; object is just a pure data abstraction: it has no&lt;/div&gt;&lt;div&gt;history, no signatures, no verification of validity, except that the&lt;/div&gt;&lt;div&gt;contents are again protected by the hash itself.  So you can trust the&lt;/div&gt;&lt;div&gt;contents of a tree, the same way you can trust the contents of a blob,&lt;/div&gt;&lt;div&gt;but you don&amp;#39;t know where those contents _came_ from. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Side note on trees: since a &amp;quot;tree&amp;quot; object is a sorted list of&lt;/div&gt;&lt;div&gt;&amp;quot;filename+content&amp;quot;, you can create a diff between two trees without&lt;/div&gt;&lt;div&gt;actually having to unpack two trees.  Just ignore all common parts, and&lt;/div&gt;&lt;div&gt;your diff will look right.  In other words, you can effectively (and&lt;/div&gt;&lt;div&gt;efficiently) tell the difference between any two random trees by O(n)&lt;/div&gt;&lt;div&gt;where &amp;quot;n&amp;quot; is the size of the difference, rather than the size of the&lt;/div&gt;&lt;div&gt;tree. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Side note 2 on trees: since the name of a &amp;quot;blob&amp;quot; depends entirely and&lt;/div&gt;&lt;div&gt;exclusively on its contents (ie there are no names or permissions&lt;/div&gt;&lt;div&gt;involved), you can see trivial renames or permission changes by noticing&lt;/div&gt;&lt;div&gt;that the blob stayed the same.  However, renames with data changes need&lt;/div&gt;&lt;div&gt;a smarter &amp;quot;diff&amp;quot; implementation. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;CHANGESET: The &amp;quot;changeset&amp;quot; object is an object that introduces the&lt;/div&gt;&lt;div&gt;notion of history into the picture.  In contrast to the other objects,&lt;/div&gt;&lt;div&gt;it doesn&amp;#39;t just describe the physical state of a tree, it describes how&lt;/div&gt;&lt;div&gt;we got there, and why. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;A &amp;quot;changeset&amp;quot; is defined by the tree-object that it results in, the&lt;/div&gt;&lt;div&gt;parent changesets (zero, one or more) that led up to that point, and a&lt;/div&gt;&lt;div&gt;comment on what happened. Again, a changeset is not trusted per se:&lt;/div&gt;&lt;div&gt;the contents are well-defined and &amp;quot;safe&amp;quot; due to the cryptographically&lt;/div&gt;&lt;div&gt;strong signatures at all levels, but there is no reason to believe that&lt;/div&gt;&lt;div&gt;the tree is &amp;quot;good&amp;quot; or that the merge information makes sense. The&lt;/div&gt;&lt;div&gt;parents do not have to actually have any relationship with the result,&lt;/div&gt;&lt;div&gt;for example.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Note on changesets: unlike real SCM&amp;#39;s, changesets do not contain rename&lt;/div&gt;&lt;div&gt;information or file mode chane information.  All of that is implicit in&lt;/div&gt;&lt;div&gt;the trees involved (the result tree, and the result trees of the&lt;/div&gt;&lt;div&gt;parents), and describing that makes no sense in this idiotic file&lt;/div&gt;&lt;div&gt;manager.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;TRUST: The notion of &amp;quot;trust&amp;quot; is really outside the scope of &amp;quot;git&amp;quot;, but&lt;/div&gt;&lt;div&gt;it&amp;#39;s worth noting a few things. First off, since everything is hashed&lt;/div&gt;&lt;div&gt;with SHA1, you _can_ trust that an object is intact and has not been&lt;/div&gt;&lt;div&gt;messed with by external sources. So the name of an object uniquely&lt;/div&gt;&lt;div&gt;identifies a known state - just not a state that you may want to trust.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Furthermore, since the SHA1 signature of a changeset refers to the&lt;/div&gt;&lt;div&gt;SHA1 signatures of the tree it is associated with and the signatures&lt;/div&gt;&lt;div&gt;of the parent, a single named changeset specifies uniquely a whole&lt;/div&gt;&lt;div&gt;set of history, with full contents. You can&amp;#39;t later fake any step of&lt;/div&gt;&lt;div&gt;the way once you have the name of a changeset.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;So to introduce some real trust in the system, the only thing you need&lt;/div&gt;&lt;div&gt;to do is to digitally sign just _one_ special note, which includes the&lt;/div&gt;&lt;div&gt;name of a top-level changeset.  Your digital signature shows others that&lt;/div&gt;&lt;div&gt;you trust that changeset, and the immutability of the history of&lt;/div&gt;&lt;div&gt;changesets tells others that they can trust the whole history.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In other words, you can easily validate a whole archive by just sending&lt;/div&gt;&lt;div&gt;out a single email that tells the people the name (SHA1 hash) of the top&lt;/div&gt;&lt;div&gt;changeset, and digitally sign that email using something like GPG/PGP.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In particular, you can also have a separate archive of &amp;quot;trust points&amp;quot; or&lt;/div&gt;&lt;div&gt;tags, which document your (and other peoples) trust.  You may, of&lt;/div&gt;&lt;div&gt;course, archive these &amp;quot;certificates of trust&amp;quot; using &amp;quot;git&amp;quot; itself, but&lt;/div&gt;&lt;div&gt;it&amp;#39;s not something &amp;quot;git&amp;quot; does for you. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Another way of saying the same thing: &amp;quot;git&amp;quot; itself only handles content&lt;/div&gt;&lt;div&gt;integrity, the trust has to come from outside. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;&quot; style=&quot;white-space:pre&quot;&gt;	&lt;/span&gt;Current Directory Cache (&amp;quot;.dircache/index&amp;quot;)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;The &amp;quot;current directory cache&amp;quot; is a simple binary file, which contains an&lt;/div&gt;&lt;div&gt;efficient representation of a virtual directory content at some random&lt;/div&gt;&lt;div&gt;time.  It does so by a simple array that associates a set of names,&lt;/div&gt;&lt;div&gt;dates, permissions and content (aka &amp;quot;blob&amp;quot;) objects together.  The cache&lt;/div&gt;&lt;div&gt;is always kept ordered by name, and names are unique at any point in&lt;/div&gt;&lt;div&gt;time, but the cache has no long-term meaning, and can be partially&lt;/div&gt;&lt;div&gt;updated at any time. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;In particular, the &amp;quot;current directory cache&amp;quot; certainly does not need to&lt;/div&gt;&lt;div&gt;be consistent with the current directory contents, but it has two very&lt;/div&gt;&lt;div&gt;important attributes:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt; (a) it can re-generate the full state it caches (not just the directory&lt;/div&gt;&lt;div&gt;     structure: through the &amp;quot;blob&amp;quot; object it can regenerate the data too)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;     As a special case, there is a clear and unambiguous one-way mapping&lt;/div&gt;&lt;div&gt;     from a current directory cache to a &amp;quot;tree object&amp;quot;, which can be&lt;/div&gt;&lt;div&gt;     efficiently created from just the current directory cache without&lt;/div&gt;&lt;div&gt;     actually looking at any other data.  So a directory cache at any&lt;/div&gt;&lt;div&gt;     one time uniquely specifies one and only one &amp;quot;tree&amp;quot; object (but&lt;/div&gt;&lt;div&gt;     has additional data to make it easy to match up that tree object&lt;/div&gt;&lt;div&gt;     with what has happened in the directory)&lt;/div&gt;&lt;div&gt;    &lt;/div&gt;&lt;div&gt;and&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt; (b) it has efficient methods for finding inconsistencies between that&lt;/div&gt;&lt;div&gt;     cached state (&amp;quot;tree object waiting to be instantiated&amp;quot;) and the&lt;/div&gt;&lt;div&gt;     current state. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Those are the two ONLY things that the directory cache does.  It&amp;#39;s a&lt;/div&gt;&lt;div&gt;cache, and the normal operation is to re-generate it completely from a&lt;/div&gt;&lt;div&gt;known tree object, or update/compare it with a live tree that is being&lt;/div&gt;&lt;div&gt;developed.  If you blow the directory cache away entirely, you haven&amp;#39;t&lt;/div&gt;&lt;div&gt;lost any information as long as you have the name of the tree that it&lt;/div&gt;&lt;div&gt;described. &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;(But directory caches can also have real information in them: in&lt;/div&gt;&lt;div&gt;particular, they can have the representation of an intermediate tree&lt;/div&gt;&lt;div&gt;that has not yet been instantiated.  So they do have meaning and usage&lt;/div&gt;&lt;div&gt;outside of caching - in one sense you can think of the current directory&lt;/div&gt;&lt;div&gt;cache as being the &amp;quot;work in progress&amp;quot; towards a tree commit).&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;a href=&quot;https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290&quot;&gt;source&lt;/a&gt;&lt;/u&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/2561971977867195376/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=2561971977867195376' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2561971977867195376'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2561971977867195376'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2014/11/git-stupid-content-tracker.html' title='GIT - the stupid content tracker'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-486636993716195786</id><published>2014-08-11T18:03:00.000+01:00</published><updated>2014-08-11T18:04:02.709+01:00</updated><title type='text'>Android platform version</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;table style=&quot;font-size:14px;margin:0.5em 1em 1em 0px;border-collapse:collapse;border-spacing:0px;border:0px;width:699px;font-family:Roboto,sans-serif;line-height:19px;background-color:rgb(247,247,247)&quot;&gt;&lt;tbody&gt;&lt;tr&gt;    &lt;th style=&quot;padding:4px 12px;vertical-align:top;color:rgb(255,255,255);border:1px solid rgb(221,221,221);font-weight:normal;background-color:rgb(153,153,153)&quot;&gt;Platform Version&lt;/th&gt;&lt;th style=&quot;padding:4px 12px;vertical-align:top;color:rgb(255,255,255);border:1px solid rgb(221,221,221);font-weight:normal;background-color:rgb(153,153,153)&quot;&gt;    API Level&lt;/th&gt;&lt;th style=&quot;padding:4px 12px;vertical-align:top;color:rgb(255,255,255);border:1px solid rgb(221,221,221);font-weight:normal;background-color:rgb(153,153,153)&quot;&gt;VERSION_CODE&lt;/th&gt;&lt;th style=&quot;padding:4px 12px;vertical-align:top;color:rgb(255,255,255);border:1px solid rgb(221,221,221);font-weight:normal;background-color:rgb(153,153,153)&quot;&gt;    Notes&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.4.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 4.4&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/19/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;19&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#KITKAT&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;KITKAT&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/kitkat.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.3.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 4.3&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/18/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;18&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN_MR2&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;JELLY_BEAN_MR2&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/jelly-bean.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.2.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 4.2, 4.2.2&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/17/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;17&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN_MR1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;JELLY_BEAN_MR1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/jelly-bean.html#android-42&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.1.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 4.1, 4.1.1&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/16/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;16&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#JELLY_BEAN&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;JELLY_BEAN&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/jelly-bean.html#android-41&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.0.3.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 4.0.3, 4.0.4&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/15/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;15&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ICE_CREAM_SANDWICH_MR1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;ICE_CREAM_SANDWICH_MR1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td rowspan=&quot;2&quot; style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.0-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-4.0.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 4.0, 4.0.1, 4.0.2&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/14/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;14&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ICE_CREAM_SANDWICH&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;ICE_CREAM_SANDWICH&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-3.2.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 3.2&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/13/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;13&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB_MR2&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;HONEYCOMB_MR2&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;    &lt;a href=&quot;http://developer.android.com/about/versions/android-3.1.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 3.1.x&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;    &lt;a href=&quot;http://developer.android.com/sdk/api_diff/12/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;12&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;    &lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB_MR1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;HONEYCOMB_MR1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-3.1-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-3.0.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 3.0.x&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/11/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;11&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#HONEYCOMB&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;HONEYCOMB&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-3.0-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.3.3.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 2.3.4&lt;br style=&quot;margin-bottom:0px&quot;&gt;    Android 2.3.3&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/10/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;10&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#GINGERBREAD_MR1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;GINGERBREAD_MR1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td rowspan=&quot;2&quot; style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.3-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.3.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 2.3.2&lt;br&gt;    Android 2.3.1&lt;br style=&quot;margin-bottom:0px&quot;&gt;Android 2.3&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/9/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;9&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#GINGERBREAD&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;GINGERBREAD&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.2.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 2.2.x&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/8/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;8&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#FROYO&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;FROYO&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.2-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.1.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 2.1.x&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/7/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;7&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR_MR1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;ECLAIR_MR1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td rowspan=&quot;3&quot; style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.0-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.0.1.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 2.0.1&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/6/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;6&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR_0_1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;ECLAIR_0_1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-2.0.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 2.0&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/5/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;5&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#ECLAIR&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;ECLAIR&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-1.6.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 1.6&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/4/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;4&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#DONUT&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;DONUT&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-1.6-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-1.5.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 1.5&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/sdk/api_diff/3/changes.html&quot; title=&quot;Diff Report&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;3&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#CUPCAKE&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;CUPCAKE&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-1.5-highlights.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Platform Highlights&lt;/a&gt;&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;a href=&quot;http://developer.android.com/about/versions/android-1.1.html&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;Android 1.1&lt;/a&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;2&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;  &lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BASE_1_1&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;BASE_1_1&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;    Android 1.0&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;1&lt;/td&gt;&lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;    &lt;code style=&quot;font-size:13px;color:rgb(0,102,0);line-height:14px;margin-bottom:0px&quot;&gt;&lt;a href=&quot;http://developer.android.com/reference/android/os/Build.VERSION_CODES.html#BASE&quot; style=&quot;color:rgb(37,138,175);text-decoration:none;margin-bottom:0px&quot;&gt;BASE&lt;/a&gt;&lt;/code&gt;&lt;/td&gt;    &lt;td style=&quot;padding:4px 12px;vertical-align:top;border:1px solid rgb(221,221,221);background-color:inherit&quot;&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://developer.android.com/guide/topics/manifest/uses-sdk-element.html&quot;&gt;source&lt;/a&gt;&lt;/div&gt;    &lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/486636993716195786/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=486636993716195786' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/486636993716195786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/486636993716195786'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2014/08/android-platform-version.html' title='Android platform version'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-463967592321304271</id><published>2014-03-18T10:34:00.000+01:00</published><updated>2014-03-18T10:35:03.522+01:00</updated><title type='text'>Android Logging</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;Android Log.v(), Log.d(), Log.i(), Log.w(), Log.e():&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;line-height:17.804800033569336px;font-size:14px;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;    &lt;li&gt;When to use each one?&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;    &lt;li&gt;&lt;strong style=&quot;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;Log.e&lt;/strong&gt;&lt;span style=&quot;background-color:transparent&quot;&gt;: This is for when bad stuff happens. Use this tag in places like inside a catch statment. You&lt;/span&gt;&lt;em style=&quot;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;know&lt;/em&gt;&lt;span style=&quot;background-color:transparent&quot;&gt; and error has occurred and therefore you&amp;#39;re logging an error&lt;/span&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;    &lt;li&gt;&lt;strong style=&quot;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;Log.w&lt;/strong&gt;&lt;span style=&quot;background-color:transparent&quot;&gt;: Use this when you suspect something shady is going on. You may not be completely in full on error mode, but maybe you recovered from some unexpected behavior. Basically, use this to log stuff you didn&amp;#39;t expect to happen but isn&amp;#39;t necessarily an error. Kind of like a &amp;quot;hey, this happened, and it&amp;#39;s weird, we should look into it.&amp;quot;&lt;/span&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;    &lt;li&gt;&lt;strong style=&quot;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;Log.i&lt;/strong&gt;&lt;span style=&quot;background-color:transparent&quot;&gt;: Use this to post useful information to the log. For example: that you have successfully connected to a server. Basically use it to report successes.&lt;/span&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;    &lt;li&gt;&lt;strong style=&quot;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;Log.d&lt;/strong&gt;&lt;span style=&quot;background-color:transparent&quot;&gt;: Use this for debugging purposes. If you want to print out a bunch of messages so you can log the exact flow of your program, use this. If you want to keep a log of variable values, use this.&lt;/span&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;    &lt;li&gt;&lt;strong style=&quot;background-color:transparent;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;Log.v&lt;/strong&gt;&lt;span style=&quot;background-color:transparent&quot;&gt;: Use this when you want to go absolutely nuts with your logging. If for some reason you&amp;#39;ve decided to log every little thing in a particular part of your app, use the Log.v tag.&lt;/span&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;&lt;p style=&quot;clear:both;vertical-align:baseline;line-height:17.804800033569336px;font-size:14px;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;margin:0px 0px 1em;border:0px;padding:0px&quot;&gt;      &lt;br&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;blockquote style=&quot;margin:0px 0px 0px 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;p style=&quot;clear:both;vertical-align:baseline;line-height:17.804800033569336px;font-size:14px;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;margin:0px 0px 1em;border:0px;padding:0px&quot;&gt;      And as a bonus :&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul&gt;&lt;li style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;    &lt;strong style=&quot;background-color:transparent;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;Log.wtf&lt;/strong&gt;&lt;span style=&quot;background-color:transparent;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt;: Use this when stuff goes absolutely, horribly, holy-crap wrong. You know those catch blocks where you&amp;#39;re catching errors that you &lt;/span&gt;&lt;em style=&quot;background-color:transparent;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px;margin:0px;padding:0px;border:0px;vertical-align:baseline&quot;&gt;never&lt;/em&gt;&lt;span style=&quot;background-color:transparent;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px&quot;&gt; should get...yea, if you wanna log them use Log.wtf&lt;/span&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;ul style=&quot;list-style-position:initial;vertical-align:baseline;margin:0px 0px 1em 30px;border:0px;padding:0px&quot;&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=&quot;font-family:Arial,&amp;#39;Liberation Sans&amp;#39;,&amp;#39;DejaVu Sans&amp;#39;,sans-serif;font-size:14px;line-height:17.804800033569336px;background-color:transparent&quot;&gt;wtf -&amp;gt; &lt;/span&gt;&lt;font face=&quot;Arial, Liberation Sans, DejaVu Sans, sans-serif&quot;&gt;&lt;span style=&quot;font-size:14px;line-height:17.804800033569336px&quot;&gt;What a Terrible Failure&lt;/span&gt;&lt;/font&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;  &lt;/ul&gt;&lt;div&gt;&lt;font color=&quot;#000000&quot; face=&quot;Arial, Liberation Sans, DejaVu Sans, sans-serif&quot;&gt;&lt;span style=&quot;font-size:14px;line-height:17.804800033569336px&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote style=&quot;font-family:arial,sans-serif;font-size:13px;margin:0px 0px 0px 40px;border:none;padding:0px&quot;&gt;    &lt;u&gt;href&lt;/u&gt;:&lt;/blockquote&gt;&lt;div style=&quot;font-family:arial,sans-serif;font-size:13px&quot;&gt;&lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;  &lt;div&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://developer.android.com/reference/android/util/Log.html&quot;&gt;http://developer.android.com/reference/android/util/Log.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://stackoverflow.com/questions/7959263/android-log-v-log-d-log-i-log-w-log-e-when-to-use-each-one&quot;&gt;http://stackoverflow.com/questions/7959263/android-log-v-log-d-log-i-log-w-log-e-when-to-use-each-one&lt;/a&gt;&lt;br&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/463967592321304271/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=463967592321304271' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/463967592321304271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/463967592321304271'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2014/03/android-logging.html' title='Android Logging'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-538212685648405614</id><published>2014-03-17T10:55:00.001+01:00</published><updated>2014-03-17T10:55:43.994+01:00</updated><title type='text'>Map . Data Structure</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;div&gt;There are 4 commonly used  implementations of Map in Java SE:&lt;/div&gt;&lt;blockquote style=&quot;margin:0px 0px 0px 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;HashMap, TreeMap, Hashtable and LinkedHashMap. If we use one sentence to describe each implementation, it would be the following:    &lt;/div&gt;    &lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;HashMap&lt;/b&gt; is implemented as a hash table, and there is no ordering on keys or values. &lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;TreeMap &lt;/b&gt;is implemented based on red-black tree structure, and it is ordered by the key. &lt;br&gt;    &lt;/li&gt;&lt;li&gt;&lt;b&gt;LinkedHashMap &lt;/b&gt;preserves the insertion order&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Hashtable &lt;/b&gt;is synchronized, in contrast to HashMap.&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;blockquote style=&quot;margin:0px 0px 0px 40px;border:none;padding:0px&quot;&gt;&lt;blockquote style=&quot;margin:0px 0px 0px 40px;border:none;padding:0px&quot;&gt;    &lt;div&gt;This gives us the reason that HashMap should be used if it is thread-safe, since Hashtable has overhead for synchronization. &lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;    &lt;div&gt;&lt;u&gt;href&lt;/u&gt;:&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://developer.android.com/reference/java/util/Map.html&quot;&gt;http://developer.android.com/reference/java/util/Map.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://java.dzone.com/articles/hashmap-vs-treemap-vs&quot;&gt;http://java.dzone.com/articles/hashmap-vs-treemap-vs&lt;/a&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;--&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;PS: What is the difference between implementing Comparable and Comparator?&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Comparable&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;A comparable object is capable of comparing itself with another object. The class itself must implements the java.lang.Comparable interface in order to be able to compare its instances.&lt;/li&gt;    &lt;/ul&gt;&lt;li&gt;&lt;b&gt;Comparator&lt;/b&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;A comparator object is capable of comparing two different objects. The class is not comparing its instances, but some other class&#39;s instances. This comparator class must implement the java.util.Comparator interface.&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;u&gt;href&lt;/u&gt;:&lt;/div&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;/div&gt;  &lt;div&gt;  &lt;ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html&quot;&gt;http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://developer.android.com/reference/java/util/Collections.html&quot;&gt;http://developer.android.com/reference/java/util/Collections.html&lt;/a&gt;&lt;/li&gt;    &lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/538212685648405614/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=538212685648405614' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/538212685648405614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/538212685648405614'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2014/03/map-data-structure.html' title='Map . Data Structure'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-6748811857258670278</id><published>2014-02-19T11:38:00.001+01:00</published><updated>2014-02-19T11:38:54.796+01:00</updated><title type='text'>DLL em uso ?</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;&lt;div&gt;Para descoberta dos processos que referenciam/usam/bloqueiam a DLL:&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Command line : &lt;strong style=&quot;color:rgb(51,51,51);font-family:Verdana;line-height:18.165599822998047px;background-color:rgb(206,213,219)&quot;&gt;tasklist /m &lt;em&gt;thelocked.dll&lt;/em&gt;&lt;/strong&gt;&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;img src=&quot;http://blogs.msdn.com/blogfiles/asgoyal/WindowsLiveWriter/ThreewaystofindifanISAPIfilterisloaded.0_5B52/image_8.png&quot;&gt;&lt;/div&gt;  &lt;/blockquote&gt;  &lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/6748811857258670278/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=6748811857258670278' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6748811857258670278'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6748811857258670278'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2014/02/dll-em-uso.html' title='DLL em uso ?'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-4384091423801414264</id><published>2013-10-30T10:31:00.001+01:00</published><updated>2013-10-30T21:42:43.668+01:00</updated><title type='text'>Porreiro pah !</title><content type='html'>&lt;div class=&quot;tr_bq&quot;&gt;Acabei de receber um email das Finanças.&lt;/div&gt;Apeteceu-me responder : &quot;Porreiro pah !&quot;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Exmo.(a) Senhor(a)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;ZéCarlos&lt;br /&gt;&amp;nbsp;NIF: 000000000&lt;br /&gt;&lt;br /&gt;A Autoridade Tributária e Aduaneira (AT) encontra-se já a desenvolver os mecanismos de atribuição do crédito de IRS que lhe cabe, em resultado de ter vindo a exigir a inserção do seu Número de Identificação Fiscal (NIF) nas faturas correspondentes a transações que lhe foram efetuadas.&lt;br /&gt;Como sabe, esse crédito corresponde a 15% do IVA suportado (com um limite máximo de € 250) nas prestações de serviços efetuadas pelas empresas enquadradas nos sectores de atividade de alojamento e restauração, cabeleireiros e reparação de automóveis e motociclos.&lt;br /&gt;Cumpre-me agradecer-lhe o papel que, por via da prática destes simples atos de exigência de fatura nas transações em que intervém, tem desempenhado no esforço de combate à economia paralela e à evasão fiscal em Portugal. A AT cumprirá também o seu papel no processo, zelando para que os seus impostos não sejam desviados para fins ilícitos.&lt;br /&gt;Exigir fatura é um direito cívico, que garante que os impostos que pagamos são entregues ao Estado e é também um dever, porque a tarefa de diminuir os graves custos financeiros e sociais que suportamos em razão da existência da economia paralela, nos cabe a todos, enquanto cidadãos.&lt;br /&gt;Cerca de 2 milhões de portugueses solicitaram a inserção do seu NIF nas faturas referentes às atividades que concedem benefício fiscal e inseriram faturas no Portal das Finanças, contribuindo assim para um sistema fiscal mais justo.&lt;br /&gt;&lt;br /&gt;Com os melhores cumprimentos,O Diretor-Geral&lt;br /&gt;José António de Azevedo Pereira&lt;/blockquote&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/4384091423801414264/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=4384091423801414264' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/4384091423801414264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/4384091423801414264'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2013/10/porreiro-pah.html' title='Porreiro pah !'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-9154116222060478522</id><published>2013-03-06T10:11:00.000+01:00</published><updated>2013-03-06T10:12:34.728+01:00</updated><title type='text'>FYI : CRM within Gmail</title><content type='html'>&lt;b&gt;&lt;a href=&quot;http://www.streak.com/&quot; target=&quot;_blank&quot;&gt;http://www.streak.com/&lt;/a&gt;&lt;/b&gt;&lt;br&gt;&lt;div class=&quot;gmail_quote&quot;&gt;&lt;div lang=&quot;PT&quot; link=&quot;blue&quot; vlink=&quot;purple&quot;&gt;&lt;div&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:35.4pt&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;Streak is a Google Chrome Extension that adds extra tools to Gmail letting you manage relationships   directly within your inbox.&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;br&gt;  &lt;br&gt;  &lt;span style=&quot;background:white&quot;&gt;Managing relationships is done by grouping email conversations into&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;a href=&quot;http://support.streak.com/customer/portal/articles/310054-what-is-a-box-?t=47560&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:#254689;border:none windowtext 1.0pt;padding:0cm;background:white;text-decoration:none&quot;&gt;Boxes&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt; and   placing those Boxes into &lt;/span&gt;&lt;b&gt;&lt;a href=&quot;http://support.streak.com/customer/portal/articles/310053-what-is-a-pipeline-&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:#254689;border:none windowtext 1.0pt;padding:0cm;background:white;text-decoration:none&quot;&gt;Pipelines&lt;/span&gt;&lt;/a&gt;&lt;/b&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;.  &lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:35.4pt&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;Streak&amp;#39;s primary use is for Sales and Customer Support but is flexible enough to be useful for everything   from a personal To-Do list to Project Management.&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:35.4pt&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-left:88.8pt&quot;&gt;  &lt;u&gt;&lt;/u&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;span&gt;-&lt;span style=&quot;font:7.0pt &amp;quot;Times New Roman&amp;quot;&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;/u&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;A  &lt;b&gt;Box&lt;/b&gt; is where you put all the emails, files, contacts and information related to something you want to track. If you&amp;#39;re using Streak for sales then you&amp;#39;d use a Box to store all the conversations and information related to a particular deal. If you&amp;#39;re   doing hiring then you&amp;#39;d have one Box for each candidate.&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:70.8pt&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-left:88.8pt&quot;&gt;  &lt;u&gt;&lt;/u&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;span&gt;-&lt;span style=&quot;font:7.0pt &amp;quot;Times New Roman&amp;quot;&quot;&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;/u&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;A  &lt;b&gt;Pipeline&lt;/b&gt; is used to manage some workflow or process that has multiple activities at any given time. The defining characteristics of a Pipeline are the&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://support.streak.com/customer/portal/articles/312115-what-is-a-stage-&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:#254689;border:none windowtext 1.0pt;padding:0cm;background:white;text-decoration:none&quot;&gt;Stages&lt;/span&gt;&lt;/a&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt; of   the Pipeline and the Columns that apply to each&lt;span&gt; &lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://support.streak.com/customer/portal/articles/310054-what-is-a-box-&quot; target=&quot;_blank&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;;color:#254689;border:none windowtext 1.0pt;padding:0cm;background:white;text-decoration:none&quot;&gt;Box&lt;/span&gt;&lt;/a&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;.  &lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;margin-left:124.8pt&quot;&gt;  &lt;u&gt;&lt;/u&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;font-size:10.0pt;font-family:&amp;quot;Courier New&amp;quot;&quot;&gt;&lt;span&gt;o&lt;span style=&quot;font:7.0pt &amp;quot;Times New Roman&amp;quot;&quot;&gt;     &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;u&gt;&lt;/u&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;An example that illustrates best would be a pipeline that keeps track of people that owe me money. For stages I&amp;#39;d   have &amp;quot;Owes&amp;quot;, &amp;quot;Partially paid&amp;quot;, &amp;quot;Fully paid&amp;quot;, &amp;quot;Forgiven&amp;quot;. And then for columns I&amp;#39;d have one column to know when I gave the person the money, another column to track how much they owe me, and another column to track how much they&amp;#39;ve paid me back. I can also   do this with the people I owe money to.&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:35.4pt&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:35.4pt&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;Streak is currently in beta and is free to use. We will offer a paid version in the future but we   always plan on having a free version to use.&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class=&quot;MsoNormal&quot; style=&quot;margin-left:70.8pt&quot;&gt;&lt;span style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-yAsZAmnHtws/UTcIgr6O8EI/AAAAAAAAlkA/39r8JFCIecY/s1600/image001-754729.png&quot;&gt;&lt;img src=&quot;http://2.bp.blogspot.com/-yAsZAmnHtws/UTcIgr6O8EI/AAAAAAAAlkA/39r8JFCIecY/s320/image001-754729.png&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5852155598427058242&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;   &lt;/span&gt;&lt;span style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;a href=&quot;http://3.bp.blogspot.com/-YIvjYfjO8HQ/UTcIhPTpEhI/AAAAAAAAlkM/j4V3qIaW8Nw/s1600/image002-756862.png&quot;&gt;&lt;img src=&quot;http://3.bp.blogspot.com/-YIvjYfjO8HQ/UTcIhPTpEhI/AAAAAAAAlkM/j4V3qIaW8Nw/s320/image002-756862.png&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5852155607928869394&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang=&quot;EN-US&quot; style=&quot;background:white;font-size:10.0pt;font-family:&amp;quot;Trebuchet MS&amp;quot;,&amp;quot;sans-serif&amp;quot;&quot;&gt;&lt;u&gt;&lt;/u&gt;&lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class=&quot;MsoNormal&quot;&gt;&lt;span lang=&quot;EN-US&quot;&gt;&lt;u&gt;&lt;/u&gt; &lt;u&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/div&gt;  &lt;/div&gt;    &lt;/div&gt;&lt;br&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/9154116222060478522/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=9154116222060478522' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/9154116222060478522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/9154116222060478522'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2013/03/fyi-crm-within-gmail_9899.html' title='FYI : CRM within Gmail'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-yAsZAmnHtws/UTcIgr6O8EI/AAAAAAAAlkA/39r8JFCIecY/s72-c/image001-754729.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-5408375639145379592</id><published>2012-11-20T16:09:00.000+01:00</published><updated>2012-11-20T16:10:19.762+01:00</updated><title type='text'>&quot;KEY to success&quot;</title><content type='html'>&lt;img src=&quot;http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/100000/70000/1000/900/171938/171938.strip.print.gif&quot;&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/5408375639145379592/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=5408375639145379592' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/5408375639145379592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/5408375639145379592'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/11/key-to-success.html' title='&quot;KEY to success&quot;'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-1552312477091939551</id><published>2012-11-14T15:20:00.000+01:00</published><updated>2012-11-14T15:21:01.828+01:00</updated><title type='text'>Android Dev : Reverse Engineer (decompile) an APK to Java code</title><content type='html'>&lt;div class=&quot;gmail_quote&quot;&gt;&lt;ol style=&quot;font-family:Tahoma;font-size:13px&quot;&gt;&lt;li&gt;Unzip APK as zip file&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://code.google.com/p/dex2jar/&quot;&gt;Dex2jar&lt;/a&gt; on classes.dex&lt;/li&gt;&lt;li&gt;Open jar in &lt;a href=&quot;http://java.decompiler.free.fr/?q=jdgui&quot;&gt;JD-GUI&lt;/a&gt;&lt;/li&gt;    &lt;/ol&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/1552312477091939551/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=1552312477091939551' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/1552312477091939551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/1552312477091939551'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/11/android-dev-reverse-engineer-decompile.html' title='Android Dev : Reverse Engineer (decompile) an APK to Java code'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-2399506125922423011</id><published>2012-11-14T14:40:00.000+01:00</published><updated>2012-11-14T14:41:25.736+01:00</updated><title type='text'>Android Dev : ProGuard</title><content type='html'>&lt;div&gt;&lt;a href=&quot;http://developer.android.com/tools/help/proguard.html&quot;&gt;http://developer.android.com/tools/help/proguard.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex&quot;&gt;    The ProGuard tool &lt;b&gt;shrinks&lt;/b&gt;, &lt;b&gt;optimizes&lt;/b&gt;, and &lt;b&gt;obfuscates &lt;/b&gt;your code by removing unused code and renaming classes, fields, and methods with semantically obscure names.&lt;/blockquote&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex&quot;&gt;    The result is a &lt;b&gt;smaller sized .apk&lt;/b&gt; file that is &lt;b&gt;more difficult to reverse engineer&lt;/b&gt;. &lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/2399506125922423011/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=2399506125922423011' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2399506125922423011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2399506125922423011'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/11/android-dev-proguard.html' title='Android Dev : ProGuard'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-4639613081417097089</id><published>2012-10-30T14:52:00.000+01:00</published><updated>2012-10-30T14:53:29.065+01:00</updated><title type='text'>Plataformas sociais</title><content type='html'>&lt;div&gt;&lt;br&gt;&lt;/div&gt;  &lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Twitter = perspectives&lt;/b&gt;.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Twitter is great for getting immediate perspectives on news and events. In other words, if you want to learn that there was an earthquake in Chile before CNN, and you like getting updates from people at ground zero, then Twitter is for you. In short, Twitter is for real-time perspectives.&lt;/li&gt;    &lt;/ul&gt;  &lt;li&gt;&lt;b&gt;Facebook = people&lt;/b&gt;.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Facebook is the way to learn what&#39;s going on in the lives of people that you already know (friends, relatives and colleagues). It&#39;s great for learning that their cats rolled over, they went to a great party or they had sex, children or grandchildren. In short, Facebook is for people.&lt;/li&gt;    &lt;/ul&gt;  &lt;li&gt;&lt;b&gt;Google Plus = passions&lt;/b&gt;.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Google Plus enables you to pursue your passions with people who you don&#39;t know. Your 50 close friends and family on Facebook may not share your passion for photography, but on Google+ you can have a blast with photographers that you didn&#39;t know. In short, Google+ is for passions.&lt;/li&gt;    &lt;/ul&gt;  &lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;from &lt;a href=&quot;http://www.openforum.com/articles/should-you-join-google-plus&quot; target=&quot;_blank&quot;&gt;http://www.openforum.com/articles/should-you-join-google-plus&lt;/a&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/4639613081417097089/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=4639613081417097089' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/4639613081417097089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/4639613081417097089'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/10/plataformas-sociais.html' title='Plataformas sociais'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-5422756929897689732</id><published>2012-10-30T09:31:00.000+01:00</published><updated>2012-10-30T09:32:33.590+01:00</updated><title type='text'>CrossOver for free on Wednesday, October 31</title><content type='html'>&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex&quot;&gt;&lt;span style=&quot;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;I am happy to announce that we will be providing a copy of CrossOver for free to all comers this Halloween, Wednesday, October 31, from 00:00 until 23:59 pm, Central Daylight Time.&lt;/span&gt;&lt;/blockquote&gt;    &lt;div&gt;&lt;span style=&quot;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;To sign up for your free copy or free 12 month extension, simply visit this web page:&lt;/span&gt;&lt;br style=&quot;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;    &lt;span style=&quot;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;  &lt;/span&gt;&lt;a href=&quot;http://flock.codeweavers.com/&quot; target=&quot;_blank&quot; style=&quot;color:rgb(17,85,204);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;http://flock.codeweavers.com&lt;/a&gt; &lt;span style=&quot;color:rgb(34,34,34);font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)&quot;&gt;any time on October 31, 2012, from 00:00 until 23:59 CDT.&lt;/span&gt;&lt;/div&gt;    </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/5422756929897689732/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=5422756929897689732' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/5422756929897689732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/5422756929897689732'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/10/crossover-for-free-on-wednesday-october.html' title='CrossOver for free on Wednesday, October 31'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-6362139189894756678</id><published>2012-08-07T13:36:00.001+01:00</published><updated>2012-08-07T14:08:16.070+01:00</updated><title type='text'>What is the Mars Curiosity Rover&#39;s software built in?</title><content type='html'>&lt;div&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left-color: rgb(204,204,204); border-left-style: solid; border-left-width: 1px; margin: 0px 0px 0px 0.8ex; padding-left: 1ex;&quot;&gt;The code is based on that of MER (Spirit and Opportunity), which were based off of their first lander, MPF (Sojourner). It&#39;s 3.5 million lines of C (much of it autogenerated), running on a RA50 processor manufactured by BAE and the VxWorks Operating system. Over a million lines were hand coded.&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left-color: rgb(204,204,204); border-left-style: solid; border-left-width: 1px; margin: 0px 0px 0px 0.8ex; padding-left: 1ex;&quot;&gt;The code is implemented as 150 separate modules, each performing a different function. Highly coupled modules are organized into Components that abstract the modules they contain, and &quot;specify either a specific function, activity, or behavior.&quot; These components are futher organized into layers, and there are &quot;no more than 10 top-level components.&quot;&lt;/blockquote&gt;&lt;br /&gt;&lt;blockquote class=&quot;gmail_quote&quot; style=&quot;border-left-color: rgb(204,204,204); border-left-style: solid; border-left-width: 1px; margin: 0px 0px 0px 0.8ex; padding-left: 1ex;&quot;&gt;It does appear that the testing scripts were written in Python.&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;span style=&quot;color: #0000ee; text-decoration: underline;&quot;&gt;&lt;a href=&quot;http://programmers.stackexchange.com/questions/159637/what-is-the-mars-curiosity-rovers-software-built-in/159638#159638?&quot;&gt;source&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #0000ee; text-decoration: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;Para os interessados numa leitura mais completa, sugiro &lt;a href=&quot;http://lars-lab.jpl.nasa.gov/JPL_Coding_Standard_C.pdf&quot;&gt;&quot;JPL_Coding_Standard_C&quot;&lt;/a&gt;&amp;nbsp;(~22 páginas).&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;blockquote class=&quot;tr_bq&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&quot;Scope :&amp;nbsp;The coding rules defined here primarily target the development of mission critical flight&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;software written in the C programming language. This means that the rules are focused&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;on &amp;nbsp;embedded software applications, which generally operate under stricter resource&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;constraints than, e.g., ground software.&quot;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/6362139189894756678/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=6362139189894756678' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6362139189894756678'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6362139189894756678'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/08/what-is-mars-curiosity-rovers-software.html' title='What is the Mars Curiosity Rover&#39;s software built in?'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-3268574911755656159</id><published>2012-05-21T11:51:00.002+01:00</published><updated>2012-05-21T11:51:32.392+01:00</updated><title type='text'>Wallet TMN</title><content type='html'>&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #1f497d;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #1f497d;&quot;&gt;Relativamente a Mobilidade, a TMN está sempre uns passos à frente.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #1f497d;&quot;&gt;Agora já com pagamentos por NFC, SMS, USSD e QR Code.&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;color: #1f497d;&quot;&gt;&lt;a href=&quot;http://2.bp.blogspot.com/-4N2fCL6I7I0/T7oeFiLBI6I/AAAAAAAAlgA/xQf7mTVuST4/s1600/tmn.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;264&quot; src=&quot;http://2.bp.blogspot.com/-4N2fCL6I7I0/T7oeFiLBI6I/AAAAAAAAlgA/xQf7mTVuST4/s640/tmn.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #1f497d;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;color: #1f497d;&quot;&gt;Mais &lt;a href=&quot;http://wallet.tmn.pt/sobre.html#como_funciona&quot;&gt;aqui&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/3268574911755656159/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=3268574911755656159' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/3268574911755656159'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/3268574911755656159'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/05/wallet-tmn.html' title='Wallet TMN'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-4N2fCL6I7I0/T7oeFiLBI6I/AAAAAAAAlgA/xQf7mTVuST4/s72-c/tmn.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-9199333403938114123</id><published>2012-05-21T08:25:00.004+01:00</published><updated>2012-05-21T08:25:58.556+01:00</updated><title type='text'>HP since 1956</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://i.imgur.com/GKks1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://i.imgur.com/GKks1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/9199333403938114123/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=9199333403938114123' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/9199333403938114123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/9199333403938114123'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/05/hp-since-1956.html' title='HP since 1956'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-8211912937008152228</id><published>2012-05-20T21:31:00.000+01:00</published><updated>2012-05-20T21:32:20.039+01:00</updated><title type='text'>Samsung SIII ROM Leaks</title><content type='html'>, bem como todas as apps internas.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Para os curiosos pelo S-Voice, podem fazer o download e exprimentar (nota: os servidores da Samsung filtram por equipamento, &amp;quot;portantos&amp;quot; tem que usar Samsung também)&lt;/div&gt;    &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.androidpolice.com/2012/05/19/full-galaxy-s-iii-android-4-0-4-rom-leaked-s-voice-and-all-the-other-goodies-up-for-grabs/&quot;&gt;link&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;table style=&quot;border-collapse:collapse;margin:5px 10px;color:rgb(0,0,0);font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(240,243,252);font-size:small&quot;&gt;    &lt;thead&gt;&lt;tr&gt;&lt;th align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;text-align:left;border:1px solid rgb(238,238,238)&quot;&gt;Folder&lt;/th&gt;&lt;th align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;text-align:left;border:1px solid rgb(238,238,238)&quot;&gt;    Size&lt;/th&gt;&lt;th align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;text-align:left;border:1px solid rgb(238,238,238)&quot;&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    /app&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;435.5mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;Application folder, biggest of them all. The biggest percentage is &lt;span class=&quot; keyNavAnnotation&quot;&gt;[2] &lt;/span&gt;&lt;a href=&quot;http://i.imgur.com/xP1vW.png&quot; class=&quot;imgScanned hoverZoomLink hasListener visited&quot; type=&quot;IMAGE&quot; name=&quot;img4&quot; style=&quot;text-decoration:none;color:rgb(51,102,153)&quot;&gt;indeed TouchWiz Apps&lt;/a&gt;&lt;a class=&quot;toggleImage expando-button image commentImg  collapsed&quot; style=&quot;color:gray;float:none;height:23px;width:23px;margin:2px 6px 2px 4px;background-image:url(&amp;#39;http://e.thumbs.redditmedia.com/r22WT2K4sio9Bvev.png&amp;#39;);background-color:white;font-size:x-small;font-style:italic;padding:0px;vertical-align:top!important;max-width:23px;max-height:23px;display:inline-block;background-repeat:no-repeat no-repeat&quot;&gt; &lt;/a&gt;, with top 30 out of 187 APKs taking up 283MB.&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/lib&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;206.4mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    Proprietary drivers, codecs, thing you won&amp;#39;t want to remove.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/hdic&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    147.6mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;Localisation for about 24 languages, you could shrink this dramatically.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    /framework&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;57.7mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;Android framework, nothing you could shrink here.&lt;/td&gt;    &lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/tts&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;58.8mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    Text-to-speech libraries, again, shrinkable.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/media&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    27.0mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;Ringtones, alarms, animations&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    /vendor&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;25.8mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;More drivers&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;    &lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/etc&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;12.0mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/usr&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;10.0mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/bin&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;6.8mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/fonts&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;9.0mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/preloaddata&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;7.3mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/vsc&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;3.6mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/voicebargeindata&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;2.3mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/wakeupdata&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;1.5mB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/cameradata&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;720kB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;/xbin&lt;/td&gt;&lt;td align=&quot;right&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;64kB&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;margin:0px;padding:1px 3px;border:1px solid rgb(238,238,238)&quot;&gt;    &lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style=&quot;margin:5px 0px;padding:0px;font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(240,243,252)&quot;&gt;Total 1031mB, and another 200mB for the CSC, Modem and Kernel.&lt;/p&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/8211912937008152228/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=8211912937008152228' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/8211912937008152228'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/8211912937008152228'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/05/samsung-siii-rom-leaks.html' title='Samsung SIII ROM Leaks'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-3750758282264257090</id><published>2012-05-16T22:31:00.000+01:00</published><updated>2012-05-16T22:33:52.891+01:00</updated><title type='text'>&quot;Um Corpo Estranho&quot;</title><content type='html'>, em repeat !&lt;br /&gt;&amp;nbsp;  &lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;235&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/39877129?autoplay=1&quot; webkitallowfullscreen=&quot;&quot; width=&quot;420&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Para acompanhar:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href=&quot;https://www.facebook.com/umcorpoestranho&quot;&gt;https://www.facebook.com/umcorpoestranho&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;a href=&quot;http://umcorpoestranho.bandcamp.com/album/um-corpo-estranho&quot;&gt;http://umcorpoestranho.bandcamp.com/album/um-corpo-estranho&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/3750758282264257090/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=3750758282264257090' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/3750758282264257090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/3750758282264257090'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/05/um-corpo-estranho.html' title='&quot;Um Corpo Estranho&quot;'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-3741335546922088018</id><published>2012-04-24T21:25:00.000+01:00</published><updated>2012-04-24T21:26:49.938+01:00</updated><title type='text'>Google Drive lives (kinda ...)</title><content type='html'>&lt;p style=&quot;margin-top:5px;margin-right:0px;margin-bottom:5px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(255,255,255)&quot;&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Google ToS:&lt;/u&gt; &amp;quot;When you upload or otherwise submit content to our Services, you give Google (and those we work with) a worldwide license to use, host, store, reproduce, &lt;strong&gt;modify, create derivative works (such as those resulting from translations, adaptations or other changes we make so that your content works better with our Services), communicate, publish, publicly perform, publicly display and distribute such content.&lt;/strong&gt;&amp;quot;&lt;/li&gt;  &lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:5px;margin-right:0px;margin-bottom:5px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(255,255,255)&quot;&gt;  &lt;br&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:5px;margin-right:0px;margin-bottom:5px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(255,255,255)&quot;&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;SkyDrive ToS:&lt;/u&gt; &amp;quot;Except for material that we license to you, we don&amp;#39;t claim ownership of the content you provide on the service. Your content remains your content. We also don&amp;#39;t control, verify, or endorse the content that you and others make available on the service.&amp;quot;&lt;/li&gt;  &lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:5px;margin-right:0px;margin-bottom:5px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(255,255,255)&quot;&gt;  &lt;br&gt;&lt;/p&gt;&lt;p style=&quot;margin-top:5px;margin-right:0px;margin-bottom:5px;margin-left:0px;padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;font-family:verdana,arial,helvetica,sans-serif;background-color:rgb(255,255,255)&quot;&gt;  &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;u&gt;Dropbox ToS:&lt;/u&gt; &amp;quot;By using our Services you provide us with information, files, and folders that you submit to Dropbox (together, &quot;your stuff&quot;). You retain full ownership to your stuff. We don&#39;t claim any ownership to any of it. These Terms do not grant us any rights to your stuff or intellectual property except for the limited rights that are needed to run the Services, as explained below.&amp;quot;&lt;/li&gt;  &lt;/ul&gt;&lt;p&gt;&lt;/p&gt;&lt;div class=&quot;gmail_extra&quot;&gt;&lt;br&gt;&lt;/div&gt;&lt;div class=&quot;gmail_extra&quot;&gt;via Reddit.&lt;/div&gt; </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/3741335546922088018/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=3741335546922088018' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/3741335546922088018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/3741335546922088018'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/04/google-drive-lives-kinda.html' title='Google Drive lives (kinda ...)'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-8844606222880814618</id><published>2012-04-10T15:37:00.000+01:00</published><updated>2012-04-10T15:38:19.963+01:00</updated><title type='text'>Howto - Links simbólicos em Windows</title><content type='html'>Para uma criação de links simbólicos em Windows, permitindo deste modo, igualar os links a directórios como em &amp;quot;Unix/Linux&amp;quot; podemos usar o comando &lt;b&gt;MKLINK&lt;/b&gt;.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Sintaxe:&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;  &lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-FmcFePCvUr8/T4RF3LuSZ3I/AAAAAAAAlcU/8pFNA5BTJc4/s1600/mklink-799963.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/-FmcFePCvUr8/T4RF3LuSZ3I/AAAAAAAAlcU/8pFNA5BTJc4/s320/mklink-799963.png&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5729781440264169330&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Segue-se exemplo:&lt;/div&gt;  &lt;br class=&quot;Apple-interchange-newline&quot;&gt;&lt;/div&gt;&lt;blockquote style=&quot;margin:0 0 0 40px;border:none;padding:0px&quot;&gt;&lt;div&gt;&lt;div&gt;&lt;a href=&quot;http://1.bp.blogspot.com/-eQImiYEvXx4/T4RF3tTEQZI/AAAAAAAAlcg/AYu_GVqDDw0/s1600/links_createRemove-702352.png&quot;&gt;&lt;img src=&quot;http://1.bp.blogspot.com/-eQImiYEvXx4/T4RF3tTEQZI/AAAAAAAAlcg/AYu_GVqDDw0/s320/links_createRemove-702352.png&quot;  border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5729781449276801426&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;  &lt;/blockquote&gt;Com a execução de:&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Com o comando &amp;quot;&lt;b&gt;mklink /D workspace C:\Users\dfc\Desktop\Dropbox\workspace&lt;/b&gt;&amp;quot;, criamos um link simbólico em D:\tmp\workspace para uma directoria existente noutra partição. Isto funciona como um &amp;quot;shortcut&amp;quot; mas imita na totalidade a directoria.&lt;/li&gt;  &lt;li&gt;Com o comando &amp;quot;&lt;b&gt;rmdir workspace&lt;/b&gt;&amp;quot;, assumindo o posicionamento na drive/directoria, removemos o link, já que uma remoção normal (via command line ou Windows Explorer) iria remover os conteúdos.&lt;/li&gt;&lt;/ul&gt;  &lt;div&gt;Nota 1: Este truque poderá ser usado em casos que a partição C está com falta de espaço, sendo que via command line de administração (com boot para Safe Mode with Command Prompt) para movermos a pasta &amp;quot;Program Files&amp;quot; de partição, e depois criar o link simbólico &amp;quot;Program Files&amp;quot; na partição original.&lt;/div&gt;  &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Nota 2: &amp;quot;Symbolic links are different from hard links. Hard links do not normally point to directories, and they cannot link paths on different volumes or file systems. Symbolic links may point to any file or directory irrespective of the volumes on which the source and destination reside. Whereas h&lt;u&gt;ard links always refer to an existing file&lt;/u&gt;, &lt;u&gt;symbolic links may contain an arbitrary path that doesn&amp;#39;t point to anything.&lt;/u&gt;&amp;quot;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/8844606222880814618/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=8844606222880814618' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/8844606222880814618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/8844606222880814618'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2012/04/howto-links-simbolicos-em-windows.html' title='Howto - Links simbólicos em Windows'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/-FmcFePCvUr8/T4RF3LuSZ3I/AAAAAAAAlcU/8pFNA5BTJc4/s72-c/mklink-799963.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-2242565485290525250</id><published>2011-10-19T15:02:00.001+01:00</published><updated>2012-02-01T19:27:19.568+01:00</updated><title type='text'>Stop SQL Server Management Studio from scripting SPs using sp_executesql</title><content type='html'>&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;Turn off the &quot;Include IF NOT EXISTS&quot; option.&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;It&#39;s at Tools..Options, then click &quot;Scripting&quot; on the explorer pane of the dialog that pops-up. the &quot;IF NOT EXISTS&quot; option is in the second group from the top (Object Scripting options).&lt;/div&gt;&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; clear: both; font-family: Arial, &#39;Liberation Sans&#39;, &#39;DejaVu Sans&#39;, sans-serif; font-size: 14px; line-height: 18px; margin-bottom: 1em; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; vertical-align: baseline; word-wrap: break-word;&quot;&gt;&lt;/div&gt;&lt;pre class=&quot;lang-sql prettyprint&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin-bottom: 10px; margin-top: 0px; max-height: 600px; overflow-x: auto; overflow-y: auto; padding-bottom: 5px; padding-left: 5px; padding-right: 5px; padding-top: 5px; vertical-align: baseline; width: auto;&quot;&gt;&lt;span style=&quot;color: #93c47d;&quot;&gt;  &lt;code style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Consolas, Menlo, Monaco, &#39;Lucida Console&#39;, &#39;Liberation Mono&#39;, &#39;DejaVu Sans Mono&#39;, &#39;Bitstream Vera Sans Mono&#39;, &#39;Courier New&#39;, monospace, serif; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&amp;nbsp; &amp;nbsp; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;EXEC&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt; dbo&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;sp_executesql &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;statement &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt; N&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: transparent; background-image: initial; background-origin: initial; border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;&quot;&gt;&#39;-- =============================================&lt;br /&gt;  &amp;nbsp; &amp;nbsp; -- Author: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Me&lt;br /&gt;&amp;nbsp; &amp;nbsp; -- =============================================&lt;br /&gt;&amp;nbsp; &amp;nbsp; CREATE PROCEDURE [dbo].[MyProc]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -- Add the parameters for the stored procedure here&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @StartDate datetime&lt;br /&gt;&amp;nbsp; &amp;nbsp; AS&lt;br /&gt;  &amp;nbsp; &amp;nbsp; BEGIN&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/2242565485290525250/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=2242565485290525250' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2242565485290525250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2242565485290525250'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2011/10/stop-sql-server-management-studio-from.html' title='Stop SQL Server Management Studio from scripting SPs using sp_executesql'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-6265130998591279727</id><published>2011-10-17T12:13:00.000+01:00</published><updated>2011-10-17T12:14:07.396+01:00</updated><title type='text'>BlackBerry blackout, free apps</title><content type='html'>&lt;blockquote style=&quot;margin: 0 0 0 40px; border: none; padding: 0px;&quot;&gt;&lt;div&gt;Research In Motion (RIM) announced today that a selection of premium apps worth a total value of more than US $100 will be offered free of charge to subscribers as an expression of appreciation for their patience during the recent service disruptions. The apps will be made available to customers over the coming weeks on BlackBerry App World and will continue to be available until December 31 2011.&lt;/div&gt;  &lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The selections over this period will include the following :&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;SIMS 3 – Electronic ArtsBejeweled – Electronic Arts&lt;/li&gt;&lt;li&gt;N.O.V.A. – Gameloft&lt;/li&gt;&lt;li&gt;Texas Hold&#39;em Poker 2 – Gameloft&lt;/li&gt;  &lt;li&gt;Bubble Bash 2 – Gameloft&lt;/li&gt;&lt;li&gt;Photo Editor Ultimate – Ice Cold Apps&lt;/li&gt;&lt;li&gt;DriveSafe.ly Pro – iSpeech.org&lt;/li&gt;&lt;li&gt;iSpeech Translator Pro – iSpeech.org&lt;/li&gt;&lt;li&gt;Drive Safe.ly Enterprise – iSpeech.org&lt;/li&gt;&lt;li&gt;Nobex Radio™ Premium – Nobex&lt;/li&gt;  &lt;li&gt;Shazam Encore – Shazam&lt;/li&gt;&lt;li&gt;Vlingo Plus: Virtual Assistant – Vlingo&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;a href=&quot;http://www.itnewsafrica.com/2011/10/rim-offers-free-apps-to-calm-blackberry-users/?utm_source=twitterfeed&amp;amp;utm_medium=twitter&quot;&gt;link&lt;/a&gt;&lt;div&gt;  &lt;br&gt;&lt;/div&gt;&lt;div&gt;/start funny rant&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src=&quot;http://static5.businessinsider.com/image/4c925b517f8b9a4624520000/angry-birds-blackberry.jpg&quot; alt=&quot;angry-birds-blackberry.jpg&quot; title=&quot;angry-birds-blackberry.jpg&quot;&gt;&lt;br&gt;  &lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;/stop funny rant&lt;/div&gt; </content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/6265130998591279727/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=6265130998591279727' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6265130998591279727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6265130998591279727'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2011/10/blackberry-blackout-free-apps.html' title='BlackBerry blackout, free apps'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-2180471032665188018</id><published>2011-10-13T21:39:00.003+01:00</published><updated>2011-10-13T21:40:01.729+01:00</updated><title type='text'>iOs 5.0</title><content type='html'>&quot;one giant leap for iOs .... One small step for Android&quot;  &lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://i.imgur.com/Csq9P.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;75&quot; src=&quot;http://i.imgur.com/Csq9P.jpg&quot; width=&quot;415&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/2180471032665188018/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=2180471032665188018' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2180471032665188018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/2180471032665188018'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2011/10/ios-50.html' title='iOs 5.0'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-1861682568534129457</id><published>2011-10-13T10:03:00.000+01:00</published><updated>2011-10-13T10:43:19.130+01:00</updated><title type='text'>Google+</title><content type='html'>&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;Recomendo a leitura&amp;nbsp;&lt;a href=&quot;https://plus.google.com/112678702228711889851/posts/eVeouesvaVX&quot;&gt;https://plus.google.com/112678702228711889851/posts/eVeouesvaVX&lt;/a&gt;&amp;nbsp;sobre o &quot;produto&quot; Google+, escrito por Steve Yegge (um elemento Google), no que supostamente era para ser um post interno, e não público.&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;tl;dr;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&quot;That one last thing that Google doesn&#39;t do well is Platforms. We don&#39;t understand platforms. We don&#39;t &quot;get&quot; platforms. Some of you do, but you are the minority. This has become painfully clear to me over the past six years. I was kind of hoping that competitive pressure from&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a class=&quot;hidden_link&quot; href=&quot;http://www.businessinsider.com/blackboard/microsoft&quot; style=&quot;text-decoration: none;&quot;&gt;Microsoft&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;and Amazon and more recently Facebook would make us wake up collectively and start doing universal services. Not in some sort of ad-hoc, half-assed way, but in more or less the same way Amazon did it: all at once, for real, no cheating, and treating it as our top priority from now on.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&quot;Google+ is a prime example of our complete failure to understand platforms from the very highest levels of executive leadership (hi Larry, Sergey, Eric, Vic, howdy howdy) down to the very lowest leaf workers (hey yo). We&amp;nbsp;&lt;/span&gt;&lt;em&gt;all&lt;/em&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&amp;nbsp;don&#39;t get it.&quot;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  font-family: arial, helvetica, sans-serif;&quot;&gt;&quot;The Google+ platform is a pathetic afterthought.&amp;nbsp;We had no API at all at launch, and last I checked, we had one measly API call.&quot;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 19px;&quot;&gt;&lt;b  &gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;strong style=&quot;  font-style: inherit; font-weight: bold;&quot;&gt;&quot;Google+ is a knee-jerk reaction, a study in short-term thinking, predicated on the incorrect notion that Facebook is successful because they built a great product. But that&#39;s not why they are successful. Facebook is successful because they built an entire constellation of products by allowing other people to do the work. So Facebook is different for everyone. Some people spend all their time on Mafia Wars. Some spend all their time on Farmville. There are hundreds or maybe thousands of different high-quality time sinks available, so there&#39;s something there for everyone.&quot;&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  font-family: arial, helvetica, sans-serif;&quot;&gt;&quot;The problem is that we are trying to predict what people want and deliver it for them...&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;You can&#39;t do that. Not really. Not reliably. There have been precious few people in the world, over the entire history of computing, who have been able to do it reliably.&amp;nbsp;&lt;a class=&quot;hidden_link&quot; href=&quot;http://www.businessinsider.com/blackboard/steve-jobs&quot; style=&quot;text-decoration: none;&quot;&gt;Steve Jobs&lt;/a&gt;&amp;nbsp;was one of them. We don&#39;t have a Steve Jobs here. I&#39;m sorry, but we don&#39;t.&quot;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&quot;And also don&#39;t get me wrong about Google+. They&#39;re&amp;nbsp;&lt;strong style=&quot;font-style: inherit; font-weight: bold;&quot;&gt;far&lt;/strong&gt;&amp;nbsp;from the only offenders. This is a cultural thing. What we have going on internally is basically a war, with the underdog minority Platformers fighting a more or less losing battle against the Mighty Funded Confident Producters.&quot;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&quot;It&#39;s&amp;nbsp;&lt;em&gt;everyone&lt;/em&gt;. The problem is that we&#39;re a Product Company through and through. We built a successful product with broad appeal -- our search, that is -- and that wild success has biased us.&quot;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial, helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;  line-height: 19px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;font-family: arial, helvetica, sans-serif; font-size: 13px; line-height: 19px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 1em; padding-bottom: 0px; padding-left: 16px; padding-right: 0px; padding-top: 0px; position: static; text-align: left;&quot;&gt;&lt;li&gt;&lt;span class=&quot;Apple-style-span&quot;  &gt;&amp;nbsp;&quot;I&#39;m not saying it&#39;s too late for us, but the longer we wait, the closer we get to being Too Late.&quot;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/1861682568534129457/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=1861682568534129457' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/1861682568534129457'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/1861682568534129457'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2011/10/google.html' title='Google+'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-836062120629307355</id><published>2011-08-08T13:27:00.004+01:00</published><updated>2011-08-08T13:37:39.070+01:00</updated><title type='text'>TIL - Dark Side of the Rainbow</title><content type='html'>&lt;div&gt;&lt;blockquote&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;b&gt;Dark Side of the Rainbow&lt;/b&gt;&amp;nbsp;(also known as Dark Side of Oz or The Wizard of Floyd) refers to the pairing of the 1973 Pink Floyd music album The Dark Side of the Moon with the visual portion of the 1939 film The Wizard of Oz.&amp;nbsp;This produces moments where the film and the album appear to correspond with each other.&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;...&amp;nbsp;&lt;/div&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Band members and others involved in the making of the album state that any relationship between the two works of art is merely a coincidence.&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Link para&amp;nbsp;&lt;a href=&quot;http://video.google.com/videoplay?docid=-76123313707631450&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;video&lt;/a&gt;&lt;/div&gt;&lt;div&gt;Link para&amp;nbsp;&lt;a href=&quot;http://en.wikipedia.org/wiki/Dark_Side_of_the_Rainbow&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;wikipedia&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/836062120629307355/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=836062120629307355' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/836062120629307355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/836062120629307355'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2011/08/til-dark-side-of-rainbow.html' title='TIL - Dark Side of the Rainbow'/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5864877895246617583.post-6737923761897026727</id><published>2011-07-22T09:20:00.004+01:00</published><updated>2011-07-22T09:20:54.847+01:00</updated><title type='text'></title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;Já existe um novo market para o Android.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Destaca-se a navegação horizontal, e layout completamente novo.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;blockquote class=&quot;webkit-indent-blockquote&quot; style=&quot;border-bottom-style: none; border-color: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; margin-bottom: 0px; margin-left: 40px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot;&gt;&lt;div&gt;&lt;img alt=&quot;Don’t feel like waiting for the new version of Android Market? Here’s how to install it right now&quot; src=&quot;http://androidandme.wpengine.netdna-cdn.com/wp-content/uploads/2011/07/Android_Market.png&quot; /&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Para os ansiosos, visto por agora apenas estar dísponivel para DEVs, é só fazer o download do apk&amp;nbsp;&lt;a href=&quot;http://www.mediafire.com/file/f4b3d6e26xth2r5/com.android.vending-1.apk&quot;&gt;aqui&lt;/a&gt;.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;enjoy !&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://entreacadeiraeoteclado.blogspot.com/feeds/6737923761897026727/comments/default' title='Enviar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5864877895246617583&amp;postID=6737923761897026727' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6737923761897026727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5864877895246617583/posts/default/6737923761897026727'/><link rel='alternate' type='text/html' href='http://entreacadeiraeoteclado.blogspot.com/2011/07/ja-existe-um-novo-market-para-o-android.html' title=''/><author><name>Diogo Carvalho</name><uri>http://www.blogger.com/profile/17621932224648058725</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>