Search
Write a publication
Pull to refresh
1
0
Олексій @Assada

User

Send message

Обратная польская нотация: как же приготовить хот-дог?

Reading time4 min
Views54K
Будучи дилетантом в области разработки приложений, я испытал сложности с пониманием алгоритма работы обратной польской нотации, а если быть точнее — алгоритма подготовки стека. Делу так же мало помогли статьи в «интернетах».

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

Делу помогли две статьи. Одна из них на википедии, а вторая была написана замечательным пользователем хабра, GORKOFF, который объяснил все буквально «на пальцах».

Однако до конца я так и не понял тот важный вопрос: как же построить стек?
Читать дальше →

Этажи: 3D-навигация на WebGL в 2gis.ru

Reading time11 min
Views30K


В 2014 году 2ГИС выпустил Этажи — это фича, позволяющая посмотреть схему этажей здания и найти на ней нужную организацию. Долгое время она существовала только в мобильных приложениях 2ГИС. Теперь эта возможность появилась и в онлайн-версии.

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

35 полезных инструментов по теме виртуализации

Reading time3 min
Views31K


Сегодня слово «виртуализация» у всех на слуху, а технологии виртуализации становятся одним из основных компонентов ИТ-инфраструктуры организаций. Кстати, сегодня вышел наш пост, в котором мы поделились своим опытом создания провайдера виртуальной инфраструктуры на примере 1cloud.

Мы решили продолжить работу с этой темой и составить подборку инструментов, на которые стоит обратить внимание всем, кто имеет отношение к виртуальной инфраструктуре. Далее будет приведена лишь малая часть существующих инструментов, расположенных в случайном порядке.
Читать дальше →

Wiren Board 5: теперь устаревшая версия контроллера для автоматизации

Reading time6 min
Views28K

Всем привет!
Мы давно не писали на Хабр (который уже не тот), но в конце прошлого года выпустили новую версию Wiren Board — контроллера для автоматизации с открытым ПО, и сегодня расскажем о ней (под катом есть скидка!)

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

Программирование в классических картинах

Reading time1 min
Views17K
Блог Classic Programmer Paintings — это адаптация классической живописи к реалиям сегодняшнего дня. Одну из таких картин (или несколько) вы можете распечатать и повесить у себя в комнате или офисе, благо все они находятся в общественном достоянии. Есть и русская классическая живопись, см. ниже.

«Программисты на рабочем месте занимаются поддержкой приложения Ruby on Rails», 1893, Ээро Ярнефельт

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

PHP и Temporal Coupling

Reading time3 min
Views9.3K
Про архитектуру приложений на PHP было написано не один десяток статей, но на данной проблеме больше акцентируют внимание разработчики Java и C#. Суть ее заключается в жесткой зависимости одного свойства на другом.
Читать дальше →

Асинхронные операции и пересоздание Activity в Android

Reading time11 min
Views17K
В одной статье на хабре (274635) было продемонстрировано любопытное решение для передачи объекта из onSaveInstanceState в onRestoreInstanceState без сериализации. Там используется метод writeStrongBinder(IBInder) класса android.os.Parcel.

