Pull to refresh
6
0

User

Send message

Онлайновая валюта BitCoin достигла паритета с долларом

Reading time1 min
Views23K
Вчера курс криптовалюты Bitcoin (฿) на бирже впервые превысил отметку в $1,00 и в какой-то момент даже достигал $1,10.



Ещё в июле прошлого года ฿ принимались к оплате примерно десятью торговцами, а сейчас их около сотни, в том числе магазины электроники, косметики, услуги хостинга и т.д. При этом монетарная база за данный срок выросла примерно в пять раз (с 1 млн BTC до 5,37 млн), а курс укрепился в десять раз (с $0,10 до $1,00). Похоже, проект развивается успешно, и новая валюта становится вполне конвертируемой.
Читать дальше →

Экстремальный аджайл — танцую я один

Reading time1 min
Views2.9K
Я продолжаю сериал, начатый постом «Экстремальный аджайл — танцуют все!», посвященный распространению полезных практик из гибких методологий разработки на всех, кто вовлечён в проект. Ведь это несправедливо, когда отличными практиками пользуются только разработчики. Вашему вниманию предлагается видео доклада с рассказом о том, как мы решаем проблемы недостатка ресурсов и непрогнозируемых сроков, что мы делаем, когда не знаем с чего начать разработку и каким будет следующий шаг. Кроме того раз и навсегда решается вопрос необходимости тщательного стратегического планирования :) Как всегда, все это не теоретизирование и пересказ книжек и статей, а реальный опыт работы над реальным проектом. В общем этот пост писался с мыслью: «Давайте поговорим о процессе разработки и проблемах, связанных с ним. Долой маркетинговый буллшит и пустые теоритезирования!».
Читать дальше →

Бэкапы через bacula на Amazon S3

Reading time7 min
Views12K
Как известно, все люди делятся на два вида: те, кто ещё не делает бэкапы, и те, кто их уже делает. У тех, кто только начинает делать бэкапы, первым обычно встаёт вопрос о том, каким способом архивировать данные. Простые варианты (вручную нарезать болванки, целиком архивировать каталоги на другие серверы) рассматривать не будем — у них весьма скромные возможности по индексированию и поиску архивных файлов. Вместо этого обратимся к автоматическим системам бэкапов, в частности bacula. Данная статья не рассматривает вопрос, почему bacula. Главные причины — она распространяется под свободной лицензией, доступна для кучи платформ и обладает огромной гибкостью.

Второй вопрос после выбора системы архивации — выбор места, где хранить бэкапы. Bacula позволяет использовать стриммеры, компакт-диски, писать архивы в FIFO-устройства и в обычные файлы. Стриммер удобен на корпоративных серверах, где есть постоянный физический к железу. Хранение архивов в файлах подойдёт, когда объём архивов не превышает объёма жёстких дисков, плюс для надёжности хранения желательно делать RAID-массив с избыточностью, а то и несколько физических серверов для бэкапов, желательно в разных помещениях. Иначе всё это до первого пожара. Нарезать на болванки — это домашний вариант, главный недостаток которого — необходимость регулярного втыкания свежих дисков. Мы же настроили bacula для архивации данных на Amazon S3.
Читать дальше →

5 вещей, которые вы могли не знать о jQuery

Reading time3 min
Views29K
jQuery очень мощная библиотека, но некоторые его богатые возможности неясны, если вы не изучали исходный код jQuery и не читали книгу jQuery Pocket Reference (автор пишет my new book), вы можете не знать о них. В этой статье представлены отрывки из этой книги — 5 полезных вещей о которых вы могли не знать.

1) Вы вы не обязаны использовать $(document).ready() Если вы хотите выполнить функцию, когда документ готов для манипулированию просто передайте её в $()

2) Вы, наверное, уже знаете, что вы можете передать тэг в функцию $() для создания элемента этого типа и, что вы можете передать атрибуты объекта (в качестве второго аргумента), которые будут установлены на созданный элемент. Вторым аргументом может быть любое свойство, который вы передаете в метод attr(). Кроме того, если какое-либо свойство имеет тоже самое имя, что и событие (click, mouseover), то значение свойства используется в качестве функции обработчика данного события.
Следующий код, например, создает новый элемент, устанавливает три HTML атрибута и регистрирует функцию обработчика события(click) на нем:
var image = $("<img>", {
                  src: image_url,
                  alt: image_description,
                  className: "translucent_image",
                  click: function() {$(this).css("opacity", "50%");}
               });

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

Прямой нечеткий логический вывод

Reading time5 min
Views19K

Введение


В 1965 г. в журнале «Information and Control» была опубликована работа Л.Заде под названием «Fuzzy sets». Это название переведено на русский язык как нечеткие множества. Побудительным мотивом стала необходимость описания таких явлений и понятий, которые имеют многозначным и неточный характер. Известные до этого математические методы, использовавшие классическую теорию множеств и двузначную логику, не позволяли решать проблемы этого типа.

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

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

Reading time6 min
Views116K
image

Речь пойдёт о далёком 2005 году, когда только-только вышла Civilization4 от Sid Meier. К тому времени я плотно висел в Civilization3, прошёл её раз дцать на самых разных картах, и тут вышла долгожданная четвёрка. Это были годы P3-512Mb для mid-end и P4-1Gb в hi-end. Только топовые конфиги в те годы имели два гига памяти на борту.

Civilization 4 вышла с графикой уровня года 2002-2003го, что в принципе нормально для мэинстрима тех времён, особенно учитывая что это пошаговая стратегия, а не шутер. Но жрала с течением игры до 900Mb оперативки, что приводило к жуткому свопу, особенно на больших картах, особенно к концу игры, особенно на ноутбуках. Народ недоумевал, я тоже. Учитывая, что в те же годы вышел Far Cry с куда более красивой графикой, и который вполне игрался на максимуме даже с 512Mb на борту, такое поведение Civilization 4 выглядело крайне странным. Захотелось разобраться и покарать…
Читать дальше →

Нормальный алгоритм Маркова для деления чисел

Reading time3 min
Views30K
Добрый день. Хотелось бы поделиться с Вами очень интересным вариантом ненормального прграммирования — составлением нормальных алгоритмов Маркова. Этот вариант программирования может служить великолепным умственным отдыхом от привычных языков и сред программирования.
Студенты, которых я имею возможность учить, кричат криком, что это сложно, но только до первого собственными руками сделанного рабочего алгоритма, потом это перетекает в очень интересные алгоритмические задачки.
Собственно, к теме этого поста: наша задача написать нормальный алгоритм Маркова для деления двух целых чисел с точностью 4 знака после запятой(для задания чисел пользуемся унарной системой исчисления). Например, вход: |/||||, выход: 0.25.
При этом у нас есть только одна операция — замена одной подстроки в исходной строке на другую. Кому интересно что это такое и как это работает — добро пожаловать под кат.
Читать дальше →

Анализ проникновения бота через эксплоит в старых версиях phpmyadmin и рекомендации по настройкам безопасности php-хостинга

Reading time11 min
Views13K
Имею на администрировании несколько серверов, на которых хостятся восновном свои проекты, но кроме них ещё довольно много пришлось разместить левых сайтов — клиентов, знакомых, знакомых знакомых и т.п. За время администрирования встречались разные проблемы, поэтому настроены кое-какие мониторинги (zabbix и самописные скрипты).

И вот вчера на одном из серверов скрипт, проверяющий активные соединения, забил тревогу: постоянно висит исходящее соединение на неизвестный хост на порт 433, уже более 9 часов на момент когда я осилил прочитать почту в понедельник утром ;)

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

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

AndroidDev #1. Создаем файловый менеджер

Reading time10 min
Views71K


Android — перспективная и динамично развивающаяся операционная система. И многие программисты хотят научиться программировать приложения для OS Android, но беглый поиск структурированных материалов в сети Интернет и, в частности, Рунете, приводит их в ступор. Действительно, до сих пор существует проблема поиска обучающих статей (особенно на русском языке) по разработке приложений для этой весьма популярной операционной системы.
Ну, что ж, будем потихоньку улучшать данную ситуацию при помощи Хабра.
Сразу предупрежу, что материалы предназначены для тех, кто не имеет опыта разработки приложений для Android, но очень-очень хочет этот опыт приобрести.

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

Тренды в дизайне иконок 2010

Reading time4 min
Views29K
imageСоздание иконок — довольно консервативное направление дизайна. Часто новая и оригинальная иконка работает намного хуже, чем стандартная и привычная. Но индустрия не стоит на месте — появляются новые устройства с новыми интерфейсами, и меняются способы работы с ними. Происходит это все довольно медленно, но тренды выделить можно.

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

Сохранение и восстановление прошивки медиаплеера из журнала Vogue

Reading time7 min
Views13K
Эксперименты с плеером из журнала Vogue это очень хорошо, но старая добрая админская привычка делать бекапы всего и вся не даёт мне покоя. Ибо испортить игрушку при экспериментах с чужими прошивками очень легко, а как вернуть её в первозданное состояние не ясно. Обидно будет испортить такую халяву.

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

Компиляция. 1: лексер

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

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

Далее в посте:

  1. С какой стати писать компиляторы?
  2. Общий план
  3. Анализ текста
  4. Практический пример
  5. Как это работает?
Читать дальше →

Трепещи, мир! Мы выпустили PVS-Studio 4.00 с бесплатным анализатором общего назначения

