bash.im ithappens.me zadolba.li
3403

Пейсателя бубен неймёт

18 июня 2010, 08:00

Как-то незаметно в третьем часу ночи пришло понимание, что весь следующий день с самого утра мне предстоит провести в гостях у бюрократов. Ну, бумажки-то я буду заполнять процентов десять от всего времени, а в основном придётся терпеливо стоять (если очень повезёт, то сидеть) в очереди. Может, книжку какую захватить? А ещё лучше книжки читать прямо с экрана телефона! Сказано — сделано. Качаем соответствующее Java-приложение. Что у нас там? Какой-то РидМаньяк. Щас заценим... Цепляю свою верную, как наган, «Ноклу» по синезубу и скармливаю ей файлик. А что, рулезная штука этот Маньяк — настроек вона сколько!

— Чего барин изволит?
— Хочу, чтоб шрифт побольше был.
— Извольте. Что ещё желаете?
— Ну, это, давай текст сделаем жёлтым на черном. У меня в терминале так, глаза меньше устают.
— Да пожалуйста. Чего ещё хотите?
— Скатёрку хочу у вас спереть и скамстралить из неё рубаху красную… Ой, извините, вырвалось.

В общем, встроенный текст-«рыба» смотрелся отлично. Теперь попробуем скормить Маньяку какое-нибудь литературное произведение. Раньше я любил читать с монитора, и в архивах на винте лежало несколько книжек. Так, что тут у нас? Выбор пал на «Сегодня, мама» Лукьяненко. Скармливаем текст Маньяку — облом: юникод тот не понимает, а понимает только СР1251. Ладно, ща перекодируем… Опять облом: Федора наотрез отказывается сохранить юникодовый текст в виндовую кодировку. Но мы не сдаёмся, мы пошли на принцип. Где мой бубен?!

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

Зап Сет тага горк минерап. Зап шердап. Лапсердюк. Ыкувон, генекал ардажер. Ынау‑мынау ардажер ук. Зап ынау‑мынау.

Неужто опять с кодировкой проблемы?! Закуриваю, попутно ломая голову над проблемой. Перелистываю на экран вниз — оказывается, главные герои говорили на древнеегипетском.

Бубен с древними языками несовместим — так и запишем.

3402

Эффект присутствия... клиентов

17 июня 2010, 15:45

А я уже не хочу быть фрилансером только потому, что сплочённый коллектив компании, в которой ты работаешь, не даст тебя в обиду. Работаю я в стремительно развивающейся студии веб-разработок SEO-специалистом. Работа у меня — просто рай.

У меня есть свой клан сеошников, которые в любой момент подскажут и помогут в решении непредвиденных вопросов.

У меня есть своя «бригада». Работаем мы командами, в каждую из которых входят два программиста, два дизайнера, один менеджер и один SEO-специалист — такой отряд выделяют на средний заказ.

Я знаю, чем займусь вечером. Сотрудники у нас достаточно молодые, поэтому системные администраторы с разрешения начальства подняли корпоративные игровые сервера, направленные на сплочение коллектива, доступ к которым открыт в обеденный перерыв с 13 до 14 и после работы с 18 до 22 часов.

А ещё у нас есть директор — креативный психолог, который и создал всю эту благодать, основываясь «на данных американских социологических опросов».

* * *

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

Заказчиком у нашей команды тогда выступала новая юридическая контора, директор которой слепо верил, что когда ему сделают сайт и раскрутят в поисковиках, клиенты посыплются на него горой. Ну что ж, сайт готов, по требуемому запросу он первый, но... телефон не обрывается от звонков! Заказчик в панике: сверяет контактные данные, указанные на сайте, проверяет телефоны и в конце концов звонит мне: «У вас там что-то сломалось! Я не буду вам платить! Нам никто не звонит, а должны уже звонить! Почините, или я подам на вас в суд!» Попытки объяснить заказчику, что да как, ничем положительным не оборачиваются — он не хочет ничего слушать.

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

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

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

3401

После компиляции выходит чёрт-те что

17 июня 2010, 11:45

Коротко о главном: я программист и люблю копченый сыр «Сырцееды».

Отделу дали новый проект, в котором надобно разобраться. Все взяли работу домой, дабы подумать в спокойной обстановке. Звонок. Коллега на проводе.

— Что делаешь?
— «Сырцы» жую.
(Пауза.) Все нормальные люди мануалы курят, а она сырцы жует...

3400

На полку престарелых

17 июня 2010, 11:45

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

Яркий пример — моя мышка. Она довольно пожилая, у неё капризный затвердевший хвост (если в некоторых положениях оставить мышку в покое, провод пружинит и курсор чуточку отъезжает, напоминая брюзжание бабушки). У неё плохо работает колёсико: иногда, чтобы прокрутить страницу, нужно сделать около двадцати поворотов — прокрутка идёт маленькими шагами, дрыгаясь туда-сюда. Разбирал, смотрел — внешне всё нормально. Но как только я вслух говорю жене, что пора бы заменить мышку, то на утро колёсико уже прекрасно работает! Потом, постепенно забывая страхи, грызун снова начинает привередничать. Но однажды я буду непреклонен. Так и знай, мышка!

3399

Процесс важнее результата

17 июня 2010, 11:45

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

Вспомнили, что где-то не компе валялась ранняя версия известной программы, управляющей курсором мыши. Тогда там ещё не было всяких наворотов, только самые простые функции: клик в точку экрана, перемещение, двойной клик, подождать столько-то секунд. Стали тестировать. Опытным путём забили цикл зигзагообразных перемещений по карте и запустили кликер вместе с работающим ботом. Радости не было предела: он работал! Десять минут созерцания полной автоматизации сбора бонусных коробок пробудили аппетит, и мы пошли пить чай с ништяками. По возвращении нас постигло разочарование: сервер перезагрузился, соединение оборвалось, на экране всплыло окошко с двумя кнопками: «Отмена» и «Подключиться снова». Бот кликал по серому экрану без всякого толку.

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

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

Была написана версия цикла 3.0. Добавлены клики на переключение окон Мозиллы, клик на меню ангара, клик на главную, переключение на вкладку с картой, продолжение сбора коробок. Все ошибки, зависящие от игры, были учтены.

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

3398

Семечкоядные о кодогенерящих

17 июня 2010, 10:00

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

Сижу в глубокой отладке многопоточной программы (кто знает, тот поймёт, что мозг в это время загружен на 100%, ибо приходится удерживать много информации). В этот момент приходит сообщение от «друга»:

— Срочно нужна помощь!

Вываливаюсь из режима; так уж и быть, отвечаю:

— Спрашивай!
— Как сохранить видео, ну, например, с «контакта»?

Про себя: «@#$, гугл напрячь религия не позволяет?»

— Воспользуйся сайтом videosaver.ru.
— А что там?
— Открой сайт. Там всё по-русски написано.
— А программа какая-нибудь есть?
— Поищи в гугле.
— А что? Тебе сложно объяснить?
— Сложно. Я работаю.
— Я заметил... Если это касается вопросов по компам, все программисты и компьютерщики превращаются в хамов и засранцев.

Ага! Помнишь, я к тебе с вопросом подкатился, так ты мне ответил, что меньше, чем за пять тысяч, с дивана не встанешь?

— Ведь можно вежливо объяснить, что чел не понимает. Да и не должен понимать, иначе бы программеры были не нужны.

Да уж... Рассуждения на уровне семечкоядного быдла.

— Я такое только в вашей сфере видел.
— За представителями других профессий я тоже это замечал...
— Начни с себя! Возможно, как сам начнёшь нормально общаться не с программерами, так и с тобой начнут по-людски разговаривать другие спецы.
— Нет сил спорить на эти темы.
— Ладно. Извини, что спросил.
— Пока.
— Пока.

И вот сидишь оплёванный с ног до головы, на отладке уже сосредоточиться сложно, а это потерянное время, моя зарплата, в конце концов... Может, сразу отправлять таких «друзей» в пеший эротический тур? Хоть хамом называть будут заслуженно.

3397

Айпишником наизнанку

17 июня 2010, 10:00

Своим домашним провайдером я в целом доволен, однако вчера я решил посканить инет на предмет возможной альтернативы. Зашёл на сайт крупной конторы, рекламой которого обклеены все подъезды в округе. Первым же делом кинулся смотреть, как у них обстоят дела с услугой «внешний IP» — для меня это важно.

Дизайн сайта подразумевал рядом с текстом услуги или акции наличие символичной картинки. Задумка-то неплохая, да вот только рядом с описанием услуги «внешний IP» у провайдера был изображён дорожный указатель с надписью белым по синему: «192.168.1.139».

Пожалуй, к ним подключаться не буду.

3396

Смывайте за собой

17 июня 2010, 10:00

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

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

— Смотри: вот сокет.
— Угу.
— Вот этот отправляет, вот этот принимает.
— Угу.
— А теперь компилим. Запускаем — ошибка.
— И?
— Cтавим брейк, пошагово выполняем — работает.

Разбирались до утра. Курили матчасть, MSDN зачитали до дыр. Вроде всё правильно, но при выполнении программы неизменный error. Пошагово — как по маслу.

Ошибка нашлась, когда психическое здоровье было под угрозой. Буфер не передавал данные, пока не заполнялся полностью; чтобы передать неполный, нужно было вызвать метод flush(). При дебаге же по истечении определённого времени его вызов шёл автоматом.

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

3395

Чемпионат по анлинкингу

Случилось так, что наше захолустье стало самой продвинутой техподдержкой в стране. А дело в том, что большинство абонентов покупает «%-линки» в качестве модемов. Понятное дело: то, что делает Китай, не глючить не может.

Как только выходила новая прошивка на один из чудо-девайсов, мы скидывались всем отделом, на часть денег накупали пива (ящика три получалось) и прошивали модемы. По команде «Поехали!» начиналось представление: тот, кто первый находил глюк, срывал оставшийся банк.

И по сей день вопросы по поводу модемных заскоков со всей Украины сыплются к нам.