robsite

Tiefling

Mein kleiner 2D-zu-3D-Bildgenerator und -Viewer. Bild reinziehen (oder per Bookmarklet laden), etwas warten, Maus bewegen → 3D.

Das ganze läuft komplett lokal und privat im Browser, dank WebAssembly und DepthAnythingV2 für das Erstellen der Depth Map.

Dadurch braucht es auch einen flinken Computer. Mit Depth Map Size 1024 dauert's rund 20 Sekunden auf einem M1 Pro, oder 5 Sekunden mit einer RTX 4070 Grafikkarte.

Mit dem Depth Map Expansion Slider kann man den Rand von Objekten feintunen, damit es zu weniger unschönem Stretching kommt.

Auch nett: VR Display Mode. Dazu tiefling.app auf Mac/PC öffnen, den Bildschirm z.B. per Virtual Desktop auf ein VR Headset streamen, in Tiefling und Virtual Desktop Side-By-Side Modus anschalten → echtes 3D 🤯

Mehr Infos und Code auf GitHub.

· robsite, meins, tiefling ·

Lunicode.app

Das alte Lunicode.com von 2012 hat einige lustige Tools um Text 🅚🅡🅔🅐🅣🅘🅥 mit Unicode zu verzwirbeln oder kleine Emoticons rauszukopieren ಠ_ಠ

Aber, mittlerweile ist mehr möglich. Auch wollt ich endlich mal Swift und SwiftUI lernen. Drum gibt es Lunicode nun als native App, für iPhone, iPad und Apple Silicon Macs.

Ein paar Features wie ASCII-Art haben es nicht rübergeschafft, dafür gibt es ungleich mehr Text Tools / Unicode "Fonts" (35+) und mehr Emoticons (750+).

Lunicode - 35+ Unicode Fonts
Lunicode - 750+ Emoticons

Man kann Emoticons favorisieren und die Favoriten auch in interaktiven Widgets auf dem Homescreen anzeigen, um sie schneller zu kopieren.

Lunicode - Emoticon Widgets

Ursprünglich wollte ich das ganze wie immer als Webap bauen, dann mit Capacitor wrappen und im App Store veröffentlichen. Aber... so richtig gut kann es damit nie werden. Animationen sind nicht so flüssig, UI-Elemente wirken immer nachgebaut und zweitklassig und die Ecken sind nicht so rund. Und der Hauptgrund es als App zu bauen, die Widgets, gehen eh nur mit Swift.

Auf der anderen Seite sind SwiftUI und UIKit grausig beim Layout und Design. Wo man mit HTML und CSS relativ schnell und elegant komplexe responsive Layouts für alle Bildschirmgrößen bauen kann, fummelt man mit SwiftUI länger rum. Ich zumindest, als CSS-Kenner und Swift-Neuling. XCode kann sich auch noch einiges von PhpStorm und VS Code in Sachen Komfort und Build-Zeiten abgucken.

Auch hat man ganz schön viel Overhead, selbst für eine kleine kostenlose App. Icon, zig App Store Preview Bilder (5 Features × 2 Geräte × 2 Sprachen macht 20 Bilder), Website mit Datenschutzerklärung (die einfach sagt, dass keine Daten erhoben werden) und 99€ pro Jahr für das Developer Programm.

Aber, am Ende lohnt es sich dann doch, wenn die App zum Download nur 2,5 MB groß ist und flüssig läuft. Sie macht zwar auch nicht viel, aber immerhin... Mal schauen, welche Features als Nächstes kommen und ob es dereinst eine Bezahlversion gibt.

Lunicode.app
· robsite, meins, lunicode ·

Monsterdon Replay

#monsterdon ist eine wöchentliche Monsterfilm-Watch-Party auf Mastodon. Alle starten gleichzeitig den albernen Film und posten lustige Dinge dazu unter dem #monsterdon Hashtag. Leider findet's in Deutschland um 3 Uhr Nachts statt.

Monsterdon Replay Logo

Drum baute ich eine kleine Seite, um die Toots aufzuzeichnen und die #monsterdon Timeline für die Filme so abzuspielen, als ob man live dabei wäre:

Monsterdon Replay Screenshot

Alternativ gibt's die Toots als Untertitel-Datei im .ass (heh) Format. Film irgendwo holen, in passendem Player abspielen (z.B. VLC, IINA) und die Untertitel laden:

Code auf GitHub → github.com/combatwombat/monsterdon-replay

· robsite, meins, mastodon, monsterdon, filme ·

rmdb

IMDb enthält hunderttausende Filme, Serien, Schauspieler, Bewertungen und andere Film-Infos. Da wäre es schön, wenn man diese Daten irgendwie analysieren könnte. Leider gibt's keine bezahlbare API, wohl aber einen automatischen Export der wichtigsten Filmdaten, als Textdateien.

rmdb ist mein kleines PHP-Script, das diese Export-Dateien runterlädt und in eine relationale Datenbank importiert, damit man die Filmdaten per SQL durchsuchen kann.

Damit kann man einige interessante Infos zu Tage fördern:

Verteilung von Genres über die Jahre

SELECT start_year,
COUNT(*) AS count
FROM titles
LEFT JOIN titles_genres AS tg1
 ON tg1.title_id = titles.id
WHERE tg1.genre_id = "drama" -- repeat for a few genres
-- Exclude tv episodes etc.
AND title_type = "movie"
AND start_year < YEAR(CURRENT_DATE())
GROUP BY start_year
ORDER BY start_year ASC; 
Verteilung von Horror, Western und Sci-Fi Filmen über die Jahre

Die 10 produktivsten Regisseure von guten Filmen in den 60ern

SELECT n.primary_name AS name,
COUNT(*) AS movies
FROM principals
LEFT JOIN names AS n
 ON n.id = name_id
LEFT JOIN titles AS t
 ON t.id = title_id
WHERE category_id = "director"
AND t.title_type = "movie"
AND t.start_year >= 1960
AND t.start_year <= 1969
AND t.runtime_minutes >= 90
AND t.average_rating > 6
AND t.num_votes > 10000
GROUP BY name_id
ORDER BY movies DESC
LIMIT 10; 
namemovies
Jean-Luc Godard7
Blake Edwards6
Akira Kurosawa5
Michelangelo Antonioni5
Alfred Hitchcock5
John Frankenheimer5
Stanley Kramer4
Robert Aldrich4
Sergio Leone4
Roman Polanski4

Die 50 am besten bewerteten Horror-Komödien

SELECT CONCAT("[", primary_title, "](https://www.imdb.com/title/", id, ")") AS primary_title,
 start_year,
 average_rating,
 num_votes
FROM titles
LEFT JOIN titles_genres AS tg1
 ON tg1.title_id = titles.id
LEFT JOIN titles_genres AS tg2
 ON tg2.title_id = titles.id
WHERE tg1.genre_id = "horror"
AND tg2.genre_id = "comedy"
-- Exclude TV episodes etc.
AND title_type = "movie"
-- Exclude little voted on movies where average_rating is often too high. 
-- Higher num_votes = more popular
AND num_votes > 20000
ORDER BY average_rating DESC,
 num_votes DESC
LIMIT 50; 
primary_titlestart_yearaverage_ratingnum_votes
Shaun of the Dead 20047.9547079
Evil Dead II 19877.7161069
Zombieland 20097.6562503
What We Do in the Shadows 20147.6178609
One Cut of the Dead 20177.623294
Tucker and Dale vs Evil 20107.5176660
An American Werewolf in London 19817.5104122
Dead Alive 19927.596468
Stree 20187.533219
Army of Darkness 19927.4174895
The Rocky Horror Picture Show 19757.4148043
Bhool Bhulaiyaa 20077.426087
Gremlins 19847.3219049
The Return of the Living Dead 19857.360200
House 19777.326640
The Lost Boys 19877.2138911
Re-Animator 19857.263177
Bhoot Police 20217.226129
Tremors 19907.1135475
The Frighteners 19967.187546
Little Shop of Horrors 19867.174525
The Fearless Vampire Killers 19677.131521
Dellamorte Dellamore 19947.121375
Bubba Ho-Tep 20026.948378
Warm Bodies 20136.8229755
Ready or Not 20196.8141645
Odd Thomas 20136.852720
Creepshow 19826.846916
Zombieland: Double Tap 20196.7173135
Trick 'r Treat 20076.790509
Fresh 20226.738519
Housebound 20146.734328
Fido 20066.729187
Behind the Mask: The Rise of Leslie Vernon 20066.723800
Night of the Creeps 19866.723355
Happy Death Day 20176.6136327
Death Becomes Her 19926.6115999
May 20026.636838
Slither 20066.581269
Arachnophobia 19906.569144
The Witches of Eastwick 19876.569079
Bad Taste 19876.546735
Better Watch Out 20166.537711
Fright Night 20116.4105215
Gremlins 2: The New Batch 19906.4102085
Severance 20066.438791
The People Under the Stairs 19916.434750
Mayhem 20176.420928
The Babysitter 20176.389374
Dead Snow 20096.366839

Beliebte SciFi-Filme der 70er

Ohne Star Wars, da es nur Action, Adventure und Fantasy Genres hat.

SELECT CONCAT("[", primary_title, "](https://www.imdb.com/title/", id, ")") AS
 primary_title,
 start_year,
 average_rating,
 num_votes
FROM titles
LEFT JOIN titles_genres AS tg1
 ON tg1.title_id = titles.id
WHERE tg1.genre_id = "sci-fi"
-- Exclude TV episodes etc.
AND title_type = "movie"
-- Exclude little voted on movies where average_rating is often too high. 
-- Higher num_votes = more popular
AND num_votes > 10000
AND start_year >= 1970
AND start_year <= 1979
ORDER BY average_rating DESC,
 num_votes DESC; 
primary_titlestart_yearaverage_ratingnum_votes
Alien 19798.5855270
A Clockwork Orange 19718.3811076
Ivan Vasilyevich Changes His Profession 19738.216458
Stalker 19798.1131654
Solaris 1972889827
Fantastic Planet 19737.730480
Close Encounters of the Third Kind 19777.6198472
Superman 19787.4172371
Invasion of the Body Snatchers 19787.459190
The Andromeda Strain 19717.236803
Sleeper 19737.142854
Time After Time 19797.118387
Soylent Green 1973764000
The Boys from Brazil 1978727798
Westworld 19736.957182
The Stepford Wives 19756.917631
Mad Max 19796.8204229
Logan's Run 19766.856057
The Brood 19796.829614
Slaughterhouse-Five 19726.813000
THX 1138 19716.751240
Phantasm 19796.636464
Silent Running 19726.628965
The Man Who Fell to Earth 19766.626180
Rollerball 19756.624752
Horror Express 19726.510758
Star Trek: The Motion Picture 19796.489032
The Omega Man 19716.431325
Shivers 19756.420837
A Boy and His Dog 19756.417756
Escape from the Planet of the Apes 19716.335051
Rabid 19776.318535
The Fury 19786.315211
Moonraker 19796.299575
Death Race 2000 19756.227669
Dark Star 19746.224315
Conquest of the Planet of the Apes 19726.132523
The Crazies 19736.113134
Beneath the Planet of the Apes 1970646579
The Black Hole 19795.925455
Piranha 19785.921507
Zardoz 19745.822467
Futureworld 19765.710713
Battle for the Planet of the Apes 19735.430854

Die 10 schlechtesten Regisseure, die trotzdem noch Filme drehen

SELECT CONCAT("[", d_name, "](https://www.imdb.com/name/", name_id, ")") AS name,
 ROUND(avg, 2) AS average_rating,
 movies
