• Вред маленьких функций

    • Перевод

    Перевод статьи Синди Шридхаран.

    В этой статье автор собирается:

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

    • Перевод


    В этой статье мы поговорим об ошибках, совершаемых программистами на Bash. Во всех приведённых примерах есть какие-то изъяны. Вам удастся избежать многих из нижеописанных ошибок, если вы всегда будете использовать кавычки и никогда не будете использовать разбиение на слова (wordsplitting)! Разбиение на слова — это ущербная легаси-практика, унаследованная из оболочки Bourne. Она применяется по умолчанию, если вы не заключаете подстановки (expansions) в кавычки. В общем, подавляющее большинство подводных камней так или иначе связаны с подстановкой без кавычек, что приводит к разбиению на слова и глоббингу (globbing) получившегося результата.


    Читать дальше →
  • Поисковые подсказки изнутри



      Ночная зала. Тысячи таинственных ликов в темноте, подсвеченных голубоватым свечением мониторов. Оглушительный треск миллиона клавиш. Подобные выстрелам автомата удары по клавишам «Enter». Зловещее стрекотание сотен тысяч мышек… Так, наверняка, играло воображение каждого разработчика высоконагруженной системы. И если его вовремя не остановить, то может выйти целый триллер или фильм ужасов. Но в данной статье мы будем гораздо ближе к земле. Мы кратко рассмотрим известные подходы к решению задачи поисковых подсказок, как мы научились делать их полнотекстовыми, а также расскажем о парочке уловок, на которые мы пошли, чтобы придать им скорости, но при этом не научить жадности к ресурсам. В конце статьи вас ждёт бонус — небольшой рабочий пример.
      Читать дальше →
    • Тюним память и сетевой стек в Linux: история перевода высоконагруженных серверов на свежий дистрибутив

        image

        До недавнего времени в Одноклассниках в качестве основного Linux-дистрибутива использовался частично обновлённый OpenSuSE 10.2. Однако, поддерживать его становилось всё труднее, поэтому с прошлого года мы перешли к активной миграции на CentOS 7. На подготовительном этапе перехода для CentOS были отработаны все внутренние процедуры, подготовлены конфиги и политики настройки (мы используем CFEngine). Поэтому сейчас во многих случаях миграция с одного дистрибутива на другой заключается в установке ОС через kickstart и развёртывании приложения с помощью системы деплоя нашей разработки — всё остальное осуществляется без участия человека. Так происходит во многих случаях, хотя и не во всех.

        Но с самыми большими проблемами мы столкнулись при миграции серверов раздачи видео. На их решение у нас ушло полгода.
        Читать дальше →
      • IBM PC своими руками — это очень просто

          image

          После того, как я воплотил свою давнишнюю мечту и все-таки (хотя и с опозданием почти на 30 лет) построил Радио 86РК, некоторое время мне казалось, что на этой части моей истории поставлена вполне достойная точка.

          Тем не менее, обнаружилось, что болезнь до конца не вылечена, и она вернулась еще более острым рецидивом. Наверное, сказались как неожиданно успешный опыт постройки 86РК, так и то, что у меня в ходе данного процесса образовалось довольно большое количество весьма притягательно выглядящих инструментов, приборов и деталей, которым очень хотелось найти применение.
          В конце концов ломка стала нестерпимой, и мне пришлось снова взяться за паяльник, а также вспомнить некоторые другие навыки из прошлого. Что из этого получилось, можно увидеть вместе с некоторым количеством картинок и очень (повторяю – ОЧЕНЬ) большим количеством букв (и даже не букв, а страниц) дальше…
          Читать дальше →
        • Краткий обзор видео по Go c FOSDEM 2015

            Одна из самых популярных конференций по open-source проектам, FOSDEM, прошла 31 января — 1 февраля, и, помимо многих dev-румов, был dev-room, целиком посвященный Go. Видео с этой конференции уже выложены в паблик, доклады по 30-40 минут каждый, и, надо сказать, доклады очень достойные — привычного и надоевшего интро для новичков в стиле «Что мне нравится в Go?» или «Как тестировать в Go» тут не было.

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



            Всего было 8 докладов по 30-40 минут, и полтора часа так называемых Lightning talks — коротких докладов, идущих один за другим.

            Сразу привожу ссылки на плейлисты:

            Youtube: www.youtube.com/playlist?list=PLtLJO5JKE5YDK74RZm67xfwaDgeCj7oqb
            FOSDEM http: video.fosdem.org/2015/devroom-go

            Итак, в порядке выступлений.
            Читать дальше →
            • +21
            • 8,3k
            • 1
          • 0 dB Бесшумный компьютер. Версия 1.0

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

            Итак, настала пора отступить от стереотипов и поменять хорошее на лучшее!

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

            Цель статьи — поделиться исследовательским и практическим опытом в компоновке компьютера, который при работе не издавал бы ни единого звука.
            Читать дальше →
          • MTBF — откуда берется «миллион часов MTBF»



              Просто удивительно то, насколько велико непонимание вокруг такого широко распространенного понятия, как MTBF (Mean Time Between Failure — «Время между сбоями» или «наработка на отказ» ), насколько смысла этой величины не понимают, зачастую, даже специалисты в области хранения данных.

              Казалось бы — что может быть проще. «Наработка на отказ» это время беспроблемной работы, от первого включения нового диска, до момента отказа, посчитанная в часах.
              Почти любой, кто поинтересуется значением, приводимым производителями, в качестве MTBF современных дисков, и с легкостью сделает несложные подсчеты, будет удивлен странной его величиной.
              На сегодня величина MTBF приводится в миллион или даже полтора миллиона часов.
              В году — примерно 8760 часов, значит, исходя из нашего понимания «физического смысла» этого значения, производитель планирует «наработку на отказ» для любого такого диска более ста лет (114 лет, для миллиона часов MTBF), что является очевидной нелепостью для каждого, у кого подыхали жесткие диски.
              Читать дальше →
            • Покупка в Apple Store с доставкой в Россию

                Для чего я пишу этот пост?


                На многих форумах не устают задавать одни и те же вопросы, суть которых сводится к одному — “Где и как дешевле купить определенный девайс?”. Некоторые, осознав, что лучший способ это заказать заграницей и в этом нет ничего сложного, решаются на покупку в иностранном интернет магазине, но получают не совсем то, что ожидали, например, недавний пост «Так ли выгодно делать покупки за рубежом (на примере ebaytoday.ru)».

                Особенно ярко это проявляется при покупке техники Apple, так как официально техника, если и поставляется, то с большой задержкой и в большинстве случаев по заоблачным ценам. Данная статья не сможет решить первую проблему в полной мере, так как Гонконг не является, так называемой “страной первой волны”, где в первую очередь появляются устройства от Apple, а вот метод борьбы со второй я и попытаюсь описать далее.

                Итак, о чем же данный пост?


                В данном посте я хочу описать весь процесс покупки техники на Apple Store HK через посредника(Shipito), начиная от основных моментов работы с shipito.com, заканчивая объединением нескольких посылок в одну и оплатой доставки в Россию. Описываемый способ может использоваться и для США, но, к сожалению, я не пробовал этого делать и, по некоторым отзывам, Apple Store US отказывается высылать на адреса Shipito, на этом моменте я постараюсь остановиться подробнее в заключении.

                UPD: получил посылку, публикую Tracking #: CP839884595HK и пишу сроки внизу статьи.
                Много текста с картинками.
              • DropMocks: самый простой способ делиться фотографиями

                  Один из неизвестных веб-проектов, сделанных сотрудниками Google — сервис DropMocks (назван, очевидно, по аналогии с Dropbox): изумительно простой и концептуальный способ публикации изображений. Просто перетягиваете один или несколько снимков с десктопа в браузер — и получаете ссылки. Работает поразительно быстро и даже без регистрации. Проще, наверное, уже невозможно. Фотогалерея с десятками фотографий создаётся за пару секунд.



                  Сервис сделан исключительно на CSS и Javascript, без применения Flash. Автор — Глен Мёрфи (Glen Murphy), UI-дизайнер браузера Google Chrome и операционной системы Chrome OS.
                • Используем portdowngrade на примере

                    Возникла необходимость откатить один из портов FreeBSD, а именно eAccelerator, с версии 0.9.6.1 до 0.9.5.3. Связано это с удалением пользовательских функций кэширования начиная с версии 0.9.6-rc1.

                    Для решения подобной задачи как раз подойдет утилита portdowngrade.
                    Без неё мы должны выполнить следующие действия:
                    • Отследить изменения порта в CVS репозитории FreeBSD.
                    • По комментариям найти все файлы предыдущего релиза (пример ревизий Makefile для eAccelerator).
                    • Загрузить эти файлы и правильно их расположить в дереве портов FreeBSD.
                    • Используя стандартные механизмы управления портами установить порт.

                    Утилита portdowngrade сама анализирует историю заданного порта и показывает список изменений. Остается лишь выбрать, какую из предыдущих версий порта мы хотим установить. Таким образом, portdowngrade автоматизирует всю, описанную выше, последовательность действий, от осмотра CVS репозитория, до копирования нужных файлов в дерево портов.

                    Рассмотрим как происходит откат порта к предыдущей версии на примере eAccelerator.

                    Читать дальше...
                  • BBCode-enabled Growl Webkit Style

                      Продолжая тему Изучаем иностранные выражения (и не только), создал отдельный плагин для Growl, который поддерживает расширенное форматирование. Я считаю что для изучения языка (а не просто выражений) надо выводить немного больше информации, чем просто строчку «оригинал — перевод», например, добавлять контекст. Но в этом случае надо как-то отделять смысловые блоки друг от друга, желательно, визуально. Данный плагин это позволяет делать.

                      Естественно, возможности использования плагина не ограничены — он поддерживает полный набор BBCode-тегов. В данной заметке я расскажу как проинсталлировать и использовать плагин.
                      Читать дальше →
                    • Ускорение загрузки Windows for fun and profit

                        image Пожалуй, начну с того, что если перегружаться 15 раз в год, то любой «тюнинг» процесса загрузки отнимает больше времени, чем будет выиграно на перезагрузках за все время жизни системы. Однако, спортивный интерес берет свое, тем более, что люди интересуется процессом оптимизации быстродействия. А загрузка оказалась самым очевидным кандидатом в примеры того, как на мой взгляд должен выглядеть этот самый процесс. Сразу скажу, что грузиться будем с 5400 rpm винта, грузиться будем в «рабочую» систему: помимо недобитой вендорской крапвари там стоит еще куча всякого типа вижуал студии, антивируса, скайпа, стима, гуглапдейтера и пр…

                        Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
                        Под катом много однообразных картинок и немножко унылого текста
                      • Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

                          Я достаточно часто сталкивался с подобным мнением и не придавал ему особого значения, но когда женский коллектив нашей организации поздравил программистов с 23-м февраля по доброму назвав их «космическими войсками», решил всё же расставить определенные акценты в данном вопросе, т.к. одна из моих профессий связана напрямую с психоанализом. Да и баш уже не молчит.

                          И что же них такого деформированного?
                        • 10 способов расположить к себе айтишника

                            Не копипаст и не перевод. Принимаются дополнения и уточнения ;)


                            1. Регулярно консультируйтесь с айтишником по поводу всего, что связано с системами сложнее веника
                            Будь то водогрей или сигнализация — это неважно. Айтишник должен разбираться во всём, что присутствует в современном мире и недоступно вам. Просто потому, что вам кажется, что он заумен. Физик ядерщик тем временем почему-то остаётся в стороне, хотя имеет к кондиционерам и дрелям ровно такое же отношение.

                            2. Задалбывайте айтишника словом «компьютерщик»
                            Ведь совсем неважно, что у каждого айтишника есть своя узкая специализация, хотя бы на верхнем уровне, «железа» и «софта», а свою специальность он уважает. Даже не забивайте себе голову мыслями о том, как бы вы, начальник отдела по продажам в секторе B2B, чувствовали себя назови кто-то вас «торгашом».
                            Читать дальше →
                          • Microsoft для PHP программистов

                              Не секрет, что у Microsoft есть технология ASP.NET (и смежные ASP.NET MVC, ASP.NET AJAX, AJAX Control Toolkit и т.д.), которая является стандартом де-факто для .net ориентированных разработчиков. В то же время количество PHP разработчиков также велико, поэтому было бы странно игнорировать такую большую аудиторию.

                              В данной статье представлен материал, который, надеюсь, поможет PHP разработчикам лучше интегрировать свои приложения с Microsoft технологиями и продуктами (если, конечно, в этом есть необходимость).
                              Читать дальше →
                            • Как правильно покупать товары на Ebay

                                image
                                Тема Ebay в связи с его русификацией становится очень актуальной, поэтому решил поделиться с хабрасообществом несколькими советами из области как правильно покупать товары на Ebay, чтобы не нарватся на мошенников и сделать правильную покупку. Большая часть описанного основана на личном опыте.
                                Читаем далее
                              • Связка Nginx+Apache, как отдавать Apache только запросы к PHP?

                                  Была поставлена задача: сделать отказоустойчивый и производительный веб-сервер. В интернете можно найти большое количество документации по настройке связки Nginx+Apache, всю технологию описывать нет смысла. Идея состоит в том, что легковесный Nginx должен отдавать весь статический контент (картинки, архивы и т.п.), запросы на генерацию динамического контента отдаються тяжеловесному индейцу Apache. Такая связка разгружает сервер и сейчас используется почти повсеместно.

                                  Как же отдавать Apache ТОЛЬКО запросы на PHP, а все остальное обрабатывать NGINX`ом?

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