Domain: ethz.ch
Stories and comments across the archive that link to ethz.ch.
Comments · 364
-
Re:Sadly...
'mon, really? You're going to sit there with a straight face and accept that not measuring 75% of the earth's surface temp is fine and dandy?
Sounds pretty good to me. Polls can obtain highly reliable statistical results by sampling a much smaller % of a population. Do you have any evidence that 75% is insufficient? For example, a model in which sampling 75% of the earth's surface yields substantially incorrect conclusions?
Sure. Volanoes
BZZZT! Wrong. It is a myth that volcanos emit anything approaching the CO2 released into the atmosphere by man . But it is true that one way in which climate models are tested is by examining whether the predicted climate effects of volcanos match observations.
They reproduce it by hard coding it in, not by actually running the simulation.
BZZZT! Wrong again
Yes, in the 1800s ships took temperature readings of the ocean. And just how accurate, precise and numerous were those readings?
There were about 280,000 such readings, covering most of the world's oceans. With that many readings, you'd expect the means to be pretty accurate and precise. Unless, of course, you have some kind of model that demonstrates that more readings are required?
I love Fermi as much as the next guy, but a systemic bias isn't going to "cancel out".
Any fixed bias cancels out in determination of a trend. Try it yourself. Take a set of x,y values, do a linear regression. Then add a fixed value to all of the y values and do it again. You'll find that the slope of the fitted line does not change at all.
I'm arguing that the default here is an assertion of ignorance, not an assertion of culpability. Identifying gaps does not mean I've got a better idea, it just means that your idea isn't as good as you think it is.
In other words, you are engaging in exactly the same reasoning as the creationists, pointing to "gaps," and trying to suggest that current theory would be unable to account for the unknown contents of those gaps. When you assert with no theoretical basis that the number, accuracy, and precision of measurements is inadequate to evaluate climate change, you are making just such a "gap" argument.
And here's the rub -> negative feedbacks. Is climate highly sensitive to CO2, or insensitive? And here's where your basic physics kick AGW in the nards -> CO2 has a specific maximum spectrum it can absorb, after which, you get no additional warming.
BZZZT! False. This was an error in early modeling which has been known to be mistaken for half a decade. See here, here, and here. But just like creationists, who are still trotting out arguments that were debunked in the time of Darwin, anti-AGW debaters continue to trot out ancient fallacies. For estimates of climate sensitivity derived from a wide variety of observations, see here.
Look, in the end, if you're really thinking like a scientist here, tell me what evidence, either in the various proxy records or in direct observation, would convince you that the climate is not highly sensitive to CO2?
To have even minimal credibility, you need a mathematical model showing that it is possible to reasonably model historical and prehistorical climate change and the climatic effects
-
Re:So where are the models?
Well, here's a problem already. Last I checked, climate sensitivity wasn't well known. Instead they were extrapolating from typical interglacial sensitivity which would IMHO be considerably greater due to the presence of considerable ice fields in the Northern Hemisphere.
Check again. You clearly failed to read read the paper I cited, which lists multiple bases for estimating climate sensitivity and the error limits on each.
-
Re:So where are the models?
Actually, if you look at the statistical distribution of estimates from the models and other constraints on climate sensitivity, the lower limit is pretty well known, so the likelihood that anticipated increases in CO2 will not produce dangerous warming is quite small. What is not well established is the upper limit. This article gives the confidence limits on warming derived from various sources, and explains why the upper margin of error is so much wider than the lower one.
Moreover, there are a number of possible factors that could make the consequences of global warming much worse, but which are not understood well enough to model. These include possible destabilization of ocean methane clathrates to release massive quantities of additional greenhouse gas into the atmosphere, and also destabilization of polar ice by mechanisms (e.g. ice sheet flow) other than melting (discussed here).
-
Re:Mod Parrent Down, wrong.
Climate models are fairly tightly constrained, because they are not fits to arbitrary equations with lots of free parameters, but rather simulations of physical processes for which most of the critical parameters are fairly well known from other data. So the capacity to improve the fit by adjusting the variables is limited. A climate model also has to be consistent with historical (and what is known of prehistorical) climate data, as well as the climate response to "natural experiments" like volcanic eruptions. See here and here for explanation. Further information about the uncertainties in model projections can be found here (PDF)
-
Re:Alternatives?
I can't give opinions on all of these (and some are still in development at this time anyway), but here's a list of some languages with paralellism designed in:
- Erlang -- Very popular message passing/actor model based language.
- Scala -- A functional language with actor model concurrency for the JVM.
- Oz -- An exceptionally multiparadigm language.
- Occam-pi -- The modern version of the old occam for transputers; CSP style concurrency (I believe).
- Chapel -- Cray's parallel programming language for supercompters. Cray's entry into DARPA's HPCS programming language competition.
- X10
- Fortress -- Sun's language for serious scientific computing. It was Sun's entry into DARPA's HPCS programming language competition, but lost and is now open sourced.
- Eiffel SCOOP -- An effort to take a CSP model and make it elegantly compatible with object oriented programming
-
NASA says: not CO2 causing glaciers to melt
NASA says it's not C02 causing the Himalayan glaciers to melt:
Stolen from a comment at real climate:
"In fact, the new research, by NASA's William Lau and collaborators, reinforces with detailed numerical analysis what earlier studies suggest: that soot and dust contribute as much (or more) to atmospheric warming in the Himalayas as greenhouse gases."
http://www.nasa.gov/topics/earth/features/himalayan-warming.html"Based on the differences it's not difficult to conclude that greenhouse gases are not the sole agents of change in this region. There's a localized phenomenon at play."
http://www.nasa.gov/topics/earth/features/himalayan-soot.html"But some scientists claim that glaciers in the Himalayas are not retreating as fast as was believed. Others who have observed nearby mountain ranges even found that glaciers there were advancing."
http://news.bbc.co.uk/2/hi/science/nature/8355837.stm"The report, by senior glaciologist Vijay Kumar Raina, formerly of the Geological Survey of India, seeks to correct a widely held misimpression based on measurements of a handful of glaciers: that India's 10,000 or so Himalayan glaciers are shrinking rapidly in response to climate change. That's not so, Raina says."
http://www.sciencemag.org/cgi/content/summary/326/5955/924"The most recent studies by researchers at ETH Zurich show that in the 1940s Swiss glaciers were melting at an even-faster pace than at present."
http://www.ethlife.ethz.ch/archive_articles/091214_gletscherschwund_su/index_EN -
Re:weird
Maybe it's because it's not just Microsoft who's working on that project. The other half of the team is from ETH Zurich Systems Group: http://www.systems.ethz.ch/ .
-
Re:Full article in Nature
Couldn't find anything in TFA or at ETH's website. Luckily, it was in a journal who's RSS feed I subscribe to!
Here you go: ETH Life article with the link you provided
-
Re:We've been down this (exciting) road already
You may also mention Bluebottle (Oberon): http://www.oberon.ethz.ch/systems/bluebottlefolder
-
Re:Based on S
That can be a problem (but Google returns meaning results for searches involving R these days).
That said, there's a *lot* of information out there about R. The r-help mailing list in particular is very active (making r-help a good term to add to a Google search).I maintain a blog about R with the aim of collecting the most useful information in one place. (Disclaimer: I do this as part of my work for a company that provides commercial support for R.)
-
Re:Indeed ...
An real world example of the power of metadata is Google. Basicly, the ranking works because of metadata, originating as metadata or derived from the content of the page.
While probably correct, there really isn't much substance to your comment, so I decided to add some links to one of the best examples of exploiting metadata: network analysis (or applied graph theory, depending on your bent). It's been applied to webpages, phone call records (using just who calls whom), scientific collaboration networks, social networks, and a whole bunch more. The following links make for some interesting reading about the scope and power of exploiting metadata (at least the introductions):
PageRank, HITS: rank webpages as authoritative based on the links between them (i.e. assume that good pages link to good pages, etc.) PageRank Analyzing the web web communities based on link structure analyzing scientific collaborations based only on patterns of co-authorship and co-citation another one like the previous (although as a computer scientist, i don't think much of mark newman, he writes well).
Remember kids, it's popular because it works!
-
Switzerland?You could check out the ETH (Swiss Federal Institute of Technology) in Zurich, which has a good reputation in the field. My wild ass guess is that the teaching language is English, you'd have to verify this, though. Google allegedly opened their biggest European outfit in Zurich due to the vicinity of the ETH among other reasons. Niklaus Wirth (inventor of Pascal) was a professor there and it counts Wilhelm Conrad Röntgen and Albert Einstein as alumni. Einstein was also a professor at the school.
The Wikipedia entry is here.
Zurich is a city which consistently scored the highest in Mercers Quality of Life Survey for a number of years now. Mind you, it's not the cheapest place to live or study.
-
Switzerland?You could check out the ETH (Swiss Federal Institute of Technology) in Zurich, which has a good reputation in the field. My wild ass guess is that the teaching language is English, you'd have to verify this, though. Google allegedly opened their biggest European outfit in Zurich due to the vicinity of the ETH among other reasons. Niklaus Wirth (inventor of Pascal) was a professor there and it counts Wilhelm Conrad Röntgen and Albert Einstein as alumni. Einstein was also a professor at the school.
The Wikipedia entry is here.
Zurich is a city which consistently scored the highest in Mercers Quality of Life Survey for a number of years now. Mind you, it's not the cheapest place to live or study.
-
Security Engineering by Ross Anderson
Security Engineering: A Guide to Building Dependable Distributed Systems by Ross Anderson, professor at Cambridge University.
It replaces and expands upon Applied Cryptography by Bruce Schneier, and Practical Cryptography by Ferguson & Schneier to make a more holistic approach to security encompassing the entire system, not just using the latest (coolest) encryption techniques. Most real-life systems are broken by going around or ignoring the encrpytion.
Another classic is
TCP/IP Illustrated by the late Richard Stevens
Most people need/read only Volume I: The Protocols, but there is also Volume II: The Implementation which is wonderful albeit with a smaller following, though Volume III which is considered a big disappointment to many (I've never read the vol 3) isn't worry buying unless you're specifically interested in its contents.The only serious alternative to TCP/IP Illustrated is Douglas Comer's series Internetworking with TCP/IP which is the series I learnt about TCP/IP programming with. Still highly recommended.
For Software development, The Mythical Man-Month by computing pioneer Frederick Brooks should be required reading, and Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister should be handed to every new IT/IM or software manager with their promotion or hiring (if they haven't read it already). Computing would suck so much less if we all held ourselves accounting to the basic ideas in these two books.
For historic, 3 books + bonus item that would have to be included are:
Algorithms + Data Structures = Programs by Niklaus Wirth
Cybernetics: Or the Control and Communication in the Animal and the Machine in 1948 by Norbert Wiener
Computing Machinery and Intelligence, by Alan Turing and published in 1950 in Mind
Computer Lib/Dream Machines by Ted Nelson in 1974, is most often pointed to as the "birth" of hypermedia.
The January 1975 issue of Popular Electronics, which featured the Altair 8800 on its cover.
-
Security Engineering by Ross Anderson
Security Engineering: A Guide to Building Dependable Distributed Systems by Ross Anderson, professor at Cambridge University.
It replaces and expands upon Applied Cryptography by Bruce Schneier, and Practical Cryptography by Ferguson & Schneier to make a more holistic approach to security encompassing the entire system, not just using the latest (coolest) encryption techniques. Most real-life systems are broken by going around or ignoring the encrpytion.
Another classic is
TCP/IP Illustrated by the late Richard Stevens
Most people need/read only Volume I: The Protocols, but there is also Volume II: The Implementation which is wonderful albeit with a smaller following, though Volume III which is considered a big disappointment to many (I've never read the vol 3) isn't worry buying unless you're specifically interested in its contents.The only serious alternative to TCP/IP Illustrated is Douglas Comer's series Internetworking with TCP/IP which is the series I learnt about TCP/IP programming with. Still highly recommended.
For Software development, The Mythical Man-Month by computing pioneer Frederick Brooks should be required reading, and Peopleware: Productive Projects and Teams by Tom DeMarco and Timothy Lister should be handed to every new IT/IM or software manager with their promotion or hiring (if they haven't read it already). Computing would suck so much less if we all held ourselves accounting to the basic ideas in these two books.
For historic, 3 books + bonus item that would have to be included are:
Algorithms + Data Structures = Programs by Niklaus Wirth
Cybernetics: Or the Control and Communication in the Animal and the Machine in 1948 by Norbert Wiener
Computing Machinery and Intelligence, by Alan Turing and published in 1950 in Mind
Computer Lib/Dream Machines by Ted Nelson in 1974, is most often pointed to as the "birth" of hypermedia.
The January 1975 issue of Popular Electronics, which featured the Altair 8800 on its cover.
-
Meh
I know a guy who coded a smaller IPv6 stack. It runs on TinyOS and requires 4 KB RAM in total together with the OS. That was an year ago. Check this out: http://www.inf.ethz.ch/personal/mharvan/research.html
-
Really fast for text editing
See Oberon or the newer Bluebottle/A2 for booting with USB sticks:
You can boot the OS natively, or if needed start it as applications on Windows or Linux/MacOS/Unix (x86).
-
Oberon
Oberon boots fairly quickly.
Now, WTF did you want the appliance to do?
I have not seen such a meaningless questions since, er, the last "ask slashdot".
-
Re:Clarification: gun-type bomb are VERY easy to m
point exactly. sophistication is needed to enrich nuclear materials.
Which was actually my point. You suggested that it was "easy" for individuals or militant groups to obtain nuclear weaponry. Yet they can't do it without a heavy industrial base to create Uranium and/or reactors. In the grand scheme of things, it's a lot easier to enrich uranium than it is to make an implosion bomb. (If any of the aspects of construction are off by even the slightest bit, the bomb will NOT fission.)
P.S. 10 PPM of uranium in coal is hardly "loaded"
It's more than enough. Any more and it would Uranium, not coal.
:-PThere is 350% more roof top space on buildings alone than is needed to supply all US electricity given current technology.
You need to provide cites for this and the other statements you made. Because I can tell you right now that your figures are WAY off. At best they sound like back of the envelope calculations that rely on best-cases and ignore the realities of real-world solar and wind usage. At worst, they sound simply made up.
Think of it this way: If there is 350% more rooftop space than necessary to power the power entire infrastructure, then there is enough power in an ideal situation for a single home to convert. What is the ideal situation? A single-story family home with a roof. That home must be capable of generating at least 350% of the home's energy needs to meet your figures. Once you factor in tall structures like skyscrapers, family homes will need to generate far in excess of 350% in order to make up the difference of the non-power producing surfaces of these buildings.
Running features like computers, monitors, TVs, heaters, air conditioners, stoves, refrigerators, and lights can easily place the average home's power requirements in the area of dozens of kilowatts. Some back of the envelope calculations might suggest that it's possible to power a home using solar panels on the roof (e.g. an 80x16 ft manufactured home would have a theoretical output of 61kW using the "new" 40% efficient solar panels), but those calculations ignore a great number of problems with solar power.
For one, roofs aren't flat. You will get different power outputs at different points of the roof at different times of day. Secondly, the light fall on the earth (1.3kW/m^2) is significantly reduced by atmospheric reflection and is thus not consistent in all locations. Areas along the equator will receive a greater amount of light energy than areas in the United States. Thirdly, solar panels are high maintenance. Unless they are kept 100% clean at all times, the power generation will drop significantly from the time of install. Fourthly, any obstruction (shadow from a tree, leaves blowing, birds, clouds, etc.) will reduce the power generated. Fifthly, power generation is significantly impacted by seasons where the Earth's distance from the sun impacts the amount of solar radiation we receive. Finally, we have such a thing as nightfall. Unless you have a method of easily storing terajoules of energy for when power production drops off, you can forget about Solar being the primary driver of the electrical grid.
Wind has even more problems that I won't go into as I've already used up way too much space.
Cite sources for your information. Otherwise it's as good as made up.
And? The point was reactor grade plutonium can be, and has been, successfully used in nuclear weapons.
No, the point was that you claimed nuclear materials other than Uranium and Plutonium have been used. Now you're doing an about-face. Which is it?
No, the whole point is the only thing complicated is making the material, and simple weapon, is VERY easy.
That was never a que
-
A few thoughts on this topic
First of all, I see a ton of (hopefully facetious) comments implying that "chicks can't code." This is bull. Back when I was studying comp sci, I had database classes taught by Moira Norrie. Not sure what she does now, but back then, she did some hardcore stuff with object-oriented dbs; she's probably a better programmer and engineer than 99.99% of the people posting on this
/. story (as an aside, I also had classes by Felicitas Pauss, who now works at the LHC at CERN, which will of course soon destroy the world as we know it by producing strangelets or something - remember, dudes, your demise will be brought upon you by a woman, and don't you forget that! :-)Having worked with a few female coders, I would tend to think that they are slightly more careful with how elegant their code is, and how readable it is. I have worked with some guys who wrote beautiful, readable code, but generally, I think the females have a slight edge here. Guys are happy if it works, females seem to be more likely to go the extra mile.
Of course, this is a subjective assessment and influenced by my own prejudices. I could be totally wrong.
Something else I've noticed is that females often get stuck doing the crap nobody wants to do, like coding Word macros after four years of studying software engineering, or coding some stupid Access database. I think most guys would quit if put in that position. Or perhaps it's that most companies would not dare insulting males by giving them such crappy assignments, while they're quite happy wasting their female engineers' time since, after all, they're just women, right?
-
Undeployable
Anything that requires changes in most or all sub-networks is garantueed to fail. Just look at egress-filtering. Many network admins are still unable or unwilling to do it. And these people expect them to implement a worm detector in every subnet? Forget it.
BTW, the idea is not new: "A Fast Worm Scan Detection Tool for VPN Congestion Avoidance" in Proceedings of DIMVA 2005 uses the same idea, but in a context where it is actually implementable and useful. Online under http://www.tik.ee.ethz.ch/~ddosvax/publications/papers/dimva06scan.pdf. -
And Education in Europe IS REALLY CHEAP
According to their website, MIT's tuition is 35K/yr + 10k in housing.
Meanwhile in several countries across Europe (specially such as Germany, and Switzerland) the tuition are dead cheap and the access to universities isn't limited.
In Switzerland, for example, tuition is around 1k/yr (unless you also work somewhat in the university, in which case the tuition is even lower), in most place swiss student only have to apply to start a bachelor, and foreign students can apply as long as they pass exams to prove that they have obtain the necessary equivalent knowledge in their own countries.
Given that the poster still has quite good budget (coming from a middle-upper class family), I would strong recommend to have a look at an european university. (To give gain a Swiss example EPFL and ETHZ are renown place which have careers in the field that the poster is looking at).
And once the poster gets a bachelor or a master degree there, it could be easier to move back to the USA for a master, resp. a PhD degree.go to a good community college for the first two years, transfer, and still get that MIT degree
The difference with the "community college+transfer" that the parent propose is the opportunity to travel a bit and discover some part of the European cultures. (And also, they have good beers in Germany !) -
Re:Better than Tremulous ?
Yes, I would love to hear in what ways Alien Arena surpasses Tremulous. Tremulous is one of the most interesting team action games I have ever played, far surpassing Counter-Strike and its cronies. I have never played AA, and the article is very low on details. Some of the innovations of Tremulous include wall-walking, strategy elements and a balanced two-class system reminescent of Starcraft. The aliens play like nothing you've ever tried before, except maybe that they are somewhat inspired by Alien vs. Predator. These stats are quite an opponent to match, but nothing would be better than the sorry state of Free Software gaming getting better.
A lot of the more interesting free software games are in fact based on the GPLed Quake 3 engine. There is a pattern here...maybe we could improve things by liberating more commercial gaming software? It's either that, or someone with authority has to take a lot more responsibility in designing tools for creating open-source games. I'm thinking something along the lines of procedural content generation, the major problem is creating all the models we need for a real game. There are many awesome things happening in academia on this subject right now, for example http://www.vision.ee.ethz.ch/~pmueller/wiki/CityEngine/PaperBuildings from SIGGRAPH 2006. We all agree that most free software games don't work out, right? For all the interesting aspects in Tux Racer, it isn't nearly up to the standards of commercial software, and masterpieces like Tremulous are the exception in OSS.
I'm afraid I have to go off topic for a moment. But this is a thing I have been thinking a lot about lately, and I haven't heard it discussed in here before. I promise it is highly relevant to the task at hand.
The Mozilla Foundation is swimming in money from its Firefox ad programs, and I have seen little information indicating that they are using the money for the good of the entire Free Software movement. In fact, I have heard little information at all indicating what they are doing with all of their millions, except for the obvious team of programmers that are working on Mozilla software. This is one arena where the Mozilla Foundation could be much more active in participating: donating money to ransoming out commercial software. I am certain there is a lot of valuable code out there that could do good things for the open-source gaming environment. Firefox is unique in the free software world in being able to bring in huge amounts of revenue, so in my opinion the Mozilla Foundation has an obligation to help out and be more generous with their cash reserves. Firefox is free software, and its benefits should belong to all of us. We are all on the same team here!
Any thoughts? I feel that these things aren't talked about nearly as loudly as they should be, these are all important problems to both the Free Software movement and to nerds in general. Are there any big Mozilla players in here who might have some good answers? -
Re:Thunderbird is awesome on Windows
also, if you're careful enough, Outlook and Outlook Express are perfectly usable on Windows, especially the newer versions
Outlook has been pretty safe since the XP release (Outlook 2002), and even the 2000 release with a patch.
I'm using the 2002 version on XP at work (no choice). I would not recommend anyone use this version, due to two show-stopper problems.
The first issue is reply quoting. Outlook still insists on its own insane quoting mechanisim, where the full text of the original message, with a large bulky summary of its header, is placed at the bottom of the message, with just a horizontal line on top to indicate "quoting". You can get it to do standard ">" quoting with a large amount of hunting through menus, but you still have to hack that header block down to reasonable size, and I found I can't trust it unless I view all email as plain text. The worst part of this is that almost no Outlook users do this, so you end up with the entire contents of the email thread tacked onto *every* email sent through your system. There are add-ins that claim to fix this, but of course they only work with certain versions of outlook, and I couldn't get any of them to work on mine.
The second issue is threading. Apparently Outlook refuses to use the email header entry that allows every other mail client in the world uses to properly thread messages. (Why would it bother, when the entire thread is inside every message? :-( ). This will make you persona-non-grata in any technical email list you subscribe to. Did they *ever* bother to fix this?
Anyway, as a technical user I consider either one of these issues show-stoppers. Outlook 2002 is *not* acceptable as a MUA. -
Re:Chose not to decide.Part of the problem is that there isn't a good solution yet, so there's a lot of effort being put into trying to find a way for a bad solution to be more comfortable...Old-school iterative languages are a clumsy fit...New-hotness functional languages are insane. I think you're looking at the wrong dichotomy there. If you want languages that make concurrency easy to write, easy to reason about, and easy to get right, then you want languages that are based on message passing and no-shared state. That can be either functional, like Erlang, or iterative OO like E.
The problem is more that iterative programmers are used to using shared state as a crutch, and having message passing systems that incurred significant overhead. FP solves the shared-state problems by eliminating state, but that only introduces new problems: it is very hard to reason about and write some software using state, so you either have to contort your thinking, or re-introduce state on some level (be it by kluging it in, or via monads). Just ditch the shared-state and get lightweight message passing and things will look up. Hell, it even integrates with OO elegantly if you're willing to view method calls as message passing (which, let's be honest, it was originally intended as -- see Smalltalk). Check out SCOOP for Eiffel for an example of adding easy concurrency to an OO language using this approach. -
Re:libraries, books, standardization, ...Okay, fp!=parallel, but, e.g., one of the big selling points of Erlang is supposed to be that it lends itself to completely transparent use of parallel processors. Mostly what makes Erlang good for parallel programming, however, it is its Actor model, no shared memory, message passing, based approach to concurrency that provides that; the FP side is somewhat incidental (it certainly doesn't hurt, but it isn't required). You can have similarly clean and easy parallelism, as long as you take a message passing style approach, in a non-FP language: take a look at SCOOP for Eiffel which provides fairly transparent parallel code with an OO language.
-
what about Oberon?
Oberon is the grandchild of Pascal and way cooler. It's seriously a bondage&discipline language: http://www.oberon.ethz.ch/
-
Re:What advantages does this have over Ada?Ada has the strong typing capabilities of Pascal, with multitasking and object support as well. It seems to be the main Pascal-like language for serious, high-reliability applications. Does Free Pascal offer any advantages over Ada? You might as well ask what advantages it offers over Eiffel, another language that offers strong typing, object support, and clean clear syntax. Better yet Eiffel not only has a GPL compiler with LGPL libraries, you can also opt for a GPL compiler suite, libraries and complete development environment.
The advantage, in the end, is that it is Pascal, and if that's the language that someone wants then other languages like Ada and Eiffel, despite similarities just aren't Pascal. -
Re:To Elaborate on the SubmissionI understand your frustration at there not being a "standard" package to solve EM (or scalar wave) problems -- I have ranted about this quietly on my own for a while. One would think that with the equations of Maxwell nearly 150 years old there should be some pretty standard solver techniques out there that would have been packaged up by now covering practically everything. The problem is - while it's easy to write down the equations and (naieve) methods of solving them the nitty-gritty of it all is both important and far more tricky than meets the eye! Each problem domain has its own issues and idiosyncrasy's. Likewise if you are interested in some quantaties more than others (e.g. far field / near field) that can drastically change your approach. Ultimately to have any chance of success you must approximate and the art of the approximation you choose is what matters. As the saying goes "If you want to go there, I wouldn't start from here".
If you are trying to carry out some sort of electrically large scattering problem through inhomogeneous anisotropic materials - you are in for a tough ride. Unless you can approximate things away furiously you will soon find the problem computationally intractable.
It sounds to me as though you really need to get a feel for the basics before embarking on anything too heavy. Time spent in reconnaissance is rarely wasted. Once you have an intuitive idea of how things work you will probably better understand the problem - hence be able to pick an appropriate solver.
A good general starting point in my opinion (particularly in the scalar case) is the use of pseudospectral methods. These will allow you to describe the field propagating through materials in a reasonably tractable manner - they are not too much effort to understand, reasonably quick thanks to the magic of FFTW and surprisingly robust.
I suspect your problem breaks down into three distinct domains:
- Getting the excitation field to the interaction region
- Modelling the (potentially complicated) interaction of the field with the surface
- Getting the field back from the interaction region to the detector.
Since the excitation is presumably beam-like, a pseudospectral technique (particularly one with coordinate scaling) will probably help with 1) and 3). With finite difference techniques you must model the field step-by-step through space. With FFT methods you can jump from one plane to the other - this can be orders of magnitude faster than finite difference.
How you manage 2 is the tricky part! The detail of this will depend strongly on what the material interaction is (e.g. will a scalar approximation suffice). I highly recommend you read Weng Cho Chew, Waves and Fields in Inhomogeneous Media for some pointers. Other things to look into:
- Green's function techniques (see, e.g. Martin et. al. for an accessible start point).
- Transfer matrix methods (see, e.g. Barns and Pendry)
- Discrete dipole scattering (see, e.g. Bruce Draine's DDSCAT)
- Multiple multipole methods (see, e.g. C. Hafner
- Finite Difference Time Domain (e.g. see the excellent MEEP from MIT) (see my warning below)
- Basis expansions and stratified media (similar to transfer matrix) see. Chew for details)
A
-
Not just listserv, majordomo, and vacation
-
Just boys with toys?
When I read through some of the replies I get the feeling that people may perceive this competition as a pointless little toy problem. And you are partly right - it is a toy problem. But it is far from being pointless one.
To me (and I assume most of the other participants), RoboCup is about something else entirely. It is about developing new technologies on a complete systems level. Apart from finding some neat hardware solutions ranging from simple wheels to dynamic humanoid gaits the more interesting overarching theme is the advance of technology on AI aspects - such as goal oriented behavior and agent cooperation.
Sure, it is a lot about hardware and toys. You start tinkering with the hardware platform of your choice - be it some shop-bought Aibo doggy or your own awesome little humanoid creation. There is no limit but costs and human resources. And even if you are just a student with not many resources at hand you can always bring your ball-pushing Lego creation.
And it is true that a large part of the competition seems to consist of robots miserably standing and wiggling in place or randomly tipping over every other minute. But to be fair, the participants are trying to catch up on a few billion years of good old-fashioned evolution while unfortunately fighting with rather pathetic problems such as bad network connectivity and random power outages (see the comment by Spearhawk).
My point is that for most of us it is often very hard to get the proper funding and benchmarking environment for research on autonomous and self-sufficient agents exhibiting semi-intelligent behavior.
Personally, I do not care all that much about soccer. But similar to the DARPA Grand Challenge everybody understands the game and more importantly it is a good way to gain public interest in and acceptance of robotics. From a roboticist's perspective soccer is just the right mix of a fairly simple rule-based environment and open-end multi-agent complexity. The real fun starts once you have teams competing on the field - since now you have the whole real-time adaptivity thing going.
I guess my point is that you can go on and develop robots from a complete-agent perspective by solving the perfect toy problem without worrying too much about when and how the technology will benefit society and why anybody would pay for it right now.
Personally I have absolutely no doubts that the solutions found by working on a toy problem such as soccer will more or less directly benefit society in the near future. We for example are a Swiss team from ETH Zurich participating in the brand new "Nanogram League". We are able to fully control robots with sizes of only a few times the width of a human hair - and not many people in the world can do that. In about 6 months we have developed an entirely new technology just to compete in this event. And yes, it is still "simple" tasks in a two-dimensional environment.
Sure, at this point we are talking mere speculation... but there is no reason why this technology does not scale into 3D fluidic environments... in clear text: you can potentially propel tiny agents that go and find that hidden tumor somewhere in your body and destroy it... how useful would that be?
Here some illustrating movies of our robots and links to other fun stuff that might be of interest to you:
http://www.youtube.com/watch?v=lnLGpl1N7Ns
http://www.iris.ethz.ch/msrl/research/special/nano gram/
some media coverage:
http://www.washingtonpost.com/wp-dyn/content/artic le/2007/07/07/AR2007070700774.html
http://www.cnn.com/video/#/video/tech/2007/07/07/s chneider.robocup.competition.cnn -
Re:Main problem with RFID
Look at any of the current-generation, RSA-capable cards from the major manufacturers, which these days is pretty much down to G&D, Oberthur, Gemalto and NXP. For a while, JCOP was the only Javacard OS to get such fast transaction times, but that was a few years ago and they can all match it now (or close), at least with the symmetric crypto. Most of these chips even have hardware DES coprocessors that execute DES operations in microseconds. I worked with JCOP 40 on a Philips/NXP chip a couple years ago, and according to the manual each DES operation takes 10 microseconds -- in contact or contactless mode. I haven't seen any specific timing information on AES ops, but AES is significantly more efficient than DES. Of course, at present AES is mostly implemented in software, so 3DES on hardware is a little faster. But the times are still very, very fast I'm sure.
There's a good chart of timings floating around, but I can't find it right now. If you look at page 22 of this slideshow you can see some old timings of JCOP. These times were industry-leading a few years ago, but they're nothing special now. I keep mentioning JCOP because it's an IBM OS, and I work for IBM so it's what I'm most familiar with.
Note that to get the prices I mentioned, you have to buy tens of millions of units. The smaller the order the larger the unit price.
-
Re:Does multicore result in complicated code?
All ready done... look at the Blue Bottle OS based on the Active Object System (Aos) kernel http://bluebottle.ethz.ch/
Escalates well, easy to program, its formaly verifiable -
Re:That was just terrible...1.) Use test driven development I'll go you one better. Use specification driven development. That is, use a combination of contracts an unit tests. If your method has general constraints, or your object has an invariant, write it into the code using contracts (and ideally use a system that will let your subclasses inherit contracts, and allow contracts to be sucked up and included in the API documentation); if your methods specification is only easily expressed as a set of mappings from input to expected output, write a unit test instead. When you run your unit tests the contracts will automatically get tested too. Better yet, by using contracts you can help yourself on: 2.) Write complete unit tests, including bad input by using the contracts as a test oracle and passing in randomly generated data to really flesh out the corner cases. In some cases you can do this in a purely automated fashion at the push of a button. Contracts also have the benefit of: (1) not requiring the biolerplate code of unit tests, so they're faster to write; (2) respecting inheritance which can save you a lot of extra test writing. You can't always easily write contracts for methods, and in those cases unit tests make sense, but you may as well take full advantage of contracts for the parts that can be handled in that manner.
-
Yes, because programmers are too conservative
Parallel programming doesn't have to be quite as painful as it currently is. The catch is that you have to face the fact that you can't go on thinking with a sequential paradigm and have some tool, library, or methodology magically make everything work. And now, I'm not talking about functional programming. Functional programming is great, and has a lot going for it, but solving concurrent programming issues is not one of those things. Functional programming deals with concurrency issues by simply avoiding them. For problems that have no state and can be coded purely functionally this is fine, but for a large number of problems you end up either tainting the purity of your functions, or wrapping things up in monads which end up having the same concurrency issues all over again. It does have the benefit that you can isolate the state, and code that doesn't need it is fine, but it doesn't solve the issue of concurrent programming.
No, the different sorts of paradigms I'm talking about no shared state, message passing concurrency models ala CSP and pi Calculus and the Actor Model. That sort of approach in terms of how to think about the problem shows up in languages like Erlang, and Oz which handle concurrency well. The aim here is to make message passing and threads lightweight and integrated right into the language. You think in terms actors passing data, and the language supports you in thinking this way. Personally I'm rather fond of SCOOP for Eiffel which elegantly integrates this idea into OO paradigms (an object making a method call is, ostensibly, passing a message after all). That's still research work though (only available as a preprocessor and library, with promises of eventually integrating it into the compiler). At least it makes thinking about concurrency easier, while still staying somewhat close more traditional paradigms (it's well worth having a look at if you've never heard of it).
The reality, however, is that these new languages which provide the newer and better paradigms for thinking and reasoning about concurrent code, just aren't going to get developer uptake. Programmers are too conservative and too wedded to their C, C++, and Java to step off and think as differently as the solution really requires. No, what I expect we'll get is kluginess retrofitted on to existing languages in a slipshod way that sort of work, in as much as it is an improvement over previous concurrent programming in that language, but doesn't really make the leap required to make the problem truly significantly easier. -
Re:UK + CCTV = front page
My co-axial e-Sky Llama 2 model helicopter is quite stable in a low-wind environment. With the correct trim and no input on the controls it will perform a kind of lazy pirouette around the living room. A larger model would be less susceptible to wind, which is a problem the smaller you go. A more complex gyro-stabilised helicopter is maybe a little harder to control, due to the gyros counteracting the natural corrective effect of having a centre of gravity/centre of rotation lower than the lifting surface, but not to the degree where a computer capable of keeping a Sea King helicopter in a static hover (yes, that's how Sea Kings stay in the same place when the coastguard rescues people) wouldn't be able to fly what is basically a model with a big battery and an on-board camera. That, and the gyros let you do funky things like reversing the blade pitch and flying the helicopter upside down with some practice. Considering the advances made with robots that can now stand and walk like a human being (a far more complex action than flying a four or five-channel RC chopper), it wouldn't be unreasonable to expect that unmanned helicopters are in development, if they don't exist already.
That said, yes, aeroplanes would be easier to fly, if less maneuverable. I've not seen the UAV that was apparently hovering around town today, but I've been told by someone that they thought it was "a bat or something" until they realised it was a machine. Anyone have pics of the things to see if they are fixed wing or ornithopter-ish?
And before I go, download the Beta (not alpha - less models available) edition of Flight Model Simulator, and get yourself a dual-stick controller (or USB flight controller box) to play with it. It's close enough to give you a feel of exactly how hard a helicopter is to fly versus a plane. -
Re:Not quiteYou do have a point. I wrote the Concurrency chapter in The Java Tutorial, struggled for 15 pages just to discuss the basics of the topic, and ran out of time to cover more than half of what I should have. Most of what I wrote was about keeping your threads consistent, statewise. Ideally I would like to see Java take up something like this as a means to handle concurrency. It is simple, easy to understand, easy to reason about concurrent code, and doesn't require stepping very far outside standard stateful OO programming methods. Whether that will actually happen is, of course, another question, but something along those lines does offer a good way forward.
-
Re:C++ can't be made safeWell, if you're going to remove 99+% of the common trouble spots of multi-threaded coding by moving to a messaging paradigm, then yes, it probably is conceptually easier than OO. It can also be significantly slower depending upon the application's design and function and greatly increase its memory footprint. e.g., I don't think a game like Quake would work all that well under this paradigm. I think it is nowhere near as bad as you seem to think - it all depends on how message passing is handled. If you're doing via some slow complex scheme then, sure, it will be slow. But the trick is to think conceptually in terms of message passing - that doesn't mean it actually has to be handled with a big clunky message passing interface internally; just in terms of how you think about it. Take SCOOP for instance. The "message passing" mechanism there is feature calls, the message being parameters passed to the feature/method. The preprocessor and compiler handles all the messy details of locking etc. and in practice it runs about as fast as hand written threading. The difference is that you think in the simpler terms of actors and messages, while the computer (in this case the compiler) handles the grunt work of converting that into efficient code. This is no different than OO, or garbage collection, of course: you simplify what you need to write by writing in a higher level paradigm and leave the hard work of turning that into efficient machine code to the compiler. You'll also still have the potential of concurrent modifications in this scenario, but at least you won't be working on the same memory storage locations, potentially reading indeterminate/incoherent values. Instead you'll have inconsistent values displayed, depending upon which thread's data you're displaying. Read the page on SCOOP, or this draft paper, to see what it actually does - it is well worth it: it's the best mix of OO and concurrent programming I've ever seen. You won't end up with inconsistent values because everything will block accordingly with the compiler handling all the necessary locking/blocking/waiting and letting you get on with just writing code.
-
Re:C++ can't be made safeWell, if you're going to remove 99+% of the common trouble spots of multi-threaded coding by moving to a messaging paradigm, then yes, it probably is conceptually easier than OO. It can also be significantly slower depending upon the application's design and function and greatly increase its memory footprint. e.g., I don't think a game like Quake would work all that well under this paradigm. I think it is nowhere near as bad as you seem to think - it all depends on how message passing is handled. If you're doing via some slow complex scheme then, sure, it will be slow. But the trick is to think conceptually in terms of message passing - that doesn't mean it actually has to be handled with a big clunky message passing interface internally; just in terms of how you think about it. Take SCOOP for instance. The "message passing" mechanism there is feature calls, the message being parameters passed to the feature/method. The preprocessor and compiler handles all the messy details of locking etc. and in practice it runs about as fast as hand written threading. The difference is that you think in the simpler terms of actors and messages, while the computer (in this case the compiler) handles the grunt work of converting that into efficient code. This is no different than OO, or garbage collection, of course: you simplify what you need to write by writing in a higher level paradigm and leave the hard work of turning that into efficient machine code to the compiler. You'll also still have the potential of concurrent modifications in this scenario, but at least you won't be working on the same memory storage locations, potentially reading indeterminate/incoherent values. Instead you'll have inconsistent values displayed, depending upon which thread's data you're displaying. Read the page on SCOOP, or this draft paper, to see what it actually does - it is well worth it: it's the best mix of OO and concurrent programming I've ever seen. You won't end up with inconsistent values because everything will block accordingly with the compiler handling all the necessary locking/blocking/waiting and letting you get on with just writing code.
-
Re:C++ can't be made safeWriting good code is harder, designing good OO code is even harder, and designing and writing good multi-threaded code is yet a step beyond that. In theory writing good multi-threaded code shouldn't be much harder than designing good OO code - it's a matter of actually learning the right paradigm to think about things, and then it all flows easily (presuming you've got a language that supports your paradaigm well - otherwise it is doable, but a little clunky, much like OO). If you're willing to let go of shared state concurrency and think in terms of message passing then things get much easier. Think of actors passing messages and try writing multi-threaded code in Erlang. You'll find it is surprisingly easy to do well. If tht's too much trouble then try SCOOP for Eiffel which attempts to convert the OO model into a message passing model (which in some sense it was originally intended to be). In that case designing to multi-threaded code is hardly different than designing good OO code - just decalre which objects are allowed to be handled by in parallel and let the compiler do all the work of sorting everything out.
-
Re:no bang for your buckDesign by contract seems like a lot of extra work and runtime cost for something that might once in a while catch a bug in already-deployed code. Lighter weight methods like static typing catch (certain kinds of) errors before the code is even compiled; unit testing is usually done before code is deployed, and with the express aim of exposing incorrect behavior in corner cases. DbC doesn't incur any runtime cost if you choose not to bother - any good contract system allows you to turn off contract checking for production code. That is, DbC provides a test harness during testing but needn't do any checking of finished code after testing is complete. Moreover good contract systems like JML and Spec# are smart enough to allow static checking which allow you to catch a whole host of errors before compilation that static types just aren't going to be able to catch. And I have to admit that I am unsure how DbC is "a lot of work" given that you should be writing unit tests anyway, and if you have constraints or invariants then you ought to be checking those with unit tests - writing the constraint as a contract is less work than writing the equivalent unit test. Finally DbC enables testing that for which unit tests of corner cases simply can't compare - by using the contracts as a test oracle you can do automated randomised testing of several integrated units. That is to say, you can automatically generate data to search the input space delimited by preconditions, and use postconditions, invariants, and preconditions of any called code, to test that several units all work together correctly and potentially catch weird interelated corner cases that you hadn't anticipated. Honestly, check out AutoTest or Quickcheck sometime, they are suprisingly powerful and have found bugs in established production code that had already undergone extensive standard testing.
-
Re:bittorent
Basically, the act of downloading material you already payed for is, arguably, legal (It's a pretty vague area, but most before me have assumed it's reasonable that you could make such an arguement). The problem comes with uploading it to other people, who may not have the legal right to own the material. There are, however, alternative torrent clients which don't upload. However, I cannot promote this activity, because that's bad for the torrent ecosystem. At that point you're basically a parasite, just hogging bandwidth, and p2p systems can't work efficiently if people just hit & run like that. One such client is Bit Theif, which has no capability of uploading.
-
Re:Yeah, if you only run one program at a time..
Erlang-style concurrency: This is a ton of little threads that communicate solely through message passing, no shared state. On the plus side, it's got a working implementation that you can use today. On the down side (and this is my personal opinion), I'm not sure you really need the "functional" part of Erlang to use it (I think you just need threads that share nothing, and if you did that in a more conventional OO language it'd be fine)
It's CSP style concurrency you're after there, and indeed it can be done in conventional OO languages. A simple example would be JCSP which is a CSP style threading library for Java. A better example would be SCOOP for Eiffel which integrates a CSP style concurrency model very naturally into an OO model. It's worth looking into because it makes concurrent programming seem easy (just declare any objects that can run independently of one another as separate ... and that's pretty much it, the compiler handles the rest), but gets it right at the same time, all while keeping everything very much in the standard OO model that many programmers are familiar with. The downside is that SCOOP is still experimental - there are now working prototypes that use a preprocessor, but it isn't yet integrated into the Eiffel compiler. Were SCOOP for Java or C++ instead of the rather more niche Eiffel I suspect you'd be looking at your "winner". At the very least a polished version of SCOOP integrated into the compiler could make Eiffel a more popular language. -
Re:Oblig.
I implemented a grey list filter with Postgrey on Postfix. This works on the premise that spammers do not use RFC compliant mail servers (or they would be more easily tracked down and stopped!) and refuses all mail for a set period. Standards compliant mail servers resubmit mail and it is accepted. After a while regular mail is placed on a white list and let through straight away.
It was easy to implement and has worked well at cutting down a large amount of spam. I recommend it. It saves cycles on a mail server if you spam filter after greylisting! -
Even better...downloading without ever uploading
Some folks at ETH Zurich took it one step further, and wrote a client - BitThief - that doesn't upload and yet still can download as fast as a regular client. This is especially valuable in countries that define copyright violation to be the uploading of content.
-
use Postgrey (works for me)
We use Postgrey to filter the spams out.
It works wonderfully even without additional filtering (blacklists, for example.. Which we do still use, though).
Postgrey is a grey-list system por Postfix (for a description on how it works, click here), and there are probably other good greylist filters around.
We've had (like everyone else has) massive amounts of spam going through Spamassassin, our server was down its knees all the time.
Now the machine is typically 95-98 percent idle and the spams we receive (remember I've said we use blacklists aswell) is only the ones which come from our intranet (from hijacked machines we quickly disable when discovered).
That tool saved the day.
Eventually those bastards will have a way around it, but for now it works very well. -
Re:deservedly
If you want a nice multi-platform concurrency system that's easy to use then check out SCOOP for Eiffel. It's as easy as a single extra keyword separate that you use to declare objects that you want to be able to run concurrently in separate processes/threads. The language, preprocessor (for SCOOPs current implementation, it will be moved to the compiler soon), and compiler handle all the rest and make it all work. Having the compiler do the work means it is concurrency system agnostic - it can use native threads,
.NET threads, Java threads, or processes, or whatever the compiler allows for - all with the same codebase. Having the compiler do the work also makes it harder for the programmer to get things wrong. -
Re:By the end of 2007,
Cities? Like this?
http://www.vision.ee.ethz.ch/~pmueller/research.ht ml
As usual, the games industry is a consumer of research, and inventor of nothing new. -
Re:Its crazy
C++ is like a sharp scalpel. Yes you can hurt yourself if you're unskilled, inexperienced or sloppy.
Java and C# are like those scissors with rounded ends for kids. Totally inefficent but safe for beginners.
So where does something like Eiffel fit in? It's all the usual bist to stop you shooting yourself in the foot (a strong static type, garbage collection, etc.) plus added extras to make your code even more maintainable, and even harder to shoot yourself in the foot (design by contract, SCOOP concurrency, etc.) yet when it comes down to it the compiler turns out code on par with C++ for efficiency, and way better then C# or Java. You can say much the same of O'Caml with a very powerful and robust type system (far safer than C++, Java, C#, or Eiffel) and plenty of performance. It's possible to make sharp tools without completely throwing away safety. -
ethz
A friend of mine is studying chemistry at the Swiss Federal Institute of Technology in Zürich and one of the devices he most likes to talk about is their femtosecond laser, mainly because everytime he mentions it to non-scientists he obtains lots of funny blank stares. A literature student myself, now I finally discover that device has an immediate, practical utility! It can turn metals black, w00t!