Приветствую вас, дорогие читатели. В данной статье кратко описаны основные сведения об указателях в языке Си. Помимо основных операций с указателями (объявление, взятие адреса, разыменование) рассмотрены вопросы безопасности типов при работе с ними.
Веб
Нюансы работы с PostgreSQL в 3 кейсах от DBA
Иван Чувашов, DBA Okko и Southbridge, поделился жизненными кейсами с PostgreSQL, которые помогут решить ваши проблемы.
Разберем случаи из PostgreSQL: запросы в статусе idle in transaction, выключенные контрольные суммы данных, переполнение int4, убивающие базу временные файлы и загрузку CPU.
Дженерик коллекции в PHP
Столкнулся с проблемой нормальной реализации коллекций в PHP. Доктриновские коллекции мутабельны и инвариантны. PSL коллекции инвариантны. Нигде не видел непустых коллекций. Везде меня что-то не устраивало и было принято решение написать свою open source реализацию иммутабельных коллекций с ковариантными темплейт-параметрами и выстроенной иерархией пустых и непустых коллекций. В качестве статического анализатора был выбран Psalm.
Моки без лишней мороки с mswjs+faker.js
Недавно я в очередной раз столкнулся с типичной проблемой: для создания нового функционала фронтенд и бэкенд нужно было реализовывать параллельно. Но как делать фронт, не имея 100% рабочих эндпойнтов на бэкенде? Сегодня я расскажу о том, какие подходы применял, и разберу их плюсы и минусы.
Как мы зарабатываем на прикладной науке: промежуточные итоги бизнеса
Фрагмент проекта по источнику гамма-излучения в клинике
Когда мы открывали клинику, то чётко понимали, что наш путь — взять умолчания рынка стоматологии, критически их оценить, пересобрать модель, убрав всё то, что «исторически сложилось», но мешает, а потом сделать оптимальный набор услуг. Параллельно решалась задача хорошего сервиса и экономии времени пациентов, потому что будущее, которое кое-где уже наступило, стоит дорого. Даже по меркам стоматологии.
Я уже рассказывал, что мы ввели кросс-ревью врачей, прямую выгрузку медицинских данных и фотопротоколов всех процедур пациентам (что почти никогда не делают, потому что это показывает любую ошибку врачей), приняли рациональную доказательную методологию и почти полностью перешли с патерналистской модели биоэтики «слушай, сынок, вот что тебе надо» на партнерскую модель.
Но сегодня я бы хотел рассказать про бизнес. Потому что, на мой взгляд, одна из главных проблем научного сообщества России — неумение упаковывать и продавать результат. Наше европейское и американское образование отчасти избавило нас от иллюзий, но одно дело было теоретизировать, а другое — внедрить на практике в России.
Из Waterfall в Agile
Эджайл – это модно или полезно? Не знаю, как бы мы ответили на этот вопрос года три назад, а сейчас однозначно: это полезно и нужно! Именно благодаря Agile-подходам нам удалось успешно воплотить довольно давнюю идею и запустить в компании важнейший проект по созданию хранилища мастер-данных «М.Каталог». Но дело не столько в нем – кардинально изменились мы сами, что еще не раз покажет себя на новых проектах. Попробуем описать, в чем заключаются эти перемены и чем они полезны.
Хитрый сплав: как мы соединили дата-сайентистов, разработчиков и технологов и чем это помогло металлургии
Мы — ЕВРАЗ. Горно-металлургическая компания. В рамках производственного процесса мы производим кокс — твёрдое топливо для доменных печей, где выплавляют чугун. Чтобы получить качественное топливо (кокс), нам нужно подобрать правильную шихту — смесь разных углей в определённой пропорции. Но до сих пор приходилось подбирать по наитию. От решения этой задачи фактически зависит прибыль предприятия, но ни один исследовательский институт ещё не смог разработать подходящую математическую формулу.
Мы попробовали соединить в одной команде технологов, разработчиков и дата-сайентистов. Дополнили это накопленной базой знаний о параметрах кокса и угольных шихт, из которых он получен. Потратили время, чтобы понять технологический процесс и химию в его основе. И не пожалели: через восемь месяцев получили работающую модель предсказания, которая преодолела скепсис технологов и экономит нам сотни миллионов рублей в год.
Анализируем данные с помощью визуализации: рисуем поверх Google Maps
Привет, я Катя, системный аналитик в Ozon. Одна из первых задач, которую мне поручили здесь — проверить качество географических данных. Формально эта задача больше относится к анализу данных, чем к системному анализу. Но меня она очень заинтересовала, ведь требовался не только анализ, но и исследование и, по возможности, реализация решения, а для меня это самое интересное в работе.
Впереди меня ждала RnD-задача с исследованием картографических форматов, рисованием поверх Google Maps и реализацией скрипта на Python. Как я боролась с визуализацией картографических данных, расскажу в этой статье.
Go: стоит ли использовать указатели вместо копий структуры?
Систематическое использование указателей для передачи структур вместо их копирования для многих разработчиков Go кажется лучшим вариантом с точки зрения производительности.
Чтобы понять влияние использования указателя, как альтернативы передачи копии структуры, мы рассмотрим два юзкейса.
Как сделать эффективное всплывающее окно, или Как убедить всех не делать всплывающие окна. Обзор исследований
Скорее всего, вас бесят всплывающие окна. И меня бесят. И того парня бесят. Но их все равно часто используют. Потому что они дают конверсию, за которой и следят владельцы сайтов. Я собрала научные исследования про то, на что, кроме конверсии, влияют всплывающие окна.
Если исследования не помогут и всплывашку все равно решат делать, то в конце статьи есть данные о том, какие поп-апы работают лучше.
Хакеры vs тюрьмы: истории успешных атак
На этой неделе иранская группа «хактивистов» Tapandegan (Сердцебиение) опубликовала изображения с камер наблюдения из тегеранской тюрьмы Эвин, где в числе прочих содержатся политические заключенные. Событие получилось резонансное, и вы наверняка что-то про это уже слышали. Но часто ли хакерам удаётся обойти защиту тюрем? Об одной такой ситуации мы даже писали. Но были и другие истории.
Мы нанимаем только сеньоров
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 тогда и приходи".
В Российской Империи дворянство решало подобный вопрос весьма прозаично. Детей записывали в армию с самого рождения, поэтому, когда приходило время нести бремя военной службы, детишки уже служили в чинах.
5 способов снижения внутренних угроз кибербезопасности
Угроза может прилететь с любой стороны, но мы рассмотрим то, что можно сделать для защиты от внутренних (инсайдерских) угроз.
Ставим и настраиваем OpenVPN-сервер на Linux, секреты использования утилиты Cron…
... а также 8 инструментов безопасности для Kubernetes.
Подборка новых шпаргалок, вебинаров, свежих статей и полезных книг в самом полезном дайджесте на просторах #Хабр! Оставайтесь с нами – станьте частью DevNation!
Код ревью, как внедрить и не испытывать боль
Если вы работаете в продуктовой компании, то жизненный цикл почти каждого продукта будет соответствовать принципу Парето:
- 20% времени мы пишем новый код.
- 80% времени поддерживаем старый. Поддержка в себя включает фиксы багов, обновление кодовой базы (переезд на новые библиотеки например).
Во время поддержки мы хотим чтобы все разработчики как можно быстрее вникали в то, что написано. Для этого есть много способов. Одним из таких способов способов и является код ревью
Способ достать локальные переменные функции в Python
Рассмотрим ситуацию, когда вы пишете свой класс, наследуюетесь от класса библиотеки и вам потребовалось значение локальной переменной функции родительского класса.
Хороший пример: класс SSHOperator, метод execute().
Данный метод использует в работе переменную exit_status, однако не возвращает её. Если для дальнейшей обработки вам потребуется получить её значение из дочернего класса, то можно воспользоваться следующим способом, через трейсбек.
PlanetScale — Serverless SQL база данных для разработчиков
Этим летом я по уши увяз в serverless-тематике и даже решил переписать один из своих pet-проектов целиком на serverless. Движок для сайта, поддерживающий бессерверные вычисления и вендор для кэширующей прослойки были найдены быстро - NextJS (с деплоем на Vercel) и Upstash с оплатой за каждую отдельную операцию и байт в хранилище. Камнем преткновения стал выбор провайдера для DBaaS. Мне бы хотелось реализовать всё таким образом, чтобы у проекта было две разных базы данных - для разработки и для production, и мне совсем не хотелось запускать базу данных для разработки на локальной машине. Поверхностное ознакомление с DBaaS провайдерами показало, что за дополнительную базу данных пришлось бы платить вдвое больше несмотря на то, что она использовалась бы дай Бог пару раз в неделю. И я ушёл в просмотр докладов и презентаций на YouTube и это именно тот момент когда я открыл для себя PlanetScale. Хочу поделиться своим открытием с вами.
Аналитика vs моделирование. Задача по теории вероятностей
В ящике 4 белых 10 черных шаров. Из него наудачу вынимают шар, фиксируют его цвет и возвращают шар назад в ящик. Назовем «белым пулом» любую максимальную цепочку подряд вынутых белых шаров. Найти математическое ожидание количества «белых пулов» при извлечении из ящика 20 шаров.
На примере хорошей задачки по теории вероятностей мы сравним что круче - аналитические решения или моделирование. Вначале я хотел написать только аналитическую часть и попросить заинтересованных читателей запрограммировать симуляцию задачи. Но нехорошо перекладывать на других свои дела, поэтому, в меру способностей, постарался сделать и вторую часть. Попутно знакомясь с Питончиком.
WebRTC лицом к лицу. Нагрузочный тест видео чата
Мы продолжаем разбирать варианты нагрузочных тестов. В этой статье мы разберем методику тестирования и проведем нагрузочный тест, с помощью которого попытаемся определить число пользователей, которые одновременно будут и зрителями, и стримерами, т.е. каждый пользователь и публикует, и просматривает потоки.
Таблица актуальности фактических данных как архитектурное решение
Таблица актуальности фактических данных как архитектурное решение
В этой статье речь пойдёт об архитектуре данных, где необходимо хранить статусы записей, получая информацию об их актуальности.
Суть задачи.
На основе информации из базы платежей выявить категории получателей платежей и вывести сводную информацию по категориям в отчёт для руководства.
Каждый платёж проходит в два этапа: средства переводятся внутри организации на внешний счёт и второй транзакцией происходит выплата средств получателям платежа. Между этими двумя сущностями нет прямой зависимости внутри БД, есть только поля описания платежа и поля описания получателя, которые заполняются сотрудниками бухгалтерии вручную, они зачастую могут иметь отличия. Например, первый платёж описан так:
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность