Как стать автором
Обновить
0
0
yzoz @yzoz

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

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

Подробности о JavaScript-объектах

Время на прочтение10 мин
Количество просмотров27K
Автор материала, перевод которого мы сегодня публикуем, говорит, что в JavaScript-объектах содержится много такого, о существовании чего можно и не подозревать, пользуясь ими в повседневной работе. Объекты в JavaScript очень легко создавать, с ними удобно работать, они кажутся понятными и гибкими сущностями, и многие программисты попросту не задумываются о том, что на самом деле устроены объекты не так уж и просто.


NB: Информацию из публикации на практике следует применять крайне аккуратно и под присмотром более опытных коллег.
Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии17

Пишем XGBoost с нуля — часть 1: деревья решений

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


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

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

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


Читать дальше →
Всего голосов 77: ↑76 и ↓1+75
Комментарии4

Паттерны корутин asyncio: за пределами await

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

Предисловие переводчика:
В очередной раз наступив на грабли при работе с python asyncio я отправился на просторы интернета, чтобы найти что-то более приятное, чем сухая документация. Мне попалась статья Yeray Diaz "Asyncio Coroutine Patterns: Beyond await", в которой автор весьма увлекательно рассматривает применение asyncio и делится некоторыми приемами. Поскольку я не нашел ничего такого же цельного на русском языке, то решился её перевести.


Asyncio — конкурентная мечта python программиста: пишешь код, граничащий с синхронным, и позволяешь Python сделать все остальное. Это очередной импорт библиотеки антигравитации: import antigravity


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


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

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

Бесконечная алгоритмическая мелодия на основе простых чисел

Время на прочтение1 мин
Количество просмотров8.3K
image

Привет, Хабр! В прошлой статье «бесконечный узор на основе простых чисел» я рассказал про алгоритм, который позволяет генерировать бесконечные красивые узоры, похожие то ли на инопланетные рисунки, то ли на нечто технологическое, подобно устройству микросхем. Однако, алгоритм для генерирования 2D узоров можно так же использовать и для создания мелодий. Подробнее под катом.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии18

5 приемов работы с CSS, о которых вам следует знать

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


Наблюдая за потоком вопросов по CSS на Тостере уже давно заметил, что многие из них повторяются много-много раз. Да, есть совсем глупые вопросы, на которые так и тянет ответить RTFM! Но есть и более занятные. Они связаны с не совсем стандартной версткой. Не такой, чтобы глаза на лоб лезли, но и заметно выходящей за рамки условного бутстрапа и традиционных туториалов для новичков. Похожие вопросы довольно сложно загуглить — обычно вся суть в картинке, но и отвечать каждый раз надоедает. В этой статье мы постараемся посмотреть некоторые приемы, охватывающие довольно широкий круг подобных вопросов. Информация в первую очередь адресуется начинающим верстальщикам, но возможно и опытным будет, чем вдохновиться.

Всего голосов 60: ↑58 и ↓2+56
Комментарии25

Vuex: структурирование больших проектов и работа с модулями

Время на прочтение7 мин
Количество просмотров26K
Vuex — это официальная, отлично документированная библиотека для управления состоянием приложений, разработанная специально для фреймворка Vue.js. Автор материала, перевод которого мы сегодня публикуем, полагает, что пользоваться этой библиотекой гораздо приятнее, чем Redux, так как, во-первых, для работы с Vuex требуется меньше шаблонного кода, а во-вторых — из-за того, что для работы с асинхронными механизмами здесь не нужно дополнительных библиотек. Более того, так как библиотека Vuex создана той же командой, которая занимается работой над Vue, эта библиотека очень хорошо интегрируется с данным фреймворком. К сожалению, в работе с Vuex всё ещё можно столкнуться с одной сложностью, которая заключается в правильной подготовке структуры проектов, в которых планируется пользоваться этой библиотекой.



В этой статье вы найдёте описание методики структурирования больших проектов, использующих Vuex, и скрипта, предназначенного для автоматизации процесса создания модулей Vuex.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии6

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 1 — 14

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

Некоторое время назад в моей ленте в фейсбуке всплыла ссылка на книгу Эндрю Ына (Andrew Ng) "Machine Learning Yearning", которую можно перевести, как "Страсть к машинному обучению" или "Жажда машинного обучения".


image<img src="<img src="https://habrastorage.org/webt/ds/rc/ct/dsrcctfottkedkf7o1hxbqsoamq.png" />" alt="image"/>


Людям, интересующимся машинным обучением или работающим в этой сфере представлять Эндрю не нужно. Для непосвященных достаточно сказать, что он является звездой мировой величины в области искусственного интеллекта. Ученый, инженер, предприниматель, один из основателей Coursera. Автор отличного курса по введению в машинное обучение и курсов, составляющих специализацию "Глубокое обучение" (Deep Learning).

Читать дальше →
Всего голосов 40: ↑40 и ↓0+40
Комментарии3

Моделирование динамических систем: Как движется Луна?

