Сегодня день искусственного интеллекта
Обновления у Codeium - бесплатного AI помощника в качестве расширения для IDE.
1. Появился Codeium University (кликнуть иконку "i" справа вверху боковой панели). Подробная информация как работать с инструментом в виде удобной справки
2. Появилась возможность добавлять свои файлы, директории и даже GitHub репозитории в контекст (вкладка Context). По-прежнему по репозиториям есть
#codeium #ai
Обновления у Codeium - бесплатного AI помощника в качестве расширения для IDE.
1. Появился Codeium University (кликнуть иконку "i" справа вверху боковой панели). Подробная информация как работать с инструментом в виде удобной справки
2. Появилась возможность добавлять свои файлы, директории и даже GitHub репозитории в контекст (вкладка Context). По-прежнему по репозиториям есть
React
и Svelte
, но нет Vue
((. Можно скачать и добавить как локальную директорию. В принципе, можно наверно так найти несколько качественных проектов на Vue и добавить в контекст как эталон.#codeium #ai
Щупальца
Мета-фреймворк на
Автор - Brandon Roberts, NgRx maintainer, Angular GDE
Осталось выпустить ReAnalog.js и затем смёржить все три ветки фронтенд фреймворков в одну главную -
#angular #analogjs
Vue
протянулись к горлу Ангуляра - вышел Analog.js 1.0 Мета-фреймворк на
Vite
, Nitro
, с File-based routing
, SSR/SSG
и вот таким SFC форматом:<script lang="ts">
import { signal } from '@angular/core';
const count = signal(0);
function increment() {
count.update(total => ++total);
}
</script>
<template>
<h2>Hello Analog</h2>
Count: {{ count() }}
<button (click)="increment()">
Increment
</button>
</template>
<style>
h2 {
color: red;
}
</style>
Автор - Brandon Roberts, NgRx maintainer, Angular GDE
Осталось выпустить ReAnalog.js и затем смёржить все три ветки фронтенд фреймворков в одну главную -
Vue
#angular #analogjs
analogjs.org
Analog | Analog
The fullstack Angular meta-framework
Член Vite core команды Patak сообщил, что, возможно, некоторые опциональные возможности Rolldown могут появиться в Vite 6 (релиз ~октябрь/ноябрь). Rolldown по дефолту заменит esbuild, возможно, в Vite 7. А замена и esbuild, и Rollup планируется в Vite 8. На данный момент реальный ETA не определен.
Всё еще очень нескоро, короче.
#rolldown #vite
Всё еще очень нескоро, короче.
#rolldown #vite
Microsoft, Amazon (и, вроде, Google) дали корпоративным клиентам из РФ три дня на чтоб собрать вещи с их облачных решений. Пока точно не понятно, кого именно это коснется, но если и у физлиц есть там данные - повод задуматься или хотя бы сделать бэкап на сторону.
#cloud
#cloud
Хабр
Microsoft и Amazon с 20 марта 2024 года приостанавливают доступ к своим облачным продуктам на территории РФ
15 марта 2024 года компания Softline сообщила , что Microsoft и Amazon с 20 марта 2024 года приостанавливают доступ к своим облачным продуктам на территории РФ, включая Power BI и Dynamics CRM....
Если вы используете сторонние шрифты (например, Google Fonts), то подключать их лучше не в вашем CSS, а в index.html.
Таким образом браузер начнет грузить их до получения ваших CSS файлов, и они появятся у него быстрее, снижая вероятность "дергания" текста на экране при замене шрифта с базового на кастомный.
#fonts #css #tip
Таким образом браузер начнет грузить их до получения ваших CSS файлов, и они появятся у него быстрее, снижая вероятность "дергания" текста на экране при замене шрифта с базового на кастомный.
#fonts #css #tip
В январе я с удивлением смотрел, как число подписчиков канала достигло 200, сегодня уже 400.
Кажется, что это немного по сравнению с другими, но, имея возможность видеть статистику, могу сказать, что охват целевой аудитории одним постом здесь выше в среднем, чем в соседних чатах на 10К юзеров, и намного выше чем у статьи на Хабре в хабе "Vue.js", несмотря на их дутые "тысячи" просмотров.
Telegram действительно очень эффективный способ распространения информации.
Кажется, что это немного по сравнению с другими, но, имея возможность видеть статистику, могу сказать, что охват целевой аудитории одним постом здесь выше в среднем, чем в соседних чатах на 10К юзеров, и намного выше чем у статьи на Хабре в хабе "Vue.js", несмотря на их дутые "тысячи" просмотров.
Telegram действительно очень эффективный способ распространения информации.
Большой контрибьютор в экосистему Vue.js Anthony Fu опубликовал длинный пост о своем психическом здоровье, вызванным стрессом от ответственности за написанный им open-source код, от которого зависит уже много проектов и разработчиков.
Абсолютно с ним согласен. Поэтому твой open-source проект, который не взлетел, это великое благо. Потому что ты получил огромное эстетическое наслаждение от его создания, и не понес за это никакого наказания в виде необходимости его развивать и менять по запросам пользователей и выслушивания критики и нытья недовольных и конкурентов. Тщеславие только для дураков.
#antfu
Абсолютно с ним согласен. Поэтому твой open-source проект, который не взлетел, это великое благо. Потому что ты получил огромное эстетическое наслаждение от его создания, и не понес за это никакого наказания в виде необходимости его развивать и менять по запросам пользователей и выслушивания критики и нытья недовольных и конкурентов. Тщеславие только для дураков.
#antfu
Anthony Fu
Mental Health in Open Source
Some of my thoughts on my mental health during my journey in Open Source
Amazon недавно купила помещение для своего нового дата-центра в Пенсильвании.
Его отличительной особенностью является то, что вся энергия на сервера и охлаждение будет поступать от стоящей неподалеку 6-ой по размеру в США АЭС.
Мощность AWS дата-центра будет составлять до 1 гигаватта, что составляет 40% от мощности всей электростанции.
Захощенным в дата-центре приложениям можно использовать лэйбл:
—-
Для справки:
- С мощностью 1ГВт можно обеспечивать электричеством город с населением 1 млн. человек.
- Примерно 40% энергии в дата-центрах уходит на систему охлаждения. Именно поэтому некоторые из них размещают в океанах.
- Все дата-центры потребляют примерно 1.5% мирового электричества.
- Всего в мире около 850 дата-центров. Половина из них находится в США.
#aws
Его отличительной особенностью является то, что вся энергия на сервера и охлаждение будет поступать от стоящей неподалеку 6-ой по размеру в США АЭС.
Мощность AWS дата-центра будет составлять до 1 гигаватта, что составляет 40% от мощности всей электростанции.
Захощенным в дата-центре приложениям можно использовать лэйбл:
nuclear-powered
—-
Для справки:
- С мощностью 1ГВт можно обеспечивать электричеством город с населением 1 млн. человек.
- Примерно 40% энергии в дата-центрах уходит на систему охлаждения. Именно поэтому некоторые из них размещают в океанах.
- Все дата-центры потребляют примерно 1.5% мирового электричества.
- Всего в мире около 850 дата-центров. Половина из них находится в США.
#aws
У
Модификатор
#input #modifiers #tip
v-model
есть полезные для input модификаторы:<!-- v-model with .lazy modifier -->
<input type="text" v-model.lazy="lazyValue" placeholder="Lazy input" />
<p>Lazy value: {{ lazyValue }}</p>
<!-- v-model with .number modifier -->
<input type="number" v-model.number="numberValue" placeholder="Number input" />
<p>Number value: {{ numberValue }}</p>
<!-- v-model with .trim modifier -->
<input type="text" v-model.trim="trimmedValue" placeholder="Trimmed input" />
<p>Trimmed value: {{ trimmedValue }}</p>
Модификатор
lazy
откладывает обновление переменной до тех пор, пока поле ввода не потеряет фокус, вместо того чтобы делать это сразу после ввода пользователем символа. Это сокращает количество обновлений и помогает повысить производительность.#input #modifiers #tip
Когда делаешь аккордеон или выпадающее меню (dropdown) на CSS, возникают проблемы из-за невозможности использовать
В то же время элегантное решение на чистом CSS существует и использует
Песочница
#tip #css #accordion
height: auto;
. В результате приходится задействовать JavaScript для приемлемой анимации.В то же время элегантное решение на чистом CSS существует и использует
grid-template-rows
:<div class="content">
<div class="inside">
Totally arbitrary content!
</div>
</div>
.content {
display: grid;
grid-template-rows: 0fr;
transition: 1s;
overflow: hidden;
}
.content .inside {
min-height: 0;
}
.content.expanded {
grid-template-rows: 1fr;
}
Песочница
#tip #css #accordion
Node.js
решила не тормозить и включиться в гонку на скорость с остальными JS движками.Переписывают весь
node:fs
пакет на C++Именно работа с файловой системой является бутылочным горлышком.
#nodejs
GitHub
fs: move `ToNamespacedPath` to c++ by anonrig · Pull Request #52135 · nodejs/node
This is a step forward to move all node:fs implementation to C++. Since we now have support for win32.pathResolve() in C++, we can move forward with moving ToNamespacedPath functions to C++.
In a f...
In a f...
Группой доброжелателей закончен перевод официальной документации
Пока лежит тут - https://vuejs-doc-ru.vercel.app
#vuejs #docs
Vue 3
на русский язык. Вторая ревизия, - более качественная, корректная и современная, чем https://v3.ru.vuejs.org.Пока лежит тут - https://vuejs-doc-ru.vercel.app
#vuejs #docs
ru.vuejs.org
Vue.js
Vue.js - The Progressive JavaScript Framework
Лонгрид о JavaScript
JavaScript - ужасный язык программирования. По сравнению с другими распространёнными языками он выглядит генетическим уродом. Дело даже не в отсутствии многопоточности или статической типизации, а в том, что 10 человек одну и ту же несложную задачу могут написать на нём 10 различными способами. Каждый из них с трудом будет понимать, что написал другой, и тихо его материть. Причем, так напишут и новички, и опытные, которые просто привыкли писать по-своему или захотели выпендриться.
Синтаксис и семантика JavaScript неадекватно усложнены и запутаны. Принято считать, что Java - серьезный язык для серьезных проектов, а JavaScript - лёгкий скриптовый язык для веб-страничек. В принципе, да, вот только код на Java получается намного проще и чище кода на JavaScript. В нём на порядок меньше всевозможных абсолютно ненужных рудиментарных заморочек. И, в то же время, с возможностями Java как языка можно реализовать практически всё.
JavaScript удобен для фронта, для несложных скриптовых блоков кода в SFC. Я предпочитаю начинать обучение детей программированию с простой веб-разработки - сделать страничку, скриптом добавить небольшую анимацию, потом загрузить через fetch прогноз погоды и красиво отрисовать его. Это их сильно заинтересовывает.
На JavaScript можно написать несложный бэкенд API на Express.js или serverless functions, но это его потолок. Использовать его для чего-то серьезного на серверной стороне - ошибка.
Все уже привыкли к зоопарку фронтенд фреймворков, когда учишься писать под конкретный, если хочешь на нем работать. Но это часть айсберга. Многие npm пакеты тоже должны быть адаптированы или сделаны под этот фреймворк, образуя свою "экосистему". И меняя фреймворк надо менять и экосистему.
Есть еще сборщики. Даже для бэкенда их используют. И их не один, и не два, и не три. И чтобы в твоем прикладном коде просто отобразить на странице картинку, ты должен подчиняться правилам сборщика.
А у сборщиков есть плагины, и чтобы отобразить на странице svg иконку, ты должен подчиняться правилам выбранных плагинов. И еще есть js runtime engines - движки. И их тоже уже не только Node.js - Deno, Bun, Cloudflare Workerd, Netlify, Vercel Edge, AWS LLRT, - один другого краше.
Вроде бы уже дно? Нет, у движков и сборщиков есть еще версии, и то, что работает на Node 16, не работает на Node 20, и наоборот.
Всё? Почти. Окружение, включая операционные системы. Нравится удобство Cloudflare workers - пиши под Cloudflare. Supabase? Только Deno до недавнего времени. Хочешь быстрый Bun? Переписывай всё под него. И он на Windows не работает пока, если что. Netlify, Vercel, AWS Lambda - у каждого свои требования и особенности.
Когда изобрели Java у нее был девиз: Write once, run everywhere. Не сильно ошибусь, если скажу, что программу, написанную на С или Java 25 лет назад можно без особых проблем скомпилировать и запустить и сейчас. А как этот слоган применим к JavaScript? Никак. Ты должен ходить везде с чемоданом набитым своим фреймворком, библиотеками под него, сборщиком, плагинами к нему, своим js рантаймом и только по своим хостерам. И всё чтобы было своих определенных версий. И ходить можно только очень небольшое количество лет, после которых ты вместе со всем этим чемоданом безнадежно устареешь.
И самое веселое, что со временем всё не унифицируется и упрощается, а совсем наоборот.
Теперь представим архитектора или техлида в здравом уме, который должен решить, на чем писать нетривиальное серверное приложение с расчетом на работу дольше одного года. В каких случаях он выберет JavaScript? Видны три варианта:
1. Он/его команда больше ничего не умеют
2. Его вынуждают это сделать силой
3. Он не совсем в здравом уме.
TypeScript может давать локальное симптоматическое лечение, но в целом ситуацию только ухудшает.
На бэкенде еще есть возможность выбрать для работы другой язык, но на фронте глобально поможет только создание и внедрение нового языка с нуля, как это было с Java или C#, с продуманными спецификациями языка программирования и виртуальной машины и всех нужных API.
#js #lang #esse
JavaScript - ужасный язык программирования. По сравнению с другими распространёнными языками он выглядит генетическим уродом. Дело даже не в отсутствии многопоточности или статической типизации, а в том, что 10 человек одну и ту же несложную задачу могут написать на нём 10 различными способами. Каждый из них с трудом будет понимать, что написал другой, и тихо его материть. Причем, так напишут и новички, и опытные, которые просто привыкли писать по-своему или захотели выпендриться.
Синтаксис и семантика JavaScript неадекватно усложнены и запутаны. Принято считать, что Java - серьезный язык для серьезных проектов, а JavaScript - лёгкий скриптовый язык для веб-страничек. В принципе, да, вот только код на Java получается намного проще и чище кода на JavaScript. В нём на порядок меньше всевозможных абсолютно ненужных рудиментарных заморочек. И, в то же время, с возможностями Java как языка можно реализовать практически всё.
JavaScript удобен для фронта, для несложных скриптовых блоков кода в SFC. Я предпочитаю начинать обучение детей программированию с простой веб-разработки - сделать страничку, скриптом добавить небольшую анимацию, потом загрузить через fetch прогноз погоды и красиво отрисовать его. Это их сильно заинтересовывает.
На JavaScript можно написать несложный бэкенд API на Express.js или serverless functions, но это его потолок. Использовать его для чего-то серьезного на серверной стороне - ошибка.
Все уже привыкли к зоопарку фронтенд фреймворков, когда учишься писать под конкретный, если хочешь на нем работать. Но это часть айсберга. Многие npm пакеты тоже должны быть адаптированы или сделаны под этот фреймворк, образуя свою "экосистему". И меняя фреймворк надо менять и экосистему.
Есть еще сборщики. Даже для бэкенда их используют. И их не один, и не два, и не три. И чтобы в твоем прикладном коде просто отобразить на странице картинку, ты должен подчиняться правилам сборщика.
А у сборщиков есть плагины, и чтобы отобразить на странице svg иконку, ты должен подчиняться правилам выбранных плагинов. И еще есть js runtime engines - движки. И их тоже уже не только Node.js - Deno, Bun, Cloudflare Workerd, Netlify, Vercel Edge, AWS LLRT, - один другого краше.
Вроде бы уже дно? Нет, у движков и сборщиков есть еще версии, и то, что работает на Node 16, не работает на Node 20, и наоборот.
Всё? Почти. Окружение, включая операционные системы. Нравится удобство Cloudflare workers - пиши под Cloudflare. Supabase? Только Deno до недавнего времени. Хочешь быстрый Bun? Переписывай всё под него. И он на Windows не работает пока, если что. Netlify, Vercel, AWS Lambda - у каждого свои требования и особенности.
Когда изобрели Java у нее был девиз: Write once, run everywhere. Не сильно ошибусь, если скажу, что программу, написанную на С или Java 25 лет назад можно без особых проблем скомпилировать и запустить и сейчас. А как этот слоган применим к JavaScript? Никак. Ты должен ходить везде с чемоданом набитым своим фреймворком, библиотеками под него, сборщиком, плагинами к нему, своим js рантаймом и только по своим хостерам. И всё чтобы было своих определенных версий. И ходить можно только очень небольшое количество лет, после которых ты вместе со всем этим чемоданом безнадежно устареешь.
И самое веселое, что со временем всё не унифицируется и упрощается, а совсем наоборот.
Теперь представим архитектора или техлида в здравом уме, который должен решить, на чем писать нетривиальное серверное приложение с расчетом на работу дольше одного года. В каких случаях он выберет JavaScript? Видны три варианта:
1. Он/его команда больше ничего не умеют
2. Его вынуждают это сделать силой
3. Он не совсем в здравом уме.
TypeScript может давать локальное симптоматическое лечение, но в целом ситуацию только ухудшает.
На бэкенде еще есть возможность выбрать для работы другой язык, но на фронте глобально поможет только создание и внедрение нового языка с нуля, как это было с Java или C#, с продуманными спецификациями языка программирования и виртуальной машины и всех нужных API.
#js #lang #esse
Иногда в шаблоне может понадобиться временная переменная - например, в
Для этого можно использовать следующую конструкцию:
Недокументированные возможности Vue
#tip
v-for
циклеДля этого можно использовать следующую конструкцию:
<div :set="user = someLongExpression">
{{ user.firstName }} : {{ user.lastName }}
</div>
set
- это не какой-то специальный атрибут, можно использовать любое имя. Vue просто выполнит этот код в данном скоупе.Недокументированные возможности Vue
#tip
Иконки флагов стран в SVG формате - https://flagicons.lipis.dev
Можно выбрать необходимые, но если нужны все, то
#flag #svg #lib
Можно выбрать необходимые, но если нужны все, то
png
формат (sprite) может быть значительно оптимальней.#flag #svg #lib
flagicons.lipis.dev
flag-icons: Free Country Flags in SVG
A curated collection of all country flags in SVG