In this screencast, I show how you can build a dynamic, real-time clock in less than 10 minutes with Tao Presentations.
In this live coding session, we demonstrate how to quickly create a DNA strand in 3D:
The whole code is below:
import LuckyStarsTheme theme "LuckyStars" picture_slide "Did DNA come from outer space?", light 0 light_position 1000, 1000, 1000 translate -300, 0, -300 rotatey mouse_x random_seed 12345 dna_strand with -30 .. 30 slide "Arguments in favor", * "Tardigrades can live in space" dna_strand N:integer -> locally translatey 50 * N rotatey 10 * N locally rotatey 90 color "#BBB" cylinder 0, 0, 0, 10, 10, 200 dna_base_pair random (0, 3) dna_base_pair N:integer -> dna_base_color N mod 4 sphere 100, 0, 0, 40 dna_base_color (N + 2) mod 4 sphere -100, 0, 0, 40 dna_base_name 140, N mod 4 dna_base_name -140, (N + 2) mod 4 dna_base_color 0 -> color "red" dna_base_color 1 -> color "blue" dna_base_color 2 -> color "green" dna_base_color 3 -> color "grey" dna_base_name X:integer, N:integer -> text_box X, 0, 40, 40, font "Arial", 30 color "white" align 0.5 vertical_align 0.5 dna_base_text N dna_base_text 0 -> text "C" dna_base_text 1 -> text "A" dna_base_text 2 -> text "G" dna_base_text 3 -> text "T"
Recently, a user of Tao Presentations informed us that Google Chrome displayed a dire warning after he downloaded our software: “Tao Presentations may be malicious software”. Uh oh, for the average Joe, that’s a big no-no.
Google locks out “unapproved” programs
It’s not just us. Recently, I tried to download some of the amazing demos created by Iñigo Quilez. Same thing. Seriously, a 4K exe that manages to display a complete mountain? And Google Chrome would have me believe that there’s room in there for “malicious software”? Get real.
Now, it took me quite a while to find a solution to this problem. Apparently, you just need to record your site in Google’s Webmaster tools, and after scanning your site and ensuring (I assume) that there’s no known virus signature in the files, things should improve.
I still find this really annoying that a browser vendor would, by default, tag unknown files as “malicious”. Who are they to make this judgment call?
Why didn’t Google implement a real solution?
Shouldn’t they instead have something a little more sophisticated, that actually detects malicious signatures? You know, like a real anti-virus? Don’t tell me that Google doesn’t have smart enough engineers to write an in-browser anti-virus that doesn’t completely suck.
Nah, instead they went the easy route: anything that we don’t know is malicious. And we tell your users so.
I used to be a big fan of Chrome. Not anymore. Because of this single issue. I think this demonstrate an incredibly stupid arrogance and lack of technical diligence on Google’s part.
Google overstepped its authority and took advantage of their weight. Let’s not get used to it.
This article explains how Tao Presentations proceeds to transform a document (.ddd) into images on the screen. It describes an interesting mechanism making it easy to create dynamic documents that depend on events such as time or mouse movements. Moreover, this technique also allows Tao Presntations to optimize the rendering of graphic elements, enabling smooth 60Hz drawings even with complex contents.
I gave a short talk about LLVM today. The link to the talk is tao://git.taodyne.com/examples/LLVM (sorry, can’t make it a hyperlink, as WordPress removes the tao:// part…). To watch this link, you will need Tao Presentations, which itself uses LLVM for the rendering.
This is not the first meta-talk made with Tao Presentations, but for some reason, this one reminds me of the first time I presented HPVM from a Powerpoint within HPVM.
I have release the source code for the “Season’s Greetings” from Taodyne. This can give you an idea of what XL can do today. In that video, which is rendered in real-time and in 3D, the XL program executes 60 times per second to synchronize the animations on the screen with the background movie.
In other XL-related news, I’ve been working on an updated language reference document. This describes where I want to bring XL, notably the type system and library. A lot of what is in this document is not implemented yet, but it will give the directions that I intend to follow in the coming months.