Страницы: | 1 | 2 | 3 | 4 | 5 |

Ещё о преемственности: бурная история кнопки «Вверх»

2 января 2011 // Хельги

Ещё о хорошо забытом старом. В Windows 7 практически воскресили докоподобную область внизу экрана из Windows 1, а в «Висте», оказывается, вернулась ещё одна загадочная штука из «единички»:

Во времена Windows 1.0 путь к отображаему каталогу выводился в MS-DOS Executive в виде статического текста. Но был один секрет: если пользователь щёлкал по этому тексту, то появлялось окошко «Сменить каталог», где ему предлагалось вписать путь к новому каталогу.

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


Рэймонд Чэнь. Бурная история кнопки «Вверх». TechNet Magazine.

Тэги: software, vista, ссылки
Написать комментарий

Материя для духа

9 декабря 2010 // Хельги

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

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

Но это медицинская аппаратура, вертикальный рынок и всё такое. Лаборант в ренгтенкабинете будет злиться, но от своей рабочей станции никуда не денется.

Странно другое. Если зайти в салон, где гаджеты, возникает ощущение, что в компаниях-производителях всякой электроники тоже заправляют инженеры. У нас блютус! у нас вай-фай! у нас камера 8 мегапикселей!

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

И ведь люди покупаются (и покупают). И даже, наверное, пользуются — с великим гневом.

А потом все удивляются армиям поклонников «айфонов» и «андроидов». Нет в этом никакой магии, просто кое-кто догадался сделать хотя бы типичные задачи по настоящему удобными, вот и всё.

В конце концов, без софта «айфон» — это просто коробка с мёртвым экраном.

Тэги: software, лучшее, работа
Написать комментарий

Darcs и серверные репозитории

14 ноября 2010 // Хельги

Ну, допустим, как настроить Bazaar на сервере так, чтобы к каждому репозиторию давать доступ отдельно, я вроде понял.

Но есть ли способ сделать такое же для даркса без очень большого количества телодвижений? Уже видел darcs-server и некий скрипт для доступа по SSH. В первом не нравятся keyring’и, во втором — невозможность разграничить доступ для разных пользователей к разным репозиториям.

Создавать по шелл-пользователю для каждого тоже не хочется.

Тэги: darcs, красные глазки
Написать комментарий

Команда hg summary

11 ноября 2010 // Хельги

Из сегодняшней меркуриальской рассылки узнал о команде hg summary, которая выводит сводку о состоянии репозитория, а с опцией --remote ещё и наличие входящих изменений.

[D|]$ hg summary --remote
parent: 5265:6119c843617f
 К тикету 1544: изменен формат имени папки
branch: main
commit: 3 modified, 2 added, 14 unknown
update: (current)
remote: 1 or more incoming

Тэги: hg, советы
Написать комментарий

Область системных уведомлений в Windows 7

25 октября 2010 // Хельги

Область системных уведомлений (system notification area), которую часть ошибочно называют системным лотком (system tray), появилась в Windows 95. Откуда взялась эта путаница и почему термин «трей» неверен, хорошо написано у Рэймонда Чэня в заметке «Why do some people call the taskbar the „tray“?».

С самого начала со значками уведомлений была определённая путаница: хотя они выглядели именно как значки, то есть не имели никакого «нажимаемого» вида, да еще и жили во вдавленной области, в точности как значки в проводнике — щёлкать по ним нужно было один раз, а не два.

Точнее, так вели себя стандартные значки, например, громкость и сеть. Многие разработчики считали, что значки их приложений должны вести себя именно как значки: открывать окно по двойному щелчку и меню по щелчку правой кнопкой. А официальная позиция «Майкрософта» была немножко странной: панель или меню с основными операциями по щелчку левой, меню с дополнительными — по правой.

Короче, был разброд, шатание, и сами пользователи не понимали, сколько раз им куда щёлкать.

Так вот, в Windows 7 не только вернули хорошо забытый старый док, но и починили область уведомлений. Если навести мышку на значок, он подсвечивается, а при нажатии немного утапливается — почти как кнопка.

/users/helgi/win7-notify.png

Тут уже всё хорошо: надо быть очень дёрганым человеком, чтобы захотеть щёлкнуть по такому значку два раза.

Тэги: screenshots, software, windows 7
Комментарии (2)

Про мерж в меркуриале

21 октября 2010 // Хельги

Мержили на работе две ветки, которые разошлись больше полугода назад. Не без страха, конечно. Это был первый «серьёзный» мерж на меркуриале, а все предыдущие случались ещё под TFS.

Так вот, после ужасного hopebaseless-мержа тоже примерно на полгода разошедшихся веток в TFS я стал слегка нервным. Тогда мы убили уйму времени, а я заимел на TFS зуб.

Меркуриал всё-таки кардинально лучше. Без конфликтов и ошибок, конечно, не обошлось, но давящее ощущение отчаяния к нам больше не придёт.

(Пользуясь случаем, хочу напомнить поклонникам гита: меркуриал и гит — не враги, их общий враг — svn.)

Тэги: hg, tfs, работа
Написать комментарий

Gmail chat

4 сентября 2010 // Хельги

В мае мы на работе переходили на Windows 7. Я решил провести эксперимент и не ставить Google Talk.

Причина в том, что он не обновляется уже три года. Единственная полезная в нём фича — передача файлов, но работает она нестабильно.

Вместо нативного клиента я стал пользоваться чатом в Gmail. Эксперимент оказался успешным, но главная проблема — отсутствие уведомлений при приходе сообщения, кроме звукового.

Мне помог юзерскрипт Gmail Favicon Alerts, который мигает значком на вкладке, меняя его с конверта на «облачко» чата и обратно.

Тэги: google, software
Написать комментарий

HTC Hero: месяц эксплуатации

2 августа 2010 // Хельги

Оказывается, можно долго сидеть в болоте и радоваться, какое оно восхитительно зелёное и даже почти не воняет. Пока не вылезешь, кажется, что всё как надо и даже круто. Я два года восхищался Windows Mobile для смартфонов и только сейчас понял, как всё было ужасно. Нет, конечно: кое-что там было сделано хорошо, например, T9-поиск по двум языкам сразу. А вот, например, навигация и прокрутка везде, где не поиск, ужасны и бесконечны, и тем не менее я сидел и не жужжал.

Или другой пример: на прошлой неделе я по инерции добавил старый добрый comm web start в закладки, обнаружил, что он слишком плотный, чтобы было удобно пользоваться им с «андроида», и сделал себе пометку: переверстать. Перевёрстывать я собирался в стиле «ридера» для сенсорных телефонов (ссылка имеет смысл, если вы пользуетесь «ридером»).

Так вот, оказалось, что веб-старт мне больше не нужен. Поиск в «андроиде» есть с начального экрана, адаптация страниц не нужна с нормальным браузером. Ярлыки на Gmail, Tasks и Reader у меня есть на том же начальном экране. Погодный виджет — тоже там. Ну а на «Википедию» и «Тёплый край» можно и закладки поставить.

* * *

Аппаратная часть мне пока очень нравится. Экран, например, совсем не царапается от ношения в кармане джинсов (в отличие от HTC S710, у которого экран просто-таки убился). Но не хватает кнопок камеры и диктофона (и самого диктофона, кстати, тоже). Помимо этого, главная претензия к «железу» — прошивку 2.1 оно всё-таки слабо тянет. Подтормаживания есть, особенно при переключении задач: не такие, как привычны по Windows Mobile, но особенно грустные после летавшей прошивки первой серии.

* * *

К прославленному HTC Sence есть одна большая претензия: в контактах хоть и показывается статус человека в джаббере, но начать разговор оттуда нельзя, нужно открывать Talk. Можно только отправить SMS, письмо или позвонить. Куда уж до Palm Pre!

Но, конечно, лок-скрин и домашние экраны в «сенсе» удобные.

Кстати, чего я до сих пор не настроил — так это словарь. Хочется аналог Dict для Windows Mobile, чтобы было много энциклопедий, ну и англо-русско-английский в довесок. Пока что-то не натыкался на сообщество, столь сплочённое, как пользователи «дикта».

* * *

Так совпало, что сегодня я взял в руки свой старый КПК — Pocket Loox 720. С одной стороны, забавно, и ностальгия проснулась: вот что раньше делали! С другой стороны, всё-таки сильно человеко-машинные интерфейсы изменились. В плане взаимодействия с пользователем это тот ещё кирпич. Всё, чего в нём есть хорошего — это VGA-экран, но и от него первым делом замечаешь тормоза. А вот софтовая часть вкупе с дубовым резистивным тачскрином — смерть. К примеру, выбрать приложение из меню «Пуск» можно только пером, потому что прокрутка только полосой (пальцем не попадёшь), а стрелочки только влево-вправо. Одной рукой тоже не возьмёшься, корпус широкий. Короче, я иногда злюсь на отсутствие в «андроиде» пера, но получить его такой ценой не хочу.

Я уж не говорю, например, об осмысленно применяющейся в «андроиде» вибрации, которая позволяет получить обратную связь от экранных кнопок (пусть это и не настоящая гаптика). Ведь был в HTC P4350 вибровызов, что мешало его применять? Или вот: почему-то в Windows Mobile считалось, что часы и будильник — это всё, что положено иметь «из коробки». Это же, блин, коммуникатор! Пользователь сам поставит, что надо. Особенно глупо это выглядит на фоне обычных телефонов, в прошивки которых не стесняются включать и секундомер, и таймер. Хорошо, что в «андроиде» это тоже есть.

Тэги: android
Написать комментарий

Прогулка по Измайловскому парку

13 июля 2010 // Хельги

[Пруд]

Во время воскресной прогулки решил потестировать GPS-модуль и программу My Tracks. В «чащобе» джипиэску начало колбасить, и трек порвался. Кстати, помимо этого My Tracks ещё и падает при попытке отправить трек на Google Maps, так что эксперимент с выкладыванием пришлось проводить вручную, с экспортом-импортом KML.


Открыть в Google Maps

Тэги: android, жизнь, фото
Написать комментарий

Впечатления от перехода с Windows Mobile на Android

5 июля 2010 // Хельги

/users/helgi/htc-hero.png

Двух дней использования HTC Hero мне хватило, чтобы понять: стагнация Windows Mobile оставила эту некогда передовую платформу где-то в начале двухтысячных, вместе с классическими перьевыми КПК и такими же классическими мобильными телефонами.

Лет пять назад сложно было придумать себе что-то более классное, чем комм или смарт на базе WM. Наличие браузера, способного (полу)переваривать средней сложности HTML воспринималось как чудо. И никого не волновало то, что коммом можно было полноценно управлять только двумя руками, а смарты, наоборот, были лишены сенсорного экрана.

После того как айфоны перевернули привычные концепции управления мобильниками, обе ветви Windows Mobile внезапно превратились в динозавров, эволюционирующих слишком медленно, чтобы выжить. Никакая оболочка, натянутая на Windows CE, не смогла помочь HTC сделать из череды «тачей» хоть какого-то конкурента айфону.

К моему сожалению, айфоны представляют собой противоложный по отношению к WM лагерь ещё и в другом аспекте. Закрытость платформы, фактическое отсутствие бесплатного софта, привязка к iTunes и другие приятные особенности превращают пользователя iPhone в фанатичного зомби.

А вот «Андроид» — приятный компромисс, хотя и тоже не без изъянов.

* * *

Первое (и остающееся) впечатление от «Андроида» — в нём всё просто и, не побоюсь этого слова, интуитивно. Касание, взмах и удержание — эти три жеста всюду имеют примерно один и тот же смысл, так что хотя переучиваться и приходится, учиться легко. И вообще в том, что касается базового взаимодействия с пользователем, «Андроид» кажется продуманней WM. Например, в погоне за унификацией коммов и смартов «Майкрософт» придумала меню из двух пунктов, по числу софт-клавиш, но на коммах в это меню всё равно приходится тыкать на экране. В «Андроиде» же типичное приложение содержит меню из шести пунктов (если этого мало, то из пяти плюс вызов остального), что гораздо более реалистично. При этом есть аппаратная кнопка вызова такого меню, а выбор можно сделать, либо ткнув в экран (меню внизу экрана), или выбрав нужный пункт трекболом.

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

Вот пример того, как проста работа с «Андроидом». Подключение к вай-фаю сводится к выбору пункта в меню и вводу пароля. В Windows Mobile вместо этого приходится заполнить анкету с вопросами вида «Кто был Ваш дед и почему?» относительно деталей используемого способа шифрования.

Второй пример. Чтобы скинуть файл на телефон, не нужна ересь по имени ActiveSync или iTunes: телефон просто монтируется как флэшка.

Третий пример. Сразу после покупки телефона я захотел поставить читалку. На первой же странице результатов поиска в маркете по запросу «fb2 reader» был — удивительно! — FBReader, та же самая читалка, что используется в OpenInkpot. Конечно, AlReader для WM как минимум не хуже, но вот скачать его, используя только комм/смарт и вай-фай, несколько более трудно.

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

* * *

Полноценный браузер для меня оказался глотком свежего воздуха. Конечно же, он не так быстр и удобен, как десктопный браузер, но он нормально рендерит странички, и в нём работает джава-скрипт. Соответственно, мобильные версии сайтов под «Андроид» скорее перевёрстаны, чем безбожно обрезаны, и это приятно. Неудивительно, что самые классные мобильные версии именно у сервисов Google. С ними же синхронизируются локальные приложения (контакты, почта, календарь), что для меня плюс, а для кого-то жирный минус.

Кстати о контактах: здесь оказалась ложка дёгтя. У меня всегда почтовые контакты (в Gmail) были записаны латиницей, а контакты в телефоне — кириллицей. Теперь они у меня слиплись окончательно, и пришлось принять нелёгкое решение использовать латиницу. Красота красотой, а всё-таки я нередко вижу вопросики вместо имени отправителя.

Сюда же наложилась ещё одна проблема, где «Андроид» по сравнению с моим старым смартом сплоховал. Быстрый поиск из звонилки ищет только по цифрам и латинице, но не по кириллице. Это грустно. Впрочем, пока большого дискомфорта от контактов на латинице я не ощутил.

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

* * *

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

Для переноса SMS (1300 штук) я воспользовался эти рецептом. На старом смарте надо запустить SMS Exporter, а на «Андроиде» — SMS Backup & Restore (есть на маркете).

С контактами пришлось повозиться больше. В итоге я пошёл путём, проторенным Болком: NS Contacts Backup на смарте, скрипт на питоне для конвертации в CSV (он заодно ещё и транслитерирует имена; могу выложить, если кому-нибудь понадобится) и импорт в Gmail.

Осталось импортировать ещё записные книжки.

Тэги: android, смартфон
Комментарии (5)

Немножко оффлайна

30 июня 2010 // Хельги

Благодаря внеплановому переезду, оставившему меня на неделю без интернета, я настроил оффлайновый Gmail и скачал себе на ноутбук документацию для веб-разработки (оказывается, больше года я умудрялся ничего серьёзного не делать без интернета). Нужно мне не так уж и много: я скачал стандарты HTML 4 и CSS 2, удобную доку по jQuery, ну и заодно прикольно свёрстанный, тоже на джава-скрипте, RFC 2616. Не хватает только справочника по web.py, но его как-то вообще слегка нет.

* * *

Кстати, Google Reader больше не поддерживает оффлайновый режим. Отключили его всего месяц назад — то-то я не смог найти заветной кнопочки, когда захотел настроить оффлайн в «ридере» вместе с почтой.

* * *

Про переезд: на этот раз я забрался аж в Новогиреево. В некотором смысле — следом за переехавшей работой.

Тэги: google, software, webdev, всё равно что пожар, жизнь
Написать комментарий

vspisok.org — список покупок

21 июня 2010 // Хельги

Денис сначала спросил, обеспечивает ли Google Tasks совместный доступ к задачам, а когда получил отрицательный ответ, написал собственный аналог — сайт vspisok.org.

Регистрация не требуется, порог вхождения максимально низкий. Вам предлагается набить задачи (или, например, покупки) и указать почтовые адреса, на которые нужно разослать адрес списка. Можно также защитить список паролем (он тоже будет выслан всем адресатам).

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

Минималистичный интерфейс вполне позволяет пользоваться сайтом с мобильника.

Есть один недостаток: после формирования списка пополнить его уже нельзя, а может захотеться. Кроме того, помечать задачи как выполненные можно только по одной, а иногда удобнее как в Google Tasks, поставить три-четыре галочки и нажать «Сохранить». (Уже можно, см. второй комментарий.)

Конечно, Remember the Milk намного мощнее самописанного сайта, но и порог вхождения у него гораздо выше: им нужно учиться пользоваться. Кроме того, RTM просит деньги за мобильную версию своего приложения.

28.06.2010: Появилось добавление/удаление пунктов и массовые операции.

30.06.2010: Обновлена вёрстка.

1.07.2010: Описание в журнале автора.

Редакция от 1 июля 2010
Тэги: software, ссылки
Комментарии (5)

Глючит буфер обмена в Visual Studio 2010

28 мая 2010 // Хельги

Симптомы такие: в «студии» при нажатии Ctrl+C в буфер ничего не копируется, так что нажатие Ctrl+V ничего не вставляет. То же самое и Ctrl+X: текст из редактора исчезает, но в буфере ничего нет, приходится отменять.

Microsoft Connect предлагает выключить расшаривание буфера обмена в RDC, во всех видах. Я закрыл два подключённых RDC, и мне действительно помогло.

Тэги: visual studio, работа, советы
Написать комментарий

Google Tasks для списка покупок

18 мая 2010 // Хельги

Как не забыть купить зубную пасту, когда идёшь в магазин? — поколения сменяются, а этот вопрос остаётся актуальным. :) Можно записать на бумажку, но такой способ истощает запасы древесины, да и делать отметки на этой бумажке в магазине, когда одна рука занята корзинкой, а другая списком, неудобно.

Когда у меня был КПК на базе Windows Mobile, я пользовался невероятно навороченной программой под названием HandyShopper. Она развивается и поныне, так что владельцы соответствующих машинок вполне могут ей воспользоваться. У меня же сейчас есть только смартфон, так что я какое-то время не очень успешно пытался приспособить к делу «эксель», а потом вспомнил про Google Tasks.

Что потребуется:

  • учётная запись в «гугле»;
  • мобильный телефон с браузером.

Чего удастся добиться:

  • набить список покупок дома, в удобной обстановке, с настольного компьютера;
  • отмечать (а при необходимости и добавлять) пункты списка в магазинах с телефона.

Наполняем список

В интерфейсе Gmail, в левой навигационной панели, в самом низу, есть пункт Tasks, который открывает окошечко с задачами. По умолчанию там уже создан один список задач. Для покупок лучше использовать отдельный список. Создать его можно, нажав кнопку в правом нижнем углу и выбрав в меню New list.

После этого можно просто набить столько пунктов, сколько требуется.

/users/helgi/gtasks1.png

Идём в магазин

По дороге в магазин открываем в браузере на телефоне адрес gmail.com/tasks1 (скорее всего, придётся ввести логин и пароль). На открывшейся страничке после выбора нужного списка откроются набитые покупки.

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

Наконец, собрав корзинку продуктов и отметив соответствующие пункты в списке, нажимаем кнопку Save changes. По возвращении домой мы увидим, что в Gmail купленные продукты тоже уже зачёркнуты.

/users/helgi/gtasks2.png

Специализированные программы вроде упомянутого выше «хэнди-шоппера» гораздо гибче и позволяют, к примеру, создавать некий «генеральный список», из которого можно натыкать часть пунктов, которые нужно купить. С другой стороны, простота, свойственная Google Tasks, тоже хороша: набить в Gmail десяток пунктов не сложнее, чем написать их на бумажке.

23.11.2010

В статье «Как организовать работу с помощью простого менеджера задач» описываются более тонкие (чем колбаса) материи: автор делится опытом применения Google Tasks в качесте органайзера общего назначения.

1.02.2013

Исправил адрес. Сейчас, конечно, для «андроида» есть специализированные приложения, а пользователи iOS имеют в своем распоряжении Reminders. Но в моменте — я сейчас мало пользуюсь Google Tasks, однако составить список покупок понадобилось — оказалось удобным просто зайти на сайт с телефона.


Адрес исправлен 1.02.2013, прежний адрес google.com/tasks не работал.

Редакция от 1 февраля 2013
Тэги: google, software, жизнь
Комментарии (2)

Починил закоррапченный репозиторий «Индианы»

26 апреля 2010 // Хельги

Починил закоррапченный репозиторий «Индианы». Даркс, конечно, хорошая штука, но у формата репозитория darcs-1.0 есть досадная проблема: эталонное дерево (pristine tree) лежит просто в виде таких же файлов, как и рабочая копия. Итог:

  • один коррапт у меня случился, когда я случайно обработал скриптом две копии файла: в рабочей копии и в эталонном дереве — и даркс решил, что файл не изменился вообще;
  • второй коррапт произошёл, когда что-то системное нагадило мне в pristine файлами desktop.ini, и опять-таки даркс решил, что они там были всегда.

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

Хорошо, что у меня репозитории приватные (правда, зараза, их немало) — я смогу спокойно заменить коррапченные репозитории чистыми.

Дальше надо переходить на даркс версии 2.3, а потом на формат darcs-2.0.

Тэги: darcs, indiana
Написать комментарий

Если бы системы контроля версий были транспортными средствами

26 марта 2010 // Хельги

Мы тут на работе обсуждали разные системы контроля версий, и в итоге пришли к вот такому сравнению:

  • cvs — ржавый гусеничный трактор «Джон Дир», 1920 года выпуска. Ездит.
  • hg — современный седан с автоматической коробкой передач. Удобен, современен, прост в управлении.
  • svn — современный седан с климат-контролем, электропакетом, но на ржавых гусеницах. Пока сидишь внутри, не пытаясь ехать, кажется, что всё нормально.
  • git — спорткупе с салоном от самолёта, полным ручек, кнопочек и дисплеев. Ездит ненамного быстрее обычного седана, но освоить управление гораздно труднее.
  • darcs — экспериментальный автомобиль с роботом-водителем. Едет сам, но если вдруг повернет в стенку, вмешаться будет невозможно.

Тэги: darcs, hg, svn, работа
Написать комментарий

TFS ⇒ HG: Подготовка Subversion-сервера

10 марта 2010 // Хельги

Первый шаг нашей комбинации для перехода с TFS на меркуриал — конвертация из TFS в SVN. Если SVN-сервер под рукой есть, то всё отлично; если же его нет (как его не было у меня), то волей-неволей придётся приобретать навык его настройки.

Я описываю путь, которым шёл сам; скорее всего, многие вещи можно было бы сделать и по-другому.

* * *

Я использовал SVN версии 1.6.6, собранный для Windows; брал я его с tigris.org.

Сервер можно настроить для работы в качестве Windows-сервиса или запустить только на время конвертации (если больше он не будет нужен).

В любом случае, на машине, где будет запущен сервер, нужно создать каталог для репозиториев, например D:\env\svn.

(tfs2svn можно запустить и без SVN-сервера, если репозиторий расположен на той же машине, на которой запускается конвертер. Однако этим вариантом я не пользовался.)

Чтобы запустить SVN как сервис, выполните команды:

sc create svn binpath= "c:\Progra~1\Subversion\bin\svnserve.exe --service -r d:\env\svn" displayname= "Subversion Server" depend= Tcpip start= auto
sc start svn

Будьте внимательны с пробелами. После создания сервиса можно настроить режим его запуска при помощи аплета Services в панели управления.

Однократный запуск выполняется так:

svnserve -d -r d:\env\svn

Дальше необходимо создать репозиторий:

svnadmin create d:\env\svn\myapp

tfs2svn меняет при конвертации свойства коммитов задним числом: в частности, чтобы коммиты в сконвертированном репозитории были правильно датированы. Для того чтобы это работало, надо создать в каталоге репозитория (d:\env\svn\myapp) файл hooks\pre-revprop-change.bat с таким содержанием:

echo ok

Чтобы настроить аутентификацию, нужно раскомментировать в файле conf\svnserve.conf в каталоге репозитория строчку password-db = passwd в секции general, после чего указать логин и пароль (открытым текстом) в файле conf\passwd, например:

[users]
helgi = BoZo

* * *

Следующим шагом будет патченье tfs2svn и его запуск.

Тэги: svn, работа
Написать комментарий

TFS ⇒ HG: Причины перехода

7 марта 2010 // Хельги

