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

Скачиваем видео с YouTube

Время на прочтение7 мин
Количество просмотров99K
Эта история берет начало в далеком 2006-м году… Я тогда был в начале своей программистской карьеры и работал в одной говноконторе развивающейся ноунейм фирме. Тогда у нас было несколько заказов на сайты с похожим функционалом: нужно было сделать портал, на который люди могли бы заливать видео/картинки/музыку и потом этот контент просматривать, комментировать, а заодно и смотреть рекламу принося прибыль доброму дяде владельцу. Все бы хорошо, но чтобы завлечь людей на сайт нужно чтобы там уже было много контента. Таким образом создавалось бы впечатление что сайт работает давно и успешно. И вот заказчик ставит грандиозную цель: наполнить новоиспеченный портал видео с youtube.com. Еще не зная, что меня ждет, я с радостью взялся за работу…
Читать дальше →
Всего голосов 82: ↑62 и ↓20+42
Комментарии80

Смотрите на свой Google календарь через календарь Висты

Время на прочтение1 мин
Количество просмотров784
Одна из величайших вещей в Висте которую вы встретите, это iCal — встроенный календарь который позволяет вам подписаться на календари от сайтов третьих лиц, таких как Google, и получать от них апдейты. Если вам нравится Вистовский календарь, но при этом вы хотите принимать информацию из других интернет источников, то эта функция для вас. Например, Гугл позволяет вам быстро добавить событие в Гугл Календарь, но не в календарь Висты.

Дальше тут:
ru.vistarewired.com/2007/04/24/%d1%81%d0%bc%d0%be%d1%82%d1%80%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-%d1%81%d0%b2%d0%be%d0%b9-google-%d0%ba%d0%b0%d0%bb%d0%b5%d0%bd%d0%b4%d0%b0%d1%80%d1%8c-%d1%87%d0%b5%d1%80%d0%b5%d0%b7-%d0%ba%d0%b0%d0%bb
Всего голосов 4: ↑1 и ↓3-2
Комментарии2

Как работают квантовые компьютеры. Собираем паззл

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


Квантовые компьютеры и квантовые вычисления — новый баззворд, который добавился в наше информационное пространство наряду с искусственным интеллектом, машинным обучением и прочими высокотехнологическими терминами. При этом мне так и не удалось найти в интернете материал, который бы сложил у меня в голове пазл под названием “как работают квантовые компьютеры”. Да, есть много прекрасных работ, в том числе и на хабре (см. Список ресурсов), комментарии к которым, как это обычно и бывает, еще более информативны и полезны, но картинка в голове, что называется, не складывалась.


А недавно ко мне подошли коллеги и спросили “Ты понимаешь как работает квантовый компьютер? Можешь нам рассказать?” И тут я понял, что проблема со складыванием в голове целостной картинки есть не только у меня.


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

Получилось или нет - решать, как обычно, вам.
Всего голосов 111: ↑111 и ↓0+111
Комментарии105

Можно ли уехать из Клинцов? (data mining of blablacar.ru)

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

Парсинг сайта blablacar.ru и анализ пассажиропотока из г. Клинцы Брянской области с помощью языка программирования R.


image

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

Межпланетная файловая система — Простой блог в IPFS при помощи XSLT

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

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


Обычно формируют содержание страниц при помощи JavaScript. Это знакомая технология но у неё есть свои недостатки.


Я буду использовать XSLT. Это древняя технология шаблонов которая давно встроена в браузеры но мало кто ей пользуется. Возможно потому что шаблоны заставляют писать много текста и из за путаницы с пространствами имён и множества ошибок без внятного объяснения. Также не смотря на то что есть уже XSLT 3.0 в браузерах по прежнему доступен только XSLT 1.0.


XSLT работает так:


  1. Пользователь открывает в браузере XML документ.
  2. В заголовке XML документ содержит ссылку на XSLT шаблон.
    <?xml-stylesheet href="xslt/запись.xslt" type="text/xsl" ?>
  3. Шаблон в браузере на основе XML документа и других данных формирует xHTML документ.
  4. Браузер отображает полученный xHTML документ.

Привязав множество страниц к одному шаблону можно менять отображаемый xHTML документ не меняя XML документы. Таким образом при смене дизайна не будет меняться хеш XML документов а значит старые их копии будут источниками для новых в IPFS.


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


image

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

Основы Elasticsearch

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

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


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


В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии78

Фильтрация шума в дополненной реальности

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

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

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

OSSEC: Большой Брат наблюдает за тобой

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

Пожалуй, не ошибусь, если скажу, что любому профессиональному системному администратору важно знать что и когда происходит с его серверами. Особенно остро этот вопрос встает в такой области, как информационная безопасность.
В этом посте я хочу познакомить вас, коллеги, с развертыванием host-based IDS под названием OSSEC. Прошу под кат…
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии11

Используем Zap Baseline Scan для непрерывного сканирования сайта на уязвимости

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

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

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

