tag:blogger.com,1999:blog-71391792024-02-21T10:50:45.212+01:00Code and LifeHeinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.comBlogger284125tag:blogger.com,1999:blog-7139179.post-26919610658634080802022-10-24T22:40:00.017+02:002022-12-10T23:47:20.604+01:00Hot-Fusion Technologien<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEVU_LE6AaWMwgDlNy5UC2zPDmltzNJ5aD-3MzmL2En5A-5lCw8rM61zFTxx1TyNJpKUGXgYSdsvlwBMJgIhmNQlydrPZKDGHrPaMiWeZJA9N1_VToeuOIkQJvYNv6F0uCaKJ-Ib-E8oK75anP6Z09QuQalAX15A7Y8RSj3JTJB6ig0wOxQw/s630/160128-fusion-630x405.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="405" data-original-width="630" height="206" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgEVU_LE6AaWMwgDlNy5UC2zPDmltzNJ5aD-3MzmL2En5A-5lCw8rM61zFTxx1TyNJpKUGXgYSdsvlwBMJgIhmNQlydrPZKDGHrPaMiWeZJA9N1_VToeuOIkQJvYNv6F0uCaKJ-Ib-E8oK75anP6Z09QuQalAX15A7Y8RSj3JTJB6ig0wOxQw/s320/160128-fusion-630x405.jpg" width="320" /></a></div>Die Presse ignoriert alternative HOT-Fusion Ansätze komplett. Es gibt physikalisch viel bessere Konfigurationen. Das ist alles Hot-Fusion, nicht Cold-Fusion oder LENR. <p></p><p>Es geht darum, Atomkerne zu verschmelzen indem man sie mit den richtigen Geschwindigkeiten, also hot, häufig genug nahe aneinander bringt. </p><p>TLDR: Was heißt hier "besser": in heißem Plasma haben die Teilchen verschiedene Geschwindigkeiten. Aber nur ein paar Prozent am oberen Ende haben die richtige Geschwindigkeit für Fusion. Man muss dafür sorgen, dass die meisten die richtige Geschwindigkeit/Energie haben, dann weniger Schwund, kleineres Gerät, viel günstiger. </p><p>Fusion geht nicht nur mit dem Tokamak oder mit Lasern. Aber in der Presse kommen immer nur diese 3 vor:</p><p></p><ol style="text-align: left;"><li>Tokamak, also ITER</li><li> Laser Fusion, d.h. USA National Ignition Facility</li><li>In deutschen Medien auch Wendelstein 7-X in Greifswald, weil wir da stolz drauf sind. Wir behaupten zwar, dass der nie Energie machen soll und nur der Forschung dient, aber insgeheim halten wir es für möglich, dass ITER scheitert und am Ende Deutschland mit dem Stellarator vorne liegt.</li></ol><p></p><p>Grundsätzlich will man eigentlich nur Verfahren, die p-B11 Fusion ermöglichen, weil p-B11 neutronenfrei abläuft, im Gegensatz zu D-T oder He3 Prozessen. p-B11 erzeugt 3 Alphateilchen, die man direkt in Strom umwandeln kann, komplett ohne Neutronen. D-T muss Neutonen abbremsen, um Dampf zu erzeugen. Gleichzeitig wird damit alles radioaktiv. He3 ist zwar besser als D-T (immerhin ein Alpha) aber macht trotzdem auch ein 14 MeV Neutron. Das ist unschön, braucht Abschirmung, auch nicht toll für Raumfahrt. p-B11 dagegen braucht kaum Abschirmung, nur ein gutes Vakuum. Das ist perfekt für Raumfahrt. </p><p>Allerdings: p-B11 braucht mehr Teilchenenergie. Kein Problem wenn man Protonen und Bor-Ionen durch Spannungsgefälle beschleunigt. Aber schwierig bei thermalisierten Plasmen (braucht 1 Milliarde Grad statt 100 Millionen), weil Thermalisierung eine ungünstige Geschwindigkeitsverteilung macht bei der nur wenige Prozent des Plasmas schnell genug sind, um zu fusionieren. Alle anderen Teilchen sind Ballast, der für Strahlungsverluste sorgt und das Heizen erschwert. Das disqualifiziert eigentlich Verfahren, die auf Hitze in magnetisch komprimiertem Plasma basieren. Deshalb meine ich dass Tokamak falsch ist. Auch mit He3. Damit entfällt auch die ganze He3-Stripmining-auf-dem-Mond Sache. </p><p>Andere physikalisch bessere Ansätze:</p><p>- Dense Plasma Focus, ca. 8 Million USD Finanzierung. Vielversprechender Ansatz der die Instabilität von Magnetfeldern in Plasma nutzt, statt sie zu bekämpfen. Ziel: 5 MW Reaktor so groß wie ein Container. Ist sehr schön für dezentralisierte Stromversorgung. Etwas Fringe, weil drastisch unterfinanziert und weil der Gründer aussieht wie ein verrückter Wissenschaftler. Aber er weiß was er tut. <a href="http://en.wikipedia.org/wiki/Dense_plasma_focus">http://en.wikipedia.org/wiki/Dense_plasma_focus</a></p><p>- Inertial Electrostatic Confinement: Protonen auf Fusionsgeschwindigkeit beschleunigen durch eine Spannungsdifferenz. Derzeit keine Finanzierung, aber ein schöner Prototyp, der mit 200 Millionen USD hochskaliert werden müsste. Nicht günstig, aber 100x günstiger als ITER. Ziel: 100 MW Reaktor so groß wie ein Haus, immerhin einer pro Stadtteil und nicht wie heutige Kraftwerke 1000 MW Großtechnik. <a href="https://en.wikipedia.org/wiki/Polywell">https://en.wikipedia.org/wiki/Polywell</a></p><p>- Field Reverse Configuration: zig-Millionen USD private Finanzierung, Beschleunigung der Protonen durch Magnetfelder, im Prinzip gegeneinander gerichtete Plasma-Kanonen. Auch eher Container-Größe. Allgemein zu FRC hier: <a href="http://en.wikipedia.org/wiki/Field-reversed_configuration">http://en.wikipedia.org/wiki/Field-reversed_configuration</a> praktisch z.B. <a href="https://en.wikipedia.org/wiki/TAE_Technologies">https://en.wikipedia.org/wiki/TAE_Technologies</a></p><p>- General Fusion: zig-Millionen private Finanzierung. Spektakuläres Konzept, dampfgetriebene Rammen machen Schockwellen in einer rotierenden Kugel aus geschmolzenem Blei. In der Mitte irgendwo Plasma und Fusion. <a href="https://en.wikipedia.org/wiki/General_Fusion">https://en.wikipedia.org/wiki/General_Fusion</a></p><p>Daneben gibt es immer wieder Firmen, die behaupten den Tokamak besser zu können als ITER. Die Chinesen haben einen, weil ihnen ITER zu lange dauert. Lockheed Martin ist immer wieder in der Presse. Es ist nicht klar, warum die wahrgenommen werden, aber andere Fusion-Projekte nicht. Viele glauben, dass Lockheed hier nur die Reputation von Lockheed Martin's Skunk Works nutzt um den Aktienkurs zu pushen. </p><p>Auf der anderen Seite kann man davon ausgehen, dass einige Technologien von ITER veraltet sind bis das Ding läuft und dass man jetzt einen Tokamak beginnen könnte, der zeitglich mit ITER online geht zu 1/20 der Kosten. Tokamak ist und bleibt aber teure Großtechnik mit Dampfturbine und Neutronenaktivierung der inneren Struktur. </p><p>Hitze und damit Thermalisierung muss man unbedingt vermeiden. Deshalb sollte man gar nicht in Millionen Grad Kelvin rechnen, sondern besser Ionen mit genau der richtigen Energie und Geschwindigkeit erzeugen, z.B. 600 keV Bor-Ionen für p-B11 Fusion. 600 keV ist anspruchsvoll, aber nicht neu. Bor hat 6 Protonen, also braucht man ein 100 kV Spannungsgefälle. Das ist weniger als bei Überlandleitungen und etwas mehr als eine typische Röntgenröhre. Also bekannte Technik. </p><p>Wir müssen nur endlich vom Tokamak weg und dann liegt Fusion nicht immer 30 Jahre in der Zukunft.</p><div>_happy_fusing()</div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-70570330311186614822022-04-11T12:32:00.003+02:002022-08-14T11:40:00.157+02:00The Sigmoid Hypothesis<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_VLkhTJisNZvG1gGCX4Uriy4mhcbR6rpzIOtRBMeNZ93mLRQtKJl4leu3iw6NTyPrLP-B3Z__FGAVygBqRWPou1Egxzf7x__jVlrZEg3AW5cyx5hpGBLNn4vKUSjEJYB2ZCmF-Zxz8CDddVeXpL9LMIoFkpsD1B2aeFEn9IBYE48HYeBobQ/s1567/Sigmoid-Hypothesis.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1258" data-original-width="1567" height="514" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi_VLkhTJisNZvG1gGCX4Uriy4mhcbR6rpzIOtRBMeNZ93mLRQtKJl4leu3iw6NTyPrLP-B3Z__FGAVygBqRWPou1Egxzf7x__jVlrZEg3AW5cyx5hpGBLNn4vKUSjEJYB2ZCmF-Zxz8CDddVeXpL9LMIoFkpsD1B2aeFEn9IBYE48HYeBobQ/w640-h514/Sigmoid-Hypothesis.png" width="640" /></a></div><br />1920: The first Atlantic crossing by plane, a biplane with propellers. Commercial radio just started broadcasting. Nuclear Power is not even thought of. <p></p><p>1970: Nuclear power stations are common. Broadcast color TV is the norm. The Jumbo jet takes commercial air travel to a new level and humans have just landed on the moon. </p><p>2020: Still nuclear fission. Color TVs are now flat. The Jumbo Jet is still the largest commercial airplane and humanity is not able to land on the moon but is determined to regain the capability in a few years. There are smart phones and ubiquitous information, though.</p><p>That does not look exponential. The jump from 1970 to 2020 should have been even more impressive than the 50 years before. While information technology developed exponentially, almost all else just improved. Admittedly the reference dates are carefully chosen. Technological developments that started in two major wars have fully played out by 1970. But still, a person from 1820 would have found 1870 interesting. A person from 1870 would have been amazed by the state of the art in 1920 (radioactivity and airplanes). A time traveler from 1920 peeking into 1970 would not have believed her eyes (nuclear power, moon landings, ubiquitous electricity and lights). That is exponential. Not just change, but an increasing level of change. Accelerating progress. </p><p>Compare that to someone watching 2020 with 1970 eyes. The media and information landscape changed beyond imagination, but other than that the world has not changed a lot. It is bigger. There are other topics in politics, billions of people were lifted from absolute poverty. Things have improved: rockets are now reusable, electrical light is basically free thanks to LEDs, cars need only half as much gas, and the tallest building is twice as high. Still, everyday life looks like an improved 1970 with smartphones. </p><p>Humanity should be on Mars and beyond. After 50 years between transatlantic flight and the moon, the next 50 years should have given us more than just a flight to Mars. That would be linear. Exponential growth would mean something like a million people on Mars and the first woman setting boot on Saturn's moon Titan. And while Moore's law still holds, continuing the exponential growth of transistor counts, there are physical limits on the horizon and improvements come at increased costs in terms of prices and energy consumption. AI made progress but turned out to be more difficult than thought in 1970. And fusion power is still 50 years away.</p><p>There are lots of improvements going on. The tech level is growing. But the rate of growth does not feel exponential. On the other hand, the capabilities of information technology still grow exponentially. The amount of information available to researchers grows exponentially. Counting patents, the number of inventions per year increases which means at least faster than linearly. And while the population growth seems to deviate from the exponential curve, the number of scientists and engineers entering the work force is still somewhat exponential.</p><p>The resources put into technology still seem to grow exponentially, but the outcome appears linear. There is a worrying discrepancy between engineering resources, scientists, information, and processing capabilities on one hand and the resulting technological progress on the other hand. It looks like improvements are more difficult to achieve now than before. Every year we are putting in more effort in terms of money, thoughts, and knowledge. We might even get more improvements each year. But the aggregate of all technological improvements, something that we might call a technological level seems to crawl upwards slowly. It does not appear to accelerate. It seems rather steady, more like linear progress. Still improving broadly but not exponentially. </p><p>The question: is progress really getting more difficult? Does the difficulty increase exponentially eating up exponential investment to result in linear progress? Are we at a turning point where progress might even slow down despite increased efforts? </p><p>Maybe technological progress has never been exponential. Maybe it is sigmoidal. A sigmoid starts slowly then accelerates appearing exponentially. But it has a turnaround point. A point where the gradient maxes out and starts to fall. In other words, there is a fast period after which progress slows down. Later it might even saturate. That does not mean that technology falls back. On the contrary: the tech level increases. Products still get better. But more slowly. Because at a high level it is more difficult to make improvements. There are still improvements. Only they cost more. They need more investments, more research, more computer simulations, more data, more money, more time. </p><p>That's where we are now. The exponential technological progress we were used to has slowed to linear progress. It looks like the turnaround point. The point where things still get better, but technical revolutions become increasingly rare. Maybe the year 2070 will look like a slightly improved 2020. Self-driving cars will be common and fusion power will be only 20 years away. There will be permanent stations on the moon. Several billion more people will have joined the well-off global middle class. And movie recommendations will be as much spot on as music recommendations today. That would not be so bad. There will be no singularity, though. No runaway AI, no nanites dismantling the Earth. That would be good after all. </p><div>_happy_saturating()</div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-29133385576160708042022-01-31T13:47:00.007+01:002022-12-11T00:07:31.123+01:00More Accelerando Than Snow Crash<p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh9kJr8HyCICGRX0jsmyajBvNN59srMtobeKiOVQ3WJZCr13wcROW0sc9vuzHacgOvZ5MHejsZvz8G2LUWglfL_7d3ULNNem42N79P6VByK1oqO2ZV-XDw4pOr6RLGIVVMt3AkBnIIoUwgPFCoGEMlcmjmMsdlku583QajwOralUQB5x4l1tg=s1200" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="628" data-original-width="1200" height="209" src="https://blogger.googleusercontent.com/img/a/AVvXsEh9kJr8HyCICGRX0jsmyajBvNN59srMtobeKiOVQ3WJZCr13wcROW0sc9vuzHacgOvZ5MHejsZvz8G2LUWglfL_7d3ULNNem42N79P6VByK1oqO2ZV-XDw4pOr6RLGIVVMt3AkBnIIoUwgPFCoGEMlcmjmMsdlku583QajwOralUQB5x4l1tg=w400-h209" width="400" /></a></div>The Mental Model of the Web3 Future Is Not Snow Crash. It's Accelerando. The inevitable path to a new economic model made possible by web3.<p></p><p><br />There is a lot of emphasis lately on the metaverse and virtual worlds. We believe that web3 helps to share stuff between virtual worlds, to tear down the walls between online worlds. Ready Player One shows a unified metaverse, where avatars from different virtual worlds meet. That's nice. Maybe even useful someday. There is also business and money to be made. Actually, a lot of business will be enabled or improved: entertainment, marketing, customer support, and more.</p><p>However, the real impact on the economy of the future comes from automation of business processes. In a web3 world software, scripts, and AI, can make deals. Specifically, business executing AI will have a large impact. Ultimately, AI will be able to act with tangible effect through the web3 we are currently building. It's the real economy that counts. That's why we should look to Charles Stross' Accelerando rather than Neal Stephenson's Snow Crash.</p><p>We have been learning from many examples in different fields that AI is good at finding new ways to do things. When AI optimizes a task, it often finds more efficient ways than experienced humans in the same field. For example, self-learning AI invents unconventional strategies in games. It explores strategies that the best human players would have disapproved of until they were defeated by those strategies. AlphaStar, Google's StarCraft AI once produced overwhelmingly many Oracles, a Protoss unit. A strategy no professional player tried because it has disadvantages in the later game. But still the AI beat top human players until they countered the strategy as soon as they detected it.</p><p>In another experiment self-learning AI that needed to communicate to solve a task quickly developed a more effective way of communication. They invented their own language. A protocol that was more efficient than the protocols they were given as a starting point. The language was not easily understood by humans. It was analyzed. But this took time while the AI moved forward. Understanding the AI's way is a moving target. Ultimately humans will use their optimizations without fully understanding them.</p><p>We are now at a point where software driven business processes emerge. Web3 enables software to post offers, to negotiate, to close deals, and to check fulfilment. Software is already doing significant business at stock exchanges. Software can react more quickly than humans which is important in times of high-speed trading. Some of these agents are driven by deep learning and genetic AI. While there are many details and nuances, basically trading stocks is rather simple. There are sell offers, buy offers, and real time information. The task is to optimize profit over time. A difficult task considered erratic markets, a volatile information situation, erratic market behavior, and feedback loops. But the trading model is simple: buying and selling securities.</p><p>Now, web3 promises to pull all other business into software's reach. While theoretically everything could be wrapped into a security, not everything in the real world is suited for securityfication. Partially, because it is irrelevant, like selling my own house. Selling my house is not accessible to software because nobody has made it a security, and nobody will.</p><p>In the field of patents and intellectual property rights are usually not freely tradable because there are too many barriers. IP has fundamentals that are difficult to consider automatically. Trading IP goes beyond comparing market prices. Assessing the value of IP is the domain of human experts. IP deals also need notaries, attorneys, and registers, in other words: legacy real-world mechanisms.</p><p>Car manufacturers deal with thousands of supplies, each with a detailed part specification, negotiated quality expectations, technical standards, and individual considerations. They are far from being securitized, out of reach of trading software. Until now.</p><p>Smart contracts can replace government registers like commercial and land registers. If a land register is secured by a blockchain instead of a government or an attorney, then this not only makes trading cheaper by removing the middleman. It also makes trading the goods accessible to software.</p><p>Physical properties of car parts can be measured and compared with specifications. A smart contract checks if negotiated standards are met. It decides to what extend deliveries deviate from expectations. Pricing is fixated and made transparent to all parties as a smart contract. Money flows reproducibly and reliably based on measured and negotiated parameters of contracts. In the beginning humans will create these contracts, negotiate their parameters, and set up real-world measuring equipment. Humans will also approve payments. But that is still a lot of work. After some time of waving through payments, smart contracts will be made to pay without human approval on small lots. Then, when there were no major glitches for some time checking parts deliveries and payments will be automated.</p><p>Still, finding and negotiating thousands of parts is a lot of work waiting to be automated. And it will be automated. Suppliers will offer their parts through smart contracts that manage specifications and tolerances. Smart contracts also offer variations, and they will have logic, scripting, or AI to estimate production cost of variants. That makes sifting through of all these variants, specs, and tolerances for countless parts easier and humans just approve selections, confirm deals, or intervene when the AI does stupid things. And again, after some time without major glitches the industry will let software make the deals unsupervised demanding only after-the-fact reporting.</p><p>There is one more step required to completely automate the industry: planning and building factories. This will take more time. But individual manufacturing through 3D printing accelerates the process. Tesla already knows how to build gigafactories for certain products on demand. There is now so much institutional know-how that these facilities can be built in months instead of years. Factory projects are increasingly data driven and all this data will finally be used to train AI.</p><p>Software simulation of production processes also helps to self-train AI. A game of building factories, negotiating parts and resources to win market share against a competitor is not fundamentally different from managing resources and combat in StarCraft. AI will optimize itself with simulated competitions. Then AI will plan and build factories. As always, after some time without major glitches, some players will let AI react to market demand automatically. Even some goof-ups can be tolerated. Human decision making when estimating future demand, planning products, and executing business plans is far from perfect. If the financial impact of AI-mistakes is on the same level as the one by humans, the AI wins. Finally, the AI will win. And the first humans to adopt this way of doing business will become rich.</p><p>Then AI optimizes the business. The AIs will optimize communication by inventing new protocols. Negotiation protocols that are more efficient than the ones inherited from humans. There are many ways to optimize in a software driven world. Maybe they dispense with checking individual deliveries. Maybe they don't put up tenders anymore. Suppliers might deliver parts without prior negotiations based on information from crypto oracles. After all, the financial output of the entire operation is key. They might omit payments for supplies and just share the revenue. A smart contract takes key performance indicators and generates a pay-out scheme for all involved entities in a transparent fashion. There are hard short-term facts like revenue, time-delayed measurements like product reliability, and long-term soft information sources like polls about buyer's remorse. All this data can be used to optimize the business. At some time, there is data available from millions of products, markets, and processes over many product cycles. This data is then employed by the executing AI to find new ways.</p><p>Would humans base a car business on revenue sharing and common long-term benefits? Probably not. Human experts would reject this way of doing business for many reasons. Humans are good at coming up with reasons not to change things. Until they are outperformed.</p><p>Humans are also good at inventing possible ways for improvements based on their experience. We can imagine countless optimizations and process changes. Science fiction authors are especially good at that. But we largely fail to predict developments beyond our experience. That's where AI excels. It finds categorizations that escape us. It finds optimizations we won't think of.</p><p>AI will change the way business is done so much that humans will not understand what's going on. At first, we will. We will be surprised by AI's inventions. We will marvel at the ingenuity and frivolity of its ways. For as long as we can analyze and understand what is happening. Later we will fail to understand and just embrace the benefits.</p><p>This is what Charles Stross calls Economics 2.0. A business model more efficient than ours. Let's call it Economy3 to be in line Web3. Economy3 is made of economic processes that outperform the ones we know. It is interactions and rules we do not understand, that can only be executed by AI. Not because of the required speed of decision making, rather because the rules will not be known. They will not be codified. They are decentralized in neural network weights or whatever AI is made of in the future. The new rules will not be programmed into AI. Rather AI will develop the rules because they work better than the inherited ones.</p><p>This sounds as if we humans have no say in the process. But we do. The key phrase is "work better". We define what "better" means. If "better" means more profit, then average people might be screwed in a way described in Accelerando. In this future the so-called Vile Offspring, basically untamed rouge AI, dominate the inner solar system and even dismantle the Earth to put its resources to "better" use. Earth's resources not meaning oil and ore, but the iron of the core, hence the dismantling.</p><p>A development that ends in the dissolution of our planet does not sound "better". And that's the key point. We will have to define the term "better" so that it serves people. We need more performance indicators than profit. We need performance indicators that represent the wellbeing of people and the environment for that matter. AI optimizes along fitness functions and training data. AI designers define these fitness functions and select the training data. We decide how AI optimizes. We have a say. A society that really tries will have a deciding influence. Realistically the result will be somewhere between utopia and the planet's pulverization into smart matter. We must make sure that besides profit and wealth for some people, there is also well-being for as many people as possible. Maybe the fitness function just needs as much Gross National Happiness as Gross Domestic Product.</p><p>Coming back to web3: this development path is almost inevitable because it is possible. The path is obvious. There are no unknowns, no new technologies to be developed, no new principles to be discovered. The paradigms are already in place. The rest is engineering.</p><p>There is one more thing: the smart-contractification of the real world. Paper contracts will be replaced by smart contracts. Business entities will learn that blockchains tell the truth. Companies will sue each other to honor agreements that are codified by smart contracts. Finally, courts will begin to refer to the blockchain truth in their decisions. Then, the real-world is smart-contractified. It will take some time to get there. But the path is clear.</p><p>Once the real economy (the one that builds smart phones, not just non fungible images) takes web3 serious we are bound to end up with Economy3. An automated future in which it is not necessary to work hard to pay the rent. That's where we want to go.</p><p>We are currently building the tools: web3 and AI. Then we'll get the real world to use the tools while making sure that the beast we're unleashing does not deviate too far from a good path. It is our responsibility to educate our societies about the risks and empower them to set the rules.</p><p>We must shape the future economy, not just virtual worlds. It's the real world that matters and the real economy. In this sense the mental model to guide our path is better characterized by Charles Stross' Accelerando than Neal Stephenson's Snow Crash. Read Accelerando, enjoy it, fear it, and learn from it.</p><div><br /></div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-12417512183241741472022-01-31T13:43:00.003+01:002022-01-31T13:43:24.761+01:00Raph Koster’s Future of Online Worlds Applied to weblin.io<p><span style="background-color: white; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEgCFm3F4FxRmbeeztrpliobLYaN37FAIJlrhAzvGpB8HM6luUEc-bExmxgKfqi7lcPig7KOvrsK9UKPq6TK7WYrOok5_Sk8V5J4sjwp6nn2MNZSBVIbPoOgef_EotfaB0Fe8x4CnUN5vYlIw4oA8M1gt1iNpjwf6iKv2eVmezA5DoEanI8s9w=s1200" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="628" data-original-width="1200" height="209" src="https://blogger.googleusercontent.com/img/a/AVvXsEgCFm3F4FxRmbeeztrpliobLYaN37FAIJlrhAzvGpB8HM6luUEc-bExmxgKfqi7lcPig7KOvrsK9UKPq6TK7WYrOok5_Sk8V5J4sjwp6nn2MNZSBVIbPoOgef_EotfaB0Fe8x4CnUN5vYlIw4oA8M1gt1iNpjwf6iKv2eVmezA5DoEanI8s9w=w400-h209" width="400" /></a></div>Raph Koster talked about the steep path to a unified metaverse. He raises many interesting points that address key points of weblin.io's architecture and design principles. <p></p><p><span style="background-color: white; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px;">A virtual discussion.</span></p><div><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">At the <a href="https://venturebeat.com/event/gbfbsummit2022/lounge/" style="background-color: transparent; box-sizing: border-box; color: #9fc415; text-decoration-line: none;">2nd Annual GamesBeat Summit: Into the Metaverse 2</a> <a href="https://www.linkedin.com/in/raphkoster/" style="background-color: transparent; box-sizing: border-box; color: #9fc415; text-decoration-line: none;">Raph Koster</a> gave a <a href="https://www.playableworlds.com/news/raph-koster's-real-talk-about-a-real-metaverse/" style="background-color: transparent; box-sizing: border-box; color: #9fc415; text-decoration-line: none;">speech about the future of the metaverse</a>, about connecting virtual worlds, and about the steep path to a unified metaverse. He raises many interesting points.</p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">The <a href="https://weblin.io/" style="background-color: transparent; box-sizing: border-box; color: #9fc415; text-decoration-line: none;">weblin.io</a> project regards the web as a metaverse, if not the starting point for "The Metaverse". I would like to review the speech and comment the central messages with respect to weblin.io and the web metaverse. In other words: how they apply to the web as a metaverse.</p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">Raph Koster talks about a high tech metaverse with 3D, AR, VR running on advance engines. Even beyond the engine, these worlds need sophisticated coding and modelling. Contrast that with the web metaverse which runs on a browser engine. This conventional approach makes things easier. The web metaverse gets away with much less complexity which creates lower barriers for interoperability. It turns out: things are much easier. We are lucky.</p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">It is very interesting to apply the central messages of the talk to weblin.io because they address important features, the architecture, and design principles. Let's discuss:</p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "The idea of taking multiple online worlds and cross connecting them with basically hyperlink connections, and […] hop freely between them with one client"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> With weblin.io we are hopping freely between spaces with one client. The spaces being web sites, the one client being a web browser and freely hopping means clicking a web link. It's not 3D, no virtual worlds, not fancy. But the web metaverse is the biggest world in terms of content. It's the biggest world in terms of people. And most easily accessible by means of a web browser and some rather small client software, a graphical chat client with animated avatars as a browser extension or a native program that projects a social layer above all web pages.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "Ongoing challenges include crappy voluminous user-generated content"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> In case of weblin.io there everything is user-generated. It's the Web. It is often great and sometimes it is crappy. Speaking about "crappy voluminous" specifically: the web metaverse has a build-in check for content quality. Web content is produced to be used on the web, not specifically for the web metaverse. Hence, if it is good enough for the web, then it is good enough to make up a place of the web metaverse. Voluminous user-generated content will never drag down the web metaverse as it easily can in a virtual world other than the web that lacks such a built-in safeguard.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "Play-to-earn have always had the risk of […] economy crashes due to […] mudflation"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> Simulated economies with artificial money sources and sinks are difficult to balance. Play-to-earn needs a real economy, not a simulated one. It must be driven by real money that flows into the economy from the real world. Only real value creates a real economy because real money from the outside worlds is hard to get. It must provide a ROI for the outside world. That's the weblin model.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "Players have not been that interested in item portability"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> That is true in general. You won't take your WoW Hunter Bow to EVE Online. Different engine technologies, game mechanics, and balancing are strong barriers, that might be overcome someday, though. The real point is importing NFTs which have fixed real world attributes as in-world items. This needs a suitable mapping of NFT attributes to in-world features. If the mapping is transparent and stable, then real-world NFTs gain value and utility in-world.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "The open web is a model for the kind of standard for decentralized creativity"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> The existing standardization of web technologies makes the web a perfect model of a decentralized easy to access metaverse. The places are already there. Content is there. weblin.io adds people, and voila, the web becomes a metaverse. "decentralized creativity": that's what the web is about.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "An enormous amount of the metaverse needs are going to be flat"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> Often 2D is easier to navigate and a lower barrier. Navigating the web just needs a browser and a point device. That's an easy virtual world. No need to navigate in 3D to get to a document. Just a click and the document is full screen. And populated by people who happen to be reading the same document at the same time.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "The art we see needs to break away from the notion that it is something baked into a client"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> In the #Webaverse the content always comes from the server. The client fetches the content and projects a social layer on top where people meet. Check.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "If we want a decentralized metaverse — one that is open and not controlled by one party — we obviously need to decentralize control"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> Virtual words are usually controlled by one party. The web on the other hand is a decentralized metaverse, always was and probably will be. The social layer above the content that makes the web a metaverse in the first place is also decentralized. Every web content provider can host the social layer for their content by running a chat server. Once they operate the chat, they can enforce rules and moderate. In other words, they can exercise property rights. That's how weblin.io is built.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "The biggest barrier to item portability is actually that every […] world implements that functionality in completely different ways […] There are zero shared data structures"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> A common denominator of data formats might be a start. Viewed from a 3D perspective, common denominators lack the functionality required for a good user experience. But for our case, the web metaverse, typical web standards work perfectly as common denominators. For example, it is easy to make an in-world avatar available to the web metaverse. Inhabitants of virtual worlds can use an (animated) rendering of their in-world avatar on web pages to meet other people, even people from different games. From the point of view of the web metaverse all these virtual worlds are just sophisticated avatar creators. Avatars are designed in-world by all the means of the virtual world including the need to earn equipment or to buy vanity items. Then the avatar appearance is transferred to the web where people can present themselves by their game avatars.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "[We might] take a cue from […] WordPress [the] plugin architecture [which] allows different platforms to implement the same applications programming interface (API)"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> The underlying content of the web metaverse is already decentralized being provided by countless servers. Even the social content, users and game items is decentralized. Users can connect through their own messaging server. They can use an open-source client with a small set of interfaces. The reference implementation by weblin.io shows how pluggable item providers allow for decentralized game content on the social layer.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "Just the coordination challenge of building that API is likely to be a multi-decade process of arriving at agreement on standards"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> That's a consequence of the complexity of 3D worlds. The weblin.io project shows how small a set of APIs really needs to be to make the web a decentralized metaverse.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "The need to coordinate and share multiple standards pushes towards a single platform owner that can force [necessary] standards into existence. But we know that isn’t the dream we all ultimately want"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> No, it's not. The web is decentralized and relies on open standards. And the social layer that makes up the web metaverse is also built on (few) open standards. In direct analogy to the content part of the web where HTTP(s) provides data in HTML, JSON, and Javascript, the social layer that makes the web a metaverse is driven by XMPP, a distributed and standardized messaging protocol. Data formats on top of XMPP are the same as the ones that encode the web content. The standards of the web metaverse are already available. They are widely used and highly accessible. That's a perfect foundation to keep the web metaverse decentralized going into the future.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "[Few] worlds […] have ever been willing to sign up [to] <a href="https://www.raphkoster.com/games/essays/declaring-the-rights-of-players/" style="background-color: transparent; box-sizing: border-box; color: #9fc415; text-decoration-line: none;">Rights of Avatars</a>"</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> The webin.io project signs up. We neither control the social layer nor users and avatars. We are providing standards, an open-source reference implementation, and infrastructure to kickstart the web metaverse until content providers provide their own messaging servers. Content providers might control their space by exercising their property rights and users can connect through an XMPP entry point of their choosing. In particular (but without devaluing other avatar rights) we support the right of avatars to speak freely everywhere. And the right to "be secure in their persons, communications …". In the web metaverse users are anonymous, if they so choose, which is the default.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;"><span style="box-sizing: border-box; font-weight: bolder;">Raph says:</span> "[Making the one metaverse of compatible virtual worlds] is going to be hard."</p><blockquote style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin: 0px 0px 1rem 2rem;"><p style="box-sizing: border-box; margin-bottom: 1rem; margin-top: 0px;"><em style="box-sizing: border-box;">weblin.io comments:</em> Acknowledged. The 3D case is hard. The weblin.io project approaches the problem from a different angle. We start with the web as the metaverse. The web is already there. It is easily accessible. It does not have to be built because it is already content rich. It is already decentralized. Web links even point into places inside virtual worlds. In that respect the web is a superset, the distribution platform, not just for web content, but also for 3D virtual worlds. Virtual worlds are part of the web. The summary of all virtual worlds and all web content is The Metaverse.</p></blockquote><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">We want our avatars not only inside 3D worlds. We want our avatars to break free of virtual world boundaries. Not just between virtual worlds, but also between virtual world silos and the web. We want to use our virtual world avatars on the web. This is easier than it sounds because standards and formats of the web metaverse are simple. A virtual world developer needs just one week to write an exporter that lets all their users join the web metaverse, The Metaverse. </p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">Break free. Reclaim the web!</p><p style="background-color: white; box-sizing: border-box; color: #212529; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-bottom: 1rem; margin-top: 0px;">_happy_breaking()</p></div><div class="row mt-2" style="background-color: white; box-sizing: border-box; color: #212529; display: flex; flex-wrap: wrap; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-size: 16px; margin-left: -15px; margin-right: -15px; margin-top: 0.5rem !important;"></div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-33250503164307285722021-09-29T22:56:00.004+02:002021-12-03T12:46:29.034+01:00Details on my ScienceCode<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuuxRcnZI4vS6Ksp5fWrDk9fX_3pXNvhxK4443ngTtgIKOTIFTwX7pX88NJtREpY0CXfc8wR6Urp2Ew7UGIFH3p0XhIvc0ncQHxPnWF4WBoVvOpQcfGLID5IB_5bPGfCXcv8xkyg/s1140/cometa_67P_Churyumov_Gerasimenko_NavCam_Rosetta_310814.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="1140" data-original-width="1140" height="200" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiuuxRcnZI4vS6Ksp5fWrDk9fX_3pXNvhxK4443ngTtgIKOTIFTwX7pX88NJtREpY0CXfc8wR6Urp2Ew7UGIFH3p0XhIvc0ncQHxPnWF4WBoVvOpQcfGLID5IB_5bPGfCXcv8xkyg/w200-h200/cometa_67P_Churyumov_Gerasimenko_NavCam_Rosetta_310814.png" width="200" /></a></div>As stated in the earlier post my ScienceCode is:<div><br /></div><div><span style="background-color: rgba(255, 255, 255, 0.5); color: #333333; font-family: courier; font-size: 13px;">bb+/un ci0 eu+ dm+/sn de- </span></div><div><span style="background-color: rgba(255, 255, 255, 0.5); color: #333333; font-family: courier; font-size: 13px;">mv/rp sm+ ss- st- lqg+ gr+ </span></div><div><span style="background-color: rgba(255, 255, 255, 0.5); color: #333333; font-family: courier; font-size: 13px;">sr++ gut- fp++/gf sh0</span></div><div><div><br /></div><div>See: <a href="http://blog.wolfspelz.de/2021/09/cosmo-code-geek-code-for-physics-and.html">ScienceCode - The GeekCode for Science</a></div><div><br /></div><div>Here comes my explanation:</div><div><br /></div><div><div>I think there was a Big Bang. But I don't know how it came about. There is the idea that the universe has zero total energy, thus making it possible to have been started by a chance quantum fluctuation. The so-called "universe from nothing", although conformal cyclic would be cool: bb+/un. </div><div><br /></div><div>I am indifferent about the initial inflation. With "superluminal speed" from Planck length to apple size sounds like a wild theory. Do regions really have to be able to communicate in order to develop the same conditions? (ci0)</div><div><br /></div><div>I am fine with expansion and have my doubts about the acceleration. Might have been observation bias, so simply: eu+</div><div><br /></div><div>I am undecided about the source of "dark gravity". I say 50:50 that it is something in our universe, e.g., so far unknown elementary particles. If I had to choose, I'd go with sterile neutrinos for now, even though it is as unclear what sterile neutrinos would be as ist is unclear what dark matter is, basically a synonym dont-know-matter: dm+/sn</div><div><br /></div><div>I am not convinced by the popular interpretation of dark energy, especially the part about 70% of the universe, etc. I think this is something else: de-</div><div><br /></div><div>I am totally pro standard model (full disclosure: I may be biased because I worked on it in my master thesis). I have no problem with (too) many parameters. I don't understand why 19 parameters should be worse than, say, 3. Who can claim with authority that 19 parameters are "too many". Maybe 1000 would be "many" and 19 is already "few". I don't like renormalization, though. A satisfying description should do without. On the other hand, that's a kind of beauty argument. Maybe renormalization is what nature does behind the scenes all the time. On the other hand, physics beyond the Standard Model would be cool. As a science fiction writer, I cannot ignore the fact that "new physics" might offer new solutions. Maybe even small ones like solving the energy problem forever. Anyway: sm+</div><div><br /></div><div>I don't believe in Supersymmetry. First, that's a lot of theory and necessary particles compared to the added value. Second, none of the supersymmetric partners has been found yet. Until then: ss-</div><div><br /></div><div>I am critical of String Theory because it is hard to prove. But I see a big hole in other theories that might be filled by String Theory: why does energy clump together into different types of elementary particles. What makes a blob of energy a gluon and another one an electron? String Theory would explain it. But on the other hand, it could be completely wrong, so: st-</div><div><br /></div><div>I like loop quantum gravity. It is hard to test like string theory. But I could imagine that everything is quantized, including space. Quantization always makes life interesting. Everything we know arises from quantization. A good principle. However, the scale is so small that it is practically irrelevant. That's a pity. I don't know why I like LQG more than ST. It is a bit unfair. I am blank on both. Anyway: lqg+</div><div><br /></div><div>I think there are many universes, and we happen to live in one that supports life, obviously: mv++/rp</div><div><br /></div><div>General Relativity nails it. I could (I mean I wish I could) imagine quantum-corrections which make General Relativity an approximation of a more general General Relativity. Incompatibility of General Relativity and Quantum Mechanics is not a practical problem apart from quantum black holes. And if primordial small black holes from the Big Bang are not a thing, then this problem lies 10^40 years in the future until stellar sized black holes evaporate (if they do). General Relativity is good enough for me: gr+</div><div><br /></div><div>I am afraid that Special Relativity is the final word. On the other hand, 200 years ago everyone knew, that nothing can fly (with fixed wings) if it is heavier than air, right? Logically deduced, undisputed, any defiance a career ending stupidity. Here comes the wing effect. Even fixed wings produce lift. An effect completely unheard of and unthought of until it was invented. The wing effect circumvented a dogma that seemed logical at the time. I am hoping for a similar effect, that we just don't know yet. But I am afraid resistance is futile (and career ending in modern theoretical physics): sr++.</div><div><br /></div><div>I could imagine that there is no grand unified theory of everything. For sure there is a consistent description of the universe. It may be very simple and emerge from new ways of thinking. But it may be as complex as the universe and not expressible in few symbols on paper. Maybe General Relativity and the Standard Model are independent. Why does it have to be a unified description of all forces? Maybe it's just three forces plus warped spacetime. Two fundamental structures with small modifications so that they work together even in extreme circumstances of Planck lengths and black holes. Modifications so small that we will never test them. Besides, if gravity is not regarded as a fundamental force, then the hierarchy problem disappears: the question why gravity is sooo much weaker than the other forces. The relative strengths of the forces look like: Strong force: 100%, E/M: 1%, weak force: 0.0001%, then nothing for a long time and then gravity with 37 zeroes hiding a very small 1. The first three forces are quite close. Gravity is far off. Much farther than you think because counting zeroes makes it logarithmically. A logarithm of 37 is nonexistent for all practical purposes. Gravity is a totally different beast. Good luck unifying that. The verdict: gut-</div><div><br /></div><div>I think there are great filters like Rare-Earth and Rare-Intelligence, and we already passed them. In other words, no aliens, at least not in range. Billions of Earth-like planets per Milky Way or not, great filters squeeze the probability really fast. No aliens, too bad. On the other hand: having past the great filter, the universe is ours. Still undecided which great filter really hurts the most. So: fp++/gf</div><div><br /></div><div>The real world or a very good simulation. It might be a simulation, but for sure not a computer simulation. We are primed to think of "computer" simulations because that's what we learned growing up. Even the real world could be regarded as a simulation run by the multiverse with certain standard model parameters. If it really is a simulation, then in a way we do not (yet?) grok. Like theorizing if God has a beard without being able to grasp the concept of God. Pointless: sh0</div><div><br /></div><div>All together that makes:</div><div><br /></div><div><span style="background-color: rgba(255, 255, 255, 0.5); color: #333333; font-family: courier; font-size: 13px;">bb+/un ci0 eu+ dm+/sn de- mv/rp sm+ ss- st- lqg+ gr+ sr++ gut- fp++/gf sh0</span></div><div><br /></div></div><div>_happy_coding()</div></div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-2560398914183461092021-09-21T17:52:00.017+02:002021-09-30T20:01:04.574+02:00ScienceCode - The GeekCode for Science<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJkY2QL2QTtUXlUHNPl-MxQqHXhzmlLYJ0M3BNI-w1rOPoJJDVKjsy4IAAhXLFTBXxJkDXqrdlhlDELbyA5hiY7dkgDc8QP8QQcQk9q0YWarH4MVo5gm0LxAWYNr57M3FLAyNdNA/s320/hud2014_1000c.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="220" data-original-width="320" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJkY2QL2QTtUXlUHNPl-MxQqHXhzmlLYJ0M3BNI-w1rOPoJJDVKjsy4IAAhXLFTBXxJkDXqrdlhlDELbyA5hiY7dkgDc8QP8QQcQk9q0YWarH4MVo5gm0LxAWYNr57M3FLAyNdNA/s0/hud2014_1000c.jpg" width="320" /></a></div>
<p>Do you remember the <a href="https://en.wikipedia.org/wiki/Geek_Code">geek code</a> in the 90s? It encoded how geeky you were and your thoughts about geeky topics. </p>
<p>I am a physicist and I want a ScienceCode that tells in short what I think about various science, physics and cosmological theories. </p>
<p>My ScienceCode is: </p>
<p><span style="font-family: courier;">bb+/un ci0 eu+ dm+/sn de- mv/rp sm+ ss- st- lqg+ gr+ sr++ gut- fp++/gf sh0</span></p>
<p>What is your ScienceCode?</p>
<h3 style="text-align: left;">Format</h3><p>We are starting with a format that is a bit more regular than the original Geek Code. Roughly:<br /><span style="font-family: courier;"><br /> [ theory rating [ "/" modifier ] ]+</span></p><p style="text-align: left;"><span>where:</span></p><div><span style="font-family: courier;"> theory: [a-z0-9]+</span></div><div><span style="font-family: courier;"> modifier</span><span style="font-family: courier;">: [a-z0-9]+<br /></span><span style="font-family: courier;"> rating:</span><span style="font-family: courier;"> "--" | "-" | "0" | "+" | "++"<br /><br /></span></div><h3 style="text-align: left;">Big Bang</h3><p>bb--: Never Happened. There was nothing resembling a Big Bang like starting point. </p><p>bb-: No Big Bang, maybe close, but no singularity.</p><p>bb0: I am not sure if there was a Big Bang. Things could be completely different. Maybe it only appears like there was a start. </p><p>bb+: I think there was one. Maybe more, but our universe began with a singularity. </p><p>bb++: There was a Big Bang almost 14 billion years ago starting with a singularity. After that the laws of nature unfolded. </p><p>bb++/1: There was a Big Bang and only one. No cycles, no big crunch, no bounce, no conformal transformation. </p><p>bb--/ss: No Big Bang, because the universe is in a steady state. </p><p>bb-/cc: Conformal cyclic cosmology has a state that almost looks like a singularity for the new phase. </p><p>bb+/un: Universe from nothing. Happens "all the time" if you wait "long enough" in a non-universe without time. </p><h3 style="text-align: left;">Cosmic Inflation </h3><p>ci--: There was no initial inflation. Maybe even no Big Bang. All made up. Just one theory constructed after the data to fit the data, without another independent proof. </p><p>ci-: Probably no initial inflation. It is just not necessary in order to generate the measured homogeneity in the microwave background. Also, the large-scale homogeneity of the current structure of the universe is in question. </p><p>ci0: I don't know if there was an initial inflationary phase. There could be other explanations for the structure of the microwave background. I think we're still figuring that out</p><p>ci+: There probably was an initial inflationary phase resulting in the homogeneity we see in the microwave background and the current large-scale structure.</p><p>ci++: For sure there was inflation after the Big Bang. That's what explains the observational data. </p><h3 style="text-align: left;">Expanding Universe</h3><p>eu--: The universe is not expanding. It is infinite, static. What would it expand into? Also: science does not agree on the expansion rate. </p><p>eu-: The universe is not expanding. May be tired light, may be another effect that only shows on a very large-scale. </p><p>eu0: The jury is still out on continued expansion. It might just look like expansion. Sure, far galaxies are increasingly red. But that's so far away that even a small yet unknown effect might accumulate to let it look like redshift. We don't know enough. </p><p>eu+: Looks like the universe is expanding. Also, the expansion is faster for galaxies farther out. </p><p>eu++: The universe expands at an accelerating rate. That's what the data show. There is a Nobel price for that (a universe can be from nothing but not a Nobel price)</p><h3 style="text-align: left;">Dark Matter</h3><p>dm--: Not necessary to explain the observations. Conclusions are misled by observation bias and by the desire to find "classical" answers. Sure, there are measurements, but they will be disproven or explained one at a time without dark matter. </p><p>dm-: Something, just not matter. No particle, no heaps of frozen energy. There is an effect but it does not result from something in our universe, maybe not even from inside our universe. Should not be called dark gravity or not even "dark", just unexplained large-scale gravitic effects. </p><p>dm0: Could be anything: modifications to gravitational theories, yet unmeasurable discrepancies in electromagnetic forces, shadow gravity from other universes. Or it might be a yet undiscovered not event theorized particle. Impossible to tell as long as the standard model is not the last word. </p><p>dm+: Dark matter explains all the data better than any other theory, so I'd say 50:50 that there is stuff in our universe. </p><p>dm++: There is dark matter, because it explains so many different observations. I also have a preferred theory on what it is made of. We just need more time to prove it. </p><p>dm++/ax: with axions </p><p>dm++/w: with WIMPs</p><p>dm++/bh: with black holes, tiny ones, and/or primordial or big ones. </p><p>dm++/sn: with sterile neutrinos</p><h3 style="text-align: left;">Dark Energy</h3><p>de-: Nope, no dark energy, because there is no explanation required. Even if it were, dark energy is a big gun. Any measurement can be explained with the properties "dominating the universe", "ubiquitous", "unknown". </p><p>de-: Some measurements look like there is a need for a driving force that might even increase. Unfortunately, it has been called dark energy which is an even worse term than dark matter. There are no doubts about the measurements, but about their interpretation and about some assumptions that went into the calculations. </p><p>de0: I am not sure if there is the need for dark matter. That's not even a theory yet. "Fills the universe uniformly" sounds like a modern Aether, the medium where EM-waves used to propagate. It might evaporate like its predecessor. </p><p>de+: Something causes the universe to expand, and it is not the momentum from the Big Bang. </p><p>de++: A field that uniformly fills the universe. Universe grows, so its power grows, hence accelerated expansion. As simple as that. You are the 4%. </p><h3 style="text-align: left;">Standard Model of Particle Physics</h3><p>sm--: The Standard Model is wrong. The interpretation of probability amplitudes is unclear. The theory is too complex, has too many parameters, is not unified with gravity, not even close. Also, there are experiments with statistically significant measurements that clearly show something is missing. It barely covers 4% of the universe. We need a new theory. </p><p>sm-: The Standard Model works for everyday purposes just like Newton without Einstein: usually delivers the right numbers, but that does not make it the truth. The truth is very different and not yet known. May be strings or any supersymmetry, may be a holographic theory or something we do not yet grasp. </p><p>sm0: The current Standard Model is just the current model. It is workable, but there have been many "standard" models. It is a set of equations that mostly return the numbers we find in experiments. The equations may be almost right or totally off. I don't care as long as they work. Future generations may develop totally different models. </p><p>sm+: The Standard Model works very well. There might be small corrections necessary. But for all practical purposes now and in the foreseeable future the Standard Model (and General Relativity) is all we need. Even if there are measurements significantly above reasonable doubt which are not covered by the Standard Model, they will never lead to new physics that changes anything in our lives. </p><p>sm++: Nature is not a collection of formulas. It just is. If we really want to cover nature by mathematics, then the formulas we call Standard Model are the best we can get. We won't come closer to the truth. The symbols in the Standard Model are good models for the particles and forces at play.</p><h3 style="text-align: left;">Supersymmetry</h3><p>ss--: Definitely not Supersymmetry. Too much new stuff for too little gain. None of the extra particles materialized. Complete failure. We need something else. </p><p>ss-: Hardly Supersymmetry. Claiming that 50 % of all required particles have already been found sounds like a win, but it does not solve the problem of the missing supersymmetric partners. Unlikely, but not impossible, though. </p><p>ss0: May be Supersymmetry. Difficult to tell without any experimental confirmation. </p><p>ss+: It's probably Supersymmetry. But it is difficult to choose which one. Looks kind of arbitrary. </p><p>ss++: Supersymmetry it is. The future will tell which version exactly. Everything will fall into place. </p><h3 style="text-align: left;">String Theory</h3><p>st--: Vibrating non-entities is nonsense. You are not even allowed to ask what vibrates. Also, too many extra dimensions necessary. Nice try, but that is not how nature works. </p><p>st-: Probably not. String Theory is not even complete. Too many open questions and some answers are problematic. </p><p>st0: Could be true. Elegant approach, but too incomplete (yet?). Reproducing the observed spectrum of elementary particles needs arbitrary parameters. Unclear if they are emergent or if it is just another theory with a parameter set that is larger than desired. </p><p>st+: String Theory unifies the forces, produces dark matter and even has inflation. Needs more research, but the direction is clear. </p><p>st++: All particles are just oscillation modes of strings. Period. Problem solved.</p><p>st++/26: Bosonic string theory, 26-dimensions</p><p>st++/10: Superstring theory</p><p>st++/m: M-theory</p><h3 style="text-align: left;">Loop Quantum Gravity</h3><p>lqg--: Spacetime is continuous on small scales. It is neither quantized, nor foamy. </p><p>lqg-: Kind of pointless. A theory that has no measurable effect is useless. It is not even a scientific theory, because that needs a model and fitting data. </p><p>lqg0: Undecided. Could be true or not. I don't care because it will never affect the real world. </p><p>lqg+: Space is quantized and spacetime fluctuates on the Planck length. There is just no way to prove it or use it. </p><p>lqg++: Loop Quantum Gravity merges quantum mechanics and general relativity. Experimentalists will find ways to show it. </p><h3 style="text-align: left;">Multiverse</h3><p>mv--: There is only one universe: ours. </p><p>mv-: Practically there is no multiverse. Our universe seems to be much larger than our observable universe. We cannot even decide if our universe is infinite or just very large. Anything beyond our light cone should be beyond consideration.</p><p>mv0: Impossible to tell. Our universe may be part of a multiverse. But we will never know. </p><p>mv+: There are many universes. Very many, but the number would be countable if anyone could count. They might induce each other. They might follow after each other sequentially. Black holes might spawn new universes. Our universe might be the inside of a black hole. Or maybe universes are branes and a Big Bang happens when 2 universes collide in the higher dimensional multiverse. </p><p>mv++: There is a (practically or literally) infinite number of universes popping in an out of existence in the multiverse. Ours is just one of them that allows for life to emerge.</p><p>mv++/rp: Many with any combination of parameters. Some bear life, many do not, but who can tell what "some" and "many" mean with respect to an infinite number. </p><h3 style="text-align: left;">General Relativity</h3><p>gr--: General Relativity only seems to work. It is made to fit the data. Actually, the universe is driven by other forces. Gravity is so weak compared to other forces that even unmeasurable discrepancies or imbalances in the other three would completely dominate the universe. This is much more probable. </p><p>gr-: General Relativity is an approximation. Galileo, Newton, Einstein, we are getting closer to the truth. But it is not the end of the road.</p><p>gr0: Just one theory. A good one, but it could be the wrong model. Imagine there are 2 models. Both returning the same numbers in the value ranges we are used to. But their interpretation is completely different. Both cannot be true. Yet we know only one such theory. We cannot compare. And because General Relativity works so well in practice, we are convinced that there is a 4-dimensional spacetime that is warped by matter and in turn creates geodesics for said matter. Even though General Relativity works, this may be the wrong picture. Just saying.</p><p>gr+: General Relativity works really well. But it is not compatible with Quantum Mechanics as we know it. There will be a theory that harmonizes probabilities of Quantum Mechanics with determinism of General Relativity. </p><p>gr++: General Relativity is all we need to understand the interaction of matter, energy, and spacetime.</p><h3 style="text-align: left;">Special Relativity</h3><p>sr--: FTL is possible. Tachyons are real. Special Relativity is an oppressive pseudo theory.</p><p>sr-: Quantum entanglement might be usable for communication in the future. An Alcubierre-like drive might move spacetime with less requirements than currently theorized and without being suppressed (I am talking to you, firewall). </p><p>sr0: There may be more elaborate theories in the future. Maybe a grand unified theory has loopholes for paths beyond Special Relativity. </p><p>sr+: Special Relativity doubtless works. Though we might find limited ways to work around it. Maybe causality is not "that badly violated" for purely inactive observers. </p><p>sr++: The fact is: c is the limit. Not just for speed, but also for effects. No FTL travel, no time machines. Any theoretically possible path that seems to circumvent Special Relativity is practically forbidden by infinitesimal probabilities, by firewalls, by event horizons. No chance. </p><h3 style="text-align: left;">Grand Unified Theory, Existence of</h3><p>gut--: The three fundamental forces of the Standard Model plus General Relativity is all there is. Gravity is an effect of warped spacetime. It is an effective force, but not a fundamental one. There is no such thing as a spin 2 graviton (for that matter :-). No particle mediated force, no gauge theory, nothing to unify. Period. </p><p>gut-: A unified theory does not have to be a gauge theory, not even a field theory. Maybe the field theory thing is wrong. Maybe the standard model is wrong. Maybe String Theory is right. Maybe Richard Feynman made computations easy and erected a smoke screen at the same time. It needs a new way of thinking. For sure there is a theory that harmonizes quantum and relativity, because they do co-exist in this universe. So, there must be a way to unify them. But it is not the GUT you expect.</p><p>gut0: Not sure if we will ever get there. The ways of the universe might be above us mere humans, even if we let our best specimen work on it. </p><p>gut+: It takes longer than physicists thought, but sometime in the future the fundamental forces will be unified by a new theory, a new way to see the universe.</p><p>gut++: There is a unifying theory, and its name is X. </p><h3 style="text-align: left;">Fermi Paradox</h3><p>fp--: Not a paradox. There are no aliens. </p><p>fp-: Irrelevant until the aliens land </p><p>fp0: Many intelligent people talk about it, so it seems to be a thing. I don't know if we'll ever know and if we should care. Fun exercise, though. </p><p>fp+: Interesting question. I wonder what the solution is. We'll find out.</p><p>fp++: It looks like a paradox, but that's only because of our limited knowledge. It has a solution, and the solution has serious implications for humanity.</p><p>fp++/gf: The solution to the paradox is great filters in general</p><p>fp++/re: No aliens because of rare earth.</p><p>fp++/ri: No aliens because of rare intelligence that is detectable.</p><p>fp++/zoo: We live in a galactic zoo.</p><h3 style="text-align: left;">Simulation Hypothesis </h3><p>sh--: This is the real world.</p><p>sh-: There is no indication. I don't believe that we are living in a simulation. That would be weird. </p><p>sh0: Undecided and not interested. If this is a simulation, then it's a good one. It definitely looks like the real world, so I treat it like that. Knowing this would not change anything. </p><p>sh+: That could well be. The probability argument is very much in favor of this being a simulation. Also, the delayed-choice quantum eraser is a hint that the simulation fixes things after the fact if any simulated consciousness looks at the result. This is - in turn - a hint that consciousness is not emergent, but really special, because it gets extra treatment by the simulator. Which - again in turn - is an argument for a simulation. Furthermore, quantum entanglement works exactly as it would if the entangled particles were not really separated in space because they are all simulated. There is no spatial separation for the simulator, hence it is easy to update both states at once. </p><p>sh++: This is a simulation. </p><p>sh++/n: We are at the n-th level. </p>
<h3 style="text-align: left;">Extensions</h3><div>There are more theories out there. Several theories in this list could profit from a more knowlegable explanation. I am sure you also have many ideas about modifiers. Write me if you want to add or change something. </div><div><br /></div><div><br /></div><div><br /></div><div>Until then,</div><div>_happy_simulating()</div><p><br /></p><div><br /></div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-50630856407872299132021-04-10T22:28:00.009+02:002021-04-10T22:41:59.713+02:00Converting Markdown to HTML on the fly in Web Pages<p>The Problem:</p><p>A long text on your web site, say, a privacy policy, with lots of headlines, lists and paragraphs. It is a lot of work to convert the text made in MS Word by your lawyer into the HTML that fits your web page design. </p><p>The Solution:</p><p>Convert to Markdown, basically the plain text with '#'s and '-'s. Put the markdown into a <pre>, then let JavaScript on the client convert it into HTML replacing the Markdown text.</p><p>Like so:</p><blockquote><p><span style="font-family: courier;"><div id="html"><br /></span><span style="font-family: courier;"> <pre id="text"><br /></span><span style="font-family: courier;"># General</span></p><p><span style="font-family: courier;">We take privacy seriously. </span></p><p><span style="font-family: courier;">[...long text with markdown...]</span></p><p><span style="font-family: courier;"> </div><br /></span><span style="font-family: courier;"></div></span></p><p><span style="font-family: courier;"><script </span><span style="font-family: courier;">src="https://cdnjs.cloudflare.com/ajax/libs/showdown/1.9.1/showdown.min.js"></script></span></p><p><span style="font-family: courier;"><script><br /></span><span style="font-family: courier;"> $('#</span><span style="font-family: courier;">html').html(<span style="font-family: courier;">new showdown.Converter(</span><span style="font-family: courier;">)</span><span style="font-family: courier;">.makeHtml(</span><span style="font-family: courier;">$('#</span><span style="font-family: courier;">text</span><span style="font-family: courier;">').text()</span><span style="font-family: courier;">)</span>);<br /></span><span style="font-family: courier;"></script></span></p></blockquote><div>Yes, a bit of jquery, which is already there in case of bootstrap.css and you will know how to do without.</div><div><br /></div><div>If the conversion fails, there is always the markdown plaintext satisfiying the law. </div><div><br /></div><div>_happy_markdowning()</div><div><br /></div><div>...just saying.</div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-36619783709901734592020-02-10T21:52:00.016+01:002021-07-24T11:38:47.279+02:00The Big Bang is still on<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitKqyeNoSg19Qe3zC2UO1WsPvvyNM2iw7jCJRPPtzDyqli7R5mLwggA0622PdWU_vuk-ol5TXbl-EEPjEDuZQzGAW3MZS1MjWewL71glQVejockmmIEN7i9lBB_VZ4lIZawxZN3Q/s1600/hud2014_1000c.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="688" data-original-width="1000" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitKqyeNoSg19Qe3zC2UO1WsPvvyNM2iw7jCJRPPtzDyqli7R5mLwggA0622PdWU_vuk-ol5TXbl-EEPjEDuZQzGAW3MZS1MjWewL71glQVejockmmIEN7i9lBB_VZ4lIZawxZN3Q/s320/hud2014_1000c.jpg" width="320" /></a></div>
<div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">To a quantum tunneling lifeform that lives 10^50 years from now, our stars are just like the sparkling after the fireworks of the big bang. From their point of view stars lit up for a instant right after nucleons formed and just to give birth to black holes. These black holes are the "stars" for the future quantum tunneling life, which lives on a single Hawking radiation photon every few billion years.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">...because Time plays out on a logarithmic scale.</div><h3 style="line-height: normal; margin-bottom: 6pt; text-align: left;">Let me explain:</h3><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">The universe is about 14 billion years old. And it will be 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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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. As hot as on the surface of most stars.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">Now things happen in quick succession. Only 1000 times longer than everything before, hydrogen atoms clump together 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 jets over millions of lightyears stirring up the intergalactic medium like the water tap in a bathtub. A wild time.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">The universe started out at ridiculously high temperatures. It cooled down a lot. But it is not yet cold. Stars are hot, flooding the universe with radiation, and even without them the universe has a decent background temperature of several degrees. Cold for us, but a lot more than zero.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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 glowing brightly from every direction and countless stars do their part to keep it up.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">New stars will be born and 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 fireworks after the big bang.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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 inhale the cosmic microwave background growing 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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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 on Hawking radiation. It might see black holes as we now see stars. </div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">Around the year 1e90, right in the (logarithmic) middle of the black hole epoch (just like where we are living in the log-middle of the stellar epoch), a stellar black hole will give off a radio photon every billion years or an optical photon every million billion years. Considered the perceived time for quantum tunnelling runs 1e65 times slower, they experience a trillion trillion trillion trillion trillion years like we do one second. During this time, a Hawking photon every million billion years amounts to 1e50 photons. For comparison, our sun gives off 1e45 photons per second. That is the same "order" of perceived luminosity, which is just a fancy term for "brightness".</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">When black holes lose mass this way, they shine even brighter. There will be less luminous large black holes, and smaller ones burning much brighter. For this kind of life form, the universe is filled by shining stellar black holes, glowing supermassive black holes, and brightly burning ageing black holes. Until they explode. These are the supernovae of the future: incredibly bright flashes when black holes explode. They are rare in the neighborhood but they actually happen all the time just like we see supernovae in distant galaxies. Flashes of black hole explosions and collisions will be everywhere, frequent on a timescale where a trillion trillion trillion trillion trillion years feels like a second. </div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">Then only real behemoths remain. Giant black holes that dwarf our current supermassive black holes. They have the mass of galaxy superclusters. Fun fact: the event horizon of these ultra massive holes is of galactic dimensions: a million light-years across (not "just" a million kilometers). And they also evaporate. But exponentially slower due to their vast size. It takes another trillion trillion trillion times more.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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 unmeasurably short flash bevor black holes emerged and stayed. And went.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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 on starlight. 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 when nucleon and atom synthesis happened.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">The second third of the logarithmic timescale belongs to the hypothetical quantum tunneling life. They live on Hawking radiation from black holes for 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 super short stellar phase that gave them their black holes. For them, our stars were just a brief intermediate step right after nucleon synthesis, necessary to form black holes, their "stars". For them, our stars were shorter lived than anything before nucleosynthesis for us. </div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">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. </div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">Nature finds a way.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">And after all that, there are no baryons left and only unimaginably cold photons at wavelengths the size of the universe remain. There are no clocks and nothing that can serve as a measure of time. With time goes distance, both becoming meaningless. So the universe is filled by photons so long, they barely fit into the universe. They may as well be concentrated in a small spot. Who could tell. Basically the size of the universe is just a few wavelengths of the dominating radiation. Maybe then a phase change happens, an implict or explicit rescaling, either just a continuation or a deflation event. Whatever happens then, the result looks very much like all radiation in a small spot by measure of wavelengths. </div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">The rest is history. Inflation kicks in and the forces of nature unfold creating the laws of physics as we know them - or maybe - different ones this time.</div><div class="MsoNormal" style="line-height: normal; margin-bottom: 6pt;">_happy_waiting()</div>
Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-70355756400976854632020-01-17T10:19:00.003+01:002020-01-17T10:19:57.389+01:00Galactic Developments MessestandBeim <a href="https://www.berlinscifi.com/">Berlin Sci-Fi Filmfest</a> hatte ich einen schönen <a href="http://www.galactic-developments.de/">Galactic Developments</a> 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.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDiDWerZa9UZs03Dx3Qs0eeGQXI312NAaPXxk4872WoFX2377hT7HH53KOYVEnXAghEdKGeO4Y6_t4Oglwn7rgizkMipcR52evjHH0gkO6Y6BHXzwB6eqiycqX9PCDaRY-fBx4A/s1600/79444721_10156823234188601_8344996743162626048_o.jpg" imageanchor="1"><img border="0" height="640" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhUDiDWerZa9UZs03Dx3Qs0eeGQXI312NAaPXxk4872WoFX2377hT7HH53KOYVEnXAghEdKGeO4Y6_t4Oglwn7rgizkMipcR52evjHH0gkO6Y6BHXzwB6eqiycqX9PCDaRY-fBx4A/s640/79444721_10156823234188601_8344996743162626048_o.jpg" width="479" /></a><br />
<br />
_happy_dreaming()Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-20962288618940898192019-03-13T11:47:00.002+01:002021-07-24T20:09:45.544+02:00A Coders Take on BREXIT: The Lupus Solution<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ERTWKSj5GQsBrhz4nIJaEu_kJNzljq2SIUgfPxzVHVL-2sg0nn1-7REN1b0BUa7tCFt1tXBGTm-X3ZM-1aL9AjEvafxcrkoCZ_j8hGoSJVGJTqmzgIs3HAOxg04Nw3dERX9gbw/s1600/Reset.jpg" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="823" data-original-width="501" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi5ERTWKSj5GQsBrhz4nIJaEu_kJNzljq2SIUgfPxzVHVL-2sg0nn1-7REN1b0BUa7tCFt1tXBGTm-X3ZM-1aL9AjEvafxcrkoCZ_j8hGoSJVGJTqmzgIs3HAOxg04Nw3dERX9gbw/s400/Reset.jpg" width="242" /></a></div>
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.<br />
<br />
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.<br />
<br />
On 4 December 2018, the responsible <a href="https://www.bbc.com/news/uk-scotland-scotland-politics-46428579">Advocate General to the ECJ published his preliminary opinion</a> that "a country could unilaterally cancel its withdrawal from the EU should it wish to do so, by simple notice, prior to actual departure".<br />
<br />
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.<br />
<br />
That makes the solution obvious: send two letters to the EU back to back.<br />
<ul>
<li>the first with the cancellation of the article 50 process,</li>
<li>the second with a new trigger of article 50. </li>
</ul>
(In practice you would play it safe and leave one day between cancel and reset.)<br />
<br />
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.<br />
<br />
<b>Just make a law in parliament to cancel article 50 AND trigger it immediately again. </b><br />
<br />
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.<br />
<br />
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.<br />
<br />
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!<br />
<br />
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.<br />
<br />
_happy_resetting()<br />
<br />
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 "<a href="https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:12008E125:EN:HTML">no bailout</a>" in the Euro zone? Giving Greece money to be (maybe) payed back in 50 years, is a stretch. What happened to the "<a href="https://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:12008E123:EN:HTML">prohibition of monetary financing</a>"? Ah, yes, The ECB buys 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.<br />
<br />
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 <a href="https://en.wikipedia.org/wiki/Game_theory">game theory, the study of mathematical models of strategic interaction between rational decision-makers</a>.<br />
<br />
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. Could be a nice tradition in the long run. A typically British exception from EU rules.<br />
<br />Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-45110422707212923232019-02-28T17:14:00.001+01:002023-05-22T10:58:47.725+02:00Agile mit Super Powers<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipQayKzU6TSiDSFsoEJwf9Q5fIOUMtiVIDFgxQmyaq0OYtUoPoteOny29ycNtBZSEsZAatbWPKsp2nF8UdD76tG-08wXRTDjjp0GDyS7mfYNPRpJDto3VUDLi8FJv3O_NR9UxzLw/s1600/superboys-2507813_640.png" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" data-original-height="388" data-original-width="640" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipQayKzU6TSiDSFsoEJwf9Q5fIOUMtiVIDFgxQmyaq0OYtUoPoteOny29ycNtBZSEsZAatbWPKsp2nF8UdD76tG-08wXRTDjjp0GDyS7mfYNPRpJDto3VUDLi8FJv3O_NR9UxzLw/s320/superboys-2507813_640.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Superboys: Edict-Abhilekh on Pixabay</td></tr>
</tbody></table>
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.<br />
<br />
In der realen Welt haben wir mehr Rollen, als die bekannten Scrum-Rollen: Scrum Master, Product Owner und Entwicklerin.<br />
<br />
Außerdem gibt's da noch:<br />
<div class="MsoNormal">
</div>
<ul>
<li>Tester, die Test-Ingenieure sein sollten, nicht Durchklicker, sondern Integration-Test-Entwickler und Test-System Managerinnen, </li>
<li>Admins, früher Operator, jetzt Devops, also Devs mit Leidenschaft für Betrieb, </li>
<li>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, </li>
<li>UX-Designer, ständig ein bisschen gebraucht, denn bei jedem Feature mit Business-Value für Benutzerinnen ist UX wichtig, </li>
<li>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. </li>
<li>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. </li>
<li>Marketing, Vertrieb, Controlling, Management… sind auch nötig, damit was geht, schon klar.</li>
</ul>
Von den Entwicklerinnen verlangt man heute viele Fähigkeiten:<br />
<div class="MsoNormal">
</div>
<ul>
<li>Frontend und Backend, jeweils mit ihren aktuellen (und schnell wechselnden) Frameworks, </li>
<li>Unit Tests ohne Zeit-Overhead während des Codings "einfließen" zu lassen, </li>
<li>Integration-Tests und GUI-Tests aufzusetzen und up-to date zu halten während sich UX Workflows ändern, </li>
<li>Beherrschung von Continuous Integration/Deployment Systemen, </li>
<li>Container und Orchestrierung, </li>
<li>Virtuose Bedienung von Code Repositories für Quellcode, Pakete, Container (Stichworte: GitFlow, nuget/PEAR, Dockerhub). Nicht nur benutzen, sondern auch bereitstellen, intern und extern. </li>
<li>Code Reviews und Refactoring</li>
<li>Code-Metriken</li>
<li>Kenntnis und Benutzung von Monitoring-Systemen für Alarm, Dashboard und KPIs, </li>
<li>Clean Code, Design Patterns, Entwicklungsumgebungen und deren Extensions, </li>
<li>Security (in Code, Libraries aus Repos?, Operating), </li>
<li>Reliability-Engineering, </li>
<li>Skalierung (Up and Out)</li>
<li>Konfiguration der APIs und GUIs diverser Cloud-Anbieter und Meta-Cloud-Services, </li>
</ul>
usw.<br />
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Unter den Entwicklern gibt es Spezialisten für das alles. Aber nehmen wir ein Team von 7, (UX-) Designer, Tester, Admin (ähm, Devops), Frontendler, Backenderin. Eigentlich sollen alle alles können, aber nicht jede, die Microservices containerisiert ist gleichzeitig ein CSS3-Wizard. Dann wird es langsam eng mit den oben genannten Spezialfertigkeiten. Coden sollen sie ja auch noch. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Warum machen wir das alles?</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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…</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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.<br />
<br />Man kann das nicht alles den Entwicklern aufbürden, deshalb verteilen wir das:</div>
<div class="MsoNormal">
<h3>
<span style="font-weight: normal;">Superpower #1: Agile-Coach mit agiler Technologie</span></h3>
</div>
<div class="MsoNormal">
Es könnte/sollte/müsste die Aufgabe des Scrum-Masters 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 dann auch "glücklich": Superpowered Scrum-Master.</div>
<div class="MsoNormal">
<h3>
<span style="font-weight: normal;">Superpower #2: Product Owner mit UX-Design</span></h3>
</div>
<div class="MsoNormal">
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, nicht nur schöne GUIs, sondern vor allem gute Workflows. Ein Product Owner gießt die 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.<br />
<br />
...und weil wir schon dabei sind. Das wäre auch toll:</div>
<div class="MsoNormal">
<h3>
<span style="font-weight: normal;">Superpower #3: Visual-Designer mit Frontend-Programmierung</span></h3>
</div>
<div class="MsoNormal">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. Denn dann muss sie 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 jund nicht mehr UX-Designer zwischen Teams teilen muss: Superpowered Designer.</div>
<div class="MsoNormal">
<h3>
<span style="font-weight: normal;">Superpower #4: Entwicklungsleiter mit Technik-Coach für Product Owner</span></h3>
</div>
<div class="MsoNormal">
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 aus der Technik 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 sie 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. Die Entwicklungsleiterin kann so wissen was passiert und gleichzeitig etwas steuern. Die Stunde pro Woche mit dem PO ist <b>das effizienteste Steuerungswerkzeug der agilen Entwicklungsleiterin</b>, ohne den agilen Prozess zu verletzen. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
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. </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
Niemand hat gesagt, dass Superkräfte einfach sind.<br />
<br />
<b>#SuperPoweredAgile</b></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
_happy_powering()</div>
Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-84457109449688188972018-12-16T21:08:00.003+01:002018-12-16T21:08:30.976+01:00Kennzeichnungspflicht für Social BotsBreaking News: <a href="https://www.heise.de/newsticker/meldung/Bundesregierung-erwaegt-Kennzeichnungspflicht-fuer-Social-Bots-4252095.html">Die Bundesregierung erwägt Kennzeichnungspflicht für Social Bots</a><br />
<br />
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.<br />
<br />
Das ist sehr sinnvoll und richtig.<br />
<br />
Und weil das so sinnvoll und richtig ist, wurde das schon mal vorgeschlagen. Vor ziemlich genau 10 Jahren: <a href="http://www.virtual-presence.org/notes/VPTN-5.txt">Bot Tagging</a>.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Da es so viele verschiedene Bot-Arten gibt, sollte es ein Kennzeichnungssystem geben, das mehr aussagt, als Bot JA/NEIN. Man will wissen<br />
- ob der Bot kommerzielle Werbung macht oder politische,<br />
- ob er der Unterhaltung dient oder eine Servicefunktion erfüllt,<br />
- ob er jugendfrei ist oder - allgemeiner ausgedrückt: die Kennzeichnung braucht auch eine Altersfreigabe.<br />
<br />
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 <a href="http://dmoztools.net/">Open Directory Project</a> oder <a href="http://curlie.org/">hier</a>).<br />
<br />
Das alles steht in der "<a href="http://www.virtual-presence.org/notes/VPTN-5.txt">Virtual Presence Technical Note 5: <span style="white-space: pre-wrap;">Bot Tagging</span></a>", weil wir bei Weblin das schon damals gesehen haben.<br />
<br />
_happy_tagging()<br />
<br />
<br />Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-2168159430970021852017-11-23T12:25:00.000+01:002017-12-20T09:54:51.043+01:00CSV im US Format im Excel öffnen (Komma statt Semikolon) - Systemsprache kurzfristig umstellentl;dr: Systemsprache kurzfristig umstellen. Powershell: "Set-Culture en-US" und zurück: "Set-Culture de-DE"<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDZiI0GtbWx2ZGLJEginPN19sHG6yd1J5G7asmvL9QhzEyIhsMzqEQXx71blt4zwXIdCf3yt_EbsUXIDcgSOiWEuGQz5k79aEMYToXzkbtAnh43CPXBFx73mvTGRC9EqdLxwOrnw/s1600/csv-komma.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" data-original-height="260" data-original-width="267" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDZiI0GtbWx2ZGLJEginPN19sHG6yd1J5G7asmvL9QhzEyIhsMzqEQXx71blt4zwXIdCf3yt_EbsUXIDcgSOiWEuGQz5k79aEMYToXzkbtAnh43CPXBFx73mvTGRC9EqdLxwOrnw/s1600/csv-komma.png" /></a></div>
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.<br />
<br />
Was tun?<br />
<br />
Man kann:<br />
<ul>
<li>das CSV als Textdatei öffnen und "," durch ";" ersetzen (viel Spaß mit "," in den Daten)</li>
<li>das CSV in .txt umbenennen und im Excel importieren und dabei as Komma als Trennzeichen angeben</li>
</ul>
<div>
Oder: man stellt einfach kurz die Systemsprache um durch ein Powershell Kommando (Commandlet). </div>
<div>
<br />
So geht's:</div>
<div>
<ul>
<li>Powershell öffnen</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">PS C:\> Get-Culture</span> (liefert: <span style="font-family: "courier new" , "courier" , monospace;">de-DE</span>)</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">PS C:\> Set-Culture en-US</span></li>
<li>CSV öffnen durch Doppelklick</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">PS C:\> Set-Culture de-DE</span></li>
<li>Powershell schließen (oder offen lassen, braucht man immer mal)</li>
</ul>
<div>
Voila, englisches (US) CSV importiert.<br />
<br />
(Wenn man es jetzt als CVS speichert, hat man ein englisches CSV in ein deutsches konvertiert).</div>
</div>
<div>
<br />
Kleine Verbesserung (vorherige Einstellung transparent wiederherstellen):<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">PS C:\> $c=Get-Culture; Set-Culture en-US</span></li>
<li>CSV öffnen/bearbeiten</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">PS C:\> Set-Culture $c</span></li>
</ul>
Oder man legt sich diese 2 auf das Desktop:<br />
<ol>
<li>Dateiname: <span style="font-family: "courier new" , "courier" , monospace;">EN.bat</span><br />Inhalt: <span style="font-family: "courier new" , "courier" , monospace;">powershell.exe -Command "Set-Culture en-US"</span></li>
<li>Dateiname: <span style="font-family: "courier new" , "courier" , monospace;">DE.bat</span><br />Inhalt: <span style="font-family: "courier new" , "courier" , monospace;">powershell.exe -Command "Set-Culture de-DE"</span></li>
</ol>
_happy_converting()</div>
Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-89751678021800243692017-05-19T19:08:00.004+02:002017-08-03T11:45:55.223+02:00CSS Customize Visual Studio Online Task Board - Remove Columns And Make it DenserI 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.<br />
<br />
So, I remove the empty space:<br />
<ul>
<li>I do not need the "To be tested" and "Testing" columns.</li>
<li>The cards could be smaller with less margins and paddings</li>
</ul>
That's it.<br />
<br />
I use <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">Tampermonkey</a> to inject CSS into the page.<br />
<br />
Just install the <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">Tampermonkey</a> Chrome/Firefox extension and use this <a href="https://gist.github.com/wolfspelz/012e9f6172c6fa8d36ab77699a90a66d">script</a>:<br />
<script src="https://gist.github.com/wolfspelz/012e9f6172c6fa8d36ab77699a90a66d.js"></script><br />
Before/After:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSPE_7VOVvyOEaDBq8tpWIF0HO6vgSjRv78N2B4pF5gpOL-GqY9wlVrKn7mu-GiMSfLUKizs0Hiy5wTW2HAmvLi8S7BvrRfb0SnIsPaZp7WoRtPeygN7H_XJmPnVqHyc5hACyxRA/s1600/Taskboard1a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSPE_7VOVvyOEaDBq8tpWIF0HO6vgSjRv78N2B4pF5gpOL-GqY9wlVrKn7mu-GiMSfLUKizs0Hiy5wTW2HAmvLi8S7BvrRfb0SnIsPaZp7WoRtPeygN7H_XJmPnVqHyc5hACyxRA/s320/Taskboard1a.png" width="283" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Pbwv6AzCSHmnMQlCZE9tqkRYalD9H0WEeEDxZvROOIQlVFR_X0PeHuYsLoGsERe9ZhBUk4ZMhV2-3gokjlMHpfb531DHz4gUGbYf2a3c0EOsDdIDhrWOAXiUil8_hg1jD7lGZQ/s1600/Taskboard2a.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7Pbwv6AzCSHmnMQlCZE9tqkRYalD9H0WEeEDxZvROOIQlVFR_X0PeHuYsLoGsERe9ZhBUk4ZMhV2-3gokjlMHpfb531DHz4gUGbYf2a3c0EOsDdIDhrWOAXiUil8_hg1jD7lGZQ/s320/Taskboard2a.png" width="283" /></a><br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
More info, less white (grey) space.</div>
<br />
_happy_tampering()<br />
<br />
PS: Once you have <a href="https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo">Tampermonkey</a> 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.<br />
<br />
For example: a script which make visual studio build colors more pronounced to counter my red-green-color weakness:<br />
<br />
<script src="https://gist.github.com/wolfspelz/ed02d5e0867d8d3da16ec2abebd0e58f.js"></script>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-8140325151317813092016-12-05T17:23:00.002+01:002021-04-09T08:52:17.090+02:00JsonPath<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl6rUHwI0SqLZPF1jRfTwXZY-CAlI1BUCMUaRSyiwch654mbk5g7ql1sqZ3RD6GD5bjxDsmHSgCcbe-LDW-80SXULMgYETdyYFcG4ytsFolIFZy7AV6Li1fA10NruEwPPCkdi0Ng/s1600/image133.png" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl6rUHwI0SqLZPF1jRfTwXZY-CAlI1BUCMUaRSyiwch654mbk5g7ql1sqZ3RD6GD5bjxDsmHSgCcbe-LDW-80SXULMgYETdyYFcG4ytsFolIFZy7AV6Li1fA10NruEwPPCkdi0Ng/s1600/image133.png" /></a></div>
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.<br />
<br />
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.<br />
<br />
You can call it XPath for JSON, but in a language integrated and compiled way, which is much faster, than XPath and supported by Intellisense (autocomplete).<br />
<br />
GitHub project: <a href="https://github.com/wolfspelz/JsonPath">https://github.com/wolfspelz/JsonPath</a><br />
NuGet package: <a href="https://www.nuget.org/packages/JsonPath">https://www.nuget.org/packages/JsonPath</a><br />
<br />
Example: extract the 42 from:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">var data = "[ '1st', '2nd', { 'aString': 'Hello World', 'aNumber': 42 } ]"</span><br />
<br />
... parse it:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">var json = </span><span style="font-family: "courier new" , "courier" , monospace;">new Node(data);</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
... extract it:<br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">int fourtytwo = json[2]["aNumber"];</span><br />
<br />
Invalid keys do not throw exceptions. They return 0 (zero), "" (empty string), or empty list:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">int zero = json[1000]["noNumber"];</span><br />
<br />
Of course, you can foreach a dictionary (aka JS object):<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">foreach (var pair in json[2]) {}</span><br />
<br />
And iterate over a list (aka JS array):<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">for (int i = 0; i < json.Count; i++) {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> string value = json[i];</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<br />
You can even LINQ it:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">json[2].Where(pair => pair.Key == "aNumber").First().Value</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
and:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">(from x in json[2] where x.Key == "aNumber" select x.Value).First()</span><br />
<br />
Now get me the 50 from this JSON:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">var data = "[ { </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> aInt: 41, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> bLong: 42000000000, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> cBool: true, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> dString: '43', </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> eFloat: 3.14159265358979323 </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> }, { </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> fInt: 44, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> gLong: 45000000000, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> hString: "46"</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> }, { </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> iList: [ </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> { jInt: 47, kString: '48' }, </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> { lInt: 49, mString: '50' }</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> ], </span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">]";</span><br />
<br />
I can do it in a single line, no foreach no if:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">var fifty = json[2]["iList"][1]["mString"];</span><br />
<br />
Other people had the same idea years ago: <a href="http://goessner.net/articles/JsonPath/">http://goessner.net/articles/JsonPath/</a>. But there does not seem to be a C#/.NET implementation yet. So here it is: <a href="https://github.com/wolfspelz/JsonPath">GitHub</a>, <a href="https://www.nuget.org/packages/JsonPath">nuget</a>.<br />
<br />
_happy_jsoning()<br />
<br />
<br />Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-72537576805894339222016-09-26T14:49:00.004+02:002016-09-28T17:00:24.501+02:00Scrum Gantt als Google Docs SheetIm letzten Post zum "<a href="http://blog.wolfspelz.de/2016/09/scrum-gantt-chart.html">Scrum Gantt-Chart</a>" 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.<br />
<br />
=> <a href="https://docs.google.com/spreadsheets/d/1-_YcdDmtiv-nWPxTMn6S37C9LfevozqMUAhKRl1R5w4/edit?usp=sharing">Implementierung das Gantt-Charts als Google Docs Sheet</a> <=<br />
<h4>
Empfehlung:</h4>
<ul>
<li>Sheet kopieren: GoogleDocs => Datei => Kopie erstellen...</li>
<li>Das eigene Backlog im Eingabebereich auf der linken Seite einfügen</li>
<li>Datum "BaseDate" und "Today" anpassen</li>
<li>Zeilen und Spalten im Formelbereich an das eigene Backlog anpassen</li>
<li>Jede Woche eine neue Version machen und den Stakeholdern veröffentlichen</li>
</ul>
Wenn die Spalten des eigenen Backlogs kompatibel sind, ist das eine Sache von 2 Minuten<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://docs.google.com/spreadsheets/d/1-_YcdDmtiv-nWPxTMn6S37C9LfevozqMUAhKRl1R5w4/edit?usp=sharing" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="281" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgxhEgGr1usGu3Xu6rxFJ8o8sk_sGuYfp0C-lrAx4RlCFLhtHEH7rdV7D5R__odp7u6kFpKWF2XC0M-b64aHxQRpkoJlJjWDbAOLj2QG-tczC4SIN3-ZA39W9cYucmCIHRP1hTUtg/s640/scrum-gantt-googledocs.png" width="640" /></a></div>
<br />
==> <a href="https://docs.google.com/spreadsheets/d/1-_YcdDmtiv-nWPxTMn6S37C9LfevozqMUAhKRl1R5w4/edit?usp=sharing">Google Sheet</a><br />
<br />
_happy_sheeting(:-)Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-41863154134874036642016-09-08T21:08:00.000+02:002016-09-08T21:43:22.749+02:00First GIF Movie Ever Was a Star Trek clipThis is the <b>first GIF-Movie</b> ever shown on the World Wide Web in a web browser.<br />
<br />
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.<br />
<br />
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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqy-bGjKrgI5N_4darxoFUwmfofyrAf3w-fRhEN9wSFrel5EnaI31k62_hpoFEYVIV0J58ceIGqtml4-hgEoqCjKnIrW6TIdQtRswi7HWGGWaKhVrnurlI7Cr8QDciCSPJjA26w/s1600/Startrek.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfqy-bGjKrgI5N_4darxoFUwmfofyrAf3w-fRhEN9wSFrel5EnaI31k62_hpoFEYVIV0J58ceIGqtml4-hgEoqCjKnIrW6TIdQtRswi7HWGGWaKhVrnurlI7Cr8QDciCSPJjA26w/s1600/Startrek.gif" /></a></div><br />
Then we used the feature to create the <b>first Web Live Video Stream</b> ever. It showed a model railway setup at University of Ulm, Germany.<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZxB41Uch7xvfaqOWdNkJ6V0NxnSySzFjq2BVYWiAi7REmD5E8K6KG2o1e8QlES-B23iCpffqU4pAgqGBRW1h0ZC-3Asl86H6xquVZbnkwD_cEsqhT8w811THpQSbmyH7Kegz7cg/s1600/model-rr-anlage.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZxB41Uch7xvfaqOWdNkJ6V0NxnSySzFjq2BVYWiAi7REmD5E8K6KG2o1e8QlES-B23iCpffqU4pAgqGBRW1h0ZC-3Asl86H6xquVZbnkwD_cEsqhT8w811THpQSbmyH7Kegz7cg/s320/model-rr-anlage.jpg" width="320" /></a></div><br />
<b>First Live Video</b> at a time where "live cam" meant "please reload the page to fetch a new image".<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxotcKSH389s_im0_Z5Cwl3BigsZl3ojexE_-EQJE-rE6KKaXLcU-NICChRtuLx61i59_YcQkqGM-7_Rhm1QKn1m47z4U8913OvVHHK-bUWLdElkvx_TJK903I5aEIZlwkZ1tUg/s1600/model-rr-web.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilxotcKSH389s_im0_Z5Cwl3BigsZl3ojexE_-EQJE-rE6KKaXLcU-NICChRtuLx61i59_YcQkqGM-7_Rhm1QKn1m47z4U8913OvVHHK-bUWLdElkvx_TJK903I5aEIZlwkZ1tUg/s320/model-rr-web.gif" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br />
</div>The live GIF feed was also used to implement the <b>first live chat</b> when "chat feed" meant "please reload the page to get new lines".<br />
<br />
That's many firsts. Going where no one has gone before is my hobby. That movie fit.<br />
<br />
_happy_going_where_noone_has_gone_before()<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMgZEfJvBBZYqQrwlz4QKR29seQVrrjHZdKzeHn_x-4QUy0nexMILeFBGfBPsqGwcip4SANMSRRj6GMLKTK92V2Cd3DFfuSPawiGDNOMHxCbxrYwTaAlRFoaFHOWNHzmDXFX3gyw/s1600/Startrek-264x216.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgMgZEfJvBBZYqQrwlz4QKR29seQVrrjHZdKzeHn_x-4QUy0nexMILeFBGfBPsqGwcip4SANMSRRj6GMLKTK92V2Cd3DFfuSPawiGDNOMHxCbxrYwTaAlRFoaFHOWNHzmDXFX3gyw/s1600/Startrek-264x216.gif" /></a></div>Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-12345409664346691622016-09-05T22:39:00.002+02:002016-12-01T12:25:22.106+01:00Scrum Gantt-Chart<h3>
tl;dr</h3>
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7yAIyDrqSXWBQTutjo8NtNc4xV60FWBWaTGdvCsJEXyLmfaTZvrGVRGo81zEbAPnQeClU2XQiYG1b1vk83UbkVYLMmhLZHeV-PiJ2T4BpxT1JtH5lLv42MTxyCiyPS3pJlqc7aA/s1600/gantt.png" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="107" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7yAIyDrqSXWBQTutjo8NtNc4xV60FWBWaTGdvCsJEXyLmfaTZvrGVRGo81zEbAPnQeClU2XQiYG1b1vk83UbkVYLMmhLZHeV-PiJ2T4BpxT1JtH5lLv42MTxyCiyPS3pJlqc7aA/s200/gantt.png" width="200" /></a>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.<br />
<br />
<div>
Das <a href="http://blog.wolfspelz.de/2016/09/scrum-gantt-als-google-docs-sheet.html">Scrum-Gantt gibt es jetzt hier als Google-Sheet</a>.</div>
<h3>
Was</h3>
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.<br />
<br />
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.<br />
<br />
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.<br />
<h3>
Warum</h3>
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.<br />
<br />
Ü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).<br />
<br />
Hier geht es also um ein Gantt-Chart als Reporting-Tool, nicht als Planungstool. Die Planung ist komplett Scrum.<br />
<h3>
Wie</h3>
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.<br />
<br />
Dann berechnet man für jede Story in welchem Sprint sie fertig wird und markiert den Sprint im Kalender. Done.<br />
<br />
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:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7FDOL6tRLhwRRERJTtsmPWxAMUspKhwCw9_Nei71eU2mK3NDHwh8Wbfr_Uk0HqTFwqaNK_Ggx-0peDLeC9rsXzaOrMfkOHud2vvWj0TaNZ67WnV6TM8Qhu4jV25gWkU58X5QVhw/s1600/gantt.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj7FDOL6tRLhwRRERJTtsmPWxAMUspKhwCw9_Nei71eU2mK3NDHwh8Wbfr_Uk0HqTFwqaNK_Ggx-0peDLeC9rsXzaOrMfkOHud2vvWj0TaNZ67WnV6TM8Qhu4jV25gWkU58X5QVhw/s1600/gantt.png" /></a><br />
<h3>
Bonus</h3>
Zusätzliche Ideen aus der Praxis:<br />
<ul>
<li>Abgeschlossene, "in Arbeit" und zukünftige Stories farblich unterscheiden.</li>
<li>Zukünftige Velocity = letzte Velocity modifiziert durch Sondereffekte wie Urlaub.</li>
<li>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.</li>
<li>Epic Stories weiter unten im Backlog können auch mal über mehrere Sprints gehen.</li>
<li>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.</li>
<li>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. </li>
</ul>
<div>
Das <a href="http://blog.wolfspelz.de/2016/09/scrum-gantt-als-google-docs-sheet.html">Scrum-Gantt gibt es jetzt hier als Google-Sheet</a>.</div>
<div>
<br /></div>
_happy_charting()Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-64996693679726675602016-08-24T20:54:00.000+02:002019-06-06T11:59:34.775+02:00Kosmologisches Glaubensbekenntnis<div class="separator" style="clear: both; text-align: center;">
</div>
<table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: right; margin-left: 1em; text-align: right;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5PXxuYz5mQEEhIhVYu1tU5rJ7wf2gqAsu_6dNkZUJSC0PEC8J4WhOdF2d9-vEYTIXE2YxL4NHX7kedvRiCdOVju7LfVPJHK1HM39pi6UoVWS4AvxHlkoRLiLqNuadKOV8MP5zIA/s1600/hud2014_1000c.jpg" imageanchor="1" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto;"><img border="0" height="220" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh5PXxuYz5mQEEhIhVYu1tU5rJ7wf2gqAsu_6dNkZUJSC0PEC8J4WhOdF2d9-vEYTIXE2YxL4NHX7kedvRiCdOVju7LfVPJHK1HM39pi6UoVWS4AvxHlkoRLiLqNuadKOV8MP5zIA/s320/hud2014_1000c.jpg" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Das Bild zeigt den größten Teil des <br />Kosmos, der jemals fotografiert wurde: <br /><a href="https://en.wikipedia.org/wiki/Hubble_Ultra-Deep_Field#Hubble_eXtreme_Deep_Field">Hubble Ultra-Deep Field</a></span></td></tr>
</tbody></table>
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.<br />
<br />
Hier also mein physikalisch kosmologisches Glaubensbekenntnis:<br />
<br />
- 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+)<br />
<br />
- 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+)<br />
<br />
- glaube an eine Multiversum-Theorie, weiß aber nicht welche, vielleicht mit unendlich vielen Universen mit zufälligen Parametern. (mv/rp)<br />
<br />
- 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--)<br />
<br />
- 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).<br />
<br />
- 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+)<br />
<br />
- 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-)<br />
<br />
- 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-)<br />
<br />
- 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-)<br />
<br />
- 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+)<br />
<br />
- 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)<br />
<br />
- 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-)<br />
<br />
Zurück zur Physik:<br />
<div>
<br /></div>
- 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+++)<br />
<br />
- 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.<br />
<br />
- 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+++)<br />
<br />
- 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++)<br />
<br />
- 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-)<br />
<br />
Mein <a href="https://en.wikipedia.org/wiki/Geek_Code">Kosmo-Code</a>:<br />
bb+ ci+ mv/rp id-- dm+ de- ss- st- lqg+ fp/gf sh- sm+++ gr+++ sr++ gut-<br />
<br />
_happy_believing()Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-23226933550405632762016-08-02T14:08:00.001+02:002016-08-03T14:30:38.516+02:00Galactic Developments Science Fiction Timeline jetzt als eBookMeine Science Fiction Timeline "<a href="http://www.galactic-developments.de/">Galactic Developments</a>" gibt es jetzt bei Amazon als <a href="https://www.amazon.de/Galactic-Developments/dp/B01JD6COY6/">Kindle eBook</a>.<br />
<br />
Link zu Amazon: <a href="https://www.amazon.de/Galactic-Developments/dp/B01JD6COY6/">https://www.amazon.de/Galactic-Developments/dp/B01JD6COY6/</a><br />
<br />
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.<br />
<br />
Diese Woche zum Einführungspreis von 0,00 €. Läuft unter dem Pseudonym Norden Esstisch.<br />
<br />
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.<br />
<h4>
Beschreibung:</h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOKHUE2PKVxZP9SCm0YP99Cv0iLwYVjVNmKPZpKTmk-sjZRf9cg7PqMON5BNzO2hgoYKYrqiDKDZQGiHwt0AtC5ulkDqwWyw63WAl0AbBU3BGXxtQ-sOh1q1TL9_TkZkRVjjpAYg/s1600/marco-polo-phobos.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOKHUE2PKVxZP9SCm0YP99Cv0iLwYVjVNmKPZpKTmk-sjZRf9cg7PqMON5BNzO2hgoYKYrqiDKDZQGiHwt0AtC5ulkDqwWyw63WAl0AbBU3BGXxtQ-sOh1q1TL9_TkZkRVjjpAYg/s320/marco-polo-phobos.jpg" width="320" /></a></div>
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Eine realistische Zukunftsperspektive ohne Apokalypse, mit Hoffnung, aber auch mit Krisen. Eine Zeitleiste mit allen bedeutenden Ereignissen. Das Geschichtsbuch der Zukunft.<br />
<a href="https://www.blogger.com/null" name="Meinungen"></a><br />
<h4>
Meinungen bisher:</h4>
<div>
<div style="text-align: center;">
Ist es wert sich damit näher zu befassen!</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
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.</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Eure Stories sind immer wieder klasse...<br />
<br />
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...</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Ich find' es hochspannend. </div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
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...</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
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. </div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Denkst du dir die Geschichten selber aus?:) Du hast ja viel Fantasie. Ich find's gut;)</div>
<div style="text-align: center;">
<br /></div>
<div style="text-align: center;">
Wieder mal eine fantastische Story... geil geschrieben... Mal ein danke an alle Autoren die sich immer wieder die Mühe machen. </div>
</div>
<h4>
</h4>
Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-31608771810498922232016-01-25T19:17:00.001+01:002016-04-19T17:46:41.108+02:00Compile on Save for Typescript in Visual Studio with GulpThe 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.<br />
<br />
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.<br />
<br />
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).<br />
<br />
Setup the virtual Typescript project:<br />
<ul>
<li>Add a folder for Typescript scripts to the Web project, e.g. "./Scripts"<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPnkFQS_GFVUmm5gPny7ASY4QLDeue-U8Ip8h1tRvl8viet2C6QVFWMBBd3yEU-Lni8lj-v54ISo8K8I4did6Ujbr9f_lmosm2jbZ1EcmZ-ZIAneAu5gY35iggRa5scOi7ziPQRw/s1600/Scripts.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPnkFQS_GFVUmm5gPny7ASY4QLDeue-U8Ip8h1tRvl8viet2C6QVFWMBBd3yEU-Lni8lj-v54ISo8K8I4did6Ujbr9f_lmosm2jbZ1EcmZ-ZIAneAu5gY35iggRa5scOi7ziPQRw/s1600/Scripts.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>Put a <a href="https://github.com/Microsoft/TypeScript/wiki/tsconfig.json">tsconfig.json</a> 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.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFXZhbMEgDWurO4n7rDsYDbExxx04MkuCK8FgnKUULjF0nQxCD3C_jkYrzaC0IhcZLg0yY4g897hhkQg9k27vFHZ2cJYzjjwaQrfaNL2p0kKNzb9NYN3jDksxKeh44OLFG4MTCuA/s1600/tsconfig.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFXZhbMEgDWurO4n7rDsYDbExxx04MkuCK8FgnKUULjF0nQxCD3C_jkYrzaC0IhcZLg0yY4g897hhkQg9k27vFHZ2cJYzjjwaQrfaNL2p0kKNzb9NYN3jDksxKeh44OLFG4MTCuA/s1600/tsconfig.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>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.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoRHxZ0L3FNX-FbCxm_wSJi5EHvwbPPu4MW8uAvPSeNrWoKcsy6qmWHc0XgUyz3IYylUWSv-I-631TVL2Q4p3TQytdXV5QtxmOQ8yt-O83DQAgq_HfPtzchBEy5L22EfrgdDt4uA/s1600/ts.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoRHxZ0L3FNX-FbCxm_wSJi5EHvwbPPu4MW8uAvPSeNrWoKcsy6qmWHc0XgUyz3IYylUWSv-I-631TVL2Q4p3TQytdXV5QtxmOQ8yt-O83DQAgq_HfPtzchBEy5L22EfrgdDt4uA/s1600/ts.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>Add your *.ts files to the "./Scripts" folder<br /><div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpWieEf42Xc4vZx66qD53IMxL9N67n_KKctDkXuOrdoTSfUHC8TSaCQKigKon3WJCJveDdl9lHsr5uj6ufKROIT0dHgmNbaEU6_Ah0yLpwQvucT2qVoo4xiVp5LTKv5XPPRQkqGQ/s1600/tsfiles.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpWieEf42Xc4vZx66qD53IMxL9N67n_KKctDkXuOrdoTSfUHC8TSaCQKigKon3WJCJveDdl9lHsr5uj6ufKROIT0dHgmNbaEU6_Ah0yLpwQvucT2qVoo4xiVp5LTKv5XPPRQkqGQ/s1600/tsfiles.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>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).<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZBE9vTa1kqz7Qcvm1LzfvLjoK-jFquNxeOULgnKLdK_KZDOdmD3Dlu2jJ_bAx42r51Ol0Lx1B34zwSPUUZfyhTZr0AS2-mdoYUozup2R7OF7m_opgxOFnWmnSf1kZeYb4xwQb4A/s1600/virtproj-generated-js.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZBE9vTa1kqz7Qcvm1LzfvLjoK-jFquNxeOULgnKLdK_KZDOdmD3Dlu2jJ_bAx42r51Ol0Lx1B34zwSPUUZfyhTZr0AS2-mdoYUozup2R7OF7m_opgxOFnWmnSf1kZeYb4xwQb4A/s1600/virtproj-generated-js.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>Add a reference to "scripts.js" in your HTML like this: <script src="/js/ts/scripts.js"></script>.</li>
</ul>
<b>But:</b><br />
<div>
<br />
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.</div>
<div>
<br /></div>
<div>
There is a solution.</div>
<div>
<br /></div>
<div>
<b>Let gulp do the Typescript compilation and trigger the compilation with a gulp file watcher.</b></div>
<div>
<br />
Here is the code: <a href="https://gist.github.com/wolfspelz/d494bd8a1ba56ff81c91">https://gist.github.com/wolfspelz/d494bd8a1ba56ff81c91</a><br />
<br />
Here are the steps:</div>
<div>
<ul>
<li>Add a Scripts folder for Typescript files (as before for the virtual project).<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRcVh0w1uGxQJ1BuesmJN-WWr5-AfIlbNeeq-tDjrpsv23jtYF1nZuYSDfQyD4XkXt-W8JGtUeAwuywIby2LULmriYhmUd06JZEspAFNgVxoDDV042Yk_hFG6vYT739d1bu1mtQ/s1600/Scripts.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirRcVh0w1uGxQJ1BuesmJN-WWr5-AfIlbNeeq-tDjrpsv23jtYF1nZuYSDfQyD4XkXt-W8JGtUeAwuywIby2LULmriYhmUd06JZEspAFNgVxoDDV042Yk_hFG6vYT739d1bu1mtQ/s1600/Scripts.PNG" /></a></li>
</ul>
<div>
<br /></div>
<ul>
<li>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.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8DL1O43JcimDyOY81KXNHC4ESLq9L8ZMWw9xDj2ceEGLm3cVkPsyOALtgPgbLRP3iEG8basAFxdteXRcUms69RKM-ZEDmBTtpOw5rFOniuImW_fPixT4FzrKCGAXl3u-KFyNww/s1600/_tsconfig.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgc8DL1O43JcimDyOY81KXNHC4ESLq9L8ZMWw9xDj2ceEGLm3cVkPsyOALtgPgbLRP3iEG8basAFxdteXRcUms69RKM-ZEDmBTtpOw5rFOniuImW_fPixT4FzrKCGAXl3u-KFyNww/s1600/_tsconfig.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>Add gulp modules by editing "package.json". Visual Studio should download lots of node packages.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY3Qz3xQh7MACVfAlR7Uv4ZKIyERiAhXc4kmBwiKLWVmfTiNP5-B3-a-WMuisSg1GhkQhmxxntw7t1Vwn6pheQ2eALmvPEBor2rVSEQl0ytKJVLMaClaG42PJFwYqfKA20k8Ug6g/s1600/package.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgY3Qz3xQh7MACVfAlR7Uv4ZKIyERiAhXc4kmBwiKLWVmfTiNP5-B3-a-WMuisSg1GhkQhmxxntw7t1Vwn6pheQ2eALmvPEBor2rVSEQl0ytKJVLMaClaG42PJFwYqfKA20k8Ug6g/s1600/package.PNG" /></a><br />
<br /></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
Add gulp tasks by editing "gulpfile.js" in three places:</div>
</li>
<li><div style="text-align: left;">
1. Add gulp requires at the top.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP2bMl_xEk-PTZVMbedmS1fKGw3s25rd41dZCkIYVAoCbTL73bEPUfcGDCG7uHZJqH0r2Q7ALMvg9hxZlYSPvcUR764QwSqBLo9oorq3o1vYN3CD5Lj1qL86X6PqEzcP_drTkRNg/s1600/gulp-require.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiP2bMl_xEk-PTZVMbedmS1fKGw3s25rd41dZCkIYVAoCbTL73bEPUfcGDCG7uHZJqH0r2Q7ALMvg9hxZlYSPvcUR764QwSqBLo9oorq3o1vYN3CD5Lj1qL86X6PqEzcP_drTkRNg/s1600/gulp-require.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
2. Add the Typescript source path further down.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKZ2qHx011FnQMjQRm2V-7xYC8DLFD8-PumwzKpXNgaBAcCxv7oySEDSGZpDJA0NLeffCG9I0IzXK1wZps861Th_YD2WMJD2sMef7nWTwO3NyXtqCfg0_J6lzRlL3qsKWNQBzbuQ/s1600/gulp-paths.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKZ2qHx011FnQMjQRm2V-7xYC8DLFD8-PumwzKpXNgaBAcCxv7oySEDSGZpDJA0NLeffCG9I0IzXK1wZps861Th_YD2WMJD2sMef7nWTwO3NyXtqCfg0_J6lzRlL3qsKWNQBzbuQ/s1600/gulp-paths.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
3. Add two tasks.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzloqM57xxL77NADiDREEV-TwtVaQMUbzOdMYX4rkqDY-JxijHQW4jyqRLLXBjPyaJHEt9I4QaNoQEzCEl2EDTGRTeeZxJ38KxFzOBaxH6CZ8ajermXisk43KYNhbu4r6yUxJIPw/s1600/gulp-tasks.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzloqM57xxL77NADiDREEV-TwtVaQMUbzOdMYX4rkqDY-JxijHQW4jyqRLLXBjPyaJHEt9I4QaNoQEzCEl2EDTGRTeeZxJ38KxFzOBaxH6CZ8ajermXisk43KYNhbu4r6yUxJIPw/s1600/gulp-tasks.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
Saving "gulpfile.js" should show two new tasks in the Task Runner Explorer: "compile-ts" and "watch".<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMJCQzQbHdT2UBtRait-j39MCr7DlgWlfPX5bWpyAbEATWM6eCs_qouXn-aajecih-Hhom-V1DhW0-8jh8-n6RqEt7Bzlrcu6Dq-qO4Vq-ZkMLsGoCr8nBFBJRa2xPOxrG3WEkdg/s1600/tasks.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMJCQzQbHdT2UBtRait-j39MCr7DlgWlfPX5bWpyAbEATWM6eCs_qouXn-aajecih-Hhom-V1DhW0-8jh8-n6RqEt7Bzlrcu6Dq-qO4Vq-ZkMLsGoCr8nBFBJRa2xPOxrG3WEkdg/s1600/tasks.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
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.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56yKaZ0An9EDGsVtFaJOhR_uWQQFWQjOb0Gqe1VgCql3kn379D-42Oh7VEmevievSnnyzAbUFdRsk228ozCNewyhe98GKmuB1yvP8SXHe9G4D2UxIiXmrbOeGuhR2kkRioE8eZA/s1600/virtproj-generated-js.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56yKaZ0An9EDGsVtFaJOhR_uWQQFWQjOb0Gqe1VgCql3kn379D-42Oh7VEmevievSnnyzAbUFdRsk228ozCNewyhe98GKmuB1yvP8SXHe9G4D2UxIiXmrbOeGuhR2kkRioE8eZA/s1600/virtproj-generated-js.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
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:<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOtd-wi3f_3BzEWO1ZxE9kXRh8E9-Sn-qIGCkbDhU3Q6lhIo670HSWpKYRB4JJ-zSaCddbmwBdmN4obp_sBTbaBVE8bcltJGJDF5eMJIKSI0EYRQ1-iO-qdjPwfl3Q0et85O_FXQ/s1600/bindopen.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOtd-wi3f_3BzEWO1ZxE9kXRh8E9-Sn-qIGCkbDhU3Q6lhIo670HSWpKYRB4JJ-zSaCddbmwBdmN4obp_sBTbaBVE8bcltJGJDF5eMJIKSI0EYRQ1-iO-qdjPwfl3Q0et85O_FXQ/s1600/bindopen.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
You might check if the "watch"/"compile-ts" workflow works by starting "watch" and editing/saving a Typescript file in the Scripts folder.</div>
</li>
<li><div style="text-align: left;">
Close/Open the project/solution or just stop/start Visual Studio. The "watch" task should be running after starting Visual Studio settles down.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgucN3E3jbWpQhgsiTuDl4TxW-n6bbC9jFVJgwEuxWRDejDLEP-WNUtMjqGXTobHL4_IA-kqBsm10bZqtP7-vck5kll8J67YgbQxM_joH335pV29G6YKGSDHdSMhw6Jgt5xNM_XSw/s1600/stopstart-vs-watch-running.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgucN3E3jbWpQhgsiTuDl4TxW-n6bbC9jFVJgwEuxWRDejDLEP-WNUtMjqGXTobHL4_IA-kqBsm10bZqtP7-vck5kll8J67YgbQxM_joH335pV29G6YKGSDHdSMhw6Jgt5xNM_XSw/s1600/stopstart-vs-watch-running.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
Delete the "scripts.js" file from earlier "compile-ts" runs.<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoRHxZ0L3FNX-FbCxm_wSJi5EHvwbPPu4MW8uAvPSeNrWoKcsy6qmWHc0XgUyz3IYylUWSv-I-631TVL2Q4p3TQytdXV5QtxmOQ8yt-O83DQAgq_HfPtzchBEy5L22EfrgdDt4uA/s1600/ts.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoRHxZ0L3FNX-FbCxm_wSJi5EHvwbPPu4MW8uAvPSeNrWoKcsy6qmWHc0XgUyz3IYylUWSv-I-631TVL2Q4p3TQytdXV5QtxmOQ8yt-O83DQAgq_HfPtzchBEy5L22EfrgdDt4uA/s1600/ts.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li><div style="text-align: left;">
Edit/save a Typescript file. The "watch" task should start "compile-ts":<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-kFka9kv9CmVF7WBQomS3GsCTVZpwH5DC2xAVu8trm0JUHN8-eUBLnDaQq7BrRLVYSvXD7VfaS_51tTYyWV5KijBA16DGCpZJ6b4r3fevzSfiQTk49qT-lvidvtg8UmU_-gcHLw/s1600/watch-compile.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-kFka9kv9CmVF7WBQomS3GsCTVZpwH5DC2xAVu8trm0JUHN8-eUBLnDaQq7BrRLVYSvXD7VfaS_51tTYyWV5KijBA16DGCpZJ6b4r3fevzSfiQTk49qT-lvidvtg8UmU_-gcHLw/s1600/watch-compile.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>Check if the "scripts.js" is generated along with it's "scripts.js.map".<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56yKaZ0An9EDGsVtFaJOhR_uWQQFWQjOb0Gqe1VgCql3kn379D-42Oh7VEmevievSnnyzAbUFdRsk228ozCNewyhe98GKmuB1yvP8SXHe9G4D2UxIiXmrbOeGuhR2kkRioE8eZA/s1600/virtproj-generated-js.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh56yKaZ0An9EDGsVtFaJOhR_uWQQFWQjOb0Gqe1VgCql3kn379D-42Oh7VEmevievSnnyzAbUFdRsk228ozCNewyhe98GKmuB1yvP8SXHe9G4D2UxIiXmrbOeGuhR2kkRioE8eZA/s1600/virtproj-generated-js.PNG" /></a></div>
</li>
</ul>
<div>
<br /></div>
<ul>
<li>Start a debug session. </li>
<li>Change Typescript code. Reload browser.</li>
<li>Voilà</li>
<li><div style="text-align: left;">
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.<br />
<div style="text-align: left;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJ6TrpY4NAV8yPKZ32mZSUTB5zG7OFHsPFhnm3eGNRbt5ySkUYd9-H7rdw95q_IwqOyzoJZrcthRZQVaz6kYuXG5D8jBYHBolClmb_QCMzIdZoRseUM5PbujgKG_rbUIt16dRwA/s1600/tsjs.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSJ6TrpY4NAV8yPKZ32mZSUTB5zG7OFHsPFhnm3eGNRbt5ySkUYd9-H7rdw95q_IwqOyzoJZrcthRZQVaz6kYuXG5D8jBYHBolClmb_QCMzIdZoRseUM5PbujgKG_rbUIt16dRwA/s1600/tsjs.PNG" /></a></div>
</div>
</li>
</ul>
<div>
<br /></div>
<div>
_happy_gulping()<br />
<br />
PS: There could be a clean-ts task<br />
<br />
Thanks to<br />
<ul>
<li><a href="http://bluehands.de/menschen/aydin-mir-mohammadi.aspx">Aydin</a> from <a href="http://bluehands.de/">bluehands</a> for the tsconfig.json file</li>
<li>The <a href="http://www.hanselman.com/blog/TheBigGlossaryOfOpenSourceJavaScriptAndWebFrameworksWithCoolNames.aspx">community</a> for <a href="https://www.npmjs.com/package/gulp">gulp</a>, many <a href="https://www.npmjs.com/">node modules</a>,</li>
<li>Microsoft for <a href="https://www.visualstudio.com/">Visual Studio Community Edition</a>, <a href="http://www.typescriptlang.org/">Typescript</a>, <a href="http://www.hanselman.com/blog/IntroducingGulpGruntBowerAndNpmSupportForVisualStudio.aspx">gulp integration</a></li>
</ul>
</div>
</div>
<div>
<br /></div>
Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-3389616268161744452015-12-11T19:21:00.001+01:002015-12-12T00:37:32.421+01:00Wordpress Rant<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTWQPVHzzq8qUsnSYOt181Uv_L411t_J-QnA63G3YAkXen3xNybRNbpSmDDkXYuLf1f7v5UcOvfE-MjRIOrjvMjXcvrh375Ppn6T0vcO4DxGvyidsF061dvBdyeDvh1Ggk4OyKQA/s1600/Wordpress.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="228" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTWQPVHzzq8qUsnSYOt181Uv_L411t_J-QnA63G3YAkXen3xNybRNbpSmDDkXYuLf1f7v5UcOvfE-MjRIOrjvMjXcvrh375Ppn6T0vcO4DxGvyidsF061dvBdyeDvh1Ggk4OyKQA/s320/Wordpress.jpg" width="320" /></a></div>
One quarter of the web runs on Wordpress. Millions of flies can not be wrong<br />
...so I thought.<br />
<br />
That was wrong...<br />
<ul>
<li>disappointingly, </li>
<li>irritatingly, </li>
<li>gaspingly, </li>
<li>outrageously </li>
</ul>
...wrong.<br />
<br />
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.<br />
<br />
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.<br />
<br />
What's wrong?<br />
<ul>
<li>It says it is a content management system, but the basic installation is just a blog system. There is <b>no way to arrange/layout</b> your content.</li>
<li>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. <b>You always see the meta tags while editing the content</b>. They are part of your article text. That's ugly. There is no way you call that a CMS and a WYSIWYG editor. </li>
<li>Worse, column plugins create columns in the content area. Nothing more. No separator, no second content part. <b>There is just one content area on a page</b>.</li>
<li>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. <b>It is a blog engine, which can be upgraded to a CMS with real money</b> and real effort.</li>
<li>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 <b>you definitely do not store references to uploaded images and internal links as absolute URLs</b>. That's plainly a wrong design. </li>
<li>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 <b>internal links and images must be fixed when the domain name</b> (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.</li>
<li>Short loop about the official <b>docker image: It does not support email</b>. 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. </li>
<li>With help of another plugin I can use the built in SMTP client. But this is not for beginners, not for everyone. <b>It needs an expert</b>.</li>
<li>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. <b>It's not for beginners</b>. It needs a Wordpress expert. </li>
<li>Very <b>popular templates have major deficiencies</b>. 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. </li>
<li>This can be fixed though. I just have to upgrade to the <b>professional version of the template for additional money</b>. </li>
<li>Speaking of money: most templates want<b> money for responsiveness</b>. A responsive design should really be in the base version of the template. In<b> which decade are they living</b>? Mobile is mainstream, not optional, enterprise level, only for paying customers.</li>
<li>Everything can be fixed with plugins. But <b>there are many plugins</b>. Many plugins for similar features. Some do not work with your chosen template. You will find out after paying for the professional version. A <b>steep learning curve</b>. 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. </li>
<li>While we are at it: many plugins claim to be so great. But <b>plugins often have hidden deficiencies</b>, which you discover after having invested significant time. That adds to the cost. It's not just trying different plugins. The <b>time sink</b> is in using a plugin until you discover a not so obvious flaw, then choosing a different one and start all over. </li>
<li>Small but symptomatic: Enter the web site contact <b>email address and it will appear as http://-link</b> 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?</li>
<li>I won't start about how often <b>Wordpress appears on the security lists</b>, 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.</li>
<li>I am not halfway through...</li>
</ul>
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.<br />
<br />
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: "<i>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.</i>"<br />
<br />
It is not. It is either free or beautiful. Wordpress costs very much time or significant money to make something beautiful and useful.<br />
<br />
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.<br />
<br />
All I am saying is:<br />
<ul>
<li>The base system is crap.</li>
<li>It is expensive too use.</li>
<li>The official docker image is a showcase, but otherwise useless.</li>
</ul>
Sorry, but this can't be serious.<br />
<br />
It put up a good show. It got me.<br />
<div>
<br /></div>
happy_try_and_error_configuring()Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-38047802357504786792015-12-07T18:42:00.000+01:002015-12-11T17:33:57.544+01:00Avira and VirtualBox Broken<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjul-KdtWKuGrZ6bngtT043KX2O___I3Yl3y_ksfnioTCI35DyZRR01h19Sz7eNwAA6954T_AmD3gEyIkiQiHxOLKeoVd39Yy6k9-5zQYggt0HbqqQwqMx8sRzlEroqWobjKVtJKA/s1600/vb-avira-battle.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjul-KdtWKuGrZ6bngtT043KX2O___I3Yl3y_ksfnioTCI35DyZRR01h19Sz7eNwAA6954T_AmD3gEyIkiQiHxOLKeoVd39Yy6k9-5zQYggt0HbqqQwqMx8sRzlEroqWobjKVtJKA/s320/vb-avira-battle.jpg" width="320" /></a>tldr: Avira face punches VirtualBox. Need other virus scanner.<br />
<br />
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...<br />
<br />
...but recently they stopped working together.<br />
<br />
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.<br />
<br />
See: <a href="https://forums.virtualbox.org/viewtopic.php?f=6&t=68869">https://forums.virtualbox.org/viewtopic.php?f=6&t=68869</a><br />
<br />
Time to move on to a different virus scanner.<br />
<br />
_happy_googling()Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-12594372362516715282015-12-06T22:53:00.002+01:002016-01-07T19:52:52.745+01:00Life is StrangeHabe in den letzten Tagen <a href="http://www.lifeisstrange.com/">Life is Strange</a> als Letsplay geschaut. Gefällt mir super. Ist wie Fernsehen. So soll es sein. Zurücklehnen vorspielen lassen.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbqghbHK4Aia3Gkkg8pwQp693aQXkRwlboIDZOU5VbeCmQzA1azyN8UwJRGhhg9Y1mPxciAyOZTcR2Yycm3vmV7XD9jFPXkrOz9aTuGWZHXjKR9irEQd01Habt868ROBxZJZQucg/s1600/Life-Is-Strange-800px.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="182" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbqghbHK4Aia3Gkkg8pwQp693aQXkRwlboIDZOU5VbeCmQzA1azyN8UwJRGhhg9Y1mPxciAyOZTcR2Yycm3vmV7XD9jFPXkrOz9aTuGWZHXjKR9irEQd01Habt868ROBxZJZQucg/s320/Life-Is-Strange-800px.jpg" width="320" /></a></div>
Aber auch selber spielen ist sehr relaxt. Der nächste Level der Casualisierung.<br />
<br />
Es spielt sich fast von selbst. Ab und zu mal was suchen, kleine Aufgaben lösen. Nichts wo ich nicht weiterkomme. Genau mein Schwierigkeitsgrad.<br />
<br />
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.<br />
<br />
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.<br />
<br />
_happy_chilling()<br />
<br />
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.Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0tag:blogger.com,1999:blog-7139179.post-58819876459762451182015-10-23T13:49:00.004+02:002015-11-06T18:10:23.996+01:00Galactic Developments ist umgezogen auf einen neuen Server als KVMBisher war die <a href="http://www.galactic-developments.de/">Galactic Developments</a> 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.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxJRtBmzIc_3RFKqhaVxCFnmpRLA8C_kEKayzFoBNcKfTbo6Zhk8sYQ07dJczbrtwSik5jtW3PplytMaRuvn2gMYJNtNuH9xVPCO4BnCZvjNHp7M0KrnBx21-R1dKKy8VUtXSA8w/s1600/20151023_175658-1.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" height="223" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxJRtBmzIc_3RFKqhaVxCFnmpRLA8C_kEKayzFoBNcKfTbo6Zhk8sYQ07dJczbrtwSik5jtW3PplytMaRuvn2gMYJNtNuH9xVPCO4BnCZvjNHp7M0KrnBx21-R1dKKy8VUtXSA8w/s320/20151023_175658-1.jpg" width="320" /></a></div>
(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.)<br />
<br />
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.<br />
<br />
Ich kann Debian, also weiter Debian-stable, d.h. Jessie 8.2.<br />
<br />
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.<br />
<br />
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 <a href="http://www.galactic-developments.de/">www.galactic-developments.de</a> an die Galactic Developments VM weiterleitet.<br />
<br />
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 <a href="http://galactic-developments.de/">galactic-developments.de</a> (ohne www.) und *.galactic-developments.com auf den Hauptserver umleitet (401/permanent).<br />
<br />
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.<br />
<br />
Dann noch DNS für www.galactic-developments.de umbiegen von rama.wolfspelz.de auf fred.wolfspelz.de und Galactic Developments ist umgezogen.<br />
<br />
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 <a href="https://virt-manager.org/">virt-manager</a> 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.<br />
<br />
PS: rama.wolfspelz.de war keine Frühstücksmargerine, sondern ein <a href="http://www.amazon.de/Rendezvous-mit-Rama-Arthur-Clarke/dp/3404243714?tag=codandlif-21">50 km langes Alien-Raumschiff</a>.<br />
<br />
_happy_migrating()Heinerhttp://www.blogger.com/profile/09520563824611073104noreply@blogger.com0