Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Как стать автором
Хабровчане vs. цифровые сервисы банков: итоги
  • Все потоки
  • Разработка
  • Администрирование
  • Дизайн
  • Менеджмент
  • Маркетинг
  • Научпоп
Войти Регистрация
50,0
Карма
0,2
Рейтинг
14
Подписчики
0
Подписки

Михаил michael_v89

Программист

Профиль

Публикации 12

Комментарии 5,3k

Закладки 43

  • michael_v89 29 ноября 2020 в 16:34

    Опрос. Денормализация или нет?

    • Анализ и проектирование систем,
    • SQL,
    • Проектирование и рефакторинг

      Недавно мы с коллегой по профессии обсуждали в Интернете (точнее в ЛС на Хабре) архитектуру некоторой системы, и у нас возник спор по одному вопросу.


      Имеется склад, где хранятся разные материалы, имеются документы прихода и расхода материалов, в документах есть записи с информацией "материал, количество", связь один-ко-многим. В базе данных есть таблица с информацией о текущем наличии материалов на складе, есть таблица для документов и таблица для их позиций. Назовем их "current_stocks", "documents", "document_positions".


      Считать ли таблицу "current_stocks" денормализацией данных?

      Читать дальше →
      • –6
      • 4,1k
      • 134
    • michael_v89 10 июня 2020 в 19:42

      Парсер данных по произвольной грамматике в 400 строк

      • Компиляторы

        Есть много существующих инструментов для парсинга файлов по заданной грамматике. Например, ANTLR или Yacc. Они используют конечные автоматы и генерируют большие файлы с исходным кодом для парсинга. Действительно ли это так сложно? Попробуем сделать сами.


        В этой статье я покажу, как можно сделать такой парсер методом рекурсивного спуска. Для сравнения я буду говорить об ANTLR, другие парсеры не рассматриваются. Под катом много примеров кода, без этого сложно объяснить, почему сделано так, а не иначе.


        Будем делать парсер для грамматик в ANTLR-like виде. Вот в таком:


        C:
            | A1? A2* A3
            | B1? B2+ B3
        ;

        Делать будем на языке PHP. А если получится нормально, перепишем на C++.

        Читать дальше →
        • +19
        • 5,9k
        • 51
      • michael_v89 14 сентября 2018 в 07:07

        Что такое интеллект?

        • Искусственный интеллект
          Этот вопрос волнует многих. Строятся теории с привлечением разных сложных понятий, от магии до квантовой физики. Что если всё проще? В статье размышления о некоторых аспектах естественного и искусственного интеллекта, а также определение того, что такое интеллект.
          Читать дальше →
          • +2
          • 11,6k
          • 185
        • michael_v89 4 января 2018 в 19:01

          Немного об арифметике

          • Математика
            Вы когда-нибудь задумывались о том, как мы считаем? Как устроен счет на низком уровне? Например, как выглядят на прямой единичные отрезки в выражении 1 + 1 = 2. Или что такое квадратный корень из $i$.

            Счет появился не просто чтобы считать, а чтобы посчитать какие-то объекты. Например, количество яблок или антилоп в стаде. То есть всегда есть единица измерения.
            Читать дальше →
            • +19
            • 33,2k
            • 39
          • michael_v89 17 декабря 2017 в 19:04

            Настройка Nginx + PHP-FPM и HTTPS от Let's Encrypt на AWS EC2 с Ubuntu Server 16.04 LTS

            • PHP,
            • Серверное администрирование
            • Tutorial
            Порядок действий для установки PHP 7.1 и разворачивания проекта на PHP на созданном Amazon AWS EC2 instance. Основано на этой статье, с дополнениями отсюда и из других источников. Используется более новая версия PHP, добавлены инструкции по установке HTTPS, и пример настройки проекта на Laravel. Подразумевается, что инстанс используется в режиме разработки.
            Читать дальше →
            • +11
            • 19,1k
            • 31
          • michael_v89 12 августа 2017 в 20:20

            Проклятые Земли — Улучшаем бег и опыт с напарниками

            • Разработка игр,
            • Реверс-инжиниринг

              Многие играли в эту замечательную игру. Интересный сюжет, хорошая музыка, неплохой геймплей. Только есть пара моментов, которые мне не нравятся. Бег персонажей очень ограниченный, буквально несколько секунд, а запас сил восстанавливается долго. Система начисления опыта не стимулирует брать напарников, потому что опыт распределяется на всех поровну, и лучше бегать одному, чтобы забирать весь опыт себе. Возьмем отладчик и попробуем это исправить.
              Читать дальше →
              • +53
              • 24k
              • 15
            • michael_v89 31 июля 2017 в 16:00

              Как скрестить ежа с ужом. Используем GridView из Yii 2 в проекте на Laravel

              • Ненормальное программирование,
              • Yii,
              • Laravel
                Недавно была статья про Yii, где в комментариях обсуждали специфичные для Yii компоненты, в частности GridView и ActiveForm, и фреймворк Laravel. Я подумал, а почему бы и нет.

                composer create-project laravel/laravel
                ...
                composer require yiisoft/yii2
                

                Что из этого получилось, читайте под катом. Потребовалось написать пару небольших обвязок и сконфигурировать определенным образом, но в целом все работает — и грид, и формы. Также есть небольшой обзор существующих аналогов для Laravel.
                Читать дальше →
                • +7
                • 10,6k
                • 23
              • michael_v89 27 июня 2016 в 08:11

                Опрос. Новый тег <?~ $value ?> для HTML-экранирования данных в PHP

                • PHP
                  Некоторое время назад была статья про нововведения в PHP7. Я написал в комментариях, что раз уж добавлены разные новые операторы для упрощения кода в стандартных конструкциях, то неплохо было бы добавить еще и оператор для вывода HTML-экранированных данных. Получил в ответ несколько комментов про шаблонизаторы и задумался. Я знаю про шаблонизаторы, но есть много проектов, в которых они не используются, которые написаны на самописных движках, на CMS, либо на фреймворках, в которых нет шаблонизатора по умолчанию. Эти проекты продолжают развиваться и требуют писать код.
                  В этой статье я хочу изложить некоторые аргументы за то, что такой оператор будет полезен. И, возможно, получить обоснованные аргументы против.
                  Читать дальше →
                  • +10
                  • 12,4k
                  • 149
                • michael_v89 16 июня 2016 в 19:42

                  Несколько полезных приемов для разработки на Yii 2

                  • PHP,
                  • Yii
                    Собрал несколько классов и сниппетов из серии «tips & tricks», которые могут оказаться кому-нибудь полезными.
                    Содержание:
                    — Несколько атрибутов в одной колонке грида
                    — Исправление навигации для активных пунктов меню
                    — Маппинг таблиц на другие названия
                    — Почему TimestampBehavior обновляет свойство updated_at, если ничего не изменено
                    — Bootstrap DateTimePicker — 2 разных формата для показа в интерфейсе и для отправки значения на сервер
                    — Учет временной зоны пользователя для полей с DateTimePicker
                    Читать дальше →
                    • +11
                    • 52,3k
                    • 6
                  • michael_v89 10 августа 2015 в 10:04

                    Форматирование сообщений для Yii::t()

                    • Разработка веб-сайтов,
                    • PHP,
                    • Yii
                      В данной статье рассмотрены особенности форматирования сообщений для системы интернационализации фреймворка Yii 2. В основном, это сведения из документации фреймворка и библиотеки ICU, с дополнительными пояснениями и примерами. Большая часть информации подойдет для любого фреймворка, который использует библиотеку ICU для интернационализации сообщений. В примерах подразумевается перевод сообщений с английского на русский ('en-US' => 'ru-RU'). Настройка системы интернационализации в статье не рассматривается.
                      Читать дальше →
                      • +11
                      • 25,6k
                      • 9
                    • michael_v89 11 июня 2015 в 13:21

                      Исследование защиты игры Charm Solitaire

                      • Реверс-инжиниринг
                        Charm Solitaire
                        Лет 7-8 назад мне случайно попалась игра CharmSolitaire, скопированная вместе с другими играми с чужого винта в процессе обмена информацией. Это такой не совсем обычный карточный пасьянс. В незарегистрированной версии на игру отводится один час, и открыта только половина уровней. В той копии время уже почти закончилось. Денег на покупку у меня не было, поэтому скорее всего я бы ее удалил. Но в то время я немного увлекался взломом и решил попробовать найти регистрационный код. Опыт был довольно интересным. В статье рассказывается об основных особенностях защиты, а также о том, как security through obscurity может ее ослабить.
                        Читать дальше →
                        • +14
                        • 13k
                        • 4
                      • michael_v89 13 апреля 2015 в 17:36

                        Снова про AUTO_INCREMENT

                        • SQL,
                        • Проектирование и рефакторинг
                        • Из песочницы
                        Все, кто работает с базами данных, знают, что такое AUTO_INCREMENT. Про него много всего написано, в том числе и на хабре. В этой статье я хочу изложить свои мысли на эту тему, потому что ранее я не встречал рассуждений именно в таком плане. Но сначала давайте определимся, зачем нам вообще база данных.
                        Читать дальше →
                        • –11
                        • 5,8k
                        • 15

                      Информация

                      • В рейтинге 1686–й
                      • Активность 27.02.2021, 07:49
                      • Зарегистрирован 11 апреля 2015 г.

                      Вклад в хабы

                      • Реверс-инжиниринг 67
                      • Разработка игр 53
                      • PHP 43
                      • Yii 29
                      • Математика 19
                      • Компиляторы 19
                      • Разработка веб-сайтов 11
                      • Серверное администрирование 11
                      • Laravel 7
                      • Ненормальное программирование 7
                      Пока никто не указал причину минусов
                      Причины минусов

                      Ваш аккаунт

                      • Войти
                      • Регистрация

                      Разделы

                      • Публикации
                      • Новости
                      • Хабы
                      • Компании
                      • Пользователи
                      • Песочница

                      Информация

                      • Устройство сайта
                      • Для авторов
                      • Для компаний
                      • Документы
                      • Соглашение
                      • Конфиденциальность

                      Услуги

                      • Реклама
                      • Тарифы
                      • Контент
                      • Семинары
                      • Мегапроекты
                      • Мерч
                      © 2006 – 2021 «Habr»
                      Настройка языка
                      О сайте
                      Служба поддержки
                      Мобильная версия
                      Настройка языка
                      Интерфейс
                      Язык публикаций