Mike's Journal
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
Mike's LiveJournal:
[ << Previous 20 ]
| Friday, October 23rd, 2009 | | 9:08 am |
| | Thursday, October 22nd, 2009 | | 3:03 pm |
Быдлокодер (aka Горе-программист; англ. Code Monkey)
Почти все, что я программирую, коллегам приходистя переписывать: "Он писал это, не вникая в суть проблемы", "Это написано абы как". Бедные коллеги! Что ж я могу сделать, если я такой идиот и думаю в основном спинным мозгом. Нет, пожалуй, мне пора переквалифицироваться в тестеры, хватит уже мучить коллег и юзеров. Хотя тестером может я еще и худшим буду, чем программером... | | Monday, October 19th, 2009 | | 10:16 am |
ISO files parser/creator
Мдаааа...написать его оказалось мегажестью... я даже не ожидал. STL, к сожалению, так и не узнал в процессе написания. | | Sunday, October 4th, 2009 | | 11:40 pm |
Высокая Нотка на "Детском Радио"
Вот и обзавелось "Детское Радио" своим музкультпросветработником. Ля-ля-ля-ля-ля-ля-ля-ля-ля-а-а-а! И всё бы ничего, да только наступил маленькой Высокой Нотке на ухо Боооольшой басовитый - и очень тяжелый - медведь. Не, я серьезно. Взяли бы на роль и.о. Высокой Нотки чувиху, умеющую хотя бы немного петь (я уж не говорю имеющую слух, это почти невозможно в условиях Д.Р., хотя подошла бы любая выпускница Гнесинки) - было бы гораздо приятнее, да и детям не портился бы слух. А тем временем В.Н. продолжает петь горлом, мимо нот и - о боже - на всю страну и портить слух всем детям Р.Ф. (а ведь детское радио слушают и в Ульяновске, и в Самаре, и в Р.Н.Д. ( http://www.deti.fm)! | | Friday, October 2nd, 2009 | | 11:07 am |
Застрелиться
Yandex.Server выдает сообщение (у них вообще с английским беда): Service shot down | | Wednesday, September 2nd, 2009 | | 10:22 pm |
Текучка
Сегодня не буду, вопреки обыкновению, себя бичевать. Сами можете оценить мои профессиональные "достижения". Первая половина дня прошла под знаком Unicode. После неторопливой работы я эасобачил массив на 65536 элементов, по которому можно преобразовывать любую самую затейливую буковку из Unicode в ANSI (никто и не утверждал, что успешно, но все, что может, он преобразовывает!). Универсальный конвертер сделан (облом произошел только с китайско-японскими языками, но это как-нибудь потом настрою)! Вторая часть дня прошла в обсуждениях и обдумываниях распределенной атаки на пароли по сети. Нужно было продумать и заимплементить одну важную фичу. Когда один компьютер и один поток - это хорошо. Когда два - уже хуже. Когда их много, мозги перестают справляться. ООП рулит, но он значительно превышает по возможностям возможности моего мозга. В результате заимплементил какую-то кривизну, которую придется еще выпрямлять и выпрямлять. | | Tuesday, August 11th, 2009 | | 8:05 pm |
На днях написал код, кидающий в большом количестве исключения из конструктора и (о ужас!) сам конструктор был аж на 2 экрана. В результате подвергся (о боже!) публичному остракизму с заведением кейса и последующим рефакторингом. Welcome to http://govnokod.ru! | | Monday, August 10th, 2009 | | 2:15 pm |
| | Saturday, May 9th, 2009 | | 11:09 am |
Bad karma
Шо ето за на? Юмористы, блин... -Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient------- 7D9F1538F9 796 Fri May 8 19:47:38 *********@ergosolo.ru (host mx1.yandex.ru[77.88.21.89] said: 450 4.5.0 Bad karma! (in reply to RCPT TO command)) *********@yandex.ru | | Tuesday, March 3rd, 2009 | | 6:02 pm |
| | Friday, January 16th, 2009 | | 12:00 pm |
| | Saturday, January 10th, 2009 | | 9:38 am |
AJAX и Python
Прикручиваю subj[0] к subj[1]. Использую библиотеку великого гуру Дмитрия Котерова: http://en.dklab.ru/lib/JsHttpRequest/. Как-то странно получается...тело аякс-запроса доступно через cgi.FieldStorage.value, а дальше надо, видимо, как-то извращаться...извращаюсь: def unescape( self, text ): """Removes URLencoded character references from a text string.""" def fixup( m ): text = m.group(0) if text[:2] == "%u": # unicode character reference try: return unichr(int(text[2:], 16)) except ValueError: pass else: # ascii character reference try: return chr(int(text[1:], 16)) except ValueError: pass
return text # leave as is re.sub("%u\w{4}", fixup, text) return re.sub("%\w{2}", fixup, text)
def parseRequest( self, content ): plist = map(lambda x: x.strip(), content.split('&')) pdict = {} for p in plist: i = p.find('=') if i >= 0: name = p[:i].strip().lower() value = p[i+1:].strip() if len(value) >= 2 and value[0] == value[-1] == '"': value = value[1:-1] pdict[name] = self.unescape( value ) return pdict
def do( self ): logging.debug( 'Check.do, req=%s' % ( self.req.fieldStorage(), ) )
d = self.parseRequest( self.req.fieldStorage().value )
| | Sunday, December 28th, 2008 | | 8:12 am |
Гуру STL тоже делают ошибки
Из книги Скотта Майерса "Эффективное использование STL": "Библиотека STL не содержит умных указателей с подсчетом ссылок. Написание хорошего умного указателя (то есть такого, который бы всегда правильно работал) - задача не из простых, и заниматься ею стоит лишь в случае крайней необходимости. Я привел код умного указателя с подсчетом ссылок в "more Effective C++" в 1996 году. Хотя код был основан на хорошо известной реализации умного указателя, а перед изданием книги материал тщательно проверялся опытными программистами, за эти годы было найдено несколько ошибок. Количество нетривиальных сбоев, возникающих при подсчете ссылок в умных указателях, просто невероятно." А вы говорите...если уж даже великий гуру сделал столько ошибок в кажущихся несложными реализациях, что говорить о простых смертных. Коммерческий софт просто кишит ошибками (только 99.99% из них не проявляются и никогда не проявятся на практике). | | Friday, December 26th, 2008 | | 5:33 pm |
Оптимизаторы
Воспоминание: повёрнутые на оптимизации яндексоиды оптимизируют даже подсчет количества выставленных битиков в числе, дабы не делать лишние сдвиги! Суровая правда жизни: клали мы (разработчики коммерческого софта) на всякую оптимизацию, оборачивая даже (!) STL-ные контейнеры. | | Wednesday, December 24th, 2008 | | 5:56 pm |
Сортированная "мапа"
Вот что делает с программерами отсутствие знания STL-я. Понадобилось решить элементарную задачку: из файла (не будем уточнять, какого именно) читаются строки и некие значения, соответствующие этим строчкам. Это классический "хэшмэп". Сейчас апологеты STL-ля съедят меня с криками "в STL нет хэшмэпа, есть просто мэпа!!!". Успокойтесь. Я, как только речь заходит про STL, начинаю сразу в нем "плавать", как тюлень, случайно попавший не в свой водоем, так что не буду с вами спорить. Так вот, вернемся к задачке. Строки читаются произвольно, а пишутся в лексикографическом порядке (естественно, с соответствующими им значениями из hashmap). Что это? Сразу наступил глубокий затык и коллапс. Задачка-то для младшей школы...Ай-яй-яй-яй-яй. Вот что делает с программерами оборачивание STL-ля. | | Thursday, December 18th, 2008 | | 11:05 pm |
Работайте в Acronis-е!
Открытое письмо на вакансию www.acronis.ru/company/employment/vacancy/vacancy.html
>Проектировщик/программист С++ (СPP developer)
>Career code: cpp designДевелопмент или дизайн? Определитесь может быть все-таки? Понятно, что без дизайна нет девелопмента, зато без девелопмента бывает дизайн, но все-таки...тут девелопмент или дизайн? >Requirements: >-отличное знание C++, STL, синхронизации;Дуб дубом. 8 лет программирую на С++, а ни STL-ля, ни синхронизации не знаю. На вопрос: "какие объекты синхронизации в Windows Вы знаете?" отвечаю: "Критические секции, эвенты. Больше ничего.". "Ничего? А семафоры?". "Нет". После чего разговор переходит в другое русло. На вопрос: "Как? Вы не знаете STL-я?" отвечаю: "Да, не знаю, потому что он у нас весь обернут", на что получаю кислую мину, мол, так делают только идиоты, и отправляюсь восвояси. >-умение разбираться в чужом исходном коде;Эт пожалуйста, сколько угодно. Люблю разгребать лопатой (или даже руками) отстой. >-опыт разработки ПО на C++ более 3-х лет.Более 8 лет, но так и не научился программировать нормально. На проектировщика не потяну. >Salary: starts from 78500 RURУуууууу! За такую зарплату я готов по 24 часа в сутки разгребать чужой исходный код, и даже без лопаты. >Working conditions: >Мы предлагаем работу в стабильной и успешной компании, полное соблюдение ТК РФ, перспективы карьерного роста >и достойную оплату труда (по результатам собеседования).
Да, да, да. А вы еще не обанкротились? И когда планируете? >Для сотрудников: >- бесплатное питание; >- корпоративный абонемент в фитнес-клуб; >- комплексная медицинская страховка (ДМС); >- офис находится рядом со ст. м. Савеловская/Отрадное; >- интересные условия по переезду для кандидатов из других регионов.
>Send your resume via e-mail: hr@acronis.ru or use the form below. Please specify the career code "cpp >design" in the Subject of your message.Да, да, да, обязательно пошлю, но я же тупой дятел, и вы меня все равно не примете на работу, но начнете названивать каждые полгода и приглашать на собеседования, на котором опять выяснится, что я не знаю ни STL-ля, ни объектов синхронизации, потом опять у HR-а закончится оперативка и он опять названивать начнет (быстро забывает, что я не знаю STL-ля и объектов синхронизации, памяти не хватает). | | Wednesday, December 17th, 2008 | | 1:45 pm |
Текущая директория в виндах
Понятие "текущей директории" в Windows атрофировано, как и многое из того, что ее предшественник MS DOS взял из linux. Вот, взгляните сюда: getcwd.c
_TSCHAR * __cdecl _tgetdcwd_nolock ( int drive, _TSCHAR *pnbuf, int maxlen ) { ... /* Get the drive index of the default drive */ ... /* * Get the current directory string on that drive and its length */ ... ret = GetFullPathName( drvstr, maxlen, p, &pname );
... return p; }
Теперь вопрос на засыпку: от чего зависит текущая директория в Windows? | | Monday, December 15th, 2008 | | 11:38 am |
Надо и поворчать
Разгрести десятки мегабайт исходников вручную (типа убрать кучу навоза лопатой) - это работка для меня, а вот придумать креатифф - нее, тут сразу найдутся охотники... | | Friday, December 12th, 2008 | | 4:48 pm |
Ясность и чистота кода VS "лишь бы работало"
Меня часто ругают за грязный код. За copy/paste. За баги. Но позвольте! Дорога к т.н. "чистому" коду лежит как раз через copy/paste и через "грязный код". Код должен пройти много стадий рефакторинга, прежде чем он превратится в образчик чистоты (тьфу!), где даже комар носа не подточит, где царит идеальная стерильность, как в операционной, где все выверено до последней буковки, где улучшать уже нечего. До этой стадии "нирваны" дойдет далеко не весь написанный код, а хорошо, если 1/100 его часть, а все остальное так и останется "грязным мусоросборником", неясным, нечистым, непонятным отстоем. | | Thursday, December 11th, 2008 | | 2:45 pm |
Idea Fix
Goщgle сделал онлайн-версию Офиса. Adobe скоро сделает online-версию Photoshop-а. А мне бы сделать нотный редактор-онлайн. Прикиньте: онлайн-редактор с продвинутыми фичами, как в Finale, добровольцы будут туда перебивать все произведения мировой музыкальной культуры, будет онлайновая библиотека партитур - рай для музыкантов, откуда каждый композитор типа Шнитке сможет запэйстить к себе в сочинение целые цитаты из классиков, а каждый композитор не типа Шнитке будет иметь в арсенале готовые паттерны типа "вставить генеральную паузу" или "вставить стандартный рок-н-ролльный квадрат" или "поместить в корзину всю партитуру". Нет проблемы с публикацией нот новоиспеченных композиторов, с поиском нот для исполнителей и дирижеров...ээх, мечты, мечты...А ведь такого редактора реально сейчас нет! И можно заработать миллионы, миллиарды долларов на баннерной рекламе, если занять эту нишу первым!!! Срочно! Срочно! Все бросать и делать редактор! |
[ << Previous 20 ]
|