На мой взгляд, вы используете не самый удачный подход. Вы обфусцируете данные, чтобы трафик выглядел как случайный набор чисел. И это плохо, потому что это вас выделяет на фоне других пользователей, у которых 99% трафика это HTTPS к вконтакте, пикабу, ютубу и другим популярным сайтам. У них HTTPS, а у вас какой-то обфусцированный трафик.
Мне кажется, лучше максировать трафик, чтобы он был неотличим (без тщательного ручного анализа) от HTTPS, который передает Chrome. Сделайте заголовки как у HTTPS 2.0 или 3.0, но после установки SSL передавайте внутри свои данные. Чтобы меньше выделяться, также шлите запросы на топ-100 популярных сайтов. Или маскируйтесь под трафик от приложений, от популярных игр вроде Counter Strike.
Еще под Телеграм хорошо максироваться, потому что он использует свое кастомное шифрование и использует (в отличие от других) IP из сторонних сетей.
О! У меня есть со старым ноутбуком похожая проблема, может быть подскажете, куда копать?
Ноутбуку лет 15. Начал неожиданно отключаться. Может через 5 минут отключиться, а может даже 2 часа проработать. Отключается независимо от ОС - в Windows, Linux и даже в MEMTEST. Не зависит от нагрузки на процессор и температуры процессора - отключается и при 100% загрузке, и при почти нулевой. Все что можно отключить и снять (DVD-привод, например) - отключено и снято. Процессор менял на другой, та же ситуация. Вентилятор охлаждения работает исправно.
Работает от блока питания, от сети, так как аккумулятор почти мертвый.
В ноутбуке 2 планки памяти DDR2. Если обе вставлены - гарантированно отключается. Если оставить только одну (любую из двух) - работает месяцами как швейцарские часы (но тормозит, так как памяти мало).
Что это может быть? Что стоит проверить?
У меня есть предположение, что может быть что-то с питанием (2 планки создают большую нагрузку, чем одна). Но что тогда надо проверять? Дроссели, транзисторы, резисторы, конденсаторы? Что обычно выходит из строя?
Мне кажется, вы неправы. Даже с рандомизацией MAC отслеживание возможно. Я специально изучил документацию по Андроиду и iOS. В обоих ОС по умолчанию для каждой сети запоминается свой постоянный Mac адрес. Представьте ситуацию:
вы однажды подсоединились к бесплатному WiFi в метро (или в кафе, или еще где-то), и телефон запомнил сеть FreeWiFi и используемый для нее Mac адрес. При этом вы авторизовались по номеру телефона, и рекламодатель знает связку номер телефона - Mac адрес. Также, в captive portal для входа сеть вам были установлены отслеживающие куки.
вы дома. В вашем подъезде стоят роутеры от провайдера, и один из них кроме основной сети дополнительно рекламирует сеть FreeWiFi. Увидев знакомую сеть, ваш телефон пытается подсоединиться к ней, и рекламодатель знает, в какой подъезд вы зашли, и примерное расстояние от роутера до телефона благодаря технологии WiFi RTT
вы выходите и идете по улице. Мимо проезжает трамвай с сетью FreeWiFi, и ваш телефон снова сдает ваше местопложение
вы заходите в метро, ну тут на вас высыпают полный комплект слежки: слежка через WiFi + отслеживание GSM сигнала в метро (это дает ваш номер телефона и IMEI). На первый взгляд, трудно связать трек WiFI MAC и трек IMEI для поезда, набитого пассажирами, но если сравнить поездки за дней 5-7, то ваши WiFI и GSM треки будут уникальны среди миллионов пассажиров, так как вряд ли кто-то еще точно в то же время ездит с вами в поезде по тому же маршруту
вы идете в торговый центр, там, естественно тоже есть бесплатный WiFi, который за вами следит
Самое главное, что даже если вы подключились к WiFi всего несколько раз, можно сравнить эти данные с данными с сотовых вышек, кто был в тех районах в то время, и идентифицировать вас и ваше положение с высокой точностью.
Если у вас включен Bluetooth, то это дает дополнительную информацию.
Пожалуйста, поправьте, если я неправильно понял документацию. По моему, отслеживание более чем возможно даже используя только WiFi, а уж с данными от сотовых операторов слежка получается идеальная.
Я к Дурову отношусь негативно (он ввел в ВК требование номера телефона, собрал кучу персональных данных и переписку, заработал деньги, а потом трусливо свалил из страны не удалив данные, а отдав их государству). Но в данном случае вынужден стать на его сторону.
Вот смотрите: человек заходит на какой-то левый сайт в Интернете (adverts, как я понял это лохотрон вроде авито), где незнакомец предлагает ему без всяких гарантий перевести деньги на чужой счет. Ну каким отбитым надо быть, чтобы переводить деньги непонятно кому? Если вы хотите купить билет, то вы должны найти официальный сайт, проверить по WHOIS, что он принадлежит официальной компании и только тогда оплачивать покупку.
В чем виноват Дуров? По-вашему, он специально разработал криптовалюту, чтобы помочь у какого-то глупого доверчивого европейца украсть 20 долларов и заработать 1 доллар комиссии? Почему вы не предъявляете претензии мутным сайтам вроде adverts, за то, что они помогают обманывать людей?
К вам на улице подойдут и предложат билет на концерт за полцены (фальшивый конечно), вы тоже купите?
Правильно сделка должна делаться так: продавец приносит товар на маркетплейс, там его проверяют и только после проверки размещают объявление. Покупатель платит маркетплейсу и получает проверенный товар. Продавец получает деньги после получения товара покупателем. В случае каких-то проблем маркетплейс компенсирует из своего кармана. Все надежно. Либо же продажа при личной встрече.
А не как авито, когда любой может пообещать прислать что угодно, а сам просто берет деньги и исчезает.
А что касается Дурова, он сделал правильный шаг, когда позволил вместо указания номера телефона оплатить криптовалютой. Я, например, лучше заплачу, если мне Телеграм нужен по работе, чем буду раздавать свои данные направо и налево всяким шарашкиным конторам. Но плохо, что он требует не биткойн, а какую-то мутную валюту, которую сначала надо где-то купить.
Система оценки сделана глупо. Сейчас они дают баллы за добавление в схему отечетственных микросхем. Соответственно, можно просто напаять их с боков, никуда не подсоединить, и получить баллы.
А надо вычитать баллы за каждый импортный коммпонент (кол-во баллов в зависимости от типа компонента, 1 контроллер = 100 резисторов). Тогда единственный способ набрать максимум (0 баллов) будет сделать монитор целиком из отечественных компонентов.
Надеюсь, что вы не сдадитесь, будете развиваться дальше и у вас все получится. Но:
На мидл откликаюсь очень редко
Middle разработчик это разработчик примерно с 3 годами опыта. Вы под это условие не подходите.
Есть компании, которые сразу присылают тебе тестовое задание, где тебе чуть ли не новый поисковик надо собрать с логикой, и всё это на зп в 30–50 т.р.
Я не понял этот момент. Если вас не устраивает зарплата, то зачем вы отправляли резюме в эту компанию? А если устраивает, то почему не можете качественно сделать тестовое задание? Вы считаете, что если зарплата соответствует медианной зарплате по России, то кандидата можно не проверять?
Да, тестовое задание может потребовать время, и даже придется что-то подучить, но вы же все равно безработный и вам делать все равно нечего. К тому же, сделанное задание можно выложить на Гитхаб и показывать на собеседованиях. И знания новые получите. Одни плюсы.
Ну и отдельная каста компаний, которые ищут работников за «еду» со слоганом «Всему обучим за 3 месяца, а потом, может быть, возьмём в штат», а где-то между строк затерялось «Скорее всего нет. Ты просто поработай на нас бесплатно.». При этом заметил, что откликов у таких компаний больше всего.
Это работа не за деньги, а ради опыта в резюме. Плюс, возможность познакомиться с реальным кодом и реальными задачами. Считайте это бесплатным обучением.
Ну и это работает не везде. В сложных проектах такие «начинающие» будут больше мешать, ломать и отвлекать. Лучше взять миддла.
Кстати, можно попробовать брать задачи на фрилансе по своей специальности. Платить будут мало, работа будет неприятная, но может быть это поможет вам получить больше опыта. Заодно проверите, хватает ли ваших знаний для каких-то реальных проектов.
Есть пара-тройка больших компаний, которые каждые 3 месяца (а кто и почаще) запускают конкурсы по отбору стажёров на много направлений, среди оных есть и front.... К данным стажировкам надо готовится отдельно, чуть ли ни как к FAANG/MAMAA. Там и алгоритмы, и специфическая подача задач, нацеленных на то, чтоб вас запутать.
Большие компании хотят выбрать лучших, что здесь не так?
Компаний, готовых обучать джунов, практически на российском рынке нет.
Значит, пока ситуация не такая критическая, как вы описываете. Значит, компании пока что закрывают вакансии имеющимися людьми. Была бы ситуация критическая - компании бы оплачивали обучение перспективным студентам в обмен на условие потом работать у них.
Все, кому не лень, говорят, что рынок растёт, требуются новые специалисты
Политикам и компаниям все время кто-то требуется, но платить они почему-то за это не хотят. Если бы специалисты были так сильно нужны, государство или компании оплатили бы обучение. Раз не платят - значит имеющихся специалистов хватает.
P.S. Увидел в комментариях, что вы ранее работали руководителем. Выглядит как большой плюс, на мой взгляд, ведь это значит, что вы умеете принимать решения, искать эффективный путь (например, понимать, что выгоднее: написать свой модуль или купить сторонний, или использовать какое-то готовое API для решения задачи), взвешивать плюсы и минусы, видеть слабые места, понимать задачи бизнеса - это очень полезно. Обязательно акцентируйте на этом внимание в резюме.
Внизу этой странице в виджете Хабр Карьеры написано:
Средняя зарплата в IT 170 384 р/мес.
Объясните, почему льготы дают людям со средней зарплатой 170 000, включая холостяков, а не например, мамам-одиночкам, семьям с ребенком с низким доходом? Неужели это справедливо?
Я не вижу, чтобы в США или Европе были такие льготы. Там социальное жилье выдают бедным, а не богатым. Льготы курильщика.
Росстат рассчитывает медиану по пенсионным отчислениям, значит в нее не попадают работающие по черным схемам (а это часто маленькие зарплаты, например, мелкий магазинчик или кафе).
Почему айти-специалистам отсрочка от призыва, а, допустим, механику или водителю - нет? Разве не полезно было бы людям, которые за монитором жизнь просиживают, немного оторваться от виртуального мира, познакомиться с реальностью, социализироваться, накачать мышцы?
А так, получается какое-то деление людей на первый и второй сорт... Некоторые животные, получается, равнее других?
Вам не кажется, что так было бы справедливее: призывать по убыванию уровня дохода за предыдущие 3 года. То есть, вначале богачей, потом чиновников, потом работников газовой сферы, потом айтишников, потом остальных.
Ну то есть тот, кто лучше других жил, идет первым для восстановления баланса.
Ну и кстати, одним из итогов Вьетнамской войны стала отмены призыва. Так что мой мудрый план теперь в США воплотить не получится, а жаль.
Самый важный вопрос почему-то статья обошла стороной: программное обеспечение.
Используется ли в ноутбуках оригинальная сборка Windows, или же производителем предустановлено дополнительное ПО? Отправляет ли это ПО данные в Китай? Содержит ли возможности удаленного доступа из Китая и другие недокументированные возможности? Как можно в этом убедиться?
Вот сегодня вы купите китайский ноутбук, а завтра ваш счет опустеет, например, или от вашего имени отправят деньги в какую-нибудь террористическую организацию.
Между тем, есть еще один способ ввода данных из документов – прямо на устройстве, без необходимости отправлять куда-то картинку. Он полностью исключает риск любой утечки.
Нет. Данные паспорта ведь дальше остаются в возможно дырявом приложении и передаются на сервер, где они опять же, не защищены.
Чтобы данные были защищены, нужно прекратить их собирать по любому поводу в максимальном объеме. Там, где это требует закон (банк, билеты на поезд, на метро) вместо сканирования паспорта сотрудник просто должен визуально сверять данные покупателя с предъявленным паспортом.
Ни при каких обстоятельствах человек не должен фотографировать паспорт телефоном.
Но капиталисты, естественно, не хотят сделать безопаснее, а хотят собрать побольше данных. Находятся даже люди, которые ради дисконтной карты в магазине дают паспорт.
Как я понимаю, товарищи из статьи не трогали код Moodle, а лишь работали на уровне администратора, то есть настраивали Линукс и правили конфиги. Оптимизировать наверняка можно, но надо подключать программистов.
Не понимаю, зачем им понадобился SPA? Разве нельзя просто сделать обычный сайт по классической схеме, а для перехода между страницами без перезагрузки воткнуть библиотеку вроде https://github.com/defunkt/jquery-pjax ?
Не, подумайте сами, не нужен ни реакт, ни ангулар, просто подключить библиотеку к классическому сайту и все работает через аякс само по себе.
Так сейчас тоже жертвы деньги переводят на счет, привязанный к паспорту. Все транзакции отслеживаются, везде камеры, но мошенники продолжают свое дело.
В случае с крипторублем, мошенник при получении средств сразу же купит на них, например, ювелирные украшения или макбук про и ничего вы уже не вернете.
Мошенничество никуда не исчезнет. Как сейчас люди переводят деньги на «защищенные счета» так и с цифровым рублем будут переводить, и, естестенно, никто их вам уже не вернет.
Статья очень интересная, но очень непонятная. Видимо, рассчитана не на новичков. Постоянно при чтении возникают вопросы:
нам требуется дополнительная структура над множествами - набор функций позволяющий "уменьшать количество" элементов списка вплоть до единственного. Такая структура называется "моноид".
Абстрактный моноид обычно описывается так: ассоциативная бинарная операция
У вас написано сначала, что «моноид» это набор функций, но дальше в определении вы пишете «[одна] бинарная операция». Противоречие.
В самом деле, если есть возможности моноида (бинарная операция и нейтральный элемент) инструкции не меняются, если в качестве множества мы выбираем int, double или string - описание алгоритма остаётся тем же (но потребуются другие реализации моноида).
Как можно в алгоритме заменить int на string и получить тот же алгоритм? 2 + 2 = 4, но "2" + "2" = "22". Было бы хорошо, если бы вы привели пример в статье.
Суть типа полностью определяется совокупностью отображений, связывающих его с другими типами (не только с типами, но это пока не важно))). Зачастую такие отображения бывает удобно отобразить на диаграмме в виде ориентированного графа:
Я не понимаю, что на этом графе является узлами и что обозначают ребра. Узлы - это типы (вроде Int, String), а ребра - функции, которые преобразуют их (вроде strlen(), которая преобразует String в Int)? А где тут тогда функции, принимающие несколько аргументов? Было бы хорошо, если бы вы объяснили, как строится такой граф и привели пример графа для простого алгоритма.
с другой стороны, если у нас есть объект типа C, то у нас есть (мы можем получить) объекты типов B_1 и B_2. Можем ли мы определить тип C, как ... "B_1 и B_2"?
Я не вижу тут логики. Вот у нас есть тип String, мы из него можем получить Int (длина строки) и Bool (является ли строка пустой), тогда по вашей логике, String это «Int и Bool»? Очевидно же, что нет.
Но с другой стороны, например, если для A_1 есть отображение в A_2, то A_2 вполне можно исключить из определения типа C. Аналогично, среди типов B также могут найтись те, кто связан с отображениями, значит там тоже кого-то можно исключить из формулировки C через произведения.
Здесь просто непонятно ничего. Что значит «связан с отображениями»? Что значит «из формулировки C через произведения». Слово «произведения», конечно, вызывает в памяти product types, но в статье до этого момента про них ни слова.
Нам нужно выбрать "наилучшего" универсального представителя - нам нужно некое универсальное свойство.
Что значит «универсальный представитель»? По какому критерию он «наилучший»? Что за свойство имеется в виду?
"Единственность" функции, идущей от одного типа к другому, означает эквивалентность всех функции связывающих эти типы в том же направлении.
Я не понимаю, если у нас функция одна и единственная, то откуда взялись «все функции, связывающие эти типы»?
Существует тип и единственная функция принимающая (или возвращающая) значения этого типа, такая что соответствующая диаграмма будет коммутативной.
Что значит «соответствующая диаграмма»? Диаграмма всех типов и функций в программе? И зачем нужно условие про диаграмму, если у нас есть только одна функция, возвращающая значения типа? Где тут возьмутся «разные пути» (из определения коммутативности), если стрелка к этому типу только одна?
Вооружившись понятием универсального свойства, попробуем определить новый тип как "A или B". В математике это обычно называют суммой типов.
Вы бы привели пример из какого-нибудь известного языка, а то так непонятно, что это значит.
Для любых типа D и функций f и g существует единственный (с точностью до изоморфизма) тип A+B и единственная функция u, делающие диаграмму коммутативной.
Я не очень понимаю, если у нас есть функции f и g, преобразующие A и B в D, то зачем нам тип A + B? Он выглядит как лишнее звено. И еще не понимаю, как будет выглядеть диаграмма, если A и B это один и тот же тип, например, Int.
Для любых типа D и функций f и g существует единственный (с точностью до изоморфизма) тип A\times B
У вас на диаграмме C вместо D...
Если мы формулируем какое-то универсальное свойство, то мы автоматически получаем и дуальное ему.
Было бы неплохо объяснить с простыми примерами, что значит дуальность. Я встречал это слово в нескольких местах (например, в схемах логических элементов на CMOS-транзисторах), но тут это явно что-то другое.
Но сперва давайте рассмотрим те же самые типы, но с другой точки зрения. Переобозначим конструкторы типа B i_1 и i_2 п проекторы типа A p_1 и p_2, получая A=B\times B.
А нельзя ли тут было привести простой пример с типами вроде Int? Пусть A это Int. Тогда B = A + A = A × 2 это структура из Int и, допустим, Bool, а по формуле A = B×B, получается Int = структура из 2 таких структур? Что-то в голове не укладывается.
Каррирование
Не понимаю, что хорошего в каррировании? В чем смысл представления функции из N аргументов в виде N функций от 1 аргумента? Только усложняется все, по моему. Также, непонятно, как с помощью каррирования можно представить функцию с необязательными аргументами или именованными аргументами.
Также, каррирование позволяет зафиксировать первый аргумент функции, но не позволяет зафиксировать последний:
val div = (a) => (b) => a/b val div10 = div(10) // Зафиксировали 1-й аргумент var divBy2 = ??? // а как зафиксировать второй?
Нелогично, согласитесь?
Я бы заменил каррирование на фиксирование произвольных аргументов:
val div = (a, b) => a/b val divBy2 = div(?, 2)
Вот так гораздо удобнее и логичнее, чем с вашим каррированием.
Такой тип-одиночка называется единицей
В чем смысл использовать тип, у которого единственное значение? Не проще ли вообще ничего не передавать в функцию тогда?
A × 0 = 0
Непонятно, как это интерпретировать. Структура из 2 полей, где первое имеет тип A, а второе?
На мой взгляд, вы используете не самый удачный подход. Вы обфусцируете данные, чтобы трафик выглядел как случайный набор чисел. И это плохо, потому что это вас выделяет на фоне других пользователей, у которых 99% трафика это HTTPS к вконтакте, пикабу, ютубу и другим популярным сайтам. У них HTTPS, а у вас какой-то обфусцированный трафик.
Мне кажется, лучше максировать трафик, чтобы он был неотличим (без тщательного ручного анализа) от HTTPS, который передает Chrome. Сделайте заголовки как у HTTPS 2.0 или 3.0, но после установки SSL передавайте внутри свои данные. Чтобы меньше выделяться, также шлите запросы на топ-100 популярных сайтов. Или маскируйтесь под трафик от приложений, от популярных игр вроде Counter Strike.
Еще под Телеграм хорошо максироваться, потому что он использует свое кастомное шифрование и использует (в отличие от других) IP из сторонних сетей.
Что скажете?
О! У меня есть со старым ноутбуком похожая проблема, может быть подскажете, куда копать?
Ноутбуку лет 15. Начал неожиданно отключаться. Может через 5 минут отключиться, а может даже 2 часа проработать. Отключается независимо от ОС - в Windows, Linux и даже в MEMTEST. Не зависит от нагрузки на процессор и температуры процессора - отключается и при 100% загрузке, и при почти нулевой. Все что можно отключить и снять (DVD-привод, например) - отключено и снято. Процессор менял на другой, та же ситуация. Вентилятор охлаждения работает исправно.
Работает от блока питания, от сети, так как аккумулятор почти мертвый.
В ноутбуке 2 планки памяти DDR2. Если обе вставлены - гарантированно отключается. Если оставить только одну (любую из двух) - работает месяцами как швейцарские часы (но тормозит, так как памяти мало).
Что это может быть? Что стоит проверить?
У меня есть предположение, что может быть что-то с питанием (2 планки создают большую нагрузку, чем одна). Но что тогда надо проверять? Дроссели, транзисторы, резисторы, конденсаторы? Что обычно выходит из строя?
Мне кажется, вы неправы. Даже с рандомизацией MAC отслеживание возможно. Я специально изучил документацию по Андроиду и iOS. В обоих ОС по умолчанию для каждой сети запоминается свой постоянный Mac адрес. Представьте ситуацию:
вы однажды подсоединились к бесплатному WiFi в метро (или в кафе, или еще где-то), и телефон запомнил сеть FreeWiFi и используемый для нее Mac адрес. При этом вы авторизовались по номеру телефона, и рекламодатель знает связку номер телефона - Mac адрес. Также, в captive portal для входа сеть вам были установлены отслеживающие куки.
вы дома. В вашем подъезде стоят роутеры от провайдера, и один из них кроме основной сети дополнительно рекламирует сеть FreeWiFi. Увидев знакомую сеть, ваш телефон пытается подсоединиться к ней, и рекламодатель знает, в какой подъезд вы зашли, и примерное расстояние от роутера до телефона благодаря технологии WiFi RTT
вы выходите и идете по улице. Мимо проезжает трамвай с сетью FreeWiFi, и ваш телефон снова сдает ваше местопложение
вы заходите в метро, ну тут на вас высыпают полный комплект слежки: слежка через WiFi + отслеживание GSM сигнала в метро (это дает ваш номер телефона и IMEI). На первый взгляд, трудно связать трек WiFI MAC и трек IMEI для поезда, набитого пассажирами, но если сравнить поездки за дней 5-7, то ваши WiFI и GSM треки будут уникальны среди миллионов пассажиров, так как вряд ли кто-то еще точно в то же время ездит с вами в поезде по тому же маршруту
вы идете в торговый центр, там, естественно тоже есть бесплатный WiFi, который за вами следит
Самое главное, что даже если вы подключились к WiFi всего несколько раз, можно сравнить эти данные с данными с сотовых вышек, кто был в тех районах в то время, и идентифицировать вас и ваше положение с высокой точностью.
Если у вас включен Bluetooth, то это дает дополнительную информацию.
Пожалуйста, поправьте, если я неправильно понял документацию. По моему, отслеживание более чем возможно даже используя только WiFi, а уж с данными от сотовых операторов слежка получается идеальная.
Я к Дурову отношусь негативно (он ввел в ВК требование номера телефона, собрал кучу персональных данных и переписку, заработал деньги, а потом трусливо свалил из страны не удалив данные, а отдав их государству). Но в данном случае вынужден стать на его сторону.
Вот смотрите: человек заходит на какой-то левый сайт в Интернете (adverts, как я понял это лохотрон вроде авито), где незнакомец предлагает ему без всяких гарантий перевести деньги на чужой счет. Ну каким отбитым надо быть, чтобы переводить деньги непонятно кому? Если вы хотите купить билет, то вы должны найти официальный сайт, проверить по WHOIS, что он принадлежит официальной компании и только тогда оплачивать покупку.
В чем виноват Дуров? По-вашему, он специально разработал криптовалюту, чтобы помочь у какого-то глупого доверчивого европейца украсть 20 долларов и заработать 1 доллар комиссии? Почему вы не предъявляете претензии мутным сайтам вроде adverts, за то, что они помогают обманывать людей?
К вам на улице подойдут и предложат билет на концерт за полцены (фальшивый конечно), вы тоже купите?
Правильно сделка должна делаться так: продавец приносит товар на маркетплейс, там его проверяют и только после проверки размещают объявление. Покупатель платит маркетплейсу и получает проверенный товар. Продавец получает деньги после получения товара покупателем. В случае каких-то проблем маркетплейс компенсирует из своего кармана. Все надежно. Либо же продажа при личной встрече.
А не как авито, когда любой может пообещать прислать что угодно, а сам просто берет деньги и исчезает.
А что касается Дурова, он сделал правильный шаг, когда позволил вместо указания номера телефона оплатить криптовалютой. Я, например, лучше заплачу, если мне Телеграм нужен по работе, чем буду раздавать свои данные направо и налево всяким шарашкиным конторам. Но плохо, что он требует не биткойн, а какую-то мутную валюту, которую сначала надо где-то купить.
Система оценки сделана глупо. Сейчас они дают баллы за добавление в схему отечетственных микросхем. Соответственно, можно просто напаять их с боков, никуда не подсоединить, и получить баллы.
А надо вычитать баллы за каждый импортный коммпонент (кол-во баллов в зависимости от типа компонента, 1 контроллер = 100 резисторов). Тогда единственный способ набрать максимум (0 баллов) будет сделать монитор целиком из отечественных компонентов.
Надеюсь, что вы не сдадитесь, будете развиваться дальше и у вас все получится. Но:
Middle разработчик это разработчик примерно с 3 годами опыта. Вы под это условие не подходите.
Я не понял этот момент. Если вас не устраивает зарплата, то зачем вы отправляли резюме в эту компанию? А если устраивает, то почему не можете качественно сделать тестовое задание? Вы считаете, что если зарплата соответствует медианной зарплате по России, то кандидата можно не проверять?
Да, тестовое задание может потребовать время, и даже придется что-то подучить, но вы же все равно безработный и вам делать все равно нечего. К тому же, сделанное задание можно выложить на Гитхаб и показывать на собеседованиях. И знания новые получите. Одни плюсы.
Это работа не за деньги, а ради опыта в резюме. Плюс, возможность познакомиться с реальным кодом и реальными задачами. Считайте это бесплатным обучением.
Ну и это работает не везде. В сложных проектах такие «начинающие» будут больше мешать, ломать и отвлекать. Лучше взять миддла.
Кстати, можно попробовать брать задачи на фрилансе по своей специальности. Платить будут мало, работа будет неприятная, но может быть это поможет вам получить больше опыта. Заодно проверите, хватает ли ваших знаний для каких-то реальных проектов.
Большие компании хотят выбрать лучших, что здесь не так?
Значит, пока ситуация не такая критическая, как вы описываете. Значит, компании пока что закрывают вакансии имеющимися людьми. Была бы ситуация критическая - компании бы оплачивали обучение перспективным студентам в обмен на условие потом работать у них.
Политикам и компаниям все время кто-то требуется, но платить они почему-то за это не хотят. Если бы специалисты были так сильно нужны, государство или компании оплатили бы обучение. Раз не платят - значит имеющихся специалистов хватает.
P.S. Увидел в комментариях, что вы ранее работали руководителем. Выглядит как большой плюс, на мой взгляд, ведь это значит, что вы умеете принимать решения, искать эффективный путь (например, понимать, что выгоднее: написать свой модуль или купить сторонний, или использовать какое-то готовое API для решения задачи), взвешивать плюсы и минусы, видеть слабые места, понимать задачи бизнеса - это очень полезно. Обязательно акцентируйте на этом внимание в резюме.
Внизу этой странице в виджете Хабр Карьеры написано:
Объясните, почему льготы дают людям со средней зарплатой 170 000, включая холостяков, а не например, мамам-одиночкам, семьям с ребенком с низким доходом? Неужели это справедливо?
Я не вижу, чтобы в США или Европе были такие льготы. Там социальное жилье выдают бедным, а не богатым. Льготы курильщика.
Росстат рассчитывает медиану по пенсионным отчислениям, значит в нее не попадают работающие по черным схемам (а это часто маленькие зарплаты, например, мелкий магазинчик или кафе).
Почему айти-специалистам отсрочка от призыва, а, допустим, механику или водителю - нет? Разве не полезно было бы людям, которые за монитором жизнь просиживают, немного оторваться от виртуального мира, познакомиться с реальностью, социализироваться, накачать мышцы?
А так, получается какое-то деление людей на первый и второй сорт... Некоторые животные, получается, равнее других?
Ну можно еще никого не отправлять за океан, но, боюсь, Никсону и избирателям очень бы не понравилась такая идея.
Вам не кажется, что так было бы справедливее: призывать по убыванию уровня дохода за предыдущие 3 года. То есть, вначале богачей, потом чиновников, потом работников газовой сферы, потом айтишников, потом остальных.
Ну то есть тот, кто лучше других жил, идет первым для восстановления баланса.
Ну и кстати, одним из итогов Вьетнамской войны стала отмены призыва. Так что мой мудрый план теперь в США воплотить не получится, а жаль.
Самый важный вопрос почему-то статья обошла стороной: программное обеспечение.
Используется ли в ноутбуках оригинальная сборка Windows, или же производителем предустановлено дополнительное ПО? Отправляет ли это ПО данные в Китай? Содержит ли возможности удаленного доступа из Китая и другие недокументированные возможности? Как можно в этом убедиться?
Вот сегодня вы купите китайский ноутбук, а завтра ваш счет опустеет, например, или от вашего имени отправят деньги в какую-нибудь террористическую организацию.
Нет. Данные паспорта ведь дальше остаются в возможно дырявом приложении и передаются на сервер, где они опять же, не защищены.
Чтобы данные были защищены, нужно прекратить их собирать по любому поводу в максимальном объеме. Там, где это требует закон (банк, билеты на поезд,
на метро) вместо сканирования паспорта сотрудник просто должен визуально сверять данные покупателя с предъявленным паспортом.Ни при каких обстоятельствах человек не должен фотографировать паспорт телефоном.
Но капиталисты, естественно, не хотят сделать безопаснее, а хотят собрать побольше данных. Находятся даже люди, которые ради дисконтной карты в магазине дают паспорт.
Как я понимаю, товарищи из статьи не трогали код Moodle, а лишь работали на уровне администратора, то есть настраивали Линукс и правили конфиги. Оптимизировать наверняка можно, но надо подключать программистов.
Не понимаю, зачем им понадобился SPA? Разве нельзя просто сделать обычный сайт по классической схеме, а для перехода между страницами без перезагрузки воткнуть библиотеку вроде https://github.com/defunkt/jquery-pjax ?
Не, подумайте сами, не нужен ни реакт, ни ангулар, просто подключить библиотеку к классическому сайту и все работает через аякс само по себе.
ESP32, насколько я знаю, содержит закрытый код от производителя. Как его проверять?
Предложите реалистичный способ устранения наплевательского отношения.
Так сейчас тоже жертвы деньги переводят на счет, привязанный к паспорту. Все транзакции отслеживаются, везде камеры, но мошенники продолжают свое дело.
В случае с крипторублем, мошенник при получении средств сразу же купит на них, например, ювелирные украшения или макбук про и ничего вы уже не вернете.
Мошенничество никуда не исчезнет. Как сейчас люди переводят деньги на «защищенные счета» так и с цифровым рублем будут переводить, и, естестенно, никто их вам уже не вернет.
Статья очень интересная, но очень непонятная. Видимо, рассчитана не на новичков. Постоянно при чтении возникают вопросы:
У вас написано сначала, что «моноид» это набор функций, но дальше в определении вы пишете «[одна] бинарная операция». Противоречие.
Как можно в алгоритме заменить int на string и получить тот же алгоритм? 2 + 2 = 4, но "2" + "2" = "22". Было бы хорошо, если бы вы привели пример в статье.
Я не понимаю, что на этом графе является узлами и что обозначают ребра. Узлы - это типы (вроде Int, String), а ребра - функции, которые преобразуют их (вроде strlen(), которая преобразует String в Int)? А где тут тогда функции, принимающие несколько аргументов? Было бы хорошо, если бы вы объяснили, как строится такой граф и привели пример графа для простого алгоритма.
Я не вижу тут логики. Вот у нас есть тип String, мы из него можем получить Int (длина строки) и Bool (является ли строка пустой), тогда по вашей логике, String это «Int и Bool»? Очевидно же, что нет.
Здесь просто непонятно ничего. Что значит «связан с отображениями»? Что значит «из формулировки C через произведения». Слово «произведения», конечно, вызывает в памяти product types, но в статье до этого момента про них ни слова.
Что значит «универсальный представитель»? По какому критерию он «наилучший»? Что за свойство имеется в виду?
Я не понимаю, если у нас функция одна и единственная, то откуда взялись «все функции, связывающие эти типы»?
Что значит «соответствующая диаграмма»? Диаграмма всех типов и функций в программе? И зачем нужно условие про диаграмму, если у нас есть только одна функция, возвращающая значения типа? Где тут возьмутся «разные пути» (из определения коммутативности), если стрелка к этому типу только одна?
Вы бы привели пример из какого-нибудь известного языка, а то так непонятно, что это значит.
Я не очень понимаю, если у нас есть функции f и g, преобразующие A и B в D, то зачем нам тип A + B? Он выглядит как лишнее звено. И еще не понимаю, как будет выглядеть диаграмма, если A и B это один и тот же тип, например, Int.
У вас на диаграмме C вместо D...
Было бы неплохо объяснить с простыми примерами, что значит дуальность. Я встречал это слово в нескольких местах (например, в схемах логических элементов на CMOS-транзисторах), но тут это явно что-то другое.
А нельзя ли тут было привести простой пример с типами вроде Int? Пусть A это Int. Тогда B = A + A = A × 2 это структура из Int и, допустим, Bool, а по формуле A = B×B, получается Int = структура из 2 таких структур? Что-то в голове не укладывается.
Не понимаю, что хорошего в каррировании? В чем смысл представления функции из N аргументов в виде N функций от 1 аргумента? Только усложняется все, по моему. Также, непонятно, как с помощью каррирования можно представить функцию с необязательными аргументами или именованными аргументами.
Также, каррирование позволяет зафиксировать первый аргумент функции, но не позволяет зафиксировать последний:
val div = (a) => (b) => a/bval div10 = div(10) // Зафиксировали 1-й аргумент
var divBy2 = ??? // а как зафиксировать второй?
Нелогично, согласитесь?
Я бы заменил каррирование на фиксирование произвольных аргументов:
val div = (a, b) => a/bval divBy2 = div(?, 2)
Вот так гораздо удобнее и логичнее, чем с вашим каррированием.
В чем смысл использовать тип, у которого единственное значение? Не проще ли вообще ничего не передавать в функцию тогда?
Непонятно, как это интерпретировать. Структура из 2 полей, где первое имеет тип A, а второе?