Search
Write a publication
Pull to refresh
2
0
Send message

Яндекс.Маршрутизация: как мы окунулись в логистику и решили поменять будущее

Reading time16 min
Views38K
Этот текст возник благодаря появившейся в Яндексе забаве random coffee — система назначает встречу двум случайным сотрудникам, если они указали, что хотят участвовать в таких встречах. Мои собеседники находили рассказ о том, чем я занимаюсь, интересным, и вот у меня дошли руки предложить его более широкой аудитории.

До Хабра я выступил с гостевой лекцией на факультете компьютерных наук Вышки и Яндекса — рассказал студентам ФКН ровно то же самое, о чем сейчас расскажу вам (в конце поста есть видео). А именно — как путешествия с водителями, развозящими заказы из интернет-магазинов, убедили нашу команду делать новый сервис про логистику. Надеюсь, у меня получится передать вам мои ощущения от этой сферы: я поездил в «Газели» и «Ларгусе», послушал жалобы сотрудников на придирчивую «тетку из Ногинска» и стал свидетелем того, как заказ из трех самокатов для трех детей превратился в драму. А в конце поговорим про технологии.
Читать дальше →

Maltego Часть 5. Твое лицо тебя сдало

Reading time5 min
Views12K
Здравствуйте, дорогие друзья. Сегодня поговорим о более тяжелой артиллерии в рамках OSINT, а именно, о применении технологии распознавания лиц от Social Links для Maltego.


Если не читали предыдущие статьи цикла о Maltego, то сейчас — самое время:


Во время тестирования функционала по поиску информации в различных соцсетях с применением Maltego (см. Часть 4) я удивился тому, что всего лишь по ФИО и фото из аккаунта в Инстаграм Maltego с ходу нашла мой аккаунт в LinkedIN.

Вот тут-то, я полагаю, и сработал механизм Face Recognition от Social Links. Мимо такой темы нельзя просто так взять и пройти! Нужно убедиться, насколько функционал точен и можно ли его применять полноценно в OSINT, или мой случай — единичный, а выдача будет забита похожими людьми.
Читать дальше →

Большая подборка материалов для изучения Google Tag Manager

Level of difficultyEasy
Reading time4 min
Views31K
Материалы статьи провалидированы и обновлены автором 26.05.2023


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

Меня зовут Артём Сайгин, я веду телеграм-канал «Growth Lab», в котором делюсь опытом роста IT-продуктов.

Cделал для вас большую подборку материалов для самостоятельного изучения Google Tag Manager. В статье вы найдете всю необходимую информацию по работе GTM — от самых базовых вещей (что такое GTM, какие бывают типы триггеров) до работы с dataLayer и CSS-селекторами.

Добавляйте в закладки, чтобы не потерять.

image

Если я не добавил стоящий материал, свяжитесь со мной, добавлю.

Приступим!
Читать дальше →

Как работает конфигурация в .NET Core

Reading time9 min
Views73K

Давайте отложим разговоры о DDD и рефлексии на время. Предлагаю поговорить о простом, об организации настроек приложения.


После того как мы с коллегами решили перейти на .NET Core, возник вопрос, как организовать файлы конфигурации, как выполнять трансформации и пр. в новой среде. Во многих примерах встречается следующий код, и многие его успешно используют.


public IConfiguration Configuration { get; set; }
public IHostingEnvironment Environment { get; set; }

public Startup(IConfiguration configuration, IHostingEnvironment environment)
{
   Environment = environment;
   Configuration = new ConfigurationBuilder()
            .AddJsonFile("appsettings.json")
            .AddJsonFile($"appsettings.{Environment.EnvironmentName}.json")
            .Build();
}

Но давайте разберемся, как работает конфигурация, и в каких случаях использовать данный подход, а в каких довериться разработчикам .NET Core. Прошу под кат.

Читать дальше →

VS Code — сниппеты Puppeteer

Reading time2 min
Views3.8K
Это расширение Visual Studio Code добавляет предопределенные полезные фрагменты кода для Puppeteer. Проверьте API для получения дополнительной информации о доступных возможностях.

Читать дальше →

Как работает Headless Chrome

Reading time19 min
Views118K
Уже из названия понятно, что headless-браузер — это нечто без головы. В контексте фронтенда — это незаменимый инструмент разработчика, с помощью которого можно тестировать код, проверять качество и соответствие верстке. Виталий Слободин на Frontend Conf решил, что необходимо познакомиться с устройством этого инструмента поближе.

Под катом компоненты и особенности работы Headless Chrome, интересные сценарии использования Headless Chrome. Вторая часть про Puppeteer — удобную Node.js-библиотеку для управления Headless-режимом в Google Chrome и Chromium.


О спикере: Виталий Слободин — бывший разработчик PhantomJS — тот, кто закрыл его и похоронил. Иногда помогает Константину Токареву ( annulen) в «воскрешенной» версии QtWebKit — том самом QtWebKit, где есть поддержка ES6, Flexbox и многие других современных стандартов.

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

9 советов для Windows Terminal от Скотта Хансельмана

Reading time2 min
Views14K
Привет, Хабр! Возможно вы слышали, что совсем скоро выходит новый Windows Terminal. Мы уже писали об этом здесь. Наш коллега Скотт Хансельман подготовил несколько советов по тому, как работать с новым терминалом. Присоединяйтесь!

image
Читать дальше →

Когда фильтр Блума не подходит

Reading time9 min
Views16K


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

Как я обошёл запрет на Messages API через документацию Вконтакте

Reading time5 min
Views10K
Привет всему Хабро-сообществу. Для меня эта первая статья и пишется она под определённой эйфорией, так что прошу не судить эту статью слишком строго за литературную часть. Но что же, меньше слов и переходим к делу.

С чего всё началось


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

Но однажды пришло «оно», и с того момента выполнение таких небольших просьб перестало быть тривиальной задачей:

image

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

Нормализация текста в задачах распознавания речи

Reading time4 min
Views12K

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


Другими словами, текст нужно провести через несколько этапов:


  • Замена числа прописью: 1984 год -> тысяча девятьсот восемьдесят четвёртый год;
  • Расшифровка сокращений: 2 мин. ненависти -> две минуты ненависти;
  • Транскрипция латиницы: Orwell -> Оруэлл и т.д.

Normalization


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


Как вишенка на торте, мы решили выложить наш нормализатор на базе seq2seq в открытый доступ: ссылка на github. Он максимально прост в использовании и вызывается одним методом:


norm = Normalizer()
result = norm.norm_text('С 9 до 11 котики кушали whiskas')

>>> 'С девяти до одиннадцати котики кушали уискас'
Читать дальше →

GitHub: новая Open Source библиотека для OSINT

Reading time2 min
Views11K

В мире информационной безопасности часто задаются вопросом об исследовании открытых источников на получение личной информации — будь то защищающая сторона (например, для контроля периметра, выявления открытых уязвимостей) или пентестеры (поиск точки входа, аудит периметра и т. д.). Рассмотрим один из таких источников — hunter.io, — работу с которым мы оптимизировали, написав под него новую библиотеку. Подробности и ссылка на GitHub под катом.
Читать дальше →

Конвертация rtf в xml на С#

Reading time4 min
Views4.5K

В продолжении серии постов о конвертации текстовых файлов в xml с использованием С# предлагаю перейти к конвертации файлов формата rtf.


Казалось бы, данный формат довольно древний, причем весьма распространенный и, если для него и нет какой-то библиотеки для преобразования всех данных в формат xml путем вызова одного метода, то уж какое-то решение от Microsoft точно должно быть, хотя бы аналогичное OpenXML. Однако, если бы было оно так, то данная статья не была бы написана.

Читать дальше →

Что такое Windows PowerShell и с чем его едят? Часть 2: введение в язык программирования

Reading time11 min
Views78K
Исторически утилиты командной строки в Unix-системах развиты лучше чем в Windows, однако с появлением нового решения ситуация изменилась.

Читать дальше →

Конвертация текстовых документов в xml на С#

Reading time12 min
Views17K

Недавно мне пришлось столкнуться с необходимостью достать текст из офисных документов (docx, xlsx, rtf, doc, xls, odt и ods). Задача осложнялась требованием представить текст в формате xml без мусора с максимально удобной для дальнейшего парсинга структурой.


Решение использовать Interop сразу отпало по причине его громоздкости, во многом избыточности, а также необходимости устанавливать на сервер MS Office. В результате, решение было найдено и воплощено на внутреннем проекте. Однако, поиск оказался настолько сложен и не тривиален в силу отсутствия каких-либо общедоступных мануалов, что мной было принято решение написать в свободное от работы время библиотеку, которая решала бы указанную задачу, а также создать написать что-то вроде инструкции, чтобы разработчики прочитав ее смогли, хотя бы поверхностно, разобраться в вопросе.


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


  1. Для платформы .Net не существует какого-либо готового решения для работы со всеми перечисленными форматами, что заставит нас местами кастылизовывать наш солюшн.
  2. Не пытайтесь в сети найти хороший мануал по работе с Microsoft OpenXML: чтобы разобраться с этой библиотекой придется изрядно покрасноглазить, покурить StackOverflow и поиграться с отладчиком.
  3. Да, мне все таки, удалось приручить дракона.

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


