• VShard — горизонтальное масштабирование в Tarantool



      Меня зовут Владислав, я участвую в разработке Tarantool — СУБД и сервера приложений в одном флаконе. И сегодня расскажу вам, как мы реализовали горизонтальное масштабирование в Tarantool при помощи модуля VShard.
      Читать дальше →
    • Behaviors — конечный автомат без головной боли

      • Tutorial
      Стандартный подход к описанию последовательности вводов пользователя и реакции на них (например при управлении персонажем в игре) — это конечный автомат (state machine). Он, однако, часто приводит к громоздким программам, понимание которых требует немалых усилий или даже зарисовок на бумаге. В этой статье я предлагаю небольшой сдвиг в описании, который позволяет экономить место на экране и мозговой ресурс.


      image

      Сдвиг в описании заключается в использовании техники сопрограмм. Для применения этой техники, необходимо представить, какое поведение мы ожидаем от компьютера в итоге. Поэтому я назвал небольшую библиотеку, которую создал под эту задачу — Behaviors.
      Читать дальше →
    • План развития IT согласно Минкомсвязи: цифровой суверенитет, блокчейн в ЖКХ, софт для «изменённой реальности»

        Целевой показатель Факт 2017 год Прогноз 2020 год Прогноз 2025 год
        0,88 1,06 1,45
        Удельный вес численности занятых в ИТ отрасли в численности занятых по
        экономике, проценты
        0,49 0,55 0,60
        Производительность труда в ИТ отрасли, млн руб. 2,09 2,32 3,35
        Объём экспорта компьютерных и информационных услуг, млрд долл. 3,54 5,45 8,33
        Основные индикаторы развития отрасли IT в России

        На портале TAdviser опубликован текст проекта развития российской IT-отрасли на 2019–2025 годы и на перспективу до 2030 года (pdf), который Минкомсвязь отправила в 22 ведомства, отраслевые ассоциации и несколько компаний, крупнейших разработчиков российского программного обеспечения.
        Читать дальше →
        • +11
        • 3,7k
        • 6
      • Опыт программирования на Юниксе*

        Под программированием понимается собственно процесс программирования на С для мелких микроконтроллеров, а также трассировка печатных плат, рисование моделек в Солиде, редактирование доков в Офисе, чтение интернета и написание этой заметки.


        Вот это устройство UNIX FIT MX-450V, или кратко – *ЮНИКС, на котором и осуществляется процесс программирования.



        Вообще, всё вместе это 1001-е выступление на тему «о правильном рабочем месте программиста». Все составные части девайса многократно описаны в литературе, никаких революционных свершений не предлагается, зато приведен в целом успешный опыт инсталляции и использования. Устройство классическое – подъёмный стол и под ним беговая дорожка. Фотки – частично из сети, частично из моей рабочей берлоги, заранее прошу прощения за невысокое качество – условия тотальной захламленности + убогое освещение + я, увы, не фотограф совсем. Под катом – множество подробностей, включающих вивисекцию невинных железочек с элементами колхоза.

        Читать дальше →
      • Быстрый старт в 3D печати: бюджетные принтеры для начинающих или технологии в массы

          Наступил тот момент, что иметь дома маленький настольный 3Д принтер совсем не накладно, а использование его не требует глубоких познаний технологии или опыта печати. В магазине есть несколько неплохих моделей дешевле $200 (!), которые подойдут начинающим пользователям. Все 3Д принтеры умеют печатать популярным и безопасным пластиком PLA, который не имеет запаха и является самым простым в освоении.
          Читать дальше →
        • 7 направлений развития Linux в 2019 году

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


          Читать дальше →
        • Создание сторис для Instagram из PHP

          Вступление


          В последнее время люди более охотно смотрят в социальных сетяx видео, нежели просматривают фотографии. Сторис в инстаграм набирает в 3-4 раза больше просмотров, чем просто выложенная фотография.

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

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

          Эта статья о том, как работать с библиотекой, как создавать свои собственные сторис из PHP.
          Читать дальше →
        • Эти токсичные парни: они отравляют проекты

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



            Ах-ха, как бы не так! Что за скучная жизнь без борьбы? Чтобы вы не расслаблялись, на страже вашего жизненного тонуса и постоянного напряжения во всех сфинктерах стоят токсичные парни и девчонки (да-да, про них я тоже не забыл, не думайте).

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

            Тараканы Корпоративные (токсичность:☣☣☣)


            Ареал обитания и повадки:
            Заводятся в крупных корпорациях, в маленьких компаниях приживаются плохо. Тараканам нужно много бегать и утверждать переутверждение согласованных согласований. Максимум движений с отрицательной пользой.
            Читать дальше →
          • Кодекс читателя

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

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

              Первым было использовано слово «манифест». Точно помню — это был манифест отношений между продавцами и снабженцами. Потом был кодекс инженеров-конструкторов, конституция отдела внешне-экономической деятельности, и т.д. Каждый следующий выдумщик, естественно, хотел отличаться от предыдущих. Не круто, когда в компании два манифеста или три кодекса — чтобы понять, о какой конкретно бумажке речь, нужно расшифровывать. А когда у каждого новое слово — самое то.

              Но вот беда — подобные слова быстро заканчиваются. Потом останутся только совсем экзотические, вроде «хартии» или «манускрипта». Я предложил ребятам слова резервировать — заранее объявлять, что мы, дескать, начинаем разрабатывать хартию кладовщиков, и отныне это слово никто не имеет права использовать.

              Лично мне больше нравились аббревиатуры — их легко придумывать, и вариантов — намного больше. Например, у меня была Статистика Использования Функционала Автоматизации — набор инструментов, собиравший данные об использовании механизмов, созданных программистами. Еще был Журнал Отклонений Процессов Автоматизации, куда заносились косяки пользователей.

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

              Привет, Хабр! Представляю вашему вниманию перевод поста Дэна Абрамова «The Elements of UI Engineering» о современных проблемах и задачах, которые должны быть решены в хорошем интерфейсе. Автор разбирает фундаментальные проблемы при разработке интерфейсов, осмысление и решение которых самостоятельно — без использования готовых библиотек и фреймворков — способно дать глубинное понимание существующих на рынке решений в области frontend-разработки.



              Примечание переводчика
              Текст написан и переведен от первого лица. Автор оригинала на английском — Дэн Абрамов, разработчик библиотеки React для построения сложных пользовательских интерфейсов.

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

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

              И я раздумывал — в чем же я разбираюсь и что нахожу важным? Конечно, я хорошо знаком с такими технологиями, как Javascript и React. Однако, самые важные вещи, которые приходят с опытом, неуловимы и обычно ускользают при попытках точно их сформулировать. Я никогда не пытался выразить их словами. Это моя первая попытка систематизировать и описать некоторые из них.
              Читать дальше →
            • Пример клиент-серверного приложения на Flutter

              • Перевод
              • Tutorial


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


              Читать дальше →
              • +19
              • 7,3k
              • 3
            • Mkcert: валидные HTTPS-сертификаты для localhost


                В наше время использование HTTPS становится обязательным для всех сайтов и веб-приложений. Но в процессе разработки возникает проблема корректного тестирования. Естественно, Let’s Encrypt и другие CA не выдают сертификаты для localhost.

                Традиционно есть два решения.
                Читать дальше →
              • Дизайн-система в Figma. Взгляд на интерфейс через компоненты



                  Какой должна быть оптимальная дизайн-система в Figma? Что такое переиспользуемый компонент? Как понятнее и удобнее организовать структуру внутри панели Instance? Каковы этапы разработки подобного продукта? И так далее. Ответы на эти и многие другие вопросы я постараюсь дать в этой статье.
                  Читать дальше →
                • Чем Figma лучше Photoshop для разработки веб-интерфейсов



                    Огромное количество дизайнеров во всем мире в качестве инструмента для разработки веб-интерфейсов использует Adobe Photoshop. В этом нет ничего удивительного — Photoshop способен справиться практически с любой задачей, которая имеет отношение к графике.

                    Но как и все комбайны, инструмент от Adobe в некоторых случаях уж слишком неповоротлив и сложен. При решении специфических задач, включая разработку веб-интерфейсов, можно попробовать и другие инструменты. Среди прочих можно назвать Sketch, Adobe XD и Figma. Сейчас предлагаем поговорить как раз о последнем, остальные обсудим в следующих публикациях.
                    Читать дальше →
                  • Производительность Excel на чистом Javascript — достижима

                      Привет Хабр!

                      Продолжаем битву за производительность Javascript на примере построения сводных таблиц. В прошлый раз камнем преткновения стал асинхронный интерфейс IndexedDB, который, используя межпоточный вызов для каждой записи курсора, работает чудовищно медленно. Решив эту проблему путем организации крупноблочного хранения, а также применив все известные оптимизации, мне удалось поднять производительность приложения в 20 раз, и в настоящее время расчет по хранилищу в 1 миллион фактов занимает 21 секунду, что потенциально дает надежду догнать Америку Excel, который обрабатывает тот же миллион строк за 5..7 секунд.

                      Однопроходный алгоритм, не использующий индексы и вложенные запросы, отлично ложится на блочную схему хранения данных, и, самое обнадеживающее — позволяет распараллелить расчет по разным потокам (воркерам), по сути повторяя алгоритмы «взрослых» СУБД. Таким образом — возможности по оптимизации далеко не исчерпаны. В настоящее время расчет производится лишь одним воркером, WASM не используется, результаты «милионного» теста на различных браузерах следующие:
                      Браузер Время
                      Chomium Linux 21 сек
                      Firefox Linux 51 сек
                      Chrome Android 29 сек
                      Firefox Android 62 сек
                      В приложении доступен генератор тестовых данных, также можно загрузить собственный JSON и проверить цифры. Приложение в глубокой бетте, так что ошибки должным образом не обрабатываются, простите. Под катом — несколько кейсов по ускорению WEB-приложений, которые, конечно, все являются банальностями и очевидностями, просто я, как любитель учиться на собственных ошибках — их проверил, зафиксировал, и теперь стараюсь соблюдать.
                      Читать дальше →
                    • Максимально вырожденная игра на общение



                        Сразу скажу, эта штука просто офигенна для небольшой вечеринки, и сделать её можно прямо прочитав пост. Я крайне удивлён, что такая штука до сих пор не продавалась в России. И, кажется, знаю, почему.

                        Потому что она настолько тривиальна, что это сложно представить.

                        Но давайте начнём с начала. Итак, настольные игры нужны для общения. Как повод встретиться с друзьями (а для этого многим реально нужен повод — ведь соцсети уверенно разделяют людей). Люди обмениваются тёплыми словами, — ну, стоит, в общем, положительный транзакционный обмен с нулевой суммой.

                        Задача — найти максимально вырожденную игру, которая работает только на общение. Сначала я думал, что встретил её в Южной Африке на обучении — мы играли в классическую «две правды и ложь».

                        Но, оказывается, можно ещё проще. И с совершенно убойным результатом.
                        Читать дальше →
                      • Самые значительные утечки данных в 2018 году. Часть вторая (июль-декабрь)

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



                          Как уже говорилось ранее — в обзор попали только крупные случаи утечек информации по всему миру и месяц инцидента указан не по времени его происшествия, а по времени раскрытия (публичного анонса).


                          Посмотрим как протекало второе полугодие…

                          Читать дальше →
                          • +16
                          • 4,8k
                          • 3
                        • А кто в вашей банде?

                            Так получилось, что в компаниях, где я работал, очень любили всякие тесты из арсенала HR. Всех – и руководителей, и рядовых исполнителей, прогоняли через эти тесты.

                            Тесты, как правило, определяли тип личности применительно к профессиональной деятельности – к чему человек наиболее склонен, что ему дается легко, какая деятельность заставляет напрягаться, а за что лучше вообще не браться.

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

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

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

                            Не буду рассказывать про сами тесты – этой информации полно в интернете, да и ваши HR, если попросите, с радостью накидают вам с десяток.

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

                            Рассказывать буду, в основном, на примере программистов и сис.админов. Иногда буду выходить за установленные пределы, т.к. в команде ИТ нескольких типов личности не было вообще, но они гуляли в соседних отделах.
                            Читать дальше →
                          • Простое объяснение простоты. Глава 1: Теоретически просто

                            • Tutorial

                            Простое объяснение простоты


                            image
                            КДПВ с областями, которые нам придется посетить, чтобы ответить на ГЛАВНЫЙ вопрос.

                            Предисловие


                            Я часто слышал совет: сделай проще.

                            А что значит простой? Когда мы говорим, что объект X — простой, каковы наши ожидания от X? Когда мы говорим, что какая-то вещь проще чем другая — как мы это оцениваем?

                            Что проще:
                            “Небольшое предложение из пяти слов” или слово “Дезоксирибонуклеиновый”?
                            “6*5” или “481”?

                            Или так:
                            У вас есть экран настроек. Пять пунктов из них относятся к графике, другие пять к уведомлениям. Надо ли вам создавать отдельные пункты «графика» и «уведомления» в основном меню? Или оставить все 10 пунктов на одном экране? Что будет проще для пользователя?
                            Читать дальше →