Архив рубрики: Linux

Честный обзор нетбука RoverBook NEO U800L, часть 2.

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

Давайте не будем жлобами — все таки чужой труд стоит ценить!


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

Тормозное верхнее меню Thunderbird

В общем после недавнего преснопамятного обновления Альта в котором у всех возникли проблемы Firefox (у нас то коммунистов таких проблем не было, ибо 5.1 бранч ) у некоторых людей появились проблемы с верхним меню.

У меня лично проблема вылезла на Thunderbird (хотя в Firefox тоже присутствовала согласно логам в консоли, но жить почему-то не мешала) — любое нажатие на кнопки верхнего меню выливалось в 10-15 секундные задержки.
Читать

fdisk — Partition table entries are not in disk order, или восстанавливаем порядок разделов

Иногда может случиться так, что порядок разделов в таблице разделов меняется. Таким образом, что раздел (партиция) с номером x+2 оказывается физически между разделом x и x+1. Например, так, как это показано ниже: Читать

Введение в прикладное программирование под GNU/Linux

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

Аудитория

Эта статья расчитана на два вида читателей. Во-первых, это люди, имеющие опыт программирования под MS Windows, но не имеющие такого опыта под GNU/Linux. Во-вторых, это люди, не имеющие опыта программирования вовсе. Однако, я предполагаю, что читатель в общем знаком с общепринятой в программировании терминологией, и ему не нужно объяснять, например, что такое «программа», «функция», «компилятор» или «отладка».

Средства разработки

Я буду рассматривать разработку с использованием тех средств, которые являются наиболее «родными» для GNU/Linux. К ним относятся:

  • Язык программирования C

  • Командная оболочка bash

  • Текстовые редакторы Vim и Emacs

  • Компилятор GCC

  • Отладчик GDB

  • Утилита для сборки проекта GNU make

  • Система управления версиями Git

  • Оконная система X11

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

Языки программирования

Наиболее «родным» языком программирования для GNU/Linux является C. Это обусловлено следующими факторами:

  • GNU/Linux заимствует многие идеи (практически, идеологию) операционной системы UNIX;

  • Операционная система UNIX была написана на языке C (собственно, этот язык создавался именно для написания этой ОС);

  • Соответственно, ядро Linux и системное окружение GNU написаны тоже на C.

Ниже я буду рассматривать разработку с использованием языка C. Однако, этот выбор не является догмой. Другими популярными при разработке под GNU/Linux языками являются C++, Python, Perl. Конечно, могут использоваться и любые другие языки.

Среда разработки

В течение последних двух десятилетий очень широкое распространение получили т.н. IDE — интегрированные среды разработки. Такая среда включает в себя текстовый редактор, компилятор, отладчик, средства сборки проекта и мн.др. Такие среды есть и под GNU/Linux (наиболее популярны Eclipse, NetBeans, IDEA, KDevelop, Anjuta). Однако, история разработки под UNIX-подобные системы показывает, что IDE не являются не только единственным, но и наиболее эффективным средством разработки. Практически, правильный ответ на вопрос «какая самая лучшая IDE под GNU/Linux» — это «GNU/Linux это и есть IDE».

Часто можно встретить мнение, что большой проект без IDE разрабатывать невозможно. Это мнение легко опровергается. Первые версии UNIX писались даже не в Vim (его тогда ещё не было), а в Ed. Это так называемый «построчный» текстовый редактор, в котором вы можете редактировать за раз только одну строку текста. Весь файл на экране не отображается. В случае с UNIX по-другому и быть не могло — у разработчиков не было никаких экранов, а общение с системой осуществлялось при помощи телетайпов. Современное ядро Linux пишется в основном в редакторах Emacs и Vim.

Многие утилиты UNIX вызывают «текстовый редактор по умолчанию». Команда, запускающая текстовый редактор по умолчанию, берётся из переменной окружения $EDITOR. Некоторые утилиты смотрят сначала в переменную $VISUAL, и, лишь если она не установлена, в переменную $EDITOR. Это исторически сложившееся поведение: к старым компьютерам зачастую не было подключено никакого дисплея, а только телетайп, поэтому запускать экранный (визуальный) редактор смысла не было. В современных дистрибутивах обычно по умолчанию оказывается EDITOR=vi или EDITOR=nano. Указать использование другого редактора для одной команды можно так:

EDITOR=emacs some-command

Чтобы использовать нужный редактор по умолчанию всегда, нужно добавить в файл ~/.profile строчку типа

export EDITOR=emacs

Исторически сложилось так, ч

Ubuntu — возвращаем F10 в MC (Midnight Commander)

К сожалению, в Ubuntu 11.04 и 11.10 нажатия кнопки F10 перехватываются Unity. Это очень разжражает, так как в Midnight Commander’е эта кнопка часто используется, например, для выхода.
Избавиться о перехватов Unity просто. Для этого надо выполнить следующие действия:
1) Устанавливаем compizconfig-settings-manager:

$ sudo aptitude install compizconfig-settings-manager

2) Далее, запускаем его (в меню приложений находим compizconfig-settings-manager)
3) Вводим в фильтре Unity и находим Ubuntu Unity Plugin:

4) Снимаем галочку либо нажимаем на него и переназначаем клавишу вызова. Я выбрал Ctrl+Shift+F10

 

Автор: AlexWinner

PHP MongoDB — получаем _id только что созданной записи (MongoID)

Ситуация: мы хотим получить _id только что созданной нами записи. То есть, например, мы создали юзера и хотим знать айдишник, который MongoDB присвоила ему. Делается это очень просто:
Добавляем элемент:

$x = array(‘foo’ => ‘bar’);
$c->insert($x); 

Проверяем внутренности $x:

var_dump($x);
array(2) {
  [«_id»]=>
  object(MongoId)#2 (0) {
  }
  [«foo»]
  string(7) «bar» 

 

Таким образом, для того, чтобы узнать _id, достаточно вывести $x[‘_id’]

Автор: AlexWinner