ChatGPT, диалоговый чат-бот OpenAI, был выпущен всего несколько дней назад, но уже покорил Интернет. От написания постов в блогах до решения проблем с кодированием и создания виртуальных машин внутри бота — возможности безграничны. Революционный ИИ может одновременно волновать и пугать разработчиков программного обеспечения. Крис Томич отвечает на экзистенциальный вопрос — Буду ли я нужен?
Переходим к другому уместному вопросу — выполнен ли Поиск Google? Трудно предугадать, но такие проекты, как Исправление поиска на YouTube с помощью инструмента Whisper от OpenAI (еще раз спасибо, Джеймс) — могут вызывать беспокойство у поискового гиганта.
Я попросил ChatGPT создать приложение SwiftUI, и хотя результаты хороши для тривиальных задач, иногда это бессмысленно — например, бот, утверждающий, что SwiftUI не включает собственный видеоплеер, — когда он явно есть. Возможно, LLM обучался работе с Apple Docs — и Apple, не вложившая достаточно ресурсов в подробные руководства, наконец-то имеет смысл.
Кажется, что с тех пор, как был развернут API DALL-E, прошли целые века. Однако это было всего несколько недель назад. Демонстрация визуализации данных от Bill Cava и реализация на Swift, написанная вашим покорным слугой для обрезки и замены лиц, должны помочь вам начать работу.
Для вдохновения, связанного с GPT-3, Кунал Десаи создал бота поддержки разногласий, а Пауло Тейлор создал спам-фильтр с помощью точно настроенного API.
Переходя от OpenAI, теперь доступна Stable Diffusion 2.0. Вот три связанных руководства, которые помогут вам взяться за дело:
- Рассеянный о моделях распространения? автор Нихил Расивасиа
- Как развернуть модель стабильного распространения на Amazon SageMaker, автор Джастин Мюллер
- Создание стабильного диффузионного Slackbot в стиле Giphy, автор Марк Родсет
Наряду с этим Apple выпустила Stable Diffusion с поддержкой Core ML на Apple Silicon. Для разработчиков приложений впереди хорошие времена!
Для разработчиков Spring произошло множество релизов проектов, которые были довольно хорошо описаны в этой ветке Твиттера. Wenqi Glantz расскажет нам о новых возможностях Spring Boot 3 GA с помощью практического руководства по поддержке собственных образов GraalVM.
27 ноября произошло устаревание уровня бесплатного пользования Heroku. Если вы ищете альтернативы, вот полезный список от Jerry Ng… и следующие руководства помогут быстро освоить инструменты:
- Вот как развернуть веб-приложения на AWS EC2, Cansin Cagan Acarer
- Развертывание полнофункционального приложения Scala на fly.io, автор Antoine Doeraene
- Перенос приложения Node.js на Cloudflare Workers из Heroku, автор Patrick Chiu
- Развертывание приложения Kotlin в Railway (бот Slack), Луис Соареш
- Как развернуть приложение Ruby on Rails только для API на Render.com, Дэвид Вера Кастильо
Языковые концепции
JavaScript и др.
- Извлечение данных в React: случай с потерянными промисами — Надя Макаревич подробно рассказывает об основах извлечения данных в React через промисы и на примере условий гонки.
- Как писать типобезопасный код на TypeScript — Райнер Ханекамп приводит отличные аргументы в пользу использования сужения типов для утверждений типов и описывает различные методы работы с типами объединения.
- Демистификация «flushPromises» — Сурадж Пиллаи помогает укрепить наше понимание неблокирующей архитектуры JavaScript, работая над различиями между
flushPromises
иPromise.resolve
в этом практическом руководстве.
питон
- Стремительный vs строгий vs нестрогий vs ленивый — что все это значит? –Курт Шелфтаут дает нам краткий обзор различных стратегий оценки и объясняет, почему ленивая оценка имеет значение. Хаскеллеры очень гордятся ленивыми вычислениями! Знаете ли вы, что карты в Python3 ленивы?
- Преодоление ошибки AssertionError в Python — Марчин Козак учит нас перезаписывать
AssertionError
и использовать собственные исключения с помощью практического руководства.
Быстрый
- Путешествие от циклов к функторам — Марек Галик описывает функторы в Swift, которые приобрели гораздо большую популярность в функциональном программировании.
- Swift как основной предметный язык — Мануэль Мейер предлагает новую парадигму — декларативный Swift — стиль для эффективного и действенного создания доменно-ориентированного кода.
- CodingKeys: Помимо сопоставления имен. — Патрицио Игнасио Фаринья Вальдивия
Go
- Обработка больших файлов с помощью Go — snassr исследует различные способы обработки больших файлов CSV со сравнением производительности. Некоторые полезные практики параллельного программирования находятся в нашем распоряжении в этой статье.
- Использование наборов с дженериками Golang. Если вы не знакомы с дженериками, у Ноа Шумахера есть удобное руководство, которое поможет вам отточить свои навыки по внедрению наборов.
- Реализовать универсальную функцию Golang для обработки любого HTTP-запроса — Крис Фрюин делится полным пошаговым руководством о том, как создать функцию, исследуя возможности универсальных шаблонов в Go.
- Альтернативы тернарному оператору в Go — Стефани Лай, знакомая с Java, обсуждает причины отсутствия тернарного оператора и представляет несколько альтернатив.
Принятие Rust растет
В последнее время ржавчина находится на подъеме. В недавнем отчете Google подчеркивается, что Rust составляет 21% всего нового нативного кода в Android 13 и снижает проблемы с безопасностью памяти, а Адриан Тейлор рассказывает нам о преимуществах стабильности и производительности при использовании Rust- завернутый C++ в браузере Chromium.
Существует множество руководств по Rust, которые помогут вам вдохновиться. Например, Дотан Нахум исследует сравнение производительности и размера между Tauri и Electron, создавая стартовое приложение для рабочего стола, Дэвид Дал Буско рассказывает, как перенести смарт-контракты контейнера из Motoko to Rust, Эван Кэмерон переписывает реализацию преобразователя DNS на основе Java и Брук Джейнс создает приложение для ведения блога.
После представления нового языка программирования Letlang, ориентированного на Rust, Дэвид Делассус вернулся, чтобы рассказать нам больше подробностей о нем и планах развития.
Хотя Rust полезен для инструментов, критически важных для производительности, Мэтт Уэлш считает, что он не подходит для стартапов, которым нужно быстро выпустить продукт.
Обсуждения
- Сцепление методов в Pandas: дурной тон или рецепт успеха? — Примеры тренера по Python Мэтта Харрисона произвели настоящий фурор. Дэвид Амос приводит интервью с Мэттом, в котором он обсуждает читабельность кода, написание хорошего кода для Pandas и целесообразность использования цепочки методов в Pandas. Из этого разговора можно многое извлечь.
- Когда Serverless дороже, чем контейнеры? — Аллен Хелтон исследует парк EC2 с балансировкой нагрузки, оптимизированный для вычислений, в сравнении с бессерверным приложением, поддерживаемым исключительно функциями Lambda, — чтобы показать, что определенный объем трафика склоняет весы к удорожанию бессерверных приложений.
- Что происходит с фигурными скобками в Scala? — Синтаксис на основе отступов популярен среди питонистов, но подходит ли он для Scala? Оливер Уинкс считает, что новый необязательный синтаксис фигурных скобок — это не только солнышко и леденцы.
Несколько крутых проектов, которые мы обнаружили
- Майкл Дж. Фордхэм проделал замечательную работу по созданию вратарской игры для Playdate Console с использованием Lua и разбивкой по различным областям разработки игр.
- У Уилла Ховарда есть удобное руководство, которое поможет создать WebGL Dot Spheres с помощью Three.js — подобные тем, которые мы видим на домашних страницах Stripe и GitHub.
- Серхио Санчес объясняет архитектурный подход к решениям без пароля, реализованный с помощью облегченных облачных микросервисов с использованием Kotlin.
- Маттиа Мальдини показывает, как создать приложение C GUI с LVGL и SDL2 в качестве серверной части
- Пётр Яворски пишет пример простой пользовательской операции с использованием GammaCV — библиотеки компьютерного зрения JavaScript.
- Даниэле Фонтани создает Basy — инструмент с открытым исходным кодом для упаковки скриптов Bash с использованием Go.
- Визуализация облаков точек с помощью Three.js Адам Черни — Вы знаете, как достичь совершенства? Просто объедините Midjourney, Stable Diffusion, карты глубины, морфинг лица и немного 3D.
- Детский GraphIQal и 36 часов, которые ему предшествовали — Изабель Илья рассказывает о том, как она и ее команда создали настольное приложение с использованием Electron.js. Хакатоны — это весело!
- Питер ван Влит рассказывает о своем опыте ускорения процесса разработки полного стека без создания API с помощью Jitar.
- Брайан Мэйо превращает свой личный сайт в терминал.
Практические руководства
Веб-разработка
- Angular v15 теперь доступен! Минко Гечев
- Как мы оптимизировали наше приложение Next.js для работы в Интернете, Артур Шотт
- Как заставить оптимизированные шрифты Next.js 13 работать с Tailwind CSS, Йоханнес Гонтрум
- Понимание ошибок гидратации в NextJS 13 при подключении к кошельку Web3
- Как создать бесконечный холст в стиле Figma в WebGL, автор Викрам Тьягараджан
- Подходы к совместному использованию состояния: React, Годфри Юнг
- Действительно ли Vite быстрее, чем Webpack? Антон Калманович
- Я сравнил скорость развертывания Reflame, Vercel, Netlify, Cloudflare Pages в одном и том же репозитории, автор Льюис Лю.
- Установка разрешений GitHub Repo для сотен репозиториев с помощью GitHub REST API и GitHub Action, автор Кайлер Миддлтон
- Внедрение сервера WebSocket в Node.js, автор Денис Яковенко
- Создание Flutter-приложения Markdown Editor с помощью Flet Python Framework, автор Henri Ndonko
- Стоит ли вам использовать асинхронную поддержку Django? Насир Аль-Хишман
- Создание Kotlin/Native Web Server с помощью Ktor и SQLDelight PostgresSQL, автор Jonas TM
iOS
- Пользовательский макет SwiftUI с Simple Layout Engine, автор Sidharth Juyal
- Создание базы данных в Metal, Мэттью Палетта
- Тридцать дней металла — День 29: физический рендеринг, Уоррен Мур
- Управление представлением SwiftUI с помощью Smile через ARKit, автор Коул Деннис
- Как отображать иерархические данные с помощью SwiftUI 4, Тереза Багала
- Расширения привязки SwiftUI, автор Майкл Лонг
- Создание сетевого приложения iOS с автоматической авторизацией JWT, Лев Бакланов
- Мое путешествие с Sound Analyzer Эвелин
Андроид
- Заставляем медуз двигаться в Compose: Animating ImageVectors и применение AGSL RenderEffects, автор Rebecca Franks
- Как прочитать файл изображения на C++ в Android с помощью NDK, автор Minhaz
- Понимание задач Gradle, Дмитрий Леонов
- Вы должны быть 64-битными, чтобы ездить на этом пароме Джоуи Уоттс
- Создание многоразового меню действий в Jetpack Compose, автор Francesc Vilarino Guell
Работа
В завершение этого выпуска у нас есть разнообразный опыт работы — например, карьерные советы, скрытые в текстах песен Coldplay Лизы Шмидт. Вот несколько произведений, которые нам запомнились:
- Один вопрос, который вы должны задать на собеседовании, Габриэль Амрам
- 3 года после Coding Bootcamp: советы выпускников, Юрий Сорокин
- Быть индивидуальным предпринимателем в области программного обеспечения в 40 лет, Алекс Судзуки
- Как поставить людей в центр оценки производительности, автор Vinita
- Меня увольняли 5,5 раз. Вот 4.5 урока, которые я выучил Василий
- Как мы работаем с Scrum, Дафна Розенблюм
- 10 вдумчивых вопросов для интервью с лидерами, автор Ричард Бэнфилд
- Настоящий стаж в карьере программиста, Кристоф Ниссле
- 6 простых способов значительно улучшить планирование вашего проекта, Эллиот Грэберт
Это завершает этот вопрос. До скорого,
Анупам и команда Better Programming