Search
Write a publication
Pull to refresh
20
0

User

Send message

Написание документации

Reading time3 min
Views29K
Если вы пишете документацию открытого исходного кода, то это не просто вежливые дополнение к проектам, она в определенной степени помогает вашему проекту взлететь. Хорошонаписаный README помогает, но полная документация по API делает проект более профессиональным. Даже если ваш проект с закрытым исходным кодом, документация поможет новым коллегам более быстро адаптироваться или поможет вам вспомнить как все работает в длительных проектах.

Давайте посмотрим как устроена документация в популярных JavaScript фрэймворках.

jQuery


jQuery

Документация jQuery располагается по адресу docs.jquery.com и представляет из себя wiki в которой описана вся документация по API. Любая крупная область API включена в навигацию, каждая страница имеет список методов для этой области. Страница содержит примеры кода и комментарии на Disqus.
Комментарии исходного кода в основном связаны с багами или с необычным фрагментом кода, который требует пояснений.

Далее: Prototype, JSDoc и несколько специфических подходов к JavaScript документации
Читать дальше →

Творим оригинальный подарок при помощи химии физики и электроники

Reading time4 min
Views76K
Добрый день, уважаемые хабровчане. Так получилось, что я уже довольно долго занимаюсь разработкой электронных устройств на базе микроконтроллеров, микропроцессоров и ПЛИС. Одним из разработанных мной девайсов я хочу с вами поделиться.
Читать дальше →

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

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

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

Запросы к Яндексу – в прямом эфире

Reading time1 min
Views21K
Каждый день Яндексу задают миллионы запросов.  Это порождает вопросы: «Что же эти люди ищут? И что это за люди?».

Мы уже давно показываем «Прямой эфир» на странице О компании. А теперь вы можете посмотреть на сервисе Яндекс.Интересы трансляцию запросов к Яндексу на карте. То есть мы показываем место, откуда поступил запрос, и непосредственно текст запроса.



Сразу предупредим – использовать эти данные никак не получится (хотя бы потому, что запросы транслируются не все подряд, а отбираются в случайном режиме). Мы думаем, что это просто интересно смотреть. 

P.S. Делитесь ссылкой на карту в социальных сетях и блогах и медитируйте :)

Андрей Лебединский, медитируем всем отделом.

Мой подход к проектированию веб-сайтов

Reading time4 min
Views42K

Прелюдия


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

В рамках данной статьи я поделюсь своим опытом проектирования сайтов средней сложности. Данный подход зарекомендовал себя понятным как разработчикам, так и клиентам. Я не собираюсь открывать Америку, представленные ниже инструменты всем прекрасно знакомы. Суть данной статьи как раз в том, что бы продемонстрировать насколько просто можно представить достаточно сложные задачи.

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

Rails: Хватит отмазываться, начинаем BDD-ить!

Reading time9 min
Views32K

Кто здесь?


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

11:24:21 PM Michael: ну хз, надо пробовать
11:24:24 PM Michael: наверное так лучше
11:24:27 PM Michael: даже я думаю наверняка
11:24:36 PM Michael: но пока меня че-то останавливает
11:24:38 PM Michael: лень наверное :)

Знакомо? «Не хочется разбираться? Нет времени?» Тогда читаем дальше. В статье расскажу, как настроить свое любимое рельсовое окружении на разработку с подходом BDD и начать новую жизнь (опционально).
Поехали!

CSS-препроцессор LESS и его интеграция с Ruby on Rails

Reading time3 min
Views5.9K
LESS — новый препроцессор для CSS. Проще говоря, LESS позволяет использовать в вашем CSS-файле переменные, операторы, классы и вложенные конструкции. В этой статье вы узнаете об основных возможностях LESS и о том, как быстро подключить его к популярному фреймворку Ruby on Rails 3.

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

Документация по API платежных систем

Reading time1 min
Views7.3K
За прошедший год в рамках проектов довелось поработать с рядом отечественных платежных системам. После чего, помимо опыта, осталось немного документации, которой и хочу поделиться. Возможно, кому-то пригодится в будущем.
Читать дальше →

Моё путешествие в будущее

Reading time5 min
Views134K


Был тихий осенний вечер. Ничто не предвещало беды. Смеркалось. Я заканчивал плановый upgrade компьютера, в процессе которого по затерявшимся уже в истории причинам понадобилось сбросить BIOS. Дело не хитрое. Расположение батарейки и перемычки Reset на материнской плате известны – вперед! После включения и загрузки Windows 7 мне в ультимативном порядке было заявлено, что на дворе далекое будущее, а именно – 14201-ый год.



Приключения только начинались…
Читать дальше →

Видео с конференции RailsClub'Moscow (30 октября 2010г.)

Reading time1 min
Views976
Смотреть всё подряд
Представлены доклады:

1. Ruby NoName Podcast Crew «Chef Light»
С помощью Chef можно организовать управление серверами не только для больших организаций, а для всех.
Есть сервер, есть клиенты которые гоняются на других серверах. Сервер говорит что надо сделать, клиенты делают. Для всего этого существуют dsl конфигурации с поддержкой pakages.
*Удалённое проведение конференции накладывает свои особенности. Извиняемся за качество видео.

2. Макс Лапшин «Rails do scale»
Пример приложения быстрого приложения на Rail для Vkontakte с посещаемостью ~ 1000 запросов в секунду.
Дёшево и работоспособно.

3. Алекс Дмитриев «Умное кэширование в rails»
Докладчик рассказывает о том, как пользоваться кэшированием в Rails, когда нужно использовать кэширование, что кэшировать, где хранить кэш и т.д.

4. Иван Евтухович «Vim or die»
Докладчик рассказывает о возможностях Vim — одного из мощнейших текстовых редакторов с полной свободой настройки и автоматизации.

5. Тимофей Цветков «Liquor, Liquid и другие безопасные языки разметки в RoR»
Безопасные шаблонизаторы для RoR. С помощью чего и как.

6. Андрей Руденко «Deploy fu»
Докладчик обсуждает достоинства и недостатки наиболее популярных в Ruby-сообществе инструментов развертывания приложений: Chef, Capistrano, Puppet, Сfengine, Bash-скриптики и др. Основная часть доклада посвящена презентации своего решения — Lorenz (см. github->lorenz).

Приятного просмотра.

KBookOCR for Linux. Убийца FineReader-а для Linux на начальной стадии

Reading time4 min
Views24K

Вступление


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

Как верстать красиво или чем плохи css-фреймворки

Reading time8 min
Views33K
Преимущества дивной вёрстки, семантичной разметки и разделения содержимого и дизайна описаны десятки, сотни раз, но все-равно находятся люди, которые не понимают самой идеи html и css, пишут в коде такие ужасные вещи, как
<span style="color:blue">

, когда хотят расскасить текст в синий цвет и искренне считают, что эта запись чем-то лучше, чем
<font color="blue">

, наивно веря в этом деле валидатору. А ведь правильный подход в написании html и css лежит на поверхности. Достаточно просто посмотреть историю развития этого языка, почитать статьи десятилетней давности и проанализировать. Я, при поддержке theshock, постаралась в этот статье упорядоченно и коротко изложить наше видение этого вопроса.

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

Сервер подсчета кликов

Reading time2 min
Views3.2K
Если ваш проект использует подсчет кликов и на нем есть какая-либо солидная нагрузка, то вы наверно задумывались об отдельном решении.

История разработки уходит в один проект торгово-рекламной площадки, где необходимо было учитывать кол-во переходов. Было решение на РНР. Но это давало видимую задержку в 0.5-1 сек, что очень раздражало разработчиков (в частности меня) и я думаю пользователей тоже.

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

Репликация в Postgresql 9.0

Reading time3 min
Views86K
Доброго времени суток. Учитывая, что с момента релиза PostgreSQL 9 прошло уже некоторое количество времени — я решил пощупать одну из его новых функций — нативную репликацию. Как известно, новый механизм основан на пересылке XLOG`a от мастера к слейву. Одним из жирных плюсов можно назвать нормальную обработку ALTER`ов. Иными словами — администратор 9й версии может обойтись без Slony.
Читать дальше →

Загрузка скриптов в WebKit

Reading time2 min
Views4.5K
Ночная версия WebKit отныне поддерживает свойства async и defer тэга script, появившиеся в HTML5. Таким образом скорость загрузки страницы возрастает, так как одновременно происходит и загрузка скриптов и рендеринг страницы.
Читать дальше →

Распределённая система имён в Интернете

Reading time3 min
Views2.3K
Это досужие рассуждения, никакого кода или даже описания протокола взаимодействия у меня нет. Оригинальное исследование в чистом виде, как это называют в Википедии.

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

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

Тут, мне кажется, стоит подумать о системе GPG/PGP, как менее централизованной (напомню, есть две модели управления ключами — PKI и GPG, PKI предусматривает бинарность доверия — либо доверяем в пределах политики удостоверяющего центра, либо нет). У человека есть набор корневых сертификатов, которым он доверяет. Через них удостоверяются другие УЦ и предъявители сертификатов.

Модель GPG подразумевает иной подход. Вместо множества авторитетных УЦ, которым доверяет пользователь (что в реалиях современных браузеров означает, что за пользоваеля решает создатель браузера), у пользователя есть лишь один абсолютный центр доверия — это он сам. Если он подписал, что А=Б, то мы можем точно считать, что А=Б. (в нашем вопросе, это означает, что Б может подписывать данные А, и что это правда). У нас есть люди (знакомые, службы в интернете и т.д.) с разным уровнем доверия к их подписям, и итоговое доверие вычисляется по подписи.

Например, закадычный приятель, который точно не будет подписывать ахинею, говорит, что А=Б, наверное, это так. Если же большинство из френдов считают, что thepiratebay.org=194.71.107.15, то наверное, это так. Как бы нас не убеждал в обратном гугль (с уровнем доверия 5 из 10).

Таким образом, система имён выглядит следующим образом: человек заходит на сайт (оставляем в стороне то, как он узнал первое имя, это проблема курицы и яйца, и она была решена даже при запуске DNS, не говоря уже про возможность использовать DNS как kickstart для новой системы), видит ссылку. Ссылка ссылается на имя и хэш подписи.

Если же человек хочет зайти на нужный ему ресурс, то он (человек и его воплощающий браузер) проверяет по «базам друзей» какой хеш наиболее авторитетен для указанного имени. Если есть консенсус, то, человек идёт на указанный сайт. Если есть разногласия, то появляется список:
vodka:

Homepage about homemaid vodka: 7.3 балла (миша — 3 балла, natsu 3 балла, google 1.3 балла), PGP key ABC687A687684CFA3…
vodka: best site about vodka, site selling for vodka, vodka for selling. 1.31 балла (yandex 1.3 балла, kibersquater 0 баллов, sellingdomains 0 баллов, somerandomcontact — 0.01 балла).
vodka: under construction 0.1 балла (вася пупкин 0.1 балла).


Если человек считает, что именно это имя соответствует имени сайта, то он подписывает подпись на записе о сайе. И с этого момента никакие усилия RIAA, USA, кровавой гэбни и т.д. не сделают так, чтобы подпись была инвалидирована. Если сайт меняет адреса, то он переподписывает новую запись (и мы, доверяя Б в вопросе подписания сайта об «А» автоматом доверяем новой записи).
Читать дальше →

CloudUSB: компьютер в кармане

Reading time1 min
Views1.7K
Хотите, чтобы ваш компьютер вместе с софтом и файлами всегда был с собой и надёжно защищён даже в случае потери? Автоматическое резервное копирование в онлайне с применением надёжного шифрования? Для этого не нужно таскать с собой ноутбук, достаточно одной флэшки.

Система CloudUSB представляет собой USB-флэшку с операционной системой Ubuntu 10.04 LTS и всеми пользовательскими настройками, папку Dropbox для файлов плюс программу для автоматического бэкапа с двойной парольной защитой.

Данные шифруются модулем EncFS, так что они хранятся в зашифрованном виде и на флэшке, и в Dropbox.

Вставляете флэшку в любой компьютер — и получаете родное окружение со всеми файлами. Рекомендуется накопитель на 4+ ГБ, хотя всё будет работать даже на двух. Хостинг Dropbox бесплатен до лимита в 2 ГБ.

На этой странице можно скачать ISO-образ (около 1 ГБ), скрипт для его копирования на флэшку, а также скрипт для создания своего собственного CloudUSB ISO с нуля. Логин и пароль по умолчанию cloudusb.

Правильный захват контекста в Javascript

Reading time5 min
Views37K
Довольно часто во многих статьях я вижу, как люди захватывают контекст this для использования в анонимной функции и удивляюсь — то, что уже стало стандартом — просто ужасная практика, которая противоречит всем канонам программирования. Вам знакома такая запись?
var self this;
Может вам тоже стоит переосмыслить этот аспект?
Читать дальше →

MapReduce: более продвинутые примеры, попробуем без зауми

Reading time9 min
Views34K
Чтобы не откладывать в долгий ящик сразу порассказываю несколько других примеров для MapReduce, обещанные в топике "MapReduce без зауми". (Если не понимаете полностью что такое MapReduce — прочитайте тот топик сначала! Без него не разберетесь)

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

Однако тема сама по себе сложная и все же напрячь мозги придется. Когда поймете — будет очень просто.

Входящие ссылки


Допустим у нас есть Интернет. В Интернете есть исходящие ссылки.

Допустим на входе у нас есть такие данные об ИСХОДЯЩИХ ссылках, собранные нашим паучком:

habrahabr.ru -> thematicmedia.ru, apple.ru, microsoft.com, ubuntu.com, yandex.ru
thematicmedia.ru -> habrahabr.ru, autokadabra.ru
autokadabra.ru -> habrahabr.ru, yandex.ru


Т.е. мы знаем, что Хабр ссылается на Apple, MS, Ubuntu и Яндекс но кто ссылается на Хабр? Да, вопрос примитивный, но все же разложим на MapReduce. Дальше будет интереснее и этот пример понадобится.

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

Information

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