вторник, 23 апреля 2013 г.

GlobalSat GH-625M Sports Tracker, Endomondo and Linux

Pareto distribution says that probably only 20 % of variants for your choice can suit your needs up to 80 %, the rest 80% is only able do this for 20%. I investigated characteristics a number of sport tracking devices and found that only few models from Polar (triathlon series) and Garmin (910 XT) can track both your geo position while you are on working in addition to heart rate, and do some measurements underwater. But this devices are certainly from the top of pricing while I'm quite new to sport enabled lifestyle and not even sure that I nee all this and not ready to pay the highest price. In addition to my doubts there are Bluetooth Heart Rate Monitors that allows you do all things with your smartphone and Endomondo application that can be cheaper than top all-in-one device even if you buy swimming-only sport watch in addition. Then I went to DealExtreme to search for probable cheaper solutions but have found the same big number of useless HRM devices and only one that does GPS, HRM and allows to sync all this data with PC. This device is GH-625M.
It's quite cool and looks much better in real life that on marketing fotos.

The first issue was the driver on CD while my optical device is disabled for a long period as of unability to work with once changed SATA motherboard. I downloaded a number of software from websites lanched Windows XP in VirtualBox and started trying all this to be able to download data from device and convert it to .gpx format to load to endomondo that helps be motivated with sport activities for a number of monthes. Neither usage of desktop only software nor other services doesn't look competitive for me (again Pareto rule, uh ?)  due to different reasons. I tried Sport Tracks, Training Gym Pro and number of offline and online converters but nothing from them gave me the file I needed to import track properly. So I tried one unoffical script that according to description was able to load data from device in a number of formats, you can download it here:
Btw, it looks crossplatform, so you can try it even if you are not linux geek. This script also does not provide files that contain hrm data compatible to endo's import, but this software allows to define data export templates and I implemented tcx format data export template with hrm data provided.
If you new to this you should download the recent version, unpack and remove the following line from templates.py:
from compiler.consts import SC_LOCAL, SC_GLOBAL, SC_FREE, SC_CELL
as described here: 
http://lizziespants.blogspot.ru/2010/11/gh-625-gps-on-linux.html
if all ok after plugin device to usb and confirming "Conect to PC?" dialog you will be able to manipulate device data records with commands like this one:
gh600_console.py c -o ./export -f gpx
If you getting errors you probably have to set permissions on /dev/ttyUSB0 device file and uncomment sugnificant line in config.ini of script folder.
This will generate you gpx track xml files to export folder, but to do valid exports you should add the following lines to exportTemplates/formats.ini file:

  
  
  <% for track in tracks %>
    
      
       
       
       
      
     <% for trackpoint in track.trackpoints %>
        
   <% endfor %>
      
      
      <% if hasattr(track, 'laps') %>
      
      <% for lap in track.laps %>
      
       $lap.distance
       $lap.calories
      
      <% endfor %>
      
      <% endif %>
    
    
  <% endfor %>
  

we should also add the preparser that will calculate average heart beat value and define maxmimum put file named tcx.py in pre subfolder of exportTemplates with the followin code:
def pre(track):
 track.hrMax = 0
 track.hrSum = 0
 track.hrAvg = 0
 for trackpoint in track.trackpoints:
  track.hrSum += trackpoint.heartrate
  if (trackpoint.heartrate > track.hrMax):
   track.hrMax = trackpoint.heartrate
 if (len(track.trackpoints) > 0 and track.hrSum > 0):
  track.hrAvg = track.hrSum / len(track.trackpoints)

Pay attention to identation as this is python. After all you will be able use command with option -f tcx to generate files formatted as required. As we have *nix power we will add udev rule for device, create file /etc/udev/rules.d/99-gpsd.rules with the following lines:
# GH-625M
SYSFS{idVendor}=="067b", SYSFS{idProduct}=="2303", SYMLINK="ttyUSB%n", GROUP="users", MODE="0666" RUN+="gsimportdata"
This will set necessary permissions when device is just connected and run /usr/bin/gsimportdata script that is also must be created by you with the following lines:
#!/bin/bash
env > /tmp/env.out
DISPLAY=:0.0
/usr/bin/notify-send -t 1 "Tracking device found" "Downloading the data started"
python /media/STORE2/globalsat/gh600_console.py c -o /media/STORE2/globalsat/export -f tcx
/usr/bin/notify-send -t 1 "Tracking device found" "Downloading the data finished"
This will show you OSD notification and launch export process automagically and no noisy buttons and dialogs:)
Nice online converter: http://www.gpsies.com/convert.do

воскресенье, 13 января 2013 г.

Android voice reading books in Russian with TTS engine

The idea of computer that is reading books for me lived in my mind for a long time. There are many audio books read by famous actors or professionals, but it is always the book you want to read has no audio version and to listen available is just like watching TV.
That's why from time to time I was looking for tts text reading recipe. First tts I seen was working for DOS operating system and be able to read texts and pronounce numbers in english. The only problem was with accents, and it's still here. But nowdays it's quite ok.
Yesterday, I installed SVOX and bought Russian voice called Katja for my android phone and know can read books using CoolReader application that supports epub, fb2 and other ebook formats. And as you can see It's very close to comfortable level of playback.

воскресенье, 8 июля 2012 г.

CMake is awesome for building C++ projects and worth few hours to learn and start using it: http://www.techminded.net/blog/modular-c-projects-with-cmake.html

среда, 4 июля 2012 г.

IT as service

Many of software developers and people other IT-related specialists really like their jobs. Like not because of good salary or nice office, not only because of this. They primarily getting fun from software engineering process. Programming, analytic, graphic design all these thing give man ability to feel joy of creation, to take part in competition between just the same but not, of course, as good as You creators. So more creation tasks they have in project more joy they have. Almost nobody like monotonous, small and non-creative tasks like fixing defects (bugs), support and develop 3rd party software.
This situation counterparts for non-IT people. Let's imaging you bring your car to service to have regular examination or just to change oil in engine. But service man made serious face and said that they should reassemble engine entirely from scratch in order to make this car able to move again. Or may be reassemble and change everything under the hood. And sure he can not believe that this car was able to drive before. You're lucky that you brought this crap to him and engineers that assembled and served it before are unskilled morons and actually real idiots. And one more thing ... This will take 3 months and cost you several hundred thousands ...
If you drive(ed) a modern car you probably has no chance to check if all things that was proposed are really needed. And you probably will not agree as you were going to just replace the oil. And you will probably try to find another service that will propose you twice cheaper solution or maybe 10 times cheaper. IT industry is kind a magic allows to perform similar looking things for really different time and price. And you probably already had same situation a month ago or you will agree this time but no more further payments. Because you just want to drive your car and not really interested to understand and have under-the-hood problems.
 This situation often is not objectively visible and understandable by IT guys as they are getting fun from job. And IT-guy is in most cases honest with you when saying that "we should rewrite everything from scratch" even if he repeats this often. One more thing here is that IT is industry of youth people. Young specialists are cheaper, more motivated, they lobby new and beautiful technologies and patterns .. and they are getting skilled on tasks like "reassemble from scratch" or "invent new kind of wheel" but not with changing oil. Getting fun and skill with your investment;)
This entry is primarily for IT-people to see the other 'client' side of process.So if you are on the developer side:
Don't try to sell 'refactoring', 'bugfixing' tasks, especially when system is developed by you, nothing from requirements was changed and will not really changed after you get it finished. You can get approval but only with high risk to loose client and reputation damage.
If you are product/business owner:
Ask what real value you will gain for your investment if you offered to invest in 'refactoring' or 'modernization' of your project.

вторник, 8 мая 2012 г.

VmWare Player on Ubuntu 12.04 with 3.2 kernel



I really don't like software that once upon a time say something, does something and than cruses and probably delete all you work results. I and you probably too hate such kind of software especially at this moments. All I want from software is to "Just work". No cool new features, updaters, asking windows and freezing for unknown reason windows please. Software must me dump and dowhatimsaying. That's why I like *nix operating systems. They still have plain and simply working software.

But software developers and product managers are working hard to bring colorfull and dialogfull world from win/mac to our spartan consoles. Recently lanched VmWare Player I got an updating window that falls after some processing and blocked usage of software:



Figuring out the problem, I tried different ways reading logs, googling and installing and uninstalling. I tried even to launch VirtualBox instead and got greeting update message:

But will not be able to run vmware image. Arrrggghhhh !!!!! What a really bastards all these people...
Both VmWare and VirtualBox and many other software always asking you to update themselves or performing updates without an permission. I know this can be disabled from application settings but this is really annoying to spend hours tweaking software on your every device or get suddenly failing behavior. Software is an tool but not Artifice Intelligence unit an required only to do what user has been requested. Do without thinking for him or asking. I want "I know what I'm doing, baby, mode" to be switched by one press/command for every software.
On this problem: googling more I found thread with VmWare Player patch for 3.2 kernel was proposed.
http://jkhofmann.dyndns.org/wordpress/?p=2008&lang=en
It required an older version of VmWare and not worked even after I downgraded my. So I had to open patch shell script (patch-modules_3.2.0.sh) and comment out version checking lines:
#[ -z "$product" ] && error "Sorry, this script is only for VMWare WorkStation $vmreqver or VMWare Player $plreqver
That helped and after some compiling by patch I got my VmWare Player working back.


вторник, 17 апреля 2012 г.

Gotta Mindmaping software ?

Gotta Mindmaping software ?

Today I visited the website of mindmapping software I prefer to use name SciPlore to download distribution and install it. But noticed message they suggest to swtich to other product named Docear: http://www.docear.org/ Well, it looks at least much better.


And behave like more smarter and comfortable tool. If you are user of FreeMind, XMind, Kdissert/Semantik or some other not very friendly or expensive software I totally recommend you to try this one. Btw, they offer some features for nerds;)

понедельник, 9 апреля 2012 г.

I've written an article on the way you can setup automatic sync of your WebDAV space that can be provided GoDaddy Online File Folder, Yandex.Disk and many other file hostings or your corporate information system. Hope it will be helpful:
http://techminded.net/blog/syncronize-webdav-with-local-folder.html

воскресенье, 18 марта 2012 г.

I've written an article on how to install Liferay CMS with separate MySQL database on Linux. Check it out:
http://www.techminded.net/blog/install-liferay-6-on-linux-with-external-mysql-database.html

пятница, 2 марта 2012 г.

Windows 8: empty


Installation process requires almost nothing from technical skills, but you will have to setup 3-5 pages of personal data. Later I was force to fill my personal data again, when clicked on 'Music', but my honest acceptance haven't made me able to have anything more than seeing beautiful images, the app didn't launched.

Will it sync my porn if I start work with my girlfriend's PC ?
New Windows 8 brings new level of user interface experience emptiness. All you will see is monocolored background with overrough forms and glam fotos.
With new version you will have all simplified apps even for old good information apps
Internet explorer is also for fingers but not for brain
And even epic 'Start' Button is disappeared ... and replaced with dashboard you probably already seen many times under metro label
But happily your are still able to switch to desktop from phone/tablet mode

вторник, 21 февраля 2012 г.

Starcraft2 on Linux

A number of years ago it's was a real quest to run Windows games on Linux. Nowadays the situation is a bit better at least for not very fresh and famous games. You can get your favorite game with installer that is as easy to use as Ubuntu Store .. okok, few more clicks are required:). It's called PlayOnLinux, it's free and available in repos. Here is screenshot of Starcraft 2 installed with PlayOnLinux:
Honestly, I have not recompiled the kernel to have it. Unfortunately, windows have noisy installers making users to click unnecessary buttons and decline unwanted bonuses (like browser bars of statistic sending) so we will probably never have the ability to install such apps from repos or packages. The gameplay is quite fine and has no lags except random sound disappearance that is connected to my laziness to uninstall PulseAudio.

четверг, 11 марта 2010 г.

Пермишены

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

суббота, 7 февраля 2009 г.

outofbox vs сделайсам

