Как стать автором
Поиск
Написать публикацию
Обновить
6
0
Олег Серых @seryh

Fullstack Web Developer

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

Как с помощью maven работать с библиотеками, которых в maven нет

Время на прочтение10 мин
Количество просмотров91K

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


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


Эта статья для тех, кто только начинает осваивать java.


image


В моей предыдущей статье было сказано, что maven сам скачает все указанные в pom.xml зависимости. А вот что будет, если он какую-нибудь зависимость не найдёт? В таком случае maven скажет, что зависимость не обнаружена и прервёт процесс сборки с ошибкой. Что делать в этом случае?

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

Итак, мы сделали дамп JVM на 150 Гб. Что дальше?

Время на прочтение3 мин
Количество просмотров19K
Возможность сделать снимок (или дамп) памяти виртуальной машины Java — это инструмент, ценность которого сложно переоценить. Файл дампа содержит копии всех Java объектов, находившихся в памяти в момент снимка. Формат файла хорошо известен, и существует множество инструментов, которые умеют с ним работать.


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

Страх и ненависть в распределённых системах

Время на прочтение21 мин
Количество просмотров81K


Роман Гребенников объясняет сложность построения распределённых систем. Это — доклад Highload++ 2016.

Всем привет, меня зовут Гребенников Роман. Я работаю в компании Findify. Мы делаем поиск для онлайн-магазинов. Но разговор не об этом. В компании Findify я занимаюсь распределенными системами.

Что же такое распределённые системы?

Почему я игнорирую рекрутёров Google

Время на прочтение3 мин
Количество просмотров65K
Это реальная история, она — не только про Google. Я нередко получаю письма от рекрутёров Amazon, Facebook, а также небольших стартапов Кремниевой долины. Они как-то находят меня — наиболее вероятно через этот блог, через мои книги или через аккаунт на GitHub. Они всегда начинают с фразы: «Ваш профиль нас сильно впечатлил», — а заканчивают: «Давайте назначим собеседование». Я всегда отвечаю одинаково, а они всегда после этого исчезают, возвращаясь нередко через несколько месяцев под другим именем. Попробую здесь объяснить мои соображения. Возможно, вы будете делать то же, и мы сможем изменить ситуацию.

image

«Охотник на оленей» (1978), режиссёр Майкл Чимино
Читать дальше →

JavaScript без циклов

Время на прочтение13 мин
Количество просмотров42K
Однажды я писал о том, что отступы можно считать показателем сложности кода (хотя и довольно грубым). Сами по себе отступы нейтральны, так как они – лишь средство форматирования текста, но всё дело в том, что они используются для выделения особых блоков программ, например – управляющих конструкций. Читая код и натыкаясь на отступ, программист вынужден принимать во внимание то, на что указывает отступ, держать в памяти контекст, в котором существует выделенный блок. Это, естественно, повторяется, если в выделенном отступами участке кода появляется ещё один особый фрагмент.

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


Чем больше отступов – тем сложнее обычно и код
Читать дальше →

Почему нельзя отправлять UDP-пакеты через браузер?

Время на прочтение12 мин
Количество просмотров41K

Введение


В 2017 году большинство популярных веб-игр типа agar.io использует для передачи данных WebSockets через TCP. Если бы в браузерах был встроенный UDP-аналог WebSockets, то это бы сильно улучшило работу с сетями в этих играх.

Вводная информация


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

Всё это отлично работало многие годы, но недавно веб-сайты стали более интерактивными и перестали отвечать парадигме «запрос-ответ» протокола HTTP. Для решения этой проблемы изобретены современные веб-протоколы, такие как WebSockets, WebRTC, HTTP 2.0 и QUIC, имеющие потенциал значительного улучшения интерактивности сети.

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

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

Как слямзить Хабр по-быстрому

Время на прочтение3 мин
Количество просмотров43K

Это произошло в понедельник 13 февраля, мир больше не будет прежним. Открыта вакансия:



Для работы над нашими проектами мы ищем сильного front-end разработчика. Вам предстоит амбициозная задача: внедрить компонентный подход в разработку всех текущих и новых проектов компании.

Отлично, работаем дальше! Выполняю "тестовое задание".

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

Все лучшее из методологии Lean Startup, и как с этим жить тестировщикам

Время на прочтение10 мин
Количество просмотров13K
«Это должно быть сделано еще вчера», «Протестируйте как-нибудь быстренько», «Время от начала разработки до выкладки на продакшн должно быть минимальным, а если возможно — еще меньше» — наверное, многим знакомы подобные цитаты. И покуда мы (тестировщики) — одно из последних звеньев в цепочке разработки, именно нам чаще всего приходится балансировать между скоростью выхода фич и их качеством.

В данной статье хочу поделиться тем, как мы в нашей компании применяем успешные практики из Lean Startup (несмотря на то, что многие наши проекты вполне сформировались и устоялись), с какими проблемами сталкиваются тестировщики при использовании данной методологии и как мы с этими трудностями справляемся.

Пара слов о себе: я тестировщик, имела опыт работы в проектах разного масштаба, была единственным тестировщиком на проекте и работала в командах, в которых использовались разные подходы и методологии. По моему опыту, работать по Lean Startup — это круто, но тут есть и подводные камни для тестирования, о которых неплохо знать заранее.

Прокачиваем NES Classic Mini

Время на прочтение15 мин
Количество просмотров93K
На geektimes.ru недавно была статья о том, что «умельцы» взломали NES Classic Mini. Однако, там даже не упомянули о том, что это сделали русские. Нет, не я, а человек под ником madmonkey. Я же сразу решил написать приложение под Windows с дружелюбным интерфейсом, чтобы это можно было делать в пару кликов. В этой статье я хочу рассказать более детально о сути «взлома», о том, как в NES Mini всё устроено, и о трудностях, с которыми пришлось столкнуться.

И да, я опять предлагаю своё изложение в двух вариантах: видео и традиционная текстовая статья. Кому как больше нравится.

Пятничный JS: как вдохновиться Smalltalk'ом и попасть в ад

Время на прочтение5 мин
Количество просмотров20K
Когда я читал книгу «Паттерны разработки игр», написанную замечательным человеком по имени Bob Nystrom (я не пишу его имя по-русски, поскольку не имею ни малейшего понятия, как это произносится), в одной из глав мне на глаза попалась небольшая ода языку Smalltalk как праотцу всех современных объектно-ориентированных языков, намного опередившему своё время. Поскольку я по жизни испытываю необоримую приязнь ко всяким винтажным языкам, естественно, я полез про него гуглить. И разумеется, вместо того, чтобы вынести из этого опыта что-то полезное, я научился плохому.


Доктор, откуда у вас такие картинки?

Нетрадиционная ориентация ООП

Время на прочтение1 мин
Количество просмотров11K
Дверь.Замок.Повернуть(
обычныйКлюч, 
обороты: 2, 
контекстЗдания: мойДом.мояКвартира.ПолучитьКонтекст());

Встречали подобное в реальной жизни? Я тоже нет.
Читать дальше →

Hack.me: Ещё одна площадка для оттачивания навыков в области ИБ

Время на прочтение3 мин
Количество просмотров48K


Всем доброго времени суток, сегодня не будет VulnHub'a. Сегодня рассмотрим его альтернативу hack.me. На котором содержится не мало интересных площадок для взлома, на различные темы. В этой статье рассмотрим BeachResort. Как пишет автор, это не типичный CTF,
Читать дальше →

Интеллектуальная система ЭЛИС

Время на прочтение2 мин
Количество просмотров23K
image

Меня зовут Олег Андреев, мне 32 года, занимаюсь ремонтом и разработкой электроники, а также программированием (уже более 10 лет). Всегда увлекался искусственным интеллектом и робототехникой.

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

Почему понадобилось разработать «русский дропбокс»

Время на прочтение5 мин
Количество просмотров28K


В какой-то момент российские организации остро ощутили, что отправлять файлы через иностранные сервера — не самая хорошая идея. Дальше три варианта: либо решать административно и «бить ногами» тех, кто отправляет не на флешке фельдъегерской почтой, либо делать глобальное хранилище данных (например, на базе ECM Documentum, OpenText или Alfresco), либо же сразу разворачивать облачный аналог Дропбокса у себя на серверах в РФ.

Первые два пути работают, но самый простой и эффективный — третий. Поэтому нам пришлось сделать свой сервис обмена файлами для крупного бизнеса. Из приятных примочек — аутентификация через LDAP, шифрование, саморазрушающиеся ссылки и прочие прелести паранойи. Самое смешное — получилось вполне сопоставимо по конечным ценам с бизнес-лицензией на Дропбокс. Да, мы делаем дешевле Dropbox Business для средних и больших компаний.
Читать дальше →

Самые популярные слова в двух терабайтах кода

Время на прочтение6 мин
Количество просмотров26K
Привет, друзья! Я тут проанализировал 2ТБ кода и получил самые популярные слова в разных языках программирования. Результаты можно посмотреть в виде облаков тегов и простым списком:

image
Сайт находится здесь, а его исходники можно почитать на гитхабе.

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

Приятного чтения!
Читать дальше →

Викимарт и “теория бОльшего дурака” в электронной коммерции

Время на прочтение10 мин
Количество просмотров28K
Декабрь. Скоро Новый год. Лёгкий мороз. Вечереет. В московском офисе суета сует. Не предновогодняя весёлая. Страшнее. Кто-то объясняет настойчивому раздосадованному клиенту, что офис временно не работает, и просит обратиться в понедельник. Пробежал один из многочисленных менеджеров с системным блоком под мышкой. Следом за ним ещё один — бухгалтер с офисным стулом. Оба одеты, направляются к выходу. Получили “зарплату”. На выходе сталкиваются с бывшим гендиром, как его, Максим… а впрочем неважно. Максим глядит на это безобразие и сразу понимает — всё. Ещё прохаживается по офису, заглядывает в свой бывший кабинет в надежде отыскать какой-то позитив, но возвращается домой даже без “какого-то”. Открывает Фейсбук и пишет: “Всё...”.

Знакомо? Только речь о декабре 2017-го. Или 2020-го. Не имеет значения. И это не Викимарт.


Фото с сайта atner.livejournal.com. Викимарт. Тимбилдинг уже не нужен. Усы нужны для расчёта с кредиторами
Читать дальше →

Async/await это шаг назад для JavaScript'a?

Время на прочтение5 мин
Количество просмотров44K


В конце 2015 года я услышал об этой паре ключевых слов, которые ворвались в мир JavaScript, чтобы спасти нас от promise chain hell, который, в свою очередь, должен был спасти нас от callback hell. Давайте посмотрим несколько примеров, чтобы понять, как мы дошли до async/await.
Читать дальше →

Автоматизация нагрузочного тестирования: связка Jmeter + TeamCity + Grafana

Время на прочтение4 мин
Количество просмотров17K


Изображение: Flickr

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

Что если в играх использовать видеокарточку для физики, а не для графики

Время на прочтение5 мин
Количество просмотров80K
Хочу рассказать сообществу о проведённом мной эксперименте.

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

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

Или те же гоночки: до чего приятней на полной скорости сшибать людей, рекламные щиты и помойки, чтобы разлетались во все стороны, вместо того, чтобы мгновенно останавливаться, врезаясь в мёртво врощенный в землю столб.

Или ещё замечательный пример — Kerbal Space Program. Там физика уже является непосредственым источником геймплея.

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

Я давно мечтал сделать именно такой, до предела физически реалистичный римейк Scorched Earth. Но все мои эксперименты с моделированием физических систем упирались в неумолимо медленные процессоры. Тысяча-две частиц были пределом для real-time симуляции.

Но недавнее моё «открытие» изменило ситуацию.

Angular 2: почему на TypeScript?

Время на прочтение8 мин
Количество просмотров38K
Здравствуйте все, кто не забывает заглядывать в наш блог и в традиционно нерабочее время суток!

Давным-давно в нашей публикации от 13 ноября 2015 года вы убедили нас дождаться допиливания Angular 2 и издать о нем книгу. Мы всерьез собираемся взяться за такой проект в самое ближайшее время, а пока предлагаем почитать развернутый ответ на вопрос, вынесенный в заглавие этого поста.
Читать дальше →

Информация

В рейтинге
Не участвует
Откуда
Новосибирск, Новосибирская обл., Россия
Дата рождения
Зарегистрирован
Активность