Как стать автором
Обновить
0
0

Пользователь

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

11 признаков Senior QA, к которым я пришёл за годы работы в тестировании

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

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

За 9 лет работы в роли Head of QA, я для себя сформулировал набор качеств и модель поведения, которым должен соответствовать настоящий сеньор QA. Своими наблюдениями поделился под катом.

Читать далее
Всего голосов 76: ↑69 и ↓7+62
Комментарии43

Как я «напрограммировал» себе скилл рисования диаграмм в скетч-стиле

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

По работе мне часто приходится рисовать разные схемы, диаграммы процессов и графики, в том числе и те, которые потом используются в качестве иллюстраций для сайта, статей и презентаций. Всё бы ничего, но есть у диаграмм и графиков, сделанных в популярных онлайн-сервисах наподобие draw.io или lucidcharts одна беда — они выглядят как-то слишком уныло и «олдскульно», в духе «90-х». Всю эту инфографику хотелось бы сделать более заметной, привлекательной и душевной (и, желательно, без привлечения дизайнера).

Так у меня возникла идея создания инструмента для отрисовки диаграмм и графиков в стиле «нарисовано от руки». Об истории создания сервиса и «подводных камнях» я расскажу в этой заметке.

Читать далее
Всего голосов 157: ↑157 и ↓0+157
Комментарии37

Отмена SLS: разве мы просим слишком много?

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

Хороший (хоть и слегка черезчур эмоциональный) пост сотрудника НАСА, собравший огромное количество фактов о истории и текущем состоянии американской программы флагманской ракеты-носителя SLS, с простым и понятным выводом: "Ангара" SLS абсолютно бессмысленна, опасна и должна быть закрыта.

Читать далее
Всего голосов 112: ↑112 и ↓0+112
Комментарии121

Почему цена на хостинг не меняется каждый день из-за скачков курсов валют

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


Доллар прыгает постоянно, и каждый месяц могло бы быть значимое изменение цены на поставляемое серверное железо и цены на услуги ЦОДов в других странах. Например, в Англии в Лондоне или в Нидерландах в Амстердаме. Тем не менее мы удерживаем одинаковые цены постоянно и очень-очень редко их переиндексируем. Если быть более точными, то мы два раза за свою историю повышали цены на 10 %, предупреждали об этом за два месяца и предлагали дополнительные скидки для долгого продления по старым ценам.

Первое железо мы начали покупать в 2014 году ещё для другого проекта и уже тогда столкнулись с очень резкими скачками цен из-за изменения курсов валют. То, что тогда стоило 400 тысяч рублей, сегодня по усреднённому уровню «потребительской корзины», то есть аналогичных хостинг-услуг в 2021 году, стоит уже примерно 1,5 миллиона рублей. И это не только и не столько инфляция, сколько доллар, который стоит уже не 30 и не 32 рубля.

А ещё время от времени производители софта преподносят сюрпризы вроде: «У нас чуть обновилось соглашение», а открываешь — там изменение цены на лицензии вдвое.

Задачу оптимальной экономики можно решать тремя путями:

  1. Постоянно перекладывать колебания курса на клиента.
  2. Прогнозировать некий разброс, скажем, 10 % роста в год.
  3. Покупать какой-то актив, который изменяется обратно пропорционально курсу доллара и евро.

Сейчас расскажу, как это устроено у нас.
Читать дальше →
Всего голосов 69: ↑68 и ↓1+67
Комментарии10

Traefik, docker и docker registry

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

Под катом вы увидите:

• Использования Traefik в качестве обратного прокси для маршрутизации трафика внутрь docker контейнеров.

• Использование Traefik для автоматического получения Let’s Encrypt сертификатов

• Использование Traefik для разграничения доступа к docker registry при помощи basic auth

• Все перечисленное выше будет настраиваться исключительно внутри docker-compose.yml и не потребует передачи отдельных конфигурационных файлов внутрь контейнеров.

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

Помимо этого в интернете мало информации на тему использования traefik для контроля доступа к docker registry. Описанную ниже технику можно использовать для контроля доступа к любому приложению, реализующему Rest API.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии17

Миграция устаревшей информационной системы на платформу CUBA

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


Быстрое развитие технологий и инструментов разработки ПО приводит к тому, что технологии, лежащие в основе информационной системы, теряют свою актуальность и становятся тяжелой ношей. Взять, к примеру, какую-нибудь разработку компании для автоматизации процессов, написанную на Visual Basic 6.0 или Delphi 7, которая, мягко говоря, не сочетается с новыми трендами “все в web, все в облака”, да и не соответствует амбициям разработчиков.


Проблема перевода старой ИС на новые технологии, доходя до руководства, традиционно упирается в деньги: “поживем и так...”. Для разработчиков, в свою очередь, уже перенос модели данных и шаблонное программирование стандартных экранов вызывает негатив. При этом зачастую все усложняется требованием сохранения работоспособности старой ИС на этапе разработки и внедрения новой. Так или иначе, по моему опыту, продукт либо умирает совсем, вызывая мучения как программистов, так и пользователей, либо все же приходит понимание, что обновление ИС — неотложная необходимость.


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


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


Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Путь чайника в астрофото. Часть 2 — съемка Юпитера

Время на прочтение3 мин
Количество просмотров21K
Привет geektimes! В первой части было кратко рассказано, какое оборудование может подойти (или не подойти) для фотографии небесных тел. Во второй части перейдем к практическому рассмотрению того, как получить и как обрабатывать снимки.



В принципе, тонкостей с софтом здесь весьма много. Продолжение под катом.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии27

Я всё ещё здесь: возвращение в Cеть спустя год без Интернета

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


Я был неправ.

Год назад я покинул Интернет. Я думал, что он пагубно влияет на мою продуктивность. Я думал, что ему не хватает смысла. Я думал, что он «развращал мою душу».

Уже год прошёл с тех пор, как я «сёрфил по Сети» или «проверял почту» или «лайкал» что-либо в фигуральном смысле заместо обычного «пальца вверх». Я научился оставаться отключённым, как и планировал, я свободен от Интернета.

Теперь я собираюсь рассказать вам, как всё это решило мои проблемы. Я собирался быть просвещённым, более «реальным». Более совершенным.

На самом деле сейчас 8 вечера, и я только проснулся. Я спал весь день, проснулся с восемью сообщениями на голосовой почте от друзей и коллег. Я пошёл в своё обычное кафе за обедом, игрой Knicks, двумя моими газетами и копией The New Yorker. А сейчас я смотрю «Историю игрушек», попутно уставившись и моргая на мигающий курсор в этом текстовом документе, надеясь, что он напишет себя сам, сгенерирует те прозрения моей жизни, которых я не смог достичь.

Я не хотел встречать такого Пола в конце моего годового путешествия.
Читать дальше →
Всего голосов 215: ↑168 и ↓47+121
Комментарии147

Лямбда-выражения в Java 8

Время на прочтение19 мин
Количество просмотров461K
В новой версии Java 8 наконец-то появились долгожданные лямбда-выражения. Возможно, это самая важная новая возможность последней версии; они позволяют писать быстрее и делают код более ясным, а также открывают дверь в мир функционального программирования. В этой статье я расскажу, как это работает.

Java задумывалась как объектно-ориентированный язык в 90-е годы, когда объектно-ориентированное программирование было главной парадигмой в разработке приложений. Задолго до этого было объектно-ориентированное программирование, были функциональные языки программирования, такие, как Lisp и Scheme, но их преимущества не были оценены за пределами академической среды. В последнее время функциональное программирование сильно выросло в значимости, потому что оно хорошо подходит для параллельного программирования и программирования, основанного на событиях («reactive»). Это не значит, что объектная ориентированность – плохо. Наоборот, вместо этого, выигрышная стратегия – смешивать объектно-ориентированное программирование и функциональное. Это имеет смысл, даже если вам не нужна параллельность. Например, библиотеки коллекций могут получить мощное API, если язык имеет удобный синтаксис для функциональных выражений.

Главным улучшением в Java 8 является добавление поддержки функциональных программных конструкций к его объектно-ориентированной основе.
Читать дальше →
Всего голосов 60: ↑51 и ↓9+42
Комментарии24

Правильный подход к использованию API Вконтакте

Время на прочтение5 мин
Количество просмотров99K
Привет, Хабр!

В своё время, бороздя просторы интернета на предмет рационального использования API Вконтакте, я не смог найти чего-то вразумительного, единственные библиотеки, которые были найдены мной были реализованы без использования каких-либо общепринятых практик и без красивого кода. Я решил исправить, сложившееся недоразумение и написал свою библиотеку для работы с API Вконтакте.
Животрепещущие подробности и подходы под хабракатом.
Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии21

Подглядываем за метаниями нейронной сети

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


В комментариях к моей предыдущей статье о происходящем в нейронной сети проскользнула фраза, что, к сожалению, визуализация процессов обучения редко бывает возможна на реальных задачах с большими данными. Действительно очень жаль. Давайте же попытаемся это исправить. Под катом я предлагаю простую и, как ни удивительно, информативную визуализацию процесса обучения нейронной сети, не зависящую ни от характера задачи, ни от свойств самой сети, то есть доступную для сколь угодно сложной задачи.
Читать дальше, с картинками
Всего голосов 42: ↑40 и ↓2+38
Комментарии17

Отличный Java MVC фреймворк — Play Framework

Время на прочтение2 мин
Количество просмотров48K
Добрый день!

Не так давно, мне потребовался инструмент или фреймворк, для того чтобы в краткие сроки, создать небольшой сайт — витрину. Особых требований не было. Собственно, сама витрина и простейшая админка, с возможностью подредактировать параметры публикуемого контента. Главным требованием была скорость. Нужно было сделать это все за 1-2 дня, с учетом необходимости верстки дизайна.
Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии78

Строим motion simulator из палок и синей изоленты

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


Обычно первый комментарий к статье про какую-то неведомую технологию выглядит так: «Вы бы перед тем как углубляться сначала рассказали что это и зачем нужно». Итак, сия чуднАя периферия призвана при игре в автомобильные симуляторы имитировать воздействие перегрузок на игрока. В данном случае это обеспечивается наклоном кресла по двум осям, следовательно получился симулятор движения с двумя степенями свободы.
Возьмем в руки напильник и попробуем запилить?
Всего голосов 144: ↑142 и ↓2+140
Комментарии77

Хитрые задачи по Java

Время на прочтение7 мин
Количество просмотров116K
Совсем недавно я сдал OCA Java SE 7 Programmer I. За время подготовки успел решить огромное количество задач и извлечь из них много тонких моментов языка. Самые интересные и ловкие — сохранял на будущее. И вот у меня накопилась небольшая личная коллекция, лучшую часть которой я здесь и опишу.

В замечательной статье Знаешь ли ты JAVA, %username% и её второй части автор тоже поделился опытом после подготовки. Однако я пришёл к выводу, что могу добавить что-то своё. Так и зародилась эта статья.

Читать дальше →
Всего голосов 75: ↑60 и ↓15+45
Комментарии81

Тестирование в Java. JUnit

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

Сегодня все большую популярность приобретает test-driven development(TDD), техника разработки ПО, при которой сначала пишется тест на определенный функционал, а затем пишется реализация этого функционала. На практике все, конечно же, не настолько идеально, но в результате код не только написан и протестирован, но тесты как бы неявно задают требования к функционалу, а также показывают пример использования этого функционала.

Итак, техника довольно понятна, но встает вопрос, что использовать для написания этих самых тестов? В этой и других статьях я хотел бы поделиться своим опытом в использовании различных инструментов и техник для тестирования кода в Java.

Ну и начну с, пожалуй, самого известного, а потому и самого используемого фреймворка для тестирования — JUnit. Используется он в двух вариантах JUnit 3 и JUnit 4. Рассмотрю обе версии, так как в старых проектах до сих пор используется 3-я, которая поддерживает Java 1.4.

Я не претендую на автора каких-либо оригинальных идей, и возможно многим все, о чем будет рассказано в статье, знакомо. Но если вам все еще интересно, то добро пожаловать под кат.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии34

Базы знаний. Часть 2. Freebase: делаем запросы к Google Knowledge Graph

Время на прочтение24 мин
Количество просмотров40K
image
Больше года назад Google объявил, что отныне в их поиске используется таинственная Сеть Знаний (официальный перевод Knowledge Graph). Возможно, не все знают, что значительная часть данных Сети доступна для использования всеми желающими и доступна по прекрасно описанному API. Этой частью является база знаний Freebase, поддерживаемая Google и энтузиастами. В этой статье мы сначала немного подурачимся, а потом попробуем сделать несколько простеньких запросов на языке MQL.
Эта статья — вторая из цикла Базы знаний. Следите за обновлениями.

  • Часть 1 — Введение
  • Часть 2 — Freebase: делаем запросы к Google Knowledge Graph
  • Часть 3 — Dbpedia — ядро мира Linked Data
  • Часть 4 — Wikidata — семантическая википедия

Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии10

FindBugs против CDK

Время на прочтение4 мин
Количество просмотров15K
Мне всегда интересно читать посты от PVS-Studio о том, как они ищут баги в каком-нибудь опенсорсном проекте. Я решил, что я тоже смогу написать такой пост, только про Java. Существует совершенно замечательный бесплатный статический анализатор Java-кода FindBugs. О нём на удивление мало писали на Хабре.

Помимо анализатора кода для такой статьи требуется подопытный кролик. Нужен довольно большой проект, но при этом не настолько распространённый, чтобы разработчики идеально вылизывали код. Я выбрал проект Chemistry Development Kit (версия 1.4.19), которым доводилось пользоваться. FindBugs я установил как плагин к Eclipse, потому что мне так привычнее.


Читать дальше →
Всего голосов 63: ↑62 и ↓1+61
Комментарии58

Что такое скрипты и с чем их едят — Lua & C++

Время на прочтение13 мин
Количество просмотров118K
Добрый день, Хабрахабр!
Решил написать этот топик на тему скриптов

Что нужно знать?


  • С++ на приличном уровне (в уроке будут шаблоны — template)
  • Lua, очень легкий скриптовый язык. Советую этот урок.

Почему писать диалоги игры в .cpp файле было большой ошибкой


Если вы разрабатывали большие проекты (к примеру, масштабные игры), замечали, что с каждой новой сотней строк кода компиляция идет медленней?
В игре создается больше оружия, больше диалогов, больше меню, больше etc.
Одна из самых главных проблем, возникающих в связи с нововведениями — поддерживать бессчетное множество оружия и бейджиков довольно сложное занятие.
В ситуации, когда просьба друга/босса/напарника изменить диалог или добавить новый вид оружия занимает слишком много времени, приходится прибегать к каким-то мерам — например, записи всей этой фигни в отдельные текстовые файлы.
Почти каждый геймдевелопер когда-нибудь делал карту уровней или диалоги в отдельном текстовом файле и потом их считывал. Взять хотя бы простейший вариант — олимпиадные задачи по информатике с файлом ввода

Но есть способ, на голову выше — использование скриптов.

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

2d на Unity3d

Время на прочтение14 мин
Количество просмотров219K
В свое время, в начале разработки двухмерной игры на Unity3d, мне пришлось перерыть кучу документации, сайтов, проштудировать answers.unity3d.com и forum.unity3d.com на тему: как сделать 2d-игру на этом 3d-движке. Самыми первыми вопросами были: как правильно настроить камеру, как сделать 2d-спрайт так, чтобы он отображал текстуру «пиксель в пиксель». На то время уже существовал SpriteManager (далее – SM) и даже SM2 с его мощной поддержкой редактора. Судьба сложилась так, что я не мог его тогда купить, да и пробной версии не было. В итоге, мне пришлось самому написать несколько полезных скриптов для реализации 2d на Unity3d. О том, как это сделать, пойдет речь в этой статье.

"
Читать дальше →
Всего голосов 67: ↑63 и ↓4+59
Комментарии22

Подготовка к экзамену Oracle Java SE 7 Programmer II (1Z0-804)

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

Приветствую уважаемых хабражителей и Java-программистов!
Cтатья посвящена подготовке к сдаче экзамена Oracle Java SE7 Professional с кодовым номером 1Z0-804. Про это на Хабре уже было написано множество постов (например здесь, здесь, тут, здесь, здесь, тут, тут, и вот тут), поэтому постараюсь не повторяться и дополнить заметками о том что наиболее часто встречалось, важными нюансами, которые на мой взгляд были пропущены или недостаточно хорошо освещены в указанных статьях, и вообще в общедоступной литературе (сразу отмечу, что материал не претендует на полноту, здесь я лишь старался обозначить каверзные вопросы с экзамена и лаконично изложить некоторые сложные вещи). Так же поделюсь своими соображениями насчет того, по каким материалам лучше готовиться. С первого раза экзамен сдать не получилось, поэтому начал сохранять для себя различные заметки, где записывал всё что мне казалось сложным или трудно-запоминаемым. Которыми теперь и решил с вами поделится. Заранее прошу проявить понимание, если вы вдруг заметите ошибку, недочёт или очепятку — пишите в комментарии.

Читать дальше →
Всего голосов 24: ↑21 и ↓3+18
Комментарии23
1

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность