• Реализация многоязычности в PHP?

    alekciy
    @alekciy
    Вёбных дел мастер
    А с 00 лет ни чего кардинально не изменилось. Если прочесть каменты, то становиться очевидным, что часть народ изобретает велосипед в своих проекта и выходит у них в итоге gettext. В общем делали-делали, а модуль i18n получился gettext.

    Я бы рекомендовал так. gettext использовать для редко изменяющийся информации. Меню, различные надписи делать через него. При этом получаем ряд плюсов:

    1) Формат существующий много лет и работающий на огромном множестве платформ. А это означает, что он понятен будет любого кто знает о нем, даже если человек не знаком с тем языком на котором пишется система. Т.е. все преимущества стандартов. С велосипедами же приходится еще разбиратся как оно работает.

    2) Кэширование. gettext активно кэшиться в ОЗУ.

    3) Обилие софта для переводчиков.

    4) Поддержка множественных чисел. Не во всех велосипедах об этом думают в том виде, как это сделано в gettext-е.

    5) Поддержка gettext в шаблонных движках.

    6) С gettext-ом можно работать не только из PHP. Актуально на гетерогенных проектах.

    Ну а контентную часть рекомендую вынести на уровень БД. Лично я использую для каждого языка отдельную таблицу. Плюс по сравнению с хранение в отдельном столбце — отсутствие ALTER-ов при добавление/удалении языка.
    Ответ написан
    Комментировать
  • Как сделать составной индекс для повторяющихся полей в where с and и or, mysql?

    @shagguboy
    вот такой индекс. если будет сильно большой, или селективность у полей сильно разная, можно ограничится самым селективным полем.
    CREATE INDEX idx1 ON doctors (name_first, name_last)
    запрос с OR индексы не использует, надо переписать на UNION
    Ответ написан
    Комментировать
  • Виртуализация машины или виртуализация на уровне ОС (KVM vs OpenVZ)?

    @zuborg
    Согласен с foxmuldercp, замечу только, что если вопрос только в разделении настроек php (включая модули), то можно обойтись и без виртуализации вообще.

    Все равно на каждую вирт.машину понадобится отдельный ип — можно на этот ип поцепить отдельно скомпилированный апач+пхп+остальное. Отдельно скомпилированный — в смысле в свою личную изолированную директорию (./configure --prefix=path ..), со своими модулями и личными .ini/.conf файлами.

    Такой вариант самый экономный в плане серверных ресурсов, управление тоже не сложнее управления отдельными виртуалками. Плюс есть возможность простого расшаривания файловых ресурсов, т.к. работают симлинки и хардлинки на весь сервер, а не только в пределах виртуалки.
    Ответ написан
    Комментировать
  • Провайдеры услуг интернет-эквайринга в Украине. Порекомендуйте?

    > Вопрос к хабросообществу: как лучше всего организовать со стороны сайта-магазина процесс идентификации клиента как владельца карты перед оплатой?
    Обычно в таких случаях просят прислать фото/сканы документов. Это может быть скан паспорта/водительского удостоверения (имя владельца карты должно совпадать с именем в пасспорте) или скан карточки с двух сторой (можно затереть CVV2) — чтоб подтвердить что карта ваша, а не просто вы сперли у кого-то номер и CVV2.
    Ну или есть у эквайринга есть возможность оставлять произвольный комментарий к операции — можно поступить так же как PayPal — снимать $1 и в комментарии указывать код цифровой, пользователь получит в банке выписку и узнает этот код, введет у вас на сайте и вы вернете ему его доллар на счет.
    Ответ написан
    1 комментарий
  • Можно ли настроить VPN только для одного пользователя ПК (Vista Home Premium)?

    Stalker_RED
    @Stalker_RED
    Как вариант, можно завести виртуальную машину, и пробросить её через vpn. Заодно и безопасность с анонимностью можно повысить — очень просто и удобно при необходимости загружать снапшоты с «чистой» системой.
    Ответ написан
    1 комментарий
  • SQL запрос, как?

    m00t
    @m00t
    Вариант 1 — в лоб. Формально работает правильно (в оличие от первых двух ответов), но некрасиво:
    SELECT * FROM test t1
    WHERE
    t1.is_main = (
    SELECT MAX(is_main) FROM test t2 WHERE t2.parent_id = t1.parent_id
    )
    OR NOT EXISTS(SELECT * FROM test t2 WHERE t2.parent_id = t1.parent_id AND t2.is_main IS NOT NULL)
    GROUP BY t1.parent_id
    Ответ написан
  • SQL запрос, как?

    @edogs
    select id, parentid, name, max(ismain) as max_ismain from tablename group by parentid;
    Ответ написан
    9 комментариев
  • Бартер на Хабре?

    @korvindest
    Человечество давным давно придумало деньги, что бы прекратить бартер, когда человек за корову мог получить 100 горшков или 10 бочек, а потом думать куда бы их махнуть.
    Большинство услуг не равнозначны и менять одну на другую будет невыгодно обеим сторонам. Первый может сильно прогадать, второй будет боятся за качество, т.к. слишком дешево.

    Сейчас перевести деньги через электронную систему, это минимум затрат (максимум 1%), но при этом человек получит за свои услуги ровно столько сколько просит/заслуживает а не эфемерный бартер, который еще может быть и не выполнен.

    Кроме того, на Хабре полно людей, которые готовы потратить часть своего времени на помощь абсолютно бескорыстно и думаю, что предложение оплаты в таких случаях будет воспринято неоднозначно.

    P.S.
    Все выше сказанное мое ИМХО.
    Ответ написан
    3 комментария
  • Гугло карта, криво инициализируется если находится на скрытом табе

    lashtal
    @lashtal
    — http://stackoverflow.com/questions/4064275/how-to-deal-with-google-map-inside-of-a-hidden-div-updated-picture
    Ответ написан
    Комментировать
  • Варианты хранения паролей от FTP?

    getencapsulated
    @getencapsulated
    использую хранилку паролей — keepassX, мне хватает: в одно нажатие клавиш можно скопировать адрес, затем логин, затем пароль. Есть под вин, линукс, мак, андройд. Базу храню на флешке, она, естесственно, запаролена, там же клиент под вин. Вполне так удобно
    Ответ написан
    4 комментария
  • Структура БД для ведения статистики, как организовать?

    mark_ablov
    @mark_ablov
    Смотря что вам с этими ID'ами дальше делать.
    Если хотите JOIN'ить, то лучше сделать промежуточную таблицу как все делают для many-to-many иерарихй.
    Ответ написан
    Комментировать
  • Как делать полный бэкап хостинга с объемом занятого пространства >50%?

    sledopit
    @sledopit
    rsync же на сервер с большим диском. а потом там хоть уархивируйтесь.
    Ответ написан
    2 комментария
  • Флешки с крепким входом USB

    a3x
    @a3x
    Если найдете абсолютно устойчивую флешку — разворотите все USB порты.
    Ответ написан
    Комментировать
  • Магистратура, аспирантура, армия. На какой путь встать?

    max_mara
    @max_mara
    Лично я свалил в Америку — и в аспирантуру не надо, и в армию.

    Если уж совсем не хочеться ни туда, ни сюда — женись. Сможешь начать работать, зарабатывать опыт и деньги.

    Диплом в принципе не нужен вообще, нужно желание.

    Но думаю определенным плюсом будет наличие сертификатов, например: Зенд, Оракл, Майкрософт или что-то подобное.
    Ответ написан
    6 комментариев
  • Сложно разобраться в таком интерфейсе?

    homm
    @homm
    Нет, ну пользователей вы своих не любите, таблицу им перевернули зачем-то, но зачем над отвечающими издеваться, уменьшать картинку до нечитаемых размеров? Места то полно:

    Ответ написан
    2 комментария
  • Как сохранить драгоценное время и нервы ?

    @lesha_penguin
    Если Вам всякие службы сообщений нужны для коммуникации по работе — то древний принцип «разделяй и властвуй»: есть Личная Аська а есть Рабочая Аська, есть Личный телефон а есть Рабочий телефон, есть Личный Jabber а есть Рабочий Jabber, есть Личный Скайп а есть Рабочий Скайп, есть Личный Email а есть Рабочий Email… и т.д. полное разделение контактов, сразу почувствуете насколько ваш день станет продуктивнее когда из него исчезнет пустой треп!

    И ни в коем случае, не поддавайтесь соблазну, не позволяйте «перетекать контактам», иначе снова будете горько жалеть о бесцельно потраченном времени!

    Кстати, если вам какое-то средство не нужно для работы — то просто вырубайте без колебаний! Тоже экономит массу времени и сил!
    Ответ написан
    Комментировать
  • Смена раскладки поумолчанию в windows

    @wwi
    Гугл знает все:

    Идём по адресу [HKEY_USERS\.DEFAULT\Keyboard Layout\Preload], и видим там в каком порядке переключается раскладка в окне логона, и меняем на то что нам надо. В случае с двумя установленными языками, русским и английским, всё должно выглядеть так:
    «1»=«00000409» — Английская (США), основная
    «2»=«00000419» — Русская, дополнительная
    Если охота поменять сочетание клавиш, которые переключают раскладку, то и это можно сделать. Для этого идём по адресу [HKEY_USERS\.DEFAULT\Keyboard Layout\Toggle], и редактируем ключ Hotkey. Когда он имеет значение 1, язык переключается через левые Alt+Shift, когда 2, то через левые Crtl+Shift.
    Ответ написан
    Комментировать
  • На Хабре отменили топики-ссылки?

    polym0rph
    @polym0rph
    Основатель Bits.media
    «Все» убрали, топик- ссылки выпилили. Чего дальше ждать, обязательный просмотр трех проплаченных блогов перед чтением других постов? ИМХО для регулирования контента и отсеивания материалов плохого качества вполне себе справлялась карма и рейтинг. Не хочешь читать фигню- минусни автора, и 1 — 2 раза проколовшись он уже ничего не запостит. Понравился материал по ссылке- плюсани, будет тебе еще. А тут в принудительном порядке все выпилено. Плюс топик-ссылки совсем уж джуниоры постить не могли, карма 20 довольно неплохой порог.
    Может, все- таки, какой-нибудь аналог топик-ссылок сделать?
    Ответ написан
    Комментировать
  • На Хабре отменили топики-ссылки?

    Mairon
    @Mairon
    Странное изменение, ей-Богу. Со ссылками была возможность поделиться какой-то информацией в быстром режиме, а теперь будут топики в одну строчку. Во всяком случае я буду такие постить :)
    Ответ написан
    Комментировать
  • Что делать с человеком, который не комментирует код?

    angelov
    @angelov
    Заепывайте его почаще по каждым мелочам и по нескольку раз, если отсутствие документации создает вам трудности, чтобы он понял, что лучше описать один раз, чем 10 раз объяснять. Звоните в субботу ночью, в 5 утра, во время обеда и т.д.

    Главное не переборщить, чтобы, если это его власти, не возникла мысль уволить/заменить на менее любопытного работника.

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