• Pure URL — автоматическое удаление utm_source и прочего мусора из URL
    0
    Урлы с utm_* в аналитиксе обычно используются для отслеживания эффективности различных маркетинговых или коммерческих активностей. Так, если будет серверный редирект, Вы не сможете четко понимать, откуда пришли люди — рассылка партнера, ваша рассылка или прямой заход, партнерское рич-медиа размещение или переход с премиум-баннера, и т.д.
  • Pure URL — автоматическое удаление utm_source и прочего мусора из URL
    +1
    Один заход будет считаться как 2 — реферальный и внутренний
  • Справедливые ожидания вашего технического директора
    0
    Я знаю, с оценки по времени всегда проблемы. Это такие штуки которые кладут на вас ответственность.

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

    Когда на вас начнут давить вопросами в стиле «А можно как-нибудь быстрее?» я ожидаю услышать «Нет».
    Во-первых, не следует допускать разработчиков к общению с другими отделами в формате планирования без личного участия. Подобные вопросы должны быть адресованы руководителю. Во-вторых, практически всегда «можно быстрее», доходчиво объяснив менеджерам — или работа занимает столько времени, сколько было озвученно, или упрощается исходная задача — при наличии ряда свойств проекта (проект уже в возрасте, основа дохода — реклама, и т.п.), этот выход часто является единственным способом заработать деньги. Доводилось сталкиваться с несколькими руководителями, которые не предлагали варианты, услышав подобные требования по ускорению. Закономерно — их всех уволили или сняли с должности по одной и той же причине — рецедив срыва сроков по крупным заказам.
  • Справедливые ожидания вашего технического директора
    0
    Для угоды всем, мы часто используем некое подобие MVP — если планируем запустить N фитч, но не успеваем, то выкатываем, скажем, N-2, но вполне стабильных, остеивая малоприоритетные. Бизнес не очень страдает (результат все-таки есть) и пользователи рады, потому-что не были в курсе планов.
  • Справедливые ожидания вашего технического директора
    +1
    Возможно, я чего-то не понял, но… На мой взгляд, подобный манифест должен быть прозрачным для команды (я имею, что команду нужно подталкивать и наставлять к тому, чтобы каждый её участник самостоятельно пришел к выводам, написанным выше, вместо декларирования этих выводов перед лицом команды в формате ожиданий), иначе это походит на слова человека, функция которого сводиться лишь к объявлению планки качества и применению дисциплинарных мер за её превышение, что уже дает подрыв авторитета и есть шагом к Fear-driven Development.
  • Кеширование и теги при использовании ZF + memcached
    0
    Мы на нашем проекте как-раз столкнулись с такой же проблемой, но условия были несколько другими — вместо полноценных моделей использовался слой DAO — 1 метод класса = 1 sql запрос, что-то типа getNewsForMainBlock($limit). Поэтому решили отталкиваться от чистого SQL-запроса, выделив роль тегов именам таблиц, которые используются в запросе. При операциях обновления ключи сбрасываются, при выборках, соответственно, устанавливаются.

    Мы изначально стремились полностью уйти от потери записей в кэше, отдав под него всю память (исключая выталкивание по LRU) и устанавливая TTL записи в 0. Таким образом, единственно возможная ситуация, при которой ключ пропадал, являлся бы сброс из приложения.

    Далее, мы использовали свою расширенную версию адаптера кэширования, во многом похожую на Вашу, но столкнулись с рядом проблем, из-за которых пришлой отказаться от такой схемы хранения тегов. Изначально мы имели в кэше запись вида:
    AllCacheTags => [
        tag1 => [
            key_id1,
            key_id2,
            key_id3,
            ...
        ],
        tag2 => [ ... ]
    ]
    


    Но после внедрения такой схемы, у нас очень сильно поднялся average load на сервере — как выяснилось, у расширения memcache есть параметр compress_threshold, который устанавливает лимит на размер ключа, по достижении которого это значение перед вставкой в memcache будет сжиматься в принудительном порядке, независимо от установленного при вызове add() флага. Так, поскольку чтение и запись этого ключа проходили довольно часто, постоянные операции сжатия/распаковки и давали такой эффект повышения нагрузки.

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

    Пока работает без нареканий :)

    Из планов по оптимизации можно выделить внедрение защиты от dogpile эффекта методом имплементации механизма локов и отдачей не-актуальной записи на момент лока.
  • Google Schemer
    +3
  • Skype is down again
    0
    Все Linux, что есть на работе (Arch, CentOS, Fedora, Ubuntu) co Skype 2.2.0.25 и 2.1.0.81 не работают, как с удалением shared.xml и всего ~/.Skype/, так и без удаления.
  • Skype перестал работать
    +1
    На ubuntu стоял 2.2 — валился, сделал даунгрейд до 2.1 — работает нормально.
  • Первичный кэш в Kohana 3 с использованием тегов
    0
    Делал похожий механизм для ZF, сейчас переношу его на проект, написанный на Kohana 3.1, но с небольшими дополнениями — есть такая задумка определять теги автоматически, разобрав sql-запрос и выбрав из него все используемые таблицы, используя их как теги при модификации (для сброса) и выборке (для сохранения). Решение довольно деревянное, но для сайтов с не слишком хитрой структурой кэша подойдет прекрасно.
  • Цветной man или как разукрасить вывод echo
    0
    Свои скрипты, конечно, лучше красить таким методом, который указан в статье (cwrapper — это всё-таки стороннее приложение). А для уже существующего набора команд из окружения такие обвертки самому писать несколько накладно, гораздо проще использовать уже готовый.
  • Цветной man или как разукрасить вывод echo
    +2
    Существует замечательный проект cwrapper, который навешивает обработчики на самые частоиспользуемые (с точки зрения автора проекта), разукрашивая их вывод.
  • Люди-роутеры
    0
    Нет, они сделали свою замену интернетам по принципу p2p на wifi, которая работает на обычном железе.
  • Люди-роутеры
    0
    Существует вполне работоспособная (если не ошибаюсь, сейчас проблемы с ихней заменой DNS). Более того, это уже вторая, полностью переработанная версия (первая была на C) на Python. Вот хороший бложек на тему разворачивания сети у себя.
  • Люди-роутеры
    +1
    Как я понял, эта сеть зависит от специализированного железа, что, в принципе, не хорошо. На сколько я помню, уже давно существует альтернативная разработка от итальянцев, реализующая подобный принцип но на стандартном железе, Netsukuku. Правда, её недостаток — нацеленность на wifi, впрочем, у них в планах была реализация полноценной работы на проводах — не знаю, реализовали ли её, или нет.
  • Пишу на псевдокоде, работает в PHP
    0
    А я и не говорил, что это метаязык. Если я правильно понял комментарий, на который ответил, то речь там шла именно о ре-использовании кода в различных окружениях, а не о природе подхода.
  • Пишу на псевдокоде, работает в PHP
    +2
    Facebook для этой цели придумал Apache Thrift.
  • Установка и настройка: Nginx + php5-fpm
    0
    Тоже не знал, одно время начали вылавливать в user-uploads файлах всякие интересности в виде картинок с php-кодом внутри, долго думали, как они исполняются, в итоге завернули все запросы на index.php.
  • Эффективные знакомства
    +1
    В принципе, да, законодательство волшебно в отношении различных сносок и пояснений.
  • Эффективные знакомства
    0
    Поле полезное, кроме шуток. Но если сделать такое поле, это разве не будет уголовно наказуемым в духе «содействие проституции» и т.п.?
  • Эффективные знакомства
    +2
    Техническая реализация Вашего второго варианта — habrahabr.ru/blogs/algorithm/104901/
  • Видеохостинг своими руками
    0
    Спасибо за статью, по крайней мере, для меня сейчас эта тема весьма актуальна.

    Возможно, вопрос немного личный, но какие сервера у вас стоят и какая для них рабочая нагрузка?
  • Полезны или вредны перерывы для вашей продуктивности?
    0
    На мой взгляд, следует разделять перерывы и вынужденные перерывы — если во время обычного перерыва можно обдумать что-либо, абстрагироваться от задачи и представить всю систему целиком, выделяя слабые места, вообщем, обдумать детали, то вынужденный перерыв может и не дать такой возможности. Т.е. после долгой писанины нужно иногда отвлекаться, иначе пойдёт хард-код, но нужно для этого словить правильный момент, а не просто смотреть на часы и каждые 45 минут выходить курить/пить_кофе/ваш_вариант.
  • Ubuntu против Windows: а воз и в 10.10 там
    +1
    > Может это и лечилось заменой одного слова в конфиге
    Такой же ноут с теми же симптомами был вылечен добавлением --no-apic в grub.conf. Кстати, 10.10 на этом же ноуте (новая установка, не апдейт) пошла без упрашиваний, видать пофиксили.
  • Лучший друг айтишника
    +5
    Котэ коллеги:
  • Где Вы впервые начали пользоваться консолью?
    0
    Первый раз также был с Корветом.
  • Как загружается ARM
    +5
    А вообще представленный вами код в том или ином виде содержится в startup.s предоставляемый производителем чипа, не вижу смысла переписывать его заново
    Вы, видимо, забыли, что это ознакомительная статья, для того, чтобы показать, как и что загружается, а не написание своей реализации загрузчика.

    Автор, спасибо, было интересно прочитать. С нетерпением жду продолжения.
  • RFID-имплантаты: здравствуй, Матрица!
    +1
    Мне кажется, Вы забываете, что существует некая армия красноглазых энтузиастов, которые расковыривают любую продукцию на рынке, претендующую на звание вершины технологического прогресса, в любой из отраслей — Ваша теория сокрытия недокументированных возможностей в таких штуках, которые аццки повышают скил паранойи, лично мне кажется маловероятной.
  • Прототип боевого гиганского человекоподобного робота
    0
    Да, такие роботы управляются с пульта, либо запрограммированы на серию простейших движений (http://www.isobotrobot.ru/remote.html и www.isobotrobot.ru/program.html), а если в это время к рукам примотать какой-то фейковый автомат, выходит вполне реалистичная картина стрельбы.
  • DDoS атака на бога
    +1
    По-сути, это есть пари Паскаля изложенное в несколько иной форме.
  • nginx и непонятные цифры перед
    0
    Спасибо! Как-раз столкнулся с такой проблемой, Ваше решение было очень кстати!
  • Играя социальную роль
    +2
    Абсолютно согласен. Думаю, в ряд «вредных советов» стоит внести ещё и те, которые не способствуют конструктивному разговору («Не слушать собеседника», «Не реагировать на слова, в особенности вопросы собеседника»). Также часть пунктов «Приёмы повышения статуса собеседника» похоже на простое лизание жопы («Умалить свои заслуги в сравнении с заслугами собеседника», «Согласиться с суждением собеседника, не требуя доказательства»). Ну, и конечно же, пункт «Ударить собеседника»…

    А вот то, что осталось, как по мне, действительно заслуживает внимания, поскольку во многом похоже на поведение реальных людей с определённым статусом в реальных ситуациях, в не зависимости от их нравственных норм и культуры общения.
  • Производительность C++ vs. Java vs. PHP vs. Python. Тест «в лоб»
    +7
    «Из чего лучше пить кофе: чайник, чашка, трамвай или абрикос?»
  • 17 usability tips to make your CMS rock
    0
    Пожалуй, с пунктом 17 стоит не согласиться — а как же бета-релизы, RC и сбор фидбэка с их помощью? В этом вопросе, мне кажется, разработчик должен исходить из времени, которое он готов посвятить системе, и качества, которое он хочет вложить в продукт.
  • Бактерии могут решать математические задачи
    +17
    Зравствуйте! Нужна ваша помощь!!!

    Решил сделать программу. Взял руководство, вывел новый штамм, как там и написано, и теперь из системника постоянно лезет синяя слизь! В руководстве написанно, что должно быть немного красной, а у меня уже вся комната в синей!!! Что я делаю не так??? Чёртов BioPascal…

    P.S. Это может быть от того, что я вчера на системник случайно баночку пенициллина опрокинул???
  • Злые вы, уйду я от вас… или Кто ты, хабровчанин?
    +1
    Поддерживаю. Такое нытьё не к месту. Это как снежный ком — стоит одному написать на офтопиковую тему, которая «касается всех», как через пару дней ещё десяток энтузиастов начнет флудить на подобные темы. Вот и получаем кучу офтопа на тему испорченности Хабра, тортов и прочих тем, которые не касаются основной направленности ресурса. Спрашивается — нахрена кричать о попсовости ресурса, если и сами подтолкнули его к этой деградации своим постом?
  • Хранитель экрана в виде терминала
    0
    Эх… У меня в федоре раньше стоял хранитель классный. Приходят знакомые, например, музыку покидать. Ставим на копирование, идём курить, возвращаемся, а на экране BSOD… Как-же приятно было созерцать лица знакомых, когда со словами «Это же линукс» я подходил, дёргал мышкой и на экране снова появлялся рабочий стол.
  • Авторизация/регистрация на сайте. Какой способ лучше?
    +1
    Хм… Лично я часто сталкиваюсь с проблемами при восстановлении пароля, поскольку забывается не только пароль, но и email, на который регистрировался аккаунт (в наличии порядка 10 ящиков для самых разнообразных нужд). C логином, таких проблем не возникает.
  • Какой технологию подключения к интернету ты используешь, хабрачеловек?
    +4
    Dial-up такой dial-up… это целая религия, которая учит нас терпению и спокойствию (особенно, если до этого пользовал доступ по-шустрее).
  • Как молоды мы были…
    0
    Хех)) Да уж… Моё первое творение было в 6 классе — небольшая программа на корветном бейсике, которая рисовала окружность сначала белым цветом, потом радиус расширялся на 1px, и ещё одна окружность чёрным. Когда радиус доходил до краёв экрана, радиус начинал убывать, и это всё заканчивалось строкой GOTO 10. В целом это всё выглядело, как будто на экране постепенно появляется пластинка от проигрывателя, и также постепенно убывает, что приводило в ступор всех одноклассников и, поначалу, учительницу =)