Actually

It's Randolph Connor Berry

Testing RSS

Testing RSS feed from connorberry.com

Language Choices

I think that if things were up to me I’d have one list of languages that I concentrate on for continuous study and application development, and a list that I bounce around in for fun and study and making toys and stuff.

The core languages I’d concentrate on for continous study and industrial application development:

* C++
* Perl
* Common Lisp
* OCaml

The languages for prototypes, utilities, fun, exploration and experimentation:

* C
* Lua
* JavaScript
* Scheme
* Tcl
* Smalltalk
* Forth
* Prolog
* Erlang
* SML
* Awk
* Assembly

I think the core languages are strong enough that any of them could be used for almost any task,
but there’s enough flexibility in the list to pick a good match for any particular use.

I’d use the larger list for single purpose apps and experimentation. Each of them is small enough
that I think I could get into a partincular language for a month or so and either learn something useful
or develop something small but real using it.

Other Things to Learn

To be an effective programmer, here are a few other things it really would help to have a grounding in as far as general use / concepts.

  • HTML / CSS
  • SQL
  • Assembly Language (I think any one would give you the concepts that are useful)
  • Command Line (probably preferably Unix based)

An argument can be made that these are / aren’t languages in the same sense of programming language concepts covered by the earlier list of languages. However, ones life as a programmer will be subtly constrained to the extent that one is not familiar with these technology areas.

 

Languages for Learning

Here is a list of languages that seem to me useful to learn in the sense that between them they cover all the major concepts that exist in other languages, yet they are all individually small enough that you can easily learn the particular language and keep it in your head.

I think that one should be able to become somewhat proficient in any of these languages with about a month of reasonably serious study. Experimentally, I seem to be able to keep about 3 of these going as far as casual study at the same time.

I believe that most interesting language concepts are expressed in some way by at least two languages in this list. So each major concept should have at least two potential implementation to compare.

  • C
  • Scheme
  • Forth
  • Prolog
  • Erlang
  • SML
  • Lua
  • Tcl
  • Ruby
  • Awk
  • JavaScript
  • Go

I think that from this base one could pick up almost any industry language with a decent understanding of the concepts. So given about a year of exploratory study of these languages (perhaps 1 per month?), one should be well equipped to handle learning any of the more complex languages currently used.

The surprising use case for Vim

I’ve spent a lot of time trying out different text editors. Among the reasons that I continue to come back to Vim, there is one that is surprisingly powerful, and somewhat unexpected.

The reason: I can print from Vim on every computer I’ve installed it on.

Most other cross-platform editors fail as far as printing documents on some  OS or another (often Windows). Vim is the only one that I’ve seen reliably print everywhere I’ve tried it. As a bonus, it can print just as well from the terminal as from the gui.

Coloring Vim after 80 Characters or more

From this StackOverflow question,

To enable columns to be colored differently in Vim for certain columns or ranges:

for everything after column 80 to be colored:

let &colorcolumn=join(range(81,999),",")

for column 80 to be highlighted, and everything after 110:

let &colorcolumn="80,".join(range(111,999),",")

Unsticking SSH

I often move from place to place with my laptop.

Sometimes I forget that I’m still logged into a remote site before changing wifi networks.
When that happens my ssh session will get stuck. If I do it from an xterm, I can just close it,
but if I’m using the real console, there’s not a way to restart.

Here is the trick that seems to work.

"Enter"~.

That is, hit Enter/Return, then type tilda, then period.

That’s what works for me to exit the hung ssh connection.

Follow

Get every new post delivered to your Inbox.