What does your (private) computing setup look like?

No, but it hardly ever changes, and when it does, my dynamic dns client updates the dns so I can always reach it via name.

1 Like

I develop code on a Macbook Air that runs Debian Linux, and I use it on a 32 core server.

Re the OP’s question: o the :penguin: crowd: What distro are you using? How do you stop to tinker endlessly with your system and start to get actual work done (asking for a friend)?

Install Debian (testing), install Julia from the binaries, and get to work. Run apt-get update; apt-get dist-upgrade every day in the morning. That has worked for me for about 25 years now, with a few brief distro-hops. Most recently, I used Manjaro for a couple of months, as Debian wasn’t updating KDE, but once the recent KDE got into Debian, I went back. I’m very happy with the setup, I can develop parallel code using either threads or MPI on the laptop, and then run it on the server.

Warning: if you dist-upgrade blindly, you can experience problems once in a while, about every 3 years in my experience. This is usually due to some desktop environment having a broken update. So, it’s good to have a fallback desktop environment installed.

Yeah, that’s more like it!

Using the PPA version of Mosh and these magic incantations did the trick :+1:

EDIT: For the record, this is Blink Shell on an iPad.

1 Like

I use Ubuntu and I tinker relatively little with it. Only when something needs to be fixed. Which is super-rare these days.

My personal setup for the last few years has been the following:

  1. I usually get a relatively cheapo notebook when the previous one does, mostly from Asus. You can get a pretty beefy CPU (for a laptop), decent amount of RAM and battery life, and a reasonable bunch of ports if you don’t insist on it being an “ultrabook” (which is usually packed with enough copper for heatsinks to make the whole thing heavier than “larger” alternatives). This runs the latest Ubuntu, and spends 90% of its time on my desk, plugged into a monitor and a USB hub for peripherals. For the rest, it is quite portable. I got this particular machine with 16GB RAM and a 1TB SSD about a year ago for about €750.

  2. I have a home server for files, backups, and mid-scale computations. Runs the latest LTS Ubuntu Server (but this should not matter much), with Nextcloud, a local Gitlab, mail server, etc. I recently upgraded it to a Ryzen 3600 with 64GB ECC RAM, and switched to mirrored ZFS arrays (SSDs, HDDs). I had UPS for ages, and the case has room for a lot of disks. Nevertheless, idling it eats about 25-35W which I find pretty neat. I polish up my computationally heavier work on my laptop with small mock data, and use it for stuff that runs overnight. Having your own CI setup with Gitlab is quite easy to do and gives super-fast turnaround times. The whole machine has about €900 worth of parts in it, but a lot of them are from years ago so it is hard to tell.

  3. I have access to HPC clusters and similar through my own employer and coauthors, but these are rarely worth the hassle for anything running less than 3 days. If I do use them and have the option to use containers, I again polish up stuff on the server above and put it in a container before sending it to clusters.

Personally, my philosophy is not to invest too much in a single piece of equipment, and keep things redundant and backed up. If the laptop dies, I should be able to get a screwdriver, extract the SSD, and put it in a new one relatively quickly. If the HDDs fail in the server, I usually get ample warning via SMART, and then just resilver.

4 Likes

Blink has literally changed the way I think about computing environments and how I want to develop code. It’s forced me to (re)learn vi, but the flexibility it’s provided in return has been amazing. Late last year, I was getting ready for a trip from SFO to Sydney. I was getting some code ready for a PR, so I fired up Blink, started the code, shut down my ipad, got to the airport, fired up Blink, got back exactly where I left off, shut down to board the plane, fired up Blink again onboard, coded at 40k feet for several hours, shut down to sleep and disembark, and then fired it back up at the hotel in Sydney
 every time, I was right back where I left off, thanks to mosh and tmux.

Plus, with my external 20mAh battery, I get 28+ hours of life out of the ipad between charges.

1 Like

Also, @helgee, if you like THAT, you should consider a term type with italics support :slight_smile: (and a font with glyph support - check the banner):

1 Like

Do you connect to an external display when you are at your desk? Unfortunately my first-gen iPad Pro only puts out 1080p via the HDMI adaptor but the new cursor support in iOS 13 is quite nice (revolutionary feature :wink:).

Nope. I use the iPad the way God intended. (Well, with the magic keyboard, but He will forgive that sin.)

1 Like

To answer the main question on the work setup, besides the OS question:

  • I use both a workstation and a laptop. Both have a similar graphical user interface (FreeBSD with XFCE).

  • The workstation allows me to run code remotely while I do other stuff, development, on the laptop. For that I can simply ssh into the workstation from any X-windows capable machine (the client), startup x11vnc on the workstation and from the client machine fire-up a vncviewer (I use tightvnc) to work remotely on the workstation’s graphical interface.

  • I resorted to mainly using Julia scripts, and make sure I can run them through Weave to have an easily readable/understandable script. Simple development tryouts I do with Jupiterlab.

  • Editing is predominantly in (neo-)vim

  • I did, long time ago tried and re-tried (over the course of a year) working with Atom+Juno. However at that time Atom was really slow, and Juno updates very error prone. It drove me away. It’s still on my ToDo list to evaluate the present state of the Atom+Juno, and certainly the more recent VSCode environments.

2 Likes

I guess my setup is a bit unusual.

My desktop hardware is a 2009 iMac, which I haven’t fixed because it hasn’t broken. I have a cluster account; when a Julia process asks for 6GB of memory and makes the Mac grind, I stop it and run it there.

I don’t expect that Mac could run any recent IDE. For many years, I’ve used Acme, the editor from Plan 9. A couple of its features work well with Julia and scientific computing.

It takes unicode seriously: I can touch type |ψ₁âŒȘ from muscle memory.

It’s designed to support any language by leveraging command line tools, which is great with a novel language like Julia. You can add a “run julia” button by typing “win julia --project -L $%” in the title bar and highlighting it. Adding a “copy output.jld2 from the cluster back to my desktop” button is just as easy. To jump to a function definition, you highlight the function name, do a mouse cord where you’ve previously typed “grep”, then a single click on the grep output opens the right file at the right line.

I really like some of design philosophy. Acme is friendly to users who know what they’re doing. The use of raster graphics is subtle, so that you notice things out of the corner of your eye without being distracted from the text.

The only annoying thing is that Plan 9 was a world of dumb text windows and pervasive raster graphics, where things like progress bars, bold text, and command history were done through the window system. Julia and its packages don’t always respect “TERM=dumb”, and keep trying to do those things with escape sequences. Acme lets you delete all the line noise from your terminal window, but I intend to file some PRs when I get sick of doing that.

5 Likes

I have an Mac Mini i7 (late 2012) with Mojave as my main private computer, and my work computer is a relatively modern Win10 Lenovo i5 (with SSD). Most of my work is not coding, and if coding, then LabVIEW, but there is also some modelling, which I used to do in Python and now switching to Julia. I also have an a 3 years old i3 Notebook with Ubuntu. I have Atom/Julia installed on all 3 computers.

Due to the current situation I have been working from home for the last 6 weeks (curently being nominally on vacation). Mac Mini and Win Lenovo laptop are both connected to a large monitor and have each their own mouse and keyboard. Lenovo ist somewhat snappier due to SSD, so I slightly prefer it for coding in Julia. Ubuntu notebook is mostly unused, but if necessary I connect via TeamViewer. I must note that though 2 of the 3 computers are laptops, none of them are in fact being used as such.

I used to be happy with Macs and not exactly happy with Windows over more than 20 years. Now, I am not sure which would be my next private computer, and wouldn’t exclude a WindowsPro/Ubuntu dual boot system. As I used to support friends and relatives, I try to get them using Ubuntu - exactly because usually it needs little support after the initial configuration.

Now a question to Ubuntu users: What would be the best option for unattended GUI remote access?

I have two possible use cases: My daughter has a pretty powerful Ubuntu desktop, and it would be nice if I could steal some computation power from her while she is just browsing over the internet from her account. Another one: Should we buy a computer for modelling at work, how to remotely connect (TeamViewer is not an option in this case)?

Various VNC-based solution work smoothly on Ubuntu. I think TeamViewer is also available (though I never used it). On X11, ssh forwarding is also quite simple and gives you nice desktop integration (if the app is conforming; some closed source data analysis programs have glitches).

Tamas, thank you.
What I would like to have is: Ubuntu as multiuser server with GUI remote access. Thus TeamViewer (which I actually use as I mentioned) is not suitable as it mirrors the screen. I have tried VNC, but just got a configuration where I must first log in locally, then the local screen gets (if I remember it correctly) blocked. There is also an RDP option, but I coulndn’t get it to work.

But X11 looks like a very interesting possibiliy. Anybody used Atom (including plotting) from under X11 ?

With X11, the screen is your screen, called the “server”. It will be displaying some program, called the
“client”. Running on the actual server (the terminology actually makes sense from its point of view). Everything should just work with X11 forwarding. High-bandwidth apps like games or watching movies can be tricky, but an editor should work just fine.

Basically you are looking for ssh -X, search for it to find tutorials.

I use Ubuntu and I tinker relatively little with it. Only when something needs to be fixed. Which is super-rare these days.

I wanted to switch to Ubuntu so I actually installed 20.04 on my PC last weekend but it didn’t last more than 24 hours. On the second day, I used my PC in the morning and all was fine but when I came back to it in the afternoon I couldn’t get past the lock screen. I was putting in the correct password but it would simply stay at the lock screen without providing any sort of error message. When I intentionally input the wrong password I got an error. A quick Google search revealed others have had the same problem on older versions of Ubuntu but rather than troubleshooting it I somewhat reluctantly reloaded Windows 10.

I really like Ubuntu but I really need something that “just works” and doesn’t require much tinkering so it’s unfortunate that I had this bad experience (which seems to be the exception rather than the rule with modern Ubuntu distros).

1 Like

Thank you, will give it a try some day

All software has bugs and glitches, especially just after a release. The key question is whether you can work around them (in Linux, you usually can) and how soon they are fixed (for important UI bugs, most major distros have a good track record).

I would not base my choice a Linux distro on a single bug (unless they did something really idiotic, like not applying a fix to a critical security issue).

Generally, package management systems and release schedules are the key difference between various Linux distributions. Since I like apt and a new release every 6 months (and LTS on servers), Ubuntu works for me (and Debian, or one of the other derivatives, would be fine too). For chronic tinkerers there is Arch :wink:

1 Like

FWIW I had some issues with 20.04 at first as well, but a re-install sorted it. Alternatively I’ve been running Manjaro recently (which I can’t do on my work machine as I would have to disable secure boot) and found it much more pleasant with zero tinkering than Ubuntu.

2 Likes

I agree with that. It is my experience, though, that Ubuntu can be quite flaky. I have a lab with five or six PCs. Since I have to maintain them myself, I wanted a solid, stable distro. I have tried several versions of Ubuntu and there’s always something that fails to work, including not being able to go past the login screen.

I can usually work my way around it (I’ve been using Linux for 20 years), but it doesn’t leave me with a warm, fuzzy feeling that everything is working as it should.

I am curious, what distro do you actually use?

(Incidentally, I don’t want to convince anyone here to use Debian/Ubuntu/derivatives. I am probably using it because when I started using Linux in 1999 it had the nicest package manager, and it involves the minimum amount of hassle for me because I know my way around it).