Search
Write a publication
Pull to refresh
3
0
Луговой Дмитрий Владимирович @dimalu85

User

Send message

Моё «научное» мнение о фильме «Интерстеллар»

Reading time3 min
Views8.9K
Доброго времени суток, уважаемые читатели. Скажу сразу, я не физик, не теоретик, ни кто-либо другой, разбирающийся в научной стороне фильма. И мой пост может быть «анти-общественен» в кругах посетителей этого сайта.



Я не буду бросаться словами и терминами с Википедии, научными ТЕОРИЯМИ и формулами, я здесь не за этим. Пост держит за основу «МНЕ нравится» и «Я считаю», заглавные буквы означают что это мое мнение (я разъяснил это потому что в дискуссиях многие, почему-то, не понимают этого и дабы понять мою до боли простую точку зрения, я сделал это отступление). Думаю, ты, дорогой читатель, не понимаешь, зачем я вообще написал этот пост и дабы не мучить тебя догадками — начнём!
Читать дальше →

Загрузка классов в Java. Теория

Reading time4 min
Views201K


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

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

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

Правильный Singleton в Java

Reading time4 min
Views437K
Уверен, каждый из читателей, знает что такое шаблон проектирования “Singleton”, но не каждый знает как его программировать эффективно и правильно. Данная статья является попыткой агрегирования существующих знаний по этому вопросу.

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

Многопоточность в Java

Reading time14 min
Views1.1M
Здравствуйте! В этой статье я вкратце расскажу вам о процессах, потоках, и об основах многопоточного программирования на языке Java.
Наиболее очевидная область применения многопоточности – это программирование интерфейсов. Многопоточность незаменима тогда, когда необходимо, чтобы графический интерфейс продолжал отзываться на действия пользователя во время выполнения некоторой обработки информации. Например, поток, отвечающий за интерфейс, может ждать завершения другого потока, загружающего файл из интернета, и в это время выводить некоторую анимацию или обновлять прогресс-бар. Кроме того он может остановить поток загружающий файл, если была нажата кнопка «отмена».

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

Давайте начнем. Сначала о процессах.
Читать дальше →

По следам Spring Pet Clinic. Maven/ Spring Context/ Spring Test/ Spring ORM/ Spring Data JPA

Reading time8 min
Views49K

Здравствуйте!
Spring MVC, согласно обзору инструментов и технологий Java за 2014 г. от RevbelLabs, является самым популярным веб фреймворком.
Далее тот же обзор называет лидера ORM — Hibernate и лидера веб-контейнеров — Apache Tomcat. Добавим сюда самую используемую java script библиотеку jQuery, самый популярный css фреймворк Bootstrap, до сих пор самую популярную (несморя на наступление Gradle) инструмент сборки Maven, абсолютный лидер среди тестовый фреймворков JUnit и получим пример приложения на Spring от его создателей:
Spring Pet Clinic (демо приложение).
Кроме перечисленного, в этот достаточно несложный по функциональности проект влючены также Spring-Jdbc, Spring-ORM,
Spring Data JPA,
Hibernate Validator,
SLF4J,
Json Jackson,
JSP,
JSTL,
WebJars,
Dandelion DataTables,
HSQLDB,
Hamcrest,
Mockito и десятки других зависимостей.
Читать дальше →

Как вернуть подчиненным интерес к работе

Reading time4 min
Views12K
Медведь идет по берегу реки. Этот день для него был удачным, он нашел заросли малины, подкрепился вкусными кореньями и даже вытащил из норки жирного бурундука. Медведь наелся. Он лениво смотрит в воду горной речки и видит: на порогах плещется лосось.

Зачем сытому медведю лезть в ледяную воду за рыбой, ведь для него есть много пищи на берегу. Кстати говоря, рацион медведя на 75% состоит из растительной пищи. Но мишка прыгает в реку и ловит лосося. Эта рыба поможет ему накопить жир к зиме и, в итоге, выжить.

Откуда медведь знает, что впереди зима, и ему нужно копить жир для спячки? Вряд ли он вообще знает, что такое жир. Он просто следует каким-то своим инстинктам и ныряет в воду.

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

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

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

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

Для этого природа придумала дофамин — гормон удовольствия при ожидании награды.
Читать дальше →

Собеседование на позицию разработчика, как оно есть

Reading time8 min
Views51K
Доброго времени суток. На данный момент я занимаю должность Senior/Team Lead IOS Developer. Так вышло, что за последний год мне довелось побывать на огромном количестве собеседований, так сказать, по обе стороны баррикад. Поэтому мне бы хотелось поделиться своим опытом и поговорить о том, как, на мой взгляд, надо проводить собеседование, ведь в общей суматохе можно упустить ряд важных моментов, что, впоследствии, может негативно отразиться на качестве собеседования.

image

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

Android Studio для NDK под Windows

Reading time25 min
Views225K


На днях я обнаружил, что версия Android Studio неуклонно стремится к единице, в связи с чем задумался об изучении этого инструмента. Чтобы не было скучно, я решил поделиться своим опытом и собранными граблями в виде статьи-туториала.

Сразу хочу оговориться, что я не являюсь гуру Android-разработки, поэтому каких-либо откровений в тексте вы не найдете. Зато тут есть пошаговая инструкция по установке и настройке Android Studio под Windows и созданию простейшего проекта с использованием Android NDK.

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

Знаешь ли ты JAVA, %username%?

Reading time11 min
Views150K
JAVA Evil EditionНедавно я сдавал экзамен Oracle Certified Professional Java Programmer (бывший Sun Certified), и за время подготовки прорешал огромное количество различных задачек. Отдельные задачки по джаве иногда появляются на хабре и вызывают немалый интерес, поэтому я решил поделиться накопленным и сделать небольшую подборку.

Итак, ниже представлен десяток наиболее, на мой взгляд, интересных задач по Java SE из более чем 1000, проработанных мной. Сложность варьируется от средней до ооооооочень сложной. Решение большинства задач практически не требует знания API, достаточно логики и фундаментальных основ Java.

К слову, сложность экзамена Oracle Certified Professional Java Programmer гораздо ниже чем сложность данного теста, поэтому все, кто правильно ответит хотя бы на половину этих вопросов, может смело сдавать этот экзамен без всякой подготовки.

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

ВНИМАНИЕ: во второй половине статьи — ответы и подробные пояснения по соответствующим нюансам JAVA.

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

Spring изнутри. Этапы инициализации контекста

Reading time11 min
Views374K


Доброго времени суток уважаемые хабравчане. Уже 3 года я работаю на проекте в котором мы используем Spring. Мне всегда было интересно разобраться с тем, как он устроен внутри. Я поискал статьи про внутреннее устройство Spring, но, к сожалению, ничего не нашел.

Всех, кого интересует внутреннее устройство Spring, прошу под кат.
Читать дальше →

Бизнес vs программная инженерия

Reading time4 min
Views24K
Где-то я слышал, что в психотерапии существует следующая методика работы с пациентом – пациенту предлагают сесть и написать в свободной, «потоковой» форме все что накипело, волнует, будоражит сознание и, отражаясь на подсознании, не дает спать по ночам. Применительно к этому есть хорошее, нежно ласкающее слух слово – фрирайтинг.

Итак, почему я решил это написать – когда сталкиваешься с полным пренебрежением к проектированию ПО как таковому, пренебрежением к качеству и соблюдению хоть какой-нибудь методологии разработки, всегда удивляешься. Когда сталкиваешься с этим раз за разом, об этом уже хочется написать.

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

GSON. Добавим ему немного строгости и решаем проблему переполнения памяти при обработки больших JSON файлов

Reading time8 min
Views14K
Вероятно многие сталкивались с библиотекой GSON от Google, которая легко превращает JSON файлы в Java объекты и обратно.

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

1) Проверки что мы не потеряли ни одного поля из JSON'a файла, а также проверки того что все обязательные поля в Java классе были заполнены (делаем GSON более строгим);
2) Ручной парсинг с помощью GSON, когда приходится обрабатывать очень большой JSON файл, чтобы избежать ошибки out of memory.
Читать дальше →

Международные и национальные стандарты управления информационными проектами

Reading time10 min
Views26K
Аннотация: в статье проведен хронологический обзор популярных стандартов в области управления информационными проектами, присущие им особенности, затрагиваемые области знаний и процессы. Представлена роль международной ассоциации по управлению проектами (IPMA) в формирование национальных стандартов отдельных стран.

В 1986 году институтом Software Engineering Institute (SEI) начинается разработка системы оценки возможностей компаний по разработке программного обеспечения «Capability Maturity Model» (CMM) на основе техник описанных Филиппом Б. Гросби, специалистом и известным лектором в области управления качеством, в его книге «Quality is Free» [1]. Разработка была инициирована запросом от ВВС США, обусловленным острой необходимостью иметь возможность оценивать профессиональность подрядных организаций.
Читать дальше →

Инструментарий бизнес-аналитика: личный опыт

Reading time5 min
Views53K


Мы не раз рассказывали, как первый же крупный клиент чуть не убил весь наш бизнес. Тогда одной из явных дыр, наряду с QA (Quality Assurance), был BA (Business Analysis). До появления в нашем портфеле по-настоящему больших проектов необходимости в глубоком анализе бизнес-требований заказчика и выработки системных решений для их удовлетворения не было. Сейчас в Redmadrobot три бизнес-аналитика, которые определяют точки развития мобилити-проектов, исходя из бизнес-задач клиентов.
Один из наших BA — Семен Заморов — поделился своим Toolset, набором программ, которые помогают ему выполнять работу еще быстрее.
Читать дальше →

Человеческий фактор в разработке программного обеспечения: психологические и математические аспекты

Reading time8 min
Views27K
Разработка программного продукта — это процесс, в котором человеческий фактор играет очень важную роль. В статье поговорим о различных психологических и математических законах и принципах. Некоторые из этих принципов и законов вам хорошо известны, некоторые — не очень, а некоторые помогут объяснить ваше поведение или поведение ваших сотрудников и коллег.

Разработка ПО – нелинейный процесс

Разработка программного обеспечения — нелинейный процесс. Если на проект выделено 5 разработчиков, которые за 5 месяцев должны разработать продукт (25 чел./мес.), то 25 разработчиков не смогут сделать эту же работу за 1 месяц (те же 25 чел./мес.).


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

Как я документирую процесс разработки

Reading time4 min
Views19K
Вы пишете лишнюю документацию для вашего проекта? Нет? Тогда вам ее, скорее всего, недостаточно.

Угадать для каждого конкретного проекта необходимый объем технической документации крайне сложно и важно. Важно — потому, что от этого зависит скорость процесса, качество и стоимость. Сложно — потому что сам процесс может меняться со временем, могут меняться исполнители, да и для заданного состояния процесса не так просто подобрать нужный набор и объем документации.

Здесь хотел бы рассказать о своем подходе к документированию работ по небольшим проектам. Небольшой проект это: руководитель-аналитик, 1-3 разработчика, тестировщик. Или какой-либо подобный состав. Под документацией я понимаю какие-либо артефакты, создаваемые для поддержки следующих процессов: обсуждения, управление требованиями, управление изменениями, управление версиями. Другие процессы я не документирую.
Читать дальше →

REST/CRUD. Я неправильно его готовлю? Часть 2

Reading time3 min
Views6.1K

Вступление


В первой части я начал делиться своими наблюдениями по поводу реализации HTTP/GET в REST. В этой — попробуем рассмотреть вопросы версионирования и архитектуры. Приступим?
Читать дальше →

REST/CRUD. Я неправильно его готовлю?

Reading time4 min
Views20K

Вступление


REST — очень интересный метод для работы с объектами на сервере. Реализация CRUD-интерфейса средствами REST проходит легко и просто! Сегодня я попытаюсь показать какие из подходов в REST/CRUD по моему мнению ошибочны и пагубны для проекта.
Читать дальше →

В поисках ответа на вопрос, как сделать людей более ответственными…

Reading time5 min
Views54K
Довольно частый запрос от коллег-менеджеров, который приходится слышать: как повысить ответственность человека?

Казалось бы, человечество за тысячи лет своего существования должно было прийти к какому-то алгоритму повышения ответственности. И вот он, твой тренерский шанс — изложи этот алгоритм и измени навсегда жизнь отдельно взятого менеджера!

Однако, в жизни все сложнее… Приходится заниматься занудными уточнениями: а сейчас люди как работают? — Ну… безответственно.

Хм, яснее не становится. Хочется ехидно уточнить: “в смысле, бросают жен и детей?”, но в реальности, начинаешь разбираться.
Что выясняется в итоге?

6 ссылок о том, что Google знает о вас

Reading time2 min
Views458K
Не желаете ли узнать о том, что Google знает о вас? Вот 6 ссылок, которые покажут вам некоторые данные, собранные гуглом.

1. Ваш профиль в Google

Google создаёт профиль с вашими основными данными – возраст, пол, интересы. Эти данные используются для показа релевантных объявлений. Вы можете просмотреть эту информацию здесь:

www.google.com/ads/preferences

(прим.перев. – в моём случае гугл не блещет информацией. Я не состою в Google+, а по посещённым мною сайтам гугл не смог определить мой пол, а возраст определил в 65+ лет).
Читать дальше →

Information

Rating
Does not participate
Location
Витебск, Витебская обл., Беларусь
Date of birth
Registered
Activity