Для своих проектов я с 2005 года использовал darcs. Эта система контроля версий одновременно гениальна и ужасна. С одной стороны, за четыре года использования даркса для контроля исходников «Индианы» мерж-конфликты у меня были два или три раза. С другой стороны, даркс совсем не подходит для продакшена: нет ни графических обёрток, ни нормальной интеграции в «студию». Даже графической мержилки нет «из коробки»! Теория патчей математически обоснована, а вот про удобство работы для самых разных категорий пользователей никто не подумал. Хотя для маленького самописанного проекта — отлично.

На работе мы сейчас пользуемся TFS, который работает ровно наоборот. Консольный клиент и графический клиент — равные по мощности. Графическая мержилка и возможность подключить любую другую, по выбору. Полная интеграция в «студию».

Но пользоваться этим тяжело. Централизованная система контроля версий — это фэйл. Нет офлайновых коммитов (и вообще работа без сервера затруднена). Все ветки на сервере. При мерже из ветки в транк теряется вся история. Короче, сделать CVS по уму невозможно, Линус был прав.

При этом TFS мне приходилось использовать не только на работе: дома тоже была парочка проектов, где работа шла на TFS-сервере.

* * *

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

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

Трак поддерживает интеграцию с несколькими системами контроля версий, но лучше всего реализована поддержка Subversion и Mercurial. SVN, разумеется, я даже и не рассматривал (он централизованный), а вот меркуриал для моих нужд вполне подошёл.

* * *

У меркуриала присутствуют все основные качества распределённой системы версий. Каждая рабочая копия содержит свой репозиторий, система отслеживает патчи, а не версии, мерж веток делается через синхронизацию, история обоих веток сохраняется после мержа.

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

Меркуриал лучше даркса подходит для продакшена. Есть несколько способов сделать центральный репозиторий, куда все коммитят: помимо доступа по SSH, можно прикрутить к веб-серверу hgwebdir или просто пустить крутиться hg serve за nginx с аутентификацией.

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

* * *

Единственной проблемой после выбора хорошей во всех отношениях системы контроля версий было перевести проект, лежащий в TFS, на меркуриал. Для этого я воспользовался двухходовкой: tfs2svn помог мне перегнать проект в SVN, а из SVN в меркуриаловский формат конвертирует команда hg import. И если со второй всё было просто, то конвертация из TFS в SVN попортила мне немало крови.

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

Тэги: darcs, hg, svn, tfs, trac, работа
Написать комментарий

JIRA — русская транскрипция

21 февраля 2010 // Хельги

Как это всегда бывает с известными именами в софтверной индустрии, всё начиналось с условного имени «для своих».

Сначала мы использовали для багтрекинга «багзиллу», и программисты стали называть её годзира (Gojira) — так Годзилла называется по-японски (старые чёрно-белые японские фильмы про Годзиллу были среди сотрудников в числе самых любимых). Когда мы написали собственный багтрекер, который вскоре стал универсальным, название пристало, но первый слог выпал — получилась дзира (JIRA).

Как мы потом выяснили, горира по-японски значит «горилла», а кудзира — «кит». Так что годзира — это приблизительно «горилла размером с кита».

Что значит слово JIRA? (сайт компании Atlassian)

Можно продолжить извечный спор Поливанов—Хэпбёрн, но если придерживаться системы Поливанова и считать верным принцип восхождения к исходному произношению, то по-русски получается дзира, а не *джира.

Тэги: software, японский язык
Написать комментарий

Перемещение файлов, находящихся под контролем TFS, из консоли

15 февраля 2010 // Хельги

Перемещать несколько файлов, лежащих в TFS, при помощи окна Source Control Explorer мучительно. Файл нужно щёлкнуть правой кнопкой, выбрать в меню Move, указать каталог, куда нужно его переместить. И так для каждого файла по отдельности.

Но эта неприятная особенность присуща только графическому клиенту. В консоли, если вам нужно, скажем, переместить контрол вместе с .Designer.cs и .resx, можно написать так:

D:\Projects\Client\Controls>tf move AreaControl.* d:\Projects\Common\UI\Controls\
AreaControl.cs
AreaControl.Designer.cs
AreaControl.resx

Редакция от 7 марта 2010
Тэги: tfs, работа, советы
Написать комментарий

Замена тернарной операции для python 2.4

2 февраля 2010 // Хельги

В питоне начиная с версии 2.5 появилась тернарная операция с синтаксисом true_value if condition else false_value. Синтаксис немного непривычный, да и по разным причинам иногда приходится писать так, чтобы работало и на версии 2.4.

А вот сейчас, читая исходники плагина MasterTickets к траку, я увидел отличную замену тернарной операции: condition and true_value or false_value. Как я сам не додумался до такой простой вещи?

Порядок операндов ?: сохранён, да и логика вполне прозрачна.

Замечание

eSyr обратил моё внимание вот на что: если true_value вычислится в ложное значение (0, пустая строка, пустой список), то в итоге выражение вычислится в false_value.

Так что это удобный хак, но не более.

Редакция от 12 февраля 2010
Тэги: python, trac
Написать комментарий

Доступ к диску на низком уровне fail

27 ноября 2009 // Хельги

/users/helgi/zapros-prav.png

По-моему, этот запрос неправ.

Тэги: screenshots, software, wtf
Написать комментарий

Второй подход к «чернильнице» (OpenInkpot 0.2~rc5)

25 ноября 2009 // Хельги

На этот раз я решил сразу перепрошиться (версия 0.2~rc5), а не ставить OI-on-CD. Разработчики, как и раньше, говорят, что «OpenInkpot достаточно часто зависает в режиме Live, чего не наблюдается в прошитом варианте». В общем, сжёг мосты (хотя закладки, созданные штатной прошивкой, всё-таки забэкапил).

(Жалко, кстати, что «чернильница» не подцепляет закладки штатной прошивки. Впрочем, это скорее свистелки.)

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

* * *

Файл «Таинственное пламя царицы Лоаны» в fb2.zip, весом в четыре с лишних мегабайта, открывался, по-моему, несколько минут. Попробовал полистать — и вынужден был перезагружаться. То ли просто очень долго листает, то ли повисла. Конечно, книга нетипичная, в ней прорва иллюстраций.

Большой RTF тоже как-то побился при открытии, но на маленьких файлах эффект не воспроизводится. Но зато fbreader нормально открывает HTML и поддерживает гиперссылки, а это то, чего не хватало в штатной прошивке.

* * *

Шрифты — классные. В штатную прошивку встроен такой убогий гротеск, что мне немедленно пришлось заливать «Джорджию». А тут — Droid Sans и Droid Serif, оба очень приятные для глаз.

Ещё очень важно то, что в парочке CHM-книжек по программированию в примерах кода сохраняются отступы. Но при этом есть баг #305 в трекере, так что физика эффекта непонятна — видимо, у меня в книгах не <pre>.

* * *

Никакие конфиги мне пока править не потребовалось, соответственно, ssh-соединение я не настраивал.

И, кстати, «сам» OpenInkpot у меня за неделю ещё ни разу не завис, в отличие от штатной прошивки. Так что, может, спичка и не пригодится.

Тэги: openinkpot
Написать комментарий

Exception imminent

25 ноября 2009 // Хельги

/users/helgi/exception-imminent.png

Я, конечно, опечатался: не ==, а !=.

Тэги: c#, en, visual studio, wtf, работа
Написать комментарий

Исчезновение системных значков громкости, сети и питания (Vista, Windows 7)

21 октября 2009 // Хельги

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

Симптомы

С панели задач пропали системные значки «Громкость», «Сеть» и «Питание», при этом в диалоге «Свойства панели задачи меню „Пуск“» соответствующие флажки на вкладке «Область уведомлений» недоступны.

Решение

Следует удалить в ветке реестра

HKEY_CURRENT_USER\Software\Classes\Local Settings\
    Software\Microsoft\Windows\CurrentVersion\TrayNotify

ключи IconStreams и PastIconsStream, после чего перезапустить процесс explorer.exe.

(По материалам сайта MyDigitalLife.info.)

2 января 2011

Как сообщает комментатор Иван, способ также работает и на Windows 7.

30 июня 2011

Первый раз за то время, что пользуюсь Windows 7, проблема воспроизвелась. Приведённое решение работает, но у меня после его применения скрылись все значки, кроме громкости, сети и питания, пришлось вытаскивать их обратно.

Редакция от 5 августа 2013
Тэги: vista, windows 7, советы
Комментарии (61)

Страницы: | 1 | 2 | 3 | 4 | 5 |