Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Senior SQL Developer
Функция WEEK в MySQL
Функция WEEK используется для извлечения номера недели из даты.
Базовый синтаксис функции выглядит следующим образом:
WEEK( date_value, [ mode ] )
- date_value - значение даты или даты/времени, из которого извлекается неделя.
- mode - Необязательный. Он используется для указания дня недели. Это может быть один из следующих вариантов:
Примечание:
1. Функция WEEK возвращает значение от 0 до 53 или от 1 до 53 в зависимости от указанного режима.
2. Если вы используете MySQL 4.0.14+, а режим не указан, функция WEEK будет использовать значение в системной переменной default_week_format в качестве режима.
3. Если вы используете версию MySQL, которая старше 4.0.14, а режим не указан, функция WEEK будет использовать 0 в качестве режима.
4. Функция WEEKOFYEAR возвращает то же самое, что и функция WEEK с синтаксисом WEEK (date_value, 3).
Функция WEEK используется для извлечения номера недели из даты.
Базовый синтаксис функции выглядит следующим образом:
WEEK( date_value, [ mode ] )
- date_value - значение даты или даты/времени, из которого извлекается неделя.
- mode - Необязательный. Он используется для указания дня недели. Это может быть один из следующих вариантов:
Примечание:
1. Функция WEEK возвращает значение от 0 до 53 или от 1 до 53 в зависимости от указанного режима.
2. Если вы используете MySQL 4.0.14+, а режим не указан, функция WEEK будет использовать значение в системной переменной default_week_format в качестве режима.
3. Если вы используете версию MySQL, которая старше 4.0.14, а режим не указан, функция WEEK будет использовать 0 в качестве режима.
4. Функция WEEKOFYEAR возвращает то же самое, что и функция WEEK с синтаксисом WEEK (date_value, 3).
Forwarded from Rozetked (Антон Курилов)
This media is not supported in your browser
VIEW IN TELEGRAM
Революция в мире мемосоздания
Приложение Paint теперь умеет автоматически удалять фон в изображении. Пока фишку могут опробовать участники бета-тестирования Windows 11.
Осталось добавить слои.
rozetked.me/news/30443
Приложение Paint теперь умеет автоматически удалять фон в изображении. Пока фишку могут опробовать участники бета-тестирования Windows 11.
Осталось добавить слои.
rozetked.me/news/30443
Forwarded from ДЕВОПСИНА | DevOps | Linux
This media is not supported in your browser
VIEW IN TELEGRAM
Forwarded from Хабр
Сам написал, сам поиграл: 2D-игра для Android полностью с нуля весом менее 1мб
Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время just for fun. Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать всё сам оказался и автор этой статьи. И в один день ему просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное!
Из этой статьи вы узнаете про написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптацию игры под любые устройства
Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время just for fun. Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать всё сам оказался и автор этой статьи. И в один день ему просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное!
Из этой статьи вы узнаете про написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптацию игры под любые устройства
Forwarded from Senior SQL Developer
Партиционирование в SQL (ч.1)
Партиционирование - техника, позволяющая разбить таблицу на несколько физических или логических разделов. Это улучшает производительность и эффективность работы с базой данных.
В SQL партиционирование может быть реализовано путем разделения таблицы на физические или логические единицы хранения данных. Разделение может основываться на различных критериях, таких как диапазон значений столбца, хеш-значение, список значений и т. д.
Данные операции, такие как выборка, вставка, обновление и удаление, выполняются над каждой партицией независимо друг от друга. Это позволяет реализовать параллельную обработку данных, что положительно влияет на производительность запросов.
Варианты партиционирования: горизонтальное и вертикальное
Существует два основных варианта партиционирования в SQL — горизонтальное и вертикальное.
Горизонтальное партиционирование - разделение таблицы на партиции по строкам. Это полезно для таблиц с большим объемом данных, так как обработка становится более эффективной.
Вертикальное партиционирование - разделяет таблицу по столбцам. Это может быть полезно для таблиц с множеством столбцов, из которых используются только некоторые.
Выбор типа партиционирования зависит от требований базы данных. При правильном применении, партиционирование может значительно улучшить производительность работы с SQL-базами данных.
Партиционирование - техника, позволяющая разбить таблицу на несколько физических или логических разделов. Это улучшает производительность и эффективность работы с базой данных.
В SQL партиционирование может быть реализовано путем разделения таблицы на физические или логические единицы хранения данных. Разделение может основываться на различных критериях, таких как диапазон значений столбца, хеш-значение, список значений и т. д.
Данные операции, такие как выборка, вставка, обновление и удаление, выполняются над каждой партицией независимо друг от друга. Это позволяет реализовать параллельную обработку данных, что положительно влияет на производительность запросов.
Варианты партиционирования: горизонтальное и вертикальное
Существует два основных варианта партиционирования в SQL — горизонтальное и вертикальное.
Горизонтальное партиционирование - разделение таблицы на партиции по строкам. Это полезно для таблиц с большим объемом данных, так как обработка становится более эффективной.
Вертикальное партиционирование - разделяет таблицу по столбцам. Это может быть полезно для таблиц с множеством столбцов, из которых используются только некоторые.
Выбор типа партиционирования зависит от требований базы данных. При правильном применении, партиционирование может значительно улучшить производительность работы с SQL-базами данных.
Forwarded from Postgres Guru | Базы данных 💐
🧾 Работа с JSON в PostgreSQL (часть 1).
В этой заметке начнем разговаривать о знаменитой возможности PostgreSQL работать с форматом данных JSON. Разберемся что такое JSON, чем он удобен и за чем он нужен.
JSON расшифровывается как JavaScript Object Notation. Фактически, это еще один формат представления данных по типу XML. JSON стал популярен, благодаря своей простоте и гибкости. Этот формат легко читается как человеком так и машиной и поддерживается практически всеми языками программирования.
PostgreSQL, когда получила возможность хранить в своих базах данных и извлекать информацию в формате JSON, зашла на территорию так называемых NoSQL баз данных. Эта возможность дала PostgreSQL более гибко работать с данными чем это дает реляционная модель.
Представим пример. У нас есть какой-то объект и мы хотим дать пользователю возможность самостоятельно добавлять атрибуты к этому объекту. Реляционная модель не даст нам хранить кучу атрибутов в одной ячейке таблицы, это противоречит правилам нормализации данных. По этому нам придется что-то выдумывать для решения такой задачи, либо добавлять новую колонку в таблицу при каждом добавлении нового атрибута, либо организовывать данные по модели Entity Attribute Value (о ней мы с вами как-нибудь поговорим в будущих постах). Т.е. фактически, JSON в PostgreSQL нам становится нужен, когда возникает необходимость в работе с неструктурированными данными.
И тут к нам на помощь приходит JSON. Сам формат выглядит очень просто, ниже пример:
В фигурных скобках у нас находится объект, который представляет собой набор пар ключ-значение. Ключ записывается до знака двоеточия в кавычках, значение - после, все пары разделены между собой запятыми. В рамках одного объекта ключ должен быть уникальным. Значение может быть разными типами данных: цифра, строка, булево, другой объект, ноль или массив. Пары можно записывать и в одну строку, но запись в столбик (как в примере) повышает удобство их чтения.
Массивы в JSON записываются так:
Т.е. массив начинается с квадратной скобки и представляет собой упорядоченный набор объектов.
В PostgreSQL есть два варианта работы с JSON. Это собственно сам JSON и JSONB. JSONB считается более продвинутой технологией для работы с форматом JSON в PostgreSQL. О различиях этих двух подходов, а так же о дальнейшей работе с JSON в PostgreSQL мы с вами поговорим в будущих постах.
#pgbase #queries #pgjson
В этой заметке начнем разговаривать о знаменитой возможности PostgreSQL работать с форматом данных JSON. Разберемся что такое JSON, чем он удобен и за чем он нужен.
JSON расшифровывается как JavaScript Object Notation. Фактически, это еще один формат представления данных по типу XML. JSON стал популярен, благодаря своей простоте и гибкости. Этот формат легко читается как человеком так и машиной и поддерживается практически всеми языками программирования.
PostgreSQL, когда получила возможность хранить в своих базах данных и извлекать информацию в формате JSON, зашла на территорию так называемых NoSQL баз данных. Эта возможность дала PostgreSQL более гибко работать с данными чем это дает реляционная модель.
Представим пример. У нас есть какой-то объект и мы хотим дать пользователю возможность самостоятельно добавлять атрибуты к этому объекту. Реляционная модель не даст нам хранить кучу атрибутов в одной ячейке таблицы, это противоречит правилам нормализации данных. По этому нам придется что-то выдумывать для решения такой задачи, либо добавлять новую колонку в таблицу при каждом добавлении нового атрибута, либо организовывать данные по модели Entity Attribute Value (о ней мы с вами как-нибудь поговорим в будущих постах). Т.е. фактически, JSON в PostgreSQL нам становится нужен, когда возникает необходимость в работе с неструктурированными данными.
И тут к нам на помощь приходит JSON. Сам формат выглядит очень просто, ниже пример:
{ "id": "1", "username": "Ilya", "location": "Moscow"}В фигурных скобках у нас находится объект, который представляет собой набор пар ключ-значение. Ключ записывается до знака двоеточия в кавычках, значение - после, все пары разделены между собой запятыми. В рамках одного объекта ключ должен быть уникальным. Значение может быть разными типами данных: цифра, строка, булево, другой объект, ноль или массив. Пары можно записывать и в одну строку, но запись в столбик (как в примере) повышает удобство их чтения.
Массивы в JSON записываются так:
{ "username": "Ilya", "location": "Moscow", "posts": [ { "id":"1", "title":"Hello" }, { "id":"4", "title":"Enjoy" } ]}Т.е. массив начинается с квадратной скобки и представляет собой упорядоченный набор объектов.
В PostgreSQL есть два варианта работы с JSON. Это собственно сам JSON и JSONB. JSONB считается более продвинутой технологией для работы с форматом JSON в PostgreSQL. О различиях этих двух подходов, а так же о дальнейшей работе с JSON в PostgreSQL мы с вами поговорим в будущих постах.
#pgbase #queries #pgjson
Forwarded from vc.ru
Microsoft добавит первые ИИ-функции в Windows 11 для всех пользователей уже 26 сентября и представит Microsoft 365 Copilot платным клиентам с 1 ноября.
Первым бот поможет упорядочить открытые окна и удалить фон с изображения из интернета. Вторым перескажет непрочитанные письма, составит план мероприятия на основе данных из Excel-таблиц и поможет завести «тикет» в Jira
vc.ru/services/847081
Первым бот поможет упорядочить открытые окна и удалить фон с изображения из интернета. Вторым перескажет непрочитанные письма, составит план мероприятия на основе данных из Excel-таблиц и поможет завести «тикет» в Jira
vc.ru/services/847081
Forwarded from Однажды в трендах
Конституция try-except
При использовании конструкции try-except мы обрабатываем ошибки в коде. Если в блоке try происходит ошибка, то программа переходит в блок except, где можно обработать ошибку и продолжить выполнение программы.
В этом примере мы используем конструкцию try-except для обработки ошибки, которая может возникнуть при попытке преобразовать введенную пользователем строку в целое число. Если введенная строка не может быть преобразована в целое число, то программа переходит в блок except и выводит сообщение об ошибке.
При использовании конструкции try-except мы обрабатываем ошибки в коде. Если в блоке try происходит ошибка, то программа переходит в блок except, где можно обработать ошибку и продолжить выполнение программы.
В этом примере мы используем конструкцию try-except для обработки ошибки, которая может возникнуть при попытке преобразовать введенную пользователем строку в целое число. Если введенная строка не может быть преобразована в целое число, то программа переходит в блок except и выводит сообщение об ошибке.
Forwarded from Senior SQL Developer
Ближайший общий предок в дереве SQL
В SQL, деревья представляют собой структуры данных, которые используются для организации иерархических данных. Одним из интересных аспектов работы с деревьями в SQL является поиск ближайшего общего предка.
Поиск ближайшего общего предка
Для поиска общего предка в дереве SQL можно использовать алгоритм поиска в глубину или алгоритм поиска в ширину. Оба алгоритма имеют свои преимущества и недостатки, и выбор зависит от задачи.
Алгоритм поиска в глубину начинает с корневого узла и рекурсивно обходит все его потомки. При нахождении искомого узла, возвращается путь от корневого узла до него. Затем можно выполнить аналогичный обход для второго искомого узла и найти их общего предка.
Алгоритм поиска в ширину, наоборот, начинает с корневого узла и последовательно обходит все узлы на каждом уровне дерева. При нахождении искомого узла, возвращается путь от корневого узла до него. Затем можно выполнить аналогичный обход для второго искомого узла и найти их общего предка.
В SQL, деревья представляют собой структуры данных, которые используются для организации иерархических данных. Одним из интересных аспектов работы с деревьями в SQL является поиск ближайшего общего предка.
Поиск ближайшего общего предка
Для поиска общего предка в дереве SQL можно использовать алгоритм поиска в глубину или алгоритм поиска в ширину. Оба алгоритма имеют свои преимущества и недостатки, и выбор зависит от задачи.
Алгоритм поиска в глубину начинает с корневого узла и рекурсивно обходит все его потомки. При нахождении искомого узла, возвращается путь от корневого узла до него. Затем можно выполнить аналогичный обход для второго искомого узла и найти их общего предка.
Алгоритм поиска в ширину, наоборот, начинает с корневого узла и последовательно обходит все узлы на каждом уровне дерева. При нахождении искомого узла, возвращается путь от корневого узла до него. Затем можно выполнить аналогичный обход для второго искомого узла и найти их общего предка.
Forwarded from Однажды в трендах
Модуль os.path
Модуль реализует некоторые полезные функции для имён путей. Для чтения или записи файлов open(), а для доступа к файловой системе модуль os. Параметры пути могут передаваться в виде строк или байтов. Приложениям рекомендуется представлять имена файлов в виде Юникод строк. К сожалению, некоторые имена файлов не могут быть представлены в виде строк в Unix, поэтому приложения, которым необходимо поддерживать произвольные имена файлов в Unix, должны использовать байтовые объекты для представления имён путей.
И наоборот, использование байтовых объектов не может представлять все имена файлов в Windows (в стандартной кодировке mbcs), поэтому приложения Windows должны использовать строковые объекты для доступа ко всем файлам.
Модуль реализует некоторые полезные функции для имён путей. Для чтения или записи файлов open(), а для доступа к файловой системе модуль os. Параметры пути могут передаваться в виде строк или байтов. Приложениям рекомендуется представлять имена файлов в виде Юникод строк. К сожалению, некоторые имена файлов не могут быть представлены в виде строк в Unix, поэтому приложения, которым необходимо поддерживать произвольные имена файлов в Unix, должны использовать байтовые объекты для представления имён путей.
И наоборот, использование байтовых объектов не может представлять все имена файлов в Windows (в стандартной кодировке mbcs), поэтому приложения Windows должны использовать строковые объекты для доступа ко всем файлам.