• PHP и быстрая база данных в файлах

    Hoorsh
    @Hoorsh
    Digital-специалист, веб-разработчик
    используйте в таком случае fopen :)
    Ответ написан
    3 комментария
  • PHP библия

    @niko83
    Одно дело справочник по функциям с полным описанием аргументов и примеров (тут понятно у каждого языка свой справочник), а другое дело собрать это всё в большую работоспособную систему с проработанной архитектурой. Эти принципы уже для многих языков могут быть одинаковыми.
    Хорошая программа на PHP или любом другом языке, мне кажется, включает в себя правильное использование функций в правильной архитектуре.
    По функциям — php.net в помощь. По архитектуре и шаблонам конкретного источника не назову, но выделю отдельно автора — М.Фаулер.

    Терпение и труд — всё перетрут.
    Ответ написан
    1 комментарий
  • Nginx: Как ограничить количество соединений для различных виртуальных хостов?

    @Hint
    Подождите. А как сервер узнает, к какому виртуальному хосту клиент будет делать запрос? Эта информация передается в HTTP-заголовке уже после установления соединения.
    Ответ написан
    1 комментарий
  • Автоматический подбор музыки по вкусу?

    Kakysha
    @Kakysha
    Я знаю! Я знаю! Это же GrooveShark! Напихаете немножечко песенок из поиска в плейлист, дальше жмете большущую кнопу Radio и оно само будет добавлять песни по мере приближения к концу плейлиста.
    Ответ написан
    3 комментария
  • Создание *.bat файла?

    mambet
    @mambet
    Не могу устоять :) GREP'ы, PowerShell'ы — неспортивно.
    Медленный вариант, использующий чистый batch:
    for /f "delims=" %%a in (build.xml) do set lastLine="%%a"
    if %lastLine%=="Everything is Ok" echo YEAH!
    

    Правда, работать будет только под какой-нибудь виндой не младше XP.
    Ответ написан
    Комментировать
  • Юридический тупик

    З. предъявила иск к ГУП «Петрозаводское отделение Октябрьской железной дороги» и ГУП «Октябрьская железная дорога» по тем основаниям, что в августе 2001 г. истица приобрела для несовершеннолетней дочери путевку в лагерь отдыха и 9 августа 2001 г. поездом № 15 «Мурманск-Москва» повезла дочь на отдых. В Москву поезд прибыл с опозданием на 3 часа 52 минуты, в связи с чем истица с дочерью опоздали на поезд «Москва-Симферополь» и вынуждены были возвратиться назад.
    Истица просила взыскать с ответчиков стоимость неиспользованной путевки, расходы по проезду в Москву и обратно, убытки, связанные со сдачей заранее приобретенных билетов, а также компенсацию морального вреда.
    Решением Петрозаводского городского суда исковые требования удовлетворены частично. С ГУП «Октябрьская железная дорога» взысканы убытки и штраф.
    В возмещении компенсации морального вреда отказано.
    В иске к ГУП «Петрозаводское отделение Октябрьской железной дороги» отказано.
    Решение суда в части отказа в иске о взыскании компенсации морального вреда отменено по следующим основаниям.
    Суд отказал в удовлетворении заявления, обосновав свое решение тем, что истица не обращалась к надлежащему ответчику с претензией, не заявляла своих требований, за неисполнение которых в соответствии со ст.15 Закона РФ «О защите прав потребителей» установлена ответственность в виде компенсации морального вреда.
    Данное толкование закона является ошибочным.
    Статья 15 Закона РФ «О защите прав потребителей» предусматривает возможность компенсации морального вреда, причиненного потребителю вследствие нарушения исполнителем прав потребителя.
    Согласно ст.27 указанного закона исполнитель обязан осуществить оказание услуги в срок, установленный правилами видов услуг или договором.
    Установив в судебном заседании, что вследствие опоздания поезда по вине исполнителя ГУП «Октябрьская железная дорога» – были нарушены права истицы, суд необоснованно отказал во взыскании компенсации морального вреда.
    При таких обстоятельствах решение суда в части отказа в возмещении компенсации морального вреда является незаконным и подлежит отмене. Учитывая, что обстоятельства, имеющие значение для дела, установлены на основании имеющихся материалов, коллегия вынесла новое решение о взыскании с ГУП «Октябрьская железная дорога» в пользу З. компенсации морального вреда.
    Ответ написан
    Комментировать
  • На чем лучше всего писать Windows приложение?

    deactivatedtheelephant
    @deactivatedtheelephant
    Мда напомнило:

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

    YYY: Причем из этих двух молотков, один был бы самодельной киянкой!

    XXX: Точно. А еще кто-нибудь заявил бы, что все ламеры, а вместо гвоздя нужно использовать шуруп.

    YYY: И предложил бы свой вариант самореза с правой резьбой под шестигранную отвертку с логотипом Sun…

    XXX: А потом кто-нибудь прийдет и скажет, что посадил все на суперклей и вроде стоит.

    YYY: А кто то будет причитать про то, что раньше вообще без гвоздей строили и стояло века…
    Ответ написан
    1 комментарий
  • Модуль прозрачного кеширования mysql запросов в memcached

    @pwlnw
    «Прозрачное кеширование» есть в самом mysql.
    Оно настолько хорошо и прозрачно работает, что ты про него даже не знаешь.
    Проблема возникает тогда, когда нужно кеш инвалидировать. Например, обновление некоторых записей. Поэтому выдуманное тобой прозрачное кеширование вынуждено будет повторить поведение кеша mysql — удалить все запросы содержащие обновляемую таблицу. Ну и зачем писать то, что уже написано?

    Отсюда вывод: если хочется что-то ускорить еще быстрее кеша mysql — кеширование не должно быть прозрачным. Для каждого оператора должно хотя бы указываться предположительное время жизни результата в кеше.
    Ответ написан
    5 комментариев
  • Как в Nautilus сделать в меню по правому клику пункт отправить на флэшку?

    rasa
    @rasa
    тогда держите готовое решение:
    1. удалите пакет nautilus-sendto
    2. Скопируйте в ~/.gnome2/nautilus-scripts/ этот файл.
    2. chmod a+x sendto

    # Restart Nautilus with killall nautilus
    Ответ написан
    5 комментариев
  • CMS для сайта вакансий

    FeNUMe
    @FeNUMe
    symfony+написать свой jobeet в процессе изучения:)
    Ответ написан
    Комментировать
  • Система управления проектами на PHP+MySQL

    krotish
    @krotish
    используем qdPM — для небольшой фирмы — самое то!
    совсем не монстр, удобная, лёгкая к восприятию.
    и очень адекватный разработчик (были вопросы по специфичной конфигурации).
    рекомендуюю.
    Ответ написан
    2 комментария
  • Чат на PHP: узкое место БД - как решить?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    пиши демона, алгоритм очень простой:
    1. скрипт на который отсылаются сообщений. не демон. сообщение кладёшь в базу и при желании в мемкэш, чтобы был доступен демону. я делал без мемкэша.
    2. демон, работает и в цикле перезаписывает файлик post.js в котором хранятся в json виде последних N сообщений. В определённый момент времени можно чистить таблицу и убирать старые посты вовсе или в другую таблицу.
    3. с сайта ajax-ок забираешь файлик post.js?r=случайное_число и обновляешь панель сообщений. т.к. забирается js, не поднимается php такую нагрузку выдержит даже apache.
    можно вовсе бд не использовать, оставив только memcache или пользуясь шареной памятью php.net/shmop
    Если нужно делить посты для пользователей, то генерировать не один файл post.js, а несколько /{user_key}/post.js и давать секретный ключ пользователям.
    Ответ написан
    1 комментарий
  • Обновление QIP и полный перевод ICQ на свои сервера

    SegaZero
    @SegaZero
    во-первых, 5222 порт жестко закреплен за жаббером. советую ознакомиться со списком портов на википедии
    во-вторых, новый вида авторизации — это openauth авторизация, которую использует 7 аська. добавлена нами на случай, если обычным способом соединиться не удалось

    паранойа обычно лечится гугением и снифферами. А вы слезли с 2005, пересели на 2010 и внезапно стали jabber пользователем
    материалы к изучению:
    wiki.qip.ru/Jabber
    wiki.qip.ru/Storage.qip.ru
    wiki.qip.ru/Изолированный_режим
    Ответ написан
    2 комментария
  • IT подкасты для обычных пользователей. О чем говорить?

    AzaLess
    @AzaLess
    Советую послушать подкасты Lisa B Marshall на тему Communication Skills: publicspeaker.quickanddirtytips.com/
    Ее ролики очень короткие (6-7 минут), качественно сделаны.

    Я бы советовал каждый выпуск посещать на 80% какой-то теме, и 20% о том, что пишут пользватели — взаимодествие ОЧЕНЬ важно для продвижения: для удержания аудитории и для соответствия ее потребностям.

    Советую определиться также более плотно, кто и что за аудитория, сколько ей лет, какой уровень. Это может быть совсем начальная кагегория, например, в возрасте 40-80 лет. Не понятно, правда, как именно они будут слушать подкасты — может им посоветуют.

    Или 15-80, но те, которые уже сидят в вконакте, могут найти реферат/погоду, но не больше.

    Темы, которые на мой взгляд могут быть выбраные первые несколько выпусков, а потом следите уже что нравится больше аудитории:
    • Безопасность в интернете: как сделать правильный пароль, как защитить свой вконтакте, как совершать безопасно покупать в интернет
    • Что лучше: настольный компьютер, ноутбук, нетбук, планшет и для каких случаев
    • Средства онлайн коммуникации и работы: google docs, teamer, DropBox, gmail, google-calendar, google RSS reader
    • Анализ антивирусов на рынке — какие лучше всего и проще всего поставить и почему. Что такое вирус, и что он не может уничтожить «железо».
    • Социальные сети: зачем они нужны и как ими пользоваться (рассказать, что кроме Вконтакте есть еще FB, Мой круг, Tweeter. Рассказать, как можно, например, найти работу через них, раздать котят, провести исследования, отслеживать последние новости)
    • Последние полезные сайты для обычных людей: погода, новости
    • Как и зачем вести блог
    • Как загрузить свой первый фильм из торрента


    Советую забить эти все пункты в голосование (как вы думаете, какая тема самая лучшая для новичок) на хабре или во вконтакте, и посмотреть, что народ думает.
    Ответ написан
    Комментировать
  • Чат на PHP: узкое место БД - как решить?

    eternals
    @eternals
    Во-первых, надо уточнить, что за VDS. Если мастерхост, то сразу предупредите, т.к. это отдельная песня.

    Во-вторых, нужно понять, из-за чего тупит mySQL. Выше правильно писали про lock на время записи.
    Так же может не успевать диск (из-за ограничений VDS).

    Я бы попробовал перевести в бд innodb и commit в 0 выставить (сброс раз в секунду на диск).

    Далее есть такая штука как представления. И у них есть режим с кэшем в памяти. А SQL запросы уже к нему делать. К тому же их можно наплодить на разные случаи.

    Ещё хорошо бы не забыть про memory таблицы. Скажем, писать ещё и в не memory, но читать массово только из неё.

    Попутно стоит помнить про индексы. Их отсутствие делает select долгим, а чрезмерное присутствие долгим insert. Да и сами индексы новички обычно неправильно делают.

    Ещё бы я вернулся к настройкам VDS, потому что они режут среднюю нагрузку по процу, памяти и дисковым операциям. Вас тупо может это резать. И заодно ещё вспомнил про объём БД в памяти. Если там уже много данных, а кэши не большие, то резать по диску будет.
    Ответ написан
    2 комментария
  • Совместное использование IP адреса на двух серверах

    @BasilioCat
    Что-то мне думается, что велосипед давно изобрели. Один из вариантов этого велосипеда называется heartbeat — одной строчкой конфига пишется то, что выше расписано на полстраницы
    Ответ написан
    2 комментария
  • Неприкосновенность частной жизни или «Энциклопедия людей»

    @zmiishe
    Как минимум оно нарушает законодательство РФ о защите персональных данных. Чтобы собирать, хранить и тем более показывать ваши персональные данные нужно получить ваше согласие на это.
    Ответ написан
    2 комментария
  • Совместное использование IP адреса на двух серверах

    @Bodik Автор вопроса
    А все таки оказалось быстрее и проще написать самому. Расскажу подробней, ибо вещь полезная. Я не рассписываю как на разных системах, но должно работать без проблем на любых redhat'о подобных.

    ТЗ:
    два сервера с главными айпишками 10.10.10.20 и 10.10.10.30
    необходимая третья айпишка 10.10.10.40, которая и будет подниматься на живом сервере если другой упал


    Пусть 20 сервер будет главным, прописываем ему в /etc/rc.local поднимание айпишки и риквест очистить кеш::
    ifconfig eth0:1 10.10.10.40 netmask 255.255.255.0
    arping -c 1 -s 10.10.10.40 10.10.10.1


    Другой — 30 сервер будет на поддержке, если вдруг первый откажет. На нем создаем скрипт /usr/local/sbin/setupip, внутри:

    #!/bin/bash
    MASTERHOST="10.10.10.20"
    IP1="10.10.10.40"
    MASK1="255.255.255.0"
    INERFACE1="eth0:1"
    GATE1="10.10.10.1"
    
    sleep 10
    while true; do
    count=$(ping -c 1 $MASTERHOST | grep 'received' | awk -F',' '{ print $2 }' | awk '{ print $1 }')
    localip=$(ifconfig | grep "$IP1 " | wc -l)
    if [ $count -eq 0 ]; then
            if [ $localip -eq 0 ]; then
                    #if IP is not set - do add it, send ARP cache clear
                    logger "setupip :: Host $MASTERHOST is down at $(date); Binding up $IP1"
                    ifconfig $INERFACE1 $IP1 netmask $MASK1
                    arping -c 1 -s $IP1 $GATE1
            fi
    else
            if [ $localip -gt 0 ]; then
                    logger "setupip :: Host $MASTERHOST is UP at $(date); Shutting down $IP1"
                    ifconfig $INERFACE1 down
            fi
    fi
    
    sleep 10
    done
    


    Делаем его исполняемым, засовываем скрипт в /etc/rc.local, для запуска при старте:
    /usr/local/sbin/setupip &


    Reboot. Все готово.

    В результате имеем:
    • каждые 10 секунд второй сервер пингует первый
    • если первый лежит — второй поднимает у себя нужную IP, чистит ARP кеш, и делает запись в syslog (/var/log/messages)
    • если первый поднимается, он запускает у себя IP и чистить ARP кеш от себя и принимает все риквесты на себя
    • второй видит что первый поднялся, и ложит IP у себя


    Все тесты закончились хорошо. Переменные должны быть интуитивно понятны.
    Думаю кому-то этот скрипт пригодиться.
    Ответ написан
    1 комментарий
  • Вопрос к верстальщикам. Стоит ли указывать размеры в пикселях, или все же в em?

    Vladson
    @Vladson
    Само по себе измерение размеров в пикселях (касаемо именно вёрстки) должно было не только умереть, но и не должно было рождаться. Есть нормальные DPI-независимые единицы, ими и надо пользоваться…
    Ответ написан
    Комментировать