Сегодня от имени команды Rust Core я рада объявить о Rust Foundation — новой независимой некоммерческой организации, управляющей языком программирования Rust и его экосистемой, которая исключительно ориентирована на поддержку всех сопроводителей — тех, кто создаёт проекты и управляет ими. Первое совещание Rust Foundation состоится завтра, 9 февраля, в 16:00 СТ (22:00 UTC+3). Совет директоров состоит из 5 директоров из компаний-учредителей: AWS, Huawei, Google, Microsoft и Mozilla, и 5 директоров из управления проектом. Двое из них — представители Core Team (Основной команды), трое — разных частей проекта: Reliability (Надёжности), Quality (Качества) и Collaboration (Взаимодействия).
Пользователь
Зачем вам может понадобиться SITE_ID в настройках Django
Если вы не используете все возможности Django, то, очень вероятно, вы не пользуетесь SITE_ID. Этому способствуют как убогая официальная документация Sites framework, так и несогласованное с Sites развитие кода Django.
Предположу, что Sites скоро будет бездумно снесен свежими «разработчиками» Django, как это уже произошло с модулями Comments (Dj 1.6) или Formtools (Dj 1.8). А, пока этого не произошло, предлагаю вам поразмышлять о возможностях Django Sites framework.
Почему я по-прежнему пользуюсь RSS
Я твёрдо верю, что Интернет и его философия максимально проявились именно в RSS.
RSS или Really Simple Syndication является (или был в прошлом, в зависимости от вашей точки зрения) средством, которое объединяет в один канал практически все онлайн-ресурсы. Вы заходите на сайт, если он вам нравится, то добавляете его RSS в свой любимый ридер — и с этого момента мгновенно получаете уведомления о любом новом контенте. Вот так просто.
Расцвет RSS пришелся на эпоху Веб 2.0 (около 1999-2010 гг.), когда движущей силой многих инноваций была полная свобода делать всё что угодно с информацией из интернета. Конечно, всё это происходило до того, как начали развиваться социальные сети в нынешнем виде, а большинство этих концепций оказались изолированы в своих замкнутых социальных фидах.
Бинарный поиск в микроконтроллере
Алгоритм бинарного поиска или поиска делением пополам известен давно. В данной статье будет рассмотрен пример его «железячной» реализации на 8-битном микроконтроллере и особенностях, которые возникают при этом.
Python: как уменьшить расход памяти вдвое, добавив всего одну строчку кода?
В одном проекте, где необходимо было хранить и обрабатывать довольно большой динамический список, тестировщики стали жаловаться на нехватку памяти. Простой способ, как «малой кровью» исправить проблему, добавив лишь одну строку кода, описан ниже. Результат на картинке:
Как это работает, продолжение под катом.
Как работает память в Python
Ни одна компьютерная программа не может работать без данных. А данные, чтобы программа имела к ним доступ, должны располагаться в оперативной памяти вашего компьютера. Но что такое оперативная память на самом деле? Когда произносишь это словосочетание, многие сразу представляют «железную» плашку, вставленную в материнскую плату, на которой написано что-то типа 16Gb DDR4 2666MHz. И они, разумеется, правы — это действительно физический блок оперативной памяти, в котором, в итоге, все данные и оказываются. Но прежде, чем стать доступной внутри вашей программы, на память (как и на всё остальное аппаратное обеспечение) накладывается куча абстракций.
А вы можете решить эти три (обманчиво) простые задачи на Python?
Попробуйте решить эти три задачи, а потом сверьтесь с ответами в конце статьи.
Совет: у задач есть кое-что общее, поэтому освежите в памяти решение первой задачи, когда перейдёте ко второй или третьей, так вам будет проще.
Ультимативный гайд по поиску утечек памяти в Python
Практика показывает, что в современном мире Docker-контейнеров и оркестраторов (Kubernetes, Nomad, etc) проблема с утечкой памяти может быть обнаружена не при локальной разработке, а в ходе нагрузочного тестирования, или даже в production-среде. В этой статье рассмотрим причины появления утечек в Python-приложениях, доступные инструменты для отладки и мониторинга работающего приложения, а также общую методику поиска утечек памяти.
Разрабатываем web-site для микроконтроллера
С приходом в нашу жизнь различного рода умных розеток, лампочек и других подобных устройств, необходимость наличия веб-сайтов на микроконтроллерах стала неоспоримой. А благодаря проекту lwIP (и его младшему брату uIP) подобным функционалом никого не удивишь. Но поскольку lwIP направлен на минимизацию ресурсов, то с точки зрения дизайна, функционала, а также удобства использования и разработки, подобные сайты сильно отстают от тех, к которым мы привыкли. Даже для встроенных систем, сравнить, например, с сайтом для администрирования на самых дешевых роутерах. В данной статье мы попробуем разработать сайт на Линуксе для какого-нибудь умного устройства и запустить его на микроконтроллере.
Изучаем процессы в Linux
В этой статье я хотел бы рассказать о том, какой жизненный путь проходят процессы в семействе ОС Linux. В теории и на примерах я рассмотрю как процессы рождаются и умирают, немного расскажу о механике системных вызовов и сигналов.
Данная статья в большей мере рассчитана на новичков в системном программировании и тех, кто просто хочет узнать немного больше о том, как работают процессы в Linux.
Архитектурный паттерн Dependency Injection в React-приложении
Расшифровка доклада Сергея Нестерова с конференции FrontendLive 2020.
Привет! Меня зовут Сергей, уже больше двух лет я работаю в группе компаний Тинькофф. Моя команда занимается разработкой системы для анализа качества обслуживания клиентов в Тинькофф, и, как вы, наверное, догадались, мы используем React в своем приложении. Не так давно мы внедрили в свой проект архитектурный паттерн Dependency Injection совместно с IoC-контейнерами. Сделали мы это не просто так: это позволило нам решить ряд проблем, которые тормозили разработку нового функционала.
Основы отладки клиентских JS-приложений
Процесс написания и выполнения программного кода почти всегда сопряжён с необходимостью искать и исправлять ошибки. И в целом процесс отладки приложений выглядит несложно.
Но дьявол кроется в деталях. Вот мы перешли из одной предметной области в другую или сменили стек, и там появились свои особенности отладки. В этой статье я расскажу о дебаге в контексте фронтенда на примере отладки клиентских JS-приложений. Надеюсь, это будет полезно начинающим JS-разработчикам, а опытные помогут проверить, что я не упустил ничего важного.
Зачем нужны дженерики в Go?
Эта статья о том, что будет означать добавление дженериков в Go, и почему я считаю, что нам это следует сделать. Также я коснусь возможного изменения архитектуры языка ради добавления дженериков.
Go вышел 10 ноября 2009-го. Меньше чем через сутки появился первый комментарий про дженерики. В нём также упомянуты исключения, которые мы добавили в язык в виде паники и восстановления (panic and recover) в начале 2010-го.
За три года наблюдений отсутствие дженериков всегда входило список трёх главных проблем, которые необходимо исправить в языке.
Свой сервер видеоконференций Jitsi. Часть 1 (Обновлено)
- Свой сервер видеоконференций Jitsi.
Jitsi и все необходимые службы работают на одном сервере + сервис Jibri (для записи видеоконференций на отдельном сервере). - Свой высоконагруженный сервис видеоконференций Jitsi.
Jitsi и все необходимые зависимые службы работают на разных серверах для получения высокой производительности. - Свой мессенджер Matrix-synapse в связке с Jitsi-meet.
Настройка Matrix на своем сервере и объединение с Jitsi для видеозвонков.
В данной статье я расскажу, как поднять собственный сервер видеоконференций jitsi-meet. Для нормального функционирования мне пришлось собирать информацию по крупицам, общаться с разработчиками данной утилиты, перечитать всю документацию и облазить кучу форумов. Тут я собрал все в один мануал на русском.
Основы Bash-скриптинга для непрограммистов. Часть 2
В первой части статьи мы рассмотрели командные оболочки, профили, синонимы и первые команды. Под спойлером я также рассказал, как развернуть тестовую виртуальную машину.
В этой части речь пойдет о файлах скриптов и их параметрах. Также я расскажу про операторы условного выполнения, выбора и циклы.
«Любовь. Python. C++». Доклад Яндекса
— Всем привет, меня зовут Александр Букин, я разрабатываю Яндекс.Погоду. Вы еще можете знать меня как сооснователя Pytup. Также я состою в программных комитетах таких классных конференций, как PyCon.ru и YaTalks.
Сегодня мы с вами поговорим о любви Python и C++. А точнее — о том, что же их объединяет, эти два прекрасных языка и, на самом деле, еще C, и что мы можем почерпнуть из этих прекрасных отношений.
Заметки о Unix: системный вызов write(), на самом деле, не такой уж и атомарный
Недавно я читал материал Эвана Джонса «Устойчивое хранение данных и файловые API Linux». Я полагаю, что автор этой довольно хорошей статьи ошибается, говоря о том, чего можно ожидать от команды
write()
(и в том виде, в каком она описана в стандарте POSIX, и на практике). Начну с цитаты из статьи:Системный вызов write() определён в стандарте IEEE POSIX как попытка записи данных в файловый дескриптор. После успешного завершения работы write() операции чтения данных должны возвращать именно те байты, которые были до этого записаны, делая это даже в том случае, если к данным обращаются из других процессов или потоков (вот соответствующий раздел стандарта POSIX). Здесь, в разделе, посвящённом взаимодействию потоков с обычными файловыми операциями, имеется примечание, в котором говорится, что если каждый из двух потоков вызывает эти функции, то каждый вызов должен видеть либо все обозначенные последствия, к которым приводит выполнение другого вызова, либо не видеть вообще никаких последствий. Это позволяет сделать вывод о том, что все файловые операции ввода/вывода должны удерживать блокировку ресурса, с которым работают.
Означает ли это, что операция write() является атомарной? С технической точки зрения — да. Операции чтения данных должны возвращать либо всё, либо ничего из того, что было записано с помощью write(). […].
Паттерны по-моему: chain of responsibility и command
В этой статье описываются два паттерна проектирования из широко известной книги «Банда Четырёх» на примере конкретного кода. Паттерны описаны в множестве мест, поэтому если вы уже разбираетесь в проблеме, мои объяснения будут вам очевидны и не нужны. Мои тексты — для тех, кто отчаялся разобраться в проблеме, или вроде бы разобрался, но интуитивно ощущает дискомфорт, будто что-то не то и не так понял. Я попробую объяснить понятно. Студенты утверждают (причём уже после сдачи экзамена, поэтому у меня есть основания такое мнение считать непредвзятым и неангажированным), что получается понятно.
Изучаем ELK. Часть I — Установка Elasticsearch
Эта статья является первой в серии статей по стеку Elasticsearch, Logstash, Kibana (ELK). Цикл статей ориентирован на тех, кто только начинает знакомится со стеком ELK, и содержит минимально необходимый набор знаний, чтобы успешно запустить свой первый кластер ELK.
В этой статье будет рассмотрена процедура установки Elasticsearch и конфигурирование кластера.
Указатели в Python: в чём суть?
Если вы когда-нибудь работали с такими низкоуровневыми языками, как С или С++, то наверняка слышали про указатели. Они позволяют сильно повышать эффективность разных кусков кода. Но также они могут запутывать новичков — и даже опытных разработчиков — и приводить к багам управления памятью. А есть ли указатели в Python, можно их как-то эмулировать?
Указатели широко применяются в С и С++. По сути, это переменные, которые содержат адреса памяти, по которым находятся другие переменные. Чтобы освежить знания об указателях, почитайте этот обзор.
Благодаря этой статье вы лучше поймёте модель объектов в Python и узнаете, почему в этом языке на самом деле не существуют указатели. На случай, если вам понадобится сымитировать поведение указателей, вы научитесь эмулировать их без сопутствующего кошмара управления памятью.
Информация
- В рейтинге
- Не участвует
- Зарегистрирован
- Активность