Pull to refresh
zak2k @zak2k read-only

User

  • Posts
  • Comments

Vim по полной: Работа с Git

Website developmentVIM

Оглавление


  1. Введение (vim_lib)
  2. Менеджер плагинов без фатальных недостатков (vim_lib, vim_plugmanager)
  3. Уровень проекта и файловая система (vim_prj, nerdtree)
  4. Snippets и шаблоны файлов (UltiSnips, vim_template)
  5. Компиляция и выполнение чего угодно (vim-quickrun)
  6. Работа с Git (vim_git)
  7. Деплой (vim_deploy)
  8. Тестирование с помощью xUnit (vim_unittest)
  9. Библиотека, на которой все держится (vim_lib)
  10. Другие полезные плагины

Часто ли вам приходится использовать Git? В смысле, вы коммитите изменения каждый час или каждые несколько минут? Я делаю это очень часто и не слежу за чистотой репозитория, так как считаю его не более чем журналом изменений, а не произведением искусства. Такой подход требует от редактора хорошей интеграцией с Git, позволяющей в пару нажатий клавиш создать новый коммит, вернуться в прежнее состояние, перейти на другую ветку и так далее. Если вы используете современную среду разработки, в которой реализована интеграция с Git, вам очень повезло, но что делать пользователям редактора Vim? Есть ли плагин, который не просто реализует Vim-команды по тиму GitCommit, GitCheckout и GitBranch, а предоставляет удобный интерфейс в лучших традициях редактора?
Псс, плагин не нужен?
Total votes 19: ↑18 and ↓1+17
Views38K
Comments 45

Работа с WebMoney API

Billing systems
WebMoney Transfer уже давно является для многих привычным способом расчётов в интернете. Одним из достоинств системы является богатый API для взаимодействия со программным обеспечением сторонних сервисов. Через него можно получать состояния ваших счетов, осуществлять денежные переводы, выставлять клиентам счета на оплату, контролировать их оплату, возвращать платежи без комиссии, работать с платежами с протекцией, получать информацию из аттестатов других пользователей, отправлять сообщения по внутренней почте WM. На сайте WebMoney есть хорошая документация на API.

Вашим покорным слугой написан модуль Business::WebMoney, который распространяется по свободной лицензии и получил статус официального Perl-интерфейса системы.
Читать дальше →
Total votes 45: ↑37 and ↓8+29
Views22K
Comments 34

40 механик для социальных игр

Social networks and communities
Translation
Разработчик игр Раф Костер (Raph Koster) составил всеобъемлющий список базовых правил, на которых основаны социальные отношения в играх (мультиплеер, параллельная игра и т.д.). Эти правила для разработчиков игры заменяют азбуку. Во многом они пересекаются с принципами игровой механики, которые уже обсуждались на Хабре.

Раф Костер приобрёл известность как создатель дизайна Ultima Online и креативный директор проекта Star Wars Galaxies, после чего основал собственную студию.
Читать дальше →
Total votes 102: ↑92 and ↓10+82
Views17K
Comments 33

Автоматическое оповещение читателей о новостях с помощью ВКонтакте

Social networks and communities
Sandbox
Tutorial
Вторая часть

Предисловие


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

Так вот, если у вас есть свой блог и вы хотите на своей личной страничке публиковать такие же сообщения-ссылки автоматически — топик может быть вам интересен. Сегодня мы попробуем публиковать простые сообщения ссылки, а далее добавлять к ним «превью»-картинки.
Читать дальше →
Total votes 103: ↑73 and ↓30+43
Views25K
Comments 57

Определение местоположения по mac адресу роутера

IT-companies
image

1. Узнаем MAC–адрес WiFi роутера, через который вы выходите в интернет. (Через веб–интерфейс, дать arp–запрос «arp -a», посмотреть на обратной стороне девайса.)

2. Заходим по адресу samy.pl/mapxss

3. Вбиваем в текстовое поле MAC–адрес и жмем «Search MAC».

Как это работает?
Читать дальше →
Total votes 109: ↑91 and ↓18+73
Views90K
Comments 283

Доступны исходные коды Diaspora

Social networks and communities
Про проект Diaspora уже писали на хабре.

Вкратце: авторами проекта являются студенты, активные пользователи facebook.com, обратившие внимание на недостаточную безопасность оного и решив сделать проект, который будет лишён недостатков facebook. Стоит обратить внимание на то что Марк Цукерберг, глава и созидатель facebook.com, оказал небольшую финансовую помощь проекту, а так же на то, что исходные коды Diaspora будут доступны в сети.

Ссылки на скачивания исходных кодов Зеона Diaspora можно увидеть в блоге проекта, там же можно увидеть скриншоты интерфейса Diaspora.

PS: скачал, посмотрел. проект написан на руби, база данных — mongodb, javascript — jquery, css — blueprint. пока некуда установить проект.

update: в комментариях напомнили в чём вся фишка диаспоры

Забыли уточнить что проект создаваемая социальная сеть является распределённой, но все узлы сети могу т общаться между собой через цифрованный канал, и каждый может установить ткой узел на своём сервере, а пользователи этого сервера могут без проблем общаться с участниками других узлов.
Total votes 45: ↑39 and ↓6+33
Views1.1K
Comments 27

Анонс книг 7'2010

Professional literatureReading room
Российские и зарубежные издательства трудятся во всю на благо простых разработчиков и выпускают десятки книг в месяц из самых разных областей компьютерной науки. При этом, как и во многих других областях, процент качественного товара остается на определенном (не слишком высоком) уровне. Прежде чем пойти в магазин и купить книгу (да, я в этом вопросе старомоден и не понимаю, как можно читать хорошую техническую книгу в электронном виде) приходится потратить солидное время на изучение того, стоит ли она потраченных средств и усилий.

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

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

Р. Мартин. Чистый код: создание, анализ и рефакторинг. Питер. 2010


(Оригинал: Robert C. Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 2008)

image
Читать дальше →
Total votes 82: ↑68 and ↓14+54
Views1.2K
Comments 34

Elemental: War of Magic – новая пошаговая стратегия от студии Stardock

Lumber room
Elemental: War of Magic – новая пошаговая стратегия от студии Stardock

Компании ’’1С-СофтКлаб’’ и Snowball Studios локализуют и выпустят в России пошаговую стратегию Elemental: War of Magic от студии Stardock, широко известной в узких кругах своими хардкорными стратегиями Galactic Civilizations и Galactic Civilizations 2.

Русское название игры — «Elemental. Войны магов». Релиз российского издания запланирован на третий квартал 2010 года, одновременно с мировой премьерой проекта.
Читать дальше →
Total votes 73: ↑54 and ↓19+35
Views466
Comments 39

Tungstene распознает Photoshop

Design
В конце мая на ряде европейских web-ресурсов прошло сообщение, которое до Рунета пока толком не дошло. В блогах посудачили, покрутили пальцем у виска, поболтали о том о сём, да и разошлись.

Тем не менее, разработка француза Roger Cozien (Роже Козьена), доктора математики, криминалиста и основателя общества цифровой экспертизы Exo Makina, имеет достаточное потенциальное значение, чтобы быть разобранной более подробно.

Знакомьтесь, Tungstene или «Вольфрам». Без «е» на конце в английском написании — антифотошоп и «смерть глянцу», как окрестили его некоторые особо впечатлительные фотоблоггеры.
Читать дальше →
Total votes 159: ↑156 and ↓3+153
Views18K
Comments 119

Загрузка в YouTube с вашего сайта

Cloud services
YouTube Direct — инструмент, с помощью которого с вашего сайта посетители смогут добавлять свои материалы в YouTube.


Что хорошего может предложить этот сервис:
  • все бесплатно — работа с open-source YouTube API
  • возможность свободной настройки интерфейса
  • пользователи загружают видео на YouTube, не уходя с вашего сайта
  • можно загружать не только видео, но и фото материалы
  • вы модерируете то, что загружается с вашего сайта (без этой опции сервис, наверное, и не смог бы существовать)
  • в YouTube рядом с видео будет ссылка на сайт, с которого оно было загружено

Платформа изначально была ориентирована на взаимодействие СМИ с репортерами-любителями, но, думаю, есть еще много интересных способов ее использования.
Подробнее можно прочитать на странице проекта.
Total votes 71: ↑66 and ↓5+61
Views1.6K
Comments 22

Незаменимое пособие для авторов статей, текстов и постов

Media management
Tutorial
"… Специально для вас, — ответил великий комбинатор. — Вы, я замечаю, все время терзаетесь муками творчества. Писать, конечно, очень трудно. Я, как старый передовик и ваш собрат по перу, могу это засвидетельствовать. Но я изобрел такую штуку, которая избавляет от необходимости ждать, покуда вас окатит потный вал вдохновения. Вот. Извольте посмотреть.

