• А как Вы осуществляете взаимодействие модели на стороне сервера с клиентской?

    Wott
    @Wott
    в этом есть три вещи — html, javascript и сервер. между ниим есть интерфейсы: html должен иметь определенные именованные узлы и структуру DOM что бы JS код правильно его менял на реакцию пользователя, а сервер должен принимать и отвечать JS в определенном формате данные. Понятно что интерфейсы менять просто так нельзя, поэтому единственным выходом является зафиксировать необходимые для интерфейса вещи и не разрешать их менять без подтверждения заинтересованных сторон.
    Ответ написан
    1 комментарий
  • Как убрать подзапрос?

    Wott
    @Wott
    Индекс на два поля -> уникальный и update ignore
    Ответ написан
    2 комментария
  • Идентификация программы-клиента

    Wott
    @Wott
    навскидку: я бы новый токен при первой сессии привязывал к ip адресу, а несовпадение пары токен-ip отфильтровывал и как-то с этим разбирался
    Ответ написан
    2 комментария
  • Какой плагин для WordPress разбивает статью на страницы?

    Wott
    @Wott
    Обычно наоборот — проблема отучить WP разбивать длинную статью на страницы, поскольку дефолтные функции вывода контента это делают и корректно реагируют на url-ы c page. Поэтому нормальные темы имеют ссылки навигации по страницам.
    Ответ написан
    Комментировать
  • Где и как научиться веб-дизайну, будучи программистом?

    Wott
    @Wott
    я нифига не дизайнер, такой же программист-фрилансер и такая же проблема была у меня лет пять назад
    я для себя разделил «дизайн» сайта на три фазы:
    1 придумать что-то типа концепции или общей картины что будет и где, какие блоки, какие страницы
    2 детализовать концепцию до макетов страниц — часто приходит программисту в виде картинок
    3 придумать как это будет верстаться и сделать, то есть допилить до состояния как на картинке в пункте 2

    Про первое мало что могу посоветовать — это как «решить задачу» — есть какие-то алгоритмы, но все они сводятся к декомпозиции: сначала формулируем общую идею, например «магазин фуфла» или «блог о прекрасном». Потом потихоньку определяем из чего эта идея может состоять — магазин нуждается в списках товара, которые надо видеть, искать и сортировать, товары надо покупать. Потом каждую из состовляющих делим до элементов, которые понятны. Все это превращаем в некие блоки на странице(ах). Тусуем, что-то выкидываем, что-то добавляем. На выходе получается что-то, что называется скетчем или наброском

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

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

    Как научиться? как всегда — делать, пробовать и разбирать что и почему не так. Я для начала делал всякую фигню. Потом смотрел и переделывал. И опять и снова. У моей домашней странички было что-то около 20 вариантов. Причем некоторые я переверстывал. Последний держиться уже пару лет, но уже хочется что-то изменить, но пока не сформулировалась концепция что и во что менять.

    Книги и курсы я не могу посоветовать, потому что с ними у меня не складывается. Редко попадается книга, которая стоит времени, потраченного на нее. А курсы… в общем также. Я вообще стараюсь извлекать знания из того что попадается — увидел сайт — глянь код, но подготовленные к употреблению «блюда» вызывают разочарование.
    Ответ написан
    1 комментарий
  • Как хранить архив sql-запросов с тегами для поиска?

    Wott
    @Wott
    Я бы к wiki, WP или вообще любой системе где можно хранить и организовывать прикрутил бы плагинчик что бы запускать данный sql, возможно с параметрами, возможно не простыми а из таблиц, на испольнение

    Еще phpMyAdmin и возможно его родственники имеет возможность сохранять запросы. Можно опять же прикрутить ему интеграцию с местным вики или блогом. А из них обратную, ибо «результат смотреть» тоже надо показывать

    А еще «статистика по клиентам за июнь месяц.sql» надо просто во view сохранять и активно пользовать, хотя сложные запросы в одну view могут не уложиться.
    Ответ написан
    Комментировать
  • Социальные плагины. Кто как умеет бороться с ними?

    Wott
    @Wott
    Делаете отложенную загрузку
    Легкий вариант например для G+ гугл предлагает по умолчанию
    Можно функцию вызывать по onload или даже по таймеру после onload
    Ответ написан
    1 комментарий
  • Как правильно спроектировать БД MySQL?

    Wott
    @Wott
    не понятно зачем иметь 4 таблицы для похожих сущностей — post,news,special, special_page. Если ихъ обьеденить, то сразу вопрос с комментами отвалится.

    имхо очень плохая практика иметь безликие id, name — лучше иметь blog_id, post_name и сразу все понятно без разглядывания схем или ключей
    Ответ написан
    6 комментариев
  • Вывод денег с oDesk. Наиболее выгодный способ?

    Wott
    @Wott
    Берем сумму, типа 2-3 тысячи и снимаем во всех банкоматах в округе, потом там где коммисия поменьше и курс получается побольше, снимаем 30-50 тыров и так и живем
    Ответ написан
    Комментировать
  • Как корректно определить, какое из изображений содержит меньше шумов?

    Wott
    @Wott
    шумы будут все портить, поэтому сначала надо их убирать
    далее сжимать и смотреть процент потерь
    качество сьемки можно определить по ширине гистограммы
    Ответ написан
    Комментировать
  • Как искать посты в своей ленте?

    Wott
    @Wott
    Люди делают кросспостинг в FB и другую систему где есть хороший поиск — ЖЖ например. можете в G делать
    Поиск в FB — это просто мем какой-то
    Ответ написан
  • Как организовать модель Development, Staging, Production?

    Wott
    @Wott
    Разработчики должны иметь свое изолированное окружение, обычно локальное
    Дальше неплохо иметь промежуточный dev сервер, как для последнего прогона тестов, так и для интеграционных тестов
    Далее dev копируется в продакшн, или снепшот из продакшена копируется в дев и они меняются ( если что можно мгновенно переключиться в старый )
    Заливка из VCS только в дев.

    Можно ли ставить дев и продакшн в одной среде зависит от того когда тестируется производительность и прочие нагрузочные вещи. Если до заливки в дев, то можно, иначе — нельзя — есть риск завалить тестами или кривыми изменениями.

    Я бы сделал один сервер в продакшн, второй в реплику и третий дев. При сем дев и продакшн менял местами и бекапил бы их вдруг в друга, а реплика имела бы два контейнера или набора серверов соответствующие двум другим машинам.
    Ответ написан
    2 комментария
  • Автоматическая синхронизация структуры БД MySQL ?

    Wott
    @Wott
    Дурацкая мысль — настроить репликацию и включать лог вручную только для DDL команд SET SQL_LOG_BIN=1

    Но вообще имхо как-то неправильно. Я делаю так что тестовое окружение восстанавливаемо, то есть есть где-то заливка базы, которую использую для инициализации перед прогоном тестов. Соответственно ее можно разделить на схему и данные и схему брать из продакшена экспортом. Либо схема лежит в VCS целиком для данного билда или в виде патчей.
    Ответ написан
    Комментировать
  • Возможна ли зенитка против комаров?

    Wott
    @Wott
    У Микрософт есть программа типа СОИ, но против комаров, в рамках борьбы с малярией в третьих странах.
    Я читал о русском умельце, сделавшем такую систему дома, кажется на зеленых лазерах.

    В принципе ничего сложного, только проблема в том что надо кратковременно подавать в точку достаточно большую мощность, что бы сжечь. Такое можно сделать, если сфокусировать несколько лучей или один расфокусированный в точку где летит комар.

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

    Wott
    @Wott
    Очень редко встречаются требования «из Европы», хотя я думаю что к восточной европе и к странам exСССР отношение примерно одинаковое
    имхо страна влияет намного меньше чем рейтинг и фидбек

    Я бы лично не стал экспериментировать, иначе при разборках попросят id а там другая страна и обьясняй потом что ты не верблюд
    Ответ написан
    Комментировать
  • Развертывание локальной сети на объекте в лесу

    Wott
    @Wott
    Полно свичей с 1-4 портами оптики и несколькими медными. От сторожки до домов — оптика, внутри UTP. Или в доме собираем оптику с остальных домов и сторожки. Собирать может банальный свич, даже пассивный, хотя с оптикой такой еще поискать надо.

    Если хотите IPTV то wifi только для мобильных устройств, мультикаст в нем помирает вместе с сеткой. Так что «без проводов» не получиться.

    Отдельно надо подумать что с адресами — ставим маршрутизатор на входе с NAT, DHCP ( но возможны геморрой с IPTV и проключением мультикаста ) или простым свичем бриджуем все в ISP и получаем адреса от него ( но 10 устройств могу послать ). Хотя сейчас есть устройства которые могут отдельные порта пробросить напрямую, а остальные роутить, типа home gateway :)

    Медных портов на оконечных свичах лучше побольше, потому что потом всякие видеонаблюдения захочется, wifi вытащить подальше и поширше и так далее.
    Ответ написан
    2 комментария
  • Способы сортировки смешанных данных массива?

    Wott
    @Wott
    Ну на вскидку
    function doCompare(a, b) {
      var r = a-b;
    
      if (isNaN(r)) {
        r = isNaN(a)-isNaN(b);
        if (r == 0) {
          r = a.toLocaleLowerCase().localeCompare(b.toLocaleLowerCase());
        }
      }
    
      return r;  
    }
    

    Фичей будет то что распознает числа в виде hex и так далее :)

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

    Если профилирование не было и вообще это ради искусства, то лучше не трогать :)
    Ответ написан
    1 комментарий
  • Как избежать нажатия пользователями браузерной кнопки "назад" и создания дублей в базе?

    Wott
    @Wott
    Ну куки там — все написали. Собственно надо просто разделить — это совсем новый пользователь или уже не совсем — ошибка в одном поле или не прошедшая верификация должна приводить к возможности редактировать форму, а не тупо отказать или даже полный отлуп с заполнением заново.
    Я делаю еще проще — я просто в таблице делаю уникальный индекс по ключевым полям. Например по мылу — оно однозначно идентифицирует пользователя. Или мыло плюс ник, ели он нужен ( хотя в этом случае лучше иметь два уникальных индекса по каждому полю ).
    И в случае редактирования я просто пользую replace mysql ( там свои заморочки, но в целом очень удобно ).
    А в случае заведомо новой формы — insert. И дубли не случаются.
    Ответ написан
    Комментировать
  • Как почитать статью удаленного пользователя на хабрахабре?

    Wott
    @Wott
    Меня тоже :) Здравствуй 500ая
    Ответ написан
    Комментировать
  • Как почитать статью удаленного пользователя на хабрахабре?

    Wott
    @Wott
    Mithgol-а понесло :)

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