Обновить
1
0
Олексій@Assada

Пользователь

Отправить сообщение

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

Время на прочтение4 мин
Охват и читатели54K
Будучи дилетантом в области разработки приложений, я испытал сложности с пониманием алгоритма работы обратной польской нотации, а если быть точнее — алгоритма подготовки стека. Делу так же мало помогли статьи в «интернетах».

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

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

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

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

Время на прочтение11 мин
Охват и читатели31K


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

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

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

Время на прочтение3 мин
Охват и читатели32K


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

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

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

Время на прочтение6 мин
Охват и читатели28K

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

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

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

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

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

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

PHP и Temporal Coupling

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

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

Время на прочтение11 мин
Охват и читатели17K
В одной статье на хабре (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)

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

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

Время на прочтение13 мин
Охват и читатели40K
(Ох и намучился я 2 года назад с этим материалом, решил вот выложить, закрыть гештальт.)


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

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

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

Время на прочтение1 мин
Охват и читатели22K

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

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

Время на прочтение3 мин
Охват и читатели386K
Не так давно промелькнула ссылка на достаточно свежее (осень 2011) англоязычное голосование со скромным названием "самая впечатляющая книга, которую должен прочесть каждый разработчик программного обеспечения" и описанием:

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

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

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

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

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



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

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

Время на прочтение9 мин
Охват и читатели14K
Данный материал не является официальной позицией компании и содержит лишь отзыв и мнение сотрудника, который размещает у нас со своими коллегами-вебмастерами собственные веб-проекты.

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

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

Symfony и Command Bus

Время на прочтение16 мин
Охват и читатели46K
Уже больше года использую паттерн 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

Время на прочтение12 мин
Охват и читатели741K

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


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


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

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

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

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



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

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

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

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

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

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


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

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

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

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

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

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

Время на прочтение3 мин
Охват и читатели24K
tl; dr — Не ограничивай себя одним конструктором в классе. Используй статические фабричные методы.

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

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

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

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

Время на прочтение4 мин
Охват и читатели5.5K


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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность