Forwarded from One3erver.com
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Accio
A #typescript trick that was useful to me today:
MakeOptionalPropertiesNullable will make optional fields of T accept null as well as their type. e.g:
Will be transformed into:
How is this useful?
Working with different controllers, validators or even ORMs might produce situations like this. For example in Prisma schemas any optional value is simply nullable so for an easier type mapping you might want to introduce a persistence model from your read model via this type mapper.
Or you want to accept both null and undefined from your users but don't want to clutter your domain types with it
How is this even working?
We are taking advantage of typescript mappers/transformers. NullableKeys<T> first creates a type that assigns
What now? now we pass our type to MakeOptionalPropertiesNullable<T> which at first, goes through any key of T that is not included in NullableKeys<T>. Meaning any key that isn't optional. We don't want to touch those so we simply assign their respective types via T[K]. Now it's time for optional keys to join the party. They will be assigned their own types along side a
type NullableKeys<T> = {
[K in keyof T]: undefined extends T[K] ? K : never;
}[keyof T];
export type MakeOptionalPropertiesNullable<T> = {
[K in Exclude<keyof T, NullableKeys<T>>]: T[K];
} & {
[K in NullableKeys<T>]: T[K] | null;
};MakeOptionalPropertiesNullable will make optional fields of T accept null as well as their type. e.g:
interface User {
name: string;
lastName?: string;
}Will be transformed into:
interface NewUser {
name: string;
lastName?: string | null;
}How is this useful?
Working with different controllers, validators or even ORMs might produce situations like this. For example in Prisma schemas any optional value is simply nullable so for an easier type mapping you might want to introduce a persistence model from your read model via this type mapper.
Or you want to accept both null and undefined from your users but don't want to clutter your domain types with it
How is this even working?
We are taking advantage of typescript mappers/transformers. NullableKeys<T> first creates a type that assigns
never to any property of T that is not optional (deciding with undefined extends T[K]) and at the end it will get the keys of the transformed object (which will skip any field that has the type never). So we end up with a type like below: "field1" | "field2" | "field3" | ...
What now? now we pass our type to MakeOptionalPropertiesNullable<T> which at first, goes through any key of T that is not included in NullableKeys<T>. Meaning any key that isn't optional. We don't want to touch those so we simply assign their respective types via T[K]. Now it's time for optional keys to join the party. They will be assigned their own types along side a
| null to make them nullable. A simple & will seal the deal at the end.Forwarded from محتوای آزاد سهراب
خب، داشتم محتویات کانال قبلیم رو که حذف کردم (توی یکجا بکاپ داشتم) مرور میکردم، دوتا پست رو که به نظر خودم مفید بودن برداشتم و الان میخوام بزارم توی این کانال.
@SohrabContents
@SohrabContents
Forwarded from محتوای آزاد سهراب
چطور یک ریمستر از دبیان بسازیم؟ 🫤
خیلی از سوالایی که از من پرسیده میشه اینه که من یک توزیع دبیان بیس نصب کردم، میخوام ازش یک کپی بسازم که کانفیگ هامو داشته باشم و یا میخوام توزیع خودمو داشته باشم.
اول از همه اینکه شما باید تغییراتی که میخواین رو اعمال کنید توی دبین، تغییر تم و غیره
توجه کنید که تم ها باید توی root نصب شده باشن:
/usr/share/icons
/usr/share/themes
بعد از دادن تغییرات و اعمال کردنشون، پوشه های
~/.config
و
~/.local
رو به
/etc/skel
ببرید.
برنامه penguin eggs رو.نصب کنید و طبق دستور العمل گیتهابش مراحل رو طی کنید.
بعد از اتمام کار شما یک iso دارید که کانفیگ ها و تغییرات و برنامه هایی که نصب کردید توش باقی مونده.
تذکر: این روش اسمش ریمستر کردنه، صرفا ساخت یک توزیع جدید نیست چون بیس همون بیس قدیمه.
پ.ن: میخواستم یک فیلم هم از مراحلش بسازم ولی سیستمم ترکید متاسفانه.
@SohrabContents
خیلی از سوالایی که از من پرسیده میشه اینه که من یک توزیع دبیان بیس نصب کردم، میخوام ازش یک کپی بسازم که کانفیگ هامو داشته باشم و یا میخوام توزیع خودمو داشته باشم.
اول از همه اینکه شما باید تغییراتی که میخواین رو اعمال کنید توی دبین، تغییر تم و غیره
توجه کنید که تم ها باید توی root نصب شده باشن:
/usr/share/icons
/usr/share/themes
بعد از دادن تغییرات و اعمال کردنشون، پوشه های
~/.config
و
~/.local
رو به
/etc/skel
ببرید.
برنامه penguin eggs رو.نصب کنید و طبق دستور العمل گیتهابش مراحل رو طی کنید.
بعد از اتمام کار شما یک iso دارید که کانفیگ ها و تغییرات و برنامه هایی که نصب کردید توش باقی مونده.
تذکر: این روش اسمش ریمستر کردنه، صرفا ساخت یک توزیع جدید نیست چون بیس همون بیس قدیمه.
پ.ن: میخواستم یک فیلم هم از مراحلش بسازم ولی سیستمم ترکید متاسفانه.
@SohrabContents
Forwarded from Dev (♪ Ayhan)
Unraveling the Mystery of Cranial Nerves
https://ayhandev.hashnode.dev/unraveling-the-mystery-of-cranial-nerves
https://ayhandev.hashnode.dev/unraveling-the-mystery-of-cranial-nerves
Forwarded from Gopher Academy
🔵 عنوان مقاله
Streamline Your Product Delivery with monday dev
🟢 خلاصه مقاله:
مقالهای که ارائه شده به بررسی ابزاری به نام "monday dev" میپردازد که فرآیند تولید و عرضه محصولات را تسریع بخشیده و سادهسازی میکند. این ابزار تمام مراحل مختلف توسعه محصول، از مرحله ایدهپردازی تا عرضه نهایی، را در یک پلتفرم یکپارچه ارائه میدهد. استفاده از "monday dev" به تیمها این امکان را میدهد که به طور موثرتر و هماهنگتری کار کنند، به این ترتیب از پراکندگی منابع و زمان در جریان توسعه محصول جلوگیری میکند. این پلتفرم با ارائه امکانات و ابزارهای جامع، روند ایدهپردازی تا تحویل محصول را بهینهسازی کرده و بدین ترتیب میتواند به تسریع در عرضه محصول کمک کند، در حالی که همزمان اطمینان حاصل میشود که تمامی جوانب مورد نیاز در نظر گرفته شدهاند.
🟣لینک مقاله:
https://golangweekly.com/link/159869/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Streamline Your Product Delivery with monday dev
🟢 خلاصه مقاله:
مقالهای که ارائه شده به بررسی ابزاری به نام "monday dev" میپردازد که فرآیند تولید و عرضه محصولات را تسریع بخشیده و سادهسازی میکند. این ابزار تمام مراحل مختلف توسعه محصول، از مرحله ایدهپردازی تا عرضه نهایی، را در یک پلتفرم یکپارچه ارائه میدهد. استفاده از "monday dev" به تیمها این امکان را میدهد که به طور موثرتر و هماهنگتری کار کنند، به این ترتیب از پراکندگی منابع و زمان در جریان توسعه محصول جلوگیری میکند. این پلتفرم با ارائه امکانات و ابزارهای جامع، روند ایدهپردازی تا تحویل محصول را بهینهسازی کرده و بدین ترتیب میتواند به تسریع در عرضه محصول کمک کند، در حالی که همزمان اطمینان حاصل میشود که تمامی جوانب مورد نیاز در نظر گرفته شدهاند.
🟣لینک مقاله:
https://golangweekly.com/link/159869/web
➖➖➖➖➖➖➖➖
👑 @gopher_academy
monday.com
monday.com - Team Collaboration Software
Forwarded from Code Module | کد ماژول (𔓙)
تکنیک های بیشتری برای نوشتن یک رزومه خوب یاد بگیر 👾
توی این پست یه ریپازیتوری خوب بهتون معرفی میکنم که تکنیک های رزومه نویسی، که میتونه در ساخت یه رزومه خوب و استاندارد به شما کمک کنه، شرح داده.
🔗 Link
#resume
@CodeModule
توی این پست یه ریپازیتوری خوب بهتون معرفی میکنم که تکنیک های رزومه نویسی، که میتونه در ساخت یه رزومه خوب و استاندارد به شما کمک کنه، شرح داده.
🔗 Link
#resume
@CodeModule
GitHub
GitHub - ManiMozaffar/awesome-resumes: Create resumes and CV with awesome-resumes. Practical tips, guidelines, guide, examples…
Create resumes and CV with awesome-resumes. Practical tips, guidelines, guide, examples and documentation for all IT fields - ManiMozaffar/awesome-resumes
Forwarded from DevTwitter | توییت برنامه نویسی
در میان کلی خبر مثل انفجار پیجرها، باجگیری از بانکهای ایران، CTF دزدی شاپرک و غیره، هک شدن Dr.Web هم رخ داده و اینقدر وضعیت بد بوده که مجبور شدن اتصال تمامی سرورها به اینترنت را قطع کنند!
تعداد 400 سرور کامل هک شدند و 390G داده به سرقت رفته است!
https://www.bleepingcomputer.com/news/security/russian-security-firm-drweb-disconnects-all-servers-after-breach/
@DevTwitter | <Vahid Nameni/>
تعداد 400 سرور کامل هک شدند و 390G داده به سرقت رفته است!
https://www.bleepingcomputer.com/news/security/russian-security-firm-drweb-disconnects-all-servers-after-breach/
@DevTwitter | <Vahid Nameni/>
Forwarded from Geniuses Group (Omid Hekayati)
🔗 با همفکری و همراهی چند تن از دوستان سومین دوره جلسات کتاب خوانی و نقد و بررسی آن را ترتیب دادیم.
جلسات بدلیل فیلتر شدن نرم افزار دیسکورد در ایران، در گوگل میت برگزار میشه. در کامنت های همین پست، جزییات شرکت در جلسات و صوت ضبط شده جلسات را قرار میدیم.
🤝 در این سری جلسات کتاب Designing Data-Intensive Applications (THE BIG IDEAS BEHIND RELIABLE, SCALABLE, AND MAINTAINABLE SYSTEMS) از نشر o'reilly را بررسی خواهیم کرد. آرشام در این پست بیشتر در مورد این کتاب توضیح داده.
🧠 در جلسات قصد هست همانطور که کتاب هم تاکید داره تبیین درستی از کلمه Data در حوزه #توسعه #نرم_افزار برای خودمون ایجاد کنیم. هر چند همین ابتدا تاکید می کنیم، این کلمه Data محدود به حوزه توسعه نرم افزار قطعا نیست.
✨در انتها یک جلمه از هم پیش گفتار کتاب اینجا بیاریم و یادآوری کنیم که یکی از اهداف از سلسه جلسات قبل یعنی بررسی #فلسفه_علم دقیقا فهم چرایی جمله زیر هست که در اونجا با #یادگیری و جداسازی #علم از #ابزار می تونیم با درک عمیق پرسش ها، #تصمیم_سازی های با کیفیت تری داشته باشه.
Software keeps changing, but the fundamental principles remain the same.
جلسات بدلیل فیلتر شدن نرم افزار دیسکورد در ایران، در گوگل میت برگزار میشه. در کامنت های همین پست، جزییات شرکت در جلسات و صوت ضبط شده جلسات را قرار میدیم.
🤝 در این سری جلسات کتاب Designing Data-Intensive Applications (THE BIG IDEAS BEHIND RELIABLE, SCALABLE, AND MAINTAINABLE SYSTEMS) از نشر o'reilly را بررسی خواهیم کرد. آرشام در این پست بیشتر در مورد این کتاب توضیح داده.
🧠 در جلسات قصد هست همانطور که کتاب هم تاکید داره تبیین درستی از کلمه Data در حوزه #توسعه #نرم_افزار برای خودمون ایجاد کنیم. هر چند همین ابتدا تاکید می کنیم، این کلمه Data محدود به حوزه توسعه نرم افزار قطعا نیست.
✨در انتها یک جلمه از هم پیش گفتار کتاب اینجا بیاریم و یادآوری کنیم که یکی از اهداف از سلسه جلسات قبل یعنی بررسی #فلسفه_علم دقیقا فهم چرایی جمله زیر هست که در اونجا با #یادگیری و جداسازی #علم از #ابزار می تونیم با درک عمیق پرسش ها، #تصمیم_سازی های با کیفیت تری داشته باشه.
Software keeps changing, but the fundamental principles remain the same.
Forwarded from LinFAQ (Reza)
#روزی_یک_نکته با دلاتو
دستهبندی: #آموزشی #کاربردی
#fzf #bash
خب بریم 5 تا فانکشن bash ردیف شده با fzf که به کار میاد ببینیم
این بخش رو به bashrc اضافه کنید تا با Ctrl r بتونید هیستوری بش رو ببینید یا...:
لیست فایل ها (از جمله فایل های پنهان به جز فایل های داخل .git)
ترکیب cd و fzf(از جمله دایرکتوری های پنهان به جز .git):
لیست فایل ها و باز کردنشون با fzf:
دستورات جهت حذف و نصب پکیج ها:
@LinAcademy | @LinFAQ
دستهبندی: #آموزشی #کاربردی
#fzf #bash
خب بریم 5 تا فانکشن bash ردیف شده با fzf که به کار میاد ببینیم
این بخش رو به bashrc اضافه کنید تا با Ctrl r بتونید هیستوری بش رو ببینید یا...:
eval "$(fzf --bash)"
لیست فایل ها (از جمله فایل های پنهان به جز فایل های داخل .git)
function ff() {
vim "$(fd --type f --hidden --exclude .git | fzf --preview 'cat {}' --select-1 --exit-0)"
}ترکیب cd و fzf(از جمله دایرکتوری های پنهان به جز .git):
function fcd() {
cd "$(fd --type d --hidden --exclude .git | fzf --preview 'ls -la {}' --select-1 --exit-0)" || exit
}لیست فایل ها و باز کردنشون با fzf:
open() {
xdg-open "$(fd --type f | fzf)"
}دستورات جهت حذف و نصب پکیج ها:
( البته در pacman )
install() {
pacman -Slq | fzf --multi --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S
}
uninstall() {
pacman -Qq | fzf --multi --preview 'pacman -Qi {1}' | xargs -ro sudo pacman -Rns
}Source
@LinAcademy | @LinFAQ
Forwarded from Gopher Academy
🔵 عنوان مقاله
Tokens for LLMs: Byte Pair Encoding in Go
🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی نقش توکنها در مدلهای زبانی بزرگ (LLMs) میپردازد و تاکید دارد که فهم نحوه کدگذاری و کدگشایی این توکنها به درک بهتر عملکرد LLMها کمک میکند. توکنها واحدهای اساسی دادهها هستند که در LLMها برای مدلسازی زبان استفاده میشوند. این مقاله اشارهای دارد به فرایند کاری LLMها که شامل دو مرحله عمدهی کدگذاری و کدگشایی است. در مرحله کدگذاری، توکنها به نمایشهای عددی تبدیل میشوند که قابلیت پردازش توسط مدل را دارند، و در مرحله کدگشایی، خروجیهای مدل به زبان طبیعی تبدیل میشوند که این امر امکان تولید متن به زبانی که برای انسانها قابل فهم است را فراهم میآورد. این فرآیندها بنیادی برای توانایی LLMها در درک و تولید زبان به شکلی که ما آن را تجربه میکنیم هستند. از این رو، فهم این توکنها و چگونگی کارکرد آنها کلیدی است تا بتوان به طور کامل قابلیتها و محدودیتهای مدلهای زبانی بزرگ را فهمید.
🟣لینک مقاله:
https://eli.thegreenplace.net/2024/tokens-for-llms-byte-pair-encoding-in-go/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Tokens for LLMs: Byte Pair Encoding in Go
🟢 خلاصه مقاله:
مقاله مورد بحث به بررسی نقش توکنها در مدلهای زبانی بزرگ (LLMs) میپردازد و تاکید دارد که فهم نحوه کدگذاری و کدگشایی این توکنها به درک بهتر عملکرد LLMها کمک میکند. توکنها واحدهای اساسی دادهها هستند که در LLMها برای مدلسازی زبان استفاده میشوند. این مقاله اشارهای دارد به فرایند کاری LLMها که شامل دو مرحله عمدهی کدگذاری و کدگشایی است. در مرحله کدگذاری، توکنها به نمایشهای عددی تبدیل میشوند که قابلیت پردازش توسط مدل را دارند، و در مرحله کدگشایی، خروجیهای مدل به زبان طبیعی تبدیل میشوند که این امر امکان تولید متن به زبانی که برای انسانها قابل فهم است را فراهم میآورد. این فرآیندها بنیادی برای توانایی LLMها در درک و تولید زبان به شکلی که ما آن را تجربه میکنیم هستند. از این رو، فهم این توکنها و چگونگی کارکرد آنها کلیدی است تا بتوان به طور کامل قابلیتها و محدودیتهای مدلهای زبانی بزرگ را فهمید.
🟣لینک مقاله:
https://eli.thegreenplace.net/2024/tokens-for-llms-byte-pair-encoding-in-go/
➖➖➖➖➖➖➖➖
👑 @gopher_academy
Forwarded from Linuxor ?
چطور بدون سابقه کاری، رزومهای قوی بسازیم؟
مهم ترین چیزی که توی رزومه شما میشه پیدا کرد سابقه کاریتون توی جا های دیگس،
اما درست کردن سابقه برای شروع خیلی سخته، چون برای درست کردنش خودش نیاز به سابقه داره.
راحت ترین چیزی که میمونه گرفتن مدرک ها و سرتیفیکیت هاست، این ریپو اومده یه لیستی از کورس ها و سرتیفیکیت های رایگان که اتفاقا معتبر هم هستن رو جمع آوری کرده
https://github.com/cloudcommunity/Free-Certifications
مثلا بجای اینکه ساده بنویسید Network بلدم بنویسید فلان سرتیفیکیت Network رو از huawei دارم، خیلی خیلی توی رزومتون بولد تر دیده میشه.
🐧 @Linuxor
مهم ترین چیزی که توی رزومه شما میشه پیدا کرد سابقه کاریتون توی جا های دیگس،
اما درست کردن سابقه برای شروع خیلی سخته، چون برای درست کردنش خودش نیاز به سابقه داره.
راحت ترین چیزی که میمونه گرفتن مدرک ها و سرتیفیکیت هاست، این ریپو اومده یه لیستی از کورس ها و سرتیفیکیت های رایگان که اتفاقا معتبر هم هستن رو جمع آوری کرده
https://github.com/cloudcommunity/Free-Certifications
مثلا بجای اینکه ساده بنویسید Network بلدم بنویسید فلان سرتیفیکیت Network رو از huawei دارم، خیلی خیلی توی رزومتون بولد تر دیده میشه.
🐧 @Linuxor
Forwarded from Python BackendHub (Mani)
یک پست خیلییی خوب دیدم تو لینکدین حیفم اومد باهاتون به اشتراک نذارم!
لینک پست
تو پست بعدی ترجمه شدشو با chatgpt میذارم
@PyBackendHub
لینک پست
تو پست بعدی ترجمه شدشو با chatgpt میذارم
@PyBackendHub
Forwarded from Python BackendHub (Mani)
مدیرها، بیخیال تیمهاتون بشید! لازم نیست کارمندها رو مثل بچههایی که نیاز به مراقبت دائم دارن، کنترل کنید.
اونا نباید برای داشتن زندگی شخصی بیرون از کار معذرتخواهی کنن.
به تیمتون اعتماد کنید که کار رو تحویل بدن. اینجوری یه محیط مثبت و مولد میسازید که همه میتونن توش رشد کنن.
استخدام افراد درست فقط شروع کاره. جادوی واقعی زمانی اتفاق میافته که بهشون اعتماد کنید و قدرت بدید.
اعتماد یعنی اینکه به تیمتون آزادی بدید که کارشون رو بدون دخالت مستقیم شما مدیریت کنن. این نشون میده که بهشون بهعنوان آدمهای بالغی که میتونن هم زندگی کاری و هم زندگی شخصیشون رو مدیریت کنن، احترام میذارید.
این فقط محدود به مرخصی و تعطیلات نیست.
بحث اینه که یه فرهنگ بسازید که آدمها توش احساس کنن میتونن کارشون رو به بهترین شکل ممکن انجام بدن - چه توی دفتر باشن، چه از راه دور کار کنن، یا حتی وسط روز کارهای شخصیشون رو انجام بدن.
تمرکز باید روی نتیجه باشه، نه “micromanagement”.
Micromanagement خلاقیت رو میکشه و انگیزه رو نابود میکنه.
اعتماد، برعکس، آدمها رو به بهترین عملکردشون تشویق میکنه.
وقتی به تیمتون مالکیت کارهاشون رو میدید و بهشون فضا میدید که موفق بشن، میبینید که چطور رشد میکنن.
چطور این فرهنگ رو بسازیم:
- افراد درست رو استخدام کنید: مطمئن شید که مهارت دارن و با ارزشهای شرکت همسو هستن.
- به تیمتون اعتماد کنید: بذارید مالک کارهاشون باشن و خودتون رو از دخالت مستقیم دور نگه دارید.
- آزادی بدید: بهشون اجازه بدید تصمیم بگیرن و ابزارهای لازم رو فراهم کنید.
- رهبران قوی تربیت کنید: مدیرها رو طوری آموزش بدید که بتونن تیمها رو حمایت کنن بدون اینکه کنترل کنن.
- ارتباطات رو باز نگه دارید: فضایی ایجاد کنید که آدمها احساس امنیت کنن و بتونن ایدهها و فیدبکهاشون رو راحت به اشتراک بذارن.
- موفقیتها رو جشن بگیرید: دستاوردها رو بشناسید و انگیزه رو بالا نگه دارید.
- از تعادل بین کار و زندگی حمایت کنید: به تعادل سالم تشویق کنید تا رفاه و بهرهوری بهتر بشه.
♻️ Neha K Puri
@PyBackendHub
اونا نباید برای داشتن زندگی شخصی بیرون از کار معذرتخواهی کنن.
به تیمتون اعتماد کنید که کار رو تحویل بدن. اینجوری یه محیط مثبت و مولد میسازید که همه میتونن توش رشد کنن.
استخدام افراد درست فقط شروع کاره. جادوی واقعی زمانی اتفاق میافته که بهشون اعتماد کنید و قدرت بدید.
اعتماد یعنی اینکه به تیمتون آزادی بدید که کارشون رو بدون دخالت مستقیم شما مدیریت کنن. این نشون میده که بهشون بهعنوان آدمهای بالغی که میتونن هم زندگی کاری و هم زندگی شخصیشون رو مدیریت کنن، احترام میذارید.
این فقط محدود به مرخصی و تعطیلات نیست.
بحث اینه که یه فرهنگ بسازید که آدمها توش احساس کنن میتونن کارشون رو به بهترین شکل ممکن انجام بدن - چه توی دفتر باشن، چه از راه دور کار کنن، یا حتی وسط روز کارهای شخصیشون رو انجام بدن.
تمرکز باید روی نتیجه باشه، نه “micromanagement”.
Micromanagement خلاقیت رو میکشه و انگیزه رو نابود میکنه.
اعتماد، برعکس، آدمها رو به بهترین عملکردشون تشویق میکنه.
وقتی به تیمتون مالکیت کارهاشون رو میدید و بهشون فضا میدید که موفق بشن، میبینید که چطور رشد میکنن.
چطور این فرهنگ رو بسازیم:
- افراد درست رو استخدام کنید: مطمئن شید که مهارت دارن و با ارزشهای شرکت همسو هستن.
- به تیمتون اعتماد کنید: بذارید مالک کارهاشون باشن و خودتون رو از دخالت مستقیم دور نگه دارید.
- آزادی بدید: بهشون اجازه بدید تصمیم بگیرن و ابزارهای لازم رو فراهم کنید.
- رهبران قوی تربیت کنید: مدیرها رو طوری آموزش بدید که بتونن تیمها رو حمایت کنن بدون اینکه کنترل کنن.
- ارتباطات رو باز نگه دارید: فضایی ایجاد کنید که آدمها احساس امنیت کنن و بتونن ایدهها و فیدبکهاشون رو راحت به اشتراک بذارن.
- موفقیتها رو جشن بگیرید: دستاوردها رو بشناسید و انگیزه رو بالا نگه دارید.
- از تعادل بین کار و زندگی حمایت کنید: به تعادل سالم تشویق کنید تا رفاه و بهرهوری بهتر بشه.
♻️ Neha K Puri
@PyBackendHub
Forwarded from کانال اطلاعرسانی توزیع پارچ
Forwarded from LearnPOV | لرن پی او وی
●● دلایل ایجاد overflow در صفحات html ●●
🔸 احتمالا برای شما هم پیش اومده که در حال کار بر روی یک صفحه وب هستید و ناگهان متوجه اسکرول افقی در صفحه میشوید، توی این مطلب دلایل بروز این مشکل رو بررسی میکنیم
1️⃣ استفاده از واحدهای ثابت مانند px برای عرض
اگر از واحدهای ثابت مثل px برای عرض یک عنصر استفاده کنید و این عرض بیشتر از اندازه ویوپورت باشد، اسکرول ایجاد میشود.
راه حل ها :
2️⃣ عدم تنظیم صحیح box-sizing
به صورت پیشفرض، ویژگی padding و border به عرض یک عنصر اضافه میشوند، که ممکن است باعث شود عرض کلی عنصر از مقدار مورد انتظار بیشتر شود و اسکرول ایجاد کند و راه حل برطرف کردنش استفاده از box-sizing: border-box هستش.
راه حل :
3️⃣ استفاده از position: absolute یا position: fixed
اگر عنصری با استفاده از position: absolute یا position: fixed از ویوپورت خارج شود، میتواند اسکرول افقی ایجاد کند.
مثال :
4️⃣ عدم مدیریت صحیح کلمات بلند یا لینکها
متنها یا لینکهای بسیار بلند که در یک خط قرار میگیرند (مانند لینکهای طولانی یا کلمات بدون فاصله) میتوانند عرض صفحه را بشکنند و اسکرول افقی ایجاد کنند.
راه حل :
✅ راهحل جامع
برای جلوگیری از اسکرول افقی در کل صفحه میتونید از ویژگی overflow-x: hidden استفاده کنید، اگر نیازی به اسکرول افقی ندارید.
نحوه استفاده :
💎 توی این مطلب سعی کردم تمامی مواردی که میتونن باعث اسکرول افقی در صفحه بشن رو بهتون توضیح بدم
🔸 احتمالا برای شما هم پیش اومده که در حال کار بر روی یک صفحه وب هستید و ناگهان متوجه اسکرول افقی در صفحه میشوید، توی این مطلب دلایل بروز این مشکل رو بررسی میکنیم
1️⃣ استفاده از واحدهای ثابت مانند px برای عرض
اگر از واحدهای ثابت مثل px برای عرض یک عنصر استفاده کنید و این عرض بیشتر از اندازه ویوپورت باشد، اسکرول ایجاد میشود.
راه حل ها :
● ریسپانسیو کردن المنت ها و جلوگیری از بروز این مشکل در سایز های کوچک تر.
● استفاده از واحدهای نسبی مثل % یا vw این.
.element {
width: 100vw;
}2️⃣ عدم تنظیم صحیح box-sizing
به صورت پیشفرض، ویژگی padding و border به عرض یک عنصر اضافه میشوند، که ممکن است باعث شود عرض کلی عنصر از مقدار مورد انتظار بیشتر شود و اسکرول ایجاد کند و راه حل برطرف کردنش استفاده از box-sizing: border-box هستش.
راه حل :
* { box-sizing: border-box; }استفاده از box-sizing: border-box باعث میشود padding و border داخل عرض اصلی محاسبه شوند.
3️⃣ استفاده از position: absolute یا position: fixed
اگر عنصری با استفاده از position: absolute یا position: fixed از ویوپورت خارج شود، میتواند اسکرول افقی ایجاد کند.
مثال :
.out-of-bounds { position: absolute; left: 2000px; } 4️⃣ عدم مدیریت صحیح کلمات بلند یا لینکها
متنها یا لینکهای بسیار بلند که در یک خط قرار میگیرند (مانند لینکهای طولانی یا کلمات بدون فاصله) میتوانند عرض صفحه را بشکنند و اسکرول افقی ایجاد کنند.
راه حل :
استفاده ویژگیهای word-break و overflow-wrap باعث میشه تا مرورگر در صورت برخورد با کلمات بلند، اونها رو به صورت خودکار شکسته و در خطوط جدید قرار دهد.
.long-text {
word-break: break-all;
overflow-wrap: break-word;
}✅ راهحل جامع
برای جلوگیری از اسکرول افقی در کل صفحه میتونید از ویژگی overflow-x: hidden استفاده کنید، اگر نیازی به اسکرول افقی ندارید.
نحوه استفاده :
body { overflow-x: hidden; }این کد از ایجاد اسکرول افقی جلوگیری میکنه، حتی اگر برخی از عناصر به صورت پیشفرض از عرض ویوپورت خارج بشن.
💎 توی این مطلب سعی کردم تمامی مواردی که میتونن باعث اسکرول افقی در صفحه بشن رو بهتون توضیح بدم
اگر براتون کاربردی و مفید بود حمایت یادتون نره، برای رفقاتونم بفرستید تا استفاده کنن 🔥❤️
#️⃣ #overflow #css #webpage
🚀 @coolycode
Forwarded from DevTwitter | توییت برنامه نویسی
کمپایل کدهای C در آپدیت اخیر Bun
از الان پکیج فروش های جاوااسکریپت میتونن ادعا کنن میشه با جی اس، سیستم عامل نوشت :)
https://bun.sh/blog/compile-and-run-c-in-js
@DevTwitter | <hadi mirzaei/>
از الان پکیج فروش های جاوااسکریپت میتونن ادعا کنن میشه با جی اس، سیستم عامل نوشت :)
https://bun.sh/blog/compile-and-run-c-in-js
@DevTwitter | <hadi mirzaei/>
Forwarded from دستاوردهای یادگیری عمیق(InTec)
این بار برای تست مدل یک سری تغییرات دادم :
همونطور که قبلتر هم اشاره کردم Qwen2 جزو مدلهایی هست که من همیشه ازش استفاده میکنم؛ مخصوصا روی سیستم خودم و کنار مدلهای دیگهای که دارم (multi-model)
اینبار این مدل رو با qwen2 مقایسه کردم؛ اول روی تسکهای عادی از چندساعت قبل داشتم روی یک سورس کد
نکته دوم
توی این موارد که بیشتر سرچ و توضیح بخش از کد بود و با توجه به اینکه روی
برای مثال روی مفهوم مربوط به
البته بعد از ۲-۳ بار تکرار هم زمان پاسخ
سوالات بعدی هم این موارد بود که qwen2.5 تمام موارد رو به خوبی جواب داد:
۱- سوالاتی درمورد اتفاقات اخیر انتخابات آمریکا
۲- موضوع مربوط به انفجار پیجرها و ...
۳- سخنرانی اسنودن و خلاصه صحبتش درمورد انتخابات و انتخاب رئیس جمهور
این ۳ مورد کاملا جدید بود و میشد نحوه کارش برای استخراج اطلاعات رو تست کرد؛ متاسفانه
مشکلی که با
مشکل اصلی که با
سوالات حل ریاضی - تصویر و ... هم بهش ندادم؛ چون توی کاربردهایی نیست که استفاده میکنم ولی قطعا برنده این بخش
بعد رفتم سراغ
تقریبا تمام موارد رو بدون نیاز به گوگل کردن به جواب رسیدم؛ بهترین مورد در مورد هر ۲ مدل
شدیدا منتظر انتشار مدل
دارم به این فکر میکنم شاید باید به زودی سختافزار رو برای استفاده از مدلهای
همونطور که قبلتر هم اشاره کردم Qwen2 جزو مدلهایی هست که من همیشه ازش استفاده میکنم؛ مخصوصا روی سیستم خودم و کنار مدلهای دیگهای که دارم (multi-model)
اینبار این مدل رو با qwen2 مقایسه کردم؛ اول روی تسکهای عادی از چندساعت قبل داشتم روی یک سورس کد
Rust کار میکردم؛ البته بیشتر برای یادگیری داشتم میخوندم و این ۲ مدل رو با chatgpt مقایسه کردم؛ به همه مدلها دسترسی به اینترنت دادم برای سرچ زدن و البته برای مدلهای لوکل از duckduckgo استفاده میکردم.نکته دوم
context-length مدل رو روی همون 8K نگه داشتم.توی این موارد که بیشتر سرچ و توضیح بخش از کد بود و با توجه به اینکه روی
Rust هم آموزش دیده خیلی راحت جواب میداد؛ qwen2 جاهایی رو اشتباه میزد مخصوصا وقتی مثال نزدیک بهش توی داکیومنت یا سرچ پیدا نمیکرد. اما نسخه 2.5 موردی نبود که نشه جواب بده خیلی جالب بود که وقتی مثال خوبی هم پیدا نمیکرد بر اساس توضیحات میتونست خودش مثال هم بزنه (دسترسی به سرچ رو میبستم و ازش میخواستم مثال بزنه) مدل chatgpt هم همینکار رو میکرد اما مثالهای سختتری میزد برای مثال روی مفهوم مربوط به
lifetime ازش سوال پرسیدم اما مثالی که تحویل داد ترکیبی از lifetime, generic بود و وقتی گفتم با مفهوم دوم آشنا نیستم و مثالی بزنه که فقط lifetime توی حالت خاصی که پرسیدم رو توضیح بده؛ یک مثال ساده زد که دیگه اون قوانین lifetime رو نداشت.البته بعد از ۲-۳ بار تکرار هم زمان پاسخ
chatgpt کمتر میشد هم نتایج بهبود پیدا میکرد ولی بطور کلی من امتیاز این بخش رو به qwen2.5 میدم.سوالات بعدی هم این موارد بود که qwen2.5 تمام موارد رو به خوبی جواب داد:
۱- سوالاتی درمورد اتفاقات اخیر انتخابات آمریکا
۲- موضوع مربوط به انفجار پیجرها و ...
۳- سخنرانی اسنودن و خلاصه صحبتش درمورد انتخابات و انتخاب رئیس جمهور
این ۳ مورد کاملا جدید بود و میشد نحوه کارش برای استخراج اطلاعات رو تست کرد؛ متاسفانه
chatgpt کمی با احتیاط پاسخ میداد (یک سری سوالات جزئی دیگر هم پرسیدم که مجبورش کنم جواب دقیقتر و بیپرده بده ولی با اینکه با توجه به factها باید یک طرف رو انتخاب میکرد اینکار رو نکرد)مشکلی که با
qwen2.5 نبود و راحت تر میشد ازش جواب بر اساس دیتا گرفت (البته این مدل هم سانسور شده هست ولی به سوالات عمومی بر اساس دیتا راحتتر جواب میده)مشکل اصلی که با
qwen2.5 روی سوالات بالا داشتم کم بودن context-length بود؛ چون گزارش شده بود که مدل 32 میلیارد پارامتری عملکرد بهتری از chatgpt 4o-mini داره برای همین منم از 32b استفاده کردم بجای 7b و مجبور شدم روی 8K context بمونم.سوالات حل ریاضی - تصویر و ... هم بهش ندادم؛ چون توی کاربردهایی نیست که استفاده میکنم ولی قطعا برنده این بخش
chatgpt o1 خواهد بود بدون شک.بعد رفتم سراغ
qwen2.5-coder فعلا فقط مدل 7b منتشر شده؛ و منم مستقیم رفتم سر وقت باگهایی که توی کدهای Rust داشتم میگرفتم؛ خیلی سوالاتم سخت و پیچیده نبود شاید (چون تازهکار هستم توی Rust و نمیتونم ارزیابی کنم سطح کدها رو) و تمام موارد رو با روش ۵ مرحلهای که چندشب پیش گفتم ارزیابی کردم.تقریبا تمام موارد رو بدون نیاز به گوگل کردن به جواب رسیدم؛ بهترین مورد در مورد هر ۲ مدل
qwen2.5, qwen2.5-coder قدرتشون توی دنبال کردن دستورالعملها بود.شدیدا منتظر انتشار مدل
qwen2.5-coder 32b هستم برای استفاده روزمره.دارم به این فکر میکنم شاید باید به زودی سختافزار رو برای استفاده از مدلهای
70b آپگرید کنم 🧐Forwarded from ASafaeirad
React 19 Cheat Sheet
by Kent C. Dodds
https://res.cloudinary.com/epic-web/image/upload/v1725974609/react-19-cheat-sheet.pdf
#react
by Kent C. Dodds
https://res.cloudinary.com/epic-web/image/upload/v1725974609/react-19-cheat-sheet.pdf
#react
Forwarded from Laravel News
Fetch PHP is a Lightweight HTTP Library Inspired by JavaScript's fetch() https://laravel-news.com/fetch-php
Laravel News
Fetch PHP is a Lightweight HTTP Library Inspired by JavaScript's fetch() - Laravel News
Fetch PHP is a lightweight HTTP library inspired by JavaScript's fetch, bringing simplicity and flexibility to PHP HTTP requests.
Forwarded from linuxtnt(linux tips and tricks) (hosein seilany https://seilany.ir/)
دستوراتی برای مدیران سیستم لینوکس:
برای پشتیبان گیری از grub
برای بازیابی از grub
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
https://seilany.ir
برای پشتیبان گیری از grub
sudo dd if=/dev/sd1 of=/mbr_backup.img bs=512 count=1
برای بازیابی از grub
sudo dd if=/mbr_backup.img of=/dev/sda bs=512 count=1
نویسنده: حسین سیلانی
منبع : کانال لینوکسی: لینوکس تی ان تی
@linuxtnt
https://seilany.ir