Обновить
0
Nickolay Ginsburg@GiK0read⁠-⁠only

Пользователь

Отправить сообщение

Как навести порядок в почтовом ящике с помощью нейронной сети. Часть 2

Время на прочтение9 мин
Охват и читатели8.6K
image

В нашем блоге мы много пишем о создании email-рассылок и работе с электронной почтой. В современном мире люди получают множество писем, и в полный рост встает проблема с их классификацией и упорядочиванием почтового ящика. Инженер из США Андрей Куренков в своем блоге рассказал о том, как решил эту задачу с помощью нейронной сети. Мы решили осветить ход этого проекта — несколько дней назад опубликовали первую часть рассказа, а сегодня представляем вашему вниманию его продолжение.
Читать дальше →

Как навести порядок в почтовом ящике с помощью нейронной сети. Часть 1

Время на прочтение6 мин
Охват и читатели23K
image

В нашем блоге мы много пишем о создании email-рассылок и работе с электронной почтой. Мы уже обсудили сложности борьбы со спамом, будущее email, вопросы защиты почтовой переписки, а также техники работы с email, применяемые руководителями крупных ИТ-компаний. 

В современном мире люди получают множество писем, и в полный рост встает проблема с их классификацией и упорядочиванием почтового ящика. Инженер из США Андрей Куренков в своем блоге рассказал о том, как решил эту задачу с помощью нейронной сети. Мы решили осветить ход этого проекта и представляем вам первую часть рассказа.
Читать дальше →

Транспайлер-цепь Python → 11l → C++ [для ускорения Python-кода и не только]

Время на прочтение6 мин
Охват и читатели9.5K



В данной статье рассматриваются наиболее интересные преобразования, которые выполняет цепочка из двух транспайлеров (первый переводит код на языке Python в код на новом языке программирования 11l, а второй — код на 11l в C++), а также производится сравнение производительности с другими средствами ускорения/исполнения кода на Python (PyPy, Cython, Nuitka).
Читать дальше →

256 строчек голого C++: пишем трассировщик лучей с нуля за несколько часов

Время на прочтение8 мин
Охват и читатели159K
Публикую очередную главу из моего курса лекций по компьютерной графике (вот тут можно читать оригинал на русском, хотя английская версия новее). На сей раз тема разговора — отрисовка сцен при помощи трассировки лучей. Как обычно, я стараюсь избегать сторонних библиотек, так как это заставляет студентов заглянуть под капот.

Подобных проектов в интернете уже море, но практически все они показывают законченные программы, в которых разобраться крайне непросто. Вот, например, очень известная программа рендеринга, влезающая на визитку. Очень впечатляющий результат, однако разобраться в этом коде очень непросто. Моей целью является не показать как я могу, а детально рассказать, как подобное воспроизвести. Более того, мне кажется, что конкретно эта лекция полезна даже не столь как учебный материал по комьпютерной графике, но скорее как пособие по программированию. Я последовательно покажу, как прийти к конечному результату, начиная с самого нуля: как разложить сложную задачу на элементарно решаемые этапы.

Внимание: просто рассматривать мой код, равно как и просто читать эту статью с чашкой чая в руке, смысла не имеет. Эта статья рассчитана на то, что вы возьмётесь за клавиатуру и напишете ваш собственный движок. Он наверняка будет лучше моего. Ну или просто смените язык программирования!

Итак, сегодня я покажу, как отрисовывать подобные картинки:


Читать дальше →

Рисуем мультяшный взрыв за 180 строчек голого C++

Время на прочтение6 мин
Охват и читатели74K
Неделю назад я опубликовал очередную главу из моего курса лекций по компьютерной графике; сегодня опять возвращаемся к трассировке лучей, но на сей раз пойдём самую чуточку дальше отрисовки тривиальных сфер. Фотореалистичность мне не нужна, для мультяшных целей подобный взрыв, как мне кажется, сойдёт.

Как всегда, в нашем распоряжении только голый компилятор, никаких сторонних библитек использовать нельзя. Я не хочу заморачиваться с оконными менеджерами, обработкой мыши/клавиатуры и тому подобным. Результатом работы нашей программы будет простая картинка, сохранённая на диск. Я совершенно не гонюсь за скоростью/оптимизацией, моя цель — показать основные принципы.

Итого, как в таких условиях нарисовать вот такую картинку за 180 строчек кода?


Читать дальше →

Топ книг по фреймворку Django

Время на прочтение4 мин
Охват и читатели137K


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

Наука находится на грани трансляции Твиттера прямо в ваш мозг

Время на прочтение5 мин
Охват и читатели8.7K

Потоки данных скоро будут передаваться прямо в наш мозг, что позволит нам по-новому взглянуть на мир




Не желаете добавить себе новые разновидности ощущений? Эта идея требует пояснений. Главное что нужно понимать — наш мозг заточен в тишине и темноте внутри черепной коробки. Все чем он располагает электрические и химические сигналы, передающиеся между нервными клетками, он ничего не видит, не слышит и не касается. Независимо от того поступает ли информация в виде волн сжатия воздуха исполняемой симфонии, световых волн отражаемых заснеженной скульптурой, молекул летучих веществ испарившихся с яблочного пирога, или боль от укуса осы, все это представлено в клетках мозга потоками электрических импульсов. И в первом приближении все выглядит одинаково.
Читать дальше →

«Камень я не дам» или как устроены ресурсы игры «Проклятые Земли»

Время на прочтение27 мин
Охват и читатели63K


Много ли вы вспомните российских игр? Качественных? Запоминающихся? Да, такие были. Если вам больше 35 или вы фанат российского игропрома, то с "Проклятыми Землями" вы наверняка знакомы.


История начиналась весьма прозаично: лето, жара. Делать особо нечего, а при ленивом просмотре содержимого жёсткого диска ноутбука взгляд зацепился за папку со знакомой иконкой-дракончиком, лежащую без дела уже пару лет.


Какому фанату игры не будет интересно узнать, что же там внутри?

Рычаг я дам

Мой переезд в Норвегию

Время на прочтение12 мин
Охват и читатели127K


Я решил написать эту статью, потому что в интернете мало информации именно о переезде в Норвегию. Люди в основном описывают жизнь, процесс поиска работы и тому подобное. Ниже я постарался рассказать о подготовке документов, регистрации в стране, открытии банковского счёта, аренде квартиры и т.п. Надеюсь, это будет полезно.

Продолжение.

Читать дальше →

Как отправить электронное письмо с помощью Python: руководство для «чайников»

Время на прочтение6 мин
Охват и читатели197K


В нашем блоге мы много пишем о создании email-рассылок и работе с электронной почтой. В современном мире люди получают множество писем, а у некоторых даже есть несколько почтовых ящиков. Все это усложняет процесс их администрирования, что вынуждает искать пути решения проблемы. Не так давно мы рассказывали о том, как инженер из США упорядочивал свои письма с помощью нейронной сети (1, 2), а сегодня речь пойдет об автоматизации отправки писем для разных почтовых ящиков.

Редактор издания Motherboard Майкл Берн (Michael Byrne) написал материал о том, как отправлять электронные письма для различных почтовых ящиков с помощью Python. Мы представляем вашему вниманию адаптированный перевод этой заметки.
Читать дальше →

Почему электронная почта не умрет никогда

Время на прочтение8 мин
Охват и читатели49K


В последние пару лет в сети все чаще можно слышать дискуссии о том, что электронная почта, как инструмент коммуникации — пользователей между собой, и клиентов с компаниями — устарела и имеет целый ряд минусов. Такие материалы были, в том числе и на Хабре. В блоге Печкина мы много пишем об интересных техниках работы с email-рассылками, а сегодня представляем вашему вниманию адаптированный перевод материала из журнала The Atlantic, который призван объяснить, почему email — это лучшее, что до сих пор есть в интернете, и он не умрет никогда.
Читать дальше →

Черная пятница, традиции и английские идиомы о шоппинге

Время на прочтение4 мин
Охват и читатели7.7K
Как только наступает конец ноября, ритейлеры начинают бомбить потребителей рекламой о распродажах и огромных скидках. Черная пятница стала популярна в русскоговорящих странах всего 10 лет назад, но многие уже просто не могут представить свой шоппинг без нее.

Сегодня мы с вами поговорим о Черной пятнице и английских идиомах, связанных с шоппингом. Записывайте и используйте. Но для начала немного интересностей.
Читать дальше →

Почтовый сервер на Linux

Время на прочтение11 мин
Охват и читатели358K
Как наладить работу почтового сервера, умеющего принимать и отправлять электронную корреспонденцию, бороться со спамом, взаимодействовать с клиентами? На самом деле, всё довольно просто.

Сегодня поговорим о почтовых серверах на Linux. Мы расскажем о том, как настроить сервер, о широко распространённом в интернете протоколе SMTP, а также о других протоколах, таких, как POP и IMAP. В итоге вы окажетесь обладателем полноценной системы для работы с электронной почтой.



Начнём с SMTP-сервера на Linux
Читать дальше →

Электронная почта на других языках: как она будет работать?

Время на прочтение10 мин
Охват и читатели2.4K

На заре Интернета все пользователи сети говорили по-английски, и вся электронная почта также была на английском языке. Для того чтобы текст отображался на мониторе, каждому символу должен соответствовать числовой код. Основным набором кодов был и остается ASCII, коды которого были рассчитаны на дешевые и надежные телетайпы, которые раньше повсеместно использовались для ввода и вывода текста и обменом информацией между компьютерами. ASCII — семибитный набор символов, каждому из которых соответствуют числа от 0 до 127, он включает в себя заглавные и строчные буквы и знаки пунктуации, употребляемые на письме в английском языке. Также в ASCII есть некоторые редкие символы, такие как «собачка», которую стали использовать для написания адресов электронной почты, потому что этот знак есть в ASCII, но он практически нигде не употребляется.
Однако почти каждый письменный язык нуждается в символах, не входящих в ASCII. Сегодня пользователи Интернета живут в каждой стране мира и пишут на бесчисленном множестве языков, и электронная почта, хотя и медленно, но все же делает шаги вперед.

Почта MIME
Первым из основных расширений почты был MIME (Multipurpose Internet Mail Extensions, 1992 г.). Раньше почтовое сообщение представляло собой неструктурированный блок текста ASCII. С MIME сообщение стало группой структурированных блоков данных, часть которых могла быть текстом, а другая часть — изображением, документами, или любым другим видом данных, которые могли бы храниться в файле. Благодаря MIME стало возможным  кодировать данные, которые не являются семибитовым ASCII, так, если вы прикрепляете изображение или другой файл к своему письму, вы используете MIME.
MIME также дает возможность указывать параметры для заголовков MIME, описывающих каждый блок данных, такие как тип данных (например, изображение JPEG или документ PDF), и (для текстовых блоков) набор символов, которым закодирован текст, например:
Content-type: text/plain; charset=us-ascii
Content-type: text/plain; charset=UTF-8
Набор символов по умолчанию оставался ASCII (сейчас он называется US-ASCII, так как это американский стандарт), но вы могли использовать и некоторые другие.
MIME также позволяет указать набор символов для многих заголовков в письме (Subject:line). Эти же наборы символов и кодировки используются в теле сообщения. Например, этот заголовок закодирован в UTF-8 (см. ниже), и содержит символ, которому соответствует код C2 B0 в шестнадцатиричной системе исчисления. Этот символ — строчная буква «o».
Subject: =? utf-8? Q? Your_reservation_N=C2=B0_F39-04XS? =
Кодирование MIME может применяться в большинстве заголовков сообщений, но не  в адресах электронной почты, которые все еще должны кодироваться в ASCII.

Наборы символов, Unicode, и UTF-8
Так как ASCII — семибитный код, а большинство компьютеров имеет восьмибитную память, очевидным способом добавить в ASCII больше символов стало его расширение до восьми битов и прикрепление неанглийских символов  к значениям от 128 до 255. Сегодня существует множество восьмибитовых расширений для ASCII. Международная организация по стандартизации (ISO) стандартизировала более десятка из них, от ISO-8859-1 до ISO-8859-15. Существуют и иные кодировки, утвержденные Microsoft, IBM, и другими. Преимущество восьмибитных кодировок ASCII — в их компактности, но вскоре с ними стало неудобно обращаться и из-за множества несовместимых кодировок, потому что нередко было трудно определить, какое расширение ASCII используется в файле. И, конечно, ни один восьмибитный набор знаков не подходит для китайского и других неалфавитных видов письма.
В конце 1980-ых, был создан проект Unicode, цель которого — создать один гигантский набор знаков, включающий в себя каждый символ, который когда-либо использовался. Проект был успешным благодаря поддержке всей индустрии. Изначальный план состоял в том, чтобы использовать 16-битную систему, время шло, в список добавлялись новые языки и символы, и их количество превысило 100 000. Таким образом символы Unicode стали кодироваться 32-битными последовательностями чисел. Так как все 100 000 знаков поддерживаются далеко не во всех системах, в Unicode есть параметр, поддерживает система тот или иной символ или нет, поэтому невозможна ситуация, при которой в разных контекстах отображались бы разные символы.
Так как компьютеры все еще используют восьмибитные байты, Кен Томпсон изобрел систему кодирования UTF-8, в которой каждый символ Unicode представлен как последовательность 1 или более байтов. Первые 128 символов Unicode — 128 знаков ASCII, и в UTF-8 этим 128 знакам соответствуют сами эти знаки, таким образом, любая последовательность символов ASCII — также является последовательностью UTF-8. Поэтому сейчас не имеет смысла использовать любой расширенный набор символов ASCII, кроме Unicode и UTF-8, кроме как для совместимости со старым программным обеспечением. В MIME-тексте электронной почты, как правило, используется UTF-8.

Нелатинские доменные имена
Разумеется пользователи Интернета хотят использовать символы, не включенные в ASCII, не только в письмах, но и в доменных именах. Хотя внутри системы доменных имен (DNS) используются байты на восемь битов и, теоретически, она  могла бы использовать UTF-8 уже сейчас, существует огромное количество программного обеспечения для поддержки DNS, в котором может применяться только ASCII и Unicode (в некоторых случаях, когда один и тот же символ пишется разными способами, например, «е» и "é" под ударением). Сообщество DNS придумало систему punycode, которая кодирует в ASCII большую часть знаков Unicode. Доменное имя в ней имеет вид xn — ххх, где ххх  отображение в punycode последовательности UTF-8. В punycode существуют сложные правила кодирования, которые введены для того, чтобы выбрать уникальные отображения для символов, у которых есть несколько вариантов Unicode. Имя, начинающееся с xn — известно как A-Label, соответствующее имя Unicode — U-Label, а вся система известна как IDNA (Internationalized Domain Names in Applications). IDNA поддерживают веб-браузеры, которые трансформируют имена на Unicode в адресной строке в A-Label перед тем, как искать их в Интернете. Сейчас есть много доменных имен на китайском, индийском, арабском видах письма и на кириллице.
Часть адреса электронной почты после собачки является доменным именем, поэтому в ней допустимо использовать A-Label. Но часть адреса электронной почты перед cобачкой, имя почтового ящика, не является доменным именем, и, по многим причинам, не поддается кодированию в punycode или A-Label, хотя имя почтового ящика написано в UTF-8. Поэтому, для того чтобы использовать нелатинские e-mail адреса, мы нуждаемся в расширении системы почты, которое даст возможность кодировать UTF-8 в имени почтового ящика, и других укромных уголках, которые не затрагивает MIME.


Главная проблема

