Food safety in an oven after cooking

Question: My wife was cooking a turkey leg/thigh quarter in the oven at 350.  She turned off the oven after cooking and mistakenly left it in there for two days(!).  If the leg/thigh was cooked to the right safe temperature to kill bacteria, and if 350 is hot enough to kill any bacteria in the oven, and if the oven was never opened after turning the gas off, would the turkey still be safe to eat?
Comment: Sorry I wasn't clear.  My wife cooked the meat until it was, say, 165F while the oven temp was 350F.  She then turned off the oven but left the turkey inside.  Assuming it was at 165 long enough to kill bacteria, would the meat be okay to consume?  I only mentioned the oven temp because I assume the heat created a somewhat sterile interior.
Answer: I highly doubt that it would be safe, although I'm not certain that I can rigorously prove that it's risky. I've never heard of any principles of food safety that would establish it as being safe.
There are several reasons why I think it would not be safe:
Uncertainty about the temperature of the oven and everything in it
You mentioned an oven temperature of 350, but I'd imagine that this figure is based on what the dial was turned to when the oven was preheated, not based on a measurement with an accurate oven thermometer. Built-in oven temperature displays often aren't particularly accurate, and oven temperatures fluctuate over time, so it's not guaranteed that the oven was 350 °F to start with, let alone that it was at or above that temperature for an extended period of time.
You know for sure that the turkey was not at that temperature when it was put in, and so it's safe to assume that the turkey started out with bacteria. Since the oven was not opened after the turkey was cooked, it seems that the temperature of the piece of turkey was never verified with a meat thermometer, which is the usual recommended way of checking to ensure that meat has been cooked to a temperature that will reduce bacteria to a safe level.
Together, these factors create a large amount of uncertainty about the exact temperature of the oven and everything in it when it was turned off.
Bacterial spores can be hardy
I'm having trouble finding exact figures about the temperatures where bacterial spores die, but I have read that they can survive at notably higher temperatures than bacteria themselves. This page says that certain spores can survive up to 240 °F: ("Methods of Sanitization and Sterilization", by Maribeth Raines (Brewing Techniques)). Unless you overcooked the piece of turkey, it almost certainly never reached an internal temperature of 240 °F.
If any bacterial spores survived through the cooking process, the piece of turkey wouldn't be safe at this point.
Ovens aren't necessarily bacteria-proof
Again, I don't have good data about this, but as far as I know ovens are not designed to be bacteria-proof, so I wouldn't rely on that being the case.
Even a small amount of bacteria can multiply to unsafe levels in a single day
Basically, if any bacteria got on the piece of turkey in any way--surviving the initial cooking process, coming from spores that survived the initial cooking process, or coming into the oven after it was turned off--they have had plenty of time to multiply to unsafe levels. "Somewhat sterile" is not sterile, and is definitely not safe to leave in the temperature danger zone for two days.
Comment: Thanks for your thoughtful reply.   You're right, the meat temp wasn't confirmed by a thermometer.  Given the risk, we'll discard the meat, but it would be interesting to see this scenario tested more scientifically.  Thanks again!
Answer: Absolutely not. Leaving it in the oven for 2 days is pretty much the same thing food-safety wise as leaving it on the counter for 2 days. That's more than enough time for various unpleasant bacteria and their toxic byproducts to start forming. I would be surprised if the turkey isn't already smelling bad.
Since the oven is not a sealed environment, it will not prevent bacteria from entering once it's cooled down, so that it was in the oven does not give you any extra benefit after it cooled down. Heating to 165 degrees will kill what was in the thigh before cooking, but it will not prevent new bacteria from entering after it cooled down. Do not eat that turkey.
Comment: It actually smelled fine - that's what raised the question in the first place.  That being said, I'm sure the smell isn't the most reliable indicator of food safety.  Thanks for your advice.

Food safety in an oven after cooking


What is the difference between Taino and Puerto Rican?

Question: I have heard a lot of Puerto Rican's call themselves Latino or Hispanic. However, after watching this video, I am a bit confused about what they say.  Can anyone confirm why different Puerto Rican people are posing different views about who they are?
Answer: "Latino" or "Hispanic" refers to an American with a cultural heritage from Spain as filtered through Latin America, and says nothing about their genetic ancestry.  "Taino" refers to someone with a genetic and cultural heritage from the Taino peoples of the Caribbean.
A resident of Puerto Rico could be either, or neither, or both.
Answer: Puerto Rico is a island with people who's ancestry comes from all over the world. Not every Puerto Rican is any one thing. It's just like saying American. Not every American is White or Black or Indian or mixed or Asian etc. Most but not every Puerto Rican has ancestors from Spain or Africa, or Taino American Indians. Some are a mix of all three some are not. Many are now mixing with Jewish Americans, Irish Americans etc. Tainos are those people from Puerto Rico, Cuba, Dominican Republic who trace their ancestries to the Taino Natives. All Tainos are mixed but claim one identity for political reasons the same way Africans Americans do in spite of any other mixture.
Answer: Pre European contact ie Christopher Columbus aka Cristobal Colon the chain islands from the Bahamas through the Greater Antilles and some in the Lesser Antilles (mostly ruled by the Caribe Tribes "cannibles"), where populated by the Tainos (ancestors of the Arawak Nation). When Christopher Columbus came to the Dominican Republic and Puerto Rico he and his people essentially, as spread by them to Spain, wiped out the native Tainos to extinction. Many believed this thru as many who got stories from their grandparents who got from their grandparents believed this not to be true. Hense the back and forth of what people say they are. Puerto Ricans are mainly genetically Native Taino, African American and Spaniard. DNA shows this. That also confirms that Native American DNA lives in them and not many Puerto Ricans know this. Theirs so much time passed that things have been forgotten and even though now we have the internet not many US or elsewhere born look into their heritage. As for the Latino/Hispanic debate not many know the difference between the 2 and not many realize that many spanish speaking countries fall under both. I do not know how to share pictures in here but essentially Hispanic is in areas where Spain is included but not Brazil and Latin includes Brazil but not Spain. Go to https://mixedlatinxs.tumblr.com/post/176728245334/vivalatinamerica-ive-seen-a-few-of-these/amp. She really explains it well.
Comment: If you're including the Francophone countries and territories of the Americas, wouldn't that make Quebec and Saint-Pierre/Miquelon also count as Latino?


Original Arabic text of Isaac Alfasi in last 3 responsum of Menahem Azariah da Fano

Question: In Shut Harama Mipano (see opening page of book), the final three responsum are from the Rif, and explain three laws in tractate Kesubos. He wrote them in Arabic, and the Rama got a reputable translation from Venice. (A footnote indicates that these were translated by someone else, and are printed in Rav Tam Yachya's Tumas Yesharim (218-220).) Is the original Arabic text still extant?
Comment: Huh for some reason I always thought that book was "tamos yesharim" like bilam, but that of course makes no sense. Mishlei 11:3 is much more reasonable.
Comment: One of the translators is called Rabbi Shlomo Ma'aravi. I wonder if he may be identified with Rabbi Suleiman Ochana, one of the students of the Ari, who was sometimes called Rabbi Suleiman Ma'aravi?
Answer: Yes, it is. At least one manuscript has preserved it: MS Huntington 503, pp. 94r-117v. See Boaz Cohen's essay "Three Arabic Halakic Discussions of Alfasi" for a discussion of the responsa, the manuscript, the various translations, a reprint of the Judeo-Arabic of the manuscript and Cohen's own translation into Hebrew.
Comment: Oh great I'll look into that thanks


What are the purpose of voltage doublers in flash memories?

Question: I'm wondering what is the need for charge pumps in flash memories.
Comment: This question requires a reference.
Comment: Flash memories require a voltage higher than the power supply voltage to produce the tunneling needed to write data to the memory cells. Some devices required an external high voltage supply for writing.
Answer: Flash memory requires multiple high voltages for programming and erasing, on the order of 5-15V. In a low-power digital system that's probably running on 3.3V, it's convenient to have the charge pump and regulators built into the memory instead of making the external system provide 3-5 different high voltages. The high voltage supplies don't need to provide much current, and they're integrated into an IC, so a charge pump is the most reasonable converter to use.
If you want to know more about the processes that require the high voltages, look up hot-carrier injection and Fowler-Nordheim tunneling.
Answer: In floating gate based memories
Programming in floating gate memories can occur in two  ways:

hot electron injection (if the cells are arranged with the NOR topology)
Fowler-Nordheim tunneling of electrons toward the floating gate (if the  cells are arranged with the NAND topology).

Erase, instead, occurs only by Fowler-Nordheim tunneling (of electrons of the floating gate to the substrate).
Hot carriers injection:
This first process requires "medium" voltages at the drain and gate, and relatively high currents (several hundreds \$\mu A\$ per cell). These voltages are still higher than the typical 1.8-3.3 \$V_{DD}\$ supply.
Electrons are accelerated by the drain-to-source voltage, to overcome the silicon to silicon dioxide barrier height (about 3.1 eV). The positive gate to channel voltage attracts the electrons toward the floating gate.
Fowler-Nordheim tunneling:
This second process requires a very high positive or negative (for program or erase, respectively) gate-to-substrate voltage (typically 15 V, but this is technology dependent), but the current is very small. Instead of injecting "high energy" (hot) electrons, they just cross the energy barrier (represented by the silicon dioxide). This quantum mechanical effect has a very small probability at low fields, that's why the retention time is typically 10 or more years. It's enhanced at very high fields, and it allows programming the cells in few hundreds of microseconds (up to some ms).
In discrete-storage memories
Some modern FLASH memories do not use floating gate anymore, but a trap-enriched dielectric layer or a layer of discrete nanocrystals.
Electrons are no more stored in a conductive monolithic medium, but in several electrically insulated dots (traps or nanocrystals).
This has the advantage that a single critical defect will discharge only those storage media close to the defect, preserving the stored information (which depends on the threshold voltage, which, in turn, depends on the "average" stored charge). A single critical defect, instead, could discharge the entire floating gate.
The discrete storage approach, thus, allows to reduce the oxide thickness (required for the scaling of the memory cell). The trap-enriched dielectric also brings additional advantages, such as:

the ability of creating 3D structures (Samsung use this on NAND FLASH).
Being dielectric, no patterning is necessary: unlike the floating gate it can be deposited in the whole area. It simply won't have any effect outside the MOSFET active region.

Still program/erase occur in the same way of floating gate cells.


Is locking down a developers machine more effort than its worth?

Question: Having worked as a developer and in IT admin/support for a development team, I've come across many different types of environment from the completely locked down to the completely non. In my limited support experience I think its been less effort to support with a less locked down machine and I certainly felt this was easier, but of course this could be bias. I'd like to know what the view is from an IT support perspective, is it genuinely harder to support developers who have non locked down machines?
Comment: Given the large programmer segment of the Server Fault population from Stack Overflow, I'm betting this suffers from selection bias. What developer is truly going to say, 'Lock me down, please!'?
Answer: Most developers are technically savy and know what they are doing. They often need to install many specialist apps, having to get permission to do this and getting IT to come down and add it can be very frustrating, particularly in larger companies, for both sides.
I've found what works best is allowing them to do what they want with regards to installing software on their machines, but if they get into problems with something we don't support, then they are on their own. Most developers are happy with this, and prefer being able to look after their own machine anyway.
Locking someone down in accounting to only use IE and open word is fine, but if your a developer who needs to install 4 different types of browser and need to quickly install an app to solve a problem, it can be annoying.
My experience is that companies who have alot of technical knowledge, so development shops, IT suppliers etc, who trust their employees and let them decide what they want installed are much happier and bother IT less
Comment: If I could vote for this answer multiple times, I would.  I'm a developer and agree 110%.  +1
Comment: I agree, but companies that are very strict in terms of Information Security, will never allow applications to be installed that aren't "company standards"
Comment: While saying that 'if you uninstall it it's unsupported' is all well and good, practically it turns into a developer complaining to his boss that software xyz doesn't work and Systems/helpdesk won't help me. Boss gets shot down by his peer, and the next thing you know a Manager/Director/VP is breathing down someones neck not caring that it's not supported just fix it now. Now Systems/Helpdesk has to support random program xyz for developer a and random program abc for developer b. If you really need it put it through the channels.
Comment: @ cwrea: What could be the 10% excess?
Comment: Having just had my Admin rights taken away, I am finding myself emailing Support every half hour to get this, or that, or change this setting, or that setting. A common theme to check for deployment dates was to double click the time in the Notification Area. Something that I now "don't have the proper privilege level" for... It's driving me nuts!
Comment: @Pat.  Start CC-ing your emails to whomever signed off the lockdown policy.  Better yet, get everyone so affected to do it.
Comment: @Zypher, if xyz is needed by lots of  your developers, it should be part of your tested base image.   Hosever more often then not, I have found that it is the virus checker settings that stops xyz working - this is not that difference between what some virus do and what a lot of debuger tools do by getting "inside the OS"
Answer: See this Stackoverflow posting for some lively debate about the merits of locking down developer machines.  (Disclaimer: I wrote the accepted answer).
From a sysadmin perspective, access to production systems is sensitive and you should restrict such access to people who need it to do their job (this may include developers who have tier-3 support responsibilities for the application).  Local admin rights over a development PC or development server does not significantly compromise security of your production systems.
Make an image that you can use to rebuild the machines with if necessary.  Manually installing SQL Server dev edition, Visual Studio, Cygwin and MikTex plus a bunch of other apps is quite time consuming.  An image with these large apps installed will be reasonably valuable if you have to re-image the machines much.
From a development perspective I find that I can fix most problems with the machine and typically only need help from network support staff on fairly rare occasions.  Overly restrictive environments tend to generate spurious dev support traffic to do work that the developers are perfectly capable of doing themselves.
Another place where developers tend to need a lot of admin work done is on database servers hosting development environments.  Most developers are capable of learning routine DBA tasks easily, and should get a working knowledge of this anyway (IMHO on principle).  Overly restrictive admin access policies on development servers can get underfoot in many ways.
A scratch development network is quite a good idea if it can be arranged - you can firewall this from your production servers if necessary.

When developers can easily replicate the structure of a production environment it promotes a culture of deployment testing where an integration test can be synthesised without jumping through hoops.  This will tend to improve the quality of production release and deployment.
Being able to emulate a production environment also raises awareness of production deployment and support issues.  It encourages development staff to think of how an application might be supported in production, which will probably encourage architectures built with this in mind.
If this network has a domain controller you can establish a trust relationship so it trusts your main domain controller and its accounts.  This trust relationship does not have to be reciprocal, so it does not compromise security of your production network infrastructure.  This can let you have an untrusted development network but still allow developers access to domain-authenticated resources such as Exchange accounts or file servers.
You want developers to have a reasonable amount of scope for experimentation without having to jump through hoops.  Placing political obstacles in the path of this work has a tendency to encourage sticking plaster solutions that are politically expedient but generate long-term (and often unrecognized) technical debt.  As a sysadmin or support analyst, guess who gets to pick up the pieces ...

I will add that this is much less of an issue on a unix or linux environment; users can pretty heavily customise their own environment from their .profile.  You can compile and install things under your own /home/bloggsj/bin directory to your heart's delight.  'Local admin rights' is mostly a windows problem, although there are still a few things that need root access under Unix.
Comment: Generally, reasonably managed policy won't generate this type of political obstacle, or at least won't make it insurmountable.  However, IT policy tends to be developed incident-by-incident and is not always 'reasonable'
Comment: I wanted to comment on your last bullet point. You mention "political obstacles" - please keep in mind that the original intent of security practices is anything *but* political. It may later morph into something else because all orgs eventually acquire people who follow the letter but not the intent of the rule - or worse, pervert once-noble policies into feifdoms. But good security and good politics CAN go hand in hand. It takes good-faith efforts from everyone concerned, though.
Answer: The biggest problem with not locking down a developers machine is that any software they develop will require full administrator privileges to run. The developers access should be the same as the environment that they will need to run in. If they need to be "self supportable" or "self installable" then give them another admin account e.g. Bruce.admin which they need to use when doing admin stuff, but not used day to day.
Just like no decent UNIX admin worth their salt will ever use a root account for their day-to-day non admin work.
Comment: I take offense to "will require".  You're making it sound like a foregone conclusion that developers will naturally do the wrong thing.

While I agree that developing software that only runs with unnecessarily high privileges is less than desirable, I don't think IT should try to enforce particular development practices with harsh measures like machine lock-down.

If IT is a stakeholder in the process to define application requirements -- and it ought to be for in-house apps -- then make it a requirement applications be developed and tested to run with lower privileges.
Comment: On Windows it's better to do this the other way around.  Make test accounts that behave with the permissions of a standard user.  Applications can be tested by logging in to the machine (or a VM) as the test user account.
Comment: I have formed the "will require" opinion based on my 15 years of technical testing experience. Sure there are exceptions, but the majority of applications on windows aren't designed for least privledge, and that's not because  developers will naturally do the wrong thing, it's because it's really hard to do properley.
Comment: having used like several thousand different apps, only 5% of them needed admin rights for no real reason.
Comment: But I do think the idea of a separate account has merit.  But don't force it on me, that's all.
Answer: The most sensible option I've ever seen (have been on both sides -and still am-) is simply unlocked stuff and unsupported as well. Give them liberty, and if they screw up, all they can get is a restage with a standard image... . In that situation, I find it a good plan to put them on some form of "untrusted" network.
As far as the (non)sense of locking developer desktops: I'm pretty sure all the locking only hinders productivity anyway, moreover, any reasonably skilled developer will easily find the holes... .
Comment: I get about 20 mins support then the offer of a new image. Works fine for us.
Answer: The answer is really: there is no simple yes or no answer. But security is at least as important for your dev users as for anyone else.
On the one hand, yes devs tend to be technically more savvy. On the other hand, theirs is often a stressful job and their dev milestones are likely to take priority over the extra care needed to maintain one's own system as a secure environment.This isn't a criticism of developers; it's a forthright consideration of their daily duties.
If you are going to give devs full, unfettered access to their systems, then you should really consider the following additional measures:

Provide another system, locked down as much as normal user systems are locked down, for normal non-dev use.

The put their full-access dev machines into a special VLAN, with access only to dev resources.

Ask what if anything would prevent an infected system from endangering the codebase. Could a backdoor'd machine check in malignant code, or wipe out the codebase, in the hands of a hostile hacker? Take appropriate steps to mitigate this risk.
Similarly, ask what if anything protects the business data held in systems the devs have access to.
Regularly do software inventory and security audit of dev systems.

Get an idea what they're running and use this information to build your dev system redeployment images.
Sooner or later you'll have a dev who gets careless and installs things that are clearly   dangerous or completely non-work-related. By sending warnings quickly when this happens, you'll be letting the dev community know that yes, someone is watching, and they do have a responsibility to stay within reasonable standards.

Are you doing regular malware scans? In some cases, devs will rightly complain of the performance tax levied by on-access AV systems (those AV systems which are always on, always scanning on every file access). It may be preferable to move to a nightly scan strategy, and /or create file/folder exclusions to your on-access scanning. Make sure that excluded files are scanned in some other way, though.

Can your admin-enabled devs turn off all AV scanning? How would you detect and remediate this?

If you are going to lockdown dev systems, then you should consider the following:

Do you have the support capacity to answer their support requests rapidly? Consider the average pay rate of your devs, and ask whether or not they deserve a faster response-time SLA. It probably doesn't make sense to keep your $120k dev (who's key to a multimillion dollar project) waiting around while you're handling support reqs from $60k/year employees.
Do you have clear and unambiguous policy on what support requests you will and will not service for your devs? If they start getting the feeling that support is arbitrary, you will eventually feel the pain.

Either way, you do need to admit that developers are a special case and they do need extra support of some kind. If you're not budgeting for this, problems are likely festering right now ... or will be in the future.
As a side note, I've seen very similar arguments take place with sysadmins. On at least two different jobs I've seen sysadmins argue quite acrimoniously when it was suggested that they should themselves have locked down systems, or at least use two logins (one with root/admin privs; one without). Many sysadmins felt that they should not be locked down in any way and argued strenuously against such measures. Sooner or later some lockdown-averse admin would have a security incident and the example would have an educational effect on all of us.
I used to be one of those sysadmins who ran with admin privs all the time. When I made the change to dual accounts and only elevating at need, I admit that it was quite frustrating during the first few months. But the silver lining in the cloud was that I learned a lot more about the security of the systems I was administering, when my normal account lived under the same restrictions I was placing on the users. It made me a better admin! I suspect that the same is true of developers. And fortunately in the Windows world, we now have UAC, which makes it easier to run as a limited user and elevate only when needed.
Personally I do not think that anyone should be above some form of security practices. Everyone (sysadmins, devs, upper management included) should be subject to enough security procedures and oversight to keep them on their toes. To say otherwise is to say that company systems and data are not worth the effort to protect.
Let's put it another way. If Mark Russinovich can be taken in by a rootkit, anybody can!
Answer: Where you have a few developers, the approach to give them development servers is a possibility, but if you have an entire floor of developers, then I am very much against giving them any admin rights whatsoever.
The problem is that you'll end up with an entire floor of developers, each doing what they do, usually most aren't even security-conscious and just want their app to work.  Then you'll be hit with a request of - "We've completed the development phase, please replicate our dev environment onto test, pre-prod, and prod".
They also get into the habit of installing random junk (badly packaged software), and then delegate you to install it on the dozen or so servers in the other tiers.
I make the policy quite simple:

Developers do NOT get root access - ever - for the development environment.
The Developers DO get root access to pre-dev VMware servers, but NO support.
Developers must either provide RPM packages that belong to the OS distribution onto which their app will be running, OR, RPM packages that comply with the FHS and LSB.
None of their applications can under any circumstances run as root
The will not have access to su or sudo to the application user - which will be locked down to having NO shell access. (This is for accounting/audit).
Any commands they need to have run with privileged access will have to be explicitly requested and approved - at which time it will be added to the sudoers file.

None of these commands/scripts will be writable by them.
No script (directly or indirectly) reference by these commands will be writable by them.

The above will above all, get them thinking about what will and will not be allowed when it comes time to move the project onto the test and above servers.
Answer: Locking down developers' machines takes more effort than it worth. It seriously harms productivity as you can't do pretty much anything without administrative rights. Of course, eventually the system will become messed up, but surely your IT dep is not providing support for all those 3rd party tools that are used in development?
So, as Vincent De Baere suggested, the best course of action would be just restoring the system from an image, of course, the environment must be restored after that, but that should not be IT's problem. If it happens N times you can put a said person on a kind of "black list" and, yes, drop his administrative rights for a while.
Either way, the environment should be set up in a way, that makes sure, that an infected (or otherwise messed up) machine does not affect any other machines at all or, say, doesn't send spam or something (ok, now I'm just saying obvious things, sorry).
Answer: Well, it may in part depend upon what environment you are running in (e.g. Linux versus Windows); however, assuming a Windows environment, it is usually more trouble than it is worth simply because some of the development software out there requires you to have elevated permissions to work. For example, Visual Studio is known to require Administrator permissions, as such, I don't see the benefit in making someone jump through hoops for a required part of their job.
However, if the company requires that things be locked down your best bet is likely to give all developers virtual machines on their systems that they can go crazy in. While some might not like this that much, it will likely give you the best of both worlds (e.g. restrictive normal desktop and a fully customizable environment).
Update - On the Windows side of things there is a bit more worth noting, apparently the Visual Studio requiring Administrator rights is a bit dated and there are now explicit ways to set the permissions needed (PDF file). However, I don't think this changes my option that much in that most developers I know, myself included, tend to use additional tools beyond just Visual Studio and knowing what all of them need in terms of permissions can be hard to predict.
Comment: It is true that MS recommends VS2005 be run as Administrator. But Michael Howard, one of the premier software security guys at MS, says that 99% of the time it runs just fine as nonadmin: http://blogs.msdn.com/michael_howard/archive/2007/01/04/my-take-on-visual-studio-2005-sp1-and-windows-vista.aspx   ... So, if security matters to you, you might try running it nonadmin. A pleasant surprise likely awaits you!
Answer: I agree with the notion of using virtual machines on top of a restricted desktop-
Unless otherwise necessitated, I feel the best setup is a restricted linux desktop with a free-for-all vm on top. Linux lessens overhead for me, a vm can not only be whatever-the-hell OS they want, but also be restored to snapshots or backups, and generally the world looks a bit brighter when there aren't a whole slew of different setups needing support.
Comment: +1.. I don't understand why VMs are so under utilized. Not only for the purpose that you mentioned, but software distribution would be so much easier using VMs.
Answer: I (as a dev myself) prefer to have full control of my machinery, meaning; running as admin when needed.
You could provide special training for devs before they are allowed full access to their computers. Set some rules for them, and maybe you could do an audit every once-in-a-while to see that they follow best practices.
Mostly they'll need to know more about IT infrastructure from a IT admin/IT support view, security-related stuff, as well as why not to develop with elevated rights. (and how to make sure of that you don't...)
"Dont blindly trust us when we tell you that we know all we need to know about computers" ;-)
You'll still have to support them with networking, domain- and account-stuff, software-installs of non-dev tools etc.
Comment: One more thing: Make sure that we have proper AV installed... Forcibly if needed... ;-)
Answer: My experience is with a user population that was about evenly split between people who only needed a locked down machine and other (developers, scientists) who needed admin access.  They high-end people used a lot of different software, some in-house, some not, but lots of it needed admin to run, and their jobs required them to use a lot of packages so it made the most sense to let people do it themselves.
We ended up with the following processes:

Our standard image had the basic tools: Windows, Office, Anti-virus, Acrobat, a few utilities.
We provided lots of network disk space: enough so that everything could be stored on the network.  About the only exception was in-process video files that had to stay local.
Staff (in consultation with their supervisors) had two choices: either IT maintained their PC, doing all installs and configuration OR they could have admin access to do it themselves.  In either case, all data was backed up on the network.
If IT maintained the system and it died, we'd put it back to the state it was in, including adding extra software they needed that we'd installed.
If they had admin access and the system died, we'd have a look and try to fix it, but our commitment was to get them back to the standard image and they'd have to take it from there.  If they had any local data, we'd try to get that off first, but our SLA was just to get them a working, standard PC as soon as possible.
Anyone w/ admin access was required to know how to make sure Windows updates were working, to keep the Anti-virus and anti-malware updated.

We would have liked to put all the people with admin access on an "untrusted" vlan, but we never got to that.


My Hyundai won't start

Question: I have a 2015 Hyundai Santa Fe sport and I was driving on the highway and suddenly it just died out of nowhere, so I put it neutral till I could stop on the side of the freeway. And I tried and tried to start it but nothing. I still have all power to the vehicle but it won't turn over or anything of the sort. I had power to the vehicle even when it just suddenly died. I got the car towed home and put some jumper cables on it just in case it had low voltage and still nothing it won't even turn over but again still have power to it. When I want on the side of the road I tried to start it and I seen some smoke come from the engine bay and I couldn't find where it was coming from. Smelled kinda like coolant but I checked that and it was all good.
Comment: Please edit the post to add information about model, year, trim level/engine in question. That would help to be more precise with the answer, and people would be able to reference schematics.
Comment: Loose cable/ground from the battery or elsewhere?
Comment: I had an alternator burn out the electronics in it that had a smoke/smell and of course the car would not start but that drained the battery in couple minutes (alternator was "uncharging" the battery rather than charging it.
Answer: Pending the information about the specifics about the car in question, the likely culprits to look at are starting and ignition circuits. Likely, combination of the two.
Starter circuit is separated into power circuit (battery to starter solenoid (B+ terminal in Hyundai parlance), solenoid engages pinion gear and sends power to the starter motor (M terminal)), and signal/control circuit (S terminal on the starter). Signal circuit on our '08 Sonata takes 12V from the battery through ignition switch, transmission switch (making sure it's in "park" or "neutral"), brake switch (making sure brakes are depressed), burglar alarm switch, to starter relay to S terminal on the solenoid.
If one is experienced, or adventurous, enough, one could put car in neutral with parking brake on, pull starter relay, and use jumper wire to bridge high current side of the relay (terminals 30 (common) and 87 (normally open)) to see if starter turns over whilst bypassing the upstream of the signal circuit.
Diagnosing starter circuit is crucial, but since the car also cut out with engine running, it points to ignition circuit which also starts at ignition switch but goes (via things like crankshaft position sensor) to ignition pack that sends high current to spark plugs. And my hunch is there is a common component (switch, sensor, relay, or fuse) that prevents both starter activation and ignition firing.

My Hyundai won’t start


Star Trek TOS-TNG crossover novel

Question: I have been searching for the title of a TOS-TNG crossover novel for some time. I believe it was published in the early 1990s, as I do not remember Voyager or DS9 being on TV. It was also before ST:Generations was made. I know it is not the novel Star Trek: Federation, as the two crews actually work together and meet one another. Also, I seem to remember that the front cover said something to the effect of, "at last, the generations meet!"
Answer: How about Star Trek: Crossover?
Comment: Yep, that's the one I think @matt is talking about.  And it's on my bookshelf right now. :)
Comment: Thanks for the reply. The novel I'm thinking of has the TOS-era timeline, including TOS-era Kirk. I thought it might be "Crossover" but that's in the TNG-era, without Kirk. I remember there being a timewarp-like plot involved (much like TNG's "Yesterday's Enterprise"). I also remember there being a scene when the two crews meet one another. Worf says something to the effect of, "Captain, it's the Enterprise NCC-1701, and she's hailing us." Man, trying to find this novel has been an issue for years! :)
Comment: @Matt there's a reasonably complete list of offical TOS era books at http://memory-beta.wikia.com/wiki/Star_Trek:_The_Original_Series#Prose
Comment: Did this novel involve Tribbles?
Comment: I'm not sure if tribbles are in it or not. I've never read the book. I do remember being in a shop one day and reading the description. This was about 20 years ago when TNG was in the height of its popularity. I don't believe ST: Generations was out yet, because I remember thinking to myself while reading the description, "Wow! I hope they make a movie someday where the crews meet!"

I didn't have enough money at the time, so I couldn't buy it. But I do remember reading a couple key scenes. Too bad I don't remember the author or title.
Answer: "At last, the generations meet" appears on the cover of the book, Unification

This is a novelization of the two-part TNG episode with the same name.  I think that the only TOS character who appears, though, is Spock.
It was released in 1991.
Comment: I just realized how old the question was....it was recently active :-)   I hope it is still of some use....
Answer: Federation.
Published in 1994. I bought it at a Waldenbooks in a mall near Groton, CT when I was 18. I was right out of boot camp
https://memory-alpha.fandom.com/wiki/Federation_(novel)
Comment: If you're going to contradict OP explicitly stating that this isn't the right answer, you need to explain (in your answer, not in comments) **why you think you're right and they're wrong**
Comment: "*I know it is not the novel Star Trek: Federation*"
Comment: Other than the plot involves a TOS and TNG meet/crossover having to work together with there being a timewarp like plot and in the novel there is the exact quote mentioned in the description being looked for, there's no way it could be Federation. Except that it is.
Comment: "I was right out of boot camp" — Boothby's advice still ringing in your ears.
Comment: while not the answer - "Federation" is a great book - the book that 'Generations' should have been (but I don't hate Generations)

Star Trek TOS-TNG crossover novel


How much power can reasonably be collected from ambient background radiation?

Question: It seems that with a coil or simple antenna it should be possible to collect energy from the background 60Hz radiation in any modern home. How much could reasonably collected at low voltages (3.3-5V)? Could it be enough to maintain a sleeping microcontroller (e.g. 1uA - 100uA @ 3.3V?)
Answer: The answer is "very little".  I have also seen 10s of volts on a 1 MΩ scope probe when I touched it.  However, the scope can only see that voltage because it has a explicit ground reference.  The basic problem is that it will be very hard to get a large enough differential power pickup.
All voltages are effectively differential.  It worked for the scope only because it was implicitly using the ground plug as the other connection it was comparing the probe tip voltage to.  Getting a meaningful differential voltage from a small box is a much harder problem.  To get any differential voltage at all by capacitive coupling, you need a E field gradient.  That absolute value of the E field does not matter.
My knee jerk reaction therefore is that no, you won't be able to harvest enough power in a small box from stray power line fields in your house to run a microcontroller.
Anecdote:  Many years ago when I was in grade school, I had a crystal radio.  That is a type of radio that runs completely from the received RF power.  We lived about 20 miles from a 50 kW AM radio station, and I had about a 50 foot wire antenna strung accross the back yard.  With that antenna I could pick up that radio station at quite reasonable volume with headphones.  I could also have the radio drive a impedance matching transformer connected to a small speaker.  You could hear the radio station reasonably well if you put your ear up to the speaker.  It was also great fun to annoy my brother with at night.  I could leave it on, and you could sortof hear someone talking accross the room, but it wasn't loud enough to tell what they were saying and the sound was difficult to localize.  Considering how relatively loud the sound was into the speaker or the headphones, there just might be enough power there to run a micro.  The trick will be to convert it to a useful DC voltage without too much loss.  By the way, my antenna was horizontal and the AM transmitter tower was vertical, but the long wire antenna still picked it up quite well.
Answer: Power collectable depends on distance to wiring, current split in go and return wiring (if it is all well balanced you get little leakage), size of collector coil, Q of collector ... .
I'd guesstimate that you could get a few microWatts in many cases. 1 uA needs about 5 uW so you may manage that level in many cases. I'd expect that 100 uW would be a lot harder to achieve in many cases.
It's not unusual for a scope probe with 1M input Z to show Volts of 50 Hz when connected to a person. That's liable to be capacitive coupling. If a person lies on or under an electric blanket you can get a small shock or skin "buzz" sensation if you touch eg finger of one to finger of other lightly. Apply any pressure and there is no shock sensation. That's also capacitive coupling.


President / Chairman in politics

Question: What would be the difference between 'President' as referred to D. Trump and 'Chairman' as referred to Kim J. II ? Is there any difference as far as politics is concerned ? Or is it just in context they want to use synonyms ?
Answer: The title "Chairman" refers to Jong-un's position as the chairman of the Workers' Party of Korea. In the US, the chair of the Republican National Commitee, Ronna Romney McDaniel, might be considered the current equivalent.
Kim Jong-un is also the Supreme Leader of the DPRK, which is more similar to the role of the President in the US.
Sources:

https://en.wikipedia.org/wiki/List_of_leaders_of_North_Korea
https://en.wikipedia.org/wiki/Workers%27_Party_of_Korea
https://en.wikipedia.org/wiki/Republican_National_Committee
Answer: To be more general, the formal title of a national leader and the power that they hold may seem to have only an arbitrary relationship; a title may derive from historical roots dating back to a different political structure, for example.
A few examples:

In the US the Mayor of a town or city may have a lot of power, or may only be carrying out decisions made by a City Manager (which is a civil servant without political power in other places.)
In countries such as the US the President has a lot of power; in Israel the Prime Minister has the political power and the President is a symbolic head of state much like the King or Queen in many Constitutional Monarchies.
in autocratic countries the Chair of the party in power may be the ultimate source of power, but in the US the Chairs of the major political parties are generally relatively unimportant except for political fundraising efforts. (I am wildly simplifying matters here, but the point is that the same title is used for two very different rules.)
The word "Secretary" is used for many different political purposes.

President / Chairman in politics


Kilowatt Hour Definition

Question: This is a very simple question but something that I'm not able to wrap my head around. This Energy report states generated electricity. But what does "generated  killowatthours" mean? I know that can't mean that the US produced that much electricity every hour...but what exactly does it mean?
Comment: As there are about 8000 hours in a year, that means an average power generated of half a billion kilowatts, or 500GW. That suggests several hundred large (1-2GW) power stations - plausible.
Comment: If you produce one kilowatt for an hour, that's a "killowatt-hour". It's about 3.6 million joules, says Google.
Comment: "In 2011, the United States generated about 4,106 billion kilowatthours of electricity. "  in ONE year.
Comment: @The Photon With the knowledge that a joule is a watt-second (`Ws`) you wouldn't need to ask Google to know that one kilowatt-hour is exactly 3600000 joule.
Comment: @starblue, totally right. Brain freeze on my part.
Answer: You are confusing kilowatt hours with kilowatts per hour (which is a fairly useless measure of anything).
A kilowatt is a measure of the rate at which energy is delivered (also known as power). One kilowatt means that 1000 joules of energy is being delivered every second.
A kilowatt hour is a measure of total energy delivered.
kilowatt      = energy/time

kilowatt hour = kilowatt x time
              = (energy/time) x time
              = energy

So if your water heater draws 6 kilowatts when it is on, and is on for 30 minutes, then it has consumed 3 kilowatt hours.
According to the report:

In 2011, the United States generated about 4,106 billion kilowatthours of electricity.  About 68% of the electricity generated was from fossil fuel (coal, natural gas, and petroleum), with 42% attributed from coal.

kilowatt hours = 4,106,000,000,000 kWh

hours          = 356.25 days * 24 hours/day
               = 8766 hours

kilowatts      = (kilowatt hours) / hours
               = 4,106,000,000,000 kWh / 8766 hours
               = 468,400,639 kW

So we can see that during 2011, if you were to measure the power being generated in the USA, it would be about half a Terawatt.
Comment: The ONE valid use I have seen for kilowatts per hour is for a factory making e.g. solar cells : if it makes one panel per hour, and it can generate 1kw, their output is 1kw/hour!

Kilowatt Hour Definition


potential SAN misconfiguration?

Question: I am a developer and know very little about Storage systems. At work, I noticed slow large query performance on one of the SQL Servers. I was told the database is on a fiber channel SAN MSA1500 (HP?) with 14 COMPAQ BF3008B26C drives. I did a quick HD tune benchmark when the server had practically no load. Average read was about 60MB/s. I don't know much about SANs but that read speed looks really low to me. The local HD read benchmark is higher. Before I go to my IT guys with what I think is a huge potential misconfigurtion, I just wanted to get opinion from you guys.
Comment: even the slowest FC variant should be capable of 200MB/s theoretical throughput, but that's not the only factor here.  any idea if any, and how many, other servers access that SAN unit?
Comment: Only one. the SQL Sever. This SAN was built to host a huge ~600GB Sql database.
Answer: MSA1500s aren't that fast by SAN standards, but misconfigured SANs often underperform on loads such as data warehouses.  It is quite likely to be a mis-configured SAN (perhaps the stripe size on the array is too small).  It is also possible that the SAN is inherently slow - not all SANs are created equal.
For a volume-heavy (rather than seek heavy) load like a data warehouse you will probably get much better performance from direct attach disk arrays.  On a random access workload like a transactional application the limitations of the controller tend to get masked by the mechanical disk seek activity.  Performance issues are much more likely to show themselves on a streaming workload like a table scan over a large fact table.
Poor disk layout such as placing log volumes on the same disk sets as busy random access workloads may also disproportionately affect disk performance on a SAN.
To get an idea of whether something is diskbound take a look at the stats for Page IO Latch waits.  If these are disproportionately high then the SAN is probably the bottleneck.
Comment: This is what I am getting:

PAGEIOLATCH_SH 1321062 9446093 6453 19937
Answer: I have an MSA1500CS and it consistently underperforms for me, at about the rates you're experiencing. The disks in mine are SATA drives. When I had them in parity raid configs (RAID5 or 6) the throughput was around 60MB/s. The controllers in there are really under powered. I've since gone to RAID10 and throughput has increased by quite a bit, largely because I'm not consuming nearly as much controller CPU resources for the parity-calcs.
Also, that device has a nasty, nasty habit of disabling the write-cache when doing certain array functions. Things like adding a drive to a disk-array, changing the stripe-size on a LUN, or recovering from a failed disk. When it does that, any parity RAID LUNs on there become very write sensitive. Throw too much write I/O, and it starts drastically slowing how fast it commits writes to the disks. Faster drives can help, but is a controller CPU resource problem for the most part.
That said, you have a SCSI drive in there not SATA. That should help performance by a good amount, though again parity RAID may not improve much. What would improve performance is using an Active/Active firmware on it, and utilizing MPIO round-robbin to spread the I/O load between both controllers. Last I checked, this could only be done in homogeneous host-OS environments (i.e. all Windows, or all Linux).
This is a device designed such that latency-sensitive workloads ("online" workloads in HP parlance) are intended to be run in a mirror set, and archive workloads ("nearline" workloads) for the parity RAIDs. Attempting to use a parity RAID in an online role is doable so long as your application is accepting of potentially very severe latency. Mine weren't, and this caused major problems.
The MSA2000 line is reportedly a lot better about this.
Answer: The common offenders:

Windows disk partitions are not aligned with SAN.  This is due to versions of Windows Server before 2008 starting partitions at the 64th sector.
NTFS allocation unit size should be 64k (best practice).
Sub-optimal SAN stripe size

You can check disk alignment with the command:
wmic partition get blocksize, startingoffset, name, index
If starting offset is 32256, partition is misaligned.
More information:
Disk Partition Alignment Best Practices for SQL Server
http://msdn.microsoft.com/en-us/library/dd758814.aspx
Answer: Did your benchmark tool utilize the system's queue, or ran only one SCSI request a time?
Think of transporting coal from a mine that is 50 meters from your house. You can use one truck. With SAN the mine is far away, in another city. It may be producing a lot more coal (in your case the mine is about 14 times as big), but first of all you need to put a lot of trucks into action (a queue).
Your database does normally put a lot of trucks into action, so use a corresponding benchmark tool that does so as well.
Another thing, more important: sequential vs random operation. Your database for sure needs random I/O (except the time of full backup), so I can safely guess that it will never come even near 60 MB/s performance. Because with random I/O the miners work really really slowly, so trucks and distance do not matter that much. Try to benchmark such type of workload. Compare with your local drive, and you might be surprised.
Another answer that touches this subject What is typical SAN performance?.
Comment: I don't know if HD tune uses system queue. I would think it will just do a low level api calls to read in certain size. that said, it certainly sounds like I need to do more Database like load test, maybe SQLIO.
Comment: The question is whether HD tune does one read() a time (one truck), or tries to execute next read() before the previous finished.
Answer: Here is a link that discusses a lot of different issues on SQL server.  Go to page 19 (Appendix D) for instructions on how your IT guys should set up the SAN.  It includes an article by Mr. Denny that was very helpful to me.  We re-configured block sizes(stripe sizes) and number of drives per LUN on our SAN after reading and noticed about a 100-120% improvement in our environment.
Hope it helps you in some way...

potential SAN misconfiguration?


What is the minimum of shader I need to use to run basic calculation on GPU?

Question: I read, that the Hull Shader, Domain Shader, Geometry Shader and Pixel Shader can be used optional. So, is the Vertex Shader optional too? If no: What does a basic Vertex Shader look like? Just like a simple pass through? Is the Vertex Shader necessary to tell what kind of datastructure (Van Stripes or Meshes) are used? What can I do, with just the vertex shader?
Are the fixed functions working without any help of programming a programmable stage?
Answer: If you use compute shaders, or a GPU compute API like CUDA or OpenCL, then you don't need any of the graphics pipeline shaders.  Depending on your application, GPU compute may be a better fit for you, e.g. if what you're doing has nothing to do with rasterizing triangles.  Compute allows you to simply launch a large block of GPU "threads" running in parallel, and what they do is up to your program.
As for the graphics pipeline, you can't do much with just a vertex shader.  You can rasterize triangles to the depth buffer, and that's about it.  If you want to do some computation at each pixel of an image, a common approach is to put the computation in a pixel shader, and do a "full-screen pass" by drawing a single triangle that covers the entire image.  This requires a very simple vertex shader, but the real work is done by the pixel shader.
Comment: @concept3d Yeah, I agree the question is not very clear as it stands.
Comment: I agree with what you said, but to be honest I am still not sure what he is trying to ask, exactly ?
Answer: Vertex shaders are iirc not optional.
They tend to be used to transform vertices from world to view space and then project them onto a 2d plane (screenspace).
Vertex shaders doesn't know what kind of data structure it is, merely that you're taking in a vertex with some input data.
The vertex shader outputs the projected position and any optional data you want to pass along.
Answer: See Shader Stages on MSDN:

The vertex shader stage must always be active for the pipeline to execute. If no vertex modification or transformation is required, a pass-through vertex shader must be created and set to the pipeline.

From this you can infer that a vertex shader is absolutely required to write SV_Position but that's all, so the most basic possible vertex shader will just write an arbitrary value to SV_Position; in the pass-through case this just means copying over the input position to output, but (since D3D10+ allows drawing without input buffers) you can set it to any value you like if you wish (this is commonly seen in code for drawing full-screen quads).


How to prototype?

Question: How is prototyping done in a professional EE environment? Do you do your prototypes on breadboards, on copper clad boards, Manhattan style, or do you just draw schematics, order PCBs made and assembled and work with them, hacking here and there if necessary?
Answer: Once, about 15 years ago, I hired a new EE straight out of collage.  His first day on the job, he asked me how we prototype (breadboard, wirewrap, etc.).  I said that we just go directly to making a PCB, and if it works we ship it!
While I was joking, this isn't far from the truth.  90% of the products I've designed (and I've done a lot) were done this way.  We decide what we want to make and then make it.  Often the first version of the PCB doesn't work perfectly, so we fix it the best we can and build another round of PCB's.  Then repeat this process until it works.
This same process is done for the non-electrical things too.  The metal or plastic chassis, etc.
Rarely we will feel like a purely research-driven PCB is required.  This is when the technology we need to invent is very difficult and we need to try it out before dedicating the resources to making an actual product.  In this case we will design the PCB with R&D in mind, not volume production.  This means that the parts on the PCB are spread out so they are easy to probe, and we don't care so much about the cost to make it.
In every company I've worked for this is how products have been developed.  These companies were not places like Nasa that are more research-heavy.
Comment: This has been the methodology everywhere I have been as well. I would add that when designing and laying out the board test-points, debug headers, etc. is something we consciously design in to give ourselves visibility should something not work.
Answer: I work for a very small company, making very small numbers of PCBs, so the way we make prototypes is probably more similar to the way David Kessner does it. We are usually very short on time and funding, so we often really need to try to get it right(ish) first time, and if it's not, then we just have to patch the boards by hand.
The thing that makes our PCBs unusual is that, being in robotic devices, we are always desperately pushed for space, and that space is usually a stupid shape. When I design a prototype, the question I'm trying to answer is: 'Is it feasible for these components to fit in this space?' That prototype will sometimes only exist in CAD, but I have to get most of the way through the layout before I can be sure that the design is feasible. Having done most of the design work, I'll then sneak that design onto a spare bit of space on the next PCB run we do.
For example, this little round PCB is only 15mm diameter, but has 49 components on it, and also needs space for wires to solder onto pads, for power, communication and programming. I did the layout to see if it was possible. It was, so I had one made.

Having said that, for a more complex board, it really is worth laying out a large one, for probing and scoping. This design was laid out at 100x100mm (massive!) and was invaluable for debugging. Then it was laid out on that funny shaped board which was a nightmare of physical constraints, making it hard to add debugging features. I was very glad to have had the prototype.
Answer: There is no simple "the board".  A product, which may be largely a circuit board, goes thru several steps.
Most of the time I design the circuit for what we think we want the product to do, but the first version is a bench test board.  This isn't even pretending to have the final mechanical form.  It is a board with as much space as it takes to be able to probe around, make edits if necessary, etc.  This is usually a rectangular board with rubber feet on the bottom in the corners.  The circuit is what is intended for production but often with some extra debug facilities.  For example, unused processor pins are brought out to labeled pads instead of just ending at the processor.  There might be extra LEDs, or maybe a serial port even if the final unit won't have one.  Deliberate labeled test points are added for various intermediate nets that might be useful to connect to, look at with a scope, feed a signal into, etc.  There may be jumpers in a few places to disconnect parts of the circuit.  The point of this board is to verify the circuit and get the basic firmware up and running.
In unusual cases when I think a circuit is risky or it's hard to know what is really needed, I may test just a small piece on one of those plug strip breadboards.  For example, a while ago I had to make a product receive and process ultrasound signals, but with very low current.  You can read all the datasheets there are, but for something like this it takes real experimentation to find out what gain is good enough, how little bandwidth can be gotten away with in reality, and whether some of the extra low current tricks really work as expected.  Transistor datasheets generally don't tell you what the part characteristics are with only a few µA thru it.  Sometimes you just have to try stuff.  Fortunately that is unusual, and can be limited to a specific sub-circuit.  By the way, I got the ultrasound front end amplifier down to 35 µA at 3 V quiescient current, and a gain of a few 1000 at 40 kHz, all with discrete transistors.  That took some experimenting.
After the first bench test board, the customer inevitably wants something different than envisioned at first, you find little things you may want different, etc.  The next version usually takes the mechanical constraints into account, so is probably a smaller more crammed board.  You'd think that was it, but rarely is the second version ready to ship.  That's generally not because of circuit problems, but mostly because now more people get to see it, smell it, touch it, feel it, and otherwise muck around with it.  These people all have their own opinions on details of the product, and a few things will change.
The third version can sometimes be ready for production, but usually it takes one or two more revs before everyone is happy or has given in, some part got moved because the original dookicky this thing was supposed to work with got obsoleted in the two years since someone dreamed up the product idea, etc.  I'd say total of 4 or 5 versions of the board is the most likely, more for large organizations that pride themselves on process and procedures.
Comment: @mickey: There isn't actually that much difference between what I said and what David said.  He makes a bench test board less often, but other than that the process sounds pretty much the same.  I should have pointed out that a bench test board is also often needed because mechanical constraints aren't known yet.  Industrial design often lags electrical design.  For our own products, the second rev usually ships.  Also, the cost of a respin is pretty minor in the scheme of things.
Comment: My observation is that there is a dynamic tension between this approach and the one described by David Kessner. If you are a small company and the cost of doing yet another board spin is a significant part of overall cost, and/or if the product is relatively simple, you trend towards DK's approach. If it is a fussy product, such as described by Olin Lathrop, you probably have no choice but to do a number of spins. And yes, if the company is larger, has more resources, and is more 'ISO9000' than 'garage hacker', you may be obligated to take more steps to get to the same place, needed or not.
Answer: In the olden days, when a small package device was an 8 pin DIL and every pin was on a 0.1" pitch then the prototyping plugboard would be wheeled out and pressed into service, tgether with some hand soldered, 3D sculpture featuring myriad components just to prove a concept.
Nowadays I tend to use the manufacturers development boards for most of the new devices that I want to try out.  These all tend to have their I/O pins brought out to headers and can be wired in to other evaluation boards (microcontroller, interface devices etc)  I have built up most of a new product just by joining these boards together.
Answer: My favorite way of prototyping whenever I want to check some small details before trusting a draft or simulation and putting a small block onto an expensive multi-layer PCB with anything between 100...1000 other components:
Breadboarding. With copper-clad boards.

Circuit is roughly similar to fig. 6 in LT's AN-104

Source: https://electronics.stackexchange.com/a/15059/930

This was a quick check for a voltage regulator design I needed at work and wanted to try before having a big PCB finished. It looks messy, and this is exactly the big advantage: 30 minutes in your home lab will save days of re-designing your project because you missed one tiny (and obvious?) gotcha.
... Just three tiny examples, but you get the idea. It's quick and (sometimes very) dirty, but you can keep short whatever needs to be kept short and achieve good results very fast. A very good tutorial can be found on p. 28-31 in Jim Williams' App Note 47 on the LTC website.
Of course, this will not work for BGAs and the like, but whenever I need just a tiny hack, this is my favorite way to go.
Comment: These breadboards take more abuse than one would think. One of the most beautiful examples can be found here: http://cds.linear.com/docs/Application%20Note/an120f.pdf
Comment: @Rocketmagnet: "Those people" might care more about how their scope sees them than how the public sees them: http://www.computerhistory.org/highlights/analoglife/img/cartoons/williams-scope-reflection.jpg (cf. http://www.computerhistory.org/highlights/analoglife/)
Comment: It must be nearly impossible to move it.  What do you do if a colleague is developing another component and you have to test them connected to each other?
Comment: @zebonaut - Beautiful? I don't know how those people can show their face in public after that.
Comment: Updated link: http://cds.linear.com/docs/en/application-note/an120f.pdf.
Answer: Power electronics perspective here.
The PCBs I work with are a mix of high-power noise generating components, and low-power noise-sensitive parts. Truly, the best of both worlds.
I tend to follow two paths:

If the project is based on some older work, take the older work and add-on / change things as necessary (wire in PCBs, hang parts in the air, whatever.)
If the project is totally new, and there's no way to leverage anything old, then design a new board from scratch.

Generally, if you can get away with using an existing unit as your starting point, and you already have hardware in the lab (and and as long as the changes you need to make don't end up taking longer to implement than it would to build a fresh unit) it's a tremendous time and money saver to use this as your prototype / breadboard. It can take several spins just to get the PCB "right" and this eats into your prototype debugging time. Sometime we will do a fresh build using an old design's PCBs and simply substitute parts as needed. This removes the risks inherent with a new PCB layout.
Whenever we need to design a new PCB, we try to achieve fit/form/function as closely as possible to the end requirement - even for the first spin. Just in case things work perfectly (ha!). PCB spins take time and resources, so we closely scrutinize every board so that they have the best chance of 'working' (or 'working better than before') every time we do a spin. Continuous improvement, so to speak.
Answer: If I feel that it is necessary (or schedule-advantageous) to have a partial prototype before the first PCB version, I tend to create it by combining evaluation boards for the technologies involved, or stand-ins for them.  For example, a micro-controller board might get a hand-wired SPI interface connecting it to an FPGA board, or perhaps a wiring harness is created to bit-bang some module from a PC parallel port (often using what is on its way to becoming the device firmware, only with a different low-level I/O wrapper).
Once you have a product line started, PCB's from existing versions of the product (or even a product from a different line that uses some of the same technology) can often be used as a prototyping platform.  That can mean anything from simply trying out new firmware, to using them with eval boards, or making a little adapter to replace one chip, or even just using the PCB with all but one component removed, as a breakout board for that chip.
While if pursued to far it can easily become a distraction, there can at times be a use for an in-house capability to make simple PC boards on the order of carriers for particular ICs or small circuits to add additional functionality (or correct oversights).  I've worked places that did this with milling/laser resources that were required for special purpose RF boards, which we sometimes leveraged for small logic modules.  For personal projects, a small toner-transfer single sided SMT board can be produced in one hour and assembled in a second - it's not the quality of a quick turn PCB house, but quick-turn does not mean same-day circuit operation.  I'll sometimes send the file to the board house and then make my own version to keep the project moving.
Answer: Typically, the Chinese factories we work with make the prototypes for us, then we will make modifications to them to fix problems, add features, etc.  Then they make another prototype with our changes, we test that revision, find that they missed something, or our improvements caused other problems, etc. and repeat the cycle of modifications until it works well enough to sell.  (Note that I did not say "works perfectly"...)  Sometimes the changes we make involve breadboards, but usually they're just components hanging in space soldered to each other just sturdily enough to prove that it works.
I can only think of a few times when I actually built most of the prototype on a solderless breadboard first, and even then, some of the things plugged into the breadboard were small circuit boards of their own, either eval boards made by the chip manufacturer or other boards I had lying around that I could cut into, because the chips are impossible to use with a breadboard on their own.

How to prototype?


Have short term insurance now and due to recent issues insurance company will not renew. How can we get insurance?

Question: My sister worked at bank and had to retire 10 months ago due to testing positive for dementia. She signed up for short term insurance and not Cobra. In the past she has had both knees replaced and recently slipped and fell and broke both legs. Short term insurance runs out in April and insurance company says they will not renew.She will turn 65 in a couple of months. What options is there to get health insurance coverage.
Comment: Can we assume the United Sates based on the mention of COBRA?
Answer: Depending on her state of residence (assuming US) she may have many options. As a worst case option, her loss of insurance would be a qualifying event allowing a special enrollment period into an "Obamacare" plan via her state's insurance exchange. But she may have better options, as there are state-run programs for people like her in many states. She should contact a Navigator (or her state's equivalent) and ask what her options are.
Also, although you stated she lost her job 10 months ago and already turned down COBRA, she should clarify with her employer what their election period is. Plans are required to allow 60 days, but some plans allow longer (when I worked for an administrator, we had clients with election periods as long as one year, although that was rare).
If the above all falls through, she should negotiate with her provider. Many will give significant discounts to people in hardship positions without insurance, and they may be willing to work with her (especially if they know she will be on medicare soon).
Comment: Since the OP mentioned she turns 65, they should also check if she is Medicare eligible.
Comment: That's a good point, I had assumed the sister would go on Medicare at 65. But if she has been on disability (receiving SSDI checks) for more than 24 months, she would qualify now.


INNER and LEFT OUTER join help

Question: Say I have 3 tables. TableA, TableB, TableC
I need to operate the recordset that is available after a INNER JOIN.
Set 1 -> TableA INNER JOIN TableB
Set 2 -> TableC INNER JOIN TableB

I need the Set 1 irrespective of if Set 2 is empty or not (LEFT OUTER JOIN) comes to mind.
So essentially, I am trying to write a query and have come this far
SELECT *
  FROM TableA
       INNER JOIN TableB ON ...
       LEFT OUTER JOIN (TableC INNER JOIN TableB)

How would I write in SQL Server?
EDIT: In reality, what I am trying to do is to join multiple tables. How would your response change if I need to join multiple tables ex: OUTER JOIN OF (INNER JOIN of TableA and TableB) and (INNER JOIN OF TableC and TableD) NOTE: There is a new TableD in the equation
Comment: re: your edit, this question might be easier to answer if it were a bit more specific.  Is the same value being used to join all tables, e.g. a CustomerID?  Or are your inner joins just to get lookup values, e.g. TableB contains the CategoryDescription for the CategoryCode field in TableA?
Answer:  SELECT * FROM TableA
       INNER JOIN TableB ON TableB.id = TableA.id
       LEFT JOIN TABLEC ON TABLEC.id = TABLEB.id

I Don't know what columns you are trying to use but it is just that easy
Edit:
Looking at your edit it seems that you are confused about what Joins actually do. In the example I have written above you will recieve the following results.
Columns -> You will get all of the columns for TableA,TableB and TableC
Rows-> You will start off with all of the rows from tableA.  Next you will remove all rows from TableA that do not have a matching "id" in Table B.(You will have duplicates if it is not a 1:1 relationship between TableA and TableB).
Now if you take the results from above you will match any records from TableC that match the TableB.id column.  Any rows from above that do not have a matching TableC record will get a null value for all of the columns from TableC in the results.
ADVICE- I am betting that only part of this made sense to you but my advice is that you start writing some queries, predict the results and then see if your predictions are correct to see if you understand what it is doing.
Answer: What you want isn't a JOIN but a UNION.
SELECT * FROM TableA INNER JOIN TableB ON ...
UNION
SELECT * FROM TableC INNER JOIN TableD ON ...

Answer: You can actually add an ordering to your joins just like in a math equation where you might do this: (5 + 4) * (3 + 1).
Given the second part of your question, give this a try:
SELECT
     <your columns>
FROM
     (TableA INNER JOIN Table B ON <join criteria for A to B>)
LEFT OUTER JOIN
     (TableC INNER JOIN Table D ON <join criteria for C to D>) ON
     <join criteria for AxB to CxD>

Answer: Select * from ((((TableA a inner join TableB b on a.id = b.id)
                left outer join TableC c on b.id = c.id)
                full outer join TableD d on c.id = d.id)
                right outer join TableE e on e.id = d.id)
                /* etc, etc... */

You can lose the brackets if you want.
Comment: C is linked to the result of (A inner join B)
Comment: TableC should be linking to TableB, not TableA
Comment: I need a INNER join between C and D. Does your query do a inner join? Essentially, all I need is (A INNER B) LEFT OUTER (C INNER D)
Answer: try this..
SELECT *
  FROM TableA              a
       INNER JOIN TableB   b ON a.id=b.id
       LEFT OUTER JOIN (SELECT *
                            FROM TableC            c
                                INNER JOIN TableD  d on c.id=d.id
                       ) dt on b.id=dt.id

Comment: Interesting. I assume this would do a INNER JOIN between C and D?
Answer: Assuming I Understand your question, I think this is what you're asking for:
SELECT *
FROM TableA INNER JOIN TableB on TableA.JoinColumn = TableB.JoinColumn
LEFT OUTER JOIN TableC on TableB.JoinColum = TableC.JoinColumn
INNER JOIN TableD on TableC.JoinColumn = TableD.JoinColumn

Note that the JoinColumn used to join A & B doesn't necesarilly have to be the same column as the one used to join B & C, and so on for C & D.
Answer: You didn't give your join conditions or explain how the tables are intended to be related, so it's not obvious how this might be simplified.
SELECT a.a_id, b1.b_id b1_id, b2_id, bc.c_id
FROM TableA a JOIN TableB b1 on a.b_id = b1.b_id
LEFT JOIN (SELECT c.c_id, b2.b_id b2_id
    FROM TableC c JOIN TableB b2 ON c.b_id = b2.b_id
  ) bc ON bc.c_id = a.c_id;

Looking at your latest edit, you can do something along the lines of:
SELECT <columns>
FROM (SELECT <columns> FROM TableA JOIN TableB ON )
           LEFT JOIN
           (SELECT <columns> FROM TableC JOIN TableD ON <C-D join conditions>)
           ON <AB-CD join conditions>

Although you don't actually need the inner projections, and can do:
SELECT <columns>
FROM (TableA a JOIN TableB b ON )
           LEFT JOIN
           (TableC c JOIN TableD d ON <C-D join conditions>)
           ON <AB-CD join conditions>

Where the AB-CD join conditions are written in terms of columns of a, b, c, d etc directly.
Answer: Since you're using Sql Server, why not create views that help you?  Stuffing everything in a gigantic Sql statement can become hard to read.  An example view might look like:
create view AandB
as
select *
from A
inner join B on B.aid = A.aid

And the same for CandD.  Then you can retrieve the optional join with simple Sql:
select *
from AndB
left outer join CandD on AndB.cid = CandD.cid

If you're interested in rows from both sets, you can do a full join:
select *
from AndB
full outer join CandD on AndB.cid = CandD.cid

Answer: SELECT *
  FROM TableA A
 INNER JOIN TableB B  ON B.?? = A.??  AND ...
  LEFT JOIN TableC C  ON C.?? = B.??  AND ...
  LEFT JOIN TableB B2 ON B2.?? = C.?? AND ...
  LEFT JOIN TableD D  ON D.?? = C.??  AND ...

So here's the thing: logically, joins aren't actually between specific tables, they are between a table and the rest of the "set" (of joins and tables).  So while you know that there is a 1-to-1 relationship between C and B2 or between C and D, you can't INNER JOIN to C because C could be null from it's LEFT JOIN to B, which will eliminate those rows, effectively undoing your LEFT join.
So basically, any joins to a table that's LEFT outer joined must also be LEFT outer joined. Does this make sense?

INNER and LEFT OUTER join help


How should two-photon transitions be modelled? Is second-order perturbation theory required? Or are sequential first-order processes sufficient?

Question: For example, I want to consider the following situation: photon transit from $m$ energy level to $m+2$ after absorption of two phonons with frequency $\Omega$. I want to calculate a transition rate for this process and now I'm little stuck in the choosing the way to do it. Should I use a second-order perturbation theory to find this rate, or can I just multiply the probabilities as a sequential processes ($m \to m+1 \to m+2$ states) to find total probability? Which of these options is more correct?
Comment: A sequential process would emit photons with very sharply defined energies, whereas in the 2nd order process, the photons' energies could divide up more flexibly.
Answer: To be honest, it depends on the situation, and particularly on how long the pump lasts and what the lifetime of the states is. If you have long-lived states, then sequential processes become possible and they can dominate, but at shorter timescales you expect second-order perturbation theory to be more crucial.
It also depends on how close you are to the resonance on the middle transition. If you're exactly on resonance, then SOPT in its naive form will diverge, until you include the lifetime of the state, and you might be better off with a sequential process. On the other hand, it's quite common to have the full two-photon process be exactly on resonance, but not the middle step; in these cases SOPT is essential.
Comment: To be more specific, photon initially have frequency $\omega$, my beam passing through the crystal, so the time of perturbation is, for example, $\tau = \frac{Ln}{c}$, where $L$ - length of the crystall in the direction of laser propagation. If we consider two phonon process, then photon can transit on levels $m \pm 2$ (besides other levels) with defined energy through $m\pm1$ level. So what are the difference in using SOPT and sequential processes in this case?


Windows Vista - Error Code '0x45d'

Question: When I went to turn on my laptop today, I got the error code '0x45d'. What does this error code mean and how can I fix whatever the problem is?
Answer: There is plenty of hits on google for this error the common advise seems to be:

Try to boot into safe mode and restore to last known working configuration. If that doesn't work run a repair with your Vista installation DVD.

Windows Vista - Error Code '0x45d'


VB.NET Custom SqlFactory, FileUpload Control issue

Question: I've built the SqlFactory class to control my StoredProcedures, and I use it for all transactions between application and SQLServer. The part that I implemented last is file upload. But it won't do things as it should :( I've searched around the web not much could be found.
So basically I want to save my Report with name, description, and image.
Name and description are working perfectly, but for some reason it will not upload the file, it does not even reach the code for uploading it, which is:
If fuImage.PostedFile Is Nothing OrElse String.IsNullOrEmpty(fuImage.PostedFile.FileName) OrElse fuImage.PostedFile.InputStream Is Nothing Then
    'nothing to upload
Else
    Dim imagebytes(fuImage.PostedFile.InputStream.Length) As Byte
    fuImage.PostedFile.InputStream.Read(imagebytes, 0, imagebytes.Length)
    rep.FuImage = imagebytes
End If
rep.Name = txtName.Text
rep.Description = txtReportContent.Text
repFac.Save(rep)

The lines rep.FuImage = imagebytes and those below if statement are my factory lines it should be working but it's like fuImage FileUpload control never recognizes a file that's supposed to be selected.
This is my view part:
<asp:FileUpload ID="fuImage" runat="server" CssClass="fontChange" />
<asp:RegularExpressionValidator ID="rExpImage" runat="server" ControlToValidate="fuImage"
    ErrorMessage="Only .gif, .jpg, .png, .tiff and .jpeg"  ValidationExpression="(.*\.([Gg][Ii][Ff])|.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])|.*\.([tT][iI][iI][fF])$)"
    ValidationGroup="ReportValidationSummary" CssClass="failureNotification">*</asp:RegularExpressionValidator>

Note: I am aware that FileUpload does not work in asp:UpdatePanel, hence I'm using regular asp:Panel, I beginning to doubt if there are issues with all Panel controls... Also, I've looked around problems that mention a lot of things, and I'm quite lost.
Please help, and thank you.
EDIT:
I've also tried working around forms, nothing came out of it. My server side form is placed on my Master page, and that's the only one i use. I've tried placing form on each page, instead. Nothing changed. (Read this in someones question, thought I'd try too.)
Answer: Fixed. Problem was <ContentTemplate> was surrounding both <asp:UpdatePanel> and my EditPanel which was regular <asp:Panel>. That way it won't matter that FileUpload is not within update panel. It has to be set as a full post back with <Triggers>.
Code for Triggers:
<Triggers>
   <asp:PostBackTrigger ControlID="Your_Control_ID" />
</Triggers>


Enabling simultaneous turns in Heroes of Might and Magic 3 HotA

Question: I would love to be able to play this game in single player and simultaneous turns! :D Is it possible?
Answer: There is little reason to do this
While simultaneous turns (STs) are possible in HotA, a mod for HoMM 3, the limitations placed upon that mechanic make it totally irrelevant for playing against a computer opponent. Basically, if you interact with each other or the same object, STs stop, and Blue players' turn is canceled and has to be replayed. With or without STs, there is not supposed to be any change in actual game results: you only save time.
Also, there isn't much benefit to this. When human players take large amounts of time for each of their turns, waiting for your opponent can be tedious, boring, and frustrating.This is why you need STs in the first place. After you meet for the first time and STs stop, the game is likely to be over soon, so you avoid most of the wait.
At the same time, a computer opponent doesn't take anywhere as long as a human to finish their turn. This is why you don't need STs against a computer opponent in the first place, as it would result in practically no changes.
Answer: This is not possible.
Heroes of Might and Magic has always been turn-based, which is very distinctive from real-time strategy games like the Warcraft and Starcraft series. You can't expect the software to support such a change, though with some modifications it could probably work from a game rules perspective.
Comment: Thank you, the reason for asking is in horn of the abyss you can play simultaneously in multiplayer. I had hoped I might be able to enable it for single player
Comment: @Baskakov_Dmitriy Ah, I didn't know about this particular mod. I only know the official games...
Comment: I am sorry, but this answer really doesn't take into account that the game is modded, [simultaneous turns](https://sites.google.com/site/heroes3hd/eng/description/hd_plus/sim-turn) having been added as a mechanic. OP is asking whether or not they are possible in single-player games as they are possible in multiplayer.


How can I use Gmail's canned responses on my phone?

Question: I frequently use canned responses in Gmail on my computer but it doesn't seem to be accessible on my phone. Are there any workarounds or solutions that allow me to use this feature on my phone as well?
Answer: As of July 2019, the features is not available for Gmail app but you can use it when using a browser on your phone and requesting the desktop version.
You are left with 3 possible solutions:

Create draft messages that you can then copy and paste for new messages.
Enable "Smart Reply" in the Settings of the Gmail app for the account you are using. Then hope that you will get good suggestions when replying to messages.
Use Canned Responses for GMail. It purports:

GMail canned responses are very handy on a full featured web browser but when it comes to mobile - it's almost impossible to import your canned responses in an email message. With Canned Responses for GMail you will be able to do it in 2 taps. A swipe and a tap actually :)


How to add [google ads] in between the views slideshow after completing four slides

Question: Any one can explain shortly ? How to add [google ads] in between the views slideshow after completing four slides .presently am having gallerific slideshow and slides are from specific content type. Thanks by advance.
Comment: Do you want it every 4 slides? or just after 4 slides?
Comment: Thanks for your reply syd .. Yes i need the google ads after the 4 slides complete.it will continue by cycle.
Answer: Use the HTML code of google adds . Copy and paste HTML code of google adds in the body of new content. You can also use ck editor.In views also select body field along with image field.
Also add global php in which add a if else conditon to show either image or body.
Comment: Thanks for you valuable reply rishi,here am using gallerific slideshow for displaying slides hope you knew about the module,however the gallerific setting having only four optionsto display the contents ,1)in one section for main slides 2)thumbnails 3)description 4)finally Title below the thumbnails,As you told the google add in body content can taken form views ,but how can i include it within the main slide of the slideshow,we have option to assign only one field for main slide.
Comment: i didn't used that module. But in views you can do this in fields add 2 fields exclude both from display and then add a global php. In this you can add a check using else if. Then assign this global php filed to your module's field. I am guessing here. I don't know more about this module.But I am telling you the general drupal way doing this . May be it help you.
Comment: :-( if any other idea always welcome rishi.
Answer: Unlikely I don't know this module but I think you should look for the tpl.php. I've done something similar for a normal view were after 7 node it should show an empty box.
In the file  views-view-unformatted.tpl.php there is this script that generates the rows.
<?php foreach ($rows as $id => $row): ?> #for all the node, do this
  <div class="<?php print $classes_array[$id]; ?>"> # open div with the classes view-row, view-row-odd, view-row-1
    <?php print $row; ?> #print the node

<?php endforeach; ?>

I've changed in this way
<?php
$counter = 0;#it counts the row
 foreach ($rows as $id => $row) {
 $counter++; # add one to the counter
 print '
';
 if ($counter == 8) { # the views-row-8
   print 'Something'; #it prints "Something" instead of the node.
 }  else {
  print $row;
  }
  print '
';
  }
  ?>

It will print normal row if the row is not the number 8.
Try to adapt this code for yout needs. You need to find the right tpl.php for the slideshow, copy the file and put it into your theme folder inside template.
You should be able to rename it taking the name from the view panel clicking on "theme", so the other slideshow view will not be affected.
Let me know


Why I have 12 GB of "cancellable" space even if I am not optimizing space with iCloud?

Question: I am not using iCloud drive, and I am neither optimizing disk space with iCloud. But the disk utility app shows that I have 12.62 GB of "cancellable" disk space. I thought that this space was due to the fact that some files could be safely deleted from the disk because they're backed in iCloud. But why do I have "cancellable" storage if I am not using iCloud to optimize disk space?
Answer: This is a new feature in macOS Sierra called "purgeable space". Aside from files safely stored in iCloud (when the "Store in iCloud" option is enabled), purgeable space can also include cache and temporary files that are no longer required by the system.
It can also include other files that aren't entirely necessary, like iOS software updates, local Time Machine data, older email attachments, and others.
Comment: How can I delete this data if I need more disk space?
Comment: Purgeable space is automatically deleted if you need more disk space, so you don't need to worry about it. If you want to free up some space manually, go to  > About This Mac > Storage > Manage.


How to interpolate a general formula from a set of data in excel?

Question: I am making an experiment and I got the following results as  X and Y. I also draw them in excel and it seems they Y vs X as linear. How can I interpolate a general function F(X) so that I can get the value of the function at any other X value? I do not know if that is doable in excel
Here are the X and Y results
Here are excel drawing
Answer: Since your correlation is linear you can just use SLOPE and INTERECEPT to get the Equation for Linear trending:
<code>y = SLOPE() * x + INTERCEPT()
</code>
So the formula would be
<code>=SLOPE(B2:B12,A2:A12)*E2+INTERCEPT(B2:B12,A2:A12)
</code>

You can also insert a scatter plot and plot the trend line showing the formula, which will put the formula on the plot.

As you can see the formulas in E5:E6 return the same numbers as the trend line formula on the graph.