Perhaps you can explain to me how to configure Xinerama such that each monitor has its own set of virtual desktops, but still allows windows to be moved from one monitor to the other.
I have spent countless hours trying to do exactly that. If it's as simple as you say it is, surely you can provide an example configuration file?
But before you do, consider the following problems:
Xinerama has the limitation that all monitors must be the same color depth. This is not always acceptable - for example, one might wish to run a fullscreen game on one monitor that runs at 8-bit color depth, while leaving the other monitors at 24-bit color depth. Xinerama does not allow you to do this.
Xinerama does not enable separate virtual desktops per-monitor. In fact, the whole point of Xinerama is to merge multiple X screens into a single virtual desktop, which is exactly the opposite of what you're describing!
Are you still going to try to tell me Xinerama does what I'm describing?
Oh, and you claimed:
You implied separate X screens. The OP just wanted separate virtual desktop switching.
Please explain how to enable separate virtual desktop switching per-monitor without running a separate X screen on each monitor. (This is the whole point of the OP's question - if this is possible at all, it's not easy to do, and there's no documentation on it. Feel free to point me to some.)
And, to drive my point home further, I'll quote the OP:
I need something in the middle — a separate workspace for each screen, so that I can have independent virtual desktops on each screen, but still have the ability to move applications between monitors (no need to strech one app across both of them).
(Emphasis mine.) I have described exactly what the OP described.
It's not about running separate window managers, it's about having a separate set of workspaces for each monitor, while still being able to drag windows between monitors.
What you've described is just one of the non-desired alternatives listed by the OP.
Your solution boils down to "use a different window manager", which might be fine, or might not. I may try XMonad at some point, but I'm sure you're aware that switching window managers requires leaving one's comfort zone for an extended period of time, which of course reduces productivity...
The OP only seems silly to you because you already knew of a solution; clearly, other people think they know the solution but really don't (by claiming xinerama+xrandr solves it), and others were not aware of anything like that.
I've googled this subject on more than one occasion, and found nothing useful, just people's blog posts complaining that they can't figure it out either. Clearly, asking slashdot is a viable solution, as evidenced by your own post.
For an OS designed around having multiple workspaces (even on GUI-less systems, we've got multiple virtual terminals), you'd think they'd design this right into every window manager.
Could you explain how you set that up? Last time I tried, I tested half a dozen permutations of configuration settings and never got it to work as I've described.
Granted, I was using Gnome - maybe KDE has exposed some options that Gnome hasn't - but this should be an X configuration thing, and I've seen no method of doing it.
Can I see a screenshot? I'm curious if we're talking about the same thing.
No... what the OP wants, and what I want, is to be able to switch workspaces on each monitor independently.
Say on the left monitor I have some log files being monitored with tail. On the right monitor I have some reference material in one workspace, and some programming stuff in another. I want to keep an eye on the logs while still being able to switch between the two workspaces on the right monitor.
I can simulate this with "pin this window to all workspaces", and running with TwinView on both monitors. But now suppose I'd like to swap freely between monitoring two things on the left monitor in separate workspaces - suddenly that solution no longer works.
So now, I need separate X screens for each monitor so I get separate workspaces per monitor.
Now let's suppose I've started a long-running process on my right-monitor programming workspace, and I want to move it to another workspace on the left monitor so I can check on its progress later without interrupting whatever I'm doing on the right monitor. Having separate X screens prevents me from doing that.
Basically I want the flexibility of having separate workspaces per-monitor, without the restriction of tying new windows to whatever X screen it was created on.
No, xinerama does not allow that. Near as I can tell, it's due to a fundament design... flaw... of X - that is, windows are tied to the X screen on which they were created.
You can set up multiple monitors such that each montior is its own X screen with its own set of workspaces. However, this prevents you from moving windows from one monitor to the other, which is what the OP wants to do, because each monitor is a separate X screen.
On the other hand, Xinerama lets you share one screen across multiple monitors. However, you only get one set of workspaces.
xinerama + xrandr does not solve the question posed by the OP. Xinerama allows the two alternatives mentioned in the OP as the undesired options (i.e. either two monitors as one screen sharing a workspace, or a separate screen on each monitor which does not allow moving windows between screens).
OP wants two monitors with their own separate workspaces, while still being able to drag windows between them.
In other words, OP wants to be able to transfer running applications between separate X screens, which to my knowledge is not currently possible (or, if it's possible, the functionality is not exposed in Gnome or KDE).
This isn't "+1 Insightful", it's "-1 Didn't bother reading the OP" (or "-1 Doesn't really know what xinerama+xrandr does").
That link just describes the two alternatives mentioned in the OP. It doesn't even address the question posed by the OP.
In other words, your link describes two monitors sharing a workspace. OP wants two monitors with separate workspaces, while still being able to drag windows between them.
Steam's Cloud stuff does exactly that. Games that are properly enabled for Steam Cloud will save your settings and save games to Valve's servers, and if you switch computers (or reformat or whatever), then logging in to your Steam account and playing that game will re-load your settings and savegames from the servers.
Not mentioning downsides to Steam is not the same as insisting it's 100% perfect.
Personally, I would rather buy games through Steam than any other distribution method, if the choice is available to me. I enjoy the ability to just download whichever game I want to play without having to dig out a CD or track down where I stashed the CD key. I enjoy the community aspects that help me keep track of my friends and join them when they're playing something. If you were to approach me on the street and give me thirty seconds to describe what I think about Steam, I'd repeat what I just said.
This does not mean I see no problems with Steam. Indeed my biggest complaint about Steam is that they provide no method for transferring game licenses to other users. However, I so rarely sell or even lend games that such an ability ranks very low on my priority list.
Other problems stem from Steam's lack of QA on third-party games sold through Steam. For example, Eidos used to sell the original Commandos through Steam (before Good Old Games) - neither company would support it. Eidos refused because Commandos was Win9x-only; Valve refused because Steam was WinXP (or newer) only. And running it as-is, downloaded from Steam, simply didn't work at all. (I managed to get Valve to refund my purchase, when it became clear that Eidos was not interested in supporting the game.) I am now somewhat reluctant to purchase older titles on Steam.
My point is, I rarely talk about these problems with Steam, because they have little to no effect on my daily use of Steam. But that usual silence does not mean I don't think Steam has room to improve. Similarly, you should not assume "sopssa didn't mention problems in this one post" is equivalent to "sopssa must think Steam is completely perfect".
Amazon is more like a 60 hour week plus being on call in case something breaks at 3AM.
That is highly dependent on which team you work for, and even then, the on-call rotation keeps you from being on call more than a few days in a row (though again that depends on the team).
For example, I only rarely work more than 40 hours, and I personally am never on call; my teammates have an on-call rotation, but they're only on call for two days every two weeks or so. They don't get paged very often.
So while the situation you describe is certainly possible at Amazon, I don't know that I'd call it typical.
Microsoft's starting salary for new graduates is competitive with Amazon's, and Amazon offered me... More than 70k.
But then, neither company is in the habit of hiring mediocre programmers, so they don't offer mediocre salaries;). If you want the best, you have to pay for it.
I've never understood that concept. If your employer fired you, why would you want to continue to work for them? I know you might need the money or something, but surely the fact that they fired you would create a less than ideal workplace environment, if not an outright hostile environment? Especially if "get your job back" involves working for the same manager...
I am speaking from experience here, to a degree. My manager fired me (literally because I insisted I be allowed to clean up code incidental to my bugfixes), but his boss overrode the firing and gave me control of IT instead. It was not exactly pleasant having to continue to interact with the former manager - and even though the manager later admitted to his boss that he was wrong to have fired me, he refused to admit it to me, and of course that meant he was unwilling to do anything to improve the work environment as it related to the interaction between our jobs.
What I'm getting at is that if I ever find myself in a similar situation again, I do not believe I would attempt to force the company to continue employing me, because I do not believe I could tolerate the resulting poor work environment.
Does anyone have any insight on this? Anyone ever been through this before? How did it work out?
Unfortunately, my iPhone 3G is a step backwards in some ways, including the lack of voice dialing without needing to pull out the phone.
My 3Gs lets me enter voice command mode without taking out the phone, if I'm using their standard headset. You just hold down the middle button on the headset wire (between the + and - volume buttons) for a few seconds. I assume the 3G is the same.
I'm not sure how or whether bluetooth headsets work with that setup, though.
I could bet a nice sum of money that if you give a traditional, learning spam filter 1000 e-mails sent by the same bot and flag those all as spam, it can then recognize the bot's further e-mails as spam.
If that were true, then by now Thunderbird's filter would stop missing all the Russian spam I get. I have no idea what the spam says, as I don't know Russian, and I never get legitimate mail in Russian; all the Russian spam I get appears very similar in format and length. I'm quite certain that Thunderbird has had over a thousand such e-mails marked as spam over the last few years, and yet it consistently fails to flag them.
Point being: traditional learning filters are not sufficient.
The/MP switch is the only thing that kept our compile times "reasonable", but that was a problem even in VS2005, so I doubt I would have noticed increased compile times. But then, those apps were giant messes of OpenGL and MFC and third-party libraries, so... blargh.
Yeah, it is weird that our experiences with the two IDEs are so opposite... I think that says something about the state of IDE usability in general. (Even if it's just that IDEs are trying to be too generally useful. Maybe more specialization would help.)
TBH I stopped caring about Javascript benchmarks (and benchmarks in general, really) when I realized you can pick benchmarks that happen to reflect the result you want to "prove".
For example, someone else linked to this benchmark (Futuremark's Peacekeeper) which puts Firefox 3.6 solidly ahead of Chrome.
Honest question: are Sunspider and V8 better than Peacekeeper? What real-world scenarios are reflected by which benchmarks? If I want a benchmark that reflects performance relevant to my normal usage, which benchmark should I rely on? If you don't know, how would I find out? ("Read the benchmark code yourself" is not helpful.)
Honest question: besides Google Docs, what real-world scenario actually needs super-fast Javascript performance? For most use cases I can think of, we're not talking about noticeable delays...
I just added a.cc file to an existing project, and yes, VC++ appears to recognize it (by which I mean, it's in the solution explorer with a "C++" icon). Is that what you mean, or was there some specific functionality you want me to test?
You could just go grab Visual C++ Express and test it yourself, though. It's free;)
If you want to argue that software should be made easier to use, I will agree with you.
That's certainly half of my argument.
The other half is just this: a working feature is better than a non-working feature; this is true whether "non-working" is my fault or the fault of the application developers. If you can't make one of the two programs work, their relative power is irrelevant;)
(Sure, having someone tell me how to make NetBeans work properly would certainly change the situation, but until such a time, I'm left with the impression that NetBeans' debugger simply doesn't work, and since Visual Studio's *does*, it's "better".)
Last time I tried CDT was about two months ago. How recently were the problems solved?
I'm told VS 2010's Intellisense plays much better with Boost, and I know from experience (working on a million-plus-lines-of-code project) that 2008's Intellisense was orders of magnitude better than 2005's.
FWIW, I noticed that Intellisense doesn't usually work properly unless I let it finish loading when first opening the project (there's a progress bar in the status bar for it). This is especially true of large projects. Perhaps this is the problem you're having?
I wrote another post somewhere about how the biggest problem with the Linux "equivalents" is that they don't just work out of the box - or, I couldn't figure out how to make them work out of the box, but for mainstream developers, there's essentially no difference.
In my case, it doesn't really matter whether NetBeans' debugger is superior to Visual Studio's debugger; since I can't figure out how to get it to work right, NetBeans' debugger may as well not exist.
From that point of view, I can claim that Visual Studio's debugger is better - because it actually works, where NetBeans' doesn't. Perhaps the fault is mine, but shouldn't it just work out of the box? Should I really have to learn how to make the debugger work, instead of just clicking "Run Debug"?
What third party libraries in particular make Intellisense die? I know Boost can sometimes make Intellisense bog down, but my experience is that the only thing that never worked *properly* has been anonymous namespaces. Even pointer accesses on boost::smart_ptr worked right. I worked for a year or so on a million-plus-line-of-code MFC C++ application using VS 2003 and then VS 2005 (before 2008 came out), and I never had a problem with third-party libraries (of which we used several), as long as you let Intellisense finish loading when you open the project. There's a progress bar and everything, it's not hard to see.
Perhaps you can explain to me how to configure Xinerama such that each monitor has its own set of virtual desktops, but still allows windows to be moved from one monitor to the other.
I have spent countless hours trying to do exactly that. If it's as simple as you say it is, surely you can provide an example configuration file?
But before you do, consider the following problems:
Xinerama has the limitation that all monitors must be the same color depth. This is not always acceptable - for example, one might wish to run a fullscreen game on one monitor that runs at 8-bit color depth, while leaving the other monitors at 24-bit color depth. Xinerama does not allow you to do this.
Xinerama does not enable separate virtual desktops per-monitor. In fact, the whole point of Xinerama is to merge multiple X screens into a single virtual desktop, which is exactly the opposite of what you're describing!
Are you still going to try to tell me Xinerama does what I'm describing?
Oh, and you claimed:
You implied separate X screens. The OP just wanted separate virtual desktop switching.
Please explain how to enable separate virtual desktop switching per-monitor without running a separate X screen on each monitor. (This is the whole point of the OP's question - if this is possible at all, it's not easy to do, and there's no documentation on it. Feel free to point me to some.)
And, to drive my point home further, I'll quote the OP:
I need something in the middle — a separate workspace for each screen, so that I can have independent virtual desktops on each screen, but still have the ability to move applications between monitors (no need to strech one app across both of them).
(Emphasis mine.) I have described exactly what the OP described.
I don't see the point of spreading an application across two physical monitors.
For the use style I'm describing here, you wouldn't want any windows spread across both monitors.
There's no need to make it do *everything*, just certain sets of things. There's no real reason X shouldn't be able to move a window between screens.
It's not about running separate window managers, it's about having a separate set of workspaces for each monitor, while still being able to drag windows between monitors.
What you've described is just one of the non-desired alternatives listed by the OP.
It's not a distro question, it's a WM question.
Your solution boils down to "use a different window manager", which might be fine, or might not. I may try XMonad at some point, but I'm sure you're aware that switching window managers requires leaving one's comfort zone for an extended period of time, which of course reduces productivity...
The OP only seems silly to you because you already knew of a solution; clearly, other people think they know the solution but really don't (by claiming xinerama+xrandr solves it), and others were not aware of anything like that.
I've googled this subject on more than one occasion, and found nothing useful, just people's blog posts complaining that they can't figure it out either. Clearly, asking slashdot is a viable solution, as evidenced by your own post.
For an OS designed around having multiple workspaces (even on GUI-less systems, we've got multiple virtual terminals), you'd think they'd design this right into every window manager.
Could you explain how you set that up? Last time I tried, I tested half a dozen permutations of configuration settings and never got it to work as I've described.
Granted, I was using Gnome - maybe KDE has exposed some options that Gnome hasn't - but this should be an X configuration thing, and I've seen no method of doing it.
Can I see a screenshot? I'm curious if we're talking about the same thing.
No... what the OP wants, and what I want, is to be able to switch workspaces on each monitor independently.
Say on the left monitor I have some log files being monitored with tail. On the right monitor I have some reference material in one workspace, and some programming stuff in another. I want to keep an eye on the logs while still being able to switch between the two workspaces on the right monitor.
I can simulate this with "pin this window to all workspaces", and running with TwinView on both monitors. But now suppose I'd like to swap freely between monitoring two things on the left monitor in separate workspaces - suddenly that solution no longer works.
So now, I need separate X screens for each monitor so I get separate workspaces per monitor.
Now let's suppose I've started a long-running process on my right-monitor programming workspace, and I want to move it to another workspace on the left monitor so I can check on its progress later without interrupting whatever I'm doing on the right monitor. Having separate X screens prevents me from doing that.
Basically I want the flexibility of having separate workspaces per-monitor, without the restriction of tying new windows to whatever X screen it was created on.
No, xinerama does not allow that. Near as I can tell, it's due to a fundament design... flaw... of X - that is, windows are tied to the X screen on which they were created.
You can set up multiple monitors such that each montior is its own X screen with its own set of workspaces. However, this prevents you from moving windows from one monitor to the other, which is what the OP wants to do, because each monitor is a separate X screen.
On the other hand, Xinerama lets you share one screen across multiple monitors. However, you only get one set of workspaces.
OP wants the best of both worlds.
You don't need synergy for that. Xinerama lets you do that natively. What the OP wants to do is be able to move windows between X screens.
xinerama + xrandr does not solve the question posed by the OP. Xinerama allows the two alternatives mentioned in the OP as the undesired options (i.e. either two monitors as one screen sharing a workspace, or a separate screen on each monitor which does not allow moving windows between screens).
OP wants two monitors with their own separate workspaces, while still being able to drag windows between them.
In other words, OP wants to be able to transfer running applications between separate X screens, which to my knowledge is not currently possible (or, if it's possible, the functionality is not exposed in Gnome or KDE).
This isn't "+1 Insightful", it's "-1 Didn't bother reading the OP" (or "-1 Doesn't really know what xinerama+xrandr does").
That link just describes the two alternatives mentioned in the OP. It doesn't even address the question posed by the OP.
In other words, your link describes two monitors sharing a workspace. OP wants two monitors with separate workspaces, while still being able to drag windows between them.
Steam's Cloud stuff does exactly that. Games that are properly enabled for Steam Cloud will save your settings and save games to Valve's servers, and if you switch computers (or reformat or whatever), then logging in to your Steam account and playing that game will re-load your settings and savegames from the servers.
Not mentioning downsides to Steam is not the same as insisting it's 100% perfect.
Personally, I would rather buy games through Steam than any other distribution method, if the choice is available to me. I enjoy the ability to just download whichever game I want to play without having to dig out a CD or track down where I stashed the CD key. I enjoy the community aspects that help me keep track of my friends and join them when they're playing something. If you were to approach me on the street and give me thirty seconds to describe what I think about Steam, I'd repeat what I just said.
This does not mean I see no problems with Steam. Indeed my biggest complaint about Steam is that they provide no method for transferring game licenses to other users. However, I so rarely sell or even lend games that such an ability ranks very low on my priority list.
Other problems stem from Steam's lack of QA on third-party games sold through Steam. For example, Eidos used to sell the original Commandos through Steam (before Good Old Games) - neither company would support it. Eidos refused because Commandos was Win9x-only; Valve refused because Steam was WinXP (or newer) only. And running it as-is, downloaded from Steam, simply didn't work at all. (I managed to get Valve to refund my purchase, when it became clear that Eidos was not interested in supporting the game.) I am now somewhat reluctant to purchase older titles on Steam.
My point is, I rarely talk about these problems with Steam, because they have little to no effect on my daily use of Steam. But that usual silence does not mean I don't think Steam has room to improve. Similarly, you should not assume "sopssa didn't mention problems in this one post" is equivalent to "sopssa must think Steam is completely perfect".
Amazon is more like a 60 hour week plus being on call in case something breaks at 3AM.
That is highly dependent on which team you work for, and even then, the on-call rotation keeps you from being on call more than a few days in a row (though again that depends on the team).
For example, I only rarely work more than 40 hours, and I personally am never on call; my teammates have an on-call rotation, but they're only on call for two days every two weeks or so. They don't get paged very often.
So while the situation you describe is certainly possible at Amazon, I don't know that I'd call it typical.
Microsoft's starting salary for new graduates is competitive with Amazon's, and Amazon offered me... More than 70k.
But then, neither company is in the habit of hiring mediocre programmers, so they don't offer mediocre salaries ;). If you want the best, you have to pay for it.
suing to get your job back
I've never understood that concept. If your employer fired you, why would you want to continue to work for them? I know you might need the money or something, but surely the fact that they fired you would create a less than ideal workplace environment, if not an outright hostile environment? Especially if "get your job back" involves working for the same manager...
I am speaking from experience here, to a degree. My manager fired me (literally because I insisted I be allowed to clean up code incidental to my bugfixes), but his boss overrode the firing and gave me control of IT instead. It was not exactly pleasant having to continue to interact with the former manager - and even though the manager later admitted to his boss that he was wrong to have fired me, he refused to admit it to me, and of course that meant he was unwilling to do anything to improve the work environment as it related to the interaction between our jobs.
What I'm getting at is that if I ever find myself in a similar situation again, I do not believe I would attempt to force the company to continue employing me, because I do not believe I could tolerate the resulting poor work environment.
Does anyone have any insight on this? Anyone ever been through this before? How did it work out?
Unfortunately, my iPhone 3G is a step backwards in some ways, including the lack of voice dialing without needing to pull out the phone.
My 3Gs lets me enter voice command mode without taking out the phone, if I'm using their standard headset. You just hold down the middle button on the headset wire (between the + and - volume buttons) for a few seconds. I assume the 3G is the same.
I'm not sure how or whether bluetooth headsets work with that setup, though.
I could bet a nice sum of money that if you give a traditional, learning spam filter 1000 e-mails sent by the same bot and flag those all as spam, it can then recognize the bot's further e-mails as spam.
If that were true, then by now Thunderbird's filter would stop missing all the Russian spam I get. I have no idea what the spam says, as I don't know Russian, and I never get legitimate mail in Russian; all the Russian spam I get appears very similar in format and length. I'm quite certain that Thunderbird has had over a thousand such e-mails marked as spam over the last few years, and yet it consistently fails to flag them.
Point being: traditional learning filters are not sufficient.
This is anecdotal evidence, YMMV, etc etc.
The /MP switch is the only thing that kept our compile times "reasonable", but that was a problem even in VS2005, so I doubt I would have noticed increased compile times. But then, those apps were giant messes of OpenGL and MFC and third-party libraries, so... blargh.
Yeah, it is weird that our experiences with the two IDEs are so opposite... I think that says something about the state of IDE usability in general. (Even if it's just that IDEs are trying to be too generally useful. Maybe more specialization would help.)
I'll add my voice to the chorus - I wouldn't mind living next to or near a nuclear power plant either.
TBH I stopped caring about Javascript benchmarks (and benchmarks in general, really) when I realized you can pick benchmarks that happen to reflect the result you want to "prove".
For example, someone else linked to this benchmark (Futuremark's Peacekeeper) which puts Firefox 3.6 solidly ahead of Chrome.
Honest question: are Sunspider and V8 better than Peacekeeper? What real-world scenarios are reflected by which benchmarks? If I want a benchmark that reflects performance relevant to my normal usage, which benchmark should I rely on? If you don't know, how would I find out? ("Read the benchmark code yourself" is not helpful.)
Honest question: besides Google Docs, what real-world scenario actually needs super-fast Javascript performance? For most use cases I can think of, we're not talking about noticeable delays...
I just added a .cc file to an existing project, and yes, VC++ appears to recognize it (by which I mean, it's in the solution explorer with a "C++" icon). Is that what you mean, or was there some specific functionality you want me to test?
You could just go grab Visual C++ Express and test it yourself, though. It's free ;)
If you want to argue that software should be made easier to use, I will agree with you.
That's certainly half of my argument.
The other half is just this: a working feature is better than a non-working feature; this is true whether "non-working" is my fault or the fault of the application developers. If you can't make one of the two programs work, their relative power is irrelevant ;)
(Sure, having someone tell me how to make NetBeans work properly would certainly change the situation, but until such a time, I'm left with the impression that NetBeans' debugger simply doesn't work, and since Visual Studio's *does*, it's "better".)
Last time I tried CDT was about two months ago. How recently were the problems solved?
I'm told VS 2010's Intellisense plays much better with Boost, and I know from experience (working on a million-plus-lines-of-code project) that 2008's Intellisense was orders of magnitude better than 2005's.
FWIW, I noticed that Intellisense doesn't usually work properly unless I let it finish loading when first opening the project (there's a progress bar in the status bar for it). This is especially true of large projects. Perhaps this is the problem you're having?
Agreed.
I wrote another post somewhere about how the biggest problem with the Linux "equivalents" is that they don't just work out of the box - or, I couldn't figure out how to make them work out of the box, but for mainstream developers, there's essentially no difference.
In my case, it doesn't really matter whether NetBeans' debugger is superior to Visual Studio's debugger; since I can't figure out how to get it to work right, NetBeans' debugger may as well not exist.
From that point of view, I can claim that Visual Studio's debugger is better - because it actually works, where NetBeans' doesn't. Perhaps the fault is mine, but shouldn't it just work out of the box? Should I really have to learn how to make the debugger work, instead of just clicking "Run Debug"?
What third party libraries in particular make Intellisense die? I know Boost can sometimes make Intellisense bog down, but my experience is that the only thing that never worked *properly* has been anonymous namespaces. Even pointer accesses on boost::smart_ptr worked right. I worked for a year or so on a million-plus-line-of-code MFC C++ application using VS 2003 and then VS 2005 (before 2008 came out), and I never had a problem with third-party libraries (of which we used several), as long as you let Intellisense finish loading when you open the project. There's a progress bar and everything, it's not hard to see.