Scott Logic Blog

blog.scottlogic.com · Company blog · on HN since 2015

Scott Logic is a software consultancy whose engineers write about WebAssembly, web development, data visualization, and LLM tooling.

What HN saysCommenters link its LangChain-in-100-lines post, which one author says worked well in many projects, plus its D3 rendering and Comic Sans Higgs posts.
83HN people shared it
26linked it in comments
145stories submitted
2.2Kstory points
3 months agolast shared
2015people per year2026

Most-shared posts

  1. 1
    Writing WebAssembly by Hand
    6 people · 11 points · first shared 2018 · discussion on HN
  2. 2
    Build your own WebAssembly Compiler
    5 people · 38 points · first shared 2019 · discussion on HN
  3. 3
  4. 4
    Exploring 120 years of timezones (2021)
    4 people · 163 points · first shared 2021 · 33 comments on HN
  5. 5
    The State of WebAssembly 2023 Results
    4 people · 7 points · first shared 2023 · discussion on HN
  6. 6
    Re-implementing LangChain in 100 lines of code
    4 people · 5 points · first shared 2023 · discussion on HN
  7. 7
  8. 8
    Building a WebAssembly-powered serverless platform
    3 people · 9 points · first shared 2022 · discussion on HN
  9. 9
    LLMs vs. Advent of Code, AI is winning
    3 people · 7 points · first shared 2024 · discussion on HN
  10. 10
    As It Stands – Electron Security (2016)
    3 people · 3 points · first shared 2016 · discussion on HN
  11. 11
    Down the ergonomic keyboard rabbit hole
    2 people · 260 points · first shared 2020 · 184 comments on HN
  12. 12
    Writing a CHIP-8 Emulator with Rust and WebAssembly
    2 people · 230 points · first shared 2017 · 13 comments on HN
  13. 13
  14. 14
  15. 15
    The State of WebAssembly 2022
    2 people · 148 points · first shared 2022 · 78 comments on HN

What HN people wrote when they linked it

afarah1 · 2026-01-08
Reminds me of this 2023 post "re-implementing LangChain in 100 lines of code": https://blog.scottlogic.com/2023/05/04/langchain-mini.html We did just that back then and it worked great, we used it in many projects after that.
ColinEberhardt · 2025-05-17
Great post, thanks for sharing. I wrote something similar a couple of years ago, showing just how simple it is to work with LLMs directly rather than through LangChain, adding tool use etc … https://blog.scottlogic.com/2023/05/04/langchain-mini.html It is of course quite out of date now as LLMs have native tool use APIs. However, it proves a similar point to yours, in most applications 99% of the power is within the LLM. The rest is often just simple plumbing.
cactusfrog · 2024-09-22
I’m working in biotech. I think creating “curated” materialized views with dbt + datawarehouse or duck db + using webgl with d3 will be best long term solution https://blog.scottlogic.com/2020/05/01/rendering-one-million-points-wi… . Matplotlib works well for static plots. Altair and others freeze at around 4000 data points, which is crazy. Streamlit + matplotlib is impossible to maintain but is quick to get up and running.
StevenWaterman · 2020-03-10
Having used Svelte for a couple of projects [1][2], I love it. Compared to my day job working in react/redux, it is much simpler, and feels like it has far less boilerplate. There are certainly a few rough edges, but it's all related to the immaturity of the language. Specifically, I had a hard time understanding transitions and it wasn't at all obvious how to integrate it with D3. Hopefully as it grows we will see improved docs and examples. Also, I'm holding out for more mainstream TypeScript support. At that point, it would be hard to convince me to use anything else. [1] http://musetree.stevenwaterman.uk [2] http://optimisation.stevenwaterman.uk + https://blog.scottlogic.com/2020/02/17/minesweeper-optimisation.html
Gualdrapo · 2025-12-10
Just remember that when the CERN announced they finally could prove the existence of the Higgs boson, they did it using Comic Sans https://blog.scottlogic.com/2012/07/05/the-higgs-boson-comic-sans-and-…
PaulHoule · 2025-06-18
Currently Java supports records (finalized in JDK 16) and sealed classes (JDK 17) which together work as algebraic data types; pattern matching in switch was finalized in JDK 21. The syntax is pretty sweet https://blog.scottlogic.com/2025/01/20/algebraic-data-types-with-java.…
opyate · 2023-05-08
This recently via DataMachina substack: https://blog.scottlogic.com/2023/05/04/langchain-mini.html
EwanToo · 2023-04-13
Lots of people write complex, latency dependent code. Previously they would write in something like C/C++ or use the JVM but try to avoid all garbage collection events though very carefully avoiding allocations, etc. For them, Rust is a gift! https://blog.scottlogic.com/2021/12/01/disruptor.html
notpushkin · 2022-11-12
SVG is a really underrated medium. The only thing I miss compared to HTML is flexboxes (but there's always stuff like react-flexbox-svg [1]). [1]: https://github.com/metabolize/react-flexbox-svg Edit: for a React-less implementation, see https://blog.scottlogic.com/2015/02/02/svg-layout-flexbox.html
berkes · 2022-10-27
> You need to compile and distribute a runtime or, in the case of dynamic languages, But for all other languages there are easy compilers. Which is why WASM, apparently, is used with such languages mostly[1] I'd expect that these runtimes can be both distributed with browsers when they become really popular, and can be reduced in size. E.g. Python's runtime is relatively large and ships with a large stdlib. Most of which won't be needed in your code, so I'd expect it to be possible to compile a runtime that only includes what your code really needs, for example. [1] https://blog.scottlogic.com/2022/06/20/state-of-wasm-2022.html
tyingq · 2021-08-21
There's an example of that here: https://blog.scottlogic.com/2020/11/23/ffmpeg-webassembly.html <ctrl-f>Creating a Streaming Transcoder
trusktr · 2021-07-25
I think you're mistaken there: AssemblyScript is much newer, it's momentum is only just getting started. AssemblyScript is one of the top three most desired languages for WebAssembly now: https://blog.scottlogic.com/2021/06/21/state-of-wasm.html In the past year it has gained numerous libraries and bindings, including from Surma from Google. Stay tuned...
aaronharnly · 2020-12-24
Don’t forget: the CERN presentation announcing the discovery of the Higgs Boson: https://blog.scottlogic.com/2012/07/05/the-higgs-boson-comic-sans-and-…
brabel · 2020-04-22
WASM's text format looks like Lisp (it's s-expr based) and it is basically a stack-machine[1] [1] https://blog.scottlogic.com/2018/04/26/webassembly-by-hand.html
thomasballinger · 2019-12-27
Here's Colin's blog post with code and diagrams inline: https://blog.scottlogic.com/2019/05/17/webassembly-compiler.html I found Colin's posts real helpful when writing some WebAssembly by hand for the first few days of Advent of Code: https://observablehq.com/collection/@ballingt/advent-of-wasm
ArtWomb · 2018-08-17
Good analysis as always from Project Zero team. Multithreading and SharedArrayBuffers will be very interesting moving forward. Future of WebAssembly https://blog.scottlogic.com/2018/07/20/wasm-future.html
Invictus0 · 2018-01-21
The key phrase here is "as apps go". I have never paid $25 for an app, and neither have most people. This pie chart sucks but it seems to imply that < 5% of apps are $19 or more: http://blog.scottlogic.com/2014/03/20/app-store-analysis.html
pacomerh · 2016-10-02
Yes, I thought this would be interesting too, check this out: http://blog.scottlogic.com/2015/11/18/d3-ascii.html
biokoda · 2016-07-04
Running a large list of dependencies controlled by someone else. Stores data on disk unencrypted. Stores code that gets executed, on disk in text form unencrypted and unsigned. Executes code while running directly from a website (github). All in all an order of magnitude less security then a native app to put it mildly. http://blog.scottlogic.com/2016/03/09/As-It-Stands-Electron-Security.h…
vmorgulis · 2015-06-18
CSS layout properties apply to SVG. It is possible to manage the flow of the text (http://blog.scottlogic.com/2015/02/02/svg-layout-flexbox.html).
airbreather · 2024-07-15
I am a tool creator (serious tools count of one) that created a tool out of genuine personal need, in reference to the note linked from " serious contexts of use". In my case it is in context to the state machine portion of the blog. The link to Leslie Lamport and TLA+ is informative and the initial point of my tool making was to end up with an executable specification of a state machine that could be translated to TLA+ to allow validation by formal methods. For functional safety (IEC 61508 and subsidiary standards) this is the Holy Grail for a significant number of applications. Think things like Rail Signaling, Burner Management Systems, Aircraft Landing Gear Hydraulic Sequencing, complex machinery automation and interlocking, to name a very few examples. It can also extend to Cyber Security and transactional systems like banking etc. In my tool I haven't quite got to automatic translation to TLA+, yet, and maybe I personally won't, because as discussed in the blog and some of it's links, the interface itself prompts a certain level of thinking that is highly beneficial. So I have done everything but an automatic translation to TLA+, but I can see no reason it is not possible, I already automatically translate the specification into controller code. But the key point arising from the definition of state based behavior, which is what TLA+ is all about, is that implicit state is the enemy. And if all states and transitions are not defined explicitly, then the door is…
zamadatix · 2020-02-04
Going with the good faith assumption you read it trying to find why instead of why not in the WebUSB standard you can find this paragraph under 3.1 Abusing Access to a Device: "Lastly, since USB devices are unable to distinguish requests from multiple sources, operating systems only allow a USB interface to have a single owning user-space or kernel-space driver. The UA acts as a user-space driver, therefore allowing only a single execution context to claim a USB interface at a time. The claimInterface() function will fail if multiple execution contexts attempt to claim an interface." I.e. the keyboard couldn't be claimed even if you managed to get it to list as it's claimed via the OS HID driver so can't be claimed via the userspace driver. HID devices are also hid from the listing (no pun intendend) which is what resulted in the WebHID standard in the first place. For WebHID understand it's an early draft and that the method described in section 3.1 of blocking access to HID devices that can generate trusted input is actually the go forward implementation plan not merely a suggestion. . I don't mind discussing WebUSB further but not if the conversation is just going to be in a "I thought it might work this way, show me the line that says it isn't" way. There are many blog posts that cover it better than I could anyways (such as https://blog.scottlogic.com/2019/04/03/upcoming-webhid-api.html)

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close