HackerTrans
热门最新趋势评论往期问答秀出招聘

dbaupp

no profile record

提交

A tale of two path separators

alexwlchan.net
66 分·作者 dbaupp·26天前·37 评论

Open Electricity Dispatch – May 2026

openelectricity.org.au
1 分·作者 dbaupp·29天前·0 评论

Scaling Sameness

gradientinstitute.org
1 分·作者 dbaupp·3个月前·0 评论

Gell-Mann AImnesia

huonw.github.io
1 分·作者 dbaupp·3个月前·1 评论

Write broken commits for better review

huonw.github.io
2 分·作者 dbaupp·3个月前·2 评论

Great Docs: Beautiful Documentation for Python Packages

opensource.posit.co
1 分·作者 dbaupp·3个月前·0 评论

Why don't multi-column indices help queries on the second column?

huonw.github.io
2 分·作者 dbaupp·4个月前·0 评论

Staying engaged with AI plans: give inline feedback

huonw.github.io
1 分·作者 dbaupp·5个月前·0 评论

Staying engaged with AI plans: give inline feedback

huonw.github.io
1 分·作者 dbaupp·5个月前·0 评论

Exact significance tests for 2 × 2 tables

janhove.github.io
1 分·作者 dbaupp·6个月前·0 评论

Screen Reader HTML Support – Lookup

tetralogical.github.io
3 分·作者 dbaupp·7个月前·0 评论

Recursive Project Search in Emacs

lukeplant.me.uk
36 分·作者 dbaupp·7个月前·0 评论

Magit-insert-worktrees improves status buffers

huonw.github.io
5 分·作者 dbaupp·7个月前·0 评论

Context privateering: debugging custom instructions like a pirate

huonw.github.io
3 分·作者 dbaupp·8个月前·0 评论

Git Rev News

git.github.io
1 分·作者 dbaupp·8个月前·0 评论

Bracket City Builder

builder.bracket.city
4 分·作者 dbaupp·9个月前·0 评论

Is that a deprecation? Or is it just removed?

huonw.github.io
1 分·作者 dbaupp·10个月前·1 评论

评论

dbaupp
·10个月前·讨论
UTF-8 encodes each character into a whole number of bytes (8, 16, 24, or 32 bits), and the 10 continuation marker is only at the start of the extra continuation bytes, it is just data when that pattern occurs within a byte.

You are correct that it never occurs at the start of a byte that isn’t a continuation bytes: the first byte in each encoded code point starts with either 0 (ASCII code points) or 11 (non-ASCII).
dbaupp
·11年前·讨论
> Swift is not garbage collected in the slightest. ARC is not garbage collection.

Reference counting and tracing garbage collections are two ends of the spectrum of ways to handle dynamic allocation graphs (aka "garbage collection").

http://www.cs.virginia.edu/~cs415/reading/bacon-garbage.pdf

> In any case, I don't see what garbage collection has to do with safety or the borrow checker.

The borrow checker is what allows Rust to be safe and performant without garbage collection. It's literally the feature that gives Rust that power.

> I think "you just promise the compiler that it's safe" is an accurate summary of that feature.

A lot of programming (not just in Rust) is like this: the programmer promises that the library interface they expose does what they say it does, promise that any use of ctypes (in Python, for instance) won't corrupt the interpreter state, etc.

This isn't much different. The standard library will follow those that guidelines (i.e. something in the standard library implements Sync if and only if it satisfies that definition) and we expect library/application authors to do the same. The rule is to provide the programmer with assistance, it's not just to be annoying. It's your own fault if you shoot your own foot off by disobeying it (hence throwing away the assistance the compiler can provide you).

In any case, Rust has the `unsafe` keyword, a structured mechanism for making promises to the compiler, allowing one to easily see the possible locations that could cause memory corruption/unsafety. Overriding the compilers judgement that a type isn't thread-safe is no different: it requires `unsafe`.

> the higher-cost fruit like multithread safety I don't want. I think those features are Bad (TM).

FWIW, I think the multithreading safety is the really interesting and awesome part of Rust. Pretty much no other industry language attempts to tackle the problem of writing safe, low-level, high-performance, highly-parallel/highly-concurrent programs. Rust's system for this is quite general and flexible.
dbaupp
·12年前·讨论
Any estimates for how much income that would provide?
dbaupp
·14年前·讨论
It is possible to do some interframe compression with gifs[1], so one can potentially reduce the data sent significantly, especially if one is typing or not changing the whole screen. (And gifs aren't "just" bitmaps, they have some compression[2].)

[1]: "Some economy of data is possible where a frame need only rewrite a portion of the pixels of the display, because the Image Descriptor can define a smaller rectangle to be rescanned instead of the whole image." https://en.wikipedia.org/wiki/Graphics_Interchange_Format#An...

[2]: https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Wel...