Truetype support sucked on linux back then, so it was a very short lived exercise.
TrueType support still sucks on Linux by default: most distros use the dreadful Freetype auto-hinter, which inflicts unspeakably mangled contortions on font outlines in its misguided desperation to ensure that everything lines up exactly with pixels.
However, it is possible to configure it to use real TrueType hinting (if you like the Windows look and don't care about software patents), and it's also possible to turn hinting off completely and get fonts that look just like the ones on a Mac (very true to the printed appearance, but some people find them too blurry). Do whichever of those two things you prefer, and you can end up with something that you can read without wanting to claw out your own eyeballs in horror.
Does anyone here regularly install those fonts on any linux computer they use? I know I haven't.
Yes; in fact it's not uncommon. For example, Debian's statistics suggest that msttcorefonts is by far the most popular package in their contrib/X11 section, though it's only 1/6 as popular as e.g. the DejaVu fonts.
And most stories are just variations of other stories, and most songs are just variations of other songs, and so on. Nihil sub sole novum, and all that -- people have been making this same observation for millenia. Yet for some reason you won't find many people who think it's time to stop coming up with new stories or songs.
Geek argument: Linux is just a variation of Unix,* but you won't find many Slashdotters arguing that people should be allowed to exploit Linux without respecting the wishes of its creators.
* In the sense that most fonts are variations of other fonts; I'm not claiming Linux includes Unix code or anything.
The thing is that font designs aren't actually copyrightable in the US.
The outlines aren't. As you note, the expression of those outlines in a specific digital format might be, and a professional TrueType file -- which literally contains a computer program that is executed to produce hinted outlines -- certainly is.
So, in the USA you can print out a font, trace the outlines, and do pretty much anything you like with them, but you'd be unwise to copy a font file directly.
Also, the USA is just one part of a big world, and other places do things differently. In the United Kingdom, for example, it seems fonts are copyrightable, with protection lasting for a surprisingly reasonable 25 years.
because of the legalese, I am not confident to use it or any software using that license for commercial use without legal advice; which increases the cost of using GPL software on a commercial level.
But at least once you've got legal advice on the GPL once, you can freely follow that advice for any of the many software packages that are licensed under it.
This compares rather favourably to the situation in the closed-source world, where every single EULA is different, and they are all many, many times longer and more complex than the GPL. Yet for some reason nobody ever cites the legalese as a reason to avoid using Microsoft Windows commercially...
I'm going to look into using Javascript for that just because I like the idea of using my natural enemy's technology against itself (I don't think they provide regular expressions though:(.)
Actually, JavaScript has regular expressions integrated into the language, in a fairly similar way to Perl or Ruby. Read the documentation; it's quite good.
It's true that dynamic typing is a clock-cycle hog, but almost all new languages use it...
They do? Exactly what are you basing that claim on? I would have said exactly the opposite: I can only think of one or two new languages that have dynamic types, but could easily reel off a list of a dozen or so with static types.
Maybe we're defining "new languages" differently. It's rather an ambiguous term.
In general, JIT systems can really provide CPU performance near C speed
You mean "in theory", not "in general". In general, real-world JIT systems are significantly slower than native code, though they certainly are noticably faster than regular bytecode, which in turn is faster than a pure interpreter.
Linux users are notoriously cheap (I guess I can't speak for all but _I_ am a cheap Linux user) so they can't ever make a dime from them and in turn they don't represent a market.
Don't mistake "reluctant to pay for software" for "hostile to making money". I use Linux, and I've paid for some of the software I use (where it's better than the free alternatives -- which is surprisingly rare), but above and beyond that a fair number of people are profiting by selling me services, like subscriptions to various online resources. And quite a lot of people are profiting without selling me anything at all: advertisers don't pay any more for Windows impressions than for Linux impressions, you know...
Your example uses a const std::vector<T> . He's talking about const std::vector<T*> , i.e. a const vector holding pointers. In such a case, you most certainly can modify the objects those pointers reference.
I think Alan Kay put it best: "Actually I made up the term "object-oriented", and I can tell you I did not have C++ in mind."
Sorry to hear it. Unfortunately, the English language belongs to the people who use it, and it is popular usage that defines terms, not the opinions of the people who merely happened to coin those terms. Forty years have passed since Kay coined the term, and guess what? The meaning has shifted.
By any sensible real-world definition, C++ supports object-oriented programming, whatever Kay might wish.
And large desktop software is exactly where dynamic, duck-typed, true OO languages shine.
So why are so few of them written in such languages? In practice, the vast majority of large desktop software applications are written in, um, C++. Does that not tell you anything?
Note that Adobe wrote a significant chunk of Lightroom in Lua, just as one example.
Some 40%, yes, covering most of the application logic (the raw processing code is C++, the database interface C). It's an impressive achievement, and no doubt other companies are watching with interest.
However, it's closer to "the only example" than "just one [of many]". I certainly can't think of any others, though maybe you know of some?
what's the C++ equivalent to this python code? d = {"name":"Bob", "age":42} print "Name is %s and age is %d" % (d["name"], d["age"]) Keep in mind that this is a complete python program, no further code is required.
Easy:
#include <string> #include <iostream>
struct d_type {
std::string name;
int age;
d_type(const char* _name, int _age) : name(_name), age(_age) {} };
int main() {
d_type d("Bob", 42);
std::cout << "Name is " << d.name << " and age is " << d.age << std::endl; }
The syntax is, I will grant you, somewhat on the verbose side, but it should illustrate the point, and the difference becomes less significant as the program scales.
(Yes, I know I'm using a different data structure. That's kind of the point: just because Python implements records as dictionaries doesn't mean that languages without heterogenous dictionaries can't do records.)
Why does everyone think that 'simplifying the usage of STL algorithms without creating a lot of functors' is the only use for lambdas and closures?
It's not that people think that's the only use for them; it's that that's the killer use.
It's a lot easier to persuade people to learn a new feature by saying "this will make your life easier" than by saying "this will let you write better code". Most people don't care how "tight" their code is, as long as it works. What they care about is how easy it is to write and maintain.
I want them to be descriptive and unambiguous. "Chomp" (as an example) does not tell me what it does.
Do, pray, reveal unto us the name of your cherished Ideal Programming Language, because I'm having a damn hard time finding any language that is not stuffed full of functions that are "ambiguous" by your definition.
For example, what does Java's "String.intern" have to do with music students? What does C++'s "map" have to do with cartography? What does Python's "strip" have to do with long thin flat objects?
"CleanStream" or "TrimCRLF" or something similar is unambiguous and short.
And both would also be wrong, since chomp() operates on strings, not streams, and what it trims is not necessarily a CRLF sequence.
"TrimLineSeparator" is the shortest name I can come up with that counts as "unambiguous" by your curious definition, and frankly I hope you'll forgive me if I prefer "chomp". It doesn't take more than 5 seconds to look it up if you are really so inexperienced that you don't know basic terms of art like that.
However, I'll go further and say for most simple scripts sh ( or at a push bash ) is better
You must live in a single-platform world. As soon as a second platform comes into the equation, shell scripting becomes a world of pain.
As for performance being poor... damn right it is. I replaced a "simple" ksh script with a simple Perl script a few months back. The ksh script was taking up to five minutes to run, only worked on one of the three platforms we wanted to run it on, and produced subtly incorrect results in certain edge cases. The Perl replacement (which is half the length) runs in under a second, works on all three platforms, and always gives the right answer.
Pathological case? Sure. But it makes the point. Shell scripting is a Bad Idea for anything other than the simplest of simple single-platform scripts. Anything else needs something more sophisticated... and Perl is a good choice, because Perl is installed out of the box on pretty much every Unix there is these days.
python is a well-designed, highly structured language
This is a popular myth among Python fanboys. It's highly questionable.
Not to mention that Perl actually has a number of extremely valuable structuring features which Python lacks. I'm thinking of things like proper lexical scoping, and requiring variables to be declared -- both of these make it a lot easier for those of us with backgrounds in "real" programming languages to write robust and readable code in Perl than in Python.
(And I'm not a Perl fanboy here; I'm not a fan of dynamically typed languages at all, and much prefer C++ or OCaml for large projects.)
There is no connection between atheism and militancy. Those who conflate the two (like the interviewer) are engaged in little more than hate speech.
Using the term "militant atheist" does not equate to conflating atheism and militancy, any more than using the term "Ford car" implies that all cars are made by Ford.
It's true that the majority of atheists are nice tolerant folk who by and large couldn't care less whether other people choose to believe in Jesus, Buddha, or the Tooth Fairy if they want to. But nobody is denying that fact.
Unfortunately, whether you like it or not, it's also true that a small minority of atheists do object so strongly to religion that they do things like, oh, complain to EA when games like Spore include religious themes. These people are conventionally described as "militant atheists" -- often they describe themselves that way. That is the sense in which the article used the term. It is hardly "hate speech" to call a spade a spade.
Perhaps the interviewer was just trying to drive clicks by insulting a large number of people, or perhaps he really does hate atheists
The only people who would be insulted by a conventional, descriptive use of language are those who are both hypersensitive and have unusually poor reading comprehension skills.
This use of the word "militant" is very very bad form by Eurogamer.
Yes, God forbid (if you'll pardon the idiom) that any journalist should dare to directly quote the person he is interviewing. Let's make journalists censor their interviews instead. I'm sure that would make the world a better place.
Firstly, people talking on cell phones talk louder than people talking to someone sitting beside them. Particularly when there's a lot of background noise, e.g. on a plane.
Secondly, many people find one-sided conversations harder to screen out than two-sided conversations.
Both these things combine to make the cell-phone case significantly more annoying.
Um, just because someone doesn't use or like Outlook doesn't mean they're a Linux user.
Outlook is a complicated and expensive business-oriented tool, used primarily by people who need to connect to Exchange servers. Most Windows users, if they use a desktop mail client at all, use either Outlook Express (which has nothing to do with Outlook whatsoever), its successor Windows Live Mail, or a third-party client such as Eudora or Thunderbird.
It's really very simple. Currently the US is Top Nation. China is bigger and has more resources, and will inevitably overtake the US and demote it to Second Nation. The US doesn't like that.
It's nothing to do with China as such -- Americans would react the same way if it was Canada that was threatening to become the new superpower, or if the Europeans got their act together and started competing with the world instead of each other.
There's a difference between regular espionage, and the kind of espionage that China is allegedly conducting.
Conducting regular espionage is a case of one government spying on another government to try to get an advantage in diplomatic affairs, or one government spying on individuals to try to get information about criminal or terrorist activity. Everyone does this, it's considered "business as usual", and many countries, including America, openly admit that they do it.
What America is alleging is that China is conducting industrial and economic espionage, i.e. trying to get hold of commercial secrets, and even trying to disrupt economic activity in other countries. This is a much more controversial activity, partly because it involves spying on people who are not connected to government, crime, or terror: most countries, including America, strongly deny that they do it.
See the difference?
(Note that I'm talking solely about the allegations here. I'm not making any claims as to whether these allegations are true or false, or whether the USA is being hypocritical or not.)
TrueType support still sucks on Linux by default: most distros use the dreadful Freetype auto-hinter, which inflicts unspeakably mangled contortions on font outlines in its misguided desperation to ensure that everything lines up exactly with pixels.
However, it is possible to configure it to use real TrueType hinting (if you like the Windows look and don't care about software patents), and it's also possible to turn hinting off completely and get fonts that look just like the ones on a Mac (very true to the printed appearance, but some people find them too blurry). Do whichever of those two things you prefer, and you can end up with something that you can read without wanting to claw out your own eyeballs in horror.
Yes; in fact it's not uncommon. For example, Debian's statistics suggest that msttcorefonts is by far the most popular package in their contrib/X11 section, though it's only 1/6 as popular as e.g. the DejaVu fonts.
And most stories are just variations of other stories, and most songs are just variations of other songs, and so on. Nihil sub sole novum, and all that -- people have been making this same observation for millenia. Yet for some reason you won't find many people who think it's time to stop coming up with new stories or songs.
Geek argument: Linux is just a variation of Unix,* but you won't find many Slashdotters arguing that people should be allowed to exploit Linux without respecting the wishes of its creators.
* In the sense that most fonts are variations of other fonts; I'm not claiming Linux includes Unix code or anything.
The outlines aren't. As you note, the expression of those outlines in a specific digital format might be, and a professional TrueType file -- which literally contains a computer program that is executed to produce hinted outlines -- certainly is.
So, in the USA you can print out a font, trace the outlines, and do pretty much anything you like with them, but you'd be unwise to copy a font file directly.
Also, the USA is just one part of a big world, and other places do things differently. In the United Kingdom, for example, it seems fonts are copyrightable, with protection lasting for a surprisingly reasonable 25 years.
But at least once you've got legal advice on the GPL once, you can freely follow that advice for any of the many software packages that are licensed under it.
This compares rather favourably to the situation in the closed-source world, where every single EULA is different, and they are all many, many times longer and more complex than the GPL. Yet for some reason nobody ever cites the legalese as a reason to avoid using Microsoft Windows commercially...
Actually, JavaScript has regular expressions integrated into the language, in a fairly similar way to Perl or Ruby. Read the documentation; it's quite good.
They do? Exactly what are you basing that claim on? I would have said exactly the opposite: I can only think of one or two new languages that have dynamic types, but could easily reel off a list of a dozen or so with static types.
Maybe we're defining "new languages" differently. It's rather an ambiguous term.
You mean "in theory", not "in general". In general, real-world JIT systems are significantly slower than native code, though they certainly are noticably faster than regular bytecode, which in turn is faster than a pure interpreter.
Don't mistake "reluctant to pay for software" for "hostile to making money". I use Linux, and I've paid for some of the software I use (where it's better than the free alternatives -- which is surprisingly rare), but above and beyond that a fair number of people are profiting by selling me services, like subscriptions to various online resources. And quite a lot of people are profiting without selling me anything at all: advertisers don't pay any more for Windows impressions than for Linux impressions, you know...
Walk into half the major companies in America, and you'll find it sitting on every desktop.
Your example uses a const std::vector<T> . He's talking about const std::vector<T*> , i.e. a const vector holding pointers. In such a case, you most certainly can modify the objects those pointers reference.
Sorry to hear it. Unfortunately, the English language belongs to the people who use it, and it is popular usage that defines terms, not the opinions of the people who merely happened to coin those terms. Forty years have passed since Kay coined the term, and guess what? The meaning has shifted.
By any sensible real-world definition, C++ supports object-oriented programming, whatever Kay might wish.
So why are so few of them written in such languages? In practice, the vast majority of large desktop software applications are written in, um, C++. Does that not tell you anything?
Some 40%, yes, covering most of the application logic (the raw processing code is C++, the database interface C). It's an impressive achievement, and no doubt other companies are watching with interest.
However, it's closer to "the only example" than "just one [of many]". I certainly can't think of any others, though maybe you know of some?
Easy:
The syntax is, I will grant you, somewhat on the verbose side, but it should illustrate the point, and the difference becomes less significant as the program scales.
(Yes, I know I'm using a different data structure. That's kind of the point: just because Python implements records as dictionaries doesn't mean that languages without heterogenous dictionaries can't do records.)
It's not that people think that's the only use for them; it's that that's the killer use.
It's a lot easier to persuade people to learn a new feature by saying "this will make your life easier" than by saying "this will let you write better code". Most people don't care how "tight" their code is, as long as it works. What they care about is how easy it is to write and maintain.
Do, pray, reveal unto us the name of your cherished Ideal Programming Language, because I'm having a damn hard time finding any language that is not stuffed full of functions that are "ambiguous" by your definition.
For example, what does Java's "String.intern" have to do with music students? What does C++'s "map" have to do with cartography? What does Python's "strip" have to do with long thin flat objects?
And both would also be wrong, since chomp() operates on strings, not streams, and what it trims is not necessarily a CRLF sequence.
"TrimLineSeparator" is the shortest name I can come up with that counts as "unambiguous" by your curious definition, and frankly I hope you'll forgive me if I prefer "chomp". It doesn't take more than 5 seconds to look it up if you are really so inexperienced that you don't know basic terms of art like that.
You must live in a single-platform world. As soon as a second platform comes into the equation, shell scripting becomes a world of pain.
As for performance being poor... damn right it is. I replaced a "simple" ksh script with a simple Perl script a few months back. The ksh script was taking up to five minutes to run, only worked on one of the three platforms we wanted to run it on, and produced subtly incorrect results in certain edge cases. The Perl replacement (which is half the length) runs in under a second, works on all three platforms, and always gives the right answer.
Pathological case? Sure. But it makes the point. Shell scripting is a Bad Idea for anything other than the simplest of simple single-platform scripts. Anything else needs something more sophisticated... and Perl is a good choice, because Perl is installed out of the box on pretty much every Unix there is these days.
This is a popular myth among Python fanboys. It's highly questionable.
Not to mention that Perl actually has a number of extremely valuable structuring features which Python lacks. I'm thinking of things like proper lexical scoping, and requiring variables to be declared -- both of these make it a lot easier for those of us with backgrounds in "real" programming languages to write robust and readable code in Perl than in Python.
(And I'm not a Perl fanboy here; I'm not a fan of dynamically typed languages at all, and much prefer C++ or OCaml for large projects.)
What Slashdot orthodoxy? To my eyes, the majority of highly-moderated comments in this discussion look like they're anti-Perl.
+5, Funny
Using the term "militant atheist" does not equate to conflating atheism and militancy, any more than using the term "Ford car" implies that all cars are made by Ford.
It's true that the majority of atheists are nice tolerant folk who by and large couldn't care less whether other people choose to believe in Jesus, Buddha, or the Tooth Fairy if they want to. But nobody is denying that fact.
Unfortunately, whether you like it or not, it's also true that a small minority of atheists do object so strongly to religion that they do things like, oh, complain to EA when games like Spore include religious themes. These people are conventionally described as "militant atheists" -- often they describe themselves that way. That is the sense in which the article used the term. It is hardly "hate speech" to call a spade a spade.
The only people who would be insulted by a conventional, descriptive use of language are those who are both hypersensitive and have unusually poor reading comprehension skills.
Yes, God forbid (if you'll pardon the idiom) that any journalist should dare to directly quote the person he is interviewing. Let's make journalists censor their interviews instead. I'm sure that would make the world a better place.
Firstly, people talking on cell phones talk louder than people talking to someone sitting beside them. Particularly when there's a lot of background noise, e.g. on a plane.
Secondly, many people find one-sided conversations harder to screen out than two-sided conversations.
Both these things combine to make the cell-phone case significantly more annoying.
When he uses the service, he looks at ads. When he looks at ads, Google makes money. Therefore, when he uses the service, Google makes money.
Hint: someone who provides you with revenue in exchange for a service is generally called a "customer".
Um, just because someone doesn't use or like Outlook doesn't mean they're a Linux user.
Outlook is a complicated and expensive business-oriented tool, used primarily by people who need to connect to Exchange servers. Most Windows users, if they use a desktop mail client at all, use either Outlook Express (which has nothing to do with Outlook whatsoever), its successor Windows Live Mail, or a third-party client such as Eudora or Thunderbird.
It's really very simple. Currently the US is Top Nation. China is bigger and has more resources, and will inevitably overtake the US and demote it to Second Nation. The US doesn't like that.
It's nothing to do with China as such -- Americans would react the same way if it was Canada that was threatening to become the new superpower, or if the Europeans got their act together and started competing with the world instead of each other.
There's a difference between regular espionage, and the kind of espionage that China is allegedly conducting.
Conducting regular espionage is a case of one government spying on another government to try to get an advantage in diplomatic affairs, or one government spying on individuals to try to get information about criminal or terrorist activity. Everyone does this, it's considered "business as usual", and many countries, including America, openly admit that they do it.
What America is alleging is that China is conducting industrial and economic espionage, i.e. trying to get hold of commercial secrets, and even trying to disrupt economic activity in other countries. This is a much more controversial activity, partly because it involves spying on people who are not connected to government, crime, or terror: most countries, including America, strongly deny that they do it.
See the difference?
(Note that I'm talking solely about the allegations here. I'm not making any claims as to whether these allegations are true or false, or whether the USA is being hypocritical or not.)