Is it legally possible to make a clone of the game?

Question: With board games like "Monopoly", "Domino", "Checkers", or "Chess", can game developers make clones and sell them? Also, can I make a clone of ZX Spectrum games? Are there many parts of the game with which can do the same?
Comment: Related http://gamedev.stackexchange.com/questions/1653/how-closely-can-a-game-resemble-another-game-without-legal-problems
Comment: Do you mean legally possible?
Comment: Yes, can I then sell it
Comment: @Saulius, it may be a good idea to mention for which country you are asking.
Comment: I'm from Lithuania
Comment: Example: RoM = World of Warcraft Clone
Answer: Lawyer here for a change.
You can copy all of gameplay without any issues at all. That is not copyrightable or enforceable. The things that matter are assets - art, sound, music, video, etc.
For example if you take ZX game and clone it with your own assets you will be perfectly fine doing that. But if you take some asset and use it in different kind of game all together, it could be enforceable.
There are loads of examples of this in the industry, for example first Warcraft basically copied Dune 2 gameplay mechanics and the genre was totally new at the time.
  For a more recent example - check out Gameloft company, the developer for iphone. What they do is copy successful game ideas as close as possible to the original but without using any art assets from originals. That is their successful business model.
They copied games like Halo, Starcraft, World of warcraft and so on with huge success in their field. It is even funny that if you check their wow clone you may see that animations of orcs and their looks are very close to the original.
TL;DR version:
As long as you copy gameplay and don't copy any assets (art, music, animation) you are 100% fine.
Comment: This is my understanding of the laws (not a lawyer), but this doesn't stop some companies from pursuing legal action. The Tetris Company has a fairly bloody history of killing Tetris clones; I remember when Tris was pulled from the App Store. Usually devs don't have the legal resources to fight back, even if they are in the right. http://en.wikipedia.org/wiki/The_Tetris_Company
Comment: @Ian Henry Well with tetris it is very difficult to separate assets and gameplay. For example the plaing field is almost the same in all games, the tetrominos will look exactly the same, no matter how you texture or portray them. And generally there is a fear factor - most people don't know law details and issues and will just give up when they get any notice from copyright holder even if their claims are not following the law.
Comment: This answer is not correct, or at least not internationally. In my answer I indicate some possibilities where it is not legally fine. Additionally I know that as rules can be copyright, an exact rule-for-rule copy of a game *may* not be allowable.
Comment: @Bane I don't have to prove anything, I will provide my assets and it is a judge call.
Comment: [This answer ignores patents. Namco, for example, has a patent on minigames during loading screens. This is why every game you play makes you wait during a loading screen rather than play a minigame.](http://www.sticktwiddlers.com/2012/08/09/why-namco-games-are-the-only-titles-with-mini-game-loading-screens/)
Comment: Out of curiosity, what about things like names, terms, locations, etc.? Provided that I produce all my own original art assets, may I still use names of something from a game?
Comment: @ChrisE - Obviously a real location's name cannot be copyrighted so that if it shows up in one game, it won't appear in another. However, using the same place names is risky if you are trying to make your game look less like a clone. If it's a made up place, yes, you could, if they don't have any claim on it, but once again, will probably provoke their lawyers if they wanted to say you ripped off their game.
Comment: @Dvole you're SO right about 'fear factor'. FUD is all it's about most of the time.
Comment: How do you prove that an asset has been copied? Can I just change a random pixel's RGB value a bit? Whats the threshold?
Comment: Oh, so it's subjective? I'm kinda rusty on this whole law thing... (Also I wasn't referring to you, when I said "you", I meant generally.)
Comment: I would also point out that [gameplay mechanisms are patentable](http://patents.stackexchange.com/q/210/8623). For example, [7,264,242](http://www.google.com/patents/US7264242) is the patent for Khet which [won in court](http://csbj.com/2012/11/16/local-game-board-maker-wins-1-6-million-settlement-from-mega-toy-firm/).  For fun, look at the citations for that patent to see other games (some never published).
Comment: Not a lawyed. Don't forget, that is not just game art, sounds, etc. It can be also with game mechanics. Ex: the game "The Gathering" has the mechanic called "Tapping". This mechanic is under copyright and cannot be called that in any other game of the same kind.
Answer: I might also add that if you are sued and you do not have the resources (money, time) to defend yourself, it is 100% irrelevant whether you would win or not.
When I consider the legal ramifications of something, I often ask myself "what is the likelihood that I will get sued if I do this?" as opposed to "if I were sued because of this, would I win?"
Comment: Yeah, a lot of people obsess over fine points of legalities but really if you are just in the ballpark of a hit game by a company with deep pockets you may be creating problems for yourself. Pay attention to history to see if other people doing similar games have been sued, because it really varies from game to game.
Comment: so basically any game company full of money can sue you for any game you have done, even for a game they doesn't have any patent/copyright (just because they want to cause you trouble or because of personal affairs) ? Then, because you are a poor indie gamedev you will have no other choice than cancel/remove your game ? (since it would cost too much...)
Comment: @tigrou, there are many abuses of our legal system like this. Look at all the software patent issues going on right now, for example.
Comment: I believe most jurisdictions do have protections against such abuse (which may or may not be effective). If you are truly in the right and the lawsuit is frivolous it is quite likely that the party that made the frivolous lawsuit will have to pay all legal costs including your lawyers fees.
Answer: I am not a lawyer.
You've got two separate sets of games.
Chess, checkers, dominoes, etc. are very old - literally thousands of years. They obviously have no copyrights. You can make a chess game and sell it with no problems.
ZX Spectrum games and Monopoly are copyrighted/patented; that is, the game belongs to someone. You would need to seek out the copyright holders (that is, the creator of the ZX Spectrum games or Hasbro, who own Monopoly) to make a version.
You could, however, make a game where you have to buy property and build on them. You could not use Monopoly's names, places, or rules, but something very similar.
Comment: You do not need permission to clone a game, unless the creator has patented certain mechanics (which is rare). You do need permission to reuse assets, as they're subject to copyright, but not to reuse the game mechanics.
Answer: This will obviously vary a lot from country to country, but the basic idea is that you can't make an exact clone, but you can make a knock-off version.  Board games tend to be covered by two aspects: the copyright on the written rules of the game, the trademarks and copyrights on the visual elements to the game.
The underlying mechanics and gameplay tend not to be covered by any legal protection. However, and this is a damn big however, as certain countries (like the US) offer software patents it seems possible that a company could indeed patent the gameplay itself.  However, for popular games the mechanics are usually so common as not likely to be granted such protection.
Mostly however companies protect their brand. If your game does not infringe on their brand you are probably safe. Be careful about copying rules (this also applies to video games) too closely. If you have a game that behaves nearly identical to another but with distinct artwork I think most people would consider it a derivative work, and thus infringing on the original.
So, feel free to replicate a basic gameplay mechanic, but never duplicate graphics and avoid duplicating level-structure.
Answer: Not a lawyer and you should check with one for assurance.
There should not a problem as long as you don't copy any specific names, things or text since you cannot trademark or copyright gameplay & rules.
Comment: It's true you cannot trademark or copyright gameplay/rules (although technically the rules themselves are indeed under copyright, so just don't copy them verbatim), you *can* patent gameplay elements as a specific "process". I don't know how common this is, though, but it is something to be aware of.
Comment: And what about the Touch Table Games copyright, the oldest listed in my previous.
Comment: Unless they were made before "Steamboat Willie", they are for all intents and purposes under unlimited protection.
Answer: Dominoes, checkers, and chess are all ancient games that you can do whatever you want with. Modern games like Monopoly are trickier and the legalities can vary. First off, never copy the names because that is copyrighted. Similarly, change all the graphics because images are protected.
It's usually fine to copy gameplay because that can't be copyrighted, but watch out for patents on hit games. For example, I wouldn't be surprised if the rules of Monopoly are patented.
Comment: patents have limited lifetimes. Monopoly is unchanged for far longer than patents last, so it's certainly patent-free.
Comment: Good point, I'll strike out that part of my answer.


Install elementary OS as a VM in VirtualBox (OSX host)?

Question: Looking for confirmation if I can install elementary OS.
I've set up an empty VM in VirtualBox 5.0.8 (OSX host)
and will download the files, set up the USB stick.
It should work.  Any warnings or cautions I've missed?
Answer: If you want to install
elementary OS as guest on OS X ( host)
In this case, you no need to create a live usb or something to install. The only one you need is .iso file.
Here are instructions to install:

Create Virtual Machine
Open VBox --> Select New --> click on Next until you create VM.
(If you want to do any changes to default options, you can change)
Now we need to install directly from .iso (to avoid creating live usb/cd)

If you have only live usb, and no .iso then head straight to Note at the bottom)

First place .iso file in a particular location.
Now close Virtual Machine (not VBox) and
open settings --> storage  --> select Adds Optical Drive (green + with disk image)
!

Clicl on  Choose disk  and navigate to location of .iso file.
Select .iso file and click on  Open  and then click on OK
Now close settings and start Virtual Machine

Note:
VirtualBox itself does not support booting from a USB device. But there is a way, for that see my post in Ask Ubuntu.
Answer: You do not have to make an USB stick for installing on Virtualbox. Just download the ElementaryOS image and install a new VM in Virtualbox.
To create a new VM in Virtual box click the new button, select linux and Ubuntu in the initial screen. Follow the rest of the steps.
hope this helps
Comment: This answer doesn't quite work for me. I have a number of issues.

First, after the installation process is finished and it asks to Restart Now, the system hangs during the boot-up sequence. I have to forcibly shutdown the virtual machine.

Second, when I successfully boot up into elementary, it's in 640x480 screen resolution. There is no other resolution option in Settings. This resolution is completely unusable.
Comment: Did you try installing the _guest additions_ to your box? You can do so by booting your box and go to the vbox menu and select _devices -> install guest additions cd image..._ and install the _guest additions_.
Comment: Yes, I tried that. I get an error message: "Unable to insert the virtual optical disk /Applications/VirtualBox.app/Contents/MacOS/VBoxGuestAdditions.iso into the machine. Would you like to try to force insertion of this disk?" I click on Force Unmount and nothing happens.


Dimension-Hopping in Machine Learning

Question: What is the dimension hopping problem in machine learning (occurring in convolutional neural networks and image recognition)? I have googled about it but all I get is information on the Physics of material shape deformation. It will be more helpful to me if some one explain it with an example related to machine learning. Can anyone help me out with this or point me toward resources that can?
Answer: Welcome to DataScience.SE! I'd never heard of this problem so I looked it up. It is explained on the third slide of this presentation by Geoff Hinton:

More things that make it hard to recognize objects
• Changes in viewpoint cause changes in images that standard learning
  methods cannot cope with.
–  Information hops between input dimensions (i.e. pixels)
• Imagine a medical database in which the age of a patient sometimes
  hops to the input dimension that normally codes for weight!
–  To apply machine learning we would first want to eliminate this
  dimension-hopping.

In other words, it is about conceptual features migrating or hopping from one input feature dimension to another while still representing the same thing. One would like to be able to capture or extract the essence of the feature while being invariant to which input dimension it is encoded on.
Comment: The age example is supposed to highlight a dataset that does not have dimension-hopping. Age and weight do not "hop" or swap values randomly between examples - they are not interchangeable and the example is showing how odd that would be (and how difficult it would make simple tasks such as linear regression). Pixel values in images (and similar data in many signal processing tasks) do interchange or move easily due to the nature of the problem.
Comment: I understand that in Computer Vision one wants to be invariant for places in the image, but I don't get the age example.
Comment: I took that to mean age and weight are dependent, but I'm not sure; it's not my presentation! Or maybe they meant they literally use the wrong column and we want to detect that.
Comment: @sdream I only made a comment; Emre gave the answer. (But you should probably still accept it). The point with CNNs is that not only one feature changes when an object is somewhere else, but a complete pattern is at a different input.
Comment: @Emre, what I am getting from your answer is that, no matter from which direction a specific property is input, the feature which this specific property causes should be invariant to input dimension of this property. Thanks! :). Still waiting for some more specific answers, otherwise will mark your reply as answer.
Answer: As far as I understand the issue is the following:
In image recognition the inputs to your network could be the pixels (grayscale or only 1 and 0 for black and white). If you want to, e.g. recognize handwritten numbers it is very difficult to only work with such values as you never know where exactly the number (i.e. the black values) will be.
Is pixel 140 black or 142 black? In both cases it could well be a three. In the age/weight example these inputs are well defined. Feature 2 is weight. Feature 3 is age. These "dimensions" shouldnt "hop" in your dataset.
So: In your picture training the "threes" or "cars" or "houses" have to be recognized independent of their location in the picture, i.e. the pixel values, i.e. the feature/input vector, i.e. the dimensions as opposed to clearly defined inputs such as patient data.
How do you solve this in image recognition? You use additional tricks, e.g. convolution.
Answer: I read the previous answers, and Neil Slater's comment to Emre's post, copied again below, hits the nail. "Dimension hopping" is a term created by Dr. Hinton of machine learning pioneer fame in the context of view point.  To quote Dr. Hinton "So, typically envision the input dimensions correspond to pixels, and, if an object moves in the world and you don't move your eyes to follow it, the information about the object will occur on different pixels."  Age and weight are input dimension that are not easily confused.  Dr. Hinton used this obviously NOT likely dimension hopping situation of age and weight of patients to mean we would certainly be able to spot and fix any erroneous between these types of data (It's hard not to notice most adults are under 100 years old and more than 100 pounds).  The likely problem of dimension hopping, which Dr. Hinton was addressing, is pixels could be displaced because we have a different view point (e.g. the object could have moved or we are looking at it from a different angle).  Linear neural networks would not be able to detect this, whereas convolutional neural networks by design would.
"The age example is supposed to highlight a dataset that does not have dimension-hopping. Age and weight do not "hop" or swap values randomly between examples - they are not interchangeable and the example is showing how odd that would be (and how difficult it would make simple tasks such as linear regression). Pixel values in images (and similar data in many signal processing tasks) do interchange or move easily due to the nature of the problem. – Neil Slater May 29 '16 at 18:01"
Answer: Explanation straight from Hinton's course on Neural Networks for Machine Learning ....

" Dimension hopping occurs when one can take the information contained in the dimensions of some input, and move this between dimensions while not changing the target. The canonical example is taking an image of a handwritten digit and translating it within the image. The dimensions that contain "ink" are now different (they have been moved to other dimensions), however the label we assign to the digit has not changed. Note that this is not something that happens consistently across the dataset, that is we may have a dataset containing two handwritten digits where one is a translated version of the other, however this still does not change the corresponding label of the digits."
Answer: Hoping is only about issues with portion of image or pixels moving within dimension (mostly) and sometime into other dim (different receptive field) but output remains same.
This issue is dealt with invariance or equivariance and looks like weight and age example is easy way to state. Suppose if we are aware of this weight and age hopping we would easily make changes to the algo and get right result. But like data/information hopping, image hopping also happens, if we considered a '4' and a '4' shifted several pixels to the left to be different classes which has different target.
With Translation Invariance or better equivariance throguh filter this movement or hopping is not much issue though it increases complexity and at the cost of throwing away information, such as location.
Pls let me know if you need more clarity I will try to.

Dimension-Hopping in Machine Learning


Could we face problems when coming back to the UK after Brexit?

Question: I'm an EEA national (French) living in the UK since 2008 and exercising treaty rights. On that basis my non-EEA wife has a "Resident card of a family member of an EEA national" (expires 2019). Question: when travelling to either another European country or outside Europe, could we face any issue at customs due to Brexit? If so, what can we do about it beforehand?
Answer: Brexit and EEA Dependants: what to do
The "canonical" recommended steps to take beforehand are...

Those EEA citizens or their family members in the UK who does not
have an EU/EEA permanent residence card for the UK should
consider now whether to apply (or timetable for when they can apply)
and should do so unless there is clear harm in doing so.
If they are able to do so, they should prepare and provide evidence
to show that that the qualifying 5 years ended at least one year
ago. This will enable a naturalisation application to be submitted
immediately following receipt of the permanent residence card.
Each such person who already has a permanent residence card for the
UK should consider whether to apply to be naturalized as British
(see note below on Scotland). NOTE: this may have disadvantages and
the trade-offs should be studied carefully (questions about the
trade-offs are off-topic on this site).
Those who are not yet eligible to apply for a permanent residence
card may wish to apply for a registration certificate, confirming
that they are exercising an extended right of residence, and also
ensure that they continue to retain sufficient evidence of
exercising treaty rights from now on until they are eligible
(further questions about this are off-topic on this site).

Notes:

You will not have problems at the border at least until the end of
2017.
They will be looking for unbroken periods of exercising treaty rights
and they will need to see evidence.
Health insurance for dependants will be checked.
The UK has, several times, given more favourable immigration
treatment based on people who made unrelated applications before a
certain date – ie at a time when they did not know that their
application would help them in the future.
Do not expect them to announce a grandfathering date in advance.

Sign Posting

Generally we are not the resource for residency questions. Please use
Expats for 2nd level enquiries.
Further reading: ILPA evidence to the All Party Parliamentary
Group
More: Brexit: UK-EU movement of people
Comment: On what basis might they have problems at the border beginning in 2018?  Shouldn't their situation in the UK remain essentially as it is until the UK actually leaves the EU, and isn't that expected in 2019?
Comment: @phoog Parliament rises in December so I am not projecting anything at all beyond that. What you predict is true as far as formalities go however.
Comment: One major effect of naturalisation is what happens to your original nationality. I have been told by French and Dutch people that French can keep dual nationality, Dutch can't, and last answer from the German embassy in London is "we don't know" (since you can keep German nationality if you gain nationality of another EU country).


No pressure in clutch after bleeding the system

Question: I have a 1992 GMC C2500. When I got it there was no pressure at all in the clutch. I bleed it from the bleed valve for about 20 minutes to make sure there was no more air bubbles coming out. After all that there is still no pressure to the clutch. Does anyone know what might be the problem and how I can fix it? Also when i got it the person said he had replaced both the clutch master cylinder and the clutch slave cylinder.
Answer: From what you describe I am not sure you have bled it correctly.
I suggest the following:

Fill reservoir,
Depress clutch pedal (person 2 or use a bar to block pedal down)
Open bleed valve, close as soon as pressure goes, ( a pipe into a jar is good to keep area clean)
Release pedal, wait 3 seconds then depress and hold again
Repeat 3 and 4 as necessary untill you have a decent pedal.

This method moves any air bubbles through the system. If this does not work then get it bled using a pressure bleeder.
Comment: Ok I'll give it another try today doing both those methods. If I were to take the slave cylinder out but leave it hooked up to the fluid line after I bleed it should there be pressure in the clutch or do I have to reinstall it before there Will be pressure?
Comment: There is a small return spring in the slave cylinder but the pressure you feel on the pedal is from the clutch cover plate.
Comment: Does that mean the slave cylinder needs to be bolted into place before I'll have pressure in my clutch?


What is the starting address pointed by Stack Pointer in PDP 11?

Question: To which memory location does the stack pointer point at the beginning of the program in PDP 11? And what can be the end address the SP can point to before overflow occurs?
Comment: We need more information to answer your question. `At the beginning of the program` -- do you mean after hardware reset? Or after the operating system has loaded your application? And then, which operating system?
Comment: SOme PDP-11s have more than one stack pointer.
Comment: Methinks this is a homework question.
Comment: @AlexHajnal For which class? Do they teach retrocomputing somewhere?
Comment: @LeoB. Yes, at the [Technion](https://en.wikipedia.org/wiki/Technion_%E2%80%93_Israel_Institute_of_Technology).  They use either the PDP-11 or VAX architecture (I forget which) for some of their undergrad computing classes.
Comment: @AlexHajnal I see; but it is a regular computing class, not a computer history class, right?
Comment: @LeoB. Yea, _Intro to computer architectures_, _ASM 101_, or somesuch.  You see them (new users asking low-level DEC architecture questions) a lot over on Stackoverflow, IIRC.
Answer: A "naked" PDP-11 (at least the ones I've seen, might also have been preconfigured) would start up with the system stack configured to &400 to &777 (& == octal notation, as common on the PDP-11) and execute code typically starting from &1000 (the next address beyond the stack top). As it's unclear what you mean with "program", I'd assume the initial startup after reset. The area below the stack (&000-&377) holds the interrupt and trap vectors.
What happens after that is entirely dependant on the operating system and machine configuration.
As you see from the above, the system stack cannot technically grow lower than &400 (it would overwrite the vector area) - Actually, the PDP-11 has a stack limit register that monitors stack usage and will execute a processor trap once the stack grows into a configurable "yellow zone", and a reset if the stack grows even lower into what DEC called the "red zone".
From the PDP-11/40 manual:

PROGRAMMABLE STACK LIMIT
The stack limit allows program control of the lower limit for permissible stack addresses. This limit may be varied in increments of &400 words, up to a maximum address of &177400, almost the top of a 32K word memory.
  The normal boundary for stack addresses is &400. The stack limit option allows this lower limit to be raised, providing more address space for interrupt vectors or other data that should not be destroyed by a program.
The contents of the stack limit register (SL) are compared to the stack address to determine if a violation has occurred (although memory references that do not alter memory are always allowed). The least significant bit of the register (bit 8) has a value of &400. The determination of the violation zones is as follows:

Yellow Zone = (SL) + (&340 through &377) execute, then trap.
Red Zone = (SL) +(&337) abort, then trap to location 4.

If the stack limit register contents were zero:

YellowZone = &340 through &377
RedZone = &000 through &337

The stack limit register is, to my knowledge, exclusively available in the PDP-11/40 and sits at location &177400. You could thus reserve a protected memory zone between the stack and the vector area.
Once the OS is loaded, the limits and locations can, depending on the operating system, be entirely different. Note the PDP-11 supports virtual memory and a larger system address space than addressable by a single process and can page in/out memory, the variance between OSs can be significant.
Comment: @Wilson See my edit, was too much for a comment.
Answer: In UNIX V6:
# STTY -LCASE
# chdir tmp
# echo 'main() { int x; printf("%o\n", &x); }' > stack.c
# cat stack.c
main() { int x; printf("%o\n", &x); }
# cc stack.c
# ./a.out
177744
#

The stack starts at the very top of the virtual memory, then the kernel puts the command line plus the argv array there; plus the space for saved registers at the start of main; overall, there are 26 bytes used before the stack space for the local variables in main starts.
When main() is called recursively, the execution, after a considerable wait, ends with
22336
22320
22302
22264
22246
Memory fault -- Core dumped

whereas size a.out shows a mere 638+58+530=1226 (2312).
That looks like a swap space exhaustion rather than a limitation. Ostensibly, the stack can grow down to the page just above the highest page containing dynamically allocated memory.
Answer: If you are programming a 'bare metal' PDP-11 (no operating system or program loader) then you should not assume the stack pointer (R6) is initialized to any particular value (i.e. you need to initialize it yourself).  If your PDP-11 has front-panel toggle switches you can set R6 by toggling a value into location 177706.  Presumably this could also be done on later systems using Console ODT.
If you are running a program under an operating system or monitor, the initial value of the stack pointer will typically be set for you, but the exact value may vary.  The documentation for the operating system or monitor you're running should tell you.
The lower bound of the stack pointer is 256 (400 octal).  If a stack 'push' operation causes the stack pointer to fall below that limit (the stack grows downwards) it will trigger a Stack Overflow trap (via the trap vector at address 4).  This is described in chapter 2, page 43 of the 1969 edition of the PDP-11 Processor Handbook (http://gordonbell.azurewebsites.net/digital/pdp%2011%20handbook%201969.pdf)
Comment: Note that different PDP-11 models behave slightly differently, and what a machine does when it is powered on depends on things like the processor model, settings of the front panel switches, whether you have core memory or not, and what kind of boot options you have installed.  A PDP-11/20 for example might trap to location 24 on power up (the Power Fail trap) and what happens next will depend on what is stored in the words at that location.
Comment: But OP does not say he's using R6 as the stack pointer. Any register will do, R6 is just a convention.
Answer: I can answer for the Soviet computer BK-0010, which uses a clone processor of PDP-11. When a user's program would start, its atarting address would be &1000 and SP would be initialized to the same value as well (the stack would grow backwards while PC would grow forward).
Comment: Not a clone, rather a reimplementation.


Unity Error: Failed to re-package resources

Question: <code>Error building Player: CommandInvokationFailure: Failed to re-package resources. See the Console for details.
C:\Users\Usuari\AppData\Local\Android\android-sdk\build-tools\21.0.2\aapt.exe package --auto-add-overlay -v -f -m -J gen -M AndroidManifest.xml -S "res" -I "C:/Users/Usuari/AppData/Local/Android/android-sdk/platforms/android-21\android.jar" -F bin/resources.ap_ --extra-packages

stderr[
ERROR: No argument supplied for '--extra-packages' option
Android Asset Packaging Tool

Usage:
 aapt l[ist] [-v] [-a] file.{zip,jar,apk}
   List contents of Zip-compatible archive.

 aapt d[ump] [--values] [--include-meta-data] WHAT file.{apk} [asset [asset ...]]
   strings          Print the contents of the resource table string pool in the APK.
   badging          Print the label and icon for the app declared in APK.
   permissions      Print the permissions from the APK.
   resources        Print the resource table from the APK.
   configurations   Print the configurations in the APK.
   xmltree          Print the compiled xmls in the given assets.
   xmlstrings       Print the strings of the given compiled xml assets.

 aapt p[ackage] [-d][-f][-m][-u][-v][-x][-z][-M AndroidManifest.xml] \
        [-0 extension [-0 extension ...]] [-g tolerance] [-j jarfile] \
        [--debug-mode] [--min-sdk-version VAL] [--target-sdk-version VAL] \
        [--app-version VAL] [--app-version-name TEXT] [--custom-package VAL] \
        [--rename-manifest-package PACKAGE] \
        [--rename-instrumentation-target-package PACKAGE] \
        [--utf16] [--auto-add-overlay] \
        [--max-res-version VAL] \
        [-I base-package [-I base-package ...]] \
        [-A asset-source-dir]  [-G class-list-file] [-P public-definitions-file] \
        [-S resource-sources [-S resource-sources ...]] \
        [-F apk-file] [-J R-file-dir] \
        [--product product1,product2,...] \
        [-c CONFIGS] [--preferred-configurations CONFIGS] \
        [--split CONFIGS [--split CONFIGS]] \
        [--feature-of package [--feature-after package]] \
        [raw-files-dir [raw-files-dir] ...] \
        [--output-text-symbols DIR]

   Package the android resources.  It will read assets and resources that are
   supplied with the -M -A -S or raw-files-dir arguments.  The -J -P -F and -R
   options control which files are output.

 aapt r[emove] [-v] file.{zip,jar,apk} file1 [file2 ...]
   Delete specified files from Zip-compatible archive.

 aapt a[dd] [-v] file.{zip,jar,apk} file1 [file2 ...]
   Add specified files to Zip-compatible archive.

 aapt c[runch] [-v] -S resource-sources ... -C output-folder ...
   Do PNG preprocessing on one or several resource folders
   and store the results in the output folder.

 aapt s[ingleCrunch] [-v] -i input-file -o outputfile
   Do PNG preprocessing on a single file.

 aapt v[ersion]
   Print program version.

 Modifiers:
   -a  print Android-specific data (resources, manifest) when listing
   -c  specify which configurations to include.  The default is all
       configurations.  The value of the parameter should be a comma
       separated list of configuration values.  Locales should be specified
       as either a language or language-region pair.  Some examples:
            en
            port,en
            port,land,en_US
   -d  one or more device assets to include, separated by commas
   -f  force overwrite of existing files
   -g  specify a pixel tolerance to force images to grayscale, default 0
   -j  specify a jar or zip file containing classes to include
   -k  junk path of file(s) added
   -m  make package directories under location specified by -J
   -u  update existing packages (add new, replace older, remove deleted files)
   -v  verbose output
   -x  create extending (non-application) resource IDs
   -z  require localization of resource attributes marked with
       localization="suggested"
   -A  additional directory in which to find raw asset files
   -G  A file to output proguard options into.
   -F  specify the apk file to output
   -I  add an existing package to base include set
   -J  specify where to output R.java resource constant definitions
   -M  specify full path to AndroidManifest.xml to include in zip
   -P  specify where to output public resource definitions
   -S  directory in which to find resources.  Multiple directories will be scanned
       and the first match found (left to right) will take precedence.
   -0  specifies an additional extension for which such files will not
       be stored compressed in the .apk.  An empty string means to not
       compress any files at all.
   --debug-mode
       inserts android:debuggable="true" in to the application node of the
       manifest, making the application debuggable even on production devices.
   --include-meta-data
       when used with "dump badging" also includes meta-data tags.
   --pseudo-localize
       generate resources for pseudo-locales (en-XA and ar-XB).
   --min-sdk-version
       inserts android:minSdkVersion in to manifest.  If the version is 7 or
       higher, the default encoding for resources will be in UTF-8.
   --target-sdk-version
       inserts android:targetSdkVersion in to manifest.
   --max-res-version
       ignores versioned resource directories above the given value.
   --values
       when used with "dump resources" also includes resource values.
   --version-code
       inserts android:versionCode in to manifest.
   --version-name
       inserts android:versionName in to manifest.
   --replace-version
       If --version-code and/or --version-name are specified, these
       values will replace any value already in the manifest. By
       default, nothing is changed if the manifest already defines
       these attributes.
   --custom-package
       generates R.java into a different package.
   --extra-packages
       generate R.java for libraries. Separate libraries with ':'.
   --generate-dependencies
       generate dependency files in the same directories for R.java and resource package
   --auto-add-overlay
       Automatically add resources that are only in overlays.
   --preferred-density
       Specifies a preference for a particular density. Resources that do not
       match this density and have variants that are a closer match are removed.
   --split
       Builds a separate split APK for the configurations listed. This can
       be loaded alongside the base APK at runtime.
   --feature-of
       Builds a split APK that is a feature of the apk specified here. Resources
       in the base APK can be referenced from the the feature APK.
   --feature-after
       An app can have multiple Feature Split APKs which must be totally ordered.
       If --feature-of is specified, this flag specifies which Feature Split APK
       comes before this one. The first Feature Split APK should not define
       anything here.
   --rename-manifest-package
       Rewrite the manifest so that its package name is the package name
       given here.  Relative class names (for example .Foo) will be
       changed to absolute names with the old package so that the code
       does not need to change.
   --rename-instrumentation-target-package
       Rewrite the manifest so that all of its instrumentation
       components target the given package.  Useful when used in
       conjunction with --rename-manifest-package to fix tests against
       a package that has been renamed.
   --product
       Specifies which variant to choose for strings that have
       product variants
   --utf16
       changes default encoding for resources to UTF-16.  Only useful when API
       level is set to 7 or higher where the default encoding is UTF-8.
   --non-constant-id
       Make the resources ID non constant. This is required to make an R java class
       that does not contain the final value but is used to make reusable compiled
       libraries that need to access resources.
   --shared-lib
       Make a shared library resource package that can be loaded by an application
       at runtime to access the libraries resources. Implies --non-constant-id.
   --error-on-failed-insert
       Forces aapt to return an error if it fails to insert values into the manifest
       with --debug-mode, --min-sdk-version, --target-sdk-version --version-code
       and --version-name.
       Insertion typically fails if the manifest already defines the attribute.
   --error-on-missing-config-entry
       Forces aapt to return an error if it fails to find an entry for a configuration.
   --output-text-symbols
       Generates a text file containing the resource symbols of the R class in the
       specified folder.
   --ignore-assets
       Assets to be ignored. Default pattern is:
       !.svn:!.git:!.ds_store:!*.scc:.*:<dir>_*:!CVS:!thumbs.db:!picasa.ini:!*~
]
stdout[

]
</code>
I  really need some help. I get this error everytime that I want to build my app and I don't know how to solve it. Can anyone help me pls? I searched for answers in this website and in Google but I can't find anything that solves my problem.
Sorry for my bad english, I'm spanish.
Comment: The error seems straight forward, you must supply an argument for the `--extra-packages` option. Google does yield some answers, e.g. http://answers.unity3d.com/questions/716389/error-no-argument-supplied-for-extra-packages-opti.html and http://stackoverflow.com/questions/27258740/commandinfokationfailure-anybody-knows-how-to-fix-this-bug
Comment: I can't solve it... :( I'm getting mad.
Answer: go to your android sdk path then to

extras/google/google_play_services/libproject

from there copy a folder called google-play-services_lib
paste the folder in your unity project to Plugins/android/
also go to the android SDK manager and make sure in extras you have google play services installed


Pronunciation of ~しつ

Question: About nine years ago I had a Japanese teacher from Osaka, and I'm pretty sure she pronounced 教室【きょうしつ】 as "kyoshtsu", i.e. dropping the "i" in しつ.  The reason I remember is that I had trouble learning to say it.  But my current teacher, from Niigata, distinctly says the "i". Is this a regional difference, something that varies from person to person, or am I just not remembering it properly?
Comment: This might be of interest: http://japanese.stackexchange.com/q/30271/11589
Answer: As pointed out above, the issue here lies in devoicing. In Japanese, high vowels (i and u) undergo devoicing when they are surrounded by other unvoiced sounds. This is extremely common, but it does vary somewhat by region, and to a lesser extent, by person. In standard Japanese, though, it's most common to devoice them.
Comment: Ha! Funny that I don't remember learning about devoiced vowels when I was starting out. Thanks.

Pronunciation of ~しつ


Sapiens: tasty or smart?

Question: The verb sapere can mean tasting like something or having a sense of taste.
The latter can be understood figuratively close to "to be wise or sensible".
Dictionaries list the participle sapiens separately, and only the figurative meaning is given in all sources I looked at.
Why is this so?
Are there cases where sapiens means something like "tasty" rather than "smart"?
Or, from a different point of view, can one interpret — from a linguistic point of view — the name Homo sapiens to mean that the animals in question are tasty instead of smart?
Comment: Not an answer to your question, but it's not too often you come across a good Latin pun: apparently there is a food quality company called [Cibus Sapiens](http://www.cibusapiens.com/).
Comment: Perhaps ' taste ' can also mean ' discerning' in that by taste we discern the experience of things directly, and therefore wisely, at a different level of knowing , bypassing conceptual thinking . Is this perhaps wisdom or emotional intelligence, really ' knowing'
Answer: Dictionaries only provide meanings attested in ancient sources. Sapiens might have been used as "being tasty", but no trace of this is left.
As for homo sapiens, you are right: linguistically it could mean "tasty".
Answer: I think that @Mus Silvanus is correct, but should like to answer separately by giving actual examples from an old dictionary, which may throw a little more light.
Sapiens, entis Part. [sapio].   || Adj. wise, sensible, well-advised, discreet, judicious : ut quisque maxime perspicit, quid in re quaque verissimum sit, quique acutissime et celerrime potest et videre et explicare rationem, is prudentissimus et sapientissimus rite haberi solet, Cic. Off. 1, 5, 16 …
— and so on (at some length). This is followed by
Sapienter, Av. sensibly, discreetly, prudently, judiciously, wisely
— (with examples of comparative and superlative), but
Sapidus, a, um, adj. [sapio] well-tasting, relishing, savoury : tucetum perquam sapidissimum, App. M. 2, 117 : avis sapidior, Apic. 6, 6   || Fig. wise, prudent : puellae Alcim. 6 prooem.
Then we also find from later sources
Saporatus, a, um. adj. [sapor] seasoned, savoury : pulmenta, Tert. Spect 27 : cibi, Amm. 31, 2
Saporatus looks like the perfect participle of an otherwise unknown verb saporo (1st conj.) Personally, I can think only that there might have been two verbs sapio and saporo, the similarity of which, coupled with various dialects, led to their meanings having been confounded by the time when spelling became more standardised.
Comment: saporatus is a post-classical adjective from sapor, which in turn is a nominal derivative of sapio.
Comment: There are lots of *-atus* derivatives from nouns (*barbatus, togatus*, etc.); in Classical Latin they all come from first-declension nouns but the suffix later became productive with other nouns too. I don't think we want to posit unattested first-conjugation verbs behind all of them.
Comment: Which dictionary is this?  Also, could you use markup to indicate what is a quote from the dictionary and what isn't?  Quotes are indicated with a ">" at the beginning of a paragraph.
Comment: @fdb Yes, that's certainly what my dictionaries all have: but I think it may be no more than a quite plausible, generally accepted opinion — just like my own, worth anything or nothing!
Comment: Wm. Smith's Latin-English, 17th ed. 1881. It was based largely on Riddle's dictionary of 1849 (?), and claims to have had every reference checked. Both owe much of their content to Freund's German-Latin Dictionaries. Every subsequent dictionary owes something to these, including Lewis & Short.
Comment: Seems OT to me.. could you elaborate on why the existence of *saporatus* is relevant to *sapiens*?

Sapiens: tasty or smart?


How much force would be necessary to hold a 6-foot steel staff weighing 20 lbs from one end of it, parallel to the floor?

Question: This isn't a homework problem. I'm asking cause I'm wondering how strong a person would have to be to pull it off. Their arms would be extended, both hands gripping the staff at one end, and the staff is facing directly away from them, parallel to the floor, going through their 'z-axis' as it were (with x being left-right and y being top-bottom).
Comment: Now I realize the point of the discussion on meta about SI units. I said it about CGS units, but this works for these also: should I cry ? :p
Comment: It is not clear what you mean by force. The force exerted by the hands to grip the bar or by the arms to stay in that position? And, please use SI units.
Comment: Agreed. No excuse not to use SI here...
Answer: It's a 20-lbs staff.  20-lbs net force are required to hold it up, regardless of its orientation.
If you just apply this force to one end of the staff, though, there would be a net torque.
Instead, you need to use your hands to apply two forces to the staff.  One force, exerted by the near hand on the very end of the staff, should be down.  The other, exerted by the far hand a few inches down the staff, should be up.  You can imagine a see-saw.  The far hand is the pivot of the see-saw, which pushes up on the board.  The near hand is a very heavy person sitting very near the pivot, and the pole itself is a very light person sitting far from the pivot.  (The weight of the pole itself can be considered to be concentrated at  the half-way point.)
There are three forces on the pole and hence two distances between them.  The ratio of the forces at the extremes needs to be the inverse of the ratio of the distances.  That is, if one force is three times further out from the pivot, it should be one-third as large.
Let's say the distance between your hands is four inches, or 1/3 a foot.  The distance to the middle of the pole is about 3 feet, or about 10 times as much.  So you need to exert a force of about 200 pounds down with your near hand and 220 pounds up with your far hand.
Answer: If both of the person's hands were really at one end of the staff, it wouldn't be possible.
The reason is that, in order for the staff not to move, the net torque on it has to be zero. With only one plane of rotation, the torque due to a given force can be defined as
$\tau = rF\sin\theta$
where $r$ is the distance from a chosen "center of rotation" to the point where the force is applied, and $F$ is the magnitude of the force. Now, suppose you choose the point where the staff is being held as the center of rotation. In that case, the hands exert zero torque since $r=0$ for them, but the force of gravity acts on the center of the staff, 3 feet away, so it exerts a nonzero torque. Thus the total net torque is nonzero, and the staff will drop.
However, if you take into account that a person's hands have some finite size, and thus they can't be holding the staff exactly at its end, then it's possible to hold it up. The force required will depend on where the hands are positioned, though.

Suppose $d$ is the width of the person's hand, and suppose that the force exerted by each hand is applied exactly in the center of that hand. (This last assumption isn't true but it's probably good enough for a basic explanation) Then you have three forces being exerted on the staff: gravity acting through its center, the force from one hand acting at a distance $d/2$ from one end, and the force from the other hand acting at a distance $3d/2$ from that same end. In order for the staff to be stationary, all the forces have to cancel out:
$-mg + F_1 + F_2 = 0$
and all the torques have to cancel out:
$-mg\times\frac{L}{2} + F_1\times\frac{d}{2} + F_2\times\frac{3d}{2} = 0$
($L$ is the length of the staff) Solving this system of equations gives you
$F_1 = \frac{mg}{2d}(3d-L)$
and
$F_2 = \frac{mg}{2d}(L-d)$
Plugging in the given numbers with a reasonable guess for hand width, I get 770 N (170 lbf), directed downward, for the first force (closer to the end of the staff), and 860 N (190 lbf), directed upward, for the second force. So we're basically talking about the ability to exert 200 lbf with each hand, although you could rely on the structural integrity of your arm to help you out.
Notice that, since one of your hands is pulling upward and the other is pushing downward, the net force is 90 N, or 20 lbf, upwards - exactly what is needed to support the weight of the staff.
Comment: very nice , very thorough! though Mark's was a more intuitive explanation, this one helps me out the most. could you expand on the structural integrity of the arm helping one out?
Comment: Well, think about the arm exerting the downward force, for example. The rod exerts a 770 N reaction force on your arm, but all your arm has to do to keep that rod in place is not break. I *think* most adults' arms can take that kind of strain, even if they may not be strong enough to lift 200 lb. with one hand.
Answer:
I'm asking cause I'm wondering how strong a person would have to be to pull it off. Their arms would be extended, both hands gripping the staff at one end, and the staff is facing directly away from them, parallel to the floor, going through their 'z-axis' as it were (with x being left-right and y being top-bottom).

Ridiculously strong. I've done this with a shorter, lighter bamboo staff.
We do this occasionally at my martial arts dojo, using a 1 meter, 1 kg staff, as a conditioning exercise. The physiology is very interesting, and the physics of the joints, bones, and supporting muscles goes far beyond the raw torque. Within a minute or two, you start feeling truly astonishing levels of pain and burn.
I'm actually skeptical that any normal human could succeed with a 2 meter, 9 kg staff for a significant length of time.
Incidentally, I'll try to remember this, and do the calculations next time we do this exercise as a distraction from the agony.
Comment: hehe, distraction from agony is always good. i'd be skeptical too if i didn't see it with my own eyes, so you are of course welcome to continue being skeptical. it was only for 2 or 3 seconds that he held it, so it wasn't anything like a minute, though I wonder how long he could hold it there if he tried.
Comment: @Claudiu I'm not skeptical at all about a few seconds - I might even be able to do it for a second or two myself. But I'd be very skeptical about anyone doing it for a few minutes.
Answer: <code> ==================================================

 |<---d--->|<----(L/2-d)--->|<--------L/2--------->
 |                          |
 |                          V
 |                         mg
 |
 V
 F
</code>
$ F = \frac{mg(L/2 -d )}{d}$
You will need to support the rod at distance 'd' using your hand at the end where you are holding it.(look here) i.e. 'd' can't be zero.
m - mass of the rod
l - length of the rod
F - force required
Answer: Since you cannot hold the staff at exactly the end, your hand (or rather, your finger on the longer side of the staff) would become your fulcrum and your question becomes a first class lever problem with the weight of the long side becoming the force and the resistance the small part against your hand, in equilibrium.
Roughly, something like...
F*lever arm = R*Resistance Arm... you'll have to get one of the smarter guys here to calculate the force on the lever arm.. I think you might have to integrate over the length since the force is not acting along a single point on the lever.


what does it mean by if If you have a PC with the Windows 8 logo or UEFI firmware, choose the 64-bit download

Question: I have dual booted my Acer aspire one d257 which has an Intel atom n570 1gb of ram net book with windows 8 and Ubuntu 13.04. Which operating system shall I upgrade my PC to the 32 bit or 64bit, my laptop came with 32 bit but what confuses me is that it is on the download page If you have a PC with the Windows 8 logo or UEFI firmware, choose the 64-bit download. The thing is that my PC is 64 bit capable. Which operating system should I choose. Please list your answer with reasons why. my laptop came with 32-bit and has 32 bit windows 8. luckily, my laptop processor is 64bit based.
Answer: UEFI firmware is a more modern alternative to the BIOS used in older computers. Windows 8 computers require UEFI because it uses something called secure boot. This means that only programs signed by Microsoft can run during boot up.
This adds special requirements needed to install another OS on the machine. Ubuntu streamlines this in the x64 iso of Ubuntu since every UEFI computer happens to have a 64-bit processor in it.
If your processor supports 64 bit, your computer will run more efficiently using 64bit code. You should choose Ubuntu64
Answer: It is written on the Ubuntu download page, because either windows 8 logo or the UEFI capability indicates, that the certain computer is a 64-bit hardware architecture (amd64). Every newer system, built in the last few years are 64-bit, and gaining advantages of the 64-bit hardware (over a 32-bit hardware) is only possible with a 64-bit operating system. You can still use the 32-bit version of Ubuntu, but it doesn't have any advantages on 64-bit hardware, it's maintained for older, 32-bit (x86) computers and special cases. Use the 64-bit release, unless you have any particular reason to do otherwise.
Answer: Currently, the Ubuntu download page proposes the 32bit image by default.
However, the 32bit image is not compatible with UEFI computers. The 64bit image is.
Windows8 computers are all UEFI computers.
If your computer (indeed processor) is 64bit, then you should use the 64bit image of Ubuntu.
More information at https://help.ubuntu.com/community/UEFI
Comment: are you sure that i am not able to use the 32bit version.
Comment: Yes. Ubuntu 32bit is not compatible with UEFI, so if you install it, you won't be able to get a clean dual-boot with Windows8.


Performance differences between ATLAS and MKL?

Question: ATLAS is a free BLAS/LAPACK replacement that tunes itself to the machine when compiled. MKL is the commercial library shipped by Intel. Are these two libraries comparable when it comes to performance, or does MKL have the upper hand for some tasks? If so, which ones?
Comment: Now there is also [OpenBLAS](http://www.openblas.net/). See the [benchmark vs MKL on Sandybridge](http://www.openblas.net/dgemm_snb_1thread.png).
Answer: MKL (from Intel) is optimized for Intel processors, and probably has the "upper hand" there in many cases. But it is also "famous" for choosing the "worst" code-paths for AMD processors, as described here.
Answer: BLAS is not monlithic. BLAS1 and BLAS2 are memory bandwidth limited, and there is not much you can do to speed them up beyond the obvious (loop unrolling, cache blocking for level 2). BLAS3 is more interesting and the prototypical benchmark here is matrix-matrix multiplication. To my knowledge GOTOBlas has always been the clear winner here, see for example this comparison or this one and this justification.
It is now years later, and we have the BLIS Project. It is the best free alternative to MKL.
Comment: Matt is right, but the GotoBLAS is no longer under development. It still works pretty well for some modern processors, but the MKL will certainly surpass it for DGEMM on future processors if it does not already. We haven't tested it on Westmere, for example, but I wouldn't be surprised if GotoBLAS has already lost out.
Comment: OpenBLAS is the opensource project forked from GotoBLAS. https://github.com/xianyi/OpenBLAS
Comment: Dr. Goto got bought by M$.  Sadness . . .
Comment: Goto works on MKL now. No more sadness :-)
Answer: Prior answers to this question have covered most of the salient points, but I want to add one comment with respect to this:

does MKL have the upper hand for some tasks?

The MKL team is in a unique position to know about future Intel instruction sets and their implementations in specific processors.  Furthermore, they have access to proprietary processor simulators and pre-production hardware that no one outside of Intel can use.  Thus, MKL has the upper hand with respect to degree of knowledge about future products and when they obtain this knowledge.  Thus, it should not be too surprising if they produce better implementations of the BLAS than anyone else, at least early in the lifetime of a product with new features.
On the other hand, Intel has been quite open about the AVX-512 instruction set and has provided the Intel® Software Development Emulator (SDE) that allows developers to emulate AVX-512 instructions on processors that do not support these natively.  Because of this, it will not be too surprising if high-quality open-source implementations of the BLAS are available for Intel processors that support AVX-512 early in the lifetime of these products.
Of course, how much difference it makes to have detailed information about a particular processor versus the fundamentals of dense linear algebra algorithms is not fully resolved.  The following quote addresses this issue better than I can:

In theory, there is no difference between theory and practice. But, in practice, there is.

Full Disclosure: I work for Intel.
Comment: Is there any chance having MKL open sourced?
Comment: For what purpose? MKL is already free as in beer. There is far greater educational value in reading the source code of BLIS. If you want to read assembly, try OpenBLAS.
Answer: Profile, don't speculate! (also works as "Benchmark, don't speculate!")
There's nothing generic one can say, it depends heavily on the tasks you want to perform (BLAS 1/2/3, for example) and the hardware you're on (obviously, the Intel MKL doesn't run on ARM processors, for example; but even among Intel processors, you can expect performance differences).

Another thing I think is worth mentioning is that AMD also offers mathematical libraries tuned to their processors, the AMD Core Math Library. It's not as feature-rich as Intel's MKL, but it does include BLAS.
Comment: It is annoying to profile though, as the MKL is $499.
However they do offer a 1 month trial
Comment: True. There's a lot of anecdotal evidence (and actual profiling) to back up the other answers here (as evidenced by the links). However, your mileage may vary, and it always helps to profile to know that you're right.
Comment: @LyndonWhite is this still the case? The download page appears to show it [being free](https://software.intel.com/en-us/mkl/choose-download/linux)
Comment: Yes, I believe it is now free, I see lots of people using it now.
Answer: I think that the main difference between vendor BLAS libraries and open source BLAS libraries is the time that it takes for open source to support the latest hardware features.
As BLAS is widely used, it is of the interest of the vendor to support the latest hardware features. For instance, consider Intel's AVX vector extensions that were introduced with the "sandy-bridge" processor on Jan 2011. MKL had AVX support even before the CPU was available but it was only recently that ATLAS (late 2011) started to rollout support for AVX.
Also, if your application really needs performance and before you start benchmarking different BLAS libraries or start hacking around optimizing anything: profile your application. It is common that human intuition is not a very effective profiler predictor, at least I know mine is not! So instead of spending time randomly optimizing, profile your application and systematically approach each bottleneck.


How do you freeze fresh pineapple? Can you?

Question: I cut the up a fresh pineapple and wanted to freeze a portion, will it last and retain flavor/consistency? Also: is there anything that can be done with the Core - the hard part in the middle?
Comment: I juice the cores in my morning juicer.
Answer: I usually cut the pineapple into bite size pieces before freezing them.

IF i'm at my mom's restaurant, I usually put it in the super chiller, and then into the freezer.
At home, I usually drain it, for 20 -30 minutes in a sieve and then put them in air tight freezer bags.
Answer: I cut it into pieces, put it on a cookie sheet, and put it in the freezer of my refrigerator. When it is solid, I put it in bags (1/4 of the pineapple in each) and vacuum seal it. This goes into my chest freezer to enjoy later. If pineapples are a dollar apiece, it only makes sense to freeze them. The cores do make a great ice cream topping if you dice them finely and cook them down in a simple syrup.
Comment: Welcome to Seasoned Advice, and thanks for the answer! I think you'll find your answers are better received if you take the time to write them with proper grammar. (I've gone ahead and edited this one for you.)
Answer: If you cut the pineapple core into smaller pieces (say, something like a dice), then it's usable.  Cutting against the grain will shorten the overall fibers, too.  Also, I'd be willing to bet that the core pieces could be used for a tasty syrup.
Answer: You can use the core and skin (wash the pineapple before you cut it up) to make a great tea - put pieces of skin and core into a medium size sauce pan, add a few slices of fresh ginger, cover with water, simmer an hour and then let sit until it cools. Remove all the solid pieces, pour the liquid into a container. Delicious as a cold drink or heated as a tea - the bromelain in pineapple is a great anti-inflammatory and ginger has beneficial digestive properties.
Answer: I suppose pineapple should freeze as well as any other fruit as long as it is done quickly else it might go soft when you defrost it.
If you have a good blender, you can use the whole pineapple (without the skin of course as it is coarse) including the core - it is very healthy as it contains bromelain which helps to block excessive coagulation of the blood, reduce inflammation and can reduce the growth of some tumours (from what I have read, I am no doctor so can't say if it is true or not)
Answer: I have also heard the core is the most beneficial as it is the part that contains bromelian.
After washing then cutting the leaves & the bottom off, I quarter from top to bottom. I then put through the juicer. My grandkids call them smoothies because they are thick & creamy. No one would guess the skin went right in with it also.


What is GNU Info for?

Question: I understand what GNU Info is and how to use it, but what is it for? Why does it exist in parallel to the man pages? Why not write detailed man pages rather than provide a separate utility?
Comment: It's got one advantage over man pages: "hyperlinks". The rest are disadvantes, starting with Not Invented Here Syndrom, funny key bindings, hassle of dir maintenance and many more.
Comment: Use `info --vi-keys` to make info's keybindings feel more familiar. You can also use `less` with info to make it feel just like `man`: `info --subnodes -o - $1 | less`. You do lose some text formatting this way though.
Comment: texinfo file can do a lot more the groff macros.
Comment: Alternatively, point your browser at https://www.gnu.org/manual/. (Using Vimperator/Vrome is optional.)
Answer: GNU Info was designed to offer documentation that was comprehensive, hyperlinked, and possible to output to multiple formats.
Man pages were available, and they were great at providing printed output.  However, they were designed such that each man page had a reasonably small set of content.  A man page might have the discussion on a single C function such as printf(3), or would describe the ls(1) command.
That breaks down when you get into larger systems. How would you fit the documentation for Emacs into man pages? An example of the problem is the Perl man page, which lists 174 separate man pages you can read to get information.  How do you browse through that, or do a search to find out what && means?
As an improvement over man pages, Info gave us:

The ability to have a single document for a large system, which contains all the information about that system.  (versus 174 man pages)
Ability to do full-text search across the entire document (v. man -k which only checks keywords)
Hyperlinks to different parts of the same or different documents (v. The See Also section, which was made into hyperlinks by some, but not all, man page viewers)
An index for the document, which could be browsed or you could hit "i" and type in a term and it would search the index and take you to the right place (v. Nothing)
Linear document browsing across concepts, allowing you read the previous and next sections if you want to, either by mouse or keystroke (v. Nothing).

Is it still relevant? Nowadays most people would say "This documentation doesn't belong in a manpage" and would put it in a PDF or would put it up in HTML. In fact, the help systems on several OSes are based on HTML.  However, when GNU Info was created (1986), HTML didn't exist yet.  Nowadays texinfo allows you to create PDF, Info, or other formats, so you can use those formats if you want.
That's why GNU Info was invented.
Comment: `man -K foo`, with uppercase option, does a global full text search. Try `man -K global-apropos` - it finds the pages for `man` itself, in english, and in local language.
Comment: How do you find out what '&&' means?... you look in the index: "man perl", from there you see Overview, Tutorials, Reference Manual, Internals,  Misc (books, community sources, license, change-logs(~40), language + platform specific docs.  Of those, for '&&', I look in the Reference Section and see syntax, data and operators, as 1st 3 sections like most language ref-manuals.  && looks like an op, so I look in the perlop manpage, and 2nd screen down lists all the operators.  Compare that to figuring out keys for --vi-mode arg to 'info'... good luck.
Answer: The reason the Info system was invented is necessity, but I guess "laziness, hubris and impatience" is an equally good explanation.
The point of the GNU project was to develop a freely modifiable and freely distributible operating system and tools.  The traditional Unix man system was based on the nroff/troff document formatting system from Bell Labs, which was at the time commercial (non-free) software.  Eventually that system was reverse engineered and a free replacement called groff was created, but that was several years after the GNU project started.  So using the man system for GNU documentation before then would have required implementing a troff replacement, a huge undertaking.
Meanwhile GNU Emacs was the first big project of GNU and it required extensive documentation.  Facing a mountain of work implementing the GNU system, Richard Stallman cast about for existing software that he could use in his system.  TeX already existed and had powerful document formatting capabilities.  Unlike nroff/troff, TeX was free to use and redistribute.  Texinfo was created as a documentation system to leverage the power of TeX for printed manuals and GNU Emacs for processing and online documentation reading.  The original Texinfo processor and Info document browser were both written in Lisp and ran inside Emacs.  The standalone Texinfo utilities came several years later.
Answer: As the Wikipedia page says, TeXinfo was designed as the official documentation of the GNU project by Richard Stallman. It is a set of macros on top of TeX, and was designed for writing software manuals. I think Stallman considered man pages inadequate for the task. Two advantages Texinfo has over man pages is that it is hyperlinked, and second, that it is, by design easy to convert into other formats.
ADDENDUM: While not strictly relevant to the question, note that man pages are still considered the standard documentation system on free Unix-like systems like those running atop the Linux kernel and also the various BSD flavors. For example, the Debian package templates encourage the addition of a man page for any commands, and also lintian checks for a man page. Texinfo is still not widely used outside the GNU project.
Comment: +1 especially for the note about hypertext, which I think was a major reason to want to move away from the (then more than now) hardcopy-oriented `man` format.
Comment: I am used to books for reference materials.  I can read them cover-to-cover.  If manuals and books are inadequate for writing documentation, computers and languages would never have been taught or learnt.  In learningk most follow a progression from low->high knowledge with more complex topics building on simpler ones.  Books are almost what every child learns from -- sequentially presented information.  H-links are for focusing on random topics of interest: if expert & master of topic - you know what you want and links can take you there fast.  For reference & learning, links are a poor fit.
Answer: From a practical view, info is the most detailed of three levels of reference documentation:
The three levels are usually increasing in detail:

--help as a common command option – a short usage summary,
man   – the classic man pages; a quick reference, and
info  – a more detailed, GNU-specific manual –
the full, official documentation.

If an info page is not available, the man page usually contains the full documentation.
Note that the man page may contain exactly the same information
as the --help output for many commands from GNU coreutils –
for example, ls.
If you compare ls --help and man ls,
you may see that the contents are very similar.

The official info viewers
are info and info in emacs (M-x info).
There are third-party alternatives,
like pinfo for the terminal  or konqueror for the GUI:

pinfo   ls

konqueror info:ls

Comment: hmmm... very interesting, except that you forget to mention `help` as a command for builtin bash commands, and `apropos` and `whatis` as man with options for there practical use.
Comment: A hyper-linked reference is not a manual or book.  A wiki?  maybe, but manuals never come with hyperlinks in the off-line world.  They come with references (see chapter 38), but they aren't good to learn from.  Having recently read through the newer C++ book, I can agree it uses forward and backward references if you want more info about a topic that will be covered later.  Once you've read the book, those references can be a great aid in finding things.  But for someone new to a complex program?  I'll prefer a book over a linked HTML or info page every time.
Comment: Well, you are thrifty, I'll give you that.
Comment: @mikeserv I did not find the sub-answer include feature. ;)
Comment: I love info pages. They are much more *tutorial-like* than man pages and therefore much easier on beginners. Try `info sed` and `info grep` and compare with `man sed` and `man grep`. Man pages are much more technical and lack examples most of the times. There are exceptions to what I just described, but it holds true for most of the commands, I would say.
Answer: (See commands cheat sheet below)
1 - advanced, but lightweight technology
Man pages are flat.
info is a tree.
Both remain text based, so they can be used during low level system development, (unlike http, which requires a full blown GUI and browser before you can use it.)
This is also useful because linux can run on many low resource machines, for example, the stuff that runs on my Arduino from Atmel is found in info.

Man pages can't have operable hyperlinks.  (It's just not possible in this technology.)
info can and does have many operable links from node to node, or from node to leaf, making it much easier to navigate big manuals quickly.

(History: info is similar to gopher, if you remember that.  It was what we had just before we all moved into GUI OS's, and the the world wide web exploded.  I remember that gopher worked pretty good for finding information, and it was fast and simple.  It was easily expandable, fully text based, and fast.)

2 - contains content not found in man pages
Many standard packages also have a sister -doc package.  Often this content is then found only inside info.
These documentation packages add booklets inside info, with sections, and sub-sections.  In info lingo, these are called nodes, and nodes can contain other nodes in a tree structure.

Your first goal is to navigate.
But the help given by H is unhelpful. Looks more like the output of some robot.
I copied their help into a Gnote, and hand reorganized it (below).  I also noticed that many of the key-strokes were duplicated, with 2 or 3 ways to execute a given command.  It looks very much like emacs.

There are commands to climb around the tree, here are some examples:

up a section, e.g. from section 2.1 to section 2
right a section, e.g. from Section 2.1 directly to Section 2.2, skipping section 2.1.1
next section (i.e. move along branch tips from page to page), e.g. from Section 2.1, to Section 2.1.1, and then (assuming there is no Section 2.1.2), onward to Section 2.2

If you're reading and you scroll down line by line, then you'll visit all sections of each booklet.

Important navigation commands - Go to
Last
* l  - last i.e. go back.  It's like the back button on your web browser. - Go back to the last node seen in this window (initially we only have one window).   Wow, we can split the document window in half too!
Parent
* u - up one level.  e.g. go from Section 2.1, to Section 2.
Siblings
* n - next     node on this level. e.g. section 2 -> section 3  (not 2.1)
* p - previous node on this level. e.g. section 3 -> section 2
Children
* ] - next     node in the document, e.g. section 2 -> section 2.1
* [ - previous node in the document, e.g. section 2.1 -> section 2
People
* d - directory (main) node. - This is the top of the INFO tree.  Contains links to the families:
Family
* t - top node of this document. - Generally the table of contents
Here is my cheat sheet of info commands:
HELP - info - commands

#####################################################################################################################################################
Short list - 'basic' Info command keys (see below for full list)

        C-g         Cancel the current operation.
        H           Close this help window. (toggle help window)
        q           Quit Info altogether.

        h           Invoke the Info tutorial.

        Move in this node
                Up          Move up one line.
                Down        Move down one line.

                PgUp        Scroll backward one screenful.      - also backspace
                PgDn        Scroll forward  one screenful.      - also     space

                Home        Go to the beginning of this node.
                End         Go to the end       of this node.

                TAB         Skip to the next    hypertext link.

                /           Search forward for a specified string.
                }           Search for next     occurrence.
                {           Search for previous occurrence.

        Move to other nodes
                RET         Follow the          hypertext link under the cursor.

                1...9       Pick the first...ninth item in this node's menu.
                0           Pick the last item in this node's menu.

                l           Last in history.  Go back to the last node seen in this window (initially we only have one window). (?? history)

                d           Go to the main 'directory' node.                    my people
        the Info main menu - "This is the top of the INFO tree."

                t           Go to the top node of this document.                my family       Generally the table of contents

                u           Go up one level.                                    my parent       e.g. go from Section 2.1, to Section 2.

                n           Go to the next     node on this level.              my siblings     e.g. section 2 -> section 3  (not 2.1)
                p           Go to the previous node on this level.

                ]           Go to the next     node in the document.            my children     e.g. section 2 -> section 2.1
                [           Go to the previous node in the document.  (?siblings)

                m <name>    Pick a menu item specified by name.
                f           Follow a cross reference specified by name.
                g           Go to a node specified by name.

                i           Search for a specified string in the index (if there is an index), and select the node referenced by the first entry found.

                I           Synthesize menu of matching index entries. ???

#####################################################################################################################################################
Full list - of commands available in Info windows:

Notes:
        M-              (meta) is Alt;  (also you can use an Esc prefix instead of meta)
        M-C-            means hold both Ctrl and Alt down at same time
        *               Basic commands (listed above)

     HELP
*               H                                       (get-help-window)               Toggle display of help message
*               h                                       (get-info-help-node)            Visit Info node '(info)Help' (this gets:  man info )

     CANCEL
*                       C-g     C-x C-g M-C-g           (abort-key)                     Cancel current operation  (?? esc)

*               q       C-c                             (quit)                          Quit using Info
                        C-x C-c                         (quit)                          Quit using Info

     WINDOWS
                        C-l                             (redraw-display)                Redraw the display

                x       C-x 0                           (delete-window)                 Delete the current window
                        C-x 1                           (keep-one-window)               Delete all other   windows (leaving 1)

                        C-x 2                           (split-window)                  Split the current  window  (into 2)
                        C-x t                           (tile-windows)                  Divide the available screen space among the visible windows

                        C-x ^                           (grow-window)                   Grow (or shrink) this window

                        C-x o                           (next-window)                   Select the next window (other)

                        C-x C-b                         (list-visited-nodes)            Make a window containing a menu of all of the currently visited nodes

                        C-x w                           (toggle-wrap)                   Toggle the state of line wrapping in the current window

     VIEW OTHER FILE
                        C-x C-f                         (view-file)                     Read the name of a file and select it
                        C-x C-v                         (view-file)                     Read the name of a file and select it

     SCROLL
                        C-v                             (scroll-forward-page-only)      Scroll forward  in this window staying within node      ('v' looks like a down arrow)
                                M-v                     (scroll-backward-page-only)     Scroll backward in this window staying within node      (meta-v is the reverse, or up arrow)

*       PgDn    SPC                                     (scroll-forward)                Scroll forward  in this window (at end moving to next node??)
*       PgUp    DEL     C-h                             (scroll-backward)               Scroll backward in this window (at end moving to next node??)  (DEL = Backspace or Del)

                                M-C-v   ESC PgDn        (scroll-other-window)           Scroll the other window
                                        ESC PgUp        (scroll-other-window-backward)  Scroll the other window backward

     CURSOR MOVEMENT (within a 'node' / page)
        Right           C-f                             ( forward-char)                 Move forward  a character
        Left            C-b                             (backward-char)                 Move backward a character

                                M-b                     (backward-word)                 Move backward a word
                                M-f                     ( forward-word)                 Move forward  a word

                        C-a                             (beginning-of-line)             Move to the start of the line
                        C-e                             (end-of-line)                   Move to the end   of the line

*       Up              C-p                             (prev-line)                     Move up   to the previous line
*       Down            C-n                             (next-line)                     Move down to the next     line

                                M-r                     (move-to-window-line)           Move the cursor to a specific line of the window

*       Home    b               ESC <                   (beginning-of-node)             Move to the start of this node
*       End     e               ESC >                   (end-of-node)                   Move to the end   of this node

     SEARCHING
                /                                       (search)                        Read a string and search          for it
                s                                       (search)                        Read a string and search          for it
                ?                                       (search-backward)               Read a string and search backward for it

                R                                       (toggle-regexp)                 Toggle the usage of regular expressions in searches

                S                                       (search-case-sensitively)       Read a string and search for it case-sensitively

*               }       C-x n                           (search-next)                   Repeat last search in the same    direction
*               {       C-x N                           (search-previous)               Repeat last search in the reverse direction

                        C-s                             (isearch-forward)               Search interactively for a string as you type it
                        C-r                             (isearch-backward)              Search interactively for a string as you type it

                                M-/                     (tree-search)                   Search this node and subnodes for a string.

                                M-}                     (tree-search-next)              Go to next     match in Info sub-tree
                                M-{                     (tree-search-previous)          Go to previous match in Info sub-tree

     JUMP TO NODE CROSS REFERENCES (underlined links to nodes)
*               TAB                                     (move-to-next-xref)             Move to the next     cross reference
                BackTab         M-TAB                   (move-to-prev-xref)             Move to the previous cross reference  (Shift-tab)

     SELECT A NODE (hyperlink)
*               RET                                     (select-reference-this-line)    Select reference or menu item appearing on this line

*               1 .. 9                                  (menu-digit)                    Select this     menu item (link) # in this node's menu (this page's menu)
*               0                                       (last-menu-item)                Select the last menu item (link)   in this node's menu (this page's menu)

                <                                       (first-node)                    Select the first node in this file
                >                                       (last-node)                     Select the last  node in this file

*               d                                       (dir-node)                      Select the 'dir' node (in all files?)   the Info main menu - "This is the top of the INFO tree."

*               t                                       (top-node)                      Select the 'Top' node in this file      Generally the table of contents
*               u                                       ( up-node)                      Select the 'Up'  node in this file      i.e. go from Section 2.1, to Section 2.

*               n                                       (next-node)                     Select the Next node                    i.e. section 2.1 -> section 2.2
*               p                                       (prev-node)                     Select the Prev node

*               g <name>                                (goto-node)                     Read a node name and select it
*               m <item>                                (menu-item)                     Read a menu item and select its node    ???

                        C-x b                           (select-visited-node)           Select a node which has been previously visited in a visible window (c-x=Window, back)

     MOVE TO ANOTHER NODE (in the tree)
*               [                                       (global-prev-node)              Move backwards or up   through node structure (tree within this file)
*               ]                                       (global-next-node)              Move forwards  or down through node structure (tree within this file)

*               l                                       (history-node)                  last - Select the most recently selected node

     GET NODE INFORMATION
                =                                       (display-file-info)             Show full file name of node being displayed
                O                                       (goto-invocation-node)          Find the node describing program invocation

     READ IN NEW MENUS
                G <menus>                               (menu-sequence)                 Read a list of menus starting from dir and follow them  ???

     INDEX
*               i                                       (index-search)                  Look up a string in the index for this file (Search for a specified string in the index
                                                                                (if there is an index), and select the node referenced by the first entry found.

                ,                                       (next-index-match)              Go to the next matching index item from the last 'i' command

*               I                                       (virtual-index)                 List all matches of a string in the index

                        C-x f                           (all-files)                     Show all matching files

     FOOTNOTES
*               f                                       (xref-item)                     Read a footnote or cross reference and select its node
                r                                       (xref-item)                     Read a footnote or cross reference and select its node

                                M-C-f                   (show-footnotes)                Show the footnotes associated with this node in another window

     NUMERIC
                        C-u                             (universal-argument)            Start (or multiply by 4) the current numeric argument
                                M--                     (add-digit-to-numeric-arg)      Add this digit to the current numeric argument
                                M-0 .. M-9              (add-digit-to-numeric-arg)      Add this digit to the current numeric argument

     MISC
                                M-x                     (execute-command)               Read a command name in the echo area and execute it     ?? pwd and ls don't work

#####################################################################################################################################################
The following text commands can only be invoked via M-x (Alt-x):

        This is a list of longer commands that can be typed, all prefixed with Alt-x:

        M-x scroll-forward-set-window                   Scroll forward  in this window                          and set default window size
        M-x scroll-backward-set-window                  Scroll backward in this window                          and set default window size

        M-x scroll-forward-page-only-set-window         Scroll forward  in this window  staying within node     and set default window size
        M-x scroll-backward-page-only-set-window        Scroll backward in this window  staying within node     and set default window size

        M-x down-line                                   Scroll down by lines
        M-x   up-line                                   Scroll up   by lines

        M-x scroll-half-screen-down                     Scroll down by half screen size
        M-x scroll-half-screen-up                       Scroll up   by half screen size

        M-x prev-window                                 Select the previous             xwindow

        M-x set-screen-height <number>                  Set the height of the displayed window

        M-x  find-menu                                  Move to the start of this node's menu

        M-x visit-menu                                  Visit as many menu items at once as possible

        M-x man <name of man page>                      Read a manpage reference and select it

        M-x print-node                                  Pipe the contents of this node through INFO_PRINT_COMMAND

        M-x clear-search                                Clear displayed search matches

        M-x describe-key <key combo>                    Print documentation for KEY  (one line of documentation)
        M-x where-is                                    Show what to type to execute a given command
        M-x describe-command                            Read the name of an Info command and describe it

        M-x index-apropos                               Grovel all known info file's indices for a string and build a menu (grep widely, and make a menu of what is found)

        M-x describe-variable                           Explain the use of a     variable
        M-x      set-variable                           Set the value of an Info variable

        M-x info-version                                Display version of Info being run

#####################################################################################################################################################
Commands available in the 'echo' area (i.e. at bottom of screen):

        (M- (meta) = Fn  (not alt))

        C-l             (redraw-display)                        Redraw the display

        C-g     Esc     (echo-area-abort)                       Cancel or quit operation
        M-C-g           (echo-area-abort)                       Cancel or quit operation

     MOVE
        C-a     Home    (echo-area-beg-of-line)                 Move to the start of this line
        C-e     End     (echo-area-end-of-line)                 Move to the end   of this line

        C-b     Left    (echo-area-backward)                    Move backward a character
        C-f     Right   (echo-area-forward)                     Move forward  a character

        M-b             (echo-area-backward-word)               Move backward a word
        M-f             (echo-area-forward-word)                Move forward  a word

     COMMAND LINE COMPLETIONS
        M-?     ?       (echo-area-possible-completions)        List possible completions
        M-C-v           (echo-area-scroll-completions-window)   Scroll the completions window
        TAB     SPC     (echo-area-complete)                    Insert completion
        RET     LFD     (echo-area-newline)                     Accept (or force completion of) this line

     DELETE/YANK
        C-d             (echo-area-delete)                      Delete the character under  the cursor
        C-h     DEL     (echo-area-rubout)                      Delete the character behind the cursor

        M-d             (echo-area-kill-word)                   Kill the word following the cursor
        M-DEL           (echo-area-backward-kill-word)          Kill the word preceding the cursor

        C-k             (echo-area-kill-line)                   Kill to the end       of the line
        C-x DEL         (echo-area-backward-kill-line)          Kill to the beginning of the line

        C-y             (echo-area-yank)                        Yank back the contents of the last kill
        M-y             (echo-area-yank-pop)                    Yank back a previous kill

     INSERT
        C-q             (echo-area-quoted-insert)               Insert next  character verbatim
        M-TAB           (echo-area-tab-insert)                  Insert a TAB character

     TRANSPOSE
        C-t             (echo-area-transpose-chars)             Transpose characters at point (and move ahead by one)

     NUMERIC ARGUMENTS ???
        C-u             (universal-argument)                    Start (or multiply by 4) the current numeric argument
        M--             (add-digit-to-numeric-arg)              Add this digit to the current numeric argument
        M-0 .. M-9      (add-digit-to-numeric-arg)              Add this digit to the current numeric argument

        C-x o           (next-window)                           Select the next window

Answer: Textinfo, Nroff, Groff, Troff are "PITA"s (pain in the ass) technologies (syntaxes) for just doing what you can do with wayyyy less effort with MARKDOWN.
Stick to whatever makes you more productive for the task at hand.
(i.e documentation page -> "Markdown" and you are done).

What is GNU Info for?


Mining calculators and blocks found

Question: Whenever we use an online mining calculator, do these calculator estimate a 100% blocks finding? Shouldn't they be subject to the pool efficiency and how many blocks are found? I mean, if my pool only catches 50% of total blocks my mining earnings are cut in half. Is this right?
Answer: No, your earnings are related to how much hashing power you contribute to the network, not your share of the pool's hashing power.
Said differently, if you were mining solo and providing an infinite amount of time, the earnings would be the same (minus the fees). Pools only exist to give you more frequent, smaller revenue.
Comment: Yeah but I'm not talking about pools. Let's say it's just you and me and I own 1/10 of the total hashrate. It is a matter of probability I'll finding 1/10 blocks and therefore earning 1/10 of total rewards, right?
Comment: Correct, over a certain period of time. As I said, your earnings are related to how much hashing power you contribute to the network.

Mining calculators and blocks found