Второй этап отбора в Школу программистов закончился. Многие из тех, кто поступал в Школу, просили рассказать алгоритмы решения задач, а главное — прислать комбинации, на которых их программа не работает. В этой статье будут описаны решения предлагаемых задач, а в конце статьи вы увидите ссылку на github, где выложен код описанных решений, код программы проверки и тестовые кейсы. Весь код написан на java (хотя решение второй задачи легче писать на питоне). Не буду утверждать, что это единственные правильные решения, существуют и другие, но эти мне нравятся больше всего.
@SeaOfSilenceread-only
User
hh и в продакшн: как выпустить новую фичу
11 min
21KОднажды техдепу в HeadHunter сделали толстовки с принтом на спине «hh и в продакшн». Вроде бы и забавно, но меня всё время смущала эта надпись, т.к. в оригинале это не то, чем стоит гордиться. Это натолкнуло меня написать пост, что же на самом деле означают буквы hh.
Я хочу рассказать о том, как рождается фича в HeadHunter на примере команды API, в которой я тружусь. Какой путь ей предстоит пройти от идеи до выхода в продакшн. Затрону как технические, так и менеджерские аспекты.
+35
Mini-Desktop своими руками. 3.0
4 min
52KПрошло чуть больше года с момента публикации моей второй статьи о дизайне корпуса персонального компьютера в форм-факторе UCFF PC. За это время мне удалось запустить первую партию в производство и начать онлайн продажи не только корпусов, но и конфигураций на его основе. Особенно радостно, что проект по большей части состоялся благодаря поддержке и интересу со стороны читателей Хабрахабр сообщества.
+50
Приложение на API hh.ru. Рекомендуем вакансии по вашему резюме
6 min
25KНедавно я опубликовал пост, рассказывающий, как можно просто начать использовать наше API. Мне самому захотелось поиграться с данными, которые можно из него получить, и я решил написать приложение, рекомендующее актуальные вакансии на основе информации из резюме. В конце статьи будет ссылка на результат, где каждый сможет получить список рекомендаций по своему резюме.
+14
ScribeJava — даже ваша бабушка сможет работать с OAuth
10 min
30KИменно этой фразой нас приветствует библиотека для работы с OAuth — ScribeJava (https://github.com/scribejava/scribejava). Если быть точнее, то фраза звучит так: “Who said OAuth/OAuth2 was difficult? Configuring ScribeJava is so easy your grandma can do it! check it out:”.
И это действительно похоже на правду:
OAuth20Service service = new ServiceBuilder().apiKey(clientId).apiSecret(clientSecret)
.callback("http://your.site.com/callback").grantType("authorization_code").build(HHApi.instance());
String authorizationUrl = service.getAuthorizationUrl();
OAuth2AccessToken accessToken = service.getAccessToken(code);
Готово! Этих трех строчек достаточно, чтобы начать делать OAuth запросы. А сам OAuth запрос можно будет сделать так:
OAuthRequest request = new OAuthRequest(Verb.GET, "https://api.hh.ru/me", service);
service.signRequest(accessToken, request);
String response = request.send().getBody();
Данные о пользователе у нас в руках (в переменной response). И ни капли понимания, как в деталях работает OAuth. Хотим асинхронные http-запросы? Нам хватит тех же трех строчек. Ниже рассмотрим это на примере.
+27
Несколько интересностей и полезностей для всех
5 min
32KДоброго времени суток, уважаемые хабравчане! Обычно мои подборки ориентированы сугубо на веб-разработку, но этот выпуск охватывает все сферы программирования. Но самое главное, что интересность и полезность каждого материала имеет социальное доказательство, благодаря замечательному сервису Slant.co. Это некий аналог Quora, сфокусированный сугубо на разработчиков.
Коллекция из почти 200 ответов в Slant на вопросы «Какие лучшие...»
+17
Создание веб-сайта. Курс молодого бойца
24 min
817KКак-то меня попросили провести небольшой семинар в лицее, где я когда-то учился, по созданию веб-сайта. В процессе написания речи я подумал, что она может вылиться в материал, который, возможно, будет полезен многим начинающим в области веб-дизайна, вёрстки веб-страниц и пр. Я не претендую на истину в первой инстанции и всё изложенное носит чисто личностный взгляд на работу с дизайном и кодом. Статья даёт поверхностный взгляд на понятия и средства, которые, на мой взгляд, могут стать неплохим стартом для того, кто готов идти дальше.
+68
Слушаем музыку дома
15 min
89KКак-то так сложилось, но музыкального центра у меня никогда не было, максимум советский магнитофон Маяк-223 да пара колонок. Приобщиться к цифровому звуку и компакт-дискам удалось только с появлением PC-совместимого компьютера в начале 2000-х. Да и CD-привод был дорог и появился далеко не сразу. Однако в то время уже во всю развивалась революция MP3, а соответственно как и у многих, у меня начала расти небольшая коллекция музыки на винте, что-то было скопировано у друзей, что-то рипалось собственноручно с купленных компакт-дисков, дабы не дергать постоянно привод ради прослушивания музыки. Да и в Winamp'е можно было составить плейлист на много-много часов из много-много альбомов, а не гонять строго один альбом постоянно.
Собственно музыка слушалась со встроенной звуковухи на обычных компьютерных пищалках без особых претензий. Но несколько лет назад вдруг захотелось чего-то большего. Что называется, не было у бабы проблем, купила баба порося. В этой статье я постараюсь поделиться с вами личным опытом в организации домашнего звука.
Собственно музыка слушалась со встроенной звуковухи на обычных компьютерных пищалках без особых претензий. Но несколько лет назад вдруг захотелось чего-то большего. Что называется, не было у бабы проблем, купила баба порося. В этой статье я постараюсь поделиться с вами личным опытом в организации домашнего звука.
+23
PentestBox — портативная сборка популярных security утилит
6 min
82KНа сегодняшний день самыми популярными дистрибутивами для тестирования на проникновение являются *nix-like дистрибутивы: Kali Linux, BlackArch Linux, Pentoo, Whonix и многие другие. Они могут использоваться как в виртуальной среде, так и в качестве live системы или вообще быть установлены в виде десктопной ОС.
Windows пользователи до недавнего времени были обделены (виртуальные машины не берем во внимание) такими сборками, пока не появилась волшебная коробочка — PentestBox.
+21
Как я научился делать мир лучше в HeadHunter
4 min
24KДо того, как я пришел в HeadHunter, я не знал, что такое code review. Я знал, что такое code approval — так было в одной американской компании, где я начинал свою карьеру, и где весь код в проекте проходил перед мудрыми глазами профессора Фортрана за столиком в глубине офиса. Он с отеческой улыбкой смотрел на мои первые шаги в разработке и говорил: «Вот тут поправь, пожалуйста, и можешь выпускать».
+12
Новый суперблиц по Java-хардкору
4 min
28KИтак, вчера мы с вами поиграли в джавовский вариант «Интеллектуальное казино против знатоков», и при этом, при всем уважении к хабровчанам, телезрители выиграли! Победителем этого этапа стал Сергей SerCe Целовальников, решивший три задачи. Как и обещали — мы вручаем ему небольшой приз: VIP-билет на JPoint!
Но радости в сторону. Вчера нас с телезрителями обвинили в том, что большинство вчерашних задач были связаны с Java весьма косвенно. Мы принимаем это обвинение, и поэтому сегодня у нас вариант на чистой Java! никаких спрингов, эксэмэлей и паттернов. Это будет настоящее испытание для истинных любителей хардкора!
Под катом — ответы на вчерашний раунд и суперблиц! Против знатоков сегодня играет телезритель из Петербурга Андрей apangin Паньгин.
Но радости в сторону. Вчера нас с телезрителями обвинили в том, что большинство вчерашних задач были связаны с Java весьма косвенно. Мы принимаем это обвинение, и поэтому сегодня у нас вариант на чистой Java! никаких спрингов, эксэмэлей и паттернов. Это будет настоящее испытание для истинных любителей хардкора!
Под катом — ответы на вчерашний раунд и суперблиц! Против знатоков сегодня играет телезритель из Петербурга Андрей apangin Паньгин.
+22
Что не так с онлайн-курсами и как это исправить: опыт HTML Academy
9 min
225KМы в HTML Academy постоянно работаем над повышением эффективности наших образовательных программ и курсов (ради этого мы ставим опыты на студентах и внедряем геймификацию).
Подобные изыскания привели нас к пониманию того, что для подготовки профессионала, который мог бы работать в области веб-технологий (хотя бы на позиции начального уровня) недостаточно одних курсов, состоящих из видеолекций и последующих заданий. Освоить весь объём контента, необходимого для выхода на определённый уровень знаний, в подобном режиме просто невозможно.
Именно поэтому мы решили создать курс, прохождение которого позволяло бы людям не просто получить базовые знания вёрстки, но стать настоящим (пусть и начинающим) ИТ-специалистом. В сегодняшнем материале мы расскажем о том, что в итоге из всего этого получилось.
+22
Как сделать персональный шрифт из своего почерка за три минуты
1 min
99KTutorial
Стартап MyScriptFont.com предлагает прекрасный по простоте, и к тому же бесплатный метод изготовления своего собственного шрифта. Создание и редактирование векторных фигур вручную уходит в прошлое.
+46
Платье, которое разделило интернет
2 min
499KВот уже второй день множество людей на самых разных сайтах обсуждает очень простой вопрос. Какого цвета это платье?
Казалось бы, какие тут могут возникнуть сложности? Но единства в этом вопрос нет: три четверти опрошенных считают платье бело-золотым, а одна четверть — сине-черным. Согласитесь, это странно. В чем же дело?
Казалось бы, какие тут могут возникнуть сложности? Но единства в этом вопрос нет: три четверти опрошенных считают платье бело-золотым, а одна четверть — сине-черным. Согласитесь, это странно. В чем же дело?
+134
DevCon Digest #1. Погружаемся в .NET
4 min
17KПривет, Хабр! Пока мы во всю готовимся к нашей ежегодной большой конференции DevCon, мы решили, что разработчикам, которые будут смотреть и слушать доклады конференции и общаться с экспертами, хорошо бы тоже углубить и освежить свои знания до конфернции.
Поэтому мы решили делать еженедельные тематичные подборки материалов по одному из направлений конференции, собрав в одном месте недавние новости, новые учебные материалы, анонсы параллельных мероприятий и другие полезные ресурсы.
+28
Зачем вся эта недоказанная вселенная?
3 min
24KСамое трудное в написании что статьи, что книги – это придумать хорошее название. Такое чтобы и звучало интригующе, и содержание статьи описывало, но при этом не сдавало полностью. А еще чтобы оно было двусмысленным — для полной красоты и изящности. Перебрав несколько и придя в уныние, решил: придет само по мере написания, а пока пусть будет:
О квантовой физике, мозге, теореме Геделя и судах присяжных.
+7
[Видео] Путешествие от Солнца до Юпитера со скоростью света
1 min
28KВ нашем привычном понимании свет движется очень быстро. Однако в сравнении с огромными расстояниями во вселенной он очень медленный. Это видео демонстрирует путешествие фотона, излучённого солнцем, через часть солнечной системы.
Автор позволил себе некоторую свободу в выравнивании планет и астероидов, но в целом он постарался отобразить всё как можно более точно. Также он решил закончить видео сразу после Юпитера, чтобы длительность видео была меньше часа.
Автор позволил себе некоторую свободу в выравнивании планет и астероидов, но в целом он постарался отобразить всё как можно более точно. Также он решил закончить видео сразу после Юпитера, чтобы длительность видео была меньше часа.
+57
Был получен несанкционированный доступ к более чем 20 000 камерам видео-наблюдения Москвы (теперь вы тоже)
5 min
252KПривет, Хабрахабр! Наверняка многие из вас помнят легендарный пост «Были получены исходники 3300 глобальных интернет-проектов», который долгое время был первым в рейтинге всех публикаций на сайте. Несмотря на схожий заголовок у моего поста, не претендую на первое место, но считаю, что вам стоит обратить внимание.
+309
Бекап аудиозаписей с плейлиста ВКонтакте (до 6000) средствами Python и Vk API
4 min
58KЗдравствуйте.
Раньше часто слушал музыку средствами «Вконтакте» (далее ВК). После перехода на Ubuntu 14.10 возникли проблемы в виде полного зависания компьютера во время прослушивания аудиозаписей через браузер Google Chrome для linux систем. В связи с этим возникла необходимость забекапить свой плейлист для прослушивания музыки в оффлайн режиме. Для этих целей решил написать маленький скрипт на языке Python, которым можно будет не только скачивать музыку с нуля, но и обновлять существующую библиотеку.
Я использовал такие модули:
Собственно, начнем.
Раньше часто слушал музыку средствами «Вконтакте» (далее ВК). После перехода на Ubuntu 14.10 возникли проблемы в виде полного зависания компьютера во время прослушивания аудиозаписей через браузер Google Chrome для linux систем. В связи с этим возникла необходимость забекапить свой плейлист для прослушивания музыки в оффлайн режиме. Для этих целей решил написать маленький скрипт на языке Python, которым можно будет не только скачивать музыку с нуля, но и обновлять существующую библиотеку.
Я использовал такие модули:
- Selenium webdriver
- requests
- json
- os
Собственно, начнем.
+22
Учим Python качественно
4 min
1.4MЗдравствуйте всем!
Решил поделиться методом обучения сего мощного, но в одно и тоже время лёгкого языка программирования. Он действительно лёгкий. Вам не надо будет запоминать и вводить лишних символов, которые Вы можете встретить в Си-подобных языках.
Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП), мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?
Решил поделиться методом обучения сего мощного, но в одно и тоже время лёгкого языка программирования. Он действительно лёгкий. Вам не надо будет запоминать и вводить лишних символов, которые Вы можете встретить в Си-подобных языках.
Удобочитаемый синтаксис, прост в обучении, высокоуровневый язык, Объектно-Ориентированый язык программирования (ООП), мощный, интерактивный режим, масса библиотек. Множество иных плюсов… И это всё в одном языке.
Для начала окунёмся в возможности и узнаем, что же умеет Python?
+32
Information
- Rating
- Does not participate
- Registered
- Activity