Pull to refresh
26
0
Александр Акбашев @Jimilian

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

Send message

Лучшие доклады JPoint 2018: Java/JVM и её перформанс, Kotlin, Spring, Docker

Reading time 11 min
Views 19K

Мы уже выложили на YouTube видеозаписи докладов JPoint 2018 и специально для хаба Java на Хабре сделали традиционную подборку самых лучших из них по мнению посетителей конференции.


Как обычно, наверху «младшие» доклады, в конце — с самым высоким рейтингом. Конечно, это не значит, что один доклад намного хуже другого: если изменить методику расчета, места могут легко поменяться. В реальности, мы её и изменили, теперь используется «soft quorum» вариант рейтинга, учитывающий количество присутствовавших на докладе участников. Этот подход имеет свои минусы (например, на кейноут приходит больше людей, чем на обычный доклад, просто потому что у аудитории нет выбора), но в целом даёт более качественную картину произошедшего.


Под катом — и видеозаписи лучших докладов, и ссылки на их презентации, и короткие описания, и ссылка на полный плейлист.


Читать дальше →
Total votes 33: ↑30 and ↓3 +27
Comments 2

Каково делать Kotlin: интервью с Андреем Бреславом

Reading time 26 min
Views 12K


Дефицита технических материалов о Kotlin нет, узнать о корутинах или nullability можно много где. Но остаётся куда менее освещённой другая сторона: а как вообще выглядит процесс разработки языка? Как принимаются решения? Каковы задачи у «самого главного человека»? Остаётся ли у него в жизни время на что-либо ещё?

И сейчас, когда вот-вот выйдет Kotlin 1.3, мы расспросили «самого главного» Андрея Бреслава не про корутины, а про совсем другое: от того, чем он занимался до Kotlin, до того, чем полезна психотерапия.
Читать дальше →
Total votes 41: ↑37 and ↓4 +33
Comments 13

За что Android-разработчики ненавидят Google

Reading time 9 min
Views 62K


Если посмотреть на мир Android, с первого взгляда кажется, что между разработчиками приложений и Google царят мир-дружба-жвачка. Компания поддержала любовь разработчиков к Kotlin, сообщество в целом одобряет нововведения платформы, а на официальную IDE не обрушивается такая критика, как в iOS-мире — чего ещё желать-то?

Но это только часть картины. В последние месяцы всё чаще обсуждались ситуации, из-за которых часть Android-разработчиков жёстко критикует компанию. Дело доходило до массового призыва «давайте давить на Google через Евросоюз и медиа, раз по-хорошему там не понимают». В чём дело и что это за ситуации, которые страшно злят одних разработчиков, но остаются незаметными для других?
Total votes 91: ↑89 and ↓2 +87
Comments 126

Текстовая трансляция HighLoad++ 2016. День первый

Reading time 1 min
Views 10K

Трансляция первого дня от 7 ноября окончена. 8 ноября в 09:45 Мск продолжение видео на странице спецпроекта и текстовой трансляции в новом посте и на странице спецпроекта.

Сегодня в этом посте весь день будет вестись текстовая трансляция конференции HighLoad++ 2016, проходящей в Сколково 7 и 8 ноября. HighLoad++ — это более 200 экспертов высочайшего класса с докладами о высоконагруженных сервисах, проблемах работы с ними и вопросах администрирования. Более 15 залов, плотный график, честный и полезный опыт спикеров — HighLoad++ умеет собирать крутые темы, задавать тон дискуссии и всё на одном дыхании.

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


Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 11

JIT-компилятор оптимизирует не круто, а очень круто

Reading time 6 min
Views 54K

Недавно Лукас Эдер заинтересовался в своём блоге, способен ли JIT-компилятор Java оптимизировать такой код, чтобы убрать ненужный обход списка из одного элемента:


// ... а тут мы "знаем", что список содержит только одно значение
for (Object object : Collections.singletonList("abc")) {
    doSomethingWith(object);
}

Вот мой ответ: JIT может даже больше. Мы будем говорить про HotSpot JVM 64 bit восьмой версии. Давайте рассмотрим вот такой простой метод, который считает суммарную длину строк из переданного списка:


static int testIterator(List<String> list) {
    int sum = 0;
    for (String s : list) {
        sum += s.length();
    }
    return sum;
}
Читать дальше →
Total votes 63: ↑62 and ↓1 +61
Comments 129

Centrifuge + Go = Centrifugo – harder, better, faster, stronger

Reading time 10 min
Views 26K


В сентябре прошлого года была опубликована последняя статья о Центрифуге — сервере с открытым исходным кодом для обмена сообщениями в режиме реального времени. Теперь в списке хабов, в которые публикуется этот пост, присутствует Go. И неспроста, как можно понять уже из заголовка, Центрифуга была портирована с Python на Go — так появилась Centrifugo. О причинах миграции, о плюсах и минусах Go, а также о том, как эволюционировал проект с момента предыдущей публикации – читайте под катом.
Читать дальше →
Total votes 41: ↑37 and ↓4 +33
Comments 34

Почему команда SoundCloud перешла на микросервисы

Reading time 4 min
Views 31K
Ранее мы уже рассказывали о дата-центре фотосервиса imgix, описывали детективную историю поиска проблем с SSD-дисками проекта Algolia, а сегодня представляем вашему вниманию обсуждение того, как команда стримингового сервиса SoundCloud перешла на использование микросервисов.

Читать дальше →
Total votes 40: ↑37 and ↓3 +34
Comments 6

Как и зачем мы делаем TLS в Яндексе

Reading time 16 min
Views 88K
Я занимаюсь в Яндексе продуктовой безопасностью и, кажется, сейчас самое время подробнее, чем уже было на YaC, рассказать на Хабре о том, как мы внедряем TLS.

Использование HTTPS-соединений является важной частью безопасного веб-сервиса, так как именно HTTPS обеспечивает конфиденциальность и целостность данных на этапе передачи их между клиентом и сервисом. Мы постепенно переводим все наши сервисы только на HTTPS-соединение. Многие из них уже работают исключительно по нему: Паспорт, Почта, Директ, Метрика, Такси, Яндекс.Деньги, а также все формы обратной связи, имеющие дело с персональными данными пользователей. Яндекс.Почта уже больше года даже обменивается данными с другими почтовыми сервисами по SSL/TLS, поддерживающими это.



Все мы знаем, что HTTPS — это HTTP, завернутый в TLS. Почему TLS, а не SSL? Потому что принципиально TLS — это более новый SSL, при этом название нового протокола наиболее точно характеризует его назначение. А в свете уязвимости POODLE можно официально считать, что SSL больше использовать нельзя.
Читать дальше →
Total votes 164: ↑156 and ↓8 +148
Comments 97

Обзор сервисов для Kindle

Reading time 5 min
Views 26K
На прошлой неделе мне пришёл долгожданный Киндл. Естественно я и раньше слышал про удобную возможность отправлять книжки на специально предоставленный Амазоном ящик, но только попробовав лично ощутил все прелести этого способа доставки контента.
Естественно, уже существуют несколько сервисов, которые представляют расширенный функционал. Небольшой обзор этих сервисов я и хочу предоставить вашему вниманию.
Функционал сервисов примерно одинаков: они предоставляют возможность послать веб страницу на киндл, чтобы её можно было прочитать с устройства, однако есть и некоторые различия, о которых позже. Я буду рассматривать функционал только с позиции отправки статей на киндл и не буду рассказывать о различных мобильных приложениях, которые предоставляет каждый сервис.
Осторожно, под катом много картинок.

Сервисы


SENDtoREADER
Для бесплатного аккаунта сервис предоставляет возможность отправлять веб страницу на киндл, однако этим возможности сервиса не ограничиваются. Доступен список уже отправленных статей, каждую статью можно скачать на компьютер, отправить её ещё раз на киндл или поделиться ссылкой на статью через соц сервисы. Так же сервис предоставляет возможности для интеграции в браузеры, к сожалению официального плагина для оперы нет, но есть сторонний, который со своей задачей справляется на отлично(кстати, автор этого аддона — teh13th, можете обращаться к нему с вопросами/предложениями). Установив его, на панели рядом с поиском появляется кнопка, нажав на которую вы отправите статью на киндл (плагины для остальных сервисов работают так же). Так же сервис предоставляет возможность для интеграции с Google reader. Для платного аккаунта имеется возможность оформлять подписки на RSS рассылки, которые будут автоматчески пересылаться на киндл. И последним плюсом сервиса является наличие API. Оно предельно простое, но в принципе, ничего большего от него и не требуется.

Klip.me
Данный сервис так же предоставляет возможность отправлять текущую страницу на киндл. Для хрома и сафари имеются плагины а для всех остальных браузеров предлагается добавить спец-закладку. Задумка в том, что при нажатии на эту вкладку, текущая страница должна отправляться на сревис. К сожалению закладка в опере так и не заработала, но стоит отметить что плагин для хрома отличается наилучшим функционалом среди аналогов: есть возможность перед отправкой просмотреть страницу в том виде, как она будет отображаться на устройстве, так же статью можно сохранить для дальнейшего просмотра через сервис. К особенностям сервиса можно так же отнести тесную интеграцию с гугло-reader'ом и гуглокалендарём

Readability
Данный сервис так же предлагает плагины для интеграции с браузером, а в случае если ваш браузер не поддерживается, то вам будет предложено создать спецзакладку(в опере у меня и эта закладка не заработала). Плагин предлагает на выбор несколько вариантов: прочитать через сервис, сохранить статью на сервисе и сразу отправить её на киндл. Интересной особенностью сервиса является то, что каждому пользователю он предоставляет e-mail, на который можно слать письма со ссылками, которые будут автоматически добавлены в список для прочтения. Есть возможность настроить автоматическую посылку списка на устройство. Так же предоставляет интересную форму подписки: пользователь сам выставляет ежемесячную сумму которую он готов платить и 70% процентов от неё распределяется между авторами, чьи статьи он читал, остальные 30 отходят к авторам сервиса.

Instapaper
Функционал сервиса несколько отличается от остальных. Он предназначен для добавления статей в список для прочтения и функция отправки статей на киндл является скорее приятной опцией. Официальное приложение существует только для iOs, для браузеров предлагают воспользоваться закладкой, но легко можно найти сторонние расширения. В хроме плагин у меня отлично заработал, а вот в опере ни закладочный способ, ни расширения настроить мне так и не удалось. Среди особенностей сервиса стоит отметить синхронизацию с гугло ридером. Instapaper так же как и Readability выдаётся ящик, на который можно слать статьи. К минусам сервиса я отнесу отсутствие возможности синхронизации с киндлом по запросу, есть только два варианта: отправка статей ежедневно по таймеру или сохранить файла со статьями в формате mobi и вручную отправить его на девайс.

Kindle It
Данный сервис можно признать наиболее минималистичным, тут нет даже возможности зарегистрироваться. Можно послать нужную страницу на киндл либо указав её URL на странице сервиса, либо использовав плагин(для хрома и огнелиса) или закладку. В опере закладка у меня не заработала. После укзаания страницы будет показана превью с результатом и поле куда можно ввести свой e-mail на амазоне. Возможности не показывать превью, а сразу слать страницу на устройство нет даже в плагине, что на мой взгляд является серьёзной недоработкой.

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


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









Для демонстрации результата я делал скриншоты сконвертированной книги, открытой в Kindle Previewer.

Sendtoreader

Читать дальше →
Total votes 23: ↑21 and ↓2 +19
Comments 33

Пара полезных команд, которые могут пригодиться при DDoS и не только

Reading time 3 min
Views 81K
В моем случае, в качестве frontend сервера, стоит nginx и формат access-лога имеет вид:

log_format main '$remote_addr — $remote_user [$time_local] "$host" "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" -> $upstream_response_time';

Что на выходе дает что-то вроде такой строки:

188.142.8.61 — - [14/Sep/2014:22:51:03 +0400] «www.mysite.ru» «GET / HTTP/1.1» 200 519 «6wwro6rq35muk.ru» «Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.191602; .NET CLR 3.5.191602; .NET CLR 3.0.191602» "-" -> 0.003

1. tail -f /var/log/nginx/nginx.access.log | cut -d ' ' -f 1 | logtop

Позволяет получить общую картину: распределение уникальных IP, с которых идут запросы, кол-во запросов с одного IP и т.д.
Самое ценное — что все это работает в режиме реального времени и можно мониторить ситуацию, внося какие-либо изменения в конфигурацию (например просто забанить ТОП 20 самых активных IP через iptables или временно ограничить географию запросов в nginx через GeoIP http://nginx.org/ru/docs/http/ngx_http_geoip_module.html).
Читать дальше →
Total votes 105: ↑101 and ↓4 +97
Comments 21

Memory management в ядре Linux. Семинар в Яндексе

Reading time 4 min
Views 65K
Привет! Меня зовут Роман Гущин. В Яндексе я занимаюсь ядром Linux. Некторое время назад я провел для системных администраторов семинар, посвященный общему описанию подсистемы управления памятью в Linux, а также некоторым проблемам, с которыми мы сталкивались, и методам их решения. Большая часть информации описывает «ванильное» ядро Linux (3.10), но некоторая часть специфична для ядра, использующегося в Яндексе. Вполне возможно, семинар окажется интересен не только системным администраторам, но и всем, кто хочет узнать, как в Linux устроена работа с памятью.



Основные темы, затронутые на семинаре:
  • Задачи и компоненты подсистемы управления памятью;
  • Аппаратные возможности платформы x86_64;
  • Как описывается в ядре физическая и виртуальная память;
  • API подсистемы управления памятью;
  • Высвобождение ранее занятой памяти;
  • Инструменты мониторинга;
  • Memory Cgroups;
  • Compaction — дефрагментация физической памяти.

Под катом вы найдете более подробный план доклада с раскрытием основных понятий и принципов.
Читать дальше →
Total votes 113: ↑107 and ↓6 +101
Comments 15

Разъяснение http2

Reading time 25 min
Views 193K
На днях Даниэль Штенберг, один из участников группы HTTPbis IETF, которая ведёт разработку протокола http2, опубликовал в своём блоге крайне интересный документ «http2 explained». Небольшой PDF-документ на 26 страницах весьма доступным языком рассказывает о предпосылках и деталях реализации протокола http2.

Как мне кажется, на сегодняшний день это одно из самых лучших разъяснений о том, что такое протокол http2, зачем он нужен, как он повлияет на веб-разработку и какое будущее ждёт Интернет в связи с его появлением. Думаю, что всем людям, причастным к веб-разработке и веб-строению, информация будет полезна, ведь ожидается, что стандарт http2 будет принят уже в июне этого года после завершающей встречи группы HTTPbis в Нью Йорке.
Читать дальше →
Total votes 162: ↑153 and ↓9 +144
Comments 51

Научный центр Кейптауна: политехнический музей, где надо нажимать на все кнопки

Reading time 5 min
Views 32K
Я сейчас в Южной Африке изучаю местные настольные игры. Так получилось, что их довольно много в местном научном центре. Естественно, я не удержался, и прошелся по всему центру, задавая вопросы. Это просто какой-то дикий восторг: здесь можно всё пощупать, потрогать, запустить и проверить.



Что самое крутое, почти всё здесь подходит детям. Для них это вообще приключение – залезть в космический аппарат, запустить пневморакету, поуправлять мячиком с помощью нейроактуатора, побить тапком по трубам и так далее. Просто гениальный способ разжечь интерес к науке с 4-5 лет.

Осторожно, трафик: внизу много фото.
Читать дальше →
Total votes 110: ↑107 and ↓3 +104
Comments 49

UX-стратегия на практике. Часть 1 — Фреймворк

Reading time 14 min
Views 30K
В идеале дизайном нужно заниматься системно с запуска первых продуктов компании. Но так получается далеко не всегда по самым разным причинам — важно запуститься как можно раньше, не было денег на старте, требовался максимально быстрый рост, концепция постоянно менялась в поиске работающей бизнес-модели и т.п. Вспомните первые Windows, Android до версии 4.0 и уйму других продуктов. Почему так происходит?

Стратеги

Читать дальше →
Total votes 42: ↑35 and ↓7 +28
Comments 9

3 предельно простые вещи, которые мы узнали про свою команду

Reading time 8 min
Views 78K
image

В нескольких топиках меня просили рассказать про нашу команду. А именно – как так получилось, что мы сразу знали, как и что делать в бизнесе, и, казалось, не ошибались. Так вот, мы ни разу не суперлюди. Мы часто ошибаемся, часто ходим по граблям и часто спорим внутри команды.

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

Недавно нашей сети исполнилось 5 лет. Первые два года были просто взрывом: мы стартовали без кредитных средств с одного маленького магазина и как-то вдруг стали российской розничной сетью.
Читать дальше →
Total votes 182: ↑160 and ↓22 +138
Comments 78

Рейтинг постов хаба

Reading time 35 min
Views 55K

Привет, Хабр!

Решил посмотреть лучшие посты своего любимого хаба и с ужасом обнаружил, что такой фичи нет.

В связи с тем, что данная возможность появилась, а топик сносить в черновики не хочется — ниже рейтинг самых комментируемых и добавляемых в избранное статей самых популярных хабов. Кроме того пару слов о реализации скрипта.

Читать дальше →
Total votes 132: ↑131 and ↓1 +130
Comments 35

Основы анализа данных на python с использованием pandas+sklearn

Reading time 9 min
Views 172K
Добрый день уважаемые читатели. В сегодняшней посте я продолжу свой цикл статей посвященный анализу данных на python c помощью модуля Pandas и расскажу один из вариантов использования данного модуля в связке с модулем для машинного обучения scikit-learn. Работа данной связки будет показана на примере задачи про спасенных с "Титаника". Данное задание имеет большую популярность среди людей, только начинающих заниматься анализом данных и машинным обучением.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 7

«Хабрахабр» запускает программу поддержки стартапов

Reading time 2 min
Views 71K
Привет!

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


Читать дальше →
Total votes 272: ↑242 and ↓30 +212
Comments 152

Второй Python meetup: чего ждать от PEP и стоит ли стрелять себе в ногу?

Reading time 2 min
Views 13K
Воодушевившись большим количеством слушателей июньского митапа, мы решили проводить его каждый месяц. Как итог – вторая встреча «питонщиков» в пятницу 26 июля. В этот раз мы (более 100 участников!) прошлись по наиболее популярным Python-библиотекам, покопались во внутренностях интерпретатора, а также разобрались в создании классов и объектов. Все подробности в must-see видео.

image
Читать дальше →
Total votes 30: ↑28 and ↓2 +26
Comments 7

GitHub Flow: рабочий процесс Гитхаба

Reading time 10 min
Views 125K
Краткое предисловие переводчика.
Захватывающе интересная статья одного из разработчиков «GitHub Inc.» о принятом в компании рабочем процессе потребовала употребить пару специальных терминов при переводе.

То понятие, для которого на английском языке достаточно одного слóва «workflow», на русский приходится переводить словосочетанием — «рабочий процесс». Ничего лучше не знаю ни сам я, ни при помощи гуглоперевода так что и мне, и читателям придётся с этим мириться, хотя бы и поневоле.

Другое понятие, «deploy», на русский часто переводят словом «развёртывание», но в моём переводе я решил вспомнить оборот из советского делопроизводства — «внедрение инноваций на производстве» — и стану говорить именно о «внедрении» новых фич. Дело в том, что описанный ниже рабочий процесс не имеет «выпусков» (releases), что делает несколько неудобными и речи о каком-либо «развёртывании» их.

К сожалению, некоторые переводчики бывают склонны грубо убивать сочную метафору «иньекции» (или даже «впрыскивания», если угодно), содержающуюся в термине «code injection», так что и его также переводят словосочетанием «внедрение кода». Эта путаница огорчает меня, но ничего не могу поделать. Просто имейте в виду, что здесь «внедрением кода» я стану назвать внедрение его именно в производство (на продакшен), а не в чей-нибудь чужой код.

Я стремился употреблять словосочетание «в Гитхабе» в значении «в компании GitHub Inc.», а «на Гитхабе» — в значении «на сайте GitHub.com». Правда, иногда разделять их сложновато.

Проблемы git-flow


Повсюду путешествую, преподавая Git людям — и почти на каждом уроке и семинаре, недавно мною проведённом, меня спрашивали, что я думаю о git-flow. Я всегда отвечал, что думаю, что этот подход великолепен — он взял систему (Git), для которой могут существовать мириады возможных рабочих процессов, и задокументировал один проверенный и гибкий процесс, который для многих разработчиков годится при довольно простом употреблении. Подход этот также становится чем-то вроде стандарта, так что разработчики могут переходить от проекта к проекту и из компании в компанию, оставаясь знакомыми с этим стандартизированным рабочим процессом.

Однако и у git-flow есть проблемы. Я не раз слыхал мнения людей, выражавших неприязнь к тому, что ветви фич отходят от develop вместо master, или к манере обращения с хотфиксами, но эти проблемы сравнительно невелики.

Для меня одной из более крупных проблем git-flow стала его сложность — бóльшая, чем на самом деле требуется большинству разработчиков и рабочих групп. Его сложность ужé привела к появлению скрипта-помощника для поддержания рабочего процесса. Само по себе это круто, но проблема в том, что помощник работает не из GUI Git, а из командной строки, и получается, что те самые люди, которым необходимо действительно хорошо выучить сложный рабочий процесс, потому что им вручную придётся пройти все шаги его — для этих-то людей система и недостаточно удобна для того, чтобы использовать её из командной строки. Вот что становится крупною проблемою.

Все эти проблемы можно без труда преодолеть, следуя гораздо более простому рабочему процессу. Мы не пользуемся git-flow в Гитхабе. Наш рабочий процесс основан (и всегда был основан) на более простом подходе к Git.

Простота его имеет несколько достоинств. Во-первых, людям проще понять его, так что они быстрее начинают использовать его, реже (или вовсе никогда не) допускают ошибки, требующие отката. Кроме того, не требуется скрипт-обёртка, помогающий следовать процессу, так что употребление GUI (и т. п.) не создаёт проблем.

Рабочий процесс Гитхаба


Читать дальше →
Total votes 111: ↑105 and ↓6 +99
Comments 47
1

Information

Rating
Does not participate
Location
Zürich, Zürich, Швейцария
Works in
Date of birth
Registered
Activity