I have a Linux laptop on which I run a tiling window manager (in my case, Xmonad), and nothing else. No system tray, no quick launch bar, nothing.
(if you're not familiar with tiling window managers, they're window managers in which windows are arranged automatically to a) fully occupy the screen and b) never overlap. They're extremely customizable, but typically you'll have a vertical half of your screen with a main app, and the other half with all the other apps "stacked", with keyboard shortcuts to toggle between them and adjust various parameters (e.g. split orientation). You typically also get virtual desktops. The whole thing is fully keyboard driven (on my Xmonad, cmd + shift + enter opens a new terminal, and cmd + shift + c kills the currently selected window), and once you get used to it it's a usability dream).
On it, I have 2 graphical applications installed: a terminal emulator, because that's where I do all my work (and can launch other minor applications, such as a PDF viewer, if needed), and surf, a tab-less/control-less/URL field-less browser that you launch by typing `surf <url>`.
People make fun of me for this weird archaic setup, but it's the most productive machine I've ever used. Tiling window managers don't get in the way, and make it painful obvious when you have non work stuff open. surf forces me to not fuck around with 15000 irrelevant tabs open. It sounds like it would be a terribly crippled experience, but in practice it does not impede my workflow at all - it keeps me focused. It's gotten to the point that when I hear colleagues who complain about all their open tabs and how screwed they would be if their Chrome crashes, I feel like they come from another planet.
I don't like the whole "have some discipline" argument. Humans are notoriously bad at discipline- environment plays as much of a role as self control (try surrounding the most hardcore fitness nut by candy 24/7 and see how long they last). The point of our tools is that they should enable us to be who we want to be.
I confess tiling envy. I try them out every year or two, but I generally abandon them because I can't get comfort functions to work, especially managing power, sleeping, hibernation and the lid, and key management. These things generally/often come with the more mainstream window managers, so I've never had to figure them out (and don't seem to be able to with twms).
I remember looking for solutions to power for awesome (which is otherwise awesome) and finding chains of solutions depending on debian releases, including gaps.
You can try using a tiling window manager with in a more traditional desktop environment. I think Awesome has a wiki article on running Gnome with Awesome as the WM.
Thanks, tried that. As I recall it did help with things like power, but I had issues, since forgotten.
As it happens, I am right now using i3 4.7.2, installed last night from linuxmint's repositories. I'm trying to use just i3, along with whatever i3's package recommended.
So far so good. But it didn't sleep last night, the screen just blanked. At least it's Saturday. :)
I've been using a tiling window manager for some while now, and this was definitely a pain point for some while. Subjectively, it has recently got better, though I don't know whether it will be better enough for your needs.
FWIW, I use ratpoison on Ubuntu on my laptop, and used ratpoison on Debian on my work desktop at my last position.
Same, I've had co-workers laugh at my crazy key bindings, but by comparison, whenever I have to code on my Mac (which I've not customized, or someone else's computer, I wonder how I ever managed to get anything done without a highly customized environment.
I use i3 (tiling manager - I find it the easiest to config) and vim, and similar key bindings across both.
I get how it can seem like a lot of trouble for some people, but it's so worth it when you can edit code and move around your environment at basically the speed of thought.
Some would argue that typing / windows-switching speed is not the bottleneck in development, but for me it's not about performance (I'm a rather bad typist), but about reducing mental overhead and minimizing "mental disrupts". One-second distractions of reaching for my mouse, then moving the pointer to the task bar, etc... just add up to a lot of overhead (try reading a dense article while taking one-second breaks to look away from the page after every sentence. Comprehension plummets).
Came here to say this. Normal window managers are great for normal computers where you don't know whether it's going to be used to do graphic design, spreadsheets or whatever. But for IT people and especially programmers it is insane not to specialize your machine, to spend half of your mouse gestures on moving windows around, maximizing, minimizing, finding them in the clutter you are producing.
The built-in multiple desktop support (ctrl+arrow left/right to switch) plus Spectacle[1] (free, open-source) will get you most of the way there. There's no good way to get rid of window title bars that I'm aware of, though having them there does mean you can switch seamlessly between normal OSX window management and sort-of tiling management via Spectacle.
Spectacle's default keybindings conflict with (override) Chrome's primary next-tab/previous-tab keys, but there's an alternate command+shift+[ or ] binding for those actions in Chrome.
The other comments recommend better options to simulate xmonad/other tiling wm's (FYI there is a version[1] of xmonad in development that works with native OS X windows) but for distraction-free work I really enjoy OS X's fullscreen mode. Often to avoid distractions I'll fullscreen everything and use gestures to go back and forth - gives you an identical experience to an iPad (unlike the statement in the article).
Using the gesture to hold two fullscreen windows visibly at once but not relying on tiling or overlapping is surprisingly useful and productive.
I was a long time xmonad user on Linux but I spend all of my time in OS X these days. I haven't found anything that rivals the power a full fledged tiling window manager but use Divvy to bind hot keys to actions "fill the screen" or "fill the left half of the screen" or "fill the bottom right quadrant of the screen" etc and I'm able to create a workflow that's a reasonable compromise.
Spectacle and ShiftIt are two alternatives I later heard about, but haven't yet tried, so please let me know if you try them out and find a clear advantage to either (besides price).
Enjoying Haskell, I've been tempted to switch to XMonad. I tried once, spent about an hour trying to configure it how I thought I'd want it, realized I was recreating my experience on ratpoison, and shelved it until I found something I wanted that was a pain to create in ratpoison. I expect that will happen eventually, but it hasn't yet.
Like many, I tend to use tabs as short term bookmarks or a reading queue. Do you do anything in particular for those use cases? Just URLs in a text file, maybe?
It sounds like we have similar setups. I use xmonad with no system trays - if I need something that happens to be a system tray, I'll ask for it and close it when I'm done with it. When I'm working in an application I don't need to see what the time is, if I've got a new email...
> I don't like the whole "have some discipline" argument. Humans are notoriously bad at discipline- environment plays as much of a role as self control (try surrounding the most hardcore fitness nut by candy 24/7 and see how long they last). The point of our tools is that they should enable us to be who we want to be.
Yes! I've come to the same conclusion myself. One thing that many people who complain about people's lack of self discipline nowadays is that it is most probably objectively harder to stay disciplined in the modern age then it was before. For a long time this was true for things like junk food, but most recently it's true for computers and the procrastination that they encourage. It probably isn't we who have gotten less disciplined - it is our environment that demands more discipline of us. And since computers are too-damn-convenient to be without, we need to make them help us stay on track rather than allowing them to drain our self-discipline energy (if there is such a thing. It feels like it is.)
The author may be on to something with the line "A popup notification that runs without concern for what the user is doing is hostile behavior. Notice how there's no API in any OS for "is now a good time to interrupt the user?". Maybe there should be."
Notifications could be deferred while the user is actively typing. When the user goes idle, deferred notifications can be displayed. This becomes more important as more "push" features are crammed into browsers and apps.
I'd like to point out that even if a user goes idle, it might still be a bad time to display notifications. What if a developer is working on a hard problem, and pauses for a while to think about the problem, maybe doodle on a whiteboard/paper, etc.? This could actually be the most damaging time to display a distraction to the developer. The solution to this kind of problem would likely need to be slightly different, possibly including simple mechanics such as "Don't bother me during x time" or "Don't bother me for an hour" to give someone that time they need to just focus/think about something for a block of time.
> A popup notification that runs without concern for what the user is doing is hostile behavior. Notice how there's no API in any OS for "is now a good time to interrupt the user?". Maybe there should be.
This isn’t correct, actually. There is the Do Not Disturb mode in OS X that disables any non-essential notifications and alerts. It can be toggled manually for one day, or according to user-set daily start and end times.
Of course, even though the API exists, apps use it differently and somewhat inconsistently: for example, Apple’s native FaceTime will not distract you in DND mode, but Skype will if someone calls you.
Point being, there is an example of such API that tells any app that asks whether is now a good time to interrupt the user. (Not to argue that actually inferring what you do and avoiding distracting and stealing focus in the middle of typing, as in your example, would take it to another level.)
I've been wanting to put together a notification daemon that lets me batch notifications based on priority (and also review a history of recent notifications).
Windows 8.0 seems to have become especially bad when it comes to this. All of a sudden it will pop up and focus a (modal) window - all there is is the wallpaper (fuzzied) and the window, where did my application go?
No Windows, I don't want to update Java (yet again) when I'm playing a fullscreened video game.
I've come to similar realizations during my programming career, and realized the value of simple mindfulness in all tasks, especially while communicating to those around you. I've found simple mindfulness to be like a superpower in our age of constant notifications and hundreds of tabs. I even try to force myself to be mindful while checking my email by dealing with a single email at a time (thanks to Mailbox app), and consciously delegating emails and tasks to a particular time if I'm unable to deal with it immediately. In my experience, multitasking is a sleep depriving, mentally taxing, stress inducing, debilitating activity which only reduces quality of life from every conceivable angle, and hurts productivity in general.
It all boils down to one thing: have a single conscious intention when doing something. This takes practice, but eventually you can do it for anything and everything. I've found this can even make routines like brushing your teeth very enjoyable and meaningful (see here: http://www.fastcompany.com/3036363/how-to-be-a-success-at-ev...)
Also, there is a clear rebounding shift towards desktop computers being serious work tools, as opposed to consumption devices, which is what mobiles and tablets are for. This is undoubtedly a trend that is already happening, and I think that OS and software designers need to respect that. It is an unfair, deadly sabotage to mobilify desktops while upsetting the highly focused workflows of programmers, graphic designers, architects, writers, business managers, video editors, students and academic researchers just to pander to a generation of ADHD social network addicts (I'm looking at you Windows 8).
As for people arguing that you simply need self-control and discipline, they are kidding themselves. Focus and concentration are extremely delicate things to create and preserve, and it is a designers responsibility to make products easier for their intended purpose, not simply demand "self control" from their users.
I don't think the problem is OS design. Across his armful of assorted arguments, the poster made an argument that tiling managers suck, as well as some other things. That aside, I don't think it's the OS that is the problem, but rather that the computer is a gateway to many possibilities.
Your OS, and the apps on your computer, can be designed with focus and cognitive ease in mind, but it does not change the fact that a few actions away is a Stargate to another world. So, aside from a few grab-bag complaints (though legitimate) about operating systems, programmers and designers have little more to do. Apps are only going to get better designed, and minimalism and cleanliness have come to characterize modern app design.
I don't think the user would take kindly to obstructions to their browsing / app experience...
"Why does it take an extra unnecessary step to launch an app!? You're telling me this is for my own psychological good?!"
I suppose this goes to classical arguments about the role of government in banning drugs or mandating seat belts. The state doesn't think you are responsible enough, so they create an external structure (fines / criminal penalty) to make you do good for yourself.
Others would say that a sad restriction has been placed upon them because the rest of the population cannot regulate themselves to the satisfaction of the state. It can also be argued that now people rely on external pressure or structure to behave well rather than setting up their own internal structure.
I'm sure we've all worked somewhere that banned gmail or youtube, etc. It's interesting that, in the context of this piece, those bans are addressing symptoms and not root causes. The bans are trying to enforce what you're describing: single conscious intention; but of course addressing the symptoms and not the causes will only cause the mole to pop up elsewhere.
We should begin to consider mindfulness as a skill, just like coding itself. A muscle that needs to be worked and flexed and honed with deliberate practice.
I have a separate local user account on my computer for work. When I start work in the morning, I switch to the work user and all of my personal stuff goes away. When I'm done with work at night, I switch back, all my personal stuff comes back and work goes away. It's almost like having a separate computer.
People often look at me like I'm crazy when I tell them this. I haven't quite figured out why.
If I need to look up some personal thing in the middle of the day, I reach for my phone. If I find I've been reaching for my phone too much that day, I get up and put it on the other side of the room. Now every would-be distraction requires me to physically move my entire body.
Yes, but can you google with the typewriter? If you couldn't, how much work can you get done? Not many people can work today without google, because with google, we get access to documentations, API docs, and what not. Without your computer, can you communicate faster? collaborate faster? Some folks use slack, hipchat, IRC, lync, whatever.
Are you going to code on your typewriter? I wrote code without a computer when I got into computing because I didn't have the money to buy one, I would write basic C code on paper. What a mess. Computers make us productivity, but you the user must decide on your work flow.
Computers are general problem solving machines, if you want to play game and watch cat pics all day, then it's your choice. If you want to work then you can. The guy on typewriter outside might do no work, instead he might stare at hot chicks or count cars or strike up a conversation with someone that comes along.
Productivity is not just a function of tool but also a function of self, and self control. I saw someone that mentioned self control and got downvoted, but they are correct. It's mostly about how productive you decide to become, there is no shortcut. If you are not motivated, and you are locked up in a room with nothing but a typewriter, you will not write tons of book. You will just sleep and cry and beg them to let you out of that room, you might even smash the typewriter. Someone like me, I might have more fun taking it apart and trying to put it together, anything but write a book.
Computers are designed for open-ended productivity, where the assumption by the computer operating system designers is that they don't really know what users want to do, but will give them the option anyway.
Computers don't do anything without computer Programmers. It is the user which makes things 'productive', where 'productive' is entirely up to the users' free will to decide to use the computer to do something.
A full-screen app at the checkout window is quite productive. This is still a computer. Its just that the Programmer has done the job of making the user attracted to the device, for the purposes of doing some job. Its the same with massive open-ended cornucopia-style operating systems that give you all the power in the world, and a bundled card game.
Either way, no matter what, its the user which makes productivity occur.
I agree that computers are designed for open-ended productivity, but multitasking is simply dead-ended productivity. Because of the way our brains work, it serves no purpose at all, and stifles any kind of serious work. Unless your purpose is to mindlessly surf through a cesspool of information.
I don't think I agree that multitasking itself is a dead-end productivity sink. Its necessary, sometimes, to put tasks in the background and let them complete .. where this goes wrong is when its used as a reason to ignore other tasks. That, again, is up to the user.
I think the title is slightly hyperbolic. A linux distro gives you almost unlimited possibilities to be productive.
Most of the issues can be solved with:
- A tiling window manager such as xmonad.
- Using virtual desktops/separate windows in addition to tabs
- Discipline.
Hell, have a "work" user and a "fun" user and completely switch profiles. The tools are available. It takes some minor out-of-the-box thinking and discipline.
Seriously though, I seem to have so little. I'm seemingly distracted by every neutrino floating through me nevermind things that actually interact with me, gah! ...
In ratpoison, I have found the following useful for my work flow (terminal window per context with screen inside) - it probably wouldn't be for everyone:
alias lock definekey top C-f readkey locked
alias unlock definekey top C-f readkey root
bind grave lock
newkmap locked
definekey locked f meta
definekey locked a time
definekey locked grave unlock
definekey locked backslash readkey music
This article pigeonholes you into the idea that long term focus on a single task is the only form of productivity.
Not all jobs are the same. When I'm writing, I block everything out but the writing prompt, occasionally backing out to open up character/location/backstory notes. When I'm writing a bash or python script, I do much the same. Full screen my terminal, open up vi, and don't leave it until I'm done or have other matters to attend to. And the same with when I'm learning something - I have my study materials, and that's it. (Though, I'm weird and still prefer physical books for learning stuff, so I might not have a computer near me at all, despite "pleasure" reading being almost 100% done on my kindle)
But most of the time I'm on the job, I am not sitting there with singular focus on one window. I'm not a professional author or developer. Multitasking - whether or not humans are good at it - makes up a huge portion of my day to day time. I have the general projects I have to work on, but I'm also an escalation point - I have to keep an eye on IRC and see if anyone needs me, or has questions about anything. I have to keep my eye on my email for similar reasons. I have to be signed in to our other office communication systems that other departments use in case they need to get ahold of me, or connect me with a customer. etc etc etc. For me, being productive much of the time precisely means I need to be bouncing my focus all over the place and be juggling multiple things at once.
I get the overall point, and agree with it for many cases, but there are plenty of jobs out there where having a lot of different information feeds presented to you at once is part of how you attain productivity.
I would argue that computers are extremely productive, but that they are also multi-functional, and that it would be very sad to remove all the other interesting functionality from a computer until you had the ultimate focus machine.
I do resonate with the idea that some people have a bad interaction with current computers. Just like some people may have biologies that will interact badly, despite a general array of interventions or strategies, in the face of easily accessible drugs like alcohol and cigarettes.
But it would be a shame to remove bars and liquor just because some people cannot control themselves. Some humans will always be led off the summit due to their unseated spirits, but let us not flatten mountains for their sake.
Hopefully there will be an elegant software solution that satisfies everyone ("Google / Siri, focus mode on!"; "Okay, I have suspended distractions until I see evidence that your job is done."), but until then, computers are designed as an open invitation to another world, but maybe you only wanted spreadsheets.
Hence why personal email happens on my phone, and work email happens in outlook (running background). Both notify me when I get mail, so "checking my email" is a meaningless action.
Of course, this only works out well when you can prune down the number of emails you get. Unsubscribe from everything you can.
One thing this piece highlights for me is the importance of really learning the language you're coding in or the system you're operating. Many take the very practical approach of learning what is needed and no more, using google, SO, and API docs in a web browser to shore up what is missing.
Unfortunately, searching for and then reading something written by a new stranger every 5 minutes is a severe disruption to a focused workflow.
For me, this means learning advanced language features ahead of time (light bedtime reading by Josh Bloch, for example) and keeping a browser open with nothing open except a local copy of the API docs. Another example would be finding one good (physical) book to use as a language reference and keeping it next to the computer.
For people on OS X who want to give tiling window managers a try but don't want to switch to Linux/Xmonad: I've been using Amethyst[1] and throughly enjoying it.
It's pretty clearly still early on in its development, but I've been enjoying pretty substantial productivity gains from using it.
Eh, Microsoft tried doing the "one thing at a time" approach in Windows 8. It didn't seem to work out for them. One can argue that it was partially due to trying to sandbox their entire software ecosystem at the same time, but in my experience, it was just too jarring when you did actually need to switch tasks or use reference material.
I think the way people focus on 'self control' is interesting - it's always presented as a choice, or a flaw in a person if they don't have it. But is this really the case? I'm not convinced my conscious desires are necessarily powerful enough to overwhelm procedures in my brain that have developed by other means.
Of course there are probably plenty of people for whom being told this kind of thing is itself a stimulus that can help to modify their behaviour, but I worry there's another class of people (or even just people in specific contexts) to whom being told to exercise self control is not much different to telling someone with depression to cheer up. Potentially well meaning, but fundamentally the wrong way to approach things.
(To relate to this specific article, I don't see why it shouldn't be a very reasonable point that popular window managers etc may really not be optimised for productivity - not necessarily for you, but for some significant number of people. It's easy to say 'oh they can just change it then', but maybe most of them will never think about it or even realise it's possible unless the issue becomes publicised more widely.)
It's all about environment. I don't know about you, but in college I quickly noticed that if I hung out with the hard workers I would get great grades and do all my work on time, and if I hung out with slackers I would just play video games all day.
Put the unfittest, unhealthiest person you know in a house with crazy healthy and fit people for a few months, and you'll notice drastic changes in their habits and behaviors. The opposite is true - put a healthy person in a house where their roommates eat pizzas and watch TV all the time, and they'll quickly get to their level.
On one hand it's depressing (if all your friends and family follow the same patterns you'll have a hard time breaking out of it), but on the other hand it's empowering: you can modify your environment to encourage healthier habits (if all you have in your fridge is healthy food, you won't be snacking on Cheesy Poofs when you're hungry at 4pm).
PCs are great for doing and solving a wide variety of stuff in the modern age. But we are at a point where people who care about usability should start to care more about limiting the utility and convenience of a computer. (Of course the user should decide what should be limited, not some other entity.)
We have managed to come far with regards to assisting people with modern computers. Now computers need to start assisting people more when it comes to discipline and focus. I think unassisted self-discipline is impractical. It might have worked in the past, but not in the Information Age. We aren't lazy and undisciplined if we allow ourselves to rely on the computer for helping us stay focused, like blocking certain websites during work hours - we are simply saving ourselves the energy that we would otherwise have to expend in order to resist all the temptation that a vanilla modern computer throws at us. An expense that a typewriter of yore never had to even worry about. Do we let the computers control us, or do we let the computer help us control ourselves?
You can't control the fact that grocery stores sell candy and sweets at the checkout, but you can control the focus and discipline that your personal computer affords you.
Somewhat related: are downloading and storing webpages practical nowadays? The Web is obviously invaluable, but even in this day and age the infrastructure isn't perfectly reliable from the perspective of an end user. And there is a sea of irrelevant information that you can get sucked into.
I was wondering if it would be possible to download (and update at regular intervals) websites which I can then use in my browser even when I'm offline. Something like downloading Wikipedia and perhaps all of Stackoverflow. If that works, I could get a lot of useful information even if I'm working in a location with no Internet/bad Internet connection. Or maybe I'm even sitting in my cubicle and purposely disconnect the Internet to stay more focused! (The problem then would be that I've grown too accustomed to streaming music through Spotify...)
(if you're not familiar with tiling window managers, they're window managers in which windows are arranged automatically to a) fully occupy the screen and b) never overlap. They're extremely customizable, but typically you'll have a vertical half of your screen with a main app, and the other half with all the other apps "stacked", with keyboard shortcuts to toggle between them and adjust various parameters (e.g. split orientation). You typically also get virtual desktops. The whole thing is fully keyboard driven (on my Xmonad, cmd + shift + enter opens a new terminal, and cmd + shift + c kills the currently selected window), and once you get used to it it's a usability dream).
On it, I have 2 graphical applications installed: a terminal emulator, because that's where I do all my work (and can launch other minor applications, such as a PDF viewer, if needed), and surf, a tab-less/control-less/URL field-less browser that you launch by typing `surf <url>`.
People make fun of me for this weird archaic setup, but it's the most productive machine I've ever used. Tiling window managers don't get in the way, and make it painful obvious when you have non work stuff open. surf forces me to not fuck around with 15000 irrelevant tabs open. It sounds like it would be a terribly crippled experience, but in practice it does not impede my workflow at all - it keeps me focused. It's gotten to the point that when I hear colleagues who complain about all their open tabs and how screwed they would be if their Chrome crashes, I feel like they come from another planet.
I don't like the whole "have some discipline" argument. Humans are notoriously bad at discipline- environment plays as much of a role as self control (try surrounding the most hardcore fitness nut by candy 24/7 and see how long they last). The point of our tools is that they should enable us to be who we want to be.