Такое решение корректно функционирует до тех пор, пока Android не выгрузит ваше приложение. А он вправе это сделать.
…system may safely kill its process to reclaim memory for other foreground or visible processes…
(http://developer.android.com/intl/ru/reference/android/app/Activity.html)

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

Алюмо-иттриевый лазер с легированием неодимом

Reading time13 min
Views39K
(Ох и намучился я 2 года назад с этим материалом, решил вот выложить, закрыть гештальт.)


Мечи джедаев?

Лично я являюсь сторонником естественных способов становиться красивее (спорт, танцы, йога, позитив, нормальное питание и т.д.), но в то же время понимаю, что существуют случаи, когда необходимо быстрое и эффективное вмешательство, поэтому взялся рассказать про лазерный прибор, который помогает сделать «всех румяней и милее», как в сказке. А точнее, про принцип его работы – надеюсь, что после этой публикации процесс взаимодействия лазера и живой ткани станет более понятным.
Читать дальше →

Пустое пространство на самом деле не пустое [Озвучка Vert Dider]

Reading time1 min
Views21K

Атом представляет собой преимущественно пустое пространство, однако пустое пространство по большей части — не пустое.
Читать дальше →

Топ-5 самых впечатляющих книг, которые должен прочесть каждый разработчик ПО

Reading time3 min
Views382K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

Если бы вы могли вернуться в прошлое, к самому началу своей карьеры разработчика и сказать самому себе: «прочитай именно эту книгу», в самой начале своей карьеры разработчика, какую бы книгу вы рекомендовали?

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

Однако в данном небольшом посте я возьму на себя смелость перечислить ТОП-5 тех самых книг, победивших в голосовании, переведенных на русский язык. И дать небольшие комментарии, ведь книги действительно этого достойны. Да, лично я бы поменял некоторые места, однако положимся на «мнение зала» ресурса Stack Overflow.
Читать дальше →

Ubuntu интегрировали в Windows 10

Reading time2 min
Views402K
Сегодня на конференции Build компания Microsoft расскажет о последних нововведениях, которые сделаны в новом билде Windows 10 Redstone. Незадолго до презентации стало известно, что на конференцию приглашены сотрудники Canonical, и этому есть веская причина.



Дело в том, что Microsoft совместно с Canonical сумели интегрировать операционную систему Ubuntu внутрь Windows 10 (что-то вроде эмулятора).
Читать дальше →

Хостинг за доллар

Reading time9 min
Views14K
Данный материал не является официальной позицией компании и содержит лишь отзыв и мнение сотрудника, который размещает у нас со своими коллегами-вебмастерами собственные веб-проекты.

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

Мы с ребятами довольно долго арендовали несколько «кусочков» места на диске хостинг-сервера и, пока все вопросы были решаемы, даже и не задумывались о переезде. Если честно, то в принципе большинство вопросов и сейчас можно решить. Мы довольно часто идем на встречу своим клиентам и предоставляем разовый доступ для установки скрипта или предлагаем перенести пользователя на другой IP-адрес в случае появления очередного спамера, которым в итоге может оказаться обычный начинающий вебмастер. Все вопросы можно решить, но для этого необходимо дополнительно открывать тикет и делать лишние «телодвижения», которые отнимают время.
Читать дальше →

Symfony и Command Bus

Reading time16 min
Views45K
Уже больше года использую паттерн Command Bus в своих Symfony-проектах и наконец решил поделиться опытом. В концев концов обидно, что в Laravel это есть «из коробки», а в Symfony, из которого Laravel во многом вырос — нет, хотя самому понятию Command/Query Separation уже не менее 10 лет. И если с буквой «Q» из аббревиатуры «CQRS» еще понятно что делать (лично меня вполне устраивают custom repositories), то куда приткнуть букву «C» — неясно.

На самом деле, даже в банальных CRUD-приложениях Command Bus дает очевидные преимущества:

  • контроллеры становятся «худыми» (редкий «экшен» занимает более 15 строк),
  • бизнес-логика покидает контроллеры и становится максимально независимой от фреймворка (в результате ее несложно повторно использовать в других проектах, даже если они написаны не на Symfony),
  • упрощается unit-тестирование бизнес-логики,
  • сокращается дублирование кода (когда, например, необходимо реализовать «фичу» как через Web UI, так и через API).

КДПВ
Читать дальше →

Основы Elasticsearch

Reading time12 min
Views709K

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


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


В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

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

Интерактивное видео и с чем его едят

Reading time8 min
Views16K
Полгода назад за чашечкой кофе программист, режиссер и геймдизайнер вели дружескую беседу на тему того, что кинематограф становится скучным. «Да, спецэффекты становятся круче, количество D становится больше, но этим сейчас малого кого можно удивить. Людей цепляет сюжет. А теперь представьте, что когда-нибудь мы будем смотреть смотреть фильмы, которыми можно управлять?»
— Я бы убил Джона Коннора.
— А я бы не выбросил бузинную палочку и стал плохим волшебником.
— А я бы на месте Поттера воспользовался маховиком времени, чтобы спасти его родителей, а не клювокрыла.



И, как говорится, понеслось…

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

Монолитные репозитории в Git

Reading time8 min
Views45K
Многие выбрали Git за его гибкость: в частности, модель веток и слияний позволяют эффективно децентрализовать разработку. В большинстве случаев эта гибкость является плюсом, однако некоторые сценарии поддержаны не так элегантно. Один из них — это использование Git для больших монолитных репозиториев — монорепозиториев. Эта статья исследует проблемы монорепозиториев в Git и предлагает способы их смягчения.

Скала Улуру
Скала Улуру в Австралии как пример монолита — КДПВ, не более

Что такое монорепозиторий?


Определения разнятся, но мы будем считать репозиторий монолитным при выполнении следующих условий:
  • Репозиторий содержит более одного логического проекта (например, iOS-клиент и веб-приложение)
  • Эти проекты могут быть не связаны, слабо связаны или связаны сторонними средствами (например, через систему управления зависимостями)
  • Репозиторий большой во многих смыслах:
    • По количеству коммитов
    • По количеству веток и/или тегов
    • По количеству файлов
    • По размеру содержимого (то есть размеру папки .git)
Читать дальше →

Введение в PHP 7: Что добавлено, что убрано

Reading time12 min
Views302K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →

Форки движка MySQL: MariaDB, Percona. who is who?

Reading time3 min
Views89K
MySQL стал собственностью Oracle, есть ли альтернативы и как быстро движение вперед?.. Вроде как обобщающего обзорчика «who is who?» еще не было. Итак, обзорчик для тех кто «не в теме»
Читать дальше →

Как использовать именованные конструкторы в PHP

Reading time3 min
Views24K
tl; dr — Не ограничивай себя одним конструктором в классе. Используй статические фабричные методы.

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

<?php
$time = new Time("11:45");
$time = new Time(11, 45);

Правильным ответом будет «в зависимости от ситуации». Оба способа могут являются корректным с точки зрения полученного результата. Реализуем поддержку обоих способов:
Читать дальше →

Хакатон: быстрое прототипирование решений Интернета вещей

Reading time4 min
Views5.4K


Воплощение потенциала идей, заложенных в концепцию Интернета вещей (Internet of Things, IoT), способно существенно изменить уклад современной экономики, да и не только экономики. Благодаря внедрению масштабируемых облачных решений, использованию большого количества датчиков и распределенных микропроцессорных систем уже в ближайшее время могут быть созданы прорывные решения в таких областях, как транспорт, сельское хозяйство, промышленное производство, здравоохранение, социальная сфера и других. Все большее количество компаний обращает внимание на применение идей и технологий Интернета вещей для внедрения аналитики их деятельности и поиска новых возможностей для продуктов и услуг.

Существенным вызовом является проблема подготовки квалифицированных специалистов, способных создавать и внедрять распределенные информационные системы, применять технические решения для анализа данных и управления. Для этих целей факультет «Информатики и систем управления» Московского государственного технического университета им. Н.Э.Баумана совместно с корпорацией IBM и компанией РТСофт приняли решение о создании научно-учебной лаборатории Интернета вещей, которая будет открыта 25 марта 2016 года в ходе проведения конкурса студенческих проектов. На оборудовании лаборатории с 23 по 25 марта в МГТУ им. Н.Э.Баумана будет проходить открытый студенческий хакатон, на который приглашаются команды МГТУ и других технических вузов.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity