Rubymine VIM mode..Back to the Future.

Marty McFly : Wait a minute, Doc. Are... Are you telling me that you built a time machine... out of a DeLorean?

Dr. Emmett Brown : The way I see it, if you're gonna build a time machine into a car, why not do it with some style?

Handy-Dandy stuff!

Like all developers, I have played and used many IDE's too many to even recall, but I eventually settled on RubyMine. I like their products. I also have owned PHPStorm and I also have WebStorm. See when you know one IDE from JetBrains all the others kind of work the same way.

BUT..the thing is, no matter where you go you always are finding coders that just rant and rave about VIM, so at various times I have checked it out. As far as just editing code and text, I think its great. But all the surrounding features that a more modern IDE gives me..well thats what i gitfitmiss. Rubymine has too many features to mention(plus tons of plugins which support just about every coding language) but some of my favorite things are a database explorer built in and a cool rspec interface.

I recently found out that Rubymine has a VIM plugin! Wow...while it does not incorporate every single feature of the original VIM, it does pretty much support all of the text operations which I just love. Jump that cursor just after the semi-colon and insert..BAM!

So for now, I am getting the best of BOTH worlds. RubyMine and VIM. So its true like in the movies....you can go back to the future.

I have included a link below:

Lets go "Back to the Future"

The origin of open source

"I am mad as hell, and I'm not gonna take it anymore!"

From CSvax:pur-ee:inuxc!ixn5c!ihnp4!houxm!mhuxi!eagle!mit-vax!miteddie!RMS@MIT-OZ
Newsgroups: net.unix-wizards,net.usoft
Organization: MIT AI Lab, Cambridge, MA
From: RMS%MIT-OZ@mit-eddie
Subject: new Unix implementation
Date: Tue, 27-Sep-83 12:35:59 EST

Free Unix!

Starting this Thanksgiving I am going to write a complete Unix-compatible software system called GNU (for Gnu’s Not Unix), and give it away free to everyone who can use it. Contributions of time, money, programs and equipment are greatly needed. To begin with, GNU will be a kernel plus all the utilities needed to write and run C programs: editor, shell, C compiler, linker, assembler, and a few other things. After this we will add a text formatter, a YACC, an Empire game, a spreadsheet, and hundreds of other things. We hope to supply, eventually, everything useful that normally comes with a Unix system, and anything else useful, including on-line and hardcopy documentation.

GNU will be able to run Unix programs, but will not be identical to Unix. We will make all improvements that are convenient, based on our experience with other operating systems. In particular, we plan to have longer filenames, file version numbers, a crashproof file system, filename completion perhaps, terminal-independent display support, and eventually a Lisp-based window system through which several Lisp programs and ordinary Unix programs can share a screen. Both C and Lisp will be available as system programming languages. We will have network software based on MIT’s chaosnet protocol, far superior to UUCP. We may also have something compatible with UUCP.

Who am I?

I am Richard Stallman, inventor of the original much-imitated EMACS editor, now at the Artificial Intelligence Lab at MIT. I have worked extensively on compilers, editors, debuggers, command interpreters, the Incompatible Timesharing System and the Lisp Machine operating system. I pioneered terminal-independent display support in ITS. In addition I have implemented one crashproof file system and two window systems for Lisp machines.

Why I must write GNU

I consider that the golden rule requires that if I like a program I must share it with other people who like it. I cannot in good conscience sign a nondisclosure agreement or a software license agreement. So that I can continue to use computers without violating my principles, I have decided to put together a sufficient body of free software so that I will be able to get along without any software that is not free.

How You Can Contribute

I am asking computer manufacturers for donations of machines and money. I’m asking individuals for donations of programs and work. One computer manufacturer has already offered to provide a machine. But we could use more. One consequence you can expect if you donate machines is that GNU will run on them at an early date. The machine had better be able to operate in a residential area, and not require sophisticated cooling or power. Individual programmers can contribute by writing a compatible duplicate of some Unix utility and giving it to me. For most projects, such part-time distributed work would be very hard to coordinate; the independently-written parts would not work together. But for the particular task of replacing Unix, this problem is absent. Most interface specifications are fixed by Unix compatibility. If each contribution works with the rest of Unix, it will probably work with the rest of GNU.

If I get donations of money, I may be able to hire a few people full or part time. The salary won’t be high, but I’m looking for people for whom knowing they are helping humanity is as important as money. I view this as a way of enabling dedicated people to devote their full energies to working on GNU by sparing them the need to make a living in another way. For more information, contact me.

what the heck is standard input

"it's anything that is non-standard." (I see an ebook there somewhere)

Definitions

