<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3281766985840896287</id><updated>2012-01-11T01:47:23.831Z</updated><category term='domains'/><category term='javascript'/><category term='hotmail'/><category term='cache'/><category term='encoding'/><category term='symbolic link'/><category term='distritos portugal'/><category term='conversion'/><category term='how to'/><category term='routers'/><category term='php distritos portugal'/><category term='xampp'/><category term='jquery plugin'/><category term='image resize'/><category term='css'/><category term='shell'/><category term='leopard'/><category term='meo'/><category term='classes'/><category term='telnet'/><category term='video'/><category term='windows'/><category term='email'/><category term='scripts'/><category term='automator'/><category term='linux'/><category term='truque'/><category term='apache'/><category term='mysql'/><category term='dock'/><category term='ntfs'/><category term='php'/><category term='dica'/><category term='chroot'/><category term='bash'/><category term='jquery'/><category term='timezone'/><category term='thompson'/><category term='software'/><category term='unix'/><category term='jailkit'/><category term='mac'/><category term='flac'/><category term='array distritos'/><category term='mp3'/><category term='ubuntu'/><category term='google'/><category term='svn'/><category term='nautilus'/><title type='text'>Tiago Tix Carvalho</title><subtitle type='html'>"Porque os post-it's vão sempre parar ao lixo"</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-6493605489526978322</id><published>2011-12-19T20:13:00.000Z</published><updated>2011-12-19T20:13:25.417Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Javascript check element visibility</title><content type='html'>&lt;p&gt;The following function checks if a given element is within browser's viewport:&lt;/p&gt;&lt;pre class="brush:javascript"&gt;function isScrolledIntoView(elem)&lt;br /&gt;{&lt;br /&gt;    var docViewTop = $(window).scrollTop();&lt;br /&gt;    var docViewBottom = docViewTop + $(window).height();&lt;br /&gt;&lt;br /&gt;    var elemTop = $(elem).offset().top;&lt;br /&gt;    var elemBottom = elemTop + $(elem).height();&lt;br /&gt;&lt;br /&gt;    return ((elemBottom &amp;gt;= docViewTop) &amp;amp;&amp;amp; (elemTop &amp;lt;= docViewBottom));&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;Sample Usage&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;On this example I'll be loading iframes only when they are on the browsers viewport. For this to work I initially printed all iframe's without the SRC attribute. Instead, I used the REL attribute as a placeholder for the iframe destination:&lt;/p&gt;&lt;pre class="brush:javascript"&gt;&lt;br /&gt;    var my_interval = setInterval(checkIframesVisibility, 1000);&lt;br /&gt;&lt;br /&gt;    function checkIframesVisibility()&lt;br /&gt;    {&lt;br /&gt;        $("iframe").each(function(i) {&lt;br /&gt;            if (isScrolledIntoView($(this)))&lt;br /&gt;            {&lt;br /&gt;                if ($(this).attr('src') == "")&lt;br /&gt;                {&lt;br /&gt;                    $(this).attr('src', $(this).attr('rel'));&lt;br /&gt;                    $(this).iframeAutoHeight({debug: false, diagnostics: false});&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        });&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    function isScrolledIntoView(elem)&lt;br /&gt;    {&lt;br /&gt;        var docViewTop = $(window).scrollTop();&lt;br /&gt;        var docViewBottom = docViewTop + $(window).height();&lt;br /&gt;&lt;br /&gt;        var elemTop = $(elem).offset().top;&lt;br /&gt;        var elemBottom = elemTop + $(elem).height();&lt;br /&gt;&lt;br /&gt;        return ((elemBottom &amp;gt;= docViewTop) &amp;amp;&amp;amp; (elemTop &amp;lt;= docViewBottom));&lt;br /&gt;    }&lt;br /&gt;&lt;/pre&gt;&lt;p&gt;PS: The iframeAutoHeight is a plugin that auto resizes the iframe to the content's height.&lt;/p&gt;&lt;p&gt;Hope you find this is useful!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-6493605489526978322?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/6493605489526978322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/12/javascript-check-element-visibility.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/6493605489526978322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/6493605489526978322'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/12/javascript-check-element-visibility.html' title='Javascript check element visibility'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-7967847200141330322</id><published>2011-11-10T02:05:00.000Z</published><updated>2011-11-10T02:05:15.253Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Global Apache 404 Page</title><content type='html'>This will setup a single 404 page for all domains on your web server.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1st&lt;/b&gt;: create a fancy 404 page like this one:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;a href="http://3.bp.blogspot.com/-vyGlzEBFgxg/Trsw7cE8NJI/AAAAAAAABLE/txdwayd1CMI/s1600/Screen+Shot+2011-11-10+at+2.03.05+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="279" src="http://3.bp.blogspot.com/-vyGlzEBFgxg/Trsw7cE8NJI/AAAAAAAABLE/txdwayd1CMI/s320/Screen+Shot+2011-11-10+at+2.03.05+AM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;2nd&lt;/b&gt;: put it somewhere on your server:&lt;br /&gt;&lt;pre class="brush: bash"&gt;/etc/apache2/error-documents/404.html&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;3rd&lt;/b&gt;: edit your apache configuration (/etc/apache2/apache2.conf on ubuntu machines):&lt;br /&gt;&lt;pre class="brush: bash"&gt;Alias /404 /etc/apache2/error-documents/404.html&lt;br /&gt;ErrorDocument 404 /404&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-7967847200141330322?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/7967847200141330322/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/11/global-apache-404-page.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7967847200141330322'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7967847200141330322'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/11/global-apache-404-page.html' title='Global Apache 404 Page'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-vyGlzEBFgxg/Trsw7cE8NJI/AAAAAAAABLE/txdwayd1CMI/s72-c/Screen+Shot+2011-11-10+at+2.03.05+AM.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-491788824559447680</id><published>2011-11-08T01:53:00.000Z</published><updated>2011-11-25T11:22:18.191Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='jailkit'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='chroot'/><title type='text'>Linux jail/lock/chroot users to homedir</title><content type='html'>&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Jailing, Chrooting, Locking users/applications...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-m6jRFFdnWQs/Ts95wQeKvgI/AAAAAAAABNw/kr4PexKb7NQ/s1600/monopoly_icon_go_jail_col.gif" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"&gt;&lt;img border="0" height="150" src="http://3.bp.blogspot.com/-m6jRFFdnWQs/Ts95wQeKvgI/AAAAAAAABNw/kr4PexKb7NQ/s200/monopoly_icon_go_jail_col.gif" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Yes, they do give it a lot of names... but if all you want to do is to create a user on your system and give him ssh/ftp access &lt;b&gt;without exposing your whole system -&lt;/b&gt;&amp;nbsp;therefore jailing him - just follow this steps. I promise it will take no more than 5 mins!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;This as been tested by myself on Ubuntu 10.04&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;STEP 1&lt;/span&gt;&lt;br /&gt;download &amp;amp; extract &lt;a href="http://olivier.sessink.nl/jailkit/"&gt;jailkit&lt;/a&gt;, then:&lt;br /&gt;&lt;pre class="brush: bash"&gt;./configure&lt;br /&gt;make&lt;br /&gt;make install&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;STEP 2&lt;/span&gt;&lt;br /&gt;set up the jail path:&lt;br /&gt;&lt;pre class="brush: bash"&gt;sudo mkdir /jail&lt;br /&gt;sudo chown root:root /jail&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;STEP 3&lt;/span&gt;&lt;br /&gt;define the environment&lt;br /&gt;&lt;pre class="brush: bash"&gt;sudo jk_init -v /jail basicshell&lt;br /&gt;sudo jk_init -v /jail editors&lt;br /&gt;sudo jk_init -v /jail extendedshell&lt;br /&gt;sudo jk_init -v /jail netutils&lt;br /&gt;sudo jk_init -v /jail ssh&lt;br /&gt;sudo jk_init -v /jail sftp&lt;br /&gt;sudo jk_init -v /jail jk_lsh&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;STEP 4&lt;/span&gt;&lt;br /&gt;add a user&lt;br /&gt;&lt;pre class="brush: bash"&gt;sudo adduser dummy&lt;br /&gt;sudo jk_jailuser -m -j /jail dummy&lt;br /&gt;sudo mkdir -p /jail/home/dummy&lt;br /&gt;chown dummy:dummy /jail/home/dummy&lt;/pre&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;VERIFY&lt;/span&gt;&lt;br /&gt;/jail/etc/group should look like:&lt;br /&gt;&lt;pre class="brush: bash"&gt;dummy:x:500:&lt;/pre&gt;&lt;br /&gt;/jail/etc/passwd should look like:&lt;br /&gt;&lt;pre class="brush: bash"&gt;dummy:x:1001:500::/home/dummy:/bin/bash&lt;/pre&gt;&lt;br /&gt;Now login via ssh/sftp with the dummy user. You should see a small portion of a filesystem if you change directory do / but you won't be able to see the REAL system files.&lt;br /&gt;&lt;br /&gt;Thanks to&amp;nbsp;&lt;a href="http://ubuntuforums.org/showthread.php?t=248724"&gt;http://ubuntuforums.org/showthread.php?t=248724&lt;/a&gt; !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-491788824559447680?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/491788824559447680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/11/linux-jaillockchroot-users-to-homedir.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/491788824559447680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/491788824559447680'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/11/linux-jaillockchroot-users-to-homedir.html' title='Linux jail/lock/chroot users to homedir'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-m6jRFFdnWQs/Ts95wQeKvgI/AAAAAAAABNw/kr4PexKb7NQ/s72-c/monopoly_icon_go_jail_col.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-4810621695893116295</id><published>2011-10-06T17:31:00.001+01:00</published><updated>2011-10-06T17:32:58.260+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='conversion'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><category scheme='http://www.blogger.com/atom/ns#' term='flac'/><title type='text'>Linux convert FLAC to MP3 under terminal</title><content type='html'>Using the terminal, navigate to your .flac folder.&lt;br /&gt;&lt;br /&gt;Run the following command:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bash"&gt;for file in *.flac; do flac -cd "$file" | lame -h - "${file%.flac}.mp3"; done&lt;/pre&gt;&lt;br /&gt;Note: You'll need both &lt;a href="http://flac.sourceforge.net/"&gt;flac&lt;/a&gt; and &lt;a href="http://lame.sourceforge.net/"&gt;lame&lt;/a&gt; installed (obviously).&lt;br /&gt;&lt;br /&gt;If you need a more advanced script try &lt;a href="http://www.linuxtutorialblog.com/post/solution-converting-flac-to-mp3-advanced-supports-drag-n-drop"&gt;this solution&lt;/a&gt; over &lt;a href="http://linuxtutorialblog.com/"&gt;linuxtutorialblog.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-4810621695893116295?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/4810621695893116295/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/10/linux-convert-flac-to-mp3-under.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4810621695893116295'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4810621695893116295'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/10/linux-convert-flac-to-mp3-under.html' title='Linux convert FLAC to MP3 under terminal'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-7281488276093927592</id><published>2011-10-04T02:06:00.001+01:00</published><updated>2011-10-06T17:32:42.685+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='symbolic link'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Allow symbolic links on Mac OS's native Apache</title><content type='html'>Edit:&lt;br /&gt;&lt;pre style="background-color: black; color: #cccccc;"&gt;/etc/apache2/users/&amp;lt;YOURUSER&amp;gt;.conf&lt;/pre&gt;&lt;br /&gt;Put:&lt;br /&gt;&lt;pre style="background-color: black; color: #cccccc;"&gt;&amp;lt;Directory "/Users/&amp;lt;YOURUSER&amp;gt;/Sites/"&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; Options Indexes MultiViews &lt;span class="Apple-style-span" style="color: red;"&gt;FollowSymLinks&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; AllowOverride None&lt;br /&gt;&amp;nbsp; &amp;nbsp; Order allow,deny&lt;br /&gt;&amp;nbsp; &amp;nbsp; Allow from all&lt;br /&gt;&amp;lt;/Directory&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-7281488276093927592?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/7281488276093927592/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/10/allow-symbolic-links-mac-oss-apache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7281488276093927592'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7281488276093927592'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/10/allow-symbolic-links-mac-oss-apache.html' title='Allow symbolic links on Mac OS&apos;s native Apache'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-4602373312123236634</id><published>2011-10-04T01:21:00.000+01:00</published><updated>2011-10-04T01:23:28.562+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Terminal colors on Mac OS</title><content type='html'>edit:&lt;pre class="brush: bash"&gt;~/.bash_profile&lt;/pre&gt;put:&lt;br /&gt;&lt;pre class="brush: bash"&gt;export CLICOLOR=1&lt;br /&gt;export LSCOLORS=GxFxCxDxBxegedabagaced&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-4602373312123236634?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/4602373312123236634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/10/terminal-colors-on-mac-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4602373312123236634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4602373312123236634'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/10/terminal-colors-on-mac-os.html' title='Terminal colors on Mac OS'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-668556728322538494</id><published>2011-06-29T17:44:00.000+01:00</published><updated>2011-06-29T17:44:40.849+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><title type='text'>MySQL export to file</title><content type='html'>Export a query result to a file directly from MySQL.&lt;br /&gt;&lt;br /&gt;First open mysql with "-s -t" arguments - this will force mysql to output without boxing characters:&lt;br /&gt;&lt;pre class="brush: bash"&gt;mysql -s -t -u &amp;lt;user&amp;gt; &amp;lt;database_name&amp;gt;&lt;/pre&gt;&lt;br /&gt;Now:&lt;br /&gt;&lt;pre class="brush: sql"&gt;SELECT * FROM table INTO OUTFILE '/path/to/file.txt'&lt;/pre&gt;&lt;br /&gt;It's all good, peace!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-668556728322538494?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/668556728322538494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/mysql-export-to-file.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/668556728322538494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/668556728322538494'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/mysql-export-to-file.html' title='MySQL export to file'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-5020113663495066125</id><published>2011-06-29T16:58:00.000+01:00</published><updated>2011-06-29T16:58:39.782+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mysql'/><category scheme='http://www.blogger.com/atom/ns#' term='encoding'/><title type='text'>Typical MySQL encoding problem</title><content type='html'>Don't you just HATE encodings?&lt;br /&gt;&lt;br /&gt;Ever wanted to insert something in &lt;a href="http://www.amazon.com/MySQL-4th-Paul-DuBois/dp/0672329387?ie=UTF8&amp;amp;tag=tixastronauta-20&amp;amp;link_code=btl&amp;amp;camp=213689&amp;amp;creative=392969" target="_blank"&gt;MySQL&lt;/a&gt;&lt;img alt="" border="0" height="1" src="http://www.assoc-amazon.com/e/ir?t=tixastronauta-20&amp;amp;l=btl&amp;amp;camp=213689&amp;amp;creative=392969&amp;amp;o=1&amp;amp;a=0672329387" style="border: none !important; margin: 0px !important; padding: 0px !important;" width="1" /&gt; and were 100% sure the text/database/table/fields were in UTF-8 and by some reason the text got all scrambled up?&lt;br /&gt;&lt;br /&gt;This usually works for me:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: sql"&gt;mysql_query("SET NAMES 'utf8'");&lt;/pre&gt;&lt;br /&gt;Hope it helps!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-5020113663495066125?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/5020113663495066125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/typical-mysql-encoding-problem.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5020113663495066125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5020113663495066125'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/typical-mysql-encoding-problem.html' title='Typical MySQL encoding problem'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-2058260844286027022</id><published>2011-06-17T02:39:00.000+01:00</published><updated>2011-06-17T02:39:55.991+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>jQuery preload images</title><content type='html'>Cool jquery image preload method:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: javascript"&gt;(function($) {&lt;br /&gt; var imgList = [];&lt;br /&gt; $.extend({&lt;br /&gt;  preload: function(imgArr, option) {&lt;br /&gt;   var setting = $.extend({&lt;br /&gt;    init: function(loaded, total) {},&lt;br /&gt;    loaded: function(img, loaded, total) {},&lt;br /&gt;    loaded_all: function(loaded, total) {}&lt;br /&gt;   }, option);&lt;br /&gt;   var total = imgArr.length;&lt;br /&gt;   var loaded = 0;&lt;br /&gt;   &lt;br /&gt;   setting.init(0, total);&lt;br /&gt;   for(var i in imgArr) {&lt;br /&gt;    imgList.push($("&lt;img /&gt;")&lt;br /&gt;     .attr("src", imgArr[i])&lt;br /&gt;     .load(function() {&lt;br /&gt;      loaded++;&lt;br /&gt;      setting.loaded(this, loaded, total);&lt;br /&gt;      if(loaded == total) {&lt;br /&gt;       setting.loaded_all(loaded, total);&lt;br /&gt;      }&lt;br /&gt;     })&lt;br /&gt;    );&lt;br /&gt;   }&lt;br /&gt;   &lt;br /&gt;  }&lt;br /&gt; });&lt;br /&gt;})(jQuery);&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;$(function() {&lt;br /&gt; &lt;br /&gt; $.preload([&lt;br /&gt;  "http://farm3.static.flickr.com/2661/3792282714_90584b41d5_b.jpg",&lt;br /&gt;  "http://farm2.static.flickr.com/1266/1402810863_d41f360b2e_o.jpg"&lt;br /&gt; ], {&lt;br /&gt;  init: function(loaded, total) {&lt;br /&gt;   $("#indicator").html("Loaded: "+loaded+"/"+total);&lt;br /&gt;  },&lt;br /&gt;  loaded: function(img, loaded, total) {&lt;br /&gt;   $("#indicator").html("Loaded: "+loaded+"/"+total);&lt;br /&gt;   $("#full-screen").append(img);&lt;br /&gt;  },&lt;br /&gt;  loaded_all: function(loaded, total) {&lt;br /&gt;   $("#indicator").html("Loaded: "+loaded+"/"+total+". Done!");&lt;br /&gt;  }&lt;br /&gt; });&lt;br /&gt; &lt;br /&gt;});&lt;/pre&gt;&lt;br /&gt;From:&amp;nbsp;&lt;a href="http://ditio.net/2010/02/14/jquery-preload-images-tutorial-and-example/"&gt;http://ditio.net/2010/02/14/jquery-preload-images-tutorial-and-example/&lt;/a&gt;&lt;br /&gt;Live example:&amp;nbsp;&lt;a href="http://ditio.net/demo/preloader/"&gt;http://ditio.net/demo/preloader/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-2058260844286027022?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/2058260844286027022/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/jquery-preload-images.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2058260844286027022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2058260844286027022'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/jquery-preload-images.html' title='jQuery preload images'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-2764929039717034717</id><published>2011-06-17T02:35:00.000+01:00</published><updated>2011-06-17T02:35:40.291+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery plugin'/><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>jQuery "sleep" function plugin - doTimeout</title><content type='html'>&lt;b&gt;jQuery doTimeout: Like setTimeout, but better!&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;It's really not a "sleep" function but it acts just like we want when we go "oh! I could really use a sleep function right now!"&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: javascript"&gt;$.doTimeout(3000,function(){&lt;br /&gt;    alert('yeeey!');&lt;br /&gt;});&lt;/pre&gt;&lt;br /&gt;Homepage:&amp;nbsp;&lt;a href="http://benalman.com/projects/jquery-dotimeout-plugin/"&gt;http://benalman.com/projects/jquery-dotimeout-plugin/&lt;/a&gt;&lt;br /&gt;GitHub:&amp;nbsp;&lt;a href="http://github.com/cowboy/jquery-dotimeout"&gt;http://github.com/cowboy/jquery-dotimeout&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-2764929039717034717?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/2764929039717034717/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/jquery-sleep-function-plugin-dotimeout.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2764929039717034717'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2764929039717034717'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/jquery-sleep-function-plugin-dotimeout.html' title='jQuery &quot;sleep&quot; function plugin - doTimeout'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-7747941709131623838</id><published>2011-06-16T15:54:00.000+01:00</published><updated>2011-06-16T15:54:21.308+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='classes'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>PHP5 Dynamically calling Classes and Methods</title><content type='html'>Easy peasy:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: php"&gt;$class_name = 'NiceClass';&lt;br /&gt;$method_name = 'niceMethod';&lt;br /&gt;$arguments = array('a' =&gt; true, 'b' =&gt; 5);&lt;br /&gt;&lt;br /&gt;if (class_exists($class_name)) {&lt;br /&gt;  $class = new $class_name();&lt;br /&gt;  if (method_exists($class, $method_name)) {  &lt;br /&gt;    $class-&gt;$method_name($arguments);&lt;br /&gt;  }&lt;br /&gt;  &lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-7747941709131623838?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/7747941709131623838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/php5-dynamically-calling-classes-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7747941709131623838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7747941709131623838'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/06/php5-dynamically-calling-classes-and.html' title='PHP5 Dynamically calling Classes and Methods'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-5697239740419821127</id><published>2011-05-30T12:37:00.000+01:00</published><updated>2011-05-30T12:37:18.311+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='timezone'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><title type='text'>Linux change timezone</title><content type='html'>&lt;pre class="brush: bash"&gt;$ cd /etc/&lt;br /&gt;$ ln -sf /usr/share/zoneinfo/Europe/Lisbon localtime&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-5697239740419821127?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/5697239740419821127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/05/linux-change-timezone.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5697239740419821127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5697239740419821127'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/05/linux-change-timezone.html' title='Linux change timezone'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-4715918199151338454</id><published>2011-04-07T15:01:00.000+01:00</published><updated>2011-04-07T15:01:23.421+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='array distritos'/><category scheme='http://www.blogger.com/atom/ns#' term='distritos portugal'/><category scheme='http://www.blogger.com/atom/ns#' term='php distritos portugal'/><title type='text'>Array Distritos Portugal</title><content type='html'>Por vezes dá jeito:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: php"&gt;$array = array(&lt;br /&gt;            'aveiro' =&gt; 'Aveiro',&lt;br /&gt;            'beja' =&gt; 'Beja',&lt;br /&gt;            'braga' =&gt; 'Braga',&lt;br /&gt;            'braganca' =&gt; 'Bragança',&lt;br /&gt;            'castelo-branco' =&gt; 'Castelo Branco',&lt;br /&gt;            'coimbra' =&gt; 'Coimbra',&lt;br /&gt;            'evora' =&gt; 'Évora',&lt;br /&gt;            'faro' =&gt; 'Faro',&lt;br /&gt;            'guarda' =&gt; 'Guarda',&lt;br /&gt;            'leiria' =&gt; 'Leiria',&lt;br /&gt;            'lisboa' =&gt; 'Lisboa',&lt;br /&gt;            'portalegre' =&gt; 'Portalegre',&lt;br /&gt;            'porto' =&gt; 'Porto',&lt;br /&gt;            'santarem' =&gt; 'Santarém',&lt;br /&gt;            'setubal' =&gt; 'Setúbal',&lt;br /&gt;            'viana-do-castelo' =&gt; 'Viana do Castelo',&lt;br /&gt;            'vila-real' =&gt; 'Vila Real',&lt;br /&gt;            'viseu' =&gt; 'Viseu',&lt;br /&gt;&lt;br /&gt;            'outro-ilhas' =&gt; 'Outro (ilhas)',&lt;br /&gt;        );&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-4715918199151338454?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/4715918199151338454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/04/array-distritos-portugal.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4715918199151338454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4715918199151338454'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/04/array-distritos-portugal.html' title='Array Distritos Portugal'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-5085805882134337653</id><published>2011-03-16T17:59:00.000Z</published><updated>2011-03-16T17:59:06.067Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='image resize'/><category scheme='http://www.blogger.com/atom/ns#' term='nautilus'/><title type='text'>Linux Nautilus Quick Resize Images</title><content type='html'>&lt;pre class="brush: bash"&gt;sudo aptitude install nautilus-image-converter&lt;/pre&gt;and then:&lt;br /&gt;&lt;a target='_blank' href='http://img641.imageshack.us/i/screenshotskypefilebrow.png/'&gt;&lt;img src='http://img641.imageshack.us/img641/3088/screenshotskypefilebrow.th.png' border='0'/&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-5085805882134337653?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/5085805882134337653/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/03/linux-nautilus-quick-resize-images.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5085805882134337653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5085805882134337653'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/03/linux-nautilus-quick-resize-images.html' title='Linux Nautilus Quick Resize Images'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-1017300718276276611</id><published>2011-02-03T00:47:00.000Z</published><updated>2011-02-03T00:47:13.428Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xampp'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Mac OS and XAMPP: conflicts with native PHP</title><content type='html'>My developments on my macbook have been on hold for quite some time now... Last time I used PHP on it, it was running Leopard and everything was running smooth. Today (with Snow Leopard), while performing a simple PHP task (using php-cli), it shouted the following error:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bash"&gt;PDO Connection Error: SQLSTATE[HY000] [2002] No such file or directory&lt;/pre&gt;&lt;br /&gt;After more investigation then I'd like.. I found the problem.&lt;br /&gt;&lt;br /&gt;The php-cli I was using was pointing to the OS's native php (which I've never used).&lt;br /&gt;&lt;br /&gt;All I needed to do was:&lt;br /&gt;&lt;pre class="brush: bash"&gt;$ mv /usr/bin/php /usr/bin/php-native&lt;br /&gt;$ cd /usr/bin&lt;br /&gt;$ ln -s /Applications/XAMPP/xamppfiles/php php&lt;/pre&gt;&lt;br /&gt;This way I kept a copy of OS's native PHP, and created a symlink to XAMPP's PHP.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-1017300718276276611?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/1017300718276276611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/02/mac-os-and-xampp-conflicts-with-native.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1017300718276276611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1017300718276276611'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/02/mac-os-and-xampp-conflicts-with-native.html' title='Mac OS and XAMPP: conflicts with native PHP'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-3393194532640938606</id><published>2011-02-01T02:12:00.000Z</published><updated>2011-02-01T02:12:11.492Z</updated><title type='text'>php url-safe base64 encoding</title><content type='html'>Basically:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;'+' is replaced by '-'&lt;/li&gt;&lt;li&gt;'/' is replaced by '_'(underscore)&lt;/li&gt;&lt;li&gt;'=' is replaced by '!'&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre class="brush: php"&gt;function urlsafe_b64encode($string) {&lt;br /&gt;    $data = base64_encode($string);&lt;br /&gt;    $data = str_replace(array('+','/','='),array('-','_',''),$data);&lt;br /&gt;    return $data;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function urlsafe_b64decode($string) {&lt;br /&gt;    $data = str_replace(array('-','_'),array('+','/'),$string);&lt;br /&gt;    $mod4 = strlen($data) % 4;&lt;br /&gt;    if ($mod4) {&lt;br /&gt;        $data .= substr('====', $mod4);&lt;br /&gt;    }&lt;br /&gt;    return base64_decode($data);&lt;br /&gt;}&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-3393194532640938606?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/3393194532640938606/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/02/php-url-safe-base64-encoding.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/3393194532640938606'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/3393194532640938606'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/02/php-url-safe-base64-encoding.html' title='php url-safe base64 encoding'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-1910186049067918587</id><published>2011-01-17T12:27:00.001Z</published><updated>2011-01-17T12:28:08.241Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Cycle all class's wth JQuery</title><content type='html'>&lt;a href="http://teclasdeatalho.blogspot.com/2011/01/percorrer-classes-com-jquery.html?spref=bl"&gt;Teclas de Atalho: Percorrer classes com JQuery&lt;/a&gt;: "Para percorrer as classes de um elemento com JQuery, use o seguinte código: var elemento = $('div'); var classes = elemento.attr('class').sp..."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-1910186049067918587?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/1910186049067918587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2011/01/cycle-all-classs-wth-jquery.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1910186049067918587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1910186049067918587'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2011/01/cycle-all-classs-wth-jquery.html' title='Cycle all class&apos;s wth JQuery'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-5610614239935456726</id><published>2010-12-29T23:59:00.000Z</published><updated>2010-12-29T23:59:41.158Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='php'/><category scheme='http://www.blogger.com/atom/ns#' term='apache'/><title type='text'>Apache not parsing PHP</title><content type='html'>&lt;blockquote&gt;It happened to me more than once, and I keep googling it... Next time I know just the place with the solution :)&lt;/blockquote&gt;During my last apache update (which I did from webmin) all my php pages were not being parsed and as a result the browser asked me to download the .php file (with all the coding..).&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Why does this happen?&lt;/h2&gt;Most likely the apache's php module is disabled (see &lt;a href="#sol1"&gt;Solution #1&lt;/a&gt;) or&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: monospace; font-size: 12px;"&gt;libapache2-mod-php&amp;nbsp;&lt;/span&gt;is not installed (see &lt;a href="#sol2"&gt;Solution #2&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="sol1"&gt;Solution #1&lt;/a&gt;&lt;/h2&gt;Enable apache's php module:&lt;br /&gt;&lt;pre class="brush: plain"&gt;sudo a2enmod php5&lt;/pre&gt;&lt;br /&gt;Now restart apache:&lt;br /&gt;&lt;pre class="brush: plain"&gt;sudo /etc/init.d/apache2 restart&lt;/pre&gt;&lt;br /&gt;&lt;h2&gt;&lt;a name="sol2"&gt;Solution #2&lt;/a&gt;&lt;/h2&gt;(Re-)install php module:&lt;br /&gt;&lt;pre class="brush: plain"&gt;sudo apt-get install libapache2-mod-php&lt;/pre&gt;&lt;br /&gt;Now repeat &lt;a href="#sol1"&gt;Solution #1&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-5610614239935456726?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/5610614239935456726/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/12/apache-not-parsing-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5610614239935456726'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5610614239935456726'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/12/apache-not-parsing-php.html' title='Apache not parsing PHP'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-1579176260184421285</id><published>2010-11-24T12:40:00.000Z</published><updated>2010-11-24T12:40:40.618Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='truque'/><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='cache'/><category scheme='http://www.blogger.com/atom/ns#' term='svn'/><category scheme='http://www.blogger.com/atom/ns#' term='css'/><title type='text'>Mostrar Revisao SVN no PHP</title><content type='html'>Por vezes é necessário no PHP saber qual a versão/revisão do SVN.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;Caso prático&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;No meu caso, estou a chamar um ficheiro .css que preciso que seja "revisitado" (ignorar cache) cada vez que a versão do SVN é alterada.&lt;br /&gt;&lt;br /&gt;Para tal, activo a Keyword "Revision" para o ficheiro onde a quero usar:&lt;br /&gt;&lt;pre class="brush: bash"&gt;svn propset svn:keywords "Revision" layout/html_header.php&lt;br /&gt;&lt;br /&gt;-&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Agora, no ficheiro &lt;b&gt;layout/html_header.php&lt;/b&gt; actualizo o sitio onde estou a chamar o .css para:&lt;br /&gt;&lt;pre class="brush: html"&gt;&amp;lt;link &lt;br /&gt;href="static/css/style.css?&amp;lt;?php echo base64_encode('$Rev$') ?&amp;gt;" &lt;br /&gt;rel="stylesheet" &lt;br /&gt;type="text/css" /&amp;gt;&lt;/pre&gt;&lt;br /&gt;Depois disto, a cada &lt;b&gt;commit&lt;/b&gt; o SVN actualiza automaticamente o ficheiro &lt;b&gt;layout/html_header.php&lt;/b&gt; com o número da última revisao do SVN.&lt;br /&gt;&lt;br /&gt;Isto significa que o browser vai pensar que o ficheiro .css é novo (porque chama-se, por exemplo &lt;b&gt;style.css?JFJldjogNTMgJA==&lt;/b&gt;) e dessa forma não utiliza o que tem em cache (style.css)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-1579176260184421285?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/1579176260184421285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/11/mostrar-revisao-svn-no-php.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1579176260184421285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1579176260184421285'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/11/mostrar-revisao-svn-no-php.html' title='Mostrar Revisao SVN no PHP'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-2137977784717300886</id><published>2010-11-09T00:31:00.000Z</published><updated>2010-11-09T00:31:09.806Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='routers'/><category scheme='http://www.blogger.com/atom/ns#' term='meo'/><title type='text'>Passwords dos routers Thomson (Meo)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://meo.aproveita.info/" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="141" src="http://meo.aproveita.info/images/meoaproveita.jpg" width="250" /&gt;&lt;/a&gt;&lt;/div&gt;Os routers Thomson distribuidos pela Meo vem com uma password default que pode ser calculada através dum simples algoritmo. Basta saber o SSID do router, e fazer umas continhas. Ou então, usar &lt;a href="http://meo.aproveita.info/"&gt;este website&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-2137977784717300886?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/2137977784717300886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/11/passwords-dos-routers-thomson-meo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2137977784717300886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2137977784717300886'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/11/passwords-dos-routers-thomson-meo.html' title='Passwords dos routers Thomson (Meo)'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-3740038446107008452</id><published>2010-10-29T03:24:00.001+01:00</published><updated>2010-10-29T03:38:27.623+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><title type='text'>Gerar SSH KEY para utilizador Unix</title><content type='html'>Criar conta de utilizador:&lt;br /&gt;&lt;pre class="brush: bash"&gt;useradd -d /home/(user) -m -g 100 -s /bin/bash (user)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Gerar chave pública e privada:&lt;br /&gt;&lt;pre class="brush: bash"&gt;ssh-keygen -t rsa -f id_(user)&lt;/pre&gt;Daqui resultam dois ficheiros:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;id_(user)&lt;/strong&gt; - chave privada (deve ser enviada para o utilizador)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;id_(user).pub&lt;/strong&gt; - chave pública (deve ser movida para a home do user - ver passos seguintes)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Criar directório .ssh:&lt;br /&gt;&lt;pre class="brush: bash"&gt;mkdir /home/(user)/.ssh&lt;/pre&gt;&lt;br /&gt;Mover chave pública para directório .ssh:&lt;br /&gt;&lt;pre class="brush: bash"&gt;mv id_(user).pub /home/(user)/.ssh/authorized_keys&lt;/pre&gt;&lt;br /&gt;Definir permissões correctas para o ficheiro de chave pública&lt;br /&gt;&lt;pre class="brush: bash"&gt;chown (user):users /home/(user)/.ssh/*&lt;br /&gt;chmod 0600 /home/(user)/.ssh/*&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-3740038446107008452?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/3740038446107008452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/10/gerar-ssh-key-para-utilizador-unix.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/3740038446107008452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/3740038446107008452'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/10/gerar-ssh-key-para-utilizador-unix.html' title='Gerar SSH KEY para utilizador Unix'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-7213501660764003993</id><published>2010-10-29T01:51:00.000+01:00</published><updated>2010-10-29T01:51:12.779+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><title type='text'>SyntaxHighlighter: apresentar código em blogs e afins</title><content type='html'>Exemplo:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: php"&gt;&amp;lt;php &lt;br /&gt;$var = array('a' =&amp;gt; 'example');&lt;br /&gt;print_r($var);&lt;br /&gt;echo "wow!";&lt;br /&gt;?&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://alexgorbatchev.com/SyntaxHighlighter/"&gt;Mais informações e download aqui&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-7213501660764003993?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/7213501660764003993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/10/syntaxhighlighter-apresentar-codigo-em.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7213501660764003993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7213501660764003993'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/10/syntaxhighlighter-apresentar-codigo-em.html' title='SyntaxHighlighter: apresentar código em blogs e afins'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-4691556050770802834</id><published>2010-10-29T01:11:00.002+01:00</published><updated>2010-10-29T01:40:31.371+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hotmail'/><category scheme='http://www.blogger.com/atom/ns#' term='domains'/><category scheme='http://www.blogger.com/atom/ns#' term='email'/><category scheme='http://www.blogger.com/atom/ns#' term='how to'/><title type='text'>MTA: Envio de e-mails para caixas de correio Hotmail</title><content type='html'>Após um envio duma newsletter do Magento, verifiquei que os e-mails não estavam a entrar nas caixas Hotmail. Foi-me devolvida a seguinte resposta:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;The original message was received at Thu, 28 Oct 2010 23:40:04 GMT&lt;br /&gt;from localhost [127.0.0.1]&lt;br /&gt;&lt;br /&gt;   ----- The following addresses had permanent fatal errors -----&lt;br /&gt;&lt;xxx@hotmail.com&gt;&lt;br /&gt;    (reason: 550 DY-001 Unfortunately, messages from xx.101.xxx.145 weren't sent.&lt;br /&gt;Please contact your Internet se...P ranges. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.)&lt;br /&gt;&lt;br /&gt;   ----- Transcript of session follows -----&lt;br /&gt;... while talking to mx1.hotmail.com.:&lt;br /&gt;&amp;gt;&amp;gt;&amp;gt; MAIL From:&lt;ubuntu@machinename.internal&gt; SIZE=921 AUTH=&amp;lt;&amp;gt;&lt;br /&gt;&amp;lt;&amp;lt;&amp;lt; 550 DY-001 Unfortunately, messages from xx.101.xxx.145 weren't sent. Please contact&lt;br /&gt;your Internet service provider. You can tell them that Hotmail does not relay dynamically-assigned&lt;br /&gt;IP ranges. You can also refer your provider to http://mail.live.com/mail/troubleshooting.aspx#errors.&lt;br /&gt;554 5.0.0 Service unavailable&lt;/ubuntu@machinename.internal&gt;&lt;/xxx@hotmail.com&gt;&lt;/pre&gt;&lt;br /&gt;Segui as instruções do site &lt;a href="http://mail.live.com/mail/troubleshooting.aspx#errors"&gt;http://mail.live.com/mail/troubleshooting.aspx#errors&lt;/a&gt; e coloquei a seguinte entrada no DNS do dominio:&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;TXT "v=spf1 -all"&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-4691556050770802834?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/4691556050770802834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/10/mta-envio-de-e-mails-para-caixas-de.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4691556050770802834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4691556050770802834'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/10/mta-envio-de-e-mails-para-caixas-de.html' title='MTA: Envio de e-mails para caixas de correio Hotmail'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-1083233597684684658</id><published>2010-09-03T03:59:00.001+01:00</published><updated>2010-10-29T01:39:16.124+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='telnet'/><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='meo'/><category scheme='http://www.blogger.com/atom/ns#' term='thompson'/><title type='text'>Truques na Meo</title><content type='html'>Ligar por telnet:&lt;br /&gt;&lt;pre class="brush: plain"&gt;telnet 192.168.1.254&lt;/pre&gt;&lt;br /&gt;Logar com um destes users (nivel de permissões decrescente):&lt;br /&gt;&lt;pre class="brush: plain"&gt;user: microuser&lt;br /&gt;pass: !C0nf16,M30&lt;br /&gt;&lt;br /&gt;user: sumeo&lt;br /&gt;pass: m30acc355&lt;br /&gt;&lt;br /&gt;user: Administrator&lt;br /&gt;pass: 3!play&lt;/pre&gt;&lt;br /&gt;Agora é só brincar!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dica extra&lt;/b&gt;:&lt;br /&gt;&lt;br /&gt;Para configurar os servidores dns do OpenDNS.com basta executar estes comandos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: plain"&gt;dns server route add dns=208.67.222.222 metric=5 intf=Internet&lt;br /&gt;dns server route add dns=208.67.220.220 metric=5 intf=Internet&lt;br /&gt;saveall&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;E é isto. lol&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-1083233597684684658?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/1083233597684684658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2010/09/truques-na-meo.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1083233597684684658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/1083233597684684658'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2010/09/truques-na-meo.html' title='Truques na Meo'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-4682384586421939193</id><published>2009-02-11T22:45:00.001Z</published><updated>2009-02-11T22:45:18.615Z</updated><title type='text'>Mac OS X Manual</title><content type='html'>Manual que fiz para a cadeira Operative Systems Theory @ Technical University Lodz (Polónia)&lt;div style="width:425px;text-align:left" id="__ss_1018646"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/tixastronauta/mac-os-x-manual?type=presentation" title="Mac OS X Manual"&gt;Mac OS X Manual&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=manualmacosfinal-1234390440229338-1&amp;stripped_title=mac-os-x-manual" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=manualmacosfinal-1234390440229338-1&amp;stripped_title=mac-os-x-manual" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/tixastronauta"&gt;Tiago Carvalho&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/mac"&gt;mac&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/os"&gt;os&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-4682384586421939193?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/4682384586421939193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2009/02/mac-os-x-manual.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4682384586421939193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4682384586421939193'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2009/02/mac-os-x-manual.html' title='Mac OS X Manual'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-4695962040118057255</id><published>2009-02-06T14:00:00.004Z</published><updated>2010-10-29T01:43:16.360+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='bash'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Colorir as listas da Bash</title><content type='html'>Para colorir as listas da Bash basta:&lt;br /&gt;&lt;br /&gt;editar o ficheiro:&lt;br /&gt;&lt;pre class="brush: bash"&gt;~/.bash_profile&lt;/pre&gt;&lt;br /&gt;e adicionar as seguintes linhas:&lt;br /&gt;&lt;pre class="brush: bash"&gt;export CLICOLOR=1&lt;br /&gt;export LSCOLORS=ExFxCxDxBxegedabagacad&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-4695962040118057255?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/4695962040118057255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2009/02/colorir-as-listas-da-bash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4695962040118057255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/4695962040118057255'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2009/02/colorir-as-listas-da-bash.html' title='Colorir as listas da Bash'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-5037415358781492161</id><published>2009-01-28T02:32:00.005Z</published><updated>2010-10-29T01:45:41.626+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scripts'/><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='unix'/><category scheme='http://www.blogger.com/atom/ns#' term='shell'/><title type='text'>Descompactar muitos ficheiros num só comando</title><content type='html'>Aqui está um script muito simples e muito útil que me lembrei de fazer hoje:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;massunrar.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="brush: bash"&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# verificar se tem argumento&lt;br /&gt;if [ $# -ne 1 ]; then&lt;br /&gt;echo "Usage: massunrar &lt;extention&gt;"&lt;br /&gt;exit;&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;filter=`pwd`'/*'$1&lt;br /&gt;echo "*** Extracting all files matching: $1 in $filter"&lt;br /&gt;&lt;br /&gt;for file in $filter; do&lt;br /&gt;unrar e $file&lt;br /&gt;done&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-5037415358781492161?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/5037415358781492161/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2009/01/descompactar-muitos-ficheiros-num-so.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5037415358781492161'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/5037415358781492161'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2009/01/descompactar-muitos-ficheiros-num-so.html' title='Descompactar muitos ficheiros num só comando'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-7547163307980446698</id><published>2008-10-09T14:40:00.007+01:00</published><updated>2010-12-22T13:01:43.899Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='truque'/><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Downloads do Rapidshare com rsget</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://rapidshare.com/img2/rslogo.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 202px; height: 143px;" src="http://rapidshare.com/img2/rslogo.gif" alt="" border="0" /&gt;&lt;/a&gt;Este pequeno programa é uma pérola para quem tem conta no Rapidshare e usa um SO baseado em Unix (OpenBSD, FreeBSD, NetBSD, Linux, MacOSX, etc).&lt;br /&gt;&lt;br /&gt;Depois de copiar o ficheiro 'rsget' para o directorio /usr/bin/, ao executar o programa este é o output apresentado:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Usage:  rsget [OPTIONS] [link_1 link_2 ... link_n]&lt;br /&gt;&lt;br /&gt;-i inputfile       read urls from inputfile (the script is smart enough&lt;br /&gt;to skip lines that are not rapidshare.com links)&lt;br /&gt;-o outputdir       write the files to outputdir (default: current dir)&lt;br /&gt;-c cookiejar       use cookiejar as a cookiejar; create it if it does not exist&lt;br /&gt;(default: rscookies.txt)&lt;br /&gt;-a agent-string    identify as agent to the webserver (enclose it in quotes)&lt;br /&gt;-k                 keep the cookiejar (pre-existing cookiejars are always kept)&lt;br /&gt;-l rsloginfile     use rsloginfile for login credentials (default: /Users/tiagocarvalho/.rslogin)&lt;br /&gt;-L logfile         use logfile for writting succesfully retrieved links&lt;br /&gt;-s                 silent&lt;br /&gt;-S                 share files (use a umask of 022 for downloaded files)&lt;br /&gt;(default: use a umask of 077)&lt;br /&gt;-v                 (de)buggingly verbose&lt;br /&gt;-w                 do not resume; overwrite.&lt;br /&gt;-r maxrandomsleep  maximum number of seconds to randomly sleep between downloads&lt;br /&gt;(default: 0)&lt;br /&gt;-R                 reverse the order of the download queue&lt;br /&gt;-M maxspeed        e.g. -M 150k (default: unset -- no limit imposed)&lt;br /&gt;-m minspeed        minimum avg speed in a 4 min period, in b/s (default: 20000)&lt;br /&gt;-b                 display your balance status&lt;br /&gt;-V                 display version&lt;br /&gt;-h                 display this message&lt;br /&gt;&lt;br /&gt;For more information, check rsget's website at:&lt;br /&gt;http://www.mathimatiko.net/software/rsget/&lt;/blockquote&gt;&lt;br /&gt;Na primeira execução será pedido a criação de um ficheiro com os dados do rapidshare. Depois basta activar a opção "&lt;span style="font-style: italic;"&gt;Direct Linking&lt;/span&gt;" nas &lt;span style="font-style: italic;"&gt;Settings&lt;/span&gt; do &lt;a href="http://www.rapidshare.com/"&gt;Rapidshare&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5SDUoNmCODc/SO4MBagg2TI/AAAAAAAAAFo/5Txp58OF1YU/s1600-h/Picture+1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_5SDUoNmCODc/SO4MBagg2TI/AAAAAAAAAFo/5Txp58OF1YU/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5255151033623042354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;E já está tudo pronto!&lt;br /&gt;&lt;br /&gt;&gt;&gt; Ou seja, para sacar o Entourage_-_3x01_-_Aquamom_-_DVDRip.XviD-aAF.part1.rar basta executar na shell:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;rsget http://rapidshare.com/files/145416897/Entourage_-_3x01_-_Aquamom_-_DVDRip.XviD-aAF.part1.rar&lt;/blockquote&gt;&lt;br /&gt;&gt;&gt; Para sacar uma &lt;span style="font-weight: bold;"&gt;lista de ficheiros&lt;/span&gt; basta criar um ficheiro com um link por linha e executar o comando:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;rsget -i ficheiro_com_lista_de_downloads.txt&lt;/blockquote&gt;&lt;br /&gt;O programa está disponível neste link: &lt;a href="http://freshmeat.net/projects/rsgetpl"&gt;&lt;span style="font-weight: bold;"&gt;rsget&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-7547163307980446698?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/7547163307980446698/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/10/downloads-do-rapidshare.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7547163307980446698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7547163307980446698'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/10/downloads-do-rapidshare.html' title='Downloads do Rapidshare com rsget'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5SDUoNmCODc/SO4MBagg2TI/AAAAAAAAAFo/5Txp58OF1YU/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-6727883923864022227</id><published>2008-09-23T01:57:00.007+01:00</published><updated>2008-09-23T02:28:34.056+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='truque'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><category scheme='http://www.blogger.com/atom/ns#' term='automator'/><title type='text'>Resize e Watermark</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.macsparky.com/wp-content/uploads/2007/11/automator-icon.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 211px; height: 211px;" src="http://www.macsparky.com/wp-content/uploads/2007/11/automator-icon.png" alt="" border="0" /&gt;&lt;/a&gt;Para quem tira fotografias e gosta de as divulgar na Internet (ou simplesmente passa-las a amigos), é chato ter de enviar a foto com o tamanho máximo pois o ficheiro torna-se &lt;span style="font-weight: bold;"&gt;demasiadamente grande&lt;/span&gt;... Fazer resize é a opção, mas fazer um a um demora muito tempo! Outra coisa interessante é colocar uma pequena &lt;span style="font-style: italic;"&gt;watermark&lt;/span&gt; na imagem, mas mais uma vez é uma tarefa demorosa...&lt;br /&gt;&lt;br /&gt;Com o &lt;span style="font-weight: bold;"&gt;Automator&lt;/span&gt; essa tarefa torna-se extremamente fácil e rápida.&lt;br /&gt;&lt;br /&gt;O &lt;a href="http://en.wikipedia.org/wiki/Automator_%28software%29"&gt;Automator&lt;/a&gt; é uma aplicação que serve para automatizar funções baseando-se num sistema bastante intuitivo à base de &lt;span style="font-style: italic;"&gt;drag &amp;amp; drops.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Passo 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Em primeiro lugar sacar e instalar o &lt;a href="http://www.yvs.eu.com/downloads/iMaginePhoto.dmg"&gt;iMagine Photo&lt;/a&gt; (clica para download).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;PASSO 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Agora vamos instalar as &lt;span style="font-style: italic;"&gt;actions&lt;/span&gt; necessárias ao &lt;span style="font-weight: bold;"&gt;Automator&lt;/span&gt;: &lt;a href="http://tc.versiontracker.com/product/redir/lid/1516318/iMaginePhotoActions.dmgiMagine%20Photo%20Automator%20Actions"&gt;iMagine Photo Actions&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5SDUoNmCODc/SNhB3OFbapI/AAAAAAAAAA4/zDJR5RYtTMY/s1600-h/Picture+1.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_5SDUoNmCODc/SNhB3OFbapI/AAAAAAAAAA4/zDJR5RYtTMY/s320/Picture+1.png" alt="" id="BLOGGER_PHOTO_ID_5249017782629788306" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size:78%;"&gt;Duplo clique em "Install Actions".&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Passo 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;ul&gt;&lt;li&gt;Abrir o Automator;&lt;/li&gt;&lt;li&gt;Escolher "&lt;span style="font-weight: bold;"&gt;Files &amp;amp; Folders&lt;/span&gt;" como inicio do &lt;span style="font-style: italic;"&gt;workflow:&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5SDUoNmCODc/SNhCw4Bw7XI/AAAAAAAAABA/Y4_y-imw_80/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_5SDUoNmCODc/SNhCw4Bw7XI/AAAAAAAAABA/Y4_y-imw_80/s320/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5249018773141253490" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Escolher &lt;/span&gt;&lt;span&gt;a(s) imagem(s) a redimensionar e adiciona-las;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Escrever "&lt;span style="font-weight: bold;"&gt;imagine&lt;/span&gt;" no campo de pesquisa:&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_5SDUoNmCODc/SNhDrWaiXWI/AAAAAAAAABI/UNCVkmnYlsQ/s1600-h/Picture+3.png"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_5SDUoNmCODc/SNhDrWaiXWI/AAAAAAAAABI/UNCVkmnYlsQ/s320/Picture+3.png" alt="" id="BLOGGER_PHOTO_ID_5249019777730633058" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Fazer duplo-clique em "&lt;span style="font-weight: bold;"&gt;Draw Text On Image&lt;/span&gt;";&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Fazer duplo-clique em "&lt;span style="font-weight: bold;"&gt;Scale To&lt;/span&gt;";&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Agora basta definir o texto que queres colocar na(s) imagem(s) e o tamanho pretendido. Clique em "&lt;span style="font-weight: bold;"&gt;Run&lt;/span&gt;" (canto superior direito) e está pronto!&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_5SDUoNmCODc/SNhEufGl40I/AAAAAAAAABQ/1SVUU_isZDw/s1600-h/Picture+4.png"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_5SDUoNmCODc/SNhEufGl40I/AAAAAAAAABQ/1SVUU_isZDw/s320/Picture+4.png" alt="" id="BLOGGER_PHOTO_ID_5249020931114132290" border="0" /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt;Abençoado sejas Mac! ;)&lt;br /&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-6727883923864022227?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/6727883923864022227/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/09/resize-e-watermark.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/6727883923864022227'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/6727883923864022227'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/09/resize-e-watermark.html' title='Resize e Watermark'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_5SDUoNmCODc/SNhB3OFbapI/AAAAAAAAAA4/zDJR5RYtTMY/s72-c/Picture+1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-2298930441932094659</id><published>2008-09-02T21:32:00.002+01:00</published><updated>2008-09-02T21:43:57.666+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Chrome</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/tools/dlpage/res/chrome/images/chrome-205_noshadow.png"&gt;&lt;img style="cursor: pointer; width: 205px; height: 205px;" src="http://www.google.com/tools/dlpage/res/chrome/images/chrome-205_noshadow.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Google Chrome : o browser do Google!&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;O Google não para! Acabadinho de sair, eis que surge um browser que promete revolucionar a maneira como navegamos na web. Depois de ler o &lt;a href="http://www.google.com/googlebooks/chrome/"&gt;comic sobre o Chrome&lt;/a&gt; fiquei com muita curiosidade em experimentar este novo browser. Esperei até agora para conseguir sacar, mas parece que quer a versão para &lt;span style="font-weight: bold;"&gt;Linux&lt;/span&gt; quer para &lt;span style="font-weight: bold;"&gt;Mac&lt;/span&gt; ainda não está pronta... No entanto estou agora a experimentá-lo no &lt;span style="font-weight: bold;"&gt;XP&lt;/span&gt;. So far, so good!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/chrome/"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://www.gamesforthebrain.com/google-chrome/screens/google-chrome-screenshot.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Clique na imagem para fazer o download do Google Chrome.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Vamos lá ver como se safa o Google a combater contra Firefox, Opera e IE.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-2298930441932094659?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/2298930441932094659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/09/google-chrome.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2298930441932094659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/2298930441932094659'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/09/google-chrome.html' title='Google Chrome'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-7462770745702641570</id><published>2008-09-01T22:52:00.005+01:00</published><updated>2008-09-01T23:10:35.238+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='video'/><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Ripar DVDs</title><content type='html'>&lt;div style="text-align: justify;"&gt;Hoje ripei pela primeira vez um DVD no Mac OS (Leon - O Profissional, já estava com saudades deste filme). Encontrei uma aplicação gratuita e cheia de opções - &lt;span style="font-weight: bold;"&gt;D-Vision 3&lt;/span&gt;:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_5SDUoNmCODc/SLxmfeHcwII/AAAAAAAAAAQ/ZQ_pdR1iLTU/s1600-h/Picture+2.png"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_5SDUoNmCODc/SLxmfeHcwII/AAAAAAAAAAQ/ZQ_pdR1iLTU/s320/Picture+2.png" alt="" id="BLOGGER_PHOTO_ID_5241176757198700674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;a href="http://www.objectifmac.com/down.php?name=D-Vision"&gt;Clique aqui para fazer o download.&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Uma vez feito o encode as &lt;span style="font-weight: bold;"&gt;legendas&lt;/span&gt; são extraidas automaticamente para o formato &lt;span style="font-style: italic;"&gt;.sub&lt;/span&gt; + &lt;span style="font-style: italic;"&gt;.idx&lt;/span&gt; (formato DVD), mas caso as queiramos converter para um formato mais pequeno e mais comum em DivX/XviD podemos usar o &lt;a href="http://www.objectifmac.com/down.php?name=D-Subtitler"&gt;D-Subtitler&lt;/a&gt;. Este programinha é a idêntico ao antiguinho SubRip para Windows.&lt;br /&gt;&lt;br /&gt;Referências:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;http://www.objectifmac.com/&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-7462770745702641570?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/7462770745702641570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/09/ripar-dvds.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7462770745702641570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/7462770745702641570'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/09/ripar-dvds.html' title='Ripar DVDs'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_5SDUoNmCODc/SLxmfeHcwII/AAAAAAAAAAQ/ZQ_pdR1iLTU/s72-c/Picture+2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-997440278102473247</id><published>2008-08-31T01:10:00.006+01:00</published><updated>2008-08-31T01:22:28.647+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='truque'/><category scheme='http://www.blogger.com/atom/ns#' term='ntfs'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Ler e escrever em partições NTFS no Mac OS</title><content type='html'>Descobri hoje um driver que possibilita a leitura/escrita em discos &lt;span style="font-style: italic;"&gt;NTFS&lt;/span&gt;. Está disponível para &lt;span style="font-weight: bold;"&gt;Linux&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;Mac OS X&lt;/span&gt; e outros sistemas operativos. Chama-se &lt;span style="font-weight: bold;"&gt;NTFS-3G&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://downloads.sourceforge.net/catacombae/NTFS-3G_1.2812-stable-catacombae.dmg?use_mirror=osdn"&gt;&lt;img style="cursor: pointer; width: 163px; height: 62px;" src="http://www.ntfs-3g.org/logo/ntfs-3g-logo.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Para fazerem o download para Mac OS X cliquem na imagem acima.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;No entanto, para esta aplicação funcionar terão que &lt;span style="font-weight: bold;"&gt;primeiramente&lt;/span&gt; instalar o &lt;span style="font-weight: bold;"&gt;MacFuse&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://macfuse.googlecode.com/files/MacFUSE-1.7.dmg"&gt;&lt;img style="cursor: pointer; width: 272px; height: 73px;" src="http://macfuse.googlecode.com/svn/trunk/meta/images/MacFUSE_Banner.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:78%;"&gt;&lt;br /&gt;Cliquem na imagem acima para fazer o download do MacFuse.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;E eu a pensar que ia ter que formatar os meus discos externos para &lt;span style="font-style: italic;"&gt;FAT32&lt;/span&gt; :D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Referências:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;http://code.google.com/p/macfuse/&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;http://www.ntfs-3g.org/&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;http://macntfs-3g.blogspot.com/&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-997440278102473247?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/997440278102473247/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/08/ler-e-escrever-em-parties-ntfs-no-mac.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/997440278102473247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/997440278102473247'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/08/ler-e-escrever-em-parties-ntfs-no-mac.html' title='Ler e escrever em partições NTFS no Mac OS'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-3645379684164488893</id><published>2008-08-28T18:24:00.001+01:00</published><updated>2008-08-28T19:37:50.966+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software'/><category scheme='http://www.blogger.com/atom/ns#' term='windows'/><category scheme='http://www.blogger.com/atom/ns#' term='leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>De Windows para Mac OS</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.morrisoncomputingsolutions.com/site/images/stories/XPonMac_Logo2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.morrisoncomputingsolutions.com/site/images/stories/XPonMac_Logo2.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;À cerca de um mês consegui finalmente comprar o meu MacBook. Até agora estou a adorar e estou também bastante surpreendido por a mudança de Windows para Mac OS não ter sido de todo complicada! Apenas algumas coisas estranhei de início (como a ausência de botão de maximizar nas janelas; o facto de clicar no botão de fechar numa janela apenas a esconde.. etc), mas agora já lido bem com tudo isso.&lt;br /&gt;Quanto ao software, há bastante software para substituir tudo o que usava no Windows:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;IRC: Colloquy&lt;/li&gt;&lt;li&gt;Cliente FTP: Cyberduck&lt;/li&gt;&lt;li&gt;Leitor ficheiros .NFO: NFOViewer&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Bittorrent: Transmission&lt;/li&gt;&lt;li&gt;Leitor Video: Vlc&lt;/li&gt;&lt;li&gt;Plugin para WMV: Flip4Mac&lt;/li&gt;&lt;li&gt;Msn: Adium ou Windows Messenger for Mac&lt;/li&gt;&lt;li&gt;Suit de Ferramentas Office: Microsoft Office 2008 for mac ou Open Office&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Emulador Nintendo 64: Sixtyforce&lt;/li&gt;&lt;li&gt;PHP e companhia: XAMPP&lt;/li&gt;&lt;li&gt;Processador de texto para programar: Smultron&lt;/li&gt;&lt;li&gt;Arquivador: The Unarchiver&lt;/li&gt;&lt;li&gt;etc etc etc&lt;/li&gt;&lt;/ul&gt;Até agora só sinto realmente falta do meu player/organizador de mp3 - &lt;span style="font-style: italic;"&gt;foobar2000&lt;/span&gt; - tenho usado o &lt;span style="font-style: italic;"&gt;iTunes&lt;/span&gt; mas sinceramente tenho que encontrar um player melhor porque não me entendo muito bem com aquilo.&lt;br /&gt;&lt;br /&gt;Pontos fortes no MacBook/Mac OS:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Trás consigo bastante software instalado;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;É visualmente muito bonito, quer por dentro quer por fora;&lt;/li&gt;&lt;li&gt;Possui sistema de navegação bastante rápido com os atalhos do teclado e essencialmente com o &lt;a href="http://en.wikipedia.org/wiki/Expos%C3%A9_%28Mac_OS_X%29"&gt;&lt;span style="font-style: italic;"&gt;Exposé&lt;/span&gt;&lt;/a&gt;;&lt;/li&gt;&lt;li&gt;O &lt;span style="font-style: italic;"&gt;scroll&lt;/span&gt; é feito deslizando 2 dedos em qualquer sítio do touchpad;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;É extremamente fácil e rápido instalar qualquer programa, na maior parte dos casos um simples &lt;span style="font-style: italic;"&gt;drag-and-drop&lt;/span&gt; da aplicação para a pasta Aplicações é suficiente;&lt;/li&gt;&lt;li&gt;Liga-se e desliga-se muito rápido (Nota para a função Sleep - similar ao suspender num PC, mas liga quase instantaneamente);&lt;/li&gt;&lt;li&gt;Náo é exagerado nas protecções como o Windows e no entanto é muito mais seguro;&lt;/li&gt;&lt;li&gt;Bateria dura aproximadamente 5 horas;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Pontos negativos no MacBook:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ausência do botão "Delete";&lt;/li&gt;&lt;li&gt;É necessário fazer uma combinação de 3 butões para abrir/fechar chavetas (alt+shit+8/9);&lt;/li&gt;&lt;li&gt;Acessórios são muito caros (paguei €49 pelo &lt;a href="http://www.apple.com/mightymouse/"&gt;Mighty Mouse&lt;/a&gt; :O);&lt;/li&gt;&lt;li&gt;Ainda não encontrei um mensageiro para o MSN que suporte a câmara incorpurada;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-3645379684164488893?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/3645379684164488893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/08/de-windows-para-mac-os.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/3645379684164488893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/3645379684164488893'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/08/de-windows-para-mac-os.html' title='De Windows para Mac OS'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3281766985840896287.post-8814202319248619621</id><published>2008-08-28T18:17:00.000+01:00</published><updated>2008-08-28T19:21:53.159+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='truque'/><category scheme='http://www.blogger.com/atom/ns#' term='dica'/><category scheme='http://www.blogger.com/atom/ns#' term='dock'/><category scheme='http://www.blogger.com/atom/ns#' term='leopard'/><category scheme='http://www.blogger.com/atom/ns#' term='mac'/><title type='text'>Aplicações escondidas em transparente</title><content type='html'>Para quem tem por hábito abrir muitas aplicações em simultâneo e escondê-las (usando &lt;span style="font-style: italic;"&gt;cmd&lt;/span&gt;+h), por vezes torna-se difícil saber quais são de facto as aplicações que estão escondidas na Dock:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mactips.org/wp-content/uploads/2008/08/screenshot_08.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.mactips.org/wp-content/uploads/2008/08/screenshot_08.jpg" alt="" border="0" /&gt;&lt;/a&gt;Com um pequeno truque podem aplicar este efeito à vossa Dock:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mactips.org/wp-content/uploads/2008/08/screenshot_051.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://www.mactips.org/wp-content/uploads/2008/08/screenshot_051.jpg" alt="" border="0" /&gt;&lt;/a&gt;Basta executar este comando no Terminal:&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;blockquote&gt;defaults write com.apple.Dock showhidden -bool YES&lt;/blockquote&gt;&lt;br /&gt;E reiniciar a Dock:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;killall Dock&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3281766985840896287-8814202319248619621?l=blog.tiagocarvalho.pt' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.tiagocarvalho.pt/feeds/8814202319248619621/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.tiagocarvalho.pt/2008/08/aplicaes-escondidas-em-transparente.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/8814202319248619621'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3281766985840896287/posts/default/8814202319248619621'/><link rel='alternate' type='text/html' href='http://blog.tiagocarvalho.pt/2008/08/aplicaes-escondidas-em-transparente.html' title='Aplicações escondidas em transparente'/><author><name>Tiago Carvalho</name><uri>https://profiles.google.com/112993895807070815645</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//lh4.googleusercontent.com/-K6rvzA3AI9U/AAAAAAAAAAI/AAAAAAAAAXQ/P1NVlbREv8k/s512-c/photo.jpg'/></author><thr:total>0</thr:total></entry></feed>
