]]
+ hcss([[ pre { margin-left: 20px; font-weight: bold; } ]])
// POSTS
+ imagePost("2018/11/17", "OS Chat Bot v1",
#1101423, "50%",
p("Come on! Talk to me!"))
+ textPost("2018/11/11", "Eyebrow Detection",
p(youtubeEmbed_newer("-XafiqgFM9k"))
+ p("I promised—and I delivered :)")
+ p("(This is an example of how even the smallest facial expressions can be used for making a better user interface.)"))
+ textPost("2018/11/10", "Some Live Programming",
p(youtubeEmbed_newer("U2Kl4FY-jcE"))
+ p("Bad audio, good content."))
+ textPost("2018/11/10", "AI Testers Wanted!",
p("All you need is a Windows, Linux or Apple PC and some enthusiasm. We make voice assistants that will ease your life and provide a lot of entertainment.")
+ p("To participate, either " + targetBlank("http://download.tinybrain.de", "download") + ", " + targetBlank("mailto:info@botcompany.de", "mail") + " or " + targetBlank("https://github.com/stefan-reich/StefansOS/issues", "create issues") + "."))
+ imagePost("2018/11/06", "Checking Log Files",
#1101418, "50%",
p("This task may seem trivial to you, but actually it is a key to computer intelligence."))
+ textPost("2018/11/04", "To Andrzej",
p(youtubeEmbed_newer("https://www.youtube.com/watch?v=9P1fF0liFtU")))
+ textPost("2018/10/30", "Next meetup on Nov 15",
p(targetBlank("https://www.meetup.com/Artificial-Intelligence-Meetup/events/255936823/", "Hamburg.") + " Hoping to prepare a fully intelligent machine until then :D"))
+ textPost("2018/10/28", "Making a Voice Activity Detection",
p("Another one day project. OK, maybe two... I'm squeezing some other AI things in."))
+ textPost("2018/10/28", "I'm disappointed with YouTube views",
p("1 view on the latest video? Really?"))
+ textPost("2018/10/27", "Making a face recognition",
p("Now things get real.")
+ p(youtubeEmbed_newer("FXJVO2fWztk", 450)))
+ imagePost("2018/10/25", "Sensory Status: +3",
#1101412, "30%",
p(b("Internet, Vision, Sound.") + " (A robot's basic needs.)"),
left := true)
/* + textPost("2018/10/23", "Creator Awards once again awards the wrong creators",
p("What can you say... Americans."))*/
+ imagePost("2018/10/21", "Faking The Linux Task Bar",
#1101408, "50%",
p("Anything's possible."))
+ imagePost("2018/10/15", "JavaX makes the impossible possible",
#1101403, "30%",
p("Here: Automatically measuring the RAM consumption of individual modules within one Java VM."),
left := true)
+ textPost("2018/10/14", "Speech recognition works",
p(youtubeEmbed_newer("yFEiIWW-heE", 450, 450*9/16))
+ p("Who says you need Google for everything?"))
+ imagePost("2018/10/10", "Making my own speech recognition",
#1101401, "15%",
p("It may be possible."))
+ textPost("2018/10/04", "We are making a bot net",
p("...of the good kind. In fact, you are part of it
right now.")
+ p("(It works through JavaScript in the browser. We're not using it yet though, you're just on idle.)"))
+ textPost("2018/10/03", "Let's sign stuff!",
p("I propose to use asymmetric cryptographic keys for
testifying that a certain thing actually happened.")
+p("In JavaX, making a public+private key pair is just a single function call:")
+hsourcecode([[pki_newKeyPair()]])
+p("...which means we can have as many key pairs as we like.")
+p("For example, you can use one specific key (or multiple) to sign your personal quotes. The signed data will speak for itself if one knows that the key is yours.")
+hsourcecode([[
On October 3rd 2018, I truly said: Oh screw this!
Edgar the 3rd himself
sig: MC0CFQCWUB9j0c+8e8wagTNmMXs/cq7tuAIUEoXOBbRvw343wOdunTY47rKrUDE=
signer: publickey:MIIBtzCCASwGByqGSM44BAEwggEfAoGBAP1/U4E [...] F9Kg=
]]))
+ aname('creatorawards, textPost("2018/09/29", "Applying for Creator Awards",
p(youtubeEmbed_newer("ZTiqIEbhB8A", 300))
+ p("Thanks to Andrzej for video production!")))
+ textPost("2019/09/25", "Dogs Are Telepathic",
p(targetBlank("https://www.sheldrake.org/files/pdfs/papers/JSE_Vol14.pdf", "Proof.") + " Maybe bots can be too?"))
+ imagePost("2019/09/20", "Programming In Facts",
#1101379, "55%",
p([[German, this time.]]))
+ imagePost("2019/09/04", "Bot Simulator",
#1101378, "75%",
p(b([[Version 1.]])), left := true)
+ imagePost("2018/08/28", "Voice-to-voice bot",
#1101376, "50%",
p([[We now have voice recognition & speech output combined into the ]] + targetBlank("http://t.me/Hello_Computer", "Telegram bot") + [[. Actual sci-fi!]])
+ p([[(PS: The bot said "Good evening dudes".)]])
+ p([[PPS: The Rubik's cube will have to wait a little...
building foundations first.]]))
+ imagePost("2018/08/18", "Teaching the Rubik's cube to the bot",
#1101372, "30%",
p("It's a good idea and just about right complexity-wise."),
left := true)
+ imagePost("2018/08/18", "Nice trend",
#1101371, "",
p("Changing history " + targetBlank("http://aimeetup.tinybrain.de", "on Tuesday") + "."))
+ imagePost("2018/08/17", "The Study Of Rules",
#1101367, "50%",
p("It's the duality—executing & thinking—that makes this project work."))
+ imagePost("2018/08/14", "Bot Tests Human",
#1101366, "30%",
p("It's only fair that they test us first.")
+ p("(Yeah it's a joke post.) Next up: The other way around!"),
left := true)
+ textPost("2018/08/13", "The Levels Of AI",
p(b("Level 1: Literal.") + " Just make some responses. How are you? => I'm good/I have some problems")
+ p(b("Level 2: Battle it out.") + " Take the rules of level 1 and have them compete against each other. (There are also meta-rules.)")
+ p(b("Level 3: Fact management.") + " Some things are true, others aren't. Manage this.")
+ p("That's pretty much it. Now we just need a lot of rules to work with. Oh, and there's a very good parser for German & English.")
+ p(targetBlank("https://www.meetup.com/Artificial-Intelligence-Meetup/events/253736347/", "Meeting.")))
+ imagePost("2018/08/10", "How much",
#1101365, "40%",
p("...is an AGI? 'cause we deliver."))
+ imagePost("2018/08/09", "Learning from longer exchanges",
#1101364, "50%",
p("Getting somewhere.")
+ p("If you could talk to an AI about any topic—which one would you choose?"))
+ imagePost("2018/08/07", "Politics",
#1101363, "50%",
p("Bot knows (sadly)."),
left := true)
+ imagePost("2018/08/05", "Bot decides",
#1101362, "45%",
p("Who knows what it will do next?"))
+ textPost("2018/08/04", "Let's improve the onboarding",
p(targetBlank("http://t.me/Hello_Computer", "Channel") + "'s waiting dudes."))
+ imagePost("2018/08/02", "How the AI is programmed",
#1101361, "30%",
p([[
v1 - Make a basic logic using a bastard language located somewhere
between Prolog and plain English (mostly it's just the latter).]])
+ pre_trim([[
input(I'm a scammer!)
&& fact(a scammer scams people)
&& relationX(scams people, scam people)
=> output(You scam people?!)
]]) +
p([[
v2 - Add some $ signs and turn spaces into underscores
(making the pattern dynamic).]]) + pre_trim([[
input(I'm a $scammer!)
&& fact(a $scammer $scams_people)
&& relationX($scams_people, $scam_people)
=> output(You $scam_people?!)
]]) + p([[
v3 - Find out what relationX is (that's not that hard).]])
+ p_b([[v4 - Interpret this stuff.]])
+ pre([[DONE]])
+ p([[Estimated time frame: ]] + b([[2 days]]))
+ p("Edit (2018/08/03): And it's done (see picture)."))
+ textPost("2018/08/02", "I'm beating them",
p("IBM and all the other guys.")
+ p("My fabulous " + targetBlank("http://tinybrain.de/1017686", "English Parser") + " just got better, you can now help it out by using some brackets, like this:")
+pre("{This time of night} it's usually quite cool."))
+ textPost("2018/07/31", "I still contribute to StackOverflow",
p("...even though " + targetBlank("https://stackoverflow.com/a/51618656/947488", "that place") + " is the living hell for any sane person. I'm not even allowed to ask questions anymore because
they hate dissidents."))
+ imagePost("2018/07/31", "Bot Initiative",
#1101360, "45%",
p("Shurely an important part."))
+ imagePost("2018/07/28", "Bot needs more logic!",
#1101359, "45%",
p("We're getting there though."),
left := true)
/*+ textPost("2018/07/27", "What is AI?",
p("AI is " + i("puzzling stuff out") + ".")
+ p("(You know which meaning of \"puzzling\" is intended here, right? If yes: Then you're a " + i("good puzzler") + ".)")
+ p("So that's what we build: a " + i("puzzling engine") + "."))*/
+ imagePost("2018/07/27", "Telegram shaping up",
#1101358, "45%",
p(targetBlank("http://t.me/Hello_Computer", "Participate!")))
+ textPost("2018/07/27", "I should collect money for a new notebook",
p([["What, you're doing AI with 4 gigabytes?"]])
+ p("Yes, that's right. And 512 MB actually go to the GPU, so yeah... it's tight."))
+ textPost("2018/07/26", "The Simplifier",
p("Another working AI component. Takes any sentence or phrase, like:")
+ pre("smart combinations of various fast methods")
+ p("and outputs:")
+ pre(trim([[
1. combinations
2. combinations of methods
3. smart combinations
4. combinations of fast methods
5. smart combinations of methods
6. combinations of various methods
7. smart combinations of fast methods
8. combinations of various fast methods
9. smart combinations of various methods
10. smart combinations of various fast methods
]]))
+ p("Neat, right? And very useful."))
+ textPost("2018/07/22", "Setting Up Telegram",
p([[There'll be ]] + targetBlank("http://t.me/Hello_Computer", "a channel") + [[ and a bot.]]))
+ textPost("2018/07/22", "The implications of this project",
p([[I'm not sure if you have thought this through yet. This is a project that
makes computers think.]]))
+ imagePost("2018/07/20", "A few more steps",
#1101357, "45%",
p([[...and you'll have the dialog engine you're all waiting for.]]))
/*+ textPost("2018/07/22", "The StackOverflow War",
p("StackOverflow is completely intolerable if you try to actually work on it. The trolls are in charge there.")
+ p("There is a " + targetBlank("https://meta.stackexchange.com/questions/187661/mirrors-of-stack-overflow", "legal way") + " to mirror the site, so: Let's do it! I'm downloading the first archive as we speak. Huge stuff though, gigabytes over gigabytes..."))*/
+ textPost("2018/07/18", "English+German Parsers Work",
p("Input:")
+ pre("\"Confessions of a Burglar Video\"")
+ p("(It's the name of a video on YouTube.) So... is the video confessing—or the burglar? Let's ask the parser.")
+ pre(rtrim([[
1. Confessions {of {a {Burglar Video}}}
2. {Confessions {of {a Burglar}}} Video
]]))
+ p("Yup, it has found the 2 grammatical possibilities. Next up: Semantic analysis to rate these against each other."))
+ textPost("2018/07/18", "500 installations coming up",
p([[We're reaching a nice number of JavaX-enabled computers. And no, they're not all mine.]]))
+ imagePost("2018/07/12", "Perfect Parser Coming Up",
#1101356, "45%",
p([[English—no problem.]]))
+ imagePost("2018/07/12", "The Magic OS",
#1101353, "45%",
p([[In my OS, every computer can control any other one—if the "victim" deliberately chooses this (it's a separate module you have to load explicitly, so don't worry).]])
+ p("The communication process behind this is protected using automatic cryptographic signatures."))
+ imagePost("2018/07/10", "Teaching Puns To The AI...",
#1101352, "45%",
p("52 days to world domination."))
+ textPost("2018/07/10", "News from Zuckerberg",
p(youtubeEmbed_newer("_zCDvOsdL9Q", 400)))
+ textPost("2018/07/07", "56 days",
p("until Stefan's OS takes the world."))
/*+ imagePost("2018/07/05", "News From Israel",
#1101349, "30%",
p(targetBlank("https://www.aljazeera.com/indepth/inpictures/israeli-forces-assault-palestinians-prepare-demolish-village-180704141245982.html", "Great country.")),
picLink := "https://www.aljazeera.com/indepth/inpictures/israeli-forces-assault-palestinians-prepare-demolish-village-180704141245982.html")*/
+ imagePost("2018/07/02", "Dead Lock-Immune Operating System",
#1101348, "30%", p(targetBlank("http://tinybrain.de/1016805", "Code.")), left := true)
/*+ textPost("2018/07/02", "Dear Kirill from the Android team,",
hParagraphsFromEmptyLines([[I have to get these things off my chest.
1. I used to work at Google. I quit in 2009 because they wanted to waste me.
2. I make an operating system in Java that is ALL THAT ANDROID SHOULD HAVE BEEN.
3. I tried to install WhatsApp on a friend's Android phone yesterday and IT SIMPLY DID NOT WORK.
3b. I got kicked off the Play Store because I dynamically load code from un-servers (non-Google-servers). So it's a fight? Guess who'll win.
4. In my Java OS, ALL MODULES RUN IN ONE VM AND IT'S NOT A PROBLEM.
4b. No, the Java process does not get "wonky" over time as misinformed programmers baselessly claim. They just have more deadlocks than I do (my deadlocks are
fixed by the OS).
5. I have an idea for a better Swing PLAF interface. Just two components: a painter and a "clicker" (event handler). Easy & really transparent.
6. My OS has
orthogonal persistence which is... slightly easier than your persistence approach.
Cheers.
Stefan]]))*/
/*+ textPost("2018/06/30", "Something must be wrong with reality",
p("The movies we watch have a better plot than the life we actually live. How is that possible?"))*/
+ textPost("2018/06/30", "We're doing it again",
invtag('div, style := "float: right; margin-left: 20px; margin-bottom: 20px",
embedYoutube_newer("lAkuJXGldrM", 300))
+ p("Stefan's OS has a greater impact than Windows 95. You just wait and see!"))
+ textPost("2018/06/27", "Computer checks its own voice",
p(embedYoutube_newer("ZRkGdIvW5lM", 600)))
+ imagePost("2018/06/23", "Stefan's OS v5",
#1101335, "30%",
p("See who else is online, world wide (if you load the module).")
+ p([[Also notice the "AI bar" at the top which is a novel invention.]]))
+ textPost("2018/06/23", "We are solving the software security crisis",
p("The solution is "+ b("source code inspection") + ", and " + ahref("http://javax.tinybrain.de", b("JavaX")) + " makes it practical."))
+ textPost("2018/06/23", "We will now do the Super-Automation",
p("The operating system is the optimal place to automate everything—it sees everything and it can act upon information. Also loading and even making dynamic code on the fly is trivial in my OS."))
+ textPost("2018/06/25", "If your language isn't perfect—how about changing it?",
p("Let's say " + b("vanilla Java is too verbose") + ". (Everybody knows this.) Instead of this:")
+ pre("class ShowBackgroundImage extends DynModule {")
+ p("I want to type (and see) only this:")
+ pre("class ShowBackgroundImage > DynModule {")
+ p(b("In JavaX") + ", that takes " + b("exactly one line") + " in the " + targetBlank("http://tinybrain.de/759", b("translator")) + ":")
+ pre(htmlencode([[jreplace(tok, "class
> {", "class $2 extends $4 {");]]))
+ p("And this easily, my language has been extended.")
+ p(b(targetBlank("http://tinybrain.de/1016607", "Proof that this works."))))
+ textPost("2018/06/20", "Collaboration!",
p(targetBlank("http://www.ort-des-talents.de/", "BrainCircle.")))
+ textPost("2018/06/20", "Stefan's OS v4",
p(ahref("https://www.botcompany.de:8443/1013826/raw", "Numerous small improvements") + ". Finds memory leaks automatically (!). Ability to make \"alternative brains\" (multiple distinct instances of OS on a machine). Still compatible with Windows, Linux and Mac."))
+ imagePost("2018/06/19", "Reading my mails",
#1101332, "30%",
p("Not pretty (where are the graphic designers?), but it works.")
+ p(ahref("http://tinybrain.de/1016066", "Source code") + " (39 lines)")
, left := true)
+ imagePost("2018/06/18", "First operating system that learns",
#1101331, "30%",
p(b([[What is the world?]])), left := false)
+ imagePost("2018/06/18", "Advantages of a Java-based OS: Free Profiling",
#1101328, "30%",
p([[You get so many inspection capabilities for free in my OS.]])
+ p([[For example, you can always find out what the CPU is doing, down to every single line of code. And this incurs no performance overhead when not used.]]), left := true)
+ textPost("2018/06/17", "Memory leak eliminated", p("Gotcha.") + p("I told you Java is stable!"))
+ imagePost("2018/06/16", "Further chasing the memory",
#1101327, "30%",
p([[It has to be going somewhere. ]] + ahref("http://mail.openjdk.java.net/pipermail/discuss/2018-June/thread.html", "jdk-discuss") + [[ informed (list is moderated, read: another time waster).]]), left := true)
+ imagePost("2018/06/16", "New Look&Feel",
#1016391, "30%",
p([[Pretty, isn't it. Look&Feel is called ]] + ahref("http://jtattoo.net", "JTattoo") + [[.]]) + p([[Image was made with the automatic screenshot module on a very old Windows 7 machine where my OS runs flawlessly.]]), left := true)
+ textPost("2018/06/15", "Fixing the last memory leaks in Java 10", [[
I submitted this bug report to Oracle, and I'm making
super-fancy functions like cleanDefunctACCsInAllThreads that automatically fix
memory leaks other Java programmers have never heard of.
We will sail memory leak-free! :)
]]) + [[
Today we launched bla bla bla.
(No, seriously—we actually did. There is an awesome YouTube downloader in my operating system. I'm just too lazy to write.)
Now I need an awesome screenshot module and an awesome auto-upload-to-blog module.