В последнее время развлекался двумя питоньими конструкторами. Django и Trac. Не уверен нас счет удачности заголовка, т. к. оба в какой-то степени подходят и в первую и во вторую категорию. Вот Trac - после некоторых усилий у вас появится отличный багтрекер с викой и интеграцией с репозиторием (вплоть до контроля доступа), можно прикрутить оценки и диаграмы ганта и еще кучу всяких интересных мелочей, сотворив вполне недурственный портал для своего проекта используя только трак (а не бугзилла + йумла/друпал + *бб и т.п.). У него хоть и бедно документированная, зато очень удобная система плагинов, которая позволяет довольно запросто переопределять и дополнять ключевые процессы системы. Плагины в тоже время остаются довольно самодостаточными, т. е. для установки нового плагина вам скорее всего не придется переписывать и патчить половину проекта и самого трака чтобы заставить это все работать. Но плагины очень редко работают сразу: во-первых, часть из них еще не переехала на 0.11, тогда как некоторые отваждые уже ставят 0.12dev, во-вторых. некоторые начинают работать только после определенных заклинаний (в виде определения переменных окружения для какойнить внешней программы, это не проблема, но они определяются не из админки трака и даже не в trac.ini, а в настройках сервера например). Вобщем, если требуется шаг влево, то придется с ним немного повозиться, и низкоуровневость трака тут как раз на руку, правда вместо класса User вы будете полагаться простую строчку имени пользователя, а вместо Объектной модели данных использовать SQL запросы. Откуда я столько узнал:) ? я делал поддержку нескольких проектов в одном окружении. Много проектовость - довольно серьезная беда трака. В приемлемом виде ее просто нет. Это можно пережить, если вы планируете 2-3 опенсорсных проекта, если вам нужно что-то вроде мантиса, то придется знакомиться с траком совсем близко, как я. С помощью custom fields и дописывания своей логики у меня в какой-то степени это получилось, т.е. есть разграничение по поектам в базовых сущностях и контроле доступа в рамках одной среды (Trac Env). Если будет время, силы и не будет разных противлений может и доведу до товарного вида и выложу куда-нибудь.

Параллельно с пилением трака я первоначально очень в нем отчаявшись (местами наверное и напрасно) начал делать таксменеджер на Django поглядывая в какой-то уже существующий. Тут есть для нас и пользователи, (правда забекендить это добро на passwd файл или в ldap как это можно в траке, наверное было бы намного сложнее) и приятненький ORM. Но модульность очень особенная, т.е. ее хватит, чтобы состряпать такой же монолит, но как, не отстрелив ноги, расширить один модуль другим, причем так, чтобы работало и без него (например, я хочу настраиваемый events в который модули-плагины могут контрибутить как события так и обработчики) ?

Надеюсь у этой истории будет successful upd, когда я со всем этим наиграюсь. Пока это все очередной подтверждение тому, что а) серебряных пуль нет б) нет вобщем даже приличных свинцовых или медных, т.е. идеального багтрекера нет также как нет и идеальной среды разработки/редактора, фреймворка, языка программирования.

воскресенье, 1 июня 2008 г.

Умберто Эко: Наука, технология и магия

Не особо ново но о таких вещах надо говорить каждый день:

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

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

Технология — это когда предлагается всё и сразу. А наука движется постепенно.

Поль Вирильо4 так описал нашу эпоху: всех захватила (я бы выразился — загипнотизировала) скорость. Главный знак нашего мира — скорость, это угадали с опережением футуристы. Мы желаем тратить не больше четырех часов на перелеты из Старого Света в Новый. Мы так привыкли к быстроте, что досадуем, когда медленно грузится электронное письмо или запаздывает самолет.

Однако эта технологичность жизни нисколько не эквивалентна научности. Она тождественна, если угодно, магичности."

читать эссе

пятница, 9 мая 2008 г.

с победой и все такое:)

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

суббота, 5 апреля 2008 г.

за vimper'ию !

Привет:)

я опять про софт, недавно на одном форуме наткнулся на упоминание аддона для безартельнативного пока браузера firefox под названием vimperator. Такого я не ожидал:) Полное погружение, минимализм и контроль с клавиатуры например новая вкладка октывается ... :tabnew www.ya.ru, а закладку можно добавить :bmark вобщем я доконца его не изучил еще, но прусь:)

Версию для ff3 надо брать из svn, инструкции на сайте.

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

А в чем пишете и отлаживаете код вы ?

среда, 26 декабря 2007 г.

телефон для Дзато-ици

Пару дней назад сделал шлейф на телефоне. За часа 3-4 в пространстве двух дней (съездил отдал на след. день съездил забрал + время на поиск конторы). До этого не менее полугода у меня не работали оба раскладушечных монитора, т.е. со звонильными функциями порядок, просто ничего не видно. Первые симптомы появились раньше, видимо от морозу прошлой зимы тел. начал рисовать артефакты на внутреннем экране, ну я тогда подумал отморозил его и забил на искажения цвета, затем стали проявляться баги при анимации и смене картинок. Тогда стало понятно что это шлейф. Я узнал что технический сервис веллкома работает хрен пойми как (т.е. два раза в неделю два дообеденных часа), гм-м но я то работаю 9*6. Потом оказалось что я приперся туда через неделю-две после окончания гарантийного срока. Вобщем с учетом трудности попадания туда, забил я на починку.

За прошедшее с тех пор время:

  • Я стал жить практически без часов, т.е. сверка времени осуществяется только по уличным, рабочим часам или будильнику (правда для того кто большую часть своей активной жизни проводит уставившись в монитор это наверное и не очень большой подвиг)
  • Я начал конкретизировать телефонные разговоры, т.е. догавариваться иногда так что-бы не приходилось перезванивать (определитель то не видно). Учитывая, что я вообще не имел привычки говорить по телефону долго (это еще от специфичного тарифа "Говорун" во времена дорогой сотовой связи повелось)
  • Я завел компактный блокнот-записнушку в которой я шариковой ручкой (!) веду записи телефонов или важной информации. Очень удобно и иногда забавно бывает, например, стрелять телефоны с просьбой записать номер самостоятельно.
  • И наконец я совсем избавил себя от глубых смсок:)

Но вот у меня снова полнофункциональная звонилка и уже почти появился второй джиэсэмовский номер (со вторым телефоном:) Я уже гонял так и решил возобновить эту практику

среда, 21 ноября 2007 г.

Яндекс.Мистика

Существует великое множество социальных сетей, их некоторые, те что пошли по стопам оркута и фейсбука переживают сейчас этакий бум на просторах рунета, т. е. они уже вышли за пределы второго круга программистов и сочувствующих и стали местом тусовок пользователей всех возрастов. К моему огромному множеству учеток от мыльников, форумов и проч. ресурсов добавилось еще несколько от этих безусловно нужных ресурсов. И вот как и следовало ожидать, к одному из них, а именно моемукругу.ру я забыл пароль, но это пол беды: наперебиравшись вариантов я жмякнул по ссылке "забыл пароль" и увидел .. контрольный вопрос яндекс паспорта (который втюхивается насильно при регистрации). Ну если я забыл пароль от аккаунта которым никогда не пользовался (это я про егойный почтовый сервис), разве я мог удержать кусочек бреда, который я наскоро заполнил в соотв. поля при регистрации(чтобы отвязались, телефонные номера/адреса/даты рождения как вы уже догадались я при аутентификации не использую) ? Безнадежно потратив несколько заходов и тут я уже почти распрощался с этим аккаунтов. Нет, я еще написал в саппорт откуда получил шаблончик про то, что мне все-таки стоит еще раз крепко поднапрячь память и если не получиться отксанить паспорт, вложить его в бандероль с анализами и отправить это все яндексу с объяснением почему я такой дурак. Вобщем забы(и)л я на мойкруг, но все же сегодня еще раз потыкался в поля ввода логина/пароля. Опять безнадежно. Я может быть и не прав, но считаю, что должен быть способ восстановить пароль в случае полной амнезии, ну хотябы сбросить его перейдя по ссылке свалившейся в запасной мыльник. Не безопасно ? Ну если тебе сломали почту, то уж тогда конечно можно подтверждать свою личность другими способами, но форму сброса пароля без вопросов высылает даже распоследний Айсикью ! Вобщем я бы всерьёз обиделся, вдруг кто-нить из друзей по детскому садику захочет меня найти, а я и ни ответить не смогу ни даже знать об этом не буду... Так вот об мистике, через некоторое время после того как я все-таки решил что не судьба га мой гмыльник свалилось письмо, которое я уже было проигнорировал, но все-таки глянул и ..

Обратите внимание: для Вашего удобства робот Моего Круга вставил в это письмо ссылки, через которые можно напрямую зайти в Ваш профиль без ввода пароля и получить полный доступ к нему. Будьте аккуратны при передаче текста третьим лицам — например, не пересылайте это письмо (вместе со ссылками в нем) другим людям и не вставляйте его текст в блоги, форумы и чаты.

Поменять пароль я конечно там не смог (т.к. был отфутболен в тот же яндекс.паспорт), но ... я узнал что вводил не тот яднексовый логин .. вот так-то. Это привело в чувства мою память и теперь могу (не)пользоваться сервисом. Поясню, мистика заключается в том что письмо пришло через небольшое время после моих попыток, при этом совершенно с роботским контентом. Что это ? Проведение ?

post scriptum: а мучать глупыми вопросами - все-таки не хорошо, путь даже робат или хакер будет восстанавливать пароль, но делать это через мыльник который _я_ указал в качестве резервного, иначе какой от него прок ?

Ну и чтобы добавить тэг "киберпанк" в будущем все пароли и проч. учетные данные конечно помнить не надо будет, за вас это будут знать армия роботов. Достаточно будет приложиться чем-нибудь к компьютеру и он вас узнает, назовет любимым прозвищем и предложит чего-нибудь увеличить.

четверг, 8 ноября 2007 г.

vim: сниплеты своими руками

многие интересующиеся видели в навороченных иде, редакторах крутых программистов или по телевизору как при наборе кода автоматически выстраиваютя целые конструкции. Т.е. набирает программист if, а редактор ему в ответ:
if ( {statement} {
{code} 
}

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

добавленная в .vimrc позволи по нажатию клавиш Control+j перепрыгивать между встречающимся в коде <++> заменяя их на вводимый текст. Теперь надо создать хранилище наших сниплетов, на моей Portable версии это $VIMRUNTIME/abbrs/. В вашем unixподобии может быть ~/.vim/abbrs или чтоугодно. Создаем соотв каталог и в нем первый файлик, например, phpabr.vim. В него прописываем первый сниплет:

здесь ffunc это выражение которое будет заменяться конструкцией (т.е. подстановка будет происходить после того как я наберу ffunc и нажму пробел) и после пробела собственно конструкция, где <++> это точки в которые я буду вставлять свой код, перемещаясь между ними сочетанием Control+j. Теперь надо сделать, чтобы этот и другие в будущем сниплеты подгружались только когда я редактирую php файлы. Это делается опять же строкой в .vimrc:

 autocmd FileType php source $VIMRUNTIME/abbrs/phpab.vim

т.е. autocmd FileType {тип файла} source {путь до файла со сниплетами}

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

p.s. Еще я добавил возврат в нормальный режим по сочетаниям Control+i, Control+a в дополнению к Esc, по-моему довольно логично

понедельник, 5 ноября 2007 г.

опрятный vim

Нет пророка в своем отечетстве, нет у программистов идеального редактора общего назначения (быстро превращающегося в среду обработки и обратно). У каждого свои помидоры. Одни куцые другие монструозные и проч. Не идеален и vim, но так уж получилось, что ни в полуживом юниксе находящемся в другой точке земного шарика, ни в чужой венде-калеке, в том, чтобы с минимальным оверхедом сесеть и начать работать конкурентов у него нет. По крайней мере для меня. Вот и пользуемся:)

У вима есть одна особенность. На время редаткрирования, он создает временную копию файла с которой работает, а потом еще и бэкап файла. Эта фича не раз спасала мне нервы и время и ругаться я на нее не буду. Но иногда уж очень надоедает вычищаять проекты от этих резервных копий~. Конечно можно одной строчкой (но движений итак делаешь кучу:) Поэтому я наконец быстренько выудил рецептик заставляющий vim складывать весь мусор в один специальный каталог. Поскольку источник уже закрыл свой блог я продублирую информацию выуженную из кэша яндекса у себя, даже не столько с целью сохранить (аналогичных решений уверен море), а дабы обратить внимание. Итак заветные строчки для ~/.vimrc:

if has("win32")
    set backupdir=$VIMRUNTIME\backup
    set directory=$VIMRUNTIME\backup
elseif has("win32unix")
    set backupdir=$VIMRUNTIME/backup
    set directory=$VIMRUNTIME/backup
else
    set backupdir=~/backup
    set directory=~/backup
endif

в комментариях sakhnik предложил еще довольно изящное решение - использовать системную переменную:

 let &backupdir=$TEMP

let &directory=$TEMP

но мне как-то комфортнее знать куда все посыпется

пятница, 2 ноября 2007 г.

flatsqared

порисовал элементы UI на этот раз с Fireworks (у него самый вменяемый интерфейс для простой растровой графики имхо)