Monday, July 22, 2013

Ubuntu Edge crowdfunding gone live

Today, July 22nd 2013, Canonical announced their new phone, which they are calling the Ubuntu Edge.
Canonical changed their website for the announcement in an attempt to get viewers on their indiegogo page, which has a goal so high that it will double the previously highest crowdfunding goal every achieved; they want 32 million dollars in donations before they will roll the phone out. If Canonical cannot receive this funding, they will not make the Ubuntu Edge, but their phone Operating System (Ubuntu Touch) will still be released for existing compatible phones. Because of the open nature of Ubuntu Touch's development, many Android phones will have the operating system ported to it before and after the release of the finished product.

The Ubuntu Phone features:
  1. 128 GB Storage
  2. 4     GB RAM
  3. Saphire-glass screen / camera, very hard to break and very resistant to scratching.
  4. 2 LTE Antennae
  5. Docking, which allows the phone to run Desktop Ubuntu.
  6. Silicon-Anode battery.
  7. Android Dual-Boot with their "Ubuntu for Android".
  8. Buttonless experience from Ubuntu Touch. Everything is done with gestures.
  9. Full Gnu/Linux system on the phone. Coreutils, terminal emulators, ssh tunnels, programming apps for the phone in Lisp / Haskell / Rust / Whatever the heck you want. It's all there.
  10. Access to Ubuntu ArmV7's repositories for tens of thousands of applications off the bat.

Will they reach their goal of $42 million? Well, roughly an hour after the launch, at the time of me writing this news post, they have reached half a million dollars. If, on the 21st of August, it appears that they will not reach their goal, Shuttleworth could very easily cap off however much they need. Shuttleworth has shelled out $500 million dollars in the past to go to space, and his net worth is currently worth just as much as the trip to space. If IndieGoGo can get Canonical close to the goal, Shuttleworth will likely save the project from oblivion. So will the edge make it? Most definitely so.

Tuesday, July 16, 2013

Comparison of IRC clients

IRC, or Internet Relay Chat, is a protocol for transferring text to a server which will relay the text to everyone else connected to the room or user it was sent to. You can think of it like a chatroom.

k4tzz connected
k4tzz  | Sup guys?
melga| Hai k4tzz, haven't seen you around in ages.
* joeyB0y pets k4tzz

IRC is sometimes used to organize large open source projects, or to get technical assistance ( do both of these things).

There are multiple clients that can interface with the protocol, and this is a comparison of those clients.

Xchat / Hexchat
This is the most popular of the IRC clients. Xchat and Hexchat are largely the same, but Hexchat sees more regular development, so it is encouraged to use it over Xchat. It is also in the process of developing a completely text version with ncurses, so if you're into that it's a solid client. Xchathas a list
of the connected list, a text box on the bottom, and a channel list on the left. The settings are completely graphical.

Xchat also supports buttons specifically for Operators, so if you're op on a channel, xchat is a very good moderation tool. Xchat also supports the same text commands you would find in a command-line IRC client. /join, /connect, etc.

It does have its shortcomings, though. Because Xchat is graphical, it cannot be embedded in a multiplexer. That means if you accidentally close the window (and kill the tray icon, since it supports that) you lose your IRC session. This doesn't make it a good choice for a user that may switch desktop environments often. Xchat also can't be configured very heavily, since it's graphical, but you can change the colors of the display.


Pidgin is a chatting client that supports a whole heap of protocols. MSN, AIM, Jabber, what have you, it's in Pidgin either officially or as a plugin. Pidgin originally developed LibPurple, which you've probably used if you were doing any network-heavy code on Linux.

As for an IRC client, it lacks. It has the very basic features of an IRC client, but no heavy configurability options (even less so than Xchat). It supports tabs, but for the serious IRC user, this is not an option.


 Irssi is the command-line option that most people turn to. It consumes very little RAM, all of the standard text commands of an IRC client, scrolling, acts (kind of like tabs), and most importantly, heavy configuration in its configuration files. Themes (in the .theme format) can adjust settings of irssi deeply, and because of how old it is, there are many of these around. Irssi isn't a spring chicken any more, though. The man file was last updated in 2002! That doesn't make this a poor choice, though. For a simple command-line IRC experience, this is the option of choice you should have.

Weechat is another command-line IRC client. Much alike irssi, it supports all of the commands, but allows you to set them per-server. So you can have different default nicks across servers, or on all servers with /set irc.server_default.

Also like irssi, it has the ability to be placed in a terminal multiplexer, which will be persistent as long as your computer is running. It is commonly updated, unlike irssi. It also supports extra features, like showing how many unread messages are in each act. It also has a nick list, which is a feature many people miss when they use irssi over something like xchat.

Weechat's configuration file is hundreds upon hundreds of lines. Every little aspect of this client can be configured. There are also some features that are turned off by default, that you can enable and enjoy. There aren't any shortcomings to weechat, except for a bit of wastes space on the right side of the screen. However, this space is negligible if you shorten your timestamp and remove the nick list.

 Erc is an interesting IRC client. It supports all of Emacs keybindings by default, and there's a reason for that: it is contained within emacs. Erc can be installed from MELPA with M-x package-install [ret] ercn. ERC supports full configuration, but is very light by default. It would make as much sense to use Erc as your default IRC client as it would for you to use M-x shell for your default terminal emulator. If you are in Emacs all the time, give it a whirl. Otherwise, save this client for when you need programming help or someone to keep you occupied in long coding sessions.

Objectively, weechat is the best IRC client. It supports the most features, the best performance, and the highest configuration possibilities. However, each of these IRC clients server a particular niche. Xchat for ease-of-use, irssi for simplicity, weechat for heavy IRC users that don't mind getting their hands dirty with a bit of configuration, and Erc serves people that use Emacs constantly. Pidgin? Not even once, but I guess if you use Pidgin often, it's a viable solution. I recommend downloading all of these and trying them out for yourself, since they're all very small downloads. However, weechat is the "winner" of the irc clients.

Tuesday, July 9, 2013

How to install MELPA in GNU Emacs

MELPA, which stands for "Milkypostman’s Emacs Lisp Package Archive" is a third-party repository for package.el, a package manager for GNU Emacs. Melpa provides hundreds of third-party Emacs lisp extensions like haskell-mode, scion, and themes. Installing it can be a pain, especially since MELPA's installation tutorial is incomplete. Here are the steps for using MELPA.

 1. Modify emacs.d
 There is a file, called init.el, that dictates what Emacs does when you start it. However, the preferred method of installing MELPA is to create (or modify) your .emacs file in $HOME. Create the .emacs file and put these contents into it:

(require 'package)
(add-to-list 'package-archives
  '("melpa" . "") t)

If 'package is already (required), do not require it again.

2. List the Packages
The step that the official guide leaves out is the command M-x list-packages. This is similar to what "apt-get update" would do. It will read in the possible packages that are candidates for installation. Now you can install packages with package-install [Ret].