• Продвинутое использование объектов в JavaScript

    • Перевод
    Этот пост выходит за рамки повседневного использования объектов в JavaScript. Основы работы с объектами по большей части так же просты, как использование JSON-нотации. Тем не менее, JavaScript дает возможность использовать тонкий инструментарий, с помощью которого можно создавать объекты некоторыми интересными и полезными способами и который теперь доступен в последних версиях современных браузеров.
    Читать дальше →
  • «Намертво прибитая к ядру» графическая подсистема



      То, что принято называть «графикой в ядре» обычно относится к win32k. Win32k.sys представляет собой ядерную часть графической подсистемы. Загружается пользовательским процессом smss.exe в процессе инициализации всех остальных подсистем. Путь к исполняемому образу для «kmode» подсистемы прописан здесь:


      Как же это происходит?
      Читать дальше →
    • Ускорение загрузки Windows for fun and profit

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

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

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

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

          И что же них такого деформированного?
        • Быть Чубаккой, или невербальная коммуникация. Немножко практики

            Лавра Федотовича это затруднение наконец утомило, и, прервавши оратора, он произнес только одно слово:
            — Неубедительно.
            Раздался тяжелый удар. Большая Круглая Печать впилась в мою заявку.
            А. и Б. Стругацкие. «Сказка о Тройке»



            Доброе утро, Хабр.

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

            Вопрос, зачем коммуницировать, вроде бы уже отпал, но две строчки напишу о том, зачем нужна невербальная составляющая, и что это за зверь. Причем заранее прошу прощения у тех, кто и так прекрасно этот термин понимает.
            В каждом сообщении есть две части: собственно текст и… все остальное. Имеющее свойство, в отличие от текста, воздействовать прямиком на подсознание слушателя, оставляя в нем надежные следы. Все, что кладется в подсознание, будучи правильно положенным, твердо поддерживает сообщение, передаваемое сознанию. Неправильное сообщение, передаваемое на подсознательном (читай: невербальном) уровне, может войти в жестокое противоречие с произносимым текстом и тем самым нанести ему, тексту, тяжелый урон в головах аудитории. Для иллюстрации, — ну не знаю, — вообразите, что робот Марвин из HHTTG сказал вам, как он искренне счастлив вас видеть.

            В число всего, что воспринимается в основном на подсознательном уровне, входит: интонация, темп речи, дикция, эмоциональное наполнение, жесты, поза, выражение лица и бла-бла-бла из Дейла нашего Карнеги о том, что соответствие внешнего вида ожиданиям аудитории решает. Честное слово, про внешний вид я сегодня не буду, по-моему, эта тема уже всем набила оскомину. Про что буду, – так это про интонацию, эмоциональное наполнение, темп речи, обращение с аудиторией.

            Микро-тренинг #1
          • Монолог инкогнито с одной айтишной конференции

              Disclaimer. Монолог ниже является стенограммой выступления одного из докладчиков на одной из айтишных конференций. Автор поста всего лишь публикует его здесь с разрешения докладчика.

              Всем привет!

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

              Меня зовут Сергей. Чтобы сказать про себя «я плохой докладчик», нужно хотя бы им, докладчиком, быть. Я вообще не оно. Свою первую и одну из последних презентаций я провел в 18 лет в Испании, перед аудиторией человек в 100. Мой весьма средний на тот момент английский синхронно переводили на испанский, народ зевал и почесывал репы, ожидая когда ЭТО недоразумение закончит блеять и объявится кофебрейк.

              Сказать что мне было стыдно — это ничего не сказать, красный как рак, я свалил вторым выходом, забился в свой номер и боялся показаться на глаза. Всякие public professionals типа Карнеги сказали бы «позор!» и «never again!». Для себя я решил — все что угодно, хоть жигулевское пиво по пятницам, только не публичные экзекуции

              К чему это я? Многие, глядя на ИТшников, путают скромность со стеснительностью. Да и фиг с ними. Главное — чтобы мы сами не путали. Я — стеснительный, поэтому буду смотреть в пол и читать по бумажке. Я бы выпил, конечно, для смелости, граммчиков сто (а лучше сто пятьдесят), но организаторы запретили. Ну что, пусть фигово, зато честно!

              Я владелец компании П, в которой мы уже лет 13 или 14 занимаемся разработкой всякой фигни, про которую никто не слышал. Не имея таланта делать что-то красивое и эстетичное, мы довольствуемся подводной частью айсберга: софт-свитчи и клиенты для IP-телефонии, аппаратно-программные решения для высоконагруженных систем обработки контента, системы имперсонализации web и e-mail для виртуального присутствия, облачное видеонаблюдение, несколько справочных и торговых интернет-порталов, ну и еще пара проектов в стадии стартапа, говорить о которых рано, потому что стыдно

              Все о чем собираюсь сказать, основано исключительно на личном опыте, относится к маленьким компаниям и совершенно не обязано работать в больших, хотя иногда бывает. За 25 лет, отданных айти-бизнесу, я умудрился побывать в разных шкурах, от техника, подносящего кофе джуниор девелоперам, до владельца компаний, которому не надо вставать в 8. Посредине между этими сомнительными гранями было, наверное, два главных увлечения — язык Си и темное ирландское пиво. Увы, и то и другое со временем пришлось сильно урезать.
              Читать дальше →
            • Беспроводной звук. Часть 1. Препарируем Bluetooth

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

                Такая история со мной приключилась в момент обзора с коллегой r3s потребительской беспроводной Bluetooth-акустики Klipsch KMC 3. Я столкнулся с ситуацией, когда «беспроводной» аудиопоток начинал безбожно прерываться, стоило лишь мне расположить источник звука у себя за спиной. Пищи для размышлений мне подкинула другая Bluetooth-аудиосистема, которая в тех же условиях вела себя куда лучше. Такая простая проблема выродилась в нырок с головой во внутренности протокола Bluetooth и детали передачи аудио с его помощью.

                Под катом первой части цикла статей мы в легкой и непринужденной форме познакомимся с основными протоколами стека Bluetooth, покопаемся в дампе соединения источника и приемника звука, разберемся в причинах конфликта Bluetooth и Wi-Fi и обнаружим корень моей проблемы — прерывающегося звука.
                Читать дальше →
              • Списки из lambda-функций

                • Перевод
                Примечание переводчика: Оригинал здесь. Все примеры в оригинале написаны на JavaScript, но я решил перевести их на Scheme. Уверен, менее понятно не стало, но зато видна вся красота этого языка.
                UPD: добавил ко всем примерам справа еще и оригинальные примеры на JavaScript.


                Если закрыть глаза на практическую сторону компьютеров — размер, вес, цену, тепло и т.п., что же на самом деле должен уметь язык программирования? Давайте исследуем этот вопрос.

                Для понимания примеров в этой статье необходимы базовые понятия о функциях в LISP (Scheme). Если вы понимаете, что напечатает этот код, можно смело читать дальше:

                (define x 10)
                
                (define (f y)
                    (display x) (newline)
                    (display y) (newline)
                )
                
                (define g f)
                (f 1)
                (g 2)
                

                var x = 10;
                
                var f = function(y) {
                    console.log(x);
                    console.log(y);
                }
                
                var g = f;
                
                f(1);
                g(2);
                


                Эта статья — просто разминка для мозгов, а не то, что можно было бы использовать в реальном коде. Но как гитарист играет гаммы, которые он никогда не использует в настоящей песне, так же и программистам стоит разминать свои мозги время от времени.
                Читать дальше →
                • +37
                • 7,9k
                • 9
              • Основной цикл в Javascript



                Все мы слышали про ajax и node.js. Они прочно обосновались уже не просто в словарном запасе, но и в наборе инструментов веб-разработчика. Ajax — асинхронное подтягивание данных с сервера на страницу, node — фреймворк с асинхронным IO. Но как в таком однопоточном языке, как Javascript, реализуется та самая асинхронность?

                Вы, наверное, уже догадались из заголовка, речь пойдет об основном цикле («main loop»).
                Читать дальше →
              • Генерация случайных лиц в PaperJS



                  Синтетические изображения обычно выглядят неестественно, не по-человечески, и тренированный глаз сразу их отличает от настоящих. Проект Weird Faces Study — это попытка объединить традиционную технику «человеческого» рисунка и компьютерные алгоритмы. Результат — сгенерированные компьютерные лица, каждое из которых уникально и выглядит как оригинальная авторская работа.
                  Читать дальше →