К предыдущей новости, консоль называлась Atari 2600. Характеристики: одноядерный 8-bit cpu на 1.19Mhz (MOS 6507, 56 инструкций), 128 байт (не килобайт) памяти. Сам код игр находился в ROM-картриджах, как и на уже более "современных" приставках.
Кроме успехов в шахматах, благодаря именно этой модели мир познакомился с Pacman.
Кроме успехов в шахматах, благодаря именно этой модели мир познакомился с Pacman.
🔥20👍6😁1
Борьба с лайфтаймами головного мозга. Когда авторы крейтов в своем API разрешают загнать borrowed и только исключительно borrowed, а у вас начинаются большие проблемы (привет sqlx в первую очередь). Disclaimer: делать только в самом крайнем случае.
Если функция создает value динамически (например через внешнее API), при попытке загнать его в такой крейт-API, получаем ошибку "returns a value referencing data owned by the current function". Растовский borrow-checker не умеет сам разбираться с подобным и вернуть оба значения мы не можем. Тем более API получает указатель на стек, а стек заканчивается вместе с функцией. Решение в любом системном ЯП - загнать данные в кучу.
Итак, у вас есть некоторое крейт-API, которое внутри выглядит так:
И вот это с ним конечно работать не будет
Тут нам поможет Box::leak, который позволяет "забыть" данные в куче, или по растовской семантике сделать их static:
Если ваша программа вызывает метод "create" предсказуемое количество раз - на этом можно остановиться. Но если процесс динамический, придётся самим дропнуть память на куче, когда данные уже не нужны. Для этого создадим враппер-структуру и будем возвращать данные в ней:
Не забываем освободить память на куче в дестракторе.
Авторам же таких API предлагаю открыть для себя COW.
Если функция создает value динамически (например через внешнее API), при попытке загнать его в такой крейт-API, получаем ошибку "returns a value referencing data owned by the current function". Растовский borrow-checker не умеет сам разбираться с подобным и вернуть оба значения мы не можем. Тем более API получает указатель на стек, а стек заканчивается вместе с функцией. Решение в любом системном ЯП - загнать данные в кучу.
Итак, у вас есть некоторое крейт-API, которое внутри выглядит так:
mod shitapi {
pub struct Shit<'a> {
greeting: &'a str,
}
impl<'a> Shit<'a> {
pub fn new(greeting: &'a str) -> Self {
Self { greeting }
}
}
}
И вот это с ним конечно работать не будет
fn create(name: &str) -> shitapi::Shit<'_> {
let greeting = format!("hello {name}");
shitapi::Shit::new(&greeting)
}
Тут нам поможет Box::leak, который позволяет "забыть" данные в куче, или по растовской семантике сделать их static:
fn create(name: &str) -> shitapi::Shit<'static> {
let greeting: &'static str = Box::leak(Box::new(format!("hello {name}")));
shitapi::Shit::new(&greeting)
}
Если ваша программа вызывает метод "create" предсказуемое количество раз - на этом можно остановиться. Но если процесс динамический, придётся самим дропнуть память на куче, когда данные уже не нужны. Для этого создадим враппер-структуру и будем возвращать данные в ней:
struct ShitWrapper {
shit: shitapi::Shit<'static>,
source_s: &'static str,
}
fn create(name: &str) -> ShitWrapper {
let greeting: &'static str = Box::leak(Box::new(format!("hello {name}")));
ShitWrapper {
shit: shitapi::Shit::new(&greeting),
source_s: greeting,
}
}
Не забываем освободить память на куче в дестракторе.
impl Drop for ShitWrapper {
fn drop(&mut self) {
let _ = unsafe { Box::from_raw(self.source_s as *const str as *mut str) };
}
}
Авторам же таких API предлагаю открыть для себя COW.
👍28💩13😁6
This media is not supported in your browser
VIEW IN TELEGRAM
Это я, сижу жду когда ИИ меня наконец заменит на работе
😁85👍10🔥3💩1
В этом году не нравится ни один андроид, а телефон менять пора. Рискуя жизнью, заказал себе ипхоне 16, после недельного теста 14го. Спустя 15 лет назад на iOS.
О мучениях буду докладывать регулярно (написано с ипхоне, злился, плакал).
О мучениях буду докладывать регулярно (написано с ипхоне, злился, плакал).
😁43👍9💩7🔥1
На инструктаже у безопасников
- представьте, что вам звонят мошенники и просят...
- то что мне звонят я представил, но не могу представить, что я взял трубку
- представьте, что вам звонят мошенники и просят...
- то что мне звонят я представил, но не могу представить, что я взял трубку
😁69👍9🔥2
Начинаю жаловаться писать про свой ипхоне, сегодня немного обозрим безопасность
- iCloud. 10$ за 2TB и нормально работающую end-to-end encryption - это круто. Из минусов - всё, что юзает веб-апи (rclone etc, включая и эппловскую уеб-морду) - отвалится. Насколько это секьюрно и что именно не шифруется собственным ключем (не забудьте его сгенерить), можно прочитать тут. Насколько реально инженеры Apple не имеют доступа к вашим данным в серьезных делах - вопрос интересный, но по крайней мере в локальном сервис-центре облако без ключа уже не восстановить.
- Буфер обмена (clipboard). Большой минус андроида - буфер это колхоз, флаг данных IS_SENSITIVE - скорее издевательство, чем польза. На мобильном устройстве куча приложений, многие из которых могут быть враждебно настроенными, это на десктопе TikTok это сайт и достаточно доверять безопасности браузера, а на мобильнике оно легко полезет в буфер обмена само. На iOS вставка подтверждается и это хорошо.
- BFU/AFU. К сожалению, современный ифон (как и андроид) нельзя быстро выключить при ограблении/обыске, даже если он у вас в руках, но vol down + side переводит телефон в состояние слегка похожее на BFU - уже отлично.
- Zerotier. Для доступа к рабочим ресурсам иногда приходится использовать ZT (сервер их SaaS, клиент - официальный). Могу сказать, что переподключается оно при смене интернета отвратительно, до десятков минут в зависимости от фазы луны, причем ZT админка показывает что устройство подключилось, но пинги не ходят. Косяк это ZT или iOS - комментировать не могу.
- iCloud. 10$ за 2TB и нормально работающую end-to-end encryption - это круто. Из минусов - всё, что юзает веб-апи (rclone etc, включая и эппловскую уеб-морду) - отвалится. Насколько это секьюрно и что именно не шифруется собственным ключем (не забудьте его сгенерить), можно прочитать тут. Насколько реально инженеры Apple не имеют доступа к вашим данным в серьезных делах - вопрос интересный, но по крайней мере в локальном сервис-центре облако без ключа уже не восстановить.
- Буфер обмена (clipboard). Большой минус андроида - буфер это колхоз, флаг данных IS_SENSITIVE - скорее издевательство, чем польза. На мобильном устройстве куча приложений, многие из которых могут быть враждебно настроенными, это на десктопе TikTok это сайт и достаточно доверять безопасности браузера, а на мобильнике оно легко полезет в буфер обмена само. На iOS вставка подтверждается и это хорошо.
- BFU/AFU. К сожалению, современный ифон (как и андроид) нельзя быстро выключить при ограблении/обыске, даже если он у вас в руках, но vol down + side переводит телефон в состояние слегка похожее на BFU - уже отлично.
- Zerotier. Для доступа к рабочим ресурсам иногда приходится использовать ZT (сервер их SaaS, клиент - официальный). Могу сказать, что переподключается оно при смене интернета отвратительно, до десятков минут в зависимости от фазы луны, причем ZT админка показывает что устройство подключилось, но пинги не ходят. Косяк это ZT или iOS - комментировать не могу.
👍10
Я себе наконец eSIM активировал. Просто потому что захотел. Но на практике eSIM - немного жопа полная.
Представьте себе ситуацию, вы в поездке сломали/утопили/раздолбали телефон. Раньше можно было купить новый и переставить симку. Теперь надо зайти на страницу опсоса и получить новый eSIM. Но нюанс в том, что для того чтобы зайти на страницу опсоса надо набрать логин, пароль и код из СМС, а код вы не получите, потому что у вас eSIM нету.
Вопрос в студию. Существуют вообще в мире опсосы, у которых двухфактор через TOTP, почту или что угодно еще? Или все до сих пор уверены, что мобильный номер - пуп земли и вершина безопасности?
Представьте себе ситуацию, вы в поездке сломали/утопили/раздолбали телефон. Раньше можно было купить новый и переставить симку. Теперь надо зайти на страницу опсоса и получить новый eSIM. Но нюанс в том, что для того чтобы зайти на страницу опсоса надо набрать логин, пароль и код из СМС, а код вы не получите, потому что у вас eSIM нету.
Вопрос в студию. Существуют вообще в мире опсосы, у которых двухфактор через TOTP, почту или что угодно еще? Или все до сих пор уверены, что мобильный номер - пуп земли и вершина безопасности?
👍21😁11🔥6💩1
Как-то пропустил эту прекрасную новость. Пока по вохе регулярно пытаются создать компьютерно-игровой бестселлер, Близзарды - наоборот, решили завоевать настолки.
Выход настольного StarCraft анонсирован на 2026й (см. https://starcraft-tmg.com/), а в 2027 обещают уже целое семейство игр, чтобы значит,правильно, опять несли деньги.
Может и понесем. Всегда хочется поиметь оригинальную Сару Керриган до и после.
Выход настольного StarCraft анонсирован на 2026й (см. https://starcraft-tmg.com/), а в 2027 обещают уже целое семейство игр, чтобы значит,правильно, опять несли деньги.
Может и понесем. Всегда хочется поиметь оригинальную Сару Керриган до и после.
🔥10👍5
Никогда не было и вот опять. В этот раз взломали пакеты qix. Скомпроментированные версии уже отозваны.
Жявоскриптеры что-то жалобно кричат про "атаку тысячелетия".
Жявоскриптеры что-то жалобно кричат про "атаку тысячелетия".
😁16💩3👍1🔥1
"Кризис в IT-отрасли. Отправил 1000 резюме и не получил ни одного ответа". Тем временем, на другой стороне...
Я - совладелец и CTO IT-компании. По традиции читаю наш публичный ящик, на которые валят такие резюме. От некоторых по 2-3 раза одно и то же в течение дня. За 20 лет нашей работы таким образом мы наняли 1 (одного) человека. Просто так сошлись звезды - и стек был подходящий, и как раз вакансия более-менее открытая, и резюме интересное (я читаю).
Иногда приходит какой-то треш.
"Я - PHP-девелопер, давайте вместе делать сайты". Мы уже лет 15 не делаем сайты.
"Я - Rust-девелопер, но из Уганды". Сложно Уганду вписать в команду.
"95 лет опыта в макдаке, решил стать программистом". Отличное решение, но нет.
Где-то половина резюме вполне нормальные. Но:
- Это публичный ящик для связи потенциальными с клиентами, на который мы в принципе не принимаем вакансии. Для вакансий есть отдельные объявления.
- Даже в мега-корпорациях бывают периоды, когда никого не нанимают. Средние-мелкие компании же вообще обычно не нанимают никого сверх штата "просто так", вакансии открываются только в период расширения или если кто-то внезапно решил уволиться.
- Если резюме придет больше одного раза в течение недели - скорее всего отправитель будет заблокирован.
- Некоторый процент резюме автоматически валит в спам (вопросы к гуглу).
- По e-mail в 2025 году искать вакансии - это кринж, примерно как знакомиться на улице. Для этого есть соцсети, бложики и тусовки. У того, кто напишет issue на гитхабе или в личку на реддите, шансов гораздо больше. Но это же сложно. Лучше купить за 1$ список из 1000 ящиков, разослать спам и ныть.
Я - совладелец и CTO IT-компании. По традиции читаю наш публичный ящик, на которые валят такие резюме. От некоторых по 2-3 раза одно и то же в течение дня. За 20 лет нашей работы таким образом мы наняли 1 (одного) человека. Просто так сошлись звезды - и стек был подходящий, и как раз вакансия более-менее открытая, и резюме интересное (я читаю).
Иногда приходит какой-то треш.
"Я - PHP-девелопер, давайте вместе делать сайты". Мы уже лет 15 не делаем сайты.
"Я - Rust-девелопер, но из Уганды". Сложно Уганду вписать в команду.
"95 лет опыта в макдаке, решил стать программистом". Отличное решение, но нет.
Где-то половина резюме вполне нормальные. Но:
- Это публичный ящик для связи потенциальными с клиентами, на который мы в принципе не принимаем вакансии. Для вакансий есть отдельные объявления.
- Даже в мега-корпорациях бывают периоды, когда никого не нанимают. Средние-мелкие компании же вообще обычно не нанимают никого сверх штата "просто так", вакансии открываются только в период расширения или если кто-то внезапно решил уволиться.
- Если резюме придет больше одного раза в течение недели - скорее всего отправитель будет заблокирован.
- Некоторый процент резюме автоматически валит в спам (вопросы к гуглу).
- По e-mail в 2025 году искать вакансии - это кринж, примерно как знакомиться на улице. Для этого есть соцсети, бложики и тусовки. У того, кто напишет issue на гитхабе или в личку на реддите, шансов гораздо больше. Но это же сложно. Лучше купить за 1$ список из 1000 ящиков, разослать спам и ныть.
👍14😁11💩11
Состояние Ларри Эллисона сегодня составило 393 миллиарда долларов, что позволило ему обогнать Илона Маска на пьедестале.
Корпоративные кровосиси наносят ответный удар. А вы любите Орокле?
Корпоративные кровосиси наносят ответный удар. А вы любите Орокле?
😁13💩7👍3
Куда я немного пропадал. Пару месяцев игрался в Last war survival (примерно тот же движок Last Z и подобные), изучал так сказать современные гейм-тренды. Что могу отметить.
Игры очень сильно затягивают, так как на телефоне можно играть 24/7. Движок конечно сам подбивает играть круглые сутки, позволяя заработать больше бонусов, если заходить каждые 3-4 часа и делать определенные действия. Оно кстати неплохо, когда например болеешь и спишь рывками, но в нормальном состоянии народ быстро устает.
p2w (игроки которые платят) закидывают какие-то совершенно нереальные суммы и с ними в принципе нереально конкурировать. Если на первых серверах Last war можно было тянуть в топ-100 за 30$ в месяц, на моем ценник уже был 100-200, а на новых серверах народ спускает 4-5 сотен только на старте. Топы спускают в месяц десятки тысяч.
Купить можно просто всё. В результате народ совершенно разучился играть и не вникает в механику. Для теста сделал новый аккаунт и вошел за пару дней в топ10 на новом сервере, у соклановцев было сумасшедшее удивление, что я потратил 3$, просто зная куда закидывать, а куда обойдутся. Они, естественно, уже вкинули по паре сотен.
Всё это рано или поздно сводится к пьедесталу "кто больше заплатит тот и выше" и является неплохим цифровым аналогом ролексов, поршей и прочих предметов выделения на публике. На всех серверах присутствуют дамы, которые восхищаются теми, кто в топе, вплоть до рандеву оффлайн. Высшие приматы остаются приматами.
Из позитивного следует отметить регулярные новые фичи, полное отсутствие багов-лагов и масштабные динамические бои сотни на сотни в реальном времени. При таких бюджетах - неудивительно. Со времен первого Травиана далеко шагнули вперед.
Основной контингент - 40+. В принципе весьма веселое времяпровождение, если вы богатый пенсионер. А я пока, пожалуй, вернусь в свою любимую Контру.
Игры очень сильно затягивают, так как на телефоне можно играть 24/7. Движок конечно сам подбивает играть круглые сутки, позволяя заработать больше бонусов, если заходить каждые 3-4 часа и делать определенные действия. Оно кстати неплохо, когда например болеешь и спишь рывками, но в нормальном состоянии народ быстро устает.
p2w (игроки которые платят) закидывают какие-то совершенно нереальные суммы и с ними в принципе нереально конкурировать. Если на первых серверах Last war можно было тянуть в топ-100 за 30$ в месяц, на моем ценник уже был 100-200, а на новых серверах народ спускает 4-5 сотен только на старте. Топы спускают в месяц десятки тысяч.
Купить можно просто всё. В результате народ совершенно разучился играть и не вникает в механику. Для теста сделал новый аккаунт и вошел за пару дней в топ10 на новом сервере, у соклановцев было сумасшедшее удивление, что я потратил 3$, просто зная куда закидывать, а куда обойдутся. Они, естественно, уже вкинули по паре сотен.
Всё это рано или поздно сводится к пьедесталу "кто больше заплатит тот и выше" и является неплохим цифровым аналогом ролексов, поршей и прочих предметов выделения на публике. На всех серверах присутствуют дамы, которые восхищаются теми, кто в топе, вплоть до рандеву оффлайн. Высшие приматы остаются приматами.
Из позитивного следует отметить регулярные новые фичи, полное отсутствие багов-лагов и масштабные динамические бои сотни на сотни в реальном времени. При таких бюджетах - неудивительно. Со времен первого Травиана далеко шагнули вперед.
Основной контингент - 40+. В принципе весьма веселое времяпровождение, если вы богатый пенсионер. А я пока, пожалуй, вернусь в свою любимую Контру.
😁22👍11