Обновить
3.62

SQLite *

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

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

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

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

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

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

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

Читать далее

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

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

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

Автор Уилл Ларсон*, технический директор компании 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.1K

В этой статье я расскажу как на 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 мин
Охват и читатели8K

Для тех, кто не читал предыдущую статью, расскажу о сути проекта. В 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.1K

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

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

Читать далее

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

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


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


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


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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

Последний велосипедно-питоний бой с ошибками импорта  sqlite за 2 174 433 строчки. Часть 3

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

Замечание. Вся трилогия (часть 1 тутчасть 2 туто велосипедостроении с sqlite, xml, csv только для совсем маленьких Питоньих кодеров. Не для крутых кодеров, они умрут от скуки в нашем опусе и ничего нового не увидят. В третьей части заканчиваем все, что начали ранее.

Начинаем изыски причины и местонахождения ошибки.

Итак: правильный ответ: ошибки в коде нет. Ну точнее ошибка возникает при работе кода из-за ошибки данных в файлах. 

Чтобы убедиться, что это так, добавим в код обработку исключений.

Совсем немного поправим наш код, добавим обработку и вывод на печать исключений:

Читать далее

Продолжаем велосипедостроение с Python, xml, csv, sqlite. Часть 2. Ищем и правим ошибки, пока не налетаем на…

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

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

окончание трилогии тут (часть 3): "Последний велосипедно-питоний бой с ошибками импорта sqlite за 2 174 433 строчки. Часть 3"

Читать далее

Первый донат спустя год. FAQ Net — записная книжка, программа заметок (бесплатно)

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

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

Требования, которые я предъявляю к приложению для заметок

Читать далее

SQLite-песочница в браузере

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

Чего мне всегда не хватало, так это аналога JSFiddle для SQLite. Онлайн-песочницы, в которой можно быстро проверить SQL-запрос и поделиться с другими.

Вот чего хотелось:

— Возможность загрузить готовую базу, а не писать SQL для создания таблиц.
— Подключать как локальные базы, так и удаленные (по url).
— Сохранять базу и запросы в облаке.
— Бесплатно и без регистрации.
— Свежайшая версия SQLite.
— Минимализм.

В итоге сделал сам

Восстановление удаленных строк в SQLite

Время на прочтение13 мин
Охват и читатели8.3K
Хотя в SQLite и нет возможности прочитать удаленные данные после завершения транзакции, сам формат файла позволяет отчасти сделать это. Подробности — под катом.
Читать дальше →

Парсим базу юриков ФНС (велосипедостроение с xml, csv, SQLite и Питоном)

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

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

Вводная

Что хотим сделать: взять данные по юридическим лицам (ЮЛ) РФ за 2019 год (идентификаторы ЮЛ: наименование и ИНН(ЮЛ), оборот, расход) и положить в SQLite.

Читать далее