Скопировать эмодзи в буфер обмена? Легко!
Дополнительная клавиатура эмодзи на айОС причиняет мне множество неудобств, когда включена. Эппл не предусмотрела дополнительной кнопки на клавиатуре для неё, поэтому она добавлена как отдельная клавиатура. И чтобы переключиться на неё требуется нажимать один или более раз кнопку переключения языка. Неприятно, что когда раскладки располагаются в таком порядке: английская → русская → эмодзи, то для переключения с русской на английскую необходимо миновать эмодзи, но в отличии от других текстовых раскладок эмодзи имеет смещённую кнопку переключения языка:
Это очень неудобно, когда не хочется заморачиваться с выбором раскладки по удержании кнопки смены языка или когда переключаешь язык на ходу. Мне не хотелось устанавливать сторонние клавиатуры ради возможности открытия списка эмодзи без переключения языка, но и жить с дополнительной раскладкой-эмодзи я уже не мог. Поначалу я просто копировал эмодзи из других диалогов, если находились подходящие. Потом я создал заметку, в которую занёс все доступные мне эмодзи и копировал уже оттуда. Но копирование оттуда никогда не было быстрым процессом — чтобы скопировать эмодзи я должен был: поставить курсор, выделить нужный смайл, тапнуть по смайлу, выбрать скопировать. С форс-тачем выделять удобней и быстрее, но не везде он есть.
Какое-то время я даже собрался изучить Свифт для айОС, чтобы написать приложение с виджетом, откуда я бы копировал эмодзи одним нажатием, но передумал. В итоге, в один прекрасный день у меня получился Эмодзи клипборд — веб-приложение, которое многое умеет:
- имеет максимально полный набор эмодзи;
- копирует выбранный эмодзи сразу в буфер обмена;
- меняет вид эмодзи в зависимости от системы: у Эппл они одни, у Андроида — другие;
- устанавливается на телефон в виде веб-приложения;
- сохраняет данные в оффлайне и работает с ними без интернета;
Скриншоты приложения в Safari
Скриншоты приложения в Edge
Требования
Пока приложение работает в режиме беты. Я проверил его в Safari 10, Google Chrome 57, Microsoft Edge 15, а также в мобильном Safari (iOS 10.3). Оно точно не работает в Internet Explorer 11 (и я не хочу разбираться почему).
Эмодзи Клипборд
Кампания Font Awesome 5 на кикстартере
HTML есть язык программирования
Профессор Дэвид Брейлсфорд пытается доказать, что HTML является языком программирования, но как-то неубедительно, и я ему не верю:
Д. Брейлсфорд приводит формальное определение императивных и декларативных языков программирования. В поддержку своего мнения о том, что HTML является языком программирования, он приводит аналогию с использованием printf
, которая не требует знания о том, как реализована функция ack
в коде, что делает её «более декларативной». Также и тег h1 при разметке текста можно считать лишь функцией, применяемой к тексту, заключённому между открывающим и закрывающим тегом. В заключении профессор говорит о том, что HTML является декларативным языком программирования, но он не является языком общего назначения, а предназначен только для программирования веб-страниц.
P.S. Брейлсфорд упоминает, что HTML не является Тюринг-полным, но на его взгляд, HTML всё-таки является языком программирования.
В поддержку того, что HTML — это просто язык разметки, оставлю пару хороших ссылок:
- «Why does it matter that HTML and CSS are not programming languages?»
- «Programs vs. markup or why HTML authoring is not programming»
Код функции Аккермана из видео
#include <stdio.h> int ack(m, n) int m,n; { int ans; if (m == 0) ans = n+1; else if (n == 0) ans = ack(m-1, 1); else ans = ack(m - 1, ack(m,n-1)); return (ans); } int main(argc, argv) int argc; char ** argv; { int i,j; for (i=0; i<6; i++) for (j=0;j<6; j++) printf ("ackerman (%d, %d) :=: %d\n",i,j, ack(i,j)); }