Как стать автором
Обновить
23
0
Масляев Александр @maslyaev

Пользователь

Отправить сообщение

Не только ORM (NoORM)

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

Привет, Хабр! Хочу поделиться самодельной питонской библиотекой, существенно упрощающей взаимодествие с базами данных.

«Написать свой собственный ORM» – неплохая задачка для тех, кто решил поглубже изучить некоторые языковые особенности Питона, но в данном случае задача была другая – написать не ORM, а не-ORM. Механизм, упорядочивающий и облегчающий доступ к базам данных, но который сам по себе ни в коей мере не является ORM-ом.

Читать далее
Всего голосов 8: ↑7 и ↓1+7
Комментарии22

Смертельный номер: передаём данные без физического взаимодействия

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

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

Ээээ... Ну давай посмотрим что там
Всего голосов 32: ↑5 и ↓27-22
Комментарии151

О бедненьком NULLе замолвите слово

Время на прочтение5 мин
Количество просмотров10K

Есть вещи, которые не нравятся, есть вещи, которые бесят, есть вызывающие жгучий гнев, и есть ситуация с NULL в SQL.

Давайте немножко похоливарим по этому поводу.

Читать далее
Всего голосов 13: ↑10 и ↓3+9
Комментарии152

ORM: почему эта задача не имеет решения, но делать с этим, тем не менее, что-то нужно

Время на прочтение7 мин
Количество просмотров28K


Современные информационные технологии поражают своей мощью, ошеломляют открывающимися возможностями, обескураживают заложенным в них техническим совершенством, но есть один смехотворный пункт, об который IT раз за разом снова и снова ломает зубы. Показать пользователю данные из базы, получить от него ввод, положить обратно в базу, показать результат. Поля ввода, кнопочки, галочки, надписи — казалось бы, что в них может быть такого запредельно сложного, чтобы потребовалось городить головоломные конструкции типа фреймворков поверх шаблонизаторов поверх фреймворков поверх транспайлеров? И почему несмотря на все колоссальные усилия мы имеем то, что игрушечные примеры по туториалу, конечно, делаются легко и приятно, но как только инструментарий сталкивается с реальными задачами реальной жизни… как бы это сказать помягче… с ростом сложности решаемых задач наблюдается сильная нелинейность возрастания сложности реализации. Ладно бы речь шла о чём-то действительно головоломном уровня теоретической физики или космической техники, так ведь нет же — кнопочки и галочки. Почему эта ерунда десятилетиями продолжает отравлять жизнь гражданам и трудовым коллективам?

Причин, наверно, как всегда оно бывает, много. Наверно все они так или иначе достойны рассмотрения, но здесь и сейчас мы поговорим о задаче объектно-реляционного отображения (Object-Relational Mapping, ORM), которая всегда в каком-либо виде стоит за всеми этими «кнопочками и галочками».
Читать дальше →
Всего голосов 63: ↑48 и ↓15+33
Комментарии262

Увеличиваем случайность того, что и так [наверно] [почти] случайно

Время на прочтение9 мин
Количество просмотров5.6K

случайные числа вкуснее, если их немножко поперчить

Будем сочетать теорию с практикой — покажем, что улучшение энтропии случайных последовательностей возможно, после чего посмотрим исходные коды, которые это делают.

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

В погоне за качественными случайными числами люди изобретают весьма остроумные приспособления (см. например здесь и здесь). В принципе, весьма неплохие источники случайности встроены в API операционных систем, но дело серьёзное, и нас всегда немножко гложет червячок сомнения: а достаточно ли хорош тот ГСЧ, который я использую, и не подпорчен ли он… скажем так, третьими лицами?
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии12

Асимметричная криптография с одноразовым секретным ключом: описание идеи и возможное применение

Время на прочтение4 мин
Количество просмотров8.1K

(для понимания того, о чём говорится в этой статье, необходимо и достаточно хотя бы в общих чертах представлять, что такое асимметричная криптография и как работает электронная подпись)

Сценарий использования одноразового секретного ключа:

  1. Создаётся ключевая пара, состоящая из секретного (secret key, SK) и открытого (public key, PK) ключей.
  2. При помощи секретного ключа выполняется ряд операций. Первая из них, создание открытого ключа, уже выполнена на первом шаге.
  3. Выполняется на первый взгляд противологичное действие – секретный ключ уничтожается без возможности восстановления.

Читать дальше →
Всего голосов 14: ↑14 и ↓0+14
Комментарии79

Альтернативы блокчейну для ведения защищённых реестров

Время на прочтение6 мин
Количество просмотров19K

Технология «блокчейн» прекрасна и перспективна. Всё в ней было бы совсем замечательно, если бы несколько досадных нюансов:

  1. Очень долго. Время добавления транзакции в цепочку биткоина, например, оценивается от минуты до получаса. В Ethereum добавляется быстрее, но в любом случае довести время до долей секунды невозможно. Нечего и думать о том, чтобы сделать добавление данных в блокчейн частью OLTP-транзакции.
  2. Майнинг — это очень ресурсоёмко. Он, собственно, и нужен для того, чтобы добавить в архитектуру вычислительную сложность.
  3. Очень дорого. Следствие ресурсоёмкости.
  4. Технология отвратительно масштабируется как вверх, так и вниз. Если нужно построить систему, которая будет регистрировать миллиарды записей ежедневно, блокчейн не годится. Также блокчейн будет стрельбой из пушки по воробьям, если его пытаться приспособить для надёжного логирования какой-нибудь мелкой ерунды.

Хотелось бы иметь технологию, которая бы одновременно и реестры позволяла вести непрошибаемо надёжным образом, и была бы как-то попроще и подешевле.
Но как?
Всего голосов 43: ↑41 и ↓2+39
Комментарии89

Философия информации, часть 7-я, заключительная. Системообразование

Время на прочтение24 мин
Количество просмотров6.4K

Окончание стартовавшей отсюда семисерийной сказки.

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

Читать дальше →
Всего голосов 15: ↑10 и ↓5+5
Комментарии153

Философия информации, глава 6. Существа

Время на прочтение22 мин
Количество просмотров4.4K

Начавшееся здесь повествование неизбежно вывело нас на обсуждение надличностных сущностей. На первый взгляд они, возможно, и не имеют непосредственного отношения к тому, что мы привыкли называть информационными технологиями, но никакая философия информации не может обойти стороной этот вопрос. Кому любопытно, добро пожаловать под кат.
Читать дальше →
Всего голосов 10: ↑6 и ↓4+2
Комментарии68

Философия информации, глава 5. Целенаправленно действующий субъект

Время на прочтение23 мин
Количество просмотров5.4K

Начав отсюда, потихоньку добрались до сладенького, до самых головоломных вещей — причинности, времени, феномена управления и свободы воли. Заодно походя выясняем, могут ли компьютеры мыслить и могут ли роботы обладать свободой воли.
Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии107

Философия информации, глава 4. Системы

Время на прочтение26 мин
Количество просмотров6.5K

Эта публикация — четвёртая часть сериала, начало которого здесь.

Краткое содержание предыдущих серий. Сначала мы разобрались с тем, что об информации нельзя говорить как о материи, что пусть материя будет материальной, а информация материальной быть не должна. Потом вниманию любопытной публики была представлена логическая конструкция, позволяющая говорить о существовании информации так, чтобы если её «зазаемление» на материю и происходило, то исключительно аккуратно и правильно. Для того, чтобы двинуться дальше, пришлось изобрести специальный инструмент обоснования существования предметов рассуждения, который был описан в 3-й главе. Теперь мы подошли к понятию «система». Кому интересно — милости прошу под кат.

Читать дальше →
Всего голосов 8: ↑5 и ↓3+2
Комментарии22

Философия информации, глава 3. Основания

Время на прочтение24 мин
Количество просмотров7.9K

Эта публикация — третья часть сериала, начало которого здесь. Если вы не ознакомились с началом истории, то вам, возможно, вообще не будет понятно, что этот текст здесь делает.

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

Читать дальше →
Всего голосов 12: ↑8 и ↓4+4
Комментарии17

Философия информации, глава 2. Существование информации

Время на прочтение34 мин
Количество просмотров12K

Перед прочтением этого текста рекомендуется прочитать начало этой истории. Иначе будет не понятно, зачем понадобилось выстраивать сложную конструкцию вместо того, чтобы сделать как обычно, по-простому.
Читать дальше →
Всего голосов 13: ↑8 и ↓5+3
Комментарии75

Философия информации, часть 1-я

Время на прочтение26 мин
Количество просмотров30K

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

Заранее извиняюсь за то, что будет реально много букв. Тема чрезвычайно сложная, многоаспектная и на редкость запущенная. Рад был бы вместить всё в одну небольшую статью, но тогда неизбежно получится халтура с зияющими логическими дырами, замыленными вопросами и обрубленными сюжетными линиями. Поэтому предлагаю уважаемой публике немножко запастись терпением, устроиться поудобнее и получить удовольствие от спокойного вдумчивого погружения в вопросы, всю дорогу относившиеся к «этого никто не знает».

Читать дальше →
Всего голосов 15: ↑9 и ↓6+3
Комментарии85

Хакнуть Ландауэра

Время на прочтение2 мин
Количество просмотров7.9K
В 1961-м году Рольф Ландауэр в своей статье «Irreversibility and heat generation in the computing process» сформулировал принцип, согласно которому в любой вычислительной системе, независимо от её физической реализации, при потере 1 бита информации выделяется теплота в количестве по крайней мере W = kB T ln2, где kB − постоянная Больцмана, а T − температура вычислительной системы в кельвинах.

То есть если вычисление производится при комнатной температуре (300K), то при потере 1 бита данных вычислительная система не может не рассеять в окружающее пространство примерно 2,7×10-21 Дж.

Считается, что единственный способ преодолеть это ограничение − использовать так называемые обратимые вычисления. В этой статье я докажу, что принцип Ландауэра не является догмой, и преодоление устанавливаемого им барьера возможно в том числе и без использования обратимых вычислений.
Читать дальше →
Всего голосов 19: ↑10 и ↓9+1
Комментарии29

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность