Редактор мечты или как, наконец, холивар Emacs или Vim завершился.

06/06/2016

Если уж быть совсем-совсем кратким, то встречайте Spacemacs. Это такой настроенный Emacs с клавиатурными сочетаниями от Vim.

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

Spacemacs

Каким должен быть хороший редактор для кода? Удобным, быстрым, с подсказками и свистелками? Но, конечно же, самый хороший инструмент это тот, которым ты умеешь пользоваться. Я тот самый парень, который все время пробует новые и новые инструменты, например:

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

read more …

Пост, в котором я признаюсь в любви Devcards, Figwheel и ClojureScript

27/12/2015

Этот пост рекомендуется пропустить всем непрограммистам.
Свой путь веб-разработчика я начал в 1999г. Это был PHP 3.0.3 + MySQL. С тех пор я попробовал довольно много инструментария для разработки, Parser 2 от студии Лебедева, а на Parser 3 до сих пор работает мой старый сайт http://nexus.org.ua/. С 2006г началась интрига с Ruby on Rails, который набрал популярности благодаря свежему на то время подходу convention over configuration. И это было круто, куча чужих уже готовых к употреблению кусков кода в виде ruby gems, которые легко подключались. Изумительный менеджер зависимостей bundler. Из известных продуктов на RoR это Redmine, который используется много кем для управления проектами, Gitlab – свободный аналог github. На RoR написалось мной довольно много проектов, более 20 по-моему. Самый крупный — наша «админка», система управления тикетами, которая дописывается и в настоящее время. Но вот наступило время активного оживления фронтенда через джаваскрипт. Я успел поэкспериментировать со многими, в основном, Javascript based штуками. Здесь я описал свой опыт работы с Angular JS, Knockout JS. Завел интрижку с Meteor, ошалев от возможностей программирования сервер-сайд и клиент-сайд на одном языке, а заодно набрался опыта работы с MongoDB и в целом познакомился c NoSQL движением. И все это было интересно и хорошо, пока я в этом году для расширения кругозора не начал изучать Clojure и ClojureScript. Как сказал один мой приятель «любишь ты разные brainfuckи».
Ощущения от функциональщины и Lispа мне сложно сравнить с каким-либо опытом пережитым ранее. Эмоции, пожалуй, как у Колумба, который открывает Америку. Язык, который создавался автором с мыслями о проблемах проектирования и архитектуры современных приложений, и разнообразные сложности, с которыми сталкивается разработчик, такими как многопоточность, CSI и всем таким. Рекомендую на досуге послушать автора Rich Hickey. Концепция базы данных Datomic вообще разорвала мозг новыми возможностями. Очень рекомендую для изучения Datomic и языка запросов Datalog этот ресурс.

Для понимания программистами, какие проблемы скорости и удобства разработки теперь можно решать для фронтенда на ClojureScript, нужно посмотреть вот это видео. В нем про live reload и о концепции data cards в веб-разработке. Да и вообще чувак веселый 🙂


Теги, которые повлияли на меня как на разработчика в 2015 особенно сильно: Clojure/ClojureScript, Datomic/Datalog/Datascript, figwheel, datacards, Rum/ReactJS, Om/Next, Meteor, MongoDB, Docker.
О том, каким будет web в ближайшем будущем стоит почитать у моего однофамильца Никиты Прокопова. Очень правильно пишет.

Уверен, 2016 год будет не менее захватывающим.

Мысли о Дизайне

08/03/2013

541533_423559324402019_1765410077_nЛюбi друзi, дружите с ангийским языком, это не только расширит ваш кругозор, но и позволит читать такие статьи как эта: https://www.gov.uk/designprinciples, в которой описаны 10 рекомендаций при Дизайне.

В целом под Дизайном у меня возникает следующее определение: «Дизайн, это когда создавая вещь, думали обо мне. Как я буду ее [вещь] использовать, почему, и как, мне должно быть легко с ней взаимодействовать?», а отнюдь не «красочные пятна в нужном порядке», каким это мнение распространено среди обывателей.

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

Научиться этим пользоваться – очень полезный навык. Однако опасность, которая вас может подстерегать на этом пути, это жесткие сроки, которые может (и должен) установить по задаче/разработке заказчик, в том случае, если заказчик не вы.

И это может отнять у вас возможность «положить задачу в бекграунд» и вы можете начать генерить «быдлокод» или «компромиссное решение».

Если заказчик вы, то продукт получается прекрасным ровно до момента исчезновения мотивации (ответа на вопрос «зачем»). Именно поэтому Open Source продукция зачастую имеет довольно короткий жизненный цикл, и тогда нужно передавать дело в руки других людей, которые подобную мотивацию только начинают приобретать.

Феномен Open Source работает по причине того, что человек, который кодит open source, в пирамиде Маслоу удовлетворяет потребность более высшего порядка.

Вот такой вот удивительный мир.

Новая тема wordpress для nexusnotes.ru

23/01/2012

Очень понравилась тема «Молескин» у http://www.artemy.com.ua и, пользуясь случаем, установил себе такую же.

Tags

Про государственные говносайты

26/04/2011

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

А бывает ли так, что 10лет назад сайт выглядел гораздо лучше, чем сегодня?

Вот сайт киевского института автоматизации систем в строительстве, где в 1999 я начинал свою трудовую карьеру:

Ниже сайт образца 2000 года, выполнен дизайнерами провайдера Elvisti, который в то время находился на территории института.

http://replay.web.archive.org/20001028014829/http://ndiasb.kiev.ua/

ndiasb2000

Сайт образца 2011 года, выполнен … дизайнерами института?

http://ndiasb.kiev.ua

ndiasb2011.png

Сайт 2000 года выглядит намного более привлекательным и свежим, не правда ли?

Ruby on Rails хозяйке на заметку: менеджер локальных сайтов Pow

12/04/2011

Чрезвычайно удобной оказалась возможность работы с несколькими сайтами на базе RoR (по факту на Rack), которую предоставляет утилита Pow.

Вкратце, если у вас достаточно много сайтов разработке, утилита предоставляет хук в DNS зону dev и позволяет обращаться к вашим сайтам по url вида http://myapp.dev , http://myapp2.dev, а также добавляет правило в фаерволе, которое заворачивает обращения к self с порта 80 на внутренний порт утилиты.

Сам Pow состоит из двух частей — DNS responder и проксирующего web server. Реализовано все счастье на Node.js.

Очень интересна реализация зоны .dev, в mac os в каталоге /etc/resolver/ добавляется файл dev такого вида:

nameserver 127.0.0.1 port 20560

что перенаправляет все обращения xxx.dev на соответствующее приложение

 

Утилита поддерживает работу с RVM, что позволяет упражняться с различными версиями руби.

Для поддержки в rails 2 через Pow можно воспользоваться таким хаком, создаем в корне приложениея config.ru, где прописываем

Деинсталляция также проста:

curl get.pow.cx/uninstall.sh | sh
# Rails.root/config.ru
require "./config/environment"
run ActionController::Dispatcher.new

Утилита что-то наподобие denwer для php.

 

Инструментарий верстальщика

13/02/2011

Иногда попадаются прямо-таки «золотые» ссылки для веб-верстальщика, здесь я их и постараюсь собрать вместе:

http://wordmark.it — быстро подобрать шрифт для надписи из имеющихся у вас

http://lamb.cc/typograph/ — типографика, подброрка стиля и ритма текста, заголовков

http://jsfiddle.net/hCVyG/ — отладка jQuery, HTML, CSS, Javascript

http://sprites.in/ — инструмент для работы со спрайтами

http://spriteme.org/ — еще один инструмент для работы со спрайтами

http://csssprites.org/ и еще один

http://shamansir.github.com/JavaScript-Garden/ — заковыристые темы Javascript

http://kuler.adobe.com — подбор цветовой гаммы, что хорошо — можно выбрать из готовых

http://css-tricks.com/the-css-box-model/ — фантастически хорошие советы по css