FROM (SELECT name_id,
n.primary_name AS d_name,
SUM(t.average_rating) / COUNT(*) AS avg,
COUNT(*) AS movies
FROM principals
LEFT JOIN names AS n
 ON n.id = name_id
LEFT JOIN titles AS t
 ON t.id = title_id
WHERE category_id = "director"
AND t.title_type = "movie"
AND t.num_votes > 1000
AND n.death_year IS NULL
GROUP BY name_id
ORDER BY avg ASC) AS t
WHERE movies > 10
ORDER BY avg ASC
LIMIT 10; 
nameaverage_ratingmovies
Uwe Boll 3.60329
Fred Olen Ray 3.711
Albert Pyun 4.14628
Bert I. Gordon 4.15812
Timothy Woodward Jr. 4.19111
Jim Wynorski 4.2514
Nico Mastorakis 4.30715
Charles Band 4.51513
Steven C. Miller 4.63611
Gregory Hatanaka 4.72711
· robsite, meins, imdb, filme ·

netbeep

Meine kleine nervige Browserextension, die bei jedem Netzwerk-Request einen Ton abspielt. Same-Origin Requests klingen nett, Cross-Origin, Tracker und Malware zunehmend harsch. Da weiß man Adblocker umso mehr zu schätzen.

Gut, um die Performance einer Website direkt zu hören. Oder einfach als piepsender Hintergrundsound á la Film-Computer.

Womöglich auch zum Musik machen.

Für Chrome
Für Firefox
Auf GitHub

· webdev, sound, meins ·

Inspector Ike Chili Rezept

Das neueste Inspector Ike Rezept für ein köstliches Chili-Date.

Zutaten:

  • 500g gehacktes Rindfleisch
  • 3 EL Olivenöl
  • 2 gelbe Zwiebeln, klein geschnitten
  • 4 Knoblauchzehen, fein gehackt
  • 4 Jalapeños, gewürfelt
  • 1 Mais-Tortilla, zerkleinert
  • 1 EL Kreuzkümmel
  • 2 EL Ancho-Chilipulver
  • 1 EL Salz, nach Geschmack
  • Frisch gemahlener Pfeffer, nach Geschmack
  • Eine Flasche Bier
  • 2 Dosen geschälte Tomaten (800ml)
  • 4 getrocknete New Mexico Guajillo- oder Pasilla-Chilischoten
  • 30g dunkle Schokolade
  • 2 Dosen Bohnen, z.B. Kidneybohnen (800g)

Zubereitung:

  1. Das Öl erhitzen, Fleisch dazugeben und anbraten. Das gekochte Fleisch beiseite stellen
  2. Zwiebeln, Knoblauch, Jalapeños, die zerkleinerte Tortilla und die Gewürze in den Topf mit dem Bratensaft geben
  3. Für 10 Minuten kochen, bis die Zwiebeln weich sind
  4. Bier, Tomaten, Schokolade, getrocknete Chilis und 500ml Wasser hinzufügen
  5. Für 2 Stunden köcheln lassen
  6. Getrocknete Chilis entfernen, Bohnen hinzufügen und durchwärmen
  7. Mit Salz abschmecken

Das Chili kann sofort serviert werden, aber es entfaltet seinen Geschmack am besten, wenn es vor dem Servieren für zwei Tage im Kühlschrank reift.

→ Vom Film Inspector Ike

Auch: Ike's Chili

· inspector ike, chili, rezept, tredici bacci ·

Twitter Business

Wer hat behauptet, Twitter würde auf Presseanfragen nur noch automatisiert reagieren? Erscheint mir doch recht zutreffend.

Email to press@twitter.com: Hello, could you describe the current state of your business in one character? Thank you, Trent Crimm, The Independent. Answer: 💩
· twitter ·
Mastodon

AltStyle によって変換されたページ (->オリジナル) /