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

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

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

Беспроводные технологии передачи звука на базе Bluetooth: что же лучше?

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

С развитием технологий так привычные всем «ламповые» аналоговые наушники уходят в историю – их всё больше вытесняют беспроводные собратья на базе Bluetooth.

Современные смартфоны лишаются привычного разъёма в угоду влаго- и пылезащищённости.

Разработчики выпускают всё новые версии протокола Bluetooth и всё новые версии кодеков, обещая «быстрее, выше, сильнее» — меньшие задержки в воспроизведении и лучшее качество.

Настолько ли всё хорошо? Давайте посмотрим.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии76

Профилирование кода с LLVM

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

Проклятие недетерминизма



Моя первая попытка написать проход LLVM — люблю эти сегфолты

Недавно я столкнулся с интересной задачей — мне понадобился детерминированный и кросплатформенный способ определения времени выполнения кода С++. Под словом «детерминированный» я подразумеваю, что один и тот же код будет выполняться за одно и то же количество единиц времени. Под кроссплатформенностью я понимаю, что один и тот же код под Windows и под Ubuntu будет выполняться за одно и то же количество единиц времени.

Естественно, измерение времени на CPU не удовлетворяет этим условиям. Машинный код меняется в зависимости от архитектуры и операционной системы, и один и тот же код займёт различное количество времени при выполнении. Даже на одной и той же машине, такие факторы, как промахи кэша, будут играть большую роль — достаточную для того, чтобы исказить результаты измерения времени выполнения одного и того же кода. Мне нужно было что-либо более умное…
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии20

Знакомство с тестированием в Python. Ч.1

Время на прочтение14 мин
Количество просмотров99K
Всем доброго!

От нашего стола к вашему... То есть от нашего курса «Разработчик Python», несмотря на стремительно приближающий Новый год, мы подготовили вам интересный перевод о различных методах тестирования в Python.

Это руководство для тех, кто уже написал классное приложение на Python, но еще не писал для
них тесты.

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

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


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

По вашему запросу найдено: реализация нечеткого поиска

Время на прочтение8 мин
Количество просмотров11K
Все мы совершаем ошибки: в данном случае речь идет о поисковых запросах. Количество сайтов для продажи товаров и услуг растет наряду с потребностями пользователей, однако не всегда они могут найти то, что ищут – только потому, что неправильно вводят название необходимого товара. Решение данной проблемы достигается путем реализации нечеткого поиска, то есть использования алгоритма поиска наиболее близких значений с учетом возможных ошибок или опечаток пользователя. Область применения такого поиска достаточно широка – нам же удалось поработать над поиском для крупного интернет-магазина в фудритейл-сегменте.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Шесть бесплатных автоматизированных платформ для изучения программирования

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

Привет, сообщество! Мы в Хекслете составили список из пяти бесплатных автоматизированных онлайн-платформ для новичков.


На русском:


HTML Academy
«Академия» учит верстать сайты. Основной контент в формате подписки (390 рублей в месяц) и интенсивов (от 12500 рублей), но есть несколько бесплатных автоматизированных курсов по основам HTML, CSS и JavaScript.


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


Code Basics
Это новый бесплатный сервис от Хекслета. Его основная идея — через решение простых заданий прямо в браузере погружать новичков в основы программирования. Сейчас есть уроки по PHP, JavaScript и Python, ближайшее время появятся — новые. Платформа подойдет лучше всего для изучения основ синтаксиса, и меньше — для прокачки алгоритмов.


Обучение построено вокруг чередования небольших порций теории (3-4 абзаца) и закрепления практики в тренажере. У каждого практического задания есть решение учителя, которое можно сравнить со своим после успешного прохождения и раздел для обсуждения задания.

Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии52

Новый 2ГИС — подключайтесь к публичному тестированию

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

Мы сделали новую онлайн-версию 2ГИС и начинаем её публичное тестирование. Если коротко — переписали карту с растра на вектор, ушли от отдельных городов к бесшовной карте мира и переработали интерфейс. Новая версия доступна на beta.2gis.ru.
Подробности
Всего голосов 156: ↑154 и ↓2+152
Комментарии254

.Net Бинарная сериализация без ссылки на сборку с исходным типом или как договориться с BinaryFormatter

Время на прочтение7 мин
Количество просмотров7.9K
В данной статье я поделюсь опытом бинарной сериализации типов между сборками, без ссылок друг на друга. Как оказалось, встречаются реальные и «законные» случаи, когда нужно десериализовать данные не имея ссылки на сборку где они объявлены. В статье я расскажу о сценарии в котором это потребовалось, опишу способ решения, а также расскажу о промежуточных ошибках допущенных в процессе поиска

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


Сотрудничаем с большой корпорацией работающей в области геологии. Исторически сложилось, так у что корпорации написано очень разного ПО для работы с данными поступающего с разных видов оборудования + анализа данных + прогнозирования. Увы, все это ПО далеко не всегда «дружит» между собой, а чаще совсем не дружит. Чтобы как-то консолидировать информацию, сейчас создается web-портал, куда разные программы выгружают свои данные в виде xml. А портал пытается создать плюс-минус-полное представление. Важный нюанс: так как разработчики портала не сильны в предметных областях каждого из приложений, то каждая команда предоставляла модуль- парсер/конвертер данных из своего xml в структуры данных портала.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии19

Хороший код до Google не доведет

Время на прочтение5 мин
Количество просмотров25K
Долгое время работая в разных сферах ИТ, мы с исследовательской командой наблюдали все возможные проблемы становления разработчиков и все причины-следствия их дефицита. Нас интересовало: почему программист развивается в senior-специалиста так долго или вовсе им не становится? Откуда неоправданные ожидания с обеих сторон? И главное — что делать разработчику на каждом уровне, чтобы войти в привилегированную касту senior-ов, архитекторов, тимлидов и руководителей?

Мы провели обширное исследование среди программистов и их руководителей. Собрали требования к senior-разработчикам топовых компаний, возможности и пути к развитию до этого уровня, сгенерировали всевозможные инсайты и лайфхаки и трансформировали их в данную статью. Об всем этом и пойдет дальше речь.
image

Senior, who the f… is Alice Senior?


Анализ описания вакансий на hh и требований, которыми поделились руководители в очных беседах, показал — единого подхода к определению уровня senior нет. В одной компании это тот, кто способен сам спроектировать сложный модуль, в другой — подключиться к доработке отдельных решений, в третьей — тот, кто просто круче остальных.
Читать дальше →
Всего голосов 32: ↑17 и ↓15+2
Комментарии218

ShadowCloud — универсальный облачный клиент

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

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


Как-то так он выглядит:


image


Что умеет


  • Прямая загрузка (без использования локального диска) в Google Drive, Яндекс Диск (WebDAV), Облако Mail.Ru, Dropbox
  • Полное шифрование по умолчанию, большой выбор алгоритмов и настроек
  • Защищённая паролем база данных
  • Чексуммы и дедупликация
  • Убирает ограничение на размер файла
  • Репликация или разбиение файлов по разным хранилищам
  • Стриминг медиа без ограничений
  • Создаёт превью и извлекает метаданные и текст документов
  • Версионирование файлов и всей структуры директорий
  • Markdown заметки, подсветка кода
  • Быстрое сохранение веб-страниц со встроенными ресурсами
  • Кэширование файлов в памяти
  • Использование в виде локального диска с помощью FUSE (требуется winfsp)
  • Открытый исходный код, почти каждый аспект настраивается через shadowcloud.conf
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии26

Получение ссылок на аудио без VKApi

Время на прочтение3 мин
Количество просмотров43K
Данная страница будет полезной для тех, кто решил взять заказ на парсер аудио-треков VK и резко понял, что ничего не понял.

В чем проблема


Знакомо?

https://m.vk.com/mp3/audio_api_unavailable.mp3?extra=AeL2rMfFyZzlD3HkyvfnvNvLx1KOqw5UDfuXCOTvttm4ts1OBJnYELvHyxvODI9fnM9YztD5A3iOyI14sxv2mNiXt3iTzdLInduXzvG9C2uVr3b5mezinfj2lJbpDhGYC25rDxbwsOPQmg1eu2Pbyxr3ntPowNLhDMrrDs8XnKu2sOuOyO8XzMf1otDmBtL6BNvllNjZx3aZuLHpq3aOBvvhzenJnZKTzKnMuwfKBI4TquffrtzKv2nymMyVDu1LzJnuwMLxwMm/BeTcserWlun3ExLVBG#AqSZntu

Если да — то вы пытались парсить мобильную версию сайта и успешно доставали ссылки. Неверные ссылки. Ссылки на 25-секундный голос, сообщающий что все идет не по плану.
Читать дальше →
Всего голосов 51: ↑49 и ↓2+47
Комментарии41

Как сделать автоматическое обновление клиента онлайн-игры

Время на прочтение5 мин
Количество просмотров12K
В этой статье я расскажу о том, как я сделал систему автообновления клиентской онлайн-игры. Ссылка на исходники (Delphi) в конце статьи. На самом деле такую фичу я реализовал в двух своих играх, и если первый блин вышел немного комом (в игре Spectromancer), то вторая реализация получилась весьма удобной и эффективной. Это моя первая статья на Хабре, так что сильно не бейте, а лучше укажите на недостатки в комментариях :)

Алгоритм обновления игры


  • Проверка версии на необходимость обновления.
  • Скачивание списка файлов актуальной версии.
  • Скачивание новых или изменённых файлов во временную папку.
  • Установка обновления — приведение файлов установленного клиента в соответствие со списком.
  • Запуск обновлённого клиента.
Читать дальше →
Всего голосов 18: ↑17 и ↓1+16
Комментарии30

Бесплатный курс «Cisco ASA Administrator»

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


Нехватка IT-специалистов. Уверен, что многие системные интеграторы, да и обычные компании, сталкиваются с этой проблемой. В данном случае я имею ввиду «сетевиков» и «безопасников». Вроде и ВУЗы уже несколько лет увеличивают набор студентов на профильные специальности, а дефицит не уменьшается и даже растет. Да и скажем прямо, качество специалистов сразу после университета оставляет желать лучшего (конечно есть и исключения). И это вовсе не вина самих студентов, просто наша текущая система образования не дает практические навыки в полной мере. Именно поэтому мы уже несколько лет подряд берем студентов 3-х, 4-х курсов к себе на стажировку. И практически каждый год оставляем себе одного-двух талантливых инженеров. Если интересен формат стажировки, то можно ознакомиться с ним здесь, а сейчас речь не об этом.

Обычно, в качестве первого практического задания мы даем студентам Курс молодого бойца, который неожиданно для меня, стал весьма популярным в рунете. После этого мы переходили к более профильным вещам (мы все же занимаемся security): Check Point, Fortinet, Splunk, Kali-Linux. Однако, вскоре стало понятно, что это слишком резкий переход — от обычных сетей, сразу к таким сложным продуктам информационной безопасности. Скажем прямо, тот же Check Point, не самый лучший вариант для ознакомления с Межсетевыми экранами. Нужно было начинать с чего-нибудь попроще. Именно поэтому мы начали создавать курс “Cisco ASA Administrator”. Мы сразу решили, что сделаем этот курс открытым и запустим на канале NetSkills, просто потому что там больше подписчиков, а значит его увидят большее кол-во людей. Почему именно этот курс и о чём он, мы расскажем ниже.
Всего голосов 20: ↑20 и ↓0+20
Комментарии7

Курс «Разработка на Java» от Mail.Ru Group на канале Технострим

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


Этой весной мы выложили на канале Технострим запись курса по Java. Уже несколько семестров подряд он читается в рамках образовательного проекта Техносфера, реализуемого компанией Mail.Ru Group совместно с МГУ им. М. В. Ломоносова. Курс включает все темы, необходимые начинающему разработчику в мире Java. Авторы не углубляются в детали синтаксиса, а сразу берутся за практические задачи: разработку игры с консольным интерфейсом и функционального чата. В конце курса разбираются частые вопросы из собеседований на позиции junior и middle Java-developer.

Записи лекций и материалы курса бесплатны и доступны всем желающим.

Большинство домашних заданий можно выполнить и проверить в репозитории курса.
Читать дальше →
Всего голосов 25: ↑24 и ↓1+23
Комментарии0

Анатомия рекомендательных систем. Часть первая

Время на прочтение14 мин
Количество просмотров78K
Я работаю дата-саентистом в компании CleverDATA. Мы занимаемся проектами в области машинного обучения, и один из наиболее частых запросов на разработку основанных на машинном обучении маркетинговых решений — это разработка рекомендательных моделей.

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

Источник
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии15

Deep Learning: Распознавание сцен и достопримечательностей на изображениях

Время на прочтение11 мин
Количество просмотров8.6K
Время пополнять копилку хороших русскоязычных докладов по Machine Learning! Копилка сама не пополнится!

В этот раз мы познакомимся с увлекательным рассказом Андрея Боярова про распознавание сцен. Андрей — программист-исследователь, занимающийся машинным зрением в компании Mail.Ru Group.

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

Это 30 минут видео с конференции Smart Data 2017. Видео удобно смотреть дома и в дороге. Для тех же, кто не готов столько сидеть у экрана, или кому удобней воспринимать информацию в текстовом виде, мы прикладываем полную текстовую расшифровку, оформленную в виде хабростатьи.


Перейти к текстовой версии
Всего голосов 38: ↑34 и ↓4+30
Комментарии2

Добавляем шифрование и push в обычный SIP

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


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

Одна из главных проблем — если вы пользуетесь каким-либо SIP провайдером ( или собственной IP АТС ) на смартфоне, то с уверенностью в 99% можно сказать что ваши данные незашифрованы.

Наверное многие делали простую вещь — снифили трафик от SIP устройств, чтобы найти причину какой-либо неработоспособности VOIP соединения.

На практике это означает что и все ваши переговоры по SIP могут быть также легко заснифены, восстановлены и прослушаны на стороне мобильного клиента и сделать это довольно легко.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии141

Ричард Хэмминг: Глава 10. Теория кодирования — I

Время на прочтение11 мин
Количество просмотров15K
«Цель этого курса — подготовить вас к вашему техническому будущему.»

imageПривет, Хабр. Помните офигенную статью «Вы и ваша работа» (+219, 2442 в закладки, 394k прочтений)?

Так вот у Хэмминга (да, да, самоконтролирующиеся и самокорректирующиеся коды Хэмминга) есть целая книга, написанная по мотивам его лекций. Мы ее переводим, ведь мужик дело говорит.

Это книга не просто про ИТ, это книга про стиль мышления невероятно крутых людей. «Это не просто заряд положительного мышления; в ней описаны условия, которые увеличивают шансы сделать великую работу.»

Мы уже перевели 28 (из 30) глав. И ведем работу над изданием «в бумаге».

Теория кодирования — I


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

Для упрощения проблемы представления информации рассмотрим проблему передачи информации от точки к точке. Этот вопрос связан с вопросом сохранения информация. Проблемы передачи информации во времени и в пространстве идентичны. На рисунке 10.1 представлена стандартная модель передачи информации.

image

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

Пишем свой протокол поверх UDP

Время на прочтение24 мин
Количество просмотров42K
Первые прямые трансляции с места событий появились в России почти 70 лет назад и вели их из передвижной телевизионной станции (ПТС), которая внешне походила на «троллейбус» и позволяла вести эфиры не из студии. А всего лишь три года назад Periscope позволил вместо «троллейбуса» использовать мобильный телефон.

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


Еще через полгода, летом 2016, Одноклассники запустили свое мобильное приложение OK Live для стриминга, в котором постарались решить эти проблемы.

Александр Тоболь отвечает за техническую часть видео в Одноклассниках и на Highload++ 2017 рассказал про то, как писать свой UDP протокол, и зачем это может потребоваться.

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


Говорят, что надо всегда начинать с архитектуры и ТЗ — якобы без этого нельзя! Так и сделаем.
Всего голосов 55: ↑53 и ↓2+51
Комментарии44

Выпуск#20: ITренировка — актуальные вопросы и задачи от ведущих компаний

Время на прочтение4 мин
Количество просмотров8.3K
Продолжаем публиковать интересные задачи и вопросы с собеседований в различные IT-компании мира.

КДПВ
На этот раз в подборку попали вопросы для будущих инженеров-программистов в Symantec. В преддверии майский праздников, задачи выбраны не самые сложные, но требующие некоторого размышления. Просим также писать в комментариях интересные вопросы и задачи, которые встречались Вам на собеседованиях.
Читать дальше →
Всего голосов 8: ↑7 и ↓1+6
Комментарии26

Теговые файловые менеджеры. Сравнительный обзор

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

Где же была эта чертова картинка?! Я сто раз натыкался на нее, пока она была не нужна!

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

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

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

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

Какие удобства предлагают нам наиболее известные файловые менеджеры с поддержкой тегов?
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии94

Информация

В рейтинге
1 845-й
Зарегистрирован
Активность