Search
Write a publication
Pull to refresh
56
0
Илья @WST

Инженер-программист

Send message

Peewee – лёгкая, гибкая и очень быстрая ORM на Python

Reading time5 min
Views123K
image

Предлагаю всем джангистам/алхимистам немного отвечься и почитать вольную интерпретацию вводного туториала и частично документации по Peewee – stand-alone ORM, обязательной к ознакомлению любому питонщику и, в особенности, фласкеру. Пишут о ней мало, а зря. С Peewee очень просто подружиться, особенно если вы уже знакомы с какой-нибудь ORM на ActiveRecord. Что более важно – с ней приятно дружить :) Ну, начнём.


Установка
С pip:
pip install peewee


Из репозитория:
git clone https://github.com/coleifer/peewee.git cd peewee python setup.py install


Тесты:
python setup.py test


Есть обвязка для flask:
pip install flask-peewee



Определение моделей или «попахивает джангой»


Весь нижеследующий код можно повторить один к одному в интерактивном интерпретаторе или отдельном скрипте.

from peewee import *

db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    birthday = DateField()
    is_relative = BooleanField()

    class Meta:
        database = db  # модель будет использовать базу данных 'people.db'


Типов полей много, на все случаи жизни. Peewee берёт на себя преобразование питоновских объектов в значения, подходящие для базы данных, и наоборот.
Читать дальше →

Письмо дошло! Дума приняла изменения в законе о льготах для малых ИТ-компаний

Reading time2 min
Views54K
Спустя три года (!) оно случилось: теперь для того, чтобы платить страховые взносы по сниженной ставке в 14%, нужно иметь 7 сотрудников в штате. Раньше минимальный порог равнялся 30. Пруфлинк на Минкомсвязь России.

Самая важная часть:
«Принятый закон меняет порог численности сотрудников в компаниях, претендующих на льготы, с 30 до 7 человек».

История


Три года назад, в 2010-м, Дума подготовила изменения в Федеральном законе «О страховых взносах в Пенсионный фонд Российской Федерации, Фонд социального страхования Российской Федерации, Федеральный фонд обязательного медицинского страхования». Суть изменений была прекрасна: для малых ИТ-компаний процент страховых отчислений снижался до 14% вместо стандартных 34%. Загвоздка была в самом определении малых ИТ-компаний, а именно:

  • Количество сотрудников компании — не менее 50 (потом снизили до 30, но в корне это ничего не поменяло).
  • Доля доходов от реализации ИТ-продуктов и оказания ИТ-услуг — не менее 90%


Со вторым у большинства веб-разработчиков проблем бы не возникло, а вот первое — фактически сводило на нет всю полезность закона. Мы решили пойти в наступление.
Читать дальше →

Мурлыканье кошки на javascript

Reading time2 min
Views23K
Недавно появилась идея сгенерировать кошачье мурлыканье на javascript. Поискав в интернете эту тему — ничего не было найдено, значит надо реализовать!
Исследовав каким образом это вообще можно сделать — решил использовать такую замечательную вещь, как Web Audio API.
Современные браузеры уже более-менее нормально поддерживают эту технологию.
Читать дальше →

Ответный вызов разработчикам Telegram

Reading time3 min
Views111K
Об авторе: Moxie Marlinspike — хакер-исследователь, придумавший атаку SSL-stripping (и нашедший ещё полдюжины уязвимостей в SSL), разработчик системы Convergence, призванной заменить списки «доверенных сертификатов», а также со-основатель компании Whisper Systems, купленной Twitter в 2011 году. Также стоит почитать обсуждение на Hacker News.



На этой неделе некая компания под названием Telegram анонсировала «защищённый» мессенджер. Насколько защищённый? Если верить их FAQ, «очень защищённый». Мне стало интересно, и я решил почитать описание их протокола. У меня тут же появились некоторые сомнения и опасения (как мягко сказано! а всего-то полчаса назад было «сначала я подумал, что это Томас Пташек решил постебаться» — прим. пер.) Однако, когда из них попытались вытянуть технические подробности, они начали перечислять учёные степени разработчиков вместо того, чтобы вступить в диалог. Кроме того, они отклонили все мои предложения о сотрудничестве.
Читать дальше →

OpenGL в Qt 5.1 – Часть 1 и 2

Reading time8 min
Views61K
Эта статья является перевод статьи OpenGL in Qt 5.1 — Part 1 и Part 2


Часть 1



Эта статья является первой в серии. Она покажет, как использовать OpenGL в Qt 5. В этой статье будет краткий экскурс в историю поддержки OpenGL в Qt. Затем мы перейдем к описанию первой части новых возможностей, которые вошли в Qt 5.1. Последующие статьи будут содержать описание большего количества возможностей, а так же будут приведены несколько простых примеров того, насколько легко можно использовать Qt для работы с OpenGL.

Читать далее

Вторая жизнь старых стрелочных индикаторов

Reading time2 min
Views197K
Как-то попались мне в руки старые стрелочные индикаторы уровня от старого магнитофона, и я решил вдохнуть в них новую жизнь, сделав из них «хардварные виджеты» для отображения загрузки процессора и оперативной памяти компьютера.

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

Биткойн — это деньги?

Reading time5 min
Views12K
Пугающие истории появились в The New Yorker. В публикации рассказывается о паре из Техаса, которая направлялась в Луизиана через границу дабы купить подержанный автомобиль. Они взяли с собой все свои сбережения в наличных деньгах. Их остановила полиция, что нашла денежные средства в крошечной трубе. Дело закончилось арестом обоих.

Но тогда для пары всё обошлось — государственные грабители заключили с людьми сделку — пара без проблем покидала тюрьму в обмен на деньги. Хотя их дети могли остаться без родителей и быть брошенными либо в детдома, либо отданы в приемные семьи, но госпреступников не волновала их судьба. Причем, это законно! По гражданскому праву США государство имеет право на конфискацию активов. На самом деле, этот закон стал огромным источником дохода для правительства (министерство юстиции за 2012-й год собрало $ 4,2 млрд. с помощью такого грабежа).

Однако рассмотрим другой сценарий.
Читать дальше →

Развёртывание приложений node.js

Reading time3 min
Views71K

Деплоймент приложения всегда является критической точкой цикла разработки… и никогда не бывает лёгким. Если Вы пользуетесь услугами хостинговых провайдеров, то вероятнее всего Вам уже предоставили достаточный всяческих удобств сервис. В данной статье я расскажу про развёртывание приложений без создания сложной хостинговой инфраструктуры…
буквально две команды

Почему я ненавижу virtualenv и pip

Reading time9 min
Views102K
Я не разделяю всеобщей любви к virtualenv (далее — venv) и pip. Я считаю, что они лишь вносят неразбериху и более того — вредят. Python-программисты чаще всего не соглашаются со мной, да и venv+pip де-факто считается стандартом в python-сообществе. Так как я понимаю, насколько голословными звучат мои высказывания, решил написать сей трактат. Конечно, я иногда пускаюсь спорить на эту тему и в реальной жизни: и ну нравится мне заводить людей и наблюдать, как страстно они остаивают свою позицию. Но при этом мне всегда кажется, что словесно я не могу обосновать свою позицию в полной мере. Поэтому вместо того, чтобы постоянно пытаться вербально доказывать свою точку зрения, я решил написать эту статью, дабы потом просто показывать её людям. Может быть тогда некоторые со мной согласятся, потому что сейчас не согласен почти никто. А может наоборот, как только мои доводы будут всецело поняты, найдутся те, кто их аргументированно опровергнет. Так или иначе, я буду рад любому варианту развития событий.
Читать дальше →

OpenVZ для Debian Wheezy

Reading time2 min
Views11K
Устанавливаем vzctl из стандартного репозитария Debian и запрещаем его обновление, чтобы vzctl от Proxmox не потянул за собой 100500 зависимостей:
apt-get update
apt-get install vzctl
apt-mark hold vzctl

Подключаем репозитарий от Proxmox:
Читать дальше →

60 FPS? Легко! pointer-events:none!

Reading time2 min
Views99K


Вы, наверное, уже читали интересную статью о том, как можно отключать эффекты :hover при скроле – это позволяет здорово сохранить отзывчивость сайта, но имеет один недостаток – вам приходится опираться на один общий класс, и это плохо.

.hover .element:hover {
  box-shadow: 1px 1px 1px #000;
}
Читать дальше →

Быстрая, экономная, устойчивая…

Reading time10 min
Views61K

Если вам понадобится алгоритм сортировки массива, который:
  • Работал бы гарантированно за O(N*log(N)) операций (обменов и сравнений);
  • Требовал бы O(1) дополнительной памяти;
  • Был бы устойчивым (то есть, не менял порядок элементов с одинаковыми ключами)

то вам, скорее всего, предложат ограничиться любыми двумя из этих трёх пунктов. И, в зависимости от вашего выбора, вы получите, например, либо сортировку слиянием (требует O(N) дополнительной памяти), либо пирамидальную сортировку (неустойчив), либо сортировку пузырьком (работает за O(N2)). Если вы ослабите требование на память до O(log(N)) («на рекурсию»), то для вас найдётся алгоритм со сложностью O(N*(log(N)2) — довольно малоизвестный, хотя именно его версия используется в реализации метода std::stable_sort().

На вопрос, можно ли добиться выполнения одновременно всех трёх условий, большинство скажет «вряд ли». Википедия о таких алгоритмах не знает. Среди программистов ходят слухи, что вроде бы, что-то такое существует. Некоторые говорят, что есть «устойчивая быстрая сортировка» — но у той реализации, которую я видел, сложность была всё те же O(N*(log(N)2) (по таймеру). И только в одном обсуждении на StackOverflow дали ссылку на статью B-C. Huang и M. A. Langston, Fast Stable Merging and Sorting in Constant Extra Space (1989-1992), в которой описан алгоритм со всеми тремя свойствами.

Так что же это за алгоритм?

Математический фокус для MP3, JPEG и Гомера Симпсона

Reading time6 min
Views110K
Девять лет назад я посещал курс физики в колледже, и мой профессор рассказал одну вещь, которая поразила меня. Я думаю, не будет преувеличением сказать, что это одно из наиболее широко используемых математических открытий — от оптики до квантовой физики, радиоастрономии, сжатия MP3 и JPEG, рентгеновской кристаллографии, распознавания голоса и МРТ. Этот математический инструмент называется преобразование Фурье, в честь французского физика и математика 18-го века Жозефа Фурье. Им пользовались даже Джеймс Уотсон и Фрэнсис Крик, чтобы декодировать структуру двойной спирали ДНК из рентгенограмм, произведенных Розалиндой Франклин. (Крик был экспертом по преобразованиям Фурье, он в шутку назвал свою книгу «Преобразования Фурье для орнитологов», чтобы объяснить суть Уотсону, заядлому любителю птиц).
Читать дальше →

Работа с реляционными базами данных в Scala

Reading time5 min
Views19K
Добрый день, сегодня хотелось бы рассказать, как наша команда работает с базами данных. У нас в компании в основном используется Oracle и в нашей команде много людей, кто умеет хорошо его готовить. Нам изначально хотелось получить полный доступ к его возможностям: иерархическим запросам, аналитическим функциям, передаче объектов и коллекций, как параметров запросов, и, может быть, если не будет другого способа — хинтам. Модель у нас не очень сложная, поэтому сознательно отказались от ORM.

В качестве основы взяли Apache DbUtils и сделали для него простую обёртку на Scala. Ниже я расскажу, как возможности Scala, особенно её последней версии 2.10, помогли упростить работу с базой данных.

А пытливых читателей, кто дочитает до конца, ждёт сюрприз.
Читать дальше →

Wireshark — приручение акулы

Reading time10 min
Views1.1M


Wireshark — это достаточно известный инструмент для захвата и анализа сетевого трафика, фактически стандарт как для образования, так и для траблшутинга.
Wireshark работает с подавляющим большинством известных протоколов, имеет понятный и логичный графический интерфейс на основе GTK+ и мощнейшую систему фильтров.
Кроссплатформенный, работает в таких ОС как Linux, Solaris, FreeBSD, NetBSD, OpenBSD, Mac OS X, и, естественно, Windows. Распространяется под лицензией GNU GPL v2. Доступен бесплатно на сайте wireshark.org.
Установка в системе Windows тривиальна — next, next, next.
Самая свежая на момент написания статьи версия – 1.10.3, она и будет участвовать в обзоре.

Зачем вообще нужны анализаторы пакетов?
Для того чтобы проводить исследования сетевых приложений и протоколов, а также, чтобы находить проблемы в работе сети, и, что важно, выяснять причины этих проблем.
Вполне очевидно, что для того чтобы максимально эффективно использовать снифферы или анализаторы трафика, необходимы хотя бы общие знания и понимания работы сетей и сетевых протоколов.
Так же напомню, что во многих странах использование сниффера без явного на то разрешения приравнивается к преступлению.

Начинаем плаванье


Для начала захвата достаточно выбрать свой сетевой интерфейс и нажать Start.
Читать дальше →

Обновление Яндекс Диска привело к неработоспособности Windows и программ

Reading time3 min
Views300K
image

Предыстория


30 ноября 2013 года появились первые сообщения от пользователей что у них:
  • Возникла ошибка при запуске ....dll
  • Запуск программы невозможен так как отсутствует ....dll
  • Не найдена библиотека ....dll
  • Слет активации (как следствие пропажи системных файлов)


Такая же проблема настигла и меня, когда включив компьютер я обнаружил, что часть программ не запускается, а Windows не активирована.
Проблема заключается в том, что при обновлении Яндекс Диска установщик попытался удалить не только старую версию программы, но и весь системный раздел.
Читать дальше →

Легендарный криптограф Диффи попытался остановить патентного тролля

Reading time3 min
Views113K
Патентные тролли в последнее время становятся всё более наглыми. Пользуясь недостатками американского законодательства, они зарабатывают миллионы долларов, подавая иски против рядовых компаний и предпринимателей. Одним из последних примеров стала активность фирмы TQP Development, которая предъявила нескольким сотням компаний претензию в использовании запатентованной схемы «криптографически защищённой электронной коммерции». В патенте, фактически, описано одновременное использование SSL и RC4.

Почти 140 компаний выплатили TQP Development в общей сложности более 45 миллионов долларов. Среди них — такие гиганты, как Amazon (заплатила $500 тыс.) и Microsoft ($1 млн).
Шантаж продолжался бы и дальше, но на сцену вышел интернет-магазин Newegg. Он отказался платить лицензионные отчисления и потребовал рассмотрения дела в суде.
Читать дальше →

АНБ заразило вирусами более 50.000 сетей по всему миру

Reading time2 min
Views48K
Голландская газета NRC Handelsblad публикует новую порцию документов от бывшего сотрудника АНБ Эдварда Сноудена. На слайде презентации АНБ от 2012 года, показаны пути получения информации со всего мира, в том числе с помощью т.н. CNE (Computer Network Exploitation — метод получения информации из закрытых компьютерных сетей с помощью заражения отдельных машин). Согласно информации на слайде, уже в 2012 году таким образом было скомпрометировано более 50 тысяч по всему миру, некоторые из которых, судя по представленной карте, расположены в России.

Для осуществления подобных компьютерных атак в АНБ создано специальное подразделение TAO (Tailored Access Operations). Согласно открытым источникам, в данном подразделении работают более тысячи профессиональных хакеров. В анонимном интервью изданию Bloomberg Businessweek бывшие американские чиновники рассказали, что в подразделении используются автоматизированная система для взлома и сбора информации из скомпрометированных сетей, «улов» которой составляет около 2 ПБайт в час.
Читать дальше →

Разбираем интерфейсные детали-ошибки на примере одного банковского клиента

Reading time8 min
Views74K
Время изменилось. Теперь в одиночку можно написать приложение для миллионов человек. Не нужно думать ни о хостинге, ни о дистрибуции, ни о масштабируемости — облака сделают всё за вас.

Теперь один человек может влиять на миллионы. А значит, тем сильнее бремя ответственности за собственные действия и за выпускаемое качество. Метро в бедные послевоенные годы делалось таким помпезным и «дворцовым» не только ради хвастовства, а чтобы миллионы простых людей каждый день развивали вкус.

Стоит сейчас какому-нибудь «Энгри бёрдз» написать «2-е птицы», и все молодое поколение будет неправильно наращивать окончания у числительных (на самом деле, наращиваются только порядковые числительные: «2-й дом», «1-му победителю», но «2 птицы»).

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

Поговорим сегодня о внимании к деталям на одном практическом примере (будет много картинок).

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

Information

Rating
Does not participate
Location
Красногвардейское, Адыгея, Россия
Date of birth
Registered
Activity