Vulpo One

16:9 iframe

Пока переделывал видосы заодно немного подправил оформление для вставленного видео. Было какое-то такое безумие, не помню где его взял:

.videoblock > .content {
    overflow: hidden;
    padding-top: 56.25%;
    position: relative;

    > iframe {
        border: 0;
        position: absolute;
        height: 100%;
        width: 100%;
        top: 0;
        left: 0;
    }
}

Теперь намного проще:

.videoblock > .content > iframe {
    width: 100%;
    height: 100%;
    aspect-ratio: 16 / 9;
}

Comments


Починяю блог

Решил написать в бложек. Ожидание: написал, закоммитил, залилось.

Реальность: плагины отвалились, эмбеды сдохли. Сижу с утра, правлю ссылки на ютюбчик, обновил кучу дохлого, пересмотрел-переслушал много чего, словил ностальгию.

Comments


Я сделяль

Почти год назад я выкинул вордпресс и стал переносить свой бложек на пеликан - и вот процесс завершен. Блог перенесен, а теперь сделана и новая шкурка - Tumblr inspired, UIkit powered, hand crafted, c тёмным вариантом через prefers-color-scheme: dark. Как раз к новому крисмасу.

Comments




PHP 7.0 yield

Однажды я жаловался, что

<?php
foreach((function () {for ($i = 0; $i < 10; $i++) yield $i;})() as $i) echo $i;

в PHP не работает. Так вот. Начиная с PHP7 благодаря новому парсингу синтаксиса

<?php
foreach((function () {for ($i = 0; $i < 10; $i++) yield $i;})() as $i) echo $i;  // 0123456789

очень даже работает.

Comments


Hello World, Let’s Encrypt

Тем временем Let’s Encrypt разродилась первым сертификатом — для helloworld.letsencrypt.org. Чтобы потестить перейдите по ссылке внизу поста и установите их корневой сертификат.

Подал бложек и хомяк на бета-тестиование. А Новая Ярушка скорее будет среди первых после релиза.

src: letsencrypt.org

Comments


Almost Monkey Patching in С++

include <string>

std::string operator*(std::string& s, unsigned int n)
{
    std::string cml;

    cml.reserve(s.size() * n);

    for (decltype(n) i = 0; i < n; i++) {
        cml += s;
    }

    return cml;
}

int main()
{
    std::string s   = "test";
    std::string sss = s*3;

    std::cout << sss << std::endl; // testtesttest
}

Comments


Метро 2015

Повысились тарифы и мы возвращаемся к нашей серии моделей по выгодности проезда

Итак, часть 4

metro2015

  1. Исчезли проездные на 25 и 50 поездок
  2. Резко подорожал подорожник. Всё-таки неудивительно: повышение минимальной цены — на 6 рублей
  3. Вернул актуальность проездной на 40 поездок на 30 дней
  4. Единый выпал вообще куда-то за границы разумного. Может, конечно, с поездками на наземном транспорте не всё так печально
Тарифы взяты с сайта подорожника podorozhnik.spb.ru
Модель по-прежнему валяется на BitBucket

Comments


PHP Inline Generator

Внезапно до меня дошло как записать эту вещь в 1 строчку

<?php
foreach(call_user_func(function () {for ($i = 0; $i < 10; $i++) yield $i;}) as $i) echo $i;

Т.е. имеем такой синтаксис для “одноразовых” генераторов

<?php
$generator = call_user_func(function () {
     while(1) {
        yield generate_something();
    }
});

Comments