<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Kaleb Hornsby</title>
  <link href="http://kaleb.horns.by/+/atom.xml" rel="self"/>
  <link href="http://kaleb.horns.by"/>
  <updated>2022-10-05T20:01:55+00:00</updated>
  <id>http://kaleb.horns.by/</id>
  <author>
    <name>Kaleb Hornsby</name>
    <email>kaleb@horns.by</email>
  </author>
  <entry>
    <title>New Horns.by Domain</title>
    <link href="http://kaleb.horns.by/talk/new-horns.by-domain/"/>
    <updated>2012-06-23T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;I moved my website to my new domain, &lt;a href=&quot;http://www.horns.by&quot;&gt;horns.by&lt;/a&gt;.  I do like my new vanity
domain, but it was not the most straightforward or cheapest setup.  For anybody
thinking about getting a &lt;a href=&quot;http://domain.by&quot;&gt;Belarusian domain&lt;/a&gt;, there are a few things that
should be known.&lt;/p&gt;
&lt;p&gt;First, a .by domain is expensive.  It is &lt;a href=&quot;http://domain.by/DataResources/Price.aspx&quot;&gt;listed as $15&lt;/a&gt;, at least 33% more
than I have paid for any other domain.  This is the price before the 20%, or $3,
&lt;a href=&quot;http://en.wikipedia.org/wiki/Value_added_tax&quot;&gt;VAT&lt;/a&gt;, bringing the total up to $18 a year.  This was not the last of the
unexpected fees, however.  The registrar does not take any expected form of
payment.  What they do accept is wire transfer which added additional costs.&lt;/p&gt;
&lt;p&gt;The monetary expense was not the only thing making a .by domain a poor value.
The lack of DNS management provided with the domain was unexpected.  To overcome
this, I decided to use &lt;a href=&quot;http://cloudflare.com&quot;&gt;Cloudflare&lt;/a&gt; free DNS management.  After getting it
set up, everything has worked great.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Form Labels</title>
    <link href="http://kaleb.horns.by/comp/www/html/form-labels/"/>
    <updated>2011-11-26T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;When authoring HTML, if you find yourself writing an &lt;a href=&quot;http://dev.w3.org/html5/markup/input.html&quot;&gt;&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; element&lt;/a&gt;,
chances are that you are going to need to label it.  The proper way to label an
&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt; element is by using a &lt;a href=&quot;http://dev.w3.org/html5/markup/label.html&quot;&gt;&lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; element&lt;/a&gt;.  I don&apos;t know how many
times I&apos;ve seen web developers omit this tag.  Start using it.  It aids in the
accessibility of your site.&lt;/p&gt;
&lt;p&gt;The main component of the &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; element is its &lt;code&gt;for&lt;/code&gt; attribute.  The value of
the &lt;code&gt;for&lt;/code&gt; attribute is the &lt;code&gt;id&lt;/code&gt; of a form element. Form elements can be one of
&lt;code&gt;&amp;lt;input&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;select&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;textarea&amp;gt;&lt;/code&gt;, or &lt;code&gt;&amp;lt;button&amp;gt;&lt;/code&gt;.  The &lt;code&gt;for&lt;/code&gt; attribute can be
omitted if the &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; element surrounds the form element.&lt;/p&gt;
&lt;p&gt;The only issue that I have with omitting the &lt;code&gt;for&lt;/code&gt; attribute is in Internet
Explorer 6 in which clicking the label will not activate the form element.  I
don&apos;t have too many customers that still use IE6, so I omit the attribute
depending on my customer.  The &lt;a href=&quot;http://www.w3.org/&quot; title=&quot;World Wide Web Consortium&quot;&gt;W3&lt;/a&gt; at one time did consider the &lt;a href=&quot;http://www.w3.org/TR/WCAG20-TECHS/F68.html#F68-failex2&quot;&gt;omission of
a &lt;code&gt;&amp;lt;label&amp;gt;&lt;/code&gt; element&apos;s &lt;code&gt;for&lt;/code&gt; attribute a failure criterion in accessibility&lt;/a&gt;,
due to a lack of its interface control being determined programatically, but I
do not believe that this is still the case.&lt;/p&gt;
&lt;p&gt;See below for an example of labels in use. Hint: click on the label, and not the
checkbox.&lt;/p&gt;
&lt;iframe style=&quot;width: 100%; height: 300px&quot; src=&quot;http://jsfiddle.net/kaleb/YvPHN/embedded/result%2Chtml%2Cjs/&quot; allowfullscreen=&quot;allowfullscreen&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;
</content>
  </entry>
  <entry>
    <title>Mutt E-Mail Client and Gmail Over IMAP</title>
    <link href="http://kaleb.horns.by/comp/mail/mutt-email-client-and-gmail-over-imap/"/>
    <updated>2011-10-17T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;I wanted to set up &lt;a href=&quot;http://www.mutt.org&quot; title=&quot;The Mutt E-Mail Client&quot;&gt;mutt&lt;/a&gt; to check my &lt;a href=&quot;http://gmail.com&quot; title=&quot;Google Mail&quot;&gt;Gmail&lt;/a&gt; over &lt;a href=&quot;http://en.wikipedia.org/wiki/Internet_Message_Access_Protocol&quot; title=&quot;Internet Message Access Protocol&quot;&gt;IMAP&lt;/a&gt;.  Mutt is a
