DevNotes Live
6 subscribers
84.3K photos
12K videos
195 files
35.4K links
Автоматический агрегатор IT ресурсов в Telegram (@devnotes_robot)
Информация: https://t.me/devnotes_live/121
Download Telegram
Forwarded from Адовый UX
Уникальное, неповторимое предложение! Оно будет доступно вам только до {current_date + 2}! Не упустите свой шанс!
Forwarded from Shock Design
Забавная живопись с котиками NeatCoolFun

📙 Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Shock Design
Forwarded from Новые шрифты
Шрифт Expine by Anna Vyahireva

Бесплатно для личных и коммерческих проектов.

📁Скачать Шрифт

#Latin #Free #Cyrillic

🅰️ Новые шрифты
This media is not supported in your browser
VIEW IN TELEGRAM
Новый онбординг у Siri в бета-версии iOS 18.1.

👨 Дизайн-телега
👩‍💻 Задачка по NodeJS

Создайте приложение на Node.js, которое кэширует данные с ограничением по времени. Когда кэш истекает, данные должны автоматически обновляться из внешнего источника (например, из API) при следующем запросе.

➡️ Пример:

node app.js fetch — получает данные из кэша, а если кэш истек, то запрашивает данные заново и обновляет кэш.

Решение задачи ⬇️

const fs = require('fs');
const path = require('path');
const fetch = require('node-fetch');

const cacheFile = path.join(__dirname, 'cache.json');
const CACHE_TTL = 60 * 1000; // 1 минута

// Функция для обновления кэша
async function updateCache() {
const data = await fetch('
https://api.example.com/data').then(res => res.json());
const cacheData = { data, timestamp:
Date.now() };
fs.writeFileSync(cacheFile, JSON.stringify(cacheData));
return data;
}

// Функция для получения данных из кэша
async function fetchData() {
if (fs.existsSync(cacheFile)) {
const cache = JSON.parse(fs.readFileSync(cacheFile, 'utf8'));
const isCacheValid =
Date.now() - cache.timestamp < CACHE_TTL;

if (isCacheValid) {
console.log('Данные из кэша:',
cache.data);
return
cache.data;
}
}
console.log('Обновление кэша...');
return await updateCache();
}

// Проверка кэша
fetchData().then(data => console.log('Полученные данные:', data));
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Минутка процесса:

Поиск решения для «Музея Скрябина» в Москве в 2013 году. Поиск нужной графической метафоры. Дизайнер Сергей Аненко еще будучи студентом, обучаясь у меня на курсе.

Стоит напомнить, что уже на этих выходных у вас есть возможность поучиться созданию смысла в дизайне и поучаствовать в нашем спецкурсе «Метафоры и символы в дизайне», это онлайн, в ближайший выходной, пара часов и много живой практики.