Reading time12 min
Views2.2K
Check TortoiseSVN
Предлагаем вниманию программистов новый инструмент для поиска ошибок в исходном коде приложений на языке Си/Си++. В рамках анализатора PVS-Studio реализован новый набор правил общего назначения. Эта функциональность на данный момент является бесплатной. Вы можете скачать PVS-Studio по адресу http://www.viva64.com/ru/pvs-studio-download/.

В статье кратко рассказывается о новых возможностях PVS-Studio. На примере статического анализа исходного кода проекта TortoiseSVN будет продемонстрировано использование новых диагностических возможностей.
Читать дальше →

Mono.Cecil: делаем свой «компилятор»

Reading time4 min
Views14K
Одной из самых роскошных тем для программистов, балующихся изобретением велосипедов, является написание собственных языков, интерпретаторов и компиляторов. Действительно, программа, способная создавать или исполнять другие программы, инстинктивно вселяет благоговейный трепет в сердца кодеров — потому что сложно, объемно, но безумно увлекательно.

Большинство начинают с собственных интерпретаторов, которые представляют собой в общем виде огромный свитч команд в цикле. Интересно, вольготно, но муторно и весьма медленно. Хочется чего-то более шустрого, чтобы JIT'ить умело и, желательно, само следило за памятью.

Отличным решением данной проблемы является выбор .NET в качестве целевой платформы. Оставим лексический разбор на следующий раз, а сегодня давайте попробуем сделать простейшую программу, которая создает работающий исполняемый экзешник:



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

Дистанционное обучение программированию на Ruby

Reading time1 min
Views4.7K
По субботам, в 15:00 MSK проводятся бесплатные удалённые занятия по обучению программированию на Ruby для школьников и студентов. Курс рассчитан на начинающих изучать программирование и может рассматриваться как введение в программирование вообще.

Данный курс родился как дополнение к курсу по выбору «Метапрограммирование на Ruby» на Физтехе и посвящен более простым и базовым вещам. Сложность изложения и темы в значительной степени будут определяться аудиторией курса.
Читать дальше →

Бестселлер Amazon'а «Машина смерти» лицензирован под Creative Commons

Reading time2 min
Views961
imageЭто случалось раньше с музыкальными альбомами, когда выкладывание произведения открытый доступ не вредило текущим продажам товара. Авторы Машины смерти чётко поняли это. Они объяснили почему антология научно-фантастических рассказов о людях, которые знают как они умрут (но не знают когда), была сделана доступной в сети по CC BY-NC-ND:

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

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

Пожалуйста, скачивайте, читайте, копируйте и наслаждайтесь!


Кроме того, некоторые отдельные рассказы выпущены под лицензией CC BY-NC-SA
Читать дальше →

Kernel Pool Overflow: от теории к практике

Reading time10 min
Views42K
Ядро Windows всегда было лакомым кусочком для хакера, особенно при наличии законченных методик его эксплуатирования, приводящих к повышению прав. Учитывая тот факт, что за последние несколько лет количество уязвимостей, связанных с переполнением динамической памяти ядра, резко возросло, я активно заинтересовался данным направлением и, к собственному удивлению, в конечном итоге накопал столько материала, что его хватит не на один 0day-баг.

Наглядный ядерный шеллкод :)
Читать дальше →

Google начинает платить за найденные дыры во всех веб-продуктах

Reading time1 min
Views8.1K
Обкатав программу вознаграждений за найденные уязвимости на браузере Chromium, компания Google решила распространить её на все свои продукты. Теперь можно получить от $500 до $3133,7 за найденные баги в
  • *.google.com
  • *.youtube.com
  • *.blogger.com
  • *.orkut.com
Программа вознаграждений не действует только для клиентских приложений (Android, Picasa, Google Desktop и проч.), а так всё остальное в неё включено, в том числе Gmail, Youtube и Google Docs.
Читать дальше →

Удачная модель ветвления для Git

Reading time10 min
Views1M
Перевод статьи Vincent Driessen: A successful Git branching model

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



В качестве инструмента управления версиями всего исходного кода она использует Git.

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

Вышел DeaDBeeF 0.4.2

Reading time1 min
Views6.3K

Вышел DeaDBeeF 0.4.2


Любители foobar2000 и deadbeef, радуйтесь! Вышла новая версия этого прекрасного плеера. Внешне ничем не примечательный плеер (хотя я предпочитаю такую лаконичность) воспроизводит огромнейшее количество форматов, включая CUE разметки, которые под Linux поддерживают единицы плееров и то ужасно.
Быстрый, лёгкий, беспроблемный и просто приятный плеер от отечественного разработчика.


Подробнее

Information

Rating
Does not participate
Location
Латвия
Date of birth
Registered
Activity