Pull to refresh
@fukkitread⁠-⁠only

Практикующий экзорцист

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

Люди жалуются на то, что отказ от куки приводит к невозможности получения контента (заводят куки-воллы, по аналогии с пэй-воллами).
Одна из идей GDPR в том, что предоставление контента не может быть обусловлено обязательным разрешением на сбор персональной информации.
Тем, кто не понял — еще раз пояснили. Для совсем тупых — штрафы, да.

Гордость берёт за такое продвинутое регулирование. И если в некоторых вопросах евробюрократы не такие молодцы, то в отстаивании права личности перед цифровыми корпорациями — ну просто зайки.

Вижу на хабре комментарии ValdikSS не часто, но всегда компетентно и по делу.
Проникся уважением к человеку, не зная его лично.
«Нежелательное» видео — и баста. С последствиями. Не далеко ушли от наших позорников.

Майки тож не лыком шиты, Вы думали только гугол-зло??

На КДПВ бэкендер огораживает свой стройный и прекрасный мир от результатов обсуждения фронтами последнего спринта по переползанию с React на Vue.

(Не замечая, что его любимый тул ездит гусеницами по кривым рельсам)
Проверка на null даст значительно больше информации, чем проверка на typeof null.
Отдельно Вам доставит (скорее всего, проблем) попытка поработать с null как с объектом
a = {}.field     //undefined
b = null.field   //TypeError: null has no properties
c = null
d = c.field      //TypeError: c is null

Зря вы так. Вопрос правильный.

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

Проблема в том, что за каким-то чудом последовательности кодпоинтов стали изображать визуально слитно. И если в применении к алфавитным символам это (с большим скепсисом) еще можно принять за необходимость, то составные свистелки «эмоджи» — просто за гранью добра и зла.
Не хотели расширять формальную спецификацию UTF и для этого… барабанная дробь… расширили её, введя составные иероглифы.

Таким образом, реальный парсер UTF теперь в любом случае должен содержать дерево всех допустимых комбинаций в виде структуры или конечного автомата — уже не суть.
Локальные проблемы типа тех, что JS split() не использует правильный парсер, всего лишь следствие того бардака, что устроили с прекрасной кодировкой UTF любители слать картинки непременно негритянской руки текстом.
Простое правило счастливой жизни:
Не ходите в проекты/организации, где разработчикам требуется «typeof null»

Нервы с годового бонуса назад не откупишь.
Хреново знал английский, пока он был не особо нужен. Не комплексовал и был счастлив.
Когда от языка стало зависеть слишком многое, он как-то сам собою быстренько подтянулся до приемлемого уровня. Но не выше, ибо лень.
Никаких космических технологий в том OneHalf'е то и нет.
В своё время шуму он наделал скорее благодаря зловредности (втихую шифровал диск), чем какому-то супер полиморфизму.
Но для тех времен было прикольно, да. Похоронил Aidstest вместе с идеей простого сигнатурного сканера.
Dr.Web оказался молодцом, не только детектируя эту заразу в загрузочном секторе, но и при удачном стечении обстоятельств расшифровывая диск. Не помню, был ли их «эвристический анализ» частичным эмулятором или тупо строил дерево возможных переходов.
В те славные времена касперский имел штатную возможность для написания и подключения наколеночного плагина для детектирования и лечения вирусов, не известных лаборатории и не включенных в основную базу сканера.
в 1С запрещено изменять код, если поменяешь — посадят

Слишком хорошо, чтобы быть правдой.
С удовольствием посадил бы куда понадежнее одного чудо-франча, снявшего с поддержки спецконфу и накостылившего всякой хрени прям внутри стандартных форм.


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

Проблема в том, что, к сожалению, не все сумасшедшие пишут статеечки на хабр. Некоторых таки-сложно вычислить.
Просто разные парадигмы.
У них: «Вау! Ну и фрик! Круто! Спляши еще!» (пусть расцветают все уродские цветы)
У нас: «Ну и дебил! Кто ж так делает?! Убейся.» (делай правильно, будь как все (какими все хотели бы быть, но, разумеется, не всем дано))
Нуб, не делай так. Некоторые «хаки» могут соптимизировать тебя из конторы.
начинающие программисты далеко не всегда знают заранее и наперед, какой тип данных им понадобится через N строчек.

Этому они и должны учиться, если хотят стать инженерами, а не ремесленниками.

Разумеется, это очень субъективно.
Как человек, начавший с бэйсика, и перешедший к C через ассемблер, могу сказать, что прекрасно помню, как изучение С вызывало только положительные эмоции. Потому что было абсолютно понятно, какого ускорения и упрощения люди добились с его помощью.

Я считаю, что понимая низкоуровненвые вещи, значительно проще понять абстракции, выстроенные поверх них. Здесь есть принципиальная разница между «понять» и «использовать». Использовать — уровень технаря ПТУ (при всём уважении к золоторуким мастерам), понять — инженера конструктора.

У меня есть небольшой опыт обучения ребёнка (1шт.) программированию. Так вот, бэйсик и ассемблер мы, по очевидным причинам, пропустили а начали с основ устройства процессора и памяти компьютера, и С99. Не сказать, что начало было лёгким и простым. Зато, хорошенько поднатаскавшись кодить операции с основными структурами данных вручную, человек с радостью воспринял С++/ООП и его немалые удобства, затем поглядел на Java до уровня понимания, чем она отличается, чем уникальна и в чем основные подвохи, по моему совету углубился в JavaScript/Node.js (как основу сегодняшнего бизнес-веба), что-то там покрутил на Python (но в отсутствии реальных больших задач, я полагаю, не сильно больше поверхностного представления о нём получил).

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

У этого приложения в безопасности только дыра.
вот было у нас приложение которое показывает с какого оператора нам звонят или допустим КТО звонит (дергая свою базу)

Вы большими буквами предупреждали пользователей, что отправляете информацию о том, кто и когда ему звонил на свои сервера (и храните там её, в лучшем случае, в логах)?
Google убирает доступ к буферу обмена… В настоящее время все приложения могут получить доступ к буферу без специальных разрешений.

Сейчас бы решать Windows'95 проблемы в 2019 году.
Языки с явными типами проще для понимания начинающими, чем языки с неявными (и закулисными их преобразованиями по неочевидным правилам). Тип у переменной в рантайме есть всегда.

Иногда, чтобы понять где и какие углы можно безболезненно срезать, нужно разобраться в сущности и причинах расположения данных углов. После этого можно будет выбирать, когда резать, когда — нет.
Оракловские драйвера для .NET «Oracle.DataAccess.dll» это обертка над unmanaged DLL.

Как будто это что-то плохое
1
23 ...

Information

Rating
Does not participate
Registered
Activity