Search
Write a publication
Pull to refresh
34
0
ionicman @ionicman

User

Send message

Неочевидные для начинающих тонкости Postgres

Level of difficultyMedium
Reading time15 min
Views47K

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

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

За исключением… Postgres.

Не потому, что официальная документация несовершенна (она прекрасна!), просто её очень много. Если распечатать её как стандартный PDF на бумаге формата Letter, то получится 3206 страниц (для текущей версии 17)1. Разработчик-джун вряд ли сможет сесть и прочитать её с начала до конца.

1. Если печатать на бумаге A4, то получится 3024 страницы; наверно, это ещё один аргумент в пользу стандарта.

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

Надеюсь, это упростит процесс освоения для читателей моей статьи.

Стоит отметить, что многое из описанного может быть применимо и к другим системам управления базами данных (СУБД) SQL и вообще к базам данных в целом, но я слабо знакома с ними, так что не буду утверждать с уверенностью.
Читать дальше →

STM32 — грамотно включаемся от кнопки

Level of difficultyEasy
Reading time7 min
Views20K

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

Читать далее

Фильтр Калмана

Reading time10 min
Views457K


В интернете, в том числе и на хабре, можно найти много информации про фильтр Калмана. Но тяжело найти легкоперевариваемый вывод самих формул. Без вывода вся эта наука воспринимается как некое шаманство, формулы выглядят как безликий набор символов, а главное, многие простые утверждения, лежащие на поверхности теории, оказываются за пределами понимания. Целью этой статьи будет рассказать об этом фильтре на как можно более доступном языке.
Фильтр Калмана — это мощнейший инструмент фильтрации данных. Основной его принцип состоит в том, что при фильтрации используется информация о физике самого явления. Скажем, если вы фильтруете данные со спидометра машины, то инерционность машины дает вам право воспринимать слишком быстрые скачки скорости как ошибку измерения. Фильтр Калмана интересен тем, что в каком-то смысле, это самый лучший фильтр. Подробнее обсудим ниже, что конкретно означают слова «самый лучший». В конце статьи я покажу, что во многих случаях формулы можно до такой степени упростить, что от них почти ничего и не останется.
Читать дальше →

Приложение SMD CODES  для смартфонов для поиска электронных компонентов по маркировке на корпусе

Level of difficultyEasy
Reading time3 min
Views16K

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

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

Читать далее

Записываем PNG без мам, пап и внешних библиотек

Reading time9 min
Views17K

Я решал очередную техническую задачу и столкнулся с проблемой: нужно сохранять изображения, а у меня нет сериализаторов и я не могу использовать готовые библиотеки. Ситуацию ухудшает, что из доступных форматов только PNG, JPEG и WebP. Выбор пал на PNG.

Формат изображения PNG известен с 1996 года, а на Хабре опубликовано несколько статей о декодировании этого формата. И ни одной — о кодировании. Я расскажу, как сохранить PNG своими руками на случай, если вам тоже придется это делать. Например, в академических целях.

Под катом вас ждет подробный разбор каждого байта на множестве иллюстраций.
Читать дальше →

Полное руководство по обработке ошибок в Python

Reading time15 min
Views19K

Я часто сталкиваюсь с разработчиками, очень хорошо знающими механику обработки ошибок в Python, однако когда я начинаю выполнять ревью их кода, он оказывается далеко неидеальным. Исключения в Python — это одна из тех областей, поверхностный уровень которого знает большинство, но многие разработчики даже не догадываются о существовании более глубокого, почти тайного уровня. Если вы хотите протестировать себя по этой теме, то проверьте, сможете ли вы ответить на следующие вопросы:

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

Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!
Читать дальше →

Полезные рецепты ручного создания SVG

Level of difficultyEasy
Reading time19 min
Views5.5K



Признаюсь, поначалу я была скептиком ручного кодирования SVG. Будучи фронтенд-разработчиком, привыкшим приводить в порядок "плохие" SVG-файлы, я никогда всерьез не задумывалась о том, чтобы самой рисовать с помощью кода.


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


А как только освоишься, это занятие становится на редкость увлекательным и даже забавным.

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

Получаем удовольствие от дешевых китайских микроконтроллеров (CH32V003)

Level of difficultyMedium
Reading time12 min
Views39K

Если вы оказались здесь, то скорее всего помните как в еще в 2022 году одним из самых важных событий в мире (DIY) была новость про микроконтроллер за 10 центов от уже известной всему миру благодаря своему USB-UART свистку CH340 компании Nanjing Qinheng Microelectronics Co., Ltd, далее WCH.

