Pull to refresh
480
0
Send message
Раз уж installer.app запускается автоматически, то я бы делал это в виде «апдейта на айтюнс» — все равно пользователь, который устанавливает «антивирус» не разберется в чем отличие от software update — а неожиданно выскочившее предложение проапдейтится выглядит куда правдоподобнее предложения установить антивирус.
Кто? Ну кто Вам сказал, что ввод пароля это безопаснее, чем клик по кнопке?

1. Административный доступ совершенно не нужен для участия в ботнете, воровства персональных данных (identity theft) и рассылки себя дальше по адресной книге
2. Ввод пароля без нажатия SAS всегда МЕНЕЕ безопасен, чем простое нажание на кнопку.
3. Если хочется снизить безопасность, то UAC можно сконфигурировать на ввод пароля даже для группы Administrators, а для обычных пользователей он и так всегда запрашивается.
Месяц не ставить апдейты безопасности и выключить включенный по дефолту файрвол — это никак не тянет на «не использующую в том или ином виде человеческую глупость».
Задание: найти хоть одну крупную эпидемию на Windows за последние 10 лет, не использующую в том или ином виде человеческую глупость.

PS: Stuxnet не подходит, ибо не был масштабным.
Специальная фича для авторана с флешек авторана загруженных из интернета файлов (инсталляторы являются «безопасными»).
Не в языках с ручным управлением памятью, а в Obj-C. C++0x лямбды имеют достаточно прозрачную семантику и способ захвата указывается в самом замыкании, а не в объявлении переменной. Сами лямбды тоже можно передавать как по значению так и по ссылке/указателю.

Причем как для самих лямбд так и для захваченных свободных переменных применяются те же правила, основанные на здравом смысле, что и для всех остальных объектов: делать объект, живущий меньше, чем ссылки/указатели на него — ОЧЕНЬ плохая идея.
Это же SJVN. Он же на следующий день после покупки скайпа разразился (технически неверным) постом про то какой скайп плохой, через пару дней после того как MilleniumExchange (дада, та которая LSE) рассылала неверные котировки — он рассказывал про то, как в этом виноваты те, кто эти котировки примал. А через пару дней после заявления LSE о том, что в блекауте на пике торговли (новости о фанни и фредди были такие) было виновато сетевое оборудование, разразился (ага, он всегда разражается) постом про том, что во всем виноваты индусы из Майкрософта.

Классический фрик — готов сказать любую чушь и сам же в нее поверить, если это согласуется с его религиозной доктриной.
Дуополист. В США два провайдера наземного интернета (Comcast и Verizon) и ни один из них особо не интересуется модернизацией. Все мелкие «домашние сети» давно вымерли. FCC похоже «прикормлена» (вот, например, забавная статейка про то, как государственный чиновник, позволивший слияние Comcast и NBC после своего решения ушла непосредственно в лоббисты комкаста на зарплате).

С мобильной связью все не менее печально. Есть 4 оператора (2 крупных и 2 мелких, причем прямо сейчас один из крупных пытается купить одного из мелких), которые практически не конкурируют — одинаковые цены, одинаковое качество связи (хотя нет, крупнейший — AT&T — общепризнанный лидер по говености связи), одинаковый застой как в тарифах так и в накладывании всевозможных ограничений.
Фишка в том, что комкаст — это провайдер наземного (DOCSYS) интернета. И даже если не пользоваться торрентами все равно нужно постоянно следить за тем, чтоб не превысить «безлимитный» лимит. За двойное превышение в течение полугода — отключение.
Тарифы с настоящим безлимитом есть далеко не у всех. Вот в частности у комкаста их нет.
arstechnica.com/tech-policy/news/2011/04/how-internet-users-are-disciplined-around-the-world.ars

И комментарии, комментарии почитайте. Телекомы уже всех достали, но выхода не видно.
Вообще говоря, ограничение совсем даже не условное ибо, если не подключать cable (там и смотреть то нечего), то выходит что то вроде этого:


«Хостингом» ворованного ПО не занимаюсь (те кто занимаются уже отметились в этом посте с терабайтами трафика в месяц). И это при том, что я совсем не любитель спорта и новостей (всякие ESPN и целая пачка новостных каналов в пролете — «экономия» нескольких часов стриминга в день).

Ну а глядя на цены/скорости того же укртелекома (не говоря уже о домашних сетях) мне хочется плакать:

Это без налогов и парочки файнпринтов (типа страховки, аренды модема и пр.)
У американских ISP (и в частности у приведенного в посте комкаста) всегда есть ограничение по скорости.
Какие бы преобразования Вы ни делали над b — это все равно остается «анализом делителя».
вопрос звучал так: как без анализа содержимого делителя обработать ошибку деления на ноль:

предполагается ответ с try...catch


Неправильный ответ. Правильный: средствами C++ это сделать невозможно.
ISO/IEC 14882, глава 5 Expressions [expr], параграф 4 говорит нам следующее:
If during the evaluation of an expression, the result is not mathematically defined or not in the range of
representable values for its type, the behavior is undefined. [ Note: most existing implementations of C++
ignore integer overflows. Treatment of division by zero, forming a remainder using a zero divisor, and all
floating point exceptions vary among machines, and is usually adjustable by a library function. —end note ]


Это UB.

В разных РЕАЛИЗАЦИЯХ C++ это можно сделать при помощи implementation-specific функционала. Более того, такие ошибки практически никогда не транслируются в C++ исключения автоматом.

В Windows будет сгенерировано SEH исключение, которое можно словить через __try/__except либо с помощью _set_se_translator сконвертировать в C++ исключение. Кроме того, если включить обработку асинхронных исключений catch-all блок будет ловить и SEH исключения (примечательно, что именно divide-by-zero использовано в качестве примера в статье про разные типы обработки исключений).

В POSIX системах будет сгенерирован сигнал (SIGFPE), который можно обработать предварительной установкой хендлера.

В общем, задавать на собеседовании вопросы про UB можно только если принимаете на какую нибудь senior/principal должность. Новички этого знать не обязаны — им бы с defined поведением разобраться.
И? Вы же сами подтвердили мои слова. Для поддержки виртуальной памяти нужно запускать отдельное приложение и при этом изоляции адресных пространств все равно не происходит, потому что вся система рассчитана на то, что все будет в одном.

Расположение разных частей системы в памяти называется не mapping а layout. Но даже с такой поправкой Ваше утверждение не имеет никакого смысла. Даже у Win9x никогда не было ограничений на 64к, не говоря уже об NT. Или «не так давно» это 30 лет назад во времена MS-DOS?
Или цикл как то странно приводится к memset или таки используется одна из специализаций:
; 8    :   if (mode == 1)

  00031	83 ff 01	 cmp	 edi, 1
  00034	75 16		 jne	 SHORT $LN5@main
$LN32@main:

; 9    :     std::memset(buf, 0, n * sizeof(*buf));

  00036	68 00 00 00 40	 push	 1073741824		; 40000000H

; 15   :     std::fill(buf, buf + n, '\0');

  0003b	6a 00		 push	 0
  0003d	56		 push	 esi
  0003e	e8 00 00 00 00	 call	 _memset

; 16   :   return buf[0];

  00043	0f be 06	 movsx	 eax, BYTE PTR [esi]
  00046	83 c4 0c	 add	 esp, 12			; 0000000cH
  00049	5f		 pop	 edi
  0004a	5e		 pop	 esi

; 17   : }

  0004b	c3		 ret	 0
$LN5@main:

; 10   : //  else if (mode == 2)
; 11   : //    bzero(buf, n * sizeof(*buf));
; 12   :   else if (mode == 3)

  0004c	83 ff 03	 cmp	 edi, 3

; 13   :     std::fill(buf, buf + n, 0);

  0004f	74 e5		 je	 SHORT $LN32@main

; 14   :   else if (mode == 4)

  00051	83 ff 04	 cmp	 edi, 4
  00054	75 18		 jne	 SHORT $LN26@main

; 15   :     std::fill(buf, buf + n, '\0');

  00056	8d 86 00 00 00
	40		 lea	 eax, DWORD PTR [esi+1073741824]
  0005c	3b f0		 cmp	 esi, eax
  0005e	74 0e		 je	 SHORT $LN26@main
  00060	2b c6		 sub	 eax, esi
  00062	50		 push	 eax
  00063	6a 00		 push	 0
  00065	56		 push	 esi
  00066	e8 00 00 00 00	 call	 _memset
  0006b	83 c4 0c	 add	 esp, 12			; 0000000cH
$LN26@main:

; 16   :   return buf[0];

  0006e	0f be 06	 movsx	 eax, BYTE PTR [esi]
  00071	5f		 pop	 edi
  00072	5e		 pop	 esi



Как видно, первая и третья ветка вообще используют один и тот же код, а четвертая — после странной проверки делает все тот же memset.
Resolve-Path еще лучше (можно вайлдкарды экспандить в качестве бонуса).
О боже, какая чушь. У классик маков не было не только меммеппинга, но даже виртуальной памяти (надеюсь не нужно объяснять как они связаны). А все потому что MC680x0 не имели встроенного MMU, а отдельный был весьма дорогим. В ту же ловушку попалась и AmigaOS. Эппл совершенно заслуженно обанкротились из-за того, что их ОС была хуже вообще всего, что было представлено на рынке (в том числе и довольно говеных Win9x) — там даже многозадачности как таковой не было, а не только изоляции адресных пространств.

И да, Гейтс не только не говорил ничего о 640к, но даже не имел никакого отношения к этому ограничению — это было аппаратное ограничение платформы IBM PC, вызванное в частности аппаратными ограничениями процессоров 8086/8088
Итак:

Кнопка с флажком -> Help and Support
Кликнуть туда где написано «Search help» и ввести pppoe <энтер>
Кликнуть на первый результат «Create PPPoE connection to Internet»
Следовать инструкциям (причем визард подключения открывается прямо из справки)

Хм, я пытался проговорить это все о-о-о-о-о-о-оч-е-е-е-е-е-е-е-ень м-е-е-е-е-е-е-е-дле-е-е-е-е-е-енноо-о-о-о-о, но 15 минут все равно не получилось

Information

Rating
Does not participate
Registered
Activity