• Какой код лучше?

    Stalker_RED
    @Stalker_RED
    Когда человек пишет код, у него обычно есть какие-то цели. Например:

    1. Побыстрее запустить и забыть
    Тогда он может взять первую попавшуюся либу с гитхаба, подключить jQuery там, где хватило бы трех строк на ванильке, скопипастить нечто странное с SO. Главное что оно хоть как-то заработало.

    2. Легкая поддержка
    Тут приходится блюсти некий баланс читабельности, лаконичности и гибкости, чтобы не удариться в портяночный оверинжиниринг или напротив, в однострочники

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

    4. Попробовать новое
    Предположим студент или хипстор увидал новую фичу, и решил ее применить. Потому что может.

    Этот список можно бы и продолжить, но в реальных условиях зачастую преследуются несколько целей одновременно. То есть нужна читабельность и производительность. Или приспичило поэкспериментировать, но при этом производительность терять нельзя.

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

    @mayorovp
    Заметим, что оба варианта содержат ошибку: нельзя вот так декодировать чанки. Но если во втором примере ошибка локализована в одной функции toString - то в первом она перемешалась с остальной логикой.

    Если теперь рассмотреть случай, когда подобный код разбросан по всему проекту - то окажется, что второй вариант починить намного проще...
    Ответ написан
    6 комментариев
  • NodeJS & Lock & Race?

    kirill89
    @kirill89
    У нас для таких целей обычно используется Redis. У них в документации есть алгоритм.

    Простейший вариант без expire:

    redis.setnx(token, 'lock', function (err, acquired) {
      if (err) { /*...*/ }
      if (acquired) {
        // ... some code
        redis.del(token, function (err) { /*...*/ }); // unlock
      }
    });
    Ответ написан
    1 комментарий
  • Как посчитать общую сумму лайков к статье?

    vermilion1
    @vermilion1
    facebook: graph.facebook.com/http://habrahabr.ru/post/149709/
    {
    id: "http://habrahabr.ru/post/149709/",
    shares: 3
    }
    

    twitter: urls.api.twitter.com/1/urls/count.json?url=http://habrahabr.ru/post/149709/
    {
    count: 29,
    url: "http://habrahabr.ru/post/149709/"
    }
    

    vk: vk.com/share.php?act=count&index=1&url=http://habrahabr.ru/post/149709/
    VK.Share.count(1, 9); // 9 - count
    
    Ответ написан
    2 комментария
  • Как посчитать общую сумму лайков к статье?

    bobermaniac
    @bobermaniac
    Эм… 2+3+5=10
    Ответ написан
    Комментировать
  • Как стать профессиональным веб-разработчиком за 7 лет?

    Inori
    @Inori
    0.) Английский. Вы должны его знать на таком уровне чтобы ваш перевод технической статьи ваша мама поняла. Все остальное будет гораздо проще с этим пунктом.
    1.) www.phptherightway.com/
    2.) Читать много много книг (на хабре много сборников по этому)
    3.) Начать искать и собирать RSS блогов разработчиков
    3.) git (не утверждаю что это лучшая SCM, но благодаря ей у вас будет выход на github.com, а для начинающего это очень важно)
    4.) LAMP
    5.) Начать копать в сторону хорошего PHP фреймворка (Symfony2, ZF2, етц. на сайте в #1 есть список)
    6.) Научиться писать резюме
    7.) Пробиться интерном на пол ставки в хорошую местную фирму на 1-2 курсе
    8.) Дальше пойдет по накатанной :)

    7 лет для этого не надо, хватит 1-2 в зависимости от желания и умения учиться.

    P.S. В любом случае, вы молодец что в 16 лет уже думаете о карьере :)
    Мне это озарение пришло только в 21 :/
    Ответ написан
    8 комментариев
  • Как узнать на кого зарегестрирован домен?

    wscms
    @wscms
    Если домен регистрировался хостером (а раз вы продлеваете через него, то, скорее всего именно так ) — пишите ему тикет «Хочу перенести доменное имя к другому регистратору». Хостер скажет какие документы необходимы, возможно скан паспорта. Ну и скан чьего паспорта скажет, естественно.

    И не храните домены у хостера, себе же спокойнее будет. В случае какой-либо конфликтной/нестандартной ситуации сайт еще можно восстановить из бекапа, а с доменом придется повозиться.
    Мухи отдельно, котлеты отдельно.
    Ответ написан
    1 комментарий
  • Существует ли аналог PixelZoomer-а из Firefox-а, но для Chrome?

    pomeo
    @pomeo
    во времена убунты 10.04 я активно использовал compiz. Zoom там прекрасный есть, нескольких видов. Линейки нету, но я использовал super+left click, это снятие скришота области экрана, там при выделении у рамки есть размер, на него и смотрел. Color picker'а там нет, но по ссылке van_gogh их там куча.
    Ответ написан
    1 комментарий
  • Как программист может быть полезен на войне?

    @fossdev
    > Если вдруг случится война, как программист может пригодиться своей стране?
    Автомат на шею и в атаку. Пригодится в качестве низкосортного пушечного мяса.
    Ответ написан
    Комментировать
  • Каким должно быть регулярное выражение для замены относительных ссылок на абсолютные (RSS)?

    taliban
    @taliban
    php программист
    index = "http://index.com"; "<img src='/relative'>".replace(/src='(\/.*?)'/, "src='"+index+"$1")
    

    Думаю не составить труда перевести код с JavaScript =)
    Ответ написан
    4 комментария
  • Область применения ссылок?

    Видал эту дискуссию.

    1. ссылки не выпилят, к гадалке не ходи (кроме того, что Вы сказали). Тем более что очень много встроенных функций принимают в качестве аргументов ссылки.

    2. Такой подход позволяет сэкономить памяти и времени. Взять хотя бы функции ряда sort, ksrot… Постоянно копировать большой массив полностью было бы очень накладно, тем более, что массивы в PHP очень много места занимают.

    Так же полезно бывает использовать ссылки, если необходимо, чтобы метод вернул несколько значений. Например, preg_match, возвращает true/false и можно ещё получить массив совпадений. Некоторые, придумывают свои извращения. Представим, что preg_match можно переписать, то можно было бы получить вот такую конструкцию: list($is_match, $matches) = preg_match(**), что существенно усложнит понимание интерфейса функции.

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

    4. Ну… все мы используем ссылки, так как пользуемся нативными функциями PHP. И в своём коде я использую ссылки (как выяснилось в трёх местах: два метода, один foreach) и пока ни одно животное во время использования кода не пострадало.

    Что касается моды, то да, в программировании есть своя мода. Те же синглтоны были некогда популярны, а сейчас они в опале. Но в случае с синглтоном есть объективные причины. А тут я объективных причин не вижу, чтобы не использовать ссылки.
    Ответ написан
    2 комментария
  • PHP. Выполнение скрипта на фоне или аналоги

    taliban
    @taliban
    php программист
    почему бы Вам форм не попробовать вместо этого?
    Ответ написан
    2 комментария
  • PHP. Выполнение скрипта на фоне или аналоги

    @werdender
    А в каком месте у вас тут «связь с браузером разрывается»?
    Пишите в сокет, запуская другой скрипт, и будет вам счастье.
    Ответ написан
    7 комментариев
  • Теперь и за комментарии нельзя с кармой меньше 15 голосовать?

    zlobin
    @zlobin
    Занимаюсь программированием на PHP
    не понятно, а зачем нужны активные элементы если ими нельзя воспользоваться, почему не сделать не активными все эти стрелочки и прочее. Какой-то недоделанный функционал получается
    Ответ написан
    2 комментария
  • Защита от XSS

    NekitoSP
    @NekitoSP
    Прочитав статью с того сайта вы похоже до сих пор немного не разобрались как действовать. Моя идея фильтрации данных на стороне сервера такова:
    1) для начала декодируем все данные, заменяя все подобные вещи

    на нормальные символы, с которыми далее будем работать
    3) далее при нахождении границ тега, будь то ... мы удаляем все непечатаемые(?) символы (в т.ч. и переносы строк) в параметрах тега а так же между открывающим и закрывающим. Проблема будет лишь с \0, но если работать с данными как с массивом символов, а не как со строкой — то наверное удастся их обойти.
    3) затем работа с параметрами тега, соответственно убираем всё, что не является нормальным URL-адресом, и по возможности, избавляемся от тега, если вдруг URL «небезопасный» (безопасными URL я думаю стоит считать лишь те, которые начинаются с http:// или https://, ну и на крайний случай — ... в общем вам решать)
    Ответ написан
    3 комментария
  • Новый упадок Хабра?

    @I2ldo
    Вот мое мнение:
    1. Стоит изменить систему начисления инвайтов и вознаграждений. Например, инвайт в «информационная безопасность» за +100, в «DIY» за +50, в «Хабра Юмор» +300 и т.д, то же самое для системы поощрения авторов. То есть взвесить блоги по полезности для сообщества.
    2. Еще можно взвесить голоса. Человек выбирает 5 блогов, которые как он считает может адекватно оценить или желает оценивать: A, В, С, D, Е — его голос за топики в этих темах считается за 1, еще 5 где голос считается за 0.5, в остальных 0.25. Например, в блоге «Серверная оптимизация» я точно адекватно не смогу оценить топик. Почему же мой голос стоит столько же сколько голос специалиста? Тут мой голос 0.25. А в «Контекстной рекламе» вполне адекватно смогу оценить, тут мой голос 1.
    Ответ написан
    5 комментариев