No, we’re not talking about giving presentations that look and sound like a TED Talk. Obviously the TED style doesn’t make sense for every kind of presentation, and even though such talks can be compelling to watch, you shouldn’t aim to always emulate that style. That being said, TED’s curator Chris Anderson has some great tips that you’ll want to apply no matter what kind of talk you give. These are fundamental, universal, and will help you understand what makes a great talk great. Ultimately, presentations are about transferring an idea from your mind to the audience’s mind. It’s simple to do if you follow these…
by Charles Duan from Public Knowledge, connecting the ridiculous result of the Oracle/Google fight on the copyrightability of software APIs, to the idea of trying to claim copyright in a language, with a particular focus on Klingon, the made up language from the
Star Trek
universe. And, then, of course, back in March, that speculative hypothetical became much more real, when Paramount’s lawsuit against
A bunch of things have happened since then, as this mess careens towards trial, and we wanted to catch you up. First, the lawyers for the fan film, put together by Axanar Productions,
by Paramount in its amended complaint, noting that many of the things listed as copyright infringing, clearly were not — including the language of Klingon.
The Klingon language… itself is an idea or a system, and is not
copyrightable. As the Supreme Court held in the context of a system of bookkeeping,
although copyright protects the author’s expression of the system, it does not prevent
others from using the system. Baker v. Selden, 101 U.S. 99, 101 (1879). The mere
allegation that Defendants used the Klingon language, without any allegation that
Defendants copied Plaintiffs’ particular expression of that language, is therefore
insufficient to state a claim for copyright infringement as to any protected element.
That filing similarly challenged the idea that costumes (such as “gold shirts”) or geometric shapes (like “triangular medals on uniforms”) were copyrightable. Oh, and also lots of things that clearly predate the Star Trek universe, like the idea of transporters (“have existed in science fiction since 1877”) and warp drive (“have existed in science fiction as early as 1945”).
, insisting that all of these things absolutely were legitimately covered by copyright. First, it argues (somewhat convincingly…) that the issue is not these individual items, but rather the entire collection of them, creating a “world” that is covered by copyright, and that the fan film is obviously creating a derivative work, which they claim infringes. But then Paramount Pictures decides to attack the claims that these individual things can’t be covered by copyright anyway. On the question of copyright in Klingon, they actually argue that Axanar’s argument “is absurd.”
Language is part of dialogue, which represents one aspect of the Star Trek
Copyrighted Works and may be considered (at a later point) in a substantial
similarity analysis…. Defendants argue that the
Klingon language is not copyrightable because it is a useful system…
Again, this issue is not yet before the Court – and certainly is not an issue to be
addressed on a motion to dismiss.
Moreover, this argument is absurd, since a language is only useful if it can be
used to communicate with people, and there are no Klingons with whom to
communicate. The Klingon language is wholly fictitious, original, and
copyrightable, and Defendants’ incorporation of that language in their works will be
part of the Court’s eventual substantial similarity analysis. Defendants’ use of the
Klingon language in their works is simply further evidence of their infringement of
Plaintiffs’ characters, since speaking this fictitious language is an aspect of their
characters.
And then things got even more fun. A group called the
, in part because the section headings, along with a few key words,
are in Klingon
. For example, there’s this:
If you’re wondering, the footnotes reveal the translation. The ending of the first paragraph would read as “it lacks reasons.” The two words in the latter paragraph are translated as “pathetic” and “arrogant.” The pronunciations are also included in the footnotes, but I’ll let you explore those yourself. The full brief is worth reading as it lays out, in great detail, why Klingon cannot be covered by copyright. It goes through a bunch of legal reasons, with caselaw citations, and then also points out
conceptually
just how stupid this is:
To claim copyright in a language is to claim ownership over all
possible thoughts and artistic expression that might employ that
language. If not ownership, such a claim at least provides some
support for the idea that the copyright owner could, at some point,
simply pull the plug on any future development in the language. It is
a breathtakingly vast legal assertion that encompasses particular
expression that the claimed copyright owner, by definition, cannot
even conceive of.
The filing also points out how silly the assertion above, by Paramount, that since there are no Klingons to communicate with, it’s not a language and therefore is copyrightable:
First, this is a non-sequitur; a process or system need not be “useful” in
order to preclude copyright protection, and Plaintiffs provide no
authority to the contrary.
But more importantly, this is an insulting assertion. Many
humans speak Klingon. The annual qep’a’ involves singing and
storytelling in Klingon. (See Exhibit 6.) People get married in Klingon.
(See Exhibit 10.) Linguist d’Armond Speers even spent three years
teaching his infant son to speak Klingon. (See Tara Bannow, “Local
company creates Klingon dictionary,” MINNESOTA DAILY (Nov. 17,
2009), attached as Exhibit 12.) Speaking and writing in Klingon is
not simply a matter of transposing words from a different language,
either; it has an unusual grammatical structure that provides a
different connotation than other languages….
And insult aside, Plaintiff’s contention is absurd. A language is
not constrained to a given ethnic or racial group. By their logic,
Ancient Greek is not “useful” because the Ancient Greeks are no
longer with us, and the language has no native speakers, despite it
being the original language of some of the seminal literary and
philosophical works of the western world. Plaintiffs’ logic would
seem to dictate that French is not “useful” if spoken by a native
German.
Well, it probably won’t surprise you to find out that Paramount Pictures and its pricey lawyers weren’t too pleased about Randazza’s/Language Creation Society’s filing. They’ve
. They argue (perhaps correctly), that the filing comes way too late, but also claim that the issue of the copyright in Klingon is “not before the court.”
In its application and amicus brief, LCS is asking the Court for an advisory
opinion on whether fictional languages are copyrightable. This is not at issue in the
motion to dismiss. At the motion to dismiss stage, the Court will determine whether
Plaintiffs have sufficiently alleged the existence of their Star Trek Copyrighted
Works and whether Plaintiffs have alleged infringement by the Defendants. The
Court has not been asked to perform a substantial similarity analysis at this stage of
the proceeding, and especially not to determine the independent copyrightability of
the Klingon language (or fictitious languages in general) outside of context of Star
Trek works.
Instead, they argue again that Klingon is just one piece of the puzzle that they’re using to show that Axanar is an infringing work. But, of course, that makes no sense. Because they were the ones who started this off by claiming that Klingon was covered by its copyright. And if Klingon is not copyrightable, then they can’t make use of it as an example of how Axanar is infringing.
at Paramount Pictures in a new filing on Friday, claiming that in its opposition to the Language Creators’ brief, it “raised new arguments.”
First, while Plaintiffs now argue that the Klingon language is “merely one aspect of the Star Trek Copyrighted Works” and that Defendants’ use of Klingon is “further evidence of their infringement of Plaintiffs’ characters” (Dkt. 38 at 3-4), in the First Amended Complaint (“FAC”) Plaintiffs do not limit their allegations in this way. In the FAC, Plaintiffs claim ownership over “Klingons” as a race (FAC at 12) and over the appearance of Klingons (FAC at 13-14), and they claim separately to own the “Klingon language” (FAC at 32). In fact, the Klingon language is listed as a “Star Trek Copyrighted Work” according to the chart in the FAC. Id. Plaintiffs are hard-pressed to link their claim to the Klingon language to an actual character when their FAC does not identify a single specific Klingon character, let alone any character they claim Defendants have infringed through using the Klingon language.
They also point out that the question of whether or not Klingon is covered by copyright is pretty important in establishing whether or not Paramount has a legitimate claim:
Indeed, like recipes in a cookbook, while the Klingon Dictionary may be protected from wholesale copying, the individual Klingon words contained therein and expression flowing from the Klingon language system are simply not protected. This Court should decline to allow Plaintiffs to stifle expression in Klingon when this matter can be resolved now as matter of law.
And, yes, it’s amazing that a copyright lawsuit has resulted in someone begging the court not to “allow Plaintiffs to stifle expression in Klingon.” What a world we live in.
The Axanar filing also accuses Paramount of shifting standards when convenient:
Plaintiffs’ Opposition to the Motion claims that substantial similarity analysis is “unnecessary” here. Opp. (Dkt. 31) at 11:7-9. But now, Plaintiffs are reversing course and suddenly claiming that the individual works they alleged in the FAC are just pieces for a broader substantial similarity analysis. Plaintiffs cannot invoke the substantial similarity test only when convenient, and cannot complain about parsing out Plaintiffs’ claim to the Klingon language when their FAC does just that. FAC at 32. Further, the FAC remains unclear about (1) which episodes and films that Plaintiffs claim to own are at issue here (rendering it impossible to even begin to engage in any substantial similarity analysis), and (2) how the Court could engage in a substantial similarity analysis with respect to the Potential Fan Film when it has not yet been made.
Needless to say, there’s likely much more to come on all of this, and I imagine that it will continue to be quite entertaining. That said, while the larger issue may seem silly, the underlying issues here are of
extreme importance
. As in the Oracle/Google case, allowing copyright over something as simple as instructions or the concept of a language, represents a
massive
expansion of copyright law in a manner that clearly stifles both innovation and expression. We should be quite worried when courts are willing to allow such absurdities.
While I am sure that most would opt to select .223/5.56 NATO over .22LR for home defense, but I have heard the argument that .22 would be “better” for home defense since its reduced energy would mean that it would penetrate through fewer walls. On the flip side, others argue that the 5.56 would be better […]
While rental rates are certainly on the rise in Columbus, the city still remains a more affordable place for apartment-dwellers when compared to the more expensive rates all across the country. According to a new list from Forbes.com, Columbus is ranked as the #3 city for renters in the United States, moving up from fifth […]
via ColumbusUnderground.com Columbus Ranked #3 Best City for Renters
Boston Beer Company founder Jim Koch could buy a jet or fly first class all the time. Since founding his beer company in 1984, the man behind Samuel Adams Boston Lager has become a bonafide billionaire. Despite his massive wealth and control over 1% of the entire beer industry in the US, he has remained […]
If your five o’clock shadow isn’t rugged enough to light a match with, and there’s no where else to strike one, a rubber band and a second match are all you need to get a fire started. This one’s going to require some practice to master, and some amateur sniper skills, but MacGyver would be proud.
In this blog post, we’ll discuss some of the best practices for configuring optimal MySQL memory usage.
Correctly configuring the use of available memory resources is one of the most important things you have to get right with MySQL for optimal performance and stability. As of MySQL 5.7, the default configuration uses a very limited amount of memory – leaving defaults is one of the worst things you can do. But configuring it incorrectly can result in even worse performance (or even crashes).
The first rule of configuring MySQL memory usage is you never want your MySQL to cause the operating system to swap. Even minor swapping activity can dramatically reduce MySQL performance. Note the keyword “activity” here. It is fine to have some used space in your swap file, as there are probably parts of the operating system that are unused when MySQL is running, and it’s a good idea to swap them out. What you don’t want is constant swapping going on during the operation, which is easily seen in the “si” and “so” columns in the vmstat output.
Example: No Significant Swapping
Example: Heavy Swapping Going
If you’re running Percona Monitoring and Management, you can also look into the Swap Activity graph in System Overview Dashboard.
If you have spikes of more than 1MB/sec, or constant swap activity, you might need to revisit your memory configuration.
MySQL Memory allocation is complicated. There are global buffers, per-connection buffers (which depend on the workload), and some uncontrolled memory allocations (i.e., inside Stored Procedures), all contributing to difficulties in computing how much memory MySQL will really use for your workload. It is better to check it by looking at the virtual memory size (VSZ) that MySQL uses. You can get it from “top”, or by running ps aux | grep mysqld.mysql 3939 30.3 53.4 11635184 8748364 ? Sl Apr08 9106:41 /usr/sbin/mysqldThe 5th column here shows VSZ usage (about 11GB).
Note that the VSZ is likely to change over time. It is often a good idea to plot it in your monitoring system and set an alert to ping you when it hits a specified threshold. Don’t allow the mysqld process VSZ exceed 90% of the system memory (and less if you’re running more than just MySQL on the system).
It’s a good idea to start on the safe side by conservatively setting your global and per connections buffers, and then increase them as you go. Many can be set online, including innodb_buffer_pool_size in MySQL 5.7.
So how do you decide how much memory to allocate to MySQL versus everything else? In most cases you shouldn’t commit more than 90% of your physical memory to MySQL, as you need to have some reserved for the operating system and things like caching binary log files, temporary sort files, etc.
There are cases when MySQL should use significantly less than 90% of memory:
If there are other important processes running on the same server, either all the time or periodically. If you have heavy batch jobs run from cron, which require a lot of memory, you’ll need to account for that.
If you want to use OS caching for some storage engines. With InnoDB, we recommend innodb_flush_method=O_DIRECT in most cases, which won’t use Operating System File Cache. However, there have been cases when using buffered IO with InnoDB made sense. If you’re still running MyISAM, you will need OS cache for the “data” part of your tables. With TokuDB, using OS cache is also a good idea for some workloads.
If your workload has significant demands, Operating System Cache – MyISAM on disk temporary tables, sort files, some other temporary files which MySQL creates the need to be well-cached for optimal performance.
Once you know how much memory you want the MySQL process to have as a whole, you’ll need to think about for what purpose the memory should be used inside MySQL.The first part of memory usage in MySQL is workload related – if you have many connections active at the same time that run heavy selects using a lot of memory for sorting or temporary tables, you might need a lot of memory (especially if Performance Schema is enabled). In other cases this amount of memory is minimal. You’ll generally need somewhere between 1 and 10GB for this purpose.
Another thing you need to account for is memory fragmentation. Depending on the memory allocation library you’re using (glibc, TCMalloc, jemalloc, etc.), the operating system settings such as Transparent Huge Pages (THP) and workload may show memory usage to grow over time (until it reaches some steady state). Memory fragmentation can also account for 10% or more of additional memory usage.
Finally, let’s think about various global buffers and caching. In typical cases, you mainly only have innodb_buffer_pool_size to worry about. But you might also need to consider key_buffer_size, tokudb_cache_size, query_cache_size as well as table_cache and table_open_cache. These are also responsible for global memory allocation, even though they are not counted in bytes. Performance _Schema may also take a lot of memory, especially if you have a large number of connections or tables in the system.
When you specify the size of the buffers and caches, you should determine what you’re specifying. For innodb_buffer_pool_size, remember there is another 5-10% of memory that is allocated for additional data structures – and this number is larger if you’re using compression or set innodb_page_size smaller than 16K. For tokudb_cache_size, it’s important to remember that the setting specified is a guide, not a “hard” limit: the cache size can actually grow slightly larger than the specified limit.
For systems with large amounts of memory, the database cache is going to be by far the largest memory consumer, and you’re going to allocate most of your memory to it. When you add extra memory to the system, it is typically to increase the database cache size.
Let’s do some math for a specific example. Assume you have a system (physical or virtual) with 16GB of memory. We are only running MySQL on this system, with an InnoDB storage engine and use innodb_flush_method=O_DIRECT, so we can allocate 90% (or 14.4GB) of memory to MySQL. For our workload, we assume connection handling and other MySQL connection-based overhead will take up 1GB (leaving 13.4GB). 0.4GB is likely to be consumed by various other global buffers (innodb_log_buffer_size, Table Caches, other miscellaneous needs, etc.), which now leaves 13GB. Considering the 5-7% overhead that the InnodB Buffer Pool has, a sensible setting is innodb_buffer_pool_size=12G – what we very commonly see working well for systems with 16GB of memory.
Now that we have configured MySQL memory usage, we also should look at the OS configuration. The first question to ask is if we don’t want MySQL to swap, should we even have the swap file enabled? In most cases, the answer is yes – you want to have the swap file enabled (strive for 4GB minimum, and no less than 25% of memory installed) for two reasons:
The operating system is quite likely to have some portions that are unused when it is running as a database server. It is better to let it swap those out instead of forcing it to keep it in memory.
If you’ve made a mistake in the MySQL configuration, or you have some rogue process taking much more memory than expected, it is usually a much better situation to lose performance due to a swap then to kill MySQL with an out of memory (OOM) error – potentially causing downtime.
As we only want the swap file used in emergencies, such as when there is no memory available or to swap out idle processes, we want to reduce Operating System tendency to swap (echo 1 > /proc/sys/vm/swappiness). Without this configuration setting you might find the OS swapping out portions of MySQL just because it feels it needs to increase the amount of available file cache (which is almost always a wrong choice for MySQL).
The next thing when it comes to OS configuration is setting the Out Of Memory killer. You may have seen message like this in your kernel log file:
Apr 24 02:43:18 db01 kernel: Out of memory: Kill process 22211 (mysqld) score 986 or sacrifice child
When MySQL itself is at fault, it’s pretty rational thing to do. However, it’s also possible the real problem was some of the batch activities you’re running: scripts, backups, etc. In this case, you probably want those processes to be terminated if the system does not have enough memory rather than MySQL.
To make MySQL a less likely candidate to be killed by the OOM killer, you can adjust the behavior to make MySQL less preferable with the following:
echo ‘-800’ > /proc/$(pidof mysqld)/oom_score_adj
This will make the Linux kernel prefer killing other heavy memory consumers first.
Finally on a system with more than one CPU socket, you should care about NUMA when it comes to MySQL memory allocation. In newer MySQL versions, you want to enable innodb_numa_interleave=1. In older versions you can either manually run numactl –interleave=all before you start MySQL server, or use the numa_interleave configuration option in Percona Server.