Pull to refresh
0
0
mmaaxx @mmaaxx

User

Send message

Совместная работа над кодом в компании Google

Reading time3 min
Views2.3K
Во второй главе книги «Coders at Work», Брэд Фицпатрик (Brad Fitzpatrick) — автор Live Journal, а сейчас сотрудник компании Google, помимо всяких интересных баек о создании Live Journal, об учебе и о многом другом, рассказывает и о принципах владения кодом и о совместной работе над ним в компании Google.

image

Как известно, в Google существует возможность использовать двадцать процентов своего рабочего времени в целях, отличных от целей текущего проекта (но в целях и интересах компании в целом). Это явление называется групплеты (grouplet) (об этом можно почитать в замечательной статье «The Google Way: Give Engineers Room», или в переводе этой статьи здесь), соответственно, у каждого разработчика может появиться дикое желание порыться в чужом коде и поучаствовать в каком-то проекте. А поскольку таких проектов, мягко говоря, много, то требуются некоторые формальные правила, которые позволят поддерживать весь код в актуальном состоянии и не позволят его качеству опускаться ниже определенного уровня.

Читать дальше →
Total votes 88: ↑79 and ↓9+70
Comments71

«Играть»

Reading time1 min
Views1K


Предлагаю вашему вниманию умопотрясающий короткометражный фильм про виртуальные игры, обнаруженный во вчерашней блогозаписи в LJ-сообществе ru_cyberpunk.
Хабрахабровский вариант видеопроигрывателя YouTube не является широкоформатным, так что есть смысл смотреть видеозапись прямо на YouTube. Может быть, даже переключить режим чёткости с 360p на 480p — если, конечно, соединение с Интернетом позволяет вам скачивать более объёмные версии видеозаписей.
Total votes 108: ↑88 and ↓20+68
Comments85

Как загружается ARM

Reading time6 min
Views19K
Прошлый мой топик был полностью теоретическим, этот же будет практическим. Практика будет довольно хардкорной (я сам занялся этим вопросом только через год работы с ARMами) — инициализация процессора и памяти. Иными словами: что нужно сделать с процессором, чтобы попасть в функцию main(). Первая часть статьи посвящена инструментам сборки и отладки. Вторая — обработке векторов исключений, третья — инициализации стеков и памяти.
Но сначала хочу сделать одно уточнение. Многие почему-то считают, что ARM — это обязательно монстр со внешней памятью, кучей обвязки, работающий на частоте не менее 600Mhz, и т.д. Это правда лишь отчасти (если говорить об ARM9 и более поздних семействах). Тот чип, с которым я обычно работаю (AT91SAM7X512), не намного сложнее знакомых многим AVR. Ему для работы нужны только кварц и питание (можно и без кварца, но тогда будет совсем грустно). Всё. Но возможностей у него, конечно, больше, много больше, чем у AVR. Но об этом позже. Сегодняшняя статья никак не будет привязана к конкретному железу.
Читать дальше →
Total votes 62: ↑60 and ↓2+58
Comments35

23 логотипа со скрытым смыслом

Reading time4 min
Views155K
Логотипы не всегда являются тем, чем они кажутся. Некоторые из таких логотипов могут содержать в себе много информации о бренде, и всё что вам нужно сделать — вглядеться в детали. Я выбрал двадцать три отличных логотипа, у которых есть такое «скрытое послание». Я уверен, что ранее вы видели некоторые из этих «скрытых посланий», но надеюсь, что смогу показать новые.

Читать дальше →
Total votes 369: ↑344 and ↓25+319
Comments269

Вышла бета-версия медиацентра Boxee

Reading time1 min
Views3.2K
Недавно началось beta-тестирование кроссплатформенного медиаплеера/центра Boxee. От alpha-версии, вышедшей в июне 2008 года, эта версия отличается новым интерфейсом, разработчиками реализованы соглашения об интеграции с TV.com, blip.tv, IGN. Также появилась возможность установки закладок на понравившееся медиа. Также, в Boxee реализована поддержка онлайн-медиасервисов: YouTube, Flickr, Last.fm, Picasa Web и других. Интеграция с соц.сетями: Twitter, Facebook. Кстати, в Boxee интегрирован торрент-клиент.
Разрабатывается Boxee на С++, а плагины на Питоне. Основа исходников под лицензией GNU GPL.


под катом ссылки и поддерживаемые форматы
Total votes 64: ↑58 and ↓6+52
Comments66

CanvGauge — измерительный прибор с помощью canvas для HTML5

Reading time1 min
Views6.7K
HTML5 Canvas GaugeДобрый день, хабровчане!

Сегодня я хочу поделиться своей небольшой разработкой, которую я делал для одного из своих проектов. На самом деле, в сети множество реализаций gauge, как платных, так и бесплатных. Но найти хоть одно решение с использованием именно canvas мне не удалось, поэтому было принято решение написать свое.
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments67

flotr2 — графики и диаграммы на HTML5

Reading time1 min
Views36K
flotr2 — это библиотека с открытым кодом для построения HTML5 графиков и диаграмм. Flotr2 — так как стала ответвлением от Flotr, но уже без привязки к Prototype JS и с множеством усовершенствований.


Читать дальше →
Total votes 85: ↑81 and ↓4+77
Comments26

Оформляем тултипы с помощью CSS3

Reading time3 min
Views21K
image
Всем привет!
Уже несколько раз меня просили сделать обычные тултипы, которые со стрелочками такие. Все бы было хорошо: состряпал блок с круголками, взял треугольники отсюда и вуаля. Однако, не все так просто. Ведь полет фантазии дизайнеров велик. То им стрелочки с наклоном, то им рамки, то тени. Можно, конечно, все запилить на картинках, но ведь это старомодно непрактично. Хотя бы из-за кучи оберток, для того, чтобы все тянулось во все стороны.
Всё это оказалось абсолютно решаемым с помощью CSS, если включить немного фантазии.
От слов к делу.
Читать дальше →
Total votes 84: ↑76 and ↓8+68
Comments23

Демоны на PHP

Reading time4 min
Views75K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли

Читать дальше →
Total votes 188: ↑167 and ↓21+146
Comments125

Онлайновый курс Стэнфорда по компьютерной безопасности

Reading time1 min
Views5.3K
Ещё один бесплатный курс Стэнфордского университета: по компьютерной безопасности. Будут рассматриваться методы поиска уязвимостей в коде и принципы создания безопасных систем, которые по своей архитектуре минимизируют ущерб от потенциальных уязвимостей, на реальных примерах. Курс покрывает следующие темы:
  • уязвимости доступа к памяти;
  • техники и инструменты для поиска уязвимостей;
  • песочница и изолирование;
  • веб-безопасность;
  • сетевая безопасность;
  • распознавание вредоносных программ и защита;
  • безопасность мобильных платформ.
Курс рассчитан на студентов, имеющих базовые навыки программирования на C и C++.
Читать дальше →
Total votes 52: ↑48 and ↓4+44
Comments10

Видеозаписи с нашего Qt-тренинга для начинающих

Reading time3 min
Views38K
Всем привет!

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

Видеозаписи, представленные ниже, были сделаны на трехдневном тренинге по Qt, который мы проводили с 16 по 18 мая этого года в Москве. Он был рассчитан на начинающих Qt-программистов, у которых всё же был опыт программирования на C++. Тренинг проводил Кирилл Кринкин, руководитель лаборатории FRUCT Open Source & Linux Lab, целью которой является продвижение знаний в массы.

День первый


Знакомство с Qt

В первом видеоролике рассказывается про историю Qt, различные отличия этого фреймворка от других. Кирилл Кринкин рассказывает про основные компоненты Qt SDK, отдельно останавливаясь на основных модулях Qt. В окончании видео речь заходит о сравнении Qt в GTK.



Остальные записи под хабракатом
Total votes 24: ↑20 and ↓4+16
Comments4

Краткий список WYSIWYG редакторов от Марка Андреева

Reading time4 min
Views355K

Однажды мне потребовался WYSIWYG редактор, я помнил как он выглядит, его функции, но не помнил названия. Через 45 минут я все же его нашел… Тогда я поставил перед собой задачу помочь многим, в том числе и себе: сделать сводный список всех чуть более известных WYSIWYG редакторов.
Читать дальше →
Total votes 201: ↑178 and ↓23+155
Comments89

5 советов по проведению хорошего обзора кода

Reading time3 min
Views2.7K
Обзор кода является одной из самых ценных инженерных практик.

   1. Обзоры кода улучшают качество кода: одна голово хорошо, а две — лучше.
   2. Обзоры кода — это прекрасный инструмент для изучения разработчиками тех частей приложения, которые они в дальнейшем могут сопровождать.
   3. Обзоры кода помогают узнавать лучшие практики от других разработчиков.
   4. Обзоры кода могут использоваться для проверки понятности и простоты всего приложения в целом.

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

   1. Обзоры кода НЕ ДОЛЖНЫ проводиться с целью поиска ошибок.
   2. Обзоры кода НЕ ДОЛЖНЫ проводиться с целью проверки соблюдения стандартов кодирования.

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

Исходя из этой точки зрения, позвольте вам дать 5 советов по проведению хорошего обзора кода.
Читать дальше →
Total votes 50: ↑38 and ↓12+26
Comments45

Вдохновляйтесь с InspireMe

Reading time2 min
Views671
Привет, уважаемые посетители хабра :)

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

image

Читать дальше →
Total votes 142: ↑130 and ↓12+118
Comments58

Критическая уязвимость в lighttpd, DoS

Reading time1 min
Views1.5K

С официального сайта



Security Announce: slow request DoS/OOM attack
February 1st, 2010

Li Ming reported a serious bug in lighttpd:

If you send the request data very slow (e.g. sleep 0.01 after each byte), lighttpd will easily use all available memory and die (especially for parallel requests), allowing a DoS within minutes.

As far as we know all versions are affected.

Перевод



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

Насколько известно разработчикам, все версии сервера содержат баг.

ссылка на баг в трекере и патч
Пререлиз 1.4.26 c исправлением (via eugeneorlov)
Исправление для Debian (via esten)

Будьте бдительны!
Total votes 46: ↑40 and ↓6+34
Comments42

Визуализация данных в вебе: диаграммы Ганта

Reading time1 min
Views22K
В связи с недавней серией постов на тему визуализации данных в вебе меня попросили посоветовать библиотеки для рисования диаграмм Ганта, что с удовольствием и делаю.

Диаграмма Ганта (англ. Gantt chart, также ленточная диаграмма, график Ганта) — это популярный тип столбчатых диаграмм, который используется для иллюстрации плана, графика работ по какому-либо проекту. Является одним из методов планирования проектов.

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments38

Information

Rating
Does not participate
Location
New York, США
Date of birth
Registered
Activity