Миграция с Vim на Emacs

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

0509_Hacking Vim 7.2covТак что, я решил в дальнейшем использовать Vim исключительно для правки небольших текстов и конфигов, благо в любой *NIX системе он есть “из коробки”, а для чего-то большего использовать Emacs. Помня о том, что в стародавние времена мне очень сильно помогла книга Hacking Vim, я начали искать что-либо не менее полезное про Emacs.

lrgК сожалению, на практике быстро выяснилось, что чего-то на столько же выдающегося про Emacs никто не написал. Тем не менее, достойная книга есть, это – Learning GNU Emacs, 3rd Edition. Ее нельзя назвать на столько же интересной и полезной, т.к. в ней маловато информации обо всяческих трюках но в любом случае очень достойно. В итоге довольно быстро дочитал до раздела про ELISP, и бросил, т.к. вроде все понятно и удобно стало. Как захочу улучшить конфиг собственными функциями – дочитаю

Если захотите научиться пользоваться Vim либо Emacs, очень-очень рекомендую эти книги. Не так страшен черт, как его малюют, а удобств ну просто море

Заметки везде и всегда

Screen Shot 2014-05-26 at 21.31.15  Это удивительно, но Microsof таки сумел выпустить продукт, который не хочется немедленно развидеть! По началу я хотел было написать про два продукта, так как на первый взгляд OneDrive очень не плох. Но это только на первый взгляд, а на практике OneDrive отказался синхронизировать мои файлы, как это не прискорбно, но Майкрософт продолжает штамповать откровенное говно. Continue reading

PHdays 2014 глазами разработчика

Сегодня закончился второй день конференции PHdays, на которой мне удалось побывать благодаря Владимиру, за что ему огромное спасибо! Я не буду рассказывать о содержимом конференции и представленных докладах, все это можно найти на соответствующем сайте. Здесь же хочу показать немного картинок и рассказать об ощущениях от самой конференции. Continue reading

Ранний доступ к новым книгам о Scala

Я, надо признать, остался не равнодуным к Scala. Мне действительно нравятся возможности, которые дает JVM, а Scala, как ни ругай ее – самый продвинутый язык для этой платформы. Поэтому, новости связанные с этим языком я отслеживаю и почитываю.

Так вот, в O’Reilly открылся ранний доступ к двум новым книгам по Scala. Сам, пока, книг не читал, но выглядят довольно заманчиво, так первая версия Programming Scala мне очень понравилась.
   

 

Как бороться с динамической типизацией?

Я довольно часто писал на Python какие-то вспомогательные вещи, иногда сравнительно крупные, но почти всегда не знание типа объекта с которым работаешь было не критичным. Плюс возможность разрабатывать в IPython сильно облегчала жизнь. И так было до тех пор, пока я не решил плотно использовать Twisted. И оказалось что в IPython не попишешь нормально, а занание типов параметров в функциях обратного вызова и классов из обширного становится необходимостью.

И вот тут то я оказался в неком тупичке. Есть большое количество разнообразных классов со сложными интерфейсами. Перепробованные IDE (Eclipse, PyCharm и даже Emacs) не позволяют воспользоваться автодополнением в незнакомых им классах, что логично. В результате, весь код начинает выглядеть как пример ниже.

def _call_later(self, request):
"""
тут какое-то описание функции
@param request: тут какое-то описание параметра
@type request: Request (1)
"""

Да, безусловно, указывать 1 для каждой из создаваемых функций типы передаваемых параметров это решение, только оно выглядит как откровенный костыль. В итоге, у меня создается ощущение, что я как-то не верно использую этот замечательный язык… Что не так? Как с этим жить? Наиболее подходящим вариантом выглядит то, что все помнят параметры у API наизусть, я же вполне могу писать на C++ с подстановкой параметров исключительно из открытых файлов.

Remote: офис не обязателен

На днях дочитал крайне интересную книгу “Remote: офис не обязателен” от создателей небезызвестной компании 37signals (да, те самые авторы RoR). Меня давно интересует все что связанно с удаленной/частично удаленной работой, т.к. ходить в офис совсем невмоготу становится, так что книга оказалась более чем к месту и ко времени.

До прочтения Remote, мне и самому не раз приходила в голову мысль о том, что полноценно работать в офисе, особенно если это OpenSpace не возможно в принципе, т.к. там постоянно кто-то отвлекает: обсуждает прокачку танка в WoT, рыбалку, политику, да что угодно кроме работы! Хотя чем лучше обсуждение стороннего проекта у тебя под носом? В итоге, если понаблюдать за тем, как тратится время сотрудником в офисе, становится заметно что на выполнение полезной работы расходуется хорошо если 50% рабочего времени. А если сюда еще добавить кучу крайне важных и неимоверно “полезных” совещаний…
Continue reading

Разбитые надежды или просто непонимание?

В одной из лекций с PyCon US 2014 проскочила очень заинтересовавшая меня информация о том, что с Python 3.3 CPython поддерживает оптимизацию для классов, и старый вариант использования Python, когда класс могли просто заменить на Dict не верен в корне, т.к. Dict не поддерживает никакой типизации. Вроде все верно и логично: никак не ограничиваемый по данным ассоциативный массив против класса, в котором можно предсказать используемые типы и количество полей. Continue reading

Modern C++: What You Need to Know

На Channel9 появилось новое выступление Герба Саттера посвященное современному C++. Как всегда познавательно и крайне рекомендуемо к просмотру всем, кто активно работает с C++.

Наиболее интересное для не совсем новичков в C++ в конце лекции, так замеры производительности на вставках в середину массива и списка были для меня удивительным открытием. Пример от Саттера касается массивов с интами, что не очень интересно с практической точки зрения. Более детальное рассмотрение скорости можно найти тут.

Кроме того, Саттер немного рассказывает о новом проекте от Microsoft: ParallelSTL, который должен стать доступным публично на следующей неделе.

Rust 0.10

Сегодня вышел, на мой взгляд, интереснейший релиз Rust 0.10. Ломающих изменений в нем не очень много, зато был проведен просто грандиозный рефакторинг: две основные библиотеки libstd и libextra были разделены на полтора десятка библиотек “одной функции” в процессе чего libextra перестала существовать. Это хорошо в первую очередь тем, что появилась реальная возможность начать использовать Rust практически в пределах libstd (все же необходимо еще немного порезать libstd для отключения работы с задачами), а не только самого компилятора, на низком уровне, к примеру в драйверах. Сейчас как раз занимаюсь подобным экспериментом, выглядит ну очень заманчиво!

Ну, все изучать Rust!