Подошёл я издалека, специально. По следующим статьям будет понятно, что это именно ассемблер. Моя статья рассчитана как раз на человека далёкого от программирования вообще. А к отличиям программирования на ассемблере я подойду медленно, но решительно в следующих статьях.
Ну всему своё время — тут общий принцип. Конверт по сути — пустой. Конкретно никакого ПОЛЕЗНОГО действия делать не нужно. Поэтому понятнее назвать конверт пустым, а не вводить сейчас EOP A, NOP и тому подобные вещи.
И да, конечно — некоторые инструкции выполняются не за 1 такт. Это будет в следующей статье.
Вам не кажется — статья действительно абсурдно издалека идёт! И в этом то вся фишка. На самом деле скорее всего впереди будут рассказы и о ветвлении и о циклах — и если это полезно для любого языка — то это же хорошо!
И я буду несказанно рад, если 1 человек, который вообще не вкуривает программирование сможет благодаря моим статейкам что-нибудь написать хотя бы через 5 лет. Ведь тот, кто это понимает и считает чем то самим собой разумеющимся — не станет «учиться» по этим статьям. А тот, кто в них найдёт что то новое для себя — тому эти статьи и адресованы.
Ну а всем ассемблерщикам — просто по фану — почитать, посмеяться, поправить если где что не так.
Это тоже крутой способ. Но я пошёл другим путём — эти статейки как раз для тех, кто панически боится воды — если таких выкинуть с лодки — то они скорее всего утонут, а если и выживут, то потом ни к одному водоёму не подойдут. Поэтому если сравнивать с плаванием — то мы сейчас скорее занимаемся водными процедурами — типа обтирания мокрым полотенцем. Потом попробуем ножки намочить в ванне. Потом под душем постоять, потом в ванне, наполовину наполненной полежать — в общем до похода в бассейн ещё далеко, не говоря уже о купании в открытом море=)
Спасибо гуру ассемблера за то, что мониторите мои статейки — потому что я могу что-то объяснить не верно — а вы можете подправить. Особенно это будет важно дальше. Спасибо ещё раз большое!
Ну тут я думаю прокатит аналогия с тем, что англичанин — это микроконтроллер AVR, а Вася круто знает английский. Скажем какое то другое семейство контроллеров это Японец, а ассемблер Игнат круто знает японский.
Опять же про зоопарк я буду писать дальше, и с каждой статьёй будет больше и больше нюансов — сейчас мне просто важно, чтобы самый главный принцип был понятен.
Да, по поводу скорости — я конечно продвинулся немного дальше, чем описано в статье=) Дело в том, что я считаю так: если что-то объясняешь — то нужно быть уверенным, что каждое твоё слово понято, причём понято правильно. Поэтому я стараюсь начинать с совсем уж детсадовских объяснений — чтобы основная база знаний была. Чтобы потом можно было не задумываясь говорить о каких то вещах из предыдущих статей, которые читающий понимал бы как само собой разумеющееся.
Ломка психики налицо — но это скорее плюс, чем минус. Дело в том, что мыслить ассемблерно довольно весело. Скажем можно ассемблизировать стройку — девеча помогал товарищу делать гараж — мы дружной толпой собрались у него — нужно было обшить стены профлистом — а на крыше пробить плёнку влагозащитную и тоже прикрутить профлист. Я просто изначально потратил 20 минут, чтобы просчитать заранее пошагово как лучше и быстрее выполнить эту работу — в результате гараж разбился на 3 части — Стены, Крыша и пульт управления. На крыше было 2 человека, на стенах 2 человека. Я был одним из тех, кто был на стенах, плюс я ещё как бы был на пульте. Ещё была куча инструмента и материала. Так же было 2 зоны по высотности — крыша и пол — и на крыше был как бы повышеный приоритет. Работали следующим образом — с крыши поступали команды именно на выполнение — то есть нельзя было просто взять и сказать кому то из тех двоих — «Давайте лист» -а потом второй кричал — «Нет, подождите, я тут ещё не закрутил саморез!» — Было договорено, что с крыши кричат только тогда, когда они готовы принять материал, или когда что-то срочно нужно. На стенах было то же самое — только мы решали вдвоём что нам нужно и потом шли это брать в такую «зону данных» место где лежал материал и инструменты. Если мы несли лист и нам кричали, что им тоже нужен — то мы доносили свой, потом несли лист им, потом возвращались к своим действиям. Вроде всё просто — но суть в том, что я заранее планировал всё на несколько действий вперёд- в результате мы закончили гараж за пару часов. И такой способ мышления в обычных, бытовых делах очень здорово помогает в жизни. Во всяком случае он однозначно помогает избавиться от таких гадостей как рассеяность, забывчивость и склонность к беспорядку. По сути программирование — это планирование. Планирование в зависимости от происходящего. И ассемблер даёт это понять как ничто другое. Да — это можно сказать небольшое сумасшествие, но оно полезное.
С Васей дружить достаточно просто, но сначала нужно подружиться со Стивом. Причём даже скорее не подружиться — а узнать о его возможностях — чтобы заведомо не просить Васю заставить Стива сделать то, чего Стив сделать не сможет физически. Например следовало бы знать, что Стив физически не сможет отжаться такое количество раз — тогда бы мы не тратили время Васи и Стива на такую ерунду, а могли бы напрячь Стива чем нить более полезным.
Супер! Подскажите, как с этим всем обстоят дела спустя год? Доделали что-нибудь? И по матчасти пара вопросов: какой ТЭН использовали, чтобы исключить пригорание затора\сусла? Какой датчик температуры использовали для атмеги? Было бы интересно увидеть продолжение=)
Так потому некоторые программистов и ставят выше по иерархии, что хороший администратор может стать программистом(потому что заинтересован в этом), а наоборот — вряд ли.
Ребят, я сейчас статью проанализировал — ну тут мне видимо изначально нужно было указать структуру организации, чем занимаемся — но я прошу прощения, я вчера с товарищем обсуждал статью товарища Craft Brother, а потом возникла идея, что это может быть интересно не только нам, несколько его модифицировал и отправил на хабру — утром получил приглашение, и сразу статью из черновика опубликовал. Так что это такое спонтанное — но зато более эмоциональное чтиво, что-то может и правда не особо вязаться — как пример с уборщицей и бухгалтером, но думаю в целом вы поняли о чём речь=) Могу написать про работу конкретно нашего отдела, а так же про работу медиахолдинга в целом — но это уже другая история.
Товарищ abyrwalg уже нас определил как говноконтору, хотя по видимому что-то с детектором=) Ещё раз скажу, что в рамках таких сжатых сроков счёт идёт на минуты, и варианты по постановке элементарного задания сначала начальнику отдела, а потом через него конкретному человеку отнимает слишком много времени — ведь бывают ситуации когда начальник отдела уехал на съёмки, или на записи, или с заказчиком общается — а выход через 20 минут — а всего и нужно то, собрать итоги по голосованию на сайте, или выгрузить анкеты.
Я так и предполагал, что подобные высказывания будут иметь место.
И хороший пример вырванного из контекста куска текста.
Напомню, мы выпускаем продукт 1 раз в сутки. Очереди больше, чем на 1 рабочий день быть не может. Выход каждый день радиопередач( 7, 12, 18, 21) телепередач(12,16,18,20) — не может быть у работника завала поручениями из отделов — поручения могут быть с 9 утра до 12 — если кто-то не успел — то эта задача не переносится -в 12 часов все задачи обнуляются, ибо передача полюбому выходит в эфир. Ненужных поручений у нас не бывает — это опасно для организации, а на распределение задач путём стандартных задач руководителям подразделений просто нет времени — график выхода очень плотный.
Поменяйте уборщицу на системного администратора а бухгалтера на руководителя проекта — системный администратор не может указывать руководителю что ему делать с ведением проекта — потому что руководитель ведёт проект от начала до конца, знает все нюансы и тонкости, у него есть план, стратегия т.д. а системный администратор не в теме. А вот если сеть пропала — то руководитель проекта имеет полное право указать системному администратору на его ошибки.
С уборщицей может не совсем удачный пример — однако я имел в виду то, что уборщица не может в глобальном смысле указывать бухгалтеру как ему вести дела, как лучше считать, каким софтом пользоваться, где хранить печати и другие общие вопросы по бухгалтерии, а уборщица может только выполнить или не выполнить свою работу. Иерархия этой ситуации в том, что уборщица — это такой юнит для выполнения конкретной однотипной задачи, а бухгалтер — юнит, который участвует во множестве взаимодействий, выполняет множество операций — бухгалтер владеет способностью выявить ЛЮБЫЕ косяки уборщицы, а уборщица не владеет способностью выявить ЛЮБЫЕ косяки бухгалтера — в этом и заключается описанная мной иерархия — в ней тот человек стоит выше, чей скилл позволяет проверить на правильность работу другого человека.
1. В нашей конторе есть много отделов. В нашей конторе отделы взаимодействуют друг с другом — и необязательно состоять в одном отделе, чтобы получить замечание от кого-то из другого отдела. Специфика такая. Медиахолдинг — это такая организация в которой в течении дня нужно подготовить кучу телевизионных и радиопередач, а так же акций, программных решений, выставить гору коммерческих предложений и заключить массу контрактов. Помимо этого ежемесячно нужно организовать какое-либо мероприятие. У нас много подразделений — радио, телевидение, веб-разработка, наружная реклама, сувенирная продукция, продакшн. В каждом подразделении работает куча отделов — операторы, ведущие, авторы, выпускающие редакторы, монтажёры(видео, аудио), сценаристы. У каждого подразделения свой руководитель. Чтобы выпустить какой-либо продукт необходимо очень тесно сотрудничать между отделами, потому что всегда нужно уложиться в рабочий день — передачи на тв выходят каждый день, на радио — тоже, группы в социальных сетях обновляются параллельно. Если при такой схеме придерживаться подчинения только внутри каждого отдела — то на бумажные дела уйдёт очень много времени и суток не хватит. Именно поэтому уборщицу может напрячь бухгалтер, оператора из ТВ может напрячь начальник отдела веб-разработки и так далее.
2. Структуру организации я не представляю, я её знаю и сталкиваюсь с ней каждый день. Я знаю кто что может сделать и за какое время. Я знаю кто чем занят сейчас, кто чем будет занят через час. Я знаю кому какое задание дать таким образом, чтобы не нарушить общую загруженность других отделов. Соответственно если у меня появляется возможность или свободное время — я стараюсь помочь другим отделам в том, что требуется. У нас может быть несколько нестандартный подход — но мы стараемся не тратить время на перекладывание задач исполнителю — если человек видит проблему и может её решить — то он её решает — а потом извещает об этом человека за неё ответственного. Так получается гораздо проще и быстрее.
3. Я не считаю какого-либо сотрудника хуже или лучше чем какой-либо другой сотрудник. Я считаю, что про то, что такое «чистый пол» знают все или почти все, от уборщицы требуется лишь исполнение одной задачи, грубо говоря «чтобы было чисто». Если грязно — то тут как ни крути это заметит любой, в том числе бухгалтер. А рассчитать аванс по уплате налогов за квартал сможет бухгалтер, и может быть кто-то ещё, кто знает тонкости и когда то сталкивался. Точно так же любой начальник любого отдела может требовать от любого сотрудника каких-либо действий. Официально конечно никто не обязан подчиняться начальникам вне своего отдела — но мы просто сбрасываем часть бюрократических операций — иначе бы просто появилось лишнее движение — «Начальник отдела Х сообщает начальнику отдела У о том, что сотруднику К из отдела У необходимо подготовить видеоролик, для размещения его в видеогалерее на сайте» Точно так же начальник отдела У может прийти в отдел Х и просто сказать конкретному человеку что нужно сделать промо-страницу для новой передачи. Если этот человек не занят в данный момент — то он спокойно делает, если занят, то он ставит в очередь, и сообщает начальнику когда тот будет свободен.
Это мой взгляд на организацию работы у нас в конторе, как начальника отдела веб-разработки.
Контора не очень большая — у нас всего работает порядка 150-180 человек.
Предположения Ваши видимо не оправдались, но тут я изначально не писал про специфику моей работы — мы не просто компания по разработке — мы отдел по разработке внутри медиахолдинга, и мы не можем не принимать участия в текущих делах организации. Может быть именно поэтому я смотрю на это несколько шире. Думаю часть нашего опыта может быть использована и при руководстве в организации, занимающейся исключительно разработкой.
Опять же — нельзя предусмотреть все возможные варианты — сроки конечно горят у руководителя, но по каким причинам они горят — тут тоже всё однозначно не бывает. Тем более в наших сегодняшних реалиях. Часто и густо сроки начинают гореть уже в момент подписания договора. И мне очень хотелось бы делать всё правильно, по календарным планам и с проектом производства работ — но увы, часто приходится работать в «режиме нехватки ресурсов». В добавок в регионах со всевозможной местной спецификой и национальными традициями ещё и с заказчиком общаться достаточно сложно.
И да, конечно — некоторые инструкции выполняются не за 1 такт. Это будет в следующей статье.
И я буду несказанно рад, если 1 человек, который вообще не вкуривает программирование сможет благодаря моим статейкам что-нибудь написать хотя бы через 5 лет. Ведь тот, кто это понимает и считает чем то самим собой разумеющимся — не станет «учиться» по этим статьям. А тот, кто в них найдёт что то новое для себя — тому эти статьи и адресованы.
Ну а всем ассемблерщикам — просто по фану — почитать, посмеяться, поправить если где что не так.
Опять же про зоопарк я буду писать дальше, и с каждой статьёй будет больше и больше нюансов — сейчас мне просто важно, чтобы самый главный принцип был понятен.
Товарищ abyrwalg уже нас определил как говноконтору, хотя по видимому что-то с детектором=) Ещё раз скажу, что в рамках таких сжатых сроков счёт идёт на минуты, и варианты по постановке элементарного задания сначала начальнику отдела, а потом через него конкретному человеку отнимает слишком много времени — ведь бывают ситуации когда начальник отдела уехал на съёмки, или на записи, или с заказчиком общается — а выход через 20 минут — а всего и нужно то, собрать итоги по голосованию на сайте, или выгрузить анкеты.
И хороший пример вырванного из контекста куска текста.
Напомню, мы выпускаем продукт 1 раз в сутки. Очереди больше, чем на 1 рабочий день быть не может. Выход каждый день радиопередач( 7, 12, 18, 21) телепередач(12,16,18,20) — не может быть у работника завала поручениями из отделов — поручения могут быть с 9 утра до 12 — если кто-то не успел — то эта задача не переносится -в 12 часов все задачи обнуляются, ибо передача полюбому выходит в эфир. Ненужных поручений у нас не бывает — это опасно для организации, а на распределение задач путём стандартных задач руководителям подразделений просто нет времени — график выхода очень плотный.
С уборщицей может не совсем удачный пример — однако я имел в виду то, что уборщица не может в глобальном смысле указывать бухгалтеру как ему вести дела, как лучше считать, каким софтом пользоваться, где хранить печати и другие общие вопросы по бухгалтерии, а уборщица может только выполнить или не выполнить свою работу. Иерархия этой ситуации в том, что уборщица — это такой юнит для выполнения конкретной однотипной задачи, а бухгалтер — юнит, который участвует во множестве взаимодействий, выполняет множество операций — бухгалтер владеет способностью выявить ЛЮБЫЕ косяки уборщицы, а уборщица не владеет способностью выявить ЛЮБЫЕ косяки бухгалтера — в этом и заключается описанная мной иерархия — в ней тот человек стоит выше, чей скилл позволяет проверить на правильность работу другого человека.
2. Структуру организации я не представляю, я её знаю и сталкиваюсь с ней каждый день. Я знаю кто что может сделать и за какое время. Я знаю кто чем занят сейчас, кто чем будет занят через час. Я знаю кому какое задание дать таким образом, чтобы не нарушить общую загруженность других отделов. Соответственно если у меня появляется возможность или свободное время — я стараюсь помочь другим отделам в том, что требуется. У нас может быть несколько нестандартный подход — но мы стараемся не тратить время на перекладывание задач исполнителю — если человек видит проблему и может её решить — то он её решает — а потом извещает об этом человека за неё ответственного. Так получается гораздо проще и быстрее.
3. Я не считаю какого-либо сотрудника хуже или лучше чем какой-либо другой сотрудник. Я считаю, что про то, что такое «чистый пол» знают все или почти все, от уборщицы требуется лишь исполнение одной задачи, грубо говоря «чтобы было чисто». Если грязно — то тут как ни крути это заметит любой, в том числе бухгалтер. А рассчитать аванс по уплате налогов за квартал сможет бухгалтер, и может быть кто-то ещё, кто знает тонкости и когда то сталкивался. Точно так же любой начальник любого отдела может требовать от любого сотрудника каких-либо действий. Официально конечно никто не обязан подчиняться начальникам вне своего отдела — но мы просто сбрасываем часть бюрократических операций — иначе бы просто появилось лишнее движение — «Начальник отдела Х сообщает начальнику отдела У о том, что сотруднику К из отдела У необходимо подготовить видеоролик, для размещения его в видеогалерее на сайте» Точно так же начальник отдела У может прийти в отдел Х и просто сказать конкретному человеку что нужно сделать промо-страницу для новой передачи. Если этот человек не занят в данный момент — то он спокойно делает, если занят, то он ставит в очередь, и сообщает начальнику когда тот будет свободен.
Это мой взгляд на организацию работы у нас в конторе, как начальника отдела веб-разработки.
Контора не очень большая — у нас всего работает порядка 150-180 человек.
Предположения Ваши видимо не оправдались, но тут я изначально не писал про специфику моей работы — мы не просто компания по разработке — мы отдел по разработке внутри медиахолдинга, и мы не можем не принимать участия в текущих делах организации. Может быть именно поэтому я смотрю на это несколько шире. Думаю часть нашего опыта может быть использована и при руководстве в организации, занимающейся исключительно разработкой.