Should we create an Epic for tech-debts

Question: I was having a discussion in the team to create an Epic for all the technical-debts in the project. The problem is, as per definition Epic should not spawn more than a quarter, but, if we create an Epic for technical-debt it may run for the duration of the project. I surfed on Internet but could not find anything. Please help with right Agile guidelines.
Comment: What are you trying to do by rolling all your tech debt into an epic? Is this for time tracking, traceability, or...? From an agile perspective, this is likely an anti-pattern, but from a JIRA perspective there might be a business case.
Comment: Consultants sell **A**gile; there is the [agile](http://agilemanifesto.org/) philosophy.
Answer: An epic is a large story. One that needs to be broken down into stories that fit comfortably within sprints. It isn't really meant to be used as a way of grouping stories together in a category.
Having said that, do what is best for your team. If you find grouping technical debt tasks under an epic helps you to track them, then that is fine.
My preferred approach in JIRA is to use a "technical debt" label on stories/tasks that relate to technical debt work. That way you can filter in/out technical debt work items if you need to.
Comment: I'm not sure why this answer attracted a downvote. I think the tracking use case is a reasonable one, and using labels rather than epics seems like a good JIRA-centric solution in many cases.
Comment: +1 for lables.  Also, it lets you run a quick query to see how many tech debts stories are appearing which gives you another data point into the team for supporting them.  Are they being pressured? Is it drive-by coding?  Are they rushing to close tickets?  Is the codebase becoming unwieldy?  etc etc
Answer: The right agile guideline is that you should do what works best for you and your team.
There is no right or wrong with using an Epic to label the technical debt in the project. But there is also no requirement to have all stories associated with an Epic.
Comment: I didn't vote on this answer yet, but: 1) I think it's more of a comment than an answer; and 2) there *are* trade-offs and best practices, so hand-waving it doesn't answer the question either. Please consider improving your answer before I vote on it.
Answer: So, we need to discuss Technical Debt
You accumulate technical debt when you make a strategic compromise (to meet a date, or ship something), but this is a short term thing, you are supposed to fix it ASAP, possibly by adding a new story in the next sprint (likely as part of the original epic) to fix it.
If you have a large accumulation of compromised items which have not been worked on for some time, this isn't technical debt, it's poor design or bad development practices.
You need to create new stories to fix these and prioritise them. You likely need to prioritise some time/velocity per sprint to deal with them (instead of new work) .
Don't add them to an epic, they will end up being deprioritised and never done.  You may also reward yourself with velocity for dealing with things that should have been right the first time.
You need to block time to show that compromising deliverables like this reduces velocity so should avoided.
Comment: Tech debt could also be an artifact of a design pivot or evolving best practices but otherwise +1, Tech Debt should be paid off in frequent small installments
Comment: According to the Tech debt quadrant, there are multiple reasons why Tech Debt might appear.  For more nuanced then you are making out..  A view supported and endorsed by Martin Fowler.  For instance...lack of developer knowledge is technical debt. https://martinfowler.com/bliki/TechnicalDebtQuadrant.html
Answer: As already said, this is not agile issue, but rather a question how to groups certain issues in JIRA. I've been using JIRA's sprints for that. There is no auto-grouping by label or by epic in the backlog, so it's hard to see all the 'technical debt' issues in one place, unless you sort them manually. So I add such issues to a 'Technical Debt' sprint, which is not a sprint per se, but a way to group them.

Should we create an Epic for tech-debts


Automorphism group of the symmetric group of degree three

Question: What is the automorphism group of the symmetric group of degree three? From what I understand, the automorphism group of $Sym(n)$, with $n \neq 2$ or $6$ is 'trivial'. But I don't understand what trivial means in this case, is it that the automorphism group of $Sym(n) =$ the identity element?
Answer: The outer automorphism group of $S_n$ for $n\neq 6$ is trivial. Any non-abelian group has non-trivial automorphisms: for any $g$ not in the centre, $G\rightarrow G$, $h\mapsto ghg^{-1}$ is a non-trivial automorphism. These automorphisms, i.e. those given by conjugation by some element of $G$, are called inner. The outer automorphism group is the group of all automorphisms modulo the normal subgroup of the inner ones.
Thus, for $n\neq 6$, all automorphisms of $S_n$ are those induced by conjugation by elements of $S_n$, as above.
Answer: I want to add some information to @Alex's answer. It seems the word trivial you noted has another meaning because of:

Corollary: If $n\neq2$ or $n\neq6$ then $\text{Aut}(S_n)\cong S_n$.

So an automorphism, say $\phi$, of $S_n$ preserves transpositions iff it is inner and that's why $S_n$ is Complete. Moreover  $\text{Aut}(S_3)\cong S_3\cong\text{Aut}(V)$, where in $V$ is the Klien group.
Comment: @csss: Have you got your answer?


Are transformation matrices invariant over row operations?

Question: The title says it all. I'm currently taking an introductory course in linear algebra and this issue has not been adressed spesifically. What I'm wondering is this: Given a transformation matrix $A$ and vector $\vec{x}$ such that $A\vec{x}$ is some transformation of $\vec{x}$ (rotation, scaling, etc), is it true that if matrix $B$ is $A$ after some row operation then $Ax = Bx$? Also why is that? Are there some relevant geometric interpretations?
Comment: Then if we take $$x=\left[\begin{array}{c} 0 \\ 1 \end{array}\right]$$ then $$Ax=\left[\begin{array}{c} 1 \\ 0 \end{array}\right]$$ while $Bx=x$
Comment: I think I might be missing your question - do $$A=\left[\begin{array}{cc} 0 & 1 \\ 1 & 0\end{array}\right]$$ $$B=\left[\begin{array}{cc} 1 & 0 \\ 0 & 1\end{array}\right]$$ qualify?
Comment: Yes that is one example.
Answer: This in no true. For example, take $A$ to be a $2\times 2$ identity matrix $I$. Now let $B=\begin{bmatrix} 0 & 1 \\ 1 & 0 \end{bmatrix}$ (it is $A$ after interchanging the rows). Then clearly $Ax \neq Bx$ (for $x\neq 0$).
Answer: It depends on what you mean by $Ax$. Row operations are changes of coordinates, so what is true is that if $A$ and $B$ are related by row operations, then they represent the same operation in different coordinates. However, for some fixed column vector $x$, we will have $Ax\ne Bx$ in general; see the example already given by Ludolila and Alfonso. But this isn't the right thing to check, because in terms of the linear map, we've changed coordinates to get from $A$ to $B$, and the column $x$ represents two different points in the two coordinate systems, so we shouldn't expect equality.
To illustrate with the example already given, let $A=I$ and $B=\begin{pmatrix}0&1\\1&0\end{pmatrix}$, obtained from $A$ by swapping the two rows. Thus, while:
$$A\begin{pmatrix}x\\y\end{pmatrix}\ne B\begin{pmatrix}x\\y\end{pmatrix}$$
we do have:
$$A\begin{pmatrix}x\\y\end{pmatrix}=B\begin{pmatrix}y\\x\end{pmatrix}$$
The idea is that the two columns $\begin{pmatrix}x\\y\end{pmatrix}$ and $\begin{pmatrix}y\\x\end{pmatrix}$ represent the same point in different coordinates, as they are related by a row operation.
The key message here is that matrices aren't linear maps, and you can only identify a matrix with a linear map once you have chosen a basis, i.e. a particular set of coordinates.


Peace lily flowers are turning black

Question: Why is my peace lily flower turning black?
It's the white flower not the green leafs that are turning black.
Answer: I can see some blackening at the edge of a couple of leaves too though, which often indicates a water problem, or being near a heat source. First, I don't know whether the blackening on the spathe is caused by a deposit of some sort that can be rubbed off, like a mould of some sort, but either way, it seems likely your plant is either being over watered, or is left sitting in water in some outer container or tray. Whilst these plants do like a fair amount of water, they don't like to be sitting in it, so if you're not emptying any tray or container after 30 minutes when you have watered, start doing that as soon as possible.
UPDATED ANSWER:
I would cut off the spathes, or even the whole flower stem at its base (more will arrive later anyway), trim off any damaged leaves, inspect the compost for signs of mould growth, and to see whether its waterlogged, check the drainage holes in the pot aren't blocked. If the compost is waterlogged, stand it on something which allows any excess to drip away freely (like a rack, or over the plughole in the sink, for a while). Once its dried out a bit, then keep it well watered, watering when the surface of the potting compost feels just slightly dry to the touch, and watering thoroughly each time, but allow it to drain properly, and tip away any water that collects in an outer container after 30 minutes, and check again a while later to make sure no more has collected.
This link might be useful for general care instructions
http://www.guide-to-houseplants.com/peace-lily.html
Comment: Some kind of deposit was the first thing I thought it was but it's not.. Last week it crashed so I might given it am extra dose of water... But now after the matter.... What should I do with it
Comment: See updated answer...

Peace lily flowers are turning black


Is an account transfer fee paid for transferring a Roth 401(k) to a Roth IRA tax-deductible?

Question: I rolled over a Roth 401(k) to a Roth IRA and was charged a fee by the outgoing financial institution. This fee was paid from the account balance. Is this fee deductible as an investment expense? If this were for a traditional 401(k), it's pre-tax money, so the deduction wouldn't really make sense, but since it's a Roth 401(k), the money's been taxed.
Answer: If the fee is paid directly from the account, then unfortunately no, you can not deduct it. It's probably too late now, but in the future you can ask the financial institution if they will allow you to write them a separate check to cover the fees. If they allow that then you can preserve your tax free account balance, and potentially deduct the fees too. More details here.
Update: as discussed in the comments below, a strict interpretation of the IRS description of deductible investment expenses may not include expenses for a Roth IRA, even if they are paid outside of the account. However, there seems to be conflicting interpretations of this IRS rule, so I would advise speaking to an accountant or the IRS directly for clarification. But even if you determine you cannot deduct the fees, paying for them outside of the Roth is still a good idea because it enables you to maintain a higher balance in your tax advantaged account.
Comment: I believe Fool is mistaken; [pub 550 p35](https://taxmap.irs.gov/taxmap/pubs/p550-016.htm) says non-interest investment expenses are deductible (if you itemize and exceed the 2% floor) if they are "directly related" to producing income that is "taxable to you". Roth income is normally not taxable -- only if (and when) taken before 5 years from opening or before 59.5 and not among certain special cases, which most people avoid. Similarly on p32 investment interest is not deductible if "incurred to produce tax-exempt income".
Comment: @dave_thompson_085 - I am interpreting your reference the same way you are, and so I want to agree with you. I'm going to do to some further research though. Here's another source that is more blatantly agreeing with Fool: http://budgeting.thenest.com/can-deduct-advisory-fees-roth-iras-28694.html


JSON.Serialize method not returning null fields (part deux)

Question: My question is related to the question JSON.Serialize method not returning null fields in that I'm having the same issue but based on the solution, I'm unable to get my code to use version 27 (maybe I'm doing something wrong).  I've tried to change the Version Settings for all of the classes used on the page and the (visual force) page to use 27.0 (I even tried 26.0) to no avail.  The JSON being returned still references v28.0 and my null properties are being removed.  Here's a snippet in case I'm missing something...
In my Apex class...
<code>webService static String getPriceListItems(String filters) {
   ...
   string soql = 'SELECT Id, Name, Price__c, Catalog_UOM__c, ... FROM PriceListItem__c WHERE ...';
   List<Object> result = Database.query(soql); // also tried with List<PriceListItem__c>
   String JSONString = JSON.serialize(result);
   System.debug('result[0].Catalog_UOM__c ' + result[0].Catalog_UOM__c); // shows null value
   System.debug('JSONString : ' + JSONString  ); // does not contain Catalog_UOM__c field
   return JSONString;
</code>
}
And the serialized JSON is like this (still with all of the null properties being omitted)...
<code>[{
"attributes": {
"type": "PriceListItem__c",
"url": "/services/data/**v28.0**/sobjects/PriceListItem__c/a0Hi00000027tstEAA"
},
...
}]
</code>
Other than setting the version to 27.0 in the Version Settings while editing the class, is there anything else that I need to do?  Note that there are still some classes in my package (that I don't believe that I am using) that are set to v28.0 but that shouldn't matter, should it?
It seems like you should be able to specify what serialization settings you want to use instead of being blindly forced to use a specific setting under a particular version.  This is especially important if there is some new functionality in a current version that you need to use but still need to serialize and return null values.
I can understand not wanting to implement a full blown JSON configuration object, but since this is not default behavior (on any other platform that I've dealt with and that you need to specifically configure JSON to omit nulls), that the JSON.serialize method in Apex should perhaps take an optional boolean parameter to omit nulls (defaulted to false).  That would solve everyone's problem as it wouldn't break any existing code and those that want that functionality can just add "true".
Comment: Any updates around this? Any fixes available? facing similar issue ...
Answer: We are also facing the same problem.
There is some answer from APEX team on this at below link :
JSON.Serialize method not returning null fields
But it looks like that question is still open.


Traffic from site like pu.gg, goo.gl?

Question: Why is it that I get pageviews from sites like pu.gg, goo.gl? What does it mean? Am I visited by hackers? Is there any way to block this kind of page view from my analytics? I am kind'a alarm with this.
Comment: just wondering: couldn't you visit those urls and see what those sites are about?
Answer: Goo.gl is a URL shortener. It just means someone linked to your website using it. Pu.gg is a torrent tracker. I don't know why you would get pageviews from them. You may be hacked and hosting a torrent file. You should get your site out and look for any suspicious files.
Answer: I know that Twitter automatically shortens URLs like t.co, could possibly be backlinks from Social Media sites like Google Plus, Google Analytics also offers URL shortener and uses Goo.gl

Traffic from site like pu.gg, goo.gl?


What is the difference between an amp and a head?

Question: At the moment I currently only use a basic guitar amp, but a few of my friends have 'heads' on top of their amps. What is the purpose of these? What do they do that the amp doesn't do?
Answer: A head is simply the name for an amplifier without a speaker. Your friends won't have heads on top of amps, they'll have heads on top of speakers (with the head driving the speaker). The "basic guitar amp" you have at the moment, is probably an amplifier and speaker combined in one cabinet. These are commonly called combos.
There are several reasons for using a separate amplifier and speaker cabinet (or speakers):

you have more flexibility about what kind of amp and speaker you want to use (eg. Marshall head, Peavey speaker).
you can use different amp and speaker combinations for different performance situations, or even just use your amp head connected to the PA.

The downside to this set-up (or upside to using a combo, I guess), is mainly that a combo is a lot easier to transport and set up.
Comment: Some heads do have speakers. Lower wattage speakers for practice or even as a monitor. But it's not strictly true to say they don't have them. This might be a more modern thing, but it is a thing.
Answer: Another couple of reasons why someone would choose head/speaker over combo : a comparable combo usually weighs more than one or the other, so is harder to hump around (poor old roady).Heads go wrong more frequently than speakers, so carrying a spare head to a gig is better than taking two combos.
In defence of the combo, one doesn't need to remember the lead that connects amp to speakers - it's built in.
Another, slightly off the subject point, is that while combos can be open or closed backs - with considerable sound differences, I rarely see an open back speaker cab.
It's maybe not common, but a head/speaker can be split, so the speaker is not under the head, meaning the sound is coming out of somewhere else, while the controls are to hand for the player - by using a longer speaker lead.
Answer: To elaborate and visualize the previous answers a bit further, here's a legend:

Amp/head: the device that amplifies the electrical signal. This is an electrical processor that does not produce audible sound.
Cabinet: the actual speaker that speaks out the processed signal and makes it audible.

The above two come in two main flavors:

Stack: The amp and cabinet come separately, usually stacked on one another, to allow for more customization, selection and varying combination between the two.
Combo: amp and cabinet combined in a single box.
Answer: Heads are the amplifiers, the actual part of the signal chain that increases the power of a signal. Speakers convert that power to moving some physical apparatus (e.g. sheet of paper) that vibrates the air, making sound.
So like Bob said, people don't put heads on top of amps, but rather speakers. The amp itself doesn't make sound. In fact, if you're using a tube amp head without the speaker converting the energy output into sound, it is dangerous to plug in to just the head and play. Modern solid state amps generally have protection for this though.
Comment: How are tube amp sets dangerous to plug in? Is it the high voltage created in the tubes?


Anyone ever had their secondary fermentation bubble for 3 weeks?

Question: So first fermentation went smoothly, solid bubbling from the airlock for about 5 days total racked into second fermenter and dry hopped on the seventh day.  First day nothing.  Second day it started right up, third day slowed down but held steady.  So I then traveled out of town for five days thinking it would be nice and perfect to bottle when i got home, that was over two weeks ago.  We didn't leave the A/C on in the house and it got quite warm in out house, the temp. on the outside of the carboy read 78 degrees, and it was bubbling every three seconds.  Its been two weeks since then and has just now only started to bubble once a minute.  So my question is, will my Summer Ale still be drinkable?  Or was that way too much temp. change for my poor neglected beer?  Any advice would be greatly appreciated!
Comment: What yeast did you use?
Comment: 11/12/2014 - My IPA is doing the exact thing right now. Temperature never got above 75. I took another SG test to make sure its done fermenting and to my surprise it was not. I'm guessing the extra finishing hops kicked off the yeast again. I'm a little afraid to bottle it as it's still giving off co2 and my break bottles. With that said the ale still looks clean in the glass carboy and I'll consider extra time in the carboy "aging time". I let you know the answer in a couple of weeks as to the freshness of it.
Answer: After beer is done fermenting there is still some residual co2 remaining in solution.  The amount left over depends on the temperature you fermented at but if you raise the temperature of the beer the co2 will be released from solution.  This is what is causing the activity in your airlock.  Chances are that the beer was done fermenting after 5-7 days and all activity had stopped.
The beer should be fine but the changes in temperatures may have sped up the staling process and may not be as fresh as you expect.
Comment: Seconded, and I want to add: take SG readings so you can be sure when fermentation is done.


Should cooking with drugs (legal or illegal) questions be on topic?

Question: Should cooking with drugs (such as this question - especially before the edit) (legal or illegal) questions be on topic?  I'm just going to leave it simple and at that.
Comment: Legal ***where*** and ***for whom***?
Comment: is this based on an actual question or a hypothetical? If there is an actual question, can you link it here?
Comment: @Jeff - actual, question linked.  http://cooking.stackexchange.com/questions/17956/how-should-i-store-cannabis-butter
Comment: G&L's view: http://meta.gardening.stackexchange.com/questions/337/are-questions-about-a-marijuana-garden-allowed/338#338
Answer: To quote Aaronut:

The culinary use of traditionally non-culinary ingredients is the basis for our [culinary-uses] tag, and with respect to masking flavour, we even had a question along those lines about cod liver oil. If a compound butter is still intended to be baked, and eaten, and the question is about preserving it as a food, then it's clearly a cooking question. The original revision was wading into off-topic territory but I can see no problem with the current edited version.

People put all sorts of weird stuff in their food (cod liver oil, wheat grass, protein powder, marijuana). They do if for health reasons, nutrition, superstition, giggles. In my mind, that's all relatively irrelevant. If the question is about cooking with it, then it's on topic. If the question isn't about cooking with it, then it's off topic.
Off Topic:

How do I use protein powder to maximize muscle gain in my super smoothie?
How do I maintain the magical properties of cod liver oil in my super smoothie?
How do I get as high as possible from the marijuana in my butter?

On Topic:

How do I stop getting clumps when I add my protein powder to my super smoothie?
How do I mask the flavor of cod liver oil in my super smoothie?
How do I stop my marijuana butter from growing mold?

I think it is probably a best practice to avoid putting drug names in the question title. There are some people that are touchy about this topic, and I don't see any harm in being sensitive to that.
Answer: Drugs? What drugs?
What's a drug? You didn't really define it...
Wikipedia states,

A drug, broadly speaking, is any substance that, when absorbed into the body of a living organism, alters normal bodily function.

...which is pretty broad. I intend to take full advantage of this...
Legal drugs
There are currently 13 caffeine questions on the site. Some of them reasonably popular. None of them closed or disputed, so far as I can tell. There's even one directly concerning the flavor, and another regarding potency.
So as far as legal drugs go, this seems fairly (ahem) cut and dried... If you want to argue for excluding drug-questions, caffeine seems like an excellent place for you to start*!
*but first you'll have to pry my coffee out of my cold, shaking hands
Illegal drugs
Personally, I don't think the site should be tackling issues of law if it can be avoided. If I'm asking a question from a place where something is legal, and you're answering from somewhere it isn't... Well, don't answer. There are all sorts of foods that are illegal to sell or possess in one place or another; trying to enforce that on the site opens a very big can of worms.
Distasteful topics
Some folks are uncomfortable discussing drugs. Some folks are uncomfortable discussing foie gras, or meat. I'm probably most sympathetic to the notion that we should avoid a topic because it might drive away readers... But this can only go so far. We're not banning meat, or segregating vegetarians on their own site. If a question is asked in good faith, is constructive and otherwise on-topic, then I cannot see that we are justified in excluding it simply because a few squeamish folk might recoil... Tag it, and let them ignore it if they must.
I'm told both nutmeg and lettuce are hallucinogenic in sufficient quantity. I would hope we possess the discretion to exclude questions on the, um, recreational use of either, while still allowing them as the subject of serious questions on culinary use, serving, preserving, food safety, etc.
Comment: I left it rather intentionally broad, so that the discussion could go whereever it needed to.
Comment: I agree, I don't think they should be off-topic if the questions are otherwise constructive questions. I could argue that 'effect' questions are reasonable as they are a component of the cooking process, but there are better places for that on the internet, surely.
Answer: An amendment based on some chat discussion.
I think it'd be ok if:

The particular item was not in the title of the question - its just not something that needs to be advertised.
The question is not about the 'effect' that the drug produces - how to keep it, enhance it, change it, etc.  This would really be more health related and not culinary.
The question has culinary merit otherwise.  It asks about techniques, tastes, textures, etc that if weren't drug related would be acceptable otherwise.
Comment: I think knives brings up an interesting point. Which drugs? Caffeine, alcohol, tobacco? Weed? Opium? Magic Mushrooms? Are we going off legality in the US? If so, should we make un-pasteurized cheese off topic?
Comment: I'm most receptive to Shog9's argument about "illegal" drugs not necessarily being illegal in every region - and this *is* supposed to be an international site. I'd upvote the bottom half of this answer, but not the top half; I think it's equally polarizing to suggest that something shouldn't be discussed simply because it's illegal *somewhere*, whether that *somewhere* is the USA or Mongolia.
Comment: @aaronut I'm going to leave it at the bottom part then, because i think its the most appropriate for a general audience.  I'm hardcore against it - but i know a small portion of the world *isn't*
Comment: @yossarian - i think that's a perfectly valid point - and part of why it was an open of a question - because that has to be decided.  Is there an international health organization we might be able to use for classification?
Answer: Please, give me a break. Once you edited out the potency reference (which was clearly off topic), leaving the rest is just gratuitous grandstanding. It's asked simply to provoke.
This isn't a drug issue or an issue of legality. It's a content issue and what you want for this site. Are you even asking yourself if this is a legitimate, professional culinary discussion that makes the site better?
You reject content on its (lack of) merits all the time. If I asked "What is the cheapest way to feed immigrant farm workers…", we wouldn't be having this conversation. Not because some of those immigrants might be undocumented, but because it is completely irrelevant to the question. It's asked gratuitously only to provoke. But somehow talk of "drugs" (and, strangely enough, profanity) bring out all the "Ooo... we have to embrace this because of free speech and all." Nonsense.
If you think the subject improves the site — If you think it reaches out to your target audience — argue the merits of the question. But shrouding the discussion in pseudo-free-speech arguments and straw-man culinary pretexts only does yourself a disservice.
Comment: @rfusca: Absolutely false. The ability to actually *cook* with this butter is *precisely* the purpose of making it. If you go to, say, Amsterdam, I'm quite sure you'll find "culinary minded" people discussing it. Likewise if you asked a predominantly American audience about preparing, say, tiger penis, you'd get mostly blank stares, but there will be plenty of people in mainland China who can answer. I don't normally harp on Americans, but this is a highly *regional* political bias, and in typical American fashion, you all seem to be oblivious to that fact.
Comment: *"You reject content on its (lack of) merits all the time"* - we also try to salvage poor content with good edits all the time, do we not? In this case - and I can understand if some people didn't realize this at the outset, but it's been mentioned several times now - the specific preparation actually *is* relevant to the question, and although the specific *ingredient* may not be, failure to name the "herb" would almost certainly result in several follow-up comments of "why the hell would anybody prepare it that way?"
Comment: @Aaronut - Well I'm not going to get in an extended discussion in the comments there - we can take it to chat sometime.  *But*, I'm a little tired of people pretending their bias free here - that's not reality.  Everybody lives life and makes decisions based on the way *they see the world*.  Statistically, many more Canadians feel the way you do about pot than much of the rest of the world...so you're dealing with a 'highly regional political bias' too - just in the other direction.
Comment: @Aaronut, I think the argument is that it's not *cooking*. You add marijuana to brownies for the effect rather than any culinary reason, at least that seems to be the argument that's being made. I'm not sure how it would differ from a question about hiding the flavor of wheat grass which is also being added for a reason other than culinary.
Comment: @yossarian: That's precisely how I look at it. The culinary use of traditionally non-culinary ingredients is the basis for our [culinary-uses] tag, and with respect to masking flavour, we even had a question along those lines about [cod liver oil](http://cooking.stackexchange.com/q/10526/41). If a compound butter is still intended to be baked, and eaten, and the question is about preserving it as a *food*, then it's clearly a cooking question. The original revision was wading into off-topic territory but I can see no problem with the current edited version.
Comment: @aaronut - I think if a group of culinary minded people have to ask 'why the hell would anybody prepare it that way' - I have to wonder if its relevant in a culinary sense then.  If there is no other prep similar, then I doubt its merit from a culinary standpoint.  It must be prepared that way for some reason *other* than culinary concerns.
Comment: Also see [Legality of Cannabis](http://en.wikipedia.org/wiki/Legality_of_cannabis) - it's been fully decriminalized in several countries and is legal for medicinal use in several more and nearly 30% of the U.S. There's a significant part of the world that doesn't necessarily *encourage* it but treats it with the same mild indifference as fortified wine.
Comment: @Aaronut - RC makes the excellent point...its simply not about legality.
Comment: @rfusca: Have you traveled much? Because I can tell you from experience that this just isn't true. It's not even true in a lot of the northern U.S. states. We're talking about *one question* here, not a front page that's flooded with them, and due to its rather *limited* culinary properties I'm not seeing any slippery slope.  If just 10% of the world is at least tolerant of something then it stands to reason that it should be allowed to occupy 0.01% of the site.
Comment: @rfusca: How is not about legality? What is it about, then? Are you going to argue that making cannabis butter is somehow *immoral* or *dangerous*? Is it *harming* somebody?
Comment: Let's define "culinary reason" then. I guess we will agree that it involves going beyond mere nutrition, and well into the realm of enjoying the pleasures of senses such as taste, smell, sight and touch. And even hearing, according to The Fat Duck. So, leaving legality aside (which has been discussed already), what's wrong with cannabis as a sense-pleasing ingredient? Why isn't that *culinary*?
Comment: @Aaronut - They're making butter for use yes, but they're not making it like that because it needs to be made like that for a compound butter...they're making it like that to keep the *effect*....which isn't relevant from a culinary standpoint.
Answer: I have no complaints about medical marijuana in general.
I do have an issue with asking questions about retention of medical potency.
I'd vote to close it if someone had asked about a compound butter made with St. John's Wort and asked about maintaining 'medicinal efficacy'.
(okay, I do have one complaint about some of the growers -- I was at a hotel near the convention center that was holding the 'Colorado Indoor Growing Expo', and those @!#!@#%holes were partying 'til at least 3am, while I was trying to sleep.)
Comment: Actually I think Joe's argument about the efficacy as a medicinal quality is the paramount consideration here; if the OP wants flavor, we answer. However, if we draw the line at nutrition, why wouldn't we draw the line at psychoactivity of a compound? In this question, preservation of the THC is the inferred concern; as such the question is out of scope. Reefer the OP to a drug interactions or nutrition stack; cooking.se isn't the right place.
Answer: I suspect the question was somewhat flame bait
The OP could have just asked about oregano butter, and got a useful answer
The OP choose to go somewhere which is problematic in many parts of the world
Why get the SA site banned in some countries, for a fringe question
SA doesn't do cocktails for the same/similar reason, right?
Comment: 1) cocktails are on topic. 2) I don't think it was flame bait. It was a very poorly worded question without enough details and suffered badly from ESL. However, the OP came back and answered the relevant questions about technique. Looks like a legit question to me and not a trolling attempt.
Comment: If it *was* flame bait (and under the circumstances, that does not appear to be the case), then the most effective way to prevent any flaming is to just answer it and move on, and not pay any special attention to it. If the mere *mention* of a drug is going to get us banned somewhere, then this meta discussion is probably doing a lot more damage than the original question.
Comment: I agree that it was not flame bait, just poorly worded due to ESL.
Comment: Fair comment, but (other than he was stoned), why didn't OP ask about "herb" butter? Hopefully with meta being a sub site it wont get the main site blocked/filtered
Comment: How about someone edit the question to "herb butter" and we can all move on. I live in a country with 10% of the population as regular "herb" users. No need to advertise it, but it's part of some peoples lives. Healthier to eat than smoke apparently?
Comment: @TFD: this has been discussed a few times, but see the revised question - this isn't exactly a technique I would use with, say, *basil*.
Answer: Legality
The issue of legality is not the focus. Laws change, and what's legal in one place can be illegal in the next. For this reason, the legality of a drug should have nothing to do with determining whether a question is on topic or not.
Definition of Drugs
I guess we could try to use a wholly generic, yet precise, dictionary/encyclopedic definition of "drugs" and include caffeine, nutmeg, and lettuce or any other chemical which "alters normal body function".
However, I think that's overreaching quite a bit, and clearly isn't what I had in mind.
I think what it comes down to is:
Common Sense and Culinary Relevence
I'd like to think that common sense separates marijuana, cocaine, heroin, prescription medication, hallucinogenic mushrooms, et al. from ingredients such as nutmeg or lettuce.
I acknowledge that caffeine and alcohol are rather ambiguous, and could easily be considered drugs. However, alcohol is very prevalent in cooking, and we have also thoroughly discussed it's topicality for this site, and decided that it is on topic.
Regarding caffeine, while we have not had a formal discussion regarding it's topicality, the fact that it is very widely consumed, very widely used in cooking (unavoidably in many cases), and that questions regarding it were broached and answered without controversy or even a second thought tell me that it passes the common sense and culinary relevance test.
The remaining drugs all have a few things in common:

Rarely used in cooking
Not taught or used in any culinary course
Have non-trivial mood/mind altering properties
Common sense says they are drugs
Can reflect poorly on our sites professional image

I think we should be extra careful and cognizant of the last bullet point. I know that if I were new to this site and I stumbled across a front page that had a question about cooking with marijuana that I would dismiss the site and go elsewhere. Since I am obviously biased here, it's worth noting that we have a food blogging new user that says the same.
In closing, permitting drug oriented cooking questions is a can of worms that would best be left closed. Some may call these straw-man arguments, but where do we draw the line on "well-asked" questions such as:

How can I incorporate cocaine into my _?
What's wrong with my heroin brown sugar syrup?
How can I store my human semen béchamel?

P.S. Cannibalism was a common sense off topic issue. In my opinion, these drugs (and semen) should be too.
Comment: I agree with the last bullet point. The problem is that the human mind has a special reaction to "hot" topics. I mean, who of us can list any novels by Nabokov beside Lolita? And if somebody asks about a Sharon Stone movie, which one is the first people think of? There is a real danger that if we try to treat the topic level-headed and give a serious culinary answer to a single cannabis butter question among 4000 prosaic kitchen question, the rest of the world won't act as levelheaded and will know us as "that site which teaches you how to cook cannabis butter". And I dislike being notorious.
Comment: Meh, I can't agree with any answer that tries to use "common sense" as a justification.
Comment: It also occurs to me that we should consider the potential side effect of having our site being caught by nanny filters in use by schools or employers if drugs are topics here. (I have no idea what kind of bars they set).
Comment: Says the guy going on about semen in his post. ;o)


Ableton Push - Python script LED feedback.

Question: I've recently started learning about Python scripting in order modify Ableton Pushs behaviour.
In the process of learning I've come across a few scripts (paid) that do some interesting things. One in particular seems to provide the ability to switch the push into a sort of 'mix mode' which allows the Push to receive information about the level (VU Meter) of the 8 currently selected tracks & master (the master VU is displayed horizontally).
I've been exploring the _framework and i've seen a few things that would be responsible for button colors, but I can't seem to identify what would be responsible for real-time visual feedback.
Thanks in advance for any help anyone can provide.
Answer: Here is a good explanation for achieving this on the APC40:
VU Metering with Remote Scripts
Code on GitHub
This could be easily added to the Push script... :)
Ableton Live User Remote Scripts for Live 9
PS: There might be some nice updates for the scripts in the newly released Live 9.2, but I don't know if they are available anywhere, yet.


Product Comparison Tables - Adjusting criteria for product comparison (CompareMetrics) - Patent Application - PRIOR ART REQUEST

Question: AN OVERBROAD PATENT ON product comparison table interfaces - This application from CompareMetrics (funded by FLOODGATE Ventures) seeks to patent the idea of...Comparing products for a user by adjusting one criteria based on user preference for another criteria! 10 minutes of your time can help narrow US patent applications before they become patents.  Follow @askpatents on twitter to help.
QUESTION - Have you seen anything that was published before 5/23/2011 that discusses:

Adjusting two criteria (e.g. price and memory) which are related to one another when comparing different products in a product comparison table

If so, please submit evidence of prior art as an answer to this question. We welcome multiple answers from the same individual.
EXTRA CREDIT - Quantitative criteria (such as memory, weight or screen size) and displaying criteria in a tabulated format (!).  See figures below for an example.
TITLE: Changing criteria for a user when comparing complex product offering
Summary:  [Translated from Legalese into English] Display two or more criteria for two or more products in a table. Receive an input from a user related to one criteria.  Automatically modifying the other criteria in the table.

Publication Number: US 20120330778 A1
Application Number: US 13/477,831
Assignee: CompareMetrics
Prior Art Date: Seeking prior Art predating 5/23/2011
Open for Challenge at USPTO: Open through 6/25/2013
Link to Google Prior Art Search - "Find Prior Art"

Claim 1 requires each and every step below:

A method of providing a comparison among two or more offerings, comprising:

Displaying a tabulation of two or more criteria for two or more offerings;
Receiving an input from a user relating to a first one of the criteria in the tabulation; and
Automatically modifying, by a computer system, based on the input received from the user for the first one of the criteria, the tabulation with respect to at least one criterion other than the first one of the criteria.

In English this means:

A method for providing a comparison among two or more products, comprising:

Displaying at least two criteria for two or more products
Receive an input from a user related to one criteria (e.g. screen size)
Automatically modifying the other criteria (e.g. weight) and displaying it in the table.

Good prior art would be evidence of a system that did each and every one of these steps prior to 5/23/2011
You're probably aware of ten pieces of art that meet this criteria already... separately, the applicant is claiming quantitative criteria which move together in a user interface - e.g. change the screen size on the laptop product and the weight goes up automatically.

"Comparison interface and a visual trade-off analysis of criteria"

What is good prior art? Please see our FAQ.
Want to help? Please vote or comment on submissions below. We welcome you to post your own request for prior art on other questionable US Patent Applications.
Answer: Didn't just about all of Dell's online shopping screens allow this? Hard to tell now as Dell update this stuff all the time. (Purely coincidence my answer actually matches their example).
Answer: Would the Wayback Machine help? Screenshot and link below are for an MP3 page but you could probably easily find something for laptops by clicking around.
Screenshot from 2010: http://cl.ly/image/0S2i243K251z
Page: http://web.archive.org/web/20100217121624/http://www.newegg.com/Product/ProductList.aspx?Submit=ENE&SubCategory=23&N=2100080023


multiple physical servers behind NAT with one IP

Question: What would be the preferred solution for hosting several physical servers behind a NAT with one external IP?
I know Apache can reverse proxy HTTP but if i want to do the same with FTP?
Squid seems to be mentioned a lot but i am a little confused if it will work with my set up:
A few physical boxes running Ubuntu with Virtualmin and they are all behind a NAT. Each physical box runs the usual LAMP stack and hosts a few virtual servers with FQDN.
I need to be able to access HTTP but also at least FTP and possible SSH through this solution.
Answer: For web servers, I can recommend Varnish as the frontend node, which is a reverse proxy for your apache. Then you can differentiate on FQDN (and accelerate your web servers with cache)
As for FTP, that's a different beast, and you're stuck with using different ports. In addition, you must be sure that your server behind the NAT, utilize the forwarded ports for PASV as well.
<code>Frontend <-> NAT <-> FTP1 (port 21, + PASV: 20000-21000)
Frontend <-> NAT <-> FTP2 (port 10021, + PASV: 21000-22000)
</code>
Your only option for having a single ip/port interface for ftp, is to host it on the frontend node (with the external ip), and mount (nfs/samba) your other folders you need available on the ftp.
Answer: For SSH, I would just have one SSH server active to the outside world. You connect to that server, and now that you are inside your NAT'd network you can get to other servers via local IP or name from there for administration purposes.
Can't help you with the web sites, though. I know how to do it in IIS, but I'm not very good with Apache. You might be able to set up VirtualHost entries in the Apache conf file on one of the machines that specify the domain name they listen on, and forward to the appropriate internal server, but again, I'm not very up on Apache.


Late Check In rules

Question: Advice required. Just tried to check into my BA flight from Miami to LHR and they are saying an 18 hour delay. So do I still need to be at the airport in time for the original departure time or will I have classed as a 'no show'
Comment: Usually, check-in deadlines (for baggage drop) are based on the original departure time. But given the very long delay, I'm pretty sure they will be accommodating. I would strongly recommend you call BA for clarification (they could actually rebook you on a different flight -- they have a strong incentive to do so!).
Comment: Also, I wonder how they have come up with this long delay so long in advance. The aircraft planned for this route does not seem to have any issue (currently flying CPT-LHR, on time, and the LHR-MIA flight is scheduled on time as well). There may be an issue with a member of the flight crew scheduled for that flight... But there are two other flights before that one, they may be able to rebook you on one of those.
Comment: Thank you for the advice. Trying to get through to BA  with no joy at the moment!
Comment: Remember: they are most probably liable for a big penalty for the delay, so they have every incentive to get you to your destination as quickly as possible. The other BA flight tomorrow evening seems to be full (they probably already started transferring passengers onto that one), but the AA flight isn't.
Comment: This advice seems to be simply .. wrong.   When there's a horrific delay like this, you're really supposed to be there at the original time, yeah.  In ancient history, zillions of years ago, airlines would "give people a break".
Comment: Welcome new user!  OP, you should really mention what country or at least region you are in, as it changes things drastically.
Answer: Unfortunately, the offical requirement is to be on time for the original scheduled time, as annoying as this may be.
The reason is that the delay might disappear partly or completely (the spare part came earlier than expected; another pilot volunteered; repairs went faster than estimated; whatever), and then they will fly without you, and you missed the flight and have to bear the consequences.
If you can get in contact with them, they may confirm that you can come later (and I recommend to ask them to email you this for reference). Otherwise, you play at your own risk.
Comment: It is worth pointing out that there are occasions when the airline and airport absolutely do not want you to check in at the original time.
Comment: it's true that there are some **rare, unusual** cases where they will literally tell you to "stay away", but that doesn't help the thrust of this question.
Answer: This happened to me before, and the rule is you have to be at the airport at the original check in time, irrespective of the actual flight departure time.
There are many reasons for this, but the primary one is that the check in desks are not manned permanently. Staff from BA (or its agent in Miami) are only allowed to operate the check-in desks for a specific period of time - usually from 3 hours before scheduled boarding till about an hour from boarding.
Once this window passes, the counters are emptied and another airline is takes over. The only exception to this rule is if you are flying from the home base of the airline (so if you were flying from London to Miami, it is possible for you to check-in earlier at London since there are dedicated, permanent BA check-in desks).
At some airports (this doesn't apply to the US or Europe but adding for completeness) the immigration counters also have a set time during which a flight is "open" for processing, due to security concerns.
So given all of the above, the you should not gamble with the timings. Arrive on time for your original flight, check in and drop off any luggage. You can then choose not to go through security until nearer to the time of your flight.
As you are already checked-in and have surrendered your luggage, you can leave the airport and come back and go directly to the security queue.

Late Check In rules


What tools allow a quick comparison of NetCDF output from ocean models?

Question: I am writing my own MATLAB scripts to do most of the visualization and data analysis of model results. I wonder if there is a quicker way for visual comparison of simulation results gained from different ocean modeling systems. Is there a (preferably free) software package that works with CF (Climate and Forecast Metadata Conventions) compliant NetCDF model output directly or is always some coding required?
Comment: I disagree about this being one for Software Recommendations - the overarching question isn't so much "what software should I use" as "What's a quick and easy way to compare these oceanographic data sets". I think that if the question was edited to change the emphasis as such, it would fairly clearly be valid here. It *may* be a little broad, but I think it could be fixed with a little editing - perhaps an example of the problem to be solved.
Comment: @bhf ah, thanks. Looks like maybe that is a climate-science-specific thing at present, though if it could spread to other areas of ocean & atmospheric science it could only be a good thing...
Comment: Please don't ask shopping /recommendation questions here. Try [softwarerecs.se]
Answer: For very quick visual comparison I would use Cube Browser or ncview together with a command line tool like the Climate Data Operators. For quick production of nice looking graphics (and animations) Panoply really makes good job. For further analysis or special graphics keep following your approach and script with things like MATLAB, Python (e.g. with Iris), IDL, R, ncl or whatever people around you are using.
Answer: The writers of netCDF, UNIDATA, maintain a pretty extensive list of visualisation software on the netCDF website.  It even mentions an Excel add-in, for the masochistic, presumably.
Over the years, I've found Ferret to be reliable with CF compliant files (and non-compliant ones, for that matter) and useful for interactive quick looks and simple manipulations.  It understands, for example, the CF-recommended UDUNITS time format and will automatically apply scale_factor and add_offset attributes to variables.  It's certainly quicker to get something on screen than the Python/R/Matlab route that I usually take for presentation and publication quality plots.
If you're after a more GUI-like viewer, then I've heard good things about Panoply, although I must admit I've never used it myself.
Comment: Thank you for pointing to the list of software. I found the [ncBrowse](http://www.epic.noaa.gov/java/ncBrowse/) to have the easiest point-and-click interface amongst the ones I tried.
Answer: I second ncview for taking a quick look at NetCDF files.
I would also recommend trying Unidata's Integrated Data Viewer (IDV). It is great for overlaying geophysical fields in 3-D from different sources. Besides NetCDF, it supports many other formats. It also comes with a pre-loaded listing of various observational and model data repositories through THREDDS and OpenDAP. IDV also lets you to define functions and operations between fields on different grids or projections. Note that IDV is not good for serious analysis in my opinion, but is more suitable for exploring datasets visually.
Answer: Just to add my point of view;

Using ncks you can do many things, i.e. differentiate, get
ratio, extract some vars, slice on the dimension etc..
If you want to make some binary operations on netcdf files consider ncbo. For huge files I prefer to cut down what I want at the first place, it does opendap remote as well.
Hate matlab so I moved to NCL (NCAR)
which is straight forward and has many scripts already prepared for most common models .
No need to tell it is producing publication quality figures ;)
There is portion of the lib for python (pyNGL), the same syntax so once when familiar with ncl easy to use it in python as well, support for other formats like grib, hdf, ...
Answer: Normally I use the following softwares for a quick view of my NetCDF files:

NASA Panoply (Panoply netCDF, HDF and GRIB Data Viewer): java based, very good in opening HDF, NetCDF, GRIBs...
CDO functions as shaded, contour, etc. (very basic but useful from command-line)
MATLAB and R with their basic functions
Answer: Using Matlab, you can do ncgeodataset (http://code.google.com/p/nctoolbox/wiki/ncgeodataset) to subsample the netcdf without having to download large datasets.
For instance,
nc = ncgeodataset('http://thredds.jpl.nasa.gov/thredds/dodsC/ncml_aggregation/OceanTemperature/ghrsst/aggregate__ghrsst_JPL_OUROCEAN-L4UHfnd-GLOB-G1SST_OI.ncml');
gvar = nc.geovariable('analysed_sst');
s.time={'20-May-2012', '24-May-2012'};
s.lat=[40 41.5];
s.lon=[0 2.0];
sub = gvar.geosubset(s); % Subset method
pcolor(sub.grid.lon,sub.grid.lat,double(squeeze(sub.data(1,:,:)))-273.15);

Answer: While I don't know the specifics of ocean modeling, unless there there is a "standard" in which nodes are organized and written (Ie X,Y,Z), there will always be coding required. Furthermore, the way a a data file is written always depends on how tasks in the model are delegated to the processor: Is the model designed to be run on a personal PC or a Beowulf Cluster?
You might be able to use something such as OpenDx, to compare ocean modeling results, though I still think that a quick python script would be in order to properly format all data types.
Comment: @SimonW, I think it's CF that aspires to be the metadata standard for Earth science variables.  NetCDF is more of a content-agnostic container format.
Comment: @defitos not really agnostic, since they suggest using CF
Comment: I guess netcdf aspires to be that standard... but it seems to have limited acceptance amongst software vendors as yet.


Managing references in open source .NET project?

Question: What is the best practice for managing references in a .NET open source project? I'm writing a small library that will use Json.NET. Should I check the Json.NET DLL straight into source control?
Answer: Yes you should - either that or reference the original project's version control directly (ie use SVN's externals feature to grab the relevant revision from the source repo, or have a link to get the right version of the project's source).
Put the dll in a slightly separate part of your repo though - do not bundle it in your /bin/release directory, you'll find it much easier to work with 3rd party dlls if there is a clear distinction between what is your code and what is theirs - especially when you come to replace or modify it.
Comment: Most of the open source projects I've looked at have both a `/src` and a `/lib` or `/contrib` in the root. References obviously go in the latter.
Answer: If the licensing allows for including the binaries in your source control and distributing them, it makes alot of sense to include them for a few reasons. First and foremost is ease of development on you -- you don't need to go track down a dependency every time you want to hack on a different machine. Second is ease of development on folks also hacking on your library -- they won't have to go through the same gymnastics. Finally and perhaps more important, it makes sure you've got the correct version of the library traveling with your code.
In the case of JSON.NET, I believe it is MIT licensed which means you can definitely do it from a legal perspective. Add away. Preferably via nuget so I don't have to download it twice if I don't need it.
Comment: +1 for NuGet.  NuGet helps a ton with managing dependencies amongst open source projects.  For example, if someone wants to use your library which uses Json.NET and another library which also uses Json.NET, NuGet will resolve versioning issues and make sure that references for both libraries are correctly resolved.
Answer: heres what I do:  I create a solution folder for my 3rd party assemblies, I then add them to the source control and check them in. this way, they are distributed with my project.  Of course, this is all subject to the distribution licenses of the various 3rd party assemblies.
I hate it when I dl an Open Source project and then I have to go and hunt down assemblies--especially when those assemblies may no longer be available.


What are the primary differences between TDD and BDD?

Question: Test Driven Development has been the rage in the .NET community for the last few years. Recently, I have heard grumblings in the ALT.NET community about BDD. What is it? What makes it different from TDD?
Comment: See also, http://programmers.stackexchange.com/q/135218/76176. This question is more on topic there.
Comment: TDD is for micro tests. BDD is for requirements or macro tests. Listen to episodes 1 through 8 about the Test Pyramid and it will explain these levels: https://agilenoir.biz/series/agile-thoughts/
Answer: I understand BDD to be more about specification than testing. It is linked to Domain Driven Design (don't you love these *DD acronyms?).
It is linked with a certain way to write user stories, including high-level tests. An example by Tom ten Thij:
<code>Story: User logging in
  As a user
  I want to login with my details
  So that I can get access to the site

Scenario: User uses wrong password

  Given a username 'jdoe'
  And a password 'letmein'

  When the user logs in with username and password

  Then the login form should be shown again
</code>
(In his article, Tom goes on to directly execute this test specification in Ruby.)
The pope of BDD is Dan North. You'll find a great introduction in his Introducing BDD article.
You will find a comparison of BDD and TDD in this video. Also an opinion about BDD as "TDD done right" by Jeremy D. Miller
March 25, 2013 update
The video above has been missing for a while. Here is a recent one by Llewellyn Falco, BDD vs TDD (explained). I find his explanation clear and to the point.
Comment: The video link seems to have gone bad
Comment: Christian, what was the video title and speaker name? so we can track it down
Comment: Above 'Tom Ten Thij' link is dead by now.. here's live @ - http://tomtenthij.nl/2008/1/25/rspec-plain-text-story-runner-on-a-fresh-rails-app
Comment: Here is a short game that teaches the main points of BDD: https://agilenoir.biz/en/am-i-behavioral-or-not/
Answer: To me primary difference between BDD and TDD is focus and wording. And words are important for communicating your intent.
TDD directs focus on testing. And since in "old waterfall world" tests come after implementation, then this mindset leads to wrong understanding and behaviour.
BDD directs focus on behaviour and specification, and so waterfall minds are distracted. So BDD is more easily understood as design practice and not as testing practice.
Comment: TDD has nothing to do with the "waterfall" software design lifecycle.
If anything, TDD is SDLC agnostic.

The intent of TDD is to write the minimum amount of code required to get a test to pass. In a way the test becomes the technical specification for the code to adhere to.
Comment: TDD is "Test first" and can work quite well with Agile. This isn't accurate.
Answer: There seem to be two types of BDD.
The first is the original style that Dan North discusses and which caused the creation of the xBehave style frameworks. To me this style is primarily applicable for acceptance testing or specifications against domain objects.
The second style is what Dave Astels popularised and which, to me, is a new form of TDD which has some serious benefits. It focuses on behavior rather than testing and also small test classes, trying to get to the point where you basically have one line per specification (test) method. This style suits all levels of testing and can be done using any existing unit testing framework though newer frameworks (xSpec style) help focus one the behavior rather than testing.
There is also a BDD group which you might find useful:
http://groups.google.com/group/behaviordrivendevelopment/
Answer: Test-Driven Development is a test-first software development methodology, which means that it requires writing test code before writing the actual code that will be tested. In Kent Beck's words:

The style here is to write a few lines of code, then a test that
should run, or even better, to write a test that won't run, then write
the code that will make it run.

After figuring out how to write one small piece of code, now, instead of just coding on, we want to get immediate feedback and practice "code a little, test a little, code a little, test a little." So we immediately write a test for it.
So TDD is a low-level, technical methodology that programmers use to produce clean code that works.
Behaviour-Driven Development is a methodology that was created based on TDD, but evolved into a process that doesn't concern only programmers and testers, but instead deals with the entire team and all important stakeholders, technical and non-technical. BDD started out of a few simple questions that TDD doesn't answer well: how much tests should I write? What should I actually test—and what shouldn't I? Which of the tests I write will be in fact important to the business or to the overall quality of the product, and which are just my over-engineering?
As you can see, such questions require collaboration between technology and business. Business stakeholders and domain experts often can tell engineers what kind of tests sound like they would be useful—but only if the tests are high-level tests that deal with important business aspects. BDD calls such business-like tests "examples," as in "tell me an example of how this feature should behave correctly," and reserves the word "test" for low-level, technical checks such as data validation or testing API integrations. The important part is that while tests can only be created by programmers and testers, examples can be collected and analysed by the entire delivery team—by designers, analysts, and so on.
In a sentence, one of the best definitions of BDD I have found so far is that BDD is about "having conversations with domain experts and using examples to gain a shared understanding of the desired behaviour and discover unknowns." The discovery part is very important. As the delivery team collects more examples, they start to understand the business domain more and more and thus they reduce their uncertainty about some aspects of the product they have to deal with. As uncertainty decreases, creativity and autonomy of the delivery team increase. For instance, they can now start suggesting their own examples that the business users didn't think were possible because of their lack of tech expertise.
Now, having conversations with the business and domain experts sounds great, but we all know how that often ends up in practice. I started my journey with tech as a programmer. As programmers, we are taught to write code—algorithms, design patterns, abstractions. Or, if you are a designer, you are taught to design—organize information and create beautiful interfaces. But when we get our entry-level jobs, our employers expect us to "deliver value to the clients." And among those clients can be, for example... a bank. But I could know next to nothing about banking—except how to efficiently decrease my account balance. So I would have to somehow translate what is expected of me into code... I would have to build a bridge between banking and my technical expertise if I want to deliver any value. BDD helps me build such a bridge on a stable foundation of fluid communication between the delivery team and the domain experts.
Learn more
If you want to read more about BDD, I wrote a book on the subject. "Writing Great Specifications" explores the art of analysing requirements and will help you learn how to build a great BDD process and use examples as a core part of that process. The book talks about the ubiquitous language, collecting examples, and creating so-called executable specifications (automated tests) out of the examples—techniques that help BDD teams deliver great software on time and on budget.
If you are interested in buying "Writing Great Specifications," you can save 39% with the promo code 39nicieja2 :)
Answer: I have experimented a little with the BDD approach and my premature conclusion is that BDD is well suited to use case implementation, but not on the underlying details. TDD still rock on that level.
BDD is also used as a communication tool. The goal is to write executable specifications which can be understood by the domain experts.
Answer: Behaviour Driven Development seems to focus more on the interaction and communication between Developers and also between Developers and testers.
The Wikipedia Article has an explanation:
Behavior-driven development
Not practicing BDD myself though.
Answer: It seems to me that BDD is a broader scope.  It almost implies TDD is used, that BDD is the encompassing methodology that gathers the information and requirements for using, among other things, TDD practices to ensure rapid feedback.
Answer: With my latest knowledge in BDD when compared to TDD, BDD focuses on specifying what will happen next, whereas TDD focuses on setting up a set of conditions and then looking at the output.
Answer: Consider the primary benefit of TDD to be design. It should be called Test Driven Design. BDD is a subset of TDD, call it Behaviour Driven Design.
Now consider a popular implementation of TDD - Unit Testing. The Units in Unit Testing are typically one bit of logic that is the smallest unit of work you can make.
When you put those Units together in a functional way to describe the desired Behaviour to the machines, you need to understand the Behaviour you are describing to the machine. Behaviour Driven Design focuses on verifying the implementers' understanding of the Use Cases/Requirements/Whatever and verifies the implementation of each feature. BDD and TDD in general serves the important purpose of informing design and the second purpose of verifying the correctness of the implementation especially when it changes. BDD done right involves biz and dev (and qa), whereas Unit Testing (possibly incorrectly viewed as TDD rather than one type of TDD) is typically done in the dev silo.
I would add that BDD tests serve as living requirements.
Answer: There is no difference between TDD and BDD. except you can read your tests better, and you can use them as requirements. If you write your requirements with the same words as you write BDD tests then you can come from your client with some of your tests defined ready to write code.
Answer: In short there is major difference between TDD and BDD
In TDD we are majorly focused on Test data
In BDD our main focus is on behavior of the project so that any non - programming person can understand the line of code on the behalf of the title of that method
Answer: Here's the quick snapshot:

TDD is just the process of testing code before writing it!
DDD is the process of being informed about the Domain before each    cycle of touching code!
BDD is an implementation of TDD which brings in some aspects of DDD!


Allow User Account to run a single command using SUDO privelages

Question: I have a machine running Ubuntu 12.10. I have two user accounts setup, my account, and another user. I am able to run SUDO commands, but the other user isn't in the SUDO'ers list.
What I'm trying to do is give mininal permissions for the other user to run a single SUDO command. Basically to eject an Amazon Kindle USB device.
<code>sudo eject /dev/sdc1
</code>
When plugging the Kindle in to the USB port, the device is mounted. If the user simply Ejects the device using the UI, the device is unmounted but not ejected - so the device can pull charge from the PC.
Ejecting the Kindle using the command above works on my account, allowing me to charge the Kindle. But when the other user is logged in, he can't run the command.
Is there a way to allow a user account to run a single command with SUDO permissions?
Comment: You can try adding that user to the cdrom group instead
Answer: Use sudoedit to edit the file /etc/sudoers
Underneath the line root    ALL=(ALL:ALL) ALL
Enter the line below and replace ejectuser with the actual username
ejectuser ALL=(root)NOPASSWD:/usr/bin/eject


What are the legalities of online research involving illegal services?

Question: I want to do a thesis paper involving illegal online resources. I don't want to be persecuted for these things though. What are some of the steps I would need to take to legitimately go about researching said illegal areas of the internet. Who would I need to contact to gain permission to legally research these sources without any legal ramifications?
Comment: I think you mean you don't want to be *prosecuted*. Being *persecuted* would mean being targeted for gross discrimination.
Comment: I think you have to be a bit more specific about the illegal activity. Certain viewpoints are illegal in certain countries but there are subversive websites breaking the law; there are sites that massively infringe copyright; there is child porn; there is trading in top secret information. I assume you're talking about infringment sites. Or, is it that you want to research a totally different topic and plan to use illegally-obtained material, on the theory that if it's for research it's okay? A bit of clarification would be useful.
Answer: You would start by seeking permission from your academic institution.  If they approve it then they should employ their legal counsel to create a safe harbor for your work.
Answer: Typically the Attorney General in the relevant jurisdiction can grant this sort of permission.
Comment: Although an AG cannot grant permission to violate copyright, or to break the law. They might be able to give advice about whether X is / is not legal. There's also the problem that there can be AGs for state and federal jurisdiction.
Comment: In retrospect this isn't surprising, but state AGs are generally prohibited from giving opinions to private citizens: only select state officials have standing. An analogous restriction holds on the federal AG, which only responds to the executive branch.


How is sunlight simulated in spacecraft testing, given its brightness?

Question: How could a light source like the sun be approximated on Earth for testing, given how much brighter it is in space than anything else?
Comment: I would recommend reading Wikipedia about the units Lux, Lumen and Candela. Powerful lamps may exceed the Lux number of the Sun when illuminating a very small area.
Comment: A modern lighting of an operating theatre (160000 Lux) is even brighter than sunlight at a clear sky with the Sun at the zenith (130000 Lux).
Comment: @Uwe done. sentence removed
Comment: Would you please remove or correct this wrong sentence: "This is also with consideration to the fact that no lamp can match the lux count of the sun."
Answer: You can match the lux count of the sun, in a small area. The amount of solar power that shines on a satellite is about 1300 W/m2 in Earth orbit.
This is done at e.g. the ESA Large Space Simulator at ESTEC, in the Netherlands.

This provides a horizontal solar beam of 6-m diameter with excellent uniformity and very high long- and short-term stability (less than 0.5%). An intensity level of one solar constant (the standard solar energy received at Earth distance from the Sun, equivalent to 1380 watts per square metres) can be produced by operating 12 of 19 xenon lamp modules at a nominal power of 20 kilowatts per lamp. With all lamps at full power, engineers can achieve flux in excess of 2700 watts per square metre.
Comment: smaller versions [are available](http://www.ts-space.co.uk/uploads/5/1/4/3/51430121/tsspace_unisim_brochure.pdf)
Comment: larger one too (sort-of) ~350 kW on a 20x20cm area  https://chemistry.stackexchange.com/q/71172/16035
Comment: 20 kw lamps!  NICE!


What are the appropriate ranges of gear ratios for 1.75 mm and 3 mm filament extruders?

Question: Most 3 mm (mostly are actually 2.85 mm) filament extruders have some kind of gear reduction. Many 1.75 mm extruders are direct-drive / ungeared but some do use gears. What kind of reduction ratios are suitable or optimal?
Answer: $ \frac{(2.85\ mm)^2}{(1.75\ mm)^2}=2.65$ which is the reduction you would want assuming a 1.75 is direct drive.
In this answer I am comparing the amount of filament flowing though the extruder by using $ \pi \times r^2$.  Dividing the 2 values gives the ratio of the 2 speeds.  A gear ratio is them used to change the speed.
Comment: Eric is calculating the ratio of the two cross-section areas of the filaments, assuming (probably corretly) that the force needed to push the filament through the hotend is linearly proportional to this cross-section area. This also assumes that the finally pushing hobbed bolt or gear has the same diameter. The answer hence is highly incomplete and lacks all explanations.
Comment: Sure, but most 3mm extruders use more reduction than that. Why? What are the drivers?
Comment: Eric, could you please elaborate on how that formula works, or perhaps add a link to it?
Comment: What you actually mean, but do not explain correctly, is that when compared to a 1.75 mm direct drive, the 2.85 mm extruder needs the calculated amount of gearing to achieve the same force.
Answer: This basically depends on the torque your stepper can produce! A high torque stepper (the bigger the height of the stepper the more powerful the stepper) can push filament with much more force than a stepper motor with less torque. To increase the torque you employ a gear ratio to reduce the speed. As torque and speed are inversely proportional, a reduction by half in speed doubles the torque.
If your stepper is powerful enough, you can use a direct drive (no gearing) to push the filament. However if you want that same stepper to move filament of larger diameter, you might not have enough torque to do so. This means that you will have to increase the torque by employing a gear reduction. Using direct drive extruders thus require high torque, and thus high mass stepper motors, this causes the mass of the hotend carriage to increase considerably. Using stepper motors with less torque (often called pancake steppers because of their reduced height) for such applications is often seen together with a gear reduction. A drawback of reducing speed is that you also decrease the maximum print speed ability or max speed filament retraction speed. To reduce the speed you can use a gear reduction using gears or use pulleys and belts. A major advantage of a belt reduction is that it operates without much less noise than using gears.
Let us assume that you have a stepper that is powerful enough and want to extrude thicker diameter filament. The following guideline can be used to calculate the gear ratio. Also if you express the value in an actual torque, you could work your way back to calculate the gear reduction for a pancake stepper you would use to replace your current X-value torque motor, that is left as an exercise.
From 1.75 mm to 2.85 mm
Under the assumption that the force that the nozzle exerts on the build plate ($F_n$) is constant for different types of filament size, you would be able to calculate the ratio of force for the extruder ($F_{e}$) and nozzle of any filament diameter using the pressure in the nozzle using:
$$ p=\frac{F}{A} $$
Where, $p$ is the pressure, $F$ the force and $A$ the area.
$$ p =\frac{F_e}{A_e}  = \frac{F_n}{A_n} \\
F_n=F_e\frac{A_e}{A_n}=F_{e_{1.75}}\frac{\frac{1}{4}\ \pi\ d_{1.75}^2}{\frac{1}{4}\ \pi\ d_{n}^2} = F_{e_{2.85}}\frac{\frac{1}{4}\ \pi\ d_{2.85}^2}{\frac{1}{4}\ \pi\ d_{n}^2}
$$
Where $d$ denotes a diameter of the nozzle or the filament. Subscripts $e$ and $n$ denote the extruder and the nozzle respectively.
Note that the force that is generated by the extruder is derived from the stepper torque $\tau$ directly, or through a geared drive (gearing ratio $R_{gear}$ ):
$$
\tau_{e} = R_{gear}\times\tau_{stepper}
$$
Note, a gear ratio of 1 denotes direct drive.
The force would then be calculated by dividing the torque by the radius ($r$) of the extruder gear:
$$
F=\frac{\tau_e}{r}
$$
Combining equations gives us:
$$
\begin{align*}
&1.75\ {filament}\ \Rightarrow F_n=\left (\frac{1\times\tau_{stepper}}{r_{e_{1.75}}}\right )\frac{d_{1.75}^2}{d_{n}^2} \\
&2.85\ {filament}\ \Rightarrow F_n=\left (\frac{R_{gear}\times\tau_{stepper}}{r_{e_{2.85}}}\right )\frac{d_{2.85}^2}{d_{n}^2}
\end{align*}
$$
Which can be rewritten to:
$$
R_{gear} = \frac{d_{1.75}^2}{d_{n}^2} \times \frac{d_{n}^2}{d_{2.85}^2} \times \frac{r_{e_{2.85}}}{r_{e_{1.75}}}
$$
Note that each $d_{n}^2$ is applicable to the nozzle size of the extruder. Hence, for similar nozzle sizes, the $d_{n}^2$ term cancels out:
$$
R_{gear} = \frac{d_{1.75}^2}{d_{2.85}^2} \times \frac{r_{e_{2.85}}}{r_{e_{1.75}}}
$$
This means that if you go from 1.75 mm to 2.85 mm filament, for the exact same extruder gear radius (which is not likely as you probably need a different extruder gear/hobbed bolt that can accommodate the larger diameter filament), the gear ratio is $1:2.65$ and therefore you need to reduce the speed accordingly.
The reason that you see different gearing ratios can not only be explained by differences in the extruder gear/hobbed bolt diameter differences, but also in stepper torque values.
For 3 mm filament the ratio will be in the order of $1:2.94$ for equivalent extruder gear radii and reuse of the same stepper.
A similar calculation shows that for a 0.2 mm nozzle on a 2.85 mm filament extruder a gearing ratio of $ 1:5.3$ is required. This "extra room" for extra torque to fit smaller nozzles also explain the larger gear reductions. What is optimal is not only defined by the nozzle size and filament diameter but very dependent on the stepper motor and the torque it can produce. Gear reductions should be limited so that they do not minimize overall print speed or cause problems with retraction (this latter I experienced myself, a too high retraction speed caused the stepper to miss steps on my custom designed 1.75 mm to 2.85 mm bulldog extruder conversion. I'm using a $1:4$ speed reduction to produce enough torque with a stepper that is normally used for direct drive (of 1.75 mm filament). Note that within the aluminium bulldog housing, a different sized extruder gear is used to accommodate the larger diameter filament:


Will a docker container auto sync time with its host machine?

Question: Do I need a NTP server inside a docker container to periodically sync the time or will the container re-sync time with its host machine? The docker container time zone is correctly set.
Answer: If you are on OSX running boot2docker, see this issue: https://github.com/boot2docker/boot2docker/issues/290
Time synch becomes an issue because the boot2docker host has its time drift while your OS is asleep. Time synch with your docker container cannot be resolved by running your container with -v /etc/localtime:/etc/localtime:ro
Instead, for now, you have to periodically run this on OSX:
/usr/local/bin/boot2docker ssh sudo ntpclient -s -h pool.ntp.org

Update for users of Kitematic
If you are running Kitematic, which is now the suggested mechanism for getting up and running on Docker in OSX, you will have to periodically run this command:
docker-machine ssh default 'sudo ntpclient -s -h pool.ntp.org'

Or, for older versions of docker
docker-machine ssh dev 'sudo ntpclient -s -h pool.ntp.org'

Update for users of new native Docker for OSX
The new Docker Beta does away with VirtualBox and Docker Machine. The latest builds of docker (currently, 1.12.1-beta25 (build: 11807)) seem to have the ability to detect when there has been a time discontinuity and adjust accordingly. Thus, this should no longer be an issue...hooray!!
Comment: Note that for Docker for OSX Beta, restarting the container didn't work me, and neither did recreating it. Instead, I had to restart Docker itself (from the menubar icon).
Comment: See the purported fix/mitigation: https://github.com/boot2docker/boot2docker/pull/661
Comment: Thank you so much. This was the only thing that worked.
Comment: I wrote a [CLI tool](http://github.com/dikarel/docker-machine-timesync) based on this answer to synchronize time on docker-machine VMs every 5 minutes. Works on my OSX El Capitan and Windows 7 Pro
Answer: The simplest solution appears to be to run your container with the -v /etc/localtime:/etc/localtime:ro option. Thus:
#run without tz info:
docker run --rm -t -i ubuntu date
Wed Apr  2 18:40:07 UTC 2014
# run with tz info:
docker run --rm -t -i -v /etc/localtime:/etc/localtime:ro ubuntu date
Wed Apr  2 11:40:29 PDT 2014

Comment: I don't know if the original question was more about timezones (e.g. making sure that the container will honor DST and timezone changes) or accurate time keeping (e.g. making sure that the container clock will not drift). If it's about timezones, that answer is perfect. If it's about clock drift, you don't have to worry: the clock of the container is the same as the clock of the host (except that the container cannot change it, except when it's running in `--privileged` mode).
Comment: `setup mount namespace mounting /etc/localtime into /mnt/sda1/var/lib/docker/aufs/mnt/.../etc/localtime not a directory`
Comment: @esilver boot2docker can only mount subdirectories under /Users by default
Comment: @jpetazzo agreed; I should have included a call to `date` on the host machine in my MWE, as it is otherwise perhaps unclear that the container gets its time from the host.
Comment: This does not appear to work per docker 1.3 on OSX. Same error as Brian Tingle.
Answer: https://github.com/sameersbn/docker-gitlab/issues/77
See sameersbn's answer.
option 1: -v /etc/localtime:/etc/localtime:ro
option 2: -e "TZ=Asia/Shanghai"

Comment: Option 2 worked for me.  I actually like that is is more explicit than the other options.
Comment: Thank you option 2 also worked for me. I get an error on my Mac with option 1 as I have no etc/localtime folder.
Answer: On Docker for Mac OS X Beta, I experienced significant drift on the VM, which is based on Alpine Linux. From Alpine Linux FAQ you can synchronize the VM's clock with the following command.
ntpd -d -q -n -p pool.ntp.org

However, getting access to a terminal on the VM is another question, which can be done if you use the screen command.
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

That path is a symlink, which on my system points at /dev/ttys003.
Once you get in, note that the moby login is simply root with no password. After you have finished, CTRL-A, D will disconnect from the screen session.
NOTE: This used to be documented on Docker for Mac Trouble Shooting but that seems to have been taken down. I was lucky enough to be shown it while at Dockercon 2016. It seems Docker is trying to abstract the VM completely out of the experience, which explains why it's no longer documented.
Comment: This should be the newly accepted answer for people using the new RCs without the intermittent docker-machine
Answer: The current solution for osx time drift on docker (April 2018):
I do have my mac on an NTP server, but this fixed clock drift with containers:
From https://docs.docker.com/docker-for-mac/troubleshoot/#known-issues :
If your system does not have access to an NTP server, then after a hibernate the time seen by Docker for Mac may be considerably out of sync with the host. Furthermore, the time may slowly drift out of sync during use. To manually reset the time after hibernation, run:
docker run --rm --privileged alpine hwclock -s

Or, to resolve both issues, you can add the local clock as a low-priority (high stratum) fallback NTP time source for the host. To do this, edit the host's /etc/ntp-restrict.conf to add:
server 127.127.1.1              # LCL, local clock
fudge  127.127.1.1 stratum 12   # increase stratum

Then restart the NTP service with:
sudo launchctl unload /System/Library/LaunchDaemons/org.ntp.ntpd.plist
sudo launchctl load /System/Library/LaunchDaemons/org.ntp.ntpd.plist

Answer: docker-compose usage:
Add /etc/localtime:/etc/localtime:ro to the volumes attribute.
Look at this link to demonstrate an example.
Answer: If you prefer the TZ solution then you may be surprised to see UTC time displayed despite your request for your own timezone (it's currently 11:09 CDT):
$ docker run --rm -it -e "TZ=America/Chicago" ubuntu date
Mon Oct 26 16:09:04 America 2020

Experimentally, it seems you need the POSIX TZ format:
$ docker run --rm -it -e "TZ=CST6CDT" ubuntu date
Mon Oct 26 11:09:17 CDT 2020


Does anyone know if P2P lending will be made available in Ohio?

Question: I have been trying to find information as to if there are any efforts in process to make P2P lending services like LendingClub.com and Prosper.com available for use in Ohio, and haven't had much luck. Right now, it looks like Ohio is one of four (boooo!!) states that does not allow participation in these types of investment groups, or even the secondary markets of note trading. Does anyone know if there are any kind of efforts to open up Ohio and make it a participating state in P2P lending? Any help is greatly appreciated!
Comment: Related: http://money.stackexchange.com/questions/6304/what-p2p-lending-services-are-available-to-ohio-residents-to-use-as-a-lender
Answer: I believe the basic answer to your literal question, is "No one knows."1  However, that's not a very useful answer.
My suggestion is that you ask this question of your state legislators and/or regulators.  (Unfortunately, I have no idea who that would be.)
I did find this forum post, which does not answer the question, but it has been updated recently and states that Ohio residents can only borrow using p2p lending.

1) This is partially based on this comment, from 1.5 years ago:

Based on my research, it's not looking real promising for Ohio and some others. I have been tracking Prosper 50 State Progress, states by state, for some time.
Most states could easily approve the secondary market where lenders buy or trade existing notes via FOLIOfn because the platform parallels well understood traditional schemas. Approval of the primary Prosper platform where the securitized notes (loans) are created is another matter. Lenders in a number of states, Ohio and my own included, will need to poke-n-prod their state's regulators and legislators repeatedly before they are allowed to participate on the 'new' Prosper. Wish me luck! You too!

source
Comment: George, thank you for your response! Guess its time for me to start calling my elected officials as well!


Triage Off-Topic Clarification

Question: Why is this off topic? Seems like a basic question about joins, so maybe a duplicate?  After reading up on other bans, I know I shouldn't mark questions as Requires Editing, just trying to understand the other categorizations.
https://stackoverflow.com/review/triage/25591078
Answer: Here's what the close message looks like to people with 3k+ reputation:

For some reason, you have to be the question asker or have the Close Votes privilege to see the actual reason it was closed - as a comment suggested, the question can't be answered given the provided code.
I expect your confusion here is because the Stack Exchange network uses "off-topic" as a catch-all for all of the site-specific close reasons, so it encompasses both things that are actually off-topic and things that are potentially on-topic but unanswerable in their current state.
Comment: There's a lot of overlap between the two, but I usually use off-topic > needs more information for when the question is clear but the code is missing or insufficient (or in an image), and needs details or clarity for when it isn't even clear what they're trying to ask.
Comment: I have been using 'Needs details or clarity' as my catch-all, should I use 'off-topic' when I don't know where it belongs, but know it is unsalvageable?
Comment: And in these cases do you choose Blatantly off-topic in the off-topic drilldown?  Maybe this second set of choices is what's always steered me towards Needs details...
Answer: It's off-topic because the user does not provide enough details to identify a good answer. As noted in the comments, the provided tables do not provide a duration field, so it seems impossible to answer the question as it is currently posed.
(I will admit that when I was reviewing the question, I thought it looked okay at first glance, but when I read the comments, it became clearer to me that it had issues. My advice is to always read the comments fields and ofc avoid using Requires Editing.)
Comment: The select statements reference a Milliseconds column, and Name/Title columns that seem to be omitted from the table definitions.  If the table definitions included these columns, what should/would the question be marked as?
Comment: It might be a duplicate in that case, but I'd probably mark it as "Looks OK". The key idea here is that other users have to be able to reproduce the author's behavior so that those users can answer. I don't see any other glaring issues in the post.

Triage Off-Topic Clarification


Card Reader Read Speed Is Slow

Question: BACKGROUND INFO: My hard drive recently failed and I haven't had the money/time to replace it. I tried a Live version of Ubuntu from a thumb drive and decided I liked it, so in the meantime I've decided to install 12.04 to a SD card and run it from there. I've spent about a week working on drivers, customization, and basic exploration, scouring Google for answers and learning from my mistakes, but a couple of items I could not find any good information on so I've decided to suck it up and ask.
PROBLEM(s): I started out installing to a microSD card (within an adapter) simply because I had one, but it was running quite slow. I purchased an Ultra SDHC card (16 GB) because it boasted a 30 MB/s read speed and installed Ubuntu 12.04 to it. This sped things up a bit. However, I'm still getting only ~20 Mb/s read speed maximum, and 11 Mb/s read speed on average. Is this typical for these media readers? I've tried benchmarking the drive on Ubuntu 12.10 as well, and also while running the OS from a LiveUSB drive (so the card reader wasn't in use during testing). These all had similar results. Is this typical of these card readers or the cards themselves? I have no way of testing the drive in Windows or in any other setting. Could this be a driver issue?
Also, my computer seems to dislike booting from the card reader. It will boot from it just fine (I'm running Ubuntu from it right now), but no matter how many times I update the BIOS it seems to forget about the card reader altogether, so I have to always boot using the boot options menu. About 1/4 of the time, the reader won't even show up, though a quick restart and return to boot options always resolves the issue. This is regardless of the fact that there is literally nothing else to boot from.
Lastly, the computer will not fully wake up from sleep. You can hear it start up, but the screen remains blank no matter how long I wait. This happens every time I allow to go into sleep mode (as opposed to only some of the time). It has never awoken from sleep.
Below, I hope, is any information you might need:
Per the Gateway support page for my laptop, the card reader is an RTS5117. It is not listed on Realtek's website under products (though they do list an RTS5116).
Running lsusb in the terminal, the device identifies as:
Bus 001 Device 004: ID 0bda:0158 Realtek Semiconductor Corp. USB 2.0 multicard reader
Disk utility displays the drive with the following info: "Generic Multicard Reader", Firmware Version: 1.0, Device: /dev/sda , Connection: USB at 480.0 Mb/s
The laptop is a Gateway T-1625. Here are the motherboard specifications, where it shows the card reader model. I would provide more links but I've hit the link limit.
The card I'm using is the 16GB SanDisk Ultra SDHC Class 10 Memory card. On the website it is item # SDSDU-016G. (I've hit the link limit or I would provide one.)
This is the Windows Vista driver recommended by Gateway, in case that can provide any information.
I'm aware that I grouped a few problems into one thread, but I thought that they may be related. If they are not I can update the post accordingly. My main problem is the read/write speed of the card reader. The booting is only an annoyance and I can disable sleep if needed.
Thanks for your help. If you need any additional information just ask and I will update my post.
Comment: You can benchmark MicroSDs, test for bad sectors and test if it is fake, all with [f3 tools](https://fight-flash-fraud.readthedocs.io/en/stable/).
Answer: I think this is about what I would expect. The class 10 does mention the number 30, but keep in mind that this is sales-speak: it means "Up to 30MB/s read speed".
If you look at the specs of what "class 10" means1 you get:

Class 10 is more than or equal to 10 MB/sec performance

It also mentions this little gem of information

Note that the unit of performance [MB/sec] indicates 1000x1000 [Byte/sec] while the unit of data size
  [MB] indicates 1024x1024 [Byte]. This is because the maximum SD  Bus speed is specified by the
  maximum SD clock frequency (25 [MB/sec] = 25000000 [Byte/sec] at 50 MHz) and data size is based
  on memory boundary (power of 2).

So we also have the 1000 vs 1024 "gap".
1: page 5 of this pdf
Comment: Shouldn't I still be seeing 10 MB/s then, not around 10 Mb/s ?
Comment: The average is harder, since there is this problem of fragmentation -> if you are not using continues blocks, this can effect your speed.

Card Reader Read Speed Is Slow