И Остап протянул Ухудшанскому лист, на котором было написано:

ТОРЖЕСТВЕННЫЙ КОМПЛЕКТ.
НЕЗАМЕНИМОЕ ПОСОБИЕ ДЛЯ СОЧИНЕНИЯ ЮБИЛЕЙНЫХ СТАТЕЙ, ТАБЕЛЬНЫХ ФЕЛЬЕТОНОВ, А ТАКЖЕ ПАРАДНЫХ СТИХОТВОРЕНИЙ. ОД И ТРОПАРЕЙ"

И. Ильф, Е. Петров, «Золотой теленок»


Хабр — это все-таки больше СМИ, чем просто форум и тусовка «для своих». Это я к тому, что хочешь — не хочешь, а публикуя топик, ты, фактически, занимаешься журналистикой. На Хабре уже не раз упоминалась книга Александра Амзина по интернет-журналистике. Книга, на мой взгляд, удалась, и заслуживает почетного места в закладках у каждого. Тем не менее, одна ссылка хорошо, а много — лучше. Так как я не один год проработал бок о бок с журналистами, то и сам нахватался от них всякого. Под катом — джентльменский набор вкусных и полезных ссылок.
Читать дальше →
Total votes 139: ↑129 and ↓10+119
Views2.8K
Comments 53

50 цитат о программировании всех времён

Programming
Translation
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8+328
Views140K
Comments 136

31 тезис

Lumber room
Иногда, когда у меня случаются моменты не самого лучшего настроения или что-то не получается, вмешивается, происходит или еще каким-то образом отравляет жизнь, я перечитываю эти цитаты, собранные мной несколько лет назад воедино — и силы приходят!

Читать дальше →
Total votes 83: ↑62 and ↓21+41
Views469
Comments 23

Maltego. Нароет все

Artificial Intelligence
image

Вчера, просматривая очередную сборку live-дистрибутива BackTrack, наткнулся на очень интересную и довольно таки, как оказалось потом, полезную софтину. Многие из нас часто сталкивались с проблемой поиска информации касательно определенной организации, а именно конкретный данных: начиная с общего описания деятельности и заканчивая личными телефонами сотрудников. Как инструмент использовали популярные поисковые машины(играясь с языком запросов для более результативного поиска), различные общедоступные базы данных(телефонный базы, whois и т.д.).

Хотелось найти что-то, что могло само осуществлять «умный», узкоспециализированный поиск, разделять(по критериям и типу) и сортировать информацию и главное — указывать взаимосвязи.
Именно для эти целей и появился на свет инструмент под названием Maltego, разработка южноафриканской компании Paterva.

Читать дальше →
Total votes 49: ↑40 and ↓9+31
Views27K
Comments 30

Обработка горячих клавиш при помощи javascript

Lumber room
Захотелось мне в своем проекте использовать горячие клавиши для управления содержимым. Нажал esc — закрылось диалоговое окно, ctrl+left — открылся следующий раздел… Порылся в гуглях-яндексах и, не найдя идеала, решил написать свое решение.
Теперь оно у меня есть — маленькое, легкое, независимое от от других библиотек.
Мне достаточно подключить javascript-файл и написать
$e('ctrl esc').bind("alert('Ыыы');");

Готовый javascript можно взять здесь.
UPD Улучшен код. Спасибо, Yeah, aubt.
Подробнее о возможностях
Total votes 18: ↑16 and ↓2+14
Views836
Comments 12

Поиграем в жизнь

Games and game consoles
Представьте себе листок бумаги в клетку. Подозреваю, что уже на этом этапе некоторые хабралюди догадались, о чем пойдет речь. Что ж, моё почтение им. Остальные же продолжают представлять себе листок бумаги в клетку. Во всех подробностях. В мельчайших деталях.

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

Ладно, хватит завлекалок. Пора удариться в математику.


Включить мозги
Total votes 154: ↑135 and ↓19+116
Views10K
Comments 109

GTD DSL на Haskell

Lumber room
Давеча искал я программное обеспечение для GTD, или по-русски «как привести дела в порядок». Конечно, многие инструменты красивые и простые, но у таких не хватает гибкости и возможностей настройки. Другие же — сложные монстры с горой ненужной функциональности. Как же совместить безграничную гибкость с простотой?

Я, как любитель текстовых интерфейсов, предпочёл предметно-ориентированный DSL язык вместо GUI. Но писать парсер языка с нуля далеко не просто. Гораздо приятнее надстроить типы над готовым языком Haskell.

что получилось
Total votes 9: ↑8 and ↓1+7
Views524
Comments 2

Что такое качество в веб-дизайне: примеры и рекомендации. Часть 2

Design
Translation
Не забудьте почитать: Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1. (или здесь).

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

03. Хорошо продуманная типографика


Хотя реальные тексты для сайта будет писать не дизайнер, они играют такую же важную роль, как и общее качество контента. Дизайнер должен потрудиться, чтобы тексты легко читались и удерживали внимание. Существует множество способов сделать текст легко читаемым и приятным глазу. По мере перечисления правил и норм того, что следует и чего не следует делать, я приведу несколько примеров сайтов, где рациональная типографика действительно работает.
Читать дальше →
Total votes 82: ↑74 and ↓8+66
Views5.7K
Comments 24

Что такое качество в веб-дизайне: примеры и рекомендации. Часть 1

Design
Translation
Несколько выдающихся примеров и рекомендаций по созданию качественного дизайна веб-страницы или блога

quality

Многие люди склонны описывать предоставляемые ими услуги по веб-дизайну как «качественные». Но что означает здесь слово «качество», как определить, является дизайн качественным или нет? Что ж, я вижу несколько способов определить качество применительно к сфере веб-дизайна. Ведь если однажды определить, что позволяет создавать качественный веб-дизайн, можно использовать эти же приемы для оттачивания собственного стиля.

Чтобы объяснить, как я понимаю качество в дизайне веб-сайтов, я собрал несколько рекомендаций и примеров.
Читать дальше →
Total votes 164: ↑152 and ↓12+140
Views20K
Comments 64

Как избежать зоопарка или дайте пользователям работающие кнопки…

Lumber room
Начинать данную статью с различных вводных матчастей о «Великой силе SCRUM'а» и «ущербности водопадной методологии» считаю пустой тратой времени, поскольку в интернете и так достаточно много ресурсов, позволяющих узнать всё: от историй предпосылок создания технологий до всех преимуществ и недостатков в текущих реализациях. Как говорится: «Кто ищет, тот всегда найдет...» (с) :-).

Хочу поделиться неким опытом и даже скорей всего своим мнением о «существующем зоопарке ПО» в некоторых ИТ-компаниях, а именно подходах и реализациях.

Итак, начнем…

Естественно, для написания нового или улучшения существующего продукта предварительно нужно исследовать рынок, проанализировать потребность заказчиков, написать кучу каких-то нелепых концепций и ТЗ, в которых для «большего страха и мощи системы» необходимо как можно больше применять такие выражения как: «… на основе существующих артефактов, разработанная метамодель поможет реальным пользователям ...», обязательно использовать только термины и аббревиатуры и конечно же обязательным условием является описание «сферических коней в вакууме». Затем надо детально проанализировать все эти концепции, обрасти еще миллионами моделей: от простых IDEF-диаграмм до огромных UML-моделей со всякими ассоциациями, агрегациями и прочей «атрибутикой». В итоге получаются все новые и новые «пауки». Конечным пользователям глубоко наплевать на эти модели, диаграммы и т.д., им нужны рабочие кнопки…

После этого начинается непосредственно разработка, программисты начинают «клепать» то задуманное, о чем писалось в ТЗ. Опустим документирование и тестирование… перейдем сразу к выходу продукта на рынок. Маркетологи разработали кучу бумажек о выходе продукта «СуперМегаСистемаПро», которая позволит не только быть «системой, автоматизирующей то-то и то-то», но также (причем без лишней скромности)… она… она… она вообще позволяет «автоматизировать весь мир» :-). Вроде все хорошо, система мощная, современная, но почему-то заказчики недовольны… вроде система обо всем, а на самом деле не о чем. В итоге существующие продукты начинают ругать все кому не лень, а внедренцы в тихоря при помощи SDK (если есть) «клепают» все новые и новые плагинчики, лишь бы заказчик был доволен. Следствие, зоопарк разрастается…

Существующие проблемы ПО находятся прямо «на поверхности», их не надо искать, а уж тем более вытаскивать из глубины. Но тем не менее, начинаются новые обсуждения, новые концепции… в итоге «кто в лес, кто по дрова»… но главное, существующие недостатки завуалированы емкими терминами и как следствие новая система только стала еще сложнее и не понятнее. Жалко потраченного времени (2-5 лет), а уже тем более жалко выкидывать «тонны кода», ведь программисты не виноваты.

После разведенной мною демагогии о «водопадном подходе» :-) имеет смысл перейти к реально рабочей технологии SCRUM. Данная технология действительно помогает оживлять продукты и способствует разработке новых и качественных продуктов.

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

Процесс
Практику SCRUM мы объединили с некоторыми практиками XP (eXtreme Programming). SCRUM позволяет решить вопросы управления и организации, а XP специализируется на инженерных практиках. Из XP мы позаимствовали: парное программирование, рефакторинг, CodeReview и стилевое описание кода. Также на ретроспективах мы определили для себя ряд правил, которых мы придерживаемся. Для проектирования качественного GUI применяем практику использования персонажей.

Используем только легковесное документирование: диаграмма БД и UML-модель, которые разрастаются только в ходе разработки, соответственно — это не такие страшные пауки, как было описано выше.

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

Для подсчета идеальных часов мы используем фокус-фактор равный 0.4. В принципе такой показатель является средним по всем итерациям и является оптимальным, поскольку обычно запланированные задачи мы успеваем сделать вовремя.

Планирование как правило происходит возле «стены проектирования» (доски с маркерами) или за столом с компьютером, где наглядно можно посмотреть предыдущий функционал и GUI. Некоторые диалоги рисуются сразу на доске и фотографируются, затем эти фотографии будут задействованы при реальном выполнении задач. Для оценки трудоемкости используем PlanningPoker, практически все задачи являются тестируемые, что позволяет сразу выявить все ошибки.

SCRUM — митинг
Ежедневные встречи проводятся 2 раза в день возле SCRUM-доски. После встречи делается отметка на графике сгорания. Задача считается выполненной, т.е. переносится в «Done», только после тестирования. Программист может взять следующую задачу в «InProgress» только после одобрения аналитиком предыдущей задачи, взятой на выполнение. Диаграмму сгорания «подбивает» Скрам-мастер. Чтобы не превышать временной 15-минутный лимит, встреча проводится стоя. На встрече мы определяем, что мы сделали, что будем дальше делать, какие проблемы. Стараемся не обсуждать технические детали, но не всегда получается. Обычно встреча длится не более 10 минут. Если на митинге были определены некоторые технические проблемы, то их обсуждение проводится после скрам-митинга возле «стены проектирования» (доска с маркерами).

SCRUM — доска
В качестве скрам-доски мы используем обыкновенную пробковую доску. Область доски мы разделили на три части: ToDo (что надо сделать), InProgress (В работе), Done (Выполнено).

Однако, мы ведем и электронную версию доски (UserStory, задачи, % участия задействованных участников команды и т.д.) в программе. Это делается «для истории», в работе мы пользуемся только доской.

График сгорания
График сгорания является наглядным индикатором прогресса. Ось X — это ось времени. Ось Y — трудоемкость невыполненных задач. Задача считается выполненной если она проверена тестировщиком, во всех остальных случаях задача не выполнена.

Выполненные задачи переносятся в раздел «Done» скрам-доски. Таким образом график отображает сумму трудоемкости задач, находящихся в разделах «ToDo» и «InProgress». После ежедневных митингов, диаграмма сгорания «подбивается» с учетом выполенных задач за день. Также информация о выполнении заносится в программу, в которой наглядно отображается дата взятия задачи в «InProgress», дата выполнения данной задачи. В продукте автоматически подсчитывается средняя скорость команды, фокус-фактор. Данная информация иногда может помочь в переоценке трудоемкости задач и фокус-фактора команды.

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

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

Для проведения ретроспективы используем доску с маркерами, которая условна разделена на 4 блока: минусы, плюсы, идеи и план. После того как все участники высказались и все идеи были записаны, мы проводим голосование путем расставления магнитных фишечек. Практически все, что было записано в блок «План» мы стараемся впоследствии соблюдать.

В результате работы по SCRUM наша команда смогла решить многие из тех проблем «на поверхности» быстро и качественно (правда систему не оживляли, писали с нуля).
Да пребудет с нами «великая сила SCRUMа» и дайте пользователям рабочие кнопки!!!
Total votes 37: ↑11 and ↓26-15
Views720
Comments 5

Information

Rating
Does not participate
Location
Оренбургская обл., Россия
Date of birth
Registered
Activity