Слегка освежил дизайн сайта

Скопировать эмодзи в буфер обмена? Легко!

Дополнительная клавиатура эмодзи на айОС причиняет мне множество неудобств, когда включена. Эппл не предусмотрела дополнительной кнопки на клавиатуре для неё, поэтому она добавлена как отдельная клавиатура. И чтобы переключиться на неё требуется нажимать один или более раз кнопку переключения языка. Неприятно, что когда раскладки располагаются в таком порядке: английская → русская → эмодзи, то для переключения с русской на английскую необходимо миновать эмодзи, но в отличии от других текстовых раскладок эмодзи имеет смещённую кнопку переключения языка:

Это очень неудобно, когда не хочется заморачиваться с выбором раскладки по удержании кнопки смены языка или когда переключаешь язык на ходу. Мне не хотелось устанавливать сторонние клавиатуры ради возможности открытия списка эмодзи без переключения языка, но и жить с дополнительной раскладкой-эмодзи я уже не мог. Поначалу я просто копировал эмодзи из других диалогов, если находились подходящие. Потом я создал заметку, в которую занёс все доступные мне эмодзи и копировал уже оттуда. Но копирование оттуда никогда не было быстрым процессом — чтобы скопировать эмодзи я должен был: поставить курсор, выделить нужный смайл, тапнуть по смайлу, выбрать скопировать. С форс-тачем выделять удобней и быстрее, но не везде он есть.

Какое-то время я даже собрался изучить Свифт для айОС, чтобы написать приложение с виджетом, откуда я бы копировал эмодзи одним нажатием, но передумал. В итоге, в один прекрасный день у меня получился Эмодзи клипборд — веб-приложение, которое многое умеет:

  • имеет максимально полный набор эмодзи;
  • копирует выбранный эмодзи сразу в буфер обмена;
  • меняет вид эмодзи в зависимости от системы: у Эппл они одни, у Андроида — другие;
  • устанавливается на телефон в виде веб-приложения;
  • сохраняет данные в оффлайне и работает с ними без интернета;
Скриншоты приложения в Safari
Скриншоты приложения в Edge
Требования

Пока приложение работает в режиме беты. Я проверил его в Safari 10, Google Chrome 57, Microsoft Edge 15, а также в мобильном Safari (iOS 10.3). Оно точно не работает в Internet Explorer 11 (и я не хочу разбираться почему).

Эмодзи Клипборд

https://markoutte.me/projects/emoji

HTML есть язык программирования

Профессор Дэвид Брейлсфорд пытается доказать, что HTML является языком программирования, но как-то неубедительно, и я ему не верю:

Краткий пересказ видео

Д. Брейлсфорд приводит формальное определение императивных и декларативных языков программирования. В поддержку своего мнения о том, что HTML является языком программирования, он приводит аналогию с использованием printf, которая не требует знания о том, как реализована функция ack в коде, что делает её «более декларативной». Также и тег h1 при разметке текста можно считать лишь функцией, применяемой к тексту, заключённому между открывающим и закрывающим тегом. В заключении профессор говорит о том, что HTML является декларативным языком программирования, но он не является языком общего назначения, а предназначен только для программирования веб-страниц.

P.S. Брейлсфорд упоминает, что HTML не является Тюринг-полным, но на его взгляд, HTML всё-таки является языком программирования.

В поддержку того, что HTML — это просто язык разметки, оставлю пару хороших ссылок:

  1. «Why does it matter that HTML and CSS are not programming languages?»
  2. «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));
	
}
	

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: