Еще одна отличная книга, "Doug Lea, Concurrent Programming in Java"

Вчера начал читать книгу Doug Lea “Concurrent Programming in Java”. Пусть слово Java вас не смущает - хоть примеры в книге и написаны на Java, принципы, приемы и паттерны применимы и ко многим другим языкам.

Если вкратце, то несмотря на 1999 год выпуска и ничем не примечательное название, книга великолепна. Никакой воды, очень плотный текст. Как будто читаешь связанную серию статей (papers) очень сильного ученого.

А вот отзыв Steve Yegge, из-за которого я когда-то добавил эту книгу в свой reading-list:

The best, most practical book I’ve ever personally read on the subject is Doug Lea’s Concurrent Programming in Java. It got me the most bang per page.

Читаю с ручкой в руках, многое подчеркиваю, многое снова и снова перечитываю. Книга не дает заскучать. Рекомендую!

О статье "Кормление и уход за программистами"

В недавнем дайджесте dou.ua я нашел ссылку на статью The care and feeding of software engineers. Название не особо впечатляло, размер статьи не очень вдохновлял, но я все же начал ее читать. И оказалось, что не напрасно. Многие фрагменты я выделил и хочу поделиться ими с вами.

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

Встреча с Дмитрием Шаменковым в Киеве

19 апреля в Киеве состоится встреча с Дмитрием Шаменковым, врачом-исследователем, развивающим систему управления здоровьем. Я уже несколько лет слежу за деятельностью Дмитрия. Сначала смотрел видеозаписи его выступлений, потом прочитал книгу, а недавно участвовал в первом вебинаре по его системе.

Upd.Видеозапись встречи - “Дмитрий Шаменков о Системе Управления Здоровьем”

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

Что у меня нового

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

Get that job at Google. Сколько тут незнакомых вещей!!! Меня никогда не возьмут в Гугл! Надо было учиться не на инженера-электрика в маленьком вузе, а на software engineer в Стэнфорде!

Ну ладно, ладно, вдруг все не так печально.

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

Grammarly, ищем Natural Language Processing Engineer

С тех пор, как мы переехали в Киев, я работаю в компании Grammarly. Это частная продуктовая компания с офисами в Киеве и Сан-Франциско. Продукты компании нацелены на улучшение англоязычных текстов (spelling-grammar-plagiarism checker, English Q&A community, English Handbook).

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

Сложности обучения

Учиться тяжело

Хорошее обучение - это выход за границы возможного, делание того, чего не делал раньше. Можно каждый день бегать 3 километра в комфортном режиме и не особо прогрессировать (иногда это нормально, если цель - расслабление после дневной “вахты” за компьютером), а можно каждый раз стараться пробежать немного быстрее и это непросто - не хватает дыхания, силы ног, техники. Можно писать день за днем одни и те же сайты, что и год-два назад, а можно “влезать” в новые проекты, для которых приходится читать кучу книг, изучать новые подходы, новые разделы науки. Результаты и сроки малопредсказуемы, неопределенность - высокая. Можно читать статьи на Хабре и Hacker News (и считать что ты учишься), а можно - прорабатывать упущенные раньше фундаментальные области (например, разделы математики и computer science), читать код ведущих программистов и решать сложные задачи.

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

Продуктивно ли считать себя самым умным и как решать действительно сложные задачи

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

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

Про стэнфордские онлайн-классы

Этой осенью я обычно просыпаюсь в 5-6 часов утра, чтобы учиться в ai-class.com и ml-class.org. Позади 6 из 10-ти учебных недель. Уже десяток раз я восклицал “Ну почему же я не начал так учиться год назад?!”. Эти курсы изменили меня - открыли новые интересные предметные области и помогли вспомнить как сильно я люблю математику. Я изменил отношение к университетскому образованию и расширил набор принципов эффективного самообразования, которые собираю на протяжении семи лет.

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

Programmers at work (1989)

С большим удовольствием читаю книгу “Programmers at work”, выпущенную в 1989 году. Думаю, что она понравится всем тем, кому понравилась книга “Coders at work” (также известная как “Кодеры за работой”). Ниже - некоторые цитаты, которые я уже подчеркнул (а я еще в самом начале книги).

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

Django Dash 2011, мои впечатления

Понедельничной ночью 1-го августа, примерно в 03:30 пять человек потихоньку укладывали ноутбуки в свои рюкзаки и выходили из офиса чтобы разъехаться по домам. Кто-то на такси, кто-то на своей машине. Еще трое ушли несколькими часами раньше. Закончились двое суток напряженного труда над созданием проектов в рамках конкурса Django Dash 2011.

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

Напишу несколько важных мыслей, которые я сформулировал на основе полученного в конкурсе опыта.

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

Лев Валкин про Силиконовую долину

Вчера Лев рассказывал про то, что отличает Силиконовую долину от России-Украины и что нам делать чтобы появилась среда, благоприятная для стартапов.

Горизонтальная коммуникация

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

Вертикальная коммуникация: разработчик - менеджер - сейлз - клиент.

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

Лев Валкин про ФП и Erlang

Вчера ходили с @vseloved и @matveym на выступление Льва Валкина про функциональное программирование в целом и Erlang в частности. Кратко запишу основные тезисы, которые мне очень актуальны.

Новый набор инженерных принципов, непривычных для императивных языков

Функциональные языки дают возможность поработать с другими способами построения программных систем. Эти новые способы позволяют писать лучше даже на императивных языках. Это очень важный для меня тезис. Я немного поработал с Эрлангом, когда мы работали над Рисоваськой, теперь по совету Льва я изучу Haskell.

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

Стоит ли мне работать руководителем?

Меня давно интересует вопрос “Стоит ли мне работать руководителем?”. В прошлую пятницу я был в Москве и разговаривал там с моим одноклассником Костей Кузнецовым. Много лет назад он был для меня проводником в мир компьютеров. Костя сам является отличным программистом, а сейчас руководит командой из 20 человек и скоро станет руководителем собственной компании. Ему это нравится. Есть хорошие руководители-предприниматели в Grammarly, кто-то с программистским опытом, кто-то без. Им тоже нравится то, что они делают. А вчера я прочитал комментарий Алексея Колупаевахороший программист и хороший менеджер - это совершенно разные люди”, который стал последней каплей в этом вопросе.

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

Неопределенность и страх

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

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

А еще заинтересованность и горящие глаза обычно помогают находить единомышленников.

Django Dash 9-10 июля

Django Dash - международный конкурс, в котором компактные спецназ-команды за 48 часов создают полноценный проект. Правила простые:

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

Интерактивная консоль для pyuno + django

Недавно я писал про то, как работать с документами LibreOffice из питона. Я сейчас работаю над исследовательским проектом, в котором django application обращается к LibreOffice через pyuno. В этом проекте натолкнулся на неприятную ошибку - ./manage.py shell при выполнении любых связанных с pyuno методов выдает сообщение “SystemError: pyuno runtime is not initialized, (the pyuno.bootstrap needs to be called before using any uno classes)”. При этом если запустить python и сделать в нем import uno, а потом вызывать те же методы, что и в ./manage.py shell, то все работает отлично, за исключением того, что не получается обращаться к своим моделям (потому что не инициализировано окружение django).

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

Рабочий процесс как поход

Вчера в разговоре с коллегой пришел образ гармоничного движения к большой цели. Утром каждого дня нужно находить/создавать интересный маршрут на сегодня. Такой чтобы:

Всё как в хорошем походе. У тебя есть примерное направление куда ты хочешь дойти, но каждый день ты лишь выбираешь куда ты хочешь дойти сегодня. С учетом всего-всего: погоды, настроений, желаний, состояния троп. И в конце дня ты не гадаешь куда идти завтра - ты сидишь у костра и наслаждаешься возможностью отдохнуть, порадоваться тому как здорово удалось пройтись сегодня. А завтра проснешься и как-то вырисуется план еще на один день.

Особенно это касается таких тонких целей как “повышение энергии/мотивации (passion)”, “повышение производительности”.

Использование Markdown

В проекте Grammarly Handbook, про который я писал вчера, грамматические карточки из формата MS Word нужно было конвертировать в какой-то внутренний формат, чтобы в этом формате было легко добавлять новые карточки и редактировать существующие. Кроме того, нужно было ограничить функционал редактора карточек, чтобы не было чрезмерного разнообразия форматирования и, как говорит наш дизайнер, “верстка была семантической”.

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

OpenOffice + Python, pабота с файлами MS Word

Пару недель назад для проекта Grammarly Handbook понадобилось импортировать много форматированного текста из документов MS Word. Текст находился в 40 файлах размером от одной до двадцати страниц. Первые несколько страниц я перенес вручную и несколько утомился - механическая работа меня не очень радует. Начал искать возможность читать вордовские документы из Питона.

У меня был очень позитивный опыт с библиотеками xlrd, xlwt. Первая читает документы Excel, а вторая - записывает. Но подобных библиотек для документов *.doc я не нашел. Зато нашел возможность обращаться из Python к OpenOffice. Эту возможность я успешно использовал, успешно импортировал весь грамматический материал и даже наткнулся на интересную идею для нашего основного продукта - инструмента проверки грамматики Grammarly.

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

В Python 3.x работает старый способ форматирования строк

А старый добрый способ форматирования строк с помощью % в Python 3000 всё-таки оставили!

~ > workon python3
(python3)~ > ipython    

Python 3.2 (r32:88445, Feb 28 2011, 11:06:14) 

In [1]: 'Good old %s still works in Python 3!' % 'string formatting'
Out[1]: 'Good old string formatting still works in Python 3!'

По наводке www.boredomandlaziness.org

Страница: 2 из 5