Привет, Хабр! Меня зовут Светлана Болсуновская, я стратегический коуч-консультант в YADRO. Многие компании перешли на гибридный формат работы, где команды нуждаются в особом подходе для поддержания самоорганизации — процесса, при котором люди выполняют задачи без постоянного контроля руководителя. Я поделюсь своими наблюдениями, почему в современных условиях самоорганизация не происходит «магически» и что должен (и не должен) делать тимлид, чтобы помочь команде достичь этой цели.
Программист
Блеск и нищета нового Scrolling API в Spring Data
В Spring Data 3.1 появилось новое API для итерирования по большому объему данных: Scrolling API. Давайте изучим его, посмотрим на практические применения с примерами кода и преимущества по сравнению со всем известным Pageable. А также разберём, чего Scrolling API пока не хватает, и можно ли его вообще брать в свои проекты. Если хотите выяснить, как с новым API в теории ускорить пагинацию больших данных, — заходите под кат.
Компоновка аннотаций в Spring
Привет Хабр! Совсем недавно, в процессе разработки на Spring я столкнулся с невероятным количеством бойлерплейт-кода в аннотациях. Решение сделать с этим что-то было принято мгновенно и вот что из этого вышло...
Знаете, что больше всего выдает в вас низкоквалифицированного программиста?
Желание неукоснительно придерживаться ТЗ при недостигнутых задачах бизнеса.
Этот тезис больно ударит по вашему самолюбию, если вы привыкли к уровню обслуживания «нет в ТЗ – идите мимо». Тем не менее, если вы хотя бы чуть-чуть поменяете свое мнение в сторону большей клиентоориентированности, то сможете понять, о чем я.
Знаю-знаю, вы – крутой программист и тут же возразите мне – а что же, я должен предвидеть все, что нужно бизнесу? Должен догадаться, чего хочет заказчик? Бесконечно реализовывать его странные хотелки?
А имеете ли вы моральное право задавать такие вопросы? Проверьте, что из этого списка вы сделали для этого:
Полезные и неизвестные возможности Java
В этой статье вы узнаете о некоторых полезных функциях Java, о которых вы, вероятно, не слышали.
Это мой личный список функций, использованных мной недавно или с которыми я столкнулся при чтении статей о Java.
Я сосредоточусь не на языковых аспектах, а на API. Я уже опубликовал все примеры, относящиеся к этой статье, в Твиттере в форме, показанной ниже. Вы также можете найти их в моей учетной записи Twitter или просто под #java
хэштегом.
Верификация DataMatrix Честный знак — почему она важна
Работая в крупном разработчике и интеграторе решений для маркировки - заметил, что многие не знают об особенностях распознавания маркировки и мало понимания как она распознается и какие трудности могут быть при ее не правильном нанесение.
Правильность маркировки как раз проверяется ее верификацией на специальных лабораторных приборах - верификаторах 2D кода. О важности верификации для успешной продаже товара на кассе и хочу рассказать.
Марк маркировал, маркировал, да и вымаркировал. Маркировка — это ж просто!?
Систему часто критиковали и критикуют, в основном из-за частых изменений API, багов личного кабинета и белых пятен в некоторых процессах.
Мы решили, пусть и не первыми, опубликовать свой опыт и свои мысли об этом новом амбициозном проекте государства, в котором мы активно участвуем.
Может показаться, что статья — каша, но маркировка в целом такая каша и есть, очень много аспектов сходятся в одном месте.
О плохих работодателях хороших сотрудников: страсти по нерабочей неделе
Готовьте ваши руки к рукопашной!
А крысы пусть уходят с корабля —
Они мешают схватке бесшабашной.
В. Высоцкий
Честно говоря, у меня сейчас нет времени на пост для Хабра — я троекратно впахиваю на удалёнке, чтобы компания, в которой я работаю, выжила. Однако происходящее вокруг повергло меня в какой-то несвойственный моему организму ступор — нет, не от странной нерабочей недели с неясным горизонтом продолжения, а от отношения окружающих к ситуации. Я читал комментарии на Хабре и в социальных сетях, разговаривал с друзьями, знакомыми и бывшими коллегами с Очень Большой Компании и приходил в ужас: они безумно радуются внеплановым каникулам и… строчат жалобы на своих руководителей, которые попросили удалённо поработать. Ребята, сейчас не время рамсить! Давайте по аргументам.
Мы его, можно сказать, на помойке нашли, отмыли, очистили от очисток, а он нам фигвамы рисует...
Заводим Spring StateMachine
Вступление
В проектах я встречался с тремя примерами, так или иначе связанными с теорией конечных автоматов
- Пример 1. Занимательный
говнокодкод. Занимает уйму времени, на то чтоб понять что происходит. Характерной особенностью воплощения обозначенной теории в коде является довольно лютая свалка, которая местами дико напоминает процедурный код. О том что этот вариант кода лучше не трогать на проекте знает каждый технолог, методолог и продуктолог. Заходят в этот код что-то поправить в случае крайней нужды(когда совсем сломалось), о доработке каких либо фичей речи не идет. Ибо сломать страшно. Второй яркой особенностью, обосабливающий данный тип является наличие могучих таких switch, на весь экран.
На этот счет даже есть шутеечка:
Побег из Крипто Про. ГОСТ 34.10-2012 edition
Под катом рассказ как можно модифицировать свой софт на Bouncy Castle для поддержки работы с ключами по новым гостам.
Apache Kafka + Spring Boot: Hello, microservices
Коллеги из отдела фронтэнд-разработки, увидевшие статью, сетуют на то, что я не объясняю, что такое Apache Kafka и Spring Boot. Я полагаю, что всякий, кому понадобится собрать готовый проект с использованием вышеперечисленных технологий, знают, что это и зачем они им нужны. Если для читателя вопрос не праздный, вот отличные статьи на Хабре, что такое Apache Kafka и Spring Boot.
Мы же обойдёмся без пространных объяснений, что такое Kafka, Spring Boot и Linux, а вместо этого запустим Kafka-сервер с нуля на Linux-машине, напишем два микросервиса и сделаем так, чтобы одно из них посылало сообщения на другое — в общем, настроим полноценную микросервисную архитектуру.
Пост будет состоять из двух разделов. В первом мы настроим и запустим Apache Kafka на Linux-машине, во втором — напишем два микросервиса на Java.
RESTful API для сервера – делаем правильно (Часть 1)
Как правильно оформить Open Source проект
В свободное и не свободное время[1] я развиваю несколько своих проектов на github, а также, по мере сил, участвую в жизни интересных для меня, как программиста, проектах.
Недавно один из коллег попросил консультацию: как выложить разработанную им библиотеку на github. Библиотека никак не связана с бизнес-логикой приложения компании, по сути это адаптер к некоему API, реализующему определённый стандарт. Помогая ему, я понял что вещи, интуитивно понятные и давно очевидные для меня, в этой области, совершенно неизвестны человеку делающему это впервые и далёкому от Open Source.
Я провел небольшое исследование и обнаружил что большинство публикаций по этой теме на habrahabr освещают тему участия (contributing), либо просто мотивируют каким-нибудь образом примкнуть к Open Source, но не дают исчерпывающей инструкции как правильно оформить свой проект. В целом в рунете, если верить Яндекс, тема освещена со стороны мотивации, этикета контрибуции и основ пользования github. Но не с точки зрения конкретных шагов, которые следует предпринять.
Так что из себя представляет стильный, модный, молодёжный Open Source проект в 201* году?
Грязное место провайдера: проект blondemine
Я обратился к провайдеру, с просьбой решить проблему на его стороне. На что получил ответ вынесенный в заголовок: «Ну вы же понимаете, интернет — это грязное место». И тогда я решил бороться с этим явлением самостоятельно.
В результате была собрана система сбора и анализа несанкционированных сетевых пакетов.
А чтобы не утомлять читателя техническими подробностями, самое интересное я расскажу сразу, а тем кто пожелает ее повторить или улучшить рекомендую дочитать до конца.
В результате почти двух месяцев работы, в систему поступило почти 200 миллионов записей. Большая часть (98%) — это атаки типа DNS amplification, которые не раз обсуждались на хабре [1], [2]. Причем атаки начинаются не сразу, а по прошествии некоторого времени, достаточного для попадания нового публичного адреса в базу сканирующих интернет ботов. В оставшейся части событий выделяется большой сегмент атак на 23-й порт. Как я выяснил — это китайские DVR системы Hikvision, разбросанные по всему миру и сканирующих весь интернет на предмет telnet подключений. На трети из них, кстати, как раз заводские логин и пароль. А все остальное — это уже рукотворные переборы портов, попытки залогиниться, опросить по snmp и прочее.
Как стареть в IT
С 2008 года количество жалоб на дискриминацию по возрасту выросло до 25 000 в год. Можно возразить, что мы везде вынуждены «крутиться» сейчас и всегда найдётся кто-то, кто пожалуется на какую-то несправедливость. Конечно, ОК! Давайте не будем принимать во внимание жалобы. Просто посмотрим на средний возраст сотрудников известных IT-компаний. Фейсбук: 28. LinkedIn: 29. Гугл: 30. Чтобы увидеть объективно — средний возраст работника в США составляет 42 года. Это намного выше среднего возраста в названных выше компаниях. Даже сам Марк Цукерберг однажды публично высказался на каком-то мероприятии в Стэнфорде: «Я хочу подчеркнуть важность быть молодым и технически подготовленным. Молодые люди просто умнее.»
Тестирование в Java. JUnit
Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.
Итак, техника довольно понятна, но встает вопрос, что использовать для написания этих самых тестов? В этой и других статьях я хотел бы поделиться своим опытом в использовании различных инструментов и техник для тестирования кода в Java.
Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.
Я не претендую на автора каких-либо оригинальных идей, и возможно многим все, о чем будет рассказано в статье, знакомо. Но если вам все еще интересно, то добро пожаловать под кат.
Онлайн курс по компьютерным сетям начального уровня
Зачем нужен еще один курс?
Курсов, учебников, и просто статей на тему компьютерных сетей в интернет сейчас очень много. Однако те, кто только начинает изучать сети, сталкиваются с проблемой информационного взрыва. Материала слишком много и непонятно, как разобраться во всем этом многообразии.
Я решил сделать курс начального уровня, в котором кратко и ёмко рассказать об основных понятиях компьютерных сетей. Для этого мне пришлось убрать из курса много сложных технических деталей, которые не являются обязательными для понимания принципов работы сетей. В результате получился короткий видеокурс, который можно посмотреть за обозримое время (2-3 дня). А после того, как вы поняли основные принципы, в технических деталях можно разобраться самостоятельно по книжкам или материалам в интернет.
Разнообразие версий Microsoft SQL Server и какая из них последняя?
В свое время из-за немного громоздкой политики по выпуску обновлений для Microsoft SQL Server путался какой же из дистриубтивов нужно установить и откуда его скачать. Углубившись в данную тематику, в интернете нашел замечательные систематизирующие ресусры, которые отвечали на мои вопросы (они приведены в начале статьи).
Надеюсь собранная информация будет полезна не только мне.
Анонс Java-конференции для студентов в Москве: JPoint 2016 Student Day
Заводы — крестьянам, землю — рабочим, Java-технологии — студентам!
Как вы все знаете, JUG.ru уже четвертый год делает конференции по Java. За 3 года конференция JPoint превратилась из эксперимента нескольких энтузиастов в одного из отраслевых флагманов.
Когда ты делаешь специализированные (как говорят маркетологи, нишевые) мероприятия, ты всегда пытаешься ответить на вопрос — кто твоя аудитория. Аудитория наших больших конференций — это:
- разработчики-энтузиасты, которые готовы тратить свои силы, деньги и время на самообразование и нетворкинг
- Senior и Middle разработчики, у которых много всего разного и сложного на работе, и они хотят на конференции узнать о решении своих конкретных проблем, послушав доклады или напрямую пообщавшись в кулуарах со спикерами или коллегами
- компании, которые заинтересованы вкладываться в собственных инженеров с тем, чтобы они повышали свой уровень и тем самым приносили компании больше пользы.
JPoint — конференция для опытных разработчиков. Студентам идти туда практически бессмысленно:
- контент довольно сложный и технически насыщенный
- цена, если ты безработный или только-только начал работать, кусается
Выход? Сделать Java-конференцию для студентов!
Доломать Windows, чтобы починить: «Было предпринято несколько попыток, но причину проблемы определить не удалось»
Мне удалось разобраться, почему возникает сообщение «Было предпринято несколько попыток, но причину проблемы определить не удалось» и как вернуть жизнь операционке без радикальной переустановки.
Информация
- В рейтинге
- Не участвует
- Откуда
- Москва, Москва и Московская обл., Россия
- Работает в
- Зарегистрирован
- Активность