A ruby script can get input from a keyboard. You know, when you open a terminal, and call a script with arguments. But also the source could be text redirected from another source. To ruby these are the same thing, in that they are processed the same way.

This source of input is called standard input. It allows programs to communicate with each other simply with just text. We also have the complementary "streams" on the other end, called standard output and standard error.

From the Man-pages (Manly yes...but I like it too!)

Under normal circumstances every UNIX program has three streams opened for it when it starts up, one for input, one for output, and one for printing diagnostic or error messages. These are typically attached to the user's terminal (see tty(4) but might instead refer to files or other devices, depending on what the parent process chose to set up. The input stream is referred to as "standard input"; the output stream is referred to as "standard output"; and the error stream is referred to as "standard error". These terms are abbreviated to form the symbols used to refer to these files, namely stdin, stdout, and stderr.

Pipeline chains

Chains of programs or commands strung together to the output from one becomes input to the first.

Here is an example of listing active processes > that contain the word ruby > and then displaying the first whitespace column, which is the PID.

 $ ps ax | grep ruby | cut -d' ' -f1

cut command

Used to "cut out" sections of a line.

 -d, --delimiter=DELIM   >  use character DELIM instead of a tab for the field delimiter. We use a SPACE here
 -f, --fields=LIST  > select only these fields on each line, here select the first field.

This example uses commands but the same thing can be done with ruby scripts. If the program is set up to use standard input then it can get it's input from different types of sources, not needed to know where. Because its processed the same.

github pages with iPage

"As Strother Martin once said in cool hand luke...What we've got here...is a failure to communicate..."

So u wanna free(relatively) blog

So..you downloaded Jekyll, or Octopress, or some other "hacker" blogging software cause you are a hacker...well...a least a developer. For me well, I was just trying to save some money.

If you had a wordpress or something blog in the past, and you have your own domain name, and when someone enters that domain name, you want your github pages website to display, then read on.

I will skip the part where you went to github, and created a repository named username.github.io, where username is your github username or organization. I mean, that's why you are here right? Github stuff

subdomain

Here is something weird. As an example. www.kenmcfadden...well...the www part is using my domain name as a subdomain. So is blog.kenmcfadden, or thedude.kenmcfadden. All subdomains. If your website has a url something like that, you are on the subdomain path. This post is for the other thing.

apex domain

The simple way to determine this ...well if its not a subdomain then....

I like to think of it as having no prefixes. not blog.kenmcfadden, or www.kenmcfadden. Just kenmcfadden.com That is an apex domain.

Okay here is what you do.

  • In the root of your Jekyll project, create a file called CNAME.
  • Inside that file, put your domain name in capital letters, with no HTTP or WWW. Just the name. For me that was kenmcfadden.com
  • Github says it has to be capital letters, but mine was not and it works. Go figure.Now...do you have a subdomain, or an apex domain?
  • Go to where your domain name is hosted. Mine is at iPage. Go to control panel > domain central > DNS
  • You need to configure an A record. From the dropdown select that.
  • You will make TWO entries. You will EDIT the domain name record(in my case kenmcfadden.com) and the * record.
  • Use the IP address that github is currently recommending.

192.30.252.153
192.30.252.154

You can see these at Github IP addresses

Supposedly it takes 24 hours for this to take affect, so it won't work right away. Go to bed, and when you awake in the morning run over to your computer and type in your domain name.

Ideally...is should work. My intention was to just address the scenario where someone is using specifically ipage.

caveat

DNS A-records require that an IP address be hard-coded into your application’s DNS configuration. This prevents your infrastructure provider from assigning your app a new IP address.

A CNAME record does not require hard-coded IP addresses. If you have a scenario where the IP address changes, you can set up a subdomain and then use a CNAME record. At some point I may do that if i have issues, but for now...My site is up!

notational velocity

"Scotty...how much longer before we reach Notational Velocity?." ..."Jeem...I'm giving her all she's got!

You might be wondering what this entry is about. Over the years, I have used all kinds of tools to keep notes. The yellow Sticky thing that floats around, notepad, textmate, google docs and a google chrome extension, Evernote...I keep changing cause I never seem to be satisfied. Actually now that I think about it, I have used so many "note" keeps that I have lost a lot of notes in the morass over the years. Hopefully that will change!

I just want something that is always around, fast, and easy to use. I was experimenting with an IDE called ZED and there was some mention of interfacing with Notational Velocity National Velocity Website so I checked it out. Turns out its an editor and the reference had to do with the fact that Zed Zed Website sort of borrowed or got its idea for finding files from how NV works.

To make a very long story short. I love NV and I use it daily. I just like the way it works. Simple and fast. Give it a look-see.

NV screenshot