Недавно мне захотелось воспользоваться такой удобной функцией в Ubuntu, как гибернация, однако вместо вожделенного спящего режима получал лишь намертво подвешенную систему. При попытке разобраться удалось лишь выяснить что проблема далеко не уникальна и «будет исправлена в обозримом будущем». После недолгого гугления и чтения форумов было принято решение воспользоваться возможностями приложения s2disk из пакета uswsusp, и воспользоваться как можно прозрачнее…
aiz @aiz
Пользователь
По следам разрушителей мифов или Почему Android тормозит, а %мобильная ОС% нет?
10 мин
175KПеревод
Добрый день, Хабр!
Мой предыдущий перевод статьи про аппаратное ускорение в Android вызвал бурное обсуждение в комментариях, основным мотивом которого был вопрос «так почему же тормозит Android?». Аналогичная ситуация наблюдается по всему интернету, и потому я привожу ниже еще один очень интересный и свежий перевод (снова из Google+), где автор Andrew Munn (о нем ниже) анализирует настоящие причины тормозов Android. С удовольствием прочитал этот пост сам и горд возможностью первым поделится им с хабрасообществом.
+182
Полупроводниковая электроника
30 мин
372KТуториал
Полупроводниковая электроника существенно изменила мир. Многие вещи, которые долгое время не сходили со страниц произведений фантастов стали возможны. Чтобы знать, как работают и чем уникальны полупроводниковые приборы, необходимо понимание различных физических процессов, протекающих внутри.
В статье разобраны принципы работы основных полупроводниковых устройств. Описание функционирования изложено с позиции физики. Статья содержит вводное описание терминов, необходимых для понимания материала широкому кругу читателей.
Иллюстраций: 34, символов: 51 609.
+470
Пишем свой первый Windows-драйвер
5 мин
135KИтак, после моей предыдущей статьи я понял что тема про программирование драйверов Windows интересна хабровчанам, поэтому продолжу. В этой статье я решил разобрать простую программу-драйвер, которая делает только то, что пишет отладочное сообщение «Hello world!» при старте драйвера и «Goodbye!» при завершении, а также опишу те средства разработки, которые нам понадобятся для того, чтобы собрать и запустить драйвер.
+91
Программирование в ring0 для Windows: вводная статья
3 мин
32KПо долгу службы мне пришлось столкнуться с программированием драйверов под Windows. Люди, которые никогда не сталкивались с этой задачей могут предположить, что драйвера — это что-то очень сложное и непосредственно взаимодействующее с железом. Отчасти они правы, а отчасти нет. В этой статье я постараюсь рассказать о том, что же из себя представляют Windows драйвера изнутри и с чем мне пришлось столкнуться. Статья является некоторым введением и не содержит «кусков кода».
+104
Быстрое шифрование ваших сообщений
1 мин
3.9KМы часто передаём по сети разные сообщения — в форумах, социальных сетях, по аське, по почте и т.д.
И зачастую хочется скрыть содержимое от посторонних глаз (да-да, в почтовых сервисах и в социальных сетях могут читать ваши сообщения, если оно попадётся в результатах внутреннего поиска по сообщениям).
Так вот. Ставить какие-то шифрующие программы для этого утомительно, затруднительно, а по большей части — просто лень.
И вот тут появляется на арене очень полезный букмарклет Encipher.it
Представляет он из себя обычный Javascript. Ставится он элементарно просто — сохраняете его в «Избранном», выносите на главную панель браузера и пользуетесь. Либо просто через drag-and-drop перемещаете на панель закладок.
Например, для того, чтобы зашифровать какое-то сообщение, то просто выделите его, нажмите на иконку «Encipher.it», который появился на панели браузера, введите пароль в появившемся окошке и ваше сообщение тут же зашифруется. Декодируется всё точно так же — выделяем зашифрованный текст, жмём на букмарклет, вводим пароль и сообщение расшифровывается.
Остаётся только договориться с тем, с кем собираетесь переписываться, об общем пароле. Естественно, что передачи пароля нужно использовать другой канал связи отличный от того, где собираетесь переписываться.
Шифрование/дешифрование происходит полностью на стороне клиента.
И зачастую хочется скрыть содержимое от посторонних глаз (да-да, в почтовых сервисах и в социальных сетях могут читать ваши сообщения, если оно попадётся в результатах внутреннего поиска по сообщениям).
Так вот. Ставить какие-то шифрующие программы для этого утомительно, затруднительно, а по большей части — просто лень.
И вот тут появляется на арене очень полезный букмарклет Encipher.it
Представляет он из себя обычный Javascript. Ставится он элементарно просто — сохраняете его в «Избранном», выносите на главную панель браузера и пользуетесь. Либо просто через drag-and-drop перемещаете на панель закладок.
Например, для того, чтобы зашифровать какое-то сообщение, то просто выделите его, нажмите на иконку «Encipher.it», который появился на панели браузера, введите пароль в появившемся окошке и ваше сообщение тут же зашифруется. Декодируется всё точно так же — выделяем зашифрованный текст, жмём на букмарклет, вводим пароль и сообщение расшифровывается.
Остаётся только договориться с тем, с кем собираетесь переписываться, об общем пароле. Естественно, что передачи пароля нужно использовать другой канал связи отличный от того, где собираетесь переписываться.
Шифрование/дешифрование происходит полностью на стороне клиента.
+31
USSD в Android
4 мин
35KUSSD (Unstructured Supplementary Service Data)— стандартный сервис в сетях GSM, позволяющий организовать интерактивное взаимодействие между абонентом сети и сервисным приложением в режиме передачи коротких сообщений.
Как известно, Android не имеет API для чтения USSD сообщений, далее я расскажу как решить эту проблему.
Как известно, Android не имеет API для чтения USSD сообщений, далее я расскажу как решить эту проблему.
+53
CubeStormer II собирает «Кубик Рубика» за 5 секунд
1 мин
6.7KВ детстве у меня было две или три этих игрушки, и я более-менее научился приводить «Кубик» в первоначальное состояние, но только в том случае, если хаос был не слишком уж и велик. В противном случае приходилось действовать при помощи грубой силы, разбирая «Кубик», и собирая его снова в буквальном смысле слова. Так приходилось делать потому, что кубик все же нужно было привести в первоначальное состояние, хотелось порядка. Возможно, на Хабре есть специалисты сборки «Кубика», но сравниться с устройством CubeStormer II вряд ли кому под силу.
+52
Django приложение на Google App Engine
4 мин
7.3KО Google App Engine не слышал уже наверное только ленивый. Использование фреймворка Django совместно с GAE дает в руки разработчика удобные инструменты для быстрого создания веб-приложений.
В этом туториале рассказывается, как создать простое Django приложение с использованием этой платформы. Предполагается, что у вас уже есть аккаунт в Google App Engine.
В этом туториале рассказывается, как создать простое Django приложение с использованием этой платформы. Предполагается, что у вас уже есть аккаунт в Google App Engine.
+21
Я.Инцидент: Почему я читал ваши СМС?
6 мин
5.4KСобытия прошедшего лета, связанные с утечками конфиденциальных данных в поисковые системы, прямо или косвенно коснулись каждого, кто следит за новостями, любезно предоставляемыми СМИ. Под «системный нож» попали поисковые роботы и персональные данные гражданина РФ. Копнем немного глубже и выясним, каким образом частная жизнь может оказаться «у всех на виду».
+78
GMate — набор полезных расширений для gedit
2 мин
8.7KРедактором по умолчанию в GNOME и, следовательно, Ubuntu является gedit. И в отличии от Блокнота в Windows он полезен :), однако выглядит он всё таки очень простым, даже после установки пакета gedit-plugins. Но на самом деле это довольно милый и хорошо расширяемый редактор, нужно просто добавить
GMate смотрит в сторону прекрасного TextMate из Mac OS X и содержит в себе подборку самых вкусных расширений, сниппетов, тем. Изначально, GMate создавался именно для Ruby-разработчиков, но пригодиться и для других разработчиков.
Если Вы любите GNOME и Ruby, то просто обязаны его поставить :).
+39
Зачем на самом деле нужен мозг
10 мин
52KВ продолжение предыдущего топика "Как на самом деле работает мозг". На написание данного поста меня побудила, с одной стороны, замечательная книга «Grooming, Gossip, and the Evolution of Language» Робина Данбара (Robin Dunbar), а с другой — очередная порция «полезных» и «умных» советов в GTD и других блогах.
Для затравки — небольшая логическая задачка. Дан набор карточек; на каждой из них на одной стороне написана буква, на другой — цифра.
На столе лежат четыре карточки: «А», «Д», «5» и «6». Вам говорят: если на карточке (из числа лежащих на столе) на одной стороне гласная, то на обороте — чётная цифра. Какие из карточек достаточно перевернуть, чтобы однозначно подтвердить или опровергнуть это утверждение?
Подумайте немного, запишите ответ на бумажке и добро пожаловать под кат.
Для затравки — небольшая логическая задачка. Дан набор карточек; на каждой из них на одной стороне написана буква, на другой — цифра.
На столе лежат четыре карточки: «А», «Д», «5» и «6». Вам говорят: если на карточке (из числа лежащих на столе) на одной стороне гласная, то на обороте — чётная цифра. Какие из карточек достаточно перевернуть, чтобы однозначно подтвердить или опровергнуть это утверждение?
Подумайте немного, запишите ответ на бумажке и добро пожаловать под кат.
+192
Как на самом деле работает мозг
4 мин
98KНа хабре довольно популярны статьи о различных техниках повышения работоспособности, улучшения памяти, самомотивации и т.д. и т.п. Увы, зачастую авторы этих статей совершенно не представляют себе, что такое мозг, как он работает и почему всё устроено именно так.
Прежде всего, необходимо понять вот что:
Прежде всего, необходимо понять вот что:
+232
Работа с GtkTreeView и GtkListStore с помощью редактора Glade для начинающих
17 мин
14KВ этом посте я хочу рассказать про работу с очень интересными виджетами (объектами) библиотеки графических интерфейсов GTK+: GtkTreeView и GtkListStore. GtkTreeView — виджет для отображения деревьев и списков. GtkListStore — виджет представляющий модель списка.
Создавать их я буду с помощью редактора Glade, в интернете очень мало материала именно по работе с виджетами GTK+ (и особенно с этими) с помощью этого редактора интерфейсов. Я уже писал немного про работу с ним. Те, кто никогда с ним не работал — советую прочитать этот пост.
Возможностей работы с этими виджетами очень много и я планирую написать еще несколько статей по этой теме (если это конечно заинтересует читателей). Этот пост расчитан на начинающих еще только знакомиться с библиотекой GTK+ и её возможностями. Поэтому сегодня я рассмотрю достаточно простой пример.
Смысл его будет в том, что будем добавлять данные в объект класса GtkListStore (я буду иногда называть его хранилищем) о персонаже компьютерной игры и выводить их на экран в наглядной форме с помощью GtkTreeView.
Создавать их я буду с помощью редактора Glade, в интернете очень мало материала именно по работе с виджетами GTK+ (и особенно с этими) с помощью этого редактора интерфейсов. Я уже писал немного про работу с ним. Те, кто никогда с ним не работал — советую прочитать этот пост.
Возможностей работы с этими виджетами очень много и я планирую написать еще несколько статей по этой теме (если это конечно заинтересует читателей). Этот пост расчитан на начинающих еще только знакомиться с библиотекой GTK+ и её возможностями. Поэтому сегодня я рассмотрю достаточно простой пример.
Смысл его будет в том, что будем добавлять данные в объект класса GtkListStore (я буду иногда называть его хранилищем) о персонаже компьютерной игры и выводить их на экран в наглядной форме с помощью GtkTreeView.
+45
Про техники оптимизации
24 мин
11KПоучительная история о техниках оптимизации наглядно.
Объявим в рамках топика небольшой конкурс по архитектурно-ориентированной оптимизации программного обеспечения.
Вкратце, код состоит из пачки функций, производящих невнятные на первый взгляд манипуляции с исходными данными, и примочки-драйвера, который n раз запускает неоптимизированную версию, затем оптимизированную, сравнивает насчитанные циферки, и, в случае их совпадения, выдает отношение времени выполнения. Вот так:
Executing original code… done
Executing optimized code… done
Checking results… PASSED
Number of runs: 3
Original code average time: 11.954537 sec.
Optimized code average time: 1.052994 sec.
Speedup: 11.35
Разрешено использовать любые техники оптимизации, компилятор GCC с любыми опциями, и, скажем, сервер с двумя четырехъядерными процессорами Intel Xeon E5420 2.5 GHz.
Вот, кстати, код:
Техзадание
Объявим в рамках топика небольшой конкурс по архитектурно-ориентированной оптимизации программного обеспечения.
Вкратце, код состоит из пачки функций, производящих невнятные на первый взгляд манипуляции с исходными данными, и примочки-драйвера, который n раз запускает неоптимизированную версию, затем оптимизированную, сравнивает насчитанные циферки, и, в случае их совпадения, выдает отношение времени выполнения. Вот так:
Executing original code… done
Executing optimized code… done
Checking results… PASSED
Number of runs: 3
Original code average time: 11.954537 sec.
Optimized code average time: 1.052994 sec.
Speedup: 11.35
Разрешено использовать любые техники оптимизации, компилятор GCC с любыми опциями, и, скажем, сервер с двумя четырехъядерными процессорами Intel Xeon E5420 2.5 GHz.
Вот, кстати, код:
+78
Достала избыточность С++
3 мин
20KПривет Хабр,
Меня вводит в ступор С++. Вот просто, зависаю над монитором, смотрю в окно, попиваю чай… И начинаю жалеть за бесценно проведенные годы за изучением стандарта С++, попытками написать свой фронт-энд компилер. Эти мудреные книжки С++ In Depth. Как же я негодовал, когда не понимал кода из книги Александреску. Как записывал все постулаты Страуструпа и иже с ними. Зачем? Вот спрашиваю себя, зачем я теперь все это знаю. Более, я хочу сказать, что этот язык нещаден для гуру, не с медицинской, не с экономической точки зрения! Он не оправдывает усилий, вложенных в его изучение — раз. На практике, он экономически не выгоден — два. И нервные клетки подтвердят, что сопровождать чужой плюснутый код — бывает опасно для здоровья -три. Пусть тут будут рандомно разбросаны метафоры, пишу как есть, из опыта.
Меня вводит в ступор С++. Вот просто, зависаю над монитором, смотрю в окно, попиваю чай… И начинаю жалеть за бесценно проведенные годы за изучением стандарта С++, попытками написать свой фронт-энд компилер. Эти мудреные книжки С++ In Depth. Как же я негодовал, когда не понимал кода из книги Александреску. Как записывал все постулаты Страуструпа и иже с ними. Зачем? Вот спрашиваю себя, зачем я теперь все это знаю. Более, я хочу сказать, что этот язык нещаден для гуру, не с медицинской, не с экономической точки зрения! Он не оправдывает усилий, вложенных в его изучение — раз. На практике, он экономически не выгоден — два. И нервные клетки подтвердят, что сопровождать чужой плюснутый код — бывает опасно для здоровья -три. Пусть тут будут рандомно разбросаны метафоры, пишу как есть, из опыта.
+275
Алгоритм: Как оформить баг на ядро Linux
4 мин
2.3KМой опыт в разработке и отладке Parallels Virtuozzo Containers позволил обобщить и сформулировать список пожеланий к описанию проблемы пользователя, который позволяет существенно уменьшить время диагностирования и решения проблемы в ядре операционной системы Linux. Прошу отметить, что при всей очевидности некоторых рекомендаций многие участники open-source сообщества по-прежнему пренебрегают ими. Алгоритм представлен подкатом.
+89
Gnome 3 — конец близок?
5 мин
42K Как-то один мой знакомый обречённо рассказывал, что вскоре будет подыскивать другой дистрибутив для работы. По его словам, разработчики Ubuntu собирались провести смелый эксперимент по замене классического gnome на интерфейс Unity. Сам я на этот счёт не особо волновался, так-как пересел с Ubuntu на Fedora уже довольно давно. Но, на всякий случай, порылся в интернете — узнал, что ждёт мой дистрибутив. Как выяснилось, Fedora 15 должна была основываться на долгожданном Gnome 3.
+70
Qt & Ubuntu. Настраиваем среду для компиляции win32-приложений
3 мин
28KЭта мини-статья рассказывает об одном из способов осуществления кросс-компиляции приложений Qt для платформы win32.
+64
Интересная фича Grub2: загрузка из ISO-файла
3 мин
73KСобственно, захотелось мне посмотреть на Unity. По картинкам и видео – вроде ничего. Да вот беда. В виртуальной машине его не запустишь — 3D требует. Сам я KDEшник. Основной ОС на ноутбуке является kubuntu. Ну, думаю, можно поставить второй системой. Свободное место, вроде, есть.
Ок. Качаю образ Natty,прожигаю а вот хрен. Оказалось, не работает мой CD-ROM. Ноут уже довольно старенький. Загрузки с флешек в биосе тоже нет. После кратковременной паники было найдено решение.
Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них.
Ок. Качаю образ Natty,
Оказалось, что grub2 научился понимать формат ISO 9660 и может загружать ОС прямо из ISO-образа, расположеного на жестком диске. Как выяснилось далее, не все системы готовы к такому повороту событий. Многие по тем или иным причинам приходят в замешательство при загрузке. К счастью, Ubuntu не является одной из них.
+101
Информация
- В рейтинге
- Не участвует
- Откуда
- Россия
- Зарегистрирован
- Активность