dzsekijo | 5 years ago | on: Why I still Lisp
dzsekijo's comments
dzsekijo | 5 years ago | on: Telegram publishes users' locations online
dzsekijo | 5 years ago | on: Building a high performance JSON parser
dzsekijo | 5 years ago | on: Why is there a “V” in SIGSEGV Segmentation Fault?
dzsekijo | 5 years ago | on: Why is there a “V” in SIGSEGV Segmentation Fault?
Segmentation violation (core dumped)
when this thing fires?Actually "violation" sounds much clearer to me. It's telling me that the code I'm running does something that was not part of the contract. With "fault"... well, it's someone's fault... probably someone else's fault... who knows what happened... ¯\_(ツ)_/¯
I wouldn't be surprised if it was found out to sound smoother to managerial ears.
dzsekijo | 5 years ago | on: Deno Is a Browser for Code
Deno directly use standard URIs to import packages. Go imports syntactically appear as schemeless paths, which boils down to the semantics of importing URIs from an implicit private go:// scheme.
And that catches two fishes at once:
1) the go:// namespace is isomorphic to the https:// namespace, so the default resolution strategy is just to pipe through this isomorphism. This is convenient, makes sense right away and avoids the a priori need of a central registry.
2) Whenever it's needed, the resolution can be instructed to do some custom thing instead of casting to https://.
The exemplar instance of 2) is the usage of sibling packages. They wanted to make it possible to have several packages within a single module, whereby the module serves as a compilation unit. So when an import path is a subpath of the module path, then the package is looked up locally, relative from the root of the current module. There is no way you could get away with such a bending of a https:// URI. But go:// being a private scheme gives the freedom to proceed so.
(The go:// scheme is just my own literary device, but this semantics is explained clearly in simple terms at https://golang.org/doc/code.html.)
dzsekijo | 5 years ago | on: Deno Is a Browser for Code
Thus http://deno.land/x/ is the de facto central registry. I'm yet to see how it makes a difference whether the logic of resolving a package name to a concrete version of the package is baked into command line tooling or a web service.
dzsekijo | 5 years ago | on: The Great CoffeeScript to Typescript Migration of 2017
dzsekijo | 5 years ago | on: Weakening Cycles So That Turing Can Halt
Indeed.
> What would that decision algorithm be for this particular function (odd_perfect_number)?
Either of
() => True
or () => False
where '()' represents the empty input.> And what is its answer?
I'd be a Fields medal candidate if I knew ;)
dzsekijo | 5 years ago | on: Weakening Cycles So That Turing Can Halt
An instance of the halting problem asks, given (a partial recursive) function F, whether there is an decision algorithm A (aka. Boolean valued algorithm) on the universe of inputs U of F that calculates the domain of F (those inputs where F takes a value, ie. halts; ie, A(x) <=> F halts on x, where x in U).
For any finite subset S = {s_1, ..., s_n} of U, there is a trivial decision algorithm on U that calculates S:
def A_S(x):
for s in (s_1, ..., s_n):
if x == s:
return True
return False
Therefore if the domain D of F is finite, the answer to the halting problem of F is trivially yes: A_D is a decision algorithm for F. (This has noting to do with the question whether we know D or not!)If U is finite, then D is finite, so the answer to the halting problem of F is trivially yes.
If F is a thunk (nullary function), then U is finite, ie. the singleton set of "no input", so the answer to the halting problem of F is trivially yes.
odd_perfect_number is a thunk.
dzsekijo | 5 years ago | on: Emacs Org Files in a Browser
Some nit regarding the user experience:
- Sorry, but I just can't wrap my mind around your choice too emulate a handheld device's screen layout on desktop. It actually makes me feel like running some mobile app in a cranky emulator! I also checked org-web on desktop, I think their layout is much more handy (sorry for the bad pun).
- It's really annoying to not properly prepare users to get started for using the tool for production. OK, there is the landing page. Quickly that gets me to the sample doc, which is nice, extensive and useful. So far so good, appetite is whetted. Now let's get to do some real stuff, let's start a document! ... ehm, no way to do that. Maybe login is necessary for that? At which point I start to scratch my head -- given that the tool is touted as client-only software, why do I need to log in anywhere to create something? Anyway, getting beyond that... OK logged in. It drops me to a file browser... but still no "Create" or "New doc" button. Slowly it dawns on me that the org files need to pre-exist on backing storage to be able start work on them. The level of frustration is pretty high at that moment, the only reason to not run away right away because it addresses something I am interested in. So while I think it would be part of a full feature set to allow to create docs, its lack wouldn't be a big issue if users were properly guided through the setup the workflow, which involves uploading their initial org files to the storage.
By the way, why do users have to configure a storage backend and can't just import/export org files? I see stuff like https://github.com/qbit/gavin is being worked on, but it feels a bit upsidedowny to me... if there is demand to use this tool without cloud hosting, wouldn't it be simpler just to add import/export facilities than the ancillaries of pretending to have a host? (Does it maybe have something to do with Apple's recent decision to kill local storage?...)
Other things that would be nice to have:
- When focusing in a subtree, would be nice to have a place somewhere that indicates the absolute path (sidenote, I also wonder if such a setting is available in Emacs...)
- I read https://200ok.ch/posts/2020-02-09_creating_org_mode_sparse_t... and I appreciate the work on the internal search engine, but the UI provided does not match sparse tree. It's just an ephemeral pop-up, not a filtered live view of the content.
dzsekijo | 6 years ago | on: Ask HN: Is RSS dead?
Which is often useful but mostly I'd like to be the one who decides about the sources to check out. Then I turn to a feed reader. I would be driven insane if this technology were not at hand, aggregating a plethora of resources into a single comprehensive UI. I use the excellent Bazqux Reader for this (which in my opinion continues the legacy of Google Reader in the best way).
dzsekijo | 6 years ago | on: Dogelang – A Python with Haskell Syntax
dzsekijo | 6 years ago | on: OpenBSD won't update Firefox, advises users to switch to ESR
dzsekijo | 6 years ago | on: Why I Prefer Functional Programming
dzsekijo | 6 years ago | on: DSVPN – VPN using TCP at port 80 and 443
dzsekijo | 7 years ago | on: Why Telegram is insecure (2015)
Telethon (https://github.com/LonamiWebs/Telethon) is a decent up to date (with MTProto) independent clean-room client implementation in the form of a Python lib.
You might consider trying to take care about it.
dzsekijo | 9 years ago | on: Uber to suspend operations in Hungary due to govt legislation
The taxi drivers who remained in business were in for the trade-off of investing into compliance with new regulation but making more money than before. So old school taxi was not simply lingering in its naturally backward state as in other countries, but there was an artificially fortified status quo.
In that situation, when value personal transfer reappeared with Uber, it was therefore even more sore for the taxi companies and drivers, who took their position and the protection of their investment granted by the state. So what happened is nothing else just the taxi maffia enforced this grant and the state complied. Both sticking to decisions that once made (no regard of consequences), and heavy state control is quite to the taste of the government -- thus they complied happily.
And once the government puts its weight into something, there is no question it's gonna happen. The only surprise element is that Uber resisted so far.
dzsekijo | 10 years ago | on: FOQ – Frequently Obnoxious Questions When Doing an Open Source Project
dzsekijo | 10 years ago | on: Apricity beautiful Linux distro based on Arch
Or, the more general question -- how Pacman packages and Apricity apps relate to each other? The answer seems to be not straightforward, as if Apricity apps were just sugaring for a subset of the Pacman pkg set, then Chromium would be packaged (given Arch ships Chromium, not Chrome).
Indeed, can you write a program for CLISP that works like this:
- takes one command line argument (a file name)
- reads in the given file, interprets it as Common Lisp code, expecting it to deliver a definition for the add2 macro
- then runs