Pull to refresh
7
@dtvread⁠-⁠only

User

Send message

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Reading time39 min
Views167K
Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.


Другие статьи серии: часть 1. JPA и Hibernate в вопросах и ответах

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


Читать дальше →
Total votes 51: ↑43 and ↓8+35
Comments49

Тестирование на Android: Robolectric + Jenkins + JaСoСo

Reading time5 min
Views29K
Тестирование Android приложений — тема большая и емкая, говорить о ней можно бесконечно. Мы в Rambler&Co автотесты любим, пишем и активно используем для всех наших приложений. В данной статье мы расскажем, как получать и анализировать результаты тестирования android (и не только) приложений. Покажем как настроить Robolectric, JaCoCo и Jenkins, чтобы было вот так:


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

Покупка оптимальной квартиры с R

Reading time12 min
Views61K
Многие люди сталкиваются с вопросом покупки или продажи недвижимости, и важный критерий здесь, как бы не купить дороже или не продать дешевле относительно других, сопоставимых вариантов. Простейший способ — сравнительный, ориентироваться на среднюю цену метра в конкретном месте и экспертно добавляя или снижая проценты от стоимости за достоинства и недостатки конкретной квартиры. image Но данный подход трудоемок, неточен и не позволит учесть все многообразие отличий квартир друг от друга. Поэтому я решил автоматизировать процесс выбора недвижимости, используя анализ данных путем предсказания «справедливой» цены. В данной публикации описаны основные этапы такого анализа, выбрана лучшая предиктивная модель из восемнадцати протестированных моделей на основании трех критериев качества, в итоге лучшие (недооцененные) квартиры сразу помечаются на карте, и все это используя одно web-приложение, созданное с помощью R.

Читать дальше →
Total votes 62: ↑59 and ↓3+56
Comments35

Да начнется unit-тестирование (Objective-C)

Reading time10 min
Views36K
Данная статья посвящена вопросу тестирования в рамках Objective-C используя Xcode 6. Рассматриваются стандартная библиотека для тестирования и сторонняя библиотека OCMock. Опытные разработчики, возможно, не найдут здесь слишком полезной информации, тем же, кто недавно встал на этот путь — статья откроет необходимые базовые знания по написанию unit-тестов на языке Objective-C.

Для основы тестирования просьба обратиться сюда.
Для основы unit-тестирования сюда.

А теперь мы начнем изучение unit-тестирования в рамках Objective-C.
Читать дальше →
Total votes 20: ↑17 and ↓3+14
Comments11

Spring Boot: от начала до продакшена

Reading time15 min
Views365K

В данной статье я попробую расписать все шаги, которые потребуются для создания небольшого проекта на Spring Boot и развертывания его на боевом сервере.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments38

Moscow Atlassian Meetup в Москве 21 апреля

Reading time1 min
Views4.5K


Во вторник, 21 апреля, Mail.Ru Group организует первый Moscow Atlassian Meetup. В офисе компании соберутся эксперты в области организации общения с пользователями и управления проектами. В программе события — доклады по продуктам Atlassian (JIRA, Confluence и другим), а после — их обсуждение и общение единомышленников в свободной обстановке.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments5

Класс дедлоков про дедлок классов

Reading time5 min
Views38K


Знаете ли вы, как избежать дедлоков в своей программе? Да, этому учат, про это спрашивают на собеседованиях… И тем не менее, взаимные блокировки встречаются даже в популярных проектах серьёзных компаний вроде Google. А в Java есть особый класс дедлоков, связанный с инициализацией классов, простите за каламбур. Такие ошибки легко допустить, но трудно поймать, тем более, что сама виртуальная машина вводит программиста в заблуждение.

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

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

Риски и метрики в автоматизации тестирования

Reading time7 min
Views27K


Добрый день!
Бизнес любит измерять, менеджмент любит прозрачность, а сотрудники не любят всю эту бумажную работу, в особенности если от них хотят неизвестно что… Процессы автоматизации тестирования не исключение. Я приведу 5 рисков, которые чаще всего встречаются, которые стреляют, которые нельзя недооценивать, которые могут привести к провалу всего тестирования и проектов в целом. Также я приведу примеры метрик, добросовестное использование которых поможет успокоиться вам, вашему начальству, бизнесу.
Читать дальше →
Total votes 18: ↑17 and ↓1+16
Comments12

Облегчаем поддержку iOS приложения. Часть 2 — локация и сеть

Reading time6 min
Views8.6K
Добрый день, хаброжители,

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

  1. Облегчаем поддержку iOS приложения. Часть 1 — не отрываясь от Xcode
  2. Облегчаем поддержку iOS приложения. Часть 2 — локация и сеть
  3. Облегчаем поддержку iOS приложения. Часть 3 — падение и логи

В первой статье я поделился своим опытом работы с трудно воспроизводимыми багами. В этой статье я расскажу, как можно поступить с багами, которые связаны с сетью или локацией. Тех, кого интересует эта тема, прошу под кат.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments0

Делаем свою работу в Xcode чуточку эффективнее

Reading time2 min
Views21K
Разработка программных продуктов — очень интересный процесс, который нам всем очень-очень нравится, но есть некоторые вещи, которые слишком монотонны. Сегодня я бы хотел рассказать про то, как я упростил свой рабочий процесс в Xcode с помощью различных сторонних плагинов.

Интеграции :)

Заинтересованных прошу под кат
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments32

Обучение тестировщиков. Практический опыт и советы

Reading time7 min
Views40K
Что подталкивает нас к организации обучения? В первую очередь — потребность в качественном улучшении работы и повышении квалификации сотрудников. Как правило, и сами сотрудники заинтересованы в том, чтобы развиваться. Нередко, правда, выясняется, что человек не знает, куда. Он просто хочет расти, но не понимает, какой ему нужен рост — «горизонтальный» или «вертикальный».

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

Проблемы при организации обучения


1. В компании могут отсутствовать тренеры как таковые

Что же делать, если нет тренеров? На самом деле, это не проблема. Информацией можете делиться лично вы. Еще один вариант — сделать тренерами коллег. Например, если вам необходимо организовать обучение программированию, попробуйте подойти к одному из разработчиков и сказать: «О, Великий Сверхчеловек, озари меня своим знанием, научи меня программировать!». Возможно, это сработает. Также может сработать кейс с регулярными поставками пива. Одним словом, решение всегда есть.
Читать дальше →
Total votes 46: ↑41 and ↓5+36
Comments17

Построение словаря текста на примере NLP библиотеки AIF

Reading time6 min
Views7.8K
Так уж повелось, что каждый релиз лингво-независимой библиотеки обработки естественных текстов AIF сопровождается заметкой о том, что было сделано и как   все работает. Подобные тексты о предыдущих двух релизах Alpha1 и Alpha2 можно найти вот тут и тут. Не исключением из этого правила стал и текущей релиз Alpha3, в котором появилась возможность строить словарь токенов для входного текста. О том, как все работает под капотом и как это можно использовать в своём проекте и пойдёт сегодня речь.
Читать дальше →
Total votes 16: ↑14 and ↓2+12
Comments8

Курс от Яндекса о том, что должен знать каждый разработчик, который хочет делать большие системы. Модное слово DevOps и другое

Reading time5 min
Views107K
Всю рутину, которую можно отдать роботам, нужно отдать роботам. Большие системы без этого невозможны. В разработке и тестировании очень много похожих задач, которые не требуют высокой квалификации, но отнимают много времени. Человек, который умеет обеспечить разработку, тестирование и деплой – это редкий специалист и его на количество страничек никак не масштабируешь.

В Яндексе тестировщику невозможно без автоматизации. Мы даже развиваем экспериментального робота, который способен брать на себя функциональное тестирование. В какой-то момент мы поняли, что не так много людей осознают, сколько сейчас есть возможностей работать не 12 часов, а головой. Собрав весь свой опыт в тестировании и деплое, мы открыли в питерском офисе Яндекса Школу автоматизации процессов разработки. У нас получилась школа, где каждый, кто пишет код, может получить базовый набор знаний о том, как собрать, запустить и поддерживать сервис в продакшене так, чтобы это стоило недорого.



Курс открывает моя лекция о том, зачем вообще автоматизировать процесс разработки. Из нее вы получите представление о то, что будут рассказывать мои коллеги.

Сейчас занятия закончились, и мы, как и обещали, выкладываем записи лекций, которые перемежаются с мастер-классами, для всех желающих. Понятно, что наш опыт и знания – не 42, но мы надеемся, что они принесут вам пользу.
Читать дальше →
Total votes 70: ↑67 and ↓3+64
Comments18

Памятка начинающему фотографу

Reading time2 min
Views149K
Хабраюзер nicothin сделал памятку начинающим фотографам — короткую шпаргалку, материал которой описывает тот крайний минимум, который необходим каждому, кто собирается снимать сознательно. Вкратце опишу что это и зачем.
Читать дальше →
Total votes 133: ↑103 and ↓30+73
Comments59

Судья процесса Apple vs. Samsung назвала стороны неразумными и спросила юристов Apple об их пристрастии к наркотикам

Reading time2 min
Views13K
Люси Кох, занимающаяся процессом Apple vs. Samsung, судя по всему близка к нервному срыву. Дело в том, что процесс идёт к своему завершению, и накал страстей достигает своего пика. Уже на следующей неделе к процессу принятия решения должен приступить суд присяжных, а юристы двух корпораций никак не могут успокоиться. Вызываются свидетели, эксперты, предоставляются кипы документов, что, видимо, окончательно надоело судье Кох.
Читать дальше →
Total votes 149: ↑133 and ↓16+117
Comments140

Кто умнее?

Reading time4 min
Views50K


Сегодня подавляющему большинству людей (ну ладно, подавляющему из золотого миллиарда) известен термин IQ – Intelligence Quotient, коэффициент интеллекта. Но насколько достоверно можнь оценить таким способом интеллектуальные способности человека?

Такой метод оценки интеллекта предложил в 1912 году немецкий психолог Вильям Штерн. Для определения IQ испытуемый отвечает на ряд вопросов специального теста, после чего полученные результаты оцениваются по целому ряду параметров: общая осведомлённость, арифметика, установление сходства, словарный запас, общая понятливость, составление фигур, повторяемость цифровых рядов и многим другим. Полученные оценки по этим параметрам сравниваются с физическим возрастом испытуемого и выводится некое результирующее число, которое и является уровнем IQ.
Читать дальше →
Total votes 42: ↑33 and ↓9+24
Comments41

Allure — фреймворк от Яндекса для создания простых и понятных отчётов автотестов [для любого языка]

Reading time4 min
Views148K
Прежде чем начать рассказ про наш очередной opensource-инструмент, давайте я поясню, для чего мы его сделали. Я довольно много общаюсь с коллегами-тестировщиками и разработчиками из разных компаний. И, по моему опыту, автоматизация тестирования ─ один из самых непрозрачных процессов в цикле разработки ПО. Посмотрим на типичный процесс разработки функциональных автотестов: ручные тестировщики пишут тест-кейсы, которые нужно автоматизировать; автоматизаторы что-то делают, дают кнопку для запуска; тесты падают, автоматизаторы разгребают проблемы.



Я вижу здесь сразу несколько проблем: ручные тестировщики не знают, насколько автотесты соответствуют написанным тест-кейсам; ручные тестировщики не знают, что именно покрывается автотестами; автоматизаторы тратят время на разбор отчётов. Как ни странно, но все три проблемы вытекают из одной: результаты выполнения тестов понятны только автоматизаторам — тем, кто эти тесты писал. Именно это я и называю непрозрачностью.

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

Именно поэтому мы разработали Allure — инструмент, позволяющий внести прозрачность в процесс создания и выполнения функциональных тестов. Красивые и понятные отчёты Allure помогают команде решить перечисленные выше проблемы и начать наконец разговаривать на одном языке. Инструмент имеет модульную структуру, позволяющую легко интегрировать его с уже используемыми инструментами автоматизации тестирования.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments19

Как развивать силу воли

Reading time3 min
Views190K

Одной из самых важных вещей в GTD является сила воли. Без нее вы не будет доводить дела до завершения, любая выбранная вами система не буде работать. Первый же приступ лени не даст вам заглянуть в список дел. GTD, todo list, канбан доска — это всё инструменты. Мы про них много читаем, учимся их использовать, даже программируем. Только самый важный инструмент, который всегда при нас, это сила воли.

До не давнего времени я не понимал, как работает сила воли, не знал, в какой момент времени меня покинет самообладание. Это изменила одна книга. Я рекомендую ее прочесть каждому ITшнику, особенно фрилансерам. У нас, как правило, слабый внешний контроль, поэтому приходиться полагаться только внутренний. Поэтому так важно его настроить. Почему я рекомендую именно эту книгу в качестве руководства под катом.
Читать дальше →
Total votes 98: ↑74 and ↓24+50
Comments62

Программирование-по-Контракту в Java

Reading time31 min
Views51K
Добрый день.
В рамках детальной проработки курса удаленного образования «Java Core» я пишу серию публикаций и делаю несколько переводов наиболее популярных статей.

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

Сейчас я предлагаю Вам на рассмотрение мой перевод «Programming With Assertions» с некоторыми комментариями.

Оригинальная публикация не только детально объясняет варианты использования ключевого слова assert в Java и то, как реализована поддержка данного механизма на уровне загрузки классов, но также является достаточно неформальным введением в Разработку-по-Контракту (Design-by-Contract).




P.S. Автор признает, что для него лично русский язык намного сложнее языка Java, с благодарностью выслушает в личку о всех замеченных ошибках и постарается их в кратчайшие сроки исправить.



Программирование с утверждениями (oracle.com: Programming With Assertions)

Утверждение (assert) — это оператор (statement) языка программирования Java, который позволяет вам проверить свои предположения о программе. Например, если вы пишете метод, вычисляющий скорость частицы, можно «утверждать», что расчетная скорость меньше скорости света.

Каждое утверждение содержит логическое выражение, которое, по вашему мнению, будет верным в момент выполнения. В противном случае, система выбросит исключение. Проверяя, что логическое выражение на самом деле верно, утверждение (assert) подтверждает ваши предположения (ожидания) о поведении программы, увеличивая уверенность в том, что программа не содержит ошибок.
Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments2

Анализ утечек PermGen памяти в Java

Reading time7 min
Views57K

О чем речь?


Кто занимался веб-разработкой на Java, наверняка сталкивался с такой проблемой как java.lang.OutOfMemoryError: PermGen space. Возникает она, как правило, после перезапуска веб-приложения внутри сервера без перезапуска самого сервера. Перезапуск веб-приложения без перезапуска сервера может понадобиться в процессе разработки, чтобы не ждать лишнее время запуска самого сервера. Если у вас задеплоено несколько веб-приложений, перезапуск всего сервера может быть гораздо дольше перезапуска одного веб-приложения. Или же весь сервер просто нельзя перезапускать, так как другие веб-приложения используются. Первое решение, которое приходит на ум – увеличить максимальный объем PermGen памяти, доступный JVM (сделать это можно опцией -XX:MaxPermSize), но это лишь отсрочит падение, после нескольких перезапусков вы снова получите OutOfMemoryError. Хорошо было бы иметь возможность сколько угодно раз перезапускать и передеплоивать веб-приложение на работающем сервере. О том, как побороть PermGen, и пойдет дальнейший разговор.

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

Information

Rating
Does not participate
Registered
Activity