Pull to refresh
2
0
Гаврилов Максим @ulltor

Программист

Send message

Под Windows можно использовать Clumsy. Она сильно проще, но основные сценарии покроет.

Reddit, как вариант.

Смена пароля не поможет, т. к. Dropbox не запоминает пароль пользователя.


Он распаковывают в папку /Library/DropboxHelperTools/ набор мелких утилит (которые выполняют операции по добавлению Dropbox'а в список Accessibility и др.) и устанавливают им бит suid. С этого момента эти утилиты периодически запускаются Dropbox'ом и отрабатывают с правами суперпользователя.


Смена пароля не снимет suid-бит, и, соответственно, не отберет у Dropbox'а права.


Примеры файлов с suid-битами
ulltor@orion /Library/DropboxHelperTools/Dropbox_u501 $ ls -l
total 528
drwxr-xr-x  4 root  wheel     136 Sep 19  2014 DropboxBundle.bundle
-r-s--x--x  1 root  wheel  139220 Sep 15 16:50 FinderLoadBundle
-r-s--x--x  1 root  wheel    9632 Sep 15 16:50 dbaccessperm
-r-s--x--x  1 root  wheel  116668 Sep 15 16:50 dbfseventsd
drwxr-xr-x  4 root  wheel     136 Sep 15 16:50 mach_inject_bundle_stub.bundle

Ответ кроется в реализации метода List<T>.Enumerator.MoveNext(), который используется конструкцией foreach:
1) Он проверяет, не изменился ли List<T>.
2) Он проверяет выход за границы массива.

Когда CLR видит стандартную конструкцию вида for (int i = 0; i < array.Lengh; i++), она (среда выполнения) убирает проверку на выход за границы массива. Из-за этого RawArrayFor работает так быстро.


Когда CLR видит конструкцию вида foreach (var x in array), где array — это обычный массив, она заменяет foreach на обычный for, а дальше применяется упомянутая выше оптимизция. Из-за этого RawArrayForEach работает так же быстро.


Когда CLR встречает конструкцию for(...) или foreach(...), работающую с List<T> или любой другой динамической коллекцией, все становится плохо:
а) При использовании for(...) CLR не может убрать проверки на выход за границу коллекции, т. к. размер списка может быть изменен другим потоком во время работы цикла.
2) При использовании foreach(...) CLR не может заменить его на for(...), т. к. при обходе коллекции каждый раз проверяется отсутствие изменений и инвалидация итератора в противном случае.

А Xamarin.Forms теперь тоже бесплатен и открыт?
Термин «интроверсия» и соответствующий ему психологический тип «интроверт» ввел в 1921 году Карл Юнг, основоположник аналитической психологии.
В C# тоже нет множественного наследования.
Скорее всего то, что все PUSH-уведомления для iOS-девайсов идут через Apple Push Notification Service (APNS), запросы к которому должны быть подписаны сертификатом.

Сторона, не имеющая такой сертификат, не может отправлять PUSH-уведомления в приложение.
Сторона, имеющая такой сертификат, теоретически может отправлять уведомления в любой инстанс приложения на любой девайс.
Ваша логика понятна, но, тем не менее, жаль. VS2008 — последняя студия с поддержкой разработки под WinCE.
Visual Studio 2008, судя по всему, не поддерживаете? Хотел проверить рабочий проект, у нас достаточно интересный кейс: софт под WinCE, пишется в VS2008.
Подскажите, пожалуйста, для каких операционных систем и процессорных архитектур доступны драйвера и библиотеки для работы со считывателем?
Не Wildcard или EV, но для маленького сайта, вроде, пойдет: Comodo Positive SSL за $12 на 3 года. Четыре бакса в год.
Если знание английского позволяет, можете заглянуть сюда: www.reddit.com/r/rust/
На этот раздел подписаны 6,5 тысяч людей, в том числе те, кто контрибьютит в Rust (серые и сиреневые бейджи «rust»), а также сами создатели языка (оранжевые бейджи).

Уверен, что с вашим вопросом вам там смогут помочь.
Почитал документацию внимательнее, оказалось, я был неправ. Макрос try! определен следующим образом:
macro_rules! try(
    ($e:expr) => (match $e { Ok(e) => e, Err(e) => return Err(e) })
)

То есть это:
let sqrt = try!(checked::sqrt(x));
do_smth(sqrt);

Развернется в это:
let sqrt = match checked::sqrt(x) { Ok(e) => e, Err(e) => return Err(e) };
do_smth(sqrt);

В макросе по привиденной вами ссылке разобраться с текущим уровнем знания Rust'а не могу, извиняйте.
Следующий раздел из документации, которую процитировал Xlab, говорит:
Chaining results using match can get pretty untidy; luckily, the try! macro can be used to make things pretty again. The try! macro expands to a match expression, where the Err(err) branch expands to an early return Err(err), and the Ok(ok) branch expands to an ok expression.

Т. е. в тех случаях, когда нужно просто пробросить ошибку наверх, достаточно написать:

let sqrt = try!(checked::sqrt(x));
do_smth(sqrt);

И это будет эквивалентно:
match checked::sqrt(x) {
    Err(why) => return Err(why),
    Ok(sqrt) => {
        do_smth(sqrt);
    }
}

Чистый match предполагается применять только в случае окончательной обработки ошибок на верхнем уровне.
Для этого случая Гугл предлагает распечатать пачку резервных кодов подтверждения.
Предполагается, что в случае утери ключа/телефона вы достаете листочек с кодами из сейфа, входите в аккаунт и выключаете двухфакторную авторизацию до тех пор, пока не восстановите свое устройство.

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


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

Ядро Linux умеет выгружать в своп неиспользуемые страницы памяти, принадлежащие процессам, которые запущены и не используются. На освободившееся место ядро помещает различные кэши, ускоряющие работу с, например, mmapped-файлами.

С большинстве случаев это ускоряет работу компьютера.
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity