10. Februar 2020

The Big Bang is still on

The universe is about 14 billion years old. And it will be a 10.000 times older when the last stars burn out. The universe may look static and dark to us. But it is still in a violent final phase of the big bang. Compared to what follows, the big bang is still going on.
Before stars even formed the universe went through multiple development stages on vastly different timescales. It all started at the earliest observable time, the Planck time, a ridiculously tiny 10 to the minus 43 seconds. At 10 to the minus 36 seconds a process called inflation began to grow the universe very quickly. When inflation ended, the universe had spent 99.9 % of its age inflating. From this point of view, everything before inflation appeared just as an initial flash.
Then for a long time many things happened while the fundamental forces of nature unfolded and the laws of physics as we know them came into being. If someone had observed inflation come and go, then this next phase would have been unimaginably long. A 1000 billion billion billion times longer than inflation had lasted. But finally, quarks condensed into hadrons. Protons and neutrons formed. When that happened, the universe was just a microsecond old.
The universe continued to expand and cool down until electrons and protons could combine to hydrogen atoms. Imagine, you just observed hadron condensation. Then you had to wait another 10 billion billion times longer until hydrogen atoms formed. That's 400.000 years after the birth of the universe. And it is still 3000 K hot.
Now things happen in quick succession. Only 1000 times longer than everything before hydrogen atoms and the first stars light up. Stars form galaxies, life appears and hairless apes gaze to the stars. From our point of view, the first stars appeared after only 1% of the age of the universe. 100 times later, now at 13,8 billion years, mighty galaxy clusters are in full swing. The dark matter halo of galaxies sucks in intergalactic hydrogen, galaxies merge, stars explode, supermassive black holes shoot gas and jets into the intergalactic medium. A wild time.
The universe started out at ridiculously high temperatures. It cooled down. But it is not yet cold. Stars are hot. They flood the universe with radiation and even where the stars never shine, the universe has a decent background temperature of several degrees. Cold for us, but a lot more than nothing.
Radiation is everywhere. We are living in the afterglow of the big bang. With an emphasis on "glow". The universe is still very bright in the microwave range of the electromagnetic spectrum. Our eyes cannot see microwaves. But they are there. The universe is still glowing bright from every direction and uncountable stars do their part to keep it up.
New stars will be born and will die for a long time to come. The smallest live 1000 times longer than our sun. But eventually, the last stars fade. The universe gets dark. That's when the radiation frenzy of the big bang finally ends. The universe will then be 10.000 times older than now. From that point of view, we had been living in the first percent of a percent of the universe. Quarks had condensed into nucleons. Nucleons combined to atoms. Atoms formed stars. Stars kept radiation going. The violent phase of forming and radiating is over when the last stars fade. This is the end of a universe flooded by radiation. A 100 trillion years from now. The end of the radiation epoch. The real end of the big bang.
Times are starting to drag. Nothing happens quickly anymore. No more stars popping in and out of existence. No more flashlights in the dark. No more radiation sources. Only cold planets orbiting black dwarf stars, iron balls, slowly tumbling neutron stars, and black holes in dark galaxies. It's the quiet grown-up phase of the universe. Except for the occasional collision, which sends a blindingly bright spark into the universe.
What does not collide finally spreads evenly. Planets wander off and dark solar systems dissolve. It took a long time until the last star burnt out. And over 100.000 times that duration, galaxies also dissolve thermodynamically. They lose their stars to the void. Iron balls and black holes are still there. But they are now evenly distributed and rarely meet each other. The radiation that was produced in earlier times is also still there. But it is spread out over a vastly larger universe. Photons are so red shifted to ultra-long wavelengths that they are barely noticeable. For all practical purposes, radiation is gone.
The universe is now so dark, that the faint glow of hawking radiation becomes the new standard. Black holes slowly start to evaporate. Hawking radiation of stellar black holes is so weak, that it is not measurable in our bright universe. On the contrary, our times are still so warm that black holes can inhale the cosmic microwave background and grow a little bit. But then, at the beginning of the end of times, hawking radiation is the only light source. It is weak. If there is any life, then it lives slowly. It will perceive the entire age of stars, a 100 trillion years, like the blink of an eye. On these timescales, a photon every billion years is considered a bright light source. Again, there are flashlights in the dark. But on a totally different scale than the long-forgotten stars.
Even though the universe is huge, black holes still find each other. But between each collision lies a timespan like an entire radiation epoch. Now that counts as the blink of an eye. A hypothetical life form might then be based on ultra-rare quantum tunneling events and it will be living by hawking radiation. It might see black holes as we now see stars and perceive the flashes of merging black holes like we see super novae in distant galaxies all the time. For this kind of life, the universe is filled by shining stellar black holes and glowing supermassive black holes. When black holes lose mass this way, they shine even brighter. Until they explode. Flashes of black hole explosions and collisions are everywhere.
Remember the long time until dark galaxies dissolved. That was long after all stars went the black hole or iron ball path. It takes a trillion trillion trillion trillion times that again until stellar sized black holes evaporate. That's not "just" a trillion trillion trillion trillion years. It's trillion trillion trillion trillion times all that was before, which already was a billion times longer than our current 13.8 billion years universe. It's a long time, even for ultra-slow quantum tunneling life that lives off a photon every billion years.
Then only real behemoths remain. Giant black holes that dwarf our current supermassive black holes. They have the mass of galaxy superclusters. And they also evaporate. But exponentially slower due to their size. It takes another trillion trillion trillion times more.
Eventually there are only ridiculously red-shifted photons left in a ridiculously large universe. The hypothetical quantum tunneling life will be long gone. Our biological way of life is 1 billion years old. It might last 10 billion, maybe even 1000 billion years. The quantum tunneling life may last trillion trillion trillion times longer. It will regard our phase as one of the early stages of the universe. As the last part of the big bang, when the universe was still hot. The black hole era is the real "life" of the universe. Everything before that is just the big bang. An unmeasurable short flash bevor black holes emerged and stayed. And went.
On a logarithmic timescale we live much closer to the begin of everything than to the end. We are now in the first third of the logarithmic timescale. We live off the stars. We think that our time is the real time of the universe and that the big bang was a flash 13.8 billion years ago where nucleon and atom synthesis happened.
The second third of the logarithmic timescale belongs to the hypothetical quantum tunneling life. They live off black holes. And they do this an unimaginable 10 to the 40 times longer than we did. They think that their time is the real time of the universe and the big bang was just a flash a trillion trillion years ago including a brief stellar phase that gave them their black holes.
We don’t know much about the third part of the timescale. Maybe it is just boring for another 10 to the 40 times longer. Maybe there is life so strange and slow, that it regards the earlier already unimaginable slow quantum tunneling life as just the blink of an eye. Just a flash before their own real time began.
_happy_waiting()

Intro in DE as posted:

Ich habe da mal eine These:
Ich behaupte, dass der Urknall noch im Gange ist.
Der Urknall endet erst, wenn die letzten roten Zwerge verblassen. Dann endet die Epoche der Strahlung. Mit der Epoche  der Schwarzen Löcher (BH-Epoche) beginnt die wahre und viel längere Geschichte des Universums. Alles was vor der BH-Epoche war, ist aus Sicht der BH-Epoche nur ein kurzer Blitz. Was wir als Urknall bezeichnen bis zur Nukleonensynthese, inklusive H-Rekombination, unser heutiges 14 Milliarden Jahre Zeitalter und die weiteren 100 Billionen Jahre der Sterne sind im Vergleich zur BH-Epoche eine wilde strahlenreiche explosive Anfangszeit. Die BH-Epoche erwarten wir zwischen 10^40 und 10^100 Jahre. Das ist noch weit weg und dann unvorstellbar lange.
Mir ist klar, dass man als Urknall im Sinne von Knall=kurz normalerweise nur die erste Sekunde, maximal Minuten bezeichnet. Schon H-Rekombination wird als "400.000 Jahre nach dem Urknall" bezeichnet wird. Oder zählt man H-Rekombination noch zum Urknall? Wenn 400.000 Jahre gehen, dann auch 13 Milliarden oder 100 Billionen. Die Abgrenzung auf Mikrosekunde (Hadronen), Minuten (Nukleonen) oder 400.000 Jahre (H-Rekombination) erscheint mir etwas willkürlich. Das ist nur eine Frage der Skalierung. Skalierung relativiert sich aber sehr, wenn zig-Zehnerpotenzen dazukommen.
Bei der H-Rekombination war das Universum ca. 3000 K warm. Jetzt noch 3 K. Mikrowellenhintergrund (CMB) ist überall. Wir sehen es nicht, aber im richtigen Mikrowellenspektrum ist der Himmel noch hell erleuchtet. So richtig "vorbei" ist der Urknall erst, wenn das nicht mehr so ist.
Ruhig wird das Universum erst, wenn Sterne keine Strahlung mehr beitragen und CMB so ausgedünnt und rotverschoben, dass er nicht mehr messbar ist. Dann sind die einzigen Ereignisse ein einziges Photon Hawking Strahlung pro Milliarde Jahre von einem stellaren Schwarzen Loch und alle Billion Billion Jahre im ganzen sichtbaren Universum eine BH-Kollision.
Würde man auf diesen Zeitskalen beobachten und entsprechend langsam leben, dann würde man stellare BH wie Sterne am Himmel strahlen sehen und zwischendurch glüht ab und zu schwach ein SMB. Für sehr lange Zeit. Es ist die ruhige, stabile Zeit des Universums. Und rückwirkend erscheint alles inklusive der Epoche der Sterne nur als ein kurzer Blitz. Denn der Unterschied zwischen Hadronensynthese bei einer Mikrosekunde und dem Ende der Sterne bei 100 Billionen Jahren ist aus Sicht der BH-Epoche bei 10^40 Jahren nicht groß.
Was haltet ihr davon?
Könnte man das so sehen?
Sind wir noch in der Endphase des Urknalls?
Aus der Sicht von BH-Epoche-Wesen vermutlich schon.

Intro in EN as posted:

I have a theory and I would like your opinion. 
I maintain that the Big Bang is still going on when we take time scales into account.
I maintain that the Big Bang ends when the last red stars fade away. Then the epoch of radiation ends. With the epoch of the black holes (BH-era) begins the true and much longer history of the universe. Everything that was before the BH-era is, from the point of view of the BH-era, only a short flash. What we call the Big Bang until nucleon synthesis, including H-recombination, our present 14-billion-years and 100 trillion more years of red stars is just, a wild, radiation-rich explosive beginning time, compared to the BH-era. We expect the BH-era to last between 10^40 and 10^100 years. That is still far away and then unimaginably long.
I am aware that the term Big Bang in the sense of bang=short might be limited to the first second, maximum minutes. H-recombination is often called "400.000 years after Big Bang". Or does H-recombination count as part of the Big Bang? If 400,000 years are part of the Big Bang, then 13 billion or 100 trillion could also work. A limitation to microseconds (hadrons), minutes (nucleons) or 400,000 years (H-recombination) seems somewhat arbitrary. It is only a question of scaling. But scaling is very much put into perspective when tens of powers of ten are added.
At H-recombination the universe was about 3000 K warm. Now it's still 3 K. Cold for us, but not compared to 10^-6 K in labs. Microwave background (CMB) is everywhere. We do not see it, but in the right microwave spectrum the sky is still brightly lit. One could argue that Big Bang is only really "over" when there is no (I mean "much much less") radiation all around.
The universe only becomes calm when stars no longer contribute radiation and the CMB is so thinned and redshifted that it can no longer be measured. Then the only events are a single photon of hawking radiation per billion years from a stellar black hole and every trillion trillion years in the whole visible universe a BH collision.
If someone were to observe on these time scales and live correspondingly slowly, they would see stellar BHs shining like stars in the sky. And SMBs would faintly glow from the distance. For a veeery long time.
This is the quiet, stable time of the universe. In retrospect, everything including the epoch of the stars only appears as a short flash. Because the difference between the synthesis of hadrons at one microsecond and the end of the stars at 100 trillion years is not big from the point of view of the BH-era at 10^40 years.
Admitted, this is only about terms and definitions. Not physically relevant.
What do you think about this?
Is this reasonable?
Are we still in the final (long) phase of the Big Bang?

From the point of view of BH-era beings we probably are.

17. Januar 2020

Galactic Developments Messestand

Beim Berlin Sci-Fi Filmfest hatte ich einen schönen Galactic Developments Stand. Das Berlin Sci-Fi Filmfest ist pure SciFi ohne kein Fantasy. Deshalb viele viele SF interessierte und immer was los. 2 Tage je 12 h von 12 h bis 24 h. Ein neues customisables Rollup und 2 schöne Lego-Raumschiffmodell. Das sind echt Publikumsmagneten.



_happy_dreaming()

13. März 2019

A Coders Take on BREXIT: The Lupus Solution

Usually I avoid politics and that's what I also do in this post. No opinion, I am actually 50:50 anyway. I am enjoying the show. This is purely technical.

In short: EU article 50 is a timer. It can be cancelled and restarted any time. Just like the programming timers we know. So, the solution is exactly what we do in programming: cancel and restart.

On 4 December 2018, the responsible Advocate General to the ECJ published his preliminary opinion that "a country could unilaterally cancel its withdrawal from the EU should it wish to do so, by simple notice, prior to actual departure".

Meaning, that the UK can cancel Brexit any time. But the UK can also restart Brexit at any time again. There are no time limits, no grace periods, no rate limiting on article 50 cancelling and triggering.

That makes the solution obvious: send two letters to the EU back to back.
  • the first with the cancellation of the article 50 process,
  • the second with a new trigger of article 50. 
(In practice you would play it safe and leave one day between cancel and reset.)

The result would be (almost) the same as the already planned 2 year  transition period. The March 2019 date is only the legal departure date. for all practical purposes, the UK leaves 2 years later after the transition period (December 2020). Let's get rid of the transition period and call it a second article 50 process, another two years. Practical separation would then be March 2021, only 3 months later than already planned.

Just make a law in parliament to cancel article 50 AND trigger it immediately again. 

Gives you time for a referendum or a general election or just a good transition period. Anything you want. Gives you time and changes nothing. The move just gets rid of the threatening no-deal timer.

Bonus: an extension of article 50 requires the agreement of all EU members. But the cancel/restart-move can be done by the UK alone.

Bonus Bonus: 2 years transition is what the Brits wanted, but the EU wanted a clean end of year date. So they settled for 21 months. A simple timer reset makes that 24 months again. Owned!

The ECJ handed this solution to the UK. They know what they do. This was not an accident. They mean it. That's the way out. Just do what every programmer does with timers: reset.

_happy_resetting()

PS: it's clearly an exploit and a bit shady. But it's legal. The contract is not meant to be used this way. But many contracts are "stretched". What happened to "no bailout" in the Euro zone? Giving Greece money to be (maybe) payed back in 50 years, is a stretch. What happened to the "prohibition of monetary financing"? Ah, yes, The ECB buy government bonds not directly from he governments, but from the "secondary markets". The ECB so much that the "intermediate" banks are actually straw men, being paid to circumvent Article 123. Another stretch. So, contracts are stretched, if deemed necessary. All we have, unfortunately, is the written word. The written words allow it AND it's necessary.

PPS: If people ever wanted to make exploit proof contracts and laws, then they could ask the gaming industry for advice. They have thousands of specialists who make a living by preventing the exploitation of coded rules. If computer games as an example are too low for you, then ask IT security experts or turn to academics in the field of game theory, the study of mathematical models of strategic interaction between rational decision-makers.

PPPS: In the long run: if you can do it twice, then think n+1. We can do this every other year. Maybe the UK and EU get used to it. Gives the UK a feeling of independence. And that's what it's all about, anyway. Every two years, UK activates article 50 and cancels it two years later. In practice: every other year, Brussels receives a briefcase with 2 letters from London.

28. Februar 2019

Agile mit Super Powers

Superboys: Edict-Abhilekh on Pixabay
tl;dr Scrum Rollen superpowern: Es gibt viel zu tun. Deshalb muss man Fähigkeiten zusammenlegen: Scrum-Master coacht auch agile Technologien, Product Owner macht UX-Design, Visual-Designer kann Frontend-Programmierung, Entwicklungsleiter ist Technik-Coach für Product Owner.

In der realen Welt brauchen wir mehr Rollen, als die bekannten Rollen im Scrum: Scrum Master, Product Owner und Entwicklerin.

Außerdem gibt's da noch:
  • Tester, die Test-Ingenieure sein sollten, nicht Durchklicker, sondern Integration-Test-Entwickler und Test-System Managerinnen,  
  • Admins, früher Operator, jetzt Devops, also Devs mit Leidenschaft für Betrieb, 
  • Systemarchitektinnen, die sich oft aus den Entwicklern rekrutieren und auf jeden Fall aktiv in den Entwicklungsteam sein sollten, vielleicht organisiert in Communities of Practice, aka Chapters, 
  • UX-Designer, ständig ein bisschen gebraucht, denn bei jedem Feature mit Business-Value für Benutzerinnen ist UX wichtig, 
  • Visual-Designer, soll ja auch gut aussehen, oft zwischen mehreren Teams geteilt oder sogar extern bei einer Agentur oder beim Auftraggeber. Burst-artige Arbeitslast und deshalb immer in der Gefahr, die Entwicklung aufzuhalten. 
  • Produkt Managerin, die auch gewillt ist mit dem Agile-Team ins Eingemachte zu gehen und zusammen was umzusetzen. Phantastisch, wenn sie nicht aufhört bei Marktpotential/Marktbeobachtung und Anforderungen, sondern selbst die User Stories scheibt. 
  • Marketing, Vertrieb, Controlling, Management… sind auch nötig, damit was geht, schon klar.
