Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Читаю надпись на сосисках "усилитель вкуса глютамат натрия". А есть такие, кто "вкус" произносит как "укус". Ну и вообще слова с "в" в начале. Вот они наверное ржачно прочитали бы. Гыгыгы, "усилитель укуса". Сожрал и батарею перекусил пополам!
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Я вот чо подумал-то. Сегодня вдруг с утра. Шо мы вот на катамараны ездим уже пять лет, этот вот шестой год поедем. И из всех, кого мы туда вывозили, никто потом сам туда второй раз не поехал. (А мож поехали и нам не сказали) С нами повторно приезжали, и не раз. Паша, Наташа, а вот чтоб самомим потом съездить, я такого не припомню.
Какой из всего этого следует вывод? Ну, общеизвестная истина, чо. Те, кто хотел, уже давно сам сделал, а те, кто пока не сделал, потому и не сделали, что не хотели. Ты конечно можешь их пнуть, они продвинутся чуток, но как только перестанешь пинать, всё равно остановятся. Хотя, конечно, возможны исключения, шо мол, кого-то подтолкнули, а то он всё не решался, а дальше уж он сам. Но мы пока что на таких не наталкивались, как показывает анализ. Кстати, можно подсчитать, скоко раз и с кем мы там были. Я-таки подсчитал. У меня в Дайре почему-то ацуцтвует одна запись о нашей поездке на 1 день 19.05.2013. Тогда с нами ездила падруга падруги Оля.
Итого, за всё время (5 лет) мы привлекли 19 человек, из которых: 14 приезжали 1 раз 3 приезжали 2 раза 2 приезжали 4 раза Ну а мы с подругой приезжали 12 раз. А всего я там был 23 дня, а подруга 18. Вот такие мы моряки с Москва-реки! Из этих всех вот 14 человек 3 потом пошли с нами на яхте. Короче, ладно, мы отвлеклись. Не получается у нас, пмаешь, привить парусный спорт в массы. Уж если с катамаранами так дело обстоит, чего уж о яхтах говорить. Такие дела, в общем.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Сегодня пришёл на работу с утра, открываю комп, а там - аж три окошка! 1) Опера предлагает поставить новую версию. 2) Каспер какие-то новости мне в рыло тычет. Средство против планшетов продаёт и предлагает зарегистрироваться. 3) Винда предлагает обновиться до 10. Бесплатно.
Да что ж такое-то бля, совсем они там охуели, что ли? Я вот до этого юзал пирацкого Каспера и проблем не знал. Хотя, конечно, совесть покалывала иногда. Потом, так получилось, что надо было поставить лицуху. Купил лицуху. Что я за это получил? Ебучий магазин softkey начал забрасывать мой ящик всякой хуйнёй, теперь я продлил лицензию, он мне предлагает заново зарегистрироваться. Что за хрень? Я уже зарегился, когда покупал впервые. Сейчас всего лишь ввёл ключ продления, как я думал, а он я не знаю, регистрацию мою проебал штоль куда - предлагает теперь зарегиццо регулярно. Теперь ещё и новости начал показывать.
Винда заебала тоже своей простотой. Бля, ну если я десять раз ответил "нет" на предложение поставить Win10, наверное блядь и в одиннадцатый раз я отвечу то же самое. Сделайте уже какие-то выводы. С Оперой та же хуйня. Если не нужна мне ваша новая версия. Даже бесплатно. Меня старая вполне устраивает. Чо, вот, заёбывать-то?
Надеюсь, на "бесплатный" Линукс эта зараза не перейдёт, потому что это пиздец, бля, будешь сидеть одни рекламные окошки читать.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Слушал тут Малышеву - программу про здоровье. Она говорит, мол, внезапная агрессивность это может быть опухоль лобной доли мозга.
Это ж чо получается - если человека как следует заебать... он продемонстрирует все признаки опухоли мозга?
Или он буит поначалу так: "Нет, нет, нельзя, так ведут себя те, у кого опухоль, а у меня же всё в порядке, да?..." а потом "А гори оно всё синим пламенем! УМРИ ПАДЛАААА!
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Обычно выражение лица у меня хмурое. Так проще - меньше доёбываться будут. Периодически в лифте или в маршрутке я езжу с компашками щебечущих девиц, которые обсуждают свои проблемы, хихикают и всё такое. Раньше я просто осуждающе хмуро смотрел на них, точнее, сквозь них, ну не в сторону же мне смотреть? И возникало такое чувство - непричастности, чужеродности штоле, диссонанс. И однажды я понял: это я где-то в глубине думаю "какие же они всё-таки дуры!" и с тех пор в таких случаях стал проговаривать это про себя. Становилось легче, я смотрел на них уже с неким оттенком превосходства, при этом лицо чуть разглаживалось. Разглаживалось, потому что на самом деле я так не думаю, но забавно притворяться перед самим собой, что ты такой вот надменный говнюк, в то время, когда ты знаешь, что ты не такой.
И в какой-то момент я понял, что в этой фразе есть некая незаконченность. Полностью она должна звучать так: "какие же они всё-таки дуры, и какой же я всё-таки умный!" - и в этот момент у меня сразу улыбка через всю харю - я стал позитивным членом общества, достигнута внутренняя целостность и гармония! И поскольку надо чаще улыбаться, теперь я проговариваю это про себя каждый раз и при этом счастливо улыбаюсь.
Люди, которые всем улыбаются на улице - теперь я знаю, что они при этом думают.
Если меня прямо спросить, мол, ты правда думаешь, что они дуры, а ты типа сумрачный гений? Я отвечу: конечно нет, и поскоку сам себе уже отвечал, то ответ мне известен заранее. Темы у них самые обычные, сам такое тыщу раз обсуждал. А чо они - бином Ньютона должны обсуждать? Тогда я буду мысленно ругать их за то, что я тупее их. Но это если вдуматься, трезво взвесить факты и всё такое. А вот навскидку, подсознательно штоле, я себе ситуацию представляю так, что они-то, мол, херню мелют, а я всегда думаю о Высоком! Это наверное д'Артаньянство.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Хочу закодить одну херню, но не знаю, как. Конкретно - панельку для вывода текста. Панельки такие существуют, я сам их видел неоднократно, хоть и не в каждой программе. В том же VC++ 6.0 внизу панель Output. Мне нужно то же самое, токо без вкладок. Чтобы можно было менять размеры и докить. Довольно быстро нашёл, как это сделать ещё во вторник. Сделал на основе CDialogBar, но она не отцепляется от края окна. Целый день читал вчера форумы, нашёл: support.microsoft.com/en-us/kb/185672 Сделал. Должна отцепляться. Программа вылетает, падла, при запуске. *pDockBar=NULL где-то там в глубинах MFC. читать дальшеСегодня ещё посмотрю, мож чо напутал там. Короче, если сделать вот так:
m_wndDialogBar.SetBarStyle(m_wndToolBar.GetBarStyle() | styles ...); а потом DockControlBar(&m_wndDialogBar) - то не вылетает и работает. Узнал случайно - забыл исправить, и оно заработало. Сегодня ещё посмотрю на свежую голову, мож чо напутал, но вроде всё так. Оно и раньше вылетало в этом месте на DockControlBar - до этого у меня были попытки во вторник. На вечер среды ничего не изменилось - стабильность, уже хорошо.
Ну и, обуреваемый сомнениями, я подумал, чо я время трачу, читаю всякую хрень, когда можно спросить у знающих людей. Конечно, рано или поздно я найду, как это обойти или сделать, но нафига тратить время, когда всё уже придумано и не раз. Мне ж не сама по себе панель нужна, а потому что она используется в программе и так было бы удобнее. В общем, морально сломался - зарегился на cyberforum.ru. Там у них всё так пафосно, нахуеверчено пздц, сразу видно, программисты писали. Мне пришло приветственное сообщение - в папке 1 сообщение из 0 допустимых. Папка сразу переполнилась, гыгыгы. Первые два дня и до пяти сообщений вообще минимум прав, потом немножко побольше. Видно, спамеры их совсем зоебали. Ну, я молчу, не они ж ко мне пришли, а я к ним. Вечером, после работы задержался, написал вопрос, думал, приеду домой, а там уже ответ готов. Вопрос-то хуйня, этих панелек в винде полно, она вся из них состоит. Приезжаю домой - 20 просмотров, 0 ответов. На утро ничего не изменилось. Присмотрелся, а там вопросы рядом "как передать переменную INT в String?" "Как из текстового поля получить значение?" дааа, думаю, если тут все такие программисты, ответа придётся ждать долго. Эт я ещё написал в раздел "Visual C++", а есть раздел "C++ для начинающих" - туда я побоялся лезть В общем, чо-то я разочарован этим MFC и вообще программированием. Перестал про палитеку читать, думал программированием отвлекусь, сунулся - а тут тоже говно!
Есть ещё rsdn.ru мож там памогут, ну и панелька - не единственный вариант, можно много чего придумать, просто с ней было бы удобнее. Есть ещё Self-Training Kit по экзамену 70-016, я думал - на хер он мне, оказывается, и его полезно почитать, там тоже инфу можно найти когда какой класс использовать и всё такое. Век живи - век учись updateupdate:Щас на работе переделал - всё работает. Но не меняет размер. Накопал вот это: support.microsoft.com/en-us/kb/143255 Применил - работает! Меняет размер! Охуеть. Причём, как это работает, представляю оччень приблизительно. На уровне "как-то оно там работает и всё". Дома ещё попробую то же самое. Если дома вылетит, а тут нет, тогда жопа. Но в любом случае, к вечеру мы бум знать больше! )))
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Пн Вт оба дня сидел дрючил второй мегапроект. Вроде бы и закончил, но всегда есть над чем поработать, причём, инженерная мысля часто приходит не сразу. читать дальшеВ пн сел переписывать то, что наваял за выходные. А то больно сложно получилось. Как только надо что-то добавить, всё, ступор сразу. Переписал, правда, не до конца. Проще получилось и возможности прибавились. Я бы и дальше писал, но - незаметно подкрался ДР. Я-то праздновать не планировал особо, но подруга хотела, чтоб всё, как у людей. В общем, проще отпраздновать. Сижу я, значит, бухаю, а мысли далеко - в программировании
На следующий день встал, полчаса или час сидел тупел, не мог цикл написать. Ещё прилёг поспал, потом справился. И до позднего вечера снова херачил. Оно вроде и несложно, но когда начинаешь отлаживать, на всякие дебильные ошибки много времени уходит. Пока там докопаешься, что и как. Но опыт быстро приходит, вспоминаю старые трюки и время поиска ошибок неуклонно сокращается. В принципе проект готов, но не мешало бы его чуток улучшить.
Некоторые наблюдения за последнее время. Я ваще до этого много лет мутил на Ассемблере, потом на С немного, Паскаль там и подобное. Но всё это были языки процедурные. И такой подход настолько вошёл в привычку, что трудно мыслить по-другому. Настало время переходить на С++. Читаю, значит, эту объектно-ориентированную премудрость. Умные книжки всякие. Из тех, что были доступны в университетской библиотеке. Афтары, значит, приводят пример. Вот, мол, возьмём строки. В С это будут обычные строки, а в С++ можно сделать умные строки, которые, типа, сами знают свою длину и могут сами себя распечатывать. В разных книжках похожий пример. Я эту муть почитал и говорю - а на хрена нам весь этот огород городить, если мы можем в старом добром С тупо распечатать эти строки? И забил на этот С++, не впечатлился. Кроме того, они ж там втирали про инкапсуляцию, наследование и чо-то там ещё - третий кит ООП. Типа, класс это шаблон для выпекания объектов с данными и кодом для их обработки. Мне и втемяшилось, что класс надо создавать там, где у тебя есть много однотипных объектов. Ну да, встречались у меня в программах объекты, которых много. Но остальных-то - мало. И чо с остальными тогда делать? И вот, через примерно 20 лет я осознал, что класс это не только форма для объектов, а ещё кусок программы, относительно обособленный от других таких же кусков. За счёт чего его можно понемножку менять без особых последствий для всей программы. И сам подход ООП на это и нацелен. Если б я такое прочитал 20 лет назад вместо хуйни про строки, то может вся жизнь по-другому бы сложилась Опыт написания более менее объёмных программ у меня был, и пишутся они как раз по небольшим кусочкам. Таким образом, упрощается развитие ПО, а ПО, что бы там ни говорили, дожно развиваться. Не переписывать же каждый раз заново одно и то же.
Если бы книжка 70-016 попалась мне в 2000-2001 году, тоже мож вся жизнь по-другому бы сложилась
Раньше под каждый проект создавал отдельную рабочую область - Workspace. И потом, как дурак лазил туда-сюда, если надо было подсмотреть, как я там чо сделал. Сейчас в одну область добавил второй проект - жизнь стала намного проще!
Общался с коллегой по работе по поводу С++. Он говорит, писал в универе сначала на С, потом С++ у них был. - Чо, говорю, не тянет временами чо-нить написать? - Ты чо, я уж всё забыл! - Дык я тоже, думаешь, помню? Каждый раз лезу в тырнет, как там этот сраный do-while пишется или чо там? repeat until? Т.е. помню, что там что-то такое есть, но как оно в деталях, хрен знает. Это хорошо, щас тырнет есть, а раньше ваще, по каждой такой херне лезешь в книжку, как дурак. Времени уходило - уйма. Да и щас, в общем, тоже много уходит.
Короче, необязательно знать язык или там уметь чо-то на супермегауровне. Главное - хотеть писать. И остальное всё придёт.
Решил вчера заменить класс CView на CScrollView. Ну и заменил, как сказано в тырнете, class CMyView : public CView на CScrollView. Скомпилилось нормально, без ошибок. Запускаю - вылетает. Что за хрень? Оказывается, надо не в одном месте заменить, а во всём коде упоминания CVIew на CScrollView. Ну кто бы мог подумать?
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
А я вот токо щас заметил, что если нажать Ctrl+B, Ctrl+I, Ctrl+U, Ctrl+S, то в Дайрике шрифт будет жирный, курсив или подчёркнутый. Раньше мышкой тыкал, клавиш не замечал. А мож только недавно сделали. Ну, теперь быстрее получится набирать
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
В общем, короче, замутил я второй проект на С++! Кубик пока не закончен, ну и хуй с ним, логично же, не? Точнее, затык у меня пока возник с Кубиком, там осталось всего ничего - сохранение и Дерево. А второй проект я задумал давно - ещё неделю назад, если не две, и он привлекал своей простотой. Собсно, делать там было особо не хер, потому и решил отвлечься. Проект предназначен для эээ поиска спрайтовой графики в играх для БК. читать дальше. Многа букаф Всё проще, чем кажется. Значит, давно-давно, лет 25-30 назад был такой комп БК 0010-01. И у меня тоже он был. На ём были игры ну и проги всякие. Прошло время, людей пробила ностальгия, и они замутили аж несколько эмуляторов этого компа и образы игр залили в Тырнет. Теперь можно запустить под Виндой эмулятор и это буит, как если бы ты играл на том компе, токо тут возможностей даже больше - можно сохраниться в любой момент, запустить быстрее/медленнее. Ну и короче, года три назад я запилил для этого эмулятора редактор Пирамидок (игра там такая была). Грозился переписать и сами Пирамидки под Винду, но сдулся. А мечта осталась. Так вот, чтобы проще изучать код оригинальной игры, нужно знать, где собсно код, а где картинки. А для этого и пригодицца моя новая программа. Всего и делов-то - отобразить на экран содержимое двоичного файла!
И вот, в эту субботу меня прорвало. Сначала я изучал, как отобразить содержимое на битовый массив в памяти, потом создать контекст, совместимый с контекстом экрана, чтоб по-быстрому на экран вывести, чтоб не моргало. Потом, думаю - хер с ним. Чо нам этот массив - по экрану таскать штоле надо? Отобразил один раз и дело с концом. Не хочешь, чтоб моргало - окно по экрану не дёргай и всё пучком буит. Думаю, надо попытаться для начала хоть как-то отобразить, мож ни хрена и не выйдет. И вот, всю суббоу просидел. Замутил хитрую геометрию, там за один цикл вся эта херня подсчитывается и выводится. А там же надо добавлять постоянно новое и новое. И тут я завис, сидел, втыкал, как же оно у меня работает и как добавить, чтобы ничего не сломалось. Зря я так. Уже в метро потом понял, что можно было и попроще написать. Мож в будущем перепишу. Оно ж как - перед тем, как написать элегантно и кратко, нужно написать хоть как-то, и возможно не один раз, а потом ты конечно въедешь в тему и придут всякие идеи по оптимизации.
Ну вот, целый день в субботу потратил, вечером смотрю - хуйня какая-то получилась. Ни хера там не видно этих спрайтовых картинок, а если и видно, то нужно обладать недюжинной фантазией, чтобы это разглядеть в скопище точек или заранее знать, что оно там есть. Расстроился, думаю, бля, такая идея хорошая была, а в итоге говно получилось. В воскресенье утром иду в расстроенных чувствах. На что задрачивать? В первой проге сложности, вторая говно. Занялся всё-таки второй. Решил уж - доведу хоть до какой=то кондиции, будет более менее законченный проект - там по мелочи надо было доделать. И вот, решил протестировать свою функцию, которая на экране рисовала. А функция-то глючная оказалась! Я её написал вчера и особо не проверял. Кажет и кажет. Так все крутые программисты делают Ладно бы она ничего не рисовала, я бы конечно это заметил и полез чинить, а так она вроде бы рисовала, но коряво, с искажениями. А я чо, в курсе, как там эти спрайты должны выглядеть? Я их видел в последний раз лет 20 назад. В воскресенье я додумался написать простой тест.
Вот вам абстрактное искусство:
Видите? Битики не все прорисовались. Не видите? Ну, а если я вам скажу, шо это строка из 8 байтов, в каждом из которых пересчитываются целые числа: сверху вниз 0, 1, 2, 3 и так далее до 255. И видно, например, что "5" (6я линия сверху) должна состоять из двух битов, а он там куда-то пропал. То же и "9" и "13". Если проще - то картинку по горизонтали пересекают чёрные полосы. Их быть не должно, линии сверху вниз идут непрерывно; как только они кончаются, левее начинается новая. Стал ковыряться. Разобрался. Вот результат:
Уже лучше, но в нижней половине опять херня какая-то. Она должна быть ещё белее. Ещё поковырялся, ещё ошибку исправил. Вот результат:
А как функцию починил - сразу графика засверкала, всё чётко, красиво, видно и идея сразу заебательской показалась - какой я молодец, что до такого додумался - такую программу написать!
Примеры в студию. Вот символы. Слева выглядят, как будто их пытали. Пустое пространство слева - это должна быть карта пирамид, которая в нём угадывается с трудом. Справа всё чётко и карта отлично прорисована.
______________
Ключ было-стало. Я когда в первый раз увидел (слева), подумал, что он типа на чём-то висит, что ли. А справа уже понятно, что это разные картинки были.
А тут мы видим сверху вниз фрагмент кирпичной стены, алмаз, торчащий кинжал, кирка, блеск алмаза вверх, влево, вправо, лестница в одну и в другую сторону (по одной ступеньке), летящий кинжал в разных положениях.
А вот сама игра, чтоб было понятно, об чём речь. Там вы можете найти лестницы, кирки, алмазы и прочее "в действии". Белые цифры это не из игры, это я уже сам потом нарисовал.
В итоге целый день дрючил вторую прогу, до первой руки не дошли. В субботу, кстати, открытие совершил. Оказывается, если на главную панель в программе добавить кнопку, и сделать у себя обработчик события, кнопка прекрасно работает! До этого я думал, что только с меню так можно, а обработчик стандартной панели где-то запрятан, а кнопки же не принято по одной обрабатывать, принято целой кучей сразу. В общем, сделал, и очень прекрасно всё получилось - с кнопками и обработчиками. Со всем остальным ещё предстоит поработать. По каждой функции приходится инфу смотреть. Пока лазил по всяким тырнетам, наткнулся на кучу книжек про С++ и их обсуждение. Вот, к примеру, один перец пишет www.codenet.ru/progr/cpp/ccpp.php Не так крут, говорит, этот ваш С++, как его пытаются изобразить. Серьёзные проекты лучше на С писать, потому что там ошибки легко выловить, а в С++ сам компилятор сложный. А чего я тогда тут дрочусь с С++, спрашивается? С другой стороны, у меня и проекты все - мои собственные, а их я могу на чём хошь писать. Почитал значит список книг про С++ и обсуждение. В общем, книжки 2006, 2002 и прочих лет уже устарели, как щитают тырнет-комментаторы, и надо учить новое. А новое это С++11 и С++14. Видимо С++11 уже тоже устарел, поэтому надо 14й, а скоро выйдет 17й. Это ж получается, надо не работать, а токо сидеть, про С++ читать - изучать новые компиляторы. А жить когда? Ну и собсно, когда писать под эти компиляторы, если всё время надо новые изучать?
Ну пару книжечек я раздобыл, почитаю всё ж - вдруг чо полезное попадётся?
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Ну, точнее пока одного экземпляра. За последнее время я сделал Undo & Redo - вдобавок к мыши сделал нажатия с клавиатуры и чтобы можно было клавиши задавать в .ini файле - сделал пацкаску, которая показывает перспективность следующего хода. Сначала думал - хуйня, потом смотрю, нет, помогает. - сделал функцию "случайные 4 хода", которая разбирает кубик, а ты потом собираешь читать дальше Вот тут-то дерьмо всё и понеслось. Точнее, началось всё с пацкаски. Я хотел всё сделать по-человечески, чтобы текст выводился в отдельную панельку, которую можно скрыть или показать. Хуй там! В этом ёбаном MFC, не знаю, для каких инопланетян его писали, чтобы вывести такую панельку это вообще ёбнуться надо наверное. Ну посидел бы я нескоко часов, а может и дней, сделал бы. Принципиально, то что именно в панельке - это бы ничего не дало - это ж не основной функционал, а всего лишь сраный интерфейс. Причём этот ебучий MFC создан якобы для того, чтобы упрощать создание интерфейса. Местами упрощает, да. Но только местами. А я ещё не уверен, что это полезная функция будет. В общем, почесал репу и сделал тупо вывод в окно. Быстрее и проще. Полезная херня оказалась, как ни странно.
Дальше - больше. Сделал функцию 4 хода и хочется, чтоб можно было регулировать количество ходов. По-моему, это естественно. Также естественно делать это через поле ввода, расположенном на панели инструментов. Ууу, бля, а вы знаете, чо нужно сделать, чтобы разместить на панели инструментов поле ввода? Я уж тут третий вариант пытаюсь провернуть. Причём, я это уже делал пару лет назад и код есть даже, хоть и не совсем такой. Сначала хотел на основную панель поместить. Не заладилось, ладно, сделаем отдельную панель, под неё свой класс напишем. Хуй там! Не работает. Ладно, пусть будет не поле ввода, а комбобокс. Код практически идентичный, как и пару лет назад. Хуй там! Он её просто не показывает, и ошибок не выдаёт. Вот такое дерьмо. Как вообще на таком говне люди ухитрялись чо-то там писать. Щас-то понятно, у всех глаза открылись, кроме меня. АААА! ЯРОСТЬ! ЯРОСТЬ!
Чертвёртый отчаянный шаг - это через диалоговое окно ввести эти сраные данные. Не так удобно, конечно, но лучше, чем через .ini файл. В проге пока не реализовано сохранение имеющихся состояний. Опять же из-за сраного тырфейса. Не могу допетрить, как это поудобнее сделать. Но думаю в ближайшем будущем осилим.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
У нас везде на работе кресла на колёсиках. И ламинат. Нам маркетологи втирают, что на колёсиках конечно удобнее и всё такое, но я вот чо подумал. Кресло катаицца по полу, и постоянно приходится напрягать мышцы, чтобы остаться в том положении, в котором надо. Напряги конечно не сильные, но они есть, в течение всего дня. Кресло постоянно елозит по полу и так далее. Ещё у него есть откидной механизм - спинка с креслом откидывается назад - чуть забылся и отложил кирпичей, тоже мышцы пресса приходится резко напрягать, чтобы не облокотиться в последний момент.
Мож из-за этого вечером с работы идёшь, будто кирпичи таскал? У всех коллег дома для компов стулья на колёсиках, и они щитают, что так удобнее. А у меня у одного обычный стул - и ничего, дома от усталости не падаю, хотя его приходится (о, ужас!) передвигать. Ну, правда, стул гораздо легче, чем такое кресло, но никакого дискомфорта от того, что его надо двигать, я не испытываю.
А вы чо думаете? Просто некоторые вещи стали настолько привычными, из серии "все знают, что...", что когда задумываешься, что это может быть не так, первое время даже не уверен. Не веришь своим глазам. Ну или жопе, чем мы там сидим
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
У нас на первом этаже открыли кафе. Ну как кафе - просто уголок отгорожен барной стойкой, там можно кофе купить и всё такое. Удивительно то, что мне бы в голову не пришло, что там можно открыть кафе. И из нашей комнаты, где сидит 10 человек об этом тоже никто никогда не думал. Я поделился с коллективом. Босс: - Это надо мыслить по-азербайджански! Блин, как я хочу мыслить по-азербайджански! Мож туда на стажировку съездить? Я после этого ваще задумался открыть в Азербайджане специальный Центр, куда наши будут ездить. А местным там скажу: "Ребята, вам просто надо продавать своё мышление!"
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Эти три дня с субботы по понедельник были не очень продуктивными в плане программирования. За вечера сб и пн удалось реализовать Undo & Redo с запоминанием до 100 ходов и провести очередную небольшую оптимизацию кода. Идеи по оптимизации так спонтанно приходят - вроде ничего, ничего, а потом хоп - "а вот тут можно же..." Undo & Redo оказались в реализации сложнее, чем ожидалось. Вроде херня хернёй, а как начинаешь писать, куча неочевидных моментов всплывает. И не один я так думаю, погуглил уже ))) Это у меня ещё простой случай - однотипные элементы хранятся. читать дальше Пришлось создать ещё один класс - растём! Прикольно наблюдать, как при добавлении очередного класса все остальные классы тоже чуток меняются - где-то кусок кода становится самостоятельной функцией, где-то сами функции чуть меняются. Осталось реализовать ещё сохранение и может, запоминание комбинаций, чтоб не самому крутить одно и то же, а нажал кнопку и оно само. И тогда настанет время переходить к той херне, из-за чего всё и затевалось - дереву решений. Сначала я думал записать всё в базу данных - они как раз заточены под такие штуки - хранение и поиск больших массивов. Но потом подумал, хер ли? Там две таблицы всего, справимся и сами! Ведь есть же шахматные и шашечные программы, там тоже дерево решений - и они обходятся без СУБД! А щас чо-то опять подумал и приуныл - пожалуй, наверное, лучше всё-таки в БД.
Там буит три таблицы. Первая это стек состояний, которые ещё предстоит разветвить в дерево, вторая список вообще всех найденных состояний (из первой потихоньку переписываются во вторую) и третья это связи между этими состояниями (т.к. там многие-ко-многим). С первой и третьей - никаких сложностей, надо только память выделять по мере роста. А вот со второй сложности. Там будет много записей - возможно больше миллиона. Чтобы быстро вставлять - надо писать в конец, тогда массив будет несортированный, и в нём не получится быстро искать. Чтобы быстро искать - нужен сортированный массив, а если он сортированный, в него не получится быстро вставлять - надо будет перемещать элементы.
Варианты решения: 1) Сделать "хоть как-то". Да, мож линейный поиск или вставка в сортированный массив с перемещением кучи элементов за раз. Мож оно не так медленно буит работать, как кажется. 2) Запилить-таки это в базу данных 3) Погуглить и чо-то всё-таки намутить с помощью связных списков индексов и прочей херни. Всего одна сраная таблица, неужто не осилим? Может даже удастся спиздить готовый код. 4) Можно сделать промежуточный вариант - разреженный сортированный массив, он позволяет быстро вставлять в пустые места и не каждый раз перемещать алименты Но тогда он будет занимать гораздо больше места, чем обычный.
В MFC есть класс CArray, но меня смущает, шо там чо-то может не работать сравнение для элементов, которые созданы с помощью конструктора, а у меня именно такие элементы и будут.
update: почитал я про CArray, в общем, это вариант с перемещением кучи элементов за раз. Из плюсов только то, что он сам, типа, растёт и в середину элементы вставляет сам. А сортировку надо самому делать. Зато я сам от себя офигел - залез в исходники MFC (они там прилагаются), позырил всё. Помню, в 2001м пытался я освоить всю эту хрень, читал книжку про Winapi. Там товарищ советовал читать заголовочные файлы, типа много чего можно узнать. Я посмотрел список этих файлов, погрустнел, открыл, посмотрел пару файлов и дальше этого дело не пошло. А щас чо-то чих-пых и всё ясно. Может, одно дело изучать некие заголовочные файлы хуй знает для чего - с неясными намерениями и таким же результатом, и другое - искать конкретное решение среди нескольких возможных вариантов. Когда точно известно, что надо получить, всё как-то проще становится.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Ну чо, привезли вино. Звонит мне аж в восемь утра водитель, мол, ща, через полчаса подъеду. А у меня наличных нет. Собрался, пошёл к банкомату, ещё и ёбнулся по дороге - скользко. Дошёл, магаз с банкоматом ещё закрыт, водила уже подъехал. Чо делать? Спрашиваю, мол, есть у тебя карта Сбера? Вот, давай на неё и перекину. Забрал вино, везу в лифте наверх, читаю состав по бумажке. Ёпрст! Пенелопы Круз одна бутылка! Вместо второй всунули какой-то Дорнинг Пфальц. Клуни две и Шевалье де Баяра две. Пенелопы тоже обещали две, а никакого Пфальца в проекте не было. Вот, уже по мелочи, а наебали! Включаю комп, готовлюсь бабло перебросить - человек же ждёт! А потом думаю - чо эт я разогнался, надо сначала посмотреть, чо там в коробке, мож там Букет Кубани какой-нить, а я уже готов деньги отдать за кота в мешке.
Открыл коробку, позырил. Да, Пенелопа и Клуни производства компании Vincente Gandia. Шевалье де Баяр франция, регион Гасконь. Ну ладно, чо там. Перебросил бабло, скоро попробуем, чо за вино такое.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Ох, ну и денёк у меня вчера был! Короче, неделю назад сломался телик, дня три назад сломался свет в прихожей - патрон наебнулся. А там весь светильник - плафон, патрон и пластина. читать дальшеТри дня искал в магазах такой же патрон - нет таких. Купил другой светильник, а чо делать? С теликом тоже жопа. Про официальные сервисные центры чо-то я ужасов начитался в отзывах - ни хрена делать не умеют, токо деньги дерут, стал искать сторонние конторы. Дык на дому никто не делает, всегда либо ты сам везёшь, либо курьер приезжает забирает, а чо они там с ним будут делать и что ещё сломают в процессе - неизвестно. Цена тоже может быть какой угодно. Поехал на местный радиорынок, недалеко от меня. Там тоже есть ремонт теликов, ремонтник грит тоже к нему везти надо. Я думал, ещё найду контору, которая прямо на дому ремонтирует, поэтому никакого телефона не записал. Контору тоже не нашёл. Ладно, думаю, надо к нему съездить поспрошать ещё, тут хоть везти недалеко.
Вчера с утра дрыхну, в другой комнате будильник звонит. Звонит, звонит, сука такая. Ладно, думаю, надо встать, а то батарейка сядет. Встал выключил, тишина и звук какой-то странный - шипение. Иду на звук, а там - в ванной горячая вода журчит - смеситель пробило в месте, где он прикручивается к трубе горячей воды. Какая первая реакция? Правильно! Перекрыть стояк и спать дальше. Перекрываю вентиль в стояке, а он не перекрывается! Холодная закрылась, а горячая тонкой струйкой-таки течёт. Вот говно! Скорее всего прокладку надо менять. Самому в лом, вызываем сантехника - зря, что ли ЖКХ плотим каждый месяц?
Жду и думаю - что, блядь, за дела такие? Телик, патрон, теперь смеситель и вентиль, колдует что ль кто опять? С другой стороны - лучше уж пусть ломается всякая хрень, чем мы. Пока здоровы, всё это можно починить, а себя организм чинит сам и не всегда удачно. Так что всё это хня! Щитаю это мудрость, которая приходит с возрастом
Приходят сантехники - аж двое - сантехник и электрик. Мы с Тамарой ходим парой. Начинают разводить оо, это картриджу пизда, надо смеситель менять. Я грю, ну его купить ещё где-то надо. А вот тут под окном магаз, мы сами там берём, 2500 нормальный смеситель. Замена 1200 будет стоить. Ога, значит, мне нужно метнуцца купить там первое попавшееся говно только потому, чтобы он смог заработать 1200. А потом я должен лет 20 терпеть неугодный смеситель, если в нём вылезут какие-то косяки. Так уже было, правда, не из-за сантехников, а из-за предков. Нет уж! Сначала надо выбрать как следует. Со смесителем не проканало, оо, говорят, горячий вентиль в стояке надо тоже менять. Перекрыть стояк тыщи полторы и работа тоже скоко-то. Надо будет часа три ковыряться, всё разбирать. Надо же! А кому щас легко? Блядь, 25 лет уж при капитализме живём - ни хуя не поменялось. Дело, видимо, не в строе, а в людях. В общем, видит он, что я не подорвался баблом сорить, поменял мне прокладку на смесителе за 300р, течь перестало. Но это временное решение. Эээ, любое решение - временное, если вдуматься
Уходят они, а чо в прихожей света нет? А вот так вот, патрон наебнулся. Дык вот электрик перед тобой. Эээ, говорю, всё не так просто. Сначала надо светильник купить, т.к. этот похоже уже всё. Они ушли, а я давай светильник вешать. Нужен огрызок провода. У себя поковырялся, не нашёл, надо идти в магаз. Пошёл в магаз, купил провод, лампочки светодиодные - надо попробовать в прихожей как оно будет. Ну заодно уж проехал на радиорынок, записал его телефон, спросил, в каком виде привозить. Стрейч-плёнкой, грит, замотай, чтоб вода не попала. А тут надо сказать, неделю назад у нас снега было дофига, потом гололёд, а щас тепло, растаяло всё и ходить нескользко. Отличный день, чтобы отвезти.
Вернулся домой, повесил светильник, лампочки вкрутил светодиодные, а у меня выключатель с подсветкой, дык они мигать начали. Выкрутил их нафиг - выключатель менять пока в лом, пошёл купил обычные накаливания - прозрачные. Включил - мрак. В местном магазе стрейч-плёнка большая бобина, поменьше разобрали уже. Проехал в соседний, там такая же бобина, токо чуть дешевле и матовые лампы заодно взял. Вышел из магаза - дождь пошёл! Бляя, вот уж точно не зря плёнку купил! Вкрутил матовые лампы, поярче стало.
Хитрогнутая подруга, кстати, хотела, чтоб я телик как-нибудь там сам отвёз, а она потом приедет. А как смотреть телик - за уши не оттащишь. Нет уж, говорю, давай приезжай, нужен человек, который буит двери открывать и всё такое, пока я его несу. Приехала, я снял телик, открутил кронштейн, замотали телик в плёнку, загрузили в машину. На заднем сиденье ремнями закрепили и повезли. Довезли нормуль, токо, чтоб меньше нести, решили заехать на стоянку, а на неё ехать через рынок. Бляя, не дай бог каждому! Больше никогда в жизни! Тесно, по дороге народ ходит, машины прут и навстречу и сзади, у стоянки дорога вообще разбитая. Пока несли, как я радовался, что он не 50 дюймов, а всего 46! Так что имейте в виду на будущее - когда будете покупать телик, заодно прикиньте, как будете везти его в ремонт.
Сдали телик, вернулись домой. Подруга грит: - Круто! Смотри, сколько всего ты сегодня сделал! - А что я сделал-то? Три пункта всего - Ну вообще да. Восстановил то, что и так было, только внезапно сломалось Пожрали, посмотрели кино на компе. А пока смотрели, я думал - когда же всё это кончится? Я ПРОГРАММИРОВАТЬ хочу, а прихоица всякой хернёй занимацца! А когда подруга уехала, я уже спать хотел, не до программирования было.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Ещё несколько часов потратил я на это дело. В результате теперь можно "устанавливать произвольное состояние кубика". Точнее, раскрашивать его, как вздумается - можно хоть весь белым сделать или вишнёвым. Единственный минус - сохранять пока нельзя. Но и это в ближайшем будущем реализуем. читать дальше Обнаружил забавный глюк. Когда крутишь эээ часть кубика, то боковые грани этой части смещаются одна на место другой, а верхняя грань крутится вокруг своей оси. Дык вот, пока она была одного цвета, всё было в норме. Как только цвета поменялись, я заметил, что она крутится не в ту сторону! В жизни такое же невозможно, прямо какой-то сюр - я глядел и охуевал. Стал искать в чём дело, смотрю код, всё нормально. Там был кусок кода
i1=i<<1; i2=i1++;
Этим я хотел получить два подряд идущих числа i1, i2: чётное и нечётное. То есть, 2 и 3, 4 и 5 и так далее. Дык, блин, получалось ровно наоборот! 3 и 2, 5 и 4. Как так? Это не i2=i1+1. Тут сначала i2 приравнивается к i1, а потом i1 увеличивается на 1! Вот же ж верно говорят, вместо всяких там хитрогнутых алгоритмов надо делать выбор в пользу читаемости кода. Чем проще конструкция - тем надёжнее, тем меньше ошибок. В итоге переделал так:
i2=i<<1; i1=i2++;
Нифига не очевидно, зато работает.
Почти по каждой функции лезу в тырнет - читать MSDN на сайте Microsoft. Ваще без тырнета я бы ещё долго всё это делал. Дык чо там "бы", когда не было тырнета, и правда до хрена времени уходило. Ставишь одну функцию - не работает, другую - не работает. Чо делать? Хз. Короче, тырнет сильно ускоряет разработку и вообще много чего. Чтоб не лазить каждый раз, решил поставить себе MSDN на диск. Версии October 2001. Почему именно её - дык у меня и C++ 6.0 тех же лет примерно. Ну, короче, думаю, всё, щас быстро буду всё находить и т.д. Ага щаз! Она как большая помойка - вываливает тебе туеву хучу всего. Занимает больше гигабайта, мне это за всю жизнь не перечитать, а найти ни хера невозможно. Говно!
Visual Studio, между прочим продолжает заёбывать. Не сильно, но всё-таки. Поставил SP6 и ещё какой-то там kb чего-то. Не помогло. Один раз программа компилилась, запускалась и выдавала ошибку. Причём, ошибка такая, что хер поймёшь в чём дело. Перезагрузил комп, нормально стало. Пару раз сама по себе - раз и упала. А когда она падает, там какие-то файлы остаются типа открытыми и надо перезагружаться или чо-то будет недоступно. У меня пару раз инфа о классах и функциях была недоступна. Это было отстойно. Так что разработка штука такая - не всегда идёт гладко.
Ещё (не знаю, откуда узнал) есть такая функция в современных средах разработки - "закомментировать код". Ну там, если кусок кода не работает, ты его быстро выключил таким способом и вуаля. Вроде бы и на месте, и не работает. Потом включил, если надо. Ну дык не нашёл я такую функцию в этой версии. В современных есть, а в той нет почему-то.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Короче, в общем, как-то раз мне позвонила тётка, типа исследование про вино они проводят. Какое я пью, а вот они французские вина распространяют. Я конечно постебался, сказал, что предпочитаю всякие там греческие и турецкие, а мож ещё испанские, потому что они недорогие и их можно много бухать. Дык она не отстала. Звонит вчера. Мол, так и так, мы такая суперкомпания, у нас виноградники там и сям, и вот, мы вам можем предложить вино, как вы и предпочитаете - недорогое, то есть, до 1тр. Значит, у нас есть вино "Пенеплопа Крус". Когда пьёшь это вино, ощущения такие же, как будто потрахался с Пенелопой Крус! А ещё есть вино "Джордж Клуни" и "Шевалье де чего-то там", когда его пьёшь, ощущения такие же, как если бы отсосал у Клуни или у Шевалье. В коробке шесть бутылок, можем привезти хоть сегодня.
Конечно, я, как русский человек, первым делом подумал, что меня хотят наебать. Поэтому возникло стойкое желание послать её на хер. Но потом задумался. "Пенелопа Крус"... А много у кого есть вино "Пенелопа Крус", гыгыгы? То-то же. Ладно, грю, привозите. Один раз в жизни-то можно заказать коробку. В общем, вот, в понедельник привезут. А ещё у меня ж ДР скоро. Они про это спросили, и в коробку положат набор для сомелье. Штопор, термометр для вина, какое-то дренажное кольцо и спецпробка! Понятно, уровень какой! Это вам не как обычно - об забор пивасик открывать. Тут всё культурно - штопором
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Здравствуйте дорогие товарищи! Поделюсь с вами, пмаешь, очередными успехами на ниве программирования. Если это можно назвать успехами. читать дальше Когда я начал писать, то знал, что некоторые функции требуют инфу в классах CRect и CPoint. И создал соотвецтвующие массивы. Но на этом - всё. Инициализировал я их поэлементно, в результате чего получилось дофига строк когда и прога стала выглядеть угрожающе. Примерно так: m_ScrCoord[0][0].x=INITX; m_ScrCoord[0][0].y=INITY; m_ScrCoord[0][1].x=(long)(INITX+CELLSIZE*k); m_ScrCoord[0][1].y=INITY+CELLSIZE;
И так много раз. При этом я плевался, матерился и думал, что же это за ООП такое, что писать так неудобно. Потом почитал специальную литературку. Оказывается, в этих классах есть специальные функции, которые, скажем так, сильно упрощают чтение кода. Насчёт ускоряют не знаю, но как бы там ни было, они всё равно есть - прикомпилируются к коду. Поэтому стоит их использовать. После оптимизации тот же кусок кода выглядит так: m_ScrCoord[0][0]=CPoint( INITX, INITY); m_ScrCoord[0][1]=CPoint( (long)(INITX+CELLSIZE*k), INITY+CELLSIZE );
m_FlatCoord[ i ][0].OffsetRect( -FLATSIZE*6, -FLATSIZE*2 );
Щитаю, эта прарыф!
Ещё при отладке там надо нажимать клавишу F11. Сначала она у меня работала, потом хуяк, чо-то случилось - перестала. Пришлось использовать экранные кнопки (с панели инструментов). А это офигенно неудобно - пока мышью прицелишься, пока нажмёшь. Ещё перестали работать F9, F10. Я поискал в тырнете - нет ничо похожего. Ну, думаю - клавиатура накрывается. Сегодня даже нашёл в сети тест клавиатуры. Запустил - ни одна F не работает. Оказалось, у меня в конце F-ряда есть клавиша F-lock. Видимо, я её по ошибке нажал и всё вырубилось. Вот же ж нахуевертили хз чего, нормальному человеку не разобраться. Нажал, теперь опять работает, ура товарищи! Слава мне!
Ещё сегодня впервые в жизни перегрузил оператор присваивания! Звучит круто, но на самом деле херня, конечно. Вот есть у вас структура данных некоего класса: два числа и строка. Надо вам её скопировать в такую же. Традиционный способ: структ1.число1=структ2.число1; структ1.число2=структ2.число2; структ1.строка=структ2.строка;
Но эт всё долго и теряется весь смысл упаковки в структуры. В С++ можно такую херню делать - переопределяешь оператор присваивания для класса. В нём пишешь, чего присваивать - то есть: структ1.число1=структ2.число1; структ1.число2=структ2.число2; структ1.строка=структ2.строка; А в тексте программы пишешь просто структ1=структ2; Компилятор когда это встречает, делает то, что было описано выше, но тебе об этом теперь знать необязательно.
Ещё проблема обнаружилась - клинит её, падлу, периодически. Бывает, нажимаешь "build", он пишет "Linking..." и тишина, на Ctrl+C не реагирует, приходится снимать задачу и среду перезапускать. Иногда на компиляции тоже клинит. Нечасто, один раз из десяти, но потихоньку заёбывает. А что же программа? - спросит догадливый четатель. Добавился ли к ней какой-то функционал за это время? Увы, вынужден разочаровать. Ничего не добавилось. С другой стороны, ничего и не убавилось Кубик можно крутить и сбрасывать в начальное состояние. Но в самом ближайшем будущем мы чо-нибудь к нему прикрутим.
Тут нада чота умное напейсать! Шоб сказал, как отрезал! Но чота ничо не приходит вголову, сцуко (( :D
Ну, в общем, в эти выходные я по утрам посидел нескоко часов и продвинул свой мегапроект. Теперь кубик можно крутить и сбрасывать в начальное состояние. Можно делать его трёхцветным. Пока нельзя самому устанавливать нужное состояние (окрашивать грани в выбранный цвет) и нельзя сохранить/загрузить результаты работы. Это мы скоро сделаем. И конечно дерево решений - оно пока ещё даже не в проекте.
Были забавные затыки. Есть над чем поржать. читать дальшеКак вы знаете, в С и С++ индексы массива начинаются с 0. Поэтому, к примеру 12 элементов имеют номера от 0 до 11. Понадобился мне двумерный массив 12х2. Ну я и объявил его. Потом смотрю: что за говно? Пишу в этот массив в [0][1] или [1][0] - прога пишет одновременно в [0][1] и [1][0]. Ну и так далее - пишешь в какой-то один элемент, прога инициализирует два. Думал-думал, типы данных менял - ни хрена. Неужто ошибка обработки многомерных массивов. Я что-то об этом слышал для MS VC++. В тырнете ничего об этом нет. Потом дошло - объявил массив как [12][1] - то есть, он, по сути, одномерный получился.
Решил добавить пункты меню. Добавил, а они не работают - нету их в карте сообщений. Что за говно? Причём, помню, что делал такое. Излазил свой предыдущий проект - пирамидки. Вроде всё пучком. Дело оказалось в том, что если пункты меню добавляешь после Help, то в свойствах пункта нужное поле заблокировано, а если добавляешь в подменю Help (ну там после Help>About...) или ещё в какое подменю, а потом перетаскиваешь на уровень выше, то всё пучком, нужное поле открыто, вбиваешь туда ID и связываешь с обработчиком.
Вот ещё чо забыл сказать. Использую библиотеку MFC. Почему именно её? Ну хрен знает, начинал с неё, а щас хочется ж быстрее писать, а не переучиваться на всякие библиотеки. В ней до хера классов, про которые я не знаю - знаю токо те, что в упоминались в книжках и в примерах в тырнете. Мало того, в тех двух-трёх классах, что я использую, знаю далеко не все функции, поэтому часто приходится изобретать велосипед с квадратными колёсами. Ну вот, к примеру, есть объект CPoint. Надо к нему чо-то прибавить или скопировать его куда - я так и писал: CPoint1.x=CPoint.x+x1;CPoint1.y=CPoint.y+y1. И с CRect похожие косяки. Постараюсь исправить теперь, гыгыгы. И код выглядит громоздким. Но он хотя бы работает! По крайней мере я щас задумался о том, что многого не знаю и пишу не так, как следует писать под MFC. А раньше писал такую же хрень и щитал себя гением, мол, я научился! Но всё-таки некоторые идиомы и прочие штуки я теперь уже пишу гораздо увереннее, чем поначалу. Практика лучший учитель. Ладно, потихоньку, глядишь, чо-то и усвоим.
Сам код кубика мне не особо нравится - какая-то помойка внутри получилась. Но, как ни странно, всё работает, ничего не падает и снаружи выглядит заебись. А как оно там внутри, никого не ебёт. Я ваще вынашивал мысль заняцца фрилансом - проги писать на заказ. Ща чо-то посидел, репу почесал - нее, за тыщу рублей я не готов так ебацца. Не зря программистам хорошо платят.