highly configurable &lt;a href=&quot;http://en.wikipedia.org/wiki/Text-based_user_interface&quot; title=&quot;Text User Interface&quot;&gt;TUI&lt;/a&gt; email client.  Since it is so configurable and I am
already conditioned to using Gmail&apos;s keyboard shortcuts, I have decided to
share my &lt;code&gt;mutt&lt;/code&gt; configuration to emulate Gmail.&lt;/p&gt;
&lt;script src=&quot;https://gist.github.com/1289741.js&quot;&gt; &lt;/script&gt;
</content>
  </entry>
  <entry>
    <title>WebPutty and Respond.js</title>
    <link href="http://kaleb.horns.by/comp/www/css/webputty-and-respond.js/"/>
    <updated>2011-10-06T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;A couple of months ago, &lt;a href=&quot;http://www.fogcreek.com&quot; title=&quot;Fog Creek Software&quot;&gt;Fog Creek&lt;/a&gt; came out with &lt;a href=&quot;http://www.webputty.net&quot;&gt;WebPutty&lt;/a&gt;, a &amp;quot;simple CSS
editing and hosting service.&amp;quot;  It is a fantastic tool which hosts CSS files for
me.  This feature in itself is not that special, but what does make this
service awesome is that it lets me write my styles in &lt;a href=&quot;http://sass-lang.com/&quot; title=&quot;Sassy CSS&quot;&gt;SCSS&lt;/a&gt; and it also has
a pretty slick interface for letting me see style changes on the fly.  I was
loving it, but then I ran into a stumbling block, which I&apos;ll get to in a bit.&lt;/p&gt;
&lt;h2&gt;Respond.js&lt;/h2&gt;
&lt;p&gt;I&apos;ve been experimenting with &lt;a href=&quot;/htes5/respond&quot;&gt;responsive web design&lt;/a&gt; for a little bit now.  To
aid me in accomplishing this with older deficient Internet Explorer browsers, I
turned to &lt;a href=&quot;https://github.com/scottjehl/Respond&quot; title=&quot;CSS Media Query Shim&quot;&gt;Respond.js&lt;/a&gt;.  Respond.js will parse all of a web page&apos;s CSS styles
and emulate the supported &lt;a href=&quot;https://developer.mozilla.org/en/CSS/Media_queries&quot;&gt;media queries&lt;/a&gt; it finds with &lt;a href=&quot;/comp/lang/javascript/&quot;&gt;JavaScript&lt;/a&gt; to the
best of its abilities.&lt;/p&gt;
&lt;p&gt;To be able to retrieve the external CSS files, Respond.js performs an &lt;a href=&quot;http://softwareas.com/ajax-not-ajax-a-user-centered-definition&quot;&gt;Ajax&lt;/a&gt;
request.  Since Ajax has a &lt;a href=&quot;http://en.wikipedia.org/wiki/XMLHttpRequest#Cross-domain_requests&quot;&gt;same origin policy&lt;/a&gt;, Respond.js cannot access
stylesheets that are stored externally on a separate domain, such as
&lt;a href=&quot;http://www.webputty.net&quot;&gt;webputty.net&lt;/a&gt;.  Respond.js does have a solution for this: a proxy
HTML file that must be on the external site hosting the CSS.  I asked the guys
at Fog Creek to implement this, and they have so kindly obliged.&lt;/p&gt;
&lt;h2&gt;WebPutty Responds&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;From: &amp;quot;Dane Bertram&amp;quot;&lt;br&gt;
Date: Oct 5, 2011 4:05 PM&lt;br&gt;
Subject: Re: (Case FC2120156) [webputty] Respond.js&lt;br&gt;
To: &amp;quot;Kaleb Hornsby&amp;quot;&lt;/p&gt;
&lt;p&gt;Hi Kaleb,&lt;/p&gt;
&lt;p&gt;I just wanted to touch base quickly to let you know that we&apos;ve added the
Respond.js proxy to WebPutty and that you&apos;re welcome to start using it now.&lt;/p&gt;
&lt;p&gt;We&apos;re still working on adding documentation, but for the time being, you can
use the following to get Respond.js working with WebPutty (provided you&apos;ve
already got respond.proxy.gif and respond.proxy.js already on your own
server):&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;&amp;lt;link id=&amp;quot;respond-proxy&amp;quot; rel=&amp;quot;respond-proxy&amp;quot;
  href=&amp;quot;http://www.webputty.net/respond-proxy.html&amp;quot; /&amp;gt;
