2016. március 13., vasárnap

AI Go Live :-)

LinkedIn - Dave Aron: Does a Computer Beating The World Go Champion Matter?

The short answer is: yes, very much. Firstly, it is a kind of a benchmark as to how far artificial intelligence is along. Go is a very difficult game, and a game of perfect information – there is no luck involved. Secondly, DeepMind have pushed some of the boundaries and techniques in intelligent decision making and optimization.

But third, and most intriguing to me, is that I believe in the future, we may solve tough real world problems by encoding them as game positions.

Do you know about The Treachery of Images?

This is not a pipe.


This is exactly the same: there is a fundamental difference between Go and Life.

In Go you know all the rules, and play in an isolated environment.

In Life, you don't: none of the above preconditions apply!

This is what the total history of science is about: realizing that we were wrong, find new rules (a bit deeper understanding of the fundamental laws of nature), and step forward as a civilization by using them. And then realize where we were wrong, and do it again.

So showing that now we have enough performance to run a massive algorithm that finds, evaluates and optimizes billions of actions among known rules better than a human player is, well, kinda nice, and yes, it is important because now you can calculate the trajectory of a rocket or satellite with more precision than legions of human computers with pencil and paper.



But to solve (and create...) problems, it is still and always us. Human beings.

However, to solve the problems that WE create, we must return to the level we named our kind about: Homo "Sapiens". Wise, not intelligent. And here a game playing toaster does not help much, only distracts us from our own tasks and responsibility.  

An important tool, but definitely not the key to the future.

2016. március 11., péntek

Censorship in 2016

I have seen this the first time in my life and this is mind blowing. Showing the pictures as of 11th March, 2016.

An article about Fukushima in Newsweek Europe


The referred article at Reuters


So, I am testing the freedom of speech at Newsweek Europe by posting the following comments



OMG, public media quality...

Arnie(!) Gundersen(!) from Fairewinds, the whistleblower who did the most for objective public information in the past years. http://www.fairewinds.org/

To Oleg - you are right, not only robots die. RIP and great respect to Masao Yoshida, I hope




Sorry, this is not about quality. The name was correctly spelled in the original article, but "somehow got corrupted" while copy-pasting the content.

I try to ask very politely. Is there any problem with the power of Google and the right to access public information at Newsweek
 




And by sending the following mail to them

Dear Newsweek,

I have a strong disappointment about your altering information in this article: http://europe.newsweek.com/robots-sent-fukushima-have-died-435332?rm=eu - details are on my blog, if you care: http://hajnalvilag.blogspot.hu/2016/03/censorship-in-2016.html

It seems that you have willfully corrupted the name of one of the last independent nuclear experts, Arnie Gundersen so that anyone who got interested in the topic, would not get to Fairewinds.org by searching for his name (and by the way, deleted an important half sentence). This is absolutely incorrect, though financially understandable action. So, I don't ask you to change anything about it, but wanted to show that you should do this a bit less obvious. Like removing complete paragraphs that you don't like, that's fine.

Thank you
  Lorand Kedves

[edit: you may guess if I had any answer]

2016. március 8., kedd

Darwin díj

Már megint, még mindig...

http://www.fairewinds.org/nuclear-energy-education/fukushima5

"If you listen to the mainstream media, you might believe that these three atomic reactor meltdowns at Fukushima Daiichi are strictly a problem produced in Japan. That is absolutely wrong. All of the major design decisions at Fukushima Daiichi were made in the USA..."

"Today, in the United States, there are 23 atomic reactors identical to those still in meltdown at Fukushima Daiichi."

"For more than 40 years, both American and Japanese engineers have been aware of the many design flaws that caused the meltdowns and accompanying explosions at Fukushima Daiichi. Senior managers at the Atomic Energy Commission, the regulatory precursor to the NRC, expressed grave concerns about the GE Mark 1 BWR containment design as early as 1972."

"And, finally again in the 1980s, NRC reports indicate that GE and NRC engineers knew that the high pressures, high temperatures, and high radiation levels after a nuclear meltdown would cause the plumbing and electrical conduits in each containment to fail totally, thereby allowing groundwater to leak in to the molten core. The ongoing disaster at the Fukushima Daiichi atomic reactors simply proves that early engineering analysis from the 1970s and 80s was absolutely correct..."

---

Persze Arnie Gundersen "köztudottan egy zöld majom". Akinek ez a véleménye, figyeljen a következőkre:

1: precíz adatok (persze, ha valaki nem érti őket, akkor utána kell olvasni, ez nem kocsma-szint);
2: ellenőrizhető források (persze odaát is ismerik a több ezer oldal salátába csomagolt kellemetlen tények módszerét);
3: ellenőrizhető történet: a fukushimai események hátterében álló folyamatokat hetekkel, hónapokkal, évekkel korábban jelzi (akkor persze mindenki hazugnak nevezi), mint ahogy azok végül a "tömegtájékoztatásban" megjelennek.

Az atomiparnak bőven van erőforrása ügyvédekre, szakértőkre, nem kell támogatásért kuncsorognia, mint a Fairewinds-nek, egy-egy közmeghallgatásra kisebb seregekkel vonulnak. Éveik voltak, hogy a Fairewinds-ről a gatyát is lepereljék hitelrontás, rágalmazás miatt. Az is tökéletes PR, hogy nyilvánosan beégetnek egy "sötétzöld okoskodót", színes ábrákat és animációkat is ezret tudnak csinálni egy-egy, hetvenes évekből előkapott, nehezen érthető szakértői dokumentummal szemben.

Vajon miért ennyire visszafogott a világ köztudottan legbiztonságosabb energiatermelő szektora?


Mert nem is kell beszélnie! Arnie Gundersen öreg ember, pár év múlva meghal, és senki nem fogja folytatni amit csinál. Akiknek beszélni próbál, 99%-ban befogja a fülét és szajkózza a marketing anyagokat, a maradék 1% meg hisztizni kezd konstruktív gondolkodás helyett.

A kutya ugat, a karaván halad. Na ez Darwin:

Ha egy civilizáció elér egy technológiai szintet, de a benne élő egyének nem képesek felfogni, hogy mekkora erőfeszítést kell tenniük annak fenntartásához, akkor összeomlik. 

Ehhez nem kell semmi gonosz háttérhatalom, csak egy ostoba, saját képzelt hatalmától megrészegült, lusta, sértődős vagy pánikoló, mesevilágot álmodó, fecsegő tömeg. Lásd: Rudyard Kipling, A dzsungel könyve, Bender log. Szerintem a fickó nem viccelt, dühből írta meg Ká vadászatát.

2016. március 7., hétfő

Tisztelgés egy hős előtt



A fukusimai atomerőmű katasztrófája arra figyelmezteti a nukleáris beruházást folytató országokat, hogy egy súlyos baleset teljes társadalmi és pénzügyi összeomlással járhat. Japán hajszál híján megsemmisült öt évvel ezelőtt, az adófizetőknek körülbelül egyévi magyar GDP-nek megfelelő összegébe került eddig a kárelhárítás, és nagyon messze van még a vége.


Annyira vicces, hogy megpróbáljuk az "istenadta nép" számára legalább forintosítani a kockázatokat, amelyeket sajátméretükben felfogni képtelen...

Mondok egy másikat.
Programozó vagyok, a dátumoknál az évszámot 4 jegyen kezeljük, ez ugye nyolcezer év múlva jelent legközelebb problémát. Az általunk most fűtőanyagként használt Pu239 felezési ideje 24100 év. Vagyis, 26111. márciusában a most kiszabadult plutónium sugárzása már csak fele lesz a mainak. Ezért is tény, hogy az ilyen anyagok tárolásáról hivatalosan is 100000, mondom, százezer évig kell gondoskodni. Vagyis csinálok egy dobozt, beleteszem ezt a valamit, és 100000. január elsejéig kell rá nagyon vigyázni.
Mai gondolkodásunkhoz méltó örökség.

