Search
Write a publication
Pull to refresh
81
0

Пользователь

Send message

Один конфиг Nginx для работы с кучей разных сайтов

Reading time3 min
Views107K
Если вам приходилось настраивать Nginx под нужды веб-студии, сеошников или киберсквоттеров ;), то уже наверняка знаете про символ подчёркивания в качестве server_name. Тем не менее несколько других небесполезных приёмчиков из моего примера почерпнуть можно.

Чтоб создать новый сайт на сервере с такой конфигурацией, достаточно создать директорию с именем сайта и залить в неё содержимое. А конфигурационный файл остаётся единственным и неизменным.

Конфиг делает следующее:
1. Отрезает «www» от адреса, дабы сервер нашел директорию с сайтом невзирая на эти буквы в URL.
2. Выдаёт отдельную страничку при запросе несуществующего сайта.
3. Делает стандартный редирект на index.php в корне сайта при запросе несуществующего пути.
4. Перенаправляет запрос на php-fpm при вызове .php файлов.
5. Добавляет возможность обработки .htm(l) файлов как PHP.

Читать дальше →

Домашняя электронная библиотека: MyHomeLib + FBD

Reading time6 min
Views117K
Думаю, практически каждый любитель электронного чтения сталкивался с ситуацией, когда объем скачанных из сети книг увеличивается настолько, что найти в папке с ними нужную книгу становится сложнее, чем скачать ее заново. В этом случае многие пытаются систематизировать коллекцию, некоторые оставляют все как есть и продолжают скачивать все подряд в надежде когда–нибудь привести все в порядок, другие же просто перестают скачивать книги в надежде на то, что при необходимости все нужное найдется в интернете.

Читать дальше

Dynamic Binary Instrumentation в ИБ

Reading time7 min
Views13K
    Сложность программного обеспечения растет – программы становятся более динамическими, и их поведение возможно оценить только в процессе выполнения. Производить оценку безопасности (поиск уязвимостей, недокументированных возможностей и т.д.) таких приложений значительно сложнее. Использовать только статические подходы анализа становится невозможным, так как из-за динамически генерируемого кода мы даже не можем гарантировать полное покрытие кода при анализе. На помощь приходят динамические методы анализа.

    Есть такая замечательная технология, как динамическая бинарная инструментация (Dynamic Binary Instrumentation, DBI), которая заключается во вставке в бинарный исполняющийся код анализирующих (в общем случае) процедур. Основная прелесть данного подхода заключается в том, что нет необходимости в исходном коде анализируемого приложения – работа происходит непосредственно с бинарным файлом.
Читать дальше →

Давайте сделаем паузу. Способ улучшения синхронизации потоков

Reading time6 min
Views14K

Пауза — временное молчание, перерыв в звучании музыкального произведения в целом или какой-либо его части или отдельного голоса.
[Википедия]

Удивительно, но иногда так бывает, чтобы что-то сделать в целом быстрее, надо это делать медленнее или вообще с паузами. Например, при имплементации активного ожидания spin-wait в многопотоковом коде рекомендуется использовать инструкцию pause, которая, как утверждает Intel Instruction Set Reference, делает это ожидание наиболее эффективным. «Какая чушь!» — скажете вы. Как может быть ожидание эффективным? Разработчики микропроцессоров утверждают, что при активном ожидании с инструкцией pause чип потребляет намного меньше энегии еще со времен Pentium 4. В чем еще может быть эффективность ожидания? Поговорим об этом ниже.
Читать дальше →

Болee 40 онлайн-курсов от Coursera и Udacity

Reading time4 min
Views35K
Сегодня проект Coursera, о котором на хабре уже неоднократно писали, наконец перешел из статуса беты в полностью рабочий. И переход этот можно назвать, мягко говоря, успешным — к уже заявленным и частично идущим 16 курсам от Stanford и Berkley и 1 курсу от Michigan добавились 12 курсов от Penn (Философия, Литература, Экономика, Медицина), 6 от Michigan (Литература, Экономика, Право) и 8 от Princeton (История, Математика, Computer Science).

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



Ну и после такого оптимистичного вступления — собственно сами курсы. Для большинства известны продолжительность и дата начала, так что можно уже заранее спланировать время. Поехали:

Читать дальше →

Поиск подстроки и смежные вопросы

