<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="https://cgoncalves.pt/atom.xml" rel="self" type="application/atom+xml" /><link href="https://cgoncalves.pt/" rel="alternate" type="text/html" /><updated>2020-08-02T10:58:03-05:00</updated><id>https://cgoncalves.pt/atom.xml</id><title type="html">Carlos Gonçalves</title><subtitle>Principal Software Engineer at Red Hat. Linux, Cloud computing, NFV, SDN, OpenStack. Portuguese.</subtitle><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><entry><title type="html">Hidden Post</title><link href="https://cgoncalves.pt/blog/hidden-post/" rel="alternate" type="text/html" title="Hidden Post" /><published>2018-02-25T00:00:00-06:00</published><updated>2018-02-25T00:00:00-06:00</updated><id>https://cgoncalves.pt/blog/hidden-post</id><content type="html" xml:base="https://cgoncalves.pt/blog/hidden-post/">&lt;p&gt;This post has YAML Front Matter of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hidden: true&lt;/code&gt; and should not appear in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;paginator.posts&lt;/code&gt;.&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="example" /><summary type="html">This post has YAML Front Matter of hidden: true and should not appear in paginator.posts.</summary></entry><entry><title type="html">Hidden Post</title><link href="https://cgoncalves.pt/blog/hidden-post/" rel="alternate" type="text/html" title="Hidden Post" /><published>2018-02-25T00:00:00-06:00</published><updated>2018-02-25T00:00:00-06:00</updated><id>https://cgoncalves.pt/blog/hidden-post</id><content type="html" xml:base="https://cgoncalves.pt/blog/hidden-post/">&lt;p&gt;This post has YAML Front Matter of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;hidden: true&lt;/code&gt; and should not appear in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;paginator.posts&lt;/code&gt;.&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="docs" /><summary type="html">This post has YAML Front Matter of hidden: true and should not appear in paginator.posts.</summary></entry><entry><title type="html">Markup: HTML Elements and Formatting</title><link href="https://cgoncalves.pt/blog/markup-html-elements-and-formatting/" rel="alternate" type="text/html" title="Markup: HTML Elements and Formatting" /><published>2013-01-11T00:00:00-06:00</published><updated>2018-02-01T09:16:49-06:00</updated><id>https://cgoncalves.pt/blog/markup-html-elements-and-formatting</id><content type="html" xml:base="https://cgoncalves.pt/blog/markup-html-elements-and-formatting/">&lt;p&gt;A variety of common HTML elements to demonstrate the theme’s stylesheet and verify they have been styled appropriately.&lt;/p&gt;

&lt;h1 id=&quot;header-one&quot;&gt;Header one&lt;/h1&gt;

&lt;h2 id=&quot;header-two&quot;&gt;Header two&lt;/h2&gt;

&lt;h3 id=&quot;header-three&quot;&gt;Header three&lt;/h3&gt;

&lt;h4 id=&quot;header-four&quot;&gt;Header four&lt;/h4&gt;

&lt;h5 id=&quot;header-five&quot;&gt;Header five&lt;/h5&gt;

&lt;h6 id=&quot;header-six&quot;&gt;Header six&lt;/h6&gt;

&lt;h2 id=&quot;blockquotes&quot;&gt;Blockquotes&lt;/h2&gt;

&lt;p&gt;Single line blockquote:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Stay hungry. Stay foolish.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Multi line blockquote with a cite reference:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying no to 1,000 things.&lt;/p&gt;

  &lt;footer&gt;&lt;strong&gt;Steve Jobs&lt;/strong&gt; &amp;mdash; Apple Worldwide Developers' Conference, 1997&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quoted text inline using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;q&amp;gt;&lt;/code&gt; element:&lt;/p&gt;

&lt;p&gt;Luke continued, &lt;q&gt;And then she called him a &lt;q&gt;scruffy-looking nerf-herder&lt;/q&gt;! I think I’ve got a chance!&lt;/q&gt; The poor naive fool&amp;hellip;&lt;/p&gt;

&lt;h2 id=&quot;tables&quot;&gt;Tables&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Employee&lt;/th&gt;
      &lt;th&gt;Salary&lt;/th&gt;
      &lt;th&gt; &lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;John Doe&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$1&lt;/td&gt;
      &lt;td&gt;Because that’s all Steve Jobs needed for a salary.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;Jane Doe&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$100K&lt;/td&gt;
      &lt;td&gt;For all the blogging she does.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;Fred Bloggs&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$100M&lt;/td&gt;
      &lt;td&gt;Pictures are worth a thousand words, right? So Jane × 1,000.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;Jane Bloggs&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$100B&lt;/td&gt;
      &lt;td&gt;With hair like that?! Enough said.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Header1&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;Header2&lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Header3&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell4&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell5&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell6&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell4&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell5&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell6&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
  &lt;tfoot&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Foot1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;Foot2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Foot3&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tfoot&gt;
&lt;/table&gt;

&lt;h2 id=&quot;definition-lists&quot;&gt;Definition Lists&lt;/h2&gt;

&lt;dl&gt;
  &lt;dt&gt;Definition List Title&lt;/dt&gt;
  &lt;dd&gt;Definition list division.&lt;/dd&gt;
  &lt;dt&gt;Startup&lt;/dt&gt;
  &lt;dd&gt;A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.&lt;/dd&gt;
  &lt;dt&gt;#dowork&lt;/dt&gt;
  &lt;dd&gt;Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends.&lt;/dd&gt;
  &lt;dt&gt;Do It Live&lt;/dt&gt;
  &lt;dd&gt;I’ll let Bill O’Reilly &lt;a href=&quot;https://www.youtube.com/watch?v=O_HyZ5aW76c&quot; title=&quot;We'll Do It Live&quot;&gt;explain&lt;/a&gt; this one.&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2 id=&quot;unordered-lists-nested&quot;&gt;Unordered Lists (Nested)&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;List item one
    &lt;ul&gt;
      &lt;li&gt;List item one
        &lt;ul&gt;
          &lt;li&gt;List item one&lt;/li&gt;
          &lt;li&gt;List item two&lt;/li&gt;
          &lt;li&gt;List item three&lt;/li&gt;
          &lt;li&gt;List item four&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;List item two&lt;/li&gt;
      &lt;li&gt;List item three&lt;/li&gt;
      &lt;li&gt;List item four&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;List item two&lt;/li&gt;
  &lt;li&gt;List item three&lt;/li&gt;
  &lt;li&gt;List item four&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ordered-list-nested&quot;&gt;Ordered List (Nested)&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;List item one
    &lt;ol&gt;
      &lt;li&gt;List item one
        &lt;ol&gt;
          &lt;li&gt;List item one&lt;/li&gt;
          &lt;li&gt;List item two&lt;/li&gt;
          &lt;li&gt;List item three&lt;/li&gt;
          &lt;li&gt;List item four&lt;/li&gt;
        &lt;/ol&gt;
      &lt;/li&gt;
      &lt;li&gt;List item two&lt;/li&gt;
      &lt;li&gt;List item three&lt;/li&gt;
      &lt;li&gt;List item four&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;List item two&lt;/li&gt;
  &lt;li&gt;List item three&lt;/li&gt;
  &lt;li&gt;List item four&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;buttons&quot;&gt;Buttons&lt;/h2&gt;

&lt;p&gt;Make any link standout more when applying the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.btn&lt;/code&gt; class.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;btn--success&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Success Button&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#&quot; class=&quot;btn&quot;&gt;Default Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary&quot;&gt;Primary Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--accent&quot;&gt;Accent Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--success&quot;&gt;Success Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--warning&quot;&gt;Warning Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--danger&quot;&gt;Danger Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--info&quot;&gt;Info Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--inverse&quot;&gt;Inverse Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--light-outline&quot;&gt;Light Outline Button&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;language-markdown highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Default Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Primary Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Accent Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--accent}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Success Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--success}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Warning Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--warning}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Danger Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--danger}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Info Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--info}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Inverse Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--inverse}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Light Outline Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--light-outline}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#&quot; class=&quot;btn btn--primary btn--x-large&quot;&gt;X-Large Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary btn--large&quot;&gt;Large Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary&quot;&gt;Default Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary btn--small&quot;&gt;Small Button&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;language-markdown highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;X-Large Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary .btn--x-large}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Large Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary .btn--large}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Default Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary }
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Small Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary .btn--small}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;notices&quot;&gt;Notices&lt;/h2&gt;

&lt;p class=&quot;notice&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--primary&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--primary}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--accent&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--accent}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--info&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--info}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--warning&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--warning}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--success&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--success}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--danger&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--danger}&lt;/code&gt; class.&lt;/p&gt;

&lt;h2 id=&quot;address-element&quot;&gt;Address element&lt;/h2&gt;

&lt;address&gt;
  1 Infinite Loop&lt;br /&gt; Cupertino, CA 95014&lt;br /&gt; United States
&lt;/address&gt;

&lt;h2 id=&quot;anchor-element-aka-link&quot;&gt;Anchor element (aka. Link)&lt;/h2&gt;

&lt;p&gt;This is an example of a &lt;a href=&quot;http://apple.com&quot; title=&quot;Apple&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;abbreviation-element&quot;&gt;Abbreviation element&lt;/h2&gt;

&lt;p&gt;The abbreviation &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; stands for “Cascading Style Sheets”.&lt;/p&gt;

&lt;h2 id=&quot;cite-element&quot;&gt;Cite element&lt;/h2&gt;

&lt;p&gt;“Code is poetry.” —&lt;cite&gt;Automattic&lt;/cite&gt;&lt;/p&gt;

&lt;h2 id=&quot;code-element&quot;&gt;Code element&lt;/h2&gt;

&lt;p&gt;You will learn later on in these tests that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;word-wrap: break-word;&lt;/code&gt; will be your best friend.&lt;/p&gt;

&lt;h2 id=&quot;strike-element&quot;&gt;Strike element&lt;/h2&gt;

&lt;p&gt;This element will let you &lt;strike&gt;strikeout text&lt;/strike&gt;.&lt;/p&gt;

&lt;h2 id=&quot;emphasize-element&quot;&gt;Emphasize element&lt;/h2&gt;

&lt;p&gt;The emphasize element should &lt;em&gt;italicize&lt;/em&gt; text.&lt;/p&gt;

&lt;h2 id=&quot;insert-element&quot;&gt;Insert element&lt;/h2&gt;

&lt;p&gt;This element should denote &lt;ins&gt;inserted&lt;/ins&gt; text.&lt;/p&gt;

&lt;h2 id=&quot;keyboard-element&quot;&gt;Keyboard element&lt;/h2&gt;

&lt;p&gt;This scarcely known element emulates &lt;kbd&gt;keyboard text&lt;/kbd&gt;, which is usually styled like the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;code&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;h2 id=&quot;preformatted-element&quot;&gt;Preformatted element&lt;/h2&gt;

&lt;p&gt;This element styles large blocks of code.&lt;/p&gt;

&lt;pre&gt;
.post-title {
	margin: 0 0 5px;
	font-weight: bold;
	font-size: 38px;
	line-height: 1.2;
	and here's a line of some really, really, really, really long text, just to see how the PRE element handles it and to find out how it overflows;
}
&lt;/pre&gt;

&lt;h2 id=&quot;quote-element&quot;&gt;Quote element&lt;/h2&gt;

&lt;p&gt;&lt;q&gt;Developers, developers, developers…&lt;/q&gt; –Steve Ballmer&lt;/p&gt;

&lt;h2 id=&quot;strong-element&quot;&gt;Strong element&lt;/h2&gt;

&lt;p&gt;This element shows &lt;strong&gt;bold text&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;subscript-element&quot;&gt;Subscript element&lt;/h2&gt;

&lt;p&gt;Getting our science styling on with H&lt;sub&gt;2&lt;/sub&gt;O, which should push the “2” down.&lt;/p&gt;

&lt;h2 id=&quot;superscript-element&quot;&gt;Superscript element&lt;/h2&gt;

&lt;p&gt;Still sticking with science and Isaac Newton’s E = MC&lt;sup&gt;2&lt;/sup&gt;, which should lift the 2 up.&lt;/p&gt;

&lt;h2 id=&quot;variable-element&quot;&gt;Variable element&lt;/h2&gt;

&lt;p&gt;This allows you to denote &lt;var&gt;variables&lt;/var&gt;.&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="example" /><category term="Markup" /><summary type="html">A variety of common HTML elements to demonstrate the theme’s stylesheet and verify they have been styled appropriately.</summary></entry><entry><title type="html">Markup: HTML Elements and Formatting</title><link href="https://cgoncalves.pt/blog/markup-html-elements-and-formatting/" rel="alternate" type="text/html" title="Markup: HTML Elements and Formatting" /><published>2013-01-11T00:00:00-06:00</published><updated>2018-02-01T09:16:49-06:00</updated><id>https://cgoncalves.pt/blog/markup-html-elements-and-formatting</id><content type="html" xml:base="https://cgoncalves.pt/blog/markup-html-elements-and-formatting/">&lt;p&gt;A variety of common HTML elements to demonstrate the theme’s stylesheet and verify they have been styled appropriately.&lt;/p&gt;

&lt;h1 id=&quot;header-one&quot;&gt;Header one&lt;/h1&gt;

&lt;h2 id=&quot;header-two&quot;&gt;Header two&lt;/h2&gt;

&lt;h3 id=&quot;header-three&quot;&gt;Header three&lt;/h3&gt;

&lt;h4 id=&quot;header-four&quot;&gt;Header four&lt;/h4&gt;

&lt;h5 id=&quot;header-five&quot;&gt;Header five&lt;/h5&gt;

&lt;h6 id=&quot;header-six&quot;&gt;Header six&lt;/h6&gt;

&lt;h2 id=&quot;blockquotes&quot;&gt;Blockquotes&lt;/h2&gt;

&lt;p&gt;Single line blockquote:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Stay hungry. Stay foolish.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Multi line blockquote with a cite reference:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully. I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying no to 1,000 things.&lt;/p&gt;

  &lt;footer&gt;&lt;strong&gt;Steve Jobs&lt;/strong&gt; &amp;mdash; Apple Worldwide Developers' Conference, 1997&lt;/footer&gt;
&lt;/blockquote&gt;

&lt;p&gt;Quoted text inline using &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;q&amp;gt;&lt;/code&gt; element:&lt;/p&gt;

&lt;p&gt;Luke continued, &lt;q&gt;And then she called him a &lt;q&gt;scruffy-looking nerf-herder&lt;/q&gt;! I think I’ve got a chance!&lt;/q&gt; The poor naive fool&amp;hellip;&lt;/p&gt;

&lt;h2 id=&quot;tables&quot;&gt;Tables&lt;/h2&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;Employee&lt;/th&gt;
      &lt;th&gt;Salary&lt;/th&gt;
      &lt;th&gt; &lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;John Doe&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$1&lt;/td&gt;
      &lt;td&gt;Because that’s all Steve Jobs needed for a salary.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;Jane Doe&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$100K&lt;/td&gt;
      &lt;td&gt;For all the blogging she does.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;Fred Bloggs&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$100M&lt;/td&gt;
      &lt;td&gt;Pictures are worth a thousand words, right? So Jane × 1,000.&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;&lt;a href=&quot;#&quot;&gt;Jane Bloggs&lt;/a&gt;&lt;/td&gt;
      &lt;td&gt;$100B&lt;/td&gt;
      &lt;td&gt;With hair like that?! Enough said.&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th style=&quot;text-align: left&quot;&gt;Header1&lt;/th&gt;
      &lt;th style=&quot;text-align: center&quot;&gt;Header2&lt;/th&gt;
      &lt;th style=&quot;text-align: right&quot;&gt;Header3&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell4&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell5&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell6&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell3&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;cell4&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;cell5&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;cell6&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
  &lt;tfoot&gt;
    &lt;tr&gt;
      &lt;td style=&quot;text-align: left&quot;&gt;Foot1&lt;/td&gt;
      &lt;td style=&quot;text-align: center&quot;&gt;Foot2&lt;/td&gt;
      &lt;td style=&quot;text-align: right&quot;&gt;Foot3&lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tfoot&gt;
&lt;/table&gt;

&lt;h2 id=&quot;definition-lists&quot;&gt;Definition Lists&lt;/h2&gt;

&lt;dl&gt;
  &lt;dt&gt;Definition List Title&lt;/dt&gt;
  &lt;dd&gt;Definition list division.&lt;/dd&gt;
  &lt;dt&gt;Startup&lt;/dt&gt;
  &lt;dd&gt;A startup company or startup is a company or temporary organization designed to search for a repeatable and scalable business model.&lt;/dd&gt;
  &lt;dt&gt;#dowork&lt;/dt&gt;
  &lt;dd&gt;Coined by Rob Dyrdek and his personal body guard Christopher “Big Black” Boykins, “Do Work” works as a self motivator, to motivating your friends.&lt;/dd&gt;
  &lt;dt&gt;Do It Live&lt;/dt&gt;
  &lt;dd&gt;I’ll let Bill O’Reilly &lt;a href=&quot;https://www.youtube.com/watch?v=O_HyZ5aW76c&quot; title=&quot;We'll Do It Live&quot;&gt;explain&lt;/a&gt; this one.&lt;/dd&gt;
&lt;/dl&gt;

&lt;h2 id=&quot;unordered-lists-nested&quot;&gt;Unordered Lists (Nested)&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;List item one
    &lt;ul&gt;
      &lt;li&gt;List item one
        &lt;ul&gt;
          &lt;li&gt;List item one&lt;/li&gt;
          &lt;li&gt;List item two&lt;/li&gt;
          &lt;li&gt;List item three&lt;/li&gt;
          &lt;li&gt;List item four&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;List item two&lt;/li&gt;
      &lt;li&gt;List item three&lt;/li&gt;
      &lt;li&gt;List item four&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;List item two&lt;/li&gt;
  &lt;li&gt;List item three&lt;/li&gt;
  &lt;li&gt;List item four&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;ordered-list-nested&quot;&gt;Ordered List (Nested)&lt;/h2&gt;

&lt;ol&gt;
  &lt;li&gt;List item one
    &lt;ol&gt;
      &lt;li&gt;List item one
        &lt;ol&gt;
          &lt;li&gt;List item one&lt;/li&gt;
          &lt;li&gt;List item two&lt;/li&gt;
          &lt;li&gt;List item three&lt;/li&gt;
          &lt;li&gt;List item four&lt;/li&gt;
        &lt;/ol&gt;
      &lt;/li&gt;
      &lt;li&gt;List item two&lt;/li&gt;
      &lt;li&gt;List item three&lt;/li&gt;
      &lt;li&gt;List item four&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/li&gt;
  &lt;li&gt;List item two&lt;/li&gt;
  &lt;li&gt;List item three&lt;/li&gt;
  &lt;li&gt;List item four&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&quot;buttons&quot;&gt;Buttons&lt;/h2&gt;

&lt;p&gt;Make any link standout more when applying the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.btn&lt;/code&gt; class.&lt;/p&gt;

&lt;div class=&quot;language-html highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nt&quot;&gt;&amp;lt;a&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;href=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;class=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;btn--success&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;Success Button&lt;span class=&quot;nt&quot;&gt;&amp;lt;/a&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#&quot; class=&quot;btn&quot;&gt;Default Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary&quot;&gt;Primary Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--accent&quot;&gt;Accent Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--success&quot;&gt;Success Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--warning&quot;&gt;Warning Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--danger&quot;&gt;Danger Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--info&quot;&gt;Info Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--inverse&quot;&gt;Inverse Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--light-outline&quot;&gt;Light Outline Button&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;language-markdown highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Default Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Primary Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Accent Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--accent}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Success Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--success}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Warning Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--warning}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Danger Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--danger}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Info Button Text&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--info}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Inverse Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--inverse}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Light Outline Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--light-outline}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href=&quot;#&quot; class=&quot;btn btn--primary btn--x-large&quot;&gt;X-Large Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary btn--large&quot;&gt;Large Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary&quot;&gt;Default Button&lt;/a&gt;
&lt;a href=&quot;#&quot; class=&quot;btn btn--primary btn--small&quot;&gt;Small Button&lt;/a&gt;&lt;/p&gt;

&lt;div class=&quot;language-markdown highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;X-Large Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary .btn--x-large}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Large Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary .btn--large}
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Default Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary }
&lt;span class=&quot;p&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;Small Button&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;](&lt;/span&gt;&lt;span class=&quot;sx&quot;&gt;#link&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;)&lt;/span&gt;{: .btn .btn--primary .btn--small}
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;notices&quot;&gt;Notices&lt;/h2&gt;

&lt;p class=&quot;notice&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--primary&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--primary}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--accent&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--accent}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--info&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--info}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--warning&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--warning}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--success&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--success}&lt;/code&gt; class.&lt;/p&gt;

&lt;p class=&quot;notice--danger&quot;&gt;&lt;strong&gt;Watch out!&lt;/strong&gt; This paragraph of text has been &lt;a href=&quot;#&quot;&gt;emphasized&lt;/a&gt; with the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;{: .notice--danger}&lt;/code&gt; class.&lt;/p&gt;

&lt;h2 id=&quot;address-element&quot;&gt;Address element&lt;/h2&gt;

&lt;address&gt;
  1 Infinite Loop&lt;br /&gt; Cupertino, CA 95014&lt;br /&gt; United States
&lt;/address&gt;

&lt;h2 id=&quot;anchor-element-aka-link&quot;&gt;Anchor element (aka. Link)&lt;/h2&gt;

&lt;p&gt;This is an example of a &lt;a href=&quot;http://apple.com&quot; title=&quot;Apple&quot;&gt;link&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;abbreviation-element&quot;&gt;Abbreviation element&lt;/h2&gt;

&lt;p&gt;The abbreviation &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt; stands for “Cascading Style Sheets”.&lt;/p&gt;

&lt;h2 id=&quot;cite-element&quot;&gt;Cite element&lt;/h2&gt;

&lt;p&gt;“Code is poetry.” —&lt;cite&gt;Automattic&lt;/cite&gt;&lt;/p&gt;

&lt;h2 id=&quot;code-element&quot;&gt;Code element&lt;/h2&gt;

&lt;p&gt;You will learn later on in these tests that &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;word-wrap: break-word;&lt;/code&gt; will be your best friend.&lt;/p&gt;

&lt;h2 id=&quot;strike-element&quot;&gt;Strike element&lt;/h2&gt;

&lt;p&gt;This element will let you &lt;strike&gt;strikeout text&lt;/strike&gt;.&lt;/p&gt;

&lt;h2 id=&quot;emphasize-element&quot;&gt;Emphasize element&lt;/h2&gt;

&lt;p&gt;The emphasize element should &lt;em&gt;italicize&lt;/em&gt; text.&lt;/p&gt;

&lt;h2 id=&quot;insert-element&quot;&gt;Insert element&lt;/h2&gt;

&lt;p&gt;This element should denote &lt;ins&gt;inserted&lt;/ins&gt; text.&lt;/p&gt;

&lt;h2 id=&quot;keyboard-element&quot;&gt;Keyboard element&lt;/h2&gt;

&lt;p&gt;This scarcely known element emulates &lt;kbd&gt;keyboard text&lt;/kbd&gt;, which is usually styled like the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;code&amp;gt;&lt;/code&gt; element.&lt;/p&gt;

&lt;h2 id=&quot;preformatted-element&quot;&gt;Preformatted element&lt;/h2&gt;

&lt;p&gt;This element styles large blocks of code.&lt;/p&gt;

&lt;pre&gt;
.post-title {
	margin: 0 0 5px;
	font-weight: bold;
	font-size: 38px;
	line-height: 1.2;
	and here's a line of some really, really, really, really long text, just to see how the PRE element handles it and to find out how it overflows;
}
&lt;/pre&gt;

&lt;h2 id=&quot;quote-element&quot;&gt;Quote element&lt;/h2&gt;

&lt;p&gt;&lt;q&gt;Developers, developers, developers…&lt;/q&gt; –Steve Ballmer&lt;/p&gt;

&lt;h2 id=&quot;strong-element&quot;&gt;Strong element&lt;/h2&gt;

&lt;p&gt;This element shows &lt;strong&gt;bold text&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;subscript-element&quot;&gt;Subscript element&lt;/h2&gt;

&lt;p&gt;Getting our science styling on with H&lt;sub&gt;2&lt;/sub&gt;O, which should push the “2” down.&lt;/p&gt;

&lt;h2 id=&quot;superscript-element&quot;&gt;Superscript element&lt;/h2&gt;

&lt;p&gt;Still sticking with science and Isaac Newton’s E = MC&lt;sup&gt;2&lt;/sup&gt;, which should lift the 2 up.&lt;/p&gt;

&lt;h2 id=&quot;variable-element&quot;&gt;Variable element&lt;/h2&gt;

&lt;p&gt;This allows you to denote &lt;var&gt;variables&lt;/var&gt;.&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="docs" /><category term="Markup" /><summary type="html">A variety of common HTML elements to demonstrate the theme’s stylesheet and verify they have been styled appropriately.</summary></entry><entry><title type="html">New domain and migrating data between Google Apps</title><link href="https://cgoncalves.pt/blog/new-domain-and-migrating-data-between/" rel="alternate" type="text/html" title="New domain and migrating data between Google Apps" /><published>2012-08-07T00:00:00-05:00</published><updated>2012-08-07T00:00:00-05:00</updated><id>https://cgoncalves.pt/blog/new-domain-and-migrating-data-between</id><content type="html" xml:base="https://cgoncalves.pt/blog/new-domain-and-migrating-data-between/">&lt;h2 id=&quot;short-version&quot;&gt;Short version&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;If you can’t reach me at my @cgoncalves.info, use @cgoncalves.pt from now on.&lt;/li&gt;
  &lt;li&gt;Google Apps doesn’t allow one to switch a primary domain with an alias. Had to migrate all data by myself…&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;a-not-so-short-version&quot;&gt;A not so short version&lt;/h2&gt;

&lt;p&gt;Holding the cgoncalves.info domain since 2007, I had it associated to a free
Google Apps account ever since.&lt;/p&gt;

&lt;p&gt;Recently &lt;a href=&quot;http://www.fccn.pt/en/&quot;&gt;FCCN&lt;/a&gt; (Fundação para a Computação Científica
Nacional) decided well it was time to liberalize the .PT TLD to everyone and
not just to companies or trademarked brands. Now for ~17€/year any individual
can get a .PT domain, no bureaucracy in the way. Hurray!&lt;/p&gt;

&lt;p&gt;I did take the opportunity and acquired the cgoncalves.pt domain. It’s simple,
elegant and somewhat represents pride of being a Portuguese citizen. This
domain’s just what was pending to fulfill, as of now, the digital image of
myself.&lt;/p&gt;

&lt;p&gt;With this new domain I could add it to my existing Google Apps account and
make it an alias of cgoncalves.info. Although as I’m so existed and convinced
I’ll keep this new domain till my death, I gave a thought (2 seconds, if much)
and concluded I should settle with the domain as the primary one instead of
the rather deprecated cgoncalves.info. “So what?” you ask. Well… Google
doesn’t allow their Google Apps users to &lt;a href=&quot;http://support.google.com/a/bin/answer.py?hl=en&amp;amp;answer=56198&quot;&gt;switch a primary domain with an
alias&lt;/a&gt;! Best
chance to accomplish this is to create a new Google Apps account associated
with the .PT domain and migrate all data from one account to the other,
including emails, filters, contacts, calendars, feeds, etc. Moving contacts,
calendars and feeds is a trivial action but hundred of thousands of emails
from years?! No fun…&lt;/p&gt;

&lt;p&gt;Once migration completed, delete the cgoncalves.info Google Apps account and
add that domain to the new account as alias was the goal to achieve.&lt;/p&gt;

&lt;h3 id=&quot;migrating-emails&quot;&gt;Migrating emails&lt;/h3&gt;

&lt;p&gt;I started migrating emails between the two Google Apps accounts using the POP3
fetcher GMail provides. Yes, it take ages and only fetches up to 200 emails at
a time, but that was the faster way I know. The fetcher automatically
retrieves for messages at different rates from accounts and depends on
previous mail fetch attempts (the less mail retrieved, the less frequency it
will check for new mail). Frustratedly even with thousands of messages yet to
get, the intervals were set longer and longer (sometimes to two hours!)…
Enabling “Refresh POP accounts” lab (“&lt;em&gt;Fetch messages from your POP accounts
on demand by using the refresh link on to of the inbox&lt;/em&gt;”) would cut the time
between fetches but was no usable solution as it required human interaction by
clicking on the gear icon now and then.&lt;/p&gt;

&lt;p&gt;I also tried &lt;a href=&quot;http://www.danielslaughter.com/projects/gmail-pop3
-checker-for-greasemonkey/&quot;&gt;this script&lt;/a&gt; and threw one dollar (minimum
donation amount required) to let me unlock the fixed 8 minutes interval and
empower me to set it to a higher rate (down to 3 minutes). It was working like
a charm and the migration process was flying fairly decently. BUT NO! OH NO!
GMail stopped successfully retrieving messages and started emailing me an
unnumbered “Message left on server” messages. Perhaps the daily quota has been
reached, or not as it kept that way the day after. This POP3-me thing was
running for now a full week and I still had many messages left to migrate. I
was doomed!&lt;/p&gt;

&lt;p&gt;With the POP3 process discarded there was just one option left and that I was
battling to avoid: transfer from IMAP. Don’t get me wrong, I love and use IMAP
in all my accounts. The side of the coin is I’d have to perform the migration
on my end and reached the first 500 messages transferred, only 1 message per
second is synced. &lt;a href=&quot;http://imapsync.lamiral.info/&quot;&gt;Imapsync&lt;/a&gt;
was just the application suited to do the job. It detects
duplicated emails and all, great! I installed it on my VPS (so I can put my
laptop to sleep at will) and ran it as follows:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/usr/bin/env bash&lt;/span&gt;
imapsync &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--host1&lt;/span&gt; imap.gmail.com &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--user1&lt;/span&gt; account@old-domain.com &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--passfile1&lt;/span&gt; ./passfile1 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--ssl1&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--host2&lt;/span&gt; imap.gmail.com &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--user2&lt;/span&gt; account@new-domain.com &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--passfile2&lt;/span&gt; ./passfile2 &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--ssl2&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--authmech1&lt;/span&gt; LOGIN &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--authmech2&lt;/span&gt; LOGIN &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--useheader&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'Message-Id'&lt;/span&gt; &lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;--useheader&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'X-Gmail-Received'&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Files &lt;em&gt;passfile1 and _passfile2 contain
the respective email accounts passwords (plain text). And
voilá! It might take several hours/days but I didn’t know (and still don’t) no
better solution. And remember, POP3 mail fetcher doesn’t copy sent mail, but
_imapsync&lt;/em&gt; does! Win!&lt;/p&gt;

&lt;h3 id=&quot;back-to-google-apps-drama&quot;&gt;Back to Google Apps drama&lt;/h3&gt;

&lt;p&gt;At last with data migrated I let things stabilize for a couple of days before
taking any further action. Next step was ensuring I did not depend anymore on
my @cgoncalves.info Google Apps account: check! Logged into the Google Apps
administration panel of the new domain and tried to add cgoncalves.info as an
alias. It failed with something like “The domain is currently associated to
another account”. That was right, I still had to purge the former account
before proceeding: done! Retried once again hoping I got lucky but no…
“&lt;em&gt;&lt;a href=&quot;http://support.google.com/a/bin/answer.py?hl=en&amp;amp;answer=56238&quot;&gt;This domain name has already been used as an alias or
domain&lt;/a&gt;“&lt;/em&gt;. It
seems I will have to wait up to seven days before I can add the .INFO domain
as an alias.&lt;/p&gt;

&lt;h3 id=&quot;conclusion&quot;&gt;Conclusion&lt;/h3&gt;

&lt;p&gt;Update my contact record on your address book and replace everything ending
with cgoncalves.info to cgoncalves.pt. I promise I’ll keep using this domain
for decades, unless someone steps in with a bag full of money and buys me off
to concede the ownership of the domain. Starting bid is 1000€. I mean it! :-D&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="articles" /><category term="domain" /><category term="imapsync" /><category term="google apps" /><summary type="html">Short version</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22think-green-when-you-move-home-L-tO1ESc.jpeg%22%7D" /><media:content medium="image" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22think-green-when-you-move-home-L-tO1ESc.jpeg%22%7D" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">SOCKS proxy over SSH</title><link href="https://cgoncalves.pt/blog/socks-proxy-over-ssh/" rel="alternate" type="text/html" title="SOCKS proxy over SSH" /><published>2011-11-25T00:00:00-06:00</published><updated>2011-11-25T00:00:00-06:00</updated><id>https://cgoncalves.pt/blog/socks-proxy-over-ssh</id><content type="html" xml:base="https://cgoncalves.pt/blog/socks-proxy-over-ssh/">&lt;p&gt;Here goes a quick and valuable tip people don’t usually know, or at least a
couple of friends of mine were not aware of. The two keywords will be &lt;em&gt;SOCKS&lt;/em&gt;
and &lt;em&gt;SSH&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Connecting over to a remote server, one can bypass unauthorized access blocked
by usually our network firewall. The most common examples given are restricted
access to Facebook, MSN or torrents. We can also have unlimited access to all
kinds of contents thanks to the nice sysadmin managing the network who puts no
barriers whatsoever, but we may not trust him or the network users to permit
unencrypted data flowing openly. Having some way to establish an encrypted
connection to a known network who we trust, or distrust less, and tunneling
over it would be safer. This is where SOCKS and SSH can be much of helpful!&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;SOCKS is an Internet protocol that routes network packets between a client
and server through a proxy server. – via
&lt;a href=&quot;http://en.wikipedia.org/wiki/SOCKS&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I’m certain as most, if not all, of our daily applications implement
themselves some way of proxying (mostly HTTP, HTTPS and SOCKS) or use the
system-wide configured network proxy server. Now all we need is a remote and
secure server to proxy and tunnel. This is the part where SSH enters:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Secure Shell (SSH) is a network protocol for secure data communication,
remote shell services or command execution and other secure network services
between two networked computers that it connects via a secure channel over an
insecure network: a server and a client (running SSH server and SSH client
programs, respectively). – via
&lt;a href=&quot;http://en.wikipedia.org/wiki/Secure_Shell&quot;&gt;Wikipedia&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;What this means is if we have a SSH-enabled server we can take advantage of it
because typically no further configurations or tweaks are needed. Let’s take a
look at the SSH client manual:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;-D [bind_address:]port Specifies a local ``dynamic’’ application-level port forwarding. This works by allocating a socket to listen to port on the local side, optionally bound to the specified bind_address. Whenever a connection is made to this port, the connection is forwarded over the secure channel, and the application protocol is then used to determine where to connect to from the remote machine. Currently the SOCKS4 and SOCKS5 protocols are supported, and ssh will act as a SOCKS server. Only root can forward privileged ports. Dynamic port forwardings can also be specified in the configuration file.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Got it? Great! Let’s combine SSH+SOCKS:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;ssh &lt;span class=&quot;nt&quot;&gt;-C2qTnN&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-D&lt;/span&gt; &amp;lt;PORT&amp;gt; &amp;lt;USER&amp;gt;@&amp;lt;IP&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;I will not provide the details of what each option features - run ‘&lt;em&gt;man ssh&lt;/em&gt;’
and find by yourself. The result is a SOCKS proxy over SSH. Now let’s wrap it
in a bash script:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[[&lt;/span&gt; &lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;uname&lt;/span&gt;&lt;span class=&quot;sb&quot;&gt;`&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'Darwin'&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then
  &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;trap&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot; {
  echo &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;Setting SOCKS proxy down...&lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; ; &lt;/span&gt;&lt;span class=&quot;se&quot;&gt;\&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;
  networksetup -setsocksfirewallproxystate ethernet off ;
  networksetup -setsocksfirewallproxystate wi-fi off;
  exit 1;
  }&quot;&lt;/span&gt; ERR INT TERM EXIT
  networksetup &lt;span class=&quot;nt&quot;&gt;-setsocksfirewallproxystate&lt;/span&gt; ethernet on
  networksetup &lt;span class=&quot;nt&quot;&gt;-setsocksfirewallproxystate&lt;/span&gt; wi-fi on
&lt;span class=&quot;k&quot;&gt;fi
&lt;/span&gt;ssh &lt;span class=&quot;nt&quot;&gt;-C2qTnN&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-D&lt;/span&gt; 1080 &amp;lt;USER&amp;gt;@&amp;lt;IP&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Replace &lt;USER&gt;@&lt;IP&gt; by your username and IP address. This bash script, in case
you are a Mac user, will automatically turn SOCKS on upon execution and turn
it off when shutting down (Mac users using an OS X version prior to Lion
should replace &quot;wi-fi&quot; by &quot;airport&quot;). Other Unix users (Linux, BSD, etc)
should set SOCKS host as &quot;localhost&quot; and SOCKS port &quot;1080&quot; in either your
system network configurations or in each application you want to tunnel over.&lt;/IP&gt;&lt;/USER&gt;&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="articles" /><category term="ssh" /><category term="proxy" /><category term="socks" /><summary type="html">Here goes a quick and valuable tip people don’t usually know, or at least a couple of friends of mine were not aware of. The two keywords will be SOCKS and SSH.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22Security-Guard.png%22%7D" /><media:content medium="image" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22Security-Guard.png%22%7D" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Apple MacBook Pro 13” battery history</title><link href="https://cgoncalves.pt/blog/apple-macbook-pro-13-battery-history/" rel="alternate" type="text/html" title="Apple MacBook Pro 13” battery history" /><published>2011-08-31T00:00:00-05:00</published><updated>2011-08-31T00:00:00-05:00</updated><id>https://cgoncalves.pt/blog/apple-macbook-pro-13-battery-history</id><content type="html" xml:base="https://cgoncalves.pt/blog/apple-macbook-pro-13-battery-history/">&lt;p&gt;One year has passed since I bought my Apple MacBook Pro 13” (mid 2010) laptop,
and at that time &lt;a href=&quot;http://blog.cgoncalves.pt/2010/07 /ended-up-to-buy-apple.html&quot;&gt;I blogged about it&lt;/a&gt;. One feature I demanded was good battery capacity&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;the MBP 13” seemed like a great choice and I did go for it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By middle of August I discovered &lt;a href=&quot;http://www.coconut-flavour.com/&quot;&gt;coconutBattery&lt;/a&gt;, an application that shows the current battery capacity, its
designed capacity, and current and maximum charge, as well as age of the
laptop, battery load-cycles, temperature and power usage. One additional
feature that popped-out right away was the ability to save the maximum battery
capacity and as so since August 12, 2010 to today I’ve recording these
statistics with a &lt;strong&gt;fully charged battery&lt;/strong&gt; to later analyze how my laptop’s
battery health changed over time. That time has just ran out so let’s take a
quick look over it!&lt;/p&gt;

&lt;p&gt;First, data extraction. A &lt;em&gt;config.xsl&lt;/em&gt; file was created with the following
content:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-xml&quot; data-lang=&quot;xml&quot;&gt;&lt;span class=&quot;cp&quot;&gt;&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;xsl:stylesheet&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;version=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;1.0&quot;&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;xmlns:xsl=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;http://www.w3.org/1999/XSL/Transform&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;xsl:template&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;match=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;/&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;html&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;body&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;h2&amp;gt;&lt;/span&gt;My Apple MacBook Pro 13&quot; (mid 2010) battery history&lt;span class=&quot;nt&quot;&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;table&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;border=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;1&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;tr&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;bgcolor=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;#9acd32&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;th&amp;gt;&lt;/span&gt;Date&lt;span class=&quot;nt&quot;&gt;&amp;lt;/th&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;th&amp;gt;&lt;/span&gt;Current Capacity&lt;span class=&quot;nt&quot;&gt;&amp;lt;/th&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;xsl:for-each&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;select=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;database/object[@type='SAVEDDATA']&quot;&lt;/span&gt;&lt;span class=&quot;nt&quot;&gt;&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;tr&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&amp;lt;xsl:value-of&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;select=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;attribute[@name='date']&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
        &lt;span class=&quot;nt&quot;&gt;&amp;lt;td&amp;gt;&amp;lt;xsl:value-of&lt;/span&gt; &lt;span class=&quot;na&quot;&gt;select=&lt;/span&gt;&lt;span class=&quot;s&quot;&gt;&quot;attribute[@name='capacity']&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;/&amp;gt;&amp;lt;/td&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;/tr&amp;gt;&lt;/span&gt;
      &lt;span class=&quot;nt&quot;&gt;&amp;lt;/xsl:for-each&amp;gt;&lt;/span&gt;
    &lt;span class=&quot;nt&quot;&gt;&amp;lt;/table&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/body&amp;gt;&lt;/span&gt;
  &lt;span class=&quot;nt&quot;&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xsl:template&amp;gt;&lt;/span&gt;
&lt;span class=&quot;nt&quot;&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Then, I fired up my terminal and ran:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;xsltproc &lt;span class=&quot;nt&quot;&gt;--nonet&lt;/span&gt; config.xsl ~/Library/Application&lt;span class=&quot;se&quot;&gt;\ &lt;/span&gt;Support/coconutBattery/coconutBattery.xml | &lt;span class=&quot;nb&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;s1&quot;&gt;'s|\(.*\)% (\(.*\) mAh)|\2|'&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; battery.html&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;This generated a &lt;em&gt;battery.html&lt;/em&gt; file with 146 records dumped to a HTML table:&lt;/p&gt;

&lt;figure&gt;
	&lt;a href=&quot;/images/posts/Screen Shot 2011-08-31 at 22.19.36.png&quot;&gt;&lt;img src=&quot;/images/posts/Screen Shot 2011-08-31 at 22.19.36.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;And here is a chart of it:&lt;/p&gt;

&lt;figure&gt;
	&lt;a href=&quot;/images/posts/BatteryHistory.png&quot;&gt;&lt;img src=&quot;/images/posts/BatteryHistory.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;And finally a screenshot of my coconutBattery:&lt;/p&gt;

&lt;figure&gt;
	&lt;a href=&quot;/images/posts/coconutBattery.png&quot;&gt;&lt;img src=&quot;/images/posts/coconutBattery.png&quot; /&gt;&lt;/a&gt;
&lt;/figure&gt;

&lt;p&gt;Battery load-cycles is at 58 after one year and one month and a half. Note
that the age of my Mac that reads above is 15 months but the accurate age is
13 months (the former is time since manufactured).&lt;/p&gt;

&lt;p&gt;Do you also log your battery health over time? Have these kind of data? Please
share it with us!&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="articles" /><category term="battery" /><category term="apple" /><category term="macbook" /><category term="coconutbattery" /><summary type="html">One year has passed since I bought my Apple MacBook Pro 13” (mid 2010) laptop, and at that time I blogged about it. One feature I demanded was good battery capacity the MBP 13” seemed like a great choice and I did go for it.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22battery.png%22%7D" /><media:content medium="image" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22battery.png%22%7D" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">SSH connection automation</title><link href="https://cgoncalves.pt/blog/ssh-connection-automation/" rel="alternate" type="text/html" title="SSH connection automation" /><published>2011-07-19T00:00:00-05:00</published><updated>2011-07-19T00:00:00-05:00</updated><id>https://cgoncalves.pt/blog/ssh-connection-automation</id><content type="html" xml:base="https://cgoncalves.pt/blog/ssh-connection-automation/">&lt;p&gt;Part of my daily routine involves accessing and managing a considered amount
of remote servers through the SSH protocol. I use &lt;em&gt;screen&lt;/em&gt; a lot to ease the
job by having a couple of windows opened on each server, so avoiding multiple
connections to the same server. By using &lt;em&gt;screen&lt;/em&gt; not only helps me grouping
server windows altogether in one console window/tab but also is a time saver
in those days when network connection is not in its glory days allowing me to
reattach it and carrying on being productive (&lt;em&gt;sighs&lt;/em&gt;).&lt;/p&gt;

&lt;p&gt;But, before connecting to all those machines, I used to repeat over and over
the same setup steps:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;send my public key to server&lt;/li&gt;
  &lt;li&gt;upload my &lt;em&gt;screen&lt;/em&gt; configuration file&lt;/li&gt;
  &lt;li&gt;create an alias (because ssh’ing manually is a truly hassle each time I want to connect!) to connect to the server and reattach or create a new screen session&lt;/li&gt;
  &lt;li&gt;Change its permissions to 700 (security freak? Oh well…)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Four repetitive and forgettable operations that could all be avoided, sparing
me some minutes of my precious time. But no more!&lt;/p&gt;

&lt;p&gt;Here is a handy Bash script I wrote the other day (at last!):&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;&lt;span class=&quot;c&quot;&gt;#!/usr/bin/env bash&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# $1 = [remote_user@]remote_host&lt;/span&gt;
&lt;span class=&quot;c&quot;&gt;# $2 = [alias name]&lt;/span&gt;
&lt;span class=&quot;nv&quot;&gt;BIN&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$HOME&lt;/span&gt;/bin
&lt;span class=&quot;k&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;$#&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-lt&lt;/span&gt; 1 &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;$#&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-gt&lt;/span&gt; 2 &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;-h&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;--help&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then
  &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;Usage: &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt; [user@]machine [alias]&quot;&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt;&amp;amp;2
  &lt;span class=&quot;nb&quot;&gt;exit &lt;/span&gt;1
&lt;span class=&quot;k&quot;&gt;fi
if&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;$#&quot;&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-eq&lt;/span&gt; 2 &lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;k&quot;&gt;then&lt;/span&gt;
  &lt;span class=&quot;o&quot;&gt;(&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;EOF&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt;
#!/usr/bin/env bash
ssh &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;sh&quot;&gt; -t screen -x -R
&lt;/span&gt;&lt;span class=&quot;no&quot;&gt;EOF
&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$BIN&lt;/span&gt;/&lt;span class=&quot;nv&quot;&gt;$2&lt;/span&gt;
  &lt;span class=&quot;nb&quot;&gt;chmod &lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;u&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt;rwx,go&lt;span class=&quot;o&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nv&quot;&gt;$BIN&lt;/span&gt;/&lt;span class=&quot;nv&quot;&gt;$2&lt;/span&gt;
&lt;span class=&quot;k&quot;&gt;fi
&lt;/span&gt;ssh-copy-id &lt;span class=&quot;nt&quot;&gt;-i&lt;/span&gt; ~/.ssh/id_rsa.pub &lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /dev/null 2&amp;gt;&amp;amp;1
scp ~/.screenrc &lt;span class=&quot;nv&quot;&gt;$1&lt;/span&gt;:~/ &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; /dev/null 2&amp;gt;&amp;amp;1
&lt;span class=&quot;nb&quot;&gt;exit &lt;/span&gt;0&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;

&lt;p&gt;Copy and paste this code to a file in your $PATH (mine is $HOME/bin/setup-
machine) and give it execution permission (chmod u=rwx,go= ).&lt;/p&gt;

&lt;p&gt;Obvious to some, though may not be to others, here is an usage example:&lt;/p&gt;

&lt;figure class=&quot;highlight&quot;&gt;&lt;pre&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;macnux:~ carlos&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;setup-machine &lt;span class=&quot;nt&quot;&gt;-h&lt;/span&gt;
Usage: /Users/carlos/bin/setup-machine &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;user@]machine &lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;alias&lt;/span&gt;&lt;span class=&quot;o&quot;&gt;]&lt;/span&gt;

macnux:~ carlos&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;setup-machine cgoncalves@cgoncalves.pt cgoncalves
cgoncalves@cgoncalves.pt’s password: &lt;span class=&quot;k&quot;&gt;*****************&lt;/span&gt;

macnux:~ carlos&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;&lt;span class=&quot;nb&quot;&gt;cat &lt;/span&gt;bin/cgoncalves
&lt;span class=&quot;c&quot;&gt;#!/usr/bin/env bash&lt;/span&gt;
ssh cgoncalves@cgoncalves.pt &lt;span class=&quot;nt&quot;&gt;-t&lt;/span&gt; screen &lt;span class=&quot;nt&quot;&gt;-x&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-R&lt;/span&gt;

macnux:~ carlos&lt;span class=&quot;nv&quot;&gt;$ &lt;/span&gt;cgoncalves
&lt;span class=&quot;o&quot;&gt;[&lt;/span&gt;SSH connection established and attached to screen]&lt;/code&gt;&lt;/pre&gt;&lt;/figure&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="articles" /><category term="ssh" /><category term="screen" /><summary type="html">Part of my daily routine involves accessing and managing a considered amount of remote servers through the SSH protocol. I use screen a lot to ease the job by having a couple of windows opened on each server, so avoiding multiple connections to the same server. By using screen not only helps me grouping server windows altogether in one console window/tab but also is a time saver in those days when network connection is not in its glory days allowing me to reattach it and carrying on being productive (sighs).</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22robot1.jpg%22%7D" /><media:content medium="image" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22robot1.jpg%22%7D" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Ended up buying an Apple…</title><link href="https://cgoncalves.pt/blog/ended-up-to-buy-apple/" rel="alternate" type="text/html" title="Ended up buying an Apple…" /><published>2010-07-16T00:00:00-05:00</published><updated>2010-07-16T00:00:00-05:00</updated><id>https://cgoncalves.pt/blog/ended-up-to-buy-apple</id><content type="html" xml:base="https://cgoncalves.pt/blog/ended-up-to-buy-apple/">&lt;p&gt;I have an Acer laptop for about 5 years. It includes a generously 512MB of
RAM, Intel Centrino 1.6Ghz (M730 processor to be more precise), ATI Mobility
Radeon x600 64MB VRAM, 80GB HDD, yada yada yada. The battery is in an awesome
shape if we consider the age and the usage I put on it during this time -
previously 3 hours fully charged and now around 2 hours, so… I couldn’t have
asked for better. Nevertheless, the laptop has an 15.4” display and weighs 3Kg
with battery plus the charger which I have to take always with me otherwise
the battery would ran out quickly. All this factors led me to buy a new laptop
with the main features to consider and give more priority on the weight,
battery and size. I didn’t want to buy again a new 15.4”, up to 4 or 5 hours
of battery, and weighed laptop. Basically the requirements were: 12” or 13”
screen, up to 2Kg, battery that lasted at least 7 or 8 hours (wireless and
reasonable screen brightness), 4GB of RAM or more, and obviously a “good”
brand (Sony, Lenovo, Apple, Dell, and HP were on top of the list), not to
mention a decent price I could afford. A few hours/days later I decided to
pick an Apple Macbook Pro 13” 2.4GHz, not because of the Mac OS X as some
might be imagining by now but because of the hardware itself.&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;http://www.apple.com/macbookpro/&quot;&gt;Apple Macbook Pro 13”&lt;/a&gt; I bought Tuesday
includes an Intel Core 2 Duo 2.4Ghz, 4GB of 1066MHz DDR3, battery up to 10
hours (wireless and 50% screen brightness), and weighs 2.04KG. It cost me
1.149€ but had an (indirect) discount of 5% plus 10€ on the
&lt;a href=&quot;http://www.fnac.pt/&quot;&gt;FNAC&lt;/a&gt; client card (costs 5€ per year but worths it since
it also gives you other discounts and benefits). Here is a short list of
highlights regarding the hardware itself and the Mac OS X operating system
which, by the way, I have to mention I have never used it until now:&lt;/p&gt;

&lt;p&gt;Pros:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Laptop is solid rock and its aluminum unibody makes it truly fresh (I don’t fell any heat, except in the fan area where the air flows out obviously, while the Acer laptop is more like a heater than a laptop (I bet I could fry an egg on it));&lt;/li&gt;
  &lt;li&gt;Touchpad pretty flexible e practical;&lt;/li&gt;
  &lt;li&gt;Battery lasts up to 10 hours, meaning I don’t have to carry the charger wherever I go;&lt;/li&gt;
  &lt;li&gt;The charger has two cables: the charger with the cable to plug in the laptop and another one to extend the length of the cable to the wall socket. This means for, most of the cases, I can leave that extra cable aside or at home;&lt;/li&gt;
  &lt;li&gt;Auto brightness (think a little and you will find how useful it can be);&lt;/li&gt;
  &lt;li&gt;OS X is functional, intuitive, and has a clean UI overall.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Coins:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;I’m used to have the Ctrl key switched with the Fn key (something I want to get used);&lt;/li&gt;
  &lt;li&gt;At least for the Portuguese keyboard, the square brackets as well as the curly brackets aren’t shown in the keyboard and the key combination for the curly brackets isn’t easy and convenient: alt+shift+8 for { and alt+shift+9 for } (keys 8 and 9 are where the parentheses are located at). Imagine how great will it to code, not!&lt;/li&gt;
  &lt;li&gt;No “Cut” on files?!&lt;/li&gt;
  &lt;li&gt;“exit” in the Terminal doesn’t close the tab, but logs out and stays there opened;&lt;/li&gt;
  &lt;li&gt;If running the OS in Portuguese, cmd+w doesn’t close the tab as expected since the shortcut isn’t associated and seems there is no way to do so. If running in English, the shortcut is there and do the job;&lt;/li&gt;
  &lt;li&gt;Expected iChat to support the MSN protocol. Using Adium, which is way better;&lt;/li&gt;
  &lt;li&gt;The file (un-)compressor included by default lacks lots of features such has the capability to uncompress split files. Using BetterZip, but still missing Ark from KDE!&lt;/li&gt;
  &lt;li&gt;People advised me to use VLC instead of QuickTime for watching videos, specially those in HD since it seems the codecs used by QuickTime consumes more CPU than it should and that VLC consumes. I would have installed VLC anyway since I’m already used to it being the best video player out there in my opinion.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For those concerned about my devotion to the FOSS world and specially my
openSUSE and KDE eccentricity, than there is nothing to you worry about! I’m
still the very same guy you used to know. I just needed a laptop with the
features I have stated above and that ended up to be an Apple Macbook. That’s
it, folks!&lt;/p&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="articles" /><category term="opensuse" /><category term="apple" /><summary type="html">I have an Acer laptop for about 5 years. It includes a generously 512MB of RAM, Intel Centrino 1.6Ghz (M730 processor to be more precise), ATI Mobility Radeon x600 64MB VRAM, 80GB HDD, yada yada yada. The battery is in an awesome shape if we consider the age and the usage I put on it during this time - previously 3 hours fully charged and now around 2 hours, so… I couldn’t have asked for better. Nevertheless, the laptop has an 15.4” display and weighs 3Kg with battery plus the charger which I have to take always with me otherwise the battery would ran out quickly. All this factors led me to buy a new laptop with the main features to consider and give more priority on the weight, battery and size. I didn’t want to buy again a new 15.4”, up to 4 or 5 hours of battery, and weighed laptop. Basically the requirements were: 12” or 13” screen, up to 2Kg, battery that lasted at least 7 or 8 hours (wireless and reasonable screen brightness), 4GB of RAM or more, and obviously a “good” brand (Sony, Lenovo, Apple, Dell, and HP were on top of the list), not to mention a decent price I could afford. A few hours/days later I decided to pick an Apple Macbook Pro 13” 2.4GHz, not because of the Mac OS X as some might be imagining by now but because of the hardware itself.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22MacBookAirIconX_220x157.png%22%7D" /><media:content medium="image" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22MacBookAirIconX_220x157.png%22%7D" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Technical Preview of PySide-Shiboken</title><link href="https://cgoncalves.pt/blog/technical-preview-of-pyside-shiboken/" rel="alternate" type="text/html" title="Technical Preview of PySide-Shiboken" /><published>2010-03-24T00:00:00-05:00</published><updated>2010-03-24T00:00:00-05:00</updated><id>https://cgoncalves.pt/blog/technical-preview-of-pyside-shiboken</id><content type="html" xml:base="https://cgoncalves.pt/blog/technical-preview-of-pyside-shiboken/">&lt;p&gt;Marcelo Lira (PySide developer) announced moments ago on the PySide mailing list the &lt;a href=&quot;http://lists.openbossa.org/pipermail/pyside/2010-March/000492.html&quot;&gt;technical preview of PySide-Shiboken&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Hello folks,&lt;/p&gt;

  &lt;p&gt;today we got the Shiboken generated PySide bindings in a good enough shape to do a proper release with tarballs and all the required niceties, instead of rough git urls. Keep in mind that this is an alfa release, or a “technical preview” as the kids in my lawn are used to say, some modules are missing and bugs are not hard to find.&lt;/p&gt;

  &lt;p&gt;This PySide release contains bindings for the following modules:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;QtCore&lt;/li&gt;
    &lt;li&gt;QtGui&lt;/li&gt;
    &lt;li&gt;QtNetwork&lt;/li&gt;
    &lt;li&gt;QtWebKit&lt;/li&gt;
    &lt;li&gt;QtSvg&lt;/li&gt;
    &lt;li&gt;QtXml&lt;/li&gt;
    &lt;li&gt;QtTest&lt;/li&gt;
    &lt;li&gt;QtOpenGL&lt;/li&gt;
    &lt;li&gt;QtSql&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;Feel free to try your Python code with this version of PySide. You know how it works: more users == less bugs.
As long as you guys tell us about the bugs: &lt;a href=&quot;http://bugs.openbossa.org/&quot;&gt;http://bugs.openbossa.org&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;A noteworthy fact is the first release of the Shiboken C++ binding generator. Yay!
We strongly encourage it’s use to produce non-Qt C++ bindings for Python, it will make your life easier.
If it turns out to be not so easy, come and talk with us on #pyside channel (Freenode).&lt;/p&gt;

  &lt;p&gt;Here follow everything needed for this release, in order of compilation.&lt;/p&gt;

  &lt;p&gt;API Extractor, version 0.4.0&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;http://www.pyside.org/files/apiextractor-0.4.0.tar.bz2&quot;&gt;http://www.pyside.org/files/apiextractor-0.4.0.tar.bz2&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Generator Runner, version 0.4.0&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;http://www.pyside.org/files/generatorrunner-0.4.0.tar.bz2&quot;&gt;http://www.pyside.org/files/generatorrunner-0.4.0.tar.bz2&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;Shiboken, version 0.2.0&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;http://www.pyside.org/files/shiboken-0.2.0.tar.bz2&quot;&gt;http://www.pyside.org/files/shiboken-0.2.0.tar.bz2&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;PySide, version 0.3.0&lt;/p&gt;

  &lt;p&gt;&lt;a href=&quot;http://www.pyside.org/files/pyside-qt4.6+0.3.0.tar.bz2&quot;&gt;http://www.pyside.org/files/pyside-qt4.6+0.3.0.tar.bz2&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;You will notice that the size of the generated bindings for the Qt modules in no way resemble the figures from the Boost.Python version. And talking about Boost: packagers, be aware that no component depends on Boost::Graph anymore. Yay^2!&lt;/p&gt;

  &lt;p&gt;P.S.: cgoncalves, thanks for all the code. And to everyone else that provided bug reports, patches, beers, etc.&lt;/p&gt;

&lt;/blockquote&gt;

&lt;p&gt;&lt;img src=&quot;https://cgoncalves.pt/images/posts/Qt_logostrap_CMYK.png&quot; alt=&quot;&quot; /&gt;&lt;/p&gt;

&lt;p&gt;And I followed by &lt;a href=&quot;http://lists.openbossa.org/pipermail/pyside/2010-March/000496.html&quot;&gt;adding&lt;/a&gt; the usual pos-release-announcement announcement:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;Don’t want to get your hands dirty and have headaches due to compilation issues? That’s bloody easy! Get this very same release version already packaged for your distribution from the openSUSE Build Service! Packages (32bit and 64bit) available for the following distributions:&lt;/p&gt;

  &lt;ul&gt;
    &lt;li&gt;openSUSE 11.0, 11.1, 11.2 (for both Qt 4.5 and Qt 4.6 version available), and Factory&lt;/li&gt;
    &lt;li&gt;Fedora 11 and 12&lt;/li&gt;
    &lt;li&gt;Mandriva 2009.1 and 2010&lt;/li&gt;
  &lt;/ul&gt;

  &lt;p&gt;You can install PySide package by adding the proper repository from &lt;a href=&quot;http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/shiboken/&quot;&gt;http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/shiboken/&lt;/a&gt; to your package manager (zypper, yum, urpi, smart or any other rpm-md compatible) followed by the installation of package ‘python-pyside’.&lt;/p&gt;

  &lt;p&gt;But (!) in case you are all a bleeding-eye person, or simply if you want to take an extremely important role on the development by testing it and reporting back to developers, you can even get the regularly snapshots taken from PySide’s Git mainline by adding the devel repository[1].&lt;/p&gt;

  &lt;p&gt;Or if you happen to be from the old-school and love PySide Boost based you can still install and use it[2].&lt;/p&gt;

  &lt;p&gt;I would like to take the opportunity to congratulate and thanks the PySide team for their magnificent effort given to the project. You guys rock!&lt;/p&gt;

  &lt;p&gt;[1] &lt;a href=&quot;http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/devel/&quot;&gt;http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/devel/&lt;/a&gt;&lt;/p&gt;

  &lt;p&gt;[2] &lt;a href=&quot;http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/boost/&quot;&gt;http://download.opensuse.org/repositories/home:/cgoncalves:/pyside:/boost/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</content><author><name>Carlos Gonçalves</name><email>mail@cgoncalves.pt</email></author><category term="articles" /><category term="pyside" /><category term="opensuse" /><category term="mandriva" /><category term="fedora" /><category term="qt" /><summary type="html">Marcelo Lira (PySide developer) announced moments ago on the PySide mailing list the technical preview of PySide-Shiboken:</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22pyside-logo.png%22%7D" /><media:content medium="image" url="https://cgoncalves.pt/%7B%22avatar%22=%3E%22pyside-logo.png%22%7D" xmlns:media="http://search.yahoo.com/mrss/" /></entry></feed>