Архив метки: компьютерное

Шутить про vim не сложно

Сегодня увидел на баше шутку про мой любимый редактор Vim. И она мне понравилась. Про vim же!

Oleg: И вот встала задача, пронумеровать строки. Ну а в виме конечно почти на любое твоё желание есть несколько способов его реализации.
Oleg: Вот такая команда нумерует строки в выделенном тексте:
‘<,'>!nl -ba -nrz -w2 -s” ”
Oleg: Как эту *** можно запомнить, если юзаешь раз в две пятилетки?
Maxim: я сначала подумал что ты скажешь, мол, какая *** команда и главное простая. Хотел даже проигнорировать. А потом дочитал

А потом я понял, что у человека, видимо, магическое мышление, а на самом деле тут все просто. Если выучить слова, а не запоминать иероглифы:
– в выделенном фрагменте ‘<,'>
– запустить внешнюю команду !
– нумерация строк. nl – number lines. Главное знать, теоретически, что такое существует. Вы же про cut, cat, wc знаете?
– с заполнением нулями. -nrz
– шириной два. А что еще может быть? -w2
– с разделителем пробел. Очевидно же! -s” ”

И только -ba пришлось смотреть в man. Ничего сложного – нумеровать все строки, включая пустые. И вот из-за такой мелочи у vim репутация сложного редактора!

Qt и STL алгоритмы

Если вы счастливый пользователь Qt 5, то спокойно используйте STL алгоритмы с Qt контейнерами.

Historically, Qt used to provide functions which were direct equivalents of many STL algorithmic functions. Starting with Qt 5.0, you are instead encouraged to use directly the implementations available in the STL; most of the Qt ones have been deprecated (although they are still available to keep the old code compiling).

RTFM

А иначе, если у вас тоже Qt 4-ой версии, невинное копирование приводит вас к злобнуму SegFault:

Но, как известно, если очень хочется, то можно:

Изумительна фича Qt+gcc

Попортила мне кровь, съела пару часов и заставила сомневаться в собственной адекватности.
Приведенный ниже код не компилируется. Причем не всегда, а при определенных условиях

  • gcc
  • Qt 4.8.6 (?)
  • не оптимизированная сборка (-O0)

А вот и замечательный кусочек из исходников Qt. Не кодите, дети, reinterpet_cast.

Книги по программированию

Вы не программист, если ни разу не начинали читать “Искусство программирования” Дональда Кнута.
habrahabr

Получил провокационный запрос “посоветовать литературу (программистскую/алгоритмическую), которую обязательно надо прочитать”. И спешу вас тоже озадачить. Основное направление – С++, поэтому PHP и Питон не обсуждаем. Зачеркнутое – я рекомендую не читать.
Читать далее Книги по программированию

Прикупил Android…

Samsung Galaxy SIISamsung Galaxy SII (GT-I9100)

Шутки про Android оказались шутками – без подзарядки 3 дня и 4 часа, осталось 33% батареи.
Прошивка 4.1.2, батарейке 2 года.

Да, выключен wifi и gprs, но опасность остаться без телефона к концу дня сильно преувеличена

“Как пасти котов”, Дж. Ханк Рейнвотер

“Наставление для программистов, руководящих другими программистами”
Питер, 2011
Перевод 2006, Ю. Гороховский

Вроде бы классика, название все время кем-нибудь упоминается. Поэтому решил прочитать. И теперь однозначно могу рекомендовать. Рекомендовать – не читать данную книгу. Много воды, вроде бы по делу, но воды. Тот, кто проработал больше пары лет, и сдал больше пары проектов, это уже все знает. Или догадывается. Плюс несколько натужные шутки (не все, но большинство), странноватые примеры из жизни, столь любимые американскими авторами, жуткий код с самооправданиями в конце книги.

Перевод тоже какой-то никакой. Местами глаз цепляется за неуклюжести, но, возможно, так в оригинале. Здесь точно не полезу проверять. Кстати, интересно, был ли в 2006 году русский термин “евангелист”, в значении “пропагандист технологии“? Предложенный переводчиком “благовестник продукта” как-то мне совсем не понравился, а “проповедник продукта” переводчик сам забраковал.

Лучше читайте книги “Программист-прагматик” или “Оружие победы”, которую рекомендовал не только я, но и Миша. И именно для программистов-руководителей.

Из забавного:

  • “Скарлетт О’Хара. Главная героиня классической киноленты 1939 года «Унесенные ветром»
  • Даже несмотря на неудачи (вспомните, например, историю с плавающей точкой в процессорах Pentium), он осознавал основополагающие цели своей индустрии

Пользователям профессиональной социальной сети посвящается

Дамы и господа, пользующиеся LinkedIn!

Кажется у них утекла база паролей. Смените свой пароль от греха подальше.

Upd: подтвердили

Eric Sink, “Version Control by Example”

Чтобы два раза не вставать.
Дочитал сегодня книгу “Version Control by Example” и могу однозначно не рекомендовать ее к прочтению. Дан обзор современных систем управления версиями, рассказано почему DVCS лучше, чем классические. Приведены примеры работы с разными системами, точнее один пример, но под Subversion, Mercurial, Git, Veracity. Немного внутренностей и методологии.
Все по делу, но по чууть-чуть, непонятно зачем такой зоопарк, и чем отличается hg от git, или чем veracity лучше hg/git. Обидно, так как автор силен в данной теме и мог бы порассказать многое. Маловато будет!(с)

Ссылки по теме:

А баба Яга – против!

У вас же тут убунту! – крик мальчика из техподдержки Билайн, попытавшегося настроить мне VPN.

Захотела Юля порадовать Вику перед поступлением в школу изучением математики. Но таким – как порадуешь? Пусть будет тогда “в игровой форме” – компьютер трудится, ребенок радуется, родительская душа успокаивается. И решила прикупить игру “Баба Яга: пойди туда, не знаю куда” от компании МедиаХауз. С чего бы именно эту игру именно этой компании – я не знаю, мне о том сказано не было. Просто – “я тут купила, ты тут поставь. Не работает? Может надо Ubuntu снести?”. Но я решил пойти другим путем.

Первая попытка – wine. Не работает. Но многого я и не ждал, это пусть Picasa работает или MS Office, а МедиаХауз слишком гордый – под wine еще работать. Поставил виртуальную машину, на ней, указанную в системных требованиях, XP. Звук работает, планшет работает, Опера работает – красота! Только игрушка не работает. Ссылается на таинственную ошибку “5.70.21.4; 3025″ с предложением перезапуститься, а в случае повторения отправить отчет в службу поддержки. Я не МедиаХауз, я не гордый, я отправлю. Руками, автоматом они не умеют. Дальше переписка:

Я: У меня Linux (ubuntu 11.10). Пытаюсь запустить вашу игру.Под wine – не работает, в виртуальной машине – не работает. Отчет об ошибке прилагаю.Как можно решить данную проблему?

 

МХ: Продукт работоспособен только под заявленнами операционными системами.

 

Я: На виртуальной машине стоит XP SP3. Это полностью соответствует системным требованиям – “Операционная система Windows 98/Ме/2000/XP”

 

МХ: Виртуальная машина не является операционной системой, заявленной в системных требованиях и имеет ряд ограничений.

 

Пойди туда, знаешь куда. Купить, что ли, любимой жене квадратную сковородку для индукционной плиты?

Отключаем гостевой вход в ubuntu 11.10

В новой версии Ubuntu появился гостевой вход. Он загружается без пароля, в нем работают все настройки “обычного пользователя”, в том числе настроенный Wi-fi. Но если нужно ограничить доступ (Катя! Я сказал – сначала уроки!), то безпарольные входы нужно закрыть. Небольшое гугление и решение на ладони – добавить запись “allow-guest=false” в секцию “SeatDefaults” файла /etc/lightdm/lightdm.conf. Может кто-нибудь для него конфигуратор написал? Not yet. Тогда мы идем к вам!

sudo sed -i -e "/allow-guest=false/d; /\[SeatDefaults\]/a allow-guest=false" /etc/lightdm/lightdm.conf