vitus_wagner: My photo 2005 (Default)

Тут Толченов в комментариях к одному из предыдущих постов предложил держать на VPS у провайдера только внешний роутер локальной сети, соединенный с ней с помощью VPN. А архивы электронной почты и прочий ценный конетент держать дома, под письменным столом.

Это решение имеет очевидные преимущества - нет проблемы с домовыми провайдерами, у которых достижимый извне IP по нынешним временам стоит дороже той VPS, да еще и реверсной зоны к нему нет.

Но имеет и очевидные недостатки - появляется лишняя point of failure, даже две - есть две машины от доступности которых критично зависит доступность коммуникаций и VPN между ними. (и физическая сеть поверх которой этот VPN ходит, которая тоже может глючить. Все же домашние провайдеры не обеспечивают такой доступности сервиса, как хостиноговые)

Исходя из этих соображений я бы по крайней мере SMTP-listener на внешнем сайте реализовывал не как проброс портов внутрь VPN, а как полноценный MTA с релеингом. Соответственно, если у нас домовая сеть лежит, то приходящая извне почта складывается в очередь на этом внешнем сайте, и ждет когда сеть поднимется. С другой стороны если письмо изнутри не отправилось сразу, оно тоже сложится там в очередь и ретрай будет делать внешний сервер, независимо от доступности внутренней сети.

Публичный web-контент тоже стоит туда сложить. Он все равно публичный и несанкционированного доступа к нему быть не может (ибо любое чтение публичного контента - доступ санкционированный). Но исходя из концепции "ничего ценного и невоспроизводимого" это должно быть зеркало внутреннего сайта, регулярно (вплоть до раз в час) синхронизируемого через тот же самый VPN. Тогда даже попытка что-то там несанкционированно изменить доживет только до следующего сеанса синхронизации.

А вот синапс матрицы надо держать внутри. Проксируя с внешнего сайта средствами http сервера. И imap внутри. Вот его можно пробрасывать средствами роутинга. Хотя можно и stunnel-ом. А вебмейл можно на внешнем хосте чтобы ходил к внутреннему imap. Ну нету канала из дома во внешний мир, значит к лежащему дома архиву почты нет доступа из внешнего мира. Если мы считаем физический контроль над этим архивом важнее его доступности из любой точки мира, значит придется с этим мириться. Хотя, конечно возможен автоматический фаллбэк на LTE-модем в случае падения домашнего канала. VPN передподключится и сразу коннект восстановися. Правда почему-то сотовые операторы не любят когда их сим-карты используют в качестве аварийного фоллбэка. А для автоматического фоллбэка явно понадобится отдельная карта.

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

У меня сейчас так веб-интерфейс transmission устроен. В смысле transmisson-то крутится на домашнем десктопе, а с сервера на VPS-ке проксируется ее веб-интерфейс. Поэтому если домашний компьютер включен, я могу с работы или из деревни поставить что-нибудь на закачку.Все равно я обычно качаю через торренты что-то редкое, что будет качаться недели или месяцы, так что доехать до дома и забрать файл скорее всего сумею, качать через узкий канал не потребуется.

X-Post to LJ

vitus_wagner: My photo 2005 (Default)

В процессе обсуждения точки присутствия в интернете (admin-less сервера), всплыла тема мониторинга.

Как показывает мой собственный опыт, известные средства мониторинга, вроде zabbix или open telemetry, могут быть крайне мощным инструментом в руках опытного админа, но абсолютно бесполезны при отсутствии такового.

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

А для этого человек должен хотя бы некоторое представление иметь о том, что делают подвластные ему сервера. Про проблему разделения ответственности между DBA и админом сервера я слушал разные байки десять лет, работая в фирме, которая помимо всего прочего занималась поддержкой баз данных. Сам, как пользователь сборочно-тестового кластера тоже неоднократно сталкивался с тем, что админы не понимают специфику задач и пытаются оптимизировать то, что отнимает от силы единицы процентов ресурсов, в ущерб тому, что требует 90%.

В наше время (началось это в эпоху Big Data, и продолжилось нейросетями) принято полагаться на алгоритмы обучения без учителя. Мол, если мы напихаем в некую "мясорубку данных" достаточно много данных, дальше она сама сообразит, какие закономерности можно по этим данным вывести.

Как ни странно, по-моему в области мониторинга этот подход может сработать. Если сначала проанализировать систему и более-менее правильно поставить автомату задачи, дальше тот может уже сам отслеживать тренды и ловить статистические флуктуации, не слишком вдаваясь в семантику. Хотя, конечно возможны такие ситуации, что вот система мониторинга выдает алерт, мол, количество отправляемых писем по электронной почте возросло за последнюю неделю в десять раз против обычного, проверьте не спамместкий ли троян сел, а юзер ему "У нас тут конференция на носу, так что вот до такого-то числа повышенная активность это нормально".

Впрочем, подозреваю что достаточно умная система анализаа почтовой статистики поймет, что подготовка конференции это легитимная активность. Видя, что количество входящей почты возросло пропроционально исходящей, и эта входящая не от MAILER-DAEMON.

С мониторингом свободного места на диске примерно то же самое. Достаточно умная система должна отследить как именно расходуется место, и не беспокоить пользователя алертами, если занято 90-95% дисков, но рост в таких пределах, что на ближайшие пару месяцев хватит. И наоборот, начать пугаться, даже если свободна четверть диска, но раз-два в сутки бывают такие задачи, которые временно отжирают почти все свободное место.

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

X-Post to LJ

vitus_wagner: My photo 2005 (Default)

Тут при оченедном обсуждении мессенждеров [personal profile] vikarti_anantra задала вопрос: "А что сложно свой сервер поднять?".

Сложно. Для тех для кого адмнистрирование юникс-систем не является основной работой, поднять сервер и сконфигурировать на нем пяток нужных сервисов - занятие и правда не простое. Другой вопрос, что уже давно можно было бы, если бы существовал хоть какой консенсус на тему того, что на таком сервере должно быть, следать коробку "все в одном", настраивать которую было бы не сложнее, чем типичный Wi-Fi роутер. А с ними вроде народ в массе своей справляется. И чтобы можно было в течение нескольких минут накатить этот образ на виртуалку на любом VPS-хостинге.

Что собственно, нужно от точки присутствия в интернете? Предполагается что это может быть не только личная точка присутствия, но и семейная или небольшой группы единомышлинников, вроде мастерской группы LRPG.

  1. Сервер электронной почты на пару десятков аккаунтов. При этом чтобы почту с него принимали во всяких gmail-ах (а это, увы, moving target), и чтобы была какая-никакая защита от спама. graylisting+spamassassin вполне хватает по моему опыту.
  2. Веб-интерфейс к этой почте. А то вдруг придется доступаться из какого-нибдуь интернет кафе, где ничего кроме браузера не предусмотрено.
  3. Сервер федерированного мессенжера (matrix или jabber).
  4. К нему тоже web-интерфейс (element)
  5. turn-сервер, как совершенно необходимая вещь для голосовых и видеозвонокв через matrix/jabber
  6. CalDAV/CardDAV сервер
  7. Возможность выложить файл для последующего скачивания. Я в общем обхожусь для этого webdav. Хотя возможно web-based файл-менеджер не помешал бы. В принципе этого уже достаточно для того чтобы сделать сколь угодно навороченный статический web-сайт, благо локальных генераторов сайтов, запускаемых на ноутбуке/рабочей станции существует море. Поэтому пока вам не нужно на сайте комментирование, ничего более другого и не нужно.
  8. Фотогалерея. Она отдельно, потому что фотграфируют нынче в основном смартфонами и планшетами, следовательно фотографии должны попадать на сайт непосредственно с мобильного устройства, и минимально обрабатываться уже на сервере.
  9. Средства администрирования. Должны позволять завести нового юзера всего предыдущего, заблокировать/удалить старого, сменить пароль. Возможно стоит жестко требовать наличия единого пароля для всего перечисленного, а возможно и нет. Возможно, тот же инструмент должен менеджить authorized_keys для доступа по ssh. Тут, правда, стоит подумать о соотношении системных пользователей и пользователей веб-сервисов (по-моему не должны совпадать). Там же должна быть кнопочка для установки апдейтов.
  10. Автомат для обновления сертификатов Let's Encrypt
  11. DNS-сервер. Дело в том, для значительной части вышеприведенных сервисов нам понадобятся специальные (SRV, TXT) записи в DNS. Да, и электронной почты это тоже касается. Без TXT-записи _dmarc никто почту принимать с вашего домена не будет. Опять же openpgp-ключи так публиковать можно. Но в общем стоит исходить из того, что именно этот сервер будет первичным DNS вашего домена. Тогда все этои нетривилаьные DNS-записи можно будет автоматизировать.

Можно еще поставить туда прокси/VPN, если юрисдикция хостера не совпадает с юрисдикцией домашней машины, но мы пока этот вопрос рассматривать не будем. На худой конец можно ssh -D использовать.

В принципе, прикрутить ко всему этому хозяйству простенькую web-панель в стиле LuCI, чтобы можно было просто галочками по списку включать-выключать все сервисы, не так уж и сложно.

Для решения перечисленных задач нужно

  1. dovecot (в дистрибутиве)
  2. postfix (в дистрибутиве)
  3. ciderwebmail (по-моему в Debian еще не попала версия, которую я год назад патчил на предмет русских имен папок )
  4. matrix-synapse (надо брать из бэкпортов, там он заметно новее)
  5. element-web (в дистрибутиве нет, но есть отдельный репозиторий с пакетами
  6. coturn (в дистрибутиве)
  7. radicale (в дистрибутиве)
  8. Какой-нибудь web-сервер чтобы все вышеперчисленные интерфейсы проксировать. nginx сойдет, но apache лучше (оба в дистрибутиве)
  9. acme-tiny (в дистрибутиве)
  10. bind9 (в дистрибутиве.)

Остальное надо писать, но его довольно немного. В основном скрипты для администрирования. Учитывая что почти у всех сервисов которые нам нужны, свои заморочки насчет хранения паролей. Насчет галерей и CMS я просто не очень в курсе что нынче бывает, и как его задеплоить так, чтобы не бояться взлома при отсутствии квалифицированного администрирования.

Деплоймент этой штуки выглядит так:

  1. Регистрируем домен.
  2. Покупаем VPS-ку
  3. Накатываем на VPS-ку образ системы (лично я всегда rsync-ом обходился, но возможны варианты вроде загрузочного ISO-образа)
  4. Заходим в эту VPS-ку по HTTP. Указываем домен и IP-адрес выданный хостером. Жмем кнопку "обновить сертификаты"
  5. Заходим туда по HTTPS, меняем пароли, загружаем ssh-ключи и проверяем соответветсвие списка включенных сервисов требуемому.
  6. Правим в настройках DNS регистратора адрес первичного DNS, указывая вот на этот сервер, и настраиваем вторичный DNS.
  7. Пинаем хостера чтобы разрешил слать и принимать почту с этой VPS-ки

Вместо п 2 и 3 можно поставить raspberry pi, и на нее накатить аналогичный образ. Правда перспективы запинывания домашнего провайдера, чтобы разрешил слать/получать почту мне кажутся несколько менее радужными. Зато порыться в вашем почтовом ящике без вашего ведома ни одна спецслужба не сможет - они будут вынуждены прийти к вам домой и предъявить ордер на обыск.

X-Post to LJ

vitus_wagner: My photo 2005 (Default)

тут у меня недавно сломался фоссил на сервере wagner.pp.ru (ну и spacians.net соответственно). Ну как сломался - вики показывает, тикеты работают, но при попытке сделать clone или sync по https говорит "Server doesn't reply". Первое время мне было лень с этим разбираться, и я спокойно синкался по ssh. Хотя вообще это неправильно, потому что клонировать по https мои репозитории может кто угодно. А так у "кого угодно" остается только опция лезть git-овское зеркало на github, которое не для всех репозиториев есть.

Наконец разобрался и починил. Оказалось что дело в паранойе апачевской команды. Почему-то там c версии 2.4.59 отключили по умолчанию передачу клиенту HTTP-заголовка Content-Length, выданного CGI-скриптами. Переменная, которая это включает обратно называется ap_trust_cgilike_cl.

О чем теперь честно написано в доке по настройке fossil как cgi. В коммите от 17 апреля сего года фоссиловцы даже научили свой клиент работать без заголовка Content-Length, раз уж апач не хочет его передавать.

В документации на apache в разделе переменные среды специального назначения это даже описано. А вот в описании mod_cgi и в тьюториале Servinng Dynamic Content with CGI нет.

Злые они (в смысле apache), уйти что ли от них на lighttpd? (у того вроде функциональнсти хватает для моих нужд). Или что у нас еще такое есть из небольших и легких вебсерверов, предназначенных не для монструозных проектов на php или django, а в первую очередь для статики и немножко всего остального? Фронтэнд-прокси переросток от Сысоева не предлагать. Он как раз для монструозных проектов. Его на личный сервер ставить, это все равно что удобрения на дачный участок на Белазе возить.

Основная проблема с которой я сейчас столкнулся, это, по-моему ориентация Apache на shared hosting. Потому как откуда еще может вознинуть идея что программе, лежащей на том же компьютере, что и сам веб-сервер, можно не доверять?

vitus_wagner: My photo 2005 (Default)

По-моему, вчерашняя история с DNSSEC была как и приснопамятная блокировка "Телеграм", рекламной акцией. Теперь все кто вообще-то в курсе что эта аббревиатура означает, знают, что DNSSEC в зоне .ru есть, и можно пользоваться.

Я даже пошел и попробовал на домене wagner.pp.ru его включить. Правда бестолку - на ru есть, а на pp.ru - нету. Пойти что ли на spacians.net включить...

X-Post to LJ

vitus_wagner: My photo 2005 (Default)

При переезде сервера выяснил, что спейсианские часы, размещенные в правом верхнему углу страниц сайта https://spacians.net перестали идти. И вместо мегасекунд с начала эпохи, и вместо земного времени показывают нули.

Полез разбираться. Обнаружил в часах две проблемы

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

2) fossil на котором работает данный сайт, вдруг начал проявлять немеряную паранойю по поводу Content-Security-Policy и выдавать этот заголовок с очень рестриктивным значением. Так что даже встроенный в html тэг <script> не работает. Освоить правильную пляску с бубном чтобы работало со встроенной csp я не сумел, и вынужден был ее ослабить до default-src 'self' script-src 'self' 'unsafe-inline'.

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

