Habr.com

Ленты новостей Хабр
URL-адрес: https://habr.com/ru/all//
Обновлено: 58 мин. 39 сек. назад

Хабрастатистика: анализируем комментарии читателей. Часть 2, ответы на вопросы

3 часа 54 мин. назад
Привет Хабр.

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



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

[Из песочницы] Как я не стал программистом в 35 лет

3 часа 59 мин. назад

С самого начала сентября широким потоком хлынули на Хабр публикации об успешном успехе на тему «Детство программиста», «Как стать программистом после N лет», «Как я ушёл в IT из другой профессии», «Путь в программирование» и так далее. Подобные статьи пишут постоянно, но вот сейчас они пошли как-то особенно кучно. Каждый день пишут то психологи, то студенты, то ещё кто-нибудь.

И в каждой статье звучит знакомая песня: главное, что советуют авторы — «стараться», «не сдаваться», «не бояться» и «идти к своей мечте»; а в комментариях очень часто можно встретить мнение, что ежели ты с самого детства любил компьютеры, то работа с ними в итоге неудивительна. Я хотел бы на примере своей биографии подвести читателей к мысли о том, что начальные условия могут быть важнее, чем приложенные усилия. Вера в справедливый мир способствует психологическому комфорту, но не очень-то корректно отражает реальность. Читать дальше →

Эдуард Медведев, CTO в Tungsten Labs: «Мы доросли до момента, когда технологии могут причинить массовый вред»

чт, 09/19/2019 - 23:51

Если вдруг вы не знали, сегодня можно поднять сервер, запустить и откатить деплой, заскейлить кластер, просто отправив сообщение телеграм-боту.


Эдуард Медведев, CTO в Tungsten Labs (Германия), выступал на третьем дне Слёрма DevOps с темой «Автоматизация инфраструктуры с ChatOps» и рассказывал об интеграции мессенджеров с пайплайнами. А после выступления за чашкой кофе дал интервью.


Я рассчитывал на рассказ об интересной технологии, а в итоге разговор свернул на тему it-этики. О том, как человек превращается в лабораторную крысу, которая каждый день бежит в лабиринте алгоритмов аддикции и контроля внимания, как автоматизируется война, как торговля оружием и наркотиками выходит на новый уровень анонимности и доступности, как айтишники пишут код, разрушающий общество и личность — и прикрываются старым как мир «мы просто выполняли заказ».



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

Нитраты в продуктах: магазины Швейцарии vs магазины России vs дача

чт, 09/19/2019 - 21:43


Безопасность продуктов питания, равно как и продуктовая безопасность – два краеугольных камня спокойной и стабильной жизни любой страны. Если по второму пункту полнота информации скрыта от посторонних глаз и доступна только людям с допусками, то первый пункт – вполне измеримая величина. Например, можно измерять тяжёлые металлы в продуктах питания и воде, можно токсины, а можно просто нитраты (aka NO3-).

Многие полагают – прямо скажем, небезосновательно – что в Швейцарии продукты питания лучшие из лучших в мире. Хотя в 2016 году я опубликовал перевод статьи, в которой вполне открыто обсуждались проблемы этой европейской страны с продовольствием. В 2018 году приобрёл «нитратометр», поддавшись на рекламу, от одной небезызвестной компании и принялся измерять всё подряд. В результате, в 2019 – в международный год таблицы Менделеева – родилась идея написать данную статью, где сравнить швейцарские продукты из разных магазинов с российскими «аналогами», а также добавить к ним продукты дачные и проверить, насколько они экологичны.

В этой статье мы рассмотрим тему измерения и присутствия нитратов в продуктах с точки зрения химика и даже электрохимика (измерение всё-таки электрохимическое).
Что скрывается под личиной нежного авокадо?

Андрей Терехов: «Можно сколько угодно говорить, что американское лучше, но наша машина никогда не ломается»

чт, 09/19/2019 - 21:32


Завкафедрой системного программирования Матмеха СПбГУ, профессор, доктор физмат наук, президент компании «Ланит-Терком» Андрей Николаевич Терехов — о том, как делал первый в СССР транслятор языков Алгол 68 и Ада, о силе обкома КПСС и рождении «Самсона», который никогда не ломался. Читать дальше →

C/C++ из Python (CFFI, pybind11)

чт, 09/19/2019 - 20:41

Продолжаем тему как вызывать C/C++ из Python3. Теперь используем библиотеки cffi, pybind11. Способ через ctypes был рассмотрен в предыдущей статье.

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

[Из песочницы] Как создать модель точнее transfermarkt и не предсказывать или что больше всего влияет на стоимость трансферов

чт, 09/19/2019 - 20:33

Я постараюсь рассказать вам насколько легко получить интересные результаты, просто применив совершенно стандартный подход из тьюториала курса по машинному обучению к не самым используемым в Deep Learning данным. Суть моего поста в том, это может каждый из нас, надо просто посмотреть на тот массив информации, который вы хорошо знаете. Для этого, фактически, гораздо важнее просто хорошо понимать свои данные, чем быть экспертом в новейших структурах нейросетей. То есть, на мой взгляд, мы находимся в той золотой точке развития DL, когда с одной стороны это уже инструмент, которым можно пользоваться без необходимости быть PhD, а с другой — еще полно областей, где его просто особо никто не применял, если посмотреть чуть дальше традиционных тем.


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

Испытания Posit по-взрослому. Спектральный анализ

чт, 09/19/2019 - 19:51
Обсуждения достоинств и недостатков нового революционного формата с плавающей запятой Posit продолжаются. Следующим аргументом в дискуссии стало утверждение, что на самом деле задача Posit — это компактно хранить данные, а вовсе не использоваться в вычислениях; при этом сами вычисления делаются в арифметике Quire с бо́льшей точностью, которая также входит в стандарт Posit.

Ну, хранить так хранить. Что вообще значит — «хранить» числа после вычислений, выполненных с бо́льшей точностью, чем допускает формат хранения? Это значит — округлять, а округлять значит вносить погрешности. Погрешности можно оценивать разными способами — и чтобы не повторяться, сегодня мы используем спектральный анализ с помощью преобразования Фурье. Читать дальше →

Как работает децентрализованный мессенджер на блокчейне

чт, 09/19/2019 - 19:45
В начале 2017 мы начали создавать мессенджер на блокчейне [название и ссылка есть в профиле] с обсуждения преимуществ перед классическими P2P-мессенджерами.

Прошло 2.5 года, и нам удалось подтвердить свой концепт: сейчас доступны приложения мессенджера для iOS, Web PWA, Windows, GNU/Linux, Mac OS и Android.

Сегодня мы расскажем, как устроен мессенджер на блокчейне и как клиентским приложениям работать с его API.

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

[Перевод] Microsoft Edge – Универсальный XSS

чт, 09/19/2019 - 19:40
Перевод статьи подготовлен специально для студентов курса «Реверс-инжиниринг».




Универсальный XSS (uXSS) – это баг браузера, который дает возможность выполнять код на JavaScript на любом сайте.

Кажется, будто XSS есть на всех сайтах и выглядит это очень интересно. Что еще интереснее, так это то, как я нашел эту ошибку. Обычно, если речь заходит о uXSS, то это скорее всего связано с элементом IFRAME или возней с URL, но я никогда не думал, что найду XSS-уязвимость, используя функцию print().
Читать дальше →

«Обезличенные данные» или что планируется в 152-ФЗ

чт, 09/19/2019 - 19:38
Краткая выдержка из законопроекта о внесении изменений в Федеральный закон от 27.07.2006 N 152-ФЗ «О персональных данных» (152-ФЗ). С данными правками 152-ФЗ «позволит торговать» Big Data, усилит права оператора персональных данных. Возможно читателям будет интересно обратить внимание на ключевые моменты. Для детального разбора конечно же рекомендуется читать первоисточник.
Читать дальше →