Большую часть материала можно использовать в том числе и для внедрения в CI/CD пайплайны.

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

Как быстрее доставить сообщение в мозг или немного о современном языке визуальной коммуникации

Время на прочтение6 мин
Количество просмотров4.8K
За последние 20 лет интернет превратил практически каждого человека в источник публичных данных. Большинство людей, которые что-либо публикуют в сети, хотят что-то донести до окружающих, хотят чтобы это заметили, поняли и в идеале запомнили. Это в равной степени касается бесчисленного множества пользователей социальных медиа, интернет магазинов, СМИ. Не смотря на это своё желание, визуальная коммуникация, по моему субъективному мнению, развивается достаточно медленно.


И это странно, ведь согласно исследованиям визуальная коммуникация значительно эффективнее вербальной. В этом посте о причинах, по которым самым эффективным способом доставить сообщение мозг аудитории является визуальный контент, о современных типах такого контента и о возможных причинах того, почему традиционные вербальные средства пока сохраняют популярность и если не превосходят, то по крайней мере сравнимы по популярности с современным языком визуального контента.
Всего голосов 8: ↑8 и ↓0+8
Комментарии19

Теория охотника и фермера

Время на прочтение6 мин
Количество просмотров12K
После очередной статьи на тему болезней 21ого века, кучи советов по тому как быть рационалом, как выстроить свое время, используя принципы и приемы GTD, как бороться с прокрастинацией, как иметь стопицот часов в сутках вместо 24, мне хочется высказать свою точку зрения, которая основана на очень редко встречающихся, но от этого не менее полезных, публикациях, плюс постоянных дискуссиях с моими коллегами по работе на эту животрепещущую тему.

Есть ли место в этом мире иррационалам? Нужно ли искать 25ый час в сутках? Так ли важно фиксировать свои задачи и четко следовать плану с мельчайшей детализацией на 5 лет вперед? Нужно ли бороться с ленью?

Выдохни…

image

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

Определяем все классы, которые использует приложение на Java

Время на прочтение12 мин
Количество просмотров19K
Без сомнения каждый, кто в своем резюме указывает опыт разработки на Java, хоть раз в жизни писал строки
public static void main(String[] args)
компилировал их и запускал на выполнение командой наподобие java HelloWorld.
Но многие ли знают, что происходит внутри JVM от момента выполнения этой команды до того как управление передается методу main, как Java находит и загружает необходимые пользователю классы? Возникшая однажды производственная задача заставила автора разобраться в этом вопросе. Результаты изысканий под катом. Сразу стоит оговориться, что статья не претендует на полноту охвата всех существующих JVM, тестирование проводилось только на Sun HotSpot JVM.
Читать дальше →
Всего голосов 65: ↑60 и ↓5+55
Комментарии12

Быстрое индексное умножение по модулю

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

Введение


Обычно данный материал приводится с обилием формул и рассчитан больше на математиков. Я постараюсь расписать его наиболее доступно на простых численных примерах с точки зрения применения этого метода в микроэлектронике на аппаратном уровне. В численных примерах для наглядности будет использоваться значение p = 11.

Постановка задачи


Положим, что нам требуется выполнить умножение следующего вида: res = (a*b) mod p, где
0 <= a < p
0 <= b < p
p – простое число.
mod p – операция нахождения остатка по модулю.
И выполнить его надо на низком уровне, где нет как таковой операции умножения и операции взятия остатка от деления или же они реализуются достаточно сложно (например, в электронном устройстве).
Подробности
Всего голосов 42: ↑41 и ↓1+40
Комментарии23

Начальная настройка маршрутизаторов Juniper SRX

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


     В этой статья я постараюсь максимально доходчиво рассказать о том, как настроить Juniper серии SRX «из коробки». Статья подобного рода уже есть: habrahabr.ru/post/144218, однако моя отличается большей полнотой и подробностью настройки.
     Почему именно Juniper SRX, а не какая-то конкретная модель типа SRX100 или SXR240? Да просто потому что настройки будут полностью идентичными, ввиду полной одинаковости платформы – Junos OS. Это очень удобно, когда вроде бы разные по цене и производительности девайсы настраиваются абсолютно одинаковым образом. В этом лишь одно из достоинств Junos OS.
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии32

Конфликт интересов Заказчик-Исполнитель вокруг разработки интернет-проекта

Время на прочтение2 мин
Количество просмотров2.4K
Основной тезис данной публикации — Заказчику нужен независимый консультант по веб-разработке

При запуске нового интернет-проекта у Заказчика есть интерес — запустить интернет-проект с требуемым уровнем качества, в согласованные сроки.

При этом Заказчик сталкивается, с одной стороны, с собственной некомпетентностью (это нормально) в вопросах бизнес-аналитики (анализ требований), юзабилити, веб-технологий, копирайта, интернет-рекламы, поискового продвижения…

С другой стороны, Исполнитель (веб-студия, фрилансер), которого нанимает Заказчик, обладает всеми компетенциями (в той или иной степени), однако имеет свой интерес, который конфликтует с интересом Заказчика. Очень часто интерес Исполнителя сводится — сделать минимум за максимальную прибыль.

В этой ситуации, когда присутствует так называемая «информационная асиммитрия» (см. справку внизу), Заказчик часто теряет качество, превышает бюджет проекта или срывает сроки.

Теория информационной асимметрии (нобелевского лауреата по экономике Джорджа Акерлофа) гласит, что Отдельному Исполнителю выгодно обманывать покупателя из-за наличия асимметрии информации — ведь обычно Заказчик менее компетентен, чем Исполнитель. Однако продав пару некачественных проекта под видом качественных, он лишится доверия покупателя, и его благосостояние тоже упадет.

Таким образом, Заказчику выгодно устранить недостаток информации (а что по вашему делают независимые оценщики недвижимости?) Как это сделать?

Частично, проблема решается если нанять независимого компетентного менеджера проекта или консультанта.

Таким образом, будет устранена асимметрия в информации, ведь Менеджер будет, во-первых, детально знать все процессы веб-разработки и, во-вторых, нести ответственность за качество, бюджет и сроки проекта.

Справка об информационной асимметрии
ru.wikipedia.org/wiki/%D0%90%D1%81%D0%B8%D0%BC%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8

ruconomics.com/2006/09/05/otdam-uchebniki-v-horoshie-ruki-za-horoshie-dengi
Всего голосов 7: ↑2 и ↓5-3
Комментарии23

Google Analytics — обходим семплирование и собираем сырые данные

Время на прочтение7 мин
Количество просмотров11K
image
Привет!

Если у вас посещаемый сайт (более 500 тысяч сессий за отчетный период) или вы строите какие-то сложные отчеты через интерфейс (сегментирование, подключение дополнительных параметров, частое изменение отчетного периода) — Google Analytics начинает экономить свои ресурсы и включает семплирование данных. Подробности хорошо описаны в официальной справке. То есть, чтобы подготовить вам отчёт, берутся не все данные, а какая-то часть, например 30%, и потом пропорционально показатели подгоняются под 100% и отображаются у вас в отчете.

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

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

// эта инструкция — не решение всех ваших проблем, знакомимся с технологией!

Читать дальше →
Рейтинг0
Комментарии2

pyOpenRPA туториал. Управление WEB приложениями

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

Долгожданный туториал по управлению сторонними WEB приложениями с помощью pyOpenRPA. Во 2-й части мы разберем принципы роботизированного воздействия на HTML/JS. А также своими руками сделаем небольшого, но очень показательного робота.


Этот робот будет полезен тем, для кого актуальна тема покупки/продажи недвижимости.


pyOpenRPA туториал. Управление WEB приложениями


Для тех, кто с нами впервые


pyOpenRPA — это open source RPA платформа, которая в полной мере позволяет заменить топовые коммерческие RPA платформы.


Подробнее про то, чем же она полезна, можно почитать здесь.


Навигация по туториалам pyOpenRPA


Туториал сверстан в виде серии статей, в которых будут освещаться ключевые технологии, необходимые для RPA.


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


Перечень статей-туториалов (опубликованные и планируемые):



А теперь перейдем к самому туториалу.

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

Производительность: нюансы против очевидностей

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

Приветствую, это текстовая версия моего доклада на JPoint-2021. Как обычно я сделал упор на случаи из жизни и на повседневные вещи, используемые каждым разработчиком. Под кат приглашаются интересующиеся производительностью и им сочувствующие.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии2

Как я мониторил Avito по SMS

Время на прочтение8 мин
Количество просмотров62K
Как известно, на «Авито» периодически появляются товары очень хорошего качества и при этом очень дешевые. Но появляются они редко, висят там мало и исчезают быстро.

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

Гуглинг выдал несколько таких сервисов, «всего» от 3 руб за смс или от 4 руб в сутки.

В итоге, я решил написать такой сервис самостоятельно, но об этом дальше…
Читать дальше →
Всего голосов 30: ↑25 и ↓5+20
Комментарии67

Использование хеш-значений с обработкой коллизий в качестве суррогатных ключей в справочниках DWH

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

Общеизвестно, что в хранилищах данных для связи таблиц фактов со справочниками используются суррогатные ключи. В большинстве случаев это целочисленный счетчик, который взаимно однозначно определяет бизнес ключ (или бизнес ключ плюс зависимость от времени для медленно меняющихся справочников). С увеличением объемов обрабатываемой информации в случае большой кардинальности справочников использование счетчиков в качестве суррогатных ключей становится проблемой с точки зрения производительности, т.к. при загрузке фактов необходимо определить значение суррогатного ключа по довольно большому справочнику. Для решения этой проблемы многие компании переходят на формирование суррогатных значений на основе хеш-значений бизнес-ключей.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии13