Задать вопрос
  • Как деплоить с AWS Auto Scaling Group?

    myrkoxx
    @myrkoxx
    developer
    Здраствуйте! Как вариант попробуйте packer.io . Они предлагают вести инфраструктуру как код. Собственно, packer умеет собирать vagrantbox, docker image, amazon ami. Мы собираем свой ami с уже предустановлеными сервисами и готовым кодом и потом просто указываем етот ami для autoscale. Или можна запустить руками. Или через aws cli. Или есть terraform . Мы используем terraform.
    Вот маленький пример:
    github/rabbitmq-infrastucture-example
    Ответ написан
    Комментировать
  • Как проксировать запрос на динамический url?

    @nirvimel
    http {
        server {
            listen *:80
            resolver 8.8.8.8;
            location ~ /path/to/example/(.*) {
                 try_files $1 /path/to/proxy/$1
            }
            location ~ /path/to/proxy/(.*) {
                proxy_pass http://$1;
            }
        }
    }

    Можете проверить: 127.0.0.1/path/to/example/google.com (но там сразу идет 301 редирект на HTTPS).

    UPD: Довавил возможность отдачи локальной статики. Сам еще не тестировал это.
    Ответ написан
    5 комментариев
  • Как скачать страницу сайта после JS редиректа с подменой источника на PHP?

    miraage
    @miraage
    Старый прогер
    HTTP_REFERER
    Ответ написан
    Комментировать
  • Как написать свою библиотеку на JS?

    RubaXa
    @RubaXa
    Прежде чем начать что-то писать, особенно библиотеку, начните с организации инфраструктуры:
    • Система сборки проекта (grunt, gulp, webpack и т.п.)
    • Code style (JSHint, ESHint, JSCS или другие)
    • Тесты и контроль покрытия (QUnit, Karma, Mocha, Istanbul и т.д.)
    • На чем писать (JS, CS, TS или ES6/Babel)
    • Автоматизация контроля изменений
    • Документирование кода и документация (JSDoc3 или JSDuck)
    • Способ распространения (github, bitbucket и т.п.)
    Ответ написан
    Комментировать
  • Публикация статьи об Android-приложении, где?

    naXa
    @naXa
    Junior Java(Script) Developer
    1. Зарубежные сайты с обзорами приложений: Android Rundown, Android Apps Review и Android Authority.
    2. Русскоязычные сайты с обзорами приложений: Android Pit.
    3. Блогеры, которым не всё равно. Найдите блогеров, которые пишут о том, что относится к вашему приложению. К примеру, детское приложение может быть "раскручено" блогером, который пишет для матерей.

    Не стоит забывать и про множество других бесплатных способов разрекламировать приложение.
    Ответ написан
    Комментировать
  • Почему trigger('click') сработал 1 раз?

    @IceJOKER
    Web/Android developer
    Это все из-за НИХ.......Читайте следующий текст вслух, думаю поможет:

    Exorcizamus te, omnis immundus spiritus, omnis satanica potestas, omnis incursio infernalis adversarii, omnis legio, omnis congregatio et secta diabolica, in nomine et virtute Domini Nostri Jesu + Christi, eradicare et effugare a Dei Ecclesia, ab animabus ad imaginem Dei conditis ac pretioso divini Agni sanguine redemptis + . Non ultra audeas, serpens callidissime, decipere humanum genus, Dei Ecclesiam persequi, ac Dei electos excutere et cribrare sicut triticum + . Imperat tibi Deus altissimus + , cui in magna tua superbia te similem haberi adhuc praesumis; qui omnes homines vult salvos fieri et ad agnitionem veritaris venire. Imperat tibi Deus Pater + ; imperat tibi Deus Filius + ; imperat tibi Deus Spiritus Sanctus + . Imperat tibi majestas Christi, aeternum Dei Verbum, caro factum + , qui pro salute generis nostri tua invidia perditi, humiliavit semetipsum facfus hobediens usque ad mortem; qui Ecclesiam suam aedificavit supra firmam petram, et portas inferi adversus eam nunquam esse praevalituras edixit, cum ea ipse permansurus omnibus diebus usque ad consummationem saeculi. Imperat tibi sacramentum Crucis + , omniumque christianae fidei Mysteriorum virtus +. Imperat tibi excelsa Dei Genitrix Virgo Maria + , quae superbissimum caput tuum a primo instanti immaculatae suae conceptionis in sua humilitate contrivit. Imperat tibi fides sanctorum Apostolorum Petri et Pauli, et ceterorum Apostolorum + . Imperat tibi Martyrum sanguis, ac pia Sanctorum et Sanctarum omnium intercessio +.
    Ergo, draco maledicte et omnis legio diabolica, adjuramus te per Deum + vivum, per Deum + verum, per Deum + sanctum, per Deum qui sic dilexit mundum, ut Filium suum unigenitum daret, ut omnes qui credit in eum non pereat, sed habeat vitam aeternam: cessa decipere humanas creaturas, eisque aeternae perditionis venenum propinare: desine Ecclesiae nocere, et ejus libertati laqueos injicere. Vade, satana, inventor et magister omnis fallaciae, hostis humanae salutis. Da locum Christo, in quo nihil invenisti de operibus tuis; da locum Ecclesiae uni, sanctae, catholicae, et apostolicae, quam Christus ipse acquisivit sanguine suo. Humiliare sub potenti manu Dei; contremisce et effuge, invocato a nobis sancto et terribili nomine Jesu, quem inferi tremunt, cui Virtutes caelorum et Potestates et Dominationes subjectae sunt; quem Cherubim et Seraphim indefessis vocibus laudant, dicentes: Sanctus, Sanctus, Sanctus Dominus Deus Sabaoth.
    V. Domine, exaudi orationem meam.
    R. Et clamor meus ad te veniat.
    [si fuerit saltem diaconus subjungat V. Dominus vobiscum.
    R. Et cum spiritu tuo.]
    Oremus. Deus coeli, Deus terrae, Deus Angelorum, Deus Archangelorum, Deus Patriarcharum, Deus Prophetarum, Deus Apostolorum, Deus Martyrum, Deus Confessorum, Deus Virginum, Deus qui potestatem habes donare vitam post mortem, requiem post laborem; quia non est Deus praeter te, nec esse potest nisi tu creator omnium visibilium et invisibilium, cujus regni non erit finis: humiIiter majestati gloriae tuae supplicamus, ut ab omni infernalium spirituum potestate, laqueo, deceptione et nequitia nos potenter liberare, et incolumes custodire digneris. Per Christum Dominum nostrum. Amen.
    Ab insidiis diaboli, libera nos, Domine.
    Ut Ecclesiam tuam secura tibi facias libertate servire, te rogamus, audi nos.
    Ut inimicos sanctae Ecclesiae humiliare digneris, te rogamus audi nos.

    Et aspergatur locus aqua benedicta.
    Ответ написан
  • На чем писать парсер сайтов? на PHP или Ruby?

    webus
    @webus
    Golang | Python | NodeJS | Java
    Нормальные люди не ищут себе приключений, берут scrapy и python и получают многопоточный парсер из коробки.
    Ответ написан
    Комментировать
  • Как сделать что-то подобное ASCII art, только вместо символов - слова, на JavaScript?

    shpaker
    @shpaker
    Вольный хлебопашец
    Интересная задача. Скажу страшное. Я бы изначально начал копать в сторону отрисовки SVG изображений своими руками на канве, заменяя примитивы (такие как линии, дуги и пр.) на слова/фразы.
    Ответ написан
    5 комментариев
  • Почему перестают работать javascript скрипты?

    @IceJOKER
    Web/Android developer
    Это все бабайка )
    Ответ написан
    Комментировать
  • Как лучше учить английский?

    @nuubie
    Начал учить в 24 года английский с абсолютного "0", т.к. в школе/универе учил только немецкий, в 28 лет сдал IELTS на 7.0.

    Несколько советов:
    1. Рекомендую учить английский только по учебникам на английском. Много времени потратил впустую на попытки выучить по Драгункиным, Илонам Давыдовым, Бонкам и т.п... Лучший вариант - взять самые простые уровни Headway и Cutting Edge и последовательно их проходить .
    2. Нужен наставник, чем выше левел, тем более опытный. Upper-Intermediate - Advanced нужен профессиональный преподаватель, желательно сам прошедший хоть какой-то международный экзамен или сертификацию.
    3. Практика - регулярное общение с носителями языка очень быстро убирает т.н. "языковой барьер" даже если сам два слова не можешь связать.
    4. Чтобы грамотно говорить и писать - надо зубарить грамматику регулярно. Лучшие учебники по грамматике: English Grammar in Use и MyGrammarLab, остальное выбирайте на свой вкус. Кроме грамматики есть еще куча нюансов в зависимости от стиля общения/письма: formal/semiformal/informal, в зависимости от страны British/American/Australian English.
    5. Регулярность занятий: выделял 20 - 30 часов еженедельно для самостоятельных занятий, когда стало больше практики на работе - достаточно 4 - 6 часов на самостоятельное изучение и 4 - 6 часов на курсы на работе+speaking club с носителями языка.
    6. Очень помогает понять свои слабые стороны и адекватно оценить текущий уровень сдача экзаменов IELTS, TOEFL.
    7. Многое зависит от целей которые вы перед собой ставите, просто поехать пообщаться в другой стране достаточно с уровнем pre-intermediate+язык жестов :) Если для карьеры - то лучше сразу брать курсы Market Leader или Business Result, English for IT pros и т.д. Во-первых, лексики нужной быстрее наберетесь, во-вторых, материал будет понятней, т.к. тесно связан с вашими интересами.
    8. Есть масса аудиоподкастов и видеоуроков, мне нравятся: EnglishBusiness Pod, ESL Pod, EnglishVid, openlanguage.com
    Ответ написан
    3 комментария
  • Как можно оптимизировать мой код php+mysql?

    nowm
    @nowm
    Можно не только сократить количество запросов, но и сделать код немного аккуратнее и безопаснее.

    <?php
    // Эта строчка — где-то в другом файле — где в данный момент инициализируется соединение с БД
    $db = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'username', 'password');
    
    $sth = $db->prepare("
        SELECT 
            t.`id`, 
            DATE_FORMAT(rt.`data`, '%d.%m.%Y') remont_date,
            ma.`name` marka,
            mo.`name` model,
            t.`serial`,
            rt.`work_id`,
            rt.`sum`
        FROM `tech` t 
        LEFT JOIN `remont_tech` rt ON rt.`tech_id` = t.`id` AND rt.`status` <> 'delete'
        LEFT JOIN `marka` ma ON ma.`marka` = t.`marka`
        LEFT JOIN `model` mo ON mo.`id` = t.`model`
        WHERE 
            t.`user` = ? AND
            TIMESTAMPDIFF(DAY, rt.`data`, NOW()) BETWEEN 0 AND 30
        ORDER BY rt.`data` DESC
    ");
    $sth->execute(array($myrow['id']));
    $result = $sth->fetchAll();
    ?>
    <table>
        <tr>
            <th>№</th>
            <th>Дата</th>
            <th>Оборудование</th>
            <th>Проделанная работа</th>
            <th>Сумма</th>
        </tr>
        <?php if (!count($result)) : ?> 
            <tr>
                <td>0</td>
                <td colspan="4">Ничего не найдено.</td>
            </tr>
        <?php else : ?> 
            <?php $summ = 0; ?>
            <?php foreach ($result as $key => $row) : ?> 
                <tr>
                    <td><?= $key+1 ?></td>
                    <td><?= $row['remont_date'] ?></td>
                    <td><?= sprintf('%s %s(%s)', $row['marka'], $row['model'], $row['serial']) ?></td>
                    <td><?= $row['work_id'] ?></td>
                    <td><?= number_format($row['sum'], 0, ',', ' ') ?> руб.</td>
                </tr>
                <?php $summ += $row['sum']; ?>
            <?php endforeach; ?> 
            <tr>
                <td colspan="3"></td>
                <td><b>ИТОГО:</b></td>
                <td><b><?= number_format($summ, 0, ',', ' ') ?> руб.</b></td>
            </tr>
        <?php endif; ?> 
    </table>


    А всякие: рамки таблицы, ширины ячеек и прочее — лучше в файле со стилями прописывать, а не инлайном. Их там гораздо проще обслуживать.
    Ответ написан
    Комментировать
  • Лучший ЯП для парсинга веб-сайтов

    KEKSOV
    @KEKSOV
    Что парсер Хабра глючит, может, так получится
    $s = file_get_contents( 'yandex.html' );
    
    $tidy = new tidy();
    $tidy->parseString( $s, array(
        'output-xml'       => true,
        'clean'            => true,
        'numeric-entities' => true
    ), 'utf8' );
    
    $tidy->cleanRepair();
    $xml = simplexml_load_string( tidy_get_output( $tidy ) );
    
    $adwords = $xml->xpath( '//*[@class="b-adv"]' );
    var_dump( $adwords );
    exit;
    
    $tads = $xml->xpath( '//*[@id="tads"]' );
    var_dump( $tads );
    exit;
    
    $a = $xml->xpath( '//a[@href]' );
    //var_dump( $a );
    
    array_walk( $a, function( $item ) {
        $href = $item->attributes()->href;
        if ( strpos( $href, 'start=' ) !== false )
            echo $href."\n";
        //var_dump( $attrs );
        //exit;
    } ); 
    
    Ответ написан
    1 комментарий