Geeks
8.15K subscribers
275 photos
19 videos
1.09K links
От гиков гикам!
Пишем о происходящем в информационных технологиях.

@shpaker и @qqalexqq
Download Telegram
Facebook получал медицинские данные людей, но виною тому стали скорее больницы, нежели сама компания. Как оказалось, среди 100 самых популярных медицинских больниц США на сайтах 33 из них размещался трекер Meta Pixel, который среди прочего записывает все данные, которые пользователи вводят. А на сайтах, обычно, нужно сразу выбрать причину обращения (например, аборт), ввести имя пациента и другие медицинские данные о нём - всё то, что является чувствительной информацией. Что ещё интересней, подобные трекеры встречались даже в личных кабинетах пациентов - всего в 7 из 100 случаев, но там вообще хранятся все истории обращений и подробная информация о лечении.

То, что топовые больницы не подумали об этих рисках внедряя метрики Meta, показывает как они плохо следят за своими данными. А Facebook, в свою очередь, годами (непреднамеренно?) использовал эти данные для таргетинга рекламы - это ужас, когда больница сама сливает всю информацию о твоих болезнях через браузер. Скорее всего в результате исследования медицинским организациям грозят иски за нарушение врачебной тайны, но данные обратно уже не вернуть. https://arstechnica.com/tech-policy/2022/06/facebook-is-receiving-sensitive-medical-information-from-hospital-websites/
👍7😱4
Forwarded from addmeto (Grigory Bakunov 🧪)
Телеграм отчитался о пересечении отметки в 700 миллионов пользователей (т.е. каждый 5ый пользователь интернета пользуется телеграммом, очень большая цифра), а так же наконец-то запустили Telegram Premium, подписку по $5 в месяц. Интересно, а вы будете подписываться на Премиум? Я точно это сделаю, но не ради фич, а чтобы поддержать команду которая столько лет обеспечивала мне бесперебойную (ну почти) связь.

https://techcrunch.com/2022/06/19/telegram-tops-700-million-users-launches-premium-tier/
10👍2😢2
GitHub Copilot вышел из беты и теперь доступен всем - на старте даётся два месяца бесплатного триала, а дальше продукт стоит 10$ в месяц или $100 в год. По оценкам Microsoft, пользователи Copilot пишут порядка 40% нового кода посредством этой нейросети, то есть почти половина процесса написания кода превращается в выбор из сгенерированных на лету вариантов. И в отличие от большинства других утилит у этой практически нет привязки к языку программирования - она обучалась на всей кодовой базе GitHub, а также учится на примерах кода, который уже есть в проекте.

Мне доступ к Copilot дали не так давно, но из того, что я видел - это конечно стоит своих денег. Единственная проблема сейчас в том, что официально поддерживаются только 4 редактора кода - Visual Studio, Jetbrains, VS Code и Noevim, но эта проблема наверняка будет решаться и сообществом в том числе. В остальном же кажется, что Microsoft совершили настоящий прорыв, особенно если сравнивать их продукт с немногочисленными конкурентами. https://techcrunch.com/2022/06/21/copilot-githubs-ai-powered-programming-assistant-is-now-generally-available/
5👍2😱2🔥1
Amazon показали своего первого полностью автономного робота для склада - он выглядит как робот-пылесос, но поднимает большие стеллажи-контейнеры и перевозит их с места на место, держа их на своей "спине". Роботы выглядят мило, ездят не быстро и рассчитаны на использование вместе с людьми на складе - они всё время светят диодом вперёд и останавливаются в случае если поблизости оказался человек. Также компания тестирует и другие системы вроде руки, которая сортирует посылки по стеллажам, или камеры, котораяе автоматически считывает штрих-код с коробки, которую сотрудник сейчас взял в руки.

Как ни странно, речи о замене людей на роботов пока в принципе не идет. У Amazon сейчас скорее есть проблема недостатка рабочих рук, потому что по внутренним прогнозам компания не сможет найти столько новых людей, сколько им нужно, уже к 2024 году. И поднятие эффективности труда через замену рутинных или опасных рабочих процессов на роботов выглядит как правильное решение. https://www.engadget.com/proteus-amazon-first-fully-autonomous-warehouse-robot-074341277.html
👍5
Яндекс анонсировал “Диагностику технических навыков для разработчиков” - аналог собеседования, но вместо оффера в первую очередь человек получает независимую оценку своих навыков. Идея тут в том, что часто в большие компании на собеседования приходят, чтобы попробовать себя и понять свой уровень. Но тут, в отличие от собеседования, вам дадут независимую оценку вашего уровня без необходимости смены работы. Также результаты диагностики можно будет, например, показать в другой компании, чтобы подтвердить оценку себя Яндексом документально. И кстати, Яндекс призывает и другие IT-компании присоединиться в разработке единой системы оценки разработчиков – так, по мнению компании, получится оптимизировать процесс приема на работу.

Проект экспериментальный, но в него уже приглашают всех желающих backend, UI/UX и мобильных разработчиков, а также аналитиков. Прохождение диагностики бесплатно и будет состоять из отборочного тестирования и двух онлайн-встреч, в ходе которых нужно будет решить несколько практических задач. Ну а если в течение полугода после прохождения диагностики кандидат все же захочет попасть в Яндекс, результат диагностики засчитается, поэтому останется пройти только финальное собеседование для знакомства с командой.
👍142🔥1😱1
Amazon запустил конкурента GitHub Copilot - у них он называется CodeWhisperer (шептун кода?) и в паре моментов обещает превзойти продукт от Microsoft. По сути детище Amazon очень похоже на Copilot - оно также генерирует несколько вариантов кода смотря на комментарий или сигнатуру функции и дополняет сами комментарии. Первым отличием является то, что когда генерируется код похожий на то, что уже есть в опенсорсе, то к нему добавляется комментарий о лицензии, чтобы программист сам решал, можно ли его использовать. А второе дополнение в CodeWhisperer - это проверка защищённости всего кода в проекте, то есть то, что у GitHub можно сделать только залив код на саму платформу.

Тайминг анонса у Amazon вышел идеальным - ровно когда Microsoft только анонсировал платную подписку на Copilot, то есть все начали думать, стоит ли за это платить, а тут вот вам и бесплатный аналог. То, что учли проблему с лицензиями тоже хорошо, потому что нет четкого понимания, что будет если Copilot, например, сгенерирует похожий на GPL код, а вы об этом и не знаете - хоть каждый кусок кода руками проверяй. В общем, на продукт надо будет смотреть, потому что у Microsoft пусть и самое большое количество публичных репозиториев для обучения нейронки, но никто не мешает использовать их же и сделать свою только лучше! https://techcrunch.com/2022/06/23/amazon-launches-codewhisperer-its-ai-pair-programming-tool/
👍16
Вышла версия safety 2.0.0 - достаточно популярного сканера зависимостей на предмет уязвимостей для проектов на python. Судя по ченджлогу релиз достаточно минорный, но стоит обратить внимание, что теперь по дефолту safety шлет телеметрию на сервера своего разработчика. Данные телеметрии относительно безобидные (версия ОС, интерпретатора и аргументы вызова), но сам факт того, что утилита по безопасности отсылает какие-то данные несколько смущает. Телеметрию можно отключить параметром командной строки.

Ченджлог https://github.com/pyupio/safety/blob/2.0.0/CHANGELOG.md
Если хочется глянуть на то, какие данные собираются https://github.com/pyupio/safety/blob/691651e2b14dd920d86b9e18eca330f5c651a6f1/safety/util.py#L235
👍5
Firefox научился убирать отслеживание пользователя через параметры адреса сайта - браузер удаляет основные трекеры вроде Facebook, Olytics и прочих. Делается это если вы включите "продвинутую защиту от трекинга" и тогда url многих сайтов станет короче, а трекерам будет сложнее понять по какой ссылке и когда вы кликнули, либо кто с вами ею поделился. К примеру, url данной статьи был в 4 раза длиннее пока я не убрал из него руками все трекинговые параметры, вот настолько их сейчас много!

В целом решение, как мне кажется, не самое очевидное, ведь названия параметров url штука совсем не уникальная и что-то может на сайтах и поломаться из-за такого "урезания" url. С другой стороны мы уже дошли до стадии, когда поломка некоторых сайтов - это меньшее зло, нежели постоянный контроль за всей активностью со стороны рекламных гигантов. Благо если что-то не работает, то можно отключить или уменьшить защиту от трекинга буквально парой кликов. А Firefox, который сделал свою ставку на защиту приватности - однозначные молодцы. https://www.engadget.com/firefox-can-now-automatically-remove-tracking-from-ur-ls-115228742.html
👍19
История с TikTok в США продолжается - глава федеральной комиссии по связи США обратился в Apple и Google, чтобы те удалили приложение из своих магазинов. По данным расследований оно собирает уйму чувствительной информации о пользователях и все эти данные передаются в Китай, где, по закону, доступны правительству поднебесной. В TikTok в свою очередь утверждают, что начали миграцию серверов в Oracle Cloud и собираются нанять отдельный менеджмент для своей американской компании, которая должна будет работать отдельно от Китая. Что интересно, все эти действия озвучиваются не впервые - это уже было сказано во времена Трампа (2020 год) и тогда всё закончилось тем, что компания отстояла нахождение в магазинах приложений через суд. https://techcrunch.com/2022/06/28/fcc-commissioner-writes-to-apple-and-google-about-removing-tiktok/
👍3
Станьте Android-разработчиком и создайте своё первое приложение!

На курсе от Skillbox «Профессия Android-разработчик» ➡️ https://clc.to/GKva-A вы освоите востребованные навыки и соберёте портфолио из пяти приложений. Сможете работать в компании, агентстве или брать заказы на фрилансе.

Опытные кураторы помогут вам стать специалистом, а карьерный отдел поможет с трудоустройством.

Не упустите возможность начать карьеру в одной из самых востребованных IT-профессий!
Оффер для бэкенд-разработчиков уже в пути 🚨

30-31 июля Яндекс проводит Weekend Offer — мероприятие, на котором вы сможете получить оффер в Яндекс за два дня.

У вас есть опыт коммерческой разработки от 3-х лет на Java / C++ / Python? Отлично! Регистрируйтесь на сайте, решайте задачи отборочного этапа и 30 июля участвуйте в онлайн-секциях — на них вам предложат несколько задач, в зависимости от вашего опыта.

Если все пройдет хорошо, уже 31 июля вы получите оффер и сможете присоединиться к одной из команд Яндекса.

Задачи предварительного этапа доступны до 23:59 27 июля, а материалы для подготовки вы сможете найти 👉здесь
👍1
Один из крупных стартапов в США по аренде электросамокатов и электровелосипедов Bolt Mobility (названный в честь сооснователя Усейна Болта) закрыл своё присутствие как минимум в пяти городах, а возможно даже полностью закрывается. Причём интересно, насколько внезапно можно прекратить бизнес с внушительным имуществом и штатом сотрудников. В начале июля компания ещё полностью функционировала и никто не сообщал о каких-то проблемах, а к концу месяца городские власти уже не могут связаться с кем-либо в компании, включая CEO.

На email и в поддержке никто не отвечает, но в некоторых городах остались представители, которые утверждают, что деятельность не прекращается. В городах в спешке были оставлены сотни, если не тысячи самокатов с пустыми аккумуляторами, а также другое оборудование. В каком формате и будет ли работать компания в будущем - загадка, но то, как стартап может в одночасье испариться - впечатляет. https://techcrunch.com/2022/07/31/bolt-mobility-has-vanished-leaving-e-bikes-unanswered-calls-behind-in-several-us-cities/
👍4😱4
Генерилка аватарок на коленке аля GitHub в двух частях

Года полтора назад написал этот материал и сегодня его случайно нашел. Видимо думал на Хабр запостить, но в итоге показалось, что проект вышел слишком простым :)

Вместо предисловия

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

А так как я использую GitHub, то сразу в голову прилетела идея приватизировать идею простой генерации аватарок. Рассмотрев аватарку можно заметить, что условно она делится на четыре части:

- Левый блок шириной 2 точки слева
- Центральный блок в одну точку шириной
- И блок справа, который зеркалит тот самый первый блок шириной в две точки
- Рамка вокруг блоков шириной в половину точки

PS: Тем кому лень читать получите GitHub https://github.com/shpaker/tiny-userpic

PPS: писалось все за пару часов и я не особо заморачивался за красивый и оптимальное код :)
5
Часть первая

Подготовительные работы

Итак, первое, что делаем - пишем функцию, которая (внезапно) отдаёт нам случайное булевое значение:

from random import random

def random_bool() -> bool:
return random() < 0.5

Пожалуй, на этой славной ноте и закончим подготовительные работы. Булево значение для нас будет индикатором того, закрашена ли точка на изображении или все-таки нет.

Генерация необходимых данных

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

def generate_row(
cells_count: int,
) -> List[bool]:
return [random_bool() for _ in range(cells_count)]


Не то чтоб я каждую строку кода хочу выносить в отдельную функцию, но пока мне так больше нравится. Итак, шажок номер три, чтоб немного приблизиться к величию GitHub, нам необходимо генерировать три блока с данными, а затем склеивать их. Очевидно, что мы можем написать функцию, которая будет принимать целочисленное количество рядов в сетке значений и количество точек в этих рядах. Будем ожидать, что данная функция нам будет отдавать список из списков булевых значений:

def generate_block(
width: int,
height: int,
) -> List[List[bool]]:
return [generate_row(width) for _ in range(height)]


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

И вот, свет увидела еще одна функция в одну строчку:

def reverse_block(
block: List[List[bool]],
) -> List[List[bool]]:
return [list(reversed(i)) for i in block]


Теперь мы можем сгенерировать все три части изображения. Вот приблизительно как-то так:

left = generate_block(width=cells_count // 2, height=cells_count)
spacer = generate_block(width=cells_count % 2, height=cells_count)
right = reverse_block(left)


Очевидно, что нам надо как-то их соединить, и для этого мы напишем вот такую функцию:

def concatenate_blocks(
left: List[List[bool]],
spacer: List[List[bool]],
right: List[List[bool]],
) -> List[List[bool]]:
result = list()
for i, left_row in enumerate(left):
right_row = right[i]
spacer_row = spacer[i]
line = [*left_row, *spacer_row, *right_row]
result.append(line)
return result


И вуаля!

def generate_data(
cells_count: int = 5,
) -> List[List[bool]]:
left = generate_block(width=cells_count // 2, height=cells_count)
spacer = generate_block(width=cells_count % 2, height=cells_count)
right = reverse_block(left)
return concatenate_blocks(left, spacer, right)


Можно запустить данную функцию и вывести результат каким-то таким образом:

>>> from pprint import pprint
>>> data = generate_data()
>>> pprint(data)
[[False, True, True, True, False],
[False, True, False, True, False],
[False, True, True, True, False],
[False, True, True, True, False],
[True, False, False, False, True]]


Запускаем и любуемся на полученный результат из пяти списков. Во время просмотра результата работы скрипта задумываемся над тем, что нам нужна была картинка, а не вот это вот все, что есть на экране, и продолжаем писать код.

Пока, в сугубо отладочных целях, напишем страшенную функцию для быстрой визуализации такого списка, один раз её прогоним и забудем её как страшный сон:

>>> def data_to_str(data: List[List[bool]]) -> str:
>>> return "\\n".join(list("".join(list(map(lambda x: "#" if x else " ", row))) for row in data))
>>> print(data)
###
# #
###
###
# #
👍6🤡1
Часть 2

Генерация векторного изображения

Самый простой способ вывести изображение, состоящее из примитивов, это ручками слепить данные для SVG, и сохранить их в файл. SVG представляет из себя обычный XML. Я быстро сделал Jinja2-шаблон и циклом в нем нарисовал необходимые прямоугольники. Потом почесал затылок и решил, что Jinja2 всё таки пакет сторонний, а хочется свести количество зависимостей к нулю (спойлер: у меня так не выйдет).

Заглянем в будущее и рассмотрим фрагмент XML-файла, который у нас должен получиться:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="<http://www.w3.org/2000/svg>" viewBox="0, 0, 64, 64">
<rect x="0" y="0" width="64" height="64" style="fill:#933" />
<rect x="32" y="0" width="32" height="64" style="fill:#393" />
</svg>



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

Итак, даже тщательно не вглядываясь в XML можно приметить, что условно данные можно разделить на две части:

- Основной блок в котором мы задаем размер области видимости. То есть главный прямоугольник в который и будет вписана аватарка. И в этот блок мы вписываем сгенерированные прямоугольники. Зададим значение вот такой чудесной строкой:

SVG_WRAPPER = """<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg xmlns="<http://www.w3.org/2000/svg>" viewBox="0, 0, {width}, {height}">
{rects}
</svg>
"""


- И множество блоков прямоугольников, которые будут генерироваться из вот такой строки:

SVG_RECT_TAG = '<rect x="{x}" y="{y}" width="{width}" height="{height}" style="fill:{color}" />

Для получения готовых к использованию фрагментов XML будем использовать format для подмены значений в строках. И теперь мы можем написать функцию для создания svg-тега прямоугольника:

def make_svg_cell(
x: int,
y: int,
offset: int,
size: int,
color: Optional[str],
) -> str:
return SVG_RECT_TAG.format(
x=x*size+offset,
y=y*size+offset,
size=size,
color=color,
)


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

def make_svg_data(
data: List[List[bool]],
cell_size: int,
offset: int,
first_color: Optional[str],
second_color: Optional[str],
) -> str:
box_size = len(data) * cell_size + 2 * offset
box = make_svg_cell(
x=0,
y=0,
offset=0,
size=box_size,
color=first_color,
)
rects: List[str] = [box]
for y, row in enumerate(data):
for x, cell in enumerate(row):
if not cell:
continue
rect = make_svg_cell(
x=x,
y=y,
offset=offset,
size=cell_size,
color=second_color,
)
rects.append(rect)
svg_xml = SVG_WRAPPER.format(
rects="\\n".join(rects),
size=box_size,
color=first_color,
)
return svg_xml



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

data = generate_data()
svg = make_svg_data(data, cell_size=16, offset=8, first_color="#fff", second_color="#f6f")
with open("test.svg", "w") as file:
file.write(data)

Теперь можно открыть файл и полюбоваться на сгенеренное. Если хочется растровое изображение, то самый простой способ его получить - конвертнув его из SVG (на pypi можно найти пакет CairoSVG, но в системе должна стоять либа cairo).
👍91😢1
Baidu получила первое разрешение в Китае на полноценный запуск такси без водителя и сразу в двух городах. Из ограничений: работать им можно только днём, на территории 13 квадратных километров в Ухане и 30 квадратных километрах в Чунцине. Учитывая, что города довольно крупные (там живёт больше 20 миллионов жителей), тест должен получиться масштабным, а в случае успеха должны будут добавляться и новые территории.

В компании со своей стороны заверяют, что их роботакси максимально безопасны - всё железо в бортовых системах дублировано, есть возможность удалённого управления машиной, а автопилот настроен таким образом, чтобы минимизировать любые риски аварий. Учитывая, что Baidu также тестирует свои роботакси и в США, с разрешением работы в Китае они становятся очень значительным игроком на этом рынке. https://www.engadget.com/baids-robotaxi-safety-driver-china-autonomous-self-driving-020024214.html
👍6🔥1
Яндекс запустил технологию перевода прямых трансляций на YouTube в открытое бета-тестирование.

Нейросети обрабатывают потоковое видео с небольшой задержкой и озвучивают спикеров сразу по-русски. Так как технология еще обкатывается, то можно её попробовать на некоторых YouTube-каналах (например, здесь). Работает все через пк версию браузера Яндекса.

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

За потоковый перевод в браузере Яндекса отвечают пять нейросетей. Первая распознает речь и переводит ее в текст, вторая по биометрии определяет, кто говорит – мужчина или женщина. Третья – нарезает расставляет в тексте знаки препинания и нарезает его на смысловые фрагменты, чтобы отдать их на вход четвертой нейросети, которая отвечает за перевод. Пятая – синтезирует озвучку на русском языке. Если хотите подробнее, читайте пост на хабре.

Пока технология еще тестируется на YouTube-стримах, но команда Яндекс браузера планирует запустить ее и на Twitch.
🔥6👍2😢1
В последнее время стараюсь пробегать статанализаторами по файлам всех форматов в репозитории. На локальном хосте проверки осуществляю pre-commit’ом, а не локально - GitLab’ом. И каждый раз радуюсь как дитя, встречая в новостных лентах упоминания о новых линтерах. Сегодня утром прочитал об утилите checkmake для проверки Make-файлов. В описании репозитория указано, что инструмент “эксперементальный”, ну и даже без этой подписи складывается впечатление, что инструмент очень свежий, и еще не достаточно обкатан в боевых условиях. Но уже выглядит достаточно интересно. Поставил звёздочку и буду смотреть, на дальнейшую судьбу этого маленького проекта.

Шах и мат, мейк-файлы https://github.com/mrtazz/checkmake
👍7
Всё больше пользователей стримингов отписываются от них в течение нескольких месяцев после первоначальной подписки. Так, по статистике, 19% людей за последние два года отписались от трех и более крупных сервисов просмотра видео (а их всего пять), а раньше этот показатель был всего 6%. Конечно, нужно учитывать, что стримингов стало больше - двумя годами ранее их было не пять, а три и теперь люди часто следуют логике: "сегодня сериал досмотрю, а завтра переподпишусь на другой сервис". Но то, что подписка на сервис стала вещью непостоянной, вселяет всё меньше уверенности компаниям в том, что надо вкладывать большие деньги в свои проекты - тот же Netflix уже говорил, что будет больше вкладываться в кино со скромными бюджетами.

Как один из факторов отписок нужно учитывать и цены на стримингах - большинство из них стали брать больше денег, отменили льготные тарифы, а контента не стало в разы больше. Также окончание пандемии ознаменовалось тем, что снова можно ходить в кинотеатры, да и вообще выходить из дома - не нужно искать чем занять время сидя дома. Интересно, как будет с подписками на программы, ведь раньше предрекали, что именно за счёт ежемесячной оплаты разработчики смогут продолжать развивать выпущенный софт и он будет стабильно приносить им деньги. Не получится ли тут как со стримингами и после подписки на десяток программ люди начнут брать их на пару месяцев, а дальше массово отписываться? https://www.wsj.com/articles/streaming-services-deal-with-growing-number-of-subscribers-who-watch-cancel-and-go-11660557601
👍10
Шведский игровой издатель Embracer Group купил Middle-Earth Enterprises, которой принадлежат права на всю историю Властелина колец, Хоббита и всего, что связано с этой франшизой. Компания тут же заявила, что намерена снимать фильмы о героях вселенной, вроде Гэндальфа, Арагорна, Голлума и других. До этого Embracer выпускала только настольные игры по Властелину Колец и пока чётких планов именно об играх не прозвучало, зато известно, что будет выпущено ещё больше мерча для фанатов (как будто его нехватало).

Embracer Group за последние пару лет получили кучу инвестиций, на которые скупали крупные и мелкие компании на рынке видеоигр, причём от создателей сплошных AAA-проектов до разработчиков казуальных игр, и всё время заявляют о грядущих приобретениях. Насколько известно от разработчиков, этот издатель обычно не вмешивается в процесс создания игр и лишь контролирует происходящее, давая все необходимые средства для деятельности. Будем надеяться, что и с Властелином колец у них выйдет лучше, чем у Диснея с покупкой Звёздных Войн. https://arstechnica.com/gaming/2022/08/embracer-acquires-rights-to-tolkien-related-ip-teases-new-lotr-films/
😁4👍2💔21