Attól tartok, ez sem felfogható, mondok még egyet.
A városi állatkertbe behoznak egy irgalmatlan nagy ketrecet. Méteres vasbeton falak, embervastag rudakból álló rácsok. A nép tódul oda, hogy ez aztán mekkora siker, hű, de megnézném azt az állatot, mekkora kunszt, hogy egy ekkora dögöt rácsok mögött tudunk tartani. Mert a szerencsétlenek önmagukhoz mérik azokat a falakat.
Csak egy fazon rohan az ellenkező irányba. Ő úgy számol, hogy ha a profitra vágyó állatkertészek ennyit költöttek a ketrecre, akkor nem akar a közelben lenni, ha valami nem pontosan úgy alakul, ahogy (ismétlés: a költségeket mindig farigcsáló) építők elképzelték. Arra ugyanis, hogy ezek a falak nem bírnak valamit, nincs forgatókönyv.
Ismétlem: nincs forgatókönyv.
Csak azok az emberek, akik ott állnak a fronton, mint a fukushimai erőmű azóta tüdőrákban meghalt vezetője, aki halála előtt nyilatkozott, hogy a dohányzás miatt volt rákos. Mert ahhoz semmi köze, hogy egy radioaktív xenonfelhőben vezényelte az elhárítást, és (közvetlen utasítások ellenére) szó szerint mindannyiunkat megmentett egy akkor nem is esélytelen, sokkal rosszabb kimeneteltől. 


Ha az áldozatát felfogni nem is vagyunk képesek, legalább ISMERHETNÉNK egy igazi hős, Masao Yoshida nevét, ha nem is olyan híres ma, mint Anakin Skywalker, Kirk kapitány vagy Elon Musk.


De ha ez se megy át, és ragaszkodunk a forintokhoz, érdemes végiggondolni, hogy mekkora költség lesz kezelni és lebontani a mai erőműveket, amelyek már nem adnak semmit, de tele vannak iszonyú nehezen kezelhető sugárzó hulladékkal. Az egyébként híresen precíz japánoknak se megy nagyon, ajánlott olvasmány Monju története.

Ezen a téren csak az óriásplakátok segítenek, mert azt mondják, amit a kedves polgár hallani szeretne a valóság helyett.

2016. február 15., hétfő

Writing Source Code is Evil

The aim of our industry is to produce software. That is: listen to our clients' requests and create a system that can does what they wanted, on their hardware (be it a global company IT infrastructure, a smart watch or a thermostat).

This sentence is a typical mission statement:
sounds nice, easy to repeat, and totally useless.

What they “wanted” is mostly unclear, we only know what they have told us. No, we only know what we have understood from what they have told us. “Does it or not?” is a yes/no question. In practice, we can only have a measurement that gives a hopefully objective ratio “how much” our system meets the requirements. We don't just want to create working, but good software. We want to compare different approaches and solutions objectively.

So, we need to measure the goodness, or fitness of our software.

Measurement theory

Fortunately, we do have a sound scientific methodology that can reliably guide us towards a better understanding and judgment, can estimate the “goodness” of our current understanding, and help us further refining it. To explain the title, we will only need the fundamental definitions.

System

In very rough terms, system can be any part of the world that 1: we separated from the rest, 2: interacts with its environment, and 3: changes during this interaction.

Naturally, any software is a system by this definition. However, the actual form of our software is thousands, sometimes millions of lines of source code, configuration, database content, collection of external libraries: gigantic amount of “content” in unclear, but existing relation to goodness. We need to simplify it.

Modeling

We never know “the truth”, but we don't even have to.

Drinking a glass of water is possible only by having the molecules, their atoms and their subatomic particles of my body, the glass and the water in it to follow a proper arrangement for the action; and “the truth” may even be under those levels. However, we have a good enough model of our body, the glass and the water, and we are able to control the process adequately.

Good models give us reliable control – bad models increase uncertainty.

If we know how good our models are, we can estimate the precision of our actions, or add safety mechanisms to our process and achieve a reliable operation in a less reliable environment. Standing is different in a room, in a moving bus or after some drinks, but we can manage such scenarios in a quite wide range by adaptation.

Black box models

These models describe the system from the external perspective only: we can see the environment, the input given to the system and its response. With enough tests, we can say that we know what the system does in certain conditions, and we can build reliable operation on it. However, the same system can give us surprise in untested conditions. The cooling system of our cars works normally, but can also cripple the complete engine in case the coolant freezes. Our black box model can only tell that it works now, but it is safer to look into the box.

White box models

White or glass box models are those that we see through: we know all the internal components and their interaction, so above knowing what it does, we exactly know how and why it does so. Of course, the “absolute white box” is the complete truth itself, which we don't know. The elements inside our white box models are also models, but we assume knowing enough about them to calculate their behavior. We do know about the constant subatomic buzz, but it will statistically never affect the behavior of our car engine. Unlike the fluid levels that we must check regularly.

Analysis

In practice, our models are not completely black or white, but this short introduction to modeling gives a clear statement: the “darker” our models, the less we should rely on their findings.

With a complete black box we can only have a checklist, we can grow them and repeat testing many times. But without peeking into the box, we can't even know what critical checks we have forgotten about. With a complete white box, we only have to check that the required elements, their parameters and connections are there, because if they are, then the system should work as expected. If it does not, the model gives us clues what parts can cause the problem and what checks are needed to locate it. It can also point at the critical elements that should be regularly checked to make sure the model is adequate.

The consequences are clear: it is definitely worth creating whiter models, and the opposite: constant struggle of otherwise motivated and adequately trained participants is likely caused by black box models somewhere in the way.

The development process

Negotiation

To simplify the scenario, our clients asks a question (“can you do what I want?”), and we give them an answer.

In general, we are in competition with others and need the money to continue the operation, so we want to offer more and/or ask for less than the others; while the clients want a working system in the long run but also want to pay less now. Furthermore, adequately refining the question and giving a reliable, honest answer needs a lot of effort and contains serious risk, especially if the competitors' offers are more “optimistic”.

Perhaps it would be too hard to say that within natural business environment our answer will always be the words the clients want to hear, but connected smartly enough to give us backdoors to extend the deadline and price in case we really have to do the job (in short: a lie, or a bit longer: professional sales material). But it would also be too optimistic to assume having a thorough requirement and architectural analysis before making the deal.

Design

Of course, there are programmers and companies who win a contract because they are ahead of all others by far. They start coding using agile methods, their solution will evolve to perfection naturally and don't need any more philosophy around it. May the Force be with them, but the rest of the world is not so sure of that, so they need objective measurement of goodness, and consequentially, some modeling.

Initially, we receive a requirement specification. That is, by definition, a black box model: we don't know the internal structures, don't even know what we don't know about the clients' problems or how to solve it. In order to get a better view, we need to make our models whiter.

But what should we model: the problem or the solution? We have to deal with both, and the two seems to be important alone. Especially, if we want to prepare for later changes from the clients, it is important to clearly see the interaction between the new requirements and our solution. By creating separate task and solution model, the connection must have a clean interface, thus the effects of changes will also be more transparent. Fortunately, we have separate roles for these tasks.

The system analyst deals with the problem model, talks the language of the clients, is an expert in the problem domain. Together with the clients, they refine the requirements, make a white box model of business domain entities, their responsibilities, interaction, and finally, check if the specified data model can behave as it was required. The software architect works with the solution model: software components, tools, databases, deployment environment. Together with the clients' IT experts, they design the actual system components, data tables, connections to the external systems. This is an iterative process, the actual environment may set needs or limitations to the original requirement, which can be improved and adapted to them.

Finally, we have two "enough white" boxes that show how we solve the task, can be objectively evaluated against the requirements, or adapted to later changes.

Implementation

And now...

we take our white box models and wrap them into black boxes again!