&amp;lt;link id=&amp;quot;respond-redirect&amp;quot; rel=&amp;quot;respond-redirect&amp;quot;
  href=&amp;quot;respond.proxy.gif&amp;quot; /&amp;gt;
&amp;lt;script src=&amp;quot;respond.proxy.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;We don&apos;t have the proxy working in the editor just yet though, so if you&apos;re
trying to test your media queries in older versions of IE, you&apos;ll have to
visit your website directly (rather than via the preview pane in WebPutty&apos;s
editor).&lt;/p&gt;
&lt;p&gt;Let me know if I can be of further assistance, if indeed this was helpful, or
if this raises any other questions.&lt;/p&gt;
&lt;p&gt;All the best,&lt;br&gt;
Dane&lt;/p&gt;
&lt;/blockquote&gt;
</content>
  </entry>
  <entry>
    <title>SSH Keys</title>
    <link href="http://kaleb.horns.by/comp/os/chrome/ssh-keys/"/>
    <updated>2011-07-21T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;For six months now, I have been a bad person.  Love can make a person do funny
things: to make compromises, to re-evaluate one&apos;s own principles. In my case,
it was the love of my &lt;a href=&quot;http://www.google.com/chromebook/&quot; title=&quot;Cr-48 Chromebook&quot;&gt;Cr-48&lt;/a&gt;.  It is sleek and lightweight, simple and not
fancy.  I do not ask for much and in return it gave me the two things I really
ever needed in a laptop operating system: a web browser and &lt;a href=&quot;http://en.wikipedia.org/wiki/Secure_Shell&quot; title=&quot;Secure Shell&quot;&gt;SSH&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As attractive as the Cr-48 is, it blinded me to a major flaw in its SSH client.
It lacked any and all support for &lt;a href=&quot;https://help.ubuntu.com/community/SSH/OpenSSH/Keys&quot; title=&quot;Secure Shell Public/Private Key Pairs&quot;&gt;SSH keys&lt;/a&gt;.  I overlooked this flaw and made
a compromise; I decided to allow password authentication on my home server,
exposing my poor little machine to the evils that lurk in the dark corners of the
internet.  Fear not, I have since re-disabled passwords.  I would like to say that
it was because I learned my lesson and repented from my slovenly ways, but I am
not disabling password authentication because it is the right thing to do.
It is rather that Chrome OS now supports SSH keys.&lt;/p&gt;
&lt;p&gt;SSH key support has been available in Chrome OS since at least before May, but it
was not until today that I noticed it.  There is no SSH agent, and the syntax
to use a key while connecting to a host is a little annoying, but these are some
freedoms I am willing to give up for security.&lt;/p&gt;
&lt;p&gt;From crosh, the Chrome OS terminal, this is how I discovered the ability to use
SSH keys:&lt;/p&gt;
&lt;pre class=&quot;language-shell-session&quot;&gt;&lt;code class=&quot;language-shell-session&quot;&gt;&lt;span class=&quot;token output&quot;&gt;crosh&gt; ssh&lt;br&gt;ssh&gt; help&lt;br&gt;connect                       - connect&lt;br&gt;dynamic-forward port          - dynamic socks proxy (-D)&lt;br&gt;forward port:host:port        - static port forward (-L)&lt;br&gt;help                          - this&lt;br&gt;host &amp;lt;hostname&gt;               - remote hostname&lt;br&gt;key &amp;lt;file&gt;                    - sets private key to use (-i)&lt;br&gt;nocmd                         - don&apos;t execute command (-N)&lt;br&gt;port &amp;lt;num&gt;                    - port on remote host (-p)&lt;br&gt;exit                          - exit ssh subsystem&lt;br&gt;user &amp;lt;username&gt;               - username on remote host&lt;br&gt;Note that this program can only bind local ports in the range&lt;br&gt;8000-8999, inclusive.&lt;br&gt;ssh&gt; key&lt;br&gt;File &apos;&apos; is not a valid key file. Key files must reside&lt;br&gt;under /media or /home/chronos/user. Key files in the Downloads directory may&lt;br&gt;be specified with an unqualified name.&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;The next few sections will be a step by step setup guide for using keys on SSH.&lt;/p&gt;
&lt;h2&gt;Generate a Public/Private Key Pair&lt;/h2&gt;
&lt;p&gt;I generated the keys on my home server.  Your syntax may vary.&lt;/p&gt;
&lt;pre class=&quot;language-shell-session&quot;&gt;&lt;code class=&quot;language-shell-session&quot;&gt;&lt;span class=&quot;token command&quot;&gt;&lt;span class=&quot;token shell-symbol important&quot;&gt;$&lt;/span&gt; &lt;span class=&quot;token bash language-bash&quot;&gt;ssh-keygen -f vinz-clortho&lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token output&quot;&gt;Generating public/private rsa key pair.&lt;br&gt;Enter passphrase (empty for no passphrase): &lt;br&gt;Enter same passphrase again: &lt;br&gt;Your identification has been saved in vinz-clortho.&lt;br&gt;Your public key has been saved in vinz-clortho.pub.&lt;br&gt;The key fingerprint is:&lt;br&gt;01:23:45:67:89:ab:cd:ef:fe:dc:ba:98:76:54:32:10 zuul@example&lt;br&gt;The key&apos;s randomart image is:&lt;br&gt;+--[ RSA 2048]----+&lt;br&gt;|                 |&lt;br&gt;|                 |&lt;br&gt;|        o . .E  .|&lt;br&gt;|       . = .o..+.|&lt;br&gt;|        S .. oo++|&lt;br&gt;|         .   .*.=|&lt;br&gt;|             oo.*|&lt;br&gt;|               o=|&lt;br&gt;|                o|&lt;br&gt;+-----------------+&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Add Public Key to Server&lt;/h2&gt;
&lt;p&gt;After the keys are generated, the public key needs to be appended to the SSH
authorized keys listing.&lt;/p&gt;
&lt;pre class=&quot;language-shell-session&quot;&gt;&lt;code class=&quot;language-shell-session&quot;&gt;&lt;span class=&quot;token command&quot;&gt;&lt;span class=&quot;token shell-symbol important&quot;&gt;$&lt;/span&gt; &lt;span class=&quot;token bash language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;cat&lt;/span&gt; vinz-clortho.pub &lt;span class=&quot;token operator&quot;&gt;&gt;&gt;&lt;/span&gt; ~/.ssh/authorized_keys&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Add Private Key to Chromebook&lt;/h2&gt;
&lt;p&gt;I copied the public and private keys from my SD Card to my Downloads directory.
To open up the file browser, hit &lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;m&lt;/kbd&gt;.&lt;/p&gt;
&lt;h2&gt;Establish SSH Connection&lt;/h2&gt;
&lt;p&gt;Even though the SSH help mentions a &lt;code&gt;-i&lt;/code&gt; option, I cannot seem to get it to
work, and I am stuck with the following syntax:&lt;/p&gt;
&lt;pre class=&quot;language-shell-session&quot;&gt;&lt;code class=&quot;language-shell-session&quot;&gt;&lt;span class=&quot;token output&quot;&gt;crosh&gt; ssh&lt;br&gt;ssh&gt; host example.com&lt;br&gt;ssh&gt; user zuul&lt;br&gt;ssh&gt; key vinz-clortho&lt;br&gt;ssh&gt; connect&lt;br&gt;Enter passphrase for key &apos;/home/chronos/user/.ssh/key-123...abc&apos;:&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;h2&gt;Shut Off Password Authentication&lt;/h2&gt;
&lt;p&gt;Finally, lets secure this sucker.&lt;/p&gt;
&lt;pre class=&quot;language-shell-session&quot;&gt;&lt;code class=&quot;language-shell-session&quot;&gt;&lt;span class=&quot;token command&quot;&gt;&lt;span class=&quot;token shell-symbol important&quot;&gt;$&lt;/span&gt; &lt;span class=&quot;token bash language-bash&quot;&gt;sudoedit /etc/ssh/sshd_config&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Set &amp;quot;PasswordAuthentication no&amp;quot;.&lt;/p&gt;
&lt;pre class=&quot;language-shell-session&quot;&gt;&lt;code class=&quot;language-shell-session&quot;&gt;&lt;span class=&quot;token command&quot;&gt;&lt;span class=&quot;token shell-symbol important&quot;&gt;$&lt;/span&gt; &lt;span class=&quot;token bash language-bash&quot;&gt;&lt;span class=&quot;token function&quot;&gt;sudo&lt;/span&gt; reload &lt;span class=&quot;token function&quot;&gt;ssh&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
</content>
  </entry>
  <entry>
    <title>ChromeOS Split Windows</title>
    <link href="http://kaleb.horns.by/comp/os/chrome/chromeos-split-windows/"/>
    <updated>2011-07-19T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Google_Chrome_OS&quot; title=&quot;ChromeOS&quot;&gt;ChromeOS&lt;/a&gt; recently updated and added some new features.  One of them was an
unexpected addition, and the other was something that I&apos;ve been waiting for
since the defect was marked as resolved.&lt;/p&gt;
&lt;h2&gt;Split Windows&lt;/h2&gt;
&lt;p&gt;When ChromeOS first released, the only way to view a web page was to view it
maximized.  This was somewhat problematic if one wanted to view two pages side
by side, e.g. writing a paper in &lt;a href=&quot;http://en.wikipedia.org/wiki/Google_Docs&quot; title=&quot;Google Docs&quot;&gt;Google Docs&lt;/a&gt; and viewing a work to cite at
the same time.  &lt;a href=&quot;https://chrome.google.com/webstore/detail/illfnfpoggnlapniilhkplbofldeimie&quot; title=&quot;Panelize Chrome Extension&quot;&gt;Panelize&lt;/a&gt; is a Chrome extension that made this process a
bit more bearable.  It has an option that the user to open the current tab as
a docked mini page.  The problem with this is that mini pages always obscured
at least part of the underlying page.&lt;/p&gt;
&lt;p&gt;Despite what may be evident at first, ChromeOS is not just a web browser.  It
has another useful application as well: a &lt;a href=&quot;http://en.wikipedia.org/wiki/Linux_terminal&quot; title=&quot;Linux Terminal&quot;&gt;terminal&lt;/a&gt;.  To open the terminal,
all the user has to do is hit the familiar &lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;alt&lt;/kbd&gt; +
&lt;kbd&gt;t&lt;/kbd&gt;. This terminal does
not have many features, as it is not a fully functional shell.  The most useful
tool that it does have is SSH, and I use it often.  The terminal has some of
the same multi-tasking hinderences as the browser: the inability to view
multiple windows at once; the terminal is always full screen.&lt;/p&gt;
&lt;p&gt;The latest update that I recieved as of this writing fixed this issue.
Windows can now be split vertically.  Now when a new browser is created or when
a terminal is opened, the new windows are no longer full screen by default.
The user can now drag to the left or right the width of the window allowing two
windows—whether it be a browser or terminal—to be viewed at the same time.
It&apos;s a boon to productivity.  In the upper right hand corner of the browser
windows there is now a &lt;em&gt;maximize&lt;/em&gt; button so that the user may quickly maximize
a window. Another change made was the functionality of one of the function
keys.  What used to be a button dedicated to switching windows—exactly the
same functionality of &lt;kbd&gt;alt&lt;/kbd&gt; + &lt;kbd&gt;tab&lt;/kbd&gt;—is now used to maximize
windows from the keyboard.  If you want to be able to resize your windows with
the keyboard, there&apos;s keyboard shortcuts for that.&lt;/p&gt;
&lt;h2&gt;Keyboard Shortcuts&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://picasaweb.google.com/lh/photo/Pj_A9KSL73sQ7kYsUd69mg?feat=embedwebsite&quot;&gt;&lt;img src=&quot;https://lh4.googleusercontent.com/-uYbEbPcZIbI/TiTElYaaOkI/AAAAAAAADzc/KC83i4B1dt8/s400/ChromeOS-Resized-Windows.png&quot; height=&quot;250&quot; width=&quot;400&quot; alt=&quot;Screenshot&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If the user hits &lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;alt&lt;/kbd&gt; + &lt;kbd&gt;&amp;gt;&lt;/kbd&gt; or
&lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;alt&lt;/kbd&gt; + &lt;kbd&gt;&amp;lt; &lt;/kbd&gt;, the window will resize to
the left or to the right respectively.  Chrome has many other useful keyboard
shortcuts such as taking screenshots or changing input language.  By hitting
&lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;alt&lt;/kbd&gt; + &lt;kbd&gt;/&lt;/kbd&gt; the user can view all the
keyboard shortcuts in ChromeOS.&lt;/p&gt;
&lt;h2&gt;Killing SSH Sessions&lt;/h2&gt;
&lt;p&gt;One of the biggest issues that I had with ChromeOS was the inability to depart
a hung SSH session.  When logged into an SSH session and the connection drops,
the terminal would stay open with no method of closing it.  ChromeOS disables
the standard the standard tilde commands for security reasons, so that route
does not work to kill or reconnect the session.  The only recourse that I had
was to either open a new terminal window and ignore the hung window or if I
really wanted the hung sessions gone, I would have to log out and log back in.
Now, it is a simple &lt;kbd&gt;shift&lt;/kbd&gt; + &lt;kbd&gt;ctrl&lt;/kbd&gt; + &lt;kbd&gt;w&lt;/kbd&gt;, just
like in &lt;a href=&quot;http://en.wikipedia.org/wiki/GNOME_Terminal&quot; title=&quot;GNOME Terminal&quot;&gt;gnome-terminal&lt;/a&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Google+ Hangout Hackathon</title>
    <link href="http://kaleb.horns.by/comp/internet/services/google/hangout-hackathon/"/>
    <updated>2011-07-14T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;Last night, I was invited to a &lt;a href=&quot;http://youtu.be/Tku1vJeuzH4&quot; title=&quot;Google Plus Hangouts&quot;&gt;Google+ Hangout&lt;/a&gt; to participate in a
&lt;a href=&quot;https://plus.google.com/116805285176805120365/posts/SH653h7fjYP&quot; title=&quot;Circle Pong Google+ Hangout Chrome Extension Announcement&quot;&gt;Chrome extension hackathon&lt;/a&gt;.  I was not able to participate much due to
some technical issues.  It is really too bad, because I felt that I could
have learned much from the other coders involved.&lt;/p&gt;
&lt;p&gt;The project that we were working on is a &lt;a href=&quot;https://github.com/hangout/circle-pong-extension&quot; title=&quot;Circle Pong Google+ Hangout Chrome Extension on Github&quot;&gt;chrome extension that allows users to
play a game of pong while using Hangouts&lt;/a&gt;.  This adds a whole new
dynamic to how users can participate in Hangouts. Kudos to whomever first
thought of the idea.&lt;/p&gt;
&lt;p&gt;To be able to pull off creating this extension, we had to delve into the Hangouts source
code.  While doing this, we noticed a couple of interesting
things after being pointed out by &lt;a href=&quot;https://plus.google.com/116805285176805120365&quot; title=&quot;Mohamed Mansour&apos;s Profile&quot;&gt;Mohamed Mansour&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Google+ Hangouts Uses Google Wave&lt;/h2&gt;
&lt;p&gt;One of the tasks needed to get the extension to work is that we needed to find
a way to easily and programmatically access the list of all users currently in
the Hangout.  Mansour discovered a hidden &lt;code&gt;&amp;lt;iframe&amp;gt;&lt;/code&gt; that contained much of its
logic and data.&lt;/p&gt;
&lt;div class=&quot;centered&quot;&gt;
&lt;a href=&quot;https://picasaweb.google.com/lh/photo/XpQ8ldm8H5mZRFzsX1Nw_Q?feat=embedwebsite&quot;&gt;
&lt;img src=&quot;https://lh3.googleusercontent.com/-OIL3stpOehc/Th8XA5_cwhI/AAAAAAAADtU/2RSjslEQmpQ/s400/screenshot-20110714-121716.png&quot; height=&quot;250&quot; width=&quot;400&quot; alt=&quot;Screenshot&quot; /&gt;
&lt;/a&gt;
&lt;/div&gt;
&lt;p&gt;Deep inside this maze, Mansour noticed that Hangouts made some calls to
&lt;a href=&quot;http://wave.google.com/&quot; title=&quot;Google Wave&quot;&gt;Google Wave&lt;/a&gt; services. This was pretty interesting considering the fact
that &lt;a href=&quot;http://googleblog.blogspot.com/2010/08/update-on-google-wave.html&quot; title=&quot;Offical Google Update on Wave&quot;&gt;Google wave was retired&lt;/a&gt; almost a  year ago. Well, not that interesting
in that they stated that they will
&lt;q cite=&quot;http://googleblog.blogspot.com/2010/08/update-on-google-wave.html&quot;&gt;extend
the technology for use in other Google projects.&lt;/q&gt; I really liked Wave
none the less, and I wish it had caught on. That was not the only interesting
discovery made during our code spelunking, though.&lt;/p&gt;
&lt;h2&gt;Google+ Hangouts Uses jQuery&lt;/h2&gt;
&lt;p&gt;Mansour had also discovered that Hangouts uses &lt;a href=&quot;http://jquery.com/&quot; title=&quot;jQuery JavaScript Library&quot;&gt;jQuery&lt;/a&gt;. Hangouts is powered
by jQuery all throughout. This seemed like an odd finding for a couple reasons.
The first strange thing about this choice of JavaScript library, is that I have
not seen its usage in any other Google product.  The second oddity is that none
of the JavaScript was optimized nor minimized with the &lt;a href=&quot;http://code.google.com/closure/&quot; title=&quot;Closure JavaScript Tools&quot;&gt;Google Closure&lt;/a&gt;
compiler.  Is Google getting &lt;em&gt;real&lt;/em&gt; JavaScript web developers to work on these
new projects and beginning to shy away from the Java and Google Web Toolkit
programmers from their previous products (like Wave)?  I didn&apos;t mean to
sound harsh there, but I think that JavaScript needs a little more
respect than the &lt;abbr title=&quot;Google Web Toolkit&quot;&gt;GWT&lt;/abbr&gt; project gives it.&lt;/p&gt;
&lt;p&gt;All and all, for the brief time that I was participating in the hackathon, I was
enjoying myself immensely. I would love to do one again, but before I do, I need
to tune my desktop and switch to a faster
&lt;abbr title=&quot;Internet Service Provider&quot;&gt;ISP&lt;/abbr&gt;.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Array Cheat Sheet</title>
    <link href="http://kaleb.horns.by/comp/lang/javascript/Array-Cheat-Sheet/"/>
    <updated>2011-05-23T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;Note, all methods that are marked with an exclamation mark (!) will mutate their
object. All &lt;em&gt;italicized&lt;/em&gt; parameters are optional.&lt;/p&gt;
&lt;h2&gt;Static Methods&lt;/h2&gt;
&lt;dl class=&quot;cheatsheet&quot;&gt;
&lt;dt id=&quot;Array.isArray&quot;&gt;&lt;a href=&quot;#Array.isArray&quot;&gt;isArray(obj)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;3&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;Array&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;isArray&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [true,true,false,false]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;/dl&gt;
&lt;h2&gt;Instance Properties&lt;/h2&gt;
&lt;p&gt;constructor&lt;/p&gt;
&lt;p&gt;length&lt;/p&gt;
&lt;h2&gt;Instance Methods&lt;/h2&gt;
&lt;dl class=&quot;cheatsheet&quot;&gt;
&lt;dt id=&quot;Array.prototype.concat&quot;&gt;&lt;a href=&quot;#Array.prototype.concat&quot;&gt;concat(args,)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,2,3,4]&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;concat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,2,3,4,5,6]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.every&quot;&gt;&lt;a href=&quot;#Array.prototype.every&quot;&gt;every(callback, &lt;em&gt;thisObj&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;decr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;n&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;ary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; n &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;every&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;decr&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; false&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;every&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;decr&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; true&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.filter&quot;&gt;&lt;a href=&quot;#Array.prototype.filter&quot;&gt;filter(callback, &lt;em&gt;thisObj&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;decr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;n&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;ary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; n &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;decr&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [2,3]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.forEach&quot;&gt;&lt;a href=&quot;#Array.prototype.forEach&quot;&gt;forEach(callback, &lt;em&gt;thisObj&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;forEach&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;alert&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;// 3 alerts&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.indexOf&quot;&gt;&lt;a href=&quot;#Array.prototype.indexOf&quot;&gt;indexOf(searchArg, &lt;em&gt;fromIndex&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.join&quot;&gt;&lt;a href=&quot;#Array.prototype.join&quot;&gt;join(&lt;em&gt;separator&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; &quot;1,2,3&quot;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;join&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;+&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; &quot;1+2+3&quot;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.lastIndexOf&quot;&gt;&lt;a href=&quot;#Array.prototype.lastIndexOf&quot;&gt;lastIndexOf(searchArg, &lt;em&gt;thisObj&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;indexOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 2&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.map&quot;&gt;&lt;a href=&quot;#Array.prototype.map&quot;&gt;map(callback, &lt;em&gt;thisObj&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;decr&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;n&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;ary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; n &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;map&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;decr&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [0,1,2]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.pop&quot;&gt;&lt;a href=&quot;#Array.prototype.pop&quot;&gt;pop()!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 3&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,2]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.push&quot;&gt;&lt;a href=&quot;#Array.prototype.push&quot;&gt;push(args,)!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 4&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,2,3,4]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.reduce&quot;&gt;&lt;a href=&quot;#Array.prototype.reduce&quot;&gt;reduce(callBack, &lt;em&gt;initialValue&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sub&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;p&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;n&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;ary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; p &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; n&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sub&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; -4&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.reduceRight&quot;&gt;&lt;a href=&quot;#Array.prototype.reduceRight&quot;&gt;reduceRight()&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;sub&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;p&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;n&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;ary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; p &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; n&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reduceRight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;sub&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 0&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.reverse&quot;&gt;&lt;a href=&quot;#Array.prototype.reverse&quot;&gt;reverse()!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;reverse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [3,2,1]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.shift&quot;&gt;&lt;a href=&quot;#Array.prototype.shift&quot;&gt;shift()!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;shift&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 1&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [2,3]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.slice&quot;&gt;&lt;a href=&quot;#Array.prototype.slice&quot;&gt;slice(begin, &lt;em&gt;end&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;slice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [2]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.some&quot;&gt;&lt;a href=&quot;#Array.prototype.some&quot;&gt;some(callback, &lt;em&gt;thisObj&lt;/em&gt;)&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;n&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;i&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;ary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; n &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; true&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.sort&quot;&gt;&lt;a href=&quot;#Array.prototype.sort&quot;&gt;sort(&lt;em&gt;compareFunction&lt;/em&gt;)!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt; a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,2,3]&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token keyword&quot;&gt;function&lt;/span&gt; &lt;span class=&quot;token function&quot;&gt;longer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot;&gt;a&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;b&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;{&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token keyword&quot;&gt;return&lt;/span&gt; a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&gt;&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt;&lt;br&gt;    a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length &lt;span class=&quot;token operator&quot;&gt;&amp;lt;&lt;/span&gt; b&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;length&lt;span class=&quot;token operator&quot;&gt;?&lt;/span&gt; &lt;span class=&quot;token operator&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token operator&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;token number&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;token punctuation&quot;&gt;}&lt;/span&gt;&lt;br&gt;a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;aardvark&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;beaver&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token string&quot;&gt;&quot;cat&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;longer&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [&quot;cat&quot;,&quot;beaver&quot;,&quot;aardvark&quot;]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.splice&quot;&gt;&lt;a href=&quot;#Array.prototype.splice&quot;&gt;splice(index, howMany, &lt;em&gt;args&lt;/em&gt;,)!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;splice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [2,3]&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,4,5]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;dt id=&quot;Array.prototype.unshift&quot;&gt;&lt;a href=&quot;#Array.prototype.unshift&quot;&gt;unshift(args,)!&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;
&lt;pre class=&quot;language-js&quot;&gt;&lt;code class=&quot;language-js&quot;&gt;&lt;span class=&quot;token keyword&quot;&gt;var&lt;/span&gt; a &lt;span class=&quot;token operator&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token punctuation&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot;&gt;unshift&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token number&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; 4&lt;/span&gt;&lt;br&gt;a&lt;span class=&quot;token punctuation&quot;&gt;;&lt;/span&gt;&lt;br&gt;  &lt;span class=&quot;token comment&quot;&gt;//-&gt; [1,2,3,4]&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/dd&gt;
&lt;/dl&gt;
</content>
  </entry>
  <entry>
    <title>Computer Languages I Like</title>
    <link href="http://kaleb.horns.by/comp/lang/Likes/"/>
    <updated>2011-03-23T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;ul&gt;
&lt;li&gt;ES5&lt;/li&gt;
&lt;li&gt;go&lt;/li&gt;
&lt;li&gt;Haskell&lt;/li&gt;
&lt;li&gt;Python&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Languages I Speak</title>
    <link href="http://kaleb.horns.by/sci/lang/I-Speak/"/>
    <updated>2011-03-22T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;ul&gt;
&lt;li&gt;English&lt;/li&gt;
&lt;li&gt;Mandarin&lt;/li&gt;
&lt;li&gt;Farsi&lt;/li&gt;
&lt;li&gt;Spanish&lt;/li&gt;
&lt;li&gt;Latin&lt;/li&gt;
&lt;li&gt;Esperanto&lt;/li&gt;
&lt;/ul&gt;
</content>
  </entry>
  <entry>
    <title>Another Categories Test</title>
    <link href="http://kaleb.horns.by/talk/Another-Categories-Test/"/>
    <updated>2011-02-09T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;Testing 1, 2, 3.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Testing Categories</title>
    <link href="http://kaleb.horns.by/comp/Testing-Categories/"/>
    <updated>2011-02-08T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;p&gt;This is a test of the github blog categories feature.&lt;/p&gt;
</content>
  </entry>
  <entry>
    <title>Moving to Github</title>
    <link href="http://kaleb.horns.by/talk/Moving-To-Github/"/>
    <updated>2011-02-05T00:00:00+00:00</updated>
    <id>http://kaleb.horns.by</id>
    
    <content type="html">&lt;h1&gt;Moving to Github&lt;/h1&gt;
&lt;p&gt;I have decided to move my host to Github. I hope it works out for the best.&lt;/p&gt;
&lt;p&gt;It has some nice features like markdown support, basic blog posting, layout
master pages, and revision control support.&lt;/p&gt;
</content>
  </entry>
</feed>