• Какой дистрибутив выбрать?

    @MattLe
    Советы из личного опыта:
    Сам 2 года назад ставил себе этот вопрос... Выбрал Debian с KDE.
    KDE потому что красиво, удобно и все можно настроить... Закос под макс сделал небольшой
    Debian потому что найти помощь по этой ОС оказалось проще чем по Ubuntu (сам в шоке, но на форуме убунты такое чувство что больше таких же тупых как и я чем опытных).
    2 года стоит у меня Debian, устанвоил 1 раз и все летает, не чего не глючит и не тормазит, сейчас вышла 8 (а я на 7) и готовлюсь морально к миграции.
    Сам Web разрабодчик и скажу чесно что под Linux'ом гораздо приятнее девелопить чем под виндой, особенно если настроить все под себя. самая большая проблема была это работа с макетами psd. Решил ее очень просто, серивсом https://assets.adobe.com туда закидываю макет и могу снимать размеры, вытаскивать гарфику, смотреть шрифты... в общем все что надо мне для верстки.
    Ответ написан
    1 комментарий
  • Как с помощью регулярного выражения найти заданный текст?

    @hector
    php программист
    Может в два этапа:
    1) preg_replace, что внутри кавычек заменяем на пустоту
    2) preg_match_all
    Ответ написан
    4 комментария
  • Зачем нужны отдельные классы для работы с БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    На самом деле это интересный вопрос. А, точнее, два: зачем нужен такой класс, и зачем их пишут.
    Ответ на первый становится очевиден, когда начинаешь не смотреть на код, а писать его ;)
    Практически все библиотеки, представленные в РНР, представляют в пользование программиста довольно низкоуровневые функции, которые позволяют, с одной стороны, довольно гибко управлять процессом, но с другой - делают этот процесс ну очень многословным. Самый яркий пример - CURL. Никто, находясь в здравом уме, не будет писать все время эти бесконечные curlopt. Надо пилить библиотеку, которая реализует стандартные методы пост, гет за один вызов, и только для исключительных случаев позволяет задать кастомные параметры.

    То же самое касается и работы с БД. К примеру, очень часто нам бывает нужно получить из БД массив. Сколько строк нужно написать для этого? Классическим говнокодом - 5:
    $ret = array();
    $res = mysql_query();
    while ($row = mysql_fetch_assoc($res)) {
        $ret[] = $row;
    }

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

    Но в здесь мы подходим ко второй причине. Дело в том, что "классический говнокод" из видеоуроков всегда очень упрощен. Авторы видеоуроков не знают, что для работы с БД надо делать миллион дополнительных действий - от обработки ошибок до защиты от инъекций. И если все эти действия выполнять вручную, то времени больше ни на что не останется - придется снова и снова переписывать одни и те же тонны кода для каждого запроса.

    Возьмем для примера код примера из мануала. Даже выкинув из него очевидные глупости, мы получаем пол-дюжины строк кода. Это на ОДИН запрос.
    if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
        $stmt->bind_param("s", $city);
        $stmt->execute();
        $stmt->bind_result($district);
        $stmt->fetch();
    }

    И это все - чтобы получить единственную строчку!

    В то время как с помощью (нормальной) библиотеки вся работа с БД сведется к 1 (одной) строчке, а все необходимые телодвижения будут выполнены библиотекой автоматически:
    $distr = $db->getOne("SELECT District FROM City WHERE Name=?", $city);

    Теперь перейдем ко второму вопрос - зачем их пишут.
    Самый основной мотив - "шоб було!" "У всех есть - значит, и у меня будет!". При этом, подходя к написанию библиотеки, новички наступают на одни и те же грабли.
    Чаще всего, из-за недостатка опыта авторов, код сокращается только для самых примитивных запросов. Но при этом работа с нестандартными запросами превращается в ад. Но самое ужасное - практически никогда такие самописные библиотеки не поддерживают работу с подготовленными выражениями. А это должно быть их главной фичей, без которых ценность сразу стремится к нулю. А точнее, даже к минусу, потому что инъекции. Ну и по мелочи: к примеру, если в коде действительно написано $db->FetchArray(); - то это ужас, летящий на крыльях ночи, потраченной на отлов неочевидных ошибок .
    Ответ написан
  • Знаете ли вы поисковой скрипт для сайта?

    @archelon
    Ответ написан
    Комментировать
  • Какие есть методы для защиты PHP скриптов от копирования?

    Shultc
    @Shultc
    RnD Developer
    Обфускация не сильно поможет, всегда есть деобфускация, из которой можно что-либо вытащить. У вас есть два варианта:
    1) Запускаете скрипт у себя на сервере, и продаёте возможность использовать API своего сервера
    2) Компилируете скрипт, чтобы он был цельным модулем. (Но это намного сложнее, и будут проблемы с заказчиками)
    Ответ написан
    Комментировать
  • Как определить, надет ли шлем на голову?

    @onepavel
    Консультация и разработка мобильных приложений
    Застежка на подбородке, которая замыкает цепь
    Ответ написан
    Комментировать
  • Как установить плагины для Brackets через прокси?

    monochromer
    @monochromer
    DIVeloper
    Как я понял, начиная с версии 0.37 данные для прокси можно задать в файле brackets.json (Отладка -> Открыть файл настроек)

    и там прописать
    "proxy": "http://username:password@proxy.company:port"


    Однако у меня этот способ не сработал.
    Ответ написан
    Комментировать
  • В чем смысл PSD шаблона дизайна сайта?

    Kith_Debeetham
    @Kith_Debeetham
    Зануда
    Если я делаю сайт для себя то я могу не рисовать макет а примерно видеть и представлять "в голове" этот макет и верстать сразу,но тут я знаю что мне нужно,что я хочу и как хочу. Если же делать для кого-то, то верстать по сто раз и переделывать сайт дольше чем потратить пару минут в фотошопе. А если нужно представить 2-3 дизайна? что верстать 2-3 сайта чтобы потом заказчик сказал что не нравится?
    Ответ написан
    Комментировать
  • Как подлючиться к виртуальной машине BitrixVM 5 VirtualBox openSUSE?

    @PapaStifflera
    Родился, вырос...
    В настройках сетевой карты VirtualBox укажите тип "Сетевой мост".
    Ответ написан
    Комментировать
  • Что такое такое rest api?

    @eandr_67
    web-программист (*AMP, Go, JavaScript, вёрстка).
    API социальных сетей - это вполне типичные примеры реализации REST API.

    REST (RESTful) - это общие принципы организации взаимодействия приложения/сайта с сервером посредством протокола HTTP. Особенность REST в том, что сервер не запоминает состояние пользователя между запросами - в каждом запросе передаётся информация, идентифицирующая пользователя (например, token, полученный через OAuth-авторизацию) и все параметры, необходимые для выполнения операции.

    Всё взаимодействие с сервером сводится к 4 операциям (4 - это необходимый и достаточный минимум, в конкретной реализации типов операций может быть больше):
    1. получение данных с сервера (обычно в формате JSON, или XML)
    2. добавление новых данных на сервер
    3. модификация существующих данных на сервере
    4. удаление данных на сервере

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

    Для каждого типа операции используется свой метод HTTP-запроса:
    1. получение - GET
    2. добавление - POST
    3. модификация - PUT
    4. удаление - DELETE

    Т.е. :

    GET-запрос /rest/users - получение информации о всех пользователях
    GET-запрос /rest/users/125 - получение информации о пользователе с id=125
    POST-запрос /rest/users - добавление нового пользователя
    PUT-запрос /rest/users/125 - изменение информации о пользователе с id=125
    DELETE-запрос /rest/users/125 - удаление пользователя с id=125
    Ответ написан
    20 комментариев
  • Как сделать выпадающее по клику меню на CSS?

    iiil
    @iiil
    Инженер и вэб-дизайнер, рисую.
    Не извращайтесь, рано еще полагаться в таких вещах на css.
    По теме, кроме focus гуглите menu css target.
    Например css-tricks.com/off-canvas-menu-with-css-target
    У меня codepen не работает, так что вот пример на фидлу перенес
    jsfiddle.net/iiil/o9okyw1d
    Ответ написан
    Комментировать
  • Как посчитать свою профессиональную стоимость?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Согласие есть продукт непротивления обеих сторон. Вы продаете своё время, ваше время и умения покупают из расчета № денег за 1 час или 1 месяц.

    Одним словом, вот за сколько хотите работать -- за столько и работайте. Если не знаете свою стоимость --- я вам сочувствую.

    Кстати любая стоимость, это результат торга. Установите побольше, и торгуйтесь, торгуйтесь и еще раз торгуйтесь.
    Ответ написан
    Комментировать
  • Как добавить на хабр чужую статью?

    blasheevich
    @blasheevich
    Хотелось бы возразить предыдущим ораторам:
    - Убей в себе депутата законодательного собрания, или выдавливай по капле по утрам.
    Сказано же, "уместна и пригодится", ретрайт для чего ниспослан, краеугольный камень интернета,
    главное не врать при этом, а прояснить суть дела. Потом никогда нельзя быть уверенным
    что "сайт-источник" действительно первоисточник.
    "Размещение полностью скопированного" Обратите внимание на слово "полностью" кстати.
    - Взяли привычку запещать и тыцать в инструкции по любому поводу.
    Хотя не знаю, может ваш хабр уже решили подтянуть до уровня прозы.ру.
    Ответ написан
    3 комментария
  • Как внести текст из PHP в базу MySQL большими буквами?

    pavel_salauyou
    @pavel_salauyou
    Symfony2 & Angular разработчик
    $text = mb_strtoupper($_POST['number'], 'UTF-8');
    Ответ написан
    2 комментария
  • Каким дистрибутивом Linux вы пользуетесь на нэтбуке?

    @SashaSkot
    Специалист широкого профиля
    Для серфинга приятный интерфейс:
    elementaryos.org
    Крайний релиз основан на 12 убунте. К лету обещают на 14 обновиться. В репозитории можно дейли сборки ставить, но не рекомендую - иной раз сильно плющит начинает десктоп.
    Из преимуществ:
    - все доступные под убунту полностью совместимы с элементари - проблем с софтом не будет.
    - приятный дизайн - мак стайл.
    - быстро грузиться и работает на ура.
    Ответ написан
    8 комментариев
  • Как лучше хранить промежуточные данные парсера? NoSQL или файлы?

    pavel_salauyou
    @pavel_salauyou
    Symfony2 & Angular разработчик
    вообще неважно куда класть эти данные можно и в реляционную БД mysql, можно и в nosql, главное чтобы данные в базе лежали, где их можно по быстрому найти и извлечь.
    Ответ написан
    Комментировать
  • Кроссбраузерная вёрстка для портфолио

    Bandicoot
    @Bandicoot
    Вась-программист
    Перед вами открыт мир Open Source
    Ответ написан
    1 комментарий