Работа с xlsx и docx

Читать дальше →

Установка Firebird 3 на современные версии Linux: CentOS8 и Ubuntu 19

Reading time8 min
Views29K
В этой статье мы опишем минимальный набор действий, необходимых для оптимальной установки СУБД Firebird версии 3.0 на новые дистрибутивы Linux. Для примеров выбраны CentOS 8 и Ubuntu 19.

Для «доставки» дистрибутива Firebird на целевую систему, в этом руководстве, выбран вариант загрузки tar.gz архива по ссылке с официального сайта проекта (firebirdsql.org).

Для самых нетерпеливых — сразу в бой:
Читать дальше →

RabbitMQ. Часть 3. Разбираемся с Queues и Bindings

Reading time8 min
Views153K

Queue (очередь) — структура данных на диске или в оперативной памяти, которая хранит ссылки на сообщения и отдает их копии consumers (потребителям). Queue представляет собой Erlang-процесс с состоянием (где могут кэшироваться и сами сообщения). 1 тысяча очередей может занимать порядка 80Mb.


Binding (привязка) — правило, которое сообщает обменнику в какую из очередей должны попадать сообщения.

Читать дальше →

Исчерпывающий путеводитель по тегу iframe

Reading time11 min
Views276K
iframe tag

Элемент iframe (сокращение от встроенного фрейма), вероятно, является одним из старейших тегов HTML и был представлен ещё в далеком 1997 году в HTML 4.01 Microsoft Internet Explorer.


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


Чтобы помочь вам сформировать собственное мнение и отточить свои навыки разработчика, мы расскажем обо всем, что вам нужно знать об этом противоречивом теге.


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


Читать дальше →

Хакатон в Симферополе, Яндекс.Диалоги и законы чат-бото-техники

Reading time6 min
Views2K

1 февраля в Симферополе прошёл хакатон по разработке навыков для Алисы. Местные фронтенд-разработчики взялись его организовать, а Яндекс предоставил место. Несмотря на то, что участники создавали голосовые интерфейсы впервые, за день было создано больше десятка работающих прототипов, и некоторые из них даже опубликовались.


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



На фотографии пара участников хакатона и затылок Сегаловича

Читать дальше →

Прозрачная аутентификация в ASP.Net Core на Linux

Reading time6 min
Views21K

Аутентификация в ASP.Net (Core) — тема довольно избитая, казалось бы, о чем тут еще можно писать. Но по какой-то причине за бортом остается небольшой кусочек — сквозная доменная аутентификация (ntlm, kerberos). Да, когда мы свое приложение хостим на IIS, все понятно — он за нас делает всю работу, а мы просто получаем пользователя из контекста. А что делать, если приложение написано под .Net Core, хостится на Linux машине за Nginx, а заказчик при этом предъявляет требования к прозрачной аутентификации для доменных пользователей? Очевидно, что IIS нам тут сильно не поможет. Ниже я расскажу, как можно данную задачу решить c минимальными трудозатратами. Написанное актуально для .Net Core версии 2.0-2.2. Скорее всего, будет работать на версии 3 и с той же вероятностью не будет работать на версии 1. Делаю оговорку на версионность, поскольку .Net Core довольно активно развивается, и частенько методы, сервисы, зависимости могут менять имена, местоположение, сигнатуры или вообще пропадать.


Что такое Kerberos, и как это работает, кратко можно прочитать в Wiki. В нашей задаче Kerberos в паре с keytab файлом дает возможность приложению на Linux сервере (на Windows, само собой, тоже), который не требуется включать в домен, пропускать сквозной аутентификацией пользователей на windows-клиентах.

Читать дальше →

Используем PowerShell для работы с REST API

Reading time8 min
Views18K
Многие из вас наверняка работают с разнообразными инфраструктурами, используя REST API. А поскольку все более широкие слои населения для автоматизации рутинных задач осваивают PowerShell, то почему бы и не начать применять его для работы с REST API?

Сегодня вашему вниманию предлагается перевод статьи Адама Бертрама, большого поклонника автоматизации, автора сайта adamtheautomator.com, в которой он показывает на примере, как это можно сделать.

Итак, добро пожаловать под кат.


Читать дальше →

Information

Rating
Does not participate
Registered
Activity