Отладку от самой WCH, плату от WeAct и даже сами камни я заказал на Али, потыкал в пару примеров и забыл. Для DIY-проектов мне гораздо больше понравились платы от WeAct с ch32x035 и ch32v203, по стоимости примерно такие же, а функционала сильно больше, но в этом году на просторах китайского маркетплейса мне стала попадаться плата с героем статьи, да еще и с USB-C на ней.

Она стоит заметно дешевле своих собратьев и на момент заказа мне обошлась за 90 рублей в сумме с доставкой, а значит, новому королю DIY - быть.

Так и родилась идея сделать свой sdk.

Читать далее

Учимся читать QR-коды без компьютера

Level of difficultyMedium
Reading time4 min
Views55K

Задавались ли вы когда-нибудь вопросом, как работают QR-коды? Если да, то эта статья для вас. Здесь вас ждёт интерактивное объяснение*, которое мы составили для семинара, проводившегося в рамках Всемирного конгресса хакеров 37C3, но вы также можете использовать его самостоятельно.

Прочитав статью, вы узнаете:

  • Из чего состоят QR-коды.
  • Как декодировать QR-коды вручную (используя нашу шпаргалку).
Читать дальше →

GPIO STM32, альтернативный вариант

Level of difficultyEasy
Reading time5 min
Views4.2K

Когда в 2011 году я переходил c atmega8 на stm32, меня очень вдохновил проект opencm3. Но вдохновил не на его изучение, а на написание похожего. На сегодня в моём варианте почти библиотеки есть макросы регистров для микроконтроллеров серий stm32f10x и stm32f40x, stm8s003, nrf51, nrf52, rp2040, и cc2640/1310. Реально же протестирована из этого списка только stm32f103. Кроме регистров для 103-й я написал базовые функции для включения/выключения тактирования периферии и управления портами ввода‑вывода. А также написаны примеры для USB профилей HID gamepad, HID keyboard и USB serial port. В этом же посте задокументирую функции портов и тактирования.

документация к c-шникам

Контроль привычек на запястье: как Mi Smart Band 7 поможет не забывать важное

Reading time13 min
Views12K

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

«Если это действительно важно, то отмечайте даты на упаковке, используйте таблетницу или заведите будильник на телефоне», — скажете вы. Да, это решение. Но у меня есть фитнес-браслет, который, как заявляется, следит за моим здоровьем. Почему бы не научить его отвечать на вопрос «Не забыл ли я “…”»?

В тексте я расскажу про тернистый путь разработки под Mi Smart Band 7 и объясню важные детали для быстрого старта. В результате получится циферблат, который позволяет считать количество наиболее важных рутинных действий за день. Бонусом расскажу о приложении для броска кубиков 1d20 и 2d20.
Читать дальше →

Регулярные выражения простыми словами. Часть 1

Level of difficultyEasy
Reading time7 min
Views57K

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

Ещё один набор параметров для разблокировки Ютуба: теперь мобильный

Level of difficultyEasy
Reading time2 min
Views21K

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

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

Выбор инструмента для обхода на этой ОС был невелик: из списка на Гитхабе Валдика есть ровно три Андроид-решения: PowerTunnel, SpoofDPI и ByeDPI. Два последних у меня изначально не заработали, а первый заработал из коробки так хорошо, что я даже не узнал, что под капотом у него целый набор плагинов, в том числе LibertyTunnel, который и обеспечивает обход.

После того, как в понедельник PowerTunnel перестал справляться, я потыкался в настройки, но безуспешно. К сожалению, на Гитхабе автор проекта ничем не смог мне помочь, но я всё равно хочу выразить ему благодарность за два месяца работы мобильного интернета! (А не пародии на него).

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

Читать далее

7 продвинутых приёмов JavaScript, которые должен знать каждый разработчик

Level of difficultyEasy
Reading time4 min
Views21K

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

Однако при таком обилии функций и технологий легко упустить самые мощные из них. Если ваша цель — повысить производительность или упростить поддержку кода, эти продвинутые техники дадут вам серьёзное преимущество.

Давайте разберём 7 продвинутых техник в JavaScript, которые помогут вам вывести свои навыки на новый уровень.

Читать далее

Транзакции PostgreSQL, Требования ACID, примеры. Подготовка к собеседованию, изучение

Level of difficultyEasy
Reading time10 min
Views22K

Приветствую тебя читатель, я решил написать про ACID и Транзакции PostgreSQL своим языком, с понятными примерами, эта статья ориентирована на людей готовящихся к собеседованию, кто захотел узнать нюансы транзакций в PostgreSQL или про ACID, а также для людей которые знают теорию, но сами ещё ни разу не писали транзакции. Я не ставил перед собой цели рассмотреть и объяснить работу транзакций на очень глубоком уровне. Была цель привести понятные примеры, дать макет работы с транзакциями, а также пощупать основные возможные проблемы при работе с транзакциями в PostgreSQL.

Читать далее

Когда надо подавать уведомления и отчеты по зарубежным счетам в ФНС РФ, а когда можно не отчитываться?

Reading time13 min
Views15K

Сейчас идет период вопросов от ФНС по финансовым счетам физлиц-резидентов РФ открытых за пределами территории РФ, в прошлом или даже позапрошлом году, так как ФНС добирается до сведений переданных партнерами РФ по CRS, там где еще работает.

И начинают доходить руки у отделов валютного контроля ФНС, позадавать вопросы физлицам-резидентам, кто по мнению ФНС должен был представить отчеты по зарубежным счетам до 01 июня 2024 года, но почему-то это не сделал.

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

Читать далее

Как мы французскому ПО ценности добавляли, но нас не оценили

Level of difficultyEasy
Reading time16 min
Views18K

Судя по откликам, рассказы как я не стал миллионером или как мне не удалось спасить американскую АЭС, пользуются большим спросом на хабре. Поэтому продолжу публикацию кейсов из жизни быдлокодера и дам несколько бизнес-советов тем, кто собирается заработать миллионы продавая софт. Требую лайков, подписки и донатов, как настоящий инфоцыганбизнесмен.

Эта история произошла после того, как я вернулся из США в 2008 году, где благополучно потратил все свои деньги, полученные от разграбления советских заводов бандой прихатизаторов, во главе с Кахой Бендукидзе. В США я пытался запустить свой стартап, но не преуспел, но это история для мамкиных стартаперов с сайта VC. Здесь же расскажу, что было потом, поскольку это касается разработки и продвижения ПО. И бесплатно дам несколько бизнес-советов, которые за большие деньги можно получить только на курсах Тони Робинсона.

В России, как и во всем мире, в это время, кроме кризиса 2008 года, разворачивалась менее заметная, но не менее эпическая и трогательная история освобождения евреев от пленения фараоном.  Для тех, кто не читал библию, напомню, что Моисей своих евреев, отпущенных из египетского плена, водил 40 лет по пустыне, (навигаторов и Яндекс-карт тогда не было, и назад никто свалить не мог). Ведомые плевались, плакали, матюкались, ругались, но шли по пустыне за Моисеем. Тот же самый библейский сюжет разворачивался в области разработки софта, cо специалистами из французской фирмы-разработчика, той-которую-нельзя-называть, и которая проектирует боевые самолеты Рафал. В недрах этой конторы была разработана система 3D-проектирования CATIA.

Читать далее

Подробно про JWT

Level of difficultyMedium
Reading time6 min
Views50K

О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.

Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.

Читать далее

Как я пришёл к пониманию основ создания Live-дистрибутивов Linux, решив починить свой старый SSD

Level of difficultyMedium
Reading time28 min
Views29K


Был у меня старенький SSD объёмом 240 Гбайт от Kingston, который внезапно перестал работать, вообще перестал распознаваться в системе. Попробовал я подключить SSD к другому компьютеру, попробовал использовать как внешний диск, ничего не дало результата. Поэтому я купил новый, а этот разобрал.


Внешних признаков, указывающих на то, что SSD сгорел, я не заметил, а интуиция говорила: «Проблема программная». Выбрасывать диск не хотелось, поэтому он остался пылиться до «лучших» времён. И вот недавно захотелось попробовать его починить. К своему удивлению, я достаточно быстро нашёл необходимую статью на Хабре, где рассказывалось, как можно оживить SSD на том же контроллере, что и мой, отдельную тему на форуме Ru-Board, а также статью с подробной инструкцией, по ней я и восстановил свой SSD. Но кроме восстановленного SSD я еще приобрёл и закрепил знания по Linux, которые изложил в этой статье. Всем, кому интересно, добро пожаловать под кат.

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

3D рендер с редактором карт в Консоли (Часть 1)

Level of difficultyMedium
Reading time13 min
Views6.7K

Привет!

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

Читать далее

Information

Rating
6,510-th
Registered
Activity