X-Post to LJ

vitus_wagner: My photo 2005 (Default)

Вот как можно так настроить веб-сервер, чтобы пакетный менеджер оттуда rpm-ки скачивал с ошибками, а wget и браузер - нормально?

Оказывается, можно. Если отдавать статический файл с диска с Transfer-Encoding: chunked. Как будто это не статический файл, выложенный три месяца назад (и ему надо отдавать Last-Modified, Content-Length, и ETag, а желательно еще и предлагать Accept-Ranges) а динамичски генерируемая страница. (отдельная песня что там еще заглоовка Content-Type не было. Тот кто начинал заниматься веб-программированием в эпоху CGI и конкурирующих семи русских кодировок при виде http-respоnse в которой отсутствует нафиг заголовок Content-Type (даже если там по смыслу application/octet-stream), но зато присуствует Content- Disposition: attachment впадает в ступор.

Авторам apt-rpm тоже не пришло в голову потестировать свое поделие на совместимость с Transfer-Encoding: chunked. А у них собственная гордость, своя библиотека для работы с http которая говорят на целых несколько процентов быстрее curl (это когда это скорость скачивания по http лимитировала клиентская библиотека а не канал где-то посредине?)

А у меня первая мысль когда приходит баг репорт, что-де пакеты скачиваются с не теми контрольными суммами? Что сервер кто-то ломанул и в rpm-ки трояна завернул. И только после того как я сравнил sha256 суммы этих rpm-ок с архивом стало понятно что дело в админах сервера. Нет, современное поколение сисадминов выросшее в эпоху динамически генерируемых страниц - это что-то.

Кстати, почему-то дебиановский apt, yum и dnf скушали chunked и не подавились. Возможно потому что последние два - на питоне написаны и используют его стандартные библиотеки для скачивания файлов.

vitus_wagner: My photo 2005 (Default)
Перестал работать dav.

Возвращает 405 Method Not Allowed в директории, где явно прописано DAV on.

Как выяснилось, в Apache 2.4 кто-то додумался, что DAV (в смысле методы PROPFIND, OPTIONS и иже с ними) должны быть разрешены только там, где DirectoryIndex disabled.

Я даже понимаю, какая извращенная security-логика за этим стояла. Ну примерно такая же как за стриптизом в аэропортах.

Но вот раньше можно было DAV-клиентом редактировать сайт по тому же URL по которому его смотреть в браузере. При этом в браузере ты видел сайт, а в DAV-клиенте - список файлов (он их методом PROPFIND смотрит, а не GET).

Теперь почему-то разработчики Apache настаивают что по той URL, по которой можно использовать DAV-клиент, браузер тоже должен видеть пачку файлов.

Раньше соответствующий кусок конфига апача выглядел как
DocumentRoot /srv/www
<Directory /srv/www>
  Dav On
  AuthType Basic
  AuthName DAV
  AuthUserFile /etc/apache2/dav.passwd
  <LimitExcept GET OPTIONS>
           require valid-user
  </LimitExcept>
</Directory>


Теперь приходится делать вот так:
DocumentRoot /srv/www
Alias /dav /srv/www
<Directory /srv/www>
Require all granted
</Directory>

<Location /dav>
   DirectoryIndex disabled
   Dav On
     AuthType Basic
  AuthName DAV
  AuthUserFile /etc/apache2/dav.passwd
  Require valid-user
</Location>


И, соответственно, браузер натравливаем на https://my.server.domain, а кадавра - на
https://my.server.domain/dav

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

Теперь вопрос - а какой юз-кейс остался для директивы LimitExcept?
vitus_wagner: My photo 2005 (Default)
Народ, а кто может подсказать фреймворки для построения веб-страниц, в которых порядок генерации отдельных фрагментов не принципиален?

Вернее, требуется фреймворк, который выдает запрос в БД, а потом не дожидаясь его результата выдает следующий и т.д., а по мере получения результатов эти результаты обрабатывает. Причем с более-менее приличным синтаксическим сахаром.

Ну то есть что-то подобное есть в питоновских вариантах на базе Twisted и Tornado, но у twisted просто ужасный синтаксис в этом месте. Опять же Twisted и Tornado не самые популярные инструменты у веб-разработчков.

Дело в том, что выяснилось, что если не соблюдать четкую последовательность запрос-ответ-запрос-ответ, а вывалить в бэкенд сразу сотню запросов, а потом читать ответы, у постгреса даже на той же машине, получается ускорение примерно вдвое (на простых запросах, сводящихся к одному index range scan или index lookup).

Соответственно, хочется попытаться оторвать от libpq существующую там проверку на "если результат предыдущего запроса не прочитан, со следующим посылаем", и попытаться это применить на каких-то реальных задачах.

Подобные паттерны с сотнями легких запросов в рамках одного коннекта характерны как раз для динамических веб-фреймворков.

У меня возникло подозрение, что подобный стиль работы естественным образом вписывается во всякие решения на базе haskell или ocaml. Но я web-фреймворков на базе этих языков (да и самих-то языков) толком не знаю.
vitus_wagner: My photo 2005 (Default)
А не подскажет ли кто правильное облачное хранилище данных?

Требования такие

1. Чтобы много и дешево. Не менее чем 100Гб и цена заметно меньше чем у дешевых виртуалок (каковые по-моему уже до $5/мес упали).
2. Чтобы никаких специальных клиентов - чтобы заливать туда файлы можно было по стандарным протоколам - webdav, ftp, smb, rsync (достаточно любого одного из)
3. Чтобы файлы оттуда можно было раздать по http всему свету, но не как в яндексе, а чтобы если там лежит index.html, то введя ссылку на него в браузер, можно было бы увидеть этот html так, как автор его задумал, и все относительные ссылки бы работали. (собственнно, ровно этим меня не устраивае яндекс - он пытается как-то сам делать thumbnail-ы моих фотографий а html-и предлагает скачать вместо того, чтобы в браузере показывать.
vitus_wagner: My photo 2005 (Default)
Вот представьте себе, что есть сайт. Файлы на этот сайт выкладываются с помощью rsync, причем не с -e ssh, а с двумя двоеточиями после hostname. Кто не понял, зачем там два двоеточия, прекращает читать этот пост, читает man rsync, и возвращается сюда просветленный.

Так вот, вопрос в том, а стоит ли ограничивать набор хостов, с которых пускают выкладывать на сайт rsync-ом, хостами, доступными через VPN, или можно пускать через публичные сети.

Алгоритм аутентификации у rsync-а хороший, весь из себя challenge-response, открытые пароли по сети бегать не будут.

Данные, выкладываемые на сайт, тоже вроде ничего сенситивного не содержат - файлы паролей для Basic Auth там внутри дерева не лежат, опция ExecCGI на всём, доступном для записи по rsync выключена, php и подобных тоже нету.
vitus_wagner: My photo 2005 (Default)
Новость хорошая:

Давно собирался пофиксить свой фотоархив чтобы все дни начиная с глубокого XX века не были свалены в один длинный листинг. Ну вот, наконец, собрался.

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

И держать mod_rewrite на сервере не хочется. Не настолько, насколько mod_php, но всё же.

Так что я решил задачу превращения урл вида /photo/2015.06.04-ploskoe в /photo/2015/06.04-ploskoe средствами mod_alias. Конкретнее, директивой RedirectMatch.

Новость плохая:

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

SNIproxy

Jun. 12th, 2015 05:54 pm
vitus_wagner: My photo 2005 (Default)
Нашел тут замечательный инстурмент SNIProxy

Позволяет решить задачу раскидывания https-траффика по машинам (в том числе виртуальным), сидящим за однм внешним IP. Причем полноценного такого раскидыванрия. когда каждый сервер имеет собственные ключи и хранит их у себя, может сам проверять клиентские сертификаты etc.

Под Bananian собралось, тестирвоать еще не тестировал, потому что для тестирования нужно иметь хотя бы два https-ных сервера, в локальной сети. А у меня в ЭТОЙ сети нет ни одного.

Хотя, конечно, такую штуку надо держать на роутере, а не на одном из серверов внутри сети. Но собирать ее под dd-wrt или openwrt мне ломы.
vitus_wagner: My photo 2005 (Default)
А кто нибудь имел дело с таким хостинг-провайдером как contabo.com?
А то там очень вкусные условия предлагают - за 8 евро в месяц 500Gb дискового пространства, 6Gb RAM и два ядра. А еще за 4 бакса обещают бэкпить 100 гигов.

Кроме этого я нашел из подходящих по ценовой категории только cinfu.com они там хотят 14 баксов в месяц за 100Gb.

Правда, ни там, ни там, не написано, дадут ли tun device.

Возможно, конечно, существуют и пропущенные мной варианты.

Интересуют следующие параметры:

1. Меньше 12 евро в месяц
2. Больше 100GB дискового пространства
3. Расположено в стране с более-менее либеральным законодательством в области контроля над информацией. То есть Германия, это примерно предел тоталитарности, на который можно пойти. Франция, пожалуй, уже не катит.
4. openvpn сервер чтобы работал.
vitus_wagner: My photo 2005 (Default)
http://krebsonsecurity.com/2014/09/dread-pirate-sunk-by-leaky-captcha/

Говорил великий [livejournal.com profile] batareegryz «Если готовишь салат в пыточной камере, не клади туда осьминога».

Аналогично, если ты делаешь нелегальный сайт, не важно, политический или торгующий за биткойны неодобряемыми правительством вещами, не используй веб-сервисов, не важно, коммерческих или некоммерческих. Все что попадает юзеру в браузер должно идти с твоего сайта. Иначе, если к тебе на страницу встроена, ну скажем, каптча с открытого интернет сервиса, плакала анонимность твоих юзеров. Придут с ордером туда, посмотрят логи, найдут там referer с твоего сайта...
vitus_wagner: My photo 2005 (Default)
Забубенить что-ли социальную сеть для заботящихся о своем здоровье.
Чтобы там строились графики содержащия глюкозы в крови (при условии регулярной публикации данных об измерениях), графики физической нагрузки и тому подобные.

Код можно у [livejournal.com profile] schegloff из датапульта взять.
А то когда данные размазаны по ленте ЖЖ и перемежаются с постами с осмысленным текстом, человеку ведь самому неудобно наблюдать за процессом.
vitus_wagner: My photo 2005 (Default)
Прикрутил к своему git-у возможность коммитов по https. Чтобы иметь возможность доступаться через файрволы которые не пускают ssh. Попробовал поставить ciderwebmail, но выматерился и снес. Поскольку работать в режиме CGI оно упорно не хочет. С собственным сервером - пожалуйста. А в режиме CGI вводишь логин-пароль, оно заходит на imap-сервер, спрашивает capability и тут же выходит обратно, перезагружая страницу логина.

А нафига мне webmail постоянно в памяти?

В общем, Catalyst это такая же бяка, как PHP, Rails и Django. Хотя играться с ним я, пожалуй, продолжу. Всё-таки некоторые идеи там интересные, хотя и спорные. Например, можно попробовать прикрутить к MVC-веб-фреймворку какой-нибудь совершенно не http-протокол для view. В документации написано, что можно. Впрочем, в документации написано и что ciderwebmail через cgi работает.
vitus_wagner: My photo 2005 (Default)

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

Учитывая, что ikiwiki на которой в данный момент работает мой блог тоже как-то не очень оправдывает надежды, я задумался о том, не стоил ли вернуться к проекту StillLife.

По крайней мере завел для него раздел в wiki и написал Т.3. (с почти полным описанием декларативного DSL для описания вебсайтов).

P.S. Старая версия stilllife, которая на perl и с использованием HTML::TreeBuilder (новая будет на чем-нибудь другом, и на базе библиотеки для работы с XML DOM) сейчас не работает, не потому что сломана, а потому что заговорена. В смысле, скрипт удалён из cgi-директории веб-сервера. Но читать всё, что было написано можно. И в этом, кстати, одно из достоинств stilllife - даже если всё сломалось, сайт доступен.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 23 4 56 7
89 1011 12 13 14
1516 1718192021
22232425262728
2930     

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 18th, 2025 09:50 am
Powered by Dreamwidth Studios