Xah Programing Blog Archive 2026-01

xtodo

updates

xtodo
xtodo
stackoverflow lawsuit ai 2026-04-15 205a7
stackoverflow lawsuit ai 2026-04-15 205a7

it's a bloodbath.

xtodo
Microsoft Windows long path problem 2026-04-16
Microsoft Windows long path problem 2026-04-16
xtodo
xtodo

how to determine if i have long path feature enabled on windows11

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" | Select-Object LongPathsEnabled
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -Type DWord
xtodo
xtodo
xtodo

you can't do math in livestream, because every second, you have many thoughts, each second of thought that flashes thru your mind, takes a minute or more to actually explain.

in livestream, you can only do math that you already know, or solve problems you already family with.

similarly is coding math.

xtodo
python doc json 2026-03-24 258dc
python doc json 2026-03-24 258dc

here's a quick take why the python json module doc is extremely idiotic. https://docs.python.org/3/library/json.html

First paragraph with many links to RFC and ECMA-404 is unnecessary. Move reference links to bottom.

Warning box about reading untrust json is unnecessary, move it bottom.

Third paragraph about “json exposes and marshal and pickle”, is unnecessary. move to bottom.

People check the python json doc, 99% they want to use it. not listen to your pet peeves and steril warnings. fuck python and fuck guido fuckhead. (my opinion only)

4th paragraph says: “encoding basic python object hierachies”, is completly motherfucking stilted and pretentious writing. example better is: “basic example of converting python object to json”.

the example, using python interactive command line, is extremely idiotic. hard to read. most coders viewing doc wanna see real code, not interactive prompt. plus they can copy and paste.

etc.

xtodo
ECMA-404 2026-03-24 25826
ECMA-404 2026-03-24 25826
xtodo
grok ai python json 2026-03-24 12648
grok ai python json 2026-03-24 12648
xtodo
xtodo
xtodo
xtodo

YouTube ai answers.

What topics are my viewers watching and talking about?

Based on recent viewer engagement and comments on your channel, Xah Lee, your audience is deeply invested in niche programming paradigms, high-end ergonomic hardware, and your unique, often provocative, takes on tech philosophy.

Here’s a breakdown of what they are watching and talking about:

xtodo

considering remove all official logos on my programing language tutorial pages. reason is, basically, it's copyrighted and must use with consideration. but also, it's common, jaded. if i use a custom artwork, it more stand out, but less recognizable.



xtodo
xtodo
tangent Wolfram 2026-03-05 2aef0
tangent Wolfram 2026-03-05 2aef0
(* example curve: astroid *)
x[t_] := Cos[t]^3
y[t_] := Sin[t]^3

(* point of interest *)
t0 = π/4;

(* position at t0 *)
pt = {x[t0], y[t0]};

(* tangent vector = derivative *)
tangentVec = {x'[t], y'[t]} /. t -> t0 // Simplify;

(* parametric equations of tangent line: point + s * direction *)
tangentLine[s_] := pt + s tangentVec;

(* combine plots *)
Show[
  ParametricPlot[{x[t], y[t]}, {t, 0, 2 π},
    PlotStyle -> Thick,
    PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}},
    AxesLabel -> {"x", "y"},
    PlotLabel -> "Curve + tangent at t = π/4"
  ],

  ParametricPlot[tangentLine[s], {s, -2, 2},
    PlotStyle -> {Red, Thick}
  ],

  Graphics[{Blue, PointSize[0.02], Point[pt]}]
]
xtodo
xtodo
Wolfram language syntax 2026-03-03 34a5a
Wolfram language syntax 2026-03-03 34a5a
{
Sqrt @ x,
x // Cos,
x |-> x+1,
Function[x, 1/x],
Function[1/#],
((1/#) &)
}

(*

Wolfram language doesn't like prefix form f@x or the postfix form x//f.
they get converted to brackets f[x].

the full named function form
Function[x, expr]
remain as is.

but if it involves # as in
Function[#+1]
it get converted to the short form
#+1 &

short form of function (#+1 &) remain as is, but with redundant paren removed.

the function form
x |-> expr
gets converted to Function[x, expr] form.
unless in traditional form they are shown as
x ↦ expr

*)
xtodo
internet tech history 2026-03-02 2e988
internet tech history 2026-03-02 2e988

Here is a chronological list of major communication technologies and platforms in internet/online history, focusing on those that enabled people to communicate, discuss, share, or socialize digitally (roughly from pre-web to modern eras).

I've included approximate introduction years and brief notes on their role/impact.

  • Email (1971) → Ray Tomlinson sent the first network email on ARPANET → Became (and remains) the foundational asynchronous one-to-one / one-to-many communication tool.
  • Mailing lists / Listservs (late 1970s–1980s) → Early automated email-based discussion groups (e.g. Listserv software in 1986 popularized them) → Group communication via broadcast emails, precursor to modern newsletters & discussion lists.
  • Bulletin Board Systems (BBS) (late 1970s–1980s, peak ~1980s) → Dial-up systems (e.g. first in 1978) for message boards, file sharing, and local communities → Early "forums" before widespread internet access.
  • Usenet / Newsgroups (1979–1980) → Decentralized discussion system with threaded newsgroups → One of the first global, many-to-many public discussion platforms (ancestor of web forums & Reddit-style threaded convos).
  • Internet Relay Chat (IRC) (1988) → Real-time text chat in channels → The original instant messaging / group chat protocol, still used today.
  • Early commercial online services (e.g. CompuServe CB Simulator 1980, AOL chat rooms ~1990s) → Proprietary real-time chat and forums → Brought chat & community to mainstream non-academic users.
  • World Wide Web + personal/homepages (1991–1993) → Tim Berners-Lee's WWW → Enabled hyperlinked pages; early static sites often included guestbooks or simple contact forms.
  • Web forums / Message boards (mid-1990s) → WWW-based threaded discussion boards (e.g. early software like WWW Interactive Talk ~1994, then phpBB, vBulletin ~1998–2000) → Replaced Usenet/BBS for most topic-based communities.
  • BBCode (late 1990s) → Simple markup language for formatting posts in forums (introduced ~1998 in phpBB) → Made rich text (bold, quotes, images) easy in web forums without HTML knowledge.
  • Instant Messaging (consumer level) (1996–1997) → ICQ (1996), AOL Instant Messenger (AIM, 1997), MSN Messenger (~1999), Yahoo! Messenger → One-to-one & small group real-time private chat, exploded in late 90s/early 2000s.
  • Weblogs / Blogs (1997–1999) → Term "weblog" coined 1997, Blogger (1999) & Movable Type → Personal publishing + comment sections → Turned readers into participants.
  • Wiki / collaborative editing (1995 first wiki by Ward Cunningham, but Wikipedia 2001) → Editable web pages by anyone → Radical shift to collective knowledge building & discussion via talk pages.
  • Website forums (large-scale) (late 1990s–2000s) → Specialized community sites (e.g. Slashdot 1997, Something Awful, early Reddit-like) → Deep topic-specific discussions.
  • Social network sites / Social media (1997–2000s) → SixDegrees.com (1997) → Friendster (2002) → MySpace (2003) → Facebook (2004) → Twitter/X (2006) → Instagram (2010) etc. → Shift to identity-centered, feed-based, multimedia, real-time social interaction.
  • Modern group chat / messengers (2010s–) → WhatsApp (2009), Discord (2015), Telegram, Slack → Blended real-time chat, voice, communities, file sharing.

This sequence shows the evolution: from one-to-one email → group async (mailing lists, Usenet) → local dial-up communities (BBS) → global real-time text (IRC) → web-based persistent discussions (forums) → personal broadcasting with comments (blogs/wikis) → identity-driven social graphs (social networks) → always-on multimedia group chat.

Many overlapped and co-existed for years (e.g. email + Usenet + IRC in the 1990s, forums + early social media in 2000s). Let me know if you'd like deeper detail on any period or tool!

xtodo

fuck Microsoft Windows

windows settings slow 2026-03-02 22da1
windows settings slow 2026-03-02 22da1
xtodo
xtodo
xtodo
snake case vs camelCase 2026-02-23 349d9
snake case vs camelCase 2026-02-23 349d9

On the Argument of CamelCase vs Snake_Case with Respect to Compactness.

  • a bit complicated.
  • first, on the argument of ease of typing the character.
  • how easy to type should have no influence, for some purity consideration, because how easy to type a keyword letter layout and input system issues, which, we also stuck with shit qwerty, but we can also redesign.
  • but on the other hand, for practical consideration, how easy to type a char has huge influence. it is why in part hyphen became more popular than lowline _.
  • overall, whether it should be considered, i think is undecided.
  • it depends on whether you are thinking we stay with qwerty and traditional ibm pc form keyboard, or, you think for what's best in future, e.g. today's lots ergo batman keyboards with thumb keys.
  • about camelCase is more compact, right.
  • i think that's a point.
  • because often, the meaning of var name is not very significant, we just care for some short unique symbol.
  • For example, the i in for-loop, or the x in lambda.
  • or, some longer name that's used only twice, but very difficult to come up with describe terms what the variable is really logically represents.
  • so, camelCase being short and compact, i think is an argument for it, instead of snake_case. because snake_case_names forces you to intreprete a meaning in the variable name.
  • but, overall, if we consider English language or most western alphabetic languages, that capital letters is a historical happenstance and annoying rather not useful and is super confusing, then, we might do away with the argumentfor camelCase.
xtodo
xtodo
xtodo
xtodo

2022-08-13 removed google ads on xahlee.info

<script data-ad-client="ca-pub-5125343095650532" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
xtodo
xtodo
xtodo
xtodo
xtodo
xtodo

the hackability of a lang is not the same as bad mistakes.

js is the worst lang by a magnitude, because:

xtodo
xtodo

Abstract: We demonstrate how to model the following common programming constructs in terms of an applicative order language similar to LISP:

LAMBDA THE ULTIMATE IMPERATIVE Steele Sussman WnX5x
LAMBDA THE ULTIMATE IMPERATIVE Steele Sussman WnX5x

xtodo

All these names suck. hash table, associative array, map, dictionary.

hash table → sucks because it's incomprehensible, and hash refers to an implementation, not what the thing is.

associative array → is idiotic. because it confuses with math concept of associative. Also, associative here means associating a value with a key, which is idiotic perspective. You might as well call it relational array because it creates a relation of values with keys. Best, is call it keyed array, key indexed array.

map → is not very good, because it confuses with the function “map”, and also the commonly english meaning of map, like street map. (the map in street map, derives from projection in math, which is what math map means, which also just means a function.) we might fix it by calling it “map data structure”, but still, not good, because here the map is confusive with verb, again, just like the function named map.

Dictionary → this is much better, as it is analogous to dictionary. Basically, you lookup an entry, for its value. The bad part is confusion with the actual dictionary as in, Webster English dictionary.

keyed list, keyed collection → i think this is the best. because it is descriptive of exactly what it is.

xtodo
xtodo
xtodo
xtodo

Hackernews on Xah Lee. 2022

hacker news on xah lee 2022-04-10 14c42
hacker news on xah lee 2022-04-10 14c42