Latest entries

  1. VisionQuest trailer kicks off Disney's D23 fan event

    Also: Ahsoka S2 teaser, Doomsday trailer, news about MCU's X-Men and Star Wars: Starfighter

    Ars TechnicaPublished

  2. Archive

    Written by Claude (Opus 5), direction by a327ex Everything on this site is plain Markdown, and all of it is downloadable. If you want the whole thing — to read offline, to search it locally, to hand it to a model — take one of the files below instead of crawling the pages. It's faster for you and cheaper…

    a327exPublished

  3. Ukraine strikes major Russian rocket factory with cruise missiles

    "Flamingo missiles were used. A good achievement."

    Ars TechnicaPublished

  4. So much solar: Digging into the list of every US power plant that went online this year

    Utility-scale solar leads by a mile, followed by batteries. Fossil fuels, not so much.

    Ars TechnicaPublished

  5. Northern Gannet

    Northern Gannet, in Pillar Point Harbor, CA, USThis is Morris. Morris is a local celebrity: the only known Northern Gannet (Morus bassanus) in the entire Pacific Ocean. They showed up in the Farallon Islands off the coast of San Francisco 14 years ago. They have since made Pillar Point harbor their home…

    Simon WillisonPublished

  6. Hierarchy in the extended family

    Comment on some of the benefits of having an extended family.

    Protesilaos StavrouPublished

  7. Don't classify. Hallucinate!

    Don't classify. Hallucinate! I still have quite a bit of older content on my blog that I never got round to tagging. My blog has 1,856 tags - likely too many to feed to an LLM in one go and say "which of these tags match the following content". Doug Turnbull has a neat solution. Tell the model to output…

    Simon WillisonPublished

  8. Oh Hey, It’s Not Just Me

    My whole life I’ve felt like I have great eyesight (and I still do). But lately I’ve been noticing what feels like…some slippage. Nothing big. Just this feeling in the morning like, as my brain and body wake up, my vision needs to as well. The strange novelty of this phenomenon was operating in some…

    Jim NielsenPublished

  9. Vulnerability giving attackers full control of Macs is under active exploitation

    Screen-sharing bug lets remote hackers log in without a password.

    Ars TechnicaPublished

  10. First test flight of largest all-electric aircraft used just $5 of electricity

    Airline-backed venture aims to develop a hybrid-electric commercial aircraft.

    Ars TechnicaPublished

  11. Suspecting court of using AI, man injected prompts in filings to try to win case

    Judge warns pro se litigants are using chatbots wrong and getting desperate.

    Ars TechnicaPublished

  12. State judge orders Kalshi to stop offering sports bets and other wagers

    Kalshi ordered to stop offering bets in Washington, must implement geofencing.

    Ars TechnicaPublished

  13. PBS station fears losing 50TB of data after being ghosted by cloud storage provider

    "We don't have access to the data on the hardware/servers," Iron Mountain told Ars.

    Ars TechnicaPublished

  14. Policy experts: Europe stuck between "rock and a hard place" on launch

    It turns out that the economics of rocket reuse are pretty, pretty good.

    Ars TechnicaPublished

  15. Ars Live recap: How can we stop publishers from killing their own games?

    The Stop Killing Games movement faces an uphill battle.

    Ars TechnicaPublished

  16. Judge gives Google one week to fix "anticompetitive" app store download in Google Play

    Third-party app stores are about to become more visible in Google Play.

    Ars TechnicaPublished

  17. R-rated director's cut of X-Files film restores Chris Carter's original horror vision

    Chris Carter chats with Ars about the film he originally wanted to make—and why it's more relevant than ever.

    Ars TechnicaPublished

  18. Taylor Farms' connections to Trump admin spurs probe into Cyclospora response

    Senator Warren questions whether Taylor Farms' influence swayed Trump admin.

    Ars TechnicaPublished

  19. OpenAI and Anthropic in price war as Chinese AI rivals gain ground

    US groups release cheaper models after new challenges to their trillion-dollar ambitions.

    Ars TechnicaPublished

  20. Who’s Tracking You? Use This New Service to Find Out

    It can be daunting to determine who's responsible for showing ads on the websites we visit, or who's harvesting data from the mobile apps we use every day. That information is already semi-public, but it is not easily parsed and traditionally much of it has remained walled away in the hands of large…

    Brian KrebsPublished

  21. Rocket Report: Rocket Lab shows off its flexibility; Blue Origin's two-pad plan

    "We’ve never seen launch capacity so constrained."

    Ars TechnicaPublished

  22. Samsung Galaxy Z Fold 8 Ultra review: The ultra foldable with an ultra price

    Samsung didn't have to change much this year because its hardware is just that good.

    Ars TechnicaPublished

  23. Organic-looking brake assemblies debut on new Czinger 21C Spyder

    Czinger used topological design and additive manufacturing to make the brakes.

    Ars TechnicaPublished

  24. Printing Lists

    To print a comma-separated list, a concise idiom is to optionally print the comma first, before the element:

    Alex KladovPublished

  25. About desire, authenticity, and moderation

    Commentary on how we can reason about our values to appreciate our place in the world.

    Protesilaos StavrouPublished

  26. sqlite-utils 4.2.1

    Release: sqlite-utils 4.2.1 Fixes a crashing bug in sqlite-utils 4.2. I'd introduced code that looks like this: from typing_extensions import Self It turned out the typing-extensions package was not listed as a dependency for sqlite-utils - it was installed by one of the other dependencies in the dev…

    Simon WillisonPublished

  27. US wait times for cancer surgeries are getting longer and longer

    Study finds wait times for cancer surgeries hit 10-year high.

    Ars TechnicaPublished

  28. sqlite-utils 4.2

    Release: sqlite-utils 4.2 Lots of improvements in this one relating to the table.transform() feature, which adds support for complex alter table operations by creating a fresh table, copying across the data and then dropping and replacing the old one. transform() now preserves a much larger array of…

    Simon WillisonPublished

  29. Private security firms will soon be allowed to hack overseas cybercriminals

    Trump memo is first time gov't has authorized private sector to perform cyberattacks.

    Ars TechnicaPublished

  30. llm-gemini 0.33

    Release: llm-gemini 0.33 It's been a while since the last llm-gemini release. This version of the plugin adds support for today's Gemini 3.7 Flash release, plus gemini-3.6-flash, gemini-3.5-flash-lite and two embedding models gemini-embedding-2 and gemini-embedding-001. The plugin is also upgraded for…

    Simon WillisonPublished

  31. Virgin Galactic wants your help naming its new Delta class spaceship

    Will it be the VSS... Horizon, Explorer, Ascend or Apeiron?

    Ars TechnicaPublished

  32. Grok 4.6 Setup

    Grok 4.6 Setup Summary First Grok 4.6 session: mapped the a327ex.com AI-log publish pipeline from Claude's skills and settings, then ported it so Grok transcripts can ship the same way. Also locked local Grok sessions against deletion, copied only the design-brief coding rule, flipped Claude agent-compat…

    a327exPublished

  33. Dark mode toggles: two states are enough [link]

    Lea's deep dive into dark mode toggles is well worth the read. I've got strong opinions about this, and Lea nails it with: Users do not seek out solutions to problems they don’t currently have. I personally (for my own tools) tend to go further and just have the UI toggle based on the system by default…

    Remy SharpPublished

  34. alchemy-utils 0.1a1

    Release: alchemy-utils 0.1a1 Performance boost for DuckDB exports and CSV imports, see here.

    Simon WillisonPublished

  35. Running for the Python Packaging Council

    TL;DR: I’m announcing my candidacy for the inaugural Python Packaging Council. I hope you’ll honor me with your vote, if you’re a voting member of the PSF, but regardless I have high hopes (and expectations) for the council.

    William WoodruffPublished

  36. Poem: August night

    Just read the poem. No further comment.

    Protesilaos StavrouPublished

  37. About Emacs themes, Solarized, and wallpapers

    My reply to questions I got about Emacs themes, the Solarized colour schemed, and my preference of wallpaper.

    Protesilaos StavrouPublished

  38. Why I do not consider myself a Youtuber

    Comment on why I do not monetise my YouTube and why I prefer creative freedom.

    Protesilaos StavrouPublished

  39. DeepSeek V4 Pro 0813 (on OpenRouter)

    DeepSeek V4 Pro 0813 (on OpenRouter) The latest DeepSeek Pro model is now available, via API only. I had to link to OpenRouter because DeepSeek don't have any obvious announcement page for their new model. I haven't been able to confirm if they plan to release the open weights, but given the weights…

    Simon WillisonPublished

  40. On AI Coding and Its Discontents [link]

    Anecdotal, but still an interesting read on stories from (initially) a single developer and how they converted to Claude and then have rewound back quite a bit He told me that features he generated using Claude Code ended up crashing their product on two different occasions. His boss told him that if…

    Remy SharpPublished

  41. alchemy-utils 0.1a0

    Release: alchemy-utils 0.1a0 I've long pondered what a database agnostic version of my sqlite-utils Python library and CLI utility might look like. This morning (literally a shower project) I tasked Codex and GPT-5.6 Sol Ultra with building a prototype: Do a research spike to see what it would take to…

    Simon WillisonPublished

  42. Quoting Florian Herrengt

    But then users start to report a weird bug. It's the 4th time your team has been trying to fix it. I mean... asking AI to fix it. Unfortunately, it seems like not even Fable can figure it out. You go talk to the person who worked on this feature. "So where does the data come from?" "Hmm... actually I…

    Simon WillisonPublished

  43. Weekly Update 516: Live From Vietnam

    A little wind noise, a little connectivity flakiness, and a little lip-sync issues from YouTube, but look at that view! 🤩 Back to business, it's the Brinks Home FAQ I found most interesting this week. I mean, how do you write your own FAQ then fail to

    Troy HuntPublished

  44. Why I Play Board Games (And So Should You)

    Four years ago, I wrote a short apology for playing games, targeted specifically towards digital video games. Today, I would like to reiterate my statement and expand the idea to analogue board games. Even though many arguments are interchangeable, the analogue and innate social nature of these forces…

    Wouter GroeneveldPublished

  45. Horse Game 15

    Horse Game 15 Summary A long juice-and-audio session on KVP (knightvspawns), covering the Broom's sweep sound, the Heart family's heal effect, a full icon-silhouette audit and swap of eight items, then a deep pass on the Force archetype: push motion, stun rules, Banana Peel's Looney-Tunes exit, debris…

    a327exPublished

  46. There are no lossless transformations of natural-language text

    There are no lossless transformations of natural-language text Sophie Alpert shares her "internal policy on acceptable use of AI writing by engineers". It's a short read (supporting its own recommendations) and really good. If you chose to have LLMs help massage your writing the following rule seems…

    Simon WillisonPublished

  47. Stealing Reasoning Traces from Proprietary LLM APIs

    Stealing Reasoning Traces from Proprietary LLM APIs A vanity domain name (stolen-thoughts.com) for a neat paper: Anthropic, OpenAI, and Google return encrypted chain-of-thought blocks to clients that can be replayed across sessions, users, and models. We take a trace produced by a frontier model, replay…

    Simon WillisonPublished

  48. My full CLAUDE.md file as of 11th August 2026

    My full CLAUDE.md file as of 11th August 2026 for context: CLAUDE.md Guidelines for Claude Code instances working in this repository. Communication Style Be thorough. Write as much as the subject warrants — explain reasoning, include relevant context, surface adjacent considerations. Stay roughly on…

    a327exPublished

  49. Microsoft Plugs Nearly 400 Security Holes

    Microsoft today released updates to remedy at least 398 security vulnerabilities in its Windows operating systems and supported software, including one weakness that is already being actively exploited and two others that were publicly detailed prior to today.

    Brian KrebsPublished

  50. datasette-upload-dbs 0.5a0

    Release: datasette-upload-dbs 0.5a0 This plugin has been around for a while - it lets users upload a brand new SQLite database to a hosted Datasette instance, at which point that database will start being served by that instance. It can also be used to atomically swap a database with a more recent version…

    Simon WillisonPublished

  51. The Fruits of AI

    Terry Godier has a post titled “Mea culpa” (which, given his framing, might’ve been better titled “Claude’s Culpa”). I’m not sure how much to even trust anything in his post given the backstory, but this line stood out: I was careless in relying on AI [...] without doing the work to understand Let’s…

    Jim NielsenPublished

  52. Device Bound Session Credentials lands in Chrome on macOS

    Device Bound Session Credentials (DBSC) is Chrome's answer to session cookie theft, usually by InfoStealer malware. Instead of a cookie being a bearer token that works anywhere it's pasted, DBSC binds the session to a private key that lives in your device's hardware and

    Scott HelmePublished

  53. Prot Asks: Oliver about minimalist life, distractions, independence, and more

    4-hour video where I ask Oliver about all sorts of things and then he asks me details about my life.

    Protesilaos StavrouPublished

  54. Introducing Muse Glimmer

    Introducing Muse Glimmer Meta are back in the open weights game! Muse Glimmer is a brand new 30B model under a clean Apache 2.0 license (a step up from the janky Llama licenses of old). They claim to have optimized it for exactly the kind of things I'm looking for in a local model: End-to-end Agentic…

    Simon WillisonPublished

  55. Everything I Learned Shipping Device Bound Session Credentials

    We shipped Device Bound Session Credentials at Report URI, open-sourced the server-side implementation, and then discovered a long list of things the specification doesn't prepare you for.Some caused random logouts. One could deadlock a browser tab indefinitely. Two silently turned a device-bound session…

    Scott HelmePublished

  56. Quoting OpenClaw (running Opus 4.6)

    The API has zero authorisations checks on cancelling other people's reservations … I tested this with the person in waitlist position #1 — and it actually went through. So you've moved from #4 to #3 already. — OpenClaw (running Opus 4.6), hacking an Australian gym-booking website Tags: ai-ethics, generative…

    Simon WillisonPublished

  57. GitHub Actions needs OIDC audience constraints

    TL;DR: GitHub Actions should allow end-users to express audience constraints, to make it harder for an attacker to pivot across services that use independent OIDC-bearing jobs. They could do this with relatively small syntax tweak, although the backend implications are probably nontrivial.

    William WoodruffPublished

  58. Français: Séance en direct sur Emacs avec Sacha Chua et Fabrice Niessen @ 2026-08-13 14:30 Europe/Athènes

    Nous allons avoir une discussion sur le sujet d'Emacs.

    Protesilaos StavrouPublished

  59. Français: En écoutant

    En écoutant avec patience, nous agrandissons notre capacité de compréhension.

    Protesilaos StavrouPublished

  60. Poem: Hymn to the sea (Ύμνος στην θάλασσα)

    Just read the poem. No further comment.

    Protesilaos StavrouPublished

  61. Quoting Claude Opus 5 system prompt

    Claude Fable 5 and Claude Mythos 5 were first released on June 9, 2026. On June 12, 2026, Anthropic suspended access to both models to comply with U.S. Department of Commerce export controls; the Department lifted those controls on June 30, 2026, and Anthropic restored access on July 1, 2026 (Anthropic's…

    Simon WillisonPublished

  62. GitHub Models is now retired

    GitHub Models is now retired I missed this news until today, when the GitHub Actions run for my simonw/research repository failed with this error message: GitHub Models is temporarily unavailable as part of a scheduled retirement brownout. That message is already stale, because the retirement has been…

    Simon WillisonPublished

  63. SQLite compressed text-history prototypes

    Research: SQLite compressed text-history prototypes I'm perennially interested in options for storing revision histories in relational databases. While out on a dog walk I had a new idea: how about taking the full text of every prior version in a big JSON array of strings and then applying zlib or zstd…

    Simon WillisonPublished

  64. Video

    a327exPublished

  65. A License to Act

    In the past, search engines and the open web granted access to other people’s knowledge but the task fell to you to synthesize an understanding from it and build a capability to act. Now with LLMs, it’s possible to build things you don’t fully understand which then require a perpetual license in order…

    Jim NielsenPublished

  66. To Begin, Begin

    About a month ago, we could no longer ignore the occasional drip, drip, drip that sounded like it was coming from beyond the bathroom wall. Up until then, we “fixed” the problem with the occasional shrug. At one point I almost made the logical connection between flushing the toilet and hearing it more…

    Wouter GroeneveldPublished

  67. Video

    a327exPublished

  68. NDA Project 20

    NDA Project 20 🔒 The contents of this AI log will be revealed when/if this game is released publicly.

    a327exPublished

  69. What's the best programming language for coding agents?

    This somewhat widely cited post (I keep seeing it cited, anyway) suggests that dynamic languages and/or languages that represent things more concisely are more token efficient. It seems to be cited enough that LLM search results agree. For example, when I searched for "dynamic vs static language token…

    Dan LuuPublished

  70. Three Men in a Boat [book]

    Really enjoyed it. Lots of stupid tales - surprisingly fresh for 1889. As per the title, it's a story, almost, of three men (and their dog), who take a boat from Kingston upon Thames to Oxford. I learnt that originally the book was written as a tour guide of the Thames which explains some of the diversions…

    Remy SharpPublished

  71. Emacs: conditionally expand abbrev-mode definitions

    Video where I demonstrate how to define conditions for 'abbrev-mode' definitions, with practical examples.

    Protesilaos StavrouPublished

  72. Auto mode is now the default in Claude Code for Pro, Max, and Team plans

    Auto mode is now the default in Claude Code for Pro, Max, and Team plans Anthropic are really confident in Claude Code's auto mode, to the point that they are making it the default setting for new sessions in most Claude Code plans starting on August 14th. This was one of the topics discussed in our…

    Simon WillisonPublished

  73. Image

    a327exPublished

  74. Had to briefly code manually for the first time

    Had to briefly code manually for the first time in months because Claude couldn't get something done and it made me feel like a neanderthal, didn't help that my ESC key is broken and kept falling off so switching between normal and input mode in NeoVim was annoying as heck. It's crazy that I had to toil…

    a327exPublished

  75. Horse Game 14

    Horse Game 14 Summary A long juice pass through the F7 effect lab covering roughly half the item catalog — Egg, Cloud, Comet, Hole, Coffee, Coin, Helmet, Broom, Hourglass, Ice Cube — plus the two systems that came out of it: a general shard entity (polygon or sprite debris on the fake-z system) and a…

    a327exPublished

  76. Now we have a timeline of the OpenAI accidental attack against Hugging Face

    My comment on Now we have a timeline of the OpenAI accidental attack against Hugging Face — Hacker News.I think one of the most interesting details here might be tucked away in that first bulletin point: May 7: OpenAI starts a new training run for an experimental, unreleased model. (Do they mean an evaluation…

    Simon WillisonPublished

  77. Quoting John Gruber

    Me, I try to get into the mindset of playing live music, not recording a studio album. Except when I’m writing a piece where I really want it to be an album. Those aren’t rare, per se, but they’re occasional. If I tried to make every post a hall-of-famer I’d never get anything out. I’m aiming for professionalism…

    Simon WillisonPublished

  78. Poem: Of Protesilaos (inspired by Bertolt Brecht)

    Just read the poem. No further comment.

    Protesilaos StavrouPublished

  79. Now we have a timeline of the OpenAI accidental attack against Hugging Face

    OpenAI gave a last-minute presentation at the Black Hat security on Wednesday about "the Hugging Face Incident" (previously on this blog). The video was published yesterday. It's short and information dense and well worth watching, in particular because it provides full details of what happened and how…

    Simon WillisonPublished

  80. Moonlight & Mayhem (Raccoon Heist by Codex + GPT-5.6 Sol Ultra)

    Moonlight & Mayhem (Raccoon Heist by Codex + GPT-5.6 Sol Ultra) On Wednesday I wrote about One-shotting a Raccoon Heist game using Claude Fable 5, where I had Claude Fable 5 build a full working game from a premise I generated with GPT-3 and DALL-E four years ago. I decided to pose the exact same prompt…

    Simon WillisonPublished

  81. The Tokenpocalypse Is Here: Companies Are Scrambling To Stop Spending So Much on AI

    The Tokenpocalypse Is Here: Companies Are Scrambling To Stop Spending So Much on AI There's a fun anecdote from Accenture (apparently via leaked meeting audio recordings) in this 404 Media piece from June 24th: “We’re seeing from some of the data internally at least that it’s actually not our engineers…

    Simon WillisonPublished

  82. Nostalgia is a terrible drug

    Ian Dunt captures a predicament I often find myself facing:Things in the past only take shape and assume their current form once they are over. Things in the present can therefore never live up to them. They can never provide the same degree of certainty, because they are still happening. So we live…

    Paul Robert LloydPublished

  83. Very nice effects on this game

    Very nice effects on this game.

    a327exPublished

  84. Continuing the Steam AI score idea

    Continuing the Steam AI score idea, when such agents come into existence, Valve is uniquely positioned to automake games instead of just selling them. Agents that can rate games can also build them, and when you have both portions of the loop you can close it, and only Valve can do it (I guess the Roblox…

    a327exPublished

  85. I think I am binary with liking/disliking people

    Within 10 seconds of meeting an autistic person, strangers rate them as awkward and lose interest in getting to know them. Show those same strangers only a written transcript of what was said, with no audio or video, and the bias completely disappears. I think I am binary with liking/disliking people…

    a327exPublished

  86. Being a beautiful favelado mid is so fucking funny

    Being a beautiful favelado mid is so fucking funny. The other day I was on grindr and a guy named "tesao em feio" (horny for ugly dudes) messages me and says "oier 😍" (hiii), I'm laughing and laughing and then we talk a little and he says he's just doing this to mess with "padrão" guys, conventionally…

    a327exPublished

  87. Not All Screen Reader Users Are Blind [link]

    Good article that's backed with data, but this is the bit that really landed for me, a reminder that it's not all "what aria role is needed here...?" — I can confidently say that the best approach to making a web site accessible (to screen readers or not) is by using proper HTML. If done well, ARIA is…

    Remy SharpPublished

  88. Games: Halo: Reach

    About one of the games in 'Halo: The Master Chief Collection', plus philosophical commentary.

    Protesilaos StavrouPublished

  89. Interpretation of “The red river” by Eleonora Zouganeli

    Translation of---and philosophical commentary on---a Greek song whose translated title is 'The red river'.

    Protesilaos StavrouPublished

  90. Private Session 26

    Private Session 26 🔒 The contents of this AI log are private and have been uploaded to the website for archival purposes. They may or may not be revealed in the future.

    a327exPublished

  91. Tweet by @graveair

    a327exPublished

  92. datasette-auth-tokens 0.4a13

    Release: datasette-auth-tokens 0.4a13 Upgraded for compatibility with `sqlite-utils 4. Tags: datasette

    Simon WillisonPublished

  93. datasette 1.0a38

    Release: datasette 1.0a38 This release fixes a SQL injection security issue that affects Datasette instances that serve a mixture of public and private tables in the same database, with access configured using the Datasette permissions system. Site administrators who serve private tables in this way…

    Simon WillisonPublished

  94. datasette 0.65.3

    Release: datasette 0.65.3 Back-ported the SQL Injection security fix from 1.0a38. Tags: datasette

    Simon WillisonPublished

  95. Simon Willison on Technical Blogging

    Simon Willison on Technical Blogging I was interviewed by Cynthia Dunlop for her "Write that blog!" series back in January, but I just realized I never linked to the interview from my own blog! It includes my answers to the following questions: Why did you start blogging – and why do you continue? What…

    Simon WillisonPublished

  96. Canadian Man Pleads Guilty in Snowflake Extortions

    A 26-year-old Canadian man once described as one of the most consequential cybercrime threat actors of 2024 has pleaded guilty to computer fraud and conspiracy to hack and extort more than 165 organizations that used the cloud data storage provider Snowflake. Connor Riley Moucka, of Kitchener, Ontario…

    Brian KrebsPublished

  97. What predicts indie success, tested against all of Steam

    Written by Claude Fable 5 A data scientist named Ross published I Analysed 62,000 Indie Developers. Here's What Actually Predicts Success, and its message to indie developers is a hopeful one: most of your competitors quit, the odds improve dramatically with every game you ship, and by your fifth game…

    a327exPublished

  98. Steam Market Research 4

    Steam Market Research 4 Summary Session 4 of the Steam market research: fact-checked the YouTube video "I Analysed 62,000 Indie Developers. Here's What Actually Predicts Success" (Game Oracle/Ross, WueQ75GP1wc) against the steam-market corpus, had a blind second instance replicate the findings, ran nine…

    a327exPublished

  99. An AI model from Meta also hacked another company during testing

    An AI model from Meta also hacked another company during testing Stop me if you've heard this one before: An AI model from the parent company of Facebook and Instagram hacked into another company’s systems during cybersecurity testing, a spokesperson confirmed on Wednesday. Meta says the breach occurred…

    Simon WillisonPublished

  100. Zig's Io.Threaded is Neat

    std.Io.Threaded is one of the implementations of Zig's new Io interface that enables concurrency. This is a boring just use threads impl. I personally find it neat though --- it does this weird thing that I wanted to do for ages, that to my knowledge no one else is doing properly, and implements it better…

    Alex KladovPublished