Основное препятствие на пути к нелатинским почтовым адресам — это сами почтовые адреса, как в заголовках «от кого» и «кому», так и непосредственно в сессии SMTP, т.е. при передаче сообщения. Чтобы система почты полностью стала многоязычной, она должна позволять не-ASCII символам появляться в подсказках, сообщениях об ошибках и вообще в любом тексте. Следовательно, придется переделывать почти  каждый элемент программного обеспечения в экосистеме электронной почты, MUA (пользовательские программы), программы-агенты, которые рассылают почту из пользовательских программ, MTA, которые передают почту от одного сайта другому, и POP и IMAP-cервера, которые позволяют пользовательским программам принимать поступающую почту. Изменения POP, IMAP и пользовательских программ, которые сделают их независимыми от языка, — относительно понятны, поэтому я сосредоточусь на хитрых моментах: формат почтового сообщения, и процесс доставки SMTP.
Люди давно пытались изобрести способ сделать почтовые адреса независимыми от ASCII и при этом более или менее  совместимыми со старой почтой. Работа в этом направлении началась в Китае и Японии, где почта только для ASCII была и остается неудовлетворительной. Сначала применялись простые подходы, такие как разрешение различных восьмибитовых расширенных наборов символов в заголовках почты и адресах. В этих наборах символов, таких как ISO-2022-x  используются последовательности контрольных знаков, при помощи которых происходит переключение между разными «страницами» набора символов, то есть, значение каждого отдельного символа зависело от того, что предшествовало ему. Такие кодировки плохо работали по множеству причин: из-за «контрольных символов» значение последовательности знаков зависит от того, какой символ стоит перед ней, что приводило к двусмысленности, тот же самый набор знаков мог быть представлен многими различными способами, также почтовая система могла не принимать эти расширенные наборы символов.
В UTF-8 нет проблемы с переключением, но в ней все же используются символы, которых нет в ASCII, которые не будет работать с почтовой системой. Новый подход состоял в том, чтобы разрешить адреса UTF-8, но закодировать их как ASCII. Для доменных имен это уже сделано с помощью A-Labels и punycode; у каждого не-ASCII-домена есть ASCII-версия, которая начинается с xn-. К сожалению, это не работает с именами почтовых ящиков (часть адреса перед собачкой). С одной стороны, все специальные символы, которые можно было бы использовать, чтобы отметить закодированные имена UTF-8, уже  где-нибудь используются, и, следовательно, не могут обозначать что-то еще. Дефисы и плюс используются для обозначения подадресов, восклицательные знаки — для адресов uucp, процент — для маршрутизации от отправителя (source routing), слэш — для адресов, совместимых с X.400,  знак равенства — в технологии VERP, и так далее. Даже если бы существовали такие маркирующие знаки, которые никто бы не использовал, имена почтовых ящиков ограничены 64 знаками ASCII, и, если вы закодируете адрес UTF-8 при помощи punycode или чего-то подобного, длина адреса UTF-8 будет ограничена приблизительно 18 знаками, а это довольно мало и не дает возможности полноценно пользоваться подадресами и другими расширениями адреса.
Наиболее успешным стал эксперимент, зарегистрированный в RFC 5335 и 5336. Была добавлена новая функция SMTP под названием UTF8SMTP, при которой адреса электронной почты могут быть почти произвольной последовательностью  UTF-8, ограниченной 64 байтами. Доменное имя в адресе должно быть при этом переведено в A-Labels. Сообщения посылаются с применением 8BITMIME, и UTF-8 может использоваться почти везде, где и ASCII. Каждый, у кого есть адрес UTF-8, может также иметь адрес ASCII, и можно отправить почту на любой из них:
To: <utf8mailbox@utf8domain <asciimailbox@asciidomain>>
Посылая почту на сервер UTF8SMTP, клиент посылает почту на адрес UTF-8, при этом сохраняется поддержка адресов ASCII. Если почта должна быть отправлена на сервер, который не может работать с UTF8SMTP, сложный алгоритм даунгрейда переведет любые заголовки с UTF-8 в заголовки с МIME-версией UTF-8, заменит любые адреса UTF-8 в строках «Кому» и «От кого» на строчки с комментраиями, и отправит сообщение по адресу ASCII.
Это было великолепной идеей, но через некоторое время стало ясно, что эта двойная система адресов тоже не работает.  Одна из причин — то, что очень трудно одновременно поддерживать UTF-8, и ASCII, таким образом почта UTF-8 будет просачиваться в обычный траффик SMTP, и тогда весь почтовый траффик становился UTF-8. Кроме того, даже при том, что двойные адреса были введены лишь на время перехода, в Интернете не бывает переходных периодов, и японские и китайские пользователи не без основания отказались от системы, которая потребует, чтобы у них  всегда был адрес ASCII.
Таким образом рабочая группа EAI (Email Address Internationalization) отбросила большинство проектов и почти закончила создание системы многоязычных почтовых адресов.


 


Как будет работать многоязычная почта


Сейчас рабочая группа EAI занимается пересмотром RFC. Существующий проект будет упрощен, и он будет представлять собой создание нового многоязычного поток почты с текстом UTF-8 в заголовках почты и адресами UTF-8 в сессиях SMTP. (MIME и функция 8BITMIME ESMTP уже работают  с телами сообщений UTF-8). Почтовый сервер объявляет, что он может работать с нелатинским почтовым адресом, объявляя об использовании функции ESMTP, которая в настоящее время имеет неприглядное название UTF8SMTPbis, но позже будет изменено на что-то более простое.
Почтовый клиент, если он видит объявление сервера о способности работать с EAI, может включить параметр «EAI» в  команду MAIL FROM во время сессии SMTP, чтобы сообщить серверу, что это сообщение — нелатинское, и затем отправляет сообщение. Любой почтовый сервер, который поддерживает EAI, поддерживает и 8BITMIME, таким образом сообщение может содержать любой текст UTF-8 без специального кодирования. RFC также регламентирует варианты EAI для команд SMTP — EXPN и VRFY, которые принимают и возвращают адреса электронной почты, и некоторые улучшения системных сообщений. Если клиент не использует функцию EAI,  сообщение идет по «старой» почте (Legacy Mail). Функцию EAI можно включать или отключать для каждого сообщения, следовательно, каждое сообщение может быть или сообщением EAI или сообщением старой почты.
RFC позволяет использовать UTF-8 везде, где и ASCII, кроме некоторых мест, таких как логин и пароль, дата и время. Фактически создан новый MIME, позволяющий полноценно общаться по электронной почте на любом языке. Уже не нужно изобретать способы адаптировать нелатинские адреса к старой почте. 
Как мы видим на диаграмме выше, возникнет новый поток почты EAI, который будет  параллелен существующему потоку SMTP. Если в сообщении есть заголовки на UTF-8, или адрес отправителя UTF-8, оно войдет в поток EAI. Если же нет — оно может войти как в поток старой почты, так и в поток EAI.
Сплошная диагональная стрелка обозначает, что сообщение старой почты всегда может переместиться в поток EAI, так как EAI — дополненный вариант прежней почты. Пунктирная стрелка обозначает, что сообщение EAI может иногда входить в поток старой почты, если MTA просматривает сообщение и замечает, что адрес отправителя и все тело сообщения состоят только из символов ASCII.
Клиент не сможет послать сообщение EAI на сервер, который не может работать с EAI, поскольку пока не разработаны стандарты даунгрейда. Этим вопросом сейчас занимаются соответствующие рабочие группы.
Например,  MSA (программа, которая принимает почту от почтовых пользовательских программ) может использовать резервный старый почтовый адрес  для своих пользователей EAI. Если она  заметит отправку сообщения EAI от одного из своих пользователей на старый адрес, она может переписать заголовки сообщения так, чтобы заменить адрес EAI пользователя его старым адресом, и MIME перекодирует текст заголовка UTF-8 в ASCII, и затем отправит сообщение как сообщение старой почты. Такая функция может оказаться довольно нужной, но пока трудно понять, как ее стандартизировать.
Существуют сообщества, в которых все пользователи читают и пишут на языках с нелатинской письменностью, таким образом, может оказаться, что почта всех пользователей поддерживает EAI, и совместимость со старой почтой не имеет значения. Или же старая почта будет использоваться лишь в особых случаях, например, при работе с незнакомой почтовой программой.
Рабочая группа EAI разработала полностью интернационализированную систему почты, которая позволяет пользователям отправлять сообщения на своем родном языке, зашифрованном в кодировке UTF-8, во всех без исключения частях сообщения. Все изменения, необходимые для адекватной, и даже превосходной поддержки EAI почтовыми программами достаточно легко провести в жизнь. Особенности перехода со старой почты на EAI — предмет текущих исследований, также как и то, как пользователи EAI будут отправлять сообщения пользователям старой почты. Но внедрение  EAI неизбежно, и полная свобода общения по почте на всех языках мира вскоре станет реальностью. Разумеется, станут доступны и адреса электронной почты, написанные только на кириллице, которые будут прекрасно сочетаться с кириллическим доменом в зоне.РФ.

 

От инструмента общения ученых до мирового стандарта: Краткая история электронной почты

Время на прочтение7 мин
Охват и читатели20K


Электронная почта – это революция в мире коммуникации и, в то же время, тяжкое бремя современных работников. Фото: агенство Getty Images

В нашем блоге мы уже рассказывали о том, почему электронная почта не умрет никогда и всегда останется отличным средством коммуникации для обычных пользователей и компаний. Настало время внимательнее изучить историю феномена email.

5 марта 2016 года ушел из жизни Рэй Томлинсон, человек, который предложил использовать символ «@» (at-sign) в электронных адресах, но его изобретение, позволяющее электронным сообщениям заполонить интернет и наши почтовые ящики, будет жить. В этом материале мы расскажем о том, с чего начинал Томлинсон, и об эволюции электронной почты за последние полвека.
Читать дальше →

А сколько вы потратили времени на фильмы?

Время на прочтение4 мин
Охват и читатели24K

Возникновение идеи


Недавно был в гостях у друзей и мы выбирали фильм, а я как прожжённый киноман (на самом деле, не то чтобы прям прожжённый) отбраковывал всё как просмотренные. И мне задали логичный вопрос, а что ты вообще не смотрел? На что я рассказал, что веду кинопоиск и каждый фильм, которые посмотрел отмечаю либо оценкой, либо просто галочкой, что просмотр состоялся. И тут в голове у меня возник вопрос, а сколько я вообще времени то потратил на фильмы? В Steam есть удобная статистика по игре, а по фильмам ничего такого нет. Вот и решил я заняться данной идеей.

Читать дальше →

Джаббер чат на веб-странице

Время на прочтение3 мин
Охват и читатели33K
Прочитав пост на хабре про онлайн чат для сайта через джаббер, мне стало интересно — а как оно работает и как такое можно сделать самому, без готовых приложений. В итоге у меня получилась очень простая заготовка «чата для сайта через джаббер». К сожалению у меня нет выделенного сервера с линуксом для тестов, поэтому был использован локальный компьютер с Win7 (и сервером Apache).

Как это вообще должно работать: пользователь заходит на сайт, и видит окошко, куда можно разговаривать. После того как пользователь послал сообщение, оно прилетает на указанный джаббер аккаунт. Получатель этого сообщения может написать ответ и оно придёт посетителю сайта.
Что для этого нужно:
  • Jabber сервер, можно публичный, можно локальный. Я выбрал Openfire и установил его локально. Сервер должен поддерживать Bosh — XEP-0124: Bidirectional-streams Over Synchronous HTTP, об этом чуть позже.
  • JS библиотека, которая будет реализовывать джаббер-клиент на сайте. Я взял Strophe. Это достаточно низкоуровневая библиотека, в которой нет функций типа «ПослатьСообщение(Куда, Текст)». Для достижения нужных действий нужно вручную составлять команды джаббер серверу (в XML). Удобные средства для создания XML в Strophe есть :)
Читать дальше →

Криптопереписка для недоверчивых

Время на прочтение8 мин
Охват и читатели52K
Осторожно: данный пост может вызывать непродолжительное обострение паранойи

Привет! Не верите ли вы в популярные продукты для защищённой переписки так, как не верю в них я? Например, в браузерные крипточаты с шифрованием на стороне клиента, или в p2p-криптомессенжеры?

В данном посте речь пойдет об организации защищённого общения между двумя собеседниками. Он адресован таким же недоверчивым людям как я, поэтому в нём не будет ни кода, написанного мной, ни изобретённых на коленке протоколов и алгоритмов. Будет использоваться только библиотека openssl и набор программ openssh.

image

Подробнее

Парсинг на Pуthon. Как собрать архив Голубятен

Время на прочтение9 мин
Охват и читатели43K
Статья описывает разработку скрипта на языке Python. Скрипт выполняет парсинг HTML-кода, составление списка материалов сайта, скачивания статей и предварительную очистку текста статьи от «посторонних» элементов. Используется библиотеки urllib (получение HTML-страниц), lxml (парсинг HTML-кода, удаление элементов и сохранение «очищенной» статьи), re (работа с регулярными выражениями), configobj (чтение файлов конфигурации).

Для написания скрипта достаточно базовых знаний языка Python, навыков программирования и отладки кода.

В статье даются пояснения по применению библиотек на примере составления списка публикаций С.М. Голубицкого, приведена ссылка на работающий скрипт.
Читать дальше →

PYCON RUSSIA 2018 пройдёт 22-23 июля. Save the date

Время на прочтение4 мин
Охват и читатели1.7K
Python-разработчики, внимание: шестой российский PyCon пройдёт 22-23 июля в отеле «Cronwell Яхонты Таруса» в 95 км. от Москвы. Доклады будут идти в два потока, плюс мастер-классы, Lightning Talks и афтепати.

Если вы не знаете, что такое PyCon Russia, посмотрите маленький ролик ниже — в нём коротко о том, как прошёл PyConRu-2017.


В прошлом году у нас выступили Paul Hildebrandt (Walt Disney Animation Studios, США), Łukasz Langa (Facebook, США), Nina Zakharenko (Venmo, США), Maciej Fijałkowski (PyPy, ЮАР), Андрей Степанов (Тинькофф Банк), Александр Кошкин (Positive Technologies), Кирилл Борисов (Яндекс), Елизавета Шашкова (JetBrains), Михаил Юматов (ЦИАН), Олег Чуркин (Rambler&Co) и ещё 16 крутейших спикеров. Все видео прошлогодних докладов можно посмотреть на нашем YouTube-канале.

Регистрация для участников открыта. Early Bird билеты стоят от 15000 рублей. А до 12 июня мы принимаем заявки на доклады. Под катом все подробности.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Menlo Park, California, США
Дата рождения
Зарегистрирован
Активность