davidhollander
Joined 16 years ago
Joined 16 years ago
This doesn't apply to embedded Linux, or Linux for servers, which could be argued to be just as "traditional" a use case as Linux for desktops.
Additionally, for the desktop use case, nearly every distribution uses a different window manager anyway. There are such a wide variety of window managers, I wouldn't know how to compute an "average" between them in a meaningful way. Although I use Linux for a desktop everyday, I don't have GNOME installed, and I would barely notice if X was missing and replaced by Wayland or a different component.
> I think it's misleading to read "Linux" and imagine "desktop GNU/Linux with all the trimmings."
Right. It's not Linux for the desktop, or Linux for the phone, or Linux for embedded devices, or Linux for servers, it's Linux for the living room. My point is that due to the diversity of the Linux ecosystem, there really wasn't such a thing as a "traditional" or "average" Linux Desktop in the first place, and that we can't even say Linux for desktop is the "traditional" or "average" use of Linux. Anything running the Linux kernel should be able to call itself Linux, without qualification.
This is stating the case too strongly. Performance wise, the naive, unoptimized solution in Haskell (ex. using the default String type instead of Data.ByteString, number crunching using lots of iteration\recursion) is going to be much slower than than the naive, unoptimized solution in C or Lua. However, for a given subset of the range between "zero" and "micro" levels of optimization, for a given problem, Haskell may still represent the local maximum.
If you want a layout where a web browser takes up 60% of the width, and two terminals take up 20% of the width, it becomes not only possible but relatively easy.
So let's say I have a terminal window with VIM, and a web browser with a tutorial or documentation open up to the left of it. I quickly need to scroll the web page down to continue the example, BUT the VIM window is currently focused. Assuming the web browser can be scrolled using [J] and [K], I'll simply tap [Win-K, J, Win-J] to accomplish this task while avoiding modifying the layout or leaving the home row to use a pointing device. If I don't actually need to display multiple columns at the same time, I just press the change layout key to stop using a multicolumn layout.
So as a VIM user I've been very happy with this setup in awesome-wm for the past 2+ years, but if you wish to recommend an alternative I will definitely give it an install.
edit: I was able to write a new layout function for awesome-wm which implements diagonal cascading in the manner you described and retains my keybindings. I definitely agree that cascading makes it bluntly obvious which window is the currently focused one. I'll have to play around with it more.
For me an incredibly common task in web development is to have a web browser and 1 or more terminal windows tiled horizontally, side by side, in an [ A | B ] or [ A | [ B | C ]] configuration, where A is a web browser, and B and C are terminals.
In order for this to work for me on a screen resolution <= 1920x1080, the ratio ( width of A ) / ( width of screen ) should be dynamically adjustable using a single key combo, without causing window overlapping. If this ratio is fixed, and cannot be dynamically adjusted by the window manager, I experience one or more of the following problems at any given moment:
1. the web browser window is too narrow, causing wide documents to be clipped and a horizontal scroll bar to appear.
2. A terminal window is wider than 80 characters, causing unnecessary screen area to be consumed which could be better allocated toward the web browser.
3. A terminal window is less than 80 characters in width, preventing the entire line of code from being displayed.
To me Linux is the ideal laptop OS because it's the easiest OS to install a tiling window manager on, and a tiling window manager is what maximizes the platform's primary constraint: small screen area.
http://www.google.com/ideas/projects/arms-visualization/
> "Global illicit networks — from drug smuggling and arms dealing to human trafficking and organ harvesting — affect millions of people across the world, generating over $2.1 trillion every year. Existing, publicly available information about illicit networks is often not presented in a format that allows the patterns of trade to be easily understood. Applying the power of data visualization to this information can enable a greater understanding of the underlying mechanics of these networks, which in turn can lead to much more targeted and effective efforts to counter them."
This paragraph makes it sounds like they are interested in illicit activity in a general and abstract sense and are considering participating in the War on Drugs.
Callbacks have been around forever in C using named functions, and are not specific to either the current generation of programming languages or programmers. One can still use a named function instead of a locally constructed lambda to represent a callback in a high level languages.
The primary difference is that when declaring named functions non-locally, one must explicitly share state through the parameter rather than implicitly sharing state through lexical scoping. It seems more accurate to label the problem of nesting lambdas to the point of ambiguity as "Lambda Abuse" or "Lexical Scoping Abuse" rather than "Callback Hell".
I believe if your version of OpenSSH is up to date, sshd will read the host key each time a session is opened and does not need to be restarted.
> None of the funds made available by this Act may be used to execute a Foreign Intelligence Surveillance Court order pursuant to section 501 of the Foreign Intelligence Surveillance Act of 1978 (50 U.S.C. 1861) that does not include the following sentence: ‘‘This Order limits the collection of any tangible things (including telephone numbers dialed, telephone numbers of incoming calls, and the duration of calls) that may be authorized to be collected pursuant to this Order to those tangible things that pertain to a person who is the subject of an investigation described in section 501 of the Foreign Intelligence Surveillance Act of 1978 (50 U.S.C. 1861).
http://amendments-rules.house.gov/amendments/AMASH_018_xml27...
The ammendment's author (Justin Amash) discusses what this means here: https://www.youtube.com/watch?v=CIqJcQR0im8
For single platform 2D, research the platforms standard development kit. For cross-platform 2D, find a library exposing an API supporting all available platforms[1]. For cross platform 3D, create a list of hardware you wish to support and find the maximum common OpenGL\GLES version and GLSL shader version.
This should give you an idea of the graphics API you will be working with and need to learn.
[1] http://www.libsdl.org/ is one such library if you go this route, I believe it's used in Angry Birds and Valve's Linux port of Steam.
Regarding incarceration in the United States, despite a 10X increase in population from 31.4M to 311.8M and mandatory sentencing policies associated with the War on Drugs, the absolute number of Americans incarcerated in 2011 (2.2 million) was still less than the absolute number of Americans in slavery alone in 1860 (3.9 million).[2][3]
If you wish to move on to economic issues and contend there has been no progress in living conditions, a point the author of this article does not argue, I would challenge you to produce some actual metric and numbers for a similar period of time (after the dawn of philosophical liberalism) showing the average worker to be no better off, keeping in mind the enormous increase in life expectancy and GDP per capita which has occurred.
[1] http://en.wikipedia.org/wiki/Slavery [2] https://en.wikipedia.org/wiki/1860_United_States_Census [3] https://en.wikipedia.org/wiki/Incarceration_in_the_United_St...