• Лингвистическая фантастика. Книги, в которых язык больше, чем просто средство для общения

      Обычно когда речь идет про «научную фантастику», то наукой, которая лежит в основе сюжетов выступают физика, биология, может, компьютерные технологии. Что-то из области точных наук. Но некоторые фантасты не спешат идти проторенными путями, предпочитая удивлять читателя. Например, обращаясь к лингвистике и показывая миры или конфликты, в которых слово играет ключевую роль. 

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

      Читать далее
    • Как проверять выражения на английском like a pro

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

        Читать далее
        • +21
        • 21.9k
        • 6
      • Habr vs Medium: сколько можно заработать, опубликовав 9 статей на Medium.com

          Привет, Хабр.

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



          Для тех кому интересно что получилось, подробности под катом.
          Читать дальше →
        • Всё, о чём должен знать разработчик Телеграм-ботов

            Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй "как я создал такого-то бота" и туториалов вроде "как создать бота, который будет говорить hello world". При этом многие неочевидные моменты просто нигде не описаны.

            Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?

            Подробный гайд о том, как работать с ботами — под катом.

            Читать далее
          • Реверс-инжиниринг исходного кода коронавирусной вакцины от компаний BioNTech/Pfizer

            • Translation
            Добро пожаловать. В данном посте мы посимвольно разберём исходный код вакцины BioNTech/Pfizer SARS-CoV-2 мРНК.

            Да, такое заявление может вас удивить. Вакцина – это ведь жидкость, которую вводят человеку в руку. При чём тут какой-то исходный код?

            Хороший вопрос. Начнём мы с небольшой части того самого исходного кода вакцины BioNTech/Pfizer, также известной, как BNT162b2, также известной, как Tozinameran, также известной, как Comirnaty.


            Первые 500 символов мРНК BNT162b2.

            В сердце вакцины находится вот такой цифровой код. Его длина составляет 4284 символа, так что его вполне можно уместить в несколько твитов. В самом начале процесса производства вакцины кто-то закачал этот код в ДНК-принтер (ага), который, в свою очередь, превратил байты с накопителя в реальные молекулы ДНК.
            Читать дальше →
          • Обратная сторона Open Source-славы: как угрожают автору curl

            • Translation

            Прим. перев.: уникальная история, что всколыхнула интернет в эти дни, показывает неожиданную сторону того, что могут «заслужить» авторы самых популярных Open Source-проектов. Ниже представлен перевод недавней заметки из блога шведского программиста Daniel Stenberg — оригинального автора и главного разработчика curl, обладателя премии Polhem Prize (вручается в Швеции за выдающиеся инженерные достижения).

            Как вам, наверное, известно, в своем блоге я публикую забавные электронные письма, которые периодически приходят мне на адрес. Ну, знаете, когда мне пишут о проблемах с каким-то своим устройством (вроде автомобиля), потому что мой email где-то там засветился.

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

            Увы, не все эти письма забавны.

            Читать далее
          • Олды в ИТ

              Когда ты молод, ты «бессмертен» и не задумываешься о старости. Есть просто уверенность, что если много и хорошо работать, то твоя карьера и доходы будут неуклонно расти. Следуя этой стратегии, ты развиваешься в профессии уже 15, 20, 30 лет. За эти годы уже получил огромный опыт и, наверное, он обязательно поможет безбедно и интересно прожить остаток дней. Но все не так просто. Да, ты уже давно работаешь в хорошей компании, занимаешься интересными проектами, получаешь за это достойную зарплату, но в будущем уже не так уверен, как раньше. Профессиональный возраст приходит с массой вопросов, на которые нужно ответь стратегически.

               Эта статья родилась на основе обсуждения горячей темы «Олды в ИТ», которую 4 января 2021 г. мы записали для подкаста Linkmeup. Обязательно послушайте запись здесь или в любимом подкаст-приложении.

              Читать далее
            • Поиск научных публикаций в Интернете. Часть 1. Что искать

              Начну с небольшого эпиграфа:

              As has often been pointed out, the advent of the internet has
              forever changed how information and ideas are distributed

              (Plotnik R.E., Paleont. Electr., vol.1, 2010,
              palaeo-electronica.org/2010_1/commentary/mainstream.htm)

              Я не случайно привёл в качестве эпиграфа отрывок из редакционной заметки в журнале Paleontologia Electronica – я палеонтолог, основной областью моих научных интересов являются изучение юрских отложений и встречающихся в них остатков головоногих моллюсков — аммонитов. Взяться за данный обзор я решил главным образом потому, что других обзоров такого типа мне не попадалось, и в то же время общение с коллегами и выступления перед ними укрепили меня в мысли, что грамотно использовать современные возможности поиска научной информации в сети Интернет умеют очень немногие. Ну а разместить всё это на хабре мне стало интересно в связи с тем, что c одной стороны здесь достаточно регулярно появляются заметки, каким-либо образом связанные с научными публикациями, а с другой стороны — здесь можно получить отклик от людей, связанных с совершенно другими научными направлениями и вообще от науки далёкими, что может дать мне возможность посмотреть на привычные вещи немного с иной стороны. Вполне возможно, что какие-то способы поиска публикаций, известные другим посетителям сайта я мог упустить, и в этом отношении тоже было бы полезно получить какой-нибудь отклик.
              Читать дальше →
            • Академия плохого кода: переводы строк, пробелы и отступы

              Привет, Хабр! Представляю вашему вниманию перевод статьи «Dark code-style academy: line breaks, spacing, and indentation» автора zhikin2207

              image

              Привет, народ! Позвольте мне продолжить рассказ про нашу академию плохого кода. В этом посте мы раскроем другой путь замедления чтения вашего кода. Следующие приёмы помогут вам уменьшить понимание вашего кода и увеличить шансы на появление в нём багов. Готовы? Давайте начнём.

              Переводы строк, пробелы и отступы могут убивать.


              Как люди читают книги? Сверху вниз, слева направо (по крайней мере — большинство). Это же происходит, когда разработчики читают код. Одна строка кода должна содержать одну мысль, следовательно, каждая строка должна содержать только одну команду. Если вы хотите смутить других разработчиков, вам лучше нарушить эти принципы. И давайте я покажу вам как это сделать.
              Читать дальше →
            • Объектно-ориентированный JavaScript простыми словами

              • Translation


              Доброго времени суток, друзья!

              В JavaScript существует 4 способа создать объект:

              • Функция-контруктор (constructor function)
              • Класс (class)
              • Связывание объектов (object linking to other object, OLOO)
              • Фабричная функция (factory function)

              Какой метод следует использовать? Какой из них является лучшим?

              Для того, чтобы ответить на эти вопросы мы не только рассмотрим каждый подход в отдельности, но и сравним между собой классы и фабричные функции по следующим критериям: наследование, инкапсуляция, ключевое слово «this», обработчики событий.

              Давайте начнем с того, что такое объектно-ориентированное программирование (ООП).
              Читать дальше →
              • +13
              • 19.9k
              • 2
            • Применение low-code в аналитических платформах

                Уважаемые читатели, доброго дня!

                Задача построения ИТ-платформ для накопления и анализа данных рано или поздно возникает у любой компании, в основе бизнеса которой лежат интеллектуально нагруженная модель оказания услуг или создание технически сложных продуктов. Построение аналитических платформ — сложная и трудозатратная задача. Однако любую задачу можно упростить. В этой статье я хочу поделиться опытом применения low-code-инструментов, помогающих в создании аналитических решений. Данный опыт был приобретён при реализации ряда проектов направления Big Data Solutions компании «Неофлекс». Направление Big Data Solutions компании «Неофлекс» с 2005 года занимается вопросами построения хранилищ и озёр данных, решает задачи оптимизации скорости обработки информации и работает над методологией управления качеством данных.



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

                Однако в каком случае задачи аналитики данных могут перерасти в задачи класса «Rocket Science»? Пожалуй, в тот момент, когда речь идёт о действительно больших данных.
                Чтобы упростить задачу «Rocket Science», можно есть слона по частям.



                Чем большая дискретность и автономность будет у ваших приложений/сервисов/микросервисов, тем проще вам, вашим коллегам и всему бизнесу будет переваривать слона.

                К этому постулату пришли практически все наши клиенты, перестроив ландшафт, основываясь на инженерных практиках DevOps-команд.
                Читать дальше →
              • Spark schemaEvolution на практике

                  Уважаемые читатели, доброго дня!

                  В данной статье ведущий консультант бизнес-направления Big Data Solutions компании «Неофлекс», подробно описывает варианты построения витрин переменной структуры с использованием Apache Spark.

                  В рамках проекта по анализу данных, часто возникает задача построения витрин на основе слабо структурированных данных.

                  Обычно это логи, или ответы различных систем, сохраняемые в виде JSON или XML. Данные выгружаются в Hadoop, далее из них нужно построить витрину. Организовать доступ к созданной витрине можем, например, через Impala.

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

                  Например, сегодня логируется такой ответ:

                  {source: "app1", error_code: ""}

                  а завтра от этой же системы приходит такой ответ:

                  {source: "app1", error_code: "error", description: "Network error"}

                  В результате в витрину должно добавиться еще одно поле — description, и придет оно или нет, никто не знает.

                  Задача создания витрины на таких данных довольно стандартная, и у Spark для этого есть ряд инструментов. Для парсинга исходных данных есть поддержка и JSON, и XML, а для неизвестной заранее схемы предусмотрена поддержка schemaEvolution.

                  С первого взгляда решение выглядит просто. Надо взять папку с JSON и прочитать в dataframe. Spark создаст схему, вложенные данные превратит в структуры. Далее все нужно сохранить в parquet, который поддерживается в том числе и в Impala, зарегистрировав витрину в Hive metastore.

                  Вроде бы все просто.
                  Читать дальше →
                • Когда Голливуд впервые заметил веб: что было правильно, и что – совершенно неверно

                  • Translation

                  Сеть. Хакеры. Джонни Мнемоник. 25 лет назад кино встретилось с киберпространством в вихре безумной моды, крутой музыки и паранойи из-за слежки



                  Анджелина Джоли и Джонни Ли Миллер взламывают планету в фильме «Хакеры» 1995 года

                  В 1995 году появился веб-сайт CNET, Microsoft запустила Internet Explorer, Билл Гейтс окрестил интернет «волной увлечения». И в том же году Голливуд выдал собственную волну увлечения фильмами, заигрывающими с киберпространством и наступающей информационной эрой.

                  Началось всё в мае 1995 года с выходом фильма "Джонни Мнемоник" – немного бессвязной научно-фантастической антиутопии с Киану Ривзом, снятой по мотивам произведения плодовитого автора Уильяма Гибсона, написанного им в стиле киберпанк (который он, как считается, и основал). В июле личность Сандры Баллок стёрли в триллере с теорией заговора "Сеть". В августе Дензел Вашингтон гонялся за сгенерированным компьютером серийным убийцей Расселом Кроу в "Виртуозности". В сентябре Анджелина Джоли нашла свою прорывную роль в анархическо-приключенческих "Хакерах". В октябре Кэтрин Бигелоу подарила нам антиутопический триллер "Странные дни".
                  Читать дальше →
                • Как мы использовали GraphQL в разработке на примере интернет-каталога

                    В этой статье мы делимся опытом реального применения GraphQL при создании интернет-каталога. Рассказываем о том, какие достоинства и недостатки этого языка запросов мы нашли при использовании стека GraphQL + Apollo Client, Next JS (SSR) + TypeScript.

                    Дисклеймер: мы не описываем подробно «магическую суть» и историю возникновения инструмента (об этом уже рассказано немало). Надеемся, что тем, кто уже знаком с GraphQL, окажется полезен наш практический опыт.

                    Читать дальше →
                  • Вышел Puppy Linux 9.5, дистрибутив для устаревших и слабых ПК и ноутбуков


                      Разработчики Puppy Linux выпустили новый релиз — 9.5 (FossaPup). Его загрузочный образ занимает всего 409 МБ. Новинка основана на пакетной базе Ubuntu 20.04 и Woof-CE, инструмента, который дает возможность использовать пакетные базы сторонних дистрибутивов.

                      По словам разработчиков, использование Ubuntu в качестве основы дало возможность сократить время подготовки и тестирования релиза, а также обеспечить максимальную совместимость с репозиториями Ubuntu. При этом сохранена совместимость с пакетами Puppy.
                      Читать дальше →
                    • Интервью с мамой, банковским программистом на COBOL'е

                      • Translation


                      Фото из Гугла, это не мама автора


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


                      Объясню немного


                      Мир банковского программного обеспечения — это другая вселенная. Она сильно отличается от той, к которой привыкло большинство из нас. Я публикую этот пост на HN и на Reddit. Публикую интервью не в виде вопросов-ответов, а в виде рассказа. Я добавил некоторые вопросы и ответы в нижнюю часть поста.


                      1991


                      Год, когда она начала внутреннее обучение в банке Nordea, который тогда назывался Nordbanken (Северный банк). В 2001 году его переименовали в Nordea. Во время обучения она должна была проходить различные тесты, в первую очередь тест IQ, чтобы показать, что она обладает интеллектом, достаточным для работы в этой области. Тест на психологическую устойчивость — что у неё достаточно нервов для этой специфической работы и тест на многозадачность, который она завалила с оценкой 22/100. Остальные тесты она прошла успешно и заняла одну из 16 доступных позиций.


                      Должность звучала «как программист мэйнфреймов IBM на языке COBOL», и до сих пор, уже 25 лет, моя мама работает на этой должности в том же банке.


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

                      Читать дальше →
                    • Минимальный WebGL в 75 строках кода

                      • Translation
                      Современный OpenGL и, в более широком смысле, WebGL, сильно отличается от старого OpenGL, который я изучал в прошлом. Я понимаю, как работает растеризация, поэтому вполне разбираюсь в концепциях. Однако в каждом прочитанном мной туториале предлагались абстракции и вспомогательные функции, усложнявшие мне понимание того, какие части относятся к самим API OpenGL.

                      Уточню — такие абстракции, как разделение данных позиций и функциональности рендеринга на отдельные классы важны в реальных приложениях. Однако эти абстракции раскидывают код по разным областям и добавляют избыточность из-за бойлерплейта и передачи данных между логическими единицами. Мне удобнее всего изучать тему на линейном потоке кода, в котором каждая строка непосредственно относится к этой теме.

                      Во-первых, нужно поблагодарить создателя использованного мной туториала. Взяв его за основу, я избавлялся от всех абстракций, пока не получил «minimal viable program». Надеюсь, она поможет вам начать освоение современного OpenGL. Вот что мы будем делать:


                      Равносторонний треугольник, зелёный сверху, чёрный в нижнем левом углу и красный в нижнем правом, с интерполированными между точками цветами. Чуть более яркая версия чёрного треугольника [перевод на Хабре].
                      Читать дальше →
                      • +19
                      • 6.3k
                      • 5
                    • Чёрные треугольники

                      • Translation

                      В октябре 1994 года я только начал свою карьеру добросовестного программиста видеоигр в небольшом стартапе SingleTrac, который позже получил славу и почёт (но, к сожалению, не очень много удачи) благодаря таким сериям игр, как Warhawk, Twisted Metal и Jet Moto. Но в то время в компании было меньше 20 сотрудников, и официально она работала всего около месяца. Это случилось в мою первую рабочую неделю, возможно, в первый или второй день. Из кабинета разработчиков слышались восторженные крики.

                      Финансовый контролёр и действующая HR-леди нашей компании Джен вышла посмотреть, что за невероятный успех празднуют инженеры и художники. Все смотрели в экран телевизора, подключённого к комплекту разработки Sony Playstation. На экране на фоне одноцветного фона отображался чёрный треугольник.
                      Читать дальше →
                    • Делаем Linux терминал красивым и удобным

                      Все дистрибутивы Linux поставляются с функциональным и кастомизируемым эмулятором терминала. В интернете, а порой даже в самом терминале, есть масса готовых тем, чтоб он красиво выглядел. Однако, чтоб сделать из стандартного терминала (в любом DE, любого дистрибутива) нечто красивое и одновременно удобное и простое в использовании я потратил много времени. Итак, как же сделать дефолтный терминал удобным и приятным в использовании?
                      Читать дальше →
                    • Разрабатываем самый удобный в мире* интерфейс для просмотра логов

                        Если Вам приходилось когда-нибудь пользоваться веб-интерфейсами для просмотра логов, то Вы наверняка замечали, насколько, как правило, эти интерфейсы громоздки и (зачастую) не слишком-то удобны и отзывчивы. К некоторым можно привыкнуть, некоторые совсем ужасны, но, как мне кажется, причина всех проблем заключается в том, что мы неправильно подходим к задаче просмотра логов: мы пытаемся создать веб-интерфейс там, где лучше работает CLI (интерфейс командной строки). Мне лично очень комфортно работать с tail, grep, awk и прочими, и поэтому для меня идеальным интерфейсом для работы с логами было бы что-то аналогичное tail и grep, но которое при этом можно было использовать для чтения логов, которые пришли с множества серверов. То есть, конечно же, читать их из ClickHouse!


                        *по личному мнению хабрапользователя youROCK

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