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.
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 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
EDIT: For the record, this is Blink Shell on an iPad.
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:
-
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.
-
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.
-
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.
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.
Also, @helgee, if you like THAT, you should consider a term type with italics support (and a font with glyph support - check the banner):
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 ).
Nope. I use the iPad the way God intended. (Well, with the magic keyboard, but He will forgive that sin.)
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), startupx11vnc
on the workstation and from the client machine fire-up avncviewer
(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.
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.
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).
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
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.
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).