-
Таки решил, сегодня вечером поеду на OdHac.
-
alias l='ls -ltrh'
-
@kb:Добавил "; mplayer ~/Downloads/bell-ringing-01.wav" в строчку запуска тестов. И как я раньше без этого жил.
-
Прочёл на выходных "Clean Coder" Мартина (вместо Clean Code, случайно). Так быстро я книги по около-программированию еще не читал никогда (240 страниц за два небольших присеста). Конечно, молодец дядька, но вместо чтения книги я бы посоветовал просто глянуть два его спича на railscon (есть на ютубе). Одно, кажется, "What Killed Smalltalk and Can Kill Ruby", а другое — "Architecture the Lost Years".
-
Всё никак не привыкну, что много документации и "постов в бложик" написано в виде paper'ов. По монад-трансформерам очень круто, то, чего мне не хватало (а именно — разжевывается практический пример понятным языком) grabmueller.de
-
Норм dabeaz.com3 replies by @Kxepal, @kb
-
Оторвавшись от Стивенса, из-за непонимания очередного баш-скрипта, решил почитать наконец-то (точнее, это уже вторая попытка, кажется) Bash Reference Manual (http://www.gnu.org/software/bash/manual/bashref.html). Теперь я продвинулся на процентов 25.
Что ж, впечатлений осталось гораздо больше, чем я ожидал. Язык действительно странный, с кучей интересных моментов. Иногда тошно от количества ненужных мне настроек, опций и механизмов, о которых я должен помнить при чтении / написании программ. С другой стороны, достаточно интересны механизмы Экспаншнов, такие себе "очень прагматичные макросы".
В целом, конечно, жаль, что я с самого начала знакомства с линуксами не прочитал этот мануал, много где знания пригодились бы. -
Хотел написать письмо Daan Leijen чтоб сделал хоть какое-нибудь
коммьюнити для Parsec (а то документация, во-первых, скудная,
во-вторых устаревает), а его единственный контактный имейл
университетский уже не работает. На страничке
research.microsoft.com тоже не видно. -
Сильно ускорил емакс (открытие файлов), отключив хуки vc-плагинов ненужные (типа показа бранча текущего файла и т.п.)
(require 'vc)
(eval-after-load "vc" '(remove-hook 'find-file-hooks 'vc-find-file-hook))6 replies by @kb, @4DA -
Собственно, вопрос. А что вы читали по сетям в юниксах?
Я вот, например, по разным причинам и обстоятельствам начал читать
трёхтомник Стивенса (Stevens W.R. — TCP IP Illustrated, Volumes 1-3
(Professional Computing Series) — 1994-1996). Мне очень нравится, всё
очень юникс-вейно. Тебя шлют читать RFC, с первых страниц показывают
биты и протоколы. Сеть представляет собой зоопарк из рахных юниксов
screencloud.net (в этом, конечно же, и плюс и минус).
Но есть очевидные проблемы:
1. книга (точнее книги, их 3 штуки) старая, и IPv6 там упоминается
лишь как "вот три возможных будущих стандарта, поскольку на момент
чтения какой-то из них уже примут, мы не будет рассматривать ни один
из них".
2. Кроме отсутствия IPv6, конечно, имеется много старья, как минимум
этот зоопарк из юниксов, у каждого из которых свой вариант `ping` и
своя дробность часов. Забавно, как Стивенс находит в них баги (в
реализации ICMP) и отсылает к RFC, показывая что это именно
баг. Естественно, устаревшее описание почти у всех программ так и
чувствуется (но понимаю, что не критично и можно доразбираться потом,
в целом).
3. Единственное качество — какое-то DJVU галимое (правда, может плохо
искал, ну и ладно).
Решил найти альтернативу — судя по всему (по моим странным критериям
поиска вроде "погуглить best unix networking books" или захода на
рутрекер и просмотра по кол-ву сидов) популярным является
Таненбаум. Скачал его 5е издание (Tanenbaum A., Wetherall D. —
Computer Networks, 5th edition — 2010) — всё очень свежее, во
вступлении упоминается даже википедия, 3G-интернет и хипстеры с
айфонами (ну, может мне так только показалось).
Но с самого же вступления как-то отсутствует вот та "юниксовость",
которая была в Стивенсе. Во вступлении вводят кучу ненужных понятий
навроде "чем отличается distributed system от computer network",
рассказывают про какой-то "World Wide Web" (который поверх
Интернета). Про какие-то миллиарды долларов инвестиций и прочее.
Короче говоря, меня не покидало ощущение, что читателя держат за
дурачка (ну, или менеджера по продажам интернета). Очень точно эту
книгу (её начало, по крайней мере) характеризуют её же
иллюстрации. Вот, например, PAN (Personal Area Network, как LAN только
из собственных айфонов когда): screencloud.net , или вот
WAN screencloud.net (ну, там далее животные добавляются
и картинки еще круче стают).
Потому и назрел вопрос: что, собственно, читать?1 reply by @fmap -
1. оказывается, х-ль умеет multiline-строки в виде:
a = "foo\
\ bar \
\ baz"
(слэш на новой строке указывает, где она начинается, чтоб можно было выравнивать это безобразие)
2. emacs при этом немного ломается, потому я уж лучше вернусь к "foo" ++ "bar" пока.7 replies by @qrilka, @kb -
Никто не подскажет как нормально сделать в quickCheck аналог assertEquals? Чтоб красиво diff печатал (можно как-то совсем по-умному, конечно).17 replies by @kb, @segfault
-
Вот, мучал синтезатор soundcloud.com
-
Всё же, fabric — идеальное место столкновения админов и программистов. Админы допиливают до "лишь бы работало", а я вот сейчас "быстренько" сделал, чтоб без копипасты, оптимальнее, конфигурированнее и так далее.
-
Если вы вдруг, как и я, будете долго искать, где в pathlib брать имя файла (.name), знайте, что оно есть только в 0.8 версии, то есть устанавливайте из меркуриала (default).2 replies by @kb, @Kxepal
-
Подскажите, пожалуйста. А не существует ли, случаем, библиотеки, подобной регулярным выражениям, но работающей не для строк, а для произвольных данных? То есть, у меня есть список каких-то собственных сущностей, а мне необходимо делать матчинг в стиле регексов, где каждый из символов — моя сущность. То есть, например, у меня есть:
data Entity = Foo | Bar s
entities :: [Entity]
Мне необходимо как-то написать функцию, которая проматчит какой-то список [Entity] убедившись (и получив позиции), что в нём есть три подряд Foo, после которой Bar в которой s == "barbarbar". Ну, или типа того.
Перед тем, как писать подобное, решил спросить, нету ли еще.15 replies by @segfault, @qnikst, @kb, @Elemir, ... -
Сделал вот такой тип (синоним), всё было очень красиво:
type OptionsBlockBounds = (Int, Int)
Далее хотел написать функцию сравнения (объявить инстансом тайпкласса Ord). Я правильно понимаю, что единственный выход — делать вместо type newtype и перелопатить весь код (чтоб заворачивать / разворачивать в дата-конструктор)? Ну, или же сделать кастомную версию compare и передавать в maximumBy (и прочие By-функции)?10 replies by @kb, @alar, @max630, @ndtimofeev -
Мда. Чтоб пойти в амазон сказали что дадут тестовое задание на час. Ну я сидел ждал назначенного времени. И тут приходит задание:
— Provide one solution written in C, C++, Java or C#.
WUT? И тут я начинаю качать/устанавливать джаву, гуглить как в ней импорты работают, как из файла числа прочитать, как по классу на файл делать, ломаю мозг заворачиванием функций в классы. Потом как ArrayList склонировать (оказывается, не так просто). Короче туда-сюда и 40 минут потратил на ИНФРАСТРУКТУРУ.
Сволочи, короче. Нет чтоб предупредить, я бы заранее этим занимался.43 replies by @anton0xf, @kb, @kurkuma, @LittleChris, ... -
Стаю ленивым, всё же. Раньше бы предпочёл больше строк и понятнее, теперь же написал вот
PageInfo = namedtuple('PageInfo', ['page', 'per_page'])
Ну и плюс, пусть уж будет константой заодно (ибо нефиг менять потом).15 replies by @Kxepal, @kb, @eigenein -
Открыл для себя утилиту mongotop. По-коллекционно выводит лок чтения/записи, прямо по ней сразу же очевидны тормозящие места (мне, по крайней мере).9 replies by @kb, @LittleChris, @ComradeDOS

kb