• Переезд в Турцию. Жизнь и работа в поселке на побережье Средиземного моря

      Привет / Merhaba! Я сетевой инженер из Санкт-Петербурга, один год жил и работал в Москве, но всегда мечтал пожить в небольшом поселке, без пробок и суматохи. И вот мы всей семьей уже более полугода живем в поселке Taşucu (Ташуджу), который расположен в провинции Mersin, рядом с городом Silifke, на побережье Средиземного моря. Сейчас Россия ведет активные работы по строительству объекта энергетики и сопутствующей инфраструктуры в Турции, поэтому переезд на Средиземноморское побережье стал для россиян более доступным (наличие вакансий в разных сферах). Турция располагает как для удаленной работы и фриланса, так и трудоустройства. Сегодня я расскажу про особенности переезда, оформления документов, особенности жилья, плюсах и минусах жизни в небольшом турецком поселке, где всего один светофор и почти не бывает туристов. Данные актуальны на 2021 год.

      Читать далее
    • Star7: с чего начиналась Java

        В начале 90-х годов в Sun Microsystems, в 2010 году поглощенной Oracle, проводился ряд реформ, связанных с переопределением приоритетов компании. В результате преобразований появился так называемый Project Green, с которым связано создание языка Java. Java — это косвенный результат деятельности «Зеленого проекта»; изначально о разработке нового языка никто и не думал. Основной целью являлось создание универсального устройства, управляющего бытовыми приборами, — эдакого предка умного дома. Получившийся прототип гаджета назвали Star7, но широкой популярности он не сыскал. В статье пойдет речь об истории создания Star7, о том, почему идея такого устройства «не выстрелила», и как вспомогательный инструмент Java стал самодостаточным продуктом.

        Читать далее
      • Самая совершенная китайская пишущая машинка

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

          Читать далее
          • +36
          • 6,4k
          • 8
        • React: немного о работе с формами



            Привет, друзья!


            В последнее время мне на глаза часто попадаются статьи, посвященные работе с формами в React и разработке соответствующих кастомных хуков. Вот парочка таких статей:



            Я тоже решил попробовать в этом свои силы, чему и посвящена настоящая статья. Под "этим" я подразумеваю разработку кастомного хука для работы с формами в React.


            Сначала мы разработаем хук, затем используем его в формах для регистрации и авторизации.


            Для большей правдоподобности мы напишем простой express-сервер, который будет возвращать некоторые пользовательские данные (например, jwt-токен и хешированный пароль), а также некоторые типичные для процесса авторизации ошибки (например, 404 User not found или 409 Email already in use).


            При разработке хука и компонентов приложения мы применим несколько продвинутых паттернов, которые, смею надеяться, покажутся вам интересными.


            Исходный код проекта находится здесь.


            Демо приложения:



            Возможно, для того, чтобы в песочнице все заработало, потребуется ввести команду yarn dev в терминале.


            Хук в форме npm-пакета — simple-form-react.

          • Модель крючка для IT-продуктов



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

              Нир Эяль описывает «модель крючка», которую используют все современные диджитал-продукты, формирующие у пользователя привычку. 

              Под катом я выделила элементы модели крючка и привела немного рефлексии моего UX на «Хабре», в TikTok. Плюс я нашла свежую статистику по использованию смартфонов, которые утыканы крючками как ежики иголками.

              В самом конце статьи для желающих ознакомиться с книгой чуть подробнее есть краткое содержание
              Читать дальше →
            • 22 интересные фичи, которые стоит добавить в Telegram


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

                Читать дальше →
              • Об украинских и русских гласных

                  Одно из самых заметных отличий украинского языка от русского — гласный [і] на месте дореволюционного ятя и в тех словах, где в русском [о]: двір, дім, сільрадість и т. п. Это отличие настолько характерно, что стереотипным «плохим украинским» в юморесках стал русский с заменой [о] на [і]: «кровосісі» и т. п. При этом в других, внешне похожих словах — русскому [о] соответствует [о] и в украинском: кров, рот, сон, голос, ворон и т. п. В чём же разница между этими двумя группами слов? Статья «Икавизм» в русской Википедии предельно лаконична: «переход звуков [ě] (ять), [o], [е], [у], при их нахождении в закрытом слоге, в звук [i]» — хотя и во второй группе слоги закрытые.

                  Считается, что в праславянском языке было четыре кратких гласных [е о ъ ь], пять долгих [а и у ы ѣ] и действовал закон открытого слога, в соответствии с которым все слоги обязаны завершаться гласным: *дво.ръ, *до.мъ, *со.ль, *ра.до.сть, *кръ.вь, *ръ.тъ, *съ.нъ, *го͡л.съ, *во͡р.нъ. Около 7 в. дифтонги [о͡л] и [о͡р] распались, и закон открытого слога потребовал исправить ситуацию: в древнерусском получились го.ло.съ и во.ро.нъ, в западно- и южнославянских языках (включая церковнославянский) — гла.съ и вра.нъ. Затем в 11–13 вв. произошло падение редуцированных: нечётные [ъ] и [ь], считая от конца слова, исчезли, а чётные понизились до [о] и [е] соответственно: сон, во‿сне ← *съ2нъ1, *въ2‿съ1нѣ. Беглый [о], получившийся из древнерусского [ъ], соответствует [о] и в украинском. Дополнительный признак такого [о] — соответствие [e] в западнославянских языках, например в чешском: krev, ret, sen. В отдельных случаях этот гласный небеглый в русском, но беглый в других языках: в крови, v krvi [ˈfkr̩.vɪ] ← *въ кръве. Второй случай, когда русскому [о] соответствует [о] и в украинском, — полногласные сочетания оро и оло, дополнительный признак которых — неполногласные соответствия в других языках: голос ворон, hlas vran ← *голсъ ворнъ.

                  Читать далее
                • Валерий Брюсов — предсказатель «Скайнета»

                    Автор: Павел Пырин

                    Hа ковpе — веpтолете
                    Ветеp бьет в глаза.
                    Hам хотя бы на излете
                    Заглянуть за...

                    Агата Кристи — «Ковер-вертолет»

                    Хоть одним глазком заглянуть за горизонт времени, увидеть: «Как там, в будущем?». Каждый из нас хоть раз испытывал такое желание. Писатели, поэты, художники, ученые — все, в той или иной степени, старались во все времена предсказать будущее.

                    Читать далее
                    • +17
                    • 3,9k
                    • 9
                  • JavaScript: об очистке данных, хранящихся на стороне клиента, по сигналу сервера и немного о карте импортов



                      Введение


                      Привет, друзья!


                      Представляю вашему вниманию результаты небольшого исследования, посвященного очистке данных, хранящихся на стороне клиента по сигналу сервера. Речь идет об относительно новом HTTP-заголовке Clear-Site-Data. Также в этой статье мы немного поговорим про карту импортов (imports map).


                      Статья состоит из двух частей: теоретической и практической.


                      В теоретической части мы кратко рассмотрим карту импортов и более подробно Clear-Site-Data.


                      В практической части мы поднимем два сервера — один будет запускаться локально и, помимо прочего, обслуживать статические файлы нашего приложения, другой мы развернем на Heroku. Сначала мы запросим данные (включая куки) от серверов, сохраним эти данные в браузере с помощью трех наиболее популярных механизмов (локальное хранилище, индексированная база данных и интерфейс кеширования), затем попробуем очистить их с помощью заголовков Clear-Site-Data. Для разрешения путей импортируемых в приложении модулей мы будем использовать карту импортов.


                      Исходный код проекта находится здесь.

                      Читать дальше →
                    • Динамическая JIT компиляция С/С++ в LLVM с помощью Clang

                      • Tutorial


                      При создании компилятора для собственного языка программирования я сделал его как транспайлер в исходный код на С++, вот только реализация сильно подкачала. Сначала приходится генерировать динамическую библиотеку с помощью вызова gcc, который и сам по себе не очень быстрый, так еще его может и не быть на целевой машине, особенно на другой платформе (например Windows). Конечно, для первых экспериментов и такой реализации было достаточно, но сейчас, когда я начал готовить код компилятора к публикации, стало понятно, что текущий вариант с фоновым запуском gcc никуда не годится.

                      Из-за этого, я решил не откладывать перевод компилятора на использование LLVM, который планировался когда нибудь в будущем, а решил сделать это уже сейчас. И для этого нужно было научиться запускать компиляцию C++ кода с помощью библиотек Clang, но тут вылезло сразу несколько проблем.

                      Оказывается, интерфейс Clang меняется от версии к версии и все найденные мной примеры были старыми и не запускались в актуальной версии (Сlang 12), а стабильный C-style интерфейс предназначен для парсинга и анализа исходников и с помощью которого сгенерировать исполняемые файлы не получится*.

                      Дополнительная проблемой оказалось, что Clang не может анализировать файл из памяти, даже если для этого есть соответствующие классы. Из объяснений выходило, что в экземпляре компилятора проверяется, является ли ввод файлом**.

                      А теперь публикую результат своих изысканий в виде рабочего примера динамической компиляции С++ кода с последующей его загрузкой и выполнением скомпилированных функций. Исходники адаптированны под актуальную версию Clang 12. Пояснения к коду я перевел и дополнил перед публикацией, а ссылки на исходные материалы приведены в конце статьи.

                      • *) Кажется в 14 версии планируется реализовать C интерфейс для генерации исполняемых файлов.
                      • **) На самом деле, Clang может (или теперь может) компилировать файлы из оперативной памяти, поэтому в исходники я добавил и эту возможность.
                      Читать дальше →
                    • Утилитарные цифровые права, цифровые активы и цифровая валюта. Разбираемся, что есть что по российскому закону

                        При упоминании цифровых прав в голове у каждого возникает стойкая футуристическая, но абсолютно неконкретная ассоциация – это права, связанные больше не с людьми и вещами, а с пользователями и Интернетом. Действительно, в международном праве формируется новая категория цифровых прав, связанных с правами человека в Интернете, однако пока она точно не определена ни на международном, ни на национальном уровне. В этом материале я хочу поговорить о других цифровых правах, а именно о тех, которым посвящена ст. 141.1 Гражданского кодекса РФ.

                        Читать далее
                        • –2
                        • 1,1k
                        • 2
                      • Не «Оперой» единой. Выбираем proxy-сервис вместо Opera VPN



                          Признаюсь, я никогда не считал себя преданным фанатом Opera. Тем не менее этот браузер был установлен на всех моих компьютерах — из-за простой и удобной функции VPN (который даже не VPN, а, скорее, продвинутый прокси), позволявшей при необходимости быстро менять внешний IP-адрес и локацию, что бывает просто необходимо в целом ряде случаев — скажем, в процессе отладки веб-приложений. Да мало ли по какой причине благородному дону вдруг понадобится предстать в сети канадским фермером или испанским кабальеро? И вот с недавних пор сервис Opera VPN был отключен для российских пользователей разработчиками браузера. Что ж, настало время искать альтернативу!
                          Читать дальше →
                        • Коварные болезни: легионеллёз

                            Люди смертны, что не новость. Хуже от того, что они бывают смертны внезапно. 27 июля 1976 года в солнечном штате Пенсильвания скончался 61-летний капитан американских воздушных сил Рэймонд Бреннан. Медики не увидели в его смерти ничего странного, диагностировав сердечный приступ и списав его на героическое прошлое славного вояки. На том бы история и закончилась, смерть его бы затерялась в истории, если за ней не последовали другие. 30 числа умирает Фрэнк Авени, тоже бывший военный, которому совсем недавно исполнилось шестьдесят лет. И опять сердечный приступ. Поначалу и это происшествие не вызвало особого внимания, но следом последовало еще несколько смертей с малым временным интервалом.

                            На единичное происшествие происходящее списать уже не получалось. Собранный анамнез был похожим: погибшие при жизни жаловались своим домочадцам на боли в спине, кашель и сильную усталость. Если первые два случая еще можно было бы объяснить возрастом, то смерть 39-летнего мужчины от пневмонии, которая развилась буквально за несколько дней, выпадала из ряда вон и наконец привлекла пристальное внимание. Врачи начали пытаться установить причину таких странных смертей, почувствовав, что здесь явно что-то не так.

                            В больницу через некоторое время попадает еще один человек – Майкл Рассел Дуган, почтальон на пенсии, который почувствовал себя плохо по дороге домой. У него крайне высокая температура, лихорадка, и он проваливается в кому. Температуру пытаются сбить, берут анализы каждые пятнадцать минут, но все тщетно – из-за чего его состояние ухудшилось неизвестно. Если первые два случая можно было связать за счет того, что умершие были знакомы, то этот был исключением - Дуган не контактировал с погибшими ранее.

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

                            Читать далее
                          • История проблемы равенства классов P и NP

                              В 2000 году Математический институт Клэя определил 7 математических задач, решение которых не могли найти в течение многих лет. За решение каждой из них была назначена награда в размере 1 миллиона долларов. Эти 7 задач известны как «задачи тысячелетия», и на сегодняшний день только одна из них была решена — гипотеза Пуанкаре. В этой статье пойдет речь о вопросе равенства классов P и NP, ответ на который может сильно повлиять на всю IT-сферу.

                              Читать далее
                              • +23
                              • 5,7k
                              • 8
                            • Civilization Сида Мейера: баг «ядерного Ганди» в том, что его не было

                                Хочу поделиться с вами несколькими малоизвестными историями про серию игр Civilization, которые рассказал Сид Мейер в автобиографической книге «Жизнь в мире компьютерных игр».

                                Если бы я попыталась просто привести все самые интересные фрагменты книги, то мне пришлось бы просто процитировать около 85% текста. Так что я поделюсь только фактами, связанными с самой знаменитой игрой Сида Мейера. Под катом несколько фактов из истории создания Civilization, ошибки, фичи, от которых отказались в процессе создания игры, появление читов и объяснение мифа про «ядерного Ганди» от Сида Мейера.


                                Читать дальше →
                              • История портативных консолей

                                  В середине июля Valve представила портативную консоль Steam Deck: первые покупатели получат свои девайсы уже в конце этого года. Прежде попытки Valve выйти на рынок девайсов, например с геймпадом Steam Controller, особым успехом не отличились. Однако предстоящий гаджет от Valve вызывает закономерный вопрос:  портативная консоль в 2021 году? Казалось бы, пик популярности портативных консолей остался в конце нулевых и начале десятых годов. Возможно, лучше разобраться в вопросе поможет история, а именно история портативных консолей.

                                  Читать далее
                                  • +13
                                  • 5,4k
                                  • 7
                                • Redux Vs Vuex. Часть 2



                                    Привет, друзья!


                                    Предлагаю вашему вниманию результаты небольшого исследования, посвященного сравнению Redux и Vuex. Это вторая часть статьи, вот ссылка на первую.


                                    Введение


                                    Redux и Vuex — это библиотеки для управления состоянием приложений, написанных на React и Vue, соответственно. Каждая из них по-своему реализует архитектуру для создания пользовательских интерфейсов, известную под названием Flux.

                                    Читать дальше →
                                  • Его величество Порох

                                      В предыдущих частях я прошёлся по металлическим составляющим патрона — гильзе и пуле, сегодня же разговор пойдёт о химии, без которой ни один уважающий себя патрон работать не будет. Конечно же это порох. Касаться седой старины с открытием его китайцами и монахом-алхимиком Бертольдом Шварцем не будем, сразу перейдём к концу XIX века. Время это интересно тем, что как раз тогда активно шёл процесс перехода от дымного пороха к бездымному. У такого перехода был вполне очевидный плюс — отсутствие облака дыма, вырывающегося из ствола после выстрела. С одной стороны, самим стрелкам не приходилось чувствовать себя ёжиками в тумане и делать перерывы для восстановления видимости, а с другой — резкое уменьшение демаскирующего фактора выстрела. Но всё это меркло на фоне плюса неочевидного — бездымные пороха давали гораздо большее давление газов при сгорании, позволяя поднять скорость пули, а значит, и увеличить её энергию. А там уже и дальность полёта пули больше, и настильность лучше, и калибр можно уменьшить, и патрончики сделать поменьше, чтобы носить их побольше, а заодно и стволы винтовкам укоротить. В общем, плюсов множество, и это далеко не полный список. Проблемой было только укротить тот самый бездымный порох, с чем химикам пришлось конкретно так повозиться.


                                      Читать дальше →
                                    • Советский водяной компьютер

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

                                        Читать далее
                                      • Эх, полетаем! Электрические аэротакси уже на подходе



                                          Беспилотными автомобилями в наши дни никого не удивишь: опытные образцы, созданные при участии крупных айтишных компаний (включая наших соотечественников из «Яндекса»), успешно проходят ходовые испытания. Настало время сделать следующий логический шаг: приступить к производству полностью беспилотных летательных аппаратов. Впрочем, о чем я говорю? Этот шаг уже давным-давно сделан!
                                          Читать дальше →

                                        Самое читаемое