Pull to refresh
0
0

Пишем GPT в 60 строк NumPy (часть 1 из 2)

Level of difficulty Medium
Reading time 16 min
Views 58K
Python *Algorithms *Mathematics *Machine learning *Artificial Intelligence
Tutorial
Translation

В этом посте мы начнём реализацию с нуля GPT всего в 60 строках numpy. Во второй части статьи мы загрузим в нашу реализацию опубликованные OpenAI веса обученной модели GPT-2 и сгенерируем текст.
Читать дальше →
Total votes 96: ↑94 and ↓2 +92
Comments 32

Анализ трафика Android-приложений: обход certificate pinning без реверс-инжиниринга

Reading time 4 min
Views 43K
Information Security *
Иногда нужно исследовать работу бэкенда мобильного приложения. Хорошо, если создатели приложения не заморачивались и все запросы уходят по «голому» HTTP. А что, если приложение для запросов использует HTTPS, и отказывается принимать сертификат вашего корневого удостоверяющего центра, который вы заботливо внедрили в хранилище операционной системы? Конечно, можно поискать запросы в декомпилированом приложении или с помощью реверс-инжиниринга вообще отключить применение шифрования, но хотелось бы способ попроще.

image
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 11

ScribeJava — даже ваша бабушка сможет работать с OAuth

Reading time 10 min
Views 29K
HeadHunter corporate blog Website development *Open source *Programming *Java *
image

Именно этой фразой нас приветствует библиотека для работы с 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-запросы? Нам хватит тех же трех строчек. Ниже рассмотрим это на примере.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 2

Java и время: часть вторая

Reading time 21 min
Views 211K
Website development *Programming *Java *
Tutorial
Эта статья написана в продолжение к первой части и посвящена новому Date Time API, который был введен в Java 8. Я изначально хотел оформить эту тему отдельно, поскольку она достаточно большая и серьезная. Я еще сам не в полной мере начал использовать этот API в проектах, поэтому разбираться будем вместе по ходу. В принципе в переходе на новый API нет никакой срочной необходимости, более того многие еще и не начинали проекты на Java 8, а это означает, что время на освоение еще есть.

В статье я постараюсь не скатываться в банальный перевод штатной документации, больше я хотел бы сконцентрироваться на том, что мне показалось особенно важным.
Читать дальше →
Total votes 32: ↑30 and ↓2 +28
Comments 4

Эрланг для веб-разработки (1) -> Знакомство;

Reading time 7 min
Views 28K
Website development *Programming *Erlang/OTP *Functional Programming *
Tutorial

Продолжение о базе данных и деплое во второй статье.

Я начинаю публиковать серию статей о веб-разработке на Эрланге. Многие хотят попробовать Эрланг, но сталкиваются с проблемой, что вводные курсы в основном касаются Эрланга как функционального языка и далеки от реальных проектов (Learn You Some Erlang for great good! — хорошая и подробная книга). С другой стороны все обучающие материалы по веб-разработке подразумевают, что читатель уже хорошо знает Эрланг.

Эта серия статей рассчитана для разработчиков, у которых есть опыт в веб-разработке (PHP, Ruby, Java), но не имеют опыта разработки на Эрланге.

Задачей будет сделать блог. Код из статей https://github.com/denys-potapov/n2o-blog-example, готовый проект можно посмотреть по адресу http://46.101.118.21:8001/. Особенности проекта:
  • обновление комментариев в реальном времени;
  • авторизация через фейсбук;
  • данные храним в mnesia.

В основе проекта феймворк n2o. Выбор довольно субъективен, но из живых Эрланг фреймворков, n2o мне показался наиболее «эрлангоподобным», в тоже время ChicagoBoss больше похож на MVC фреймворки в других языках.
Читать дальше →
Total votes 32: ↑29 and ↓3 +26
Comments 121

Партиционирование в PostgreSQL – Что? Зачем? Как?

Reading time 23 min
Views 140K
Website development *PostgreSQL *SQL *
Translation
Функцией партиционирования таблиц в PostgreSQL, к сожалению, активно пользуются пока не многие. На мой взгляд, очень достойно о ней рассказывает в своей работе Hubert Lubaczewski (depesz.com). Предлагаю вам еще один перевод его статьи!

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

Так что я постараюсь объяснить в меру своих знаний и возможностей, что это такое, зачем его стоит использовать и как это сделать.
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Comments 25

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

Reading time 4 min
Views 20K
DataArt corporate blog IT systems testing *


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

Введение

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

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

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

10 советов по использованию ExecutorService

Reading time 13 min
Views 145K
Java *
Sandbox
Предлагаю читателям «Хабрахабра» перевод публикации «ExecutorService — 10 tips and tricks».



Абстракция ExecutorService была представлена еще в Java 5. На дворе шел 2004 год… На секунду – сейчас Java 5 и 6 больше не поддерживаются и Java 7 готовится пополнить список. А многие Java-программисты по-прежнему не в полной мере понимают как работает ExecutorService. В вашем распоряжении множество источников, но сейчас я хотел бы рассказать о малоизвестных тонкостях и практиках по работе с ней.
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Comments 23

Почему вы никогда не должны использовать MongoDB

Reading time 16 min
Views 284K
Website development *NoSQL *MongoDB *
Translation
Дисклеймер от автора (автор — девушка): Я не разрабатываю движки баз данных. Я создаю веб-приложения. Я участвую в 4-6 разных проектах каждый год, то есть создаю много веб-приложений. Я вижу много приложений с различными требованиями и различными потребностями хранения данных. Я разворачивала большинство хранилищ, о которых вы слышали, и несколько, о которых даже не подозреваете.

Несколько раз я делала неправильный выбор СУБД. Эта история об одном таком выборе — почему мы сделали такой выбор, как бы узнали что выбор был неверен и как мы с этим боролись.Это все произошло на проекте с открытым исходным кодом, называемым Diaspora.
Читать дальше →
Total votes 219: ↑181 and ↓38 +143
Comments 245

10 ошибок, которые я совершил при запуске двух интернет-магазинов (и как не допускать этих ошибок)

Reading time 8 min
Views 208K
Convead corporate blog
Recovery mode
Translation
Каждый день открываются и закрываются интернет-магазины. Причины выхода из бизнеса могут быть разные: проблемы с конкуренцией, логистикой, маркетингом. В статье мы рассмотрим 10 ошибок, которые совершил Шаббир Нураддин при запуске двух интернет-магазинов.

image

Работа в e-commerce дала мне лучший практический опыт в жизни. Те вещи, которые я узнал, запуская онлайн-бизнес не рассказывают на лекциях MBA или других обучающих курсах.

Все ошибки, которые я совершил позволили мне понимать бизнес-задачи лучше, и я поделюсь своим опытом, чтобы вы не наступали на те же “грабли” и смогли прийти к успеху быстрее.
Читать дальше →
Total votes 38: ↑32 and ↓6 +26
Comments 24

Что делать, если вам надоели рекламные СМС

Reading time 3 min
Views 296K
Cellular communication
В продолжение статей о том, что ФАС собирает дополнительную информацию о «коротких» номерах, хочу рассказать, как эта служба может помочь вам избавиться от нежелательной рекламы по СМС.

Согласно ч.1 ст.18 ФЗ «О рекламе», распространение рекламы по сетям электросвязи, в том числе посредством использования телефонной, факсимильной, подвижной радиотелефонной связи, допускается только при условии предварительного согласия абонента или адресата на получение рекламы.

Итак, отписавшись от всех рекламных рассылок своего оператора, я наивно полагал, что рекламные СМС меня больше не будут отвлекать. Но маркетологи различных компаний решили, что без рекламы мне скучно, и быстро исправили ситуацию. В итоге, год назад я практически каждую неделю получал несколько рекламных СМС, в основном это были сообщения от такси нашего города. Особую активность компании проявляли перед Новым годом.
Читать дальше →
Total votes 202: ↑199 and ↓3 +196
Comments 150

Чеклист при подготовке презентации

Reading time 3 min
Views 6.9K
Presentations
В последнее время я наблюдал несколько десятков презентаций, которые начинались вот так:

— Мы делаем систему управления электронным обучением…

— Мы провели исследование поведения посетителей на нашем сайте…

— Наша компания была основана более ста лет назад…

Это просто удивительно как люди любят так поступать. Они с первых секунд садятся на уши аудитории рассказом про себя:

— Мы предлагаем SAAS-решение…

— Наши технологии…

И мое любимое:

— Начну рассказ с того, кто мы такие…

Почему все так уверены, что именно это в первую очередь интересует слушателей? Единственное что выступающий гарантированно получит в таком выступлении — это претензии к себе лично и своей компании.

Я видел как один из директоров Microsoft схлопотал громкое улюлюканье, а представитель Ростелекома — едкий троллинг из зала только потому, что выступили по этому шаблону.

Почему каждый раз это происходит?

Читать дальше →
Total votes 75: ↑68 and ↓7 +61
Comments 36

12 способов не накосячить со вспышкой

Reading time 8 min
Views 348K
Photographic equipment
После трёх лет работы со студийным светом я думал, что знаю про накамерную вспышку если не всё, то очень много. Три недели назад я попал в гости к одному особо опытному стробисту, который рассказал и показал столько, что я сразу понял, что надо садиться и делать перепись грабель, а потом тестить, тестить и ещё раз тестить.

Ниже — достаточно известные вещи, которые, однако, вызывали facepalm у тех, кто был вместе со мной или же у меня. В списке грабель вы с некоторой вероятностью можете найти что-нибудь новое. Если хотя бы она фича использования вспышки окажется для вас полезной, то мою задачу можно считать выполненной.
Читать дальше →
Total votes 228: ↑223 and ↓5 +218
Comments 73

Совет счастливым обладателям жестких дисков

Reading time 2 min
Views 63K
Computer hardware
Хабрапривет! Сегодня расскажу о маленькой полезной настройке современных жестких дисков, которая позволяет значительно уменьшить шум от его работы.

image

Для тех, кто не слышал про AAM — добро пожаловать под кат.
Читать дальше →
Total votes 160: ↑132 and ↓28 +104
Comments 270

Сила отжиманий

Reading time 3 min
Views 15K
Health
Идея рассказать об этом простом, но очень эффективном упражнении пришла после прочтения вот этой темы.

Прочитав ее, я понял, что бег, может, и подходит многим. Но, глядя на лужи, ветер и дожди за окном пять дней в неделю, засомневался, что подходит всем.

Поэтому я хочу рассказать об отжиманиях, чем они лучше, с моей точки зрения, известных стандартных физических упражнений (подтягивания, приседания), для создания физической нагрузки в течение дня.
Читать дальше →
Total votes 254: ↑214 and ↓40 +174
Comments 136

Интернет вверх тормашками

Reading time 3 min
Views 8.1K
Design
Добрый день, близится 1 апреля, и очень не хотелось бы, чтобы этот день был таким же как и остальные, поэтому предлагаю особый, айтишный прикол. Это перевод случайно найденной на просторах интернета статьи, собственно, перевел ее a11aud, но ему не хватает кармы на пост, поэтому пишу я (сам a11aud будет очень благодарен за карму:))

1) Вступление


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

2) Разделяем сеть!


Я начал с разделения сети на две части: доверяемую и недоверяемую. Доверяемая имела свою долю сети, недоверяемая — свою. Мы используем DHCP сервер, чтобы идентифицировать мак-адреса для разделения на соответствующие группы.
Читать дальше →
Total votes 147: ↑142 and ↓5 +137
Comments 49

YouTube EDU — обучающие видеоматериалы из колледжей и университетов

Reading time 1 min
Views 3.3K
IT-companies


26 марта 2009 года на youtube открыли раздел YouTube EDU, в котором собраны лучшие обучающие видеоматериалы (в основном — лекции и обучающие материалы из колледжей и университетов).

Среди лидеров просмотров: MIT, Stanford University, индийские универститеты.

Представлены целые курсы в виде плей-листов: курс линейной алгебры, введение в биологию, принципы цифровых коммуникаций и многие другие.

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

Upd. Еще один подобный ресурс — academicearth.org (Женя Теплов, спасибо!)
Upd2. University of Washington, Engineering & Computer Science (YasonBy, спасибо!)
Total votes 78: ↑77 and ↓1 +76
Comments 49

Мертвые с косами. И тишина…

Reading time 11 min
Views 11K
Computer hardware
Хочу поделиться опытом сборки бесшумного компьютера для дома.

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

Корпус

Компьютерный корпус — это всего лишь коробка, более или менее прилично выглядящая. Однако, если уделить внимание шумоизоляции, удобству сборки и эффективности охлаждения, то все не так очевидно. Для большей гибкости я рассматривал корпуса без блока питания, т.к. уже заранее выбрал один из самых тихих БП (см. ниже).
Сразу скажу, что получилось дорого. Я выбрал корпус Antec P182 (на фото выше). Без блока питания они выпускают несколько моделей. Наиболее известные серии — P182 и P190 (сильно дороже). Есть еще довольно маленький корпус без БП NSK4000, но в небольших корпусах охлаждение менее эффективно и требует более шумных вентиляторов.
Наряду с Antec я почитал про корпуса Lian-Li. Они оригинальны тем, что сделаны из чистого алюминия. Выглядят очень стильно и сделаны с высоким качеством. Но в России распространены еще меньше, чем Antec.
Можно было, конечно, найти много хороших корпусов среди более дешевых. Что мне понравилось в Antec?
Читать дальше →
Total votes 222: ↑214 and ↓8 +206
Comments 212

Корпоративные приложения в Google Play

Reading time 1 min
Views 31K
Development for Android *
Recovery mode
Хорошая новость для пользователей Google Apps for Business, Education и Government была опубликована в блоге Google. Отныне в Google Play можно создавать корпоративные каналы обновлений и распространять через них внутренние приложения для своих работников.



Подробности
Total votes 26: ↑24 and ↓2 +22
Comments 23

Привязка сессии к серверу в Nginx. Nginx-sticky-module

Reading time 3 min
Views 47K
Nginx *
Sticky session — метод балансировки нагрузки, при котором запросы клиента передаются на один и тот же сервер группы.

Самый простой способ закрепить сессии пользователя за конкретным сервером в Nginx — использовать метод ip-hash:
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 11

Information

Rating
Does not participate
Registered
Activity