Pull to refresh
3
0

iOS-разработчик

Send message

Tasks Shell Input (1.8.2) был установлен вместе со всей рекомендуемой обвязкой для VSCode после клонирования репозитория, как описывается в статье.

На мой взгляд, важнейшее отличие биологической нервной системы — самопроизвольная инициализация, генерация сигналов. Алгоритм нейронки, каким сложным бы он ни был, по определению запускается кем-то извне и работает по каким-то детерминированным принципам. Пускай и настолько сложным, что сейчас они перестали поддаваться анализу. Нейроны же, вероятно, связаны не только с вводами и выводами, но и с неизученными стохастическими процессами.

Иными словами, современные нейронки и биологические нервные системы допустимо сравнивать только если доказуемо и доказано, что последние тоже можно свести к машине Тьюринга.

Отладка заработала, когда заменил в строке конфига launch.json значение свойства "gdbTarget" с "${input:BLACKMAGIC}" на "tcp:192.168.64.107:2345". Хотя команда ./fbt get_blackmagic отдает корректный адрес (как для wifi, так и для usb), он по какой-то причине не подхватывается дальше. Запускал под актуальной macOS Ventura 13.3 (22E252) на свежей версии VSCode 1.77.0. До замены ошибок в логах не было, при запуске отладки на миг возникала анимация (тонкая синяя полоска прогресс бара), исчезала, и больше ничего.

C dev board запуск выглядит также?
./fbt launch_app APPSRC=./applications_user/hello_world
./fbt
./fbt FORCE=1 flash_blackmagic

На этих этапах всё нормально. Но при запуске отладки vscode никак не реагирует. Для сравнения, если попробовать запустить режимы отладки с другими устройствами, которых у меня нет (например, "Attach FW (ST-Link)"), запускается gdb с ожидаемой ошибкой.
@hedger, подскажите, что я делаю не так? :)

Добрый день! Может кто-то подсказать Standalone-вариант, который можно использовать с синхронизацией через например Dropbox вместе с семьей? Я вижу это так: например, три сейфа: один мой, два других для родителей. Я имею доступ ко всем троим, например знаю пароли всех троих, чтобы подсказать родителям, если что-то потребуется, родители имеют доступ только к своим.

В том же Bitwarden есть кроме семейной подписки и возможность self-host (про это даже отдельная статья на Хабре была), но мне ближе вариант, когда контейнер синхронизируется через Dropbox или что-то похожее, а не постоянно следить за безопасностью и обновлениями еще одного сервера :)

Есть разные возможные причины такого поведения. В программе может использоваться свой DNS (например, DoH-резолвер). Свой собственный DNS, опрашивающий другую страну, отдает адреса, любезно предоставленные местным балансировщиком нагрузки из местного (для DNS) сегмента интернета. Или просто так получилось, что часть адресов сервиса оказались по одну сторону туннеля, а часть — по другую.

При этом основное подключение клиента идет с одного адреса, а часть подключений — через VPN с другого (либо наоборот) и сервер разрывает соединения с «неправильного» адреса.

Кстати, это главная проблема реализации подхода исключительно на сетевом уровне L3, игнорируя L4 и далее вплоть до L7. Решение — разбирать и маркировать весь трафик самостоятельно по правилам на разных уровнях, для чего нужно городить по сути свой DPI-сервер или покупать оборудование, которое могут позволить себе не все провайдеры.

Подтверждаю, у меня тоже сработало! Спасибо за сообщение!

Я только одного не могу понять, о каких санкциях идет речь, учитывая что

(b) Except as provided in paragraph (c) of this general license, the exportation or reexportation, sale, or supply, directly or indirectly, from the United States or by U.S. persons, wherever located, to the Russian Federation of services, software, hardware, or technology incident to the exchange of communications over the internet, such as instant messaging, videoconferencing, chat and email, social networking, sharing of photos, movies, and documents, web browsing, blogging, web hosting, and domain name registration services, that is prohibited by the RuHSR, is authorized.

Отсюда: https://home.treasury.gov/system/files/126/russia_gl25.pdf

Я тоже по-английски, с российского IP, под персональными санкциями естественно тоже не нахожусь. При этом мне ответили следующее, нарезка фраз из чата: «Google believes you are receiving Google Workspace services in a territory in which Google Workspace can no longer be provided, in accordance with applicable laws due to the conflict between Russia and Ukraine. I am sorry to say, but there is no workaround here for Russian customers. Any service by Google cannot be used. The only option here is to migrate to Google Workspace and use a Payment Method of a different country which is not sanctioned».

В моем случае вторая линия поддержки сказала, что в России вообще невозможно продолжение использования Google Workspaces из-за санкций. Сказали, что нужно использовать оплату другой страны для перехода на Google Workspaces. Хотя при чём тут оплата, если речь идёт о сохранении бесплатной версии, не понятно. И причем санкции, если не было тотальных ограничений экспорта, тоже. Мне кажется, в поддержке сами не могут разобраться в том, что происходит. Я прошу оставить бесплатный тариф, а мне говорят, что у вас оплата невозможна в стране. Или может для России в принципе опцию для non-commercial personal use не оставят? Или же нужно зайти через VPN с айпишников другой страны и поменять / связаться с поддержкой?

@sanchower@Irker@Gugicскажите пожалуйста, кто-то из вас из России (с российских IP) общался с поддержкой? Спрашивали про страну?

Внимание, вопрос: а что мешает Сберу, ВТБ и другим банкам опубликовать свой исходный код для того, чтобы каждый желающий мог собрать себе из исходников банковское приложение?

Здравствуйте! Случайно нет новостей по поводу no-cost option?

Это хорошая база для начала, спасибо большое!

Спасибо большое за статью!

А не осилите заодно рассказать про собственный postfix и настройки? Вот сколько искал, более-менее современных и продуманных гайдов про свою почту на хабре вроде как нет. А это очень актуально, учитывая, например, принудительное закрытие гуглом Google Suite для старых пользователей.

Я вижу, что у вас очень много опыта (я бы например про bounce вообще не додумался, что его нужно отключать, так как сам почту никогда не поднимал), о котором я, и, думаю, многие, очень хотели бы узнать.

Какая связка сейчас считается надежной? Какой антиспам юзать? Какие настройки критичны для первоначальной работоспособности, чтобы все подряд не слали твои письма в спам и чтоб самому не стать случайно спамером, как с тем же bounce; обращались ли в конторы типа Spamhaus, чтобы восстановить справедливость, или у вас теплый ламповый прогретый мейл из тех времен, когда трава была зеленее, а сервера не требовали повально DMARC и т.д.

И еще один оффтопный вопрос не толко к автору, а ко всем: если у меня сейчас почта на домене, например, example.com, но гугловская, а я создам еще один поддомен, например, test.example.com, почту на нем, пропишу все записи для поддомена и начну его причесывать (добиваться, чтоб не попадало в спам), это зачтется, если я перенесу потом основную почту на домен второго уровня? Что вообще «самое важное» с точки зрения антиспама, домен, айпишник, может, записи какие?

Если кто-то покажет вам строки чисел 99999999999999999999 и 03729563829603547134, и скажет, что их выбрали случайно, то вы не сможете опровергнуть это заявление со всей определённостью: при выборе случайных чисел вероятность создания обеих строк одинакова.

Я долго смотрел на эту фразу, и что-то во мне зудело. Хотелось подвергнуть сомнению. Но кажется, я понял, в чем дело. Наш мозг, нацеленный на поиск закономерностей, на ходу выполняет конвертацию из «набор цифр» в более простой для понимания и хранения формат «20 девяток», что и искажает восприятие числа. Так и хочется сказать: «ну ведь вероятность выпадения 20 девяток подряд меньше!». И действительно, вероятность выпадения 20 девяток подряд меньше, только вот перед нами не 20 девяток, а условно случайный набор цифр, которые, так уж получилось, составляют 20 девяток.

Мой любимый Swift. Не серчайте, позвольте немного подушнить и вставить пару дополнений.

 

4. Какие потенциальные улучшения вы здесь видите?

Я бы ещё вместо turnTo(direction: Direction) использовал turn(to direction: Direction) для большего соответствия стилистике Apple.

А зачем default в case? В коде не подразумевается создание enum из rawValue, также логика исключает возникновение новой стороны света. Если бы новые стороны света можно было бы придумать, тогда логичнее было бы добавить @unknown default для возможных обновлений кода в будущем.

 

6. Что такое Optional в Swift? Как его создать?

Я думаю, самое хорошее объяснение, которое встречается почти везде, что Optional — это enum Optional<Wrapped>, принимающий одно из двух значений: none или some(Wrapped). Всякие ?, !, nil и прочие инструменты работы с optional в Swift — не что иное, как синтаксический сахар, чтобы каждый раз не пришлось писать такие конструкции. Такое объяснение сразу снимает и вопрос 41. Nil vs None в Swift.

 

17. Для чего нужны Protocols в Swift?

Вопрос был «для чего», хотя ответа я так и не прочитал. Как минимум, они нужны для возможности работы с дженериками. На мой взгляд, это также современный подход к и альтернатива для (множественного) наследования. Вообще, Protocol Oriented Programming — это целая архитектурная философия, то есть ещё и богатая почва для холивара. Поэтому вопрос с подвохом.

 

22. Можно ли поменять местами две переменные без третьей переменной-помощника?

Имхо не совсем корректный ответ, так как LLVM создаёт эту самую третью переменную уже на уровне SIL. Но зато на уровне оптимизаций ассемблера решение превращается в каноническое, с использованием XOR (инструкции xorl, если быть совсем точным). Так что я бы ответил так:

var a = 10

var b = 20

a = a^b

b = a^b

a = a^b

 

34. Что такое расширения?

Про extension для типов, отличных от протоколов, стоит отметить, что они очень часто используются для имплементации конкретного протокола. Extension может использоваться для выделения фрагмента кода, для которого нужно определить другую область видимости, например fileprivate. Extension с where используется для дополнения типов, основанных на дженериках, функциональностью, связанной с конкретными ограничениями той или иной реализации. Имхо, самые интересные возможности открывает extension для протоколов: позволяет делать реализацию по умолчанию, в том числе и "хранить значения", хотя в большинстве случаев это считается антипаттерном. Реализация по умолчанию - это хорошая замена фабрике, а ведь ещё можно и подобие полиморфизма из расширений протоколов реализовать...

 

49. Что такое (autoclosure) автозамыкание в Swift? Как и когда его следует использовать?

Вместо I_will(perform_action: явно лучше писать iWill(performAction:, так как это функция и в Swift принят CamelCase вместо snake_case.

А второй фрагмент кода забыли поправить:

func iWill(_ performAction: @autoclosure () -> Void) {performAction()}

iWill(print("Hello, world!"))

 

Что-то я расписался. Спасибо за статью!

Об этом и речь! Зачем менее безопасная оплата лицом, если уже сейчас подавляющее большинство может платить телефоном, просто не все хотят. Можно при оплате лицом требовать хотя бы сменяемый пин-код, но это уже костыли.

По моему опыту, большая часть времени в обычном магазине уходит не на оплату (если приложить телефон, а не рыться в карманах, ища мелочь), а на такие вещи как:

  • сканирование штрихкодов;

  • открепление магнитов против краж, если есть;

  • "наша карта есть?" и выяснение прчин нежелания её оформления в случае отрицательного ответа;

  • вопросы типа "нужен ли пакет", "не хотите ли принять участие в акции", "а мы собираем деньги на Х, не желаете ли участовать" и т.д.

У технологии распознавания лиц есть масса полезных применений, но оплата на мой взгляд таковым не является. А если не у того спишут не 100 рублей а сотни тысяч? Или кто-то сможет удачно прикинуться другим и пойдет совершать покупки на 1000 рублей в каждом магазине? Небезопасно и сменить лицо нельзя, поэтому массовая биометрия для аутентификации оплаты без хотя бы еще одного фактора — это не лучшее решение. А вот для сотрудников, трекинга и прочих вещей, где цена ошибки гораздо ниже — очень интересный кейс.

Мне понравился как возможная замена Devonthink. Одна покупка, триал на 30 дней. Есть шифрование и селф-хостинг. Есть даже дорогая сервер-версия (для своего сервера) для тех, кто хочет делиться заметками. Нативные приложения работают гораздо шустрее "новых" эвернотовских. Очень широкие возможности для структурирования, поиска. Есть более дорогая версия со встроенным OCR. Но для многих будет минусом то, что существуют эти приложения только в яблочной экосистеме.

Отработал экспорт-импорт, благо в Devonthink с автоматизацией нет никаких проблем, и уже давно бы перешел, если бы не был таким убогим редактор WYSIWYG в мобильной версии. Более того, там отдельно существуют rtf и md заметки, и нельзя просто так "вставить" файл в заметку (добавить его в базу и вставить ссылку, как это происходит и в Evernote), нужно все делать руками. Пока что рассматриваю как наиболее вероятный запасной аэродром на случай, если Evernote решат отказаться от легаси-версии на компе или делать иные безумства. Может, кому тоже пригодится.

Joplin в целом хорош, но мне не хватает нейтива. А там тоже тормозной и довольно убогий интерфейс на яблофоне, сделанный на фейсбуковском React Native. И к тому же заставляет редактировать в md, что далеко не всегда удобно. Может, писать комменты или в википедии текст с md еще годится, но в крупных заметках постоянно деражать в голове, где тут что как должно выглядеть и где эскейп-символы, а где разметка, ну не очень это удобно.

Номер 2 реально хорошая вещь. Где у вас, если не секрет? С учётом неразберихи с платностью старой версии G Suite для физлиц, ищу другие варианты :)

1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity