• Видео всех лекций с «Курсов информационных технологий» от «Яндекса»

      Для тех, кто не смог посетить Курсы информационных технологий, видеоролики всех лекций выложены в свободный доступ. Это лекции по полтора-два часа на базовые темы: операционные системы; архитектура ЭВМ; устройство GNU/Linux; системы хранения данных; файловые системы; сети и протоколы; виртуализация; безопасность.
      Читать дальше →
    • «Намертво прибитая к ядру» графическая подсистема



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


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

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

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

             

            Only registered users can participate in poll. Log in, please.

            Допустимо ли использование CSS каркасов при разработке для веба?

            • 15.4%Допустимо только в случае, когда дизайнером подготовлен макет с использованьем стандартной сетки фреймворка.369
            • 8.7%Допустимо. Предпочитаю использовать 960gs.210
            • 0.4%Допустимо. Предпочитаю использовать Baseline.9
            • 2.5%Допустимо. Предпочитаю использовать Blueprint.60
            • 22.2%Допустимо. Предпочитаю использовать Bootstrap.534
            • 11.6%Допустимо. Предпочитаю использовать jQuery UI.279
            • 0.5%Допустимо. Предпочитаю использовать YUI CSS Grids.13
            • 26.3%Считаю использованье CSS каркасов допустимым, но не предпочтительным вариантом.631
            • 12.4%Считаю использованье CSS каркасов — проявлением низкой квалификации верстальщика.298
          • Паттерны ООП в метафорах

              Большинство литературы посвященной паттернам в ООП (объектно-ориентированном программировании), как правило, объясняются на примерах с самим кодом. И это правильный подход, так как паттерны ООП уже по-умолчанию предназначаются для людей, которые знают что такое программирование и суть ООП. Однако порой требуется заинтересовать этой темой людей, которые в этом совершенно ничего не понимают, например «не-программистов» или же просто начинающих «компьютерщиков». Именно с этой целью и был подготовлен данный материал, который призван объяснить человеку любого уровня знаний, что такое паттерн ООП и, возможно, привлечет в ряды программистов новых «адептов», ведь программирование это на самом деле очень интересно.
              Статья предназначена исключительно для новичков, так что «старожилы» ничего нового для себя не узнают. В основном статья описывает известные паттерны из книги «Приемы объектно-ориентированного программирования. Шаблоны проектирования.», но более популярным и простым языком.
              Читать дальше →
            • Полупроводниковая электроника

              • Tutorial


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



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





              Иллюстраций: 34, символов: 51 609.



              Читать дальше →
            • Пишем примитивный и никому не нужный компилятор

                Я считаю, что каждый программист должен написать свой компилятор.

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

                В посте мы рассмотрим, как можно написать свой компилятор C-подобного языка меньше чем за час, исписав всего 300 строчек кода. В качестве бонуса, сюда входит и код виртуальной машины, в байткод которой будет компилироваться исходник.
                Читать дальше →
              • Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

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

                  1. Почему стоит начать работать «в белую»
                  2. Почему на начальном этапе ИП лучше ООО
                  3. Что делать, если партнёров несколько

                  Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
                  под кат
                • Студенческий конкурс по мейнфрейм-программированию

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

                    По этой причине компания IBM уже в третий раз, на отечественных просторах, организует студенческий конкурс по мейнфрейм-программированию на платформе System Z — «z/Мастер 2011», который проводится в России, на Украине и в Казахстане. Конкурс стартовал 1-го ноября, но еще в течение месяца, до 12 декабря, у всех желающих есть возможность зарегистрироваться (это можно сделать во вкладке "Студентам" страницы конкурса или на отдельной странице).

                    Собственно, самым главным стимулом для участия в конкурсе является то, что он обладает учебной направленностью — для победы совершенно не обязательно иметь начальный опыт работы с мейнфреймом IBM, так как организаторы предоставляют каждому участнику доступ к реальной машине, а в ходе выполнения заданий все студенты получают необходимую теорию и практику. Единственное, что нужно для победы — стремление, способность и желание научиться.
                    Читать дальше →
                    • +13
                    • 5.8k
                    • 2
                  • Минимальная Arduino своими руками

                      Arduino — это хорошо, когда хочется быстро реализовать идею, не заморачиваясь мелочами. Но когда идея проверена, лишняя функциональность начинает просто мешать.
                      Собирая робота на гусеничном шасси, я столкнулся с тем, что бутерброд из Arduino + MotorShield + Sensor Shield плюс ко всему аккумулятор и прочие компоненты обросли проводами и стали с трудом помещаться на не самом крошечном шасси. Городить еще кучу шилдов, чтобы избавиться от лишних проводов не хотелось.
                      Появилась идея избавиться от всего, что в Arduino не требуется в готовом девайсе. Попутно хотелось снизить стоимость робота.
                      Многих интересующихся электроникой отпугивает еще и стоимость Arduino в магазинах. С ebay и китайских магазинов посылка идет долго, изобретательский пыл успевает остыть, поэтому приобретение откладывается «на потом», «когда сын подрастет». Поэтому я решил собрать Arduino-совместимую плату из деталей, которые всегда можно купить в городе.
                      В итоге я получил Arduino-совместимую плату, стоимостью в 210 рублей на макетной плате и в ~270 рублей в готовом для наращивания функционала виде.
                      Minimalist Arduino
                      «Minimalist Arduino»
                      С нуля до полной готовности собирается с дешевым 40Вт паяльником за 1 выходной без каких-то особых навыков.
                      Читать дальше →
                    • South — новый клёвый syncdb

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

                        А добавление или удаление полей в уже существующие модели превращается в настоящий pain in ass — приходится «подсматривать» за тем, как ORM создала бы таблицы заново (manage.py sqlall) и вручную делать ALTER TABLE для изменившихся столбцов таблиц.

                        То есть, ORM в Django так или иначе предполагает активный трах с SQL shell, потому что в процессе прототипирования эти поля в моделях изменяются просто пачками.

                        Погуглив, я нашел несколько способов...
                      • Ещё более современный C++

                        • Translation
                        “C++11 feels like a new language.” – Bjarne Stroustrup

                        Не так давно Герб Саттер открыл на своём сайте новую страничку — Elements of Modern C++ Style, где он описывает преимущества нового стандарта и то, как они повлияют на код.
                        А под катом прячется вольный перевод содержимого этой странички.
                      • Создание языка программирования с использованием LLVM. Часть 1: Введение и лексический анализ

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

                        Целью данного учебника является постепенное представление нашего языка, описание его пошагового создания. Это позволит нам охватить достаточно широкий спектр вопросов проектирования языков и использования LLVM, попутно показывая и объясняя код без огромного количества ненужных деталей.
                        Читать дальше →
                      • Пишем свой драйвер под Linux

                        image

                        Хочу признаться сразу, что я вас отчасти обманул, ибо драйвер, если верить википедии это компьютерная программа, с помощью которой другая программа (обычно операционная система) получает доступ к аппаратному обеспечению некоторого устройства. А сегодня мы создадим некую заготовку для драйвера, т.к. на самом деле ни с каким железом мы работать не будем. Эту полезную функциональность вы сможете добавить сами, если пожелаете.

                        То, что мы сегодня создадим, корректнее будет назвать LKM (Linux Kernel Module или загрузочный модуль ядра). Стоит сказать, что драйвер – это одна из разновидностей LKM.

                        Писать модуль мы будем под ядра линейки 2.6. LKM для 2.6 отличается от 2.4. Я не буду останавливаться на различиях, ибо это не входит в рамки поста.

                        Мы создадим символьное устройство /dev/test, которое будет обрабатываться нашим модулем. Хочу сразу оговориться, что размещать символьное устройство не обязательно в каталоге /dev, просто это является частью «древнего магического ритуала».

                        Читать дальше →
                      • Псевдографика в консоли Unix/Linux. Немного больше User Friendly чем вы могли себе позволить

                        Привет! Бывает, хочется забыть о «скучной» консоли, разбавить ее хоть капелькой интерактива, особенно если часто приходиться делать одни и теже операции и тем более если вы пишите для облегчения своей участи скрипты. Итак, псевдографика. За мной читатель, я покажу тебе такую консоль!
                        Читать дальше →