• Макросы в Vim — это просто

    • Tutorial

    Макросы в Vim


    Очень странно, с одной стророны тема довольно банальная, а с другой ни тут, ни на просторах интернета не видно хорошего понимания такой важной темы, которая может иногда сильно упростить задачу редактирования текста. К написанию меня подтолкнуло обсуждение макросов в Emacs в блоге Avdi Grimm'а, где в своё время никто не смог внятно объяснить, что в Vim есть то, чего ожидает автор поста от достойного текстового редактора. Исправим это, в первую очередь в себе, а потом пойдём и скажем этим из интернета, что они не правы.

    Какие задачи редактирования текста помогут решить макросы? Например, такую: вот в этой самой строке, которую вы читаете, взять и все запятые поменять на 0. Можно вспомнить регулярные выражения, но не все их любят, и уж тем более не все помнят, как вставлять с их помощью перенос строки, а если вам нужно заменять какие-то символы, которые используются в регулярных выражениях как служебные, вы уже отвлеклись от своей основной задачи и вместо редактирования текста занимаетесь написанием регулярного выражения для поиска и замены, пробуя и ошибаясь.
    Макросы позволят это сделать быстрее, с меньшим отвлечением на вспоминание и написание чего-либо. Запомнить как работают макросы очень легко, и это войдёт в ваш ежедневный аресенал наряду с прыжками по тексту.

    В этом топике мы научимся использовать макросы с этой самой задачей.

    Давайте сначала вспомним, как это сделать вручную.
    f,r0
    После чего можно нажимать последовательно ; для повторного поиска и . для повторения предыдущего действия. Но в какой-то момент это может стать не так просто, например, вам нужно добавить пару каких-то знаков между делом. Точка уже не сработает и нужно будет опять нажимать r0. Или этих запятых окажется довольно много, и щёлкать поочерёдно ; и . придётся довольно много раз. В этот момент что-то вам уже подсказывает, что такой механический труд можно автоматизировать.

    Основы
    Многократные повторения и рекурсивный вызов
    Редактирование макросов
    Вечные макросы
    Всякое
    Познать
    • +29
    • 19.3k
    • 8
  • XKB: перенастроим клавиши под себя любимого

      В один прекрасный день надоедает нажимать Shift, чтобы вывелся символ ~ вместо `.
      Надоедает тянуться до Esc, при этом клавишей CapsLock пользуетесь РЕДКО.
      Надоедает смещать кисть вниз и нажимать Ctrl/Cmd/Win слабым мизинчиком, либо, не дай бог, тянуться до них большим пальцем.
      Надоедает лезть за PgUp, PgDn, Home и End, двигая руку каждый раз, чтобы всего лишь промотать страницу вниз.
      Надоедает каждый раз, когда вы делаете опечатку, со злобой смотреть на клавиатуру в поисках кнопки Backspace.



      Сегодня мы узнаем, как навсегда избавиться от этих мучений.

      Зачем это всё?


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

      Многие раскладки для печати (Dvorak, Colemak и т.п.) сильно улучшают расположение клавиш, ставя их ближе к тем местам, куда нужно меньше тянуться. Но при этом совершенно забывают о модификаторах, спец. символах и командных клавишах (Enter, Backspace, Tab, Esc, Delete). А мы подумаем о том, как улучшить существующее положение вещей.

      В статье пойдём от простейших изменений, до более интересной и глубокой настройки. И, как в конце хороших фильмов, я оставлю читателя подумать, что делать дальше, и не дам готового рецепта на всё. В конце концов, идеальных и универсальных решений нет, и на раскладку клавиатур товарищей нет.
      Читать дальше →
    • Действительно мощный и компактный ПК

        Некоторые новинки очень настораживают. Это то открытый ноутбук без клавиатуры и без диска за $1'995 на базе слабого ARM процессора, то «универсальный» и «мощный» ПК Tango размером со смартфон за $350, фактически совершенно бесполезный без второй док-станции, которая стоит как половина этого ПК, в том случае если всё-таки носить вычислительный модуль между работой и домом.

        Я давно присматриваюсь заменить свой ноутбук на что-то, причём ноутбуки с момента появления планшета меня как таковые интересовать совершенно перестали.
        Хотелось что-то совсем компактное, и я начал копать в сторону форм-фактора nano-ITX и pico-ITX, но ничего достаточно производительного за разумные деньги так и не нашлось.

        Зато нашлась вот такая буквально поллитровка, несущая в себе 4е поколение Intel Core, Haswell.



        Если по картинке не понятно, то этот ПК всё же чуть меньше, чем уже упоминавшаяся док-станция для Tango (108mm x 115mm x 30mm vs 135mm x 135mm x 27mm).

        Поставляется с вмонтированным в материнскую плату процессором. Линейка процессоров:

        — Intel® Core™ i7-4500U 1.8 GHz – 3.0GHz (turbo), Intel HD 4400
        — Intel® Core™ i5-4200U 1.6 GHz – 2.6GHz (turbo), Intel HD 4400
        — Intel® Core™ i3-4010U 1.7 GHz, Intel HD 4400
        — Intel® Celeron™ 2955U 1.4 GHz, Intel HD

        Существует также и модель на базе AMD A8-5545M 1.7G/2.7GHz.

        Продаётся такое чудо как модель для сборки, для полной комплектации которой необходима память (можно вставить до 16ГБ, осторожно, подходит только DDR3 на 1.35В, не 1.5В) и диск mSATA.
        Стоимость в зависимости от процессора колеблется на зарубежных сайтах от $250 до $500. Комплект из двух планок памяти общим объёмом 8ГБ можно приобрести приблизительно за $100, примерно столько же обойдётся и mSATA SDD на 128ГБ. WiFi b/g/n и Bluetooth 4.0/3.0 уже на борту, занимают единственный PCIe порт.

        Ещё о нескольких моделях той же серии и пара картинок
      • Прототип уходит в Open Source: Биржа телефонных операторов

          История


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

          Биржа телефонных операторов, работающих самостоятельно из дома.
          Альтернатива традиционным колл-центрам, позволяющая избавить сотрудников от холодных звонков, быстро проинформировать или опросить существующих клиентов и выяснить потребность потенциальных.

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

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



          Узнать все подробности
        • Клавиатуры: раздельные, с ровными колонками и разворотом половин

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

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

            Для затравки КДПВ.



            Сначала расскажу о старых клавиатурах такого типа, включая Apple, IBM и NEC, не доживших до нашего времени, потом о более-менее современных, а потом о новой волне, в том числе отечественном движении.

            Нажимая сюда, я готов загрузить очень много картинок разом
          • Клавиатура своими руками под свои руки


              Для меня всё началось вот с этого топика о механических клавиатурах, желания научиться печатать быстрее (к своему стыду до недавних пор печатал двумя пальцами, несмотря на 25летний стаж программирования), и появившихся недавно неприятных ощущений в кистях после рабочего дня (да и вообще времени, проведённого за компьютером).
              Провёл короткое исследование о том, что вообще есть из клавиатур для программистов и тех, кто много печатает, и написал вот этот обзорный топик. Купил себе Happy Hacking Lite (минималистичная клавиатура с мембранными переключателями), но печатать на ней оказалось ещё менее удобно, чем на ноутбучной, в основном из за ещё более компактного расположения клавиш.
              Вскоре появился топик, в котором автор рассказывал о новоприобитённой им Truly Ergonomic, пожалуй, практически идеальной клавиатуры с моей точки зрения, но в комментариях автор же отметил, что спустя два месяца использования так и не смог совсем пересесть на неё, а положение рук совсем не так и удобно, как рекламируется.
              Чуть позже появился топик о Kinesis Advantage, по отзыву автора к которой тоже не так легко привыкнуть, а цена так и просто пугает.
              И я решил...
            • Свежий взгляд на микроконтроллеры

                Этот короткий пост может слегка напомнить некое исследование рынка по теоретической заметке "Микроконтроллеры устарели?".


                На исследование микроконтроллеров и готовых плат натолкнула одна из небольших поделок, над которой сейчас работаю. В частности, необходим довольно компактный контроллер с 20 входами/выходами, и позволяющий выступать в роли ведомого USB устройства. Первый взгляд упал на Teensy, довольно компактный, на чипе Atmega32U4. Смутила только цена, $24 за устройство с распаянными ножками плюс доставка. Всего лишь чуть менее, чем вдвое дешевле, чем мне обошёлся, заказанный в апреле и пришедший лишь сегодня, Raspberry model B (ура!).
                Цены на Arduino, Propeller также неприятно удивили.
                Собственно, посетила мысль просто поставить сам чип на печатную плату и не заморачиваться с отдельным контроллером, но и Atmega32U не дёшев, около 4 евро за штуку (32U2) 5.5 евро за 32U4, и цены на них не снижаются, а, наоборот, растут.

                С AVR'ами серии USB (90USB, 8U. 16U. 32U) смущает ещё то, что те пробные прошивки, что я делал по примерам, занимали около 18КБ, в основном занимаемые кодом работы с USB (LUFA/какое-то доморощенное от Teensy), а флеш памяти в половине этих устройств уже меньше. Что там с потреблением оперативной памяти, вообще сказать тяжело, хватит ли 1КБ? Без какого-то либо опыта оптимизации кода на C лезть в эти дебри совершенно не хотелось.

                И тут внезапно
              • GNU/Linux и устройство на Rockchip 2918

                  Сначала немного предыстории. Небольшое продолжение истории с медиаплеером GV2B, описанным мной ранее ту/т. Напомню, что изначально бокс покупался не как Android приставка к телевизору, а как более мощная замена Raspberry Pi, на который я оставил заявку ещё в апреле, но приедет который только в августе. А GV2B оказался у меня в руках через 8 дней после заказа, всего за $100 и с полным комплектом кабелей (что всего на $5 дороже, чем комплект Raspberry Pi с зарядкой, шнурами и корпусом).
                  Успокою злопыхателей из моего предыдущего поста, что Youtube и другие приложения, установленные с Play, заработали замечательно, и больше никаких недостатков у устройства обнаружено не было.

                  Совсем недавно появилось пара топиков, в которых рассказывалось, как на ARM устройства удалось поставить Puppy Linux, Arch Linux и Ubuntu. Это уникальная особенность Allwinner A10, недооценить которую тяжело, но всё-таки система физически запускается с SD карты, а не встроенного флеша. Я начал активнее работать над вопросом, и наткнулся аж на три способа прошить что-либо во флеш память устройства, что обнадёживает и, возможно открывает лазейку для заливки туда полноценного GNU/Linux. Самонадеянно замечу, что это уже следующий шаг за банальным запуском чуть допиленного образа с SD карты.

                  Цель


                  — Установить на устройство ядро Linux. Желательно самое новое. Либо самое новое из тех, которое содержит все драйвера, специфические для устройства;
                  — Поставить GNU;
                  — Поставить окружение рабочего стола;
                  — Сделать резервную копию, чтобы устройство можно было вернуть в изначальное состояние, если что пойдёт не так;
                  — Хорошенько повеселиться со сложной задачей (сравнимо с установкой первых версий USB загрузчиков на Wii и прохождению NetHack или Dwarf Fortress).

                  Средства


                  Устройство GV-2B от неизвестного китайского производителя, на базе Rockchip 2918 (сокращённо RK29) (CPU ARM Cortex A8 1ГГц + GPU Vivante GC800 600МГц), с 4ГБ флеш памяти, 512МБ оперативной памяти и неплохим количеством разьёмов.
                  SD карта 16ГБ class 10.
                  PC с Arch Linux.
                  Клавиатура.
                  Монитор.
                  Шнур HDMI-DVI для подключения монитора.
                  Куча USB шнуров, переходников итп.

                  Предостережение и самобичевание


                  Наверняка многие из читателей сделали бы то, что описано в топике или хотя бы какую-то определённую часть, быстрее и лучше, но никаких упоминаний о таком подвиге я в просторах сети не нашёл. Топик содержит много практики и совсем немного теории, лишь самое необходимое, чтобы понять о чём идёт речь и что происходит (признаюсь честно, мне и самому теории в описанных областях явно не хватает). С академической точки зрения тянет на трёхчасовую лабораторную работу. Также хочу сказать, что впервые занимаюсь всем этим, если исключить подключение диска с предварительно установленным на настольком компьютере Ubuntu к PC104 x86-совместимому одноплатнику.
                  Окунуться в миллион приключений
                  • +27
                  • 43k
                  • 9
                • Интерфейсель: Запутанная история


                    Многим из нас чуть не ежедневно приходится сталкиваться с недружным строем разнообразных разъёмов для подключения между собой различных устройств. Вспомнить хотя бы многообразие портов на некоторых компьютерах некоторое время назад, когда на одном системном блоке можно было встретить COM, LPT, PS/2, MIDI, USB и FireWire одновременно. По счастливому стечению обстоятельств, COM, LPT, PS/2 и FireWire на современных бытовых компьютерах вымерли, теперь для целей подключения периферии у нас остался только USB. Разнообразной периферии стало больше. А интерфейсов ещё больше.

                    В этом топике я оставлю за кадром беспроводные интерфейсы, а также аналоговые проводные, и расскажу о существующих проводных интерфейсах для передачи дискретных сигналов.
                    Читать дальше →
                  • Устройство GV2-B и возможности его применения

                      Заказал недавно на одном из китайских ресурсов вот такое устройство, с непретенциозным названием GV-2B.

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

                      Я колебался с выбором между GV-3 на Cortex A9 с Mali400MP (на Amlogic 8726-M) аналогичного GV-2B форм-фактора, и стиком (размером не многим более USB флешки) тоже на Cortex A9, целиком построенный на reference board от Renesas. Недостатком последнего является уменьшенное количество разьёмов подключения (есть HDMI, 1xUSB и 1xmicroSD). Изначально я планировал взять Raspberry Pi, уже был заказан корпус, USB хаб, WiFi и Bluetooth затычки, блок питания, но выяснилось, что в Россию Raspberry эксклюзивно не поставляется. Добрые ребята из ModMyPi, продающие корпуса к нему пообещали заказать несколько штук и отправлять в РФ вместе с заказом корпусов, но пока тишина.
                      Наверное, стоило взять GV-3, но, судя по обзорам, Rockchip 2918 не сильно отстаёт, а местами и быстрее Amlogic 8726-M при прочих равных.

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

                      Расскажу немного и о самом устройстве, и о том, на чём оно сделано, и как я планирую его использовать.
                      Читать дальше →
                    • Необычные клавиатуры для программистов и не только

                        Программисты бывают разные, и запросы у них разные, кто-то не пользуется мышью, кто-то не пользуется функциональными кл… авишами, кто-то не пользуется блоком цифровых клавиш, а кому-то не нужны даже и курсорные клавиши. Немало тех, кто проводит много времени за клавиатурой, страдают заболеваниями, вызванными неправильной посадкой, неправильным расположением рук, необходимостью постоянно переносить кисть с места на место, да и просто неумением печатать ничем, кроме указательных пальцев. Помимо внешнего вида клавиатуры могут отличатся и раскладкой, от стандартной Qwerty и Colemak и Dvorak, которые ещё более-менее на слуху, до экзотических видов, таких как аккордовая и стенографическая клавиатуры. Как ни парадоксально, но существуют даже безклавишные клавиатуры. Различаются клавиатуры и типом клавиш, от обычных механических, которые сильно могут отличаться качеством, клавиши с уменьшенным ходом, часто использующиеся в ноутбуках, а также сенсорные, проекционные и даже гибкие.

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

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

                        Удивиться ещё больше
                      • Сверхплавные трансформации для jQuery

                          Недавно наткнулся на jQuery Transit, плагин для плавных трансформаций и переходов. Вместо работы с таймерами, плагин использует CSS3 трансформации.

                          Работает с тем же синтаксисом, что и animate, но вместо этого стоит использовать метод transition.

                          С более старыми браузерами новые эффекты не работают, а стандартные CSS будут меняться, хотя и без какой-либо анимации. Для того, чтобы откатиться обратно на animate, достаточно использовать следующее:
                          if (!$.support.transition)
                              $.fn.transition = $.fn.animate;
                          

                          Всего 2КБ.
                        • Забег реализаций ruby '2012

                          • Translation
                          Использовался набор бенчмарков из ruby-1.9.3-p125. Все тесты запускались на:

                          ОС: OSX Lion 10.7.3
                          Процессор: 2.3ГГц i5
                          Память: 8Гб 1333 MHz DDR3
                          SSD: OCZ Vertex 3 Max IOPS SATA III 2.5" 120Гб

                          Реализации:
                          — ruby 1.8.7p249 (системный ruby)
                          — ruby 1.9.3p125
                          — ruby 2.0.0dev (2012-02-25 trunk 34796)
                          — MacRuby 0.12 (ruby 1.9.2) (Nightly build)
                          — maglev 1.0.0 (ruby 1.8.7)
                          — rubinius 1.2.4 (1.8.7 release 2011-07-05 JI)
                          — rubinius 2.0.0dev (1.9.3 e22ed173 JI)
                          — jruby 1.7.0.dev (ruby-1.9.3-p28) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_04-ea)
                          — jruby 1.6.7 (ruby-1.8.7-p357) (Java HotSpot(TM) 64-Bit Server VM 1.7.0_04-ea)
                          Читать дальше →
                        • Неназойливые регистрация и вход на сайт


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

                            Ниже о том, как сделать вход на ваш сайт ненавязчивым, автоматическим, и без особых затрат.
                            Читать дальше →
                          • Параллельная загрузка JavaScript и CSS без блокирования парсинга страницы

                              Известно, что следуя идеям старой школы, а именно, добавляя ссылки на JS и CSS в страницы, может обернуться большим временем загрузки страницы. Браузер отображает страницу по мере скачивания, но останавливается, если натыкается на тег script со ссылкой, до того момента, пока скрипт не будет загружен и выполнен. Сайты стали использовать всё большее количество скриптов, начальное отображение страницы занимает всё больше времени, к примеру, на этой странице, которую вы читаете, 13 скриптов, 7 из которых находятся в head'е. Ко всему прочему, некоторые браузеры по-прежнему придерживаются ограничений на одновременное количество загрузок с одного хоста.

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

                              Существует несколько решений, как то:
                              — поместить стили и скрипты прямо в страницу;
                              — установка аттрибутов async/defer тегу script;
                              — склеить все скрипты в один файл;
                              — помесить ссылки на скрипты в конец body;
                              — разместить все файлы на CDN/на разных хостах;
                              — свой вариант…

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

                              Началось всё, конечно, с того, что я взялся за один проект, и в какой-то момент мне показалось, что простенькая страница достаточно долго загружается, и посмотрел на график загрузки, и на результаты YSlow. Огонь на секунду потух в моих глазах, но зная, что может быть лучше, я полез искать,
                              как сделать лучше.
                            • Сравнение производительности JRuby 1.7 на OpenJDK b147 и YARV 1.9.3p0

                                После вот этого поста, сообщающего о сногсшибательном увеличении производительности JRuby в версии 1.7 при работе на OpenJDK 7u2 в 3 раза относительно предыдущих релизов.

                                Припоминая относительную тормознутость и прожорливость JRuby в 2009м, и вот такую статистику от Programming languages shootout, я решил дать JRuby очередной шанс.

                                Сравнение не претендует ни на точность измерений, ни на всеобъемлемость тестов, а лишь призвано выяснить, догнал ли JRuby YARV по производительности, или нет. На старт, внимание,
                                ...марш!
                                • –2
                                • 1.3k
                                • 8
                              • Статистика надёжности SSD носителей

                                • Translation
                                Некоторое время назад я создал опрос по надёжности SSD. Несмотря на то, что мне кажется, что результатов слишком мало, но ждать нет особого смысла.

                                Итак, для начала статистика размеров.

                                На картинке видно, что наиболее популярны форматы 120, 80 и 60, которые выпускаются только Intel.
                                Можно также заметить, что диски объёмом 120/128 особо популярны среди пользователей алтернативных операционных систем (включая OS X).

                                Продолжим данными по производителям.
                                Читать дальше →
                              • Восстанавливаем запоротый SSD

                                  Мне подумалось, что вдруг кого-то из владельцев SSD устройства этот топик наведёт на мысль о backup'е, кого-то о в целом более осторожном отношении, а кого-то избавит от общения с не слишком торопливой службой поддержки. Всё написанное относится не тдоолько к устройствам той серии и производителя, что у меня.

                                  Дней 10 назад мне случилось оставить на ночь ноут с батареей в критическом состоянии без зарядки. Я не слишком беспокоюсь о жизни батареи, но удар последовал с другой стороны. Утром, включив ноутбук в зарядку и включив его я с удивлением обнаружил, что:
                                  Operating system not found.

                                  В ВIOS'е винчестер определялся. Схватив имевшийся под рукой Ubuntu Live CD на flash'ке и вооружившись командной строкой, я приготовился к дебагу.
                                  Читать дальше →
                                • Программирование в стиле Теремка

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

                                  Каждый блинчик в меню Теремка — всего лишь набор из примерно 8ми ингредиентов. С такой простой периодической таблицей элементов компания заработала 1.9 млрд долларов в прошлом году (нет, не Теремок, а всё-таки Taco Bell).
                                  Чем больше я программирую и проектирую системы, тем больше я понимаю, что в множестве случаев можно достигнуть желаемого результата банально сочетая базовый набор инструментов, данный нам Unix. В конце концов, функциональность — это ценность, а код — это задолженность. Это утверждение обратно абсурднму тренду DevOps (разработчико-админов), исходя из которого системные администраторы начинают писать юнит-тесты и прочие вещи, чтобы помочь разработчикам, и гласит что программирование в стиле Теремка это разработчики, которые знают достаточно об администрировании (и Unix в целом) так, что они не изобретают велосипед, и приходят к простым и масштабируемым решениям.

                                  Вот конкретный пример: представьте, вам нужно скачать и записать на диск миллионы веб-страниц для дальнейшей обработки. Как это сделать? Детки-крутышки скажут, что нужно написать распределённый паук на Clojure и запустить на EC2, коммуницируя с помощью SQS или 0MQ.

                                  Ответ Теремка?
                                • Одновременная межсайтовая аутентификация без велосипеда

                                    Одновременная межсайтовая аутентификация (SSO), для чего же она нужна? Допустим у нас есть, назовём его анахроничным термином «портал», с блогами, фотками, фейлами (или файлами, кому как), назовём его fail.ru (не путать с одноимённым сервисом почты на букву М), причём всё это усложнено следующими факторами:
                                    — функционал совершенно разный;
                                    — код написан разными людьми, с испольованием разных технологий;
                                    — работает всё это на разных серверах в разных датацентрах и с разными базами данных;
                                    — сервера находятся на разных доменах.

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

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

                                    Далее мы рассмотрим самописные альтернативы, OpenID, OAuth, SAML, и почему всё это в общем случае не слишком хорошее решение, вопросы хранения аутенитификационных данных, а также некоторые вопросы безопасности в которые без хороших знаний самому лезть не стоит, что такое вообще межсайтовая аутентификация, развеем некоторые мифы.
                                    Шок, ужас, потрясение