Обновить
32K+

SQLite *

Компактная встраиваемая реляционная база данных

2,13
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Поиск по произвольным параметрам

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели4.7K

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

Давайте

Затаскиваем sqlite в облачный Битрикс24

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели3.1K

Для каких целей? На момент возникновения идеи было еще не совсем понятно. Но предпосылки развития идеи были.

Читать далее

Выбор подходящего инструмента для запросов: сравниваем DBeaver с Datagrip

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели49K

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

Итак, приступим.

Читать далее

От «Hello World» до включения программы в реестр российского ПО

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели11K

В 2017 году я начал изучать Java. И, чтобы как-то визуализировать результат трудов, я решил сделать десктопное приложение (функционал продублирован в Telegram боте).

Поразмыслив, чего мне не хватает, я захотел создать свой новостной агрегатор. Конечно, такие программы на тот момент уже были: и десктопные, и веб, но они мне показались сложными, а хотелось получать нужные новости по одному клику, да и лучшего варианта для изучения я не придумал.

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

Читать далее

Об интересных задачах по SQL

Время на прочтение7 мин
Охват и читатели21K

Всем доброго дня!

Стал искать задачи по SQL, чтобы освежить свои знания, и к немалому удивлению обнаружил, что, несмотря на очевидную востребованность темы, интересные наборы задач на русскоязычных ресурсах можно пересчитать по пальцам. Хочу поделиться с сообществом своим мнением по поводу этих наборов, тем более что в отличие от самих задач далеко не все их авторские решения мне понравились.

Читать далее

Развитие QSqlTableModel и QTableView

Уровень сложностиСложный
Время на прочтение2 мин
Охват и читатели3.7K

Возможно вам тоже покажется, что развитие Qt как минимум в части Sql остановилось этак лет 12 назад.

А ведь фреймворк заслуживает развития ибо базовые классы уровня QSqlTabelModel и QTableView предоставляют богатый функционал для реализации ваших запросов.

Как на Qt работать с таблицами базы данных

Применение регулярных выражений для обработки данных

Время на прочтение4 мин
Охват и читатели7.1K

История создания регулярных выражений берет свое начало с 1942 года. В то время Уолтер Питтс — американский логик, работавший, в основном, в области когнитивной психологии, работал  с известным физиологом Уорреном МакКаллоком. Основой их работы были труды связанные с теоретическим построением нейронных сетей. Немного позже, американский математик Стивен Клини изучал события в сетях МакКаллока-Питтса и предложил способ описания таких событий при помощи языка регулярных выражений.

Работа Клини вышла в середине 50-х годов двадцатого века. Научные труды были бы забыты, но американский программист Кен Томпсон в конце 60-х годов обнаружил, что регулярные выражения можно использовать для задания шаблонов поиска строк в длинных текстах. Смысл поиска заключается в том, что регулярное выражения преобразуется в конечный автомат, который производит поиск строк, которые должны соответствовать определенным шаблонам. Для построения конечного автомата Томпсон придумал специальный алгоритм, который сейчас носит название «построение Томпсона». Таким образом Кен Томпсон смог принести в мир стандарт для задания поисковых шаблонов.

Сами по себе, регулярные выражения есть ни что иное, как текстовый шаблон, который соответствует какому-то тексту. В трудах Джеффри Фридла пишется, что: «Регулярные выражения— это мощнейший инструмент, хорошо известный программистам. Однако он может быть полезен не только программистам, но и всем людям, работающим с кодом или простым текстом». При использовании регулярных выражений человеку придется работать с литералами и метасимволами. Это два существенно различающихся по своей сущности понятия. Литералы – это обычные символы, т.е. при записи в строках регулярного выражения они интерпретируются так, как они записаны. Примером литералов в регулярных выражениях может быть любая буквенная последовательность. В свою очередь, метасимволы интерпретируются при поиске особым образом. Примером может служить символ «*», который задает последовательность любого количества литералов.

Читать далее

Как оценить размер данных: краткий гайд

Время на прочтение5 мин
Охват и читатели18K

Оценка размера данных — это относительно простой навык, который одновременно: а) легко никогда не освоить; б) весьма полезен после того, как вы им овладели. Он может пригодиться при проектировании систем, в отладке сложной проблемы распределенной системы и, разумеется, при обсуждении архитектурных задач на собеседовании.

Автор Уилл Ларсон*, технический директор компании Calm, в своей статье признается, что никогда не был особенно хорош в «оценке». Поэтому он решил потратить несколько часов на развитие этого навыка, что со временем вылилось в текстовые заметки на эту тему. Под катом автор делится полезными правилами для оценки требуемого дискового пространства, а затем собирает фрагмент кода на SQLite3, чтобы продемонстрировать, как можно проверить результаты вашей «оценки».

*Обращаем ваше внимание, что позиция автора не всегда может совпадать с мнением МойОфис.

Читать далее

Как я делал serverless поиск для мейлинг листов OpenJDK

Время на прочтение5 мин
Охват и читатели1K
Совсем недавно мне захотелось поискать какую-то информацию в amber-dev мейлинг листе. Оказывается, что никакого встроенного поиска тут нет. Нужно либо пользоваться гуглом и использовать site: оператор, либо использовать поиск почтового клиента. В целом, оба варианта — рабочие, но мне захотелось сделать еще одну опцию, попутно немного поиграв с WebAssembly.

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

Перестаньте использовать SQLite в Unit-тестах

Время на прочтение9 мин
Охват и читатели11K

TLDR; Использование Sqlite в Laravel (или любых других PHP приложениях) для Unit-тестирования может привести к false positive результатам тестов. Тот код который пройдет тесты, не заработает после переезда в production и использования других БД, например, MySQL. Вместо этого разверните тестовую БД с использованием той же технологии и движка, которые будут использоваться вашим приложением в production.

Во-первых, позвольте мне начать с того, что я очень рад видеть, что вы проводите Unit-тестирование — вы на верном пути! Laravel познакомил многих разработчиков с миром Unit-тестирования, сделав утилиты для тестирования первоклассной частью фреймворка. Это круто! Но нам нужно убедиться, что наше чувство безопасности, которое мы получаем от наших Unit-тестов, верно.

Один из механизмов, которые Laravel предлагает для Unit-тестов, основан на использовании базы данных SQLite . Для ускорения выполнения тестов, база данных запускается непосредственно в оперативной памяти. Такое решение работает в 95% случаев. Но, дьявол кроется в деталях, в этих 5%.

Поговорим о причинах, почему это не лучший выбор.

Читать далее

Как устроена виртуальная машина SQLite

Время на прочтение10 мин
Охват и читатели19K

SQL — концептуально странный язык. Вы пишете ваше приложение на одном языке, скажем, на JavaScript, а затем направляете базе данных команды, написанные на совершенно другом языке — SQL. После этого база данных компилирует и оптимизирует эту команду на SQL, выполняет её и возвращает вам данные. Такой метод кажется ужасно неэффективным, но, всё-таки, ваше приложение может проделывать сотни таких операций в секунду. Просто безумие!

Но на самом деле всё ещё страннее.

Читать далее

Магия квантового превосходства

Время на прочтение2 мин
Охват и читатели1.7K

По белой книге Адаптация Алексеев Денис делается последнее поколение приставок RyBox. С Романом Душкиным мы работаем над тем, что мы обретём Сильное Бессмертие благодаря внедрению Метода тотального контроля (МТК -8) отличающийся от МТК 6 и 7 наличием показателя УЦД(уникальность цифрового двойника).
Метод тотального контроля (МТК6):

I. Наблюдение как система выполняет операции

II. Тестирование и постоянное обновление

III.Определение тенденций развития

IV.Детальный анализ данных на выходе

V. Написание отчёта о результатах

VI.Завершающий диалог с системой

VII. Тестирование

(МТК ЭиО)

Анализ теста Сотрудника

Обновление ИОТ/(база знаний)

Определение тенденций развития Руководителем

Детальный анализ Ментором работы Сотрудника

Написание отчёта о результатах

Завершающий диалог с Сотрудником

Тестирование подготовки Сотрудника Отделом Качества

Э- эксперт
О- обучающийся
ИОТ - индивидуальная образовательная траектория

И так резюмируем какие МТК кого контролируют
Метод Тотального Контроля 6 - Роботы
Метод Тотального Контроля 7 - Люди
Метод Тотального Контроля 8 - Цифровые Двойники
Метод Тотального Контроля 9 - Клоны
Благодаря Клонам мы приближаемся к Сильному бессмертию

МТК Х - волшебники.

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

Пишем на Rust расширение для SQLite, чтобы научить его работать с файлами Excel

Время на прочтение11 мин
Охват и читатели8.2K

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

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

Исходный код на GitHub

Читать далее

Ближайшие события

Я написал серверную SQLite

Время на прочтение9 мин
Охват и читатели14K

Меня зовут Бен Джонсон, и я написал встраиваемую базу данных, которая служит бэкендом систем вроде etcd, — это BoltDB. Сегодня я работаю над Open Source проектом Litestream в компании Fly.io. Благодаря репликации Litestream делает SQLite приемлемым для фулстек‐приложений. Если вы можете установить SQLite, то Litestream заставите работать за 10 минут.

Читать далее

Переход с 1С: УПП на 1C:ERP: Переделываем интеграции с SQL-запросами к СУБД (на примере УПП — QlikView — ERP)

Время на прочтение7 мин
Охват и читатели8.2K

Для тех, кто не читал предыдущую статью, расскажу о сути проекта. В 2020-2021 году я участвовал в роли руководителя команды разработчиков Внедренческого центра "Раздолье" в проекте Управление продажами в международной компании на базе "1С:ERP" (ссылка на сайт 1c.ru). Проект был выбран победителем международного конкурса «1С:Проекта года» в номинации «Лучший проект с использованием технологии "Дистанционное внедрение"».

Суть проекта заключалась в переводе Заказчика с 1С:УПП на 1С:ERP. На его примере кратко опишу, какой была организационная структура и какие программы мы использовали при взаимодействии в команде и с пользователями.

Практически весь проект выполнялся удалённо. Многие сотрудники Заказчика, участвующие в проекте, в условиях карантинов и локдаунов были переведены на удалённую работу. Многие сотрудники нашей компании тоже работали удалённо, с командировками в этот период были большие проблемы. Сам Заказчик работает в режиме 24х7 и является одним из крупнейших предприятий в России по производству кофе. На начало проекта в качестве основы корпоративной системы у Заказчика была программа 1С:УПП редакции 1.2 (даже не 1.3). По завершению проекта в 2021-м перешли на ERP 2.5. К слову, когда начинали работу, в 2020-м году, когда 2.5. была ещё в бета-версии, но мы решили прислушаться к рекомендациям "Фирмы 1С" запускать новые проекты на ней, а не на 1С:ERP 2.4.

Читать далее

Справочники в iOS: храним, обновляем, используем

Время на прочтение6 мин
Охват и читатели4.3K

Всем привет! Меня зовут Саша, и я iOS-разработчик в hh.ru

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

Читать далее

Используем SQLite в KPHP и PHP через FFI

Время на прочтение19 мин
Охват и читатели4.8K


Сегодня я расскажу о новой библиотеке, которая позволяет использовать SQLite сразу из PHP и KPHP.


Создавать FFI пакеты — не просто. Под катом будут ответы на следующие вопросы:


  • Как упростить установку и сделать библиотеку кроссплатформенной?
  • Как не допустить утечек ресурсов?
  • Как сделать библиотеку совместимой с KPHP и PHP?
  • Какова производительность FFI решений?

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

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

Как подключиться к базе данных с помощью CSS

Время на прочтение6 мин
Охват и читатели34K

К старту курса по Fullstack-разработке на Python делимся материалом о том, как при помощи современных возможностей CSS и JS — ворклетов и API Houdini — подключиться к базе данных и выполнять запросы к ней. За подробностями приглашаем под кат.

Читать далее

Парсинг исторических данных с Google Scholar используя Python

Время на прочтение16 мин
Охват и читатели8.8K

Как спарсить исторические данные 2017-2021 годов с Google Scholar и сохранить их в CSV, SQLite используя Python и SerpApi.

Читать далее

Поисковик новостей (RSS), написанный на Java + SQLite

Время на прочтение2 мин
Охват и читатели7.3K

Данная идея не претендует на уникальность. Суть проста - тратить как можно меньше времени на чтение интересующих Вас новостей, отсеивая ненужные заголовки. Проект делал в рамках моего обучения языку Java и SQL, начиная с 2018 года. В настоящий момент программа включена в Реестр российского ПО. Функционал продублирован в Telegram боте.

Актуальная версия программы для windows и linux находится на avandy-news.ru. Исходный код проекта будет полезно изучить тем, кто хочет создавать свои десктопные приложения на Swing (но рекомендую изучать JavaFX) или для изучения процесса работы с базой данных посредством чистого JDBC. Для улучшения дизайна интерфейса применён FlatLaf.

Читать далее