bash.im ithappens.me zadolba.li
9894

Ноль по наследству

19 сентября 2012, 07:15

Технический вуз. Первое знакомство с ассемблером. Задание на лабораторную работу: написать прогу, которая демонстрирует работу конструкции if-then-else. Собственно, с клавиатуры вводится число, и если оно не равно 10, то преобразуется по одной формуле, а если да — то по другой: x = 5x − 45.

Программу написал быстро. Проверка на неравенство прошла нормально. Остаётся проверить при х = 10, и можно со спокойной душою сдавать, тем более что преподаватель обещал поощрить двух самых быстрых кодеров.

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

Люди понемногу начинают сдавать свои программы. Некоторые собираются возле меня, и мы вместе начинаем искать ошибки. Проверяется свыше десятка альтернативных вариантов, но ответ при этом не меняется. Самое обидное, что в аккумуляторном регистре, содержание которого в итоге и выводится на экран, хранится заветное «05», но увидеть пятёрку на экране почему-то не судьба.

Только когда пара уже почти заканчивалась, я, как это обычно бывает, внезапно понял, в чём дело. Проверяя условие, которое работало нормально, я вводил, например, «3», и получал ответ, скажем, «49». А здесь я вводил «10» в начале первой строки консоли, программа мне выводила «5» там же. Соответственно, нолик от введённой мной десятки благополучно переезжал в новое число — об очистке экрана или переносе на новую строку никто ведь не подумал…

Мало написать программу, которая может решить вашу задачу. Нужно ещё понять, что она выводит вам в ответ.

9893

Враги + Китай = друзья

19 сентября 2012, 07:15

На щите с рекламой ноутбуков Samsung обнаружил интереснейший лозунг: «Lighter than air». И хотя «air» с маленькой буквы, трудно не догадаться, о чём речь. Два извечных конкурента сражаются на всех фронтах.

* * *

Сегодня пришло письмо:

iPhone 4S 32 ГБ на базе Android по очень низкой цене!
Перейти на сайт

Так и живём.

9892

Марафон на протезах

Нужно установить ПО на сервер, на котором сдохла мышь. Заменить, как назло, нечем, других машин поблизости нет, далеко бежать неохота.

Не проблема. Через «Пуск» запускаем FAR, ищем инсталлятор, галочки ставим-снимаем с помощью стрелок и пробела. Всё идет хорошо, пока не требуется установить багфикс. Багфикс можно скачать из интернета. Коллега грустит — ну как же интернет без мыши? Удивлённо смотрю на напарника, запускаю IE, ввожу запрос и перемещаюсь по ссылкам с помощью клавиши Tab. Скачиваю багфикс по нужной ссылке — установка программы продолжается.

Последний этап — нужно сформировать уникальные ключи при помощи случайного перемещения указателя мыши. Напарник с интересом смотрит на меня: «Ну и что дальше?» Я пытаюсь набрать абракадабру на клавиатуре — не работает, нужна именно мышь. Чёрт возьми, ещё в Windows 98 была возможность управлять мышью с клавиатуры. Я в то время как-то чуть ли не полгода без мыши жил. И, кажется, в Windows XP такая фишка была. Так-с, панель управления — центр специальных возможностей… Ага, вот и нужный мне пункт. Настраиваю поведение NumLock, регулирую скорость перемещения — готово!

9891

Висельник 1.1

18 сентября 2012, 08:15

USB-хаб может быть функциональным и украшать рабочее место. Но он может быть ни черта не функциональным, но неплохо это самое рабочее место разнообразить.

Подарили матери на работе такую девайсину, исполненную в форме человечка, склёпанную на коленке у дядюшки Ляо. USB 1.1, если не 1.0, что само по себе смешно для 2012 года. Телефон через него толком не подключить, другую периферию даже пытаться не стал. И вот, когда хаб провалялся у меня почти год, я таки нашёл ему применение. Опускаем кабель вниз, делаем петлю, свободный конец закрепляем на полочке подставкой для бумаги. Миниатюра «Висельник» готова!

9890

Профессиональный расстройщик ПК

18 сентября 2012, 07:45

Работаю настройщиком компьютеров. Элементарная реклама (объявления на столбах и подъездах, визитки) действует довольно хорошо.

Вчера позвонила очередная девушка с хорошо знакомыми мне словами: «А у нас компьютер не включается. Приедьте, посмотрите». Взял я, значит, свою видеокарту, рабочий БП и отправился на вызов.

Всё было проще, чем я думал. Проблема решилась передёргиванием планок ОЗУ. Но вся прелесть истории не в этом.
Оказывается, некоторое время назад к ним приходил человек, тоже назвавшийся компьютерным мастером. Так как у них глючил компьютер, человек пообещал сделать так, что компьютер уже не будет глючить, и забрал к себе системник для работы.

Что он сделал? Переустановил винду на какую-то левую сборку ХР. Если бы всё было так гладко… Этот гад:

— не подключил кулер к материнке (зачем он туда вообще полез — непонятно);
— погнул контакты на IDE-приводе, да ещё и не подключил его;
— сказал людям, что поставил «семёрку»;
— взял денег.

Самое интересное, что этот горе-мастер работает в местной администрации «компьютерщиком». Руки бы таким пообрывать!

9889

Выгоните из него чертей

