• Отдача случайного файла по определённому URL

    snp
    @snp
    Простой скрипт на PHP или чём-либо ещё, отдающий X-Accel-Redirect (http://wiki.nginx.org/XSendfile)
    Ответ написан
    Комментировать
  • Отдача случайного файла по определённому URL

    Лучше пересобрать nginx «под себя», это несложно. Когда то решал такую задачу именно через random_index, а потом дописал в модуль set_misc функцию set_random var min max; которой отдавать случайный файл по URL гораздо удобнее. Использовал кстати это для ротации статических заранее сохраненных html блоков.
    Сейчас думаем изменить политику ротации (потому что из 5ти блоков рандомно часто подрядо одинаковые показывает). Сделал команду set_rotate var from to; и отправил pull request разработчику модуля set_misc. С помощью этой команды легко делается ротация блоков по порядку, значение последнего показанного блока можно сохранять в Cookies
    Ответ написан
    Комментировать
  • Отдача случайного файла по определённому URL

    @rPman
    А 'костылей' вида не желаете?
    <?php header('Location: '.rand(1000000,9999999)); ?>
    Ведь в этом случае файлы и для клиентов останутся статикой, со всеми плюшками кеширования и т.п.

    Я проверял, браузеры без проблем открывают все необходимые ресурсы в не зависимости от того, сколько редиректов было сделано для их получения.
    Ответ написан
    Комментировать
  • Порекомендуйте персональный GPS/GSM-трекер и сервис для мониторинга?

    region23
    @region23 Автор вопроса
    веб-разработчик
    Веб-сервис «Пилигрим» оень понравился, но их GPS-устройства предназначены для установки в автомобиль. Наша цель — раздавать их сотрудникам, которые передвигаются по городу пешком и на общественном транспорте.
    Ответ написан
    2 комментария
  • Порекомендуйте персональный GPS/GSM-трекер и сервис для мониторинга?

    piligrim-gps.ru

    их же сервис — wayker.com

    Существуют разные модификации устройств. Работают через сим-карту, так что сотрудник, не зная номер не сможет ничего сделать с этим устройством.
    Много дилеров по всей стране, не только Питер.
    Ответ написан
    Комментировать
  • Область применения ссылок?

    Видал эту дискуссию.

    1. ссылки не выпилят, к гадалке не ходи (кроме того, что Вы сказали). Тем более что очень много встроенных функций принимают в качестве аргументов ссылки.

    2. Такой подход позволяет сэкономить памяти и времени. Взять хотя бы функции ряда sort, ksrot… Постоянно копировать большой массив полностью было бы очень накладно, тем более, что массивы в PHP очень много места занимают.

    Так же полезно бывает использовать ссылки, если необходимо, чтобы метод вернул несколько значений. Например, preg_match, возвращает true/false и можно ещё получить массив совпадений. Некоторые, придумывают свои извращения. Представим, что preg_match можно переписать, то можно было бы получить вот такую конструкцию: list($is_match, $matches) = preg_match(**), что существенно усложнит понимание интерфейса функции.

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

    4. Ну… все мы используем ссылки, так как пользуемся нативными функциями PHP. И в своём коде я использую ссылки (как выяснилось в трёх местах: два метода, один foreach) и пока ни одно животное во время использования кода не пострадало.

    Что касается моды, то да, в программировании есть своя мода. Те же синглтоны были некогда популярны, а сейчас они в опале. Но в случае с синглтоном есть объективные причины. А тут я объективных причин не вижу, чтобы не использовать ссылки.
    Ответ написан
    2 комментария
  • Нужно ли оптимизировать скрипт?

    taliban
    @taliban
    php программист
    А Вас устраивает такое время? Если да, то не нужно, если нет, то нужно оптимизировать. Нет идеальных цифр, есть допустимые цифры, и если эти цифры переходят допустимый предел, то оптимизируют, иначе нет.
    Ответ написан
    Комментировать
  • Куда развиваться дальше?

    @da0c
    В двух словах — переходить из админов в прогеры, навскидку вижу несколько вариантов.

    — Как уже говорили, можно попробовать PHP по фрилансу, по опыту моего друга мозгам засохнуть не дает, но только на некоторое время.
    — Можно потихоньку в другое прогерство вдариться — Android/iPhone — особенно под iOS фрилансеров с руками отрывают там и расценки интереснее, чем в php и «нагрузка на мозг» получше.
    — Еще вариант, начать осваивать 1С — сначала простые задачки, обновить конфигурацию, поправить печатную формочку, а потом сложнее.
    — Самый романтичный вариант — начать самому ковырять что-нибудь опен сорсное, что угодно, на ваш вкус, хоть дописать модули для Mantis хоть начать писать патчи для postgresql. Это конечно ближе к поэзии, но деньги будут сильно потом.
    Ответ написан
    3 комментария
  • Сервис для перевода своих приложений другими?

    @Ualde
    Именно для ПО подобных сервисов не встречал, но notabenoid.com позволяет коллективно переводить все что угодно.
    Ответ написан
    1 комментарий
  • Сайты гос.структур?

    @antonlustin
    Комментировать
  • Автосигнализация не вскрываемая кодграббером?

    @egorinsk
    Наверно, разработчикам таких систем выгодно, чтобы машины угоняли и покупали новые. Других объяснений, при нынешнем то урвне развития технологии, я не вижу.
    Ответ написан
    Комментировать
  • Сайты гос.структур?

    michs
    @michs
    Знаю кто делал tb.mchs.gov.ru/
    Не студенты. Если есть критика передам тем кто делал.
    Ответ написан
    3 комментария
  • eBay: непростая ситуация

    kotomyava
    @kotomyava
    Системный администратор
    Продаёте матрицу тут, купите нужную. Думаю, всё остальные варианты будут не проще, не быстрее, и более хлопотны.
    Ответ написан
    Комментировать
  • Автосигнализация не вскрываемая кодграббером?

    Ocelot
    @Ocelot
    1. Алгоритм требует двустороннего обмена данными. В простых сигналках (которые вскрываются граббером) поток данных однонаправленный: в брелоке передатчик, в базовом блоке — приемник.

    1.1 Если уж у нас есть двусторонний канал, что мешает применять нормальные криптографические протоколы аутентификации? Логика подсказывет, что в современных сигналках так и делается. Конкретные модели не назову, самому интересно. Производители почему-то тщательно скрывают информацию о своих протоколах.

    2. Запрашивать пароли нужно не по порядку, а рандомно (но следя, чтобы не было повторов). Иначе возможна следующая атака:
    — Жертва снимает машину с сигнализации. Брелок начинает сессию. Сигналка запрашивает пароль номер 100500. Брелок говорит пароль и команду. Запоминаем номер.
    — Жертва садится в машину и едет, следуем за ней.
    — Жертва ставит машину на сигнализацию. Брелок начинает сессию. Ставим помеху, база ничего не слышит.
    — Притворяемся базой и запрашиваем пароль номер 100501. Брелок говорит пароль и команду. Записываем.
    — Жертва видит, что ничего не произошло, и снова нажимает на кнопку. Брелок начинает сессию. Опять ставим помеху, база вновь ничего не слышит.
    — Притворяемся базой и запрашиваем пароль номер 100502. Брелок говорит пароль и команду. Записываем.
    — Притворяемся брелоком и начинаем сессию. База запрашивает пароль номер 100501. Говорим пароль и команду.
    — Машина становится на сигнализацию, жертва уходит.
    — Притворяемся брелоком и начинаем сессию. База запрашивает пароль номер 100502. Говорим пароль и команду. Машина наша.

    3. Брелок будет плохо защищен от копирования. Одно дело — хранить 128 бит ключа в защищенной памяти внутри криптопроцессора, а другое — сотни кБ-мегабайты одноразовых ключей. Потребуется внешняя флешка, которую можно легко прочитать.

    4. Что делать, когда ключи все-таки закончатся? Перепрошивать сигналку? Генерировать новые? А как их потом в брелок заливать? Нужно тщательно продумать этот момент.

    5. Как будет выглядеть процедура добавления в систему нового брелока?

    В целом идея хорошая и при грамотной реализации будет надежно работать. Но дьявол, как всегда, в деталях :)
    Ответ написан
    4 комментария
  • Как сделать WiFi точку доступа без авторизации?

    @rPman
    Элементарно — поставить каскадный прокси, уже не требующий пароля, который в свою очередь подключается к тому что пароль требует.
    Ответ написан
    2 комментария
  • Территориально распределенный веб-сервер?

    aeont
    @aeont
    Поделюсь своим опытом.
    Исходные данные: Windows Azure в Азии, Европе и США хостят стартовую страничку Composite C1 CMS — c1console.composite.net/C1/StartPage.aspx

    Необходимо было обеспечить фэйловер и распределение трафика.

    Сначала хотели использовать www.geoscaling.com — регистрировали smart subdomain, на php писали скрипт:
    www.geoscaling.com/dns2/wiki/short_programming_guide_for_smart_subdomains (Return the closest server to the user)…

    кусок тестового конфига:

    $new_server['lat'] = 32.802955;
    $new_server['lon'] = -96.769923;
    $new_server['loc'] = «DOTNETPARK, UNITED STATES, TEXAS DALLAS»;
    $new_server['ip'] = «1.1.1.1»; // IP1
    $servers[] = $new_server;

    $new_server['lat'] = 50.45;
    $new_server['lon'] = 30.523333;
    $new_server['loc'] = «VOLIA ISP, Ukraine, Kyiv»;
    $new_server['ip'] = «1.1.1.1»; // IP2
    $servers[] = $new_server;

    $new_server['lat'] = 55.641486;
    $new_server['lon'] = 12.080418;
    $new_server['loc'] = «composite.net, Denmark, ROSKILDE»;
    $new_server['ip'] = «1.1.1.1»; // IP3
    $servers[] = $new_server;

    в настройках задается фейловер сервер, который будет обслуживать в случае отказа.

    Ньюансы:
    1) около 5 минут ждать что бы «подхватился» конфиг
    2) В настройках смартхоста необходимо прочекать «Share city info (country, city, latitude…
    3) каждый смарт реквест с геодатой стоит в сумме 3 кредита. Вам дается определнное кол-во бесплатно.
    4) Информация годичной давности — бесплатно давали 100к кредитов, те на 33к реквестов.

    P.S. В итоге мы использовали нативные средства Windows Azure.
    Ответ написан
    Комментировать
  • Территориально распределенный веб-сервер?

    @Chii
    Поставить умный DNS сервер, который будет мониторить оба сервера и в случае падения одного перекидывать всех на оставшийся.
    А если ни кто не упал, то по территориальному признаку перекидывать куда надо.
    Я бы так и сделала.
    Ответ написан
    Комментировать
  • Git отмена изменений

    ataraev
    @ataraev
    Ruby, Go
    git reset 6fa93cb0a07c9b9b5dbd03d5dfa861c1fe23afc8
    git push -f origin master
    Ответ написан
    9 комментариев