• 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 комментария
  • Где бесплатно захостить Python Telegram бота?

    @addison-cochran
    Если на webhook-ах, то PythonAnywhere, Heroku
    Если long polling - Heroku. Но я бы все равно использовал webhook (перейти не так сложно)
    Ответ написан
    3 комментария
  • Как зарегистрировать Google Voice с американским номером?

    @undisclosed
    Для этого Вам нужен любой реальный американский номер и американский IP на момент регистрации. С недавних пор Google не принимает VOIP номера.
    Можно либо заказать реальную предоплаченную симку на ebay (самый надежный вариант) либо арендовать номер у тех кто пробрасывает реальные номера в voip.
    Поищите на reddit.com - там есть раздел посвященный verification всего и вся за деньги.
    Ответ написан
    Комментировать
  • Видеоуроки - долго, и много воды. Стоит ли тратить на них время?

    @lloydbanks
    Те кто в негативном ключе высказываются о видео-курсах, делают о них выводы по просмотру нескольких неудачных роликов. С таким же успехом можно взять в руки любую неудачную книгу и раскритиковать способ обучения по книгам.
    Интернет образование за последние несколько лет сделало большой прорыв в информационной индустрии. Это целое направление в бизнесе, которое направлено в первую очередь на качество оказываемых услуг. Ведь люди, приобретая тот или иной курс, оставляют в конечном итоге отзывы и рейтинг, которые в дальнейшем поспособствуют фильтром в отсеивании некачественных материалов. Следовательно, авторы курсов заинтересованы в том, чтобы выпустить свой продукт максимально полезным и живым. Посмотрите на udemy, на кол-во приобретенных курсов и кол-во довольных отзывов. Хотите сказать, все эти люди которые инвестируют в свое образование "дегенераты" (как кто-то выше писал в комментах)?
    Только неадекватный профан будет утверждать, что данный способ обучения не работает или что он менее эффективен. Все люди разные, кому-то проще обучаться по видео курсам, кому-то по книгам. Главное, чтобы был результат. В конечном итоге никто не мешает комбинировать эти способы.

    Плюсы видео курсов:
    + последовательность: теория + практика. По окончанию курса у вас будет готовое приложение, которые не стыдно разместить в портфолио. Почему не стыдно - потому что оно писалось более опытным разработчиком чем вы, который показал вам best practices, чтобы вы не ломали голову и не наступали на грабли, в попытках самостоятельно написать кривой код;
    + поддержка: проверка ДЗ и возможность задать вопрос автору когда возникнут проблемы. Можете ли вы написать свой технический вопрос автору книги? Ответ очевиден.
    Минусы:
    - отсутствие деталей и тонкостей: о многих технических моментах можно узнать только из книг/документации. Если вы человек разумный, то вы согласитесь, что нельзя вместить все технические нюансы в одном видео курсе. Вы когда смотрите фильм снятый по книге не возмущаетесь ведь почему так подробно не был освещен какой-то момент, который в книге был расписан до мелочей. Здесь точно так же.

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

    Поэтому, Логинов Станислав не ведитесь на поводу у стада, которое навязывает вам точку зрения, которая априори не может быть истиной в виду индивидуальных особенностей человека.
    Ваша формулировка вопроса Видеоуроки — долго, и много воды уже звучит неадекватно. С вероятностью 99% вы просто взяли неудачный курс и делаете по нему выводы. Что вам мешает найти тот, который подойдет именно вам?
    Ответ написан
    7 комментариев
  • Какой вуз выбрать и стоит ли оно того?

    Vlad_IT
    @Vlad_IT
    Front-end разработчик
    Я советую заочку, сам через это прошел и не жалею. В программировании очень важна математика, она меняет мышление, прокачивает мозг, позволяет некоторые задачи решать красивее. Без ВУЗа большинство программистов не уделяют внимания математике и алгоритмам, которые нужны как минимум для удачного прохождения собеседования, да и вообще, позволяют писать более оптимизированный код, т.к. понимаешь как все работает "изнутри".
    На заочке вам будут давать методический материал, базово рассматривать изучаемую тему, а также скажут, какие вопросы будут на экзамене. Так будет хоть какая-та мотивация учить те вещи, которые на первый взгляд не пригодятся в профессии (плюс темы не по профессии - психология, культура речи). Также плюсом будет консультация у профессоров по теме, проверка работ, а также самое главное, написание и защита диплома. К диплому лучше отнестись ответственно, и выбрать для себя интересную и сложную тему.
    Конечно же, вы можете скачать учебный план любого ВУЗа, и следовать его программе. Если у вас есть столько терпения, то пробуйте.
    Очку не советую (если это не какой-то передовой ВУЗ, у дверей которого стоят рекрутеры), т.к. потратите очень много времени не набравшись реального опыта.
    Заочка + работа отличный вариант, после выпуска у вас уже будет опыт работы и образование.
    Ответ написан
    9 комментариев
  • Заказчик хочет получить invoice. Подвластно ли это начинающему фрилансеру?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Если заказчик иностранный, то последствий не будет никаких.
    Это нужно ему для внутренней бухгалтерии. Наша налоговая никак об этом не узнает.

    Поэтому достаточно взять в интернете любой invoice generator и заполнить базовые вещи: заказчик, исполнитель, список работ, цена, объём, дата. Я лично пользуюсь вот этим: https://create.onlineinvoices.com/invoices-generat...
    Ответ написан
    2 комментария
  • Для каких задач в веб-разработке очень хорошо подходит питон?

    xenon
    @xenon
    Too drunk to fsck
    Скажу как я (давным-давно) выбирал между Руби и Питоном. Это сейчас они более-менее по нишам разделились, а тогда оба были примерно одинаковыми новыми-модными языками. Поглядел список проектов на том и на другом. Везде немало. Но было принципиальное различие. На Руби почти все проекты были "полезные". Дали рубисту задачу, он ее исполнил и код в GPL выложил. А вот на Питоне было дофига "бесполезных" проектов, которые люди делали явно не ради денег. Вывод - на питоне писать приятно. Это важно.

    Ну и вряд ли вы когда-либо серьезно пожалеете, вроде "ах, проект - написать магазин авиабилетов, на руби-то я бы это сделал, а на питоне такое не сделать!". Руби для веба удобнее только рубистам. Питонистам удобнее питон.
    Ответ написан
    Комментировать
  • Для каких задач в веб-разработке очень хорошо подходит питон?

    @procode
    Разработчик
    Для каких задач в веб-разработке очень хорошо подходит питон?


    Стал выбор - какой язык изучать с ориентиром на веб?


    По моему скромному мнению, Питон вообще не подходит для веб-разработки. По крайней мере, не в большей степени, чем Java или C++ - попробуйте вывести "Hello world!" в браузер в ответ на банальный get-запрос к Apache2 или nginx - поймете почему ))

    Для серверной части веба лучший выбор - однозначно PHP. Он в этом вне конкуренции.

    Ну а так, почему бы и не познакомиться с Питоном? Язык достаточно красивый, лаконичный, функциональный. Для Ubuntu является "родным" :)
    Ответ написан
    22 комментария
  • Для каких задач в веб-разработке очень хорошо подходит питон?

    Я думаю, что с вашим бекраундом и задачами нужно в Рельсы. Они позволяют вывести Hello World буквально за несколько комманд. Rails из коробки поддерживают вебпак и JS фреймворки.
    Сейчас очень просто сделать SPA c бекендом на Рельсах. И это получается реально быстро.
    В рельсах все очень четко разложено, что-где лежит, поэтому легко разобраться будет. И поначалу даже учить руби нет смысла, все будет делать Scaffold.
    Попробуй:
    rails new appname
    cd appname
    rails db:create
    bundle
    rails webpacker:install:vue
    rails g scaffold post title:string body:text
    rails db:migrate
    rails server

    localhost:3000
    или
    heroku create
    git push heroku master

    https://guides.rubyonrails.org/getting_started.html
    Ответ написан
    4 комментария
  • Для каких задач в веб-разработке очень хорошо подходит питон?

    Для чего юзается питон:

    1) Веб-разработка в больших компаниях (экономия на читабельности кода, наличие асинхронных фреймворков, наличие молодняка из вузов - для столиц).

    2) Разработка стартапов, которым нужно хорошо в матетику или некий прототип машинного обучения. Например, хорошо на нем пишутся сервисы для сбора аналатики и прогнозов.

    3) За счет наличия асинхронных веб-фреймворков можно писать разные чаты и прочее. Но тут не причина, а приятное дополнение.

    4) Написание парсеров веб-контента. Есть все инструменты в коробке.

    Собственно все

    p.s. ну и https://habr.com/ru/post/322332/
    Ответ написан
    Комментировать
  • Как выбрать направление на фрилансе (веб-разработка)?

    angrySCV
    @angrySCV
    machine learning, programming, startuping
    первых года три скакал по разным сферам, пробуя все что мог, копируя все подряд, создавая дерьмо (за копейки).
    потом уже нашел более менее сферу где мне интереснее + на которой сфокусировался, стал более продуктивным и профессиональным + ну года через 3 мне за это стали хорошо платить (потом я опять фокус скорректировал - это такой путь, длинною в жизнь).
    Советую тебе также пробовать разные сферы пока ты не найдешь как соеденить свой интерес, с тем что у тебя хорошо получается и тем что нужно людям (за это будут точно хорошо платить).
    Ответ написан
    Комментировать
  • Какой язык/фреймворк выбрать?

    neatsoft
    @neatsoft
    Life is too short for bad software
    Фреймворки нужны для упрощения и ускорения разработки - избавления от бойлерплейта и защиты от типичных ошибок. Можно ли всё тоже самое сделать вручную? Можно, но не нужно - большая часть времени уйдет на изобретение велосипедов, некоторые из которых будут медленными или небезопасными.

    По моему опыту, Django позволяет реализовывать типичные задачи вдвое быстрее, чем Laravel (использовал оба). Во многом это заслуга Python и сложившейся вокруг него экосистемы. Здесь выбор очевиден.

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

    p.s. Вне зависимости от выбора, не стоит заниматься веб-разработкой под windows. Стандартные среды - Ubuntu 18.04 (либо любой другой, но не слишком маргинальный дистрибутив) и MacOS.
    Ответ написан
    5 комментариев
  • Какой язык/фреймворк выбрать?

    longclaps
    @longclaps
    Единственный действительно универсальный подход состоит в том, чтобы не изучать ничего.
    В таком случае твои познания в любой области будут равно глубоки.
    Всё остальные неизбежно ведёт к специализации.
    Ну, ты понял.
    Ответ написан
    1 комментарий
  • Какой язык выбрать инженеру за 40?

    sergeygsd
    @sergeygsd
    врач-терапевт участковый
    Я молодой пенсионер ( 67 лет ) уч. врач все 40 лет. Без цели заработка изучаю информатику давно.
    php не люблю. Питон, Java, С++ Естественно знаком с СУБД, ассемблером, shell Пользуюсь любой ОС (Windows или Linux) Я просто любитель. Труд программиста тяжелый. Лучше учиться с преподавателями, но можно и самому.
    Моя знакомая, ЛОР-врач 35 лет хочет просто сменить профессию на Java-программиста. Человек очень упорный, надеюсь, что получится. Учите Java (по Лафоре, у него и по C++)
    Можно в NetBeans но я в терминале (если Windows это MinGW) - как раз поддерживает python + Java + C++ У Вас уйдет не меньше года, ни у кого быстрее не получилось. ВЭБ очень вряд ли. Хотя я изучал Друпал 7 и 8. Но Друпал 8 с его twig(ом) озадачил. И бросил. Смотрите по вэбу в сторону django. Мой путь с весны 2018 здесь : https://unics-70.livejournal.com/4324.html
    Ответ написан
    Комментировать
  • Какой язык выбрать инженеру за 40?

    opium
    @opium
    Просто люблю качественно работать
    Тот же что и инженеру за 18
    Ответ написан
    Комментировать
  • Почему наши топ веб-студии не считают Wordpress серьезной CMS, а американские топовые студии делают на нем 50% сайтов?

    @mirosas
    Имея как опыт попыток устройства программером в РФ, так и работы на удаленке на США, я заметил разницу. В РФ нужно, чтобы код был красивым и технологичным, в США нужно чтобы код без глюков выполнял возложенные на него задачи, а фрилансер предоставлял послепродажное обслуживание. Поэтому в США решают задачи с помощью наиболее подходящего инструмента, и часто вордпресс подходит лучше, а в РФ делают более технологичный подход, под который вордпресс ну никак.
    Ответ написан
    2 комментария
  • Почему наши топ веб-студии не считают Wordpress серьезной CMS, а американские топовые студии делают на нем 50% сайтов?

    gobananas
    @gobananas
    finishhim.ru
    К нам приезжали представители из топовой студии нашего города и вполне предлагали WP.
    Кто что говорит вообще не важно, каждый хвалит своё болото. Нашим выгоднее продать вам битрикс за 75 а потом ещё каждый год по 25 за обновление брать.
    Ответ написан
    3 комментария
  • В чем смысл ВУЗа?

    @Programmir
    Я окончил школу с золотой медалью, получил высшее образование на факультете менеджмента, а теперь с этой корочкой даже продавцом не берут. Столько лет зря потратил. Учись на чужих ошибках. Чтобы заработать миллиарды Гейтсу и Цукербергу не нужно было высшее образование. А некоторые с высшим образованием за копейки не могут найти работу.
    Ответ написан
    13 комментариев
  • В чем смысл ВУЗа?

    @deliro
    Смысл ВУЗа в дипломе
    Диплом нужен для миграции в другую страну
    В нашей стране нормальные компании никогда не смотрят на диплом
    Ответ написан
    4 комментария
  • В чем смысл ВУЗа?

    Veneomin
    @Veneomin
    Тогда в чём смысл ВУЗа?

    Вузы – пережиток прошлого. На данном этапе они учат устаревшей информации, устаревшими методами. Основная их суть сегодня это выудить побольше денег у страны и у учащихся. Даниил Демидко не слушайте тех, кто вам толкует, что вуз вас научит решать задачи, находить полезные знакомства и тд, это все промывание мозгов. Если человек по натуре аутист то вуз ему не поможет. Ответы выше мол отучился и не жалею, звучат как "Не служил не мужик", подумай над этим.

    И почему требуется его корочка чтобы устроиться на работу?

    Лучше обходи стороной такие конторы.
    Ответ написан
    5 комментариев