Как стать автором
Обновить
4
0
Алексей @iTichok

Blockchain, Java, Микросервисы

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

Kubernetes в ДомКлик: как спать спокойно, управляя кластером на 1000 микросервисов

Время на прочтение8 мин
Количество просмотров16K
Меня зовут Виктор Ягофаров, и я занимаюсь развитием Kubernetes-платформы в компании ДомКлик в должности технического руководителя разработки в команде Ops (эксплуатация). Я хотел бы рассказать об устройстве наших процессов Dev <-> Ops, об особенностях эксплуатации одного из самых больших k8s-кластеров в России, а также о DevOps/SRE-практиках, которые применяет наша команда.


Поехали!
Всего голосов 39: ↑39 и ↓0+39
Комментарии37

11 примеров объявлений на поиске, за которые нужно пожать руку их авторам

Время на прочтение7 мин
Количество просмотров43K
11 примеров объявлений на поиске, за которые нужно пожать руку их авторам

Создание объявлений для рекламы на поиске — это рутина. PPC-специалисты штампуют их тысячами. Но находятся профи, которые выдают не очередные «купить ботинки недорого», а маркетинговые шедевры.


Мы покопались в выдаче Google в разных тематиках и выбрали объявления, интересные с точки зрения текстов и применяемых механик. Объяснили, чем они примечательны, и как сделать так же (или лучше).


В конце — 8 фейлов, мимо которых мы не смогли пройти.

Читать дальше
Всего голосов 14: ↑10 и ↓4+6
Комментарии17

10 интересных репозиториев на GitHub, полезных любому разработчику

Время на прочтение4 мин
Количество просмотров82K
Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО.


Фото с ресурса Unsplash. Автор: Vishnu R Nair

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

Каждый из них имеет множество звезд на GitHub, что только подтверждает их популярность, актуальность и полезность. Одни репозитории научат вас чему-то новому, благодаря другим вы сможете создать какие-то классные штуки. В целом, используя их, можно основательно прокачать навык разработки программного обеспечения.
Читать дальше →
Всего голосов 88: ↑83 и ↓5+78
Комментарии14

Автоматический кошачий туалет — продолжение

Время на прочтение6 мин
Количество просмотров13K
В предыдущих статьях, опубликованных мной на Хабре («Автоматический кошачий туалет» и «Туалет для Мэйн-Кунов») представлялась модель туалета, реализованного на ином, от существующих, принципе смыва. Туалет позиционировался, как изделие собираемое из комплектующих, свободно реализуемых и доступных для приобретения. Недостатком данной концепции является то, что некоторые технические решения являются вынужденными.

Приходится мириться с тем, что подобранные комплектующие, изначально не предназначенные для установки в собираемое изделие, неэффективно в нем работают. Такие комплектующие начинают тормозить развитие идеи и мириться с их недостатками можно только на первом этапе её развития. Когда речь идет о сборке туалета для нужд собственных кошек, то вопрос об организации производства компонентов не стоит остро. Но если появляются сторонние заказы, то он становится актуальным. А заказы появляются! Читатели, поверившие в эффективность данного способа очистки чаши туалета, и желающие избавиться от лотков с наполнителем, связываются, и заказывают изделия. Изготовление автоматического туалета для собственных кошек и изготовление автоматического туалета для кошек заказчиков – это, как говорят в Одессе: «Две большие разницы!» Выражаем большую благодарность нашим заказчикам, которые своими заказами поддерживают развитие этой темы, мирятся с задержками изготовления, неказистым внешним видом и некоторыми техническими заминками при вводе в эксплуатацию.
Всего голосов 31: ↑30 и ↓1+29
Комментарии26

Управление компьютером через Telegram

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

Вступление


Привет, Хабр!

Недавно хотел установить себе приложение для управления мышью на компьютере, но у меня возникли проблемы при подключении телефона и у меня появилась идея сделать что-то подобное самому, но как? Перебрав несколько вариантов я вспомнил о телеграм ботах которые могут вполне подойти для того чтобы сделать что подобное в текстовом варианте, например ты пишешь боту "/open chrome" и у тебя на компьютере открывается Chrome.
Читать дальше →
Всего голосов 18: ↑9 и ↓90
Комментарии13

Осторожно — ГАЗ! или Как мы делали негазированные смарт-контракты

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


Блокчейн и смарт-контракты все еще остаются горячей темой среди разработчиков и технических специалистов. Существует много исследований и рассуждений об их будущем и о том, куда это все движется и куда приведет. У нас в Waves Platform свой взгляд на то, какими должны быть смарт-контракты, и в этой статье я расскажу, как мы их делали, с какими проблемами сталкивались и почему они не похожи на смарт-контракты других блокчейн-проектов (в первую очередь Ethereum).


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

Читать дальше →
Всего голосов 28: ↑22 и ↓6+16
Комментарии2

Как было реализовано пламя в Doom на Playstation

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

Целая глава моей книги Game Engine Black Book: DOOM посвящена консольным портам DOOM и сложностям, с которыми сталкивались их разработчики. Можно долго рассказывать о полном провале на 3DO, о сложностях на Saturn из-за аффинного наложения текстур и о потрясающем «реверс-инжиниринге с нуля», выполненном Рэнди Линденом для Super Nintendo.

Изначально двинувшись в направлении, ведущем к катастрофе[1], разработчики порта под Playstation 1 (PSX) в дальнейшем смогли сменить курс и создать порт, завоевавший успех у критиков и рынка. Final DOOM был первым истинным портом, сравнимым с PC-версией. Цветовые сектора с альфа-смешением не только усовершенствовали визуальное качество, но и улучшили геймплей благодаря индикации ключа нужного цвета. Также благодаря эффектам реверберации Audio Processing Unit консоли PSX был улучшен звук.

Команда разработчиков выполнила настолько качественную работу, что у неё осталось ещё немного свободных циклов ЦП, которые они решили использовать для генерации анимированного огня в интро и геймплее. Меня это настолько привело в благоговейный трепет, что я решил разобраться, как был реализован эффект. Когда первые поиски не дали ответа, я приготовился уже сдувать пыль с книги по MIPS для взлома исполняемого файла, но Сэмюэль Вильяреал вовремя ответил в Twitter, что он уже выполнил обратную разработку версии для Nintendo 64[2]. Мне достаточно было просто немного её подчистить, упростить и оптимизировать.
Всего голосов 64: ↑61 и ↓3+58
Комментарии36

Более эффективная запись массивов в постоянную память смарт-контракта в Solidity

Время на прочтение9 мин
Количество просмотров4.4K
В последнее время, мне пришлось немного поработать с блокчейном Ethereum. Идея, над которой я работал, требовала хранить прямо в блокчейне некоторое достаточно большое количество целых чисел, так, чтобы смарт-контракт имел к ним удобный доступ. Большинство уроков по разработке смарт-контрактов говорят нам «не храните много данных в блокчейне, это дорого!». Но сколько это «много», и с какого количества цена становится слишком высокой для практического использования? Это мне надо было выяснить, потому что нам наши данные выносить офф-чейн было никак нельзя, рушилась вся затея.

Я только начинаю работать с Solidity и EVM, поэтому эта статья не претендует на истину в последней инстанции, но других материалов по этой теме ни на русском, ни на английском мне найти не удалось (хотя очень плохо, что вот эта статья мне не попалась раньше), поэтому я надеюсь, что она может оказаться кому-то полезна. Ну или в крайнем случае, она может оказаться полезна мне, если опытные товарищи расскажут, насколько и где именно я в ней не прав.

Для начала, я решил быстро прикинуть — получится ли у нас? Давайте возьмём стандартный, широко распространённый тип контракта — токен ERC20. По крайней мере, такой контракт хранит в блокчейне соответствие адресов людей, который купили токены, их балансам. В реальности, хранятся только балансы, каждый из которых занимает 32 байта (на деле здесь экономить не имеет смысла из-за особенностей Solidity и EVM). У более-менее успешного токена легко могут быть десятки тысяч обладателей, и таким образом получаем, что хранить в блокчейне около 320000 байт — вполне допустимо. А нам больше и не надо!

Наивный подход


Ну что же, попробуем наши данные сохранить. Значительная их часть — 8-битные целые беззнаковые числа, поэтому передадим их массив в контракт, и попробуем записать их в постоянную память:
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии2

Встречайте GoLand 2017.3 — новая Go IDE от JetBrains

Время на прочтение2 мин
Количество просмотров20K
Отрасль разработки программного обеспечения развивается молниеносными темпами. На рынок постоянно выходят новые технологии, инструменты и “маст-хэв” продукты, заставляя программистов ежегодно обновлять свой арсенал. Каким бы эффективным ни был язык программирования или фреймворк, рано или поздно возникает что-то еще более быстрое и мощное. Создавая продукты для разработчиков, мы в JetBrains стараемся угнаться за этим разнообразием, не упуская из виду главное — насколько инструмент разработки удобен в использовании.

Прошлой зимой мы объявили, что работаем над новой средой программирования на основе платформы IntelliJ — для языка Go. До недавнего времени эта IDE была известна под кодовым названием Gogland (в честь острова Гогланд в Финском заливе, в 180 км к западу от Санкт-Петербурга), но в качестве окончательного названия был выбран GoLand.

Сегодня мы, наконец, выпустили официальную версию GoLand 2017.3. Предлагаем вам скачать ее, и если понравится, купить!

Если вы уже используете IntelliJ IDEA Ultimate, то все возможности GoLand можете пользоваться прямо в ней, просто установив этот плагин.

image

Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии33

Вопросы и задания для русскоязычной книги Thinking in Java (Философия Java) Брюса Эккеля

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


На вопрос «С какой книги начать изучение Java?» очень часто отвечают: Thinking in Java Брюса Эккеля.
Но вот беда — эта книга (4-е издание) не содержит в конце каждой из глав вопросы и практикум…

Именно того, что способствует наиболее эффективному изучению языка!

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

Почему бы не поделиться этими заметками-вопросами с Вами?

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

А также отсутствуют вопросы, наподобие «что такое stack? каковы особенности его работы?». Они являются базовыми для многих языков и для всего программирования в целом. Поэтому старался их избегать.

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

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

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

Читать дальше →
Всего голосов 21: ↑19 и ↓2+17
Комментарии21

Зачем программисту знать алгоритмы

Время на прочтение7 мин
Количество просмотров98K
Часто появляются статьи вида «нужны ли программисту алгоритмы», и все они имеют примерно одинаковый шаблон. Автор статьи как правило пишет: «Я N лет пишу сайты/скрипты в 1С, и никогда не пользовался алгоритмами или структурами данных. Тут же приводятся в пример красно-чёрные деревья или какие-нибудь другие экзотические структуры, которые в области, в которой работает автор не часто увидишь, если увидишь вообще. Такие статьи сводятся к тому, что в конкретной области программисты не используют сложные структуры данных и не решают NP задач.
Читать дальше →
Всего голосов 73: ↑63 и ↓10+53
Комментарии152

Программа и материалы курса «Multicore programming in Java»

Время на прочтение5 мин
Количество просмотров34K
Добрый день.
Меня зовут Головач Иван, я буду уже второй раз вести спецкурс-вебинар «Multicore programming in Java». В этой статье предлагаю на рассмотрение программу курса и наиболее полезные ссылки по вопросам многопоточности в Java.

Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

Кратко о курсе: стартует 1 сентября, ведется в режиме вебинаров дважды в неделю (понедельник + четверг) в 19.00-22.00 (по московскому времени), состоит из 16 лекций по 2.5 часа (=40 лекционных часов), рассчитан на Java Middle.

1. Модуль #1: Между hardware и New JMM
1.1 Программа модуля
1.2 Литература к модулю
2. Модуль #2: java.util.concurrent
2.1 Программа модуля
2.2 Литература к модулю
3. Модуль #3: Fork/Join Framework + Parallel Streams
3.1 Программа модуля
3.2 Литература к модулю
4. Модуль #4: “Неклассические архитектуры”
4.1 Программа модуля
4.2 Литература к модулю
Читать дальше →
Всего голосов 39: ↑28 и ↓11+17
Комментарии1

Как в Spring logger получить

Время на прочтение3 мин
Количество просмотров21K
Разрабатывая приложения используя IoC-контейнер Spring думаю каждый задумывался, а как же «правильнее и красивее» создать логгер. В данной публикации хочу привести несколько примеров решения данной задачи.

Решение 1


Получаем логгер напрямую через LoggerFactory:
@Component
public class MyBean {
    private static final Logger log = LoggerFactory.getLogger("application");
    ...
}

Данное решение является классическим, безусловно работающим, но нарушает саму идеологию IoC, ведь нам хочется, что бы работу по созданию логгера выполнил сам контейнер.
Читать дальше →
Всего голосов 18: ↑13 и ↓5+8
Комментарии38

Мой отчет по годовому изучению платформы Java EE

Время на прочтение6 мин
Количество просмотров119K
Этот пост – отчет по результатам годового изучения платформы Java EE.
Он будет полезен мне своей отчетностью. Может быть пост будет полезен тем читателям хабра, которые задумали учить Джаву.

подробности
Всего голосов 126: ↑99 и ↓27+72
Комментарии139

Откуда берутся плохие программисты и в чем их проблема

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

Данная публикация раскрывает проблему возникновения плохих программистов на личном примере, подразумевая, что аналогичные ситуации сплошь и рядом. Тем не менее, в конце публикации будет попытка вывести основные ключевые аспекты, которые если не решить, то хотя бы стоит о них задуматься.
Читать дальше →
Всего голосов 106: ↑62 и ↓44+18
Комментарии146

Видео лучших докладов Java-конференции JPoint 2015 — Часть 2

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


Как многие из вас знают, в конце апреля в Москве JUG.ru проведет четвертую по счету конференцию JPoint. Любителей окунуться в океан Java-технологий ждут два увлекательных дня с морем общения и кучей докладов. Месяц назад я начал рассказывать о лучших докладах прошлогодней JPoint. Сегодня пришло время второй части.

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

Top 5 докладов JPoint 2015
Всего голосов 21: ↑20 и ↓1+19
Комментарии18

На что может рассчитывать студент в IT, и какие есть вообще варианты

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


В Петербурге зарплаты для Java-junior'а колеблются от 30 до 60К рублей. За пару лет реально дорасти до 80К, за 3-4 года — до 120К. Это докризисные цены, сейчас многие подняли зарплаты еще процентов на 20, сначала те, у кого клиенты зарубежные, а потом и остальные, чтобы оставаться конкурентноспособными.

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

Я уже несколько лет наблюдаю за поведением IT-студентов с большим интересом. Получается, что после университета у них либо есть нужная хорошая практика как старт; либо же они оказываются перед чертовски странным выбором, где даже непонятно, что и из чего выбирать. И по книгам, Гитхабу или другим самостоятельным образом выучиться достаточно быстро не выйдет — очень много времени будет потрачено просто зря. При этом в мире нужны все: дикий кадровый голод на Java-программистов есть по всему миру. Количество программистов в мире растет на 15% в год то есть, удваивается каждые 5 лет, а в России — еще быстрее. У бизнеса огромный спрос на прогеров. Понятно, что ВУЗы просто не успевают подготовить такое количество кадров.

Надо что-то с этим делать. И вот к каким выводам в Java User Group мы пришли по этому поводу относительно студентов.
Читать дальше →
Всего голосов 43: ↑29 и ↓14+15
Комментарии29

Книга «Java EE. Паттерны проектирования для профессионалов»

Время на прочтение4 мин
Количество просмотров28K
imageУ нас вышла книга Мурата Йенера и Алекса Фидома.

Книга «Java EE. Паттерны проектирования для профессионалов» — незаменимый ресурс для всех, кто желает более эффективно работать с Java EE, а также единственная книга, в которой рассмотрены как теория, так и практика использования паттернов проектирования на примерах реальных прикладных задач.

Авторы знакомят читателя и с фундаментальными, и с наиболее передовыми возможностями Java EE 7, досконально рассматривают каждый из паттернов и демонстрируют, как эти паттерны применяются при решении повседневных прикладных задач.
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии5

Документация разработчика Hibernate – Глава II. Транзакции и контроль многопоточности

Время на прочтение11 мин
Количество просмотров37K
Представляю вашему вниманию перевод второй главы официальной документации Hibernate.

Перевод статьи актуален для версии Hibernate 4.2.19.Final

Содержание

 2.1. Определение транзакции
 2.2. Физические транзакции
   2.2.1. Физические транзакции — JDBC
   2.2.2. Физические транзакции — JTA
   2.2.3. Физические транзакции — CMT
   2.2.4. Физические транзакции — Прочее
   2.2.5. Физические транзакции — Устаревшее
 2.3. Применение транзакций Hibernate
 2.4. Паттерны и анти-паттерны транзакций
   2.4.1. Анти-паттерн сессия-на-операцию
   2.4.2. Паттерн сессия-на-запрос
   2.4.3. Диалоги (Conversations)
 2.5. Идентичность объекта
 2.6. Общие вопросы
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии0

Spring 4 MVC, Hibernate: ассоциация многие ко многим

Время на прочтение27 мин
Количество просмотров29K
Данный пост показывает отношение многие-ко-многим в Hibernate, на примере соединения таблиц в веб-приложении Spring 4 MVC. Мы будем обсуждать управление отношением многие-ко-многим в представлениях и в бэк-энд'ах. Мы выполним операции создания, обновления, удаления и запрос через веб-интерфейс.

Это приложение использует интерфейс org.springframework.core.convert.converter.Converter, который помогает нам в отображении ID' предметов в настоящих субъектах в базе данных.


Читать дальше →
Всего голосов 9: ↑7 и ↓2+5
Комментарии6
1

Информация

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