We write source codes on various languages, and create configurations to components that were written in various languages again. The source code has no defined connection to the structures that we have designed (coding standards and design patterns don't help much), there is no straightforward way to validate the result.

Each measurement is as good as its worst segment. Returning to a black box model means the complete, so far controlled development process is almost as bad as doing it all with no planning. In practice, the expensive design phase seems to be a waste of money and resources in meaningless discussions and brainstorming. Some of the lucky startups may overtake the highly organized companies even in the quality of their products (perhaps because they do the job at their desks that the big ones outsourced to cheaper but less motivated guys).

Houston, we've had a problem...

Solution

If this problem is so obvious, why don't we have a solution already? In fact, we do, on many levels.

Sedatives

Of course, we have tons of static and dynamic code analyzers, unit testing, integration testing, continuous deployment tools, etc. This does not help in the fundamental problem: we put our solution into a black box, and all quality measurements are just external checklists without understanding the internal structure.

The tools that peek into the program structures by detecting the graphs show useless complexity, gaining useful information from such a report is on the same magnitude as asking a professional to write it again.

Those that try to enforce connection between design and implementation like UML tools are very rarely used because they limit the freedom of both the designers and programmers without providing a clean process model for the transformation.

Considering all this, the current failure / delay rate should not be a surprise. Even if we gracefully forget about the 99% of startups that die without notice.

The Good Old Days

Decades ago, when there were much less programmers and much weaker hardware, we could not afford wasting so much resource on writing code, so for example, user interfaces were created by resource editors. There were much less hype around user experience, but those systems were quite usable.

Today

We have a renaissance of declarative user interfaces (Apple never left it, Microsoft, Google, Mozilla and many other vendors create their own user interface configuration tools). Application structure is also going out to configuration, these are the cloud based solutions, Inversion of Control Containers, etc.

There are also many systems that allow their users or admins to configure their operations. Security systems are configurable in many environments; we have workflow engines, task and project management tools, etc. All they can do can also be done by typing some lines of source code, but that is unsafe, it is better to have some visual editor to click and drag together the process in a guarded and validated environment.

What is common in these tools? They all bring the white box model back to the implementation level!

Is it a problem to solve at all?

Our economy is moved by the needs.

Education system is happy that we “need” legions of programmers who should type source codes to the always changing and ever newest platforms, “solving” the same problems again and again. This looks good in marketing campaign and political slogans, keeps the business running. Solving this issue would change the IT world, and is not compatible with any of our current business models.

Even if we could create the technology, we are not ready for its consequences.

Summary

  1. Software became fundamental element of the human civilization, its quality is critical;
  2. We can check and improve quality only if we can measure it;
  3. Measuring depends on the models that we create;
  4. Reliable checking, efficient problem finding, estimating the side effects of changes only available with white/glass box models, while black box models only allow guessing by experience;
  5. The requirements are black box models, that we can make white by expert problem and solution modeling, but traditional implementation puts it back to a black box again;
  6. Advanced computing technologies have one thing in common: they allow white box modeling in implementation.

So...

If you want to build a reliable system, write less code!

And use libraries that also follow this approach, because the quality and flexibility of your system is related to the same attributes of your weakest component.

2016. január 17., vasárnap

Én már nem muzsikálok...

Nos, elmúlt a 42, és sok szempontból ez volt a legjobb év eddig, megérte várni rá.

Úgy érzem sok mindennek megéreztem a mélységét, tartalmát. Végre mertem kérni, és nagy segítséget kaptam értékes emberektől ahhoz, hogy tovább tudjak haladni a belém égetett úton. Végre megértettem a különbséget: a ti gondolkodásotok célja az, hogy a komfortzónátokon belül maradjatok - az enyém meg az, hogy azon kívül hatékony legyek. Ezért beszélek hiába főként azoknak, akik magukat "dobozon kívül gondolkodónak tartják".

"Kint" nem változott semmi. Én viszont egyre könnyebben látom, hogy a körülvevő végtelen magány tekinthető szabadságnak, mozgástérnek is. Csak le kell mondani arról, hogy meg tudom oldani mások problémáit. A fejlődés útja, hogy a gyengét eltapossák, és én nagyon sokat töltöttem saját véges időmből azzal, hogy elveimet követve próbáltam elrángatni a porban játszó gyerekeket az autó elől.

Hálás vagyok, hogy a jelenben élek, egy olyan civilizációban, amely már minden kérdésemet és problémámat, de a választ is megfogalmazta már, sokkal szebben, mint én tudnám. Ezek az én ajándékaim, ezek a szövegek, ezek a hangok nekem szólnak. Hála érte!





2015. december 3., csütörtök

"Big ideas"...

3 Habits to Help You Get Big Ideas

So my advice to you to become more innovative is: don't accept the status quo, defer your judgment and stop thinking. I am sure great innovative big ideas will pop up sooner or later. Is it that simple? Yes, it's that simple. Just, try it!

I think the best guys do this in the kindergarten, and I guess this is a good recipe to share and get many "likes" from your pals. But to do something for real,

That. Is. HARD.

Simply, because you do not live in a world with complete idiots around you, and you are not a superhero from your favorite movies. So, you can't overtake "all the others" by being bold only. You MUST be really smarter than them, and that is a long and hard way, and maybe not for you because you are not... "the" chosen even if you are one of the very best. And those who finally win (in the real world) are the ones who know and ACCEPT this fact AND keep pushing! Got it? Real numbers and probability.

I like a story (I don't know the origin) about a Chinese Microsoft(?) office with a tag saying something like: "If you are smarter than a million of us, then you are perhaps one of the 1500 guys we want to choose from" ;-)

Or listen to the guy who does not only talk about success, or "manage ideas", but like or not, achieved something.