The shift to Lua and coprocess model will be pretty significant improvements. You can easily max out a Core 2 Duo with certain ctags or git plugins, and having an easier way to identify the guilty party will be rather helpful.
You're missing the context. Currently, shipping from Amazon is about $15-$30 to Aus, and can be as high as $50 for larger packages. So even at $99/year, you'd break even quite easily. Not to mention the amount of stuff (especially electronics) that only ships to the US...
Therefore, you don't hate guns. You hate average people having guns. And that speaks higher volumes about your hypocrisy than anything else -- Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
While I wouldn't describe myself as gun-hating, I think there is a strong argument to be made that gun owners should be held to a higher standard than the average person (in much the same way that pilots are).
ubuntu is a steaming turd because they tried to remove the scroll bars, I see freaking Chrome and Firefox also doing this stupid trick as well on all platforms.
It makes me want to beat developers with a sack of doorknobs.
On what platforms does Chrome not have scrollbars? I'm using Chrome right now and it has one.
Take a look at the T440p (i.e. the flagship thinkpad). They've removed the mouse buttons, but apart from that it meets all the criteria on your list. At the rate things are going, it's probably going to be the last model with physical function keys.
It would probably have been less work to just change the default interpreter back to python 2.5, and edit only the 'one piece of software' that required python 3 to/usr/bin/python3
The second bit wouldn't even be necessary - as far as I'm aware, the only distro that made python3 the default was Arch. Because python2 is still the default on most systems and incompatible with python3, most programmers working in Python 3 explicitly specify python3 in the shebang. (Using/usr/bin/python only is considered poor practice for this exact reason.)
The reason is that Python 3 does not have a decent MySQL connector.
And that's precisely what this article is about - supporting pre-2.7 and 3.x are almost mutually exclusive due to changes in the language. Once written in 2.7, it's often possible to support 3 via a tool like six.
Even if a computer can't predict that as far ahead as a human, it can react much faster. Human reaction time is about 200 ms, but a computer could easily react within about 30 ms. That should be enough to compensate for the intelligence described in the vast majority of situations.
On page 10, the inability to have reserve banking is discussed. Could you explain why reserve banking is useful? As far as I can tell, it simply inflates the perceived amount of money present in the system beyond that actually present, introducing a potential failure mode (a bank run).
What'r the chances of getting stuck in ice in Antarctica during the summer months of 2013-2014, when global warming is at it's peak (tongue in cheek) - not once, but TWICE?
Not great.
However, if you asked "what are the chances of getting stuck in ice in Antarctica during the summer, given that it just happened to another ship nearby?", I'd say reasonably high. Conditional probability in action.
I'm in my early 20s, and very much grew up with GUIs and Windows. Despite this, I now use Vim (cue flame war) as my text editor after seeing how fast proficient users could be with it. I have a friend who uses Emacs as his desktop environment - no KDE or Gnome, just Emacs. Both are powerful text editors with niche uses. e.g. programming. While fewer people are learning them now that they are no longer the default text editors on most distros, they're hardly dying.
tar -axf - automatically chooses compression algorithm based on extension zsh - the autocomplete alone is worth it compared to bash (use oh-my-zsh to simplify setup). Right-hand prompts are pretty nice once you get used to them. pv - pipe streams through it for a graphical progress bar nice/ionice - lower the priority of background processes ack - faster alternative to grep with better output formatting lsblk/lscpu/lshw/lspci/lsusb - view attached hardware. lshw is great for a comprehensive list, and lsblk recognizes raid, encrypted volumes, etc. pwgen - useful for generating passwords apt-file/dpkg/$YOUR_PACKAGE_MANAGER - read the man pages - commands for determining which package a file belongs to (esp. if that package isn't installed) are particularly useful Yakuake - not a CLI tool, but being able to pull up a terminal with a single keypress is pretty handy
I'm currently in the process of setting up something like this. Kolab is a FOSS groupware server that can synchronize emails, to do lists, calenders, notes, etc. across multiple devices. You can access it from the included web interface (roundcube), the recommended client (Kontact), or via Outlook with the connector installed. Android support is available via ActiveSync, and I believe Kontact Touch will be ported to Android now that Qt 5 supports it.)
If you're not interested in running your own server, there're also sites like this which sell accounts.
Here are some notes on my experiences setting it up, for anyone interested:
Make sure you read the documentation first, because Kolab is too complex to just jump right in and hit the ground running. In particular, make sure you have a FQDN
Kolab pulls in a bunch of different daemons, including apache2, cyrus, mysql, postfix, slapd, clamav. It's a fairly heavy-weight solution, since it was developed with enterprise users in mind.
Multiple users can use a single installation. Users can be added/removed from a web interface.
By default, nothing uses SSL. This is undesirable if you're planning on connecting to it over the internet. The LDAP server uses a different SSL stack to the rest of the daemons (NSS), and you'll definitely want to run it over SSL because it sends passwords in plaintext. The easiest solution I found was to create a CA cert with certutil, use that to create the certificate for use with LDAP, then export that certificate to PEM format and use it for everything else. LDAP needs to be configured online, but all the other daemons just have configuration files with entries for the path to the certificates.
On some distros, Kontact may not be compiled with Kolab support. (e.g. Sabayon)
RSS syncing is currently the only feature in Kontact that doesn't sync with Kolab (AFAIK), although you can embed tt-rss in the web interface.
How does Octave or any other open source tool hold up against something with so many resources behind it?
Background: I'm an ECSE student who has used both throughout my course.
Octave is very much like LibreOffice - it's usually good enough to use instead of MATLAB, but it's not perfect. Most of the functions are there, though some which are commonly used but not strictly necessary (e.g. importdata) are not. Octave's syntax is also looser than MATLAB's (you can use ! instead of ~ for logical negation), which means that you still need to test a program in MATLAB if that's what the recipient is going to be running it in.
Its main advantages are its cost and size - Octave is free and a full installation is 42 MB, whereas MATLAB costs tens of thousands and takes up about 5 GB. MATLAB also has rather cumbersome DRM that can cause issues.
The main disadvantage is speed. Running a SVD on a largish matrix (e.g. 350x350) is one or two orders of magnitude slower under Octave compared to MATLAB. i.e. it takes 10 min instead of 10 seconds. That's a pretty niche use though - most of the computations people use MATLAB for aren't particularly intensive.
It doesn't matter if they give him his wallets - they've already emptied them into a new one. The original wallet files will let him access his now empty wallets, but not the bitcoin that were once in them.
Hardware RAID is a bad idea for backups, as the card is a single point of failure, and anything not from the exact same batch may use a different (proprietary) RAID format. At least with Linux softraid (either mdadm or btrfs/ZFS), you can always download a copy of the source and checkout the old version, if necessary.
Which version of the kernel and btrfs-progs are you using? Some distros are still shipping ancient versions of the userspace tools, like 0.19 or 0.20. The latest is 3.12 (they recently started using the kernel version instead), so you may want to try compiling it from the source. The two most helpful commands I've found are 'mount -o recovery', which can restore the superblock if it's missing/corrupted, and 'btrfs check --repair' (formerly btrfsck). Note that check doesn't actually fix the errors it finds without that flag, unlike fsck. If you have a multi-device file system, trying to mount one of the other drives can help, since copies of the metadata are stored on all of them (RAID1 style). If that doesn't work, you can often get the data off by mounting it as readonly, or by using 'btrfs restore'.
Btrfs used to be quite buggy, but these days I've found it to be pretty stable and reliable. That only applies if you're using the latest packages though - otherwise, you might as well be using it back in the early days.
It's called a guaranteed minimum income. What you are saying is minimum wage. The fancy term you have latched onto is 'minimum income' because 'minimum wage' has started to 'sound bad' and is 'demeaning'. As an aside I would ask you where did you pick up this term?
Minimum income is not the same as minimum wage. Minimum wage is the min. amount you can be paid (per hour) if you have a job. (Guaranteed) minimum income is the minimum amount each person receives each year, regardless of whether they have a job or not.
In the absence of min wage (which you seem to advocate), as robotic labour replaces human labour the supply will exceed demand, and wages will approach zero asymptotically. Below a certain point, people with jobs will not be able to sustain themselves, let alone those who are unemployed. GMI is one proposed solution to ensure that their basic requirements (food, water, shelter, etc.) are met.
Have you tried dealing with major transitions in a rolling release? e.g. sysvinit to systemd or upstart?
As a Sabayon user who just went through this, it was fairly trivial. `eselect sysvinit set systemd` to change, `eselect sysvinit set sysvinit` to change back. SystemD is the default on new installs, but existing ones remain on OpenRC, which is still supported.
The trick to major transitions like these is to not force them; the users should have the choice to keep using the old version until it's unsupported. (It doesn't hurt that all major versions of most packages are still available in Portage.)
I've implemented the thought experiment above as an Octave script, if anyone feels like playing around with it.
function y = main()
clc; clear; close all;
gen = 20000; %no of iterations
N = 50; %no of people
limit = 12; %net worth cap is this times min net worth
y = ones(N, gen);
My understanding is that they went with KDE. The KDE alternative to Exchange and Outlook is Kolab (server) and Kontact (client). It has some enterprise use, though I don't know if it has the features you mention.
Someone wrote that grading on a curve works in academia but not in industry. Why should it work for grading exams when it doesn't for ranking the workers? Especially the academics that are using it should know better.
The use of a curve in academia is more practical because the student's primary output is the grade, which is numeric. In contrast, the primary output of an employee is the work they do, which can only be (poorly) measured by metrics. Whether or not it's a good idea is a separate question though.
Finally, the second fallacy why this is fundamentally broken is the assumption that the skill distribution in a work team or class is normal (follows a bell curve). There is absolutely no guarantee of that, because, heck, you aren't hiring the idiots, are you? I am sure that the company is hiring only "rock star" developers. Same with the students - they have to pass stringent exams and fulfill admission criteria that the majority of the population isn't able. So you have a sample here that isn't representative of the entire population (where the bell curve would be valid) and all bets are off, because the system was built on an invalid assumption. The most extreme example of this is the constant distribution - the case when all students turn in blank sheet of paper (identical "skill" level) for their exam and still pass. You would have to pick the students or hire employees randomly out of the entire population if you wanted to have a normal distribution of skill. Not very practical, though.
This isn't quite true, and seems to be based on the idea that people are reducible to one-dimensional numbers. Yes, the ability of the individuals (as measured by the admission/hiring process) will be a truncated bell curve (the highest N candidates from the applicant distribution). But the quality of the work done will be normally distributed, because there are countless other factors that contribute to the result. The only exception to this is when they operate collectively to alter the distribution, as in the example you gave above.
My opinion on the subject (as a student) is that relative grades are somewhat useful, since they help to normalize for the difficulty of different units, which would otherwise penalize students who took harder units. However, the scaling or change in grades should be monitored, since a change of more than 15% indicates something very wrong with the unit.
Perhaps more fundamental is the idea that the grade distribution should only be translated, not made to fit any particular distribution. This ensures that the average mark can be adjusted, while ensuring that the relative grades are retained.
Another line of thought is that scaling should only ever increase marks, not decrease them, so as to avoid demotivating students. Increasing the difficulty of the unit in future years is the preferable solution for that.
The shift to Lua and coprocess model will be pretty significant improvements. You can easily max out a Core 2 Duo with certain ctags or git plugins, and having an easier way to identify the guilty party will be rather helpful.
You're missing the context. Currently, shipping from Amazon is about $15-$30 to Aus, and can be as high as $50 for larger packages. So even at $99/year, you'd break even quite easily. Not to mention the amount of stuff (especially electronics) that only ships to the US...
Therefore, you don't hate guns. You hate average people having guns. And that speaks higher volumes about your hypocrisy than anything else
--
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
While I wouldn't describe myself as gun-hating, I think there is a strong argument to be made that gun owners should be held to a higher standard than the average person (in much the same way that pilots are).
ubuntu is a steaming turd because they tried to remove the scroll bars, I see freaking Chrome and Firefox also doing this stupid trick as well on all platforms.
It makes me want to beat developers with a sack of doorknobs.
On what platforms does Chrome not have scrollbars? I'm using Chrome right now and it has one.
Take a look at the T440p (i.e. the flagship thinkpad). They've removed the mouse buttons, but apart from that it meets all the criteria on your list. At the rate things are going, it's probably going to be the last model with physical function keys.
It would probably have been less work to just change the default interpreter back to python 2.5, and edit only the 'one piece of software' that required python 3 to /usr/bin/python3
The second bit wouldn't even be necessary - as far as I'm aware, the only distro that made python3 the default was Arch. Because python2 is still the default on most systems and incompatible with python3, most programmers working in Python 3 explicitly specify python3 in the shebang. (Using /usr/bin/python only is considered poor practice for this exact reason.)
The reason is that Python 3 does not have a decent MySQL connector.
And that's precisely what this article is about - supporting pre-2.7 and 3.x are almost mutually exclusive due to changes in the language. Once written in 2.7, it's often possible to support 3 via a tool like six.
Even if a computer can't predict that as far ahead as a human, it can react much faster. Human reaction time is about 200 ms, but a computer could easily react within about 30 ms. That should be enough to compensate for the intelligence described in the vast majority of situations.
On page 10, the inability to have reserve banking is discussed. Could you explain why reserve banking is useful? As far as I can tell, it simply inflates the perceived amount of money present in the system beyond that actually present, introducing a potential failure mode (a bank run).
What'r the chances of getting stuck in ice in Antarctica during the summer months of 2013-2014, when global warming is at it's peak (tongue in cheek) - not once, but TWICE?
Not great.
However, if you asked "what are the chances of getting stuck in ice in Antarctica during the summer, given that it just happened to another ship nearby?", I'd say reasonably high. Conditional probability in action.
I'm in my early 20s, and very much grew up with GUIs and Windows. Despite this, I now use Vim (cue flame war) as my text editor after seeing how fast proficient users could be with it. I have a friend who uses Emacs as his desktop environment - no KDE or Gnome, just Emacs.
Both are powerful text editors with niche uses. e.g. programming. While fewer people are learning them now that they are no longer the default text editors on most distros, they're hardly dying.
tar -axf - automatically chooses compression algorithm based on extension
zsh - the autocomplete alone is worth it compared to bash (use oh-my-zsh to simplify setup). Right-hand prompts are pretty nice once you get used to them.
pv - pipe streams through it for a graphical progress bar
nice/ionice - lower the priority of background processes
ack - faster alternative to grep with better output formatting
lsblk/lscpu/lshw/lspci/lsusb - view attached hardware. lshw is great for a comprehensive list, and lsblk recognizes raid, encrypted volumes, etc.
pwgen - useful for generating passwords
apt-file/dpkg/$YOUR_PACKAGE_MANAGER - read the man pages - commands for determining which package a file belongs to (esp. if that package isn't installed) are particularly useful
Yakuake - not a CLI tool, but being able to pull up a terminal with a single keypress is pretty handy
I'm currently in the process of setting up something like this.
Kolab is a FOSS groupware server that can synchronize emails, to do lists, calenders, notes, etc. across multiple devices. You can access it from the included web interface (roundcube), the recommended client (Kontact), or via Outlook with the connector installed. Android support is available via ActiveSync, and I believe Kontact Touch will be ported to Android now that Qt 5 supports it.)
If you're not interested in running your own server, there're also sites like this which sell accounts.
Here are some notes on my experiences setting it up, for anyone interested:
How does Octave or any other open source tool hold up against something with so many resources behind it?
Background: I'm an ECSE student who has used both throughout my course.
Octave is very much like LibreOffice - it's usually good enough to use instead of MATLAB, but it's not perfect. Most of the functions are there, though some which are commonly used but not strictly necessary (e.g. importdata) are not. Octave's syntax is also looser than MATLAB's (you can use ! instead of ~ for logical negation), which means that you still need to test a program in MATLAB if that's what the recipient is going to be running it in.
Its main advantages are its cost and size - Octave is free and a full installation is 42 MB, whereas MATLAB costs tens of thousands and takes up about 5 GB. MATLAB also has rather cumbersome DRM that can cause issues.
The main disadvantage is speed. Running a SVD on a largish matrix (e.g. 350x350) is one or two orders of magnitude slower under Octave compared to MATLAB. i.e. it takes 10 min instead of 10 seconds. That's a pretty niche use though - most of the computations people use MATLAB for aren't particularly intensive.
It doesn't matter if they give him his wallets - they've already emptied them into a new one. The original wallet files will let him access his now empty wallets, but not the bitcoin that were once in them.
The article is pretty light on details, but what dependency resolution algorithm has exponential scaling? Topological sorts are usually O(V + E).
Hardware RAID is a bad idea for backups, as the card is a single point of failure, and anything not from the exact same batch may use a different (proprietary) RAID format. At least with Linux softraid (either mdadm or btrfs/ZFS), you can always download a copy of the source and checkout the old version, if necessary.
Which version of the kernel and btrfs-progs are you using? Some distros are still shipping ancient versions of the userspace tools, like 0.19 or 0.20. The latest is 3.12 (they recently started using the kernel version instead), so you may want to try compiling it from the source.
The two most helpful commands I've found are 'mount -o recovery', which can restore the superblock if it's missing/corrupted, and 'btrfs check --repair' (formerly btrfsck). Note that check doesn't actually fix the errors it finds without that flag, unlike fsck. If you have a multi-device file system, trying to mount one of the other drives can help, since copies of the metadata are stored on all of them (RAID1 style).
If that doesn't work, you can often get the data off by mounting it as readonly, or by using 'btrfs restore'.
Btrfs used to be quite buggy, but these days I've found it to be pretty stable and reliable. That only applies if you're using the latest packages though - otherwise, you might as well be using it back in the early days.
It's called a guaranteed minimum income.
What you are saying is minimum wage. The fancy term you have latched onto is 'minimum income' because 'minimum wage' has started to 'sound bad' and is 'demeaning'. As an aside I would ask you where did you pick up this term?
Minimum income is not the same as minimum wage. Minimum wage is the min. amount you can be paid (per hour) if you have a job. (Guaranteed) minimum income is the minimum amount each person receives each year, regardless of whether they have a job or not.
In the absence of min wage (which you seem to advocate), as robotic labour replaces human labour the supply will exceed demand, and wages will approach zero asymptotically. Below a certain point, people with jobs will not be able to sustain themselves, let alone those who are unemployed. GMI is one proposed solution to ensure that their basic requirements (food, water, shelter, etc.) are met.
I have one for porn and one I am going to make for litecoin trading as bitcoin is too expensive already :-(
Why is the high price an issue, given that it's divisible down to 8 decimal places?
Have you tried dealing with major transitions in a rolling release? e.g. sysvinit to systemd or upstart?
As a Sabayon user who just went through this, it was fairly trivial. `eselect sysvinit set systemd` to change, `eselect sysvinit set sysvinit` to change back.
SystemD is the default on new installs, but existing ones remain on OpenRC, which is still supported.
The trick to major transitions like these is to not force them; the users should have the choice to keep using the old version until it's unsupported. (It doesn't hurt that all major versions of most packages are still available in Portage.)
What are your thoughts on KDE Kolab?
I've implemented the thought experiment above as an Octave script, if anyone feels like playing around with it.
function y = main()
clc; clear; close all;
gen = 20000; %no of iterations
N = 50; %no of people
limit = 12; %net worth cap is this times min net worth
y = ones(N, gen);
for i=2:gen
y(:, i) = y(:, i-1);
selection = select(y(:, i), i);
%y(selection, i) = 1.01*y(selection, i);
y(selection, i) = min(1.01*y(selection, i), limit*min(y(:, i)));
end
plot(y');
grid on;
y = y(:, gen);
end
function i = select(y)
%selects an element from the vector y using proportional selection
n = rand()*sum(y);
count = 0;
for i=1:length(y)
count += y(i);
if(n <= count)
return;
end
end
i = length(y);
end
My understanding is that they went with KDE. The KDE alternative to Exchange and Outlook is Kolab (server) and Kontact (client).
It has some enterprise use, though I don't know if it has the features you mention.
Someone wrote that grading on a curve works in academia but not in industry. Why should it work for grading exams when it doesn't for ranking the workers? Especially the academics that are using it should know better.
The use of a curve in academia is more practical because the student's primary output is the grade, which is numeric. In contrast, the primary output of an employee is the work they do, which can only be (poorly) measured by metrics. Whether or not it's a good idea is a separate question though.
Finally, the second fallacy why this is fundamentally broken is the assumption that the skill distribution in a work team or class is normal (follows a bell curve). There is absolutely no guarantee of that, because, heck, you aren't hiring the idiots, are you? I am sure that the company is hiring only "rock star" developers. Same with the students - they have to pass stringent exams and fulfill admission criteria that the majority of the population isn't able. So you have a sample here that isn't representative of the entire population (where the bell curve would be valid) and all bets are off, because the system was built on an invalid assumption.
The most extreme example of this is the constant distribution - the case when all students turn in blank sheet of paper (identical "skill" level) for their exam and still pass. You would have to pick the students or hire employees randomly out of the entire population if you wanted to have a normal distribution of skill. Not very practical, though.
This isn't quite true, and seems to be based on the idea that people are reducible to one-dimensional numbers. Yes, the ability of the individuals (as measured by the admission/hiring process) will be a truncated bell curve (the highest N candidates from the applicant distribution). But the quality of the work done will be normally distributed, because there are countless other factors that contribute to the result. The only exception to this is when they operate collectively to alter the distribution, as in the example you gave above.
My opinion on the subject (as a student) is that relative grades are somewhat useful, since they help to normalize for the difficulty of different units, which would otherwise penalize students who took harder units. However, the scaling or change in grades should be monitored, since a change of more than 15% indicates something very wrong with the unit.
Perhaps more fundamental is the idea that the grade distribution should only be translated, not made to fit any particular distribution. This ensures that the average mark can be adjusted, while ensuring that the relative grades are retained.
Another line of thought is that scaling should only ever increase marks, not decrease them, so as to avoid demotivating students. Increasing the difficulty of the unit in future years is the preferable solution for that.