• Имеет ли смысл писать свою обертку над PDO?

    Wott
    @Wott
    на этом уровне это исключительно школьная задача и практической ценности у нее нет — стоит только копнуть чуть глубже простого селекта и выясняется что движки сильно отличаются и банальное id последней вставки может вызвать головную боль при портировании.

    абстрагироваться надо выше — на уровне обьектов и операций работы с ними. собственно оптимизация делается уже под движек и может вызвать изменения на уровне порядка, вида запросов или отдельных операций. Тут обойтись оберткой над вызовами к базе не обойтись.

    А вообще задачи доступа к разным движкам достаточно характерны для интеграции ( срастить документы в разных системах оборота, сопрячь VCS, треккер, тест менеджер и системы бизнес процессов ), для разного рода разделения по уровням ( sq-nosql, внешняя и локальная, серверная и клиентская )
    Ответ написан
    Комментировать
  • Как проверять всегда ли сотрудник отвечает на мобильный?

    Wott
    @Wott
    воспользоваться услугой, которая будет в детализации — здесь лучше спросить у специалистов оператора.
    При неответе можно сделать перенаправление на другой телефон или на автоответчик. Возможно оператор поддерживает генерацию смс при неответе на свой или чужой номер.
    А может быть в детализацию можно включить все, надо просто попросить.
    Ответ написан
    Комментировать
  • Чем лучше всего пересылать небольшие конверты по России?

    Wott
    @Wott
    Я пакеты отправляю первым классом — доходит быстрее недели, есть tracking id, при этом особенности ПР — если видишь что пакет пришел к тебе в отделение можно просто придти с паспортом и сказать этот самый tracking id — выдадут сразу. Иногда правда данные на сайте обновляются на следующий или через день, или их вносят постфактум.
    Ответ написан
    Комментировать
  • Выбор долгоживущего ультра(?)бука для программирования в поездках?

    Wott
    @Wott
    Не знаю как вы будете писать что-то на 12-14 дюймах, но по любому компиляция и эмулятор разгоняет проц. FF тоже прожорливый, так что делите время работы в обзорах на 1.5 минимум.
    Так что если хотите что бы он работал несколько часов — придет таскать тяжести, иначе ищите возможность его заряжать регулярно.
    Ответ написан
    Комментировать
  • Какому закону распределения подчиняется случайная величина?

    Wott
    @Wott
    сознание оно такое — известны факты о якорении на окружении — ответы будут зависеть от формы вопроса, например числа в вопросе будут некими центрами нормального распределения. Если конкретных чисел нет, то якорем будет середина, хотя у некоторых будут свои «любимые числа» выбивающиеся из общего закона.

    искать можно «когнитивные искажения»
    Ответ написан
  • Вопросы, которые вы не узнали в школе/вузе, но стоило бы знать? (из сферы IT)

    Wott
    @Wott
    IT -шнику надо в первую очередь учиться самому находить информацию.
    А в школе и на первых курсах мне остро не хватало интернета, потому что он тогда был текстовый :) и поисковиков не было даже в планах.
    Ответ написан
    Комментировать
  • Жутко тормозит Вордпресс. Как лечить?

    Wott
    @Wott
    вообще-то тема тоже может грузить нехило, да и в некоторых случаях сам WP можт подтормаживать, например когда страниц 1К и формат пермалинков «неправильный».
    Ответ написан
    Комментировать
  • Какие возможности вы хотели бы видеть на фриланс-бирже?

    Wott
    @Wott
    что мне не нравиться на odesk ( я считаю последний лучшей из существующих )

    нормальные скидки для больших сумм а не flat 10%, иначе просто ухожу с большими суммами, а функционал биржи работает только с мелочью. Нормальные финансовые инструменты типа резервирование сумм ( аванса ) для гарантии, распределение в случае команды или субподряда. Дешевый вывод.

    нормальное proxy для всех средств общения — что бы я мог трепаться в своем скайпе и заказчик в скайпе/msn/jabber или на сайте и для обоих это был бы прозрачный прокси, каждый новый — отдельный контакт, отдельно системный для нотификаций.

    Тоже самое для mail — приходит письмо мне на внешний ящик я на него просто отвечаю и оно корректно приходит к заказчику. Можно и во
    внутреннем клиенте, но внешний мне удобнее. Что бы не надо было заходить на сайт для чтения чего бы то ни было. Статус прочитан нормально обновляется по нотификации.

    rss\atom с предложениями отобранными по гибкому фильтру по всем параметрамю Лучше бы конечно если движек сам видел какие предложения меня интересуют ( я смотрю детали/ полное описние на сайте ) и какие даже очень — я делаю предложение и какие работы я выполняю. Хотелось бы что бы большую часть рутины по отбору биржа делала сама. Совсем хорошо если бы она выполняла истинный закон мерфи и побирала бы единственно верного исполнителя для данной задачи.

    Ну и всякие тайм трекеры, минимальный тайм менеджмент с публикуемым расписанием, какие-о небольшие issue tracker. Можно и CVS свой поднять, что бы действительно давать полный сервис, а заодно контролировать исполнение.
    Ответ написан
    Комментировать
  • Задачка о шифровании

    Wott
    @Wott
    Я предпочитаю не отдавать вообще ничего, что можно восстановить до пароля.
    В похожем случае я делал случайные наборы типа sha1(random()) они падали в отдельную табличку где ключ — то самое случайное число, а также — ссылка на пользователя, дата и прочие плюшки, типа страницы редиректа. permalink роутил входящие ссылки, проверял их, показывал форму изменения пароля и перенаправлял на нужную страницу, уже под данным пользователем
    Ответ написан
    Комментировать
  • Пул периодических задач на сервере

    Wott
    @Wott
    unix way — положить в /var/run/ pid файл и проверять его наличие. при наличии не стартовать задачу
    4 разных задачи — 4 pid файла, не стоит их смешивать, если они четко разделяются, а не просто 4 разных потока одной задачи.
    Ответ написан
    1 комментарий
  • Вопрос хостерам о безопасности?

    Wott
    @Wott
    user в WP для сервера это просто куки, причем еще в базу надо слазить что бы проверить. Можно конечно сделать мод для сервера, который будет смотреть конкретную куку, проверять и транслировать ее в базе. после чего менять пользователя для запроса — но имхо это извращение и излишне.

    У себя я даю доступ до wp-admin только для своих IP.
    Плюс конечно все плагины проверяются и зачастую переписываются — в плагин можно вложить что угодно, пишут их отвратно.
    Ответ написан
    Комментировать
  • Как запускать скрипт на PHP ежедневно?

    Wott
    @Wott
    Про крон тут написали уже
    А еще WP умеет сам запускать внутренние задания по расписанию — раз в час, раз или два раза в день.
    Ответ написан
  • Почему компании не хотят более тесно работать с соискателями?

    Wott
    @Wott
    Я редко отправляю резюме сам. Обычно это какие-то очень понравившиеся мне конторы или достаточно уважаемые мною люди.
    Я всегда получал фидбек, не всегда меня устраивающий, конечно, от принимающего решения человека.

    Предлагаю воспринимать HR как досадную помеху на пути к тому компетентному и грамотному человеку, с которым вы бы хотели поговорить на тему работы. И составлять резюме и письмо с таким расчетом что бы HR не думал ни секунды и переправлял ваш запрос куда надо.
    Ответ написан
    Комментировать
  • Как быстро сравнить много массивов?

    Wott
    @Wott
    надо найти однозначное преобразование что бы массив превратить в число и сравнивать уже числа
    про множества — коммент выше
    если есть повторяющиеся элементы то можно их отсортировать и преобразовать в число используя элементы как разряды в позиционной системе исчисления по основанию, которое есть максимум элементов или больше.

    как-то так…
    Ответ написан
    Комментировать
  • Какие методы вы применяете для отдыха после работы?

    Wott
    @Wott
    1. Самое главное — надо завершать задачу или хотя бы подводить промежуточный итог перед тем как уйти с работы.

    2. Надо правильно сохранят контекст задачи/проекта
    Ваш мозг — память оперативная, треккеры, списки задач, всякие борды и просто записные книжки — средства долговременного хранения.
    Надо иметь привычку текущую задачу после достижения конечного или промежуточного результата «скидывать на внешние носители». Спокойствие за сохранность и правильную организацию лично мне помогает забыть на время про задачу и позволяет избавиться от беспокойства что кто-то там чего-то забудет или не сделает.

    3. Надо строить приоритеты и найти в ней место для отдыха, семьи и всему прочему

    4. С работы до дома я лично набираюсь впечатлений — природа, красивые девушки, мелкие удовольствия в виде мороженного, например. Побольше положительных эмоций. Раньше я гонял по городу, но это не совсем безопасно, а пустой трек все таки не дает нужной разрядки.
    Сейчас я большей частью дома работаю — поэтому просто гуляю с сыном или хотя бы в магазин/до рынка прогуливаюсь.

    В общем надо, как в притче про «полное» ведро, в своей жизни определить крупные и краеугольные вещи, чуть поменьше но все равно важные и не забывать про мелкий песок удовольствий :)
    Ответ написан
  • Обновление баз данных в mysql, как правильно?

    Wott
    @Wott
    вообще-то есть два способа
    1. сделать DDL sql, который из схему первоначальной базы сделает нужную. Обычно это делается сразу и все модификации атомарны в виде скриптов DDL. Автоматом можно поискать тулзы которые делают миграцию структуры или сравнивают базы. Самый тупой способ — сделать экспорт структуры со старой базы ( без данных ) и тупо по тексту diff из которого сделать уже нужный скрипт для изменения DDL

    2. Взять даные из старой и перенести в новую. То есть экспортируем данные из старой и заливаем в новую.

    В обоих случая структуру можно поменять так что будут проблемы, обычно уникальные или внешние индексы не встают ( данные не заливаются ). Тут есть два пути — отключить все проверки и триггеры и сделать insert ignore, а потом сравнивать и искать что не залилось и почему, потом включать и проверять консистентность. Либо заливать как есть и смотреть почему вылетело. Со скриптами DDL вариант только второй.

    Я в такой же ситуации обычно делают экспорт/импорт данных, потому что перестраиваются индексы, дополнительная проверка и вообще старую базу в качестве бекапа использую, хотя скрипты DDL есть всегда ( они синхронизируют базы на локальном и внешнем дев-серверах ).
    Если есть проблемы, то приходиться писать редактирование данных в слитом дампе или отключать фичи в новом, менять данные и включать их обратно.
    Ответ написан
    Комментировать
  • Как сделать ротационный лог средствами MySQL?

    Wott
    @Wott
    обычно в cron вешается скрипт, который занимается такими вещами. Если нет возможности повесить задачу в cron, то можно сделать триггер как выше писали, но дополнительно сделать простую фильтрацию с помощью глобальной переменной в котрой хранить например время последней уборки мусора.

    заведите юзера в mysql у которого минимум прав на эту таблицу и сделайте функцию, которая делает что нужно. из скрипта вызывай ее
    mysql -u user -ppass -e 'select the_function();'

    2. с датой просто:
    delete from log_table where created<date_sub(now(), interval 2 month);

    1. с размером чуть сложнее — в information_schema.tables есть data_length в байтах — можно взять разницу между 2*1024*1024 и data_length и поделить на data_length/table_rows — получим сколько строк, примерно, нужно удалить. что то типа
    select if(data_length>2*1024*1024,floor((data_length-2*1024*1024)/(data_length/table_rows)),0) from information_schema.tables where table_schema='db_name' and table_name='log_table' into @row_cnt; delete from log_table order by created limit @row_cnt;

    при этом конечно же надо завести индекс на created — поле где дата создания
    Ответ написан
    Комментировать
  • Радиосвязь на коротком расстоянии (30-40 см)

    Wott
    @Wott
    сделать на лампочках контур и на базе открытую емкость. С контура через диод запитать ключ, который выключает моргание.
    Ответ написан
    Комментировать
  • Где можно получить сертификаты?

    Wott
    @Wott
    Странный вы какой-то. Как может быть недорогое и цениться? Вон на brainbench.com все более менее востребованное стоит денег, бесплатно либо всякий фуфел либо акции либо еще какая-то заморочка — и это правильно — это их бизнес и они за сертификаты требуют денег ( хотя раньше не требовали — у меня целая пачка старья сколлекционировано )

    Если вам нужна картинка что бы разбавить — нарисуйте.

    На одеске цениться то на сколько ты себя оценил в нужной области, если этому не соответствует feedback и количество часов маленькое, то смотрят их же тесты. Мои сертификаты что там указаны ни кому интересны не были. Адекватные заказчики все равно будут задавать вопросы при интервью что бы ты не нарисовал, потому то на одеске рисовальщиков тоже полно.
    Ответ написан
    3 комментария
  • Что использовать при кешировании запросов MySQL в PHP

    Wott
    @Wott
    Надо думать о корректной схеме кеширования.
    У вас не меняются данные, но вы хотите заново строить ответ сервера со старым данными? может лучше кешировать сам запрос?

    Далее надо думать сколько живет кеш и как его инвалидировать. Есть простые схемы типа короткого внешнего кеша ( например nginx ), которые разгружают движек и базу. Есть более сложные — движек сам создает файловый кеш и удалает/пересоздает его по изменению контента ( самый простой — скидывать результаты запросов в файлы, которые лежат в соответвии с запрошенным урлом и сделать правила для apache, которые будут отдавать файлы вместо запуска движка, если они есть. )

    Использовать еще базу типа memcached для кеширования запросов в безу или даже в движек — это явный фейл архитектуры :) Только с целью кеширования лучше отдать память в кеш io. Разумное использование начинается с хранения отдельных данных, типа сессий пользователя, которые подмешиваются в закешированную страницу включениями — типа разделение долгоживущих данных и короткоживущие сессии.
    Ответ написан
    1 комментарий