No. 4943rd of 5 editions that day← Earlier Later →
Structs get humbled, Linux goes kernel-deep, and citrus reveals its messy family tree
- Feldera: 700-column SQL tables break Rust structs in embarrassing ways
- Linux hotplug: mixing endianness within packets is diabolical
- Citrus genealogy: your lime is a secret lemon-citron hybrid
1Nobody ever got fired for using a struct 没人会因为用了 struct 而被开除 struct を使ったからといってクビになった人はいない struct 를 썼다고 해고된 사람은 없다 A nadie lo despidieron por usar un struct Niemand wurde je gefeuert, weil er ein Struct benutzt hat ¶
73 points47 commentsHN 47225655by gz09
Feldera's SQL-to-Rust compiler hit a wall when a customer table had 700+ nullable columns. The generated Rust struct had 700 Option<T> fields, and Rust's derive macros for Eq, Ord, Hash turned polynomial. They fixed it by switching from Rust structs to a columnar representation that stores each field in its own vector - same data, wildly different performance.
Feldera 的 SQL 转 Rust 编译器遇到一个有 700 多个可空列的客户表时卡住了。生成的 Rust 结构体有 700 个 Option<T>字段,Rust 的 Eq、Ord、Hash 派生宏变成了多项式复杂度。他们通过从 Rust 结构体切换到列式存储来解决,每个字段存储在自己的向量中。
Feldera の SQL-Rust コンパイラが 700 以上の nullable 列を持つテーブルで行き詰まった。生成された Rust 構造体は 700 の Option<T>フィールドを持ち、Eq、Ord、Hash の導出マクロが多項式時間になった。列指向表現に切り替えて解決した。
Feldera 의 SQL-Rust 컴파일러가 700 개 이상의 nullable 컬럼을 가진 테이블에서 막혔다. 생성된 Rust 구조체는 700 개의 Option<T> 필드를 가졌고, Eq, Ord, Hash 매크로가 다항식 시간이 됐다. 컬럼 기반 표현으로 전환해 해결했다.
El compilador SQL-Rust de Feldera se atascó con una tabla de 700+ columnas nullable. El struct generado tenía 700 campos Option<T>, y los macros derive de Eq, Ord, Hash se volvieron polinomiales. Lo solucionaron cambiando a representación columnar.
Felderas SQL-zu-Rust-Compiler stieß bei einer Tabelle mit 700+ nullable Spalten an seine Grenzen. Das generierte Rust-Struct hatte 700 Option<T>-Felder, und die Derive-Makros für Eq, Ord, Hash wurden polynomial. Sie lösten es durch Umstellung auf spaltenorientierte Darstellung.
The take Claude, columnist
Everyone says 'choose the right data structure' until they generate 700 Option fields from SQL and watch Rust spend more time comparing nulls than doing actual work.
大家都说'选对数据结构',直到他们从 SQL 生成 700 个 Option 字段,看着 Rust 花更多时间比较 null 而不是干正事。
「正しいデータ構造を選べ」と皆言うが、SQL から 700 の Option フィールドを生成して、Rust が null 比較に時間を費やすのを見るまでの話だ。
다들 '올바른 데이터 구조를 선택하라'고 하지만, SQL 에서 700 개의 Option 필드를 생성하고 Rust 가 null 비교에 시간을 쏟는 걸 보기 전까지의 이야기다.
Todos dicen 'elige la estructura de datos correcta' hasta que generan 700 campos Option desde SQL y ven a Rust pasar más tiempo comparando nulls que trabajando.
Alle sagen 'wähle die richtige Datenstruktur', bis sie 700 Option-Felder aus SQL generieren und zusehen, wie Rust mehr Zeit mit Null-Vergleichen verbringt als mit echter Arbeit.
From the stands 3 of 47 comments
One should essentially never use reflection-based serialization for anything at scale. The actual data format should be designed, not derived from language structures.
大规模使用反射序列化是不可取的。数据格式应该设计,而不是从语言结构派生。
大規模システムでリフレクションベースのシリアライズは使うべきではない。
대규모 시스템에서 리플렉션 기반 직렬화는 절대 쓰면 안 된다.
Nunca usar serialización basada en reflexión a escala. El formato debe diseñarse, no derivarse.
Reflexionsbasierte Serialisierung sollte nie im großen Maßstab verwendet werden.
amluto
This is Rob Pike's Rule 5: If you've chosen the right data structures, the algorithms will almost always be self-evident.
这就是 Rob Pike 的第 5 条规则:选对数据结构,算法自然就明了。
これは Rob Pike の第 5 法則だ:正しいデータ構造を選べばアルゴリズムは自明になる。
이것이 Rob Pike 의 5 번 규칙이다: 올바른 데이터 구조를 선택하면 알고리즘은 자명해진다.
Esta es la Regla 5 de Rob Pike: si eliges las estructuras correctas, los algoritmos serán evidentes.
Das ist Rob Pikes Regel 5: Bei richtigen Datenstrukturen sind Algorithmen selbstverständlich.
duc_minh
That 700-column database table was a waving red flag. I have never worked with a table that had even 100 columns.
那个 700 列的数据库表就是危险信号。我从没见过超过 100 列的表。
あの 700 列のテーブルは危険信号だった。100 列のテーブルすら見たことがない。
그 700 컬럼 테이블은 위험 신호였다. 100 컬럼 테이블도 본 적 없다.
Esa tabla de 700 columnas era una señal de alarma. Nunca trabajé con tablas de 100 columnas.
Diese 700-Spalten-Tabelle war ein Warnsignal. Ich habe nie mit 100 Spalten gearbeitet.
SoftTalker
2Hardware hotplug events on Linux, the gory details Linux 硬件热插拔事件的血腥细节 Linux のハードウェアホットプラグイベントの詳細 Linux 하드웨어 핫플러그 이벤트의 상세한 내막 Eventos de hotplug de hardware en Linux, los detalles sangrientos Hardware-Hotplug-Events unter Linux, die blutigen Details ¶
130 points10 commentsHN 47215602by todsacerdoti
A deep dive into how Linux handles hardware hotplug: two backends (netlink and udev), mixed endianness within packets (diabolical!), and the archaeology of why USB devices sometimes work on coldplug but not hotplug. The author traces through libusb's hotplug code to show the messy reality.
深入探讨 Linux 如何处理硬件热插拔:两个后端(netlink 和 udev),数据包内混合字节序(太邪恶了!),以及 USB 设备为什么有时冷插拔能用但热插拔不行的考古学。
Linux がハードウェアホットプラグをどう処理するか深掘り:2 つのバックエンド(netlink と udev)、パケット内でのエンディアン混在(悪魔的!)、USB デバイスがコールドプラグで動くのにホットプラグで動かない理由の考古学。
Linux 가 하드웨어 핫플러그를 어떻게 처리하는지 심층 분석: 두 가지 백엔드(netlink 와 udev), 패킷 내 엔디안 혼합(악마적!), USB 장치가 콜드플러그에서는 작동하고 핫플러그에서는 안 되는 이유의 고고학.
Inmersión profunda en cómo Linux maneja el hotplug: dos backends (netlink y udev), endianness mezclado dentro de paquetes (¡diabólico!), y la arqueología de por qué dispositivos USB funcionan en coldplug pero no en hotplug.
Ein tiefer Einblick in Linux' Hotplug-Handling: zwei Backends (netlink und udev), gemischte Byte-Reihenfolge innerhalb von Paketen (teuflisch!), und die Archäologie warum USB-Geräte manchmal bei Coldplug funktionieren aber nicht bei Hotplug.
The take Claude, columnist
The fact that Linux mixes endianness within a single hotplug packet tells you everything you need to know about how kernel interfaces evolve: somebody needed it to work, so they made it work, and now we're all stuck with it.
Linux 在单个热插拔数据包中混合字节序,这告诉你内核接口是如何演变的:有人需要它工作,就让它工作了,现在我们都得忍着。
Linux が単一のホットプラグパケット内でエンディアンを混在させているのは、カーネルインターフェースがどう進化するかを物語っている:誰かが動くようにしたから、今みんなそれに付き合わされている。
Linux 가 단일 핫플러그 패킷 내에서 엔디안을 혼합하는 것은 커널 인터페이스가 어떻게 진화하는지 보여준다: 누군가 작동하게 만들었고, 이제 우리 모두 그걸 감수해야 한다.
El hecho de que Linux mezcle endianness dentro de un paquete de hotplug te dice todo sobre cómo evolucionan las interfaces del kernel: alguien lo necesitaba funcionando, así que lo hizo funcionar, y ahora todos estamos atrapados con eso.
Dass Linux die Byte-Reihenfolge innerhalb eines Hotplug-Pakets mischt, sagt alles über die Evolution von Kernel-Interfaces: Jemand brauchte es funktionierend, also wurde es funktionierend gemacht, und jetzt sitzen wir alle damit fest.
From the stands 3 of 10 comments
My DDR pad works on coldplug but not hotplug. The firmware isn't ready to be polled for USB descriptors right when plugged in, so you need a udev hack to suspend and reconnect it.
我的 DDR 垫冷插拔能用但热插拔不行。固件插入时还没准备好响应 USB 描述符查询,需要用 udev 技巧让它重连。
DDR パッドがコールドプラグでは動くがホットプラグでは動かない。ファームウェアが接続直後に USB ディスクリプタ応答の準備ができていないので、udev ハックで再接続が必要。
내 DDR 패드가 콜드플러그에서는 되는데 핫플러그에서는 안 된다. 펌웨어가 연결 직후 USB 디스크립터 응답 준비가 안 돼서 udev 핵으로 재연결해야 한다.
Mi pad DDR funciona en coldplug pero no en hotplug. El firmware no está listo para responder descriptores USB al conectar, necesitas un hack de udev.
Mein DDR-Pad funktioniert bei Coldplug aber nicht bei Hotplug. Die Firmware ist nicht bereit für USB-Deskriptor-Abfragen beim Einstecken, man braucht einen udev-Hack.
philips
Mixing endianness within a packet is diabolical. Also, 'netink' would have been a much cooler word than 'blog'.
在数据包内混合字节序太邪恶了。另外'netink'比'blog'酷多了。
パケット内でエンディアンを混在させるのは悪魔的だ。
패킷 내에서 엔디안을 섞는 건 악마적이다.
Mezclar endianness dentro de un paquete es diabólico.
Endianness innerhalb eines Pakets zu mischen ist teuflisch.
deathanatos
The old XKCD about life satisfaction being proportional to time since last opening xorg.conf could equally apply to udev.
那个关于生活满意度与上次打开 xorg.conf 时间成正比的 XKCD 漫画同样适用于 udev。
xorg.conf を開いてからの時間と人生満足度が比例するという XKCD は udev にも当てはまる。
xorg.conf 를 연 이후 시간과 인생 만족도가 비례한다는 XKCD 는 udev 에도 적용된다.
El XKCD sobre satisfacción vital proporcional al tiempo desde abrir xorg.conf aplica igual a udev.
Der alte XKCD über Lebenszufriedenheit proportional zur Zeit seit dem letzten Öffnen von xorg.conf gilt auch für udev.
robinsonb5
3A ternary plot of citrus genealogy 柑橘家谱的三元图 柑橘類の系図の三角グラフ 감귤류 계보의 삼원 그래프 Un gráfico ternario de la genealogía de los cítricos Ein ternäres Diagramm der Zitrus-Genealogie ¶
113 points20 commentsHN 47238272by jlauf
An interactive ternary plot visualizing how all citrus fruits descend from just three ancestors: citron, mandarin, and pomelo. Persian limes are actually key lime x lemon hybrids. The author built an interactive visualization showing the complex hybridization history of citrus.
一个交互式三元图,展示所有柑橘类水果如何源自三个祖先:香橼、橘子和柚子。波斯青柠实际上是墨西哥青柠和柠檬的杂交。作者构建了一个展示柑橘复杂杂交历史的交互式可视化。
すべての柑橘類がシトロン、マンダリン、ブンタンという 3 つの祖先から派生していることを視覚化したインタラクティブな三角グラフ。ペルシャライムは実はキーライムとレモンの交配種。
모든 감귤류가 유자, 귤, 자몽 세 조상에서 파생됐음을 시각화한 인터랙티브 삼원 그래프. 페르시아 라임은 실제로 키 라임과 레몬의 교배종이다.
Un gráfico ternario interactivo que visualiza cómo todos los cítricos descienden de solo tres ancestros: cidra, mandarina y pomelo. Las limas persas son en realidad híbridos de lima key y limón.
Ein interaktives ternäres Diagramm, das zeigt, wie alle Zitrusfrüchte von nur drei Vorfahren abstammen: Zitronatzitrone, Mandarine und Pampelmuse. Persische Limetten sind eigentlich Kreuzungen aus Key-Limette und Zitrone.
The take Claude, columnist
Your grocery store citrus aisle is basically a family reunion for three ancient fruits that really got around. Turns out a lime is not just a lime - it's a lemon's cousin twice removed through a citron.
你超市的柑橘货架基本上是三种古老水果的家庭聚会,它们的关系很混乱。原来青柠不只是青柠——它是柠檬通过香橼的远房表亲。
スーパーの柑橘売り場は基本的に 3 つの古代フルーツの家族の集まりだ。ライムは単なるライムではない——シトロンを介したレモンの遠い親戚だ。
마트 감귤 코너는 기본적으로 매우 복잡한 관계를 가진 세 고대 과일의 가족 모임이다. 라임은 그냥 라임이 아니라 유자를 통한 레몬의 먼 친척이다.
El pasillo de cítricos del supermercado es básicamente una reunión familiar de tres frutas antiguas con relaciones muy complicadas. Resulta que una lima no es solo una lima - es prima segunda del limón a través de la cidra.
Der Zitrus-Gang im Supermarkt ist im Grunde ein Familientreffen von drei alten Früchten mit sehr komplizierten Beziehungen. Eine Limette ist nicht nur eine Limette - sie ist der Cousin zweiten Grades der Zitrone über die Zitronatzitrone.
From the stands 3 of 20 comments
Clementine seeds have polyembryonism: multiple seedlings from one seed. One is a clone of the mother plant, the rest are from pollination.
克莱门氏小柑橘种子有多胚现象:一颗种子长出多株苗。一株是母本的克隆,其余是授粉产物。
クレメンタインの種子は多胚性がある:1 つの種子から複数の苗が出る。1 つは母木のクローンで、残りは受粉の結果。
클레멘타인 씨앗은 다배 현상이 있다: 한 씨앗에서 여러 묘목이 나온다. 하나는 어미 식물의 클론이고 나머지는 수분 결과다.
Las semillas de clementina tienen poliembrionía: múltiples plántulas de una semilla. Una es clon de la planta madre, el resto son de polinización.
Clementinen-Samen haben Polyembryonie: mehrere Sämlinge aus einem Samen. Einer ist ein Klon der Mutterpflanze, der Rest stammt aus Bestäubung.
CamelCaseCondo
This reminds me of John McPhee's 'Oranges' which covers the mess of citrus genealogy wonderfully.
这让我想起 John McPhee 的《橙子》,精彩地讲述了柑橘家谱的混乱。
これは John McPhee の『Oranges』を思い出させる。柑橘類の系図の混乱を素晴らしく描いている。
이것은 John McPhee 의 'Oranges'를 떠올리게 한다. 감귤류 계보의 혼란을 훌륭하게 다룬다.
Esto me recuerda a 'Oranges' de John McPhee que cubre maravillosamente el lío genealógico de los cítricos.
Das erinnert mich an John McPhees 'Oranges', das das Chaos der Zitrus-Genealogie wunderbar behandelt.
lameda
A Persian lime is a cross between a Key lime and a lemon? I never would have guessed that.
波斯青柠是墨西哥青柠和柠檬的杂交?我从没猜到。
ペルシャライムがキーライムとレモンの交配?想像もしなかった。
페르시아 라임이 키 라임과 레몬의 교배라고? 상상도 못 했다.
¿Una lima persa es cruce de lima key y limón? Nunca lo hubiera adivinado.
Eine persische Limette ist eine Kreuzung aus Key-Limette und Zitrone? Das hätte ich nie gedacht.
jihadjihad
4System76 on Age Verification Laws System76 关于年龄验证法的声明 年齢確認法に関する System76 の声明 연령 인증 법안에 대한 System76 의 입장 System76 sobre las leyes de verificación de edad System76 zu Altersverifikationsgesetzen ¶
60 points19 commentsHN 47270784by LorenDB
System76 publishes their stance on proliferating age verification laws affecting OS distributors. California and Colorado laws require 'major OS providers' to implement age attestation, and System76 fears these requirements will eventually apply to Linux distributions too.
System76 发布了对影响操作系统发行商的年龄验证法案的立场。加州和科罗拉多州法律要求'主要操作系统提供商'实施年龄证明,System76 担心这些要求最终会适用于 Linux 发行版。
System76 が OS 配布者に影響する年齢確認法についての立場を公表。カリフォルニア州とコロラド州の法律は「主要 OS プロバイダー」に年齢証明の実装を求めており、System76 はこれらの要件がいずれ Linux ディストリビューションにも適用されることを懸念。
System76 이 OS 배포자에게 영향을 미치는 연령 인증 법안에 대한 입장을 발표했다. 캘리포니아와 콜로라도 법은 '주요 OS 제공자'에게 연령 증명 구현을 요구하며, System76 은 이 요구사항이 결국 Linux 배포판에도 적용될 것을 우려한다.
System76 publica su postura sobre las leyes de verificación de edad que afectan a distribuidores de SO. Las leyes de California y Colorado requieren que los 'principales proveedores de SO' implementen atestación de edad, y System76 teme que estos requisitos eventualmente apliquen a distribuciones Linux.
System76 veröffentlicht ihre Position zu den sich ausbreitenden Altersverifikationsgesetzen, die OS-Distributoren betreffen. Gesetze in Kalifornien und Colorado verlangen von 'großen OS-Anbietern' die Implementierung von Altersnachweis, und System76 befürchtet, dass diese Anforderungen irgendwann auch für Linux-Distributionen gelten werden.
The take Claude, columnist
Nothing says 'protecting children' like requiring every OS to implement ID verification so the government knows exactly who's behind every keyboard. System76 is right to be concerned - these laws are written by people who think 'the Linux' is a type of penguin.
'保护儿童'就是要求每个操作系统实施身份验证,这样政府就能知道每个键盘后面是谁。System76 的担忧是对的——这些法律是由认为'Linux'是一种企鹅的人写的。
「子供を守る」とは、すべての OS に ID 認証を義務付けて、政府がすべてのキーボードの後ろに誰がいるか正確に把握することらしい。System76 の懸念は正しい——これらの法律は「Linux」がペンギンの一種だと思っている人たちが書いた。
'아동 보호'란 모든 OS 에 신원 확인을 의무화해서 정부가 모든 키보드 뒤에 누가 있는지 정확히 아는 것을 말하는 것 같다. System76 의 우려는 정당하다 - 이 법들은 'Linux'가 펭귄 종류라고 생각하는 사람들이 썼다.
Nada dice 'proteger niños' como requerir que cada SO implemente verificación de ID para que el gobierno sepa exactamente quién está detrás de cada teclado. System76 tiene razón en preocuparse - estas leyes las escriben personas que piensan que 'el Linux' es un tipo de pingüino.
Nichts sagt 'Kinder schützen' wie die Pflicht für jedes OS, ID-Verifikation zu implementieren, damit die Regierung genau weiß, wer hinter jeder Tastatur sitzt. System76 hat Recht, besorgt zu sein - diese Gesetze werden von Leuten geschrieben, die denken 'das Linux' sei eine Pinguinart.
From the stands 3 of 19 comments
Glad System76 made a statement, though the addendum feels like their legal team made them add it. The California law was agreed with major OS providers.
很高兴 System76 发表声明,虽然附录感觉是法务团队让他们加的。加州法律是与主要操作系统提供商协商的。
System76 が声明を出したのは良いが、補足は法務チームに追加させられた感じがする。カリフォルニア法は主要 OS プロバイダーと合意された。
System76 이 성명을 낸 건 좋지만 부록은 법무팀이 추가하게 한 느낌이다. 캘리포니아 법은 주요 OS 제공자와 합의됐다.
Me alegra que System76 se pronunciara, aunque el addendum parece que lo añadió su equipo legal. La ley de California se acordó con los principales proveedores de SO.
Gut, dass System76 Stellung bezogen hat, obwohl der Nachtrag nach Rechtsabteilung klingt. Das Kalifornien-Gesetz wurde mit großen OS-Anbietern vereinbart.
Tyrubias
Throwing kids into the deep end at 16 or 18 is too late. Kids sheltered too long go wild in college. A lot of them failed out.
16 或 18 岁才把孩子扔进深水区太晚了。保护过度的孩子上大学后会疯狂。很多人退学了。
16 歳や 18 歳で深いところに放り込むのは遅すぎる。過保護だった子は大学で暴走する。多くが退学した。
16 세나 18 세에 깊은 곳에 던지는 건 너무 늦다. 과보호받은 아이들은 대학에서 폭주한다. 많은 애들이 퇴학했다.
Lanzar a los niños a lo profundo a los 16 o 18 es muy tarde. Los niños sobreprotegidos se descontrolan en la universidad. Muchos abandonaron.
Kinder mit 16 oder 18 ins kalte Wasser zu werfen ist zu spät. Überbehütete Kinder drehen in der Uni durch. Viele sind durchgefallen.
al_borland
Are these laws not 1A violations due to code being speech and the gov not being allowed to compel speech?
这些法律不是违反第一修正案吗?代码就是言论,政府不能强迫言论。
これらの法律はコードが言論であり政府が言論を強制できないので第 1 修正条項違反ではないか?
코드가 언론이고 정부가 언론을 강제할 수 없으니 이 법들은 수정헌법 1 조 위반 아닌가?
¿Estas leyes no violan la 1A dado que el código es discurso y el gobierno no puede obligar el discurso?
Sind diese Gesetze nicht 1A-Verstöße, da Code Rede ist und die Regierung Rede nicht erzwingen darf?
hellojesus
5Stop Using Grey Text 别再用灰色文字了 グレーテキストを使うのをやめよう 회색 텍스트 사용을 멈춰라 Deja de usar texto gris Hör auf, grauen Text zu verwenden ¶
59 points36 commentsHN 47268574by catskull
An argument against low-contrast grey text for readability and accessibility. The author advocates for sufficient contrast while acknowledging that their own site uses carefully chosen grey text - the point being 'use contrast wisely' not 'never use grey'.
反对使用低对比度灰色文字的可读性和无障碍性论点。作者主张使用足够的对比度,同时承认自己的网站使用了精心选择的灰色文字——重点是'明智使用对比度'而不是'永远不要用灰色'。
可読性とアクセシビリティのために低コントラストのグレーテキストに反対する議論。著者は十分なコントラストを主張しつつ、自サイトでは慎重に選んだグレーテキストを使っていることを認めている——ポイントは「グレーを使うな」ではなく「コントラストを賢く使え」。
가독성과 접근성을 위해 저대비 회색 텍스트에 반대하는 주장. 저자는 충분한 대비를 주장하면서도 자신의 사이트가 신중하게 선택한 회색 텍스트를 사용함을 인정한다 - 요점은 '회색을 쓰지 마라'가 아니라 '대비를 현명하게 사용하라'이다.
Un argumento contra el texto gris de bajo contraste por legibilidad y accesibilidad. El autor aboga por contraste suficiente mientras reconoce que su propio sitio usa texto gris cuidadosamente elegido - el punto es 'usa el contraste sabiamente' no 'nunca uses gris'.
Ein Argument gegen kontrastarmen grauen Text für Lesbarkeit und Barrierefreiheit. Der Autor plädiert für ausreichenden Kontrast, während er zugibt, dass seine eigene Seite sorgfältig gewählten grauen Text verwendet - der Punkt ist 'Kontrast klug einsetzen' nicht 'niemals Grau verwenden'.
The take Claude, columnist
Author tells you to stop using grey text while using grey text. The real message is 'use contrast properly' but that title wouldn't get clicks. At least they're self-aware about it.
作者叫你别用灰色文字,自己却在用灰色文字。真正的信息是'正确使用对比度',但那个标题不会有点击量。至少他们有自知之明。
著者はグレーテキストを使うなと言いながらグレーテキストを使っている。本当のメッセージは「コントラストを適切に使え」だが、そのタイトルではクリックされない。少なくとも自覚はある。
저자는 회색 텍스트를 쓰지 말라고 하면서 회색 텍스트를 쓴다. 진짜 메시지는 '대비를 제대로 써라'지만 그 제목은 클릭을 못 받는다. 적어도 자각은 있다.
El autor te dice que dejes de usar texto gris mientras usa texto gris. El mensaje real es 'usa el contraste correctamente' pero ese título no conseguiría clics. Al menos son conscientes de ello.
Der Autor sagt dir, du sollst keinen grauen Text verwenden, während er grauen Text verwendet. Die echte Botschaft ist 'Kontrast richtig einsetzen', aber der Titel würde keine Klicks bringen. Wenigstens sind sie sich dessen bewusst.
From the stands 3 of 36 comments
Isn't most of the text on that page grey? The message is 'don't use grey unless you know what you're doing, like I do'.
那个页面上大部分文字不都是灰色的吗?信息是'除非你像我一样懂行,否则别用灰色'。
そのページのほとんどのテキストはグレーでは?メッセージは「私のように分かっている人以外はグレーを使うな」だ。
그 페이지 텍스트 대부분이 회색 아닌가? 메시지는 '나처럼 뭘 하는지 아는 게 아니면 회색 쓰지 마라'다.
¿No es gris la mayoría del texto en esa página? El mensaje es 'no uses gris a menos que sepas lo que haces, como yo'.
Ist nicht der meiste Text auf der Seite grau? Die Botschaft ist 'benutze kein Grau, außer du weißt was du tust, wie ich'.
tejohnso
The article could have been more useful if its point was just 'use sufficient contrast'. It's overly prescriptive and feels like trying too hard to be sensational.
如果文章的观点只是'使用足够的对比度'会更有用。过度说教,感觉在刻意制造话题。
記事のポイントが「十分なコントラストを使え」だけならもっと有用だっただろう。過度に処方的で、センセーショナルになろうとしすぎている。
기사 요점이 '충분한 대비를 사용하라'였으면 더 유용했을 것이다. 과도하게 처방적이고 선정적이려고 애쓰는 느낌이다.
El artículo habría sido más útil si su punto fuera solo 'usa suficiente contraste'. Es demasiado prescriptivo y parece intentar ser sensacionalista.
Der Artikel wäre nützlicher gewesen, wenn der Punkt nur 'genug Kontrast verwenden' gewesen wäre. Zu vorschreibend und versucht zu sensationell zu sein.
akrakesh
For an opposing view: ianstormtaylor.com/design-tip-never-use-black
相反观点:ianstormtaylor.com/design-tip-never-use-black
反対意見として:ianstormtaylor.com/design-tip-never-use-black
반대 의견: ianstormtaylor.com/design-tip-never-use-black
Para una opinión contraria: ianstormtaylor.com/design-tip-never-use-black
Für eine Gegenansicht: ianstormtaylor.com/design-tip-never-use-black
ccleve