Von den Entwicklerinnen verlangt man heute viele Fähigkeiten:
  • Frontend und Backend, jeweils mit ihren aktuellen (und schnell wechselnden) Frameworks, 
  • Unit Tests ohne Zeit-Overhead während des Codings "einfließen" zu lassen, 
  • Integration-Tests und GUI-Tests aufzusetzen und up-to date zu halten während sich UX Workflows ändern, 
  • Beherrschung von Continuous Integration/Deployment Systemen, 
  • Container und Orchestrierung, 
  • Virtuose Bedienung von Code Repositories für Quellcode, Pakete, Container (Stichworte: GitFlow, nuget/PEAR, Dockerhub). Nicht nur benutzen, sondern auch bereitstellen, intern und extern. 
  • Code Reviews und Refactoring
  • Code-Metriken
  • Kenntnis und Benutzung von Monitoring-Systemen für Alarm, Dashboard und KPIs, 
  • Clean Code, Design Patterns, Entwicklungsumgebungen und deren Extensions, 
  • Security (in Code, Libraries aus Repos?, Operating), 
  • Reliability-Engineering, 
  • Skalierung (Up and Out)
  • Konfiguration der APIs und GUIs diverser Cloud-Anbieter und Meta-Cloud-Services, 
usw.

Unter den Entwicklern gibt es Spezialisten für das alles. Aber nehmen wir ein Team von 7, (UX-) Designer, Tester, Admin (ähm, Devops), Frontendler, Backendrin (eigentlich sollen alle alles können, aber nicht jede die Microservices containerisiert ist ein CSS3-Wizard). Dann wird es langsam eng mit den oben genannten Spezialfertigkeiten. Coden sollen sie ja auch noch. 

Warum machen wir das alles?

Damit Features entstehen. Features, die User glücklich machen. Features entstehen durch Coding. Ohne Coding keine Features. Viel Coding - viele Features, wenn sonst alles stimmt.

Fragt man in der Retro "was hat dich in diesem Sprint vom Coden abgehalten?" - typische Antwort: "Meetings", aber auch immer öfter "Infrastruktur" und vor allem: Infrastruktur aneignen, neu lernen und verstehen. 

Ganz viel dieser Infrastruktur macht uns agil bzw. ist nötig für agile Arbeitsweise über Scrum/Kanban hinaus:  Continuous-*, Container, Cloud, Clean Code, Frameworks, Repositories…

Die Infrastruktur hat gemeinsam: Sie ist aufwändig für jede einzeln zu lernen, aber notwendig, und wenn erstmal gelernt, dann völlig OK. Aber bis dahin dauert es.

Deshalb:

Superpower #1: Agile-Coach mit agiler Technologie

Es könnte/sollte/müsste die Aufgabe des Scrum-Master sein, agile Technologien in das Team zu tragen, so wie auch agile Arbeitsweisen in das Team getragen werden. Natürlich soll die Scrum-Masterin nicht dauerhaft den Build-Server betreuen (obwohl sie das kann, wenn sie mehrere Hüte aufhaben will/kann/soll). Es geht darum, dass der Agile-Coach das Wissen in das Team trägt, damit nicht immer wieder wertvolle Entwicklerzeit darauf verwendet wird, zu lernen, wie man einen KPI-gesteuerten Continuous Deploment Prozess konfiguriert. Und wenn wir schon dabei sind: Es ist auch die Aufgabe des Agile-Coaches, die Beschäftigung mit Clean-Code und Design-Patterns zu stimulieren, vielleicht sogar selbst zu schulen, zumindest aber die Seniors dazu zu bringen, dass sie ihr Wissen teilen. Aber dazu muss man wissen, was es zu teilen gibt. Sorry, liebe SMs aus dem Persönlichkeitscoaching, eine agil-technische Scrum Masterin macht das Team nicht nur glücklicher, sondern auch schneller, viel schneller. Und mit schnell kommt glücklich: Superpowered Scrum-Master.

Superpower #2: Product Owner mit UX-Design

Bei allen Features mit Business-Value für Endbenutzer ist UX wichtig. Coding ist dafür da, dass die Funktion funktioniert. Aber "glücklich" werden Benutzer durch gutes UX-Design. Ein Product Owner gießt die Kunden-/Benutzer-/Stakeholder-Anforderungen in User Stories. Bei fast jeder Story ist UX-Design nötig, zumindest Grundkenntnisse, besser umfassende. Eine gute UX-Designerin kann lernen, wie man User Stories schreibt und vielleicht sogar wie man mit Stakeholdern redet. Aber ob ein Product Owner UX lernt? UX-Design ist ein Beruf und gottgleiches User-Story Schreiben eine Berufung. Erst die klassische Ausbildung: gute Anwendungen entwerfen, dann die agile Spezialfähigkeit: User Stories und Kommunikation: Superpowered Product Owner.

...und weil wir schon dabei sind. Das wäre auch toll:

Superpower #3: Visual-Designer mit Frontend-Programmierung

Da ist nicht viel zu sagen. Wenn die Visual-Designerin gut ist, wird die Anwendung schön. Wenn sie das, was designed wurde, auch umsetzen kann, ist es toll für alle. Sie muss das Design nicht an den Entwickler übergeben. Es gibt keine Rückfragen, keine Verzögerung, keinen Mind-Bruch. Sie kann beim Design gleich die technischen Randbedingungen berücksichtigen. Keiner muss der CSS-Sklave für die Designerin sein. Die Arbeitslast ist viel ausgeglichener, so dass man kann sich eine ganze Designerin exklusiv pro Team leisten: Superpowered Designer.

Superpower #4: Entwicklungsleiter mit Technik-Coach für Product Owner

Viele Product Owner kommen nicht aus dem technischen Bereich. Das ist gut so, um die Entwicklung mit dem Produktmanagement zu verzahnen. Auf der anderen Seite ist es von Vorteil, wenn die User Stories so geschrieben werden, dass sie 1. In die Gesamtarchitektur passen und 2. die Entwickler verstehen und machen, was gemeint war. Für beide Fälle ist es gut, wenn jemand den Product Owner bei der Formulierung der User Stories berät. Eigentlich sind die Entwicklerinnen die technischen Berater des Product Owners. Aber das kostet Entwicklerzeit, oft von allen. Deshalb bürden wir das lieber der Entwicklungsleiterin auf. Die Entwicklungsleiterin kennt die Gesamtarchitektur, die IT-Strategie und er versteht wie Entwickler denken. Sie schreibt nicht die Stories um. Nur der PO schreibt User Stories. Aber eine Entwicklungsleiterin kann durch Fragen den Product Owner dazu bringen, die Stories so zu schreiben, dass die Entwickler die Stories verstehen und dass sie in das Gesamtkonzept passen. Eine Stunde pro Woche und Team reicht, um die technische Qualität der User Stories deutlich zu verbessern. Wissen was passiert und gleichzetig steuern ohne zu stören. Es ist das beste Steuerungswerkzeug der agilen Entwicklungsleiterin, ohne den agilen Prozess zu verletzen. 

Heute sind viel mehr Fertigkeiten nötig. Man muss Fähigkeiten zusammenlegen. Nicht nur bei den Entwicklern, denn die sollen entwickeln. Alle müssen mehr machen und mehr können als bisher. 

Niemand hat gesagt, dass Superkräfte einfach sind.

#SuperPoweredAgile

_happy_powering()

16. Dezember 2018

Kennzeichnungspflicht für Social Bots

Breaking News: Die Bundesregierung erwägt Kennzeichnungspflicht für Social Bots

Social Media Bots sollen sich zu erkennen geben und mitteilen, dass sie keine echten Menschen sind, sondern Automaten, die nur Meinungen multiplizieren. Sie sollen gekennzeichnet werden, damit Leser unterscheiden können, ob das eine Diskussion zwischen Menschen ist oder nur - meistens gegen Geld - Meinungen beeinflusst werden sollen. Das kennt man schon von Werbung, die gekennzeichnet werden muss, damit man sie von redaktionellem Inhalt unterscheiden kann.

Das ist sehr sinnvoll und richtig.

