Pull to refresh
2
0
Павел Терентьев @Sanovskiy

Web-разработчик

Send message

Мелкая питонячая радость #3: Poetry

Reading time 2 min
Views 35K


Управление зависимостями? Шо, опять?


Экосистема Python породила целую пачку способов управления зависимостями в проектах.
Прямо сейчас можно выбирать между setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile.
Но французского питониста Sébastien Eustace все эти способы не устроили, и он написал свою штуку для менеджмента питонячих пакетов — Poetry. Зачем он это сделал? Чтобы заменить все эти setup.py, requirements.txt, setup.cfg, MANIFEST.in и Pipfile чем-то простым и понятным. Плюс добавить кое-что полезное сверху.

Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 12

Технологии межзвездных путешествий в научной фантастике

Reading time 14 min
Views 56K

[source]

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

В этой статье я постарался составить обзор способов доставки бренных человеческих тел от одной звездной системы к другой, которым пользуются наиболее популярные НФ произведения, плюс один мой личный фаворит.
Warp five, engage!
Total votes 75: ↑73 and ↓2 +71
Comments 174

Советские мечты о будущем

Reading time 9 min
Views 92K


Помните очаровательного котика, которые чихал в заставке советского мультфильма? Мы помним, и нашли его — вместе с ворохом другой рисованной фантастики. В детстве она пугала и обескураживала, поскольку поднимала серьезные, взрослые темы. Настала пора пересмотреть старые мультфильмы, чтобы узнать, о каком будущем мечтали в той стране.
Total votes 138: ↑136 and ↓2 +134
Comments 144

Создание системы формальной верификации с нуля. Часть 1: символьная виртуальная машина на PHP и Python

Reading time 10 min
Views 6.1K
Формальная верификация — это проверка одной программы либо алгоритма с помощью другой.

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

Более подробное описание формальной верификации можно увидеть на примере решения задачи о Волке, Козе, и капусте в моей предыдущей статье.

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

Для этого я написал свой аналог виртуальной машины, на символьных принципах.

Она разбирает код программы и транслирует его в систему уравнений (SMT), которую уже можно решить программным способом.

Так как информация о символьных вычислениях представлена в интернете довольно обрывочно,
я вкратце опишу что это такое.
Читать дальше →
Total votes 17: ↑13 and ↓4 +9
Comments 3

Квантовое будущее

Reading time 103 min
Views 19K
    В мире будущего уже нет государств и народов. IT-корпорации и нейрокомпьютерные технологии определяют жизнь человечества.
    В мире будущего нет никакой «реальности». Каждый подключен к сети через нейроинтерфейс и видит собственную «реальность», дополненную в той или иной степени.
    В мире будущего границы личности и сознания стираются под напором все более изощренной кибернетики. Сможет ли она изменить «природу» человека, или «живой» суперкомпьютер будет все также вынужден страдать, ошибаться и воевать.


   

Вступление


   К концу 21-ого, началу 22-ого века завершился распад всех государств на Земле. Их место заняли могущественные транснациональные IT-корпорации. Меньшинство, принадлежащее к руководству этих компаний, форсировано и навсегда обогнало в развитии остальное человечество, благодаря смелым экспериментам с модификацией собственной натуры. В ходе конфликта с доживающими свой век государствами они вынуждены были переселиться на Марс, где начали вживлять сложные комплексы нейроимплантов, еще до рождения ребенка. Марсиане сразу же рождались не совсем людьми, с соответствующими возможностями, намного превосходящими человеческие.
Читать дальше →
Total votes 39: ↑32 and ↓7 +25
Comments 39

Музыка для ваших проектов: 12 тематических ресурсов с треками по лицензии Creative Commons

Reading time 7 min
Views 118K
Подборка пригодится разработчикам, дизайнерам, видеорежиссерам и контент-мейкерам, которые ищут музыку для своих проектов — приложений, игр или видеороликов.

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

Total votes 57: ↑56 and ↓1 +55
Comments 9

It’s the future

Reading time 5 min
Views 85K

Этот пост просто шутка и не пытается выставить инструменты, упомянутые здесь, в дурном свете. Я использую их постоянно, они великолепны, и я рекомендую их использовать. По мотивам It's the future @ CircleCI Blog


— Эй, я бы хотел научиться писать крутые веб-приложения. Слышал, у тебя есть опыт.


— Да, я как раз занимаюсь фронтендом, юзаю пару тулз.


— Круто. Я щас делаю простое приложение — обычный TODO-лист, используя HTML, CSS и JavaScript, и планирую заюзать JQuery. Это норм?


— Не-не-не. Это олдскул. Джиквери мёртв — никто не использует его теперь! Тебе нужен React. Это будущее.


— Окей, лады. А что это?


Читать дальше →
Total votes 178: ↑167 and ↓11 +156
Comments 287

История игрушки. Поле Чудес

Reading time 11 min
Views 297K
Случилось это в городе, закрытом от шпионов, цыган и бед социалистической экономики. В Советском Союзе было ровно 10 таких городов, повязанных атомным секретом.

Жизнь мальчиков с математическими способностями в атомных городах была предопределена — школа с пятерками по алгебре и геометрии, мех-мат столичного университета, возвращение в систему, квартира через год, кандидатская степень в 40 лет, ВАЗ 2103 к пятидесяти годам, звание доктора, гараж, шесть соток, четыре квадратных метра.

Бесконечные размышления о математическом моделировании ядерных взрывов разрывали мальчикам мозг. Мозг можно было отвлечь тремя способами — алкоголем, азартными играми и спортом. Секс и музыка помогали не всегда.

Pole Chudes для iPhone

Далее я проваливаюсь в историю компьютерной игры.
Под тегом личные воспоминания ветерана без ссылок, рекламы, картинок и кода.
Спасибо за чудесные комментарии, парни.

Читать дальше →
Total votes 933: ↑923 and ↓10 +913
Comments 311

Компания GScreen таки выпустила ноутбук с двумя дисплеями

Reading time 1 min
Views 3.5K


Сегодня компания GScreen анонсировала давно ожидаемую некоторыми любителями гаджетов модель ноутбука с двумя дисплеями. Называется это чудо техники gScreen SpaceBook, а информация о нем появилась еще пару лет назад. Тогда компания сообщала, что ноутбук должен появиться вот-вот, но все оказалось немного по-другому, и gScreen SpaceBook стал доступен для предзаказа только сейчас.

Читать дальше →
Total votes 33: ↑30 and ↓3 +27
Comments 32

Не гуглом единым… Онлановые инструменты

Reading time 1 min
Views 806
Сделал подборочку не гугловских инструментов:

www.gliffy.com — Онлайн-диаграммы, эквивалент MS Visio;
thinkature.com — Онлайн-диаграммы, размышлений;
show.zoho.com — Онлайн-презентации;
www.bubbl.us — Онлайн Mind Maps;
us.ajax13.com — Онлайн-офис;
www.empressr.com — Онлайн-презентации;
www.burnham-on-sea.co.uk/fax.html — Послать онлайн-факс;
www.zamzar.com/?www.deltaasesores.com — Конвертер файлов;
www.chatcreator.com/chatbox — Возможность добавить на свой сайт чат;
www.ortelius.de/kalender/form_en2.php — Перевод дат по разным календарям, есть даже календарь Майя;
www.webwag.com — Web-комбайн: rss-агрегатор, погода, поиск, возможность добавлять свой контент;
www.netvibes.com — Web-комбайн: читает rss, показывает, погоду, хранит todo листы, проверяет почту, хранит закладки, записки, хранит todo из rememberthemilk, всё это дополняет приятным и удобным интерфейсом;
www.rememberthemilk.com — Онлайн-органайзер;
voo2do.com — todo-листы, поддержка проектов.
Total votes 52: ↑48 and ↓4 +44
Comments 28

Прибитый к низу футер своими руками

Reading time 10 min
Views 222K
Все, кто привык к полноценно оформленным страницам сайтов, предпочитает вид «прибитого» (прилипающего, sticky) к низу футера страницы. Но есть в интернете две беды: нерастущие вниз поля ввода и неприбитые (к низу окна) футеры. Например, когда открываем короткие по высоте страницы типа habrahabr.ru/settings/social — сразу бросается в глаза, что информация, призванная быть в нижней части окна просмотра, прилипает к содержанию и находится где-то посередине, а то и в верхней части окна, когда внизу — пусто.

Так, вместо того, чтобы .
Данное пособие для начинающих верстальщиков покажет, как за 45 минут сделать «прибитый» футер, исправив недоработки даже такого уважаемого издания, как Хабр, потягаться с ним в качестве исполнения своего перспективного проекта.
как сделать, чтобы трава была зелёная, а футеры - прибитыми
Total votes 22: ↑11 and ↓11 0
Comments 22

LINQ для PHP. Часть 1. Я его слепила из того, что было, а потом, что было, то и полюбила

Reading time 9 min
Views 8.1K
Сказ о том, как LINQ на PHP портировали. Сравнение ныне существующих библиотек с табличками, но без графиков — прилагается.

Картинка код для привлечения внимания (картинок не дождётесь!)
echo Phinq::create($people)
  ->groupBy(function($person) { return $person->residence->region; })
  ->select(function($grouping) {
    $obj = new stdClass();
    $obj->people = $grouping;
    $obj->region = $grouping->getKey();
    return $obj;
  })->orderBy(function($obj) { return $obj->people->count(); }, true)
  ->aggregate(function($current, $next) {
    $count = $next->people->count();
    return $current . sprintf(
      "%d %s (%s) live in the %s region\n",
      $count,
      $count === 1 ? 'person' : 'people',
      $next->people->aggregate(function($current, $next) {
        if ($current !== null) {
          $current .= ', ';
        }
        return $current . sprintf('%s [%s]', $next->name, $next->residence->code);
      }),
      $next->region
    );
  });
Кто видел C# или любой функциональный язык — при виде этого шедевра закатит глаза (если они предварительно не вылетят из орбит). И, наверное, будет прав. Но можно ещё вот так:
$lowNums =
	from('$n')->in($numbers)->
	where('$n < 5')->
	store($digits)->into('digits')->
	select('$digits[$n]');
А как ещё можно? Осторожно, много текста!
Total votes 54: ↑44 and ↓10 +34
Comments 55

LINQ для PHP. Часть 2. Если гора не идёт к Магомету, Магомет идёт к горе

Reading time 9 min
Views 5.3K
Как можно было заметить из моей предыдущей статьи со сравнением библиотек LINQ для PHP, библиотек много, а качества мало: ленивые вычисления не реализованы ни в одной библиотеке, тесты есть в половине случаев, типы коллбэков ограничены, а иногда и вовсе незнамо что выдаётся за LINQ. Поэтому я написал свою библиотеку. Встречайте:

YaLinqo — Yet Another LINQ to Objects for PHP

Возможности:

  • Самый полный порт .NET LINQ на PHP, со многими дополнительными методами. Некоторые методы отсутствуют, но работа ведётся. Всего реализовано более 70 методов.
  • Ленивые вычисления, текст исключений и многое другое, как в оригинальном LINQ.
  • Детальная документация PHPDoc к каждому методу. Текст статей адаптирован из MSDN.
  • 100% покрытие юнит-тестами.
  • Коллбэки можно задавать замыканиями, «указателями на функцию» в виде строк и массивов, строковыми «лямбдами» с поддержкой нескольких синтаксисов.
  • Ключам уделяется столько же внимания, сколько значениям: преобразования можно применять и к тем, и к другим; большинство коллбэков принимает на вход и то, и другое; ключи по возможности не теряются при преобразованиях.
  • Минимальное изобретение велосипедов: для итерации используются Iterator, IteratorAggregate и др. (и их можно использовать наравне с Enumerable); исключения по возможности используются родные похапэшные и т.п.

Пример кода:

// Отфильтровать продукты с ненулевым количеством, поместить в соответствующие категории,
// отсортированные по имени. Продукты отсортировать сначала по убыванию количества, потом по имени.

from($categories)
    ->orderBy('$v["name"]')
    ->groupJoin(
        from($products)
            ->where('$v["quantity"] > 0')
            ->orderByDescending('$v["quantity"]')
            ->thenBy('$v["name"]'),
        '$v["id"]', '$v["catId"]', 'array("name" => $v["name"], "products" => $e)'
    );

Детальное описание, обсуждение архитектуры, ссылки
Total votes 63: ↑52 and ↓11 +41
Comments 24

История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову

Reading time 17 min
Views 10K
Чтобы освоить азы Web программирования, я решил написать HTML5 игру — головоломку под названием Triplex (www.quadpuzzle.ru). Написать игру для себя и для друзей — полдела. Захотелось довести проект до ума, сделав из игры продукт для широкого круга пользователей. Насколько получилось — судить вам.

    Правила игры просты. На игровом поле разложены фигуры из квадратиков. Цель игры — уложить все фигуры в указанный прямоугольник. Вращать можно только одну фигуру, помеченную кружком, если она есть. Решение в каждой задаче существует и единственное.

                        

Читать дальше →
Total votes 114: ↑109 and ↓5 +104
Comments 51

Первое апреля в Интернете

Reading time 3 min
Views 15K
По традиции собирательный пост со всеми найденным на просторах Интернета сайтами и первоапрельскими нововведениями на них. Пополняемый.

Для начала те ресурсы, что обнаружил лично:


Под катом ссылки из комментариев
Total votes 118: ↑95 and ↓23 +72
Comments 237

FAQ по утечке текстов SMS с сайта «Мегафона»

Reading time 3 min
Views 7.3K
Феерическая история, ставшая сегодня самой популярной новостью дня в сети, вызывает немало кривотолков. Даже люди, близкие к веб-технологиям, не всегда адекватно оценивают произошедшее, что уж говорить о прочей сетевой общественности, часть которой уже объявила случившееся вирусной рекламой. Я постараюсь развеять туман теории заговора в форме ответов на задававшиеся в комментариях вопросы.
Читать дальше →
Total votes 197: ↑165 and ↓32 +133
Comments 153

Three.js — 3D в браузере своими руками или WebGL становится ближе

Reading time 7 min
Views 32K
Тема про three.js от mrdoob в свое время проскакивала на хабре, но детально еще не рассматривалась. В этой и(возможно) последующих статьях я постараюсь исправить это упущение. К сожалению, three.js не предоставляет никакой внятной документации, поэтому все знания по нему получены экспериментальным путем и ковырянием спеки WebGL, т.е. любые дополнения автору топика только приветствуются.

В этой статье мы создадим простенькое приложение, которое продемонстрирует базовые возможности этого движка, поработаем с камерой, светом и тенью, а также научим наши объекты перемещаться. В конце статьи ссылка на файлы демки и скриншот. Итак, к делу!
Читать дальше →
Total votes 40: ↑39 and ↓1 +38
Comments 22

Отечественный флэш плеер

Reading time 2 min
Views 889
imageУже давно использовал плеер производства http://flv-mp3.com/, который отличался простотой и элегантностью, но давеча получил письмо с новостью о выходе новой версии их замечательного плеера. Мое описание возможно покажется слишком эмоциональным, но это только потому, что плеер — Это бомба!

Прежде всего, демо-сайт — http://uppod.info/. После часа разборок с настройками, я могу заверить, что все фишки демосайта реализуются плеером на ура.


Читать дальше →
Total votes 108: ↑90 and ↓18 +72
Comments 97

Bacon And Eggs. Велосипед с яйцами и линейной алгеброй!

Reading time 1 min
Views 2.4K
Недавно у меня появился ряд задач, связанных с процедурной графикой в вебе, анимацией и механикой.
Став искать простые пути там, где их обычно нет, я наткнулся на чудненькую библиотеку «Bacon And Eggs» от Эндрю Хойера.
Красную или синюю?
Total votes 26: ↑24 and ↓2 +22
Comments 9

Information

Rating
Does not participate
Location
Бердск, Новосибирская обл., Россия
Date of birth
Registered
Activity