• Статьи/хелпы по настройке высокопроизводительного веб-сервера. Что почитать?

    @max_rip
    Вы знаете, думаю конкретно ничего не будет. Максимум описания своих проектов, но они вам сильно не помогут. Так как у всех высоко нагруженных проектов есть нюансы и на этих нюансах строится вся стратегия.
    Кому-то надо:
    -скорость
    -стабильность
    -распределенность
    -пинг

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

    Нужно иметь мониторинг и контролировать ситуацию, а меры принимать до того как что-то померло или отвалилось.

    Как минимум, постарайтесь вообще избавиться от апача +).
    Ответ написан
    2 комментария
  • FreeBSD, Packet filter (PF) и перенаправление портов?

    DmZ
    @DmZ
    Уже не один раз обсуждалось. Читайте как работает NAT и для чего он нужен.
    Роутер все заворачивает правильно, просто в данном случае работать оно не будет:
    • Из мира приходит пакет (предположим 8.8.8.8 -> 80.*.*.*), роутер его днатит в локальный адрес (8.8.8.8 -> 192.168.1.33), вебсервер получает запрос от 8.8.8.8 и шлет ответ обратно на роутер (дефолт-роут), роутер проводит пакет обратно по нат и отправляет в мир;
    • Если пакет приходит из локалки (предположим 192.168.1.2 -> 80.*.*.*), роутер его днатит в локальный адрес (192.168.1.2 -> 192.168.1.33), вебсервер получает запрос от 192.168.1.2 и шлет ответ обратно в ЛОКАЛЬНУЮ сеть, компьютер 192.168.1.2 не получает ожидаемого ответа от 80.*.*.* а ответ от 192.168.1.33 считает инвалидным, так как не отправлял туда запрос. Соотв. TCP соединение не устанавливается.


    (отсюда)

    Если хочется именно НАТом это сделать, то пакеты приходящие от em0 на Х нужно натить в адрес em0, чтобы вебсервер отвечал роутеру, а не напрямую в локалку.
    nat on em0 proto tcp from 192.168.1.0/24 to 192.168.1.2 port 80 -> (em0)
    

    Или можно локально поднять net/bounce, его поставить слушать 127.0.0.1:8080->192.168.1.2:80 а редирект заменить на:
    rdr on ng0 proto tcp from any to "X" port 80 -> 127.0.0.1 port 8080
    
    Ответ написан
    1 комментарий
  • Как вставить текст между строками, используя sed?

    sledopit
    @sledopit
    Ну вот, теперь вопрос более осмысленный. Задача с уточнением решается так:
    echo -e "aaa\nbbb\naaa\nddd" | sed '/aaa/{n;/bbb/i new_line
    }'
    
    Ответ написан
    3 комментария
  • Nginx и Auth Digest

    slang
    @slang
    Скомпильте nginx как
    --with-debug
    

    Потом сделайте
    error_log  /var/log/nginx/example.443.error.log debug;
    

    и почитайте результат в логе
    Ответ написан
    1 комментарий
  • Фреймворки JS/PHP или JS/(foo) для построения full ajax систем?

    vermilion1
    @vermilion1
    Используем Backbone.js и очень довольны. Хорошая документация, есть куча доп. информации (на stackoverflow backbone.js популярный тег) и howto. Логику отделяем от Въюшек (создается отдельный контроллер), таким образом не захламляется код. Но в большинстве howto роль контроллера выполняет View. На вкус и цвет… Так же есть хороший шаблонизатор, хотя можно прикрутить и другой.
    Приложения собираем с помощью Ant, но в сети есть и куча других примеров (r.js например)
    backbonetraining.net/resources — множество полезных ссылок
    Ответ написан
    3 комментария
  • Реляционное программирование?

    szKarlen
    @szKarlen
    реляционные языки — языки программирования, оперирующие с данными как со множествами, применяя к ним основные операции теории множеств.
    типичным примером является SQL. однако сюда также можно отнести и Пролог. объясню почему: если SQL основывается на теории исчисления кортежей, которое является в свою очередь направлением реляционного исчисления, а в основой оного лежит теория предикатов первого уровня, то Пролог основывается на подмножестве данных предикатов — дизъюнктов Хорна.
    насчет того, что будущее программирования за ними — я бы остерегся таких высказываний, т.к. все-таки вы не сможете с помощью них покрывать многие аспекты алгоритмического программирования. например, SQL позволяет отвечать на вопрос «ЧТО», но не «КАК».
    насчет нейронных сетей — на чем пишутся они сами? правильно на алгоритмических языках. и еще не надо путать алгоритмы и нейронные сети с алгоритмическим и реляционным программированием — это совсем разные вещи.
    Ответ написан
    Комментировать
  • Онлайн-тесты на знание php/js/html/css?

    Советую php.feedme.ru/
    Ответ написан
    Комментировать
  • Когда в PHP использовать интерфейсы, а когда абстрактные классы?

    try4tune
    @try4tune
    С точки зрения архитектуры:

    Интерфейс описывает свойства. Обратите внимание на классические названия интерфейсов: Throwable, Countable, Comparable, Iterable и т.д. Возьмем, к примеру, интерфейс Rollable (катящийся), и Foldable (складывающийся).

    Абстрактный класс же описывает сущность. Например, стол: Table_Abstract. Стол может быть деревянным, тогда будет Table_Wood extends Table_Abstract. Также стол может быть хирургическим: Table_Surgical extends Table_Abstract. В таком случае Table_Abstract объединяет общий свойства всех столов (скажем, площадь поверхности, наличие ножек и т.п.). А конкретный класс описывает сущность определенного типа столов.

    Связью же интерфейсов и классов Вы описываете свойства. Например, стол можно катить: Table_Abstract implements Rollable. Деревянный стол, например, можно сложить: Table_Wood implements Foldable.
    Ответ написан
    5 комментариев
  • Печать на принтер по умолчанию из браузера, как?

    trueClearThinker
    @trueClearThinker
    Есть вариант отправлять запрос на сервер, связанный с принт-сервером, который будет выводить на принтер. По-моему, самое разумное решение в данном случае.
    Ответ написан
    Комментировать
  • Хосты и организация папок для разработки

    shushu
    @shushu
    Представим что ваш хост называется comp1.
    Нужно добится что бы все подсети (т.е sub1.comp1) перенаправлялись на ваш компьютер
    Как это сделано написано здесь: unixhome.org.ua/blog/apache/438.html
    в том числе и как можно настроить сам apache конфиг

    Так, вот, если вы добьетесь соответсвующего ефекта, то можно написать 1 конфиг для апача вида:

    <VirtualHost *:80>
        UseCanonicalName Off
        VirtualDocumentRoot /web/%0/html
        VirtualScriptAlias /web/%0/cgi-bin
        LogLevel debug
        ErrorLog logs/error.log
        <Directory />
           AllowOverride All
        </Directory>
        RewriteLogLevel debug
        RewriteLog logs/rewrite_log
    </VirtualHost>
    


    И что бы сделать новый хост, достаточно создать папку: /web/someproject.comp1/html

    Апач при этом перестартовывать не нужно.
    Достаточно удобно, на мой взгляд
    Ответ написан
    1 комментарий
  • Подключить gmail как почту для домена, *@domain.ru

    vermilion1
    @vermilion1
    Пошаговый квест с картинками :)
    Ответ написан
    Комментировать
  • Как "глушить" js ошибки от внешних элементов на сайте (счетчики, блоки фейсбука, партнерки и т.д.)?

    nkid
    @nkid
    для глушения ошибок можно использовать window.onerror, по параметрам можно узнать и место возникновения ошибки.
    Ответ написан
    Комментировать
  • Анонимность в сети или как построить цепочку из проксей?

    Mendel
    @Mendel
    PHP-developer
    Качать торренты через прокси это паранойя.
    Для нормального серфа, даже для просмотра небольших роликов — вполне реально делать каскады.

    Если вы и.о. Бена Ладена, то купите себе немного зомби у ддосеров. Буквально по тысяче у десятка зомбоводов, и ВДС в китае, на который все будет стекаться. Вы будете стоять за китайцем, а на фронте возьмите ВДС в москве или киеве для того, чтобы иметь статический айпи. Примерно две трети зомби должны будут гонять левый траффик, строиться в цепочки и распадаться, для конспирации. Основной пулл соберите в несколько десятков цепочек по десять узлов в каждом. Трафик по ним гоняйте параллельно. Обязательно отдавайте симметрично левого траффика чтобы невозможно было без расшифровки понять — вы конечная точка этой сети или такой же зомби как и все. Ну это так, если вдруг найдут китайца. Цепочки естественно сортируем по провайдерам, чтобы усложнить задачу отслеживания. В принципе этого будет достаточно ;)

    Ну а если серьезно, то SSH есть почти на любом хостинге. Если это хостинг с большим колвом сайтов и пользователей, то логи айпишников ничего не дадут. Ну а куда ты ходил и что туннелировал никто не логирует. Для параноиков можно сделать каскад из двух-трех туннелей.

    Вообще один туннель довольно неплохо себя ведет. Пинг выростает в среднем процентов на 30%, если сервер правильно расположен (если в основном траффик российский и сервер в М9, то пинг сильно не пострадает). Скорость у меня была 600-800 килобит, что вполне неплохо для серфинга. Двойные и тройные каскады не делал.
    Ответ написан
    Комментировать
  • Структура БД для базы недвижимости?

    sl_bug
    @sl_bug
    Тут посмотрите. Real Estate вас интересует. Может что-нибудь поможет.
    Ответ написан
    Комментировать
  • Ход конем ?

    printf
    @printf
    Ем детей.
    Таких имен много, например eblan.us

    Мне кажется, это просто способ припарковать домен. Удобно, если сайт еще в разработке — каждый разработчик может зайти на свою локальную версию сайта по настоящему доменному имени, меньше тривиальных ошибок при переносе и т.п.
    Ответ написан
    Комментировать
  • SVN и срочные изменения?

    sevka_fedoroff
    @sevka_fedoroff
    Вы имеете в виду, что у Вас в транке уже есть какие-то комиты, которые деплоить пока не надо, но вот эту вот срочную последнюю фичу надо закомитить?
    Если Вы будете на каждую задачу делать ветку, а деплоить через таги, то у вас такой ситуации просто не возникнет. Грубо говоря, в транк идут комиты (мержи из веток) только перед созданием тага. Т.е. почти в любой момент времени у вас транк соответвует последнему тагу, развернутому на продакшене. Все девелоперы работают в ветках. Появилась срочная задача? Пожалуйста, делаем ветку и потом мержим ее втранк, делаем новый таг, деплой. Или даже так: нет времени на ветки, фиксим прямо в транке, новый таг, деплой.
    Посмотрите, я тут недавно описывал свой воркфлоу, который вполне работает: habrahabr.ru/qa/7149/#answer_30727
    Ответ написан
    2 комментария
  • Как системному администратору снять с себя ответственность за установленный пользователями софт?

    @shsmad
    Указ, что с системного администратора снимается ответственность за самовольно-установленное нелицензионное ПО органами и судом трактуется против админа, ибо такой документ подтверждает факт осведомленности админа о возможной установке нелицензионного ПО, а значит это уже не айс. Подробнее тут: habrahabr.ru/company/itarena/blog/118686/
    Ответ написан
    Комментировать
  • Robots.txt. Фильтр по GET-параметрам?

    yakubovsky
    @yakubovsky
    User-agent: Yandex
    Disallow: /add.php?*user=
    # запрещает все скрипты 'add.php?' с параметром 'user'

    Подробнее лучше тут почитать
    help.yandex.ru/webmaster/?id=996567#996572
    Ответ написан
    1 комментарий
  • Где купить электронные компоненты в Москве?

    couatl
    @couatl
    Терраэлектроника
    www.terraelectronica.ru/
    ул. Дербеневская, Бизнес-парк «Дербеневский», дом 1, подъезд 23 (м. «Павелецкая», м. «Пролетарская»)
    Понедельник — пятница: с 8:30 до 17:50

    Кварц
    www.quartz1.ru/
    ул. Буженинова, д. 16, проезд до ст. м. «Электрозаводская» или «Преображенская площадь», далее авт. 86, 171 до ост. «2-ой Электрозаводский пр.»
    Понедельник — пятница: с 10:00 до 18:00
    Электрозаводский пр."; Шоссе Энтузиастов, д. 31, стр. 2 (50 метров от ст. метро «Шоссе Энтузиастов);
    Понедельник — пятница: с 9:00 до 20:00

    Дельта Электроника
    www.deltel.ru/
    ул. Марксистская, д. 34, корпус 7, вход в центре здания, вывеска «МИРБИС», 4 этаж

    Вольтмастер
    www.voltmaster.ru/
    м.Электрозаводская, Семеновская набережная, дом 3/1, строение 5
    понедельник — пятница: 9.00 — 20.00, суббота: 9.00 — 18.00.
    м.Молодежная, улица Ивана Франко, дом 40, строение 2, проезд автобус/маршрутка №127
    понедельник — пятница: 9.00 — 20.00, суббота: 9.00 — 18.00.
    м.Новослободская, 1-ый Щемиловский переулок, дом 16, строение 2
    понедельник — пятница: 9.00 — 18.00.

    Митракон
    www.mitracon.ru/
    3-й Павловский переулок, д. 14, (м. «Серпуховская»)
    понедельник — пятница: 9.00 — 18.00.

    Тритон
    www.trt.ru/
    ул. Удальцова, д.23.
    Понедельник — Пятница, 9.30 — 18.3

    Унисервис
    uniservice.msk.ru/
    м.Петровско-Разумовская, ул.Гостиничная, д.3, оф. 208-209
    Понедельник-пятница: c 10 до 18 часов.

    База Электроники
    www.elbase.ru/
    ул. Марксистская, д.3, стр. 1, офис 320

    Чип и Дип
    www.chip-dip.ru/

    Мастер Кит
    www.masterkit.ru/

    Промоэлектроника
    www.promelec.ru/

    Электронщик
    www.electronshik.ru/

    RadioBox
    www.radiobox.ru/

    Dessy
    www.dessy.ru/

    elec.ru
    www.elec.ru/

    Терраэлектроника, Кварц, Дельта электроника — хороши
    Чип и дип — дороговат
    У Тритона дешевые microchip
    Ответ написан
    2 комментария
  • Нужна ли статья по допиливанию Transmission?

    @Mawerik
    Не нужно задавать таких вопросов. Объективно оцените степень важности/интересности своей статьи и дерзайте. Мне было бы интересно узнать о ваших «допиливаниях», а другому человек нет. Так что не волнуйтесь и пишите.
    Ответ написан
    2 комментария