Und weil das so sinnvoll und richtig ist, wurde das schon mal vorgeschlagen. Vor ziemlich genau 10 Jahren: Bot Tagging.

Da hat sich schon mal jemand Gedanken darüber gemacht dass man Menschen (Chatter) in Chatsystemen nicht hinters Licht führen sollte indem man Bots programmiert, die sich als Benutzer ausgeben.

Es gibt Bots, die Werbung machen, Bots die unterhalten und heutzutage sogar Bots, die lügen und Fake-News verbreiten. Letztlich ist politische Beeinflussung durch Bots auch nur politische Werbung in einer besonders ansprechenden vertrauenswürdigen und damit hinterhältigen Form.

Da es so viele verschiedene Bot-Arten gibt, sollte es ein Kennzeichnungssystem geben, das mehr aussagt, als Bot JA/NEIN. Man will wissen
- ob der Bot kommerzielle Werbung macht oder politische,
- ob er der Unterhaltung dient oder eine Servicefunktion erfüllt,
- ob er jugendfrei ist oder - allgemeiner ausgedrückt: die Kennzeichnung braucht auch eine Altersfreigabe.

Schön wäre auch die Angabe eines Themas. Dafür bräuchte man eine Ontologie. Die müsste man sich nicht selbst ausdenken. Der Verweis auf ein bestehendes Verzeichnissystem würde reichen, z.B. Wikikedia-Begriffe als Vokabular oder etwas hierarchisches, wie das (leider eingestellte Open Directory Project oder hier).

Das alles steht in der "Virtual Presence Technical Note 5: Bot Tagging", weil wir bei Weblin das schon damals gesehen haben.

_happy_tagging()


23. November 2017

CSV im US Format im Excel öffnen (Komma statt Semikolon) - Systemsprache kurzfristig umstellen

tl;dr: Systemsprache kurzfristig umstellen. Powershell: "Set-Culture en-US" und zurück: "Set-Culture de-DE"

Man bekommt immer wieder mal CSV-Dateien im US-Format. Die enthalten Komma statt Semikolon als Trennzeichen. Ein deutsches Excel will das nicht anständig öffnen.

Was tun?

Man kann:
  • das CSV als Textdatei öffnen und "," durch ";" ersetzen (viel Spaß mit "," in den Daten)
  • das CSV in .txt umbenennen und im Excel importieren und dabei as Komma als Trennzeichen angeben
Oder: man stellt einfach kurz die Systemsprache um durch ein Powershell Kommando (Commandlet). 

So geht's:
  • Powershell öffnen
  • PS C:\> Get-Culture (liefert: de-DE)
  • PS C:\> Set-Culture en-US
  • CSV öffnen durch Doppelklick
  • PS C:\> Set-Culture de-DE
  • Powershell schließen (oder offen lassen, braucht man immer mal)
Voila, englisches (US) CSV importiert.

(Wenn man es jetzt als CVS speichert, hat man ein englisches CSV in ein deutsches konvertiert).

Kleine Verbesserung (vorherige Einstellung transparent wiederherstellen):
  • PS C:\> $c=Get-Culture; Set-Culture en-US
  • CSV öffnen/bearbeiten
  • PS C:\> Set-Culture $c
Oder man legt sich diese 2 auf das Desktop:
  1. Dateiname: EN.bat
    Inhalt: powershell.exe -Command "Set-Culture en-US"
  2. Dateiname: DE.bat
    Inhalt: powershell.exe -Command "Set-Culture de-DE"
_happy_converting()

19. Mai 2017

CSS Customize Visual Studio Online Task Board - Remove Columns And Make it Denser

I use Visual Studio Online task board a lot for Scrum projects. But I do not like how much screen space it takes primarily because of lots of empty space.

So, I remove the empty space:

  • I do not need the "To be tested" and "Testing" columns.
  • The cards could be smaller with less margins and paddings
That's it.

I use Tampermonkey to inject CSS into the page.

Just install the Tampermonkey Chrome/Firefox extension and use this script:

Before/After:



More info, less white (grey) space.

_happy_tampering()

PS: Once you have Tampermonkey you will see lots of opportunities to change the layout of web sites. You don't have to live with it. You can change it.

For example: a script which make visual studio build colors more pronounced to counter my red-green-color weakness:

5. Dezember 2016

JsonPath

Any time a piece of my software receives a JSON message it must dive into the JSON and extract parameters. Sometimes the JSON is deeply nested and parameters are buried inside arrays of objects of arrays.

I want to access these parameters quickly without dissecting the JSON by looping and if-ing through the layers. In other words: I want single line expressions to dive into JSON and extract values.

You can call it XPath for JSON, but a language integrated compiled way, which his much faster, than XPath and supported by Intellisense (autocomplete).

GitHub project: https://github.com/wolfspelz/JsonPath
NuGet package: https://www.nuget.org/packages/JsonPath

Example: extract the 42 from:

var data = "[ '1st', '2nd', { 'aString': 'Hello World', 'aNumber': 42 } ]"

... parse it:

var json = new Node(data);

... extract it:

int fourtytwo = json[2]["aNumber"];

Invalid keys do not throw exceptions. They return 0 (zero), "" (empty string), or empty list:

int zero = json[1000]["noNumber"];

Of course, you can foreach a dictionary (aka JS object):

foreach (var pair in json[2]) {}

And iterate over a list (aka JS array):

for (int i = 0; i < json.Count; i++) {
    string value = json[i];
}

You can even LINQ it:

json[2].Where(pair => pair.Key == "aNumber").First().Value

and:

(from x in json[2] where x.Key == "aNumber" select x.Value).First()

Now get me the 50 from this JSON:

var data = "[ { 
        aInt: 41, 
        bLong: 42000000000, 
        cBool: true, 
        dString: '43', 
        eFloat: 3.14159265358979323 
    }, { 
        fInt: 44, 
        gLong: 45000000000, 
        hString: "46"
    }, { 
        iList: [ 
            { jInt: 47, kString: '48' }, 
            { lInt: 49, mString: '50' }
        ], 
    }
]";

I can do it in a single line, no foreach no if:

var fifty = json[2]["iList"][1]["mString"];

Other people had the same idea years ago: http://goessner.net/articles/JsonPath/. But there does not seem to be a C#/.NET implementation yet. So here it is: GitHub, nuget.

_happy_jsoning()


26. September 2016

Scrum Gantt als Google Docs Sheet

Im letzten Post zum "Scrum Gantt-Chart" habe ich beschrieben was, warum und wie man aus Scrum-Daten ein Scrum-Gantt als Reporting-Tool erzeugt. Die Scrum-Planung ist weiterhin im Scrum-Backlog, aber das Management (allgemein: die Stakeholder) freut sich sicher über eine Roadmap im Gantt-Stil.

=> Implementierung das Gantt-Charts als Google Docs Sheet <=

Empfehlung:

  • Sheet kopieren: GoogleDocs => Datei => Kopie erstellen...
  • Das eigene Backlog im Eingabebereich auf der linken Seite einfügen
  • Datum "BaseDate" und "Today" anpassen
  • Zeilen und Spalten im Formelbereich an das eigene Backlog anpassen
  • Jede Woche eine neue Version machen und den Stakeholdern veröffentlichen
Wenn die Spalten des eigenen Backlogs kompatibel sind, ist das eine Sache von 2 Minuten


==> Google Sheet

_happy_sheeting(:-)

8. September 2016

First GIF Movie Ever Was a Star Trek clip

This is the first GIF-Movie ever shown on the World Wide Web in a web browser.

In 1995, I convinced the browser company Netscape to support GIF animations. It appeared in Netscape Navigator 2.0 as a hidden feature. The big marketing features where Javascript, Frames and Server-Push. But it also had animated GIF.

To test it, I needed a long GIF-stream. 1 MB was considered big and long at the time. And I thought it needs some style and not just a boring test image with test data. So, I extracted frames from a short QuickTime Star Trek movie and created the first GIF movie for the Web.


Then we used the feature to create the first Web Live Video Stream ever. It showed a model railway setup at University of Ulm, Germany.


First Live Video at a time where "live cam" meant "please reload the page to fetch a new image".


The live GIF feed was also used to implement the first live chat when "chat feed" meant "please reload the page to get new lines".

That's many firsts. Going where no one has gone before is my hobby. That movie fit.

_happy_going_where_noone_has_gone_before()

5. September 2016

Scrum Gantt-Chart

tl;dr

Ein Gantt-Chart aus Scrum-Daten verschafft mehr Überblick als ein Release-Burndown. Dazu erweitert man das Backlog um Kalenderspalten, in denen jeweils der Sprint markiert ist, in dem eine Story bearbeitet wird. Nebeneffekt: Management bekommt eine Roadmap und weiß was das Team macht. Steigert die Akzeptanz bei Gantt-verwöhnten Stakeholdern.

Was

Das Gantt-Chart stammt aus der klassischen Projektplanung bei der sehr detailliert Aufgaben, Abhängigkeiten, Termine und Ressourcen verwaltet werden. Droht ein Termin zu platzen, dann bekommt die gefährdete Aufgabe mehr Ressourcen.

Das ist nicht die Sichtweise von agiler Entwicklung. Bei Scrum wird nicht von vorne herein das gesamte Projekt im Detail durchgeplant ist. Es wird nur geplant wird, was auch umgesetzt wird. Teams und nicht Ressourcen übernehmen Aufgaben. Eher wird der Scope reduziert oder ein Termin verschoben, als Ressourcen (die ja Menschen sind) umher zuschieben.

Mit der klassischen Detailplanung kann man ganz genau sagen, wie ein Projekt laufen wird, zumindest wie es laufen soll. Die Wahrheit stellt sich hinterher heraus. Und sie ist immer anders als geplant. Mit anderen Worten: die genaue Projektplanung führt nur dazu, dass man sich genau irrt. Ein Grund warum die klassische Projektplanung im Agile-Umfeld verpönt ist. Damit ist auch das Gantt-Chat, als Übersicht des klassischen Projektplans, in Misskredit geraten.

Warum

Dabei hat es das nicht verdient. Auch bei Scrum wollen Stakeholder wissen, wann was fertig wird. Scrum will die genaue Aussage darüber vermeiden. Aber trotzdem bleibt der Wunsch nach konkreten Aussagen. Das Interesse von Management und Kunden am Projektfortschritt ist berechtigt und kann mit einer Roadmap im Gantt Stil befriedigt werden. Nicht zuletzt hilft eine Roadmap-artige Übersicht auch dem überzeugten Scrum-Befürworter, rechtzeitig Scope und Termine zu steuern.

Überraschenderweise hält der Scrum-Standard alles bereit, um ein Gantt-Chart zu erstellen. Ein Gantt-Chart, das alle Anforderungen von Gantt-Chart-verwöhnten Stakeholdern erfüllt. Die Erzeugung des Gantt-Charts kann automatisiert werden. Sie kostet im Scrum Prozess nichts. Das Ergebnis ist auch nicht genauer als die bekannten Gantt-Charts klassischer Projektplanung. Aber es dient der Transparenz. Damit erfüllt es eine wichtige Funktion im Scrum. Gleichzeitig fördert das Gantt-Chart die Akzeptanz von Scrum durch wichtige Stakeholder (Management).

Hier geht es also um ein Gantt-Chart als Reporting-Tool, nicht als Planungstool. Die Planung ist komplett Scrum.

Wie

Ein Gantt-Chart aus Scrum-Daten zu erstellen ist sehr einfach. Jede geschätzte Scrum User Story hat Story Points. Die Story Points entstehen ganz normal wie bisher im Scrum Prozess. Aus vorangegangenen Sprints ist die Velocity (Story Points pro Sprint) bekannt. Die bisherige Velocity wird auch für die Zukunft angenommen.

Dann berechnet man für jede Story in welchem Sprint sie fertig wird und markiert den Sprint im Kalender. Done.

Daraus ergibt sich ein Backlog mit zusätzlichen Kalenderspalten in denen jeweils die Felder markiert sind in denen eine Story in Arbeit ist und/oder fertig wird. Das sieht dann so aus:


Bonus

Zusätzliche Ideen aus der Praxis:
  • Abgeschlossene, "in Arbeit" und zukünftige Stories farblich unterscheiden.
  • Zukünftige Velocity = letzte Velocity modifiziert durch Sondereffekte wie Urlaub.
  • Ein zusätzliches Datumsfeld je Story, das angibt für wann ein Feature dem Kunden/Management "versprochen" wurde (Soll-Datum). Das Datum wird im Kalender markiert. Soll/Plan/Ist-Angaben helfen der Transparenz.
  • Epic Stories weiter unten im Backlog können auch mal über mehrere Sprints gehen.
  • Zusätzlich zur Scrum-Beschreibung der Story (Wer, Was, Warum) kann man einen kurzer Titel/Namen der Story vergeben. Das hilft der Übersichtlichkeit im Gantt-Chart.
  • Bewährt hat sich eine eigene Hintergrundfarbe für Releases. Das sind oft Gruppen von Stories, die aus einem Epic hervorgegangen sind. Damit kann man Stories zu "Releases" oder "Milestones" gruppieren. 

_happy_charting()

24. August 2016

Kosmologisches Glaubensbekenntnis

Das Bild zeigt den größten Teil des
Kosmos, der jemals fotografiert wurde:
Hubble Ultra-Deep Field
Kürzlich fragte mich jemand in einer Wissenschaftsgruppe, wie ich zu verschiedenen naturwissenschaftlichen Theorien stehe. Als geübter Mitdenker und Meinungshaber geht das schnell von der Hand.

Hier also mein physikalisch kosmologisches Glaubensbekenntnis:

- glaube an den Urknall. Ich weiß aber nicht wie es dazu kam. Es gibt die Idee, dass das Universum Null Gesamtenergie hat. Dann kann es im Multiversum zufällig aus einer Quantenfluktuation entstanden sein. (bb+)

- bin indifferent was die kosmische Inflation betrifft. Mit "Überlichtgeschwindigkeit" von Planck-Länge zu Atom-Größe. Das ist schon eine wilde These. Es könnte andere Erklärungen geben für die Struktur des Mikrowellenhintergrunds. Ich denke, das finden wir noch heraus. (ci+)

- glaube an eine Multiversum-Theorie, weiß aber nicht welche, vielleicht mit unendlich vielen Universen mit zufälligen Parametern. (mv/rp)

- glaube deshalb auch, dass wir in einem Universum leben und zu einer Zeit in der die Parameter genau so sind, dass unsere Art Leben möglich ist. In sehr vielen Universen und Zeiten ist das nicht so. Das Universum ist nicht für uns gemacht. Wir stellen uns die Frage, ob wir einzigartig sind und ob das Universum für uns gemacht ist (eventuell von jemand), weil wir zufällig hier sind. Wären die Parameter nicht so lebensfreundlich, dann könnten wir die Frage nicht stellen. Also eher Zufall als kreiert. (id--)

- bevorzuge eine einfache Ballon Hypothese als Modell für das 3-dimensionale Universum Mein einziger Grund ist Ockham's Razor, denn alle anderen Theorien sind komplexer aber nicht besser (besser im Sinne von beweisbarer).

- bin noch skeptisch bei dunkler Materie. Ich sag mal 50:50, dass es was in unserem Universum ist, z.B. bisher unbekannte Elementarteilchen. Kann aber auch ein anderer Effekt sein, z.B. die Gravitationswirkung von Materieballungen anderer Universen, die über höhere Dimensionen des Multiversums in unseres hinein wirkt. Das kann Gravitation vermutlich. Update: nach neuesten Erkenntnissen eher keine "Einstreuung", sondern doch was bei uns. (dm+)

- bin kritisch gegenüber der populärwissenschaftlichen Interpretation von dunkler Energie, insbesondere der Teil mit 70 % des Universums usw. Ich glaube das ist was anderes. (de-)

- glaube nicht an Supersymmetrie. Erstens ist das viel Theorie und nötige Teilchen im Vergleich zum Mehrwert. Zweitens hat man noch keinen der supersymmetrischen Partner gefunden. Bis dahin: nein. (ss-)

- bin kritisch bei der Stringtheorie, weil sie schwer zu beweisen ist. Ein Puzzlestück fehlt mir tatsächlich noch. Warum ballt sich Energie zu verschiedenen Typen von Elementarteilchen zusammen. Was macht ein Klümpchen Energie zum Gluon? Da muss eine Theorie her. Da würde die Stringtheorie passen, aber es könnte auch was ganz anderes sein. (st-)

- finde Schleifenquantengravitation nett. Eigentlich gilt das gleiche, wie für die Stringtheorie: schwer zu prüfen. Aber ich könnte mir vorstellen, dass alles quantisiert ist, auch der Raum. Quantisierung macht das Leben immer interessant. Alles was wir kennen entsteht aus Quantisierung. Ein gutes Prinzip. Allerdings ist die Skala so klein, dass es praktisch nicht relevant ist. Das ist schade. Abgesehen von der Skala könnte man eine Ähnlichkeit sehen zwischen quantisierter Raumzeit und Gitter-QCD. Das könnte darauf hindeuten, dass wir in einer Simulation leben, Glaube ich aber nicht. (lqg+)

- Nebenthema Fermi-Paradox: Ich glaube (leider) an Thesen wie Great-Filter, Rare-Earth, Rare-Intelligence. Mit anderenWorten, keine Aliens, zumindest nicht in Reichweite. Pech. Milliarden erdähnliche Planeten pro Milchstraße hin oder her. Great Filter quetschen die Wahrscheinlichkeit gaaanz schnell zusammen. (fp/gf)

- Nebenthema Simulationshypothese: Wenn unsere Art intelligentes Leben im Prinzip einzigartig ist (wie gesagt, nicht anthropozentrisch, sondern zufällig und "rare"), dann spricht die Statistik nicht für eine Simulation. Andererseits, die Fernwirkung der Quantenverschränkung und das Doppelspaltexperiment mit verzögerter Erkenntnis lassen mich etwas schaudern. Genau so würde man eine Simulation effizient machen: solange keiner hinschaut als Welle und erst dann als Teilchen, wenn eines der simulierten Wesen genau nachmisst. (sh-)

Zurück zur Physik:

- bin total pro Standardmodell. Das scheint gut zu funktionieren. Ich habe kein Problem mit (zu) vielen Parametern. Verstehe nicht warum 19 Parameter schlechter sein sollen als z.B. 3 oder 6. Wer kann mit Autorität behaupten, dass 19 Parameter "viel" sind. Vielleicht wäre 1000 viel und 19 ist schon wenig. Was mir schwerer im Magen liegt ist die Renormierung. Die Mathematik sollte ohne auskommen. Auf der anderen Seite ist das Hinweis auf eine vereinheitlichte Theorie. Das hat ja auch was. (sm+++)

- habe nicht an das einfache Higgs geglaubt und bin immer noch skeptisch. Ich finde es gut, wie CERN offiziell formuliert: Man hat ein "Boson mit Higgs-artigen Eigenschaften" gefunden. Aber ob es das einig wahre Higgs ist und ob es das wirklich gibt, bin ich nicht sicher. Der Higgs-Mechanismus ist fast zu einfach und konstruiert, um wahr zu sein. LHC hat eben gefunden, was gesucht wurde. Hätte man eine anderen mathematischen Mechanismus erfunden und was anderes gesucht...naja. Update: OK, das ging daneben. Es scheint wirklich das schlichte Higgs zu sein, wie langweilig.

- glaube die Allgemeine Relativitätstheorie trifft es schon ziemlich gut ("nails it"). Ich könnte mir noch Quantenkorrekturen vorstellen, die auch die ART wieder als Näherung erscheinen lassen. (gr+++)

- fürchte, dass die spezielle Relativitätstheorie stimmt, also erstmal keine Überlichtgeschwinigkeit, keine Zeitreisen. Aber ich habe noch Hoffnung, dass man das "umgehen" kann ohne die SRT zu verletzen. Das würde natürlich bedeuten, dass es Beobachter gibt, bei denen die Kausalität verletzt ist. Aber diese Beobachter könnten selbst keinen Einfluss nehmen. Also hoffe ich, dass die geradezu dogmatische Kausalitätsforderung der modernen Physik ("kausal für alle Weltlinien") etwas aufgeweicht wird. (sr++)

- kann mir vorstellen, dass es nicht zwingend eine große vereinheitlichte Theorie geben muss. Vielleicht wirken Standardmodell und ART unabhängig voneinander und lassen sich nicht vereinheitlichen, vielleicht nicht einmal bei sehr hohen Energien. Warum soll es nicht zwei fundamentale Strukturen und unabhängige Wirkungen geben? Mal davon abgesehen, Standardmodell beschreibt Teilchenfelder in einer ART Raumzeit. Gravitation ist keine vermittelte Kraft, sondern ein Effekt der Krümmung, eine Scheinkraft, wie die Kraft durch Beschleunigung. Also gibt es auch nichts zu vereinheitlichen und kein Skalenproblem. Wenn Gravitation keine Kraft ist, wie die anderen, dann stellt sich nicht die Frage warum sie sooo viel schwächer ist. Invers relativ gesehen: Stark (1), E/M (100), Schwach (1.000.000), alle gefühlt in einem "vernünftigen" Bereich, dann lange nichts, dann Gravitation (10^38), echt jetzt. (gut-)

Mein Kosmo-Code:
bb+ ci+ mv/rp id-- dm+ de- ss- st- lqg+ fp/gf sh- sm+++ gr+++ sr++ gut-

_happy_believing()

2. August 2016

Galactic Developments Science Fiction Timeline jetzt als eBook

Meine Science Fiction Timeline "Galactic Developments" gibt es jetzt bei Amazon als Kindle eBook.

Link zu Amazon: https://www.amazon.de/Galactic-Developments/dp/B01JD6COY6/

Im letzten Jahr habe ich viele neue Artikel geschrieben. Zeitweise sogar jeden Tag einen. Nicht wundern. Das ist kein Roman. Das Ding ist aufgebaut wie ein Geschichtsbuch. Jahreszahl + Ereignis. Aber mit vielen coolen Ideen.

Diese Woche zum Einführungspreis von 0,00 €. Läuft unter dem Pseudonym Norden Esstisch.

Meine Bitte an alle, die bisher schon Artikel gut fanden: runterladen, bewerten, weitersagen, denn mehr Leser = mehr Spaß beim Schreiben= mehr Material = mehr Spaß beim Lesen.

Beschreibung:

Erst besiedelt die Menschheit das eigene Sonnensystem. Dann wagt sie sich hinaus zu den Sternen. Die Menschen treffen auf fremde Völker. Die interessieren sich aber nicht immer so brennend für die Neulinge. Die Menschen mischen jetzt mit, holen sich ein paarmal eine blutige Nase, kommen aber insgesamt ganz gut zurecht. Nach einigen hundert Jahren gibt es Menschen auf fremden Planeten, die dort seit Generationen mit anderen Völkern leben und noch nie etwas von der Erde gehört haben. Das alles spielt sich ab in den Randbereichen eines alten Imperiums, das seine Grenzen nicht mehr so fest im Griff hat.

Es gibt große Imperien, aber auch Freiraum auf unbewohnten Planeten. Es gibt gigantische Organisationen, die tausend Lichtjahre und eine Billion denkende Wesen umfassen und es gibt unabhängige Individuen, die zwischen verschiedenen Völkern Handel treiben. Die einen erleben Abenteuer in der Wildnis, die anderen leben in einer perfekt organisierten futuristischen Zivilisation.

Bevor die Menschen zu den Sternen fliegen, verbringen sie erst einmal 500 Jahre im eigenen Sonnensystem. Das ist so viel Zeit, wie von Columbus bis zu uns heute. Da kann sehr viel passieren. Und es passiert viel.

Es wird entdeckt, erfunden, gebaut, eingeführt, erschlossen, eröffnet, gefunden, sich eingemischt, gekämpft, verhandelt, befriedet, befreit, geschaffen, gegründet, zerstört, gewonnen, gewagt, wiederaufgebaut, betrogen, geholfen, gelitten, geliebt, geopfert, niedergeschlagen, aufgestanden, infiltriert, verteidigt, anerkannt, verweigert, ausgeschlossen, vereinigt, aufgenommen und gelebt.

Es gibt Erfindungen, Entdeckungen, Kultur, Kunst, Wirtschaft, Industrie, Kreativität, Unterhaltung, Verschwörungen, Geheimnisse, Macht, Krieg, Frieden, Befreiung, Unabhängigkeit, Mut, Wagnis, Opfer, Wissenschaft, Technologie, Künstliche Intelligenz, Nanotechnologie, Uploads, Neuroimplantate, Raumschiffe, Habitate, Asteroiden, Planeten, Sterne, Aliens, Imperien, Königreiche, Piraten, Reisen und Wunder.

Eine realistische Zukunftsperspektive ohne Apokalypse, mit Hoffnung, aber auch mit Krisen. Eine Zeitleiste mit allen bedeutenden Ereignissen. Das Geschichtsbuch der Zukunft.

Meinungen bisher:

Ist es wert sich damit näher zu befassen!

Ich bin seit Tagen schwer beeindruckt. Die Idee einer friedlichen Alien Zivilisation ist mir eh sehr sympathisch. Dem Hauptthema Krieg und Gewalt in der Sci-Fi muss etwas entgegengesetzt werden.

Eure Stories sind immer wieder klasse...

Du hast echt Talent fürs schreiben... Deine Story fesseln einen immer wieder, freue mich jedes Mal wenn was Neues von dir kommt... Deine Sci-Fi Story haben das Potenzial z.B. als Comics veröffentlicht zu werden... Wie gesagt, danke dafür, dass du mich immer wieder fesselst mit deinen Geschichten...

Ich find' es hochspannend. 

Stoff für einen Romanzyklus! für viele schöne Technik-Romane jedenfalls... Techno-Prospektoren suchen und plündern und finden und verlieren... Das ist schon mal sehr gut entworfen...alle Szenarien gefallen mir gut... die "Dilan" erinnern allerdings etwas an "Andromeda" von ihrer Volksstruktur her, aber das macht nichts... darf ich da eine Story zu schreiben? Faszinierendes Ambiente...

Ich musste gerade etwas nachdenken, bis ich das alles verstanden habe. Das ist deutlich komplexer als der normal-flache SF-Film-Plot : ))) Die Timeline ist ja wirklich abgefahren, klasse. 

Denkst du dir die Geschichten selber aus?:) Du hast ja viel Fantasie. Ich find's gut;)

Wieder mal eine fantastische Story... geil geschrieben... Mal ein danke an alle Autoren die sich immer wieder die Mühe machen. 

25. Januar 2016

Compile on Save for Typescript in Visual Studio with Gulp

The standard way to develop with Typescript in Visual Studio 2015 (ASP.NET 5, MVC6) is to create a so called "virtual project" in a folder. That's a Typescript project inside a Web-C# project. This embedded Typescript project automatically compiles Typescript files on build.

Javascript files can be changed and reloaded while a project is running (debugging). But new Typescript code will not be available until the project is restarted.

The better way is to let gulp do the compilation. But let's start with the standard way (the few steps you do here are required later anyway).

Setup the virtual Typescript project:

  • Add a folder for Typescript scripts to the Web project, e.g. "./Scripts"

  • Put a tsconfig.json file into the folder (it contains "outFile": "../wwwroot/js/ts/scripts.js") which bundles all generated Javascript in a single file scripts.js in the "wwwroot/js/ts" folder.

  • Add a folder "ts" in "wwwroot/js". This is the Typescript compiler destination folder. Compiling into a sub folder of "wwwroot/js" has the advantage that generated Javascript will be minimized like all other Javascript inside "wwwroot/js" by the the Visual Studio build step. This is nice for Release builds. For our debug session we use the non-minimized "wwwroot/js/ts/scripts.js" in the HTML.

  • Add your *.ts files to the "./Scripts" folder

  • A Visual Studio build will generate "scripts.js" and "scripts.js.map" (.map for debugging Typescript source code in IE or at least watching Typescript in Chrome).

  • Add a reference to "scripts.js" in your HTML like this: <script src="/js/ts/scripts.js"></script>.
But:

The *.ts files are only compiled and bundled when the project is built. No edit/save/reload-browser cycle. The debug session must be stopped to make new Typescript code available for browser reload.

There is a solution.

Let gulp do the Typescript compilation and trigger the compilation with a gulp file watcher.

Here is the code: https://gist.github.com/wolfspelz/d494bd8a1ba56ff81c91

Here are the steps:
  • Add a Scripts folder for Typescript files (as before for the virtual project).

  • Add a file "_tsconfig.json" to the Scripts folder (can be any name, but the name appears in "gulpfile.js"). I just renamed my existing "tsconfig.json" to "_tsconfig.json" to hide it from Visual Studio and re-use it with gulp-typescript.

  • Add gulp modules by editing "package.json". Visual Studio should download lots of node packages.



  • Add gulp tasks by editing "gulpfile.js" in three places:
  • 1. Add gulp requires at the top.

  • 2. Add the Typescript source path further down.

  • 3. Add two tasks.

  • Saving "gulpfile.js" should show two new tasks in the Task Runner Explorer: "compile-ts" and "watch".

  • Check that the "compile-ts" task works. Double click "compile-ts" in the Task Runner Explorer. It should compile and combine all Typescript into "scripts.js" in the same place as before with the virtual project.

  • Once "compile-ts" works, we can automate the Typescript compilation with the new "watch" task. In the Task Runner Explorer, bind the "watch" task to the "Project Open" event. Right-click "watch"  => Bindings => Project Open. Result:

  • You might check if the "watch"/"compile-ts" workflow works by starting "watch" and editing/saving a Typescript file in the Scripts folder.
  • Close/Open the project/solution or just stop/start Visual Studio. The "watch" task should be running after starting Visual Studio settles down.

  • Delete the "scripts.js" file from earlier "compile-ts" runs.

  • Edit/save a Typescript file. The "watch" task should start "compile-ts":

  • Check if the "scripts.js" is generated along with it's "scripts.js.map".

  • Start a debug session. 
  • Change Typescript code. Reload browser.
  • Voilà
  • The default behavior of Visual Studio for Typescript without a virtual project (and a proper "tsconfig.json") seems to be compile-on-save.It generates a Javascript for each Typescript in the "Scripts" folder. We can just ignore them. Maybe nice to check the generated Javascript code.

_happy_gulping()

PS: There could be a clean-ts task

Thanks to

11. Dezember 2015

Wordpress Rant

One quarter of the web runs on Wordpress. Millions of flies can not be wrong
...so I thought.

That was wrong...
  • disappointingly, 
  • irritatingly, 
  • gaspingly, 
  • outrageously 
...wrong.

I was setting up a new web site. OK, let's use Wordpress. Everyone is using Wordpress, There are so many cool Wordpress driven sites. And countless plugins. You can do everything with Wordpress.

Yes, you can, but only if you are a Wordpress expert and if you want to pay real money. Wordpress is not for you if you want to host a cheap (cost free) open source content management system on your own (virtual) server.

What's wrong?
  • It says it is a content management system, but the basic installation is just a blog system. There is no way to arrange/layout your content.
  • I can use plugins to create various numbers of columns in a page, but what they do is add meta tags to the content which formats columns. You always see the meta tags while editing the content. They are part of your article text. That's ugly. There is no way you call that a CMS and a WYSIWYG editor. 
  • Worse, column plugins create columns in the content area. Nothing more. No separator, no second content part. There is just one content area on a page.
  • I could pay about € 50 for a good layout plugin, but I don't want to. I moved to Wordpress, because it is "the dominant open source CMS". But it turns out. It is a blog engine, which can be upgraded to a CMS with real money and real effort.
  • The Wordpress team/community claims, that absolute URLs in the HTML are better than relative. I am not convinced, but it can be argued. But, even if you put absolute URLs into the HTML, then you definitely do not store references to uploaded images and internal links as absolute URLs. That's plainly a wrong design. 
  • It is not possible to change the site's base URL easily, because references to uploaded images and internal links are stored as absolute URLs. All internal links and images must be fixed when the domain name (base URL) changes. There is no good reason to store absolute URLs. You'd store them relative and insert the base URL while generating the HTML.
  • Short loop about the official docker image: It does not support email. Any real web site needs email. You can not omit it and call it the official docker image. Its worthless for non-experts. Nice try. Don't tell my why this is so. I know why. I know how to fix it. I can start another container with a mail server. But the "official" image is not prepared to interface with, say a postfix image. 
  • With help of another plugin I can use the built in SMTP client. But this is not for beginners, not for everyone. It needs an expert.
  • I can add custom fields to template pages. This way I can probably other additional content elements. But, after trying one hour I still don't see them. It's not for beginners. It needs a Wordpress expert. 
  • Very popular templates have major deficiencies. I chose a template with a full with image slider at the top of the start page. But, the thing is fixed to 3 (three) images. Not 1-3, not 3 or 4 or 5, not a variable number. Just: 3, WTF. I would not dare to publish this as a public template. Maybe hack this up for my personal use, but not as a template for everyone without a bit of flexibility. 
  • This can be fixed though. I just have to upgrade to the professional version of the template for additional money
  • Speaking of money: most templates want money for responsiveness. A responsive design should really be in the base version of the template. In which decade are they living? Mobile is mainstream, not optional, enterprise level, only for paying customers.
  • Everything can be fixed with plugins. But there are many plugins. Many plugins for similar features. Some do not work with your chosen template. You will find out after paying for the professional version. A steep learning curve. I try many plugins. I read many blog posts. I have to become an expert. Otherwise this blog software won't be a content management system. There is a plugin for everything. But only experts know which ones you need.  
  • While we are at it: many plugins claim to be so great. But plugins often have hidden deficiencies, which you discover after having invested significant time. That adds to the cost. It's not just trying different plugins. The time sink is in using a plugin until you discover a not so obvious flaw, then choosing a different one and start all over. 
  • Small but symptomatic: Enter the web site contact email address and it will appear as http://-link instead of a mailto:-link. This is the base installation with default template. Does not work. Of all these developers and users, did nobody ever click on the email in the header of the default template?
  • I won't start about how often Wordpress appears on the security lists, because a plugin was unsafe. But you need plugins for everything. At least with visualization and/or containerization you do not compromise your server anymore. Still, a mess.
  • I am not halfway through...
I am an expert in so many things. I do not want to become a Wordpress expert, just to make a web page. I am quicker coding a CMS myself in whatever language you want. Heck.

Please do not tell me that nothing is for free, that people have to live, that hard work must be payed, that it would be unfair to not pay them. That's not the point. They say: "WordPress is web software you can use to create a beautiful website, blog, or app. We like to say that WordPress is both free and priceless at the same time."

It is not. It is either free or beautiful. Wordpress costs very much time or significant money to make something beautiful and useful.

And yes, I know it is my fault. I could just pay someone 800 € per day to set it up and in the meantime earn 800 € per day with what I am already good at.

All I am saying is:
  • The base system is crap.
  • It is expensive too use.
  • The official docker image is a showcase, but otherwise useless.
Sorry, but this can't be serious.

It put up a good show. It got me.

happy_try_and_error_configuring()

7. Dezember 2015

Avira and VirtualBox Broken

tldr: Avira face punches VirtualBox. Need other virus scanner.

I was using Avira, because it is the best free virus scanner. And I am using VirtualBox for sandboxed Windows, local Linuxes, as docker container host, etc...

...but recently they stopped working together.

Over 2 weeks VirtualBox VMs were increasingly less likely to start. I needed some time and googling to find out that Avira prevents the VM from starting. Disable Avira: still nogo. Uninstall Avira: VirtualBox works. Reinstall Avira: VirtualBox broken again.

See: https://forums.virtualbox.org/viewtopic.php?f=6&t=68869

Time to move on to a different virus scanner.

_happy_googling()

6. Dezember 2015

Life is Strange

Habe in den letzten Tagen Life is Strange als Letsplay geschaut. Gefällt mir super. Ist wie Fernsehen. So soll es sein. Zurücklehnen vorspielen lassen.

Aber auch selber spielen ist sehr relaxt. Der nächste Level der Casualisierung.

Es spielt sich fast von selbst. Ab und zu mal was suchen, kleine Aufgaben lösen. Nichts wo ich nicht weiterkomme. Genau mein Schwierigkeitsgrad.

Nie wieder Open World. Spielen auf Schienen. Keine schwierigen Aufgaben zu lösen, Keine Leute umzubringen, keine NPCs, die warten bis sie gemetzelt werden. Ich kann die meisten Entscheidungen revidieren. Manche aber nicht. Das Spiel führt mich in der Story weiter. Interaktives Kino mit starken Emotion und Chillfaktor.

Gibt's für PS3. PS3 habe ich seit Assassin's Creed III. Das war das einzige Spiel was ich auf der PS3 gespielt habe (und das nur halb). Also kann ich mit Life is Strange  meine Investition von 400 € pro Game auf 200 € pro Game verringern. Reichgespart.

_happy_chilling()

PS: Das Game auf die PS3 zu bringen war auch schon eine Quest-Reihe. Ich sach nur Controller aktivieren, System Update, zu alter Account, problematische Payment-Optionen, mehr Updates, Downloads, mehr Downloads, Updates, Shop verlassen, wieder rein, Reboot, Update, immer wieder Auflösung Umschalten und dann viele Screens (Engine, Publisher, Developer, alle toll) bis das Game endlich startet. Unchillig das.

23. Oktober 2015

Galactic Developments ist umgezogen auf einen neuen Server als KVM

Bisher war die Galactic Developments Website ein Apache Virtual Server auf meinem alten Hetzner Rootserver. Den hatte ich vor 6 Jahren bei einer keine-Setupgebühr-Aktion gebucht (und dann 3 Monate lang nicht installiert, was die keine-Setupgebühr-Aktion für mich ad-absurdum geführt hat, für Hetzner nicht). Inzwischen ist das Betriebssystem (Debian Sarge) aber schon aus den Security-Fixes raus gelaufen.

(Ich finde Sicherheitsaktualisierungen für nur 3 Jahre etwas kurz. Naja, ist ja Open Source. Wenn es einem nicht gefällt, dann einfach nicht benutzen oder selbst fixen, wie man so schön sagt, jedenfalls nicht meckern.)

Die Rechner der Rabatt-Aktion waren damals etwas schwach auf der Brust. Das stört nicht, wenn man nicht viel Traffic hat, aber heutzutage will man virtualisieren und mehrere Server gleichzeitig laufen lassen. Dafür ist ein ganzes GB RAM nicht genug. Der neue Server ist wieder bei Hetzner, hat aber 2 TB Platte, 32 GB RAM, 8 CPUs incl. Hyperthreading. Das sollte reichen für ein paar virtuelle.

Ich kann Debian, also weiter Debian-stable, d.h. Jessie 8.2.

Zum Virtualisieren kvm und libvirt drauf. Ein 2 GB Image für das Guest-Template erstellen mit einer Debian-minimal Installation ohne alles außer sshd. Die VMs sind nur über das interne "default" Netzwerk zu erreichen. Alle VMs bekommen statische IP Adressen vom internen DHCP.

Ein VM als Reverse-Proxy, der HTTP-Requests an verschiedene virtuelle Maschinen weiterleitet. Dafür eine iptables-Konfiguration per qemu-Hook, die immer dann die 2 iptables-Regeln setzt/löscht, wenn die VM startet/stoppt. Auf dem Proxy ein nginx, der alle Anfragen für www.galactic-developments.de an die Galactic Developments VM weiterleitet.

Der Galactic Developments Server bekommt eine eigene VM. Hier mit Apache, weil ich Apache schon kann und nicht zu viele Konfiguration ändern muss, dachte ich. Tatsächlich haben sich die Apache Entwickler ein neues Sicherheitskonzept einfallen lassen und erst mal geht gar nichts, bis ich herausfinde, dass man einen neuen Befehl (Require) braucht. Zusätzlich zum Galactic Developments Apache virtual Server gibt es noch einen CatchAll virtual Server, der Adressen wie galactic-developments.de (ohne www.) und *.galactic-developments.com auf den Hauptserver umleitet (401/permanent).

Dateien und Daten der Galactic Developments Website sind in Subversion. Das bleibt erstmal so bis sich die Community mehr beteiligt. Dann will ich git nicht im Wege stehen. Also: Repository auschecken und Apache-config darauf zeigen lassen. Bisher waren SVN Server und Website auf dem gleichen Rechner. Ein Subversion post-commit Hook hat automatisch die Website svn update'd. Poor man's Continuous Delivery. Das geht jetzt nicht mehr, weil es verschiedene Rechner sind und später - wenn der SVN Server auch umgezogen ist - gleicher Rechner, aber getrente VMs. Deshalb muss der post-commit Hook jetzt das Deployment anders triggern. Ich mag Trigger per HTTP-Request. In diesem Fall: ein Einzeiler-PHP in der Galactic Developments Website (Name lang und geheim, quasi das Passwort im Namen, Security by Obscurity), das ein lokales Shellscript startet, das wiederum "svn update" macht. Drei Einzeiler hintereinander. Man muss noch die Benutzer-Grenze überwinden vom wwwdata-User des Apache zum Eigentümer des Repositories. Deshalb wird das Shellscript mit sudo ausgeführt. Dafür eine Zeile in /etc/sudoers. Bei jedem svn commit ruft der post-commit Hook das update PHP-Script in der Zielwebsite per wget ("-O -" nicht vergessen) auf.

Dann noch DNS für www.galactic-developments.de umbiegen von rama.wolfspelz.de auf fred.wolfspelz.de und Galactic Developments ist umgezogen.

Das hört sich alles locker flockig an, hat mich aber mehrere Tage gekostet. Es gibt fast keine Anleitungen für libvirt/kvm OHNE lokales Display und ohne VNC. Auch virt-manager usw. alles nett gemeint, aber ich will kein Desktop auf meinem Server nur zum Installieren. (Wer bis hier gelesen bekommt von mir ein nagelneues Notebook). Genauso das Netzwerk: entweder es wird nicht erwähnt, was blöd ist, wenn man die VM vom Netzwerk installieren will oder es wird bridge-Networking vorgeschlagen, was bei mir einfach nicht wollte. Dabei geht das "default" Netzwerk super. Man muss es nur anschalten. Das könnte mal irgendwo stehen. Ein qemu-Hook statt bridge-Netz sehe ich nicht als Hack an, im Gegenteil.

PS: rama.wolfspelz.de war keine Frühstücksmargerine, sondern ein 50 km langes Alien-Raumschiff.

_happy_migrating()