Unicode es aburrido

Un paseo por lo más aburrido de Unicode

HUID MIENTRAS PODÁIS, 😉

Un estándar para dominarlos a todos


Unicode se creo para ser el estándar supremo. https://es.wikipedia.org/wiki/Unicode > Unicode is the current standard for language support in software. The most common character encoding is UTF-8, which is used by over 85% of websites as of this post. If your application supports UTF-8, then it already has the ability to interpret characters from almost any written language. For languages that don’t support natively UTF, look into functions or modules that allow you to change the default character set.
Captura de la sobria página de Unicode
Es tremendamente aburrido. Por favor, mirad su puñetera web. Si es que no dan ganas de leer.

Unicode es era aburrido

Hasta que llegaron el COLOR y el SALSEO

😜
Pero bueno, que os he tomado el pelo. ¡No vengo yo aquí a hablar de lo aburrido de Unicode! Vengo a hablar de la mandanga. Desde que se popularizaron, los emoji han ido haciéndose más numerosos, coloridos e inclusivos, y por tanto también más complejos. Parte de esa complejidad se asienta en características de Unicode. ¿Cuáles son y cómo llegaron los emoji a ser parte de Unicode?

Emoji ≠ emoticonos


😃        ≠        =D

😉        ≠         ;)  


¯\_(ツ)_/¯

Y un _spoiler_: no tienen nada que ver con los emoticonos, ;) emoticon = emotion + icon (emoción + icono) emoji = e + moji (imagen + caracteres) kaomoji = kao + moji (cara + caracteres)

Apple 🍏 no inventó los emoji


Tampoco WhatsApp 💬

Primero, una breve historia sobre los emoji, 🙂. Los emoji como tal tienen casi 20 años. https://eev.ee/blog/2016/04/12/apple-did-not-invent-emoji/

Permíteme que insista

Set original de emoji en i-mode

1999: NTT DoCoMo

El ingeniero Shigetaka Kurita propone mandar pequeñas imágenes (12 x 12 píxeles) en la mensajería de i-mode

El set original de 176 emoji de i-mode se codificó en los espacios vacíos de la codificación japonesa Shift-JIS, desde 0xF5xx a 0xF9xx.

Otros operadores hicieron sus propias extensiones. KDDI, por ejemplo, incluyó aún más emoji entre 0xF3xx y 0xF4xx

Los emoji datan de 1999, cuando Shigetaka Kurita, un ingeniero japonés que trabajaba en NTT DoCoMo, la principal operadora de telefonía de Japón, se inspiró en la iconografía de las previsiones meteorológicas, las señales de tráfico y el manga, e incluyó la posibilidad de mandar pequeñas imágenes en el sistema de mensajería de [_algo parecido a la internet móvil_][wes-i-mode]. Lo ingenioso de la idea fue que **las imágenes no eran tal**, debido al poco ancho de banda de la tecnología, sino caracteres predefinidos. Esencialmente texto, nuevas _letras_. https://unicode.org/emoji/charts/full-emoji-list.html Fueron un éxito y pronto otros operadores copiaron la idea. Por supuesto, con otros emoji y otras codificaciones incompatibles entre sí.
Panel de antiguos emoji en la composición de correos de GMail en 2006

2007: Propuesta de inclusión en Unicode

Varios empleados de Google redactan un borrador para estandarizar las codificaciones e incluirlos en Unicode

Entre los autores se encuentra Mark Davis, cofundador del Unicode Consortium y actual presidente, lo que probablemente ayudó

El borrador se acepta en Unicode 6.0, octubre de 2010

Eso es justo el problema por el que Unicode existe, así que a mediados de 2007 (!), varios empleados de Google (entre los que se encuentra un cofundador del Consorcio de Unicode, hecho que probablemente ayudó), hicieron un borrador de propuesta para añadir los emoji a Unicode.

2008: Apple lanza el iPhone 3G en Japón 🇯🇵 🗾

Japón: Oh, Steve, you had one JOB 🖕


Noviembre: Apple lanza iOS 2.2 con un teclado emoji para Japón

Steve: I've done my job 🤑

Apple lanza el iPhone en Japón en julio de 2008 y, oh, sorpresa, la gente acostumbrada a los emoji y su mierda de "web" cerrada y propietaria le dicen: «esta mierda no tiene emoji, tío». La actualización a iOS 2.2 en noviembre de ese mismo año trae consigo un teclado emoji escondido y activable por aplicaciones de terceros. Japón es un filón y Softbank está acostumbrado a tomar parte del desarrollo de teléfonos, así que sabe dónde hacer presión. https://www.theverge.com/2017/6/29/15892640/iphone-anniversary-japan-success-emoji-history

La solución local se globaliza 🗺️

El mundo empieza a mandar emoji activando el teclado oculto

iOS 5, a finales de 2011, incluye teclado emoji por defecto a nivel global

Pero, aunque al principio graciosos, los emoji no escalan

  • 👋 💏 👪 Escasa representación racial, étnica y familiar
  • 🎍 💮 Barreras culturales
  • 👘 💃 Nipocentrismo cultural
Pero la solución local no se diseñó para un ámbito global.

Emojify all the things!!!11

Variación 16

El caracter U+FE0F fuerza que el caracter anterior se represente como un emoji, si existe

  • U+2620 SKULL AND CROSSBONES
  • U+FE0F VARIATION SELECTOR-16
  • 🏴
  • U+1F3F4 WAVING BLACK FLAG
  • 🏳
  • U+1F3F3 WAVING WHITE FLAG
  • U+FE0F VARIATION SELECTOR-16

Ligaduras


Modificadores de tono

Se basan en la escala Fitzpatrick de fototipos, que mide el color de la piel según su respuesta a la luz ultravioleta (UV)

  • 🏻 U+1F3FB EMOJI MODIFIER FITZPATRICK TYPE-1-2
  • 🏼 U+1F3FC EMOJI MODIFIER FITZPATRICK TYPE-3
  • 🏽 U+1F3FD EMOJI MODIFIER FITZPATRICK TYPE-4
  • 🏾 U+1F3FE EMOJI MODIFIER FITZPATRICK TYPE-5
  • 🏿 U+1F3FF EMOJI MODIFIER FITZPATRICK TYPE-6

Modificadores de tono

La fuente emoji crea la ligadura entre el emoji y el modificador de color cuando aparecen seguidos

  • neutro
  • 🖖🏻 piel pálida o blanca (fototipos 1 y 2)
  • 🤘🏼 piel medio blanca (fototipo 3)
  • ✌️🏽 piel medio morena (fototipo 4)
  • 🤙🏾 piel morena (fototipo 5)
  • ✌️🏿 piel oscura (fototipo 6)

Banderas nacionales

Ligadura de indicadores regionales,
desde U+1F1E6 (🇦) hasta U+1F1FF (🇿)

  • 🇨🇦 Canadá (CA)
  • U+1F1E8 REGIONAL INDICATOR SYMBOL LETTER C
  • U+1F1E6 REGIONAL INDICATOR SYMBOL LETTER A
  • 🇪🇸 España (ES)
  • U+1F1EA REGIONAL INDICATOR SYMBOL LETTER E
  • U+1F1F8 REGIONAL INDICATOR SYMBOL LETTER S

Combinación

Caracteres especiales que sirven para mezclarse con los anteriores, sin ligaduras

  • ñ
  • U+006E LATIN SMALL LETTER N
  • U+0303 COMBINING TILDE
  • 1
  • U+0031 DIGIT ONE
  • U+FE0F VARIATION SELECTOR-16
  • U+20E3 COMBINING ENCLOSING KEYCAP
  • 🔟
  • U+1F51F KEYCAP TEN

Zero-width joiner

(Secuencias ZWJ)

El caracter ZWJ sirve para unir dos o más emojis para formar otro nuevo…

Secuencias ZWJ

  • 👩👩👦👦
  • U+1F469 WOMAN
  • U+200D ZERO WIDTH JOINER
  • U+1F469 WOMAN
  • U+200D ZERO WIDTH JOINER
  • U+1F466 BOY
  • U+200D ZERO WIDTH JOINER
  • U+1F466 BOY
  • 👨👧
  • U+1F468 MAN
  • U+200D ZERO WIDTH JOINER
  • U+1F467 GIRL
Zero Width Joiner: https://emojipedia.org/zero-width-joiner/

Secuencias ZWJ

…o para convertir un emoji u otro caracter ya existente en un modificador

  • 👷 Emoji profesión + ZWJ + símbolo de Venus/Marte (+ variador emoji) 👮
  • 👩 Emoji humano + ZWJ + emoji medicina/portátil (+ variador emoji) 👩🏿💻
  • 🏳🌈 Bandera (+ variador emoji) + ZWJ + arcoiris
  • 🏴 Bandera negra + ZWJ + calavera (+ variador emoji)
  • 👩 Emoji + ZWJ + emoji medicina/portátil (+ variador emoji) 👩🏿💻
👷‍♀️ 👮‍♀️ 👩‍⚕️ 👩‍🍳 👩🏻‍💻 👩‍🏫 👩🏻‍🔬 👩‍🚀 👩‍⚖️

El ojo de Apple

En la developer preview de iOS 9.1, Apple coló un emoji personalizado

Resultó ser una campaña anti-bullying I am a witness

  • 👁🗨
  • U+1F441 EYE
  • U+FE0F VARIATION SELECTOR-16
  • U+200D ZERO WIDTH JOINER
  • U+1F5E8 LEFT SPEECH BUBBLE
  • U+FE0F VARIATION SELECTOR-16
Apple ojo anti-bullying (campaña publicitaria): http://jeremyburge.com/post/129520141524/apple-has-created-an-eye-in-speech-bubble-emoji

Los gatos de Microsoft

Windows 10 incluye unos emoji no estándar

  • 🐱👤 Ninja Cat
  • 🐱🏍 Ninja Cat Flying
  • 🐱💻 Ninja Cat at Computer
  • 🐱🐉 Ninja Cat riding T-Rex
  • 🐱👓 Ninja Cat with Coffee
  • 🐱🚀 Ninja Cat in Space
Windows meme "ninja cat": https://blog.emojipedia.org/ninja-cat-the-windows-only-emoji/

Los gatos de Microsoft

¡MUCHAS GRACIAS!

🤗

Ruegos, preguntas…

--- Lista de emojis (imágenes libres): https://commons.wikimedia.org/wiki/Emoji Lista de emojis en Unicode: https://www.unicode.org/Public/emoji/5.0/emoji-data.txt Jeroglíficos egipcio: https://en.wikipedia.org/wiki/Egyptian_Hieroglyphs_%28Unicode_block%29 © U+00A9 COPYRIGHT SIGN https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references ## Combinando caracteres (fuente) https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/ https://en.wikipedia.org/wiki/Regional_Indicator_Symbol ## Control Pictures https://eev.ee/blog/2015/09/12/dark-corners-of-unicode/ Control Pictures is an entire block of visual representations of control characters. So if you want to indicate there’s a NUL byte, instead of writing out “NUL” or “\x00”, you can use ␀ U+2400 SYMBOL FOR NULL. I’ve actually found it fairly useful once or twice to use ␤ U+2424 SYMBOL FOR NEWLINE to display multi-line text in a way that fits in a single line! ## Ruby Ruby characters are annotations used with Chinese and Japanese text to explain pronuncuation, like the tiny characters here: 日本語. Usually they’re expressed with HTML’s tag, but outside of HTML, what are you to do? Turns out Unicode actually supports this in the form of three “interlinear annotation” characters, and you could write the above as “[U+FFF9]日本語[U+FFFA]にほんご[U+FFFB]“. They tend not to have any rendering in fonts, since they’re control characters, and Unicode actually recommends they not be exposed directly to users at all, so there are no rules for how to actually display them. But if you want to store annotated Chinese or Japanese text without pretending all text is HTML, there you go. ## Byzantine Unicode bi-directional text system More well-known are U+200E LEFT-TO-RIGHT MARK and U+200F RIGHT-TO-LEFT MARK, which are part of the byzantine Unicode bi-directional text system, but among English speakers are mainly known for being able to reverse text in unsuspecting websites. ## Others planetary and astrological symbols: ☿ ♀ ♁ ♂ ♃ ♄ ♅ ♆ ♇ ♈ ♉ ♊ ♋ ♌ ♍ ♎ ♏ ♐ ♑ ♒ ♓ chess pieces: ♔ ♕ ♖ ♗ ♘ ♙ ♚ ♛ ♜ ♝ ♞ ♟ dice: ⚀ ⚁ ⚂ ⚃ ⚄ ⚅ ## Beware dragons ### Unicode in URL https://www.theguardian.com/technology/2017/apr/19/phishing-url-trick-hackers https://dev.to/loganmeetsworld/homographs-attack--5a1p ### Unicode in filenames Telegram zero-day: https://www.kaspersky.com/blog/telegram-rlo-vulnerability/21164/ U+202E RIGHT TO LEFT OVERRIDE cute_kitten_gnp.js cute_kitten_U+202e+gnp.js cute_kitten_‮gnp.js ### Apple's Unicode of Death Ligadura mortal: https://manishearth.github.io/blog/2018/02/15/picking-apart-the-crashing-ios-string/ Out-of-memory Unicode text bomb: https://www.cultofmac.com/324043/apple-confirms-imessage-bug-is-crashing-iphones/ ### Bad jokes Greek question mark… https://twitter.com/benbjohnson/status/533848879423578112 ### No volverse tan locos como Chevrolet Nota de prensa anunciando un nuevo modelo: https://cdn-txweb.pressidium.com/wp-content/uploads/2015/10/Chevy-Cruze-Emoji-Press-Release.png
### Forzar representación de texto http://www.unicode.org/reports/tr51/#def_text_presentation_selector The character U+FE0E VARIATION SELECTOR-15 (VS15), used to request a text presentation for an emoji character. ↩ ↩︎
https://www.unicode.org/reports/tr51/index.html#ZWJ_Display https://unicode-table.com/en/search/?q= https://www.calamoycran.com/ebooks-viudas-huerfanas Dato curioso lingüístico: aunque parezca que las palabras emoticono y emoji comparten raíz léxica, no es así: «emoticono» viene de las palabras inglesas _emotion_ y _icon_ —emoción + icono—, mientras que «emoji» viene de las palabras japonesas _e_ (絵) y _moji_ (文字) —imagen + caracter—. No, los japoneses no hablan de emociones, sino de pinturas. Y sí, puedes ver los _kanji_ japoneses gracias a Unicode, 😜. --- En la redacción de este artículo se ha contribuído al artículo [_i-mode_ en la Wikipedia en Español][wes-i-mode]. [wes-i-mode]: https://es.wikipedia.org/wiki/I-mode