Суровые будни программера...
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
sheiff's LiveJournal:
[ << Previous 20 ]
| Saturday, September 26th, 2009 | | 11:53 pm |
| | Sunday, August 9th, 2009 | | 4:46 pm |
| | 1:59 am |
| | Tuesday, May 26th, 2009 | | 12:52 pm |
Оргазм программиста...
void copy_shit(Shit* some_shit) { Shit p; ... memcpy(&p, &some_shit, sizeof(Shit)); } Current Mood: Все ништяк!Current Music: Би-2 - мой рок-н-рол | | Monday, May 4th, 2009 | | 1:20 pm |
| | Saturday, April 18th, 2009 | | 7:20 pm |
| | Tuesday, April 14th, 2009 | | 11:10 am |
TODO += ...
- А помидоры - красные! - Я сделаю это за день. - "Чистилка для пальто" или "The art of selling SHIT" Current Mood: все ништяк!Current Music: Кино - Когда твоя девушка больна | | Tuesday, April 7th, 2009 | | 1:41 am |
Мартышка, знающая спецификацию.
Нет. Нет. Нет. Ничего не имею против тестеров. Это нужная и уважаемая профессия. Без вас, уважаемые тестеры, Дискавери взрывался бы гораздо чаще и мы наверно давно бы уже жили в союзе с хедкрабами. (Представьте себе, Large Hardon Collider тоже ведь делают программисты...) А есть ли день тестера? Надо организовать! Просто звезды так сложились что меня перевели на две недели помочь в тестировании в соседний проект. Дедлайн, аврал, все дела. Надо делать релиз через две недели а багов не початый край. Но видимо им хотелось еще больше =) Вот для этого меня и призвали послужить родине. So... Делюсь экспириенсом... Сначала конечно я сразу представил себя той самой мартышкой с 100-страничной спекой. На самом деле мне дали конечно не 100-страничную, но все же спеку. Куча пунктов, которые нужно протыкать и выставить вердикт тесту "зачот/низачот". В принципе нуднее не придумаешь. Однообразно. Однако же как только нашел первый баг мое мнение немного переменилось. Баг был довольно интересным. Хотя нет. Не интересным. Было просто интересно его находить. Вот значит в спеке написано "в поле можно вводить только числа". Пробую ввести "фывафыва", ошибки нет... Вроде бы можно завалить тест и отправить бедным кодерам, на каждом из которых небось багов по 20 висит. Ан нет! Тут ваш покорный слуга пошел дальше... А не ввести ли мне "**()*)*". Оппа! Crash! Сабмиттим еще один баг! Тут я уже понял что сабмиттить баги это на самом деле не так то нудно. Нужно ведь не просто завалить тест, нужно еще дать программеру наиболее точное описание. А это значит ИССЛЕДОВАТЬ! А это значит интересно. И правда. Нельзя же просто написать "введи **()*)* и будет баг". А вдруг баг будет даже при "*" - значит нужно проверить. А это и называется исследованием, копанием. То что нужно хакеру. Так что могу сказать что эти две недели не были для меня аццкой мукой. Узнал много интересного. Почуствовал себя в чужой шкуре. Хотя все равно тестер - это не мое... Еще одно любопытное замечание про психологию тестера. Забавное ощущение когда нашел багу в фиче, которую разрабатывает твой кореш и здороваешься с ним с утра в лифте. Почему-то думаешь "интересно, а он уже видел что я ему баг накинул?" =), "а вдруг он щас в морду даст?" =). В чем то конечно это неудобно. Как ни крути, определенный психологический момент присутствует. Вывод - идеальный тестер должен быть скорее интровертом. Отрезанным от общества. Тогда будет фиксить баги беспристрастно =) Еще такой момент. Вот я вообще по жизни зануда. Это наверно даже хорошо. Если уже делаю тест по итнструкции, то слова "авось" для меня нет. "хоть я сдохну, зараза, но я тебя, ссуко сделаю от начала до конца!". Очень часто возникала мысль "ну это то уж наверное правильно, ну только придурок мог ошибиться..." или "ну, это влом делать, наверно там и ошибиться негду" или "4 картинки я уже напечатал, нахера еще две также печатать?". Вот из за таких НЕзануд мен кажется и рушаться адронные коллайдеры. Пример из жизни: Был такой телефончег - Samsung Soul u900. Понтовый и дорогой. Кажется 20000 тогда стоил. Так вот у него была небольшая проблема - когда вставляешь мобильник в комп через ЮСБ шнур и открываешь картинку - комп перезагружается. С бсодом, что интеерсно =). Телефону - хоть бы хны. Проверял, разумеется, с разными проводами, с разными картами памяти, в разными компами, форматировал по 1000 раз карту. Взял гарантию и пошел к злым дядькам в тех суппорт.
1 визит в сервис: запрос клиента: при соединении мобильника и компа через ЮСБ шнур и попытке открыть фотографию компьютер перезагружается. ответ сервиса: обновлена прошивка, все работает! а на деле: нихера не работает.
2 визит в сервис: запрос клиента: при соединении мобильника и компа через ЮСБ шнур и попытке открыть фотографию компьютер перезагружается. ответ сервиса: перепаяны контакты в ЮСБ дырке мобильника , все работает! а на деле: нихера не работает.
3 визит в сервис: запрос клиента: при соединении мобильника и компа через ЮСБ шнур и попытке открыть фотографию компьютер перезагружается. Припер ноутбук и силой заставил посмотреть что комп реально перезагружается. После фразы (как вы наверно догадались) "Да у вас же вирусы!", уговорил технаря вставить секретарше мобильник. Секретарша сидела с открытым ртом. =) ответ сервиса: бля, и правда не работает! а на деле: получил обратно 20000р.
 В общем пошло оно все в зад, пойду спать... Потом допишу. Current Mood: Все ништяк!Current Music: Lords of The Underworld - Timmy! | | Monday, April 6th, 2009 | | 12:32 pm |
TODO: - забытое удобство (cp share) | | Friday, April 3rd, 2009 | | 12:43 pm |
| | 11:33 am |
ТУДУ
ТУДУ: - Обезьяна со спецификацией - Steve Jobs wannabe, новая экспа в презентациях - Снова о цветах жизни - Планы по порабощению мира - Пару слов про Android Current Mood: Все ништяк!Current Music: АлисА - армия жизни | | Wednesday, March 11th, 2009 | | 11:35 pm |
| | Friday, February 13th, 2009 | | 4:01 pm |
Не верь себе...
Забавно: void foo() { list_files("no-filter"); }
void list_files(string filter) { log(filter);
... uppercase(filter) ...
if (!equal(filter,"no-filter")) log("FUCK! filter is not equal to 'no-filter' ");
for (...) { uppercase(filename[i]); filename[i].compare(filter); } } Current Mood: Все ништяк!Current Music: Алиса - Красное на черном | | Sunday, January 18th, 2009 | | 5:52 pm |
| | Tuesday, October 21st, 2008 | | 2:44 pm |
Customer satisFUCKtion
Я немного отвлекусь наверно от темы программинга. Хотя по сути термин "customer satisfaction" очень близок к ПО, потому что от него зависит, будут покупать или нет. Я лишь приведу аналогию с неким другим продуктом. Купили мы несколько лет назад фильтр гейзер. Вот такой вот: Купили. Позвали сантехника поставить фильтр (на самом деле он тогда просто ставил все для кухни - посудомойку, раковину, бла бла бла). Фильтр поставили. Еще в магазине нам сказали что фильтр надо менять. Хотя бы раз в год. Или как-то так. Типа вам только надо будет только поменять картриджи. (покупали фильтр в максидоме, там был специальный чувак, продававший гейзеры) Ну вот прошло уже года три, и мы задумались что пора бы всетки картриджи поменять. Кстати замечу что фильтр работает очень хорошо. Не знаю какое там серебро, сколько ступеней очистки, но разница ощущается на вкус, на запах и на вид. Ну так вот вроде надо фильтр менять. Смотрю на фильтр. И чувствую прилив негодования: ПОЧЕМУ ОНИ ЗАБИЛИ НА МЕНЯ КАК НА КЛИЕНТА?Почему на фильтре не написано крупными буквами?: Уважаемый кастомер! Позвони нам по 666-66-66, мы приедем к тебе, поменяем фильтр и поцелуем в зад даже.Ааа... Конечно... Простите, фирма "гейзер"... Я, кастомер, должен найти гребаную инструкцию к гребаному фильтру, поехать в гребаный домовой, выбрать там один из сотни гребаных наборов для замены фильтра, взять гребаную отвертку, гребаную держалку для картриджа, гребаный разводной ключ для санехники, проползать вечер после работы под гребаной раковиной, измазать себя в гребаной ржавчине или просто купить новый гребаный комплект фильтров за гребаую кучу денег (это типа если нужно поменять масло в машине, то кастомер не меняет масло, а покупает новую машину с уже залитым свежим маслом) Очень часто глядя на вещи хочется забить на программинг и стать предпринимателем. Потому что хожу по улицам и вижу как фирмы делают массово Monkey Job. Я просто фигею от рекламы кафе в метро, на которой написано:Кастомеры! Открылось новое кафе! Все вкусно! Низкие цены! Русская, японская и албанская кухня! Адрес - улица мухосранская, подворотня 543, дом 36. Ааа... Конечно... Простите, фирма "Шаверма Лимитед ГМБХ"... Я, кастомер, должен записать ваш гребаный адрес к себе на гребаную бумажку, прийти домой и посмотреть его в гребаном Гуглмапс. Ну лет через 50 наверно все в России будут ходить с андроидами, фоткать в метро адрес, прога будет распознавать его и показывать на гуглмапс сразу. (Кажется за бугром такое уже есть).
Простите, но по-моему ПРЕДЛОЖЕНИЕ ДОЛЖНО ИСКАТЬ ПОКУПАТЕЛЯ, А НЕ НАОБОРОТ! Может поэтому мой кумир - Стив Джобс? Не он ли думает больше всех на свете как удовлетворить кастомера? Может это у нас в России не привита культура конкуренции и желание держаться за покупателя... Типа "а продал 10000 гребаных фильтров, дачу отстроил на рублевке и насрать на то что будет дальше..." Занавес... По-моему нескромному мнению, все должно быть так:
- Стоит сауна - рядом должен быть бассейн.
- Сделал клиенту работу - предложи остальное и дай визитку.
- У тебя что-то купили - дай ему скидку.
- Продаешь воду - рядом должен быть туалет.
- Окрыл кафе у метро - о нем должны узнать ВСЕ кто живет у метро. И все должны знать как туда пройти.
- Продаешь фильтры для воды - на фильтрах должна быть табличка крупными буквами: "Картриджи были заправлены - 2007год. Не забывайте менять картриджи фильтра каждый год! Бесплатная замена картриджей - 666-66-66." (бесплатная в том смысле что платишь только за новый картридж и не платишь за установку).
Яркий пример удачного сustomer satisFUCKtion - это вода "Росинка 2" в нашем офисе. Написано на всех бутылках: "Доставка воды круглосуточно - 666-66-66."Вот скажите, у кого я буду заказывать воду, если понадобится? Вот такая вот тема. Shame on you, гейзер! http://www.filter-3.ru/ Current Mood: Все ништяк!Current Music: Nightwish - Elvenpath | | 2:01 pm |
Найдя льва в пустыне, попробуй поискать еще одного где-то...
Наверно я буду говорить о банальности. Но до чего же дорого эта банальность обошлась. Был класс Event в нативе. Он мигрирует из натива в джаву. Вообще ивентам свойственно кочевать из натива в джаву. Мне нужно было добавить в ивент несколько параметров, чтобы иметь возможность посылать более сложные ивенты. Добавил. Увеличил количество параметров как в джаве так и в нативе. Вроде бы все передается. Вроде даже все работает. Стал пропускать тесты. И тут полезли "ширина = -123235", "высота = -3478153". Долго лазил по коду. Долго писал принтэфы. Конечно "долго" сказать нельзя. Это у меня уже как на автомате. По этому на самом то деле не долго.
- Чето не так...
- сразу вставил 10 принтэфов..
- ребилд...
- тест...
- оппа! да тут же парамет обнуляется после этого метода...
Жаль что детки мои к эому не приучились. У них алгоритм несколько иной:
- Чето не так...
- Ааааааааа!
- Вася! У меня джава не работает!
- Ааааааааа!
Видно что они БОЯТЬСЯ эксперементировать. Видимо это вопрос времени. В общем короче нашел я в результате, что оказывается из какой-то задницы, эти параметры ивента изменяются в соответствии с определенной фигней. Не буду вдавать в подробности. Главное в том что догадаться сначала, что где-то в коде эти параметры загадяться было не реально, не зная кода. Надо было просто "поискать еще одного льва". Вставляя новый параметр int5, поикать, где встречаются в коде параметры int1, int2, int3, int4. Тогда бы я избавил себя от лишнего гемора. Надеюсь я стал децл опытнее. Current Mood: Все ништяк!Current Music: Muse - Plug In Baby | | Thursday, October 2nd, 2008 | | 1:46 pm |
жгу #2 public static void processShit(int channel, int x, int y, int p) { System.out.println("[MY_LOG] processing the shit"); ShitHandler.processShit(int channel, int x, int y, int p); }А в результате при билде: 1) '.class' expected 2) ')' expected OMFG... Неужели я опать юзаю копипаст??? 8) Current Mood: Все ништяк!Current Music: -- | | 12:19 pm |
Links 2 3 4
Вот такая забавная вещь - ссылки. Пишу я значит библиотечку в эклипсе. Там много пакетов: com.mycompany.someshit.someanothershit.ShitДо сего момента делал все редактирования в Notepad++. Как-то он мне больше нравится... Так как сейчас надо писать javadoc к пакетам, решил все это делать в эклиспе. Создаю проект, делаю linksource. Мне предлагают выбрать папку. Выбираю /com/mycompany/someshit, и он создает в project explorer'e пакет "someanotherrshit". Ну да, я то хотел чтобы у меня виднелось в редакторе: "someshit.someanothershit.*" так как в пакете someshit тоже полезные вещи лежат. Ну я и создаю новый пакет someshit и пихаю в него все остальное. Редактирую, делаю javadoc. Все ништяк. Как дело доходит до построения реального кода платформы (конечно не в эклипсе), запускаю clearmake. Ну и он говорит мне: Error: Don't know how to build com.mycompany.someshit.someanothershit.Shit.javaСмотрю в командере - файл на месте. 15 минут тупо пялился на комп. Потом оказалось что эклипс намудрил вот чего com.mycompany.someshit.someshit.someanothershit.ShitНе уверен что правильно воспроизвел все шаги, да суть не в том. Помнится уже писал такой пост но не со ссылками а наборот, с копиями файлов в эклипсе. Вообще со ссылками по жизни я был не в дружбе =) Начиная с принесенной на урок проги "ссылке" на исходники на дискетке. Помню до сих пор какой был облом. Current Mood: Все ништяк!Current Music: - | | Monday, September 29th, 2008 | | 6:23 pm |
я жгу...
Я жгу... (читай туплю) ---------------------------------------- ------------------- class Manager {
private EventHandler handler; public void setHandler(EventHandler handler) { handler = handler; }
}---------------------------------------- ------------------- Долго думал, какого хрена у меня NullPointerException??? Current Mood: Все ништяк!Current Music: Apocalyptica - Ressurection | | Friday, September 12th, 2008 | | 2:07 pm |
|
[ << Previous 20 ]
|