• Класс или функция PHP?

    @Vampiro
    Будьте откровенны с собой.
    строка
    $info = profile_info($user_id) не совсем явно рассказывает вам, что в этом месте вы полезете в базу данных за информацией о пользователе. И скорее всего вам придется писать комментарий.
    для строки
    $info = (new User())->loadFromDatabase($userId)->getInfo();
    коммента не нужно.

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

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

    @Vampiro
    По собственному опыту: отучиться первые 3 курса, пока не начались профильные. Потом можно бросать, поскольку профильное не будет востребовано.

    Простой пример: допустим, вам надумали читать курсы по бутстрапу3.0. Пока это пройдет согласование, пока будут написаны методички.... выйдет бутстрап4.0. Пока вам это будут читать - выйдет бутстрап5.0. К моменту окончания обучения выйдет еще одна версия. Вместо бутстрапа можно подставить любой продукт.

    Лично мне ни разу на собеседовании не понадобился диплом. И сам я его на собеседовании не спрашиваю. Но общее развитие, базис заложенный первыми тремя курсами (вышка особенно), реально помогают. А уж импортным заказчикам так и вообще фиолетово на бумажки с кириллицей.
    Ответ написан
    3 комментария
  • Как реализовать фасетную фильтрацию?

    @Vampiro
    Для решения задачи, необходимо определиться с терминами.
    Пусть "пользователь выбрал производителя" означает выбор из некоего select в форме поиска.
    Пусть "пользователь выбрал размер" - это числовое значение в поле формы.
    Пусть "отфильтровался товар" - это результат показываемый пользователю после нажатия кнопки "Поиск".
    Тогда на стороне сервера в php можно сделать примерно так:
    $where[]=1; <- это чтобы фильтровать по всем товарам и не сломать при этом запрос.
    
    if (isset($_GET['madeby']))
    {
    если мы что-то выбрали в списке производителей...
    $where[]="t.madeby='".(int)$_GET['madeby']."'";
    }
    if (isset($_GET['sizeHi']))
    {
    если мы что-то указали в размерах - то добавляем еще одно условие, пускай оно в джойн-таблице.
    $where[]="parenttable.size<='".(int)$_GET['sizeHi']."'";
    }
    формируем запрос, собирая все условия в одну строку через "and"
    $request = "select * from sometable t left join parenttable on (parenttable.parent_id=t.id) where ". implode(" and ",$where);
    и смотрим что получилось.
    var_dump($request);
    запрос выполняем, результат показываем.

    Это не самый оптимальный, но самый простой вариант который должен бы направить вас в "нужную сторону мысли"
    Ответ написан
    Комментировать
  • [PHP] Ставить ли скобки в условии if, если в блоке всего 1 действие?

    @Vampiro
    Есть такое понятие, как "стандарт кодирования". Первый с гугла: www.skillz.ru/dev/php/article-Standarty_kodirovani...

    Разные команды пишут по разным стандартам. Большинство редакторов умеют "отстандартить" код =) Так что дело вкуса.

    ЗЫ на собеседованиях про psr-2 могут запросто спросить.
    Ответ написан
    Комментировать
  • Почему некорректные результаты выборки при ORDER BY?

    @Vampiro
    я бы делал приблизительно в этом направлении:
    select id from table where uid=(select min(uid) from table where uid>N and status=1 ) and status=1
    Ответ написан
    Комментировать
  • Выбор msata ssd?

    @Vampiro
    имхо основной «тупняк» в ноутбучных HDD — это парковка головок для экономии батарейки, поэтому даже если передача данных будет на той же скорости, SSD может начинать передавать эти данные сразу после поступления запроса, а обычному винту надо сначала шпиндель раскрутить. Поэтому субъективно — Ноут становится более отзывчивым. Особенно это заметно в моменты выхода из сна или гибернации. Так же в играх обычно все загружено в оперативку, но при смене локаций винт начинает разгоняться и происходит «рывок» на границе игровых зон. С ssd таких рывков нет… А скорость копирования больших файлов да, примерно как с обычным жестким диском будет.

    Ставьте дополнительный ssd, и переставляйте обязательно на него систему. А основной я бы оставил — на ноутбуках не бывает много места. даже с появлением дропбоксов и скайдравов.
    Ответ написан
    Комментировать
  • Данные из DBF обработать в MS Excel (LO Calc?)

    @Vampiro
    Если все-равно запускать эксель и таблички надо строить в нем же, то почему на наваять обычный VB-макрос?
    Ответ написан
    2 комментария
  • 2013г. Выбрать 2-х симочный телефон с приемлемой камерой?

    @Vampiro
    Fly440. камера 5, только без вспышки почему-то. аккум 2500. Цена около 5к. Из прикольного-нельзя совсем убрать звук затвора, если не перепрошивать. А в целом занятный кирпичик.
    Ответ написан
    Комментировать
  • Помогите советом

    @Vampiro
    Существует рековери мод.
    Еще есть аккаунты для компаний (платные).
    И последнее. По порядку, но не по значимости. У вашего вопроса заголовок просто умоляет лишить автора возможности что-то творить на хабре :) Берегите карму!)
    Ответ написан
    Комментировать
  • Копирование большого объёма данных из одной таблицы в другую

    @Vampiro
    В первой таблице содержится около 3 млн записей, во второй немногим более 350 млн записей

    Мне кажется, выгоднее переименовать таблицы, поменяв их местами. Вставлять 3 проще, чем 350. Если же вам необходимо постоянно гонять 350кк записей из таблицы в таблицу — вероятно у вас что-то не так с архитектурой, и следует подумать в сторону триггеров или чего-то кеширующего по дороге от данных к мускулю. Вроде мемкеш сейчас делают простенькую бд, но я тут не владею информацией. надо смотреть по приложению — куда складывать.
    Ответ написан
  • Как через ajax запустить php, генерирующий файл?

    @Vampiro
    Учитывая, что у вас уже есть приличная готовая часть и ее нет смысла переделывать, я бы реализовал это так:
    1. Добавляю в форму некий UID (rand)
    2. onSubmit, кроме отправки формы к generate.php я дизаблю контролы и отправляю на сервер ajax запрос с этим UID (/generationcheck.php?uid=....) в коллбеке — разлочивание контролов.
    3. в generate.php я добавляю в самое начало коннект к мемкешу (допустим) и в него ставлю отметку, что начал генерить файл с UID=$_POST['UID']. после генерации, я отмечаю в мемкеше, что все сделано (например, меняю значение с 0 на 1)
    4 файл generationcheck.php подключается к мемкешу, проверяет, что файл еще генерится и засыпает в цикле while на секунду. Как только при очередной проверке замечено, что файл сгенерился — удаляем переменную из мемкеша и отправляем респонс клиенту, чтобы раздизаблить контролы на форме. Ну и аварийный выход через 60 циклов, на случай если генерация файла с ошибкой произошла.

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

    @Vampiro
    Я бы добавлял по предложению в див и контролировал появление скролинга. Как только Оно появилость — последнее предложение убирал, и через аякс давал серверу информацию о том где закончил и сколько вместилось. Может еще чего придумаю, это первое что пришло в мозг.
    Ответ написан
    Комментировать
  • Как правильно работать на oDesk?

    @Vampiro
    Из 10 ваших сообщений, 4 мимо нужной ветки. Вы уверены, что сможете работать с заказчиком через сайт?)

    На самом деле относитесь к фрилансу как к обычной работе, только на дому. И большая часть вопросов решится сама собой. Чаще ставьте себя на место заказчика, и прикидывайте — какие мысли у него сейчас в голове по поводу ваших действий. Как бы вы поступили на его месте? Такой подход помогает получать положительные фидбеки, которые на Одеске важны.
    Ответ написан
    Комментировать
  • Как правильно работать на oDesk?

    @Vampiro
    Я бы порекомендовал вам решать проблемы по мере их поступления. Откуда это желание настелить всюду соломы?)

    Один заказчик спокойно переживет, если вы с 38.7 пролежите три дня в постели, а ему нужно было баннеры поменять местами. А другой может и заистерить, если надо было проводки поправить, чтобы зарплату нормально посчитать. Слишком много вариантов, чтобы ответить «правильно». =)

    Учтите, что на oDesk средний программист "хочет" получать $15, но 8 заказов из 10 получают филипинцы/индусы по $1 в час )

    Также учтите, что адекватный заказчик, как правило, живет в «пасифик-тайм», и вам нет смысла вставать раньше 11-12, поскольку там в это время ночь.

    По перспективности я бы выбрал газпром, вобщем)
    Ответ написан
    6 комментариев
  • PHP Cluster и файлы сессий на общем файловом хранилище. Возникают бесконечные блокировки?

    @Vampiro
    В порядке бреда: Может на серверах php-fpm от разных пользователей запущены? И тогда права на файл с сессией созданой серв№1 не позволяют в нее записать с серв№2?
    Ответ написан
  • Онлайн бухгалтерия

    @Vampiro
    Мне кажется, вам нужно гуглить слово «аутсорс», поскольку онлайн-сервис ведется все теми же бухгалтерами, только бумаги при этом поменьше + мобильность. Вам же просто необходимо отдать все это на сторону.
    Ответ написан
    2 комментария
  • Помогите с оптимизацией MySQL

    @Vampiro
    Даже не знаю как вам намекнуть, чтобы вы не обиделись. В вашем вопросе нет ничего такого, что не стало бы очевидным, прочти вы хотя бы минимальный объем мануалов по администрированию MySQL. Более того, в тексте, который вы привели содержатся указания на необходимые изменения. Причем, так указаны как переменные, так и рекомендуемые значения. Любой совет тут будет «капитанским», например «посмотрите какие запросы у вас идут мимо индексов (log-slow-queries = /var/log/mysqld-slow-query.log) и проставьте индексы по нужным полям (Adjust your join queries to always utilize indexes).
    Ответ написан
    Комментировать
  • Квадрокоптер-смертник

    @Vampiro
    Вы так рассуждаете, будто у вас С4 можно в Ашане купить, и только отсутствие квадрокоптеров до сих пор останавливало экстремистов! :)
    Ответ написан
    Комментировать
  • Как хранить в БД права доступа?

    @Vampiro
    select count(content_id) from content_share where
    user_id=-1 /* friends */ 
    or
    user_id=0 /* anyone */ 
    or
    user_id=?
    
    Ответ написан