Search
Write a publication
Pull to refresh
0
@Ilya2019read⁠-⁠only

User

Send message

Работа с данными в WinRT. Часть 2. Работа с БД на примере SQLite

Reading time6 min
Views17K
В предыдущей части мы рассматривали как получить доступ к файловому хранилищу приложения. Так как есть прямой доступ к файловому хранилищу, мы можем воспользоваться практически любой встраиваемой БД. На сегодняшний день SQLite, пожалуй, является самой популярной кроссплатформенной встраиваемой базой данных. В связи с этим при портировании приложений скорее всего придется работать с SQLite, работу с которым будем рассматривать далее.

В целом статья получилось больше похожей на инструкцию по установке и работе SQL Lite.

В статье будет описано
Установка расширения для сутдии.
Добавление SQLite в проект
Добавление провайдера sqlite-net
Работа с БД через linq провайдер (в стиле LinqToSql, EF)
Работа с БД через SQL запросы (в стиле ADO.NET)
Читать дальше →

SQLite и UNICODE

Reading time10 min
Views61K
Первая часть — вводная.
Вторая часть — быстрый старт.
Третья часть — особенности.

Несмотря на то, что эта тема затрагивалась на Хабре и раньше, некоторые ключевые вещи не прозвучали. В этой статье делается попытка «закрыть тему». Замечания по дополнению/исправлению приветствуются.

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

SQLite — замечательная встраиваемая БД (часть 1)

Reading time5 min
Views491K
Решил все-таки написать статью про SQLite, в которой хочу обобщить свой 3-х летний опыт использования этой БД под Windows. Вижу, что тема популярная, но информации мало.

Часть 2
Часть 3

Небольшая вводная.

Эта статья не для начинающих программистов.
Она не является учебником по SQL.
Она не агитирует использовать SQLite.
Она не агитирует не использовать SQLite.
Статья написана в виде вопросов от гипотетического новичка в SQLite и ответов на них (поскольку информации очень много и так хоть немного проще ее структурировать).

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

Оптимизируем работу SQLite с NSCalendar

Reading time9 min
Views1.5K


В предыдущей статье мы решили проблему некорректного использования SQLite week based calendar, написав свое расширение для этой СУБД.

Наш расчет сошелся, однако скорость его работы оставляла желать лучшего. Обработка таблицы, содержащей всего лишь 2500 записей занимала около 6 секунд. В то время как запросы, использующие strftime() исполнялись за десятые доли секунды.
Так чего же мы не учли?

Учим SQLite работать с локализированным календарем

Reading time4 min
Views7.3K

Учим  SQLite работать с локализированным календарем



Часть1 — Английская версия, Часть2



Недавно мне довелось портировать (точнее, переписывать) под iOS приложение для анализа посещаемости сайта. Поскольку данные подходили под реляционную модель, мы решили использовать SQLite. Насколько я знаю, других реляционных СУБД под iOS просто нет.

Долго ли, коротко ли… Пришло время подсчитать понедельный КПД для определенного диапазона дат.
Что же произошло дальше?

Пишем простое Windows-приложение на Tcl/Tk с использованием SQLite

Reading time3 min
Views16K
Добрый день уважаемому хабрасообществу! Немного здесь информации об очень приятном и лёгком в использовании языке программирования TCL, а особенно, полезной для тех, кто только начинает с ним знакомство. Попробую внести посильный вклад в исправление столь досадного недоразумения.
Читать дальше →

SQL.js: движок SQLite переведён на JavaScript посредством Emscripten

Reading time1 min
Views19K
Alon Zakai (создатель Emscripten) продолжает действовать: на сей раз он выпустил скрипт SQL.js итог перевода библиотеки SQLite на JavaScript при помощи его собственного средства Emscripten. Демонстрационная страница показывает скрипт в деле, и если вы взглянете на исходники, то увидите, каким простым Закай устроил использование этого средства, им скомпилированного:

var db = SQL.open();
var data = db.exec(command);

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

Оптимизация работы с SQLite под iOS

Reading time4 min
Views13K


“Think of SQLite not as a replacement for Oracle but as a replacement for fopen()”
— About SQLite


А также, скорее всего, под Android, BlackBerry и в сэнд-боксе браузеров для веб-приложений, но я не проверял.

Почему может быть нужно работать с SQLite напрямую?

Любой опытный iOS девелопер тут же упрекнёт меня за использование SQLite напрямую (вернее не напрямую, а через FmDb, но это почти всё равно что напрямую). Он скажет, что нужно использовать CoreData, т.к. оно много всяких ништяков делает автоматически, типа Undo и Redo. И в нём можно рисовать красивые схемки, которые потом приятно показывать заказчику. А в андроиде, например, есть OrmLite.

И я соглашусь – но до той поры, пока у вас база не перевалила, скажем, за 10 таблиц по 500,000 записей в каждой. А если таблиц 52, и есть особо жирные таблицы по миллиону и больше? И базу нужно синхронизировать с сервером через третий формат, к тому же заказчику критично, будет синхронизация длиться час или пять? Если вы встречали задачи такого объёма, добро пожаловать под кат! Если не встречали – то тоже, ведь никто не застрахован от проектов с большими данными, пускай даже таких мобильных и меньше.
Читать дальше →

Интеграция алгоритма стемминга русских слов в fts3 SQLite

Reading time3 min
Views5.8K
В данной статье я хочу поделиться опытом интеграции расширения для стемминга в код SQLite. Все действия выполнялись в ОС Ubuntu 11.10.

Проблема


В fts3 SQLite есть простой стеммер, реализующий алгоритм стемминга Портера, но для русских слов реализации нет. Т.е. MATCH по слову 'гостиницы' не найдёт записи, содержащие слово 'гостиница' и т.д.

Подготовка к компиляции


Что понадобится

  • исходники sqlite3 с репозитория;
  • наш стеммер на языке C (см. далее);
  • опционально библиотека readline (libreadline), если нужна история вводимых команд для консольного клиента.

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

Qt и SQLite и вообще, программирование БД в Qt

Reading time9 min
Views160K
Добрый день.

Ниже пойдет речь о том, как использовать SQLite в Qt. Автор постарался как можно подробнее рассматривать программирование баз данных в Qt.

Об этих двух замечательных продуктах можно прочитать следуя приведенным выше ссылкам, а мы будем конкретно рассматривать программирование БД в Qt, в частности, на примере SQLite. Скажу только, что SQLite несколько отличается от «обычных» баз данных, таких как MySQL тем, что «не обладает» клиент-серверной архитектурой. То есть движок БД не является отдельно работающим процессом, с которым взаимодействует программа. SQLite представляет собой библиотеку, с которой компонуется ваша программа и, таким образом, движок становится составной частью программы. То есть представьте вы решили сохранять все данные, с которыми «сталкивается» ваша программа в обычный файл. В один прекрасный день вы решаете сохранять данные в файле, но организовав это с «реляционной» точки зрения. После этого вы поняли, что новая структура файла должна «распознаваться особым образом». С этого, как минимум, следует, что вам нужно предоставить некоторый API, обеспечивающий связь между этим файлом данных с приложением. В общем, следуя логической постановке приведенного сценария у вас рождается система БД, не требующая сервера БД и собственно, клиента. Получается достаточно быстрая по сравнению с «клиент-серверной» БД система, и сама программа упрощается.
Почему я рассматриваю именно SQLite?

Как подружить SQLite андроида с языком, отличным от английского

Reading time4 min
Views16K

Здравствуй, дорогой читатель!
В этой статье я хочу затронуть проблему хранения кириллических данных в SQLite, попробовать разобраться с Android NDK, и вообще зажить прекрасной жизнью! Однако, с этого момента, считаю важными первые два пункта. О них и поговорим.

Известная проблема SQLite состоит в том, что он не любит никаких символов, кроме латинских, поэтому выполняется такое [1]:
SELECT "ы" LIKE "Ы";
0
SELECT "s" LIKE "S";
1


Такая проблема актуальна для наших широт, и может быть решена пользовательскими функциями.
Но Android не поддерживает функций, поэтому создаются костыли.

Давайте попытаемся обойти костыли и расширить наши возможности

SQLite и полноценный UNICODE

Reading time2 min
Views32K
Наверно многим известна embed база данных SQLite. SQLite полностью поддерживает кодировки UTF-8 и UTF-16. Но есть один нюанс, для строковых и текстовых полей, символы которых выходят за пределы ASCII таблицы, не работает нечувствительный к регистру LIKE и ORDER BY.
Например:
sqlite> SELECT "ы" LIKE "Ы";
0
в то время как
sqlite> SELECT "s" LIKE "S";
1
Давайте разберемся как же это исправить.
Читать дальше →

Тормозной SQLite? Совсем нет!

Reading time2 min
Views30K
Как-то заинтересовавшись SQLite я решил проверить, а не будет ли оно быстрее MySQL, или хотя бы равным по скорости.
Я исходил из того, что SQLite скорее всего будет удобна для мелких таблиц, типа простых счетчиков посещений.
Поэтому провел тесты следующим способом: я пять раз мерял время по 100 циклов обновления записи в базе и пять раз по 100 чтения.
Код тут.
Читать дальше →

Конференция DEFCON 27. Взламываем полицию. Часть 1

Reading time11 min
Views6.8K
Брифинг выступления:

Билл Сверинджен (hevnsnt) уже несколько десятилетий является членом хакерского сообщества, что довольно странно, поскольку его профиль в Twitter указывает, что ему всего 23 года. По словам Билла, всю свою жизнь он посвятил пониманию того, как устроены вещи, и направил накопленные знания на то, чтобы пользоваться техническими преимуществами нашего мира любым возможным способом. Его интересы всегда были сосредоточены на взломе «железа», поэтому Билл любит разрабатывать простые для повторения проекты с использованием широко распространенных недорогих вычислительных платформ, таких как Arduino и RaspberryPi.



Официально Билл, обладая более чем 15-летним практическим опытом в области информационной безопасности, разрабатывает стратегии защиты критически важной деловой инфраструктуры от современных киберугроз. Кибербезопасность — его страсть, и Билл владеет большим опытом создания, развития и управления командами корпоративного класса, которые служат для обеспечения реагирования на инциденты, работают в цифровой криминалистике, в оценке уязвимостей, тестировании на проникновение и обеспечивают соблюдение политики безопасности в крупных корпорациях (Fortune 150).

Билл Сверинджен занимает пост старшего директора отдела киберзащиты компании CenturyLink (Монро, Луизиана), третьей по величине телекоммуникационной компании в США и признанного лидера на рынке интернет-услуг, облачной инфраструктуры и ИТ-решений для корпоративных клиентов и правительства США.

Письмо начинающему изучать Data Science

Reading time2 min
Views64K

Я бы хотел получить такое письмо три года назад, когда только начинал изучать Data Science (DS). Чтобы там были необходимые ссылки на полезные материалы. Статья не претендует на полноту охвата необъятной области DS. Однако для начинающего специалиста будет полезна.


Нейронные сети – это...

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

Crypt, XOR, взлом нешифрованного ZIP и ГПСЧ. Решение задач с r0от-мi Crypto. Часть 2

Reading time4 min
Views8.5K
image

В данной статье узнаем про функцию crypt, узнаем как подбирать пароли к ZIP архиву с незашифрованными именами файлов, познакомимся с утилитой xortool, а так же разберемся с генератором псевдослучайных чисел. Предыдущие статьи на эту тему:

Часть 1 — Кодировки, шифр сдвига, брут хешей и создание картинки с помощью PIL python.

Организационная информация
Специально для тех, кто хочет узнавать что-то новое и развиваться в любой из сфер информационной и компьютерной безопасности, я буду писать и рассказывать о следующих категориях:

  • PWN;
  • криптография (Crypto);
  • cетевые технологии (Network);
  • реверс (Reverse Engineering);
  • стеганография (Stegano);
  • поиск и эксплуатация WEB-уязвимостей.

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

Учеба это не лотерея, метрики лгут

Reading time7 min
Views8.8K
Это статья — ответ на пост, в котором предлагают выбирать курсы исходя из величины конверсии студентов из поступивших в устроившиеся.

При выборе курсов вас должны интересовать 2 цифры — доля людей, дошедших до конца курса и доля выпускников, устроившихся на работу в течение 3-х месяцев после окончания курса.
Например, если курс заканчивают 50% начавших, а на работу в течение 3-х месяцев устраиваются 20% выпускников, то ваши шансы войти в профессию с помощью конкретно этих курсов — 10%.

Внимание будущего студента обращается на две метрики и на этом «советы по выбору» заканчиваются. При этом учебному заведению почему то ставится в вину то, что кто-то из студентов не окончил курс.
Поскольку автор не уточнил, что именно он понимает под «ИТ-профессией», я интерпретирую ее как захочу, а именно «программирование». Всякий блоггинг, IT-менеджмент, SMM и SEO я не знаю, поэтому отвечу только по знакомой области.

На мой взгляд, выбор курсов исходя из двух показателей — в корне неправильный подход, под катом я подробнее опишу почему. Сначала я хотел оставить развернутый комментарий, но текста получилось много. Поэтому оформил ответ отдельной статьей.
Читать дальше →

Базовые команды Linux для тестировщиков и не только

Reading time24 min
Views279K

Предисловие


Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обычно от кандидата на позицию QA инженера требуют знание основных команд (если, конечно, подразумевается работа с Linux), но как понять, про какие команды стоит почитать во время подготовки к собеседованию, если опыта работы с Linux мало или вовсе нет?

Поэтому, хоть про это уже и много раз написано, я всё же решился написать ещё одну статью «Linux для новичков» и перечислить здесь базовые команды, которые нужно знать перед любым собеседованием в отдел (или компанию), где используют Linux. Я подумал, какие команды и утилиты и с какими параметрами я использую чаще всего, собрал фидбек от коллег, и скомпоновал это всё в одну статью. Статья условно делится на 3 части: сначала краткая информация об основах ввода-вывода в терминале Linux, затем обзор самых базовых команд, а в третьей части описывается решение типовых задач в Linux.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity