Pull to refresh
8
0
Казаков Иван @XNoNAME

Специалист по тестированию

Send message

Об измерении скорости потока жидкостей и газов

Reading time6 min
Views29K
В нынешнем году мы начали представлять в России компанию IST — швейцарского производителя тонкопленочных датчиков температуры, относительной влажности, проводимости жидкости и скорости потока.

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

Среди многообразной продукции IST есть такая интересная штука как flow sensors — датчики скорости потока сплошных сред. Под катом рассказываю как они работают, как выглядят и зачем нужны. Думаю что это будет интересно не только разработчикам расходомеров.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments14

Американские математики обнаружили ранее неизвестное свойство простых чисел

Reading time2 min
Views87K
image

Два математика из Стэнфордского Университета, Каннан Соундараджан [Kannan Soundararajan] и Роберт Лемке Оливер [Robert Lemke Oliver] (на фото выше) обнаружили ранее неизвестное свойство простых чисел. Выяснилось, что шансы на то, что за простым числом, оканчивающимся на 9, будет следовать число, оканчивающееся на 1, на 65% больше, чем шансы, что за ним будет следовать число, снова оканчивающееся на 9. Это предположение было численно проверено компьютерными методами для миллиардов известных простых чисел.

По словам Кена Оно, математика из Университета Эмори в Атланте, это предположение по сути противоречит ожиданиям большинства математиков. Ранее считалось, что простые числа в массе своей ведут себя достаточно случайно. Большинство теоретиков сошлось бы на предположении, что шансы иметь на конце одну из возможных для простых чисел цифр (1, 3, 7, 9) примерно равны для всех таких чисел.

Эндрю Грэнвиль [Andrew Granville] из Монреальского университета, заявил, что «мы занимаемся изучением простых чисел уже очень давно, и никто раньше этого не замечал. Это безумие какое-то. Не могу поверить, что кто-то смог до этого додуматься. Это выглядит очень странно».
Читать дальше →
Total votes 64: ↑50 and ↓14+36
Comments117

Построение Android приложений шаг за шагом, часть вторая

Reading time11 min
Views56K


В первой части статьи мы разработали приложение для работы с github, состоящее из двух экранов, разделенное по слоям с применением паттерна MVP. Мы использовали RxJava для упрощения взаимодействия с сервером и две модели данных для разных слоев. Во второй части мы внедрим Dagger 2, напишем unit тесты, посмотрим на MockWebServer, JaCoCo и Robolectric.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments0

Знакомство с Apache Spark

Reading time8 min
Views120K
Здравствуйте, уважаемые читатели!

Мы наконец-то приступаем к переводу серьезной книги о фреймворке Spark:



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

Читать дальше →
Total votes 21: ↑17 and ↓4+13
Comments8

Построение Android приложений шаг за шагом, часть первая

Reading time8 min
Views146K


В этой статье мы поговорим о проектировании архитектуры и создании мобильного приложения на основе паттерна MVP с использованием RxJava и Retrofit. Тема получилась довольно большой, поэтому подаваться будет отдельными порциями: в первой мы проектируем и создаем приложение, во второй занимаемся DI с помощью Dagger 2 и пишем тесты unit тесты, в третьей дописываем интеграционные и функциональные тесты, а также размышляем о TDD в реалиях Android разработки.
Читать дальше →
Total votes 32: ↑27 and ↓5+22
Comments48

Несколько вещей, о которых стоит помнить программисту в возрасте

Reading time11 min
Views128K
Если вы из тех, кто «работал ещё Там-То!» и «делал ещё То-То!», а сейчас счастливо отдыхаете на пенсии — эта статья не для вас. Просто спасибо за труд и примите мои поздравления. Но если же вы, как и я, даже став немного старше всё ещё ощущаете страсть к программированию, радуетесь виду кода и не можете устоять перед желанием написать ещё что-нибудь, тогда продолжайте читать.

Большую часть моей жизни я проработал разработчиком программного обеспечения. Но однажды, уже под конец моего четвёртого десятка, я попался на удочку предпринимательской наживы. Я тогда поверил, что создавать собственные компании — это круто. Я нашел немного венчурного капитала и организовал пару небольших стартапов для реализации собственных идей. И вот я стал, как мне казалось, нормальным CEO и не таким уж плохим менеджером. И, хотя я уже не писал код лично, я мог нанимать хороших программистов, управлять качеством проектов и внедрением инноваций.

Я смирился с мыслью, что мой лучший код уже написан — в прошлом. Мне было уже 54 года (немало!) и я, вероятно, уже не мог писать код так же хорошо, как и раньше. Кто знает — может быть у меня уже начала отказывать память, ну или я просто выучил всё, что был способен в жизни выучить. Мой настрой подкреплялся наблюдениями окружающей меня реальности. Все новые технологии выглядели для меня чудаковато. Я ненавидел Node.js. Я считал все фреймворки для веб-разработки ужасными. И я сетовал на то, что классические способы разработки ПО разрушились и превратились в набор клише, которые нынче впариваются под умными названиями типа Agile или «экстремальное программирование». Я скучал за днями, когда люди писали спецификацию на будущее ПО, программировали, а затем тщательно тестировали его. И когда в каждой статье не было тысячи жаргонных словечек.
Читать дальше →
Total votes 121: ↑117 and ↓4+113
Comments134

Представляем бесплатную лабораторию программирования Wolfram Programming Lab для изучения языка Wolfram Language

Reading time5 min
Views16K

Перевод поста Stephen Wolfram "Announcing Wolfram Programming Lab".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Я рад объявить о запуске Лаборатории программирования Wolfram — среды для всех, кто хочет обучиться программированию и вычислительному мышлению вместе с Wolfram Language. Wolfram Programming Lab можно запускать как в браузере, так и на настольных системах (Mac, Windows, Linux).

Я давно хотел найти способ, позволяющий кому бы то ни было, будь то детям или взрослым, познакомиться с Wolfram Language и всеми его возможностями, даже при полном отсутствии знаний и опыта в сфере программирования. Теперь он у нас есть!

Стартовый экран (см. рис. в самом верху поста) предоставляет возможность пойти по одному из четырех путей. Во-первых, есть небольшое видео. Далее следует раздел «Попробуйте сами», содержащий несколько весьма простых, но интересных вычислений.


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

21 бесплатный учебный ресурс для разработчиков игр

Reading time8 min
Views135K
В интернете полным-полно создателей контента, и каждый хочет привлечь к себе внимание. Но, как ни странно, хороший учебный ресурс найти нелегко, а бесплатный – еще сложнее. Мы публикуем перевод материала, в котором автор собрал ссылки на самые авторитетные и полезные обучающие площадки.


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

Тонкие места в React.js

Reading time5 min
Views29K
React — это, безусловно, прорывная технология, которая упрощает создание сложных интерфейсов, но, как у любой абстракции, у неё есть свои мелкие проблемки и особенности. Я в своей практике столкнулся с четырьмя не очень очевидными вещами. Багами это назвать сложно — это просто особенности работы библиотеки. О них сегодня и поговорим.

Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments9

Каток в спортзале: версия вторая, улучшенная и дополненная

Reading time3 min
Views18K


В прошлом декабре, незадолго до Нового Года, в спортзале Mail.Ru Group был впервые устроен настоящий каток. Сотрудники всячески одобрили эту затею, каток пользовался большой популярностью. Поэтому мы решили в этом году снова построить его, но на этот раз решили несколько улучшить его.
Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments11

Десятки предрелизных фильмов в DVD-качестве утекли в интернет

Reading time2 min
Views47K
image
Кадр из The Hateful Eight («Отвратительная восьмёрка»)

На этой неделе произошла самая большая утечка кинофильмов в интернет в истории видеопиратства. По некоторым данным, в сеть попало несколько десятков копий фильмов в DVD-качестве, предназначенных для предварительного просмотра профессионалами в области кино (такие копии обычно обозначаются как DVDscr).

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

image
Кадр из The Revenant («Восставший из мёртвых»)

Последний громкий случай подобной утечки, произошедший с фильмом Сталлоне «The Expendables 3», меркнет по сравнению с текущим событием. Здесь играет роль не только количество, но и качество фильмов – среди них и самый свежий фильм Тарантино, и новый фильм с участием ДиКаприо (мы болеем за тебя, Лео!), и другие фильмы класса «А». Все фильмы либо недавно начали транслироваться в кинотеатрах, либо запланированы на рождественские дни.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments61

Использование JMeter для организации распределенной нагрузки

Reading time4 min
Views23K


Автор: Роман Денисенко, старший инженер по тестированию DataArt.

Введение

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

Для генерации такой нагрузки возможностей одной тестовой машины становится уже недостаточно. И тогда возникает классический вопрос — как можно воспроизвести подобную нагрузку с минимумом затрат и максимумом результата.

К счастью, большая часть современных программных средств, используемых для нагрузочного тестирования, позволяет использовать дополнительные удаленные агенты, необходимые для эмуляции распределенной нагрузки. В рамках данной статьи я хотел бы рассмотреть возможность создания нагрузочного кластера на примере, думаю, одной из самых распространенных программ, используемых тестировщиками, — великого и ужасного Apache JMeter`а.
Читать дальше →
Total votes 10: ↑9 and ↓1+8
Comments4

Коллекции в Java: о чём многие забывают

Reading time6 min
Views142K
Из опыта code-review и ответов на StackOverflow набралось немало моментов, касающихся Java Collections API, которые мне казались очевидными, но другие разработчики о них почему-то не знали или знали, но не чувствовали уверенности их применять. В этой статье я собираю в общую кучу всё, что накопилось.

Содержание:


  1. List.subList
  2. PriorityQueue
  3. EnumSet и EnumMap
  4. Set.add(E) и Set.remove(E) возвращают булево значение
  5. Map.put(K, V), Map.remove(K), List.set(idx, E), List.remove(idx) возвращают предыдущий элемент
  6. Map.keySet() и Map.values()
  7. Arrays.asList может быть ключом
  8. Collections.max
  9. LinkedList, Stack, Vector, Hashtable
Читать дальше →
Total votes 58: ↑57 and ↓1+56
Comments37

Анонс Java-конференции JPoint 2016

Reading time2 min
Views8K


22 и 23 апреля в Москве в гостинице «Radisson Славянская» пройдет Java-конференция JPoint 2016, крупнейшая Java-конференция в России. За два дня конференции участникам будут представлены более 40 докладов от разработчиков платформы Java и ведущих Java-экспертов из России, США, Великобритании, Израиля, Украины, Эстонии, Латвии и других стран.

JPoint состоится уже в четвертый раз, и впервые — в двухдневном формате!

Два дня — это:
  • в 2 раза больше докладов;
  • в 2 раза больше спикеров;
  • в 2 раза больше общения с экспертами и коллегами из других компаний.


Вот видео, которое дает некоторое представление, о том, что же происходит на JPoint:


Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments21

Реализация автоматического перезапуска failed-тестов в текущей сборке и преодоление сопутствующих бед

Reading time10 min
Views9.9K
В данной статье речь пойдет об использовании фреймворка testNG, а конкретно — о реализованных в нем и довольно редко используемых интерфейсах: IRetryAnalyzer, ITestListener, IReporter. Но обо всем по порядку.

Вечной проблемой каждого тестировщика при запуске автотестов является “падение” отдельных сценариев от запуска к запуску рандомно. И речь идет не о падении наших тестов по объективным причинам (т.е. действительно имеет место ошибка в работе тестируемого функционала, или же сам тест написан не корректно), а как раз о тех случаях, когда после перезапуска ранее проваленные тесты чудом проходят. Причин такого рандомного падения может быть масса: отвалился интернет, перегрузка CPU / отсутствие свободной RAM на устройстве, таймаут и др. Вопрос — как исключить или хотя бы уменьшить количество таких не объективно проваленных тестов?

Для меня данный челлендж возник при следующих обстоятельствах:

1) текущее приложение автотестов было решено разместить на сервере (CI);
2) реализация мультипоточности в проекте превратилась из желания в mustHave (в виду необходимости сокращения времени регрессионного тестирования сервиса).

Второму пункту лично я был очень рад, так как считаю, что любой процесс, который может длиться меньшее количество времени — обязательно должен поступать именно таким образом (будь то прохождение автотеста или очередь на кассе в супермаркете: чем быстрее мы можем завершить эти процессы, тем больше времени у нас остается для занятий чем-то действительно интересным). Так вот, разместив наши тесты на сервере (тут нам помогли админы и их знание jenkins) и запустив их в потоках (тут уже помогла наша усидчивость и эксперименты с testng.xml), мы получили сокращение времени прохождения тестов из 100 минут до 18, но одновременно мы получили прирост в проваленных тестах >2 раза. Поэтому к первым двум пунктам добавился следующий (собственно, сам челлендж, которому и посвящена эта статья):
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments5

Полезные сниппеты для Nginx конфигов

Reading time5 min
Views122K


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3+88
Comments44

5 вещей, которых вы не знали о многопоточности

Reading time10 min
Views293K
Хоть от многопоточности и библиотек, которые её поддерживают, отказываются немногие Java-программисты, но тех, кто нашёл время изучить вопрос в глубину ещё меньше. Вместо этого мы узнаём о потоках только столько, сколько нам требуется для конкретной задачи, добавляя новые приёмы в свой инструментарий лишь тогда, когда это необходимо. Так можно создавать и запускать достойные приложения, но можно делать и лучше. Понимание особенностей компилятора и виртуальной машины Java поможет вам писать более эффективный, производительный код.

В этом выпуске серии «5 вещей …», я представлю некоторые из тонких аспектов многопоточного программирования, в том числе synchronized-методы, volatile переменные и атомарные классы. Речь пойдет в особенности о том, как некоторые из этих конструкций взаимодействуют с JVM и Java-компилятором, и как различные взаимодействия могут повлиять на производительность приложений.
Читать дальше →
Total votes 86: ↑77 and ↓9+68
Comments40

Автоматизация workflow небольшой команды разработки (Часть 1)

Reading time5 min
Views40K
Практически во всех местах моей работы программистом для разработки использовали всего два продукта: багтрекинг и систему контроля версий. Чаще всего это были Atlassian Jira и SVN. В принципе, наличие этих двух систем здорово упорядочивает общение всех участников процесса разработки и положительно влияет на качество работы отдела и продукта.

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

После третьей страницы текста моей статьи, я решил разделить ее на 2 блока:


Итак. Настройка ПО, сопровождающего процесс разработки



Читать дальше →
Total votes 19: ↑14 and ↓5+9
Comments39

Автоматизация workflow небольшой команды разработки (Часть 2)

Reading time8 min
Views44K
В предыдущей публикации я описывал список продуктов и их настройки, которые необходимы для работы нашей организации.

В этой статье я постараюсь описать, как мы это всё используем в ежедневной работе всего коллектива разработки.

На протяжении 4-х лет у нас выработался следующий формат команды разработки:
  • 1 Project Manager, он же Product Manager, он же Delivery Manager.
  • 4-5 программистов
  • 1 Team lead
  • 3-4 QA
  • 1 Аналитик
  • 1 Техпис (иногда он же и аналитик в одном лице).

В итоге команда размером около 10-11 человек. Таких команд (ячеек) у нас несколько.

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

Начинал в этой системе я как программист, потом Team lead, ну а теперь PM (DM). Т.е. руковожу, полностью участвую в проектировании и иногда даже пописываю. Во времена моего программирования у меня был замечательный ПМ (выходец из тестировщиков), которая поддерживала все мои идеи по автоматизации workflow. Даже более того, концептуально этот процесс придуман ей, а я уже смог его технически реализовать и в некоторых местах усовершенствовать.
Читать дальше →
Total votes 16: ↑16 and ↓0+16
Comments21

IPTV на Андроид

Reading time2 min
Views193K
IPTV уже довольно популярная услуги и многие ей пользуются на компьютере, телевизоре, медиа плеере и т.д. Я хочу рассказать как запустить эту услугу у себя на смартфоне или планшете под управлением ОС Android.

Приложения для просмотра IPTV на Android


На текущий момент мне известны 2 таких приложения:

Оба приложение похожи и имеют схожий функционал, каждый выберет себе то, что по душе. Лично я пользовался сразу приложением от Сафронова, но после того, как оно временно пропало с маркета, перешел на QSmart и уже остался на нем.
image
Читать дальше →
Total votes 25: ↑11 and ↓14-3
Comments26

Information

Rating
Does not participate
Location
Пушкино, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Test Automation Engineer, Manual Test Engineer
Senior
From 250,000 ₽
Git
PHP
Java
Junit
Apache Maven
PhpUnit
Selenium
Manual testing
Software testing
Apache Jmeter