• Deadlcok в swift?

    doublench21
    @doublench21 Куратор тега Swift
    Это справедливо не только для главного потока, НО и для всех последовательных очередей.

    Рассмотрим вот такой пример:
    5c76b22e12b96350728646.png

    Что мы получаем:
    Очевидно, всякая последовательная очередь ждёт выполнения текущей задачи, перед тем как начать выполнять следующую. Когда мы пытаемся СИНХРОННО поставить в очередь текущую задачу, мы получаем блокировку. Это происходит потому, что когда мы выполняем код (3-я строчка), то мы это делаем в рамках текущей, уже выполняющейся в очереди задачи И пытаемся синхронно добавить задачу. Синхронно означает, что мы должны дождаться завершения текущей задачи. Но как мы можем завершить задачу в которой мы находимся, если мы сами её и тормозим? Это и называется взаимной блокировкой. 2-ая строка кода ждёт выполнения 3-ей строки, а 3-я строка ждёт завершения 2-ой. Под строками я понимаю собственно блоки кода, которые мы добавляем в ПОСЛЕДОВАТЕЛЬНУЮ очередь.

    А что до главного потока, это происходит неявно. Ведь мы по умолчанию уже находимся внутри задачи помещенной в главную очередь. И если мы попытаемся сделать так же, как и в 3-ей строке - получим блокировку.

    Об этом написано у Apple:
    Do not call the dispatch_sync function from a task that is executing on the same queue that you pass to your function call. Doing so will deadlock the queue. If you need to dispatch to the current queue, do so asynchronously using the dispatch_async function.


    Касаемо:
    5c76b5872101c484838312.png
    Будем идти по порядку. Начинаем с #1 - печатаем "a". После выполняем #2. Тут мы АСИНХРОННО добавляем в очередь задачу. Это значит, что мы говорим системе, эй, поставь эту задачу в очередь и верни мне контроль над кодом, я не хочу ждать. Поэтому после #2 тут же выполняется #6. Ведь мы и сказали, что не хотим ждать завершения добавленной задачи. Вот он и вернул управления и продолжил выполнять. То есть вывел символ "d".
    Теперь внутри очереди мы снова добавляем АСИНХРОННО новую задачу в рамках текущей задачи. То есть мы так же говорим, что бы система передала управление обратно и мы не хотим ждать завершения. То есть после добавления задачи мы тут же выполняем строку #5 - выводим символ "c".

    Так как добавить задачу в очередь занимает некоторое время, плюс то время, что тратится на выполнение самой задачи - всё это приводит к тому, что вывод строки #4 пришелся самым последним.

    То есть всё это время мы просили лишь добавить задачи в очередь и продолжить выполнять следующие строчки кода не дожидаясь их завершения. Вот символы "a, d, c" и вывелись раньше символа "b".

    Не знаю как ещё проще объяснить. Может кто поправит меня.
    Ответ написан
    2 комментария
  • Как выбрать USB контроллер для датчика удара с низкой задержкой?

    @lonelymyp
    Хочу вылезти из минуса по карме.
    Самодельное устройство скорей всего окажется непригодным из за слишком больших задержек.
    Если для вас ардуина за 300 рублей слишком дорога, лучше отказать от затеи.

    Множество народу бьются с проблемой задержек аудио, пытаясь подобрать комбинации софта и железа.
    На музыкальных форумах популярны обсуждения разных интерфейсов и драйверов дающих минимальные задержки. Вплоть до того что некоторые переходят на линукс с RT ядрами.
    Ответ написан
    1 комментарий
  • Можно ли стать project manager'ом без особого опыта разработки?

    opium
    @opium
    Просто люблю качественно работать
    Как раз работая в айти программистом или ещё кем невероятное поле для проявления своих менеджерских способностей, если вы за два года из не проявили на работе и не смогли стать тимлидом или менеджером, то стоит задуматься есть ли у вас такие способности, ведь в первую очередь менеджмент это не широкие возможности, а очень большая отвественность.
    Ответ написан
    Комментировать
  • Можно ли стать project manager'ом без особого опыта разработки?

    IIIyT
    @IIIyT
    Solution Architect/Product Manager/CTO
    Можно. Только нужно понимать что проект менеджер в IT это специалист на стыке гуманитарных и точных наук. Вы одинаково хорошо должны суметь оценить красоту интерфейса и разбить описание проекта заказчиком на задачи для девелоперов. Многие современные курсы и книги связанные с проект-менеджментом не соответствуют реальности, они никак не описывают непосредственное поле боя и теория выдаваемая в книгах не всегда совпадает с практикой.
    В конкретно вашем случае у вас есть хорошее подспорье в виде технического образования и опыта работы разработчиком, исходя из него можно предположить что у вас аналитический склад ума, что очень сильно поможет в разработке технических заданий и распределении работ.
    Я бы на вашем месте представил в голове проект, который бы вы хотели разработать, разбил его на блоки задач и стал изучать связанные с этими задачами технологии. Это реально поможет. Я уже 6 лет занимаюсь проект-менеджментом и каждый раз когда приходится браться за проект из новой области, поступаю именно так.
    Ответ написан
    Комментировать
  • Можно ли стать project manager'ом без особого опыта разработки?

    @mamkaololosha
    Будет типичный российский эффективный менеджер. Который ничего не знает, ничего не понимает, и постоянно всему удивляется. В США, ряде компаний РФ или Японии вы не станете менеджером проекта, без солидного опыта в соответствующей компании/области. Для получения позиции менеджера проекта в том же Яндексе нужно PhD защищать. Чтобы наверняка. Без пробелов в знаниях было. В чем-нибудь мелком - да. А то получится "как всегда".
    Ответ написан
    4 комментария
  • Можно ли стать project manager'ом без особого опыта разработки?

    @NETChaser
    Можно, однако замечу что планирование достаточно сложного проекта (не на готовом коробочном продукте) очень сильно завязано с архитектурой создаваемого ПО. Поэтому если проект сложный, то без человека который будет архитектором вам не обойтись. Если проект не сложен и основан на коробочном продукте, то очень часто все делают в одиночку или 2-3 человека, и как правило менеджеры им не нужны.
    Главный организационный момент это формирование правильного ТЗ, то есть взаимодействие с заказчиком, как правило при составлении ТЗ много подводных камней (например незнание законодательства).
    Все просто набираете команду, ищите подходящий проект и реализуете )
    Ответ написан
    Комментировать
  • Как правильно написать обоснование к обучению IT проектам?

    opium
    @opium
    Просто люблю качественно работать
    Ну если вы сами не знаете нахрена вам оно нужно, откуда можем знать мы зачем оно вам?
    Напишите как есть.
    Ответ написан
    Комментировать
  • Какое может быть kpi у project manager'a?

    sim3x
    @sim3x
    kpi у пм'а
    у пма основная метрика - клиент доволен решением его проблем или нет
    И не пострадала ли продуктивность команды при решении проблем клиента

    вообще kpi это хорошо или плохо

    Плохо:
    микроменеджмент
    измерение минут
    тимбилдинг через ерунду

    Хорошо:
    попадание в сроки установленные самим разрабом
    улучшение таймингов
    уменьшение ошибок за счет улучшения взаимодействия и процессов

    Отвратительно:
    не следить за параметрами вообще
    Ответ написан
    Комментировать
  • Project Management?

    @Dr_Gonzo
    http://mahamba.com
    Профессиональное сообщество руководителей проектов - pmexperience.org/ru Присоединяйтесь, там описано большинство стандартов, ИСУП, блоги, форум и т.д. На сайте присутствуют специалисты - задавайте любые вопросы по УП, ответят.
    Ответ написан
    Комментировать
  • Какой софт использовать для подготовки к сертификации Project Management Professional (PMP)?

    DAbramov85
    @DAbramov85
    Certificated PMP PMI
    Предлагаю вам комплект ключевых материалов для сертификации PMP® (PMI)
    1. Перевод книги Rita Mulcahy PMP® Prep 6th Edition на русский язык (все 14 глав).
    2. Графическая схема всех процессов на одной странице! Все процессы из PMBOK 5 (взаимосвязь, входы, выходы, активности) – в PDF и для печати на плакате в формате А0.
    3. Методология по эффективной подготовке к сертификационному экзамену PMP® с тестами, пояснениями и ответами по каждой области знаний, всего около 500 страниц (с очного курса по подготовке к PMP®)
    4. Шаблоны всех документов (A PROJECT MANAGERS BOOK OF FORMS) в строгом соответствии с рекомендации PMBOK 5 + все шаблоны документов, разработанные российский консалтинговыми компаниями в соответствии с рекомендациями PMBOK 5.

    Это исчерпывающий комплект материалов предназначен не только для успешной подготовки и сдачи PMP экзамена с первого раза, но и для эффективной работы в качестве настоящего Менеджера проектов!
    Прошу обращаться на почту: dabramov85@mail.ru

    С уважением,
    Дмитрий Абрамов
    Certificated PMP PMI
    dabramov85@mail.ru

    f150c663aaa74323b7038b3e0aa64474.pngd8ff0dc9145d45b79996cc0311861225.jpg
    Ответ написан
    1 комментарий
  • Project manager or developer?

    Есть мнение, что современный IT-менеджмент деградирует.
    Вполне возможно, что ваши представления и ожидания от работы основаны именно на таком менеджменте.
    Поэтому советую ознакомиться с выступлением Егора Бугаенко: Who Is a Project Manager? (текст)

    В этом выступление он так же критикует требование технического бэкграунда для менеджера.
    Ответ написан
    Комментировать
  • Project manager or developer?

    sim3x
    @sim3x
    Если умеешь общаться с людьми и мотивировать их работать лучше, то иди

    Если не возьмут - значит ты не умеешь правльно общаться :)

    Карьеру в веб студии не построишь. Для такого нужна большая компания

    https://www.wetfeet.com/articles/career-overview-p...

    PROJECT SCHEDULER
    For larger projects, a project scheduler runs the software, inputting the information supplied by the management team and updating files as needed. This is a technical position that involves a great deal of computer work and little actual management.
    ASSISTANT PROJECT MANAGER
    Assistant PMs do not necessarily assist the project manager directly. Rather, they're usually assigned specific tasks to manage. They meet regularly with the PM to report progress and problems.
    PROJECT MANAGER
    In this position, you may run a project yourself or lead a management team, delegating task management to assistants. PMs report to the "owner" of a project-whether that's a real estate developer, government agency, or your company's senior management. You oversee budget and schedule, and take responsibility for the project's proper completion.
    SENIOR PROJECT MANAGER
    Many large organizations that tackle multiple projects at once (especially construction and engineering companies) employ a senior project manager. The senior project manager supervises a company's various project managers, coordinating the allocation of company resources, approving costs, and deciding which projects should take priority.
    Ответ написан
    7 комментариев
  • Что должен уметь и знать project management?

    @it_manager
    Самый хороший ответ, который я получил на этот вопрос, что знания PM должен быть "a mile wide and an inch deep" :-)
    А если серьёзно, то:
    1. Традиционные методологии и стандарты проектного управления: PMI, Prince2, IPMI.
    2. Гибкие методологии управления разработкой ПО: Agile, SCRUM, Lean, XP.
    3. Выбрать один стандарт управления, на котором вы будете специализироваться и знать его глубоко.
    4. Знать ГОСТ 34.602-89 «Техническое задание на создание автоматизируемой системы».
    5. Ознакомиться с распространёнными нотациями, предназначенную для формализации и описания бизнес-процессов(IDEF, UML, BPMN).
    6. Изучить ПО для ведения и управления проектами (MS Project, JIRA - обязательно). Вот хорошая подборка - https://habrahabr.ru/post/276873/

    И, основное, уметь общаться с людьми! Это, наверное, самое главное. Большая часть проблем возникает от недостатка коммуникации между участниками проекта (IMHO)
    Ответ написан
    Комментировать
  • Что должен уметь и знать project management?

    Atanvar
    @Atanvar
    Frontend developer
    Суть - убрать все преграды на пути работы команды.

    Уметь слышать и понимать

    Преграда 1 - коммуникации, разработчики не хотят этим заниматься, по этому мы должны сделать это за них, понять, что необходимо заказчику.

    Уметь говорить

    Мало понимать заказчика, мы должны еще объяснить программистам \ дизайнерам на на их языке то что необходимо заказчику. Из этого пункта мы получаем следующее:

    1) Коммуникации - наше всё.
    2) Говорить с командой на одном языке жизненно необходимо

    Формулируй, властвуй, распределяй.

    Хорошо написанное ТЗ - минус дохрелион человекочасов работы и тонны нервных клеток, помните, что даже если ТЗ написано идеально - программист все равно скажет, что оно херовое (чтоб ПМ не расслаблялся, а то иш тут менеджер...)

    Планируй

    Календарный план, Jira и ко - наши бро, планируй вехи и спринты и следи за планом, но без наркомании, не нужно анально карать всех вокруг за то что просрочили такс на 1 час.

    Риск менеджмент

    Во всех проектах есть риски, которые надо учитывать чтобы в середине проекта не оказалось, что реализовать важную для бизнеса фичу вообще невозможно, формируй список рисков и закладывай на них бюджет, причем не просто записал риски и забыл, а именно управляй ими - всегда есть симптомы того, что риск наступит вот вот, умение вовремя увидеть эти симптомы может спасти проект.

    Менеджмент

    Ну и разумется ПМ это менеджер, который может управлять командой, настроем команды, управлять конфликтами (искусственными) либо нейтрализовать их если они негативные.

    Минутка полезного чтения - советы начинающим руководителям проектов
    Ответ написан
    2 комментария
  • Как выбрать заглавный кадр (постер, обложку) видео клипа при загрузке вконтакт, на YouTube и тому подобные сервисы?

    koltykov
    @koltykov
    На Youtube возможно загрузить любую картинку в качестве обложки видео. Правда эта функция становится доступной когда вы партнер YouTube и у канала хорошая репутация
    Ответ написан
    1 комментарий
  • Как организовать вебинары на собственном сайте?

    @buraevvladimir
    Александр, вот решение может подойти www.youtube.com/watch?v=vEMGrAq3NMc, как раз полноценная вещь должна получиться.
    Ответ написан
    Комментировать
  • Как одновременно использовать несколько сетевых интерфейсов для раздачи торрента?

    totalcount
    @totalcount
    Вариант, по сути, я вижу только один:

    1) Несколько модемов сотовых втыкаются в один комп
    2) На своем сервере, который стоит где то поднимается впн
    3) Каждый модем поднимает впн соединение до этого сервера
    4) В итоге только так будет суммироваться общий канал (и вверх, и вниз)

    В принципе, ничего особо сложного, но надо иметь свой сервер с неограниченным (желательно) трафиком. Буквально на днях натыкался на это решение, хотя у меня задача немного другая — есть куча интернет-провайдеров, заходящих в дом, вот надо всю эту кучу объединить в 1 канал таким образом, чтобы и торренты со свистом сливались, и чтобы авторизация на сайтах не слетала. Я в итоге решил это через RouterOS сделать.
    Ответ написан
    6 комментариев
  • Как одновременно использовать несколько сетевых интерфейсов для раздачи торрента?

    Vovanys
    @Vovanys
    это тебе с маршрутизацией надо разбираться.
    вот тоже есть подобный вопрос

    p.s. насчет твоего костыльного варианта, можно просто несколько копий уторента и указать в нем интерфейс для раздачи…
    p.s.2 help.ubuntu.ru/wiki/ip_balancing
    Ответ написан
    Комментировать