Найти - Пользователи
Полная версия: Какими проектами сейчас занимаетесь?
Начало » Флейм » Какими проектами сейчас занимаетесь?
1 2
Alex.Pro.
xam1816
какими проектами сейчас занимаетесь?Что программируете интересное?
Много лет хотел найти базу данных (сервис) со статистикой по именам людей. Не нашёл ничего, что бы привлекло моё внимание. Позапрошлым летом решил попытаться удовлетворить свои хотелки своими силами. Турбо Бэйсик, которым я пользовался 30 лет назад, не актуален и не применим. С 1С и VBA я знакомился лет 15-20 назад, но далеко не продвинулся да и то подзабыл. И вот я решил заняться изучением Пайтона и, параллельно, созданием программы “двойного назначения”. С одной стороны, программа должна помогать вести учёт владельцев квартир, жильцов и собственно квартир. С другой стороны, программа должна собирать данные людей и выдавать статистическую информацию об их именах. Занимаюсь этим в свободное от работы время. До первой, достаточно функциональной версии, сделано немного больше половины. Вторую половину надеюсь сделать быстрее первой.
xam1816
как выглядит техническое задание?хотя бы примерно
По моему опыту общения с программистами, ТЗ составляется в процессе его выполнения. Изначально заказчик пытается об'яснить что мы имеем на входе, как программа должна общаться с пользователем и что должно получаться на выходе. Потом выясняется что что-то об'яснили не точно, что-то - неправильно, а что-то просто забыли упомянуть. В конце концов ТЗ превращается в ворох бумажных записей и электронных сообщений.
Ну примерно как-то так.
py.user.next
xam1816
Интересно узнать,какими проектами сейчас занимаетесь?Что программируете интересное
Сейчас занимаюсь интерфейсами.

Ну смысл в том, что, например, каждый день выходят какие-то фильмы и выкладываются куда-нибудь на Rutube в наилучшем виде, откуда их можно скачать. А как узнать, что они туда выкладываются? Ты же не будешь там регистрироваться. Хотелось какой-то надёжный интерфейс, который запускаешь в компе и он тебе показывает “появились такие-то фильмы сегодня вот там-то там-то”. Ну и начал я выяснять, а как можно узнать о новых выкладках, - есть ли там RSS, например? чтобы можно было подписаться и получать в ленте эту информацию. Оказалось, нет, там нет RSS. То есть обязательно надо там регистрироваться, подписываться на канал и ещё кучу левых там видео загребать, которые нафиг не нужны. И что же делать? Я, недолго думая, решил его создать, RSS создать, как будто он там есть. Так я написал скрипт такой, который заходит анонимно на определённый канал в Rutube, на нём обнаруживает новые выкладки, берёт из них фильмы и эти фильмы с названием, длительностью, описанием преобразует в узлы и сохраяет эти узлы в RSSке на диске. То есть для этого пришлось разобраться, как устроена RSSка. А потом локально клиент RSS открывает этот файл на диске и думает, что это новости с какого-то сайта загрузились. Так я получил эти киношки и не только киношки, а всякие передачи ещё интересные с разных каналов. И регистрироваться не надо. Ну просто теперь у меня есть на компе интерфейс такой, в котором написано “сегодня появился такой-то фильм, длительность такая-то, фильм про вот это и вот это, актёры такие-то, режиссёр такой-то”. Причём вот эту хрень всю - про длительность, про актёров, режиссёров, год выпуска - не напрямую берёшь, потому что там этой информации тоже нет, а также по сусекам там из разных мест наскребаешь, длительность вообще из чистых секунд вычисляешь, которые там есть в служебной информации. И потом это всё оформляется в красивенькое описание структурированное и понятное, а потом это всё описание заворачивается специальной оборачивалкой в узел RSS, в котором не только всё это описание должно стоять, но ещё и порядковый номер этого узла, то есть там ID этого узла ещё делается, чтобы порядок, в котором фильмы эти выкладывались, не перемешивался по датам, а сохранялся в той последовательности, в которой они и выкладывались.

Потом ещё по приколу занялся погружением в VBA. Это в в Word'е можно работать с текстами любым образом. При этом макрос в виде модуля или формы можно экпортировать и носить с собой на флешке, например, а потом в любой Word импортировать его и получать весь функционал. А после выключения Word'а он снова становится чистый, как будто и не было никакого функционала. Так можно что-то сделать с любым документом на любом компьютере, притом повторить это никто не сможет. Потому что руками такое нужно делать несколько недель, а макрос это делает за секунду. По функциональности так можно чистить документы от мусора всякого очень быстро, иллюстрировать их чем-нибудь, таблицы там быстро какие-то накидывать, шаблоны какие-то формировать, какие-то записи подкрашивать по всему документу и так далее. Ну оно прикольно работает. Надо для этого только скачать справку по VBA полноценную, в которой вся структура классов есть, и через неё всё это изучать. Потому что без справки, через одну угадайку, там ничего не поймёшь, не будет у тебя никаких макросов.

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

Так что за эти четыре года изменилось много всего. Я научился делать штуки, которые не умел делать раньше.
xam1816
py.user.next
Ну и ещё теория. Очень много прошёл в объектно-ориентированной парадигме. Учился анализировать, раскладывать всё на объекты, на иерархии объектов, на коллаборации объектов. Ну дошло до того, что я просто в реале стал видеть, из чего состоят всякие конструкции, и не только то, из чего они состоят, но и ещё и то, как они себя ведут, какие у них протоколы. Получил абсолютно новый взгляд на всё.
Есть пример того, как ты представлял раньше и как представляешь теперь?Какая особенность стала очевидна?
Rodegast
> Ну дошло до того, что я просто в реале стал видеть, из чего состоят всякие конструкции, и не только то, из чего они состоят, но и ещё и то, как они себя ведут, какие у них протоколы. Получил абсолютно новый взгляд на всё.

Ой заберут тебя в дурку
py.user.next
xam1816
py.user.next
Ну и ещё теория. Очень много прошёл в объектно-ориентированной парадигме. Учился анализировать, раскладывать всё на объекты, на иерархии объектов, на коллаборации объектов. Ну дошло до того, что я просто в реале стал видеть, из чего состоят всякие конструкции, и не только то, из чего они состоят, но и ещё и то, как они себя ведут, какие у них протоколы. Получил абсолютно новый взгляд на всё.
Есть пример того, как ты представлял раньше и как представляешь теперь?Какая особенность стала очевидна?
Ну на примере там того же излива.

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

Ну раньше я бы пошёл и сдал в магазин обратно этот излив, а потом бы показал им лопнувший излив и попросил найти такой же или хотя бы с такой же этой штукой, которая прикручивается к крану. Но я рассмотрел эти оба излива, старый и новый, как такие объекты, состоящие из объектов, которые тоже состоят из объектов, которые тоже состоят из объектов. В общем, в виде иерархии объектов, в которых в одних объектах сагрегированы другие объекты. И сначала я их полностью разобрал оба. Дальше я изучил устройство этих изливов, как там течёт вода, куда она поступает. Всё это рассматривается как объекты. Вода-объект вступает во взаимодействие с трубкой-объектом, и они взаимодействуют друг с другом по протоколу (протокол - это такой набор правил, определённых для процесса взаимодействия). И там этот излив же не просто вот трубка и всё, там в него вкручен бочонок, у которого с одной стороны резьба. То есть мы бочонок тоже раскладываем на объекты. А как его разложить на объекты, если он цельный? Кажется, что это просто один объект и всё, а разложить его нельзя. А вот так: мы часть с резьбой считаем отдельным объектом, который находится в объекте бочонок. Хотя он и полностью литой, но мы можем так делать. А потом мы можем рассмотреть, как объект-бочонок взаимодействует с объектом часть бочонка с резьбой, который в нём находится. Мы можем объектом назвать тень на стене, а можем полоску света на стене назвать, хотя и кажется, что есть только стена и на ней нет никаких объектов. И вот с помощью этого бочонка к изливу крепится эта хреновина, которая накручивается на кран. Так это ещё не всё. На сам этот бочонок надеты колечки резиновые, потому что он же вкручивается в излив, и вот это место, где он вкручивается в излив, без этих колечек резиновых протекает. Ну тут становится понятно, что весь этот излив и его части - это просто куча разных больших, маленьких, цельных, нецельных, с границами, без границ, объектов. И все эти объекты находятся в каких-то взаимодействиях, группируются как-то, связываются друг с другом, не связываются друг с сдругом. Очень много всяких процессов там.

Ну и всё это кончилось тем, что я просто взял старый бочонок от старого излива, сделал толстую резиновую прокладку из автомобильной камеры (вырезал её просто бритвой), снял с этого бочонка резиновые колечки эти дебильные, через которые всё протекает, потому что их там неправильное количество, убрал их вообще, обернул этот бочонок этой толстой резиновой прокладкой и в таком виде вкрутил его в новый излив. То есть это было сделано вообще не в тему и оно так не задумывалось ни автором первого излива, ни автором второго излива. То есть бочонок был меньше в диаметре, но благодаря этой резиновой прокладке вокруг него, он вкрутился очень плотно в трубку. Как раз к этому бочонку я добавил эту штуку, которая нормально накручивалась на кран. Ну и всё, и прикрутил этот новый излив, со старым креплением к крану. Так как из-за этого кран полностью протекал, я сделал ещё одну круглую и толстую прокладку из камеры, которой там вообще не было изначально даже задумано, и просто накрутил эту штуку прямо на эту прокладку. И таким образом, я получил излив, который не протекает и который можно ещё крутить во все стороны, он не раскручивается и очень легко крутится, очень мягко и плавно, потому что он крутится по той резиновой прокладке внутри, которую я вырезал под это дело.

А как это всё сделано? как это всё получилось так? Да я просто применил эти методы, приёмы эти, когда мы видим, что в каком-то процессе не хватает какого-то объекта, и его там и не было изначально, мы его создаём. Но мы не создаём объект так, что типа “вот я знаю, что там прокладка резиновая нужна, я её сейчас вырежу”, потому что так мы ничего не создадим, потому что мы не знаем, что там нужно и в каком виде и в каком количестве. Но мы умеем делать абстракции. Мы делаем абстракцию. Мы знаем, что там нужная какая-то неопределённая хреновина, так смутно похожая на утку, которая вот крякает там и немножечко что-то там ковыряет клювом или лапами. То есть мы не знаем, что мы придумываем, но мы знаем, что вот эта штука должна занять такую-то роль в протоколе и обеспечить такое соединение, провести какой-то процесс через себя, чтобы там неправильная какая-то фигня превратилась в правильную. И когда у нас появляется такая абстракция, которая работает и выполняет свою роль, тогда мы начинаем думать “а как эту абстракцию можно реализовать? в виде чего её можно реализовать?”. Потому что абстракция отображается на много разных объектов, её можно через множество всяких объектов реализовать, чтобы требования просто выполнялись. На примере прокладки - это “какая-то хреновина, которая не даёт этой штуке болтаться и не даёт воде проходить через резьбу”. Это можно реализовать множеством всяких объектов разных. Можно реализовать одним объектом, можно реализовать парой объектов, один держит, другой не даёт протекать, ну и так далее. И таким образом одна из подходящих реализаций для этой абстракции с заданными требованиями/характеристиками - это резиновая прокладка из толстой резины, через которую и вода не проходит, и сама она уплотняет ещё хорошо этот стык. Вот она выполнит все вот эти требования, которые предъявляются к абстракции.

А раньше да, мне бы даже в голову не пришло что-то там вырезать, убирать нативные резиновые колечки, принимать решения за инженеров, которые придумали эти великие конструкции, базирующиеся на резиновых колечках в количестве трёх штук.
py.user.next
Rodegast
Ой заберут тебя в дурку
Если бы у меня обычное восприятие заместилось полностью этим, то это было бы расстройством психики. Но все эти вещи дифференцируются через простой критерий. Можешь ли ты не думать таким образом? Вот человек с шизофренией не может взять и прекратить шизофрению свою, она у него сама происходит и всё. Поэтому он признаётся психически нездоровым. А вот это вот всё “хочу - делаю, не хочу - не делаю” - это норма. Так что это просто аппарат для мышления, набор навыков мыслительных.

Если не развиваешься, то тебе приходится этот застой компенсировать мыслями о том, какой ты прекрасный. Но потом на результаты смотришь, а их нет. Даже годы проходят, а ты стоишь на месте, ты сам это видишь, и в этом очень сложно самому себе признаться, стараешься вообще туда не смотреть обычно, чтобы не осознать это. Другое дело, когда ты развиваешься и замечаешь качественные отличия. Так ты видишь хотя бы, что твоё развитие - это не пустые телодвижения и не просто разговоры.

Я себе операционную систему перенастроил, у меня сейчас вообще всё по-другому работает, не так, как лет пять назад. У меня сейчас какие-то штучки что-то как-то там запускают, я даже их уже все охватить не могу, просто какие-то цепочки операций. Одно запускаешь, оно загружает там что-то другое, а то другое запускает что-то там третье, потом это третье что-то там проверяет и запускает либо четвёртое, либо пятое. Ну блин, такого раньше не было. У меня раньше очень короткие цепочки были.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB