We know that thin-film interference creates colors by constructive and destructive interference of different wavelengths.  One of the better images I refer to is this:  Though the example only traces one ray of light, a different ray striking at C can be seen to interfere with the first, so having just the original ray interfere with itself, completely neglecting the distance CD, is reasonable. The path length through the medium results in different phase shifts for different wavelengths, ultimately resulting in different interference for different colors. My question is, why don't we see this happen in thicker materials? I have a guess:  For thicker materials, variation in surface perfection results in a wide range of light paths (a small change in A results in large changes in B, which results in even larger changes in C), so everything averages out.  This effect is strengthened by dispersion. If this is the case, are there examples of thick materials constructed with sufficient precision to show interference?
I had always kind of wondered why we didn't see interference in things like windows -- we were taught that the condition is that the thickness of the film/slab/medium just has to be an integral number of wavelengths, $d=m\lambda$. My logic was, if visible light has wavelengths ~400-780nm, any window pane has got to be an integral number of wavelengths (or close to integral) for some of the wavelengths in the visible.  For example, if a window is, $6mm = 6\times10^6nm$ thick, then you should see interference for wavelengths (and some range around them) 200nm, 250nm, 300nm, 400nm, 500nm, 600nm... Because 6mm is an integral number of each of those.  Obviously that would be really annoying and isn't the case. I found  (warning: PDF) source that seems to explain it and I was wondering if what they're saying is sound. On the 10th page (p171 for them), it says that the reason we don't see this interference is that no window is that smooth, it has a variance in the thickness of at least several wavelengths, so the interference effect is effectively average out among all those thicknesses, which usually gets rid of it. They do the math and show that.  Is that the reason?  If so, that leads me to two questions: Could we, if we were really careful and used something like MBE, make a glass window with that sort of accuracy, and then see interference effects in the optical range? I know that quartz crystal monitors can easily give you nanometer accuracy for evaporators and sputterers, but they also have pretty limited growth rates.  My second question is, then, do we see interference effects in glass windows with electromagnetic radiation of a comparable wavelength, like microwaves?  Thanks!
Pygame - blitting from x and y cordinates of image Inequality involving sides of a triangle How can one show that for triangles of sides $a,b,c$ that   $$\frac{a}{b+c}+\frac{b}{c+a}+\frac{c}{a+b} &lt; 2$$  My proof is long winded, which is why I am posting the problem here.   Step 1: let $a=x+y$, $b=y+z$, $c=x+z$, and let $x+y+z=1$ to get   $\frac{1-x}{1+x}+\frac{1-y}{1+y}+\frac{1-z}{1+z}&lt;2$  Step 2: consider the function $f(x)=\frac{1-x}{1+x}$, and note that it is convex on the interval (0,1), so the minimum of   $\frac{1-x}{1+x}+\frac{1-y}{1+y}+\frac{1-z}{1+z}$  is reached when the function takes the extreme points. i.e. $x=y=0, z=1$.    But going back to the fact that this is a triangle, we note that $x=y=0 \implies a=0$ which is not possible, so the inequality is strict. How to determine an object's class? If class B and class C extend class A and I have an object of type B or C, how can I determine of which type it is an instance? I'm writing a Python application that takes as a command as an argument, for example:  $ python myapp.py command1   I want the application to be extensible, that is, to be able to add new modules that implement new commands without having to change the main application source. The tree looks something like:  myapp/     __init__.py     commands/         __init__.py         command1.py         command2.py     foo.py     bar.py   So I want the application to find the available command modules at runtime and execute the appropriate one.  Python defines an __import__ function, which takes a string for a module name:     __import__(name, globals=None, locals=None, fromlist=(), level=0)      The function imports the module name, potentially using the given globals and locals to determine how to interpret the name in a package context. The fromlist gives the names of objects or submodules that should be imported from the module given by name.       Source:    So currently I have something like:  command = sys.argv[1] try:     command_module = __import__("myapp.commands.%s" % command, fromlist=["myapp.commands"]) except ImportError:     # Display error message  command_module.run()   This works just fine, I'm just wondering if there is possibly a more idiomatic way to accomplish what we are doing with this code.  Note that I specifically don't want to get in to using eggs or extension points. This is not an open-source project and I don't expect there to be "plugins". The point is to simplify the main application code and remove the need to modify it each time a new command module is added. Java Generics: List, List, List What is the C# equivalent of friend? Possible Duplicate:          I'd like the private member variables of a class to be accessible to a Tester class without exposing them to other classes.   In C++ I'd just declare the Tester class as a friend, how do I do this in C#? Can someone give me an example? Where can I find every gnome? No matter where I look, I just can't find gnome number [insert number here]. Where can I find every gnome in the game? How to use Font as a variable? The external Flash is not showing up in the configuration Menu when using Pixel TF-321 hot shoe. Is this the wrong adapter for that camera, as there is no X connection? I want to trigger a studio flash via sync connection. Can you recommend me a working hot shoe? Thanks! Will my passport number change when I renew it? Convergence of $\sum_{n=1}^\infty\frac{n}{(n+1)!}$ Can someone give an explanation using the definition of convergence in partial sum to show how the above infinite sum converges to 1?  Thanks How to delete a file with a path too long to be deleted I was working with some computer vision source code I found and didn't realize that it creates a cache file that has a VERY LONG name and now I can't delete the 2 of them. I tried to rename it to a shorter name but I can't do anything to the file, I also tried to restart my computer and see if it would just go away. The error message says:  Destination Path Too Long. The file name(s) would be too long for the destination folder. You can shorten file name and try again, or try a location that has a shorter path.   How can I delete the files in this case? "How to format" block mentions syntax highlighting even if it is not available on the site When you edit the body of a post, the "How to Format" widget is shown in the right sidebar. It mentions the syntax highlighting function, even on  like :    It's probably also a good idea to move the part about code fences down for non-technical sites (like ); other formatting options are more important there. Seemingly random reputation gain of 1 Question Tag problem! Question:     A man like you should not do this, _______?   Which question tag should I use in the blank space?   should he? should you?   Which would be grammatically correct? I think 1 is true. Does Quicksilver's walkman speed up with him? How do I install Java? How do I install Java, including in my browser, so websites with Java work? Alright, I have been doing the following (variable names have been changed):   FileInputStream fis = null; try {     fis = new FileInputStream(file);      ... process ...  } catch (IOException e) {     ... handle error ... } finally {     if (fis != null)         fis.close(); }    Recently, I started using FindBugs, which suggests that I am not properly closing streams.  I decide to see if there's anything that can be done with a finally{} block, and then I see, oh yeah, close() can throw IOException.  What are people supposed to do here?  The Java libraries throw too many checked exceptions. Boats from Manaus, Brazil to Leticia, Colombia? I've heard of and met a few people who have done this route, and I hope to do it at the end of this year or early next year.  However, the descriptions were mostly sketchy, and I'm wondering if it's a regularly scheduled service, or more ad-hoc.  So I guess the question is, how can I find out which boats go from Manaus to Leticia, and when they go?  Ideally this wouldn't be a tour, but a 'locals' boat. Show for prime numbers of the form $p=4n+1$,  $x=(2n)!$ solves the congruence $x^2\equiv-1 \pmod p$. $p$ is therefore not a gaussian prime. I need to show that for prime numbers of the form $p=4n+1$, $x=(2n)!$ solves the congruence $x^2 \equiv-1\pmod p$. I then need to show this implies p isn't a gaussian prime.   I have started to solve this using Wilson's theorem that a number $z$ is prime iff $(z-1)!\equiv-1\pmod z$. Therefore the endpoint of my proof should be that $(p-1)!\equiv-1\pmod p$.  As $p$ is of the form $p=4n+1$, I only need to prove that $4n!$ is congruent to $-1$ modulo $p$.   Here is my working so far: Starting with the congruence $x^2 \equiv -1\pmod p$:    $$\eqalign{x^2 = -1\pmod p&amp;\implies   x^2 + 1 = kp \implies (x-i)(x+i) = kp\cr &amp;\implies ((2n)!-i)((2n!)+i))=kp \implies 4n!- 1 =kp\cr}$$   This is where I start to run out of any ideas that seem to get me anywhere. Any tips would be greatly appreciated!