18 сентября 2012, 07:45

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

Во вторник начали течь сразу несколько кондиционеров на предприятии.

В среду прошла самая сильная в том году гроза, молнией от которой убило местную мини-АТС, и предприятие осталось без внутренней телефонной связи. Как потом уже стало известно, сгорела вся центральная плата. По признанию ремонтников, когда нам её уже вернули, это был второй случай в стране за последние три года — обычно сгорало только несколько линий.

В четверг за час до окончания рабочего дня нас предал основной сервер, служивший контроллером домена: у него накрылась логическая структура системного диска (два диска по 80 ГБ, RAID 0), а также сгорел один винт из SCSI RAID 1+0. В Диск поменяли, но контроллер домена пришлось поднимать заново. IT-отдел в тот день ушёл домой уже ночью, а последующие несколько дней пришлось солидно задерживаться, восстанавливая данные и заново настраивая сеть.

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

Сам я человек неверующий, но факт был налицо: после этой профилактической процедуры ещё долго всё работало как часы, а мини-АТС вскоре привезли из ремонта.

9888

Java: расслабьтесь и получайте удовольствие

18 сентября 2012, 07:15

Я обычный студент. Учусь на специальности, гордо называющейся «компьютерная инженерия», в небезызвестном Киевском политехническом вузе. Учусь хорошо, да и самообразованием не брезгую: читаю книги, экспериментирую.

И вот решил я как-то написать программку для небезызвестной мобильной операционной системы, где всё и вся пишется на Java. Всё было хорошо, пока мне не понадобилось обработать массив чисел, выполнив над ним несколько простых арифметических действий. Какие тут могут быть проблемы?

Вы не поверите, но массив размером 30 на 50 значений обрабатывается почти полсекунды. А мне нужно обрабатывать массивы с миллионами значений. Как? Я понимаю, что я запускаю эту программу на мобильном телефоне, но на дворе 2012 год — даже телефон с такой задачей должен справляться в разы быстрей! Я ума не приложу, как можно было написать такой медленный интерпретатор Java. Ну да ладно, вопрос решаем — нам доступна возможность переписать критичные к быстродействию куски кода на C. Всё, что для этого нужно, — доустановить часть SDK. Но, видимо, создатели этого SDK думали не лучше создателей системы, ибо в нагрузку он требует пачку плагинов, которые нужно как-то связать. Как это сделать — нигде не написано. Простите, может кому-то и понятно, как это делать, но если я никогда раньше не встречался с этим, неужели нельзя написать простой мануал на десять строчек? Хорошо, методом проб и ошибок я за двое суток осилил установку. Вроде все работает.

Перед тем как приступать к работе, надо разобраться, как же слепить код на Java и на С в одном приложении. Что мы сделаем? Правильно, воспользуемся примером, идущим в нагрузку к SDK. О нет, вы не поверите: после выполненной шаг за шагом сборки проекта при запуске он вылетает с ошибкой, никакой информации о которой не даёт даже дебаггер.

Кто это всё создавал, я не знаю. Десяток мануалов с разных сайтов ничего толком не разъяснили. Суть работы системы непонятна, даже сэмпл-проект «Hello world» не запускается. Может, стоит бросить всю эту хрень и заняться разработкой под мобильные и не очень «форточки»? Уже ведь не раз читал на программистских форумах, что все developer tools у обвиняемых во всех смертных грехах мелкомягких работают исправно, не требуют танцев с бубном при установке и идут с толковой документацией в нагрузку. А опенсорсом пусть занимаются те, у кого нет ребёнка и есть много свободного времени.

9887

Главный администратор по контртерроризму

18 сентября 2012, 07:15

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

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

Захожу… Ну, пусть это будет серверная. Маленькая комната. В углу стоит системник вполне приличного, хоть и бэушного вида. На столе лежит диск с пиратской Windows 2003 Server. Ещё на столе гигантский монитор дюймов на 26, на десктопе нет свободного от ярлыков и папочек места. Ещё на столе стоит дорогущий полупрозрачный корпус, сквозь который проглядывается хардкорное игровое железо.

Отдаю этому чуду флешку и спрашиваю про системник, что стоит в углу.

— Сломался?
— Нет, старый. Уже года как три. Вроде и работает, но пристроить некуда. Не сервер же на нём поднимать.

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

Пока скидывается инфа (само собой, на рабочий стол), заглядывает кто-то из бухов:

— Интернет-то появился?

Это чудо запускает Оперу, в которой открыто вкладок двадцать. Там мельтешат «танчики».

— Да!
— Это точно сервер? — спрашиваю. — И ты на нём ведёшь такую кипучую деятельность?
— Ну да, а что? Он на то и сервер, чтобы всё мочь…

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

Что-то мне подсказало: носить мне эту флешку придётся ещё не раз.

9886

Пи пополам

17 сентября 2012, 08:15

В магазин вбегает клиент, готовый, пожалуй, порвать весь персонал, включая уборщиц:

— Купил у вас тут телефон с Андроидом, сказали, будет научный калькулятор, а его нет!

Продолжая оставаться на удивление спокойным, отвечаю:

— Слушай, если ты знаешь, что такое научный калькулятор, то что такое 90 градусов, тоже в курсе. Поверни телефон.

Клиент попробовал и ушёл довольный.