From Python to Ruby: Taking a Step Backward - <AUTHOR> https://gist.github.com/4242213

<comment><USER3> I have the same complaint regarding gems. They've always seemed more brittle than Python modules.

I have an operations background so I'm used to supporting these apps rather than writing them but I've had a lot more trouble in the package management department with Ruby than Python.

My assumption is that devs in Python try to stick to the Pythonic way of doing things across modules, which helps maintain interoperability. Ruby feels like a "more than one way" type of language more closely related to Perl.

<comment><USER4> > Ruby feels like a "more than one way" type of language more closely related > to Perl.

Gem issues aside, which Perl doesn't tend to have because CPAN is so rock solid, that was exactly the reason I didn't continue with Ruby when I checked it out, somewhat in depth, a few years ago: Ruby is Perl with OO done right, which is nice, but if you use Perl professionally, Ruby will not provide you with an alternative way of thinking the way Python does.

</comment></comment><comment><USER5> > If I want to make a complex application run, chances are I'll need five gems > to do it... and versioning is extremely important. I was following an > application template that clearly spelled out all the gems and versions I > would need to build it, but hit my first snarl when one gem wasn't quite > prepared for Ubuntu 12.04...

Five gems? I haven't seen very many production Rails applications that can do with just five gems. More gems is mostly a good thing - each does just one thing, and does it well. It is like having more smaller methods instead of a few large methods.

> Are these gem heartburns a common problem in Ruby/Rails or is this mostly > due to my ineptitude with the language?

Yes, gem heartburns can happen, but they are not very frequent. I'm sure the author will find that Bundler makes versioning an almost solved problem as he understands the language and ecosystem better. Good luck!

<comment><AUTHOR> I think the "understands the language and ecosystem better" is critical, but my expectation is that I need to learn a subset of key gems better more than anything else.

Every hardcore Ruby-ist that I've known has owned a Mac as their primary dev machine. I'm sure that there are plenty of Linux devs out there, but my experience has been that it's heavily Mac-driven. However, by sticking with Linux as my development platform, I'm probably going to learn the guts of gems because I have to get under the hood to make them work on Linux.

Maybe I'll continue to have gem conflicts, but that's okay - I'll know how to hack around them.

<comment><USER6> You shouldn't hit any issues with gems and linux -- most production Ruby systems use linux.

</comment></comment></comment><comment><USER7> On the flip side, just googling around for how to get python modules (eggs?) installed was a maddening experience. About 6 different ways to do it, and the documentation was a bit unclear on all of them.

I just install Ruby from rvm (or rbenv), git clone an app and type 'bundle install' and then its all working.

<comment><USER8> This is simply an effect of you having full knowledge of Ruby development management, but not python's. In fact, they are quite similar to eachother.

A pythonist would just say:

"I just install a python environment from virtualenv, git clone an app and type 'pip install -r requirements.txt' and then its all working."

virtualenv ~= rbenv, and pip ~= bundler.

Either set of the two make it easy to install appropriate packages for separate projects.

Now _maybe_ the googleability of this knowledge isn't as great as it could be, but ask any good pythonista and they'll set you on the right track.

<comment><USER7> Thanks! The issue right now really is the Googlability.

I just searched for "Installing python modules" and of the top 5-6 hits (listed below) none of them mentioned the advice you just gave. The Python 2.7 docs don't mention it at all under their installing modules page. Everything's about RPM and Distutils.

<http://docs.python.org/2/install/index.html>

<http://docs.python.org/release/2.2p1/inst/inst.html>

[http://stackoverflow.com/questions/739993/get-a-list-of- inst...](http://stackoverflow.com/questions/739993/get-a-list-of-installed- python-modules)

<https://my.bluehost.com/cgi/help/530>

[http://stackoverflow.com/questions/9714635/how-to-install- py...](http://stackoverflow.com/questions/9714635/how-to-install-python- module-without-setup-py)

<http://discuss.joyent.com/viewtopic.php?id=25044>

On the flip side, 'installing ruby gems' does tell you about the gem application, but doesn't mention bundler in the top 5 results.

</comment></comment></comment><comment><USER9> You claim to have worked with Python for some time, yet you don't seem to recognize the parallel between installing several gems and installing several packages. Sometimes you come across a package which doesn't work with some specific OS, that's not the language but the package.

<comment><USER10> You have misread the essay. The author wrote:

Ruby makes heavy use of gems, which appear to be like more complex Python libraries. I say "more complex" because they appear to bolt onto each other far more heavily than Python libraries. If I want to make a complex application run, chances are I'll need five gems to do it... and versioning is extremely important.

The point is that the interconnections between Ruby gems appears to be much stronger than between Python libraries, and I interpret the above to mean that version mismatches occur noticeably more frequently in Ruby than in Python.

<comment><USER9> Third-party Python packages depend on each other all the time, and (once again) breakage is a problem with the packages as they are produced, not with the language itself... on Python as on Ruby

<comment><USER10> Everyone is in complete agreement with this statement. It's also not the point. The author was observing/positing a _greater degree_ of version inter- dependency in Ruby gems, not that Ruby gems are inter-dependent and Python packages aren't.

Nor is the discussion regarding the languages only. It is about the additional set of tools that one uses in order to build a web application in those respective language. Consider the phrases "and its associated frameworks" and "similarities between Rails and Django given the structural similarities between Ruby and Python" as clues that this is not about the languages per se. Or from the previously written essay, "the construction of a Ruby on Rails app ... that makes use of Devise for user authentication, RSpec for unit testing and Cucumber for behavior testing."

The author therefore quite clearly "recognize[s] the parallel between installing several gems and installing several packages" and is instead focusing on a specific aspect of that parallelism; inter-depenency.

</comment></comment></comment></comment><comment><USER11> Seems more like an attempt to get help, rather than a serious post - <USER2> I agree that ruby gems are not as easy to handle as python packages.

<comment><AUTHOR> It is an attempt to get help, but not in the sense that you're thinking.

Writing helps me solidify what I'm learning as I go, because I have to formalize and explain what I'm experiencing. When I wrote my first gist-post, I was simply trying to capture my own thoughts so I could move on to the next learning experience.

However, I discovered a side benefit: Ruby-ists cannot resist commenting on Ruby posts. The comments, even if critical of me or my approach, have been HUGE in helping me understand what I'm experiencing at a different level. That alone is enough for me to want to post more.

<comment><USER12> I don't think it's specific to Ruby-ists. Hackers in general cannot resist commenting when you criticize something that they've devoted time and energy to, and found to be cool. I think this is a good thing.

<comment><AUTHOR> Actually, I've tried to stir the comment pot on Python posts and have not received near the same feedback. Now, that could easily just be indicative of the languages of choice among Hacker News commenters.

</comment></comment></comment></comment><comment><USER13> Most rails apps are deployed on linux. I doubt there are any popular gems that depend on OS X. The problem might be with gems' dependencies, but that's a problem with linux, not ruby.

</comment><comment><USER14> "How can I show you Zen unless you first empty your cup."

If you want to feel better about your python roots and ruby is still not there yet here is the link

<http://hammerprinciple.com/therighttool/items/python/ruby>

I like ruby and ruby on rails. is it perfect? no, it is evolving constantly .

Anybody can build and release a gem, if people love it it gets adopted more and more, rubygems, rack, bundler, rvm, all came from the community.

So the gem which caused all trouble for you, somebody wrote for solving his itch, released it thinking somebody may use it as well, will it be used by everybody maybe he did not care about, so wrote just enough code to get his thing done, if another ruby programmer finds it interesting uses it, if he finds bugs posts tickets or better fork on github submit a pull request.

Thats the ruby community I know of.

</comment><comment><USER15> I love both Django and Rails. I like the language of Python more than Ruby, but I like the Rails framework more than Django.

</comment><comment><USER16> > Ruby has no Benevolent Dictator for Life like Guido van Rossum ...

Matz? Or is his role just more informal compared to Guido?

<comment><USER17> I actually remarked on this on a thread this week: <http://news.ycombinator.com/item?id=4888768>

I said it was funny that Matz was the only modern language creator not listed in the BDFL Wikipedia entry...but someone went in and changed that shortly after...

Matz is involved with design decisions but is maybe less demanding, given the number of implementations that compete with MRI?

<comment><USER18> Interesting. Given a community, how does the naming of a BDFL come about?

If the original author, say Mr. Hansson, is not interested in taking this task upon himself, can the community elect another individual...especially if some aspect of order needs to be brought about?

</comment></comment></comment><comment><USER19> I would like to know why people compare Python and Ruby by default. There are far more differences than similarities.

<comment><AUTHOR> True, but they aren't readily apparent to someone who isn't digging through the weeds of both languages.

I looked at 'Hello world!' and FizzBuzz written in both Python and Ruby, and thought that the implementations looked fairly comparable. I haven't seen enough to convince me that Ruby is vastly different - not to say that it won't happen, but I haven't experienced it yet. I think that's why the gut reaction is to think of Ruby and Python as parallel languages.

</comment></comment><comment><USER20> having worked with ruby & rails both for about 7 years, i've run into my fair share of gem hairballs.

in general, i've had _more_ problems on osx than on linux, mostly due to various ARCH flags required by c extensions.

that being said, the "system rubies" on every linux distro i've used are generally infinitely horrible, and this is likely the case for the poster. system packaged gems are also insanely gross as well.

one of ruby's saving graces is that at least it's not used by the base system for initialization, which has bit me more than once installing a python that conflicted with the system python (though that was many years ago, things may have improved).

rvm has its own issues (and seems to be getting more complex with every rev), but in general, makes for clean living. bundler is nice too.

<comment><AUTHOR> I had not really thought about why Python development generally expected a virtualenv until now. If you haven't been in the Python world at all, virtualenv essentially sets up a miniature development environment within your working folder. System Python might be version 2.7.3, but inside my virtual environment I can run Python 3.0. It's a nice little hack around the problem of multiple Python versions... doesn't solve the root cause, but at least you can stitch it up with one step.

</comment></comment><comment><USER21> > I thought that there would be a fair amount of similarities between Rails > and Django given the structural similarities between Ruby and Python. I > could not have been more wrong.

Duh? This is just a silly rant that isn't about anything in particular.

</comment><comment><USER22> Python package management comes down to pip install.

The packages with C bindings I always run into are Postgres and MySQL libraries. On Ubuntu this is easy. On OS X it is a bit of a pain.

That's really about the extent of the pain.

<comment><USER23> Ruby package management comes down to bundle install.

The packages with C bindings I always run into are Oracle and MySQL libraries. On OS X this is easy. On Ubuntu it is a bit of a pain.

That's really about the extent of the pain.

</comment></comment><comment><USER24> no error message ....

how to help you ???

doctor doctor my body is hurting! doctor:"where?" i just told you MY BODY doctor:"-_-"</comment>


GitHub Awesome-Starless Repositories - <AUTHOR> https://github.com/xiaoluoboding/awesome-starless <comment><AUTHOR> A curated list of awesome repositories which stargazers less but has a huge used by.

<comment><USER2> Hi, this is a cool list!

Your caption sounds a bit off in English. Perhaps try "A curated list of awesome repositories with few stargazers but many users".

It's curated, but did you search for repositories using GitHub's API? Or are they ones you are already familiar with?

<comment><AUTHOR> Thank you for your advice. I put this list together. There are actually some libraries I haven't used, and I've considered using the GitHub API for searching. But you know, GitHub has a huge user base and repositories, and I haven't tried that yet.</comment></comment></comment>


Timely – The Time Tracking App To End Time Tracking - <AUTHOR> http://www.timelyapp.com/ <comment><USER2> Seems like a nice competitor for [https://www.toggl.com/](https://www.toggl.com/) which I use quite extensively. I love the calendar view, but the lack of an Android app will not make me change.</comment>


Linux Desktop Setup - def- https://hookrace.net/blog/linux-desktop-setup/ <comment><AUTHOR> Everyone here scoring serious brownie points with their advanced setups. And here I am, having used Linux for my personal setup for 15 years, using pre- installed Ubuntu on a practically default GNOME desktop. It's wonderful that I can do that and be satisfied with that, without significantly hampering the possibility of advanced setups like the ones here.

Despite all the systemd's, PulseAudio's and whatnot's, the customisability is still far greater than it is on OS X and Windows, and we can sometimes fail to appreciate that.

<comment><USER2> Absolutely second that. I also had my nerd times when I dedicated every free minute to Gentoo compiling, or to configure my screenrc, Xorg.conf, make menuconfig or whatever was in fashion. But in the end, it's an OS, a GUI, it's the basis for getting real work done. I used xfce, GNOME, KDE, it all gets the job done. But somehow I can no more get enthusiastic about spending hours for configuring a tiling WM like Xmonad. I just cannot seem the benefit behind the steep learning curve. And I use my touchpad and my trackpoint. Sorry for that...

<comment><USER3> This is why most of people love i3 as tiling wm. Just put it in top of gnome/xfce/whatever, run the first installation wizard and you are done.

<comment><USER4> On Gnome I can use "Super key" \+ left key if I need multiple aligned windows on my screen. Can you still convince me to try i3 :) ?

<comment><USER5> You can change window focus from the keyboard, have more than two equally- sized windows, split in both directions, control the wm via i3-msg commands, autostart programs easily.

<comment><USER6> I've been getting into i3, but I haven't made any use of i3-msg yet. Are there any good tutorials to get started?

<comment><USER7> Check out Luke Smith. He has a few good tutorials on i3. He's at lukesmith.xyz

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> I'm always kind of amazed at this kind of desktop setups, and I guess they're not suitable for lots of people for the simple reason that most users have a "consumer" relationship with computers and not a "producer" one.

My biggest question here for people with this kind of text setup would be: don't you surf the web? Do you use then lynx or another text web browser? What about services and platforms that are designed from scratch with images and video as a prominent part of that UI? (Twitter, Facebook, Amazon store for example)?

I guess you simply switch to a visual browser and some visual tool to play video (vlc, mplayer), but I'm curious and I wonder if that text/keyboard mode can be satisfying or convincing for users that are used on the traditional visual UI with windows, icons and the mouse paradigm.

I see the advantages here (OP mentions some of them), but I wonder if the trade offs for the normal user are to big to work in this kind of setup. Who would you recommend this to?

<comment><USER9> It's not all-or-nothing. Just because you use a tiling window manager and like to operate it with the keyboard doesn't mean you can't use your mouse any more.

I used to use i3, and I used Firefox for browsing.

I used the keyboard to layout the windows where it was more convenient, but I clicked on buttons with a mouse when that was more convenient.

I now use the standard Ubuntu setup, not for any particular reason, just because it's the default. I often miss being able to conveniently layout terminal windows with just a few keystrokes. Trying to keep terminal windows neatly tiled with a non-tiling window manager is so annoying that I don't even bother.

<comment><USER4> > I often miss being able to conveniently layout terminal windows

You should be able to do that using the "Super key" \+ e.g. left or right

<comment><USER9> Left and right does nothing, up and down just changes it from maximised to non-maximised.

</comment></comment></comment></comment><comment><USER10> I'm a veteran of Linux for 23 years, and been Windows free for 15 years or so. I love Linux. I love my lightweight i3 setup. Neovim, neomutt, weechat, ncmpcpp...

<comment><USER11> > I love my lightweight i3 setup

It's been so many years and I often take for granted what's before my eyes -- i3 is solidly in the "pry it from my cold dead hands" category.

<comment><USER12> Until you switch to sway, which is basically i3, but for Wayland. Good bye X11!

<comment><USER13> What's the appeal behind Wayland? I've been using X for a while now (linux n00b) and I really enjoy having everything like this, there even are a couple apps I use specifically for X11.

<comment><USER14> It's not perfect, but personally I appreciate the better security model of Wayland. Although it can be annoying if you have to do screensharing/recording. On my older laptop, it also feels more responsive.

<comment><USER15> I'm on Wayland via Fedora, and we use Zoom for company video conferencing. About 2 months ago they released a new version that started supporting screen sharing on Wayland. Works perfectly.

Edited for grammar and to add this:

My point being is that it's slowly but surely getting better and better.

<comment><USER16> Which version are you using right now? I have the latest one and it does not allow me to share anything else than a white canvas. Do you launch zoom somehow differently? For me it behaves like a regular XWayland app

<comment><USER15> zoom-2.7.162522.0121-1.x86_64 which seems to be their latest.

With the previous version I had the same thing, only allowed me to share white canvas.

Here's the process hierarchy:

      \_ gdm-session-worker [pam/gdm-password]
          \_ /usr/libexec/gdm-wayland-session gnome-session
              \_ /usr/libexec/gnome-session-binary
                  \_ /usr/bin/gnome-shell
                      \_ /usr/bin/zoom
                          \_ sh -c export SSB_HOME=/home/me/.zoom; export QSG_INFO=1; export LD_LIBRARY_PATH=/opt/zoom; /opt/zoom/zoom ""
                              \_ /opt/zoom/zoom

Besides installing the new RPM, I haven't done anything differently.

<comment><USER16> Sadly I'm not able to test this since I'm not running Fedora and GNOME. I'm using sway. Interestingly enough, Zoom change log does not seem to mention anything related to Wayland support: [https://support.zoom.us/hc/en- us/articles/205759689-New-Upda...](https://support.zoom.us/hc/en- us/articles/205759689-New-Updates-for-Linux). Thank you for your comment, will try this in GNOME some time.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER17> Every time I have to use the slow windows computers at the college I teach at I wish they would put a lightweight linux on them. I wouldn't go full command line but all I'm doing is a browser and word processing. A chromeos-like experience would be fine. Of course what really kills my work computer is the anti-virus. I f I could just disable that then the computer would be a lot more usable.

<comment><USER18> Can you just boot off a live USB? I used to do that on lab computers at my university.

<comment><USER17> I was doing that for a couple months but the tech guy detected it and told me not to do it...

<comment><USER18> Your university has a more paranoid or more competent IT department than mine did.

</comment></comment></comment></comment><comment><USER19> The author mentions the loss of vim-like web browser controls when the Pentadactyl extension didn't convert over to the webextensions api.

You get the vim functionality back with the following extensions:

Firefox -- Vim Vixen ([https://addons.mozilla.org/en-US/firefox/addon/vim- vixen/](https://addons.mozilla.org/en-US/firefox/addon/vim-vixen/))

Chrome -- cVim ([https://chrome.google.com/webstore/detail/cvim/ihlenndgcmojh...](https://chrome.google.com/webstore/detail/cvim/ihlenndgcmojhcghmfjfneahoeklbjjh))

<comment><USER14> A bit tangential, but would you know if there is an extension that would provide Vim bindings only in textfields? I really miss not being able to use regular expressions (or simple search) in a plain text input.

<comment><USER20> Wasavi does exactly what you want:

[http://appsweets.net/wasavi/](http://appsweets.net/wasavi/)

[https://github.com/akahuku/wasavi](https://github.com/akahuku/wasavi)

<comment><USER14> wow, this extension is awesome! Thank you!

</comment></comment></comment></comment><comment><USER21> Once upon a time I ran a very minimal setup with using awesome. Tiling windows were great but I found I missed some things that Gnome had done for me. So I'm back on Gnome but replaced Metacity with XMonad, which was a surprisingly easy change. That was back in 2012. Since then there's a lot of churn in Ubuntu with first Unity then Gnome 3. But it hasn't taken that much work to keep everything trucking along, especially thanks to gekkio's PPA that now does most of the work in getting xmonad integrated with Gnome.

I might change one or two things every year, moving from gnome terminal to kitty recently, for instance, but I'm happy with my setup and it's served me well.

[https://github.com/aclough/dotfiles](https://github.com/aclough/dotfiles)

<comment><USER22> I do something similar, but running plasma, replacing kwin with i3. I think a solid desktop environment with a tiling window manager is the best of both worlds.

</comment></comment><comment> pi-rat It's been about 10 years since I used linux on the desktop. I notice this post on the front page and think: "Great! Let's have a look at what a modern linux desktop can look like.."

Oh.. It looks exactly like running a high resolution VGA-mode console with tmux and no X. :P

(Probably very effective though!)

<comment><USER23> Eye candy remains available. One of the things I love about Linux on the desktop is that you're free to use that stuff or not, according to personal taste. And personally, I find that eye candy reduces the space available for text, which is much more information-dense. A screenshot from my machine would look much like the one in the article.

<comment><USER24> > I find that eye candy reduces the space available for text

Not all eye-candy does that. Some years ago, because I missed having some eye- candy, I installed a compositor, made my windows translucent and got them to do opening and closing animations. I also put a screensaver as a moving background. It looked very cool and was just as information dense as it was originally. However, with so much eye-candy, it was hard to focus on the content and I felt my eyes strained. I ended up feeling much better when I turned it all off.

Right now, I don't even have a background, but I find information-dense tiling-wm setups have their own aesthetics. If you asked me what looked cooler / better / more usable, a "modern" GUI (like Windows, OSX, or Ubuntu's default) or a tiling-wm setup with mainly terminal windows, I'd have to say it's the latter.

</comment></comment></comment><comment><USER25> Background: Started using vtwm back in the early 90s, then on linux once it became viable. I now have a muscle memory associated with switching and manipulating virtual desktops to the point that I can't even tell you what keys I'm hitting without thinking about it.

Whenever a linux-windows-setup post appears on the HN or reddit front page, I look at it with interest, and then realize that there's no way I'd achieve any productivity gains in a reasonable time.

So maybe the moral of the story is: Choose correctly the first time, because you might be using your wm until you become an old guy/gal too set in your ways to even think about switching.

</comment><comment><USER26> I've been using Linux at home without any windows installation for a couple of years, and about 11 years in dual-boot. But my installation resembles a 'windows' computer much more.

I use xfce, but most of my time is spend in a terminal with tmux running for the window configuration. Though, I do have some 'snaps' installed. (Discord, Spotify). So I'm not running entirely inside of the terminal.

For me, this balance is perfect, for any serious work I can just use the terminal/tmux/vim setup, and for relaxing I just have spotify, discord, youtube,.. open on a second monitor.

As for distro, I'm running Debian. I've tried a few others (openSUSE, Fedora, Ubuntu, #!) and by far #! was my favourite for some time, but when it discontinued I went for Debian. I should check out BunsenLabs :)

</comment><comment><USER27> Nice setup.

A while back I moved to Arch with Xmonad, dmenu, tmux etc, but for about a year now, my workstation has been the same tools on top of Ubuntu Server. I have an Ansible playbook that I can apply to a fresh install and have almost my whole working environment ready to go - just a few things I haven't got around to including/automating.

The great thing about running this kind of setup is that you need a deeper understanding of Linux to do all the things that you would otherwise rely on a fully-fledged DE to do for you. For me, this has translated into greater fluency on servers, because my daily driver more closely resembles one.

<comment><USER28> I use Ubuntu + Ansible too and love it.

</comment></comment><comment><USER29> Off topic, but I really enjoyed his post about commuting to work by bike[1]. I was in Krakow, Poland, and getting around by bike was a joy. Unfortunately, here in Ukraine drivers are very aggressive and the infrastructure for biking is just not in place.

1: [https://hookrace.net/blog/cycling-to- work/](https://hookrace.net/blog/cycling-to-work/)

<comment><USER15> The video of the small airfield on that page is awesome!

Reminds me of Gibraltar Airport: [https://www.youtube.com/watch?v=58jaCJ5i9hU](https://www.youtube.com/watch?v=58jaCJ5i9hU)

<comment> def- Indeed, I'm not even mad when I have to interrupt my commute to let a plane land or take off. Fun to watch every time.

</comment></comment></comment><comment><USER30> I'm heading in similar direction. also using Arch Linux, VIM. do like i3 & tmux, using suckless terminal (I like terminal in true colors). and tend to favor default settings everywhere unless really really forced. installation takes couple hours (IF you know how) - lasts for eternity.

<comment><USER31> Most modern terminals support true color now [1]. My current favourite is Alacritty because of the combination of speed (hardware acceleration), simplicity (no menus or dialogs), and configurability (including key bindings) with a simple plain-text file that can be kept in version control [2].

[1] [https://gist.github.com/XVilka/8346728](https://gist.github.com/XVilka/8346728) [2] [https://github.com/adambyrtek/dotfiles](https://github.com/adambyrtek/dotfiles)

</comment></comment><comment><USER32> He has got a nice setup, especially as he's able to choose all of his own software. I've been using Linux as a primary OS since the 90's but I still need to interact with Windows for work.

I used to dual boot my work laptop, which was made easier by Office 365 webapps becoming more usable, but still there were lots of gaps.

This summer I got a new work laptop, and just cloned the existing M.2 drive onto a bigger, faster one I purchased. Now I run the work laptop as a VM image through QEMU/KVM on top of my regular Debian desktop.

This works remarkably well, and has improved my workflow a lot as I now never have to dual boot. Windows even runs faster this way, due to the faster M.2 drive. I'm not sure how I'm going to explain it to the IT department if I ever have to get the laptop repaired though.

<comment><USER33> > I've been using Linux as a primary OS since the 90's but I still need to > interact with Windows for work.

My current job force me to use a Windows computer. You know, it's the company policy. Well it's the last time I take a job witch doesn't let me control my computer and use GNU/Linux. It feel like I m using the wrong tool for my job. Like use a stone to put nail instead of a hammer.

<comment><USER34> LOL I have a "Don't Want" section on my resume that says no Windows. And I found such a job! I program on a Mac.

<comment><USER33> This is a really good idea !

</comment></comment></comment></comment><comment><USER35> Slightly offtopic: the author says the background of [https://hisham.hm/htop/](https://hisham.hm/htop/) shows live statistics, that's not the case as far as I can tell, just 4 pre-recorded images shown successively.

Ontopic: Quite impressive setup. For me it would be too strictly regulated for a comfortable use, though technically I like it. To each it's own.

<comment><USER36> From the htop page:

      Thanks to Alexander Waldeck for the idea of having htop
      itself as the page background! His page actually presents
      a live htop session -- mine is just an animated gif with
      a few frames stolen from his page. :-)

The drunken-security.at page is offline as far as I can tell, but as I recall it he eventually had to drop the htop background as people were DDOSing him to see the results.

</comment></comment><comment><USER37> So his Linux desktop setup is basically the Linux terminal setup :)

</comment><comment><USER38> Similarly: OS: openbsd (was slackware) WM: cwm Mail, file mgt, authoring: emacs Agenda calendaring: orgmode Writing: latex Statistics: R ;-)

<comment><USER39> I really love cwm. It's a really nice window manager. I used to use Emacs a lot too, but now I just use mg for simple file editing and IntelliJ.

I switched from OpenBSD awhile ago to Linux because 1) OpenBSD is dog slow and 2) a lot of software doesn't work right with it. However, it's probably the nicest operating system I've ever used.

</comment></comment><comment><USER40> How does your setup work with a second monitor that comes and goes?

Use case: I have a laptop that I take everywhere for me, but I plug into a second monitor while at work. I also use multiple desktops, and this pattern is sometimes causing windows to jump to another desktop when disconnecting the monitor.

<comment><USER41> I had the same issue using unity/gnome on a laptop with 1-3 monitors. After I switched to i3 I was forced to set the monitor config manually with xrandr. I set up keyboard shortcuts for switching between 1-3 monitors. This fixed all the issues with automatic window placement since the window manager no longer tries to do this in an automatic fashion.

Tiling window managers definitely have a learning curve, but after I spent a weekend switching to one, I can't see myself ever wanting to go back to floating windows.

</comment></comment><comment><USER42> Even though Pentadactyl is not under active development anymore, I'm pretty happy with Vim-Vixen. It doesn't have "caret mode" (from what I can tell) but the switch was very smooth. There are also a lot of other options for vi- browsing for Firefox now.

</comment><comment><USER43> I've been using Ubuntu on an Thinkpad L460 for about 9 months now full-time. While there is a curve and I'm always looking for new ways to solve problems. What running Linux has done for me that I didn't expect is to make sure all my code plays nice with other projects.

Example: I've got processes that make models out of stock data and does backtesting. Even though I use my own custom code for a lot of things, I make sure that in the end if someone wants to dump into numpy/pandas they can in just 2 lines.

I started out with Linux to use a free hand-me-down laptop and I stayed when it was powerful and I could still make a living coding with it.

</comment><comment><USER44> I have been using a very similar setup for 12 years now. In the past few months I've been wondering what the Linux experience is like for newcomers and "normal" users. I am considering doing a clean install with a full fledged modern desktop environment such as KDE. I may not be able to manage such an environment, I fear that it's too constrained compared to controlling everything that runs on my computer. But I'd like to try.

Has anyone done a switch from very minimal keyboard first lightweight environment to a modern desktop environment? If so, what was it like?

<comment><USER45> I did. It feels good. The interactions are smoother, file managers are more useful. Had to tweak some shortcuts to emulate some moves I am used to in tiling managers.

I went from awesome to KDE (kubuntu 18.04lts).

I do webdev, cm and reports at the moment.

I believe the terminal only approach suits most sysadmin, devops and the like ; not your run off the mill wordpress dev.

<comment><USER44> In my current setup, I do not even have a file manager installed. I just use the coreutils (cd, ls, mv, cp, rm, etc.).

I'm not doing webdev, I mostly program in different languages (Racket, OCaml, C, and Python mostly) and write a lot of LaTeX. Most of my time is spent in Emacs (it's also were I'm doing my emails) and Firefox.

In addition to graphical file managers, I'm also wondering what it's like to use a mail client such as Thunderbird, Kmail, or Evolution.

<comment><USER45> Graphical file managers are really good at managing pictures and random arbitrary selections.

I am not using mail clients anymore, only webmail (I have a thunderbird install at work that is used as some kind of back-up/dumpster). I don't spend a lot of time in email or calendars though.

</comment></comment></comment></comment><comment><USER46> it's always surprises me that linux developers still care about ctags...

There are more powerful solutions and easier to setup (YouCompleteMe, for example). I was completly sold out when I tried for the fist time a few years ago. I was pretty happy to drop all my ctags's related scripts.

<comment><USER47> Recently I came across [https://langserver.org](https://langserver.org)

To me, it looks like an upcoming solution to the 'code completion' problem.

<comment><USER48> Yep! First class Typescript support makes it great for Javascript development too.

</comment></comment></comment><comment><USER49> > rem -m -b1 -q -cuc12 -w$(($(tput cols)+1)) | sed -e "s/\f//g" | less

Regarding composability:

Suppose I want to add the following to that calendar:

1\. two little emojis (or ASCII art) at the top to scroll among months. Bound to left/right arrow keys, and also clickable with mouse. This is a common feature of the calendar widgets I've seen.

2\. clickable mutable daily content. So if I peruse my calendar and spot an error I can click to select, fix it, then click off it to update it.

Can this be achieved only using shell scripting?

</comment><comment><USER50> My Linux desktop setup at work is latest Ubuntu LTS + Sublime Text + Spotify + Docker. At home I use latest Ubuntu + Sublime Text + Spotify + Steam. If I ever need to reinstall Ubuntu at home or work, I'l go with the minimal installation option. I'm guessing that I get to go with the minimal installation when I buy/get new laptop, since there is no reason to do a fresh install otherwise.

</comment><comment><USER51> > I quickly noticed the huge compile time of KDE, which made it a no-go for me

Is compile time of the desktop environment really a discriminating factor?

<comment><USER34> No. It's a virtue signal. Which is fine for him, just not a value shared by you and me.

</comment></comment><comment><USER52> Looks trivial to set up.

</comment><comment><USER53> This is great fun. I'm running a very similar setup on a Raspberry Pi Zero W. I can plug it into an HDMI screen to start it up but then I can just run it headless via SSH.The "disk" size is 8Gb and my setup occupies 1.6Gb. 12 hours battery life with a 6000mA/Hr battery...

</comment><comment><USER54> r/unixporn can be a good source for ricing inspiration.

I can recommend the unaboomer's rice vids for a fun evening [https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA](https://www.youtube.com/channel/UC2eYFnH61tmytImy1mTYvhA)

</comment><comment><USER55> Ubuntu Mate FTW, hit the tweak control panel and dark theme, done.

</comment><comment><USER56> Really nice setup. I'm using ubuntu for a little while and I'm hooked with the idea of deeply customizing a linux setup to be energy efficient and highly productive.

</comment><comment><USER57> Cool setup, being able to mold your Linux desktop into what you need is a good thing!

I'm happy on Ubuntu LTS with a couple PPAs for latest mesa and some other applications.

More recreational though, gaming through Steam's Proton or Lutris, big thanks to Valve for sponsoring wine, dxvk an various other bits and pieces!

</comment><comment><USER58> I recently saw a thing about xmonad not under any circumstances being ported to wayland, due to its very high level of integration with X. Which to me read as, would require a rewrite rather than there can be no successor. Still, someone does have to actually put in the work.

</comment><comment><USER59> Try tmux, it works very nice together with vim. I can also recommend polybar.

</comment><comment><USER60> Mine is tmux/vim, and firefox. If someone changed the rest of it, I'd think something looked a little odd, but I'm not entirely sure if I'm using Mint Mate or Mint Cinnamon.

</comment><comment><USER61> Amazing amount of work spent in constructing an efficient workstation. Makes me wonder what i am i doing with only custom .dotfiles. Clapping my hands

</comment><comment><USER62> Im surprised there were no changes to the default git diff and merge tools.

This is one of the first things i do on a new setup, to chane them to use "meld".

<comment><USER63> That's probably because he uses vim

<comment><USER62> You can change those tools to any editor. Meld is just a popular option.

</comment></comment></comment><comment><USER64> Great read. Only thing missing was the hardware. I am always interested to see what kind of hardware people are running on.

<comment><USER65> It says Thinkpad x200

<comment><USER64> Doh how did I miss that!

Bit older than I was expecting. I had assumed a ThinkPad T series. Maybe a T420 with the 1440x900 resolution.

</comment></comment></comment><comment><USER66> Wish there were a terminal calendar program that could sync with O365.

</comment><comment><USER67> linux user/dev here since 1995, few years ago went back to windows.. never looked back.. happier now I never have to worry about shit not working and just do my kernel dev in different ways. I'm no longer interested in tons of desktop config either, more interested in apps that can do more for me, with less of me interacting with the computer to make that happen

<comment><USER68> I've been developing on Windows for the past year, from a mixed OS X / Linux background, and it has been a seamless experience, the only things I miss are the ease of installing packages like Node or Redis or Postgres, but those are done only the first time I boot up a new Windows installation so the pain is amortized in the time I spend not worrying about random lockups or drivers not working.

</comment></comment><comment><USER69> this is a terminal, not a desktop. and it's really great at being that.

<comment><USER70> I disagree, I think that a terminal implies connection to a larger computer that is doing most of the work. In this case all of the work is being done on the local machine.

I do agree that this person has many terminal sessions open, but they are also running Firefox, playing music, etc.

</comment></comment><comment><USER71> @def- small typo

> Since i's a bitmap font

<comment><USER72> To be fair, the apostrophe indicates missing letters, so they've just missed another letter, and the meaning is clear.

<comment><USER71> Indeed the meaning is clear, but I was letting the author know about it

</comment></comment></comment><comment><USER73> Amazing article!

</comment><comment><USER74> awesome setup

<comment><USER75> Clearly you didn't read the article. It's an _xmonad_ setup ;-)

<comment><USER47> For those who don't understand: [https://awesomewm.org](https://awesomewm.org)

</comment></comment></comment><comment><USER76> That's not a desktop setup.

It's much more complicated than the workstation setup I use at work.

A desktop setup is my Xiaomi laptop with Ubuntu 18.04 that I use as media caster or to browse amazon while on the couch.

It works flawlessly, much better than the preinstalled Windows 10 in chinese.

<comment><USER77> I don't see at all why you're saying it's not a desktop setup. It's obviously a workstation computer with media capabilities. The word desktop implies pretty much that. In contrast to desktop, there are portable computers and servers. Today the difference between portable and desktop amounts to just additional power management tools, so it's pretty much the same. So there's just workstation and server, ignoring Androids, Google Chrome laptops, etc. This is certainly not a server.

As to the content itself, the insights, configs and tools listed are great. My setups have very similar objectives, but solving a lot of these mundane problems can mean days, so I'm definitely saving this for later.

<comment><USER78> > It's obviously a workstation computer with media capabilities. The word > desktop implies pretty much that.

What? No.

A desktop is a computer sitting on the top of your desk. And on the software- side there is the Desktop Metaphor, which describes an interface that behaves like the top of your desk, with free arrangement of all meaning of your work.

This article on the other side describes a workspace with multiple machines and mostly no free arrangement of work-elements. So it's not fullfilling the hardware-definition, and pretty weak on the software-definition.

This article is clearly about a workspace that blows beyond the classical workspace-definition of a desktop. Which is good IMHO, but means we need better namings for such things, and even if it's just for the sake to distinguish different tools and workflows. We are now moving to integrate Mobile Devices like iOS&Android into our workspaces, and on Windows-tablets we have touch-interfaces which start to be very different from normal mouse&keyboard-interfaces. And then there is also the classical terminal- interface, which this article is very heavy leaning toward.

<comment><USER79> I don't understand the gatekeeping and deliberate misinformation in your post.

> A desktop is a computer sitting on top of your desk.

Besides the fact that the author indicated he's using a laptop hooked up to a 40" monitor, kind of necessitating the computer to be sitting on his desk, his use of "desktop" in general is referring to his everyday workflow. For some people, that's Windows and Windows specific apps. For others, it's macOS and its specific apps. For yet others, it's a Linux or BSD desktop environment, whether stock or customized. The fact that he's using a laptop as a workstation does not magically render his established work environment "mobile", and even if it did, he's still using a desktop environment of his own making.

> This article on the other side describes a workspace with multiple machines > and mostly no free arrangement of work-elements.

Maybe we're reading different articles, but I see no mention whatsoever of what you're going on about. I see where he at one point mentions "multiple computers", but this in no way invalidates his desktop environment and software setup as violating some made-up rule about what is or isn't a "desktop".

I currently use five computers at home not counting my iPhone: A HP EliteDesk set up as a Windows gaming system, a Dell PowerEdge T310 server running Slackware Linux, converted into a workstation by adding a GPU and sound card and tweaking the BIOS, a mac Mini for music production and general Mac- specific things, a Raspberry Pi 3B+ for experimenting with IoT, and a HP Elite X2 convertible laptop for quick tasks away from my desk and occasional use at work.

Now, according to your logic apparently I can't possibly have a "desktop" setup because I use more than one computer, of more than one form factor, for more than one task at a time, and not always glued to my desk. That's total bullshit.

</comment></comment></comment></comment><comment><USER80> In similar vein but vastly different:

Firefox + Tridactyl

i3 + i3bar + dmenu + rofi

dunst

Powershell instead of zsh

No desktop manager

<comment><USER81> I have PowerShell installed on Linux, but I don't ever use it. Is that your main shell? How does that work out for you on Linux?

<comment><USER80> It's more powerful but lacks a bit in interactive features.

I use zsh for regular getting around and opening stuff but anything that needs logic I do in pwsh.

</comment></comment></comment><comment><USER39> I use cwm (initially from OpenBSD) and it's pretty great. Zenburn terminal colors with anti-aliased Consolas as my font.

I don't understand why someone would prefer bitmapped fonts vs ttf. They really hurt my eyes and look god awful...</comment>


Ask HN: What question would you ask beta users to get highest reply rate? - <AUTHOR>

Here's the ground rules:
The customer has just signed up to trial your new app or web service.
1 - You have to ask the question in email. 2 - It can't be offensive or unprofessional etc. 3 - It must get them to reply and start a dialogue.
What question would you ask to get highest % reply rate? <comment><USER2> I'd research the person via the provided name and/or email and then use your gut feeling to ask a question that is a) interesting to the recipient and b) shows you've put time in and this isn't a random mail.

E.g. you find the person on LinkedIn and find out the company they're working for is in an industry you don't know well. Tell them that you've researched they work in that industry and that you'd like to know what specific problems they're facing and want to solve in order to know how to improve your software.

</comment><comment><USER3> Would you refer our services to freinds?</comment>


Focus, entertain, or both? - <AUTHOR> http://sivers.org/boring <comment><USER2> One thing to remember is that most writers did write too much. Take George Simenon, he would be greater had he signed less pages.

There is a current fad in showing everything, but it has not always been like this and many artist would burn their drafts with many good reasons.

Sometime I feel many people would rather be toilet perfume everyone buys than French perfume.

</comment><comment><USER3> You work and showcase it. If people find it boring, then let them. Audiences come and go, but what you do stays put. Though I would change the focus a bit, and let the audience see a _behind-scenes-look_. Some will bail. New people will arrive. Most will not change or even care.

</comment><comment><USER4> I'm going through this right now. Not so much the part that anyone _wants_ to hear what I have to say, because that number is in the low single digits, but more the part that I'm really focused on learning a new skill (Obj-C) and therefore don't have the time to do things that I normally do (e.g. blog, read new books, etc.)

It's tough to give it up, because there is a desire to want do it all, but in reality there isn't time. For me, I've been wanting to learn to code for at least 15 years, so giving up most other things to make time for it at last makes sense. I'm glad I have, because I'm finally tackling something that's hung over my head for years. But I definitely get the itch to go back to what I was doing before.

</comment><comment><USER5> For musicians, maybe some sorta co-op label (run entirely by the musicians in question) would be in order. One person is visible/showing while the others are working - meanwhile, the fans follow the collective.

</comment><comment><USER6> The pro side to easier access to larger and larger audiences is the ability to find a niche audience (or have a niche audience find you via Twitter). This turns your 'boring' pursuit of mastery into something of interest, and maybe even guidance, to a large group of people.

Not quite a direct answer, more of a thought sapling.

</comment><comment><USER7> Focus is clearly the most important.

Entertainment and the status you get from it is only as useful as the amount of influence that status yields, and influence is only beneficial in proportion to your conviction and the quality of your ideas. Improving the quality of your ideas require an unwavering focus.

Focus is the key.</comment>


Critical Sharks Part II: Schmearing Colored Paint - <AUTHOR> http://www.elischiff.com/blog/2015/3/10/critical-sharks-part-ii-schmearing-colored-paint

<comment><AUTHOR> This week I continue the "Critical Sharks" series with a new post about Schmearing Colored Paint. You'll find out the connection between Apple and Jackson Pollock's drip paintings. You'll learn how the Japanese Superflat art movement influenced Material Design. Most importantly of all, you will understand what it takes to be a modernist illustrator.</comment>