Как стать автором
Обновить
0
Игорь Хорт @coolgoodigorread⁠-⁠only

Веб

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

Кратко об указателях в Си: присваивание, разыменование и перемещение по массивам

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

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

Читать полностью
Всего голосов 17: ↑4 и ↓13-9
Комментарии12

Нюансы работы с PostgreSQL в 3 кейсах от DBA

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

Иван Чувашов, DBA Okko и Southbridge, поделился жизненными кейсами с PostgreSQL, которые помогут решить ваши проблемы.

Разберем случаи из PostgreSQL: запросы в статусе idle in transaction, выключенные контрольные суммы данных, переполнение int4, убивающие базу временные файлы и загрузку CPU.

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

Дженерик коллекции в PHP

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

Столкнулся с проблемой нормальной реализации коллекций в PHP. Доктриновские коллекции мутабельны и инвариантны. PSL коллекции инвариантны. Нигде не видел непустых коллекций. Везде меня что-то не устраивало и было принято решение написать свою open source реализацию иммутабельных коллекций с ковариантными темплейт-параметрами и выстроенной иерархией пустых и непустых коллекций. В качестве статического анализатора был выбран Psalm.

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

Моки без лишней мороки с mswjs+faker.js

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

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

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

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

Время на прочтение11 мин
Количество просмотров2.7K
image
Фрагмент проекта по источнику гамма-излучения в клинике

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

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

Но сегодня я бы хотел рассказать про бизнес. Потому что, на мой взгляд, одна из главных проблем научного сообщества России — неумение упаковывать и продавать результат. Наше европейское и американское образование отчасти избавило нас от иллюзий, но одно дело было теоретизировать, а другое — внедрить на практике в России.
Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии5

Из Waterfall в Agile

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

Эджайл – это модно или полезно? Не знаю, как бы мы ответили на этот вопрос года три назад, а сейчас однозначно: это полезно и нужно! Именно благодаря Agile-подходам нам удалось успешно воплотить довольно давнюю идею и запустить в компании важнейший проект по созданию хранилища мастер-данных «М.Каталог». Но дело не столько в нем – кардинально изменились мы сами, что еще не раз покажет себя на новых проектах. Попробуем описать, в чем заключаются эти перемены и чем они полезны.

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

Хитрый сплав: как мы соединили дата-сайентистов, разработчиков и технологов и чем это помогло металлургии

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

Мы — ЕВРАЗ. Горно-металлургическая компания. В рамках производственного процесса мы производим кокс — твёрдое топливо для доменных печей, где выплавляют чугун. Чтобы получить качественное топливо (кокс), нам нужно подобрать правильную шихту — смесь разных углей в определённой пропорции. Но до сих пор приходилось подбирать по наитию. От решения этой задачи фактически зависит прибыль предприятия, но ни один исследовательский институт ещё не смог разработать подходящую математическую формулу.

Мы попробовали соединить в одной команде технологов, разработчиков и дата-сайентистов. Дополнили это накопленной базой знаний о параметрах кокса и угольных шихт, из которых он получен. Потратили время, чтобы понять технологический процесс и химию в его основе. И не пожалели: через восемь месяцев получили работающую модель предсказания, которая преодолела скепсис технологов и экономит нам сотни миллионов рублей в год.

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

Анализируем данные с помощью визуализации: рисуем поверх Google Maps

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

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

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

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

Go: стоит ли использовать указатели вместо копий структуры?

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

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

Чтобы понять влияние использования указателя, как альтернативы передачи копии структуры, мы рассмотрим два юзкейса.

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

Как сделать эффективное всплывающее окно, или Как убедить всех не делать всплывающие окна. Обзор исследований

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

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

Если исследования не помогут и всплывашку все равно решат делать, то в конце статьи есть данные о том, какие поп-апы работают лучше. 

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

Хакеры vs тюрьмы: истории успешных атак

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

На этой неделе иранская группа «хактивистов» Tapandegan (Сердцебиение) опубликовала изображения с камер наблюдения из тегеранской тюрьмы Эвин, где в числе прочих содержатся политические заключенные.  Событие получилось резонансное, и вы наверняка что-то про это уже слышали. Но часто ли хакерам удаётся обойти защиту тюрем?  Об одной такой ситуации мы даже писали. Но были и другие истории.

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

Мы нанимаем только сеньоров

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

We don’t hire junior developers or interns…if you don’t get a puppy, you don’t have to clean up its messes.

~Netflix

В наши дни одна из самых больших проблем для IT специалиста - начать профессиональную карьеру. Многие из нас прошли путь "первого трудоустройства" и не знаю как вы, а мне довелось услышать такую фразу от рекрутера: "вот когда ты будешь сеньор с зарплатой от $1000 тогда и приходи".

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

Читать далее
Всего голосов 33: ↑24 и ↓9+26
Комментарии201

5 способов снижения внутренних угроз кибербезопасности

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

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

5 способов снижения внутренних угроз
Всего голосов 6: ↑3 и ↓30
Комментарии8

Ставим и настраиваем OpenVPN-сервер на Linux, секреты использования утилиты Cron…

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

... а также 8 инструментов безопасности для Kubernetes.

Подборка новых шпаргалок, вебинаров, свежих статей и полезных книг в самом полезном дайджесте на просторах #Хабр! Оставайтесь с нами – станьте частью DevNation!

Читать дальше: Ставим и настраиваем...
Всего голосов 21: ↑0 и ↓21-21
Комментарии7

Код ревью, как внедрить и не испытывать боль

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

Если вы работаете в продуктовой компании, то жизненный цикл почти каждого продукта будет соответствовать принципу Парето:
- 20% времени мы пишем новый код.
- 80% времени поддерживаем старый. Поддержка в себя включает фиксы багов, обновление кодовой базы (переезд на новые библиотеки например).

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

Читать статью
Всего голосов 13: ↑12 и ↓1+18
Комментарии29

Способ достать локальные переменные функции в Python

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

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

Хороший пример: класс SSHOperator, метод execute().

Данный метод использует в работе переменную exit_status, однако не возвращает её. Если для дальнейшей обработки вам потребуется получить её значение из дочернего класса, то можно воспользоваться следующим способом, через трейсбек.

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

PlanetScale — Serverless SQL база данных для разработчиков

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

Этим летом я по уши увяз в serverless-тематике и даже решил переписать один из своих pet-проектов целиком на serverless. Движок для сайта, поддерживающий бессерверные вычисления и вендор для кэширующей прослойки были найдены быстро - NextJS (с деплоем на Vercel) и Upstash с оплатой за каждую отдельную операцию и байт в хранилище. Камнем преткновения стал выбор провайдера для DBaaS. Мне бы хотелось реализовать всё таким образом, чтобы у проекта было две разных базы данных - для разработки и для production, и мне совсем не хотелось запускать базу данных для разработки на локальной машине. Поверхностное ознакомление с DBaaS провайдерами показало, что за дополнительную базу данных пришлось бы платить вдвое больше несмотря на то, что она использовалась бы дай Бог пару раз в неделю. И я ушёл в просмотр докладов и презентаций на YouTube и это именно тот момент когда я открыл для себя PlanetScale. Хочу поделиться своим открытием с вами.

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

Аналитика vs моделирование. Задача по теории вероятностей

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

В ящике 4 белых 10 черных шаров. Из него наудачу вынимают шар, фиксируют его цвет и возвращают шар назад в ящик. Назовем «белым пулом» любую максимальную цепочку подряд вынутых белых шаров. Найти математическое ожидание количества «белых пулов» при извлечении из ящика 20 шаров.

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

милости просим наставить на путь истинный.
Всего голосов 11: ↑10 и ↓1+14
Комментарии61

WebRTC лицом к лицу. Нагрузочный тест видео чата

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

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

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

Таблица актуальности фактических данных как архитектурное решение

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

Таблица актуальности фактических данных как архитектурное решение

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

Суть задачи.

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

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

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность