Is overclocking legal?

Question: Is overclocking your CPU and GPU classified as being legal ? If so, why don't manufacturers make overclocking easier so that just about anyone is able to play around with it ? - at own risk of course.
Comment: It's *your property*, man! You can shoot it, drown it in genuine maple syrup, try to jamb it into the socket backwards, or anything else you care to do. You **own** it. The folks you bought it from ***do not*** own it. They can take their opinions on the matter, fold them until they are all corners, and stick them someone uncomfortable.
Comment: Some research would have revealed that some hardware is specifically aimed at people who want to overclock (e.g. Intel i5 2500K). Also some manufacturers provide tools specifically for that purpose, e.g. AMD Overdrive http://www.lostintechnology.com/how-to/how-to-overclock-your-cpu-using-amd-overdrive/#.TsaHenKHjs0.
Comment: @dmckee One would think so, but Apple would severely object to that.
Comment: It's legal. It is easy. You used to have to unsolder surface mount capacitors from processors and replace them with other ones. Legality aside, this is like asking why don't all cars come with some nitrous oxide system. They don't because you'll hurt yourself or the machine and then they might be seen as responsible for encouraging that, possibly for profits when you must replace broken machines.
Comment: [Intel's Turbo Boost](http://en.wikipedia.org/wiki/Intel_Turbo_Boost) is essentially intended, dynamic, automatic over-clocking.
Comment: Apple tries to leverage the laws relating to software to maintain control of the hardware. That's not surprising, because they would very much like to have the world work that way, but they can take their opinions on the matter, fold them until... Mind you, I won't buy anything that doesn't come with physical media or the ability to burn the same explicitly to make it hard for the seller to try to change the terms later on.
Comment: They (Apple) also pays of SO apparently to delete comments that degrade them (as in on this comment thread).
Answer: Manufacturers are not obliged to make easy any course of action just because it happens to not be illegal. I don't know what jurisdiction you are in, but I think you'd be hard pressed to find any language in any law that states that overclocking is illegal.
I think the key is the "at own risk" - if you make overclocking too easy, people will start playing with voltages, timings and frequencies without having any idea about how they interact and what the consequences may be. At best, then, you get an unstable system, and at worst, you can destroy the hardware. For which the manufacturer almost certainly will get the blame. What company wants to make it very easy for the customer to put the company in that position?
Comment: They also have this habit of wanting people to pay more for their performance :)
Comment: @user606723 that is their prerogative. If you don't like that, try AMD, which currently has a habit of leaving all their procs completely unlocked. Or start your own company and do things your way.
Comment: Great answer.  To expand, some motherboards and processors mostly targeting the "Enthusiast" crowd do make it relatively easily, but most don't because such tools can be dangerous in the hands of people that don't know what they are doing exactly as you say.
Comment: @music2myear: Even very smart people occasionally screw up and burn a CPU or put too much voltage on the RAM, or both. Heh. I guess I am just saying that dangerous tools are still dangerous even when you know how to use them.
Comment: @music2myear, I in no way implied that I disagreed with their actions or believed that they shouldn't be able to do so.
Comment: @TimothyAWiseman +1: Never underestimate the potential of too many options in the hands of (l)users.
Answer: It's legal but risky - hence why manufacturers make it difficult.
It used to be the case that chips were tested and those that failed to meet the highest specification were "downgraded" to a lower spec. (I'm not 100% sure of the process). This means that a CPU rated at 2GHz (say) is functionally identical to one rated at 3GHz. Therefore you could try to operate the 2GHz chip at the higher speed.
However, there's a good chance that the chip will fail when operated in this mode for any length of time. What the manufacturer doesn't want is you then complaining that overclocking melted your motherboard and demanding a replacement.
Comment: +1 this is the reason.  Manufacturers often **under** clock components, either because that specific part failed QA for at higher clock speeds, or simply because it is cheaper to build a higher-end component in bulk than it is to build both lower- and higher-end versions of it.  But they don't want people buying the 2GHz chip and overclocking it to 3GHz, knowing it is physically equivalent to the 3GHz chip; they want people to buy the more expensive 3GHz version.
Comment: Actually, it's not because it's cheaper to make the higher-end component in bulk.. it's because it's impossible not to. What's the difference between the lower clocked and higher clocked? The design is the same. The chip is the same; how would they go about making it slower without changing the design(expensive)? Heck if I know.
Comment: @user606723: That's exactly what I said - it's cheaper to build the high-end version in bulk and simply disable/limit some parts for the lower-end version, than it is to design and build two+ separate chips.
Answer: Of course it's legal. You can do whatever you want to your equipment.
And (in some cases) they do make it easy. The software that comes with ATI graphics cards (Catalyst Control Center) has an overclocking section built right in. As does the software that comes with Asus motherboards. To name a couple.
That said, since you can damage the gear with overclocking, manufacturers are naturally going to be a bit nervous about giving you the power. There are people who don't read warnings. And there are people who will blame the manufacturer for their own stupidity. So even if they can avoid having to replace gear damaged by overclocking because it voids the waranty, they may still prefer to avoid ill-will by giving tools to fools, so to speak.
Comment: @music2myear What Sony considers is not relevant. What the law says is. I would really see Sony going to court in a country other then the USA and argue that you can't do what you want with a piece of hardware you bought. If I want to use it as a book holder or I empty it to store candies is my problem not theirs.
Comment: @music: Not specifically relevant to this case, but your argument has some merit. The waters are murky. If piracy, infringement of IP rights, or breach of an EULA are involved, there can be legal ramifications. However Sony's legal action against Geroge Hotz amounted to little more than harrassment. Unfortunately any large company can make the life of an individual hell without ever proving any wrong-doing; that's the wonderful system of law practiced in the US and other countries. But sony came down on Hotz not because he hacked the PS3, but because published his methods.
Comment: The first part of the first paragraph is correct. The second part isn't so much, even though it should be. For instance, Sony considers it illegal for people who have purchased (and thus own) their PS3 to modify it in any way. While this is stupid and silly on their part, stupidity and silliness are not stopping them from suing the pants of PS3 hackers and modders.
Comment: I think the main reason they dont want you moddifying a PS3, is so that you dont play pirated software on it, not the moddifing itself. If you mod your PS3 to play pirated games, they are losing Lots of money (Or maybe not - If you werent going to buy the game anyway.. ), So they arnt happy and hence try to prevent it.
Comment: Sony also has a pressing desire to control how you play *on their network*, and they'll try to use the various IP laws that apply to *software* to manage that, but they still have no traction on matters of hardware. A sale is a sale, and once they've sold it they have no further rights in the matter.
Comment: Other examples: the "black edition" AMD Phenoms (with unlocked multiplier), the many mobos from Asus with "OCProfile" and OC'ing capabilities right into the Setup program and bundled utilities.
Answer: It is not illegal, it voids warranties. You are pushing the device beyond it's manufacturer support limits. If you destroy your GPU or CPU, the manufacturer won't replace it because you did something to the device that is unsupported.
It's like buying tires, but sanding the tires down to make them slicks, then your tires blow out. The tire manufacturer will not replace your tires because your did something that was unsupported.
Answer: The simple answer is that it's legal and can void warranty.  However, the CPU warranty is usually really short.
Why do it: manufacturers sometimes establish pricing based on market and not the product quality.  so a 3.0GHz chip justifies the extra $100 for 3.2GHz but in fact, they could be from the same batch just marked differently.
Draw backs: An over-clocked cpu is more noisy (electrical noise) which could lead to errors essentially due to misreading or data not being ready in time. It also runs hotter (more electricity consumed due to higher cycles).  The consumer chips aren't designed to be run very hot so you run the risk of chip failure.
typical mitigation: Successful overclocking usually comes by slightly increasing the voltage (more kick) and increasing the cooling to take away the additional heat. A cool CPU is a happy CPU.  Some old big mainframes used to run near -40 degrees.
finally, is it worth it?
Typically, no.  The CPU is in most cases choked and waiting for data from RAM, Hard drive, or other IO.  unless you're doing some low IO stuff (like math) the faster CPU doesn't translate into much faster PC.  You're better off with a larger cache and focusing on the speed and streaming of the external bus, ram, and IO.
Comment: It's legal on the action of overclocking, and it's illegal to use an unstable system for anything important, such as engineering and medical ...
Answer: People who build their own computers are overlooking a major reason for anti-overclocking technology:  Fraud on the part of small-scale computer building companies.  When the local hole-in-the-wall PC parts place sells a computer as a "2.4GHz Intel CPU" when it's really an overclocked 2GHz part, the buyer unknowingly assumes all of the risks and cons outlined in the other answers.  They did not get to make an informed decision.  If that PC experiences trouble due to overclocking they're not going to realize they were cheated by the builder.  It can be difficult even with the physical evidence to tell how the CPU was originally sold (since as others have mentioned the parts are often physically the same and differentiated only by testing).
Answer: Some manufacturers bundle software tools that make overclocking easier for the inexperienced yet curious customer, e.g. Gigabyte's Easytune or Smart QuickBoost.
You usually get a higher overclock by adjusting everything yourself (the FSB speed, core voltage, memory timings etc) as you can push the limits of stability in finer detail but you need to know what you're doing.
A 486 from around the mid 90s required moving jumpers to set the FSB, so making overclocking "easy" is a relative term; Using the BIOS you don't even have to open the case!

The easiest overclock I've ever used was on a PC XT that at the press of the turbo button mounted on the case more than doubled the CPU clock speed (from 4.77Mhz to 10Mhz). Whether the turbo button actually underclocked the machine when not in turbo mode is a matter of semantics, in any case it was easy.

Is overclocking legal?


How to set the grub drive as first bootable device

Question: I just installed ubuntu 18.04.4 in my pc. I had already windows 10 and it is dualboot with linux now. I figured out that I have to set the priority #1 to the drive where I installed linux in order to display the grub-bootloader. But when I go to the boot priority to make the arranges, my hdd is not showing up to set it as the first. The hdd is recognised with the sata cable and it's fine. When I try to boot hdd without changing the priority, by just clicking the hdd on bios from boot menu just for one time, everything runs okay. I installed linux to a partition of the hdd. Windows 10 are on SSD. The root file I selected during installation is ext4 journaling file system. Any ideas on that? Thanks in advance!
Answer: Obviously the partition on your HDD is bootable. Otherwise you would not be able to boot from it by manually selecting it in the BIOS.
Check your BIOS and change the boot order, so that GRUB is the first partition to boot from. There you should configure all the other OS you want to boot to (like your Ubuntu and Windows). Trick: Ubuntu usually sets already the boot record in GRUB for windows partitions, which have been found during the installation. So you only need to change the boot order in BIOS, to make it work.
Comment: As I said, I couldn't change the boot order because there wasn't the hdd as an option  in the boot priority.I figured it out though! I had to install the bootloader to the same drive as windows are. So in my case, I had to install the bootloader to the ssd. Thank you for your reply!
Answer: Finally I figured out what was wrong. Be careful where your bootloader will be installed. I had to select the same drive where my windows are,in order to show the grub bootloader and select my os. I don't know how correct or incorrect this is, but it worked for me and solved my problem.


The log file for database is full

Question: So our SQL Server 2000 is giving me the error, "The log file for database is full. Back up the transaction log for the database to free up some log space."
How do I go about fixing this without deleting the log like some other sites have mentioned?
Additional Info:  Enable AutoGrowth is enabled growing by 10% and is restricted to 40MB.
Answer: To just empty it:
backup log <dbname> with truncate_only

To save it somewhere:
backup log <dbname> to disk='c:\somefile.bak'

If you dont really need transactional history, try setting the database recovery mode to simple.
Comment: TRUNCATE_ONLY option on log backup is discontinued in SQL 2008.
Answer: Scott, as you guessed: truncating the log is a bad move if you care about your data.
The following, free, videos will help you see exactly what's going on and will show you how to fix the problem without truncating the logs. (These videos also explain why that's such a dangerous hack and why you are right to look for another solution.)

SQL Server Backups Demystified
SQL Server Logging Essentials
Understanding Backup Options

Together these videos will help you understand exactly what's going on and will show you whether you want to switch to SIMPLE recovery, or look into actually changing your backup routines. There are also some additional 'how-to' videos that will show you exactly how to set up your backups to ensure availability while managing log file sizing and growth.
Answer: I don't think renaming or moving the log file will work while the database is online.
Easiest thing to do, IMO, is to open the properties for the database and switch it to Simple Recovery Model.  then shrink the database and then go back and set the DB to Full Recoery Model (or whatever model you need).
Changing the logging mode forces SQL Server to set a checkpoint in the database, after which shrinking the database will free up the excess space.
Comment: A more precise terminology may be "simple recovery model".
Answer: ether backup your database logs regularly if you need to recover up to the minute or do other fun stuff like log shipping in the future, or set the database to simple mode and shrink the data file.
DO NOT copy, rename, or delete the .ldf file this will break your database and after you recover from this you may have data in an inconsistent state making it invalid.
Answer: My friend who faced this error in the past recommends:
Try

Backing up the DB. The maintenance plan includes truncation of these files.
Also try changing the 'recovery mode' for the DB to Simple (instead of Full for instance)

Cause:
The transaction log swells up due to events being logged (Maybe you have a number of transactions failing and being rolled back.. or a sudden peaking in transactions on the server )
Answer: You may want to check related SO question:

How do you clear the transaction log in a SQL Server 2005 database?
Answer: If it's a non production environment use
dump tran <db_name> with no_log;

Once this has completed shrink the log file to free up disk space. Finally switch database recovery mode to simple.
Comment: This is the old syntax that is now deprecated.  BACKUP LOG is the preferred method.
Answer: Well you could take a copy of the transaction log, then truncate the log file, which is what the error message suggests.
If disk space is full and you can't copy the log to another machine over the network, then connect a drive via USB and copy it off that way.
Answer: You have the answer in your question: Backup the log, then it will be shrunk.
Make a maintenance plan to regularly backup the database and don't forget to select "Backup the transaction log". That way you'll keep it small.
Answer: As soon as you take a full backup of the database, and the database is not using the Simple recovery model, SQL Server keeps a complete record of all transactions ever performed on the database. It does this so that in the event of a catastrophic failure where you lose the data file, you can restore to the point of failure by backing up the log and, once you have restored an old data backup, restore the log to replay the lost transactions.
To prevent this building up, you must back up the transaction log. Or, you can break the chain at the current point using the TRUNCATE_ONLY or NO_LOG options of BACKUP LOG.
If you don't need this feature, set the recovery model to Simple.
Answer: My dear friend it is vey important for a DBA to check his log file quite frequently. Because if you don't give much attention towards it some day it is going to give this error.
For this purpose you have to periodically take back up so that the logs file would not faced such error.
Other then this the above given suggestion are quite right.
Answer: Rename it it. eg:
old-log-16-09-08.log
Then the SQL server can use a new empty one.

The log file for database is full


How to improve wordpress site creation process to increase productivity.

Question: more info: we are all here working and loving WordPress but at the end of the day we need to make money if we can finish same work in less time we can be more competitive and take more projects in same time.
I know maybe each one of you has his secrets so I will start by talking about what I was doing in the last couple of years.
my process:
I start from the design I make it in photoshop show to client revisions till we reach final design I start working on the front end and create the theme directly in WordPress . and here is the part I want to improve.
my current process I have a starter theme that I created it has all the basic stuff that you need for each site ACF, FA, Bootstrap, JQuery, google fonts, other plugins, and CSS libraries I created Atom CSS library and OO CSS libraries.
I take a copy via Duplicator plugin install it to the server then start creating the pages and other stuff ... let's say I have a personal website with any design with 5 pages it will take 3 days or about 24hours to go from PSD image to working WordPress site. news website about 1 week,
now I am working on a new system
for example header, each header design will be in separated PHP file with its CSS and JS and same goes to each block with special design than when I create a website will start calling the blocks with the most similar design then add edit them to go with the design
finally, all the CSS and JS is merged in real time in one file and compressed
in this way, I may finish the simple personal site in like 4-5 hours
and each project I finish will have some new blocks will add them to the library since each block in a separate PHP file and have separated CSS and JS will not affect the performance if I don't call the block its just some files on the server. I did not finish the system yet :( that's why I am asking the Question maybe there is a better way !? and I am overkilling it!
so guys what are you doing and what the process you are following in creating WordPress websites !?
NOTE: I don't use ready themes and will never use them please don't mention them at all.
NOTE2: I searched the web most articles I found are very very basic like do design do front end linkWordPressress make it dynamic !! omg really ! you dont say ! and in stackOverFlow, there was no single article !?
Comment: if you have more and more habits when working with wordpress, it's a good idea searching to spare time like creating a clone with duplicator and removing what is not usefull. my job is to write plugins and to be more efficient I have created a plugin with all function a use regularly.
Comment: downvoted as this is a general software development question which is not even specific to web development, and actually has way more than 10 possible answers
Answer: I think your method sounds solid and with custom, hand-designed websites your time frame is quite reasonable. We primarily use the Divi theme which is highly customizable and it still takes us few days to get from concept to launch. The vast majority of time is in the fine details and tweaks, and those are the qualities that change an okay website to a great website.


Theory behind object oriented programming

Question: Alonzo Church's lambda calculus is the mathematical theory behind functional languages. Has object oriented programming some formal theory ?
Comment: The simple answer is **no**, and that Object Oriented Programming has never had any formal mathematical theory driving its development.
Comment: Hmm! perhaps that is why object orientedness is such a vaugue concept
Comment: not yet. I'm working on it. Check back in about 5 years ;-)
Comment: @meguli sadly, no - life presents interesting opportunities and challenges. More focused on DDD than OO theory lately, but thanks for asking! On the plus side, C J Date touched on some of it in his next-relational model for the D language, see https://en.wikipedia.org/wiki/D_(data_language_specification)
Comment: It appeals to the programmer in this fashion:  It makes thinking about the code easier.  It "chunks" the necessary work into easy to work with abstractions.

Take for instance, real life.  I pick up my phone (an object) and dial a number (passing a request via a method).  I don't need to know *how* it takes that number and connects me to the the other end..it just does.  That simplicity is, i believe, what helped drive the thought pattern.  GUI programming hammers this drive home..otherwise we'd be managing every tiny detail of the GUI (and go insane).  Just my opinion.
Comment: But you are correct, there is no formal definition of OO.  But it definitely exists, and is in heavy use :-)  The wikipedia page lists a collection of "features" in a language that let it support OO.  A good example of a language "growing" to enable OO where it didn't have it before would be the Ada83 to Ada95 jump.
Comment: Maybe, category theory or other branches of theoretical mathematics.
Comment: As Zed Shaw has said, though, it's more of a social convention among programmers than a mathematical theory.
Comment: @StevenA.Lowe Hello dude, we are 5 years later, and we are waiting for your paper on OO theory.
Comment: @NBPalomino: thanks for your patience, it's been a busy half-decade ;) Might get something out this year!
Comment: @StevenA.Lowe Any news about the paper?
Answer: Object Orientation comes from psychology not math.
If you think about it, it resembles more how humans work than how computers work.
We think in objects that we class-ify. For instance this table is a seating furniture.
Take Jean Piaget (1896-1980), who worked on a theory of children's cognitive development.
Wikipedia says:

Piaget also had a considerable effect in the field of computer science and artificial intelligence.

Some cognitive concepts he discovered (that imply to the Object Orientation concept):
Classification  The ability to group objects together on the basis of common features.
Class Inclusion The understanding, more advanced than simple classification, that some classes or sets of objects are also sub-sets of a larger class. (E.g. there is a class of objects called dogs. There is also a class called animals. But all dogs are also animals, so the class of animals includes that of dogs)
Read more: Piaget's developmental theory http://www.learningandteaching.info/learning/piaget.htm#ixzz1CipJeXyZ
Answer: OOP is a bit of a mixed bag of features that various languages implement in slightly different ways. There is no single formal definition of OOP but a number of people have tried to describe OOP based on the common features of languages that claim to be object oriented. From Wikipedia:

Benjamin Cuire Pierce and some other researchers view as futile any attempt to distill OOP to a minimal set of features. He nonetheless identifies fundamental features that support the OOP programming style in most object-oriented languages:

Dynamic dispatch – when a method is invoked on an object, the object itself determines what code gets executed by looking up the method at run time in a table associated with the object. This feature distinguishes an object from an abstract data type (or module), which has a fixed (static) implementation of the operations for all instances. It is a programming methodology that gives modular component development while at the same time being very efficient.
Encapsulation (or multi-methods, in which case the state is kept separate)
Subtype polymorphism
object inheritance (or delegation)
Open recursion – a special variable (syntactically it may be a keyword), usually called this or self, that allows a method body to invoke another method body of the same object. This variable is late-bound; it allows a method defined in one class to invoke another method that is defined later, in some subclass thereof.
Comment: IMO we can not call these features formal theory
Answer: Abadi and Cardelli have written A Theory Of Objects, you might want to look into that. Another exposition is given the venerable TAPL (IIRC, they approach objects as recursive records in a typed lambda calculus). I don't really know much about this stuff.
Comment: Luca Cardelli has been working with formal OO for a long time, e.g. see http://lucacardelli.name/papers/onunderstanding.a4.pdf
Answer: One formal definition I've run into for strongly defining and constraining subtyping is the Liskov Substitution Principle.  It is certainly not all of object-oriented programming, but yet it might serve as a link into the formal foundations in development.
Comment: That was what I had run into as well and had thought that there is a full theoretical foundation for OOP, which this question's answers have come to a complete surprise. I wouldn't say that the Liskov Substitution Principle would server as a link as such but rather demonstrate that there can be a rich theoretical foundation and study field for OOP.
Answer: I'd check out wikipedia's page on OO http://en.wikipedia.org/wiki/Object-oriented_programming  It's got the principles and fundamentals and history.
My understanding is that it was an evolutionary progression of features and ideas in a variety of languages that finally came together with the push in the 90's for GUI's going mainstream.  But i could be horribly wrong :-D
Edit:  What's even more interesting is that people still argue about "what makes an OO language OO"..i'm not sure the feature set is even generally agreed upon that defines an OO language.
Answer: The history (simplified) goes that way :
First came the spagetti code.
Then came the procedural code (Like C and Pascal).
Then came modular code (Like in modula).
Then came the object oriented code (Like in smalltalk).
Whats the porpuse of object oriented programming ?
You can only understand if you recall history.
At first code was simply a sequence of instructions given to the computer (Literally in binary representation)
Then came the macro assemblers. With mneomonics for instructions.
Then people detected that sometimes you have code that is repeated around.
So they created GOTO. But GOTO (Or branch or jump etc) cannot return back to where it was called, and cannot give direct return values, nor can accept formal parameters (You had to use global variables).
Against the first problem, people created subroutines (GOSUB-like). Groups of instructions that could be called repeatedly and return to where it was called.
Then people detected that routines would be more usefull if they had parameters and could return values.
For this they created functions, procedures and calling conventions. Those abstractions where called on top of an abstraction called the stack.
The stack allows formal parameters, return values and something called recursion (direct or indirect).
With the stack and the ability for a function to be called arbitrarely (even indirectly), came the procedural programming, solving the GOTO problem.
But then came the large projects, and the necessity to group procedures into logical entities (modules).
Thats where you will understand why object oriented programming evolved.
When you have a module, you have module local variables.
Think about this :
Module MyScreenModule;

Var X, Y : Integer;

Procedure SetX(value : Integer);
Procedure SetY(value : Integer);

End Module.

There are X and Y variables that are local to that module. In that example, X and Y holds the position of the cursor. But lets suppose your computer has more than one screen. So what can we do now ? X and Y alone arent able to hold the X and Y values of all screens you have. You need a way to INSTANTIATE that information. Thats where the jump from modular programming goes to object oriented programming.
In a non object oriented language you would usually do :
Var Screens :  Array of Record X, Y : Integer End;

And then pass a index value to each module call :
Procedure SetX(ScreenID : Integer; X : Integer);
Procedure SetY(ScreenID : Integer; Y : Integer);

Here screenid refers to wich of the multiple screens that you are talking about.
Object oriented inverts the relationship. Instead of a module with multiple data instances (Effectively what screenid does here), you make the data the first class citizen and attach code to it, like this :
Class MyScreenModule;

Field X, Y : Integer;

Procedure SetX(value : Integer);
Procedure SetY(value : Integer);

End Class.

Its almost same thing as a module !
Now you instantiate it by providing a implicit pointer to a instance, like :
ScreenNumber1 := New MyScreenModule;

And then proceed to use it :
ScreenNumber1::SetX(100);

You effectively turned your modular programming into a multi-instance programming where the variable holding the module pointer itself differentiates each instance. Gotcha ?
Its an evolution of the abstraction.
So now you have multiple-instances, whats the next level ?
Polymorphism. Etc. The rest is pretty standard object oriented lessons.
Whats the point ? The point is that object oriented (like procedures, like subroutines etc) did not evolve from a theoretical standpoint but from the praxys of many coders working around decades. Its a evolution of computer programming, a continual evolution.
Answer: IMO a good example of what makes a successful OO language could be found by comparing the similarities between JAVA and C#. Both are extremely popular and very similar.  Though I think the general idea of a minimum OO language can be found by looking at Simula67. I believe the general idea behind Object Oriented programming to be that it makes it seem like the computer thinks more like a human, this is supported by things like inheritance (both class "mountain bike" and "road bike" belong to parent class "bicycle", and have the same basic features). Another important idea is that objects (which can be executable lines of code) can be passed around like variables, effectively allowing the program to edit itself based on certain criteria (although this point is highly arguable, I cite the ability to change every instance of an object based on one comparison). Another point to make is modularity. As entire programs could effectively be passed around like a variable (because everything is treated as an object), it becomes easier to modify large programs, by simply modifying the class or method being called, and never having to modify the main method. Because of this, expanding the functionality of a program can become much simpler. This is why web businesses love languages like C# and JAVA (which are full fledged OO). Gaming companies like C++ because it gives them some of the control of an imperative language (like C) and some of the features of object orientation (like C# or JAVA).
Answer: Object-oriented is a bit of a misnomer and I don't really think classes or type systems have much to do with OO programming. Alan Kay's inspiration was biological and what's really going on that matters is communication. A better name would be message-oriented programming. There is plenty of theory about messaging, for example Pi calculus and the actor model both have rigorous mathematical descriptions. And that is really just the tip of the iceberg.
Answer: What about Petri nets? Object might be a place, a composition an arc, messages tokens. I have not though about it very thoroughly, so there might be some flaws I am not aware of, but you can investigate - there is a lot of theoretical works related to Petri nets.
I found this, for example:

http://link.springer.com/book/10.1007%2F3-540-45397-0
Readable PDF: http://www.informatik.uni-hamburg.de/bib/medoc/M-329.pdf
Answer: In 2000 in my degree thesys I proposed this model; very shortly:
y + 1 = f(u, x)
x + 1 = g(u, x)

where:

u: input
y: output
x: state
f: output function
g: state function

Formally it's very similar to finite state machine, but the difference is that U, Y, S are set not finite, but infinite (numerable) and f and g are Touring Machine (TM).
f and g togheter form a class; if we add an initial state x0 we have an object. So OOP in something more than a TM a TM is a specific case of OOP. Note that the state x is of a different level than the state "inside" the TM. Inside the TM there are not side effect, the x state count for side effect.


Definition of temperature ambiguity

Question: Temperature is defined as
\begin{equation}
\frac{1}{T} \equiv \left(\frac{\partial S}{\partial U}\right)_{N,V}.
\end{equation}
 However, a system with a fixed temperature does not have a fixed amount energy, rather the ensemble average of the energy of the system is fixed. This means that the definition of temperature is ambiguous unless it's made clear what we mean by the internal energy $U$. In the definition of temperature, does $U$ represent the ensemble average of the energy of the system?
Comment: For a macroscopic system, the energy of the system will be essentially indistinguishable from the ensemble average with probability essentially equal to $1$.
Answer: The formula you quote for the above is the definition of temperature for a macroscopic system (large number of microscopic components) where, as was mentioned in the comments the ensemble average will be indistinguishable from the energy of the system.
To see where this argument comes from though, consider the statistical mechanics definition of temperature. If we have a system with a degree of freedom, $X$, then we define the multiplicity, or number of states of the system when $X$ takes a value $x$ as $\Omega(x)$.
For large systems, the system tends strongly towards the state of largest multiplicity. So we can solve:
$$ \frac{\mathop{d} \Omega(x)}{\mathop{d}x} = 0 $$
To find the equilibrium value that gives the maxima for the multiplicity.
Then introduce the additional constraint of having a fixed amount of energy, $E$ and let $E(x)$ represent the amount of energy in the system when $X = x$. So we want to maximize $x$ while keeping the constraint $E(x) = E$. To do this, introduce a lagrange multiplier $t(E - E(x))$. For convenience, work with $\ln \Omega(x)$ Then:
$$ L(x) = \ln(\Omega(x)) + t(E - E(x))$$
Solving for $\partial L / \partial x$ to minimize $L$ wrt $x$ and $t$ we can find a expression for for t:
$$ t = \frac{\partial \ln(\Omega(x))}{\partial E}$$
Then looking at the thermodynamic identity as you cited it, and recalling that $S = k_b \ln(\Omega)$ we can see that:
$$ T = \frac{1}{tk_b} $$
is just the reciprocal of the lagrange multiplier we use to maximize the entropy of a system under the condition of fixed energy. Introducing the constant $k_b$ merely provides the historically desired dimensions whereas $t$ itself has dimension of inverse energy.

Definition of temperature ambiguity


Valgrind can't find debug symbols, even with --extra-debuginfo-path

Question: I'm attempting to install Valgrind on an embedded Debian-based PowerPC system. I've managed to cross-compile it successfully, but now it's complaining that it can't find debug information. I've put non-stripped copies of the relevant shared objects onto the filesystem and informed Valgrind of this directory, but it's still not working.
Invocation:
firstname.lastname@example.com:/# /root/valgrind/bin/valgrind --extra-debuginfo-path=/root/valgrind/usr/lib/debug /path/to/my_program -log
==6000== Memcheck, a memory error detector
==6000== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al.
==6000== Using Valgrind-3.10.0.SVN and LibVEX; rerun with -h for copyright info
==6000== Command: /path/to/my_program -log
==6000==

valgrind:  Fatal error at startup: a function redirection
valgrind:  which is mandatory for this platform-tool combination
valgrind:  cannot be set up.  Details of the redirection are:
valgrind:
valgrind:  A must-be-redirected function
valgrind:  whose name matches the pattern:      strlen
valgrind:  in an object with soname matching:   ld.so.1
valgrind:  was not found whilst processing
valgrind:  symbols from the object with soname: ld.so.1
valgrind:
valgrind:  Possible fixes: (1, short term): install glibc's debuginfo
valgrind:  package on this machine.  (2, longer term): ask the packagers
valgrind:  for your Linux distribution to please in future ship a non-
valgrind:  stripped ld.so (or whatever the dynamic linker .so is called)
valgrind:  that exports the above-named function using the standard
valgrind:  calling conventions for this platform.  The package you need
valgrind:  to install for fix (1) is called
valgrind:
valgrind:    On Debian, Ubuntu:                 libc6-dbg
valgrind:    On SuSE, openSuSE, Fedora, RHEL:   glibc-debuginfo
valgrind:
valgrind:  Cannot continue -- exiting now.  Sorry.

The offending file, ld.so.1, is in /lib, and my non-stripped copies are in a separate directory:
firstname.lastname@example.com:/# find / -name ld.so.1
/lib/ld.so.1
/root/valgrind/usr/lib/debug/ld.so.1
/root/valgrind/usr/lib/debug/lib/ld.so.1

My non-stripped copies from libc6-dbg_2.7-10ubuntu3_powerpc.deb appear to be compatible:
firstname.lastname@example.com:/# file /lib/ld.so.1 /root/valgrind/usr/lib/debug/ld.so.1 /root/valgrind/usr/lib/debug/lib/ld.so.1
/lib/ld.so.1:                             symbolic link to `ld-2.7.so'
/root/valgrind/usr/lib/debug/ld.so.1:     symbolic link to `ld-2.7.so'
/root/valgrind/usr/lib/debug/lib/ld.so.1: symbolic link to `ld-2.7.so'
email@example.com:/# file /lib/ld-2.7.so /root/valgrind/usr/lib/debug/ld-2.7.so /root/valgrind/usr/lib/debug/lib/ld-2.7.so
/lib/ld-2.7.so:                             ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, with unknown capability 0x41000000 = 0x11676e75, with unknown capability 0x10000 = 0x90401, stripped
/root/valgrind/usr/lib/debug/ld-2.7.so:     ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), dynamically linked, not stripped
/root/valgrind/usr/lib/debug/lib/ld-2.7.so: ELF 32-bit MSB shared object, PowerPC or cisco 4500, version 1 (SYSV), statically linked, not stripped

And if I understand how objdump works, it seems like the "must-be-redirected function" mentioned by Valgrind does indeed have an entry in the debug copy:
email@example.com:/# objdump -x /lib/ld-2.7.so | grep strlen
email@example.com:/# objdump -x /root/valgrind/usr/lib/debug/lib/ld-2.7.so | grep strlen
0002f734 l     O .data.rel.ro   00000004 max_capstrlen
00018ff0 l     F .text  000000b8 strlen

And yet the --extra-debuginfo-path argument has no effect. There's a brief mention of this switch in the manual, but this is practically all the information I've been able to find about it. Am I missing something else?
For the record, this machine cannot connect to the Internet, so letting apt / dpkg take care of things is sadly out of the question. /lib and most other system directories are also mounted read-only, so I can't just drop in a non-stripped replacement for ld-2.7.so (not that I would take such a risk).
Answer: I had a similar issue, and adding --allow-mismatched-debuginfo=yes parameter to valgrind solved the problem.
Comment: That didn't work for me. I still get "???" instead of actual debug symbols.
Comment: Interesting ...


Will reinstalling Lion erase all my documents and applications?

Question: I am planning to reinstall my operating system because it has many glitches. However, I am totally new to this and I would like to ask you what actually happens when you reinstall Lion? Do all your files remain or not?
Answer: Lion does not offer any customizations during the installation process. Thus a reinstallation is about as smooth and as linear as possible.
You restart your Mac holding the OPTION key when you hear the tone. You will then be greeted with various partitions you can use instead of the main Lion partition.

Should you wish to simply reinstall Lion, you would select the Recovery HD partition. Once loaded, you just need to follow the prompts and install it over your current Lion installation.
The new installation will replace all the core system files, but leave your user profile and data complete untouched. Your music, documents, even passwords and bookmarks, and applications will not touched; none of your personal information will be deleted (nor will it backup your old system, as was common in older OS X versions). It is a seamless process that simply rolls Lion back to the default installation build. There will be nothing lost and no disk spaced wasted on old system files.
You can read about the process over at Apple.
Note: It was the case that older builds of OS X allowed various types of reinstallations (like Archive and Install or a complete erase), but these have been omitted in Lion, greatly simplifying the process.
Comment: I wish it actually said during the install that your files and apps remain. I'm reinstalling now and am terrified that I'll lose the stuff I couldn't fit on my backup hd
Answer: Lion doesn't offer the different kinds of installs that previous versions of the OS did. If you use the Lion installer, you will perform an "Upgrade" install that keeps your files and programs intact. It's still always a good idea to back up your data before upgrading.
If you need to perform a clean install, MacWorld offers advice, but it's not an option in the installer as in previous versions of the OS.
Source: http://www.macworld.com/article/161065/2011/07/installing_lion_what_you_need_to_know.html
Answer: (Pre-Lion-specific answer)
It depends on which install option you choose: "Archive and Install" and "Upgrade" will keep your user files. "Erase and Install" will not. Not all options are available depending on the OS currently installed and the one you wish to install.
If you're installing newer over older (10.6 over 10.5, or 10.6.8 over 10.6.0), you'll have all the options. If you're installing older over newer or the same version (10.5 over 10.6 or 10.6 over 10.6), you probably won't have the "Upgrade" option, just "Archive and Install" and "Erase and Install".
Comment: This is actually not accurate for Lion, according to MacWorld.
Comment: Ah. Maybe I should have paid attention the various times I installed Lion. I've become fairly blasé about installing OS X. I'll leave my answer for people trying to install older versions and tweak my examples to match.
Comment: I had to look it up to remember.


cache_dir is not writable

Question: I am using Magento ver. 18.104.22.168. Site is having an error in admin side "cache_dir is not writable".  Site frontend is working fine and in admin side only dashboard and configuration first page  is working. other pages in admin side is giving this error "cache_dir is not writable". I checked the cache and var folder permission ,permission is set to 0777. I deleted the cache folder too. error is still not gone.
Comment: Does var folder have full permissions also?
Comment: Yes var folder has full permission(0777)
Answer: You'll get this error if your disk is full or partition has run outof inodes. Also check if /tmp/magento exists. Usually it's that partition that's the real cause. In these cases, suphp or mod_ruid is usually in play, denying access to the var/ directory because it's owner is not the right user and Magento will fall back to /tmp/magento. Then add the default tmp_dir for php sessions and MySQL temporary tables and you have your scenario for randomly seeing this error.
Comment: Thanks for your answer , i checked /tmp/magento is not exist. 19 gb full space available on the disk. Other two magento site is also working on that disk space , other sites are working fine. Can you please tell me what is the problem in this site? Thanks in advance
Comment: Did you check inodes? (`df -i`)
Comment: We checked inodes(df -ih)

cache_dir is not writable


Hibernate cant see the created table in HSQLDB

Question: I am new to using Hibernate and HSQLDB .i have created a table and it is being displayed in the eclipse console as
    create table Employee (empId integer not null, empname varchar(255), primary key (empId))
    14:15:57,205 DEBUG SchemaExport:377 - create table Employee (empId integer not null, empname                       varchar(255), primary key (empId))
    14:15:57,206  INFO SchemaExport:268 - schema export complete
    14:15:57,209  INFO DriverManagerConnectionProvider:170 - cleaning up connection pool:   jdbc:hsqldb:C:\Users\krishna\Desktop\hsqldb-2.2.6

However when i try to see the table in HSQLDB i am getting an error saying user lacks previlige or object not found:Employee
For connecting to HSQLDB I have given the url jdbc:hsqldb:C:\Users\krishna\Desktop\hsqldb-2.2.6
i am able too ping to the DB from eclipse.
Answer: This method of access is not suitable for concurrent access from the program and IDE if they are not the same Java process.
For development, it is recommended to run the HSQLDB Server on your machine with a simple command. You then connect to the server using a URL such as jdbc:hsqldb:hsql://localhost/test from your program as well as the IDE. The server.properties file should include the lines that contain the real file URL to the database. See the Guide:
http://www.hsqldb.org/doc/2.0/guide/listeners-chapt.html


Why is the principle of separation in GFC opposite to electrophoresis despite using same material for the gel?

Question: In GFC, larger proteins get eluted out first while in electrophoresis the larger proteins move slower. Why is this?
Answer: Gel electrophoresis and gel filtration chromatography both use gel materials (though often polyacrylamide gels are used for GE and cross-linked dextran gels for GFC), but their operating principles are different.
In GE, the gel is a solid block of gel which contains only small pores for proteins to pass through.
The proteins generally have to be denatured (and given a charge) to pass through the pores as native proteins are too bulky.
The denatured proteins are like long strands of noodles being drawn through the gel and shorter proteins pass through more quickly because they don't have to contort as much to fit through all the pores—the larger the protein, the more interactions with the gel to slow it down.
However, GFC is a subset of what is known as Size Exclusion Chromatography.
SEC techniques generally also use porous gels, but instead of using a solid block of gel, the gel is made into small beads.
A similar situation to GE exists where small things can enter the pores of the gel and larger molecules suffer more resistance to pass through the gel, only now, the larger molecules have an alternative route with lower resistance—going completely around the beads.
The effect of this is that small molecules pass into the pores of the beads and slow down, while larger molecules bypass the beads entirely and travel faster (what is considered small and large depends on the gel's pores).
GE has the benefit of much better size separation, but requires denatured proteins.
SEC can handle native proteins (that are still functional on the other side of your column), but the separation is more akin to dialysis, where small and large molecules are easily separated from each other across a cutoff molecular mass, but there is otherwise poor resolution between species.
Answer: From a brief inspection of the materials, it appears the agarose, and other media choices, used in GFC is prepared in such a way as to be "beaded". The beads have pores in them which are of a size that interacts with smaller molecules to slow their passage.
This link shows several media used in GFC, scroll down to Sepharose for a purely agarose product. Also read the intro paragraph for a description of the mechanism.http://www.sigmaaldrich.com/life-science/proteomics/protein-chromatography/gel-filtration-chromatography.html#sephacryl


Bash script not executing from crontab

Question: I have the following bash script:
#!/bin/bash
mysqldump -u ******** -p********  --all-databases | gzip > /home/srvlinux01/MySQLBackups/database_$(date +\%Y-\%m-\%d).sql.gz

which is located in /home/srvlinux01/MySQLBackups/ as backup.sh with the following permissions
-rwxr--r-- 1 root       root           134 feb 27 12:48 backup.sh

I've set up a cronjob on sudo crontab -e to run it every day, at night
#Automatic MySQL backup
30 3 * * * sh /home/srvlinux01/MySQLBackups/backup.sh

But I get emailed the following error:
sh: 0: Can't open /home/srvlinux01/MySQLBackups/backup.sh

I've been trying different setups, but can't figure out what is wrong. I can run the script manually and everything goes perfectly, so I guess there is something wrong with my cronjob entry, but can't really understand what. Could you please help me figure it out? Thanks!
Comment: Can you try it using sudo: sudo sh /home/srvlinux01/MySQLBackups/backup.sh
Comment: Do you tried to change owner? If you run this script as normal user, `chown user:user /home/srvlinux01/MySQLBackups/backup.sh` (replace user:user with your username and name of your user group). With that you can normaly run script as regular user. Also, if owner is root, do what @Guru saw, run script with sudo.
Comment: So, now I changed my script owner to srvlinux01 (main user) and moved the cronjob to **crontab -e** instead of **sudo crontab -e**.

Still no luck though, wierdly enough it still can't find the file. If I just copy the command and paste it into the terminal it runs normally and makes the backup!
Comment: Could it be that you need to give your cron a PATH? For instance: `SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin` In your case, try putting: `SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/srvlinux01/MySQLBackups/` before your command.
Comment: Or could you try changing the shebang to `#!/bin/sh`?
Comment: Why doesn't your `backup.sh` have execute permissions? Given that it is world readable, removing the x permissions for group and other is pointless as world could just do `cat backup.sh | sh` and achieve the same. Apart from, obviously, being able to simply read the username and password ...
Comment: I've discovered that the server has home encryption enabled (sigh!) so i tried moving the script into a separate directory, but it still doesn't work. So looks like it is not the issue. I've tried changing the shebang but still no luck.
Comment: did you try using `PATH`?
Comment: Brilliant! The PATH trick did the job! Could you just explain what it does so I can use it in the future? Maybe post is as an answer so I can mark it as correct! ;)
Comment: And thanks zwets, changed permissions, must have messed up while trying to make it work.
Comment: Could you try whether simple setting it to `PATH=/bin:/sbin:/usr/bin:/usr/sbin` already does the trick? Now I'm wondering... I moved the comment to an answer.
Comment: Yes, even without the home dir segment it works perfectly!
Comment: Please check this one https://askubuntu.com/a/1223213/297387
Answer: You need to give your cron a PATH. For instance:
SHELL=/bin/sh PATH=/bin:/sbin:/usr/bin:/usr/sbin

In your case, try putting this before your command. Check the community wiki in this question for more information on why the PATH variable is needed. Here is an excerpt; essentially the idea is that cron does not read /etc/environment:

A common "gotcha" is the PATH environment variable being different. Maybe your cron script uses the command somecommand found in /opt/someApp/bin, which you've added to PATH in /etc/environment? cron does not read that file, so running somecommand from your script will fail when run with cron, but work when run in a terminal. To get around that, just set your own PATH variable at the top of the script.
Comment: I am getting this error "sh: 0: Can't open /root/scritps/cron_job.sh", when trying to execute sh file from cronjob like "*/1 * * * * sh /root/scritps/cron_job.sh >> /tmp/cron.output 2>&1".FYI: cron_job.sh doing echo only. any idea what is the issue here ?
Comment: scritps vs scripts?
Comment: See this too - https://askubuntu.com/questions/264607/bash-script-not-executing-from-crontab#comment1987092_264741
Answer: chmod +x /home/srvlinux01/MySQLBackups/backup.sh

try to run your script with full path on commandline:
/home/srvlinux01/MySQLBackups/backup.sh

if it is not running - there is something wrong (path error)
Make sure this is your crontab
crontab -e

no sudo :
sudo crontab -e

is root crontab - and root is not able to find your script ;)
remove "sh" in crontab just write:
30 3 * * * /home/srvlinux01/MySQLBackups/backup.sh

Comment: Not "sudo crontab -e", but it is "crontab -e" is solution for my issue. Thank you
Answer: I can see one mistake in your crontab file configuration. In the below config you are trying to call backup.sh as same as in your shell prompt with sh prefix which may not work in cron.
#Automatic MySQL backup
30 3 * * * sh /home/srvlinux01/MySQLBackups/backup.sh

Solution:

change the owner as said in comment, if needed.
Make it as executable. chmod a+x <filename>
Update your crontab to reflect this. (calling the file directly, shell is used as per shebang line inside the file)
#Automatic MySQL backup
30 3 * * * /home/srvlinux01/MySQLBackups/backup.sh

I hope this would help.
Comment: `chmod +x`!! I forget to permit my script execution permissions.  thanks for posting, @Naha
Answer: You forgot the dot '.' before the execution path.
30 3 * * * sh ./home/srvlinux01/MySQLBackups/backup.sh
              ^

Comment: `./` makes a path relative to the current directory, which is not desirable here and will even prevent the script from running unless cron's CWD happens to be `/`. Also, the purpose of `./` before a script or other executable name is when it's in the current directory (instead of searching `PATH`). It's primarily used when running the executable as the command being executed (e.g., `./script`), sometimes necessary (and often recommended) when "sourcing" (e.g., `. ./script`), but never useful when passing it as an argument to the shell (i.e., `sh script` always works as well as `sh ./script`).
Comment: Hi, didn't change much, the error is the same unfortunately.

`sh: 0: Can't open ./home/srvlinux01/MySQLBackups/backup.sh`

Bash script not executing from crontab


iCloud backup/restore - how to get the rest of my stuff (photo's)?

Question: I got a new phone yesterday, and restored it from my recent iCloud backup and have all my apps etc... but I haven't got my photos!! How do I get them???
Comment: Your photos could be excluded from the backup to iCloud. Are you looking for the suggestion to try restoring a backup from iTunes or just need to know apple customer support can help you with through this?
Answer: According to Apple overview of iCloud backup photos are only included in iCloud backups when iCloud Photo Library is not enabled.

Photos and videos on your iOS devices
However, if you turn on iCloud Photo Library on your iOS device (iOS 8.1 or later) or Mac (OS X v10.10.3 or later), your photos and videos are already stored in iCloud, so they aren't included in your iCloud backup.

Photo's are always included in iTunes backups.

Photos already stored in the cloud, like My Photo Stream, and iCloud Photo Library

You should be able to restore your photos by making certain iCloud Photo Library is enabled on your new phone.
You can verify whether your photos are in iCloud by using a computer and browser and going to iCloud.com and logging in with your appleId and password and then clicking the photos icon.


How can I repair drywall where it was soaked by a leaking window?

Question:
Had windy rainstorm and noticed some water damage. What should I do to fix it?
Comment: I would get a fan on it to help it dry out, I would not try to repair until the leak is fixed.
Comment: Fix the drywall or fix the window? I wouldn't deal with the symptom until the cause is eliminated.
Comment: This happened a year ago and we haven't seen the same amount water come in. I suspect a particularly strong wind/rain storm compromised the exterior wall somehow. Still saving up for a window replacement but is compounding over a decent temporary fix?
Answer:
Dry things out with fans to prevent mold. Standard joint compound softens when it gets wet, but it's not necessarily bad at that point. Once that's done thoroughly...
Cut away all loose material with a utility knife and scraping tool. Any tape that has blistered will need to be replaced. Cut it back to solid attachment.
Patch with joint compound and your preferred tape (where needed). Texture to match where necessary.
Prime and paint.


How is it possible that natural gas fields are so deep?

Question: How is it possible that gas is stored kilometers deep? Where does all the material on top come from? If new plankton would create more gas, would the new gas be at similar depth in a few 100 million years? And would current reserves be even deeper in billions of years, perhaps 10s or 100s of km deep?
Comment: Quoting [Freeman Dyson](https://www.edge.org/conversation/freeman_dyson-heretical-thoughts-about-science-and-society): *"The three things were calcium carbonate which is sedimentary rock, iron oxide which is a component of igneous rock, and water. These three things are certainly present when a slab of subducted ocean floor descends from a deep ocean trench into the mantle. The experiment showed that they react quickly to produce lots of methane, which is natural gas."*
Comment: @RodrigodeAzevedo interesting theory but those 3 things don't have any H atoms in there chemical composition so how this create methane. I don't know. Other planets would have atmospheres made of methane and we probably would never lived on earth as the methane escaping would have polluted our atmosphere already billion of years ago.
Comment: @rodrigodeAzevedo I think Freeman Dyson should have mentioned that in this sedimentary rock there is about 1 to 2 % organic matter which produced gas not the rock itself as he suggest. (https://www.planete-energies.com/en/medias/close/how-oil-and-gas-deposits-are-formed)
Comment: He suggested?  An experiment was conducted and Thomas Gold's hypothesis was validated. Yes, it was Gold's hypothesis, not Dyson's.  Also, are you forgetting that atmospheric carbon dioxide can dissolve in seawater and precipitate as calcium carbonate, i.e., limestone?  No need for organic matter. If you recall the Miller-Urey experiment, life emerged due to the presence of natural gas, which emphasizes that not all natural gas is biogenic.
Comment: Abiogenic petroleum origin. Ihttps://en.m.wikipedia.org/wiki/Abiogenic_petroleum_origin
Answer: A practical limit to commercial gas/oil drilling is 30,000 ft and generally not much deeper than 20,000 ft. The high temperatures and pressures are difficult to control. There are several mechanical limits like draw works power and casing strength ( commonly 125,000 psi yield steel is used and it is not strong enough for these wells.). It would be much easier to reach methane hydrate deposits on the sea floor if you can figure out how to produce it.
Comment: Unfortunately, this doesn't answer the edited version of the question.
Comment: I wasn't asking how deep we can drill. Just how it's even possible that it is stored so deep. As it is created by plankton. In seas.
Comment: Over geological time the rock moves. Also the is source rock nd reservoir rock; they may not be close.
Answer: From your question you are obviously aware that gas deposit arise from life forms sinking to the bottom of shallow seas when they die, they accumulate over time and are subsequently covered by marine geological sediments.
Over time the thickness of the sediments increases. As the sediment thickness increases,

The weight of accumulating sediment very slowly pushes the source rock further under the Earth's crust, by a few meters to a few hundred meters every million years or so. This gradual sinking is called subsidence and leads to the formation of sedimentary basins.

I would qualify the above quotation in the source rock is pushed further into the Earth's crust, not under the Earth's crust, as pushing under the Earth's crust can suggest it gets pushed in the the Mantle or the contact region between the Mantle and the Crust.
The surface of the Earth is not static, it constantly moves, via a process called plate tectonics.
Additionally, different types of rock have differing degrees of flexibility and rigidity. Under various ground stresses rocks will fracture and faults and other discontinuities arise. Under certain situations the alignment of such faults can produce graben and horst structures. Horst structures rise while graben structures sink, mainly due to gravity.
Over time, sediments can fill graben structure and over the course of millions of years the original deposit of life forms ends up being buried deeply. At depth, the remains of the life forms are "pressure cooked" - subject to high temperatures and pressures - producing natural gas.
Comment: Thx, especially the link to https://www.planete-energies.com/en/medias/close/how-oil-and-gas-deposits-are-formed. But still if you think of it a few hundred meters every million years. This material should have come from somewhere. (Like mountains or vulcano's?) But at scales of millions of years... I guess it's possible.


Why can't I see all my powers in the HUD bar in Mass Effect 1 PC

Question: So basically I'm playing as a Vanguard and I unlocked Marksman for the pistols and shotguns along with Unity and some other skills. I didn't quick-slot them at first and now, after unlocking another power, I can't find them in the bottom part of my HUD, where my powers are. I can only find the ones I quick-tabbed already. What do I need to do to see these other powers?
Comment: Some of your skills don't equate to powers in ME1, that is to say they're passives.  Could that be why you aren't seeing them?
Comment: so the marskman skills for each weapon type is a passive skill? cause i saw my squad have them in their powers section when i pressed the spacebar
Comment: If it is an active skill (which it sounds like, I can't remember for sure), then it may be due to a bug in ME1 were if you have too many active skills, they don't all show up.
Comment: well that sucks..thank you for the responses though
Comment: @Cosmin I cannot speak to your specific bug, as I have not experienced it myself. However the http://masseffect.wikia.com/wiki/Mass_Effect_Wiki may help you find the answer you seek if nobody here can.
Answer: If you have too many unlocked, including some of the achievements, the power selection/wheel runs out of room. This is a bug, but one that won't be fixed if it still exists this long after the game's release.

There are a limited number of powers on the Power Wheel. ... Your
  bonus Talent may disappear when you unlock all your abilities. You can
  work around this by mapping the talent before the power
  disappears, or by selecting a weapon talent.

(Source: Mass Effect Wikia - Combat-Related Bugs)
Answer: If you have weapon specific powers, such as Marksman for the pistol and Carnage for the shotgun, and you have too many powers to display at once on the HUD, then it will show the power specific to the weapon you have equipped at the time.


What's a good way to lighten the colour of this chair, returning it to a natural-wood appearance?

Question: I bought these secondhand cross-back chairs and I think they look great. However I think they will look even better if they have a brighter colour.
I'm looking to suggestions for easy ways to make them look like the last pics.
Answer:
I'm looking to suggestions for easy ways to make them look like the last pics.

There's no easy way to do this, sorry.
Regardless of whether the chairs have coloured finish on them or are conventionally stained (with a clear finish over that) you have to remove the finish. The preferred way of doing this on anything that isn't just a series of flat surfaces is by using chemical stripper, and this is a time-consuming, messy, tedious job on anything more complex than a simple table (as any guide that demonstrates the manual stripping of a chair will make very plain1). Home stripping has also been made more difficult in recent years with the almost complete removal of methylene chloride-based strippers from the reach of the general public in the US, Europe and possibly other markets because of overt concern about the risks to users (which were real, but massively blown out of proportion..... especially in the US). See note at bottom about commercial stripping.
Scraping, with or without use of a heat gun, and sanding are other methods for removing finish but the design of the chair I think means neither are viable (certainly not without disassembly), and sanding is anyway the worst way to remove finish from furniture as covered in numerous previous Answers.
If it's coloured finish
It's impossible to tell for sure from the photo but it looks like the chair is covered in a coloured finish, which would be good news. If it is coloured finish it means that once that finish is removed most of the colour will go with it.
Unfortunately the important word here is most — there's no guarantee ahead of time that you'll get back to a uniform bare-wood appearance because wood always has areas that are more absorbent than others. These areas can hold on to the colour from a coloured varnish/lacquer much more stubbornly that everywhere else.
If it's stain
If the wood is stained it's a completely different story and it may be effectively impossible to remove the colour from the wood.
It's not completely impossible to remove stain from wood, it's just that the chairs have interconnected and crossing pieces, some quite thin, so you don't have the sanding leeway you'd have if you were trying to do the same job on a simple table with square-section legs2.

Commercial dip-tank stripping is available in a lot of places. While a lot of bad things are said about this sort of process, claiming it will ruin anything and everything that is treated this way, the fact is that even pros sometimes make use of this option. And yes, on antiques. It is not without its risks3, but when you get a piece of furniture back from such a stripping service you've saved better than 95% of the time and effort the process would have taken otherwise.

1 See Michael Dresdner doing this in his very comprehensive book on finishing, The New Wood Finishing Book starting on p53. If you don't have local access to a copy this can be borrowed for reading on Archive.org after joining (membership is free).
2 Dresdner goes on to tackle this subject in the following pages of his book, beginning on p58. If you find the wood is stained I advise going into it expecting that you won't be successful to avoid disappointment.
3 Joints may be loosened, the wood may be irretrievably discoloured, grain can be heavily raised and there can sometimes be warpage, but the worst of this does not by any means happen to the majority of pieces (or nobody would be willing to use it!)
Comment: Thanks for your reply, very helpful and informative
Answer: OK looks like my options are using a paint stripper, sandpaper or a using a heat gun. Despite the health hazards involved, the first seems to be the easiest one.
Then after finishing I'd have to apply varnish.
Comment: You're probably going to want to remove the cane seat before applying any of those three things to prevent damage. Also, the chair in your picture is stained, not painted, so I'm not certain how well a paint stripper will work, but it's certainly worth a shot. At a minimum, the paint stripper will get the clear protectant finish (varnish, polyurethane, etc.) off.
Comment: You might find that the underlying wood isn't really that light. (Test a small area before committing to stripping.) If so, just scuff and paint.


What requirements are needed for a soldier to use the Gollop Chamber?

Question: How do you get a psionic soldier who's powerful enough to use the Gollop Chamber that you've built?
Answer: You need a Psi Suit for your Psycho Soldier. If you don't have one yet, you have to first test them for Psi abilities.
Comment: I'm pretty sure they don't need to be wearing the psi suit as long as they have the level 3 psi ability unlocked and a high enough Will.
Comment: @Shadur nope, no suit = no volunteer (unless 114 will isn't high enough).


Why does the parameter variance change when control variables are added to a regression model?

Question: If I add a control variable to my regression, this changes the variances of the parameter estimates. Why is this the case? Is this because SSE(=explained sum of squares) increases and therefore the SSR(=residual sum of squares) decreases?  So basically as long as I avoid multicollinearity adding more control variables will always improve the statistical significance of the parameter estimates?
Comment: Sorry for the confusion: SSE= explained sum of squares, SSR=residual sum of squares, SST=total sum of squares (as in Wooldridge (2012))
Comment: The SSE (sum of squares of errors) can *never* increase when additional variables are added to a regression. That is because you are using least squares: estimating zero for the new coefficient and keeping the original coefficient estimates will produce the original SSE, which therefore must be an *upper bound* for whatever is the new least sum of squares.
Answer: The question is what happens to the variance of a parameter estimates ($\hat \beta_i$) with the introduction of a new control variable in a regression model?
The variance of the estimated parameter will increase.
The more regressors we add, the lower the $\text{RSS}$ (residual sum of squares) and the higher the $R^2$. In fact, if we just add columns of pure noise (rnorm()) to our data, and run OLS regressions after every addition, we will see a marked, monotonic decrease in the $\text{RSS}$. I tested this with an example:

The idea is that in OLS the hat matrix $X (X^TX)^{-1}X^T$ is a projection matrix of the vector of observed $y$ values onto the column space of the model matrix. The higher the dimensions of the column space (the more vectors to form a basis), the closer $\hat y$ will be to $y$. But at a price!
The estimation of the variance of $\hat \beta_i$ is given by:
$Var[\hat\beta_i]= \sigma^2(X^TX)^{-1}$ with $\sigma^2$ corresponding to the variation of the observations around the predicted values, ($Var[\epsilon|X] = \sigma^2I_n$). The estimation of $\sigma^2$ from the sample is $s^2=\frac{e^Te}{n-p}$ or $\text{MSE}$ (mean squared error). The denominator is the number of observations, $n$ minus the number of parameters, $p$, counting the intercept. It is also referred to as the error or residual degrees of freedom ($\small\text{no. observations−no. indepen't variables−1}$). Alternatively, the formula for the $\sigma^2$ estimation, can be expressed as $\text{MSE = RSS/df}$ with $\text{RSS}$ being the same as $\text{SSE}$ (sum of squared errors), $\sum_1^n(y_i - \hat y)^2$.
Therefore the estimation of the variance of the parameter $\hat\beta_i$ is $s^2(X^TX)^{-1}$ or $\text{MSE}\times(X^TX)^{-1}$.
And I think this may be a source of confusion - just because adding another regressor decreases the $\text{MSE}$ by decreasing the $\text{RSS}$ - if it actually does at all, because of the change in the degrees of freedom in the denominator, it can't be said that the variance for the estimated parameter decreases.
In a parallel OLS simulation (here), I found, quite anecdotally, a $\small 3.5\%$ increase in $\text{MSE}$ when adding an extra regressor, with a minimal decrease in $\text{RSS}$.
What controlled the increased variance for the estimate of $\hat\beta_i$ turned out to be the entry for $\hat\beta_i$ in the matrix of cofactors involved in the calculation of the inverse of $(X^TX)^{-1}$, explaining a variance for the estimate of the parameter $\hat\beta_i$ $2.8$ times higher in the presence of the control variable.
An alternative formula for the variance not applicable to the intercept is:
$\large \text{var}[\hat\beta_i]= \frac{\sigma^2}{n \times var[X_i]\times(1\,-\,R_i^2)}$. The key here is that $R_i^2$ is the $R$-square of the regression of the corresponding variable for the parameter $\hat\beta_i$, or $X_i$ against all the other regressors. Therefore, the better the regression model of $X_i \sim \text{control variable}$, the higher the estimated $\text{var}[\hat\beta_i].$
Comment: Did you undelete an old answer? I didn't see this when answering. Anyway, this is a thoughtful post. Just two small notes. 1a. The $p$-value is not guaranteed to increase (that's why no +1 yet). 1b. In the last sentence: The increase in estimator SE does not necessitate a decrease in importance. The change that caused the increased SE might also increase the actual value of the estimator. 2. In my answer I did not talk about $t$-values because I did not want to introduce degrees of freedom; you did introduce DFs so I think it is natural to include them when going from $t$-values to $p$-values.
Comment: To show when this can happen check what I wrote in the final sentence of my post. If you rerun `lm2` with `x2 = x2 - mean(x2)` you will see that the $p$-value of $\beta_0$ decreased from $0.461$ to $0.454$. The SE of it is higher (so yes, you had an increase in variance) but its actual value also increase so the $t$-value is larger and thus even by losing that 1DF the $p$-value was lower. (Clearly from an inferential point of view $0.461$ vs $0.454$ is still useless.)
Comment: @usεr11852 Thank you very much for your comments. Yes, I had undeleted my post. It is an attempt at getting these concepts right by simulation and playing with the linear algebra. I get lost with Hessian matrices at this point, though. After your comments, I erased the comments about the p-values. I would like to get to a point where I know the statements in the post are correct to proceed from there to explore the more advanced treatment in your post.
Comment: (+1) The Hessian matrix is just the matrix of second derivatives of your log-likelihood function. Think of getting the MLE as exploring a 2D surface. The MLE is found at a local optimum $\beta_{opt}$ where your first derivatives are (usually) very close to zero. (If they were it would not be an optimum). The second derivatives at that point encapsulate how "steep" that optimum is. That's why the smaller values (ie. flatter) result to higher variances (remember you invert that). Practically all regression problems can be formulated as optimization problems; exploit that! :)
Comment: Thank you! Is the post now correct in the statements about the matrix of cofactors, for example?
Comment: I am sorry, I do not have the time check the simulations in the link you provide but on face face-value I do not think it is wrong aside somewhat tautological; ${X^TX)^{-1}$ is fixed so clearly any variance estimation will be related to $\hat{\beta}$ or equivalently to the MSE. There a particular statement you want to check?
Answer: The variances of the parameter estimates change when one adds more explanatory variables to a regression model because this action affects the overall model fit. To this why this is the case remember that:

You are concerned about the maximum likelihood estimates (MLE) of your linear model.
The Hessian of the log-likelihood evaluated at the ML estimates is the observed Fisher information.
The estimated standard errors are the square roots of the diagonal elements of the inverse of the observed Fisher information matrix.
ML estimates and least squares (LS) estimates are identical given you have a response variable coming from an exponential family.

OK, let's say you have already $m_1$ model such that $y = \beta_0  + \beta_{1} x_{1} + \epsilon$ and you  augment it with an additional explanatory variable $x_{2}$. Let's also assume that $x_{2}$ is not orthogonal to $y$ or $x_{1}$, (ie. $y \not\perp x_{2}$ and $x_{1} \not\perp x_{2}$ ). This is crucial because it means that when adding $x_{2}$ in the model $m_1$ we added some additional information about $y$. This increased amount of information will cause the sum-of-squares-error (SSE) to get smaller. (Geometrically speaking by incorporating $x_2$ in $m_1$ we add an additional non-orthogonal plane to project the sample $y$, thus the projections $\hat{y}$ are closer to  original data $y$ than before; see this excellent answer by silverfish here for more details.)
Let's interpreter getting a smaller SSE means in terms of LS and then ML estimates: A smaller SSE means that the optimum (the vector of $\hat{\beta}$'s) of our LS function is different than before. This means that ML estimates are different (point 4). Which means that unless the Hessian of the log-likelihood function at this new solution (point 2) are exactly the same as before, the standard errors will be different too (point 3). Therefore adding a new variable $x_2$ is extremely unlikely to result the same standard errors.
Your second assessment about improved statistical significance is directly related to the above. The wording: "As long as I avoid multicollinearity adding more control variables will always improve the statistical significance of the parameter estimates." is slightly over-optimistic. The significance of a predictor will always get smaller if you have another predictor that is collinear with it. You can also say that the significance of the others predictors will never get smaller if the newly predictor is not collinear.
Nevertheless, this last statement downplays how hard is to avoid even the slightest collinearity between two predictors while at the same time making sure that they are related to $y$. That could possibly be the case if one used PCA scores as predictors variables but this really escapes the scope of this answer.
OK, how about a code example in R. We will define a model m1 and then we will add we will add a variable x2 to it and see if this all holds.
set.seed(1234)
N = 1000;
x1 = runif(N);
e = rnorm(N);
y = 3*x1 + e
m1 <- lm(y~x1)

sum(m1$residuals^2)
#  898.0496

x2 = runif(N)
cor(x2,y)  # 0.02983 linear correlation
cor(x2,x1) # 0.02598 linear correlation

m2 <- lm(y~x1+x2)
sum(m2$residuals^2)
#   897.7952

So one immediately sees that even adding a variable $x_2$ that is pure noise, exactly because of some small spurious correlations he got a smaller SSE (which was what @whuber's comment essentially was about). Clearly the improvement in the SSE is marginally (after all we added just noise) but it is still there. What about the standard errors? Are they the same?
summary(lm1)$coefficients["x1", 'Std. Error']    # [1] 0.103062
summary(lm2)$coefficients["x1", 'Std. Error']    # [1] 0.103134
summary(lm1)$coefficients["(Intercept)", 'Std. Error']    # [1] 0.0602753
summary(lm2)$coefficients["(Intercept)", 'Std. Error']    # [1] 0.0783329

Again, while the difference is marginal, the difference is there. The standard errors for $\hat{\beta_0}$ ((Intercept)) and  $\hat{\beta_1}$  (x1) are different between the two models and that is because as the location of the optimum changed almost certainly the Hessian of the likelihood at the new optimum point is also different. In this example we also see that the standard errors are larger. This was not certain but it was likely. What about the statistical significance though?
summary(lm2)$coefficients["x1", 'Pr(>|t|)'] # [1] 9.3e-128
summary(lm1)$coefficients["x1", 'Pr(>|t|)'] # [1] 5.1e-128

summary(lm1)$coefficients["(Intercept)", 'Pr(>|t|)'] # [1] 0.4606
summary(lm2)$coefficients["(Intercept)", 'Pr(>|t|)'] # [1] 0.8192

Well the statistical significance in terms of $\beta_1$ is the same (differences of $3e-128$ are inconceivable). The statistical significance of the intercept $\beta_0$ is less and this exactly because the expected value of $x_2$ ($E\{x_2\}$) is not exactly $0$. As such some tiny variation around the intercept was explained because of $x_2$. If we had centred $x_2$ we would have the same or even higher significance for $\beta_0$ because the actual estimate of $\beta_0$ would be somewhat higher (assuming it's SE did not change proportionally too.)


Density of a normed space equals density of unit ball (or of the unit sphere)

Question: Let X be a normed space, define $\mathrm{dens} \,X$, the density character of $X$, to be the smallest cardinality of a dense subset of $X$. (E.g.: X separable iff $\mathrm{dens}\, X= \lvert \mathbf{N} \rvert$). How can I prove that $$\mathrm{dens}\, X=\mathrm{dens}\, B_X=\mathrm{dens}\, S_X,$$ where $B_X$ denote the (closed, but I think this is not relevant) unit ball of $X$ and $S_X$ the unit sphere of $X$? I know how to do this in the case in which one of this spaces is known to be separable but I can't extend the proof to this general case.
Answer: For the record, the usual notation, at least in topology, is $d(X)$.
Suppose that $D$ is dense in $S_X$; Then $\Bbb Q^+D=\{qx\in\Bbb Q\times D:q>0\}$ is dense in $X$, and since $D$ is infinite, $|\Bbb Q^+D|=\aleph_0\cdot|D|=|D|$. Thus, $d(X)\le d(S_X)$.
If $D$ is dense in $X$, $\left\{\frac1{\|x\|}x:x\in D\setminus\{0\}\right\}$ is dense in $S_X$, so $d(S_X)\le D(X)$, and hence $d(S_X)=d(X)$.
If $D$ is dense in $X$, $D\cap B_X$ is dense in $B_X$, so $d(B_X)\le d(X)$. Finally, if $D$ is dense in $S_X$, $\{qx\in\Bbb Q\times D:0<q\le 1\}$ is dense in $B_X$, so $d(B_X)\le d(S_X)=d(X)$, and all three densities are equal.
Comment: Maybe I'm saying something stupid, but I only can see that this proves $d(X)\le d(S_X)$, what about the other inequalities?
Comment: You are right about the weight, I was misremembering, I edited my comment, that observation was inappropriate.


How do I beat Mad Mike?

Question: How do I beat Mad Mike on Borderlands 2? I am currently at level 11 on the mission where you have to rescue roland and I am inside the base. I've killed all the other enemies. I have a really powerful grenade mod. When I face Mad Mike, I do a fair bit of damage but then I run out of ammo. When I go back to get some, the enemies respawn. I defeat them once more. Once I go back to face Mad Mike, he is already back to full health. Are there any strategies?
Comment: What class are you playing as? What gear do you have with you? You should bring Level 11 gear to make the fight substantially easier.
Comment: I was wondering how it is possible to be running out of ammo against just a mini-boss without that much health / armor when I remembered, isn't Mad Mike level 13-14? At level 11 you may be lacking in experience / loot. Go do some sidequests and come back to the area later on.
Comment: About 5 headshots with an incendiary sniper rifle worked fine for me. He was pretty easy I thought.
Answer: Firstly, the reason he is getting his health back is because you are going to far away from the fight. Bosses regenerate all their health when you leave the area. You will notice  that they also regenerate all their health if you die.
Instead of walking off to find ammo, look for: ammo crates, safes,fridges, toilets, anything around the immediate area that can be opened for ammo, that way his health wont regenerate from you leaving the area.

When fighting Mad Mike you need to stay behind cover or move quickly, as his rocket launcher does allot of damage. He sits above the entrance on the top level, and walks out onto the catwalk every now and then. Wait until he walks onto the catwalk and use a rocket launcher to kill him quickly. His enemies are weak, so you should be able to pick them off without a problem. Depending on what class you are, you can also use your kill skill against them to help kill them.
There are 87 Bazillion ways to kill Mad Mike, you just need to find one that works for you.
Answer: Use the environment to your advantage: first, kill all the enemies that aren't Mad Mike. Next: get him onto the bridge, then stand a little to the left under it near the rooms entrance. Once his foot is visibly off the edge, move under the bridge. It'll be slow, but kep shooting at his foot until his health is whittled away to nothing. He still shoots at you even though it hits the bridge right under him, so if you're lucky, his rocket launcher will spawn with a Slag element. This slags him every time he fires directly under his feet. Additionally, for some reason, he spawned with a Shock launcher in my game and the first shot that hit the bridge knocked him into the whirlpool.
There you go. A cheaty way to beat Mad Mike.
Answer: I let him kill me, and then I shot him 10 times with the shotgun from point blank until he died and I got a second wind.

How do I beat Mad Mike?


What kind of Romulan warbirds was the Enterprise-C fighting?

Question: In the Star Trek: TNG episode "Yesterday's Enterprise," Captain Garrett tells Captain Picard that the Enterprise-C was attacked by four Romulan warbirds. However, she never specified what class of warbirds they were. Is there any source (hopefully as close to canon as possible) indicating what class they were?
There is one fan-made YouTube video depicting the Battle at Narendra III; in the video, the warbirds belonged to the D'deridex class, but this is probably unrealistic. If the Enterprise-C had faced off against four of those ships, it simply couldn't have survived long enough to make it through the temporal rift. Could the warbirds have been the smaller ones like those seen in Star Trek: TOS?
Comment: Note the Romulan saucer ships in TOS are bird-of-preys.  Warbird is a TNG term. Deep down I know that if TOS Romulans were using klingon D7s then surely movie era Klingons are using Romulan inspired "bird-of-preys" as part of a mutually beneficial alliance.  I don't care that there's no support for it past the name itself.  (And any pseudo prequels that contradict it are worthless to me.)
Comment: @lucasbachmann Wow, thank you for the reminder. I totally forgot that they were named differently. Now I'm trying to remember whether there were any smaller "warbirds" that looked like the ones in TOS.
Comment: I also learned that D'deridex class warbirds weren't in operation until the 2360s, so it would have been impossible for the assailants to be using D'deridex class ships.
Answer: The warbirds that attacked the Narendra III outpost were described in the EU novel Vulcan's Heart as being Amarcan class, a new type that made the previous T'Liss class and Klingon-manufactured K't'inga class effectively obsolete.

An image of a ship, the eagle on its underbelly freshly painted,
formed on the screen, and Saavik straightened in alarm. This ship
was perhaps twenty percent bigger than the old warbirds, with
more graceful lines than the K'tinga-class Klingon vessels that
the Empire had used in recent decades. [...]
Old officers, some known even to Saavik thanks to intelligence
briefings, appeared on screen, criticizing the quality of Klingon
vessels and praising the space worthiness of the new ships.
The praetor reassumed control of the screen. "We are naming these
ships Amarcan-class warbirds, after Commander Amarcan, late of the
Imperial War College, who disappeared into the Barrier.

Helpfully, we also get a glimpse of these ships on the book's cover
Comment: That's interesting. The Amarcan class kind of looks like a smaller D'deridex predecessor. Perhaps the former inspired the latter?
Comment: @SovereignInquiry: Frankly, this just looks like a simplified drawing of a D'deridex to me. Note that the Ambassador class similarly lacks any details. Chances are the artist totally ignored the fact that this was supposed to be a different ship type than the "TNG warbird".
Comment: @SovereignInquiry - Form likely follows function. The ship has 'warp wings' so it needs to look like a bird.
Comment: @Valorum I wasn't wondering why the ships look like birds--and let's be honest, if they're willing to paint their ships with giant colorful decorative birds, then they had to have some aesthetic desires in mind when designing their ships--but what I was really wondering was if the design of the D'deridex was based on the Amarcan class. But O. R. Mapper made a good point. The artist probably had no idea what they were supposed to draw.


How could Christ offer His blood to those under the Law, when He was forbidden by heritage?

Question: Christ being from the tribe of Judah, could not offer blood as a Levitical priest to those under the Law (Hebrews 7:14)  Christ is the Melchizedekian high priest offering His blood for those who are under the NT covenant.  How could Christ's blood flow to those under the Law?  Hebrews 5:9-10 "And having been made perfect,He became to all those who obey Him the source of eternal salvation, being designated by God as a high priest according to the order of Melchizedek."
Comment: Hi welcome to the site! I think you might be confusing the nature of the blood of a perfect man with a mere animal. Hebrews 10:4 "For it is impossible for the blood of bulls and goats to take away sins." So we see the blood of Christ could not be used 'under the law' as blood to merely ceremonially forgive sins. Rather, he ended the law by introducing a new Priesthood and shed his own human blood for the actual forgiveness of sins.  He offered his blood to all mankind to forgive sins and in so doing ended the law by superseding it and fulfilling the goal of all it's foreshadowings.
Comment: Welcome to the site. We are glad you decided to participate. Please see [What this site is about](http://meta.christianity.stackexchange.com/questions/1379/what-christianity-stackexchange-is-and-more-importantly-what-it-isnt/) and [How this site is different](http://meta.christianity.stackexchange.com/questions/1808/how-we-are-different-than-other-sites/1809#1809) to help you learn how the site works. Also see the [help] and take the [tour] to learn the site functions. I hope to see you post again soon.
Answer: Jesus was a rabbi who was adept at the law. The unique thing about Jesus is that he frequently and routinely used the rules of the talmud in order to spar with the pharisees. The way Jesus typically "won" these sparring matches was instead of falling victim to the legalism of the law, he would examine the moral behind the law.
In order to avoid the same traps, we too will need to examine the moral behind the law too. Before we begin to address the authority for offering the sacrifice of Christ's blood and how Jesus was not a high priest in the order of Aaron, we should take a step back and look at the Law's prohibitions against the sacrifice itself. First, in Leviticus, it was forbidden for anyone to consume the blood of any living thing. How then, could Jesus offer his blood to his Disciples, saying "Drink from [this cup,] all of you,  for this is my blood"? Seccondly, there were prohibitions in the law against human sacrifice, so how could Jesus offer himself as a sacrifice?
The answers comes from the explanation of these prohibitions. For example, Leviticus 17:11 notes

For the life of every living thing is in the blood. So I myself have
  assigned it to you on the altar to make atonement for your lives, for
  the blood makes atonement by means of the life.

Since Jesus is described as the giver of life and living water, this uniquely qualifies Jesus as the only allowable source of drinkable blood. This is because the prohibition on drinking blood was to remind us that we should only be seeking life through God.
Likewise, the reason that God prohibits human sacrifice is that he is seeking to restore us from our fallen broken state. Substitutionary atonement is God's attempt to save us from death. Therefore by sacrificing those which God seeks to save from death, it defeats his purpose. On the other hand, offering Jesus as the sacrifice does nothing but serve God's purpose.
As we can see, keeping righteousness under the law using a wide array of technicalities in order to keep the spirit of the law is an art that Jesus was adept in. This then brings us the the heart of your question. Under the law, Jesus could not officiate his own sacrifice because he was not a Levite Priest. This is why Paul goes to great lengths to explain that Jesus was a priest in the Order of Melchizedek.
In order to understand why this important, we must first understand who Melchizedek was. In Genesis 14, the Bible notes that Melchizedek, King of Salem was a pries of the most high God. What you notice from this passage is that he is making offerings on behalf of Abram. What this means is that there was a priesthood which existed before the 12 tribes of Israel and therefore the tribe of Levi did. Melchizedek is often noted as being the Kind-priest. Paul is trying to make the point that because Jesus is the King of Kings, then he is qualified as a priest in the order of Melchizedek, since he is King of even Melchizedek the king-priest. As such, for yet another reason (according to Paul,) this Makes Jesus not just a priest, but the High Priest because he leads even other priests just as he is King of other kings. And oh, by the way, since Melchizedek wasn't a Levite, Jesus needn't be either. In fact, this qualifies him even more, because he is a priest in the original order of priests , an older order which predate even the Aaronic Priesthood.
(Interestingly, several note that Melchizedek was the basis of the Samaratin's claim to priesthood Authority as well)
And so we see that Jesus is yet again using his expert knowledge of the law and all of its' loopholes in order to save us from our sins.
Answer: The following is a direct quote from Barnes' Notes on the Bible

For it is evident that our Lord sprang out of Judah - It is well known: it cannot be a matter of dispute. About the fact that the Lord Jesus was of the tribe of Judah, there could be no doubt; compare Matthew 1:3. But probably the apostle means here to refer to more than that simple fact. It was a doctrine of the Old Testament, and was admitted by the Jews, that the Messiah was to be of that tribe; see Genesis 49:10; Isaiah 11:1; Micah 5:2; Matthew 2:6. This was an additional consideration to show that there was to be a change of some kind in the office of the priesthood, since it was declared (Psalm 110) that the Messiah was to be a priest. The fact that the Messiah is to be of the tribe of Judah is still admitted by the Jews. As their distinction of tribes now, however, is broken up, and as it is impossible for them to tell who belongs to the tribe of Judah, it is held by them that when he comes this will be made known by miracle.
Of which tribe Moses spake nothing concerning priesthood - That is, in the Mosaic laws respecting the office of priest, this tribe is not mentioned. All the arrangements pertain to the tribe of Levi.
(source)

Now here is Logic
The Law of Motion states the opposite and equal reaction. However the other Law of Motion states an object in motion remains in motion unless acted on by an outside force.
The governmental structure based off the one law is set free when applying the other law. Not meaning that the first law no longer exists. Indeed the opposite and equal reaction will still occur to the flesh. Yet the opposite of forgiveness is forgiveness. It is like passing through the air. Because there is no resistance, the opposite and equal reaction does not take place. Then the body remains in motion for all of eternity never dying. For this is the Law of Existence.
Therefore it is first for the people to understand the opposite and equal reaction, then they can understand the object remaining in motion. And the bible is how you teach farmers with a second grade education.


Play against console versions with PC?

Question: In FIFA 12, now that the game is finally the same on PC and consoles, is it possible to play against people on other platforms (XBOX, PS3) with my PC version or are those on completely different servers?
Comment: I can't definitively answer this, but chances are it's a No. It's a very short list of games that have cross-platform play when it comes to consoles. And even then, it's only every PS3 to PC, and Xbox 360 to PC, never all 3.
Answer: It's not possible at all. I can tell you for sure that the servers are totally different and the servers that host PSN and Xbox Live won't connect with each other due to PSN and Xbox Live being totally different consoles and companies. For example on the PS3 you can only connect with people using PSN so they must have to have a PS3. The EA ID is only for tracking stats that can be viewed online. As the comment above says it will only ever be Xbox > PC or PS3 > PC.
Comment: You said that matches between different consoles are impossible, but it's not quite clear from your answer if PC to console is possible in Fifa12.
Comment: As stated no due to PC not being able to connect to PSN or Xbox live which is used for matchmaking

Play against console versions with PC?