<?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-14210740</id><updated>2024-09-08T11:01:01.044-03:00</updated><category term="configuration"/><category term="network"/><category term="vyatta"/><category term="jquery"/><category term="plugin"/><category term="uuid"/><category term="virtual"/><category term="vmware"/><category term="apache"/><category term="asterisk"/><category term="asterisknow"/><category term="bridge"/><category term="elastix"/><category term="ethernet"/><category term="freepbx"/><category term="hardy"/><category term="http"/><category term="http header"/><category term="indexeddb javascript bluesky"/><category term="ipsec"/><category term="javascript"/><category term="openswan"/><category term="reverse proxy"/><category term="router"/><category term="sonicwall"/><category term="trixbox"/><category term="ubuntu"/><category term="udev"/><category term="voip"/><category term="vono"/><category term="vpn"/><title type='text'>Brazilian Joe&#39;s Hideout</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-14210740.post-1204358909143896467</id><published>2016-04-11T11:27:00.002-03:00</published><updated>2016-04-11T11:39:58.307-03:00</updated><title type='text'>Excel Power Query: Concatenating a Multiple-Value List source  inside a single cell. </title><content type='html'>Excel Power Query is an awesome tool to get all kinds of things done .&lt;br /&gt;
One can draw in information from anywhere, from Excel tables, csv files, Sharepoint connections or other databases.&lt;br /&gt;
&lt;br /&gt;
Once the information is in the document, one can perform several filters and transformations before the data is actually placed in a table inside the document.&lt;br /&gt;
&lt;br /&gt;
In my case I am working with Sharepoint List sources.&lt;br /&gt;
&lt;br /&gt;
Not all content is displayed verbatim when it comes from Sharepoint. Lists for instance, are simply displayed as [List] inside the Excel&#39;s cell.&lt;br /&gt;
&lt;br /&gt;
If your list is a multiple-value one, you may expand it, but you will then multiply the number of rows, which is like a cartesian product.&lt;br /&gt;
&lt;br /&gt;
You may want to present it differently though. Like me, you may want to display the list as a comma-separated value inside the cell.&lt;br /&gt;
&lt;br /&gt;
Turns out Excel Power Query is pretty powerful and there is a way to do that.&lt;br /&gt;
&lt;br /&gt;
A column can be transformed in a lot of ways. This sequence below is buta dab in the water of Power &amp;nbsp;Query, and may help you people out there.&lt;br /&gt;
&lt;br /&gt;
If yout List is text-based it&#39;s a simpler matter:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;let&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; Source = ...#&quot;your source&quot;...,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;transform&quot; = Table.TransformColumns( #&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;your source&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;&amp;nbsp;, {&quot;list column&quot;, each&amp;nbsp;Text.Combine( _ ,&quot;,&quot;)})&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;in&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;transform&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
If your list (column-type) is number-based or a lookup to another Sharepoint List though, it&#39;s a bit more involved:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;let&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; Source = ...#&quot;your source&quot;...,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;transform&quot; = Table.TransformColumns( #&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;your source&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;&amp;nbsp;, {&quot;list column&quot;, each&amp;nbsp;Text.Combine( List.Transform( _ , each Number.ToText(_) ),&quot;,&quot;)})&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;in&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; #&quot;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;transform&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; &quot;&gt;&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;So what do we do here?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/mt260818.aspx&quot; target=&quot;_blank&quot;&gt;Table.TransformColumns&lt;/a&gt; - This picks up our source column and drill down on each record, performing a transformation function on each.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/mt296604.aspx&quot; target=&quot;_blank&quot;&gt;Text.Combine&lt;/a&gt; - this one concatenates a series of text strings from a list.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/mt253641.aspx&quot; target=&quot;_blank&quot;&gt;List.Transform&lt;/a&gt; - This performs a transformation for a numeric list (and lookup lists) to become a text list.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/mt253385.aspx&quot; target=&quot;_blank&quot;&gt;Number.ToText&lt;/a&gt; - This is applied on each element of the List to make it parsable by Text.Combine.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;For the full reference:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Power Query Formula Reference:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/mt211003.aspx&quot; target=&quot;_blank&quot;&gt;https://msdn.microsoft.com/en-us/library/mt211003.aspx&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/1204358909143896467/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/1204358909143896467' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/1204358909143896467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/1204358909143896467'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2016/04/excel-power-query-concatenating.html' title='Excel Power Query: Concatenating a Multiple-Value List source  inside a single cell. '/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-4304394120796203815</id><published>2013-10-24T09:43:00.002-02:00</published><updated>2013-10-31T10:22:52.833-02:00</updated><title type='text'>Adobe PDFMaker COM supplement makes Office 2013 behave wonky in network operations</title><content type='html'>I have stumbled in this weird problem.&lt;br /&gt;
&lt;br /&gt;
Some users, in some files, seemed to be unable to use &#39;Save As...&#39; in word 2013 in some network files.&lt;br /&gt;
The Save As dialog was not appearing, no amount of keyboard bashing or button clicking would solve that.&lt;br /&gt;
&lt;br /&gt;
I checked the network server permissions and they were good. Stumped, I started debugging by disabling the COM supplements one by one.&lt;br /&gt;
&lt;br /&gt;
And I had this eureka moment when I disabled Adobe&#39;s extension and network file operations started working again.&lt;br /&gt;
&lt;br /&gt;
Microsoft&#39;s native impementation may not make files as small as Adobe&#39;s, but it is in reasonably good shape, it has been working well since Word 2010.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/4304394120796203815/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/4304394120796203815' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/4304394120796203815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/4304394120796203815'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/10/adobe-pdfmaker-com-supplement-makes.html' title='Adobe PDFMaker COM supplement makes Office 2013 behave wonky in network operations'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-4991771849275105212</id><published>2013-10-23T09:50:00.001-02:00</published><updated>2013-10-31T10:48:49.809-02:00</updated><title type='text'>Google Drive for PC bug breaks Windows Search (and how to fix it)</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-Muk3aicB1Z0/UnJRL7f8NYI/AAAAAAAABMw/ayj6qCGNt70/s1600/Google-Drive.jpg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;206&quot; src=&quot;http://4.bp.blogspot.com/-Muk3aicB1Z0/UnJRL7f8NYI/AAAAAAAABMw/ayj6qCGNt70/s320/Google-Drive.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
Some of you folks like me, which use Google Drive for PC to sync your files with the cloud, may have noticed that Windows Search does not return results from files inside the Google Drive folder.&lt;br /&gt;
&lt;br /&gt;
It&#39;s not Microsoft&#39;s fault though. The problem is that the Google Drive for PC sync service is not honoring the permission inheritance from its parent folder.&lt;br /&gt;
&lt;br /&gt;
The SYSTEM permissions are not being propagated to files synced by Google Drive. This causes the Windows Search index to not have access privileges to the root Google Drive folder and all its contents.&lt;br /&gt;
&lt;br /&gt;
There is no fix per se (that should come from Google), but there is a workaround.&lt;br /&gt;
&lt;br /&gt;
UPDATE: It turns out you can solve the search issue in a relatively simple way, by just enabling inheritance at Google Drive&#39;s root folder.&lt;br /&gt;
&lt;br /&gt;
To accomplish that you can do as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Open Windows Explorer.&lt;/li&gt;
&lt;li&gt;Go to your user&#39;s root folder.&lt;/li&gt;
&lt;li&gt;At the right panel, right-click on Google Drive&#39;s root folder and click on &#39;Properties&#39;.&lt;/li&gt;
&lt;li&gt;Click on the &#39;Security&#39; tab.&lt;/li&gt;
&lt;li&gt;Click on the &#39;Advanced&#39; button.&lt;/li&gt;
&lt;li&gt;A new window will show up, it should be named similar to &#39;Advanced Security Settings for Google Drive&#39;.&lt;/li&gt;
&lt;li&gt;At the bottom of this window, there is a button and a checkbox.&lt;/li&gt;
&lt;li&gt;Click on the &#39;Enable Inheritance&#39; button.&lt;/li&gt;
&lt;li&gt;Check the &#39;Replace all child object permission entries with inheritable permission entries from this object&#39;.&lt;/li&gt;
&lt;li&gt;Click &#39;Apply&#39;.&lt;/li&gt;
&lt;li&gt;Click &#39;OK&#39; to close this window.&lt;/li&gt;
&lt;li&gt;Click &#39;OK&#39; again to dismiss the Properties window.&lt;/li&gt;
&lt;li&gt;Done.&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
Windows Search should start indexing the contents as soon as the permissions are changed.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/4991771849275105212/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/4991771849275105212' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/4991771849275105212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/4991771849275105212'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/10/google-drive-for-pc-bug-breaks-windows.html' title='Google Drive for PC bug breaks Windows Search (and how to fix it)'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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://4.bp.blogspot.com/-Muk3aicB1Z0/UnJRL7f8NYI/AAAAAAAABMw/ayj6qCGNt70/s72-c/Google-Drive.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-14210740.post-4341934284255715362</id><published>2013-09-06T13:57:00.000-03:00</published><updated>2013-09-06T13:57:02.400-03:00</updated><title type='text'>nano-nugget of wisdom: ping with timestamp</title><content type='html'>On your Linux/Mac terminal, just type or paste:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ping google.com | while read pong; do echo &quot;$(date): $pong&quot;; done&lt;/span&gt;&lt;br /&gt;
And voila.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/4341934284255715362/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/4341934284255715362' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/4341934284255715362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/4341934284255715362'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/09/nano-nugget-of-wisdom-ping-with.html' title='nano-nugget of wisdom: ping with timestamp'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-1343270838573961087</id><published>2013-06-27T14:59:00.003-03:00</published><updated>2013-06-27T15:01:12.914-03:00</updated><title type='text'>Chega (não é só pelos 20 centavos)</title><content type='html'>&lt;br /&gt;
A quase ausência de regulamentação sobre a mídia é uma faca de dois gumes, pois ao mesmo tempo que pode ser uma garantia da liberdade de comunicação, também já era um jogo de cartas marcadas desde a ditadura, com poucas famílias mantendo uma hegemonia de direita editorando e manipulando a informação que é impingida à grande massa.&lt;br /&gt;
&lt;br /&gt;
Mas hoje temos novas formas, mais ágeis de nos comunicar, temos este fantástico veículo da informação digital denominado internet, que transforma fundamentalmente o valor da informação, dados que temos a capacidade de difundir e reproduzir a informação em nível mundial a um custo próximo de zero.&lt;br /&gt;
&lt;br /&gt;
Com este meio à disposição, os menestréis, trovadores, poetas, cantores e artistas que sempre tiveram um papel importante nas transformações sociais, absorvendo, decantando, cristalizando e refletindo o espírito, os anseios que quem busca uma mudança para melhor, podem se expressar deixando de lado a velha mídia, trazendo sua mensagem e inspiração para o povo do qual fazem parte:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;300&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/69198165&quot; webkitallowfullscreen=&quot;&quot; width=&quot;400&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/1343270838573961087/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/1343270838573961087' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/1343270838573961087'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/1343270838573961087'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/06/a-quase-ausencia-de-regulamentacao.html' title='Chega (não é só pelos 20 centavos)'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-651082917686936427</id><published>2013-06-17T11:03:00.002-03:00</published><updated>2013-06-17T11:03:50.980-03:00</updated><title type='text'>How to enable raw disk access for VMWare Workstation on Windows 8</title><content type='html'>If you are trying to run a virtual machine from a physical disk on VMWare Workstation, chances are you will be denied raw disk access with an error message.&lt;br /&gt;
&lt;br /&gt;
The only way I managed to allow VMWare to access the raw partition was to use diskpart.&lt;br /&gt;
&lt;br /&gt;
diskpart is a command-line app which requires administrator privileges.&lt;br /&gt;
&lt;br /&gt;
You will be better off if you take is slow and read diskpart documentation, as it can wipe out your disk partition table. Keep your backups up-to-date. You&#39;ve been warned.&lt;br /&gt;
&lt;br /&gt;
The process was this:&lt;br /&gt;
&lt;br /&gt;
Start a command line, then type &#39;diskpart&#39; and press enter.&lt;br /&gt;
&lt;br /&gt;
If you run diskpart from a command line without administrator privileges, you will be prompted for the admin password, and diskpart will run on a separate window.&lt;br /&gt;
&lt;br /&gt;
type &#39;list disk&#39; and press enter. You should see all disks and will be able to verify which one you want to enable raw disk access.&lt;br /&gt;
&lt;br /&gt;
use the command &#39;select disk N&#39; where N is the number of the disk.&lt;br /&gt;
&lt;br /&gt;
use the command &#39;offline&#39; to keep windows disk management&#39;s grubby hands out of it.&lt;br /&gt;
&lt;br /&gt;
use the command &#39;attributes disk clear readonly&#39; to allow the disk to be written to.&lt;br /&gt;
&lt;br /&gt;
And voilá, that should do it. YMMV.&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/651082917686936427/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/651082917686936427' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/651082917686936427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/651082917686936427'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/06/how-to-enable-raw-disk-access-for.html' title='How to enable raw disk access for VMWare Workstation on Windows 8'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-5130767699488046586</id><published>2013-06-06T14:24:00.005-03:00</published><updated>2013-06-06T14:24:44.981-03:00</updated><title type='text'></title><content type='html'>Installing Boot Camp using Parallels&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://insidethebrackets.blogspot.com.br/2009/04/install-windows-on-macbook-air-with-no.html&quot;&gt;http://insidethebrackets.blogspot.com.br/2009/04/install-windows-on-macbook-air-with-no.html&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/5130767699488046586/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/5130767699488046586' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/5130767699488046586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/5130767699488046586'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/06/installing-boot-camp-using-parallels.html' title=''/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-8513046431848553802</id><published>2013-05-02T11:23:00.002-03:00</published><updated>2013-05-02T11:23:29.366-03:00</updated><title type='text'>Changing default settings of (xerox) printers on Mac OS X</title><content type='html'>So, I have this new awesome waxjet printer in my office, a Xerox ColorCube 8570.&lt;br /&gt;
&lt;br /&gt;
Problem is, in Mac there is no way to alter the &#39;Default Settings&#39; of the printer... at least in an accessible way for mere mortals.&lt;br /&gt;
&lt;br /&gt;
But there&#39;s always some hidden magic for geeks to wiz around and do the impossible.&lt;br /&gt;
&lt;br /&gt;
Mac OS X uses CUPS behind the scenes, so we can just open a browser and type the URL:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://127.0.0.1:631/&quot;&gt;http://127.0.0.1:631&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you get an &#39;access denied&#39; or &#39;web interface disabled&#39; error, open a Terminal and type the following:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;cupsctl WebInterface=yes&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
And press enter; reload the above link.&lt;br /&gt;
&lt;br /&gt;
You should then see a CUPS configuration interface where you can change the printer default settings to your heart&#39;s contents.&lt;br /&gt;
&lt;br /&gt;
This interface is not restricted to xerox printers as far as I know. But since I don&#39;t have non-Xerox printers I cannot test it.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/8513046431848553802/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/8513046431848553802' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/8513046431848553802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/8513046431848553802'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2013/05/changing-default-settings-of-xerox.html' title='Changing default settings of (xerox) printers on Mac OS X'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-3590839167496582841</id><published>2011-10-13T10:10:00.002-03:00</published><updated>2011-10-13T10:12:36.641-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="asterisk"/><category scheme="http://www.blogger.com/atom/ns#" term="asterisknow"/><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="elastix"/><category scheme="http://www.blogger.com/atom/ns#" term="freepbx"/><category scheme="http://www.blogger.com/atom/ns#" term="trixbox"/><category scheme="http://www.blogger.com/atom/ns#" term="voip"/><category scheme="http://www.blogger.com/atom/ns#" term="vono"/><title type='text'>Configurando tronco Vono no Elastix (Asterisk, FreePBX)</title><content type='html'>Depois de um pouco de sangue, suor e lágrimas, descobri como configurar um tronco Vono no Elastix (Asterisk, FreePBX).&lt;br /&gt;
&lt;br /&gt;
Aí vai a fórmula:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;TRUNK NAME = vono_out (como quiser chamar)&lt;/pre&gt;&lt;pre style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;PEER Details&lt;/pre&gt;&lt;pre style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&amp;nbsp;&lt;/pre&gt;&lt;pre style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;type=peer
username=&lt;nomedeusuario&gt;
secret=&lt;senha&gt;
domain=vono.net.br
fromuser=&lt;nomedeusuario&gt;
fromdomain=vono.net.br
host=vono.net.br
insecure=very
context=from-pstn
qualify=yes
port=5060
aut=md5
nat=yes
dynamic=yes
disallow=all
allow=g729;ilbc;gsm;ulaw;alaw;

dtmfmode=rfc2833
reinvite=no
canreinvite=no

--------------------------------

USER CONTEXT = vono_in (como quiser chamar)

USER Details
type=user
username=&lt;nomedeusuario&gt;
domain=vono.net.br
fromuser=&lt;nomedeusuario&gt;
fromdomain=vono.net.br
host=vono.net.br
insecure=very
context=from-pstn
disallow=all
allow=g729;ilbc;gsm;ulaw;alaw;

----------------------------

REGISTER STRING

&lt;nomedeusuario&gt;:&lt;senha&gt;@vono.net.br:5060/&lt;numerovono&gt;&lt;/numerovono&gt;&lt;/senha&gt;&lt;/nomedeusuario&gt;&lt;/nomedeusuario&gt;&lt;/nomedeusuario&gt;&lt;/nomedeusuario&gt;&lt;/senha&gt;&lt;/nomedeusuario&gt;&lt;/pre&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/3590839167496582841/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/3590839167496582841' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3590839167496582841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3590839167496582841'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2011/10/configurando-tronco-vono-no-elastix.html' title='Configurando tronco Vono no Elastix (Asterisk, FreePBX)'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-7027080663142295716</id><published>2011-07-11T09:19:00.000-03:00</published><updated>2011-07-11T09:19:21.933-03:00</updated><title type='text'>jQuery UI List widget released!</title><content type='html'>I have built this widget for a company project with modularity in mind, and thought it would be a good idea to share with the world.&lt;br /&gt;
&lt;br /&gt;
Read more about it &lt;a href=&quot;http://brazilianjoe.blogspot.com/p/jquery-ui-list.html&quot;&gt;here&lt;/a&gt; or download it &lt;a href=&quot;http://plugins.jquery.com/project/ui-list&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/7027080663142295716/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/7027080663142295716' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/7027080663142295716'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/7027080663142295716'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2011/07/jquery-ui-list-widget-released.html' title='jQuery UI List widget released!'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-3659905087358357336</id><published>2011-07-08T21:23:00.000-03:00</published><updated>2011-07-08T21:23:54.839-03:00</updated><title type='text'>jQuery More Support Plugin released!</title><content type='html'>This plugin extends the jQuery.support property with a few more variables for the developer&#39;s convenience. Currently it adds the following:&lt;br /&gt;
&lt;br /&gt;
a) Detects the existence of the console.&lt;br /&gt;
b) Detects the browser engine by feature-detection rather than user-agent sniffing.&lt;br /&gt;
b.1) Detects Internet Explorer version. Not implemented for the other browsers, may or may not be possible.&lt;br /&gt;
&lt;br /&gt;
Read more about it &lt;a href=&quot;http://brazilianjoe.blogspot.com/p/jquery-more-support-plugin.html&quot;&gt;here&lt;/a&gt; or get it &lt;a href=&quot;http://plugins.jquery.com/project/MoreSupport&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/3659905087358357336/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/3659905087358357336' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3659905087358357336'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3659905087358357336'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2011/07/jquery-more-support-plugin-released.html' title='jQuery More Support Plugin released!'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-2914283377175251957</id><published>2011-07-07T18:20:00.001-03:00</published><updated>2011-07-07T18:21:17.728-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="uuid"/><title type='text'>jQuery UUID Generator updated!</title><content type='html'>To all jQuery jockeys ou there:&lt;br /&gt;
&lt;br /&gt;
I have managed to release an update for my UUID generator plugin for jQuery. It has new features, and a new function name as well.&lt;br /&gt;
&lt;br /&gt;
Read more about it &lt;a href=&quot;http://brazilianjoe.blogspot.com/p/jquery-uuid-extension-plugin.html&quot;&gt;here&lt;/a&gt;, or go get it &lt;a href=&quot;http://plugins.jquery.com/project/uidGen&quot;&gt;here&lt;/a&gt;.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/2914283377175251957/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/2914283377175251957' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/2914283377175251957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/2914283377175251957'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2011/07/jquery-uuid-generator-updated.html' title='jQuery UUID Generator updated!'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-3782801416917459928</id><published>2010-07-05T18:41:00.001-03:00</published><updated>2010-07-05T18:48:36.533-03:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="indexeddb javascript bluesky"/><title type='text'>Considerations on Mozilla&#39;s IndexedDB</title><content type='html'>I have read &lt;a href=&quot;http://hacks.mozilla.org/2010/06/comparing-indexeddb-and-webdatabase/&quot;&gt;Mozilla&#39;s proposal for IndexedDB&lt;/a&gt;, and while I am no defender of SQLite on the client-side, I also disliked a lot the proposed syntax.&lt;br /&gt;
&lt;br /&gt;
It is just too verbose and convoluted to do a simple thing as a join, as their example showed. It requires 2~3 more code than their own WebDatabase counter-example, and is hard to wrap your brain around the usage.&lt;br /&gt;
&lt;br /&gt;
I would prefer a document-based storage method which can simply save JS objects to disk, and is able to fetch them back or operate with them, similar to couchDB. The documents would all be required to have an id (primary key in SQL terms).&lt;br /&gt;
&lt;br /&gt;
I will build those examples on top of the kids/candy database used by the mozilla blog post.&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var db = indexedDB.open(&quot;somedb&quot;); //sets the db for reading&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;db.async = true|false // sets (a)synchronous execution&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;db.autosave = true|false // if set to true, there is no need to call the save() function to commit the changes to the storage, as they happen automatically.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var onekid = db.filter(id=&quot;id&quot;); // prepares a single document to be fetched from the storage&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;onekid.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;get&lt;/span&gt;(); // fetches the onekid data as a JS object.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;onekid.age = 12; // adds or changes some information on the document&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;onekid.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;save&lt;/span&gt;(); // saves to the storage&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;OR we could do:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;onekid.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;save&lt;/span&gt;().onsuccess = function(event){&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;alert(&quot;saved &quot;+event.objects[0]+&quot; successfully.&quot;); // the objects property of the event would store all ids of all documents affected by the transaction.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;});&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;add&lt;/span&gt;({name:&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;john&quot;&lt;/span&gt;}); // add an object to the storage&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;save&lt;/span&gt;(); &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var kidstable = db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;({&quot;name&quot;:&quot;john&quot;,&quot;age&quot;:&quot;36&quot;})&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;// prepares to fetch multiple property+value pairs&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black;&quot;&gt;kidstable = db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;([&quot;name&quot;,&quot;age&quot;])&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;// prepares to fetch multiple properties&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidstable = db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;(&quot;name&quot;) &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;// prepares to fetch all documents with a name property&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidslist = kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;get&lt;/span&gt;(); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;//this would happen synchronously and return the actual documents as JS objects to be assigned to kidslist&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;set&lt;/span&gt;(&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;gender&quot;&lt;/span&gt;); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/* sets a gender property on all documents represented by the filter */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;set&lt;/span&gt;.onfailure = function(event){alert(&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;could not set property &quot;&lt;/span&gt;+event.key);}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;set&lt;/span&gt;({gender:&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;male&quot;}&lt;/span&gt;); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/* sets the gender property to value &#39;male&#39; on all documents represented by kidstable */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;result = kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;set&lt;/span&gt;({age:12});&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt; /* forces synchronous execution. returns true on success, false on failure */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;data&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&amp;nbsp;= kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;set&lt;/span&gt;({age:10}).get();&amp;nbsp;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/* sets the data, then gets the modified data; */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;set&lt;/span&gt;({&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;age:10,gender:&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;female&quot;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;}); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/* multiple properties at once */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;unset&lt;/span&gt;([&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;gender&quot;&lt;/span&gt;,&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;age&quot;]&lt;/span&gt;); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/*removes properties. */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;kidstable.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;del&lt;/span&gt;(); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;//deletes objects&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: inherit;&quot;&gt;set, unset and del functions could happen on memory-space and vaporize if save() is not called (unless autosave is true). Variable scope applies.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var thekids =&amp;nbsp;db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;(key.name).sort() &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/*&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;prepares to fetch all documents with a name attribute (kids).&amp;nbsp;also sorting ascending; the parameter &#39;desc&#39; could be used to reverse the sort order. */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var sales =&amp;nbsp;&amp;nbsp;db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;(key.candysales).sort() &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/*prepares to search for all sales */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var kidsPurchases = db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;background-color: white;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;&lt;/span&gt;(candysales.kidId = thekids.id) &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/* prepares the search for all candysales. the query &#39;thekids&#39; did not have to be executed to be used in the &#39;kidspurchases&#39; query. */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;var kidsPurchasesSubset =&amp;nbsp;db.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;filter&lt;/span&gt;(candysales.kidId = thekids.id).&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;keys&lt;/span&gt;(thekids.name, candysales.candyname,candysales.date); &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/* prepares to fetch only certain properties from the data storage */&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;kidsPurchasesSubset.&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;each&lt;/span&gt; = function (doc) {&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;var element = createElement(&quot;div&quot;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 19px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 19px;&quot;&gt;&lt;pre class=&quot;javascript&quot; style=&quot;clear: none; line-height: 1.333; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; overflow-x: visible; overflow-y: visible; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; white-space: pre; width: auto;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;    element.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #660066;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;textContent&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;=&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt; &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;Name: &quot;&lt;/span&gt;+doc.name+&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot; - Candy: &quot;&lt;/span&gt;+doc.candyname+&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot; - Date: &quot;&lt;/span&gt;+doc.date&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;    document.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #660066;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;getElementById&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;line-height: 15px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&quot;kidList&quot;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #660066;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;appendChild&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;(&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;element&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #110000; line-height: 15px; white-space: pre;&quot;&gt;&lt;span style=&quot;color: #339933;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;} &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #666666;&quot;&gt;/*runs for each item getted/setted when a query is executed.*/&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;db.index(&quot;candyname&quot;,false); /* creates an index to accelerate searching by the candyname property. */&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
The second parameter in the index() function is for uniqueness. The &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;false&lt;/span&gt; value indicates the index will allow for duplicate values, but will still create the index as a mean to accelerate partitioning and searching a specific subset of data.&lt;br /&gt;
&lt;br /&gt;
All operations would be atomic by default, but the data handling functions &lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;get, set, filter, unset, del, add,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt;save &lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;and&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: purple;&quot;&gt; abort&lt;/span&gt;&lt;/span&gt;&amp;nbsp;would allow for a &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;transaction=&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&#39;string&#39;&lt;/span&gt;&lt;/span&gt; parameter.&lt;br /&gt;
this parameter would cause the changes to not be commited even if the &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;autosave()&lt;/span&gt; setting is &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;true&lt;/span&gt;. &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;save(transaction=&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&#39;transid&#39;&lt;/span&gt;)&lt;/span&gt; would commit the transaction. &lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;abort(transaction=&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #0b5394;&quot;&gt;&#39;transid&#39;&lt;/span&gt;)&lt;/span&gt; would rollback all pending changes.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/3782801416917459928/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/3782801416917459928' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3782801416917459928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3782801416917459928'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2010/07/considerations-on-mozillas-indexeddb.html' title='Considerations on Mozilla&#39;s IndexedDB'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-5841538796431335245</id><published>2009-02-06T20:18:00.002-02:00</published><updated>2009-02-09T10:41:26.325-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="ipsec"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="openswan"/><category scheme="http://www.blogger.com/atom/ns#" term="sonicwall"/><category scheme="http://www.blogger.com/atom/ns#" term="vpn"/><category scheme="http://www.blogger.com/atom/ns#" term="vyatta"/><title type='text'>Vyatta (Openswan) versus SonicWALL IPSec</title><content type='html'>After some hair pulling, I found out how to set up a Vyatta &lt;-&gt; SonicWALL IPSec site-to-site tunnel.&lt;br /&gt;&lt;br /&gt;Vyatta 4.1.4 uses Openswan 2.4.2, which can interoperate with SonicWALL. turns out it needs some specific configurations though, and some of those options were not available on the configuration setup.&lt;br /&gt;Thankfully, being linux I could just &lt;code&gt;vim/etc/ipsec.conf&lt;/code&gt; and tweak the Openswan settings.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#ipsec.conf&lt;br /&gt;#these are the options which should be in your tunnel:&lt;br /&gt;        esp=3des-md5 # instead of esp=3des-md5-modp1024&lt;br /&gt;        pfs=yes # this is changeable by the configuration commands I believe&lt;br /&gt;        keyexchange=ike #didnt exist &lt;br /&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/5841538796431335245/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/5841538796431335245' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/5841538796431335245'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/5841538796431335245'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/02/vyatta-openswan-versus-sonicwall-ipsec.html' title='Vyatta (Openswan) versus SonicWALL IPSec'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-133995964035163736</id><published>2009-02-04T18:54:00.004-02:00</published><updated>2009-02-09T10:22:41.758-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="apache"/><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="http"/><category scheme="http://www.blogger.com/atom/ns#" term="http header"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="reverse proxy"/><category scheme="http://www.blogger.com/atom/ns#" term="vyatta"/><title type='text'>Vyatta, network setup.</title><content type='html'>VICTORY! or almost...&lt;br /&gt;&lt;br /&gt;I managed to set up the internet, NAT, firewall, poke the holes I needed. Now all that&#39;s there to it is the VPN tunnel. &lt;br /&gt;&lt;br /&gt;I have also set up a separate machine running Dnsmasq as a DNS cache/DHCP server, and a HTTP(S) reverse proxy. Which is nice, because I have a single fixed IP and I want different machines to serve separate subdomains. like using Zimbra to serve webmail.mydomain.com, my database web interface from db.mydomain.com, and the plain websites from www.mydomain.com.&lt;br /&gt;&lt;br /&gt;Word of advice: use the Apache Header module to make sure you are telling the browser to NOT cache your pages. at least while you are setting it up. Would have saved me a few headaches if I had done it prior to trying to set up the reverse proxy.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/133995964035163736/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/133995964035163736' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/133995964035163736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/133995964035163736'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/02/vyatta-network-setup.html' title='Vyatta, network setup.'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-5510814326037156836</id><published>2009-01-29T09:43:00.007-02:00</published><updated>2009-01-29T09:56:57.190-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bridge"/><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="network"/><category scheme="http://www.blogger.com/atom/ns#" term="virtual"/><category scheme="http://www.blogger.com/atom/ns#" term="vmware"/><title type='text'>Rename VMWare Server 2.0 bridges</title><content type='html'>After my brilliant eth* renaming merry-go-round, I had another simple, but annoyingly hard-to-find-info about mission: change bridge names (just the labels) in VMWare.&lt;br /&gt;&lt;br /&gt;After hastily running through the settings wizard on running &lt;code&gt;vmware-config.pl&lt;/code&gt;, I realized that I had 4 bridges:&lt;br /&gt;&lt;code&gt;Bridge&lt;br /&gt;Bridge(2)&lt;br /&gt;Bridge(3)&lt;br /&gt;Bridge(4)&lt;/code&gt;&lt;br /&gt;Which are not very helpful names. Sure, I could have given the right names from the start, but I am just human. Everyone looks back and say &#39; I could hve done that one better&#39; right?&lt;br /&gt;After NOT finding any info on how to do it, I just tried the shotgun approach and got to dig on the &lt;code&gt;vmware-config.pl&lt;/code&gt; command options.&lt;br /&gt;&lt;br /&gt;Turns out I am a lucky guy. When i got to the network reconfiguration section, I told I wanted to change network settings, but instead of using the wizard ( as I always do - many people might do it too) I used the editor option. there we can change the network setting of all configured bridges, NATs and host-only networks. So I renamed all my bridges to &quot;Bridge eth*&quot; and it was all set.</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/5510814326037156836/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/5510814326037156836' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/5510814326037156836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/5510814326037156836'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/01/rename-vmware-server-20-bridges.html' title='Rename VMWare Server 2.0 bridges'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-3251097288053129079</id><published>2009-01-29T09:23:00.003-02:00</published><updated>2009-01-29T09:43:02.021-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="ethernet"/><category scheme="http://www.blogger.com/atom/ns#" term="hardy"/><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu"/><category scheme="http://www.blogger.com/atom/ns#" term="udev"/><title type='text'>Changing ethernet names in Ubuntu 8.04</title><content type='html'>So, I was trying my stuff around Vyatta, and realized I didn&#39;t have enough NICs to virtualize everything I had. Our company&#39;s basic routing landscape involves two modems, one device acting as router + DHCP + DNS cache+access point (802.11g), another AP (802.11n 5.0Ghz), and the VPN router (RIP). The server only had 2 gigabit NICs though. If I moved the DHCP, DNS cache and VPN routing to VMs, I&#39;d have to plug the 2 modems and the 2 wireless routers on it. Tha put me on a deficit of 2 network cards.&lt;br /&gt;&lt;br /&gt;Thankfully, I had some extra hardware lying around, I picked up 2 spare realtek-based NICs and plugged them on the server. 100Mbit/s is plenty for our current ADSL speeds.&lt;br /&gt;&lt;br /&gt;That was when I hit a small problem: ifconfig -a only showed eth0, eth1 and eth2. One of the NICs was dead. &lt;br /&gt;&lt;br /&gt;Oh, well. It would be a matter of switchingthe cards. It was not top-prority, so I went to grokking the software configuration. After some time I remembered I had some more cards lying on another machine, which was not in use. And those were some good 3com cards. I went on and picked out both of my realtek cards and plopped the 3com in.&lt;br /&gt;&lt;br /&gt;Then I noticed something: ifconfig showed eth0 and eth1 (onboard gigabit), then eth3 and eth4.&lt;br /&gt;&lt;br /&gt;Being a nitpicky guy I wanted eth2 back! Well, remembering which card held which eth* alias between boots is actually a good thing, but in this case i wanted to use eth2. Just for the fun of it. &lt;br /&gt;&lt;br /&gt;Using the same eth* alias can also save reconfiguration trouble for people who had a NIC die on them. Replace the hardware, make the system poin to the new card with the old name, everything works again.&lt;br /&gt;&lt;br /&gt;At least to me it was a bit hard to dig out the information on where it was, but I found it.&lt;br /&gt;&lt;br /&gt;Ubuntu (udev) has this little file where it registers the eth* name given to each NIC to make naming persstent between boots. If you want to change some ethernet number, just go there and change it to your liking: &lt;br /&gt;&lt;br /&gt;run via the command line:&lt;br /&gt;&lt;code&gt;sudo vim /etc/udev/rules.d/70-persistent-net.rules&lt;/code&gt;&lt;br /&gt;(or use your editor of choice)</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/3251097288053129079/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/3251097288053129079' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3251097288053129079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/3251097288053129079'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/01/changing-ethernet-names-in-ubuntu-804.html' title='Changing ethernet names in Ubuntu 8.04'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-222827671185073023</id><published>2009-01-29T09:11:00.003-02:00</published><updated>2009-01-29T09:23:25.292-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="router"/><category scheme="http://www.blogger.com/atom/ns#" term="virtual"/><category scheme="http://www.blogger.com/atom/ns#" term="vmware"/><category scheme="http://www.blogger.com/atom/ns#" term="vyatta"/><title type='text'>Vyatta inside VMWare</title><content type='html'>A bit about my job:&lt;br /&gt;&lt;br /&gt;I am the IT jack-of-all-trades on my company&#39;s office. We have a few offices acattered around the blue marble, connected by VPN.&lt;br /&gt;&lt;br /&gt;My VPN router died on monday, and we scrambled for a solution. Living in Brazil, a device which costs U$ 499 in the U.S. magically soars up to U$ 1,600.00 inside our country... Given the global economic downturn (and me liking open source), I looked for something baed on open source, but which is not a &#39;hobby job&#39;. I had to feel confident about the product. &lt;br /&gt;&lt;br /&gt;Also, having most of our infrastructure virtualized on VMWare Server 2.0, a virtualized router would come in handy, as long as virtualization does not impact performance.&lt;br /&gt;&lt;br /&gt;I ended up finding Vyatta (http://www.vyatta.com), which looks like an interesting solution so far. I have been experimenting with it, and have managed the most basic stuff (NAT masquerading, set up pppoe, remote SSH admin). I will post more about it later (after I figure it out :) ).</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/222827671185073023/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/222827671185073023' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/222827671185073023'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/222827671185073023'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/01/vyatta-inside-vmware.html' title='Vyatta inside VMWare'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-8790889775606350124</id><published>2009-01-26T14:16:00.004-02:00</published><updated>2009-01-26T15:30:49.951-02:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="jquery"/><category scheme="http://www.blogger.com/atom/ns#" term="plugin"/><category scheme="http://www.blogger.com/atom/ns#" term="uuid"/><title type='text'>jQuery UUID extension</title><content type='html'>&lt;p&gt;This is a conversion of a few functions I make use of to a jQuery plugin.&lt;/p&gt; &lt;br /&gt;&lt;p&gt;This stems out from my need to be sure to have unique IDs, but I dont want to waste time reviewing code to make sure it is really unique, so as to not collide with other IDs on my page. I can have a random amount of forms at the same time in an inordinate amount of tabs, and each form has several form elements, and making sure they are all unique can be painstaking. &lt;/p&gt;&lt;br /&gt;&lt;p&gt;So I track my forms by registering the id of each form in an object array.&lt;/p&gt; &lt;br /&gt;&lt;p&gt;Naturally, other people may have other uses for the UUIDs.&lt;/p&gt;&lt;br /&gt;&lt;p&gt; UUIDs are generated in the format: 00000000-0000-0000-0000-000000000000 , with an optional prefix.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;b&gt;Usage 1:&lt;/b&gt; define the default prefix by using an object with the property prefix as a parameter which contains a string value;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;jQuery.uuid({prefix: &#39;id&#39;}); //returns nothing, sets default prefix to string &#39;id&#39;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt; &lt;b&gt;Usage 2:&lt;/b&gt; call the function jQuery.uuid() with a string parameter p to be used as a prefix to generate a random uuid;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;jQuery.uuid(&#39;foo-&#39;); // returns &#39;foo-&amp;lt;uuid&amp;gt;&#39;&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt; &lt;b&gt;Usage 3:&lt;/b&gt; call the function jQuery.uuid() with no parameters to generate a uuid with the default prefix; The default prefix is &#39;&#39; (empty string)&lt;br /&gt;&lt;/p&gt;&lt;div class=&quot;codeblock&quot;&gt;&lt;code&gt;jQuery.uuid(); //returns &#39;&amp;lt;prefix&amp;gt;&amp;lt;uuid&amp;gt;&#39;&lt;br /&gt;&lt;br /&gt;Get it at &lt;/code&gt;&lt;a href=&quot;http://plugins.jquery.com/project/uuid&quot;&gt;http://plugins.jquery.com/project/uuid&lt;/a&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/8790889775606350124/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/8790889775606350124' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/8790889775606350124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/8790889775606350124'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/01/jquery-uuid-extension.html' title='jQuery UUID extension'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-335652171387670335</id><published>2009-01-26T13:30:00.001-02:00</published><updated>2009-01-26T13:33:23.414-02:00</updated><title type='text'>Ressurectum</title><content type='html'>After having registered this blog with my nick of choice on the &#39;web, I figured I could actually use it for anything other than gather bit-dust.&lt;br /&gt;&lt;br /&gt;Such as posting some of my codes...</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/335652171387670335/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/335652171387670335' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/335652171387670335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/335652171387670335'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2009/01/ressurectum.html' title='Ressurectum'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-112860782127589647</id><published>2005-10-06T11:10:00.000-03:00</published><updated>2005-10-06T11:10:21.286-03:00</updated><title type='text'>Brazilian Joe&#39;s Hideout</title><content type='html'>Ping? Pong!</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/112860782127589647/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/112860782127589647' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/112860782127589647'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/112860782127589647'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2005/10/brazilian-joes-hideout.html' title='Brazilian Joe&#39;s Hideout'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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-14210740.post-112057000758477116</id><published>2005-07-05T10:26:00.000-03:00</published><updated>2005-07-05T10:26:47.586-03:00</updated><title type='text'>Bling!</title><content type='html'>&lt;span style=&quot;font-family: trebuchet ms;&quot;&gt;It&#39;s Alive!!!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://brazilianjoe.blogspot.com/feeds/112057000758477116/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment/fullpage/post/14210740/112057000758477116' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/112057000758477116'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/14210740/posts/default/112057000758477116'/><link rel='alternate' type='text/html' href='http://brazilianjoe.blogspot.com/2005/07/bling.html' title='Bling!'/><author><name>Brazilian Joe</name><uri>http://www.blogger.com/profile/18213498135865093079</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>