• Как узнать, какие картинки (без шуток) пользователи дольше просматривают

    Vir
    @Vir
    Программист
    Отдавать картинку на html-странице, где будет висеть javascript и AJAX'ом каждые n-секунд передевать серверу, о том, что пользователь ещё на странице.
    Ответ написан
    2 комментария
  • Как достать файлы с VPS без FTP?

    lacki
    @lacki
    Если есть SSH доступ можно воспользоваться WinSCP или scp.
    Ответ написан
    Комментировать
  • Помогите выбрать WIFI-роутер

    gabex
    @gabex
    Позвольте привести небольшой пример из жизни, который может послужить и советом. Многие ругают D-Link DIR-300, приписывая ему всякое. Но мой экземплярчик работает в трехкомнатной квартире с толстыми стенами (примерно 4 кирпича несущие) и обслуживает следующие устройства: iMac, десктоп моей мамы, iPhone, iPad и ноутбук. Более того, все по Wi-Fi. Проброшено большое количество портов, иногда завожу еще и небольшой сервер (отдельным десктопом) для тестирования различных штук. И ничего при этом не греется и не ломается вот уже более года. Режим работы – 24/7. Так вот вопрос: что я делаю не так? Для домашнего роутера вполне хорош DIR-300, разве нет?
    Ответ написан
    Комментировать
  • Как выполнить html-код перед выполнением php?

    demark
    @demark
    Никакой тут проблемы нету. Есть непонимание как работают разные сущности — серверная и клиентская.

    php выполняется не в браузере, а на сервере и отдаёт через веб-сервер сорсы для браузера, а далее, в браузере вступает в игру javascript (если включён).

    в вашем случае, единственная возможность исполнить сначала js — это загрузить страничку, а потом аяксом сделать запрос на сервер к скрипту php.
    Ответ написан
    1 комментарий
  • Подскажите у кого лучший на ваш взгляд безлимитный интернет с телефона?

    medved13
    @medved13
    Ведущий front-end разработчик
    Сравнивая Мегафон и Билайн в Москве и ближайшем Подмосковье — однозначно Мегафон. Зона покрытия больше, цена ниже, скорости выше.
    Ответ написан
    Комментировать
  • Как опубликовать пост?

    lsoul
    @lsoul
    Неожиданно - юрист
    Может я конечно старомоден и консервативен, но видеть каждые сутки здесь один и тот же вопрос… ну пролистайте вы немного и увидите тысячу ответов с тысячей советов зарабатывания кармы.
    А если уже пролистали и знаете, тогда не лукавьте а сразу пишите о том что есть статья и не хватает кармы для опубликования — поделитесь если интересно.
    Ответ написан
    2 комментария
  • Как опубликовать пост?

    betony
    @betony
    Интересно, а кто первый на хабре догадался опубликовать такой вопрос? Кто родоначальник этой традиции? )
    Ответ написан
    5 комментариев
  • PHP, ООП. Практическое изучение

    Любую задачу (решаемую в принципе) можно реализовать как с ООП, так и без него (в процедурном стиле, например). «Прелести» ООП лучше всего чувствуются на больших проектах, где невозможно держать в голове все (глобальные) переменные и функции и способы их взаимодействия и приходишь к пониманию необходимости использовать более высокие уровни абстракции, чем отдельные значения и классические массивы из них. Начинаешь объединять семантически связанные данные в структуры (ассоциативные массивы в PHP), а функциям с ними работающим давать имена с префиксом (обычно) в виде названия (чисто семантическое) этих структур, чтобы хоть немного упорядочить глобальное пространство имён, получая функции вида user_login(array $user, $login, $password), user_logout(array $user) и user_is_logged(array $user). До простейшего ООП осталось сделать один шаг — перенести и функции (указатели на них в С, callback/имена в PHP) в эти структуры, но синтаксис вида call_user_func($user['user_login'], $user, $login, $password) мягко говоря неудобен и избыточен и тут в PHP4 вводят вместо него синтаксис $user->login($login, $password) и без него ты больше не можешь жить :)

    Если же до семантических концепций ООП не дойти на своей шкуре, то разницы между user_login(array $user, $login, $password) и $user->login($login, $password) почти нет, но даже на таком простом примере видно, что запись банально короче и глобальное пространство имён меньше используется, что особенно заметно при использовании IDE с автодополнением.

    Но это философское отступление было о некоторых прелестях ООП. Прямой ответ на вопрос «какую задачу?» — любую интересную хотя бы чуть-чуть. Желательно с развитой предметной областью, в которой ощущается интуитивно наличие нескольких абстракций разного уровня. Если для процедурного приложения вы создаёте несколько таблиц в БД или используете ассоциативные массивы для группировки семантически близких значений — то это, скорее всего, такая задача. Для большего wow-эффекта или просветления можно попробовать написать две версии одного приложения типа блога, одну в процедурном стиле, другую в ООП. Причём в первой желательно не использовать «промежуточные» решения типа ассоциативных массивов даже для mysql_fetch_assoc/array(), только бескомпромиссное mysql_fetch_row(). Если же без ассоциативных массивов вы уже разработки не представляете, то вы уже почти достигли ОО-просветления :)
    Ответ написан
    Комментировать
  • PHP, ООП. Практическое изучение

    ilyaplot
    @ilyaplot
    PHP программист
    Пока не попробовал Yii framework, не понял ООП и MVC до конца.
    На хабре была статья про MVC ООП. Попробуйте повторить и расширить пример.
    Ответ написан
    1 комментарий
  • Необычное поведение MySQL при UPDATE?

    Melkij
    @Melkij
    PostgreSQL DBA
    Потому что это float.
    Округляйте или используйте тип decimal.
    Ответ написан
    4 комментария
  • Востребованы ли сейчас на рынке труда специалисты по безопасности веб-сайтов?

    LMaster
    @LMaster
    Востребованы. Знать вы должны примерно следующее:
    1) Как можно больше технологий и языков программирования для web (PHP, Perl, Python, ASP и т.д.).
    2) Как можно больше СУБД и особенности каждой из них.
    3) Наиболее распространённые уязвимости: SQL-injection, XSS, CSRF, include и т.д. Методы обхода фильтров и WAF'ов. Редкие уязвимости.
    4) Правила и особенности грамотной настройки web-серверов в Windows и *nix.
    5) Специфику эксплуатации уязвимостей на разных конфигурациях (ОС/web-сервер/СУБД/ЯП).
    6) Неочевидные вектора и уязвимости дизайна.
    7) Автоматизированные средства для поиска уязвимостей.
    8) Методы аудита безопасности сайтов.
    9) И т.д.
    Ответ написан
    1 комментарий
  • Редактор JSON для jQuery?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    www.thomasfrank.se/downloadableJS/JSONeditor_example.html можно вот к этому навесить свои обработчики, думаю.
    Ответ написан
    3 комментария
  • Прошу оценить дизайн сайта

    InteractiveTechnology
    @InteractiveTechnology
    CEO, Interactive Technology Group (ITG)
    Первое впечатление, что вы какой-то подставной сайт делаете, для развода или вымогательств)
    Ответ написан
    1 комментарий
  • Новый упадок Хабра?

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

    @mx2000
    1. кол-во записей можно отдавать в самом JSON в качестве метаинформации о данных, например так:
    {"count": 100, "data": { ... 100 записей ... } }

    2. как альтернативный вариант, можно итерироваться по JSON-структуре:
    var records = -1; // начальное значение, "данные еще не посчитаны".

    $.getJSON('json.php?place=1&page=1', function(data) {
    records = 0;
    $.each(data, function (i, item) {
    $("#slideInner").append(item.title);
    records++;
    });
    alert(records); // будет актуальное кол-во записей.
    });

    alert (records); // будет -1


    ЕМНИП, $.getJSON() выполняется асинхронно, следовательно алерт в вашей версии будет вызываться раньше, чем данные будут получены, поэтому имеет смысл генерить некое событие «данные получены» или указывать функцию-продолжение в callback'е getJSON().
    Ответ написан
    Комментировать
  • Логотип, мнение

    alexxxst
    @alexxxst
    У вас буквы выцвели…
    Ответ написан
    Комментировать
  • Логотип, мнение

    super
    @super
    Стиральные порошки, чистящие средства, туалетная бумага.
    Ответ написан
    Комментировать
  • PHP - Вывести ошибки в нужное место шаблона?

    Для отслеживания ошибок PHP:
    // Устанавливаем обработчик ошибок (в рабочей версии закомментить)
    set_error_handler('writeerror');

    function writeerror($errno, $errstr, $errfile, $errline) {
    // Вы водим ошибку. writelog - пользовательская функция. Используйте свою
    writelog('php_error', date("y.m.d H:m:s")."\t".$errno."\t".$errstr."\t".$errfile."\t".$errline);
    // Возвращаем true чтобы продолжить работу
    return true;
    }


    Для отслеживания ошибок MySQL:
    function sql_query($query) {
    // Подключаем базу
    dbconnect();
    $return = mysql_query($query);
    $error = mysql_error();
    if ($error=='') {
    return $return;
    }
    else {
    writelog('sql_error', date("y.m.d H:m:s")."\t".$error);
    return false;
    };
    }

    Думаю принцип понятен.
    Ответ написан
    1 комментарий