Законопроект о создании единой базы с данными граждан приняли в ГосДуме в первом чтении

чт, 09/19/2019 - 19:18
Собственно, суть новости в заголовке, а подробности описаны тут и тут.

А от себя хочу прокомментировать эту новость.

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

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

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

Метод бисекционного деления в тестировании

чт, 09/19/2019 - 19:09
Содержание

Иногда баги сами нас находят. Вот мы впихали большую строку данных — и система подвисла. Это она из-за 1 млн символов упала? Или ей какой-то конкретный не понравился?

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

Если найти минимальные данные для воспроизведения, то:

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

Как найти минимальные данные для воспроизведения бага? Если есть какие-то подсказки в логах, применяем их. Если подсказок нет, то самый оптимальный метод — метод бисекционного деления.

Описание метода
Метод применяется для поиска точного места падения:

  1. Взять падающую пачку данных.
  2. Разбить пополам.
  3. Проверить половину 1

    • Если упало — значит, проблема там. Работаем дальше с ней.
    • Если не упало → проверяем половину 2.
  4. Повторяем шаги 1-3 до тех пор, пока не останется одно падающее значение.



Метод позволяет довольно быстро локализовать проблему, особенно если это делается программно. Разработчики встраивают такие механизмы в обработку данных. А если не встраивают, то сами и страдают потом, когда к ним приходит тестировщик и говорит «Вот на этом файле падает, а точную причину я не смог найти».
Читать дальше →

Концепты: упрощаем реализацию классов STD Utility

чт, 09/19/2019 - 19:00


Появляющиеся в C++20 концепты — давно и широко обсуждаемая тема. Несмотря на избыток материала, накопившегося за годы (в т.ч. выступления экспертов мирового уровня), среди прикладных программистов (не засыпающих ежедневно в обнимку со стандартом) все еще остается неразбериха, что же такое С++20-концепты и так ли они нам нужны, если есть проверенный годами enable_if. Частично виной тому то, как концепты эволюционировали за ~15 лет (Concepts Full + Concept Map -> Concepts Lite), а частично то, что концепты получились непохожими на аналогичные средства в других языках (Java/С# generic bounds, Rust traits, ...).


Под катом — видео и расшифровка доклада Андрея Давыдова из команды ReSharper C++ с конференции C++ Russia 2019. Андрей сделал краткий обзор concept-related нововведений C++20, после чего рассмотрел реализацию некоторых классов и функций STL, сравнивая C++17 и С++20-решения. Далее повествование — от его лица.

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

[Из песочницы] Пользовательские параметры в Google Analytics, которые не раз нас спасали

чт, 09/19/2019 - 18:39
При настройке аналитики через Google Analytics (GA) нередко без внимания остаются Пользовательские параметры или CD (Custom Dimensions). Это происходит из-за сложности с пониманием их области применения: неясно, как именно CD могут помочь в сборе и анализе данных и каким образом настраиваются. В этой статье рассказываем об основных CD, которые мы используем на многих проектах, и процессе настройки.

Что такое пользовательские параметры
Для построения отчета в Google Analytics доступно более 200 различных параметров и метрик, таких как «источник», «город», «браузер», «операционная система» и многие другие. Но стандартных параметров не всегда достаточно для анализа, поэтому Google дал пользователям возможность создавать собственные. Значение CD может быть передано с любым хитом пользователя. Например, с помощью пользовательских параметров можно провести анализ эффективности сайта в разрезе адаптивов.

Всего существует 4 области действия CD:

  • Хит(Hit)
  • Сеанс
  • Пользователь
  • Товар

Например, у нас есть CD, в котором хранится параметр авторизации пользователя (0 — не авторизован, 1 — авторизован). В начале сессии все пользователи не авторизованы. Посмотрим, что происходит при изменении данного параметра после входа, в зависимости от области действия CD.



  • для CD с областью действия Хит, единица присвоилась параметру авторизации в том хите, в котором произошла авторизация;
  • для CD с областью действия Сеанс, параметр авторизации станет равным 1 для всех хитов сеанса, в котором произошло событие (затирая старые значения CD в этом сеансе);
  • для CD с областью действия Пользователь, параметр авторизации станет равным 1 для всех сеансов пользователя, начиная с того, в котором был совершен вход.
Читать дальше →

Angulareact

чт, 09/19/2019 - 17:52

У меня есть проблема. Приложение написано на Angular, а библиотека компонентов на React. Делать клон библиотеки слишком дорого. Значит, нужно использовать React-компоненты в Angular-приложении с минимальными затратами. Разбираемся как это делать.

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

Новый 2ГИС: сплошная карта России и поиск товаров в офлайн-магазинах

чт, 09/19/2019 - 17:49


19 сентября в Новосибирске мы показали новую версию 2ГИС — с безграничной картой России, поиском товаров и другими фичами. Коротко пересказываем содержание презентации.
Читать дальше →

Cron в Linux: история, использование и устройство

чт, 09/19/2019 - 17:45

Классик писал, что счастливые часов не наблюдают. В те дикие времена ещё не было ни программистов, ни Unix, но в наши дни программисты знают твёрдо: вместо них за временем проследит cron.


Утилиты командной строки для меня одновременно слабость и рутина. sed, awk, wc, cut и другие старые программы запускаются скриптами на наших серверах ежедневно. Многие из них оформлены в виде задач для cron, планировщика родом из 70-х.


Я долго пользовался cron поверхностно, не вникая в детали, но однажды, столкнувшись с ошибкой при запуске скрипта, решил разобраться основательно. Так появилась эта статья, при написании которой я ознакомился с POSIX crontab, основными вариантами cron в популярных дистрибутивах Linux и устройством некоторых из них.


Используете Linux и запускаете задачи в cron? Вам интересна архитектура системных приложений в Unix? Тогда нам по пути!

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

Книга «Дизайн-мышление. От инсайта к новым продуктам и рынкам»

чт, 09/19/2019 - 17:40
Привет, Хаброжители! В последние годы произошел всплеск интереса к дизайн-мышлению. Мы живем в эпоху, когда банки отказываются от традиционных банковских операций и переходят на цифровые деньги. На наших глазах рождаются стартапы, которые создают новые рынки, используя дизайн-экосистемы. Современные компании осуществляют цифровую трансформацию, чтобы по максимуму использовать современные методы обработки данных и быть на шаг впереди конкурентов. Книгу-героиню нашего сегодняшнего поста следует рассматривать как настоящую рабочую тетрадь. Это не руководство в привычном смысле, где описываются процессы.
Книга скорее дает вдохновляющий импульс для внедрения чего-то нового и реализации полного потенциала дизайн-мышления. Эта книга о том, как действовать, тестировать и размышлять. Авторы помогут вам: применить различные инструменты и методы дизайн-мышления в конкретных ситуациях; создать эффективную команду; ориентировать продукт на пользователя; ввести дизайн-мышление в организациях; научиться создавать цифровую продукцию; объединить дизайн-мышление с Big Data. В выбранном нами отрывке пойдёт речь об эффективном тестировании прототипа:
Читать дальше →

Как наладить поиск адреса по координатам (и где взять нужный справочник)

чт, 09/19/2019 - 17:29


Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе.

Солидный продукт с той же функциональностью сделал «Яндекс» — он называется «Геокодер». Но сервис «Яндекса» бесплатен только для открытых некоммерческих проектов. Стандартный же тариф — от 120 000 ₽ в год — подходит не всем.

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

  • справочник адресов с координатами, собранный и проверенный собственноручно;
  • готовое и отлаженное API.

В статье расскажу, как мы создали «Адрес по координатам»: наладили поиск, собрали справочник и упаковали в готовый метод.
Читать дальше →

Популярные материалы


Сейчас на сайте

Сейчас на сайте 0 пользователей и 0 гостей.