Avatar of Jonas Pammer

I use GitHub as my primary code hosting, collaboration and CI/CD platform, as well as for my portfolio.

The reasons against GitHub:

  • No fine-grained Permissions possible. Write-only for whole repo only. The fuck?. Not only will this potentially end in a disaster, it already ended up causing the necessity for every big multi-maintainer project to have an maybe-even-own-written GitHub App that allows specified users to do a specified set of things by posting comments that are structured as commands.
  • GitHub Packages Size Limit
  • [Addendum 2022/07] GitHub Actions is great in general, but it lacks some features in the long run / when you want to get more advanced. (e.g. early-exiting the job, getting the job or workflow id in a job, job-level if's for matrix'ed jobs). But!: You are not locked-in to use GitHub CI. GitHub integrates and shows the results of other CI systems too!

The reasons for GitHub are rather simple and more pronounced:

  • Everyone, even non-Developers, know how to use GitHub.
  • Everyone has an Account on GitHub.
  • GitHub Actions are great and completely FREE (I repeat: free, unlimited access to great automated virtual machines that can do anything on any action trigger).
  • GitHub Action runners are actual virtual machines (even windows/macos possible) and not just some hacky docker containers, allowing you to really do anything.
  • The API and Documentation is top notch.
READ MORE
21 upvotes·36.4K views

When I work with Java, I use IntelliJ IDEA. When I want super-b Refactoring and Search/Replace Functionality, I use IntelliJ.

When working on anything else, I've chosen to adopt Visual Studio Code - a IDE that implements many features important and interesting to the developer experience and doesn't make me miss many things from Jetbrains while being so lightweight that I install it everywhere, even when I would've just wanted to install Notepad++.

I install it everywhere, and if it's my machine, I sign into my GitHub Account to sync all Extensions and Settings and unlock all GitHub seamlessness-capabilities.

The browser-only capability is awesome and allows for extremely seamless and fast ad-hoc development from anywhere just by signing in to GitHub.

I only really use the GUI/Side-Bar Tools "Project Manager", "GitLens", "Git Graph" and "Git History". But i do have installed many other Developer Experience changing extensions as well. For the interested, you can take a look at my VS Code Extensions I documented over at my GitHub

[Addendum 2022/08] I recently found out about that VSCode also has Live Share Extension, similiar to the one Jetbrains added in one of the newer versions. Very neat and nicely implemented over SSH too. https://docs.microsoft.com/en-us/visualstudio/liveshare/

My Jetbrains History:

IntelliJ is an awesome tool. It does everything for you, without even noticing - i.e. automatic Gradle dependency installation or adding Gradle dependencies through GUI.

I really got to use most Shortcuts and enjoyed the Weekly Tips.

I can't emphasize enough how well it's Quick Fixes and Refactoring work.

It allows you to generate all kinds of boilerplate (e.g. Getter/Setter/Constructor, toString, JavaDoc). It has a ByteCode Previewer. It has an awesome Debugger.

Also: During my 4 years in apprentice as an IT-Technician in which I also worked on some Grails (Spring) Projects it also was nice that IntelliJ IDEA ULTIMATE, which I got for free thanks to an all-time available offer for students, had Grails-aware functionality. The primary functionality I'm talking about is the ability to automatically generate a graphical database diagram for by a click on the Domain Class. Experimenting with this I quickly understood all the Relation Database Paradigms and how to implement them with GORM, or how GORM translates to database through IntelliJ's Database Tab Integration.

READ MORE
18 upvotes·2 comments·62.1K views
Gonçalo Rodrigues
Gonçalo Rodrigues
·
June 24th 2022 at 8:48AM

Have you tried Jetbrains Fleet by any chance? You are able to swap between lightweight and powerful by clicking a button

·
Reply
Jonas Pammer
Jonas Pammer
·
June 25th 2022 at 9:22PM

Thanks for the comment! It got me to research and now being able to imho confidently talk about this new Application, as well as extending this stackshare with hopefully valuable information on the tools in questions.

----

Fleet only seems like an option if you locked yourself full-in on using Jetbrains Space and make use of its full functionality of collaborative editing / reviewing. [Although, the latter of which you can already do with an offical plugin for Jetbrains IDEA, with chat and mic functionality and all even (Of which the sharing process i really liked - you send a link to someone, if they have jetbrains tool its going to install plugin and connect, if not its going to download and install a 'lightweight jetbrains client' and automagically connect).]

It looks like the initially summarizing sentence of mine is Jetbrain's Idea of Fleet too. Fleet is something very special, even though still Jetbrains, and is not a replacement for any of their IDEs. In more elaborate words, even though the Refactoring and Editor seem to be powered by Jetbrains (c) "Code Engine", it's primary thing is to be and look sleek and modern. This results in it not going to have all of Jetbrains's known functionality/buttons and panels.

Assuming something out of the air, it seems like Fleet also is not even going to be free, as per this text on their site: "Fleet will be a commercial product with fair pricing that reflects the value it provides."

For the Remote-machine/Docker ability of Fleet ("Run Fleet in one or several Docker containers with a desired environment for your project") in VSCode, there is [Remote Containers](https://code.visualstudio.com/docs/remote/containers), which even is just an Extension (which I once used and know, its very cool).

For the "Cloud" Ability of Fleet ("Use the power of virtual machines in the cloud to build your app") in VSCode, there is [GitHub CodeSpaces](https://github.com/features/codespaces) (which I do not use) or (non-Microsoft) Gitpod.

[BONUS / completely unrelevant to comparison as very different] A related thing to mention to the last 2 things here is that [VSCode works in the browser](https://vscode.dev/), as it is a Browser Application behind the scenes. Because it's a web page. it's obviously local filesystem unaware and doesn't let you run things or browser-unaware extensions. But it's still a cool thing to mention anyways while I'm at it.

Also, some if not most of Fleet (and, to an extend, Spaces) is still just a WIP and Fleet even is in Closed Beta.

·
Reply
Shared a protip
on
cookiecuttercookiecutter
in

cruft allows you to maintain all the necessary boilerplate for packaging and building projects separate from the code you intentionally write. Fully compatible with existing Cookiecutter templates. Using cruft , you can make sure your code stays in-sync with the template it came from for you.

I recommend the usage of cruft in all of my cookiecutters.

Through the use of all-repos and some little neckbeard script of mine I easily ensured all of my projects (in the linked case, ansible roles) stay up-to-date with little effort.

READ MORE
4 upvotes·22.6K views

Both Debian and Ubuntu Server offer various additions to improve the use-ability of many upstream Linux packages (e.g. especially Apache2). These include wrapper scripts, arguably better default settings, additional environment variables and out-of-the-box (available or pre-installed) tools, and more (e.g. Ubuntu's update-motd.d pam extension for builtin functionality of dynamic MOTDs using scripts). All are maintained to a very high standard by the developers (which can be said for all big linux distributions, of course).

The amount of packages available through apt far outweighs RHEL's yum. packages.debian.org offers a very nice and clear way to browse apt packages, with very well presented information about everything related to each (which releases have this package? short description; dependencies/recommends/suggests; downloads; all other relevant outlinks (changelog, developer info, bug tracker, ...)).

Upgrading Debian from one stable version to another is usually very easy and not painful, which is necessary considering it's relative fast releases.

Thus, my recommendation is to start out with Debian/Ubuntu Server and when you are confident enough with Linux and have moved from hand/tutorials-crafted (eventually messy) servers to precisely-defined provisioned-servers move to a RHEL distribution because you don't need the benefits of Debian anymore and should prefer RedHat's stability and confinedness to less releases and more-upstream-like Linux.

READ MORE
4 upvotes·3.6K views
Chose
drawiodrawio

The diagramming program for everything. Open Source.

Features I love:

  • Files can be saved not only in drawio XML format, but also as .png, .svg and html - all without loosing meta information. Note: I recommend attaching .drawio to the filename to make the actual file type obvious, e.g. Networkdiagram.drawio.png.
  • Available as a Browser Application as well as a offline useable Desktop Application (available through automatic and awesome github releases).
  • Object Anchors
  • Ease-of-Use

The shapes I use for Network Diagrams are:

  • Network / Cloud & Enterprise (for Server)
  • Network / Cisco19 (for Network Components)
  • Network / Veeam (for Backup-things)

It was all really intuitive and head-on start.

I recommend and show it to literally everyone. There is no exception.

READ MORE
4 upvotes·2.8K views

AsciiDoc belongs to the family of lightweight markup languages, the most renowned of which is Markdown. AsciiDoc stands out from this group because it supports all the structural elements necessary for drafting articles, technical manuals, books, presentations and prose.

This includes, for example, admonitions, variables, the include statement, example blocks, footnotes, keyboard macro, equations and formular support (albeid only with asciidoctor and installed plugin iirc), automatic toc and header, description lists, actually usable tables, etc ...

In combination with Antora one can built the most awesome, versioned, and Dont-Repeat-Yourself but-also "Fully-Explain-without-just-Linking" documentation ever.

GitHub has built-in support for it, albeid not for it's include directive, though that can be dealt with by using CI to invoke asciidoctor-reducer or publishing a github page that has been rendered using the asciidoctor/antora renderer.

https://docs.checkmk.com/ uses Asciidoctor. Linus Torvalds once recommended Asciidoctor (1).

READ MORE
JonasPammer/asciidoctor.adoc at master · JonasPammer/JonasPammer · GitHub (github.com)
3 upvotes·2.5K views
Chose
PuttyPutty

I don't really see the use of PuTTY (itself) anymore. Albeit as it is OSS, cross-platform and solid proven software I don't mind having it installed.

For quick/ad-hoc connections I just use the terminal (Windows has an Optional OpenSSH Client too!).

For the tool that allows me to make a directory of hosts/connections with different settings I use the following tools:

  • For Linux I use Remmina, a Remote Desktop Client (RDP, SSH, VNC, ...).

  • For Windows I use SuperPuTTY.

For console connections on Windows I use TeraTerm as it presents me with a generated list of COM Ports that represent valid, working, identified Console Cable - Making me not needing to google how that works over and over again and saving time and typical console cable question headaches.

READ MORE
3 upvotes·218 views