Рубрика «sql» - 67

Facebook выложил на гитхабе фреймворк OSquery, он осуществляет низкоуровневый мониторинг процессов в OS X и Linux и показывает их в виде SQL-таблиц по запросу. Такой способ работы по-своему удобен, ведь можно объединять разные таблицы.

Например, если мы хотим посмотреть названия, pid и порты всех процессов, которые прослушивают порты во всех интерфейсах, то составляем запросик

SELECT DISTINCT 
  process.name, 
  listening.port, 
  process.pid
FROM processes AS process
JOIN listening_ports AS listening
ON process.pid = listening.pid
WHERE listening.address = '0.0.0.0';

Читать полностью »

(UPDATE. Вот также и с Плутоном, сначала объявили планетой, вывели в люди, а потом бац — и теперь астероид. Существенное дополнение к высказанным мыслям в конце.)

Сколько видов SQL-связи вы знаете? Три?

1) один-ко-многим;
2) один-к-одному;
3) многие-ко-многим.

Однако если заняться вопросом вплотную, возникает желание списочек расширить.
Читать полностью »

За время работы разработчиком Access набралась куча полезностей, которую считаю своим долгом выложить на Хабр. Многие из этих сниппетов находятся в сети, а некоторые находятся с трудом или безнадежно затеряны.

image
Читать полностью »

В этой статье я опишу две абстракции-классы, написанные средствами nodejs, которые предоставляет функционал распределения запросов по открытым каналам (tcp-socket). При этом учитывается общая загруженность системы и, если каналов не хватает, открываются новые, по мере уменьшения общего количества запросов — «лишние» каналы закрываются.

Этот балансировщик можно использовать для распределения запросов по каналам, которые представляют собой по сути net.Socket. Для этого нужно внести изменения в метод по открытию и закрытию канала, добавлению запроса в канал.

В примере, который я опишу, используется библиотека pg, предоставляющая функционал по открытию сокетов к серверу с базой данных. При этом дефолтовое управление пулом коннектов, предоставляемое библиотекой, никак не используется.
Читать полностью »

Очередная критическая уязвимость в Drupal 7

Вслед за уязвимостью в XML-RPC, недавно компанией Sektion Eins была найдена уязвимость, которой подвержены все версии 7 ветки. Она позволяет выполнить произвольный SQL-запрос в БД друпала не имея никаких прав в системе. Опасность определена как наивысшая. 15 октября вышло обновление ядра до версии 7.32, которое устраняет эту уязвимость. Разработчики настоятельно советуют обновить ядро немедленно. Обновление не займёт много времени, необходимо обновить только файл /includes/database/database.inc. Спасти сайты до обновления может только блокировка сайта, maintenance mode не поможет.
Читать полностью »

Введение

Я работаю в организации, которая начала внедрять ПО от компании АСКОН, если быть точным, то «Комплекс решений АСКОН 2013» (далее «Комплекс») + КОМПАС. Я занимаюсь администрированием этого «Комплекса». «Комплекс» имеет трехуровневую архитектуру (Клиент-Сервер приложений-Сервер БД). Ключевым продуктом «Комплекса» является ЛОЦМАН:PLM, также имеется набор утилит администрирования. Одна из утилит администрирования называется «ЛОЦМАН WorkFlow Конфигуратор» (далее WF-конфигуратор).

image
Рисунок 1 — ЛОЦМАН WorkFlow конфигуратор

В ходе работы были выявлены основные недостатки WF-конфигуратора:

  • Нет русскоязычного поиска по ФИО, есть только по логину (причем только в виде доменлогин, кстати в «Центре управления комплексом», там где добавляются пользователи в систему, вообще нет никакого поиска...);
  • При большом количестве пользователей (>1K) он стал ужасно тормозить (около 4 минут на операцию добавления пользователя).

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

Здравствуй!
Предлагаю всем желающим вспомнить или познать суть блокировок движка InnoDB в MySQL.

Блокировки и уровни изоляции транзакций InnoDB в MySQL
КДПВ: deadlock в исполнении тропической фауны

Читать полностью »

При устройстве на работу java программистом меня попросили написать тестовое web приложение «Телефонный справочник». Хочу поделиться с вами этим «шедевром».

Вид и функциональность приложения

  • Добавление;
  • Удаление;
  • Поиск;
  • Валидация данных.

Читать полностью »

Введение

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

Выполнение кода на JavaScript из кода, написанного на Java:

import javax.script.*;

public class InvokeScriptFunction {
    public static void main(String[] args) {
        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByName("JavaScript");

        // JavaScript code in a String
        String script = "function hello(name) {print('Hello, ' + name);}";

        // evaluate script
        engine.eval(script);
    }
}

Читать полностью »

Циничное решение логических задач

Недавно набрел в «Википедии» на статью о так называемой самой сложной логической задаче. Статья потрясла меня то ли своей провокационностью, то ли логической безграмотностью, особенно в части авторских пояснений её условий и возможного хода решения.

Условие задачи

Есть три бога: A, B и C, один из которых бог истины, другой – лжи, а третий — случая. Бог истины всегда говорит правду, бог лжи — всегда обманывает, бог случая может говорить и правду, и ложь. Требуется определить богов, задав 3 вопроса, на которые можно ответить «да» или «нет». Каждый вопрос задаётся только одному богу. Боги понимают язык, но отвечают на своём языке, в котором есть 2 слова «da» и «ja», причём неизвестно, какое слово обозначает «да», а какое «нет».
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js