Время на прочтение24 мин
Количество просмотров31K
Светлой памяти моего учителя — первого декана физико-математического факультета Новочеркасского политехнического института, заведующего кафедрой «Теоретическая механика» Кабелькова Александра Николаевича

Введение


Август, лето подходит к концу. Народ яростно рванул на моря, да оно и неудивительно — самый сезон. А на Хабре, тем временем, буйным цветом распускается и пахнет лженаука. Если говорить о теме данного выпуска «Моделирования...», то в нем мы совместим приятное с полезным — продолжим обещанный цикл и совсем чуть-чуть поборемся с этой самой лженаукой за пытливые умы современной молодежи.


А вопрос ведь действительной не праздный — со школьных лет мы привыкли считать, что наш ближайший спутник в космическом пространстве — Луна движется вокруг Земли с периодом 29,5 суток, особенно не вдаваясь в сопутствующие подробности. На самом же деле наша соседка своеобразный и в какой-то степени уникальный астрономический объект, с движением которого вокруг Земли не всё так просто, как, возможно хотелось бы некоторым моим коллегам из ближайшего зарубежья.

Итак, оставив полемику в стороне, попытаемся с разных сторон, в меру своей компетенции, рассмотреть эту безусловно красивую, интересную и очень показательную задачу.
Читать дальше →
Всего голосов 74: ↑72 и ↓2+70
Комментарии73

10 самых распространенных ошибок безопасности в Python и как их избежать

Время на прочтение8 мин
Количество просмотров19K
Всем привет!

Наша очередная группа по Python успешно запустилась в понедельник, но у нас остался ещё один материальчик, который мы не успели разместить до старта. Исправляем нашу оплошность и надеемся, что он вам понравится.

Поехали!

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

Всего голосов 33: ↑31 и ↓2+29
Комментарии6

Linux in RAM: debirf way 2018

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

Linux in RAM: debirf way


Do you want to have absolute disk speed nowadays, don’t you? Let's revise how it could be done with versioning and automation in 2018.


От модератора: нам в Песочницу пришла статья на английском языке. Мы её прочитали и и в качестве пятничного эксперимента решили опубликовать. Не судите строго, всем peace and happy Friday! Let's come together! Короче, фром зе боттом оф ауа хартс.
Читать дальше →
Всего голосов 60: ↑49 и ↓11+38
Комментарии45

Методика разработки высоконадёжных серверов на Go

Время на прочтение26 мин
Количество просмотров18K
Время от времени перед веб-программистами встают задачи, способные нагнать страху даже на профессионалов. Речь идёт о разработке серверных приложений, которые не имеют права на ошибку, о проектах, в которых стоимость сбоя чрезвычайно высока. Автор материала, перевод которого мы сегодня публикуем, расскажет о том, как подходить к решению таких задач.


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

NumPy в Python. Часть 3

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

Предисловие переводчика


И снова здравствуйте! Продолжаем наш цикл статей по переводу мана о numpy. Приятного чтения.


Операторы сравнения и тестирование значений


Булево сравнение может быть использовано для поэлементного сравнения массивов одинаковых длин. Возвращаемое значение это массив булевых True/False значений:

>>> a = np.array([1, 3, 0], float)
>>> b = np.array([0, 3, 2], float)
>>> a > b
array([ True, False, False], dtype=bool)
>>> a == b
array([False,  True, False], dtype=bool)
>>> a <= b
array([False,  True,  True], dtype=bool)
Читать дальше →
Всего голосов 20: ↑20 и ↓0+20
Комментарии5

Подсчёт пчёл нейросетью на Raspberry Pi

Время на прочтение7 мин
Количество просмотров30K
Опубликовано 17 мая 2018 года

Сразу после установки улья я подумал: «Интересно, как подсчитать количество прилетающих и улетающих пчёл?»

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

Во-первых, нужно собрать образцы данных. Raspberry Pi, стандартная камера Pi и солнечная панель: этого простого оборудования достаточно, чтобы записывать один кадр каждые 10 секунд и сохранять 5000+ изображений в день (с 6 утра до 9 вечера).


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

Гетерогенная конкурентная обработка данных в реальном времени строго один раз

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

Конкурентная сосиска


Аннотация


Обработка данных в реальном времени ровно один раз (exactly-once) — задача крайне нетривиальная и требующая серьезного и вдумчивого подхода на всей цепочке вычислений. Некоторые даже считают, что такая задача невыполнима. В реальности хочется иметь подход, обеспечивающий отказоустойчивую обработку вообще без каких-либо задержек и использование различных хранилищ данных, что выдвигает новые еще более жесткие требования, предъявляемые к системе: concurrent exactly-once и гетерогенность персистентного слоя. На сегодняшний день такое требование не поддерживает ни одна из существующих систем.


Предложенный подход последовательно раскроет секретные ингредиенты и необходимые понятия, позволяющие относительно просто реализовать гетерогенную обработку concurrent exactly-once буквально из двух компонент.


Введение


Разработчик распределенных систем проходит несколько стадий:


Стадия 1: Алгоритмы. Здесь происходит изучение основных алгоритмов, структур данных, подходов к программированию типа ООП и т.д. Код исключительно однопоточный. Начальная фаза вхождения в профессию. Тем не менее, достаточно непростая и может длиться годами.


Стадия 2: Многопоточность. Далее возникают вопросы извлечения максимальной эффективности из железа, возникает многопоточность, асинхронность, гонки, дебагинг, strace, бессонные ночи… Многие застревают на этом этапе и даже начинают с какого-то момента ловить ничем не объяснимый кайф. Но лишь единицы доходят до понимания архитектуры виртуальной памяти и моделей памяти, lock-free/wait-free алгоритмах, различных асинхронных моделях. И почти никто и никогда — верификации многопоточного кода.


Стадия 3: Распределенность. Тут такой треш творится, что ни в сказке сказать, ни пером описать.

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

Как забытый на 12 лет сервер может обойтись в 120000 фунтов стерлингов

Время на прочтение5 мин
Количество просмотров49K
Всего за несколько дней до вступления в силу GDPR неприятность постигла Университет Гринвича. Information Commissioner's Office (офис комиссара по информации — независимая организация по надзору за соблюдением законодательства в информационной среде Великобритании) оштрафовал университет на £120 тыс. (на момент написания статьи это порядка 136 тыс. евро, 160 тыс. долларов США, 10 млн. российских рублей, 4,2 млн. украинских гривен) за серьёзную уязвимость в безопасности, приведшую к утечке данных почти 20 тыс. студентов и сотрудников. Как такому серьёзному университету удалось попасть под раздачу ICO и стать первым университетом, оштрафованным за нарушение DPA, и чему это нас учит, читайте под катом.

Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии66

Как умирают самые массивные звёзды: сверхновая, гиперновая или прямой коллапс?

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

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

Создайте достаточно массивную звезду, и она не закончит свои дни тихонечко — так, как это предстоит нашему Солнцу, которое сначала будет плавно гореть миллиарды и миллиарды лет, а затем сожмётся до белого карлика. Вместо этого её ядро схлопнется, и запустит неконтролируемую реакцию синтеза, которая разметает внешние слои звезды во взрыве сверхновой, а внутренние части сожмёт в нейтронную звезду или чёрную дыру. По крайней мере, так принято считать. Но если вы возьмёте достаточно массивную звезду, сверхновой может и не получиться. Вместо этого есть другая возможность – прямое схлопывание, в котором вся звезда просто исчезает, превращаясь в чёрную дыру. А ещё одна возможность известна, как гиперновая — она гораздо более энергетическая и яркая, чем сверхновая, и не оставляет за собой остатков ядра. Каким же образом закончат свою жизнь самые массивные звёзды? Вот, что говорит об этом наука.
Всего голосов 36: ↑33 и ↓3+30
Комментарии47

Альтернативы продуктам Google

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


Корпорация Google с каждым годом усиливает своё влияние. Минули времена, когда люди делились ссылкой на новый поисковик с экзотическим названием google.com вообще без рекламы, а потом инвайты на Gmail ценились на вес золота. Сейчас ситуация совершенно иная. Как-то незаметно Google вырос и изменил бизнес-модель.

Активисты движения Restore Privacy считают, что «вся бизнес-модель Google основана на том, что вы становитесь под их корпоративную слежку. Вот и всё. Все, что они делают — это переупаковывают массовую корпоративную слежку в удобные, бесплатные, модные приложения, которые засасывают все ваши данные. Ваши личные данные помогают Google доминировать на рынке интернет-рекламы».

В такой модели вы являетесь продуктом.
Читать дальше →
Всего голосов 93: ↑62 и ↓31+31
Комментарии178

Стеганография в IP-пакетах

Время на прочтение4 мин
Количество просмотров20K
Однажды, перед защитой очередной лабораторной работы мне задали вопрос: какие поля IP-пакета можно использовать для стегано? Я не знал и лишь пожал плечами. Но вскоре я всё же решил изучить этот вопрос.

Под катом вас ждёт изучение заголовков IP-пакетов, собственная утилита ping на Python и несколько способов передать данные, не привлекая внимания.
Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии12

Обзор градиентных методов в задачах математической оптимизации

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

Предисловие


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



Читать дальше →
Всего голосов 76: ↑76 и ↓0+76
Комментарии26

AI создал свой первый фильм, и это фильм ужасов

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


Искусственный интеллект под руководством инженера из Google самостоятельно сделал первую кинокартину. Не просто сложил части чужих фильмов друг с другом, или выдал буквы сценария, а создал полноценную короткометражку. Сам написал сюжет, сам написал все диалоги, сам выбрал сцены и определил выражения лиц актеров (и даже, судя по всему, сам написал заголовок для показанной в фильме газеты – хотя он получился настолько ироничным, что в это сложно поверить). Озвучка персонажей, музыка и монтаж – естественно, тоже за AI. Но получившаяся черно-белая научная фантастика отнюдь не кажется милой.

Всего голосов 52: ↑38 и ↓14+24
Комментарии93

Информация

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