Обложка канала

Типа про IT. Страница 3

1563 @tipaproit

Типа про IT и вот это вот всё — full stack development и современные инструменты, подборки и рекомендации, интересные находки и практические советы. Профессиональный авторский контент.

  • Типа про IT

    🤖 Сегодня задачка простая, но очень популярная на собеседованиях. Дано бинарное дерево, нужно найти все его пути от головы до пят. Например:
       1
      / \
     2   3
        / \
       4   5
    
    Решением будет матрица вида [[1, 2], [1, 3, 4], [1, 3, 5]]. Неважно как именно это будет реализовано, лишь бы работало. #алкоритмы
  • Типа про IT

    Kubernetes: The Documentary [PART 1]

    The official Kubernetes Documentary Part 1. Inspired by the open source success of Docker in 2013 and seeing the need for innovation in the area of large-scale cloud computing, a handful of forward-thinking Google engineers set to work on the container orchestrator that would come to be known as Kubernetes– this new tool would forever change the way the internet is built. These engineers overcome technical challenges, resistance to open source from within, naysayers, and intense competition from other big players in the industry. Most engineers know about “The Container Orchestrator Wars’’ but most people would not be able to explain exactly what happened, and why it was Kubernetes that ultimately came out on top. There is no topic more relevant to the current open source landscape. This film captures the story directly from the people who lived it, featuring interviews with prominent engineers from Google, Red Hat, Twitter and others. Kubernetes exists as a testament to the power of open source software. Check out the home for untold developer stories around open source, careers and all the other cool stuff developers are doing at cult.honeypot.io. Honeypot is a developer-focused job platform, on a mission to get developers great jobs. Wanna see what we're all about? Visit honeypot.io to find a job you love. To learn more about Honeypot: http://www.honeypot.io/?utm_source=youtube Follow us: Twitter: https://twitter.com/honeypotio Facebook: https://www.facebook.com/Honeypotio/ LinkedIn: https://www.linkedin.com/company/10210811/ Instagram: https://www.instagram.com/honeypot.cult/

    YouTube
  • Типа про IT

    🤖 Новая задача вам, со звёздочкой. Предположим, имеется X гетеросексуальных мужчин и X гетеросексуальных женщин. Как у мужчин, так и у женщин есть свой личный “краш-рейтинг”, отсортированный в порядке предпочтения, от большего к меньшему. Нам нужно их всех успешно переженить таким образом, чтобы создать устойчивые пары. Например:
    guy_preferences = {
        'andrew': ['caroline', 'abigail', 'betty'],
        'bill': ['caroline', 'betty', 'abigail'],
        'chester': ['betty', 'caroline', 'abigail'],
    }
    
    gal_preferences = {
        'abigail': ['andrew', 'bill', 'chester'],
        'betty': ['bill', 'andrew', 'chester'],
        'caroline': ['bill', 'chester', 'andrew']
    }
    
    Andrew предпочёл бы Caroline, но если не сложится, готов и на Abigail. На худой конец — Betty. У самой Caroline этот наш Andrew на последнем месте, так что скорее всего она остановится на Bill’е. Алгоритм нахождения “устойчивых пар”, он же “алгоритм отложенного согласия”, “stable marriage problem“, “алгоритм Гэйла-Шепли”, в 2012-м отмечен Нобелевской премией по экономике, хотя сам он не нов и был разработан ещё в 1962-м. В русской Википедии всё как-то замуточно описано, но простыми словами происходит следующее. Мужчина идёт по своему списку и каждой зазнобе из него делает предложение. Если зазноба не замужем, она принимает предложение автоматически. Если замужем, она бросает своего нынешнего мужа, как только поступил вариант поинтереснее (ведь у неё тоже есть свой рейтинг). Вот так всё просто и честно, хоть и не все могут быть довольны результатом. Давайте проверим что с этого получится в комментариях. #алкоритмы
  • Реклама

  • Типа про IT

    🤖 А давайте периодически прорабатывать интересные алгоритмические задачки, чтобы не закисать и не забывать фундаментальные вещи? Списки, стеки, графы, вот это всё. Задачу предлагаю оформлять в ленте, а решение — в комментариях. Там же оставляйте свои, наверняка более эффективные и изящные решения на нормальных языках программирования. Я же буду использовать Python. Согласны? Узнали? Поехали. Для начала давайте преобразуем римские цифры в наши любимые арабские. Там такой маппинг:
    {
        'M': 1000,
        'D': 500,
        'C': 100,
        'L': 50,
        'X': 10,
        'V': 5,
        'I': 1,
    }
    
    XX это 20, а XIX это 19, например. Напишите функцию decimate, которая делает такое преобразование. #алкоритмы
  • Типа про IT

    ​​🔧 Озадачился на днях самостоятельной заменой аккумулятора на своём старом MacBook Pro 2015. Оказалось, что это не так уж и сложно, но немного нервно. На деле, у меня их два — в одном сдохла батарея, а в другом есть проблемы с дисплеем, из-за чего оба бестолково пылятся на полке. А так как MacBook 15” 2015 это по сей день великий ноутбук на котором можно делать великие дела, было решено реанимировать хотя бы один из них. Менять дисплей это дорого, а с батарейкой я как-нибудь разберусь, хули там менять, подумал я. Главное купить правильную совместимую батарейку. Ну и набор отвёрток для электроники, конечно. На сайте iFixit есть подробные инструкции по DIY-ремонту яблочной техники, в том числе и такая, но с аккумулятором они явно перемудрили. Единственный шлейф, который нужно отсоединять во время операции — это шлейф трекпада. Ну и шлейф самой батареи, естественно. А вот оторвать её от корпуса оказалось непросто, приклеено на совесть, пришлось отважно ковырять во все щели палочкой минут 20. Старую отхерачил, новую поставил, всё обратно закрутил, включаю — работает. “Нихуя себе”, думаю. “Вот так просто?” About This Mac -> System Report -> Power -> Battery Information иии… а почему Full Charge Capacity = 0? И где индикатор заряда в menu bar? Что-то не так. Заряд идёт, но батареи в системе не видно. В интернетах советуют в любой непонятной ситуации после замены комплектующих сбрасывать SMC. Ну я сбросил — не работает. И на второй раз не работает. А вот если полностью выключить ноутбук, сбросить и физически переподключить батарею — работает. Такой вот хак теперь знаю, works like a charm. Поживёт ещё старичок!
  • Типа про IT

    🧮 Что делать, когда нужна математика, а в голове её нет? Учить, само собой. Опустим «зачем» и сфокусируемся на «как», когда нет ни времени, ни даже базовых школьных знаний. Предлагаю такой learning path: 1. Brilliant — интерактивные модули для комплексного изучения математики, логики и основ программирования. Я прошёл несколько курсов и продолжаю двигаться в сторону Group Theory. Интересный формат, попробуйте. Не себе так детям. 2. YouTube богат бессистемными материалами. Из русскоязычных могу отметить Бориса Трушина и TutorOnline, но их потолок — подготовка к ОГЭ/ЕГЭ, а этого мало. 3. На самом деле, наша цель — лекции Кожевникова из МФТИ. Есть открытый цикл по Линейной алгебре и по Аналитической геометрии, после которых уже можно двигаться в сторону ML или куда вам там надо было.
    Brilliant | Learn interactively

    Brilliant - Build quantitative skills in math, science, and computer science with hands-on, interactive lessons.

    brilliant.org
  • Типа про IT

    🍄 За последнее время я поменял сразу несколько базовых инструментов и множество привычек, с ними связанных. Домашний MacBook Pro уступил место iPad Pro (который большой и на М1), VS Code честно проиграл финальный конкурс великому и могучему Emacs (есть что рассказать), а в качестве email-клиента и, более того, сервиса уже третий месяц пользуюсь Hey.com и очень доволен. Настолько доволен, что в итоге купил себе именной домен, настроил Hey for Domains и теперь все письма мне приходят с лёгким ветерком элитарности и снобизма. Самое крутое, что предлагает Hey — это качественно новый workflow по работе с электронными письмами, но в двух словах не объяснишь, тут показывать надо. А кто это сделает лучше CEO Basecamp, компании-разработчика сервиса? На этом примере можно заодно поучиться искусству презентации. Всё толково, по делу, без хуйни. Кайф.
    Take a tour of HEY

    Email's been broken for years. Not anymore — we fixed it. HEY’s fresh approach transforms email into something you want to use, not something you’re forced to deal with. HEY.com. In this detailed walkthrough, we take you through the product - showing you what's different, what's better, and how HEY is unlike anything that's come before it.

    YouTube
  • Типа про IT

    Про сам алгоритм быстрого обратного квадратного корня (он же Fast InvSqrt, он же 0x5F3759DF, он же Quake III — лучшая игра всех времён) вы, вероятно, слышали. К счастью, нашлось хорошее видео вместо зубодробительной статьи на Вики, мир стал немного понятнее.
    Fast Inverse Square Root — A Quake III Algorithm

    In this video we will take an in depth look at the fast inverse square root and see where the mysterious number 0x5f3759df comes from. This algorithm became famous after id Software open sourced the engine for Quake III. On the way we will also learn about floating point numbers and newton's method. 0:00 Introduction 1:23 Why Care? 3:21 The Code 4:18 IEEE 754 9:38 Bits and Numbers 12:09 1st Step: Evil Bit Hack 14:46 2nd Step: WTF 17:34 3rd Step: Newton 19:46 Summary Picture of John Carmack is licensed under CC BY 2.0 from author Drew "Prognar" Campbell. Source: http://flic.kr/p/6YxWYp

    YouTube
  • Типа про IT

    🦆 Ура, понедельник! Я тут подумал, что в жизни ведь нужно заниматься только тем, что действительно… занимает. Выбери себе работу по душе и тебе не придётся работать ни одного дня в своей жизни, как говорится. Если же начать относиться к работе исключительно как к Работе, с характерным эмоциональным отстранением, то вся профессиональная деятельность превращается в методичную череду решений нескончаемых проблем с минимальным сопротивлением. Они называют это ”эффективностью”. Считается, что “профессионал” должен быть “эффективен”, а степень такой эффективности многие компании научились измерять и контролировать с помощью KPI. С точки зрения бизнеса — есть хоть какой-то рабочий инструмент для мониторинга всего этого поголовья. С точки зрения сотрудника, которого конвертируют в вычисляемую функцию, любая интеллектуальная деятельность сворачивается в довольно узкий и крайне специфический родмап с дедлайнами. Бери да делай. Как сохранить в такой среде рассудок и не растерять способности двигаться в бурном потоке экономического бессознательного? Можно сменить среду, можно навешивать на себя сверхзадачи со звёздочкой, можно отводить душу на «хомяках», но нельзя упускать самое главное — make development fun again, otherwise you’re fucked.
  • Типа про IT

    В 2022-м нам нужен reload. Начнём, как всегда, с понедельника, а пока… С Новым Годом! 🎅
  • Типа про IT

    📺 Совершенно прекрасное интервью с Александром Соловьёвым, тем самым, усилиями которого Clojure в Украине перестал быть маргинальным языком и который спас компанию Kasta от технологического коллапса (я это точно знаю, я там работал).
  • Типа про IT

    I Have Delivered Value... But At What Cost?

    where is the roadmap to a lost soul? // merch: https://merch.krazam.tv // https://instagram.com/krazam.tv // https://twitter.com/krazamtv // sound effects from zapsplat.com

    YouTube
  • Типа про IT

    ​​Sebastian Ramirez, тот самый автор FastAPI, на днях выкатил свой новый проект — SQLModel, который буквально за двое суток заработал 2.4k звёзд на GitHub. Если убрать весь пафос про “всю мощь решения”, по факту это прикрученный к “Алхимии” Pydantic, не более того. Модели SQLModel это и валидные SQLAlchemy-модели, и валидные Pydantic-модели тоже. С какого момента такой high coupling стал модным? За что точно можно похвалить автора, это за подробнейшую документацию с кучей примеров того, как вообще работать с SQL (и прятать его под моделями), то есть максимально снижен порог входа для начинающий разработчиков. Несмотря на мой скептицизм, смело завозите эту приблуду в свои проекты, если у вас уже есть SQLAlchemy.
  • Типа про IT

    ​​Qdrant — “хранилище и поисковик по векторам с использованием расширенной фильтрации”. С таким позиционированием у разработчиков будут сложности, конечно. На деле это интересный продукт для развёртывания собственных поисковых сервисов, систем рекомендаций и чат-ботов. Есть понятные кейсы использования, есть пара туториалов с примерами, есть открытая реализация на Rust и всем этим занимаются наши соотечественники в Берлине, которые хотят пойти по бизнес-модели ElasticSearch и уже ищут себе инвесторов. Ну а мы пока можем пощупать что же у них получилось. Кстати, если говорить про аналог ElasticSearch, то это скорее MeiliSearch, а Qdrant — это такой низкоуровневый конструктор семантических поисковиков по неструктурированным данным с высокоуровневым API.
  • Типа про IT

    fxIP - IRC client and TCP/IP stack for Casio fx-Calculators

    https://github.com/Manawyrm/fxIP Music: Timecrawler 82 - Street Dancing (from the album Osaka Lights, CC BY 3.0) https://timecrawler82.bandcamp.com/album/osaka-lights

    YouTube
  • Реклама

  • Типа про IT

    Introducing Windows 11

    Windows 11 brings you closer to what you love. Family, friends, obsessions, music, creations — Windows 11 is the one place for it all. With a fresh new feel and tools that make it easier to be efficient, it has what you need for whatever’s next. Coming soon. Learn more: https://www.microsoft.com/windows/windows-11

    YouTube
  • Типа про IT

    ​​Я тут ещё 2 года назад задвигал за OCaml и с тех пор у меня не было ни повода, ни времени заниматься им дальше. Единственное, на что я посматривал периодически, это Reason, то есть всё тот же OCaml, но с синтаксическим сахаром, поддержкой JSX и возможностью экспорта проекта в JavaScript для дальнейшего тыцанья курсором в браузере. Интеграция с React и возможность писать на OCaml фронтенд меня интересовала больше всего. Но бардак с экосистемой и грузный синтаксис говорили “давай подождём”. По ходу дождался. Как всегда, я всё пропустил, но Reason, который JS-looking syntax layer over OCaml plus extra tools и который через BuckleScript компилировался в JS (всё сложно) после ребрендинга теперь просто ReScript. И дело не только в названии. Им занимаются те же ребята, в частности Jordan Walke, создатель React, которые решили причесать, наконец, кодовую базу, объединить Reason и BuckleScript, выровнять синтаксис и самое главное — там всё так же OCaml under the hood. И не менее главное — добротный interop c JavaScript, который работает не только на вход, но и на выход. Выглядит, судя по документации последней 9-й версии, неплохо, мне нравится. Другой информации в интернетах очень мало, курите маны, как говорится. Единственное, они не реализовали async/await и не особо спешат. Мол, пайпайте промисы, в чём проблема? Ну, исправятся однажды. Надо пробовать, хули тут ещё думать. 👉 Extra materials: JavaScript to ReScript How I Switched from TypeScript to ReScript
  • Типа про IT

    В Postgres 14 можно будет делать так:
    SELECT *
    FROM shirts 
    WHERE details['attributes']['color'] = '"neon yellow"'
    AND details['attributes']['size'] = '"medium"'
    
    И вот так:
    CREATE INDEX idx_products_details ON products ((details->'attributes'->'color'));
    
    И всякое такое. Ждём релиз.
    Better JSON in Postgres with PostgreSQL 14

    A feature highlight of the new JSON subscript support within PostgreSQL 14.

    Crunchydata