Page 2 of 2 FirstFirst 12
Results 11 to 14 of 14

Thread: I'm starting to feel it...

  1. #11
    Join Date
    Mar 2009
    Beans
    1,946

    Re: I'm starting to feel it...

    @tempest-anastasia,

    It's very difficult to have equipment and then try to figure out a project to use all that stuff. You have mentioned 2 things that seem to be of interest to you so I'll focus on those:

    Retro gaming is a thing, but I don't do it, so I can't help much. Where I live (USA) you legally need to own each ROM that you use. While I think it would be neat to play some of the old games, I don't think it's so neat that I'd want to buy a bunch of ROMs.

    Command line: Here I can help.

    The corporate world has an incredible number of UNIX servers. Most of them are Linux. Almost every Linux server is headless and a large quantity have no GUI software at all. This includes not only traditional servers but networking equipment like firewalls or routers, or almost anything with a relatively large embedded processor.

    What I'm saying is that if you intend to use your Linux knowledge professionally, then it's a really good idea to know the command line.

    So here's my advice for now:
    1. Turn off all the old devices for now.
    2. As you learn the command line, take notice of the types of things you want to do and what would make it easier.
      1. Someone already mentioned aliases.
      2. What doesn't work as an alias you might explore as a shell script.
      3. Then you might be interested in python or some of the other languages available.

    3. You will want a good editor. On the command line there are really two:
      1. vim is a 'modal' editor. It's what I use.
        1. sudo apt install vim-nox gets you the full version of the non-gui editor.
        2. There are GUI versions but having used vim since 1996 or so I can't as yet figure out why I would want that version.

      2. emacs uses control keys similar to apps you may be familiar with.
        1. I don't use that so I can't really help much here.

      3. Both these editors have many extensions available.
      4. Both have a vast following.
      5. Both are comparable to any GUI programming editor in features and capability.
      6. Both allow you to incorporate Linux commands, your scripts or apps, and external plugins to facilitate your editing.
      7. There has been a (usually friendly) war going on for decades about which editor is better.

    4. You will want a terminal multiplexer.
      1. This tool allows you to ssh into a remote system, and then split your ssh session into a number of 'windows' (think of tabs) which can each be further split into panes which are all visible at the same time.
      2. You can break out of the session and disconnect from your shell, meaning logout or timeout.
      3. You can reconnect from the same computer or some other computer, and then reconnect to your session.
      4. All your apps are in the same place, or in the case of jobs running they will have continued to run until they complete.
      5. You can create a configuration file on each server and when you start the multiplexer your favorite tabs will already be created and in the correct directory, possibly having executed some commands.
      6. There are two terminal multiplexers of note:
        1. screen is the older one. If you don't get too carried away then this one is probably fine.
        2. tmux is newer and more able to handle complex configurations.
        3. Neither is more capable

    5. As you learn things, you will discover more things you want to do or learn.
    6. Pick up a book (or ebook) on regular expressions (or regex). It seems like greek at first, but regex simplifies searching and modifying character data. It is pervasive in Linux, UNIX and programming in general. Regex knowledge will make your understanding of Linux and UNIX come easier.
    7. Learn about git. It's a source code control system. It lets you keep the same scripts on all your Linux boxes, and tweak from any of them.


    With respect to the command line:
    Keep in mind that there is NOTHING you might need to do on a Linux server that can't be done on the command line.

    Linux functionality is in libraries. These are compiled files of machine code loaded on your system. The GUI apps use these libraries, and the command line uses the same libraries. Typically the command line version is developed first because it's easier to develop. So unlike DOS commands being a small subset of what you can do in Windows, the only things you can't do on the command line are things that inherently require a GUI of some sort. Like a point-and-click video game, or photo editing. And actually there are tools to modify photos which do not require a GUI.

    Linux owns the server market. If you go to top500.org, you will find that every one of the fastest supercomputers in the world run Linux. Every datacenter, every "cloud" has Linux and it has a lot of it. People who work with these systems do not lack any tools to get the job done. If you perceive a missing feature, then it's likely your knowledge that is incomplete rather than the feature.


    With respect to interactive developer environments:

    The whole IDE thing. It all started with an editor, and then somebody added a tool to it to make something easier to do, and they could do it from within the editor. Then they add another tool, and another and another. After awhile you have something like Eclipse or IntelliJ. They have almost every feature you would want for any purpose, especially if you include plugins.

    That said, in my experience I rarely or never use most of those features. The best IDE is one which has every feature you need but none you don't. These IDEs not only have what I consider to be useless features, but they waste screen space giving me buttons for those features.

    You can go to youtube for demonstrations, there are tons of them. 'vim, tmux, ctags' or 'emacs tmux ctags' is a good place to start. Or use 'screen' instead of 'tmux'. Find out how your editor works. Become an expert in it, get a good set of tutorials and follow it to the end. Use those features every time. Learn how to shell out commands. Learn the commands which help you program in your chosen language. Get plugins that actually help you. Make your own scripts and plugins. You will have a very lean IDE made by you, which does exactly what you want. And it won't need a GUI.


    I didn't intend for this to become a book. So I'll let you go now.

    Good luck and have fun.
    Help stamp out MBR partition tables. Use GPT instead!

  2. #12
    Join Date
    Dec 2018
    Beans
    Hidden!

    Re: I'm starting to feel it...

    Quote Originally Posted by 1clue View Post
    You can go to youtube for demonstrations, there are tons of them. 'vim, tmux, ctags' or 'emacs tmux ctags' is a good place to start. Or use 'screen' instead of 'tmux'. Find out how your editor works. Become an expert in it,
    And getting a serious text editor, like emacs or vim, will make you a very powerful user indeed.

    I do most of my coding in leafpad, the longest program I've written is about 2100 lines. With multiple tabs and a few other options, Geany makes a better IDE than leafpad, I'm sure.

    Neither of those are for the command line, but I thought I'd weigh in on the IDE thing since it was on the table.

    The joke is there's an old war (rivalry) between vi ("vim") and emacs. The truth is people like the tools they like. I have no horse in the vim/emacs race, though I got farther with vim personally. These are not just text editors, they let you manage files and run code. Except leafpad. Leafpad is just a plain old text editor, with nothing fancy. You have choices, you'll figure out what you like.
    Last edited by freemedia2018; 2 Days Ago at 07:08 AM.

  3. #13
    Join Date
    Mar 2009
    Beans
    1,946

    Re: I'm starting to feel it...

    I'm not claiming that learning vim or emacs will make you a power user of some sort, I'm just saying that neither is lacking anything in particular.

    I've been using Linux since about 1995, got serious in 1996. Started using it professionally in 1996. I started learning vim back in 96 too. Around 2000 or so I started using GUI systems on Linux.

    Since then I've looked at almost every IDE that has come available that works on Linux, pay or free. IMO the GUI world tops out with Sublime Text 3 (payware) as a pure editor, and IntelliJ (payware) for an IDE. But in spite of having paid for a Sublime Text license, about half the time I'm using vim because its features are easier for the task at hand. Sublime works on Windows, Mac and Linux, and the licensing is per human. You can install it on any number of computers, even someone else's computer, and put the license in your user's account. Other people can use it too, but if they want to avoid the gentle reminders every now and then they need to buy their own license.

    I "have a horse" in the race, but I don't try to put my favorite as an absolute best. One size does not fit all, and so it goes with high quality text editors in the command line. There are two very good options available, and they lack for nothing of importance if you want to learn to use the terminal.

    Both of these editors have evolved for decades. I know of no other programming text editor that can make that claim, either curses-based or GUI, on any platform. They are not something that programmers use because there is nothing else to use, they are something that programmers use and have tweaked such that there's nothing else they want.
    Help stamp out MBR partition tables. Use GPT instead!

  4. #14
    Join Date
    Dec 2018
    Beans
    Hidden!

    Re: I'm starting to feel it...

    I'm waiting for a Python-based Vim-like thing.

    I'm sure emacs is a better editor than vim, and that's not a troll (but this is...) but it doesn't matter as I only have 10 fingers, not the 16 required for emacs use. (I respect emacs, I just don't like its shortcuts.)

Page 2 of 2 FirstFirst 12

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •