• Что такое asyncio и в чём реальное отличие от многопоточности?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Один человек ставит кастрюлю на плиту, ждёт пока она закипит, закидывает пельмени, ждёт пока сварятся, снимает, ставит вторую, ждёт пока закипит... - последовательное однопоточное выполнение.

    Один человек ставит две кастрюли на плиту, как только одна из них закипела, забрасывает пельмени и т.д. - асинхронное выполнение.

    Два человека ставят две кастрюли... - многопоточное выполнение.

    Очевидно, что при асинхронном выполнении ресурсов требуется меньше, а скорость та же, что и при многопоточном. Именно поэтому проблема c10k могут решать только асинхронные сервера. Минусы в том, что асинхронный код сложнее и не всё можно выполнять асинхронно.
    Ответ написан
    3 комментария
  • PHP При каких обстоятельствах приходит пустой IP человека?

    XXXXPro
    @XXXXPro
    Fullstack Web developer
    Тут есть два варианта. Первый — пользователь заходит через IPv6, а скрипт пытается преобразовать его адрес с помощью ip2long, который корректно понимает только IPv4. Второй — пользователь заходит через proxy, который что-то передает в X-Forwarded-For, что некорректно преобразовывается в IP-адрес (например, передает не IP, а доменное имя).
    Чтобы этого не было, нужно сохранять IP не как число, а как строку, причем сохранять туда и $_SERVER['REMOTE_ADDR'], и $_SERVER['HTTP_X_FORWARDED_FOR'] (тогда как многие скрипты при наличии второго REMOTE_ADDR просто отбрасывают).
    Ответ написан
    Комментировать
  • Как прокачать навык разработки архитектуры информационной системы?

    @red-barbarian
    Получить знания можно из книг. Получить навыки только из опыта.
    В частности, сделать архитектуру, получить рабочую модель. Затем внести изменение. Понять сколько времени и сил стоит это изменение. Понять как малейшее изменение может вызвать каскад по всей программе. Понять как изменение в чём-то ломает все на другом конце программы. Почитать что написал через три месяца. Понять почему важно разбивать на модули и правильно наименовать.
    Показать другим, понять что писать нужно максимально просто как для человека с топором.
    Ну потом можно почитать про SOLID и гибкую разработку. Про TDD. Прочитать шаблоны и зачем они. Если начинать с книг, то риск что шаблоны только усложнят систему.

    Архитектура не бывает правильной. Первая цель что бы работала. Вторая легко сопровождалась.
    Ответ написан
    Комментировать
  • Как можно отсортировать по категориям комментарии?

    begemot_sun
    @begemot_sun
    Программист в душе.
    Гуглим: Классификация текстов.
    Ответ написан
    Комментировать
  • Что почитать по теме "Электронная цифровая подпись"?

    tomnolane
    @tomnolane
    профессиональный разработчик
    я сейчас занимаюсь аналогичным.
    статья
    статья

    вкратце:
    Простая ЭП. является электронная подпись, которая посредством использования кодов, паролей или иных средств подтверждает факт формирования электронной подписи определенным лицом.

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

    Квалифицированная ЭП. Может быть получена только в удостоверяющем центре, аккредитованном Минкомсвязи России, а используемое ПО должно быть сертифицировано ФСБ. Квалифицированная ЭП безусловно наделяет документы всей полнотой юридической силы, и поэтому используется для информационного обмена с органами государственной власти и для участия в электронных торгах.

    в итоге сейчас в свой проект решил использовать услуги СБИС, точнее их API для ЭЦП и документооборота, т.к. у них есть сертификация от ФСБ, да и геморроя меньше при работе с другими контрагентами/компаниями, т.к. собственный алгоритм(механизм проверки/защиты/шифрования) - наверняка не вызовет "доверия" у компаний, когда оборот идет на *миллионов рублей. Т.е. я смотрю на использование процедуры подписания/проверки ЭЦП уже у популярного, акредитованного, сертифицированного (и известного) для всех участников компании/центра (СБИС), нежели самому всё это создавать и потом ещё доказывать, что я (как разработчик) не смогу подделать чужую подпись на договоре и т.д. и т.п.

    п.с. если есть аналоги СБИСа - прошу отписаться

    п.с.с. под c# нашёл API тык, но пока ещё с ним не работал (только собираюсь)
    Ответ написан
    7 комментариев
  • Как закрыть сайт на MediaWiki, даже на чтение?

    UksusoFF
    @UksusoFF
    Можно
    https://www.mediawiki.org/wiki/User_rights#List_of...

    Или через htaccess если это на апаче
    Ответ написан
    Комментировать
  • Как скачать википедию?

    butteff
    @butteff Автор вопроса
    Раз в тысячу лет заправляю свитер в носки
    Нашел dumps.wikimedia.org
    Всем спасибо
    Ответ написан
    1 комментарий
  • Как сохранить клиента себе не в убыток?

    Согласитесь, с условием:

    1. оплата вперёд, 100%
    2. срок ровно полгода – фиксируйте дату последнего дня;
    3. вы будете считать время, потраченное на поддержку. Прозрачно, таймером как на upwork. Если оно превысит 80 часов вы прекращаете работу до получения ещё $100, которые покроют дополнительные 20 часов работы (цифры сами точно расчитайте)
    4. Дополнительное время, оплаченное дополнительно – это только дополнительные часы. Как только полгода истекут – вся работа прекращается до продления контракта.


    Т.е. фактически сведите договор к почасовой оплате, сохранив внешнюю форму предложения индуса.
    Ответ написан
    5 комментариев
  • Проблема с относительными ссылками в windows 7, как решить данную проблему?

    profesor08
    @profesor08
    • папка
      • img
        • car.jpg

      • index.html



    Как вы описали, то у вас вот такая структура, если так, то img src="car.jpg" у вас работать не могло, а раз не могло, то вы чего-то не договариваете. У вас должно быть img src="img/car.jpg", вот это правильный относительный путь.

    Если все работало раньше, то у вас картинки были в папке с html файлом, вы их однажды убрали в папку и забыли.
    Ответ написан
    3 комментария
  • Хочу сделать свой дистрибутив linux на основе существующего?

    @dinegnet
    Хочу на основе данного дистрибутива сделать свою версию, с самым последним ядром и софтом. Что мне для этого нужно? Вырезать из дистрибутива упоминания слова "Porteus"


    То есть ты уже решил все проблемы по созданию собственного самобытного дистрибутива?
    Он у тебя уже уникальный и достоин собственного имени?
    И дело за малым осталось? Переименовать?

    Есть подробная инструкция уже.
    Ищи по фразе BolgenOS
    lurkmore.to/%D0%94%D0%B5%D0%BD%D0%B8%D1%81_%D0%9F%...
    lurkmore.co/%D0%94%D0%B5%D0%BD%D0%B8%D1%81_%D0%9F%...
    Ответ написан
    Комментировать
  • Как запретить ребёнку просмотр видео на Squid3?

    2ord
    @2ord
    А может попробовать блокировать контент "для взрослых" при помощи настройки DNS на домашнем шлюзе?
    Семейный DNS
    Многие пользователи хотят оградить себя или своих детей от сайтов для взрослых. Алгоритмы семейного поиска Яндекса умеют выявлять эротику и порно.
    Ответ написан
    1 комментарий
  • Чем открыть bin файл?

    GavriKos
    @GavriKos
    Всегда удивлялся таким вопросам... fopen-ом открывайте и читайте.
    Ответ написан
    2 комментария
  • Чем открыть bin файл?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    Кусок вашего файла
    0000000000: 00 65 4D 61 69 6E 2D 43 │ 6C 61 73 73 3D 61 6C 74   eMain-Class=alt
    0000000010: 65 72 6E 61 74 69 76 61 │ 2E 43 6C 69 65 6E 74 43  ernativa.ClientC
    0000000020: 6F 6E 66 69 67 75 72 61 │ 74 6F 72 26 42 75 6E 64  onfigurator&Bund
    0000000030: 6C 65 2D 4E 61 6D 65 3D │ 70 6C 61 74 66 6F 72 6D  le-Name=platform
    0000000040: 2E 63 6C 69 65 6E 74 73 │ 2E 66 70 31 30 2E 6C 69  .clients.fp10.li
    0000000050: 62 72 61 72 69 65 73 2E │ 61 6C 74 65 72 6E 61 74  braries.alternat
    0000000060: 69 76 61 6F 73 67 69 43 │ 57 53 11 F6 12 01 00 78  ivaosgiCWS◄ц↕☺ x
    0000000070: DA CC BD 09 60 5B C9 75 │ 20 58 F5 AF FA 1F 37 78  ЪМЅ○`[Йu XхЇъ▼7x
    0000000080: 80 37 05 4A 14 25 4A A0 │ 48 EA 16 5B B7 44 48 64  Ђ7♣J¶%J Hк▬[·DHd
    0000000090: EB B2 AE 6E BB 9B 4D 03 │ E0 FF 04 BA 41 82 06 40  лІ®n»›M♥ая♦єA‚♠@
    00000000A0: 4A 72 3A 09 2C B7 7C C4 │ 8E ED C4 8E E3 DC EC 38  Jr:○,·|ДЋнДЋгЬм8
    00000000B0: F1 38 E9 49 D2 EE D8 71 │ C7 8E DB CE 7D CC 4C 06  с8йIТоШqЗЋЫО}МL♠
    00000000C0: 00 A7 A5 CC CE 99 6B 36 │ C9 1C BB B3 BB B3 BB B3   §ҐМО™k6Й∟»і»і»і
    00000000D0: 93 1D EE 7B F5 FF C7 45 │ A8 09 52 CD DE A1 84 FF  “↔о{хяЗEЁ○RНЮЎ„я
    00000000E0: AB EA 57 BD BA AB DE 7B │ F5 DE AB BB 44 FA 0B 42  «кWЅє«Ю{хЮ«»Dъ♂B
    00000000F0: 3C 5F 21 A4 9D 92 F3 FE │ 7B 84 90 1F 6C FE 20 25  <_!¤ќ’ую{„ђ▼lю %
    0000000100: E4 78 7A C6 18 BB 7E 3E │ 1C BC 3B 97 9C CF 8C 81  дxzЖ↑»~>∟ј;—њПЊЃ
    0000000110: EF C4 AE 78 36 BB 30 36 │ 3C 7C E7 CE 9D 7D 77 0E  пД®x6»06<|зОќ}w♫
    0000000120: EC 4B A5 67 87 47 8F 1D │ 3B 36 3C B2 7F 78 FF FE  мKҐg‡GЏ↔;6<І⌂xяю
    0000000130: 21 88 31 94 B9 37 9F 8D │ DC 1D 9A CF EC D8 75 92  !€1”№7џЌЬ↔љПмШu’
    0000000140: 03 38 AF 67 62 E9 C4 42 │ 36 91 9A 0F A2 3F 12 4D  ♥8ЇgbйДB6‘љ☼ў?↕M
    0000000150: 2D 66 4F EC DA 65 41 9D │ 89 95 80 2E 2C A6 93 1C  -fOмЪeAќ‰•Ђ.,¦“∟
    0000000160: E4 4C 6C 58 4F EA 73 FA │ 7C 36 33 3C BA 6F 14 00  дLlXOкsъ|63<єo¶
    0000000170: CD C4 C6 8C 54 7A 2E 92 │ 3D 19 59 58 48 26 62 11  НДЖЊTz.’=↓YXH&b◄
    0000000180: 04 37 7C 77 28 13 4F C5 │ 5E BA 13 59 D2 87 8C 64  ♦7|w(‼OЕ^є‼YТ‡Њd
    0000000190: 24 13 3F 3E 5C 8E 88 69 │ B2 89 6C 52 3F B9 90 8C  $‼?>\Ћ€iІ‰lR?№ђЊ
    00000001A0: 64 31 70 5F 2C 99 40 98 │ FB 8C 85 D1 91 7D C9 44  d1p_,™@ыЊ…С‘}ЙD
    00000001B0: 34 1D 49 27 F4 CC BE 33 │ C9 AC 9E 9E 07 90 4B 91  4↔I'фМѕ3Й¬ћћ•ђK‘
    00000001C0: AB 37 2E 24 38 10 33 25 │ C2 48 46 E6 67 17 23 B3  «7.$8►3%ВHFжg↨#і
    00000001D0: FA 49 7D 7E FA D6 0D FE │ B1 14 84 DF 67 22 59 FD  ъI}~ъЦ♪ю±¶„Яg"Yэ
    00000001E0: E4 C1 E1 43 C3 A3 47 82 │ 07 C7 0E 8D 06 CF 5C E6  дБбCГЈG‚•З♫Ќ♠П\ж
    00000001F0: 91 78 F8 F1 E1 9A 26 B0 │ 42 A0 55 4F 92 F3 BE BF  ‘xшсбљ&°B UO’уѕї
    0000000200: 11 8F 93 73 C2 EA EA EA │ 07 1C 22 34 BB 02 3F 49  ◄Џ“sВккк•∟"4»☻?I
    0000000210: 9E BC 4C F8 DF 47 7E E7 │ EA 89 E7 A0 1B BE DB F2  ћјLшЯG~зк‰з ←ѕЫт
    0000000220: 21 99 10 70 90 48 B9 A0 │ C3 A9 CC 6C 62 38 A3 A7  !™►pђH№ Г©Мlb8Ј§
    0000000230: 97 12 31 7D D8 AC 58 32 │ 35 3B 3C 71 8E 3B 2F A5  —↕1}Ш¬X25;<qЋ;/Ґ
    0000000240: 66 89 8F EC 43 30 BD 64 │ A6 22 DD 3E 4C B7 CF 4A  f‰ЏмC0Ѕd¦"Э>L·ПJ
    0000000250: B7 AF 94 6E AC 9C 6E 78 │ 43 B1 C7 C0 3B 9E 4E A7  ·Ї”n¬њnxC±ЗА;ћN§
    0000000260: D2 D2 52 2A 31 A3 DC C8 │ A6 13 F3 B3 CE 58 3C 32  ТТR*1ЈЬИ¦‼уіОX<2
    0000000270: 3F AF 27 AF 44 E6 74 29 │ AB DF CD 4A 4B 91 74 66  ?Ї'ЇDжt)«ЯНJK‘tf
    0000000280: 6E 2B 8B 31 AB 67 CF 99 │ 99 9A 45 C8 38 A7 A7 CF  n+‹1«gП™™љEИ8§§П
    0000000290: DC 38 30 3D BD 6F 49 8F │ 29 B7 F5 58 36 95 7E 71  Ь80=ЅoIЏ)·хX6•~q
    00000002A0: 2B 0B 10 99 99 81 D7 A5 │ 44 26 AB CF EB E9 ED EB  +♂►™™ЃЧҐD&«Плйнл
    00000002B0: 27 EE 28 27 B6 4A 6E 27 │ 56 93 96 63 4B 5B 2C AD  'о('¶Jn'V“–cK[,­
    00000002C0: CF A5 96 F4 8A 32 7F 68 │ EB 9B A7 A6 A2 D9 F7 A4  ПҐ–фЉ2⌂h뛧¦ўЩч¤
    00000002D0: 7E 35 99 BE F4 DE 0C 43 │ 1C FB 99 A3 1B CB AB EC  ~5™ѕфЮ♀C∟ы™Ј←Л«м
    00000002E0: F4 94 9D 67 23 19 7D 68 │ 43 70 54 7B 4E FA D7 CC  ф”ќg#↓}hCpT{NъЧМ
    00000002F0: 0A 4F F5 30 F5 AF 19 04 │ AD 75 3B AA FD 71 8D E9  ◙Oх0хЇ↓♦­u;ЄэqЌй
    0000000300: AD A9 B0 A3 5C 0A 39 40 │ 03 5A C0 A5 B6 0A 54 F4  ­©°Ј\◙9@♥ZАҐ¶◙Tф
    Ответ написан
    Комментировать
  • Как изменить стандартный ip адрес внешнего Wi-Fi адаптера?

    fzfx
    @fzfx
    18,5 дм
    не совсем понятно.
    какой адрес у адаптера?
    всем устройствам не должен раздаваться один адрес 10.42.0.1, у каждого должен быть свой.
    за раздачу сетевых настроек клиентам отвечает служба dhcpd.
    Ответ написан
    2 комментария
  • Как сделать редирект после вывода заголовка?

    Вашу задачу можно решить с помощью мета-тега
    <meta http-equiv="refresh" content="1;URL=http://yandex.ru" />

    Здесь 1 - задержка перед переадресацией.
    Редирект делает уже браузер, а не PHP.
    <?php
    //URL для переадресации
    $url = "";
    //выводим мета-тег для переадресации
    echo ("<meta http-equiv=\"refresh\" content=\"1\;$url\"");
    ?>

    redirekt.info/article/redirekt-na-html-s-zaderzhko...
    Ответ написан
    Комментировать
  • Откуда быстрее брать данные?

    webinar
    @webinar Куратор тега PHP
    Учим yii: https://youtu.be/-WRMlGHLgRg
    даныне

    )))) из даныне хранилища, только и только по четвергам.

    А если серьезно:
    проведите эксперемент. Все ж зависит от большого кол-ва факторов. Например размер файла, скорость sdd и т.д. SQL БД придумали, потому что это удобнее, чем файл. Но все зависит от конкретной ситуации, которую Вы крайне мало описали.
    Может быть Вам оптимальнее будет Redis, Memcache, но хз. Что там в реале у Вас.
    Ответ написан
    Комментировать
  • Есть ли удобный способ работы с git'ом для двух проектов с несколькими одинаковыми классами?

    @AlexMt
    Automation Q&A Lead
    Я бы предложил разбить это всё на 3 репозитория - одно "ядро" и два - проектных. Ядро "собирается" и подключается в виде готового кода каким-нибудь менеджером зависимостей, который используется в вашем языке. Composer - php, pip - python. Для главного репозитория придётся создать setup и всю обвязку для установки его как обычного подключаемого пакета (библиотеки) в ваш код.
    Ответ написан
    2 комментария
  • Какие плюсы и минусы у ЯП C#?

    Deerenaros
    @Deerenaros
    Программист, математик, задрот и даже чуть инженер
    Да откуда вы только лезете? Да, у всего есть плюсы и минусы. Если пишут что-то положительное, значит наверняка так оно и есть. Если пишут что-то негативное, вполне вероятно это имеет место быть.

    Да откуда всё ползёте и ползёте? Да, это только инструмент, но если инструмент называется языком программирования общего назначения, то соответственно сравнение с узкоспециализированными штангенциркулями и газовыми ключами как минимум некорректно. Это не verilog или brainfuck. Это C#.

    C# имеет статическую типизацию. Очень приятную и удобную, одну из лучших, ИМХО. Лучше только haskell, но вопрос не об этом. Типизация с метаинформацией и отменной рефлексией, можно писать программу пока пишешь программу, xzibit одобряет. У него потрясающая экосистема, лучшего я пока не встречал, говорят у руби с гемами лучше, но как-то не уверен. Шикарнейшая реализация пространства имён, а также возможность размазать класс по файлам - бесценно, для остального есть Core i7. Что ещё нужно? Производительность? Мимо. Свободность? Промазали. Портативность? Как бы не так. Логичность, читай отсутствие костылей? Эх... Если бы. Лаконичность? Чёрт, не помешало бы!

    Короче. Это потрясающий инструмент со своими недостатками. Да, он лаконичнее, чем C++, но python и ruby поставят выскочку на место, да даже F# поинтереснее будет. Да, он побыстрее python, но даже Java иногда начинает опережать, что уж говорить про С++. В общем и целом, часто выбор обусловлен не собственным желанием, а окружающими условиями, но чисто с эстетической точки зрения C# очень приятный и удобный, есть классные generics, и удобные lambdas, и потрясные extensions, так тут ещё и dynamic для всяких наркоманов привезли, а если очень хочется, то можно и в игры или даже движки.
    Ответ написан
    Комментировать