Stupid Patent of the Month: Using A Computer To Count Calories
-
This month’s stupid patent, like many stupid patents before it, simply claims the idea of using a computer for basic calculations. U.S. Patent No. 6,817,863 (the ’863 patent) is titled “Computer program, method, and system for monitoring nutrition content of consumables and for facilitating menu planning.” It claims the process of using a computer to track nutrition information like calorie or vitamin intake. It is difficult to think of a more basic and trivial use for a computer.
The ’863 patent is owned by a patent troll called Dynamic Nutrition Information, LLC. Dynamic Nutrition filed a lawsuit this month in the Eastern District of Texas accusing Australian company Fatsecret of infringing the ’863 patent. Dynamic Nutrition had filed four other lawsuits. Consistent with a pattern of nuisance litigation, each of those earlier suits settled very quickly.
What “invention” does the ’863 patent purport to cover? Claim 1 of the patent is reproduced in full below (with comments in brackets):
A computer program comprising a combination of code segments stored in a computer-readable memory and executable by a processor to provide nutrition content information related to consumables, the computer program comprising:
a code segment operable to receive and store an input related to consumption of consumables, and to associate the input with a calender [sic] date [i.e. program a computer to track daily food intake]; and
a code segment operable to generate an interactive display screen, wherein the interactive display screen includes— [i.e. include some kind of user interface]
one or more lists of consumables and related nutrition content information, and [i.e. list food options and nutrition information]
a summary section of past consumption of consumables. [i.e. list past food intake]
In other words, program a computer to help people keep track of meals and calorie or vitamin intake.
The application for Dynamic Nutrition’s patent was filed on June 11, 2001. By that time, computers had been around for decades and there was nothing remotely surprising or innovative about programing a computer to keep track of data—whether it be nutrition data or units shipped or accounts receivable or whatever. Nevertheless, the Patent Office takes an extremely rigid approach to whether or not a patent application is obvious. This means that companies often get patents on common sense ideas (like taking photos against white background or filming a yoga class).
Even leaving aside the issue of obviousness, the claims of the ’863 patent are invalid under the Supreme Court’s Alice v. CLS Bankdecision (which struck down patents that merely claim the use of conventional computers to implement an abstract idea). Indeed, the first company to be sued by Dynamic Nutrition, Under Armour, filed a motion to dismiss the case under Alice. Under Armour pointed out that the ’863 patent itself repeatedly emphasizes that its methods can be implemented using any conventional computer or programming language. Given the strength of this argument, it is unsurprising that the litigation settled before Dynamic Nutrition even filed a response.
Dynamic Nutrition’s patent is not even the only patent that claims using a computer for routine meal planning. A patent troll called DietGoal sued dozens of companies with a meal planning patent. A court invalidated DietGoal’s patent under Alice because it claimed nothing more than the “conventional and quotidian tasks” of selecting meals. The Federal Circuit affirmed that ruling. The logic of this decision applies straightforwardly to Dynamic Nutrition’s patent claims.
We recently launched our Saved By Alice project where we are highlighting cases where companies attacked by stupid software patents were able to use the Alice decision to defend themselves against weak patent suits. The Dynamic Nutrition litigation is yet another example of why the Alice ruling is important and how it can protect productive companies from patent trolls.
https://www.eff.org/deeplinks/2017/06/stupid-patent-month-using-computer-count-calories

screen and tmux
A comparison of the features (or more-so just a table of notes for accessing some of those features) for GNU screen and BSD-licensed tmux.
The formatting here is simple enough to understand (I would hope). ^ means ctrl+, so ^x is ctrl+x. M- means meta (generally left-alt or escape)+, so M-x is left-alt+x It should be noted that this is no where near a full feature-set of either group. This - being a cheat-sheet - is just to point out the most very basic features to get you on the road. Trust the developers and manpage writers more than me. This document is originally from 2009 when tmux was still new - since then both of these programs have had many updates and features added (not all of which have been dutifully noted here). |
||
Action | tmux | screen |
start a new session | tmux OR tmux new OR tmux new-session |
screen |
re-attach a detached session | tmux attach OR tmux attach-session |
screen-r |
re-attach an attached session (detaching it from elsewhere) | tmux attach -d OR tmux attach-session -d |
screen -dr |
re-attach an attached session (keeping it attached elsewhere) | tmux attach OR tmux attach-session |
screen -x |
detach from currently attached session | ^b d OR ^b :detach |
^a ^d OR ^a :detach |
rename-window to newname | ^b , <newname> OR ^b :rename-window <newn> |
^a A <newname> |
list windows | ^b w | ^a w |
list windows in chooseable menu | ^a " | |
go to window # | ^b # | ^a # |
go to last-active window | ^b l | ^a ^a |
go to next window | ^b n | ^a n |
go to previous window | ^b p | ^a p |
see keybindings | ^b ? | ^a ? |
list sessions | ^b s OR tmux ls OR tmux list-sessions |
screen -ls |
toggle visual bell | ^a ^g | |
create another window | ^b c | ^a c |
exit current shell/window | ^d | ^d |
split window/pane horizontally | ^b " | ^a S |
split window/pane vertically | ^b % | ^a | |
switch to other pane | ^b o | ^a <tab> |
kill the current pane | ^b x OR (logout/^D) | |
collapse the current pane/split (but leave processes running) | ^a X | |
cycle location of panes | ^b ^o | |
swap current pane with previous | ^b { | |
swap current pane with next | ^b } | |
show time | ^b t | |
show numeric values of panes | ^b q | |
toggle zoom-state of current pane (maximize/return current pane) | ^b z | |
break the current pane out of its window (to form new window) | ^b ! | |
re-arrange current panels within same window (different layouts) | ^b [space] | |
Kill the current window (and all panes within) | ^b killw [target-window] |