Search
Write a publication
Pull to refresh
14
0

Software Developer

Send message

Mercurial hgwebdir через FCGI + несколько разных хранилищ

Reading time5 min
Views1.9K

Введение и отмазка


Доброго времени утра,

Возможно, всё о чём я сейчас буду рассказывать делается проще, правильнее, уже сделано, придумали ещё австралопитеки. Возможно это даже будет воспринято как издевательство над всем упомянутым, а вы зря потратите несколько минут своего драгоценного времени. Знайте — я предупреждал!

Если ещё не закрыли статью — обрисую ситуацию:

Что у нас есть


У нас есть nginx, mercurial несколько самостоятельных проектов, на каждый из которых имеется 3-4 репозитория. Ещё у нас иногда могут появляться сторонние разработчики, которым часть этих проектов показывать совершенно не обязательно.

Что со всем этим делать?

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

Hg Init: Часть 3. Привыкаем работать в команде

Reading time7 min
Views111K
Это третья часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Предыдущие части:


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

Часть 3. Привыкаем работать в команде




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

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

Hg Init: Часть 2. Основы Mercurial

Reading time7 min
Views231K
Это вторая часть из серии Hg Init: Учебное пособие по Mercurial от Джоэля Спольски (Joel Spolsky). Возможно, вы захотите прочитать и первую часть «Переобучение для пользователей Subversion».

Даже если вы работаете в одиночку, то вам стоит использовать Mercurial. Так вы сможете получить все прелести контроля версий. Эта часть покажет насколько просто добавить каталог в Mercurial, чтобы с легкостью отслеживать предыдущие версии.

Часть 2. Основы Mercurial



Mercurial — это система контроля версий. Разработчики используют ее для администрирования исходного кода. У нее два основных назначения:
  1. Она хранит все предыдущие версии каждого файла
  2. Она может объединить разные версии вашего кода, то есть сотрудники могут независимо работать над кодом и затем объединять свои изменения


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

Wiren Board — встраиваемый компьютер с Wi-Fi, GPRS, GPS, NFC и Ethernet из коробки

Reading time9 min
Views90K


update: Мы ещё живы и наконец-то открыли продажи!готовим первую партию к продаже конце сентября.
Новая версия стала куда лучше и выглядит теперь вот так:


Подробности в нашем блоге.
/update

TL;DR (Abstract)


Мы сделали маленький «одноплатный» встраиваемый компьютер с хорошим набором периферии, в основном беспроводной (GSM/GPRS, NFC, Wi-Fi, GPS, Ethernet, etc). Рабочее название — Wiren Board (от Wireless Enabled)

Предполагается, что использоваться он будет для всяческой автоматизации — то есть в качестве «мозга» для оборудования. Если вы хотите сделать умное устройство, не разрабатывая целиком собственное сложное железо, то это для вас. Впрочем, для DIY наш компьютер тоже весьма полезен, и об этом направлении мы не забыли при разработке. Если понадобится дополнить чем-то специфическим — функциональность можно расширять готовыми модулями. Что ещё приятно, стоимость компьютера мы планируем сделать всего около $100.

Первая версия уже готова, открыт предзаказ.

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

Hg Init: Часть 1. Переобучение для пользователей Subversion

Reading time9 min
Views124K
Hg Init: Учебное пособие по Mercurial.


Mercurial — это современная распределенная система контроля версий с открытым кодом. Эта система — заманчивая замена для более ранних систем вроде Subversion. В этом простом учебном пособии в шести частях Джоэль Спольски (Joel Spolsky) рассказывает о ключевых принципах Mercurial.

Если вы использовали Subversion, то Mercurial будет непонятным. Эта часть рассказывает о главных отличиях при работе с Mercurial. Если вы никогда не использовали Subversion, то можете просто пропустить эту часть.

Часть 1. Переобучение для пользователей Subversion


В каком же я был смятении, когда программисты в моей компании решили сменить Subversion на Mercurial!

Для начала, я начал приводить всевозможные тупые причины, по которым нам не надо ничего менять. «Мы должны хранить репозиторий на центральном сервере, так безопаснее», — сказал я. Знаете что? Я был неправ. При работе с Mercurial у каждого разработчика на жестком диске хранится полная копия репозитория. Это, на самом деле, безопаснее. В любом случае, почти в каждой команде, использующей Mercurial, центральный репозиторий тоже существует. И вы можете делать резервное копирование этого репозитория со всей необходимой одержимостью. А еще можете устроить трехступенчатую защиту с Сайлонами, Штурмовиками и прелестными лабрадудлами или что там требует ваш IT-отдел.

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

ASP.NET MVC. Урок 0. Вступление

Reading time2 min
Views784K
Я пишу сайты на asp.net mvc. В этих 16 главах я хочу рассказать, как я это делаю. Это некий учебник-справочник всех тех знаний, которые я накопил в течение трех лет.

Почему именно asp.net mvc

ASP.NET MVC я люблю потому что:
  • Это .net. Я знаю .net и С#.
  • Это компилируемый код.
  • Это не ASP.NET WebForms, я работаю с html-кодом.
  • Используется MVC-паттерн.
  • Visual Studio – самое популярное средство разработки, в котором есть IntelliSense.
  • Отличные инструменты отладки.


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

Коаны Vim

Reading time5 min
Views28K
Читать дальше →

Дайджест интересных новостей и материалов из мира PHP за последние две недели №14 (26.03.2013 — 08.04.2013)

Reading time6 min
Views19K


Предлагаем вашему вниманию очередную подборку с ссылками на новости и материалы.

Приятного чтения!
Читать дальше →

Коаны Гита

Reading time3 min
Views38K
По мотивам «Коанов Вима».

Тишина
Что-то одно, но хорошо
Только богам
Хобгоблин
Длинное и короткое

Тишина


Python-программистка передала свой файл ~/.gitconfig мастеру Гиту. Среди строчек кода было следующее:

[alias]
; Явное лучше подразумеваемового. Если мы хотим выполнить слияние,
; нам следует сделать это самим.
pull = pull --ff-only

Мастер Гит кивнул. «git pull origin master», — сказала программистка.
Читать дальше →

LESS: программируемый язык стилей

Reading time13 min
Views432K
Я не люблю CSS. Он простой и понятный. Это движущая сила Интернета, но он слишком ограниченный и им трудно управлять. Пришло время привести этот язык в порядок и сделать его более полезным, используя динамический CSS при помощи LESS.
Объясню свою позицию на примере. Почему бы вместо использования #FF9F94 для получения темно-персикового цвета просто не хранить значение этого цвета в переменной для её последующего использования? Что бы перекрасить сайт достаточно будет изменить значение переменной всего в одном месте и всё.
Другими словами: это будет очень изящно, если мы будем использовать немного программирования и логики в CSS, что бы сделать его более мощным инструментом. Хорошо, что это всё возможно с использованием LESS.
Так что же такое LESS?

SCSS — немного практики, часть I

Reading time5 min
Views554K

image


Статей про SASS(SCSS), Less на хабрахабре уже полно, но на мой взгляд не хватает такой, в которой было бы немного реальной практики. Я постараюсь восполнить этот пробел. Около года назад одна из SASS-статей меня "зацепила", и с тех пор я полюбил эту технологию настолько, что ручной набор обычного CSS кода представляется мне лишней тратой времени. Сия статья посвящается тем верстальщикам (или web-программистам), которые про SCSS ещё не слышали, или же ещё не пробовали в деле. Более опытным товарищам, полагаю, в ней ловить нечего.


Что такое SCSS


SCSS — "диалект" языка SASS. А что такое SASS? SASS это язык похожий на HAML (весьма лаконичный шаблонизатор), но предназначенный для упрощения создания CSS-кода. Проще говоря, SASS это такой язык, код которого специальной ruby-программой транслируется в обычный CSS код. Синтаксис этого языка очень гибок, он учитывает множество мелочей, которые так желанны в CSS. Более того, в нём есть даже логика (@if, each), математика (можно складывать как числа, строки, так и цвета). Возможно, некоторые возможности SCSS покажутся вам избыточными, но, на мой взгляд, лишними они не будут, останутся "про запас".

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

SCSS — новая порция глазури от Sass

Reading time3 min
Views56K
imageПоследнее время я практически не занимался версткой, и пропустил выход Sass3, в котором реализовано расширение SCSS (Sassy CSS). Это именно расширение для CSS без «искажения» синтаксиса — то есть любой валидный CSS документ является и полностью валидным SCSS документом. В посте я проведу сравнение с уже существующими препроцессорами такими как Sass и Less. О которых уже писалось на хабре: Sass, Less. Но та информация немного устарела: в частности изменился синтаксис Sass.

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

Краткий обзор отличий LESS от SASS

Reading time2 min
Views66K
Вчера пол дня потратил на подробное изучение LESS и его отличие от используемых нами SASS/SCSS.

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

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

Прощай, Zen Coding. Привет, Emmet!

Reading time5 min
Views251K

Еще в 2009 году, image Сергей Чикуёнок опубликовал статью, в которой представил новый способ написания HTML и CSS кода. Этот революционный плагин, назывался Zen Coding, он помогал многим разработчикам на протяжении многих лет и в настоящее время вышлел на новый уровень.

Emmet, ранее известный как Zen Coding, является самым производительным и экономным во времени плагином для текстового редактора. Простые сокращения мгновенно расширяются в сложные фрагменты кода, Emmet превратит вас в более продуктивного разработчика.

Для тех, кто предпочитает смотреть, а не читать, вот видео любимых трюков автора.

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

Домашний сервер/NAS на платформе Mini-ITX

Reading time10 min
Views280K
UPD3: наткнулся на статью, написанную на схожую тематику. И хотя появление двух таких статей с разницей в сутки — не более чем случайность, но моя вышла позже, а посему я чувствую необходимость это как-то прокомментировать. Во-первых, мне стали более понятны слова AbnormalHead. Если бы я прочитал ту статью раньше, моя не увидела бы свет в том виде, в котором она появилась. Во-вторых, я хотел бы более явно сформулировать цель моей статьи. Когда я собирал свою машину, я столкнулся с тем, что найти материнскую плату с двумя встроенными сетевыми адаптерами под Mini-ITX — это достаточно большая проблема в принципе (с тех пор ситуация в этом направлении улучшилась). Найти то же, но с более чем четырьмя портами SATA — проблема и сейчас, лично я другой кроме описанной в моей статье не знаю. Да, можно поставить дополнительный контроллер, но тогда придется отказаться от чего-то другого. То же и с mini-ITX корпусами: обычных полно, но они не подходят для NAS. Есть корпуса под NAS, но нестандартный блок питания с мелким и высокооборотным вентилятором будет раздражать если не вас, то ваших близких. Найти максимально гибкое решение, которое позволит не идти на компромиссы и собрать хоть NAS, хоть сервер виртуализации, хоть роутер — не так просто. В какой-то момент я уже думал, что невозможно. Однако же оно нашлось и именно им я хочу поделиться в этой статье. Да, она не про умный дом, но имея COM-порты, GPIO и Watchdog на плате его можно построить, а через LVDS можно прикрутить ЖК-экран от старого ноутбука, или вовсе управлять машиной удаленно через vPro/iAMT. Да, она не про NAS, потому что в ней нет ни слова о производительности и софте для этих целей, но из этой машины получится прекрасный NAS (и если взять соответствующий задаче процессор и объем памяти, то цена будет сильно ниже той, что вышла у меня). Да, она и не про домашнюю виртуализацию, потому что здесь не описан мой опыт установки SCVMM (тем более что он еще не закончен). Статья про платформу, на которой все вышеперечисленное можно без особых проблем организовать хоть вместе, хоть поотдельности. И при этом у вас будет не монстр, ревущий на всю квартиру и занимающий полкомнаты, а маленький, тихий, холодный корпус, который можно подключить к любому находящемуся поблизости монитору/телевизору, или не подключать вовсе. Надеюсь, этот опыт будет кому-то полезен.

Свой первый домашний сервер я собрал в 2008 году: Celeron E1400 на mATX платформе ASUS и всё это в прекрасном корпусе Antec NSK 1380. Корпус действительно хорош за исключением двух моментов: 1. Нестандартный формат блока питания (и как следствие возможность поставить только низкопрофильное охлаждение на процессор) 2. Малое число посадочных мест под накопители и плохое их охлаждение (поэтому я никогда не ставил туда больше одного диска — и так было тесно и жарко).

С ролью маршрутизатора эта машина справлялась прекрасно. Но организация на ней файлопомойки уже создавала неудобства: место вечно кончается -> приходится менять диск на новый большего размера (ну не чистить же его в самом деле!) -> для этого надо перенести на новый диск систему -> уж если переносишь, то не обновить ли ее заодно, а то пакеты с новыми часовыми поясами под текущую приходится искать чуть ли не собаками (пламенный привет Федоре) -> … И так каждый раз.

Захотелось собрать новый сервер, который позволил бы организовать RAID или хотя бы просто установить несколько дисков, чтобы решить проблему с местом радикально и надолго. А еще поднять несколько виртуальных машин для производственных нужд. А еще…

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

Требования:
  • бесшумность
  • компактность
  • возможность удобной установки/замены дисков и достаточное количество посадочных мест (от 4)
  • универсальность (больше разъемов/интерфейсов, всяких и разных, мало ли что захочется прикрутить)


Форм-фактор Mini-ITX не был обязательным критерием, но логично вытекал из второго пункта. Поэтому я решил для себя, что попытаюсь выжать из него максимум и только в крайнем случае начну смотреть в сторону mATX.

Disclaimer
Знакомство автора с фотографией на момент описанных в статье событий ограничивалось несколькими снимками с камеры жены. Поэтому прежде чем читатель со словами “ну кто же так снимает!” потянется к оружию кнопке “-”, спешу сообщить — я встал на путь исправления! Также, пользуясь случаем, выражаю огромную благодарность моей жене за обработку фотографий. Да-да, это они еще обработаны!

Вот что получилось в итоге

WD MyBook Live — расширение стандартной функциональности

Reading time3 min
Views43K
Не секрет, что в данное время наличие дома нескольких компьютеров и прочих устройств, работающих с сетью в той или иной мере (телефоны, телевизоры, iptv-приставки, медиаплееры, etc) стало для многих нормой вещей. Обычно, в таком случае всё подобное железо соединено в сеть с общим выходом в интернет. Возникает вопрос о каком-то общем хранилище информации, в роли которого обычно выступает постоянно включенный компьютер, роутер с внешним диском или специализированное устройство. В общем, каким-либо образом организуется NAS, на котором уже «проживают» семейные и личные фото, любимая музыка, фильмы, и много чего другого. Каким именно образом организуется NAS — дело личного выбора каждого. Я, например, приобрёл WD My Book Live на 2ТБ, о котором и поведу дальнейший рассказ.
Читать дальше →

Дайджест интересных новостей и материалов из мира айти за последнюю неделю №51 (30 марта — 5 апреля 2013)

Reading time8 min
Views33K
Предлагаем вашему вниманию очередную подборку с ссылками на новости, интересные материалы и полезные ресурсы.


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

Прекратите проверять Email с помощью регулярных выражений!

Reading time4 min
Views318K
Серьезно, прекратите. Это пустая трата времени и сил. Поищите регулярку для проверки Email в Google, взгляните на нее — и захочется отойти подышать свежим воздухом. Вспоминается одна очень известная цитата:

Некоторые люди, сталкиваясь с проблемой, думают: «О, я воспользуюсь регулярными выражениями».
Теперь у них две проблемы.

Джэйми Завински, regex.info
Читать дальше →

Time Machine: бекапим OS X Lion на Ubuntu 12.04 LTS сервер

Reading time4 min
Views29K



Если кто не знает, Time Machine — это такой замечательный бэкап-сервис из коробки для Apple OS X, тут и тут можно почитать поподробнее. Если у вас есть мак, и вы не пользуетесь «машиной времени», то это совершенно напрасно. Time Machine делает постоянные дифференциальные бэкапы, поэтому она удобна даже в случае прекрасной жизни ваших HDD / SSD. Можно в любой момент открутить назад историю и восстановить случайно удаленный файл, или, что еще важнее, предыдущую версию измененного файла.

Предполагается, что пользователи будут использовать либо обычный жесткий диск, либо специальный сетевой девайс Time Capsule. Традиционный внешний жесткий диск — решение для очень организованных людей, которые регулярно (хотя бы ежедневно) будут его подключать для автоматического бэкапа, иначе польза от тайм машины будет весьма ограничена (хотя прошлогодний бэкап все же лучше, чем совсем ничего). С тайм-капсулой будет гораздо удобнее и надежнее. Кроме функции бэкапа, она может выполнять еще и функцию сетевой шары, раздачи Wi-Fi (фактически Time Capsule — это Wi-Fi роутер с HDD). Но устройство стоит денег, и оно не такое универсальное. Мне захотелось прикрутить на свой сервер работающий на Ubuntu возможность делать бэкапы тайм-машиной. И это не так сложно, о чем и будет эта заметка.

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

Information

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