Reading time13 min
Views125K
Здравствуйте, уважаемое сообщество! Недавно на Хабре проскакивала неплохая обзорная статья о разных алгоритмах поиска подстроки в строке. К сожалению, там отсутствовали подробные описания каких либо из упомянутых алгоритмов. Я решил восполнить данный пробел и описать хотя бы парочку тех, которые потенциально можно запомнить. Те, кто еще помнит курс алгоритмов из института, не найдут, видимо, ничего нового для себя.
Читать дальше →

Приглашаем на ABBYY CUP 2.0

Reading time2 min
Views4.7K
imageЕсли вы живете по принципу «ни дня без строчки кода», приглашаем вас на ABBYY Cup – студенческую online-олимпиаду по спортивному программированию, которую наша компания проводит во второй раз. В этом году – совместно с www.codeforces.ru и Саратовским государственным университетом.

Те, кто принимал участие в ABBYY Cup год назад, помнят, что задания были достаточно простыми – это дало возможность попробовать свои силы ребятам, которые ни разу не участвовали в подобных соревнованиях. Однако были и те, кому задачи показались скучноватыми. Поэтому в этом году условия изменились, и олимпиада будет проходить в два дивизиона.

Первый – по-настоящему сложный, он предназначен для опытных студентов – регулярных участников чемпионатов по программированию.
Читать дальше →

PHP: фрактал плохого дизайна

Reading time32 min
Views207K

Предисловие


Я капризный. Я жалуюсь о многих вещах. Многое в мире технологий мне не нравится и это предсказуемо: программирование — шумная молодая дисциплина, и никто из нас не имеет ни малейшего представления, что он делает. Учитывая закон Старджона, у нас достаточно вещей для постижения на всю жизнь.

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

PHP — единственное исключение. Фактически каждая деталь PHP в какой-то мере поломана. Язык, структура, экосистема: всё плохо. И даже нельзя указать на одну убийственную вещь, настолько дефект систематичный. Каждый раз, когда я пытаюсь систематизировать недостатки PHP, я теряюсь в поиске в глубину обнаруживая всё больше и больше ужасных мелочей(отсюда фрактал).

PHP — препятствие, отрава моего ремесла. Я схожу с ума от того, насколько он сломан и насколько воспеваем каждым уполномоченным любителем нежелающим научиться чему-либо ещё. У него ничтожно мало оправдывающих положительных качеств и я бы хотел забыть, что он вообще существует.
Читать дальше →

Samba < 3.6.4 (CVE-2012-1182) удаленное выполнение произвольного кода с root-правами

Reading time1 min
Views2.7K
Samba версии 3.6.3 и все предыдущие версии оказались подвержены удаленному выполнению произвольного кода с правами root. Данную атаку может совершить анонимный не аутентифицированный пользователь, достаточно иметь доступ к сетевому порту Samba.

Проблеме подвержены все версии Samba с 3.0.x по 3.6.3 включительно. Всем пользователям Samba рекомендуется в экстренном порядке провести обновление до представленных корректирующих выпусков. Для уже не поддерживаемых веток Samba подготовлены патчи.

Читать дальше →

Особенности восстановления/переноса FreeBSD на хост с другой аппаратной конфигурацией

Reading time2 min
Views9.5K

Перенос FreeBSD


Конкретно, речь пойдет о наиболее часто встречающейся проблеме при переносе BSD системы


Для профессионалов, знающих Linux, BSD системы понятны «по аналогии», за исключением некоторых особенностей. Об особенностях и пойдет разговор.
Да, есть великолепное руководство по FreeBSD на оффициальном сайте, и даже на русском языке оно тоже есть, но момент о котором пойдет речь описывается далеко не на первой странице, а если «падает» критически важный сервер, к которому подходил последний раз лет -цать назад (или вообще никогда), и его нужно срочно поднять на другом хосте с неаналогичной конфигурацией, то искать можно долго.
И в то же время, это те основы, без изучения которых дальше идти нельзя.

Итак, практическая задача: перенос FreeBSD на другой хост (контроллеры могут различаться: IDE/Raid ISCI/VMware ESX/Citrix Xen).

Читать дальше →

По колено в PDF. PHP парсер с плюшками

Reading time9 min
Views12K
Так получилось, что с месяц назад передо мной выросла совершенно неожиданная задача: сконвертировать PDF в html по имеющемуся шаблону. В том числе необходимо было разбивать все на страницы и выделять в них параграфы. Да и много еще чего. И все бы ничего, и обошелся бы я какой-нибудь левой библиотечкой, но кое-какие специфичные штучки-финтеплюшки, так необходимые мне, в библиотеках не нашлись. И это было печально…
Читать дальше →

Онлайн-курсы Stanford University, Berkley и MIT в доступном виде

Reading time2 min
Views54K


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

Пример такого поста: habrahabr.ru/post/139542

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

Уверен, что курсов по данным дисциплинам, информативнее и понятнее выложенных, в природе не существует.

Под катом ссылки и список того, что было выложено, что ещё предстоит выложить…
Читать дальше →

Реализация exceptions на plain C

Reading time4 min
Views7.1K
Продолжение вот этой статьи habrahabr.ru/post/131212, где я собирался показать, как «и ошибки удобно обрабатывать и exceptions при этом не использовать», да всё руки не доходили.

Итак, будем считать, что у нас ситуация, что «настоящие C++ exceptions» использовать нельзя — например, языком разработки является C или компилятор С++ для нашей платформы не поддерживает exceptions (или формально поддерживает, а реально этим пользоваться нельзя). Это, конечно, нетипично для desktop приложений, но вполне обычно для embedded разработки.
Читать дальше →

Оптимизация для CPU: как найти черную кошку в темной комнате

Reading time9 min
Views27K

Метод недопустимой операции:
Разделить кошку на ноль,
после чего она станет бесконечно большой,
так что её будет невозможно упустить.

[АбсурдопедиЯ]

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

Итак, имеем задачу последовательной перестановки байтов в каждом слове массива (big-endian <-> little-endian) и суммирования всех слов в одно (reduction). Оставим пока в стороне задачу распараллеливания, ибо ее решение близко к тривиальному, и для нас пока не представляет интереса.

image

Читать дальше →

Python vs Ruby

Reading time5 min
Views138K
Данная флеймообразующая статья призвана собрать в одном месте актуальную информацию по преимуществам Python над Ruby и Ruby над Python. Основываясь на собственном многолетнем опыте использования обоих языков, я постарался ограничить сравнение языками как таковыми и их стандартными библиотеками — сравнение web фреймворков, сред разработки и доступных библиотек не включены в статью, так как здесь и без меня немало копий сломано.
Читать дальше →

С чего начинаются онтологии

Reading time5 min
Views29K
Для таких же начинающих, в онтологиях, как и я, а так же для тех, кто хочет начать, для тех, кто задаётся вопросом, что это, с чем это едят и с чего начать, предлагаю начинать с того, с чего начал и я, а именно:
так что же такое онтологии и с чего начать?

Обзор конференции Going Native'2012

Reading time7 min
Views3.6K
Недавно завершилась конференция GoingNative’2012, организованная компанией Microsoft. Она проходила 2 и 3 февраля в Редмонде, и главной темой был C++11. Мне показалось, что это замечательное событие недостаточно полно освящено, и захотел исправить ситуацию.
«C++11 feels like a new language» Bjarne Stroustrup
«We’re all learning C++11» Herb Sutter
«We broke every single book on the planet, and we broke every single programmer on the planet» Herb Sutter

Герб Саттер во вступительном слове посвятил конференцию Деннису Ритчи, создателю языка C, и ключевому разработчику операционной системы UNIX.

Это очень важное событие для сообщества С++, где выступали и отвечали на вопросы люди, ставшие легендами в мире C++, во многом определяющие его развитие. Доклады очень интересные, и я вынес для себя много нового. Дальше идёт обзор всех докладов и сессий вопросов и ответов.
Читать дальше →

Летняя школа Microsoft Research по параллельным вычислениям открывает регистрацию участников

Reading time2 min
Views5.1K
Во время летних каникул исследовательское подразделение компании Microsoft – Microsoft Research проводит ежегодное крупнейшее мероприятие, ориентированное на аспирантов, студентов старших курсов и молодых ученых – Летнюю Школу. В этом году школа будет проходить в Санкт-Петербурге в сотрудничестве с НИУ ИТМО с 22 по 29 августа 2012 года.



Цель школы
  • Предоставить студентам из ведущих вузов страны уникальную возможность узнать о новейших достижениях в области параллельных вычислений.
  • Предоставить уникальные условия для обмена опытом между студентами и преподавателями в течение недели интенсивных занятий под руководством ведущих международных экспертов в области вычислительных наук.

Тематика школы: параллельные вычисления (Concurrency and Parallelism in Software).
Читать дальше →

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer, System Software Engineer