Как стать автором
Обновить
0
0
Халимов Эрик @biomaks

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

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

Практические задачи по Java — для курсов и прочих занятий

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

Практические задачи по Java — для курсов и прочих занятий


Несколько вводных слов


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

Дело в том, что каждое моё занятие состоит из двух частей. На первой я выступаю в роли лектора — рассказываю с примерами кода о какой-то новой теме (классы, наследование, дженерики и так далее). Вторая часть — практическая. Очевидно, что нет смысла просто рассуждать о программировании, надо программировать. Приоритет на занятиях — решение задач, то есть программирование чего-то как-то. Программирование на занятиях отличается от программирования дома, так как на занятиях можно задать вопрос, показать код, получить быструю оценку кода, комментарии по улучшению, исправлению написанного. Очень легко было найти задачи для самых первых занятий. Задачи на циклы, условные операторы, и ООП (к примеру, написать класс «Собака» или класс «Вектор»). Сервисы вроде leetcode позволяют даже проверить правильность решения таких задач сразу, онлайн. Но какие задачи дать студентам на занятии, которое было посвящено коллекциям? Потокам? А аннотациям? За несколько лет я придумал, или переработал несколько таких задач, и эта статья, по сути, является сборником этих задач (к некоторым задачам прилагается решение).
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии20

Selenium для Python. Глава 5. Ожидания

Время на прочтение3 мин
Количество просмотров181K
Продолжение перевода неофициальной документации Selenium для Python.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые шаги
3. Навигация
4. Поиск элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы

5. Ожидания


В наши дни большинство веб-приложений используют AJAX технологии. Когда страница загружена в браузере, элементы на этой странице могут подгружаться с различными временными интервалами. Это затрудняет поиск элементов, если элемент не присутствует в DOM, возникает исключение ElementNotVisibleException. Используя ожидания, мы можем решить эту проблему. Ожидание дает некий временной интервал между произведенными действиями — поиске элемента или любой другой операции с элементом.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии8

Charles: незаменимый тул в арсенале QA-инженера

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

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

Чтобы редактировать выдачу сервера и воспроизводить сложные тестовые сценарии в QA Redmadrobot, мы используем Charles.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии15

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

Время на прочтение39 мин
Количество просмотров169K
Что это и зачем оно надо: Как известно, главное преимущество 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, по этой ссылке.


Читать дальше →
Всего голосов 51: ↑43 и ↓8+35
Комментарии49

Традиционное тестирование скоро умрет

Время на прочтение2 мин
Количество просмотров38K
Рутинные задачи в разработке ПО автоматизируются посредством приложений Continuous Delivery и DevOps. Разработчики берут на себя все больше и больше ответственности. Мне стало интересно какова будет роль традиционного тестирования и тестировщиков если посмотреть немного вперед.


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

Пусть роится Docker по всему кластеру на Raspberry Pi

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


От переводчика: Ссылка на эту статью была опубликована в последней официальной рассылке Docker. Думаю, я не один интересуюсь одновременно и Raspberry Pi и Docker (Swarm), поэтому предлагаю вашему вниманию перевод,

В этом посте мы расскажем насколько легко можно установить Swarm на ваших Raspberry Pi и настроить на них Swarm кластер с помощью Docker Machine.
Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии8

Django на production. uWSGI + nginx. Подробное руководство

Время на прочтение7 мин
Количество просмотров222K
Перед вами руководство по настройке production окружения для Django. Здесь будут описаны необходимые шаги по настройке Django, uWSGI и nginx. Руководство охватывает все три компонента — полный стек серверного ПО для веб-приложений.

Подразумевается, что вы используете Unix-подобную операционную систему и менеджер пакетов, эквивалентный aptitude. Найти эквивалент aptitude почти для любой операционной системы, в том числе и для Mac OS X, для вас не составит никакого труда.

Руководство написно для версий Django 1.4 или выше. Если вы используете более раннюю версию, то вам придется самостоятельно найти wsgi модуль для нее. Также вы заметите, что файловая структура проекта будет немного отличаться от представленной здесь.

Общая идея


Веб-сервер может по запросу отдавать пользователям файлы из своей файловой системы, однако он не может напрямую работать с Djangо приложениями. Веб-серверу нужен интерфейс, который будет запускать Django приложение, передавать ему запрос от пользователя и возвращать ответ.

Для выполнения этих задач был разработан Web Server Gateway Interface — WSGI — стандарт взаимодействия Python программ и веб-сервра.

uWSGI — одна из реализаций WSGI. В этом руководстве мы установим и настроим uWSGI для создания Unix сокета и взаимодействия с веб-сервером по протоколу WSGI.
Читать дальше →
Всего голосов 46: ↑37 и ↓9+28
Комментарии54

Джентльменский набор тестировщика по версии ZeptoLab

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

Вступление


Как-то раз мы съездили на конференцию SQA days, где мне довелось попасть на доклад «Джентельменский набор тестировщика». Хотелось бы продолжить эту тему и рассказать о своих тулзах, облегчающих жизнь тестировщика.

Справедливости ради стоит отметить, что у нас, в Zeptolab, работает всего несколько QA Lead’ов, а всю основную работу проделывают аутсорсеры. Тем не менее, на нашу долю приходится обширный список обязанностей, требующий глубоких знаний о продукте, работе различных sdk и методов диагностики работы приложений.

Чтобы сильно не раздувать статью, я ограничусь лишь небольшим описанием работы инструментов. Если у вас возникнут вопросы — можем обсудить их в комментариях.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии19

Сайт с нуля на полном стеке БЭМ-технологий. Методология Яндекса

Время на прочтение29 мин
Количество просмотров107K
На прошлой неделе BBC рассказала, что для новой версии главной страницы использовала методологию БЭМ, созданную в Яндексе. По такому случаю мы решили поднять материалы мастер-класса «Разрабатываем сайт с нуля на полном стеке БЭМ-технологий» и рассказать вам, как начать использовать полный стек БЭМ-технологий в своих проектах.

БЭМ упрощает разработку сайтов, которые нужно быстро создавать и долго поддерживать. Эту технологию используют во фронтенде почти всех сервисов Яндекса, и она уже успела обрасти множеством библиотек и инструментов, которыми мы хотим с вами поделиться.



В статье мы расскажем, в чём преимущество вёрстки независимыми блоками и что такое уровни переопределения, познакомимся с готовыми библиотеками блоков и инструментами для автоматизации сборки. Покажем, как разные инструменты — например, autoprefixer, css-препроцессор Stylus или модульная система YModules — упрощают жизнь разработчика и создают по-настоящему удобную платформу, если встроить их в процесс разработки по БЭМ.

На живом примере мы объясним, в чём польза декларативного подхода, когда одни и те же идеи можно использовать как для CSS, так и для JavaScript. Отдельно остановимся на декларативных шаблонах BEMHTML и BEMTREE, которые позволяют преобразовывать данные в БЭМ-дерево, описанное в формате BEMJSON и, затем в HTML. Рассмотрим в деталях, как написать серверную часть приложения по БЭМ-методологии.
Читать дальше →
Всего голосов 96: ↑79 и ↓17+62
Комментарии37

Алгоритм формирования кроссвордов

Время на прочтение10 мин
Количество просмотров37K
Эта история начинается с публикации «Самый сложный кроссворд, составленный компьютером». В ней приведен один из самых сложных кроссвордов, составленных программой (см. ниже).



Я был уверен, что все кроссворды давным-давно генерируются программно и был несколько удивлен тем, что это может быть проблемой. Замечу, что речь идет именно о «канадских» кроссвордах, в которых каждое слово имеет пересечение с другим словом на каждой букве или очень близких к ним по сложности. В моей работе аналитика, не так много действительно сложных задач, поэтому мне стало интересно попробовать разработать алгоритм, который мог бы это сделать. Результат размышлений, подкрепленный программой для генерации кроссвордов, приводится в этой статье.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии15

Dagaz: Пинки здравому смыслу (часть 2)

Время на прочтение16 мин
Количество просмотров14K
imageЯ еще чуток добавил прыти —  
Все не так уж сумрачно вблизи:
В мире шахмат пешка может выйти —  
Если тренируется — в ферзи!

          Владимир Высоцкий "Честь шахматной короны"
 

Правила, особенно такие сложные, как рокировка или "взятие на проходе", не появляются на пустом месте. Никто не придумывает их просто так, чтобы позлить разработчика (во всяком случае, я надеюсь на это). В таких «устоявшихся» играх как Шахматы или Шашки, каждое из правил выстрадано десятилетиями. Тысячами игр, в десятках стран, по всему миру. Это бесценный материал для анализа. Неудачные решения отмирают, успешные — расцветают в сотнях различных вариантов (среди которых также есть как удачные, так и не очень). Сегодня, мы поговорим о двух особенно удачных находках... 
Читать дальше →
Всего голосов 23: ↑23 и ↓0+23
Комментарии4

Быстрое знакомство с Docker-контейнерами для Django-разработчика

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


Разработка такого проекта как кешбек-сервис подразумевает использование различных сервисов, нетипичных для обычного ноутбука, даже если это ноутбук разработчика. Postgresql, Redis, Celery и так далее. Желание создать комфортную среду разработки и тестирования привело нас к необходимости использование какой-то системы виртуализации/изоляции. Как вариант — некоторое время использовался Vagrant, но это всё-таки ovrerhead и наши поиски оптимального способа привели, на данный момент, к Docker.

Docker — платформа для запуска приложений в изолированных контейнерах. Использование контейнеров в Linux позволяет программному обеспечение быть изолированным от базовой системы. В отличии от Virtualbox, исключаются системные издержки (overhead), необходимые для виртуализации оборудования. Docker может помочь в разработке и развертывании веб-приложений и сервисов. Давайте посмотрим, как это происходит.
Читать дальше →
Всего голосов 31: ↑26 и ↓5+21
Комментарии19

Ускоряем написание Selenium-автотестов на Ruby

Время на прочтение3 мин
Количество просмотров16K
Одним из инструментов, позволяющих автоматизировать взаимодействие с браузером, является Selenium Webdriver. В действительности автоматизированные тесты веб-страниц с использованием Selenium Webdriver выглядят довольно громоздко. Вот «небольшой» пример, который параллельно в двух браузерах открывает страницу поисковика Google, заполняет поисковую строку и отправляет форму:


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

Java logging. Hello World

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

Вступление


Думаю, ни для кого не секрет, что такое логгеры и для чего они нужны. За время существования java было создано немало фреймворков логгирования. Среди самых известных можно выделить:

  • JUL — java.util.logging
  • log4j
  • JCL — jakarta commons logging
  • Logback
  • SLF4J — simple logging facade for java

В данной статье будет рассмотрен каждый из указанных выше фреймворков на уровне «hello world». Будут приведены простые примеры использования основного функционала и конфигурирования. Статья не преследует цель сравнения логгеров между собой и выявление лучшего из них, эту возможность автор оставляет за вами, уважаемые читатели. В конце статьи будут приведены источники, где можно получить более детальную информацию по каждому фреймворку. Также перед прочтением данной статьи рекомендую ознакомиться с публикацией «Java Logging: история кошмара», где описана история развития систем логгирования в Java.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии14

Беспилотник на базе Raspberry Pi. Часть 1

Время на прочтение2 мин
Количество просмотров113K
Привет, %хабраюзер%. Хочу поделиться историей о своем беспилотнике (БЛА) на малинке.

Перед тем, как начать делать беспилотник, стоял выбор, какую летательную модель брать за основу: квадракоптер или самолет? Так как с коптерами я в свое время наигрался, знаю их основной минус: чаще всего время полета составляет 10-20 минут. Лично для меня это очень мало, поэтому было решено взять за основу самолет.

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

Docker, SkyDNS и SkyDock — быстро и удобно

Время на прочтение4 мин
Количество просмотров33K
Не так давно начал изучать, что такое docker, который уже успел нашуметь по всему миру. Не буду вдаваться в философские изыски «а зачем оно надо?», или «фи, это просто очередной модный тренд!», или «кто же такой сырой продукт выпускает?». Я просто хочу дать краткие советы, как можно быстро в домашних условиях пощупать, что такое docker, используя такие блага и удобства как SkyDock и SkyDNS.
Данная заметка рассчитана на людей, у кого мало времени, чтобы читать горы статьей на английском (или не знают английского), но есть небольшие познания в том, что такое консоль и как установить docker самостоятельно.
Краткая суть статьи для ленивых
docker pull crosbymichael/skydns
docker pull crosbymichael/skydock
docker run -d -v /var/run/docker.sock:/docker.sock --name skydock crosbymichael/skydock -ttl 30 -environment dev -s /docker.sock -domain docker -name skydns
docker run -d -p 172.17.42.1:53:53/udp --name skydns crosbymichael/skydns -nameserver 8.8.8.8:53 -domain docker

Далее следует настройка роутера или правка /usr/lib/systemd/system/docker.service, но за такими подробностями придется всё же залезть под хабракат.

Хочу подробней!
Всего голосов 28: ↑24 и ↓4+20
Комментарии82

Replication slots в PostgreSQL

Время на прочтение7 мин
Количество просмотров50K
До девятой версии в PostgreSQL для создания «теплого» резервного сервера использовался WAL archiving. В версии 9.0 появилась потоковая репликация с возможностью создания «горячего» read-only сервера. В следующей версии PostgreSQL 9.4 появится новый функционал для создания потоковой репликации под названием replication slots.
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии13

PayPal и американский адрес доставки

Время на прочтение6 мин
Количество просмотров200K
Представьте, что вы натыкаетесь на магазин или частного продавца, который настолько пророс корнями в США, да к тому же еще и параноидален, что его система биллинга наотрез отказывается принимать ваши православные визы и мастеркарды, эмитированные отечественными банками.

Казалось бы, ничего не остается, как купить у соответствующих товарищей credit card with US billing понуро закрыть страницу магазина, уйдя на поиски более дружелюбного продавца, как тут вы замечаете знакомый шильдик PayPal, который повесил владелец сайта, приглашая всех приобрести его товар, заплатив максимально удобным для вас способом. И вот она, победа, вы деловито шествуете по страницам чекаут процесса, как вдруг осознаете, что продавец малого того, что не принимает православные карты к оплате, так еще и на настолько обнаглел, что отправляет свой товар только в пределах своей отчизны, забивая на весь мир и связанные с международной отправкой проблемы.

Если получить адрес для получения посылок в США уже давно не проблема, то вот как получить американский адрес, доступный для выбора при оплате PayPal? Да, система PayPal не позволяет штатным образом владельцам аккаунтов, зарегистрированных в стране, отличной от США, добавить американский адрес доставки.

Но на каждую хитрую жопу, как известно…
Читать дальше →
Всего голосов 70: ↑62 и ↓8+54
Комментарии63

Step By Step: Оформление МПО (посылки) в ФТС (таможне)

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

0. Покупка


Покупаете товар в онлайн-магазине с доставкой по почте. Приходите на почту для получения посылки и… если получаете, то дальше можно не читать.
Если же вместо вручения вам посылки сотрудник Почты России радостно сообщает, что она задержана таможней.
Под катом расписан мой опыт по теме как оформить МПО в ФТС и не наступить на грабли
Всего голосов 31: ↑31 и ↓0+31
Комментарии33

Обратная сторона on-line подкаста

Время на прочтение5 мин
Количество просмотров6K
Здравствуйте!

Меня зовут Ренат, и я являюсь одним из ведущих «Еженедельного подкаста Appleinsider.ru». В последнее время меня все чаще стали спрашивать о том, как происходит трансляция и запись нашего подкаста. Я стараюсь отвечать всем и максимально подробно, т.к. считаю, что каждый кто этим заинтересовался должен хотя бы попробовать, а для этого необходимо преодолеть некий порог вхождения. В данной статье я расскажу о том, как это происходит в нашем случае, и очень надеюсь на то, что это кому-то сможет пригодиться. Если данный материал окажется востребованным, то я обязательно остановлюсь на некоторых деталях более подробно, а так же расскажу о других вариантах, которые в свое время также опробовал, но по ряду причин от них отказался.

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

Информация

В рейтинге
Не участвует
Откуда
Winnipeg, Manitoba, Канада
Дата рождения
Зарегистрирован
Активность