Close

Vi IMproved

VI is a key text editing tool available on unix systems. The most common version of vi used by desktop linux distributions is VIM. There are a number of implementations of the modal vi editor but I have learned and use the most common one, VIM.

Having a consistent and capable editor available on any system is important, especially important for people who move from machine to machine for whatever reason. People who administer UNIX systems or who help others with their operating system (like many Linux User Group members) need to edit files quickly. The family of editors known as vi (including nvi, aka. vi on BSD) is very useful for this. Some of the reasons for its success are the use of classic UNIX philosophy, regular expressions, keyboard use (no mouse required) and plugins. The learning curve is a bit steep for beginners. Because text editors are written for use in terminals they can be used even across platforms with the help of fink (brew and others) on Mac OSX and cygwin on Windows. Text editors are clearly not WYSIWYG word processors.

I like vim and I am biased. I’ve answered questions in #vim on Freenode. I’ve customized my installation with a personalized color scheme. I’ve written functions for use in my statusline. I use set ruler number hlsearch laststatus=2 cmdheight=3 and syntax on. I’ve googled and read other people’s vimrc files more than once. Over the years I’ve cobbled together configurations across many different machines. I’ve typed the vim command :help a lot. I’ve installed and used quite a few vimscript plugins and am still pleasantly surprised to find a new one that suits my needs well as my needs change. I’ve experimented with more modern ways to install plugins using git revision control rather than the traditional way of putting downloaded copies of files into a $HOME/.vim directory. I’ve written a little vimscript. I’ve played a couple games inside vim. I’ve tried my best to teach vim to a number of people in person.

The commands used for editing with vi and vim can come up in the most interesting places. The wikipedia article covers the history well. There are quite a few references to our home, Berkeley. A small version of vi is included with Cisco products. Perhaps we might be able to find some UC Berkeley and O’Reilly sponsorship to develop a vi* unconference style celebration in 2016 as vi/ex turns 40 years old!

What’s the best way to get started with vim? vimtutor is a great self-paced tutorial experience. Firing up vim and typing :help will provide you with the online documentation and instructions. Much has been written and said about vi and vim elsewhere. Mike Saunders of Linux Voice produced a great 12 minute video Learn to love Vim. It was featured on the front page of Linux Voice and encouraged me to write this article. The cheat sheet he referenced is fantastic. The related youtube videos also look interesting. Time and patience are really all that’s needed though these things seem to be in shorter supply than they used to be. While there is a learning curve it is worth it. Two friends, Michael and Jim, have both taught vi professionally.

A number of books are available notably from O’Reilly, New Rider, Packt and Pragmatic Bookshelf. At least one has a PDF download available. Purchasing from that page provides donations to Bram Molenar’s favorite charity, the ICCF-Holland which helps needy children in Uganda. Having seen firsthand some needy children in Kenya I encourage and support the works of ICCF-Holland.

This article should in no way be interpreted as a negative statement about other editors of any kind. gedit, nano, elvis, BusyBox’s clone and nvi are other common text editors. I am focusing here on text editing, not other differentiated text needs such as word processing. There are many good editors, most with highly specialized features for particular uses and/or for particular environments. Yet few other editors can be so well customized and are as universally available as vim. Code focused integrated development environments (IDE) also need to edit text and have many helpful features to write code. After scratching the surface I found that many features can be added to vim with some effort.

While emacs is powerful and comes to mind, emacs is not as universally available. While I learned some of the basics of emacs over the years and spent a period of time learning emacs many moons ago, I am not an expert. I realize that the emacs approach of not using editing modes (modes are used by vim) has advantages. Are you an emacs user? We welcome your blog post submissions.

I hope this article sparks informed discussion. Believe it or not, the choice of text editor has been known to elicit long discussions in some circles though this is far less prevalent now. People who work with text editors know that the choice of an editor can dramatically affect efficiency. Informed comments are encouraged.

We meet at Bobby G’s Pizzeria on the second and fourth Sundays of each month from Noon to 3PM in Berkeley near the Downtown Berkeley BART station. Bobby G’s is very close to the corner of University & Shattuck. We hope you join us, join the discussion on our email list and/or join us in #berkeleylug on freenode.net by following the tabs at the top.

LinkChecker

I found a broken link on another website I maintain. I quickly surveyed the available solutions and chose to try the Python based LinkChecker instead of the other perl or ruby based solutions. I wanted something I could use from a command line, run locally and possibly script. WordPress has it’s own plugin for this called Broken Link Checker which I enjoy using on a couple of other websites I maintain.

After installing linkchecker under my local user I found that the invocation is pretty straight forward. Output options are numerous. By default it checks internal site links. I then found the --check-extern option which is what I was looking for to check all the external links. By default ten threads are used at a time. While this option is good I haven’t had time to try out all the other options available.

The first link checker people often hear about is a perl script available via CPAN and hosted as validator.w3.org/checklink. Another perl option is linklint.org. The Python based twill scripting language for web browsing looked intriguing. The Ruby gem link-checker was published a few years ago and caught my attention but I have more experience with Python than Ruby. I am sure readers of this blog post would love to hear about the good and bad experiences of others using these and similar tools to keep the links on their websites from pointing to bad URLs.

We meet at Bobby G’s Pizzeria on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station. Bobby G’s is very close to the corner of University & Shattuck. We hope you join us, join the discussion on our email list and/or join us in #berkeleylug on freenode.net by following the tabs at the top.

Computers as Docker Platforms

Docker (using LXC, Linux cgroups, Linux namespaces and union mounted file systems) is a powerful and efficient alternative to virtual machines. docker.io released their 1.0 version last month.

This is an ingenious implementation of boundary separation as seen implemented in the past on computers as inter-process communication (IPC), OS virtualization (as KVM and Solaris Containers) and
Java servlets on tomcat. As a side note, in the software world Java was heavily promoted with a promise of allowing the writing once and running anywhere of software. Reality has not fulfilled these promises. Recently Java was surpassed by python as the most popular programming language for teaching programming in higher education.

An operating system simply allows software applications to run. Keeping application boundaries clear has been tied to operating systems for a long time. UNIX software and the hardware used to run these computers has changed a lot. Docker may be the answer. The power of boundary separation and abstractions is that you don’t need to understand the other parts. It’s gotten so “easy” for end users that even without a full understanding of how things work many people today in the developed world can use embedded computers in their TVs, thermostats, raspberry pi, phones/tablets/mobile (often using iOS or Android), laptops or desktop computers. Yet when something goes wrong, down the rabbit hole we must go to figure out what’s really going on across the layers of abstractions and boundaries. What do you think?

Due to the 2014 FIFA World Cup final game viewing we may not be able to get as much space at Bobby Gs as we need. We may seek more space at Cafe Au Coquelet down University on the same block, 2000 University Ave.

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our email list.

Fast Lanes

How can you have a fast lane without a slow lane? What do you think?

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our email list.

Net Neutrality, Part II

Happy Memorial Day weekend!

So the FCC’s fast lane Internet proposal was proposed by the chairman and the vote passed. Many people were surprised. With so much public, vocal opposition it is an example of how a broken system makes broken decisions. If this moves forward it will affect all Internet users directly and/or indirectly. The challenge is getting more people to understand what this means and why it matters to them.

What does this mean? No new rules are in effect yet however this proposal will not go away. The FCC is moving forward developing what was passed. In opposition, Net Neutrality advocates are strengthening their determination and efforts. I look forward to seeing comments here about additional developments in this story.

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our email list.

Net Neutrality

One of the most fundamental reasons why the Internet has succeeded is that it is a level playing field. I’m seeing from many sources this is being challenged. Ray Lin on campus describes net neutrality for a class project. Wikipedia has a good article on it. The EFF, ACLU have been active for a long time and others like save the Internet have been active created. An active group in SF posted about InternetYourNeed.com. My friend Christian posted to sf-lug.org providing this link.

Quite a bit started after the Verizon vs. FCC ruling prompting for petitions from moveone.org with almost 16,000 signatures among others.

Here is the current fcc.gov/guides/open-internet.

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our email list.

Wi-Fi 802.11ac

Let’s talk about wireless. The new specification has been passed, making different use of both 2.4 and 5 GHz bands. Some devices clearly are easier than others to modify and change using Linux distributions such as OpenWRT among others. Device manufacturers change hardware (chipsets and other things) without changing version numbers, helping lead to further confusion about what a new router/access point really can do. The number of radios and antennas in each device can make a big difference in performance. Manufacturers also constantly change models and price points. It’s hard to keep up with all the changes to commonly available Wi-Fi brand network adapters (built in or USB) and access points. Software defined radio (making hardware changes less necessary) is still far too expensive for most applications. People most interested in radio often become amateur radio operators by passing tests to get privileges to legally experiment with radio in the US and elsewhere.

How are the Wi-Fi chipsets you own supported by the Linux Kernel? What access points do you use and what would you now recommend to friends? What do you think about the so called Super Wi-Fi proposal by the FCC? How do you feel the SF Digital Inclusion (or other municipal network efforts) are going?

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our email list.

2014 User Experiences

One of the advantages (and sometimes confusing) aspects of Free Software and open source software is the choice of user experiences (UX). Desktop choices include Gnome (and derivatives including Mate, Cinnamon & Unity), KDE, LXDE and XFCE. Google’s Android UX and derivatives are perhaps even more popular now. The fragmentation of end user communities is specifically allowed by the licenses these groups choose for their software and the licenses of the underlying software.

Coming up April 17th Canonical and the community are scheduled to release 14.04 LTS Trusty Tahr. 14.04’s Gnome derived Unity experience is designed to transcend the phone, tablet, desktop and television form factors. 14.04 LTS is also enabled for phones and tablets which is called the Touch UI. You can try the Touch UI by installing 14.04 on at least the Galaxy Nexus, Nexus 4, Nexus 7 and Nexus 10 devices. California 14.04 release parties in San Francisco and Fullerton are developing as mentioned on the BerkeleyLUG email list and many others throughout the world organized by local communities. Please consider yourself invited.

In five years every TV may have an Internet experience built in. The need for a separate device like the newly announced Amazon set top box Fire TV, Linux powered Roku, AppleTV or other device may go away. Not content with just millions of Chromecast dongle sales, last week The Verge broke a story on the heels of the Fire TV announcement that Google plans an Android TV. I hope user freedoms are preserved on these and future devices.

Other recent news also supports the move of the computing industry as it focuses on convergence and UX. Facebook recently purchased (wired, marketplace) Oculus VR. In recent weeks Microsoft announced it will be focusing on UIs that do not require keyboards and mice, they have released Office365 for the iPad and their Build 2014 annual developer conference (mobile, desktop and other platforms) in SF has just concluded. What user experiences and on what form factors do you compute?

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our email list.

Feb 2014 Software

2014-02-gtrendsHere’s what Google Trends (image at right) says are last month’s top search items for software technologies. Are these the ones you use most often?

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our list.

More Battery Life!

Does your laptop or mobile battery last as long as you need it to? Mine do OK but longer is better. Here’s a Tech News Today show from this week that talks about solar power as a future solution as the technologies get better all the time.

We meet on the second and fourth Sundays of each month from noon to three in Berkeley near the Downtown Berkeley BART station near the corner of University & Shattuck. We hope you join us at Bobby G’s Pizzeria and/or join the discussion on our list.