Search
Write a publication
Pull to refresh
0
@Vprokread⁠-⁠only

User

Send message

Aftershock: как будем жить после пресловутого законопроекта. Советы бывалых

Reading time21 min
Views5.6K


О принятом вчера законопроекте букв было написано больше, чем в романе «Война и Мир». Не знаю как вам, а у меня уже идет отвращение ко всему, что с ним связанно: начиная от фотографии депутата Мизулиной, заканчивая всеобщей истерией по «всем интернетам» о тотальной цензуре. Слава богу на хабр это не так сильно распространяется, как на некоторые другие сайты.

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

Пост получился объемным. Но для тех, кому лень читать, внутри есть удобная для разбора и обсуждения mindmap-карта. Поэтому садитесь поудобнее и приготовьтесь к «погружению». Надеюсь, что длительное вдумчивое чтение окажет успокаивающее воздействие на нервную систему пользователей хабра после всех этих эмоциональных обсуждений.

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

Подробнее о реализации поддержки GCM на Android-клиенте

Reading time5 min
Views41K

Тут уже писали об GCM. Для чего эта статья?


Верно, писали. Буквально на этой неделе на Хабре была опубликована статья GCM – новый сервис Push-уведомлений от Google (если вы еще не знакомы с Google Cloud Messaging for Android, то советую прочитать её перед прочтением этой статьи, тем более в моей статье не описываются процесс создания проекта с GCM). Не знаю использовал её автор GCM в реальном приложении или нет, а вот мне пришлось. Поэтому-то я и хочу описать кое-что, чему не нашлось места в предыдущей статье, или что не было объяснено. Добавить это все комментарием в предыдущую статью, боюсь, невыполнимая задача.

Начнем?

20 вещей, которые я должен был знать в 20 лет

Reading time3 min
Views718K
1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
Читать дальше →

Немного настройки Eclipse Juno: избавляемся от огромных табов и кнопки закрывания таба

Reading time2 min
Views12K
В новом Eclipse Juno (версии 4.2) появилась новая модель построения интерфейса, основанная на UI-плагинах и CSS-подобных стилях оформления. И если раньше часть действий по тюнингу интерфейса можно было делать из настроек, то сейчас там девственно пусто:



Поэтому придётся копаться в CSS-стилях оформления интерфейса (именно CSS-подобные стили сейчас используются в этой среде).

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

SSH для частого использования

Reading time2 min
Views69K
Наверное, многие из читающих «Linux для всех» пользуются SSH. Я, например, администрирую большое количество UNIX-систем, и, чтобы быстро получить доступ к нужной машине, приходится использовать возможности протокола на уровне, отличном от примитивного.
Читать дальше →

Модуль nginx для борьбы с DDoS

Reading time6 min
Views67K
Многие сталкивались с таким явлением как DDoS атака методом HTTP флуда. Нет, это не очередной туториал по настройке nginx, хочу представить свой модуль, работающий как быстрый фильтр между ботами и бэкэндом во время L7 DDoS атаки и позволяющий отсеивать мусорные запросы.
Читать дальше →

Pynba — pinba for python

Reading time2 min
Views2.6K
Примечание переводчика:
Тихо и незаметно вышла pynba. Странно, что на хабре об этом еще не писали :)


Что это:


Pynba — это WSGI прослойка для pinba. С ее помощью вы можете собирать статистику / производить мониторинг сервера, используя интерфейс MySQL для чтения данных.

Она аккумулирует данные от Python процессов, отправляет их по UDP прототоколу и показывает статистику в красивом человекопонятном виде простых отчетов. Так же она предоставляет доступ только для чтения к сырым данным, что позволяет, например, создавать более детализированные отчеты.

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

Почему не другой обработчик статистики?


Потому что Pinba — это круто!
Читать дальше →

LowCost хостинг. Несостоявшийся стартап

Reading time4 min
Views10K
Хочется рассказать про один интересный на наш взгляд проект, который мы готовы были финансировать. К сожалению, команда продвигавшая данную идею развалилась на полпути к началу.
Ниже приведено описание проекта, близкое к тому, что мы получили от авторов.
Ссылка на предварительные финансовые расчеты приведена в теле заметки. Все цифры даны по состоянию 2011 г. и не актуализированы.
Читать дальше →

Современное школьное образование, часть 2

Reading time5 min
Views8.3K
Большое спасибо за конструктивное обсуждение первой части статьи здесь.
Третья часть про технологии интернет-образования и разработку контента.

Во второй части я хочу попытаться изложить свои ответы на следующие вопросы:
Возможно ли в России создание аналога онлайн архива лекций (и не только) khanacademy.org? Именно нормальных уроков и лекций, связанных в один программный курс, а не пособий по дрессировке к ЕГЭ. Как советская система образования может выглядеть в современных медиа? Кто будет это делать?

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

Ещё одной интересной темой для обсуждения может быть интерактивность учебных материалов и онлайн взаимодействие между учителем и учеником.
Читать дальше →

Заказчик-Исполнитель: избегаем ДТП

Reading time5 min
Views12K
Вместо эпиграфа.
«- Ты что – глухонемой?
-Да»
к/ф «Бриллиантовая рука»


Попал я как-то в ДТП – один хороший человек так спешил домой к теще на блины, что не заметил перед собой мою машину. Приехал на станцию, там сделали «дефектовку», определили, что делать и срок ремонта – 3 недели. Конечно, хотелось быстрее, но мне объяснили, что СТО загружена, плюс пару деталей надо ждать, плюс технологический процесс: рихтовка, грунтовка, сушка, покраска, опять сушка. «Совсем как у нас в проектах, — подумал я, — проектирование, реализация, тестирование, исправление багов, приемочное тестирование заказчиком, опять исправление багов».

Спустя три недели, истосковавшись по своей «ласточке», в томительном ожидании приезжаю на СТО. И… И, как вы догадались, машина готова не была. Проект «Прокачусь с ветерком» стремительно закончился факапом. После долгих разбирательств выяснилось, что на СТО был переучет деталей, моих не было, их снова заказали. Но через неделю все будет готово: «Мамой клянус, дарагой», — убеждал меня сто-шник. К моему прискорбию, мама оказалась не в курсе клятвенных заверений сына. Не знаю, как там маме икалось и каково было состояние ее здоровья после еще трех недель обещаний, но спустя 7 недель машину я таки забрал. В процессе были мои звонки, переадресация то на одного, то на другого менеджера. Мои планы были уже сорваны, ряд поездок пришлось переносить на неопределенный срок. «Но мы вам брызговики поставили бесплатно», — глупо улыбался сто-шник, передавая мне ключи.

Все же, факт возврата машинки радовал несказанно, и в прекрасном настроении в тот же день я поехал к заказчику. Заказчик, весьма приятный в общении дяденька, увидев меня, почему-то изменился в лице: «Какого хрена вы ничего не делаете? Когда будут результаты? Мы работаем уже второй месяц, сдвигов по проекту нет! Менеджеры ваши непонятно куда пропали. Они на работу ходят или нет?». Машинка внезапно перестала радовать. «Как это нихрена не делаем?», — лихорадило в мозгу. «Вчера ж было совещание, смотрели систему, все ж по плану».
Читать дальше →

Способы проектирования баз данных в Android

Reading time5 min
Views15K
Работая Android разработчиком мне пришлось столкнуться с двумя различными подходами к проектированию баз данных в мобильных приложениях. Возможно кому-то излагаемое здесь покажется очевидным, а возможно кому-то даст новую идею или убережет от ошибок. В общем, без длинных предисловий переходим к делу…

Два взгляда на проблему


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

Добавим сюда сильно ограниченные аппаратные возможности мобильных платформ, в частности крохотный объем оперативной памяти. Ее и без того мало, так в дополнение к этому, Android ограничивает количество доступной RAM на процесс в зависимости от версии ОС от 16 до 48 МБ. И даже из этих нескольких мегабайт СУБД получает лишь часть, ведь есть еще и само приложение. Ну и в заключение, сам SQLite, в виду своих особенностей поддерживает только два уровня изолированности транзакций. Они либо сериализуются, либо вообще отключены!

В ситуации когда производительность приложения начинает упираться в производительность СУБД на помощь и может прийти альтернативный подход, назовем его key-value ориентированным. Вместо декомпозиции сущности на атрибуты и создания отдельных полей в таблице на каждый атрибут, сущность сохраняется “как есть” в одно единственное поле типа BLOB, иначе говоря сериализуется.
Читать дальше →

Уязвимости серверов к медленному чтению

Reading time2 min
Views28K
Приветствую.
Хочу рассказать, чем я баловался в свободное от работы в Qualys время. Так как в англоязычном интернете на удивление много шума про Slow Read DoS attack, и уверен что получу здесь много полезной критики и дельных предложений.

В августе 2011 года написал програмку slowhttptest, которая тестирует веб-серверы на наличие уязвимостей, связанных с обработкой медленных HTTP запросов, таких как slowloris и slow HTTP Post. Цель — создать конфигурируемый инструмент, облегчающий работу разработчиков и позволить им концентрироваться на создании эффективных защит, а не ковырянии в питоне, на котором написаны большинство proof-of-concept эксплоитов.

А потом решил попробовать, как реагируют серверы на медленное чтение клиентами HTTP респонсов. На удивление плохо реагируют. Дефолтные apache, nginx, lightpd, IIS отказывают в обслуживании на ура.

А суть такова:
Читать дальше →

Защита веб-сервера Apache от атаки медленного чтения, а так же некоторых других направленных атак

Reading time3 min
Views48K
Приветствую.
Хочу поделиться опытом защиты веб-сервера Apache от атаки медленного чтения. О том, что это за атака можно почитать тут (английский), а так же тут (русский).

Рассмотренный способ позволяет обезопасить работу сервера с помощью расширений mod_evasive и mod_security, а главное — требует менее получаса времени на реализацию. Настройка производилась на Ubuntu версии 12.04 + Apache 2.2. Настройка для других версий веб-сервера, а так же для других операционных систем отличается, в основном, особенностями установки программных пакетов и, собственно, версиями устанавливаемых программ и модулей для них.


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

Практическая оптимизация и масштабируемость MySQL InnoDB на больших объёмах данных

Reading time5 min
Views20K
Данный пост не будет рассказывать про индексы, планы запросов, триггеры для построения агрегатов и прочие общие способы оптимизации запросов и структуры БД. Так же не будет рассказывать про оптимальные настройки с префиксом innodb_. Возможно прочитав текст ниже вы лучше поймёте смысл некоторых из них. В данном посте речь пойдёт об InnoDB и его функционирование.

Какие проблемы может помочь решить этот пост?


  • Что делать если у вас в списке процессов множественные селекты которым казалось бы никто не мешает?
  • Что делать если всё хорошо настроено, запросы пролетают как ракеты и список процессов постоянно пустой, но на сервере высокий LA и запросы начинают работать немного медленнее, ну например вместо 100мс получается 500мс ?
  • Как быстро масштабировать систему, когда нет возможности всё переделать?
  • У вас коммерческий проект в конкурентной среде и проблему надо решать немедленно?
  • Почему один и тот же запрос работает то быстро то медленно?
  • Как организовать быстрый кеш и поддерживать его в актуальном состояние?

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

В чем причина засора? Cтатистика веб-приложений

Reading time5 min
Views13K
В прошлом нашем посте внимательный хабраюзер dovg отметил скриншот с красивым графиком. На нем было отражено время выполнения различных операций поиска. А поскольку статистика и анализ производительности высоконагруженных проектов – тема довольно актуальная, мы решили рассказать про систему, которую используем для сбора и анализа статистики «Мамбы». Как и в случае поиска, мы используем собственное решение, но в отличие от него BTP (никто не помнит, как эта аббревиатура появилась на свет, но почему-то именно она стала названием) находится в открытом доступе, и при желании вы можете установить её на своих серверах.

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

Таблица уровней для системного администратора

Reading time1 min
Views24K
Несколько лет назад после прочтения матрицы компетентности программиста я поискал аналогичную матрицу для системных администраторов. Ближашее что я тогда нашел это Sage Level Job Descriptions, но меня не оставляло желание составить для системных администраторов аналогичную таблицу.

Я несколько раз начинал это делать, потом бросал и снова начинал, и только теперь наконец-то сделал:

Хочу посмотреть

Алгоритм параллельного поиска максимальных, общих подстрок в двух строках, и его имплементация на C++ (C++11)

Reading time4 min
Views22K
Решил написать статью про алгоритм параллельного поиска максимально возможных пересечений двух строк. К написанию этой статьи меня побудило два желания:

  1. Поделиться со всеми интересным алгоритмом и его реализацией на С++ (стандарт С++11);
  2. Узнать, есть ли у данного алгоритма название и/или формальное описание;

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

Нейросети для чайников. Часть 2 — Перцептрон

Reading time5 min
Views260K
image

В предыдущей статье были рассмотрены самые азы для понимания темы нейронных сетей. Полученная система не являлась полноценной нейронной сетью, а несла просто ознакомительный характер. Принимающими решения механизмами в ней были «черные ящики», не описанные подробно.
Вот о них речь и пойдет в рамках данной статьи. Результатом статьи будет полноценная нейронная сеть из одного перцептрона, умеющая распознавать входные данные и позволяющая себя обучать.

Язык программирования, на этот раз — C#.
Заинтересовавшихся прошу под кат.
Читать дальше →

Кто я: профессионал или недоучка? Исповедь программиста-непрограммиста

Reading time9 min
Views18K
Мне вот интересно много ли таких людей как я. Тех, кто за свою бытность в IT-сфере написал множество сайтов, пару-тройку веб-сервисов, несколько интернет-магазинов и, не смотря на все это, понимает, что не является профессиональным программистом, а лишь программистом «так себе». Никто не узнал себя в этом описании? Вот, например, я – такой! Это обо мне!
Читать дальше →

Переезд проекта с SVN на Git

Reading time8 min
Views73K
image
Много лет подряд в качестве системы контроля версий для большого количества проектов использовали только SVN. Но наступил момент, когда количество разработчиков на одном из проектов заметно увеличилось, проект уже запущен в работу, и нужно как активно разрабатывать параллельно несколько фич, так и фиксить уже имеющиеся баги в оперативном режиме. Единый trunk в SVN не позволяет этого делать, а организация бранчей в нем же превращает жизнь разработчиков в ад. Поэтому было принято решение о переезде этого проекта с SVN на Git.
Читать дальше о том, как это делается от А до Я

Information

Rating
Does not participate
Location
Россия
Registered
Activity