Задать вопрос
  • Как удалить сгенерированное поле?

    iiiBird
    @iiiBird Куратор тега HTML
    Пока ты спишь - твой конкурент совершенствуется
    по нормальному лучше делать просто задавая элементу display: none;
    я не думаю что у вас там ситуация, что эти элементы будут генерироваться по 100+ штук. а значит полюбому лучше делать через display: none;
    Ответ написан
    Комментировать
  • Самое большое число в PHP?

    riky
    @riky
    Laravel
    echo PHP_INT_MAX;
    зависит от разрядности ОС.
    при превышении волшебным образом превращается в float.
    Ответ написан
    Комментировать
  • Как получить вечный access token для facebook?

    @farpram Автор вопроса
    Если кому потребуется: webimho.ru/topic/8451
    Действителен только 60 дней ;(
    Ответ написан
    4 комментария
  • Какие решения существуют для конвертации "думающих" клиентов?

    lxsmkv
    @lxsmkv
    Test automation engineer
    Человек как правило стремится осуществить оформленную мечту. Помогите ему оформить эту мечту.
    Чтобы из "да, надо бы куда-нибудь сьездить" у него в голове было "хочу в Норвегию на рыбалку".
    И уже когда мечта оформлена, можно человеку предлагать то, что приблизит его к этой мечте.

    Кстати все откладывают деньги на отпуск, а почему нет в турфирмах такого сервиса, помогающего отложить денги на отпуск. Переводишь автоматом по чуть-чуть. А к осени бац, и твой отпуск на сто долларов дешевле, чем для всех остальных. Турфирма получает поток ликвидных средств а клиенты скидки.
    Ответ написан
    1 комментарий
  • Как удалить последнюю пустую линию в тексте?

    romy4
    @romy4
    Exception handler
    rtrim($a,"\n")
    Ответ написан
    Комментировать
  • Можно ли заработать в мире Unix-like, unix-way?

    xtala
    @xtala
    Постигает Дзен
    Суть в том что лицензия GPL не ограничивает коммерцию программного обеспечения. Она обязывает открывать и предоставлять обществу исходники программы, а так же обязывает людей использующих код лицензированный GPL делать тоже самое это и есть принцип "лево" . Так же вы можете зарегистрировать торговую марку и работать на бренд. Вас будет защищать авторское право. Т.е. модифицировать и продавать вашу программу посторонние люди смогут, но без ваших лейблов и имени ( Пример RedHat и CentOS ) Как на этом можно заработать?
    -- Получать донат, при должной раскрутке приложения можно получать преддонат на последующие версии. Пример -- Krita.
    -- Предоставлять исходники программы, но доступ к хранилищу исходников сделать платным ( юридическая магия ). Не поомню где увидел, но точно знаю что такая схема используется многими на западе
    -- Предоставлять поддержку или обучение
    Ну и наверное еще много способов найдется, юристы могут в этом деле оказать хорошую помощь. Донат наверное самый простой путь.
    Ответ написан
    1 комментарий
  • Должен ли Web-разработчик уметь администрировать сервера?

    Администрировать может и не должен, но стремиться расширить знания в области настройки серверов должен и обязан. Что есть администрирование? Умение настроить бд - это администрирование? Знания о конфигах nginx - это администрирование? Настройка докера - это администрирование? Вы хотя бы без хотя бы поверхностного знания смежных областей не сможете принимать их в расчет при написании кода и будете писать заведомо худший код, потому что при нулевых знаниях написанное вами приложение будет отдавать картинки через php, а не через nginx, админ будет валить низкую скорость работы бд на отсутствие в базе данных индексов, а вы будете валить все на отсутствие выделенного сервера для БД. В дополнение к этому ваш код может содержать дыры и вы не будете понимать эти моменты, сваливая все на плохого админа.

    То ли на хабре, то ли на гиктаймс была хорошая статья, где железячника, программиста и спеца по каким-то процессам собрали вместе, чтобы они устройство разработали. Они разработали, а потом глюки полезли и спецы начали валить ответственность друг на друга. В итоге пригласили универсала и он нашел причину на стыке программирования и особенностей контроллера, которую не увидели в силу недостаточного знания смежной области программист и железячник.
    Ответ написан
    3 комментария
  • Полезен ли Honest Dollar гражданину РФ?

    @dog_funtom Автор вопроса
    Фрилансер через Upwork
    TL;DR: Нет, не актуально, потому что не дает пройти регистрацию до конца.

    Из-за отсутствия вменяемых объяснений насчет возможных ограничений, пришлось тупо попытаться зарегестрироваться. Оказалось, что на втором этапе нельзя пройти дальше, если не указать гражданство или резиденство в США. Так что, лажа это или нет, она гражданам РФ не актуальна.

    Очередной сайт болеет популярной болезнью: он лезет туда, где сидят люди со всего мира, но не считает нужным сразу предупредить, что актуален лишь некоторым. Так сложно получить расположение по IP и вывесить предупреждалку, или что-нибудь в таком духе?

    Это мне напоминает некоторые русские «интернет-магазины», которые предлагают жителю Волгограда «купить с бесплатной доставкой» их восхитительные товары, и только на самом последнем шаге заказа перед оплатой выясняется, что этот «интернет-магазин» не рассылает в «замкадье» даже платно. Ребята, кто разрабатывает сайты, не делайте так, ок?
    Ответ написан
    Комментировать
  • Как разбить большую функцию на несколько мелких?

    @abcd0x00
    У тебя неправильный подход. Ты сначала делаешь какую-то большую функцию, а потом хочешь её разбивать. Так вот эта большая функция твоя - это полное фуфло. Вот в чём дело. Потому что ты её уже неправильно сделал.

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

    Например, ты хочешь вывести строку "hello" в C.
    Код
    #include <stdio.h>
    
    int main(void)
    {
        printf("hello\n");
        puts("hello");
        fputs("hello\n", stdout);
        fprintf(stdout, "hello\n");
        fwrite("hello\n", 1, 6, stdout);
        return 0;
    }

    Вывод
    [guest@localhost c]$ .ansi t.c -o t
    [guest@localhost c]$ ./t
    hello
    hello
    hello
    hello
    hello
    [guest@localhost c]$


    Вот это уже готовые функции, их уже когда-то написали. И они решают твою задачу. Причём они для этого изначально вообще не предназначались. Многие из них не используются для таких задач, но они могут быть использованы. Они просто что-то делают с тем, что в них подают. А что в них подают и предназначались ли они для этого изначально - это неважно.

    А вот та же задача, но перечисленные функции использовать запрещено. Что делать?
    Можно написать функцию вместо них.
    Код
    #include <stdio.h>
    
    void f1(void)
    {
        putchar('h');
        putchar('e');
        putchar('l');
        putchar('l');
        putchar('o');
        putchar('\n');
    }
    
    void f2(char c)
    {
        putchar(c);
        putchar('e');
        putchar('l');
        putchar('l');
        putchar('o');
        putchar('\n');
    }
    
    void f3(char c)
    {
        int i;
        
        putchar('h');
        putchar('e');
        for (i = 0; i < 2; i++)
            putchar(c);
        putchar('o');
        putchar('\n');
    }
    
    int main(void)
    {
        f1();
        f2('h');
        f3('l');
        return 0;
    }

    Вывод
    [guest@localhost c]$ .ansi t.c -o t
    [guest@localhost c]$ ./t
    hello
    hello
    hello
    [guest@localhost c]$


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

    А вот теперь давай подумаем, как так получилось, что функция printf(), написанная десятки лет назад, решила нашу задачу и тысячи других задач, а свои функции f1(), f2() и f3() могут решить только нашу задачу, но кроме неё не могут решить и десятка других задач?

    В чём разница между printf() и f1()? В том, что в printf() строка "hello" передаётся через параметр (то есть выводимый текст параметризован), тогда как в f1() строки вообще нет, она образуется из символов, которые даже не параметризованы. А что у нас с f2(), ведь там есть параметр? А в f2() выводимый текст параметризован недостаточно, так же как и в f3().

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

    Вот таким образом и пишется функция: ты должен ставить задачу и решать её вызовом какой-то функции. А если функции не существует, то ты всё равно должен её вызывать, но потом дописывать её содержимое. И вот дописывая функцию, внутри неё ты делаешь то же самое - ставишь задачу и решаешь её вызовом какой-то функции.

    В примере выше ты решаешь задачу вывода строки "hello" функцией f1(), а внутри функции f1() ты решаешь задачу вывода символа на экран функцией putchar(). (Благо putchar() готова уже и хорошо параметризована. Но если не готова, то ты так же её вызываешь, а потом дописываешь её внутренность, в которой всё повторяется - задача и вызов.)
    Ответ написан
    Комментировать
  • Как продвинуть в сеть нечто новое для рунета?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Оригинал здесь
    1. Должны узнать о существовании: группы в соц. сетях, картинки в Instagram, ролики на youtube, PR на форумах, Success story в блогах, рассылка почты блоггерам данной тематики с просьбой размещения ссылки на Ваш ресурс (разумеется, платно).
    2. Должны понять за 1-2 секунды просмотра сайта: "Сайт современный и красивый"
    3. Должны понять за 5 секунд просмотра сайта: "О чём сайт?"
    4. Должны понять за 15 секунд просмотра сайта: "Какая польза от него для посетителя" и главное: "Отличия от других", "Фишка", "Изюминка", "Ноу-хау" и т.д.
    5. Должны понять за 25-30 секунд просмотра сайта: "Как работает и что необходимо, чтобы пользоваться?"
    6. Не уложились в 30-и секундную презентацию или не выдержали любой из критериев (или необходимых минимальных требований) для поддержания интереса посетителя - ПОТЕРЯЛИ ПОСЕТИТЕЛЯ НАВСЕГДА!
    7. Если посетитель задержался более, чем на минуту и, в этот момент, он двигал "мышкой" (или скролил страницу) - это явно говорит о его заинтересованности: как только он уведёт мышь со страницы (для закрытия вкладки) сразу выведите DIV-модалку (слой, а не окно!) с крупным текстом, чтобы он добавил Ваш сайт в избранное: "Понравилось у нас? Жми Ctrl+D и возвращайся!" (или подобное) и кнопку: "Задать вопрос", ведущую на форму с 4-мя элементами (ввод "E-mail" - скройте): основное поле ввода текста сообщения, чекбокс: "Прошу ответить мне" (если отмечен, то поле "E-mail" видно под ним), скрытое поле "E-Mail" и кнопка "Отправить".
    8. Лишнее - не надо спрашивать насильно (это очень сильно отпугивает): ФИО, Телефон, почту и т.д.

    (кто дополнит - Welcome! и заранее, Спасибо!)
    Ответ написан
  • Как подписывать разработанные сайты?

    dom1n1k
    @dom1n1k
    Единственный адекватный вариант - пункт в договоре (так делает например САЛ).
    Если фрилансер - можно попробовать устные договоренности (но понятно, что клиент в любой момент может передумать - и это его право).
    А за все ужимки с потайным функционалом надо отбивать руки.
    Ответ написан
    1 комментарий
  • Нужно ли валидировать длину поля?

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

    DevMan
    @DevMan
    обойти массив и сделать то, что нужно.
    проблема то в чем? незнакомы с циклами или функциями для работы с массивами?

    upd и массив то у вас одномерный.
    Ответ написан
    Комментировать
  • Как совместить Kohana и Angular?

    Дружат вместе. В основном, благодаря тому, что Angular'у в общем-то без разницы, что у вас там на бекенде. Делаете на Kohana API(возомжно REST) и пишите себе спокойно Angular-приложение. Иными словами они никак друг от друга не зависят, а что вы подразумеваете под словом "подружить" мне не совсем ясно. Советую для начала ознакомится с документацией по Angular. Забудьте Kohana в качестве инструмента для отображения каких-то там страниц, получите на выходе 2 приложения - бекенд и фронтенд. Подключайте к бекенду что хотите, хоть мобильное приложение, хоть Angular, хоть React, хоть самого Аллаха.
    Ответ написан
    1 комментарий
  • Как делать перенос строки в телеграм боте при отправки сообщения?

    @nllm
    Запрос лучше собрать через http_build_quer
    $data = array('foo'=>'bar',
                  'baz'=>'boom',
                  'cow'=>'milk',
                  'php'=>'hypertext processor');
    
    echo http_build_query($data);


    Перенос строк сделать через \n
    html-теги не работают (точнее, не все работают в телеграм). Тэг (br) переноса строки не работает (и он указан не верно). Для того чтобы работала разметка, надо указать параметр parse_mode = markdown или html.

    Про разметку: https://core.telegram.org/bots/api#markdown-style
    Ответ написан
    Комментировать
  • Почему в интерфейсе нельзя использовать protected или private?

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

    Вообще говоря, это искусственное ограничение, принятое для удобства. В том же C++ в качестве интерфейсов используются чисто виртуальные (абстрактные) классы без состояния. Наличие же специальной синтаксической конструкции (интерфейсов, как в C# или Java) позволяет явно подчеркнуть, что программиста там не ждет никакого сюрприза и этот тип используется как "клей" между другими классами.
    Ответ написан
    Комментировать
  • Не могу найти сайт об цивилизации и будущем?

    Astrohas
    @Astrohas
    Python/Django Developer
    futurenow.ru -первый в запросе на словосочетание "сайт о будущем" гуглит надо почаще
    Ответ написан
    8 комментариев
  • Авто создание поддомена с сайтом?

    copist
    @copist
    Empower people to give
    Когда я впервые познакомился с сервером, который создаёт поддомены третьего уровня, а также умеет "парковать" домены второго уровня, я прежде всего представил себе, что там автоматически создаются директории для пользовательских скриптов, конфиг для апача и какой-то рутовый демон делает sudo service apache reload

    Но на деле оказалось не так.
    1. В DNS стоит правило (см https://toster.ru/q/7456) - все поддомены ***.myservice.ru отправляются на один IP
    * IN A 192.168.1.1
    Замени 192.168.1.1 на IP твоего сервера

    2. В апаче/nginx не стоит привязка виртуального хоста к имени домена (myservice.ru или иной), все запросы отправляются на обработку на один скрипт (PHP?)

    nginx
    {
        listen 80;
        # server_name не указывать
    }


    3. В коде приложения (PHP) вычисляется домен в запросе HTTP и исходя из этого строится ответ
    У пользователя в таблице user прописано имя домена, то есть пользователь Вася - это домен vasya.myservice.ru

    $domainName = $_SERVER['HTTP_HOST']; // vasya.myservice.ru
    $userDomain = $db->findUserByDomain($domainName);
    echo 'Владелец этой страницы: ', $userDomain->fullName; // Владелец этой страницы: Вася
    // ...


    Это если речь про веб-интерфейс. А если у тебя реально разные приложения (бинарники?) ставятся из архива, то тебе нужно запускать разные команды из PHP, например

    1. Создать директорию, сгенерировать конфиги htaccess или host для Apache
    2. Распаковать архив /или слинковать какую-то общую часть через symlink
    3. Заставить Apache сделать reload конфигов

    Для этих команд тебе пригодится php.net/manual/en/function.system.php php.net/manual/en/function.exec.php или php.net/manual/en/function.shell-exec.php

    Последний пункт самый небезопасный, потому нужно пользователю апач дать права на выполнение команды от рута. Лучше делать это по крону или от имени специального сервиса-демона, а не из PHP.
    Ответ написан
    7 комментариев