bash.im ithappens.me zadolba.li
5344

Истину глаголем

1 февраля 2011, 12:45

Захотелось как-то написать свой клиент для Music Player Daemon. Не имея опыта работы с GTK+, через две недели я всё же имел клиент, соответствующий моим требованиям. Осталось только реализовать Drag’n’Drop в плейлисте с возможностью тянуть несколько строк за раз. Так как штатными средствами GtkTreeView и GtkListStore этого не добиться, а официальный способ — написание собственной модели — сулил несколько дней курения мануалов и переписывание большого куска кода, было принято решение идти в обход.

Так, что нам мешает? Ага, клик мышкой с целью перетащить несколько выбранных строк воспринимается как выбор кликнутой строки, она же одна и тянется. Ну и ладно — пишем callback на кликанье по плейлисту, проверяем кнопки-модификаторы, смотрим, выбраны ли несколько строк и приходится ли клик на одну из них, ждём 120 миллисекунд, проверяем состояние мыши. Что, вы ещё не отпустили кнопку? Тогда тяните, сударь, наше дело — return TRUE;

5343

Когда всё не слава богу

Моей первой деревянной игрушкой был советский ПК «Искра-1030» с диском на 30 МБ и памятью аж 640 КБ, стоявший в учебном классе, где его насиловали все, кому не лень. Он научил меня разбираться в алгоритмах упаковки данных, оптимизации кода, а также в методах защиты информации и её взлома. В итоге компьютер стал действительно персональным: у всех остальных на нём «глючила память» и «сыпался диск» (всего-то надо было иметь ключевую дискету и знать нужный пароль).

Вторая деревянная игрушка — 386DX-33. Он научил меня разбираться в железе, постепенно мутировав до «пентиума», обзаведясь заодно шикарными дисками по 2 ГБ (круто по тем временам) и 8 метрами памяти. Был утерян при переезде.

Третья деревянная игрушка — старенький 486SX, не поддерживавший большие диски. Он познакомил меня с особенностями работы дисковых контроллеров, в результате чего на нём заработали винчестеры, которые, казалось, не должны были. Комп научил меня Windows-программированию по причине малопригодности для игр.

Четвёртая деревянная игрушка — глючный до безобразия офисный комп. После очередной бессонной ночи, проведённой в попытках помирить сетевую карту с виндой, на компе появилась FreeBSD. Внезапно оказалось, что под «фрёй» все глюки и баги внезапно исчезли, и пациент из калеки превратился в неплохой, стабильно работающий в круглосуточном режиме сервер. Он научил разбираться в «никсах», собирать программы и писать сетевые приложения.

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

5342

Плед до добра не доведёт

1 февраля 2011, 12:45

Когда-то неизвестный сказал, что во всех неполадках компьютера виновата прослойка между стулом и самим компьютером. Не могу не согласиться: ноут, поставленный в потёмках на стул, покрытый пледом, начинает жутко греться и тормозить.

5341

Тайный зачёт по бета-тестированию

1 февраля 2011, 11:00

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

Практика давалась относительно легко, особенно тем, кто дружил с Excel. А вот теория была не так проста: в конце кажого семестра студентов ждал тест на написанной студентом-асушником в качестве какой-то там работы программе. Прога именовалась в народе «О, счастливчик!», и вся цель состояла в выборе правильной формулы по предмету из четырёх вариантов. Имелась база вопросов и ответов (около 300 штук). В начале теста нужно было ввести число задаваемых вопросов, и по прохождении прога считала процент правильных ответов, по которому и ставилась оценка.

Первая волна студентов сдала тест на 100%, пользуясь хитрым клавиатурным комбо, выведанным у разработчика, за что того чуть не выгнали. Баг исправили. Вторая волна выбрала в качестве фона рабочего стола скриншот с окошком «Ваш результат — 100%». Их тоже быстро раскусили.

Каждый семестр база менялась, но вопросы были практически одинаковыии, так что мне хватило шести часов за компьютером, чтобы запомнить все 300 вопросов. Мой результат на настоящем тесте — 98%, потому что на один вопрос я ответил не вовремя, помогая одногруппнику. Впрочем, в запасе имелась найденная бага, которую я мог бы использовать при желании: нажав мышкой на рамку и потянув её на поле с ответом, можно было его закрыть, сделать так со всеми четырьмя вариантами, а затем позвать препода: «Прога глючит, можно ещё раз?»

5340

Ядерный резерв

1 февраля 2011, 11:00

Листаю интернет, на ноуте рядом собирается Gentoo. Собирается уже долго — часов шесть. Интересная на этом ноуте индикация питания: лампочка горит только тогда, когда батарея заряжается, а когда разряжается или заряжена полностью, индикации нет. Зачитался я, смотрю — а ноут-то потух! Матерюсь… Вилка адаптера в розетку воткнута, вот только розетка разболтана, и питания на буке не было. Пошатав вилку, я сумел зажечь лампочку на ноуте. Загрузившись, я понял, что ядро таки собралось.

А прикол в том, что батарейка на ноуте была дохлой и держала заряд максимум полчаса. Вилка не могла отключиться: все мои движения сводились к шевелениям мышки и мягким нажатиям клавиш. Как ноут проработал шесть часов без перерыва — до сих пор загадка.

5339

Беспроводные лучи смешных котиков

1 февраля 2011, 09:00

В разгар новогодних праздников, когда все уважающие себя и других люди предавались заслуженному отдыху, меня поднял с кровати в восемь утра истошный вопль бухгалтерши 74 лет от роду. В телефоне слышалось лишь неразборчивое кряхтение, мат и слова: «Интернет! Пропал! Интернет!» Приехал в офис. Отдел, накрытый вайфаем, лежал намертво. Пошёл проверять роутер.

Так как в офисе трудятся люди далеко за 60, я заранее приделал к роутеру табличку: «Не трогать — убьёт!» Кто-то из старичков решил обезопасить себя от «ужасного излучения интернета», накрыв роутер алюминиевой кастрюлей и для надёжности обмотав фольгой.

Уволился. Нервы дороже.

5338

Как лисицу назовёте, так она и поплывёт

Устроился после армейки на работу менеджером по продажам и первым делом решил обеспечить себе комфортный сёрфинг. Немалая часть работы предполагала активное пользование интернетом: поиск клиентов, сбор информации о конкурентах и прочее. IE шестой версии и комфортный сёрфинг — вещи взаимоисключающие. Пишу по мылу человеку из группы администрирования:

— Сергей, а вместо Internet Explorer Огнелиса можно поставить?
— Нет, — ответил мне админ и чуть позже дописал: — Но могу предложить Mozilla Firefox 3.5.

Пришлось согласиться.

5337

126 тысячных

1 февраля 2011, 09:00

Пришёл спам в контакте. Интересно же посмотреть — перехожу по ссылке.

Для Вас сгенерировано 1350 голосов!

Это единственный легальный способ получить голоса БЕСПЛАТНО.
Голоса нужно использовать до 31.02.2011.
НЕ нужно указывать e-mail или пароль.
Всё делается одним кликом мышки.

Нажми на кнопку, чтобы забрать свои голоса:

Забрать 1350 голосов

Уже выдано голосов: 1213820.

Не знаю, что меня больше напугало: то ли 31 февраля, то ли осознание факта, что голоса забрали 1213820 / 1350 = 899,126 пользователей. 0,126 пользователя — это, наверное, кусочек мяса, ещё меньший кусочек мозга — и везде кровь… Ужас.

Одним кликом мышки всё сделать не получится: надо выбрать, сохранить и запустить (пусть даже с клавиатуры). Ссылка ведёт на .zip.exe (пожат UPX, но весит 925 КБ), который даже не запустился под Вайном. Обидно. Прогнал через онлайн-проверку Доктора Веба — у них это давно есть в базах. Скучно.

В общем, я всё понял: эту хрень написали те самые 126 тысячных юзера, они же её и тестировали. А ведь так хотелось запустить, порадоваться за автора, узнать, что же он хотел от нас… Отправил предложение переписать под Ubuntu, а ещё выучить ассемблер и не страдать х@#нёй.

5336

Писк воображаемого спикера

1 февраля 2011, 09:00

Нижний Новгород, доблестный Политех, ФИСТ (факультет информационных систем технологий), первое занятие по языкам высокого уровня, десять лет назад.

Задача: сделать, чтобы комп пищал системной пищалкой три раза. О том, что в С надо подключать библиотеки, вся группа (кроме тех, кто был в курсе заранее) узнала из логов ошибок. Какие именно и как — из встроенных мануалов (это при живом преподе в аудитории). 9 из 10 компов таки запищали; за десятым не повезло сидеть мне. «Не зачтено». Все призывы посмотреть код и сравнить его побуквенно с творением соседей игнорировались. В итоге я достал отвёртку и под гневные вопли препода вскрыл комп. Оказалось, что пищать ему нечем: спикера в корпусе не было.

Программистом я не стал — решил, что время, потраченное там, где так учат и проверяют усвоенное, будет потрачено зря. Встречался потом по работе с выпускником, бывшим однокурсником. Оказалось, что я был прав: за пивком парень признал, что я, будучи скромным менеджером по персоналу, в программировании и компах понимал всё равно больше него.