*DHH the INVENTER or rails..who also happens to drive race-cars…damn his eye.**
Lets go “Is Rails still relevant”
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”
Organization: MIT AI Lab, Cambridge, MA
Subject: new Unix implementation
Date: Tue, 27-Sep-83 12:35:59 EST
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.
I am [Richard Stallman] (https://stallman.org/), 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.
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.
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.
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.
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.