Pull to refresh
0
Nikolai Artamonov @nicknotfoundread⁠-⁠only

Java Developer

Send message

Строим домашний CI/CD при помощи GitHub Actions и Python

Reading time12 min
Views60K

Как то вечером, придя домой с работы, я решил немного позаниматься домашним проектом. Я сделал несколько правок и сразу захотел поэкспериментировать с ними. Но до экспериментов мне пришлось заходить на VPS, пулить изменения, пересобирать контейнер и запускать его. Тут я и решил, что пора разобраться с непрерывной доставкой.

Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments15

На работу на велосипеде. Еще одно мнение

Reading time15 min
Views83K

Внимание! Это не автор поста!

Вступление


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

Все начиналось прозаично. Однажды, теплым мартовским днем 2016 года, где-то между извилин подогретого первыми солнечными лучами мозга, появился зуд. Я вспоминал детство. Не вообще всё, а те моменты, когда я катил на велосипеде. Это было давно и последние годы моим основным транспортом до работы была электричка, метро и ноги. И я предложил жене купить по велосипеду. Так мы стали обладателями двух MTB (в простонародье «горных») аппаратов типа «Хардтейл». В начале были легкие покатушки по городу и парку «Лосиный остров». С каждым разом было интересно заехать в невиданные ранее уголки города и ближайшего пригорода. Тогда я и не думал, что так просто можно ездить на работу. Но такие мысли однажды появились. Я смотрел карту, видел там «Лосиный остров», он манил. И я поддался. Бумажная просека стала для меня откровением. Асфальтовая дорога в лесу. Так я доехал от Королёва до парка «Сокольники», а там было рукой подать до метро «Добрынинская», где я тогда и работал. И началось. За прошедшее время и тысячи километров появился некий опыт и мнение, которым я и постараюсь поделиться.
Total votes 120: ↑94 and ↓26+68
Comments552

Пиар в айти: как жить, куда идти?

Reading time9 min
Views15K
Я знаю как минимум 5 браузеров, около 20 хостингов, 23 более-менее годных CRM-системы, 6 адекватных ERP, 12 нормальных систем управления проектами, 5 багтрекеров, сотни однообразных мобильных приложений, 4 крупных BPM-системы и проч. Перед каждой из компаний-разработчиков стоит задача показаться на глаза будущему пользователю первым и желательно его не разочаровать, потому что разубедить купить что-то другое будет дороже, сложнее и дольше. Это первая задача. Вторая задача — иметь такой имидж на рынке, чтобы к тебе были готовы идти лучшие кандидаты, чтобы о тебе мечтали новички и желательно за тебя боролись евангелисты. Третья задача — быть компанией, которой гордятся сотрудники. Если вы реально думаете, что всему этому может помочь пресс-релиз, у меня для вас плохие новости. Яндекс.Директ? Ну если есть 4 мешка денег… Участие в выставке? Ок, ваши блокноты точно разберут. Так что же такое современный пиар в айти (для zanuda mode — PR in IT)?  Он вообще существует? Опыт говорит, да.


Это я. Ну я пиарщик, я так вижу
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments6

Как начать писать игры

Reading time9 min
Views348K
Оригинал: Starting out on Game Programming

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

Вы только что закончили ваш первый курс по С++ и хотите начать делать игры. Кто-то указал вам на этот сайт и вы, возможно, поэкспериментировали немного с руководством. Вы изучили несколько лаконичных примеров, но не нашли руководства о том, как сделать целую игру. И на то есть причина.

Руководства хороши для обучения чему-то шаг за шагом, например тому, как перемещать изображение точки по экрану. Для того чтобы собрать игру воедино, вам нужны навыки решения возникающих проблем, приобретаемые лишь с опытом. Это не то, чему можно научиться из руководств. Лучший способ научиться делать игры — это начать их делать.
Дальше
Total votes 134: ↑119 and ↓15+104
Comments51

9 нюансов в работе инди-разработчика, о которых мне никто не рассказывал

Reading time11 min
Views28K
Продолжаем переводить иностранные статьи по созданию игр в блоге программы «Менеджмент игровых интернет-проектов». На этот раз создатель игры SanctuaryRPG, Рагхав Матур расскажет нам о некоторых нюансах в работе инди-разработчика.


Читать дальше →
Total votes 31: ↑25 and ↓6+19
Comments12

Разработка инди-игры одним человеком (история, советы)

Reading time9 min
Views57K
Я хотел бы рассказать вам о своем опыте в разработке инди игры. Мой опыт ограничен всего одной игрой, которая на данный момент находится в “раннем доступе” в Steam. Это не много, но мне кажется мне есть чем поделиться. Если не хочется читать все — в конце самое интересное кратко.

image
Total votes 57: ↑54 and ↓3+51
Comments69

Снежинки в стилистике StarWars своими руками (upd. 2018)

Reading time1 min
Views19K

A long time ago in a galaxy far, far away... И вот опять наступил конец года… декабрь… Думаете Антонио Эррера решил нас порадовать новыми паттернами снежинок, выполненных в стилистике StarWars? И вы абсолютно правы. В прошлом году Антонио сделал всего два паттерна с Поргами (кстати в подборку этого года они так же вошли).
Так что же Антонио придумал на этот раз?
Total votes 23: ↑20 and ↓3+17
Comments11

Советы и рекомендации по портфолио UX-дизайнера

Reading time9 min
Views12K
Простая и понятная статья от Micah Bowers о том как лучше подойти к созданию портфолио UX дизайнеру, чтобы получить профит.

«То как вы поднимаетесь на гору, важнее факта достижения вершины».



В своих мемуарах Let My People Go Surfing Ивон Чуйнард, основатель глобального наружного бренда Patagonia, пишет:

«То как вы поднимаетесь на гору, важнее факта достижения вершины».

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

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

Подобно тому как люди стремятся работать в тех отраслях в которых они хотят работать, дизайнеры должны адаптировать портфолио к определенной аудитории. Почему?
Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments0

Специалист по разметке данных

Reading time3 min
Views30K
Сегодня замечательный день (if you know what I mean), чтобы анонсировать нашу новую программу — Специалист по разметке данных.

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

Железо, в общем-то, доступно каждому через облака. Да, оно может быть недешевым, но GPU-инстансы на EC2 вполне по карману большинству исследователей. Софт опенсорсный, большинство фреймворков можно скачать себе куда-то и работать с ними. Некоторые сложнее, некоторые проще. Но порог для входа вполне приемлемый. Остается только последний компонент — это данные. И вот здесь и возникает загвоздка.

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


В этом посте хочется сделать обзор тех инструментов (коммерческих и бесплатных), которые пытаются облегчить жизнь этих прекрасных людей — разметчиков данных.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments4

Введение в архитектуры нейронных сетей

Reading time31 min
Views191K


Григорий Сапунов (Intento)


Меня зовут Григорий Сапунов, я СТО компании Intento. Занимаюсь я нейросетями довольно давно и machine learning’ом, в частности, занимался построением нейросетевых распознавателей дорожных знаков и номеров. Участвую в проекте по нейросетевой стилизации изображений, помогаю многим компаниям.

Давайте перейдем сразу к делу. Моя цель — дать вам базовую терминологию и понимание, что к чему в этой области, из каких кирпичиков собираются нейросети, и как это использовать.

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

Дальше я расскажу про важные тренды, что происходит в этой области. Затем мы углубимся в архитектуру нейросетей, рассмотрим 3 основных их класса. Это будет самая содержательная часть.

После этого рассмотрим 2 сравнительно продвинутых темы и закончим небольшим обзором фреймворков и библиотек для работы с нейросетями.
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments2

Подробное сравнение популярных SMS/Voice сервисов для рассылок и авторизаций

Reading time3 min
Views73K


Десятки мобильных стартапов встречают своего пользователя с экрана SMS-авторизации. Сегодня мы попытаемся разобраться какой сервис удобнее, выгоднее и надежнее всего использовать для регистрации в мобильных проектах, отправки SMS-уведомлений, рассылок и различных других действий.
Нажмите чтобы узнать о самых выгодных SMS-провайдерах
Total votes 20: ↑11 and ↓9+2
Comments22

Механизм представлений — особая кубинская магия

Reading time8 min
Views6.3K

КПДВ


Представления, или views, это одна из концепций платформы CUBA, не самая расхожая в мире веб-фреймворков. Понять её — значит уберечь себя от глупых ошибок, когда из-за неполностью подгруженных данных приложение внезапно перестает работать. Давайте посмотрим, что представляют из себя представления (каламбур) и почему это на самом деле удобно.


Проблема незагруженных данных


Возьмём предметную область попроще и рассмотрим проблему на её примере. Предположим, у нас есть сущность Customer, которая ссылается на сущность CustomerType в отношении много-к-одному, иными словами, покупатель имеет ссылку на некий тип, его описывающий: например, "дойная корова", "грубиян" и т.п. Сущность CustomerType имеет атрибут name, в котором хранится имя типа.


И, наверное, все новички (а то и продвинутые пользователи) в CUBA рано или поздно получали такую ошибку:


IllegalStateException: Cannot get unfetched attribute [type] from detached object com.rtcab.cev.entity.Customer-e703700d-c977-bd8e-1a40-74afd88915af [detached].


Ошибка Cannot get unfetched attribute в CUBA UI


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


Что такое представление?


Представление в CUBA — это, по сути, набор столбцов в базе данных, которые должны быть загружены вместе единым запросом.

Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments0

Как НЕ нужно учить английский: типичные ошибки

Reading time6 min
Views53K
Изучение иностранных языков — это длительный и комплексный процесс. Он состоит из множества факторов и особенностей, поэтому многие ученики делают в нем ошибки.

Некоторые ошибки неопасные и просто уменьшают скорость изучения языка, но часть из них может свести успехи практически к нулю. В этой статье мы разберем основные ошибки в изучении английского языка, о которые наиболее часто спотыкаются ученики.
Читать дальше →
Total votes 37: ↑28 and ↓9+19
Comments32

Mask R-CNN: архитектура современной нейронной сети для сегментации объектов на изображениях

Reading time13 min
Views94K


Времена, когда одной из самых актуальных задач компьютерного зрения была способность отличать фотографии собак от фотографий кошек, уже остались в прошлом. На данный момент нейронные сети способны выполнять куда более сложные и интересные задания по обработке изображений. В частности, сеть с архитектурой Mask R-CNN позволяет выделять на фотографиях контуры («маски») экземпляров разных объектов, даже если таких экземпляров несколько, они имеют различный размер и частично перекрываются. Сеть так же способна к распознаванию поз людей на изображении.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments9

Java и Linux — особенности эксплуатации

Reading time23 min
Views60K
Java — очень распространённая платформа, на ней пишут очень разные вещи, начиная от Big Data, заканчивая микросервисами, монолитами, enterprise и прочим. И, как правило, всё это развёртывают на Linux серверах. При этом, соответственно, те люди, которые пишут на Java, зачастую делают это совсем на других операционных системах. Там они:

  • пишут код;
  • отлаживают, тестируют;
  • после этого упаковывают в jar;
  • отправляют на Linux, и оно работает.

В том, что оно работает, нет особой магии. Но это приводит к тому, что такие разработчики немножечко «засахариваются» в своём мире кроссплатформенности и не очень хотят разбираться, а как оно на самом деле работает в реальной операционной системе.



С другой стороны, есть те, кто занимается администрированием серверов, на их сервера устанавливают JVM, отправляют jar и war-файлы, а с точки зрения мира Linux все это:

  • чужеродное;
  • проприетарное;
  • собирается не из исходников;
  • поставляется какими-то jar-архивами;
  • «отъедает» всю память на сервере;
  • вообще, ведёт себя не по-человечески.

Цель доклада Алексея Рагозина на Highload++, расшифровка которого идет далее, была в том, чтобы рассказать особенности Java для «линуксоидов» и, соответственно, Linux — Java-разработчикам.
Total votes 55: ↑53 and ↓2+51
Comments18

Адаптивная вёрстка

Reading time4 min
Views51K


В чём разница между резиновой, адаптивной и отзывчивой вёрсткой? Как правильно их применять?

Давайте разберёмся в отличиях подходов и попробуем сформулировать один общий вместо трёх.

Поехали
Total votes 28: ↑23 and ↓5+18
Comments13

Делаем адаптивный HTML, добавляя одну строку в CSS

Reading time4 min
Views192K
image

В этой статье я расскажу вам, как использовать CSS Grid для создания супер классной сетки изображений, которая варьирует количество столбцов в зависимости от ширины экрана.

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments103

Делать ли мобильную версию? 5 распространенных проблем, которые решает адаптивная верстка. Опыт Яндекса

Reading time9 min
Views112K

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


Сайт smashingmagazine.com на различных размерах экранов


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

Читать дальше →
Total votes 103: ↑99 and ↓4+95
Comments102

Используйте голову

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

Специально для Хабра (для людей с техническим складом ума) я подготовил краткую версию статьи о мозге, в которой описано, что полезно для мозга, а что нет. Добро пожаловать под кат.
Читать дальше →
Total votes 285: ↑259 and ↓26+233
Comments131
1

Information

Rating
Does not participate
Location
Самара, Самарская обл., Россия
Date of birth
Registered
Activity