فیگما ایجنت قابلیت جدید هوش مصنوعی فیگماست که تازه از ۲۰ می ۲۰۲۶ بهصورت limited beta برای بعضی کاربران فعال شده؛ ایدهاش این است که AI فقط یک چتباکس کنار ابزار طراحی نباشد، بلکه مستقیم داخل canvas فیگما کار کند: از روی context فایل، design system، کامپوننتها و استانداردهای تیم بفهمد چه باید بسازد یا اصلاح کند، bulk edit انجام دهد، ایده بدهد، فیدبک طراحی بدهد و حتی با استفاده از skills طبق الگوهای تیم خروجی نزدیکتری به استاندارد محصول تولید کند. خلاصهاش این است که فیگما دارد از «ابزار طراحی» به سمت «محیط طراحی با همکار هوشمند داخل خود فایل» حرکت میکند؛ البته فعلاً برای همه باز نشده و در مرحله rollout محدود است.
https://www.figma.com/blog/the-figma-agent-is-here/
@codehalics | کدهالیک
https://www.figma.com/blog/the-figma-agent-is-here/
@codehalics | کدهالیک
Figma
The Figma Design Agent is Here | Figma Blog
Starting today, work with an agent that is built for Figma—directly on the canvas.
فونت زیبای استعداد (Estedad)، کاری از امین عابدی، منتشر شده در Google Fonts.
https://x.com/aminabedi68/status/2057411238829699436?s=20
https://fonts.google.com/specimen/Estedad
@codehalics | کدهالیک
https://x.com/aminabedi68/status/2057411238829699436?s=20
https://fonts.google.com/specimen/Estedad
@codehalics | کدهالیک
👍6❤3
پایتون ۳.۱۵ هنوز رسمی منتشر نشده، ولی بعضی از تغییرات ریزش واقعاً جذابتر از فیچرای اصلین
یکی از بهترین اضافهها اینه که بالاخره میشه
و تمام.
یه تغییر خیلی خفن دیگه هم برای context managerهاست. از این به بعد وقتی از context manager بهعنوان decorator استفاده میکنیم، روی async function و generator هم درست کار میکنه. قبلاً decorator عملاً همون اول تموم میشد و کل lifecycle فانکشن رو پوشش نمیداد. این تغییر کوچیکه ولی برای کسایی که ابزارهای profiling/logging مینویسن خیلی ارزشیه.
تو بخش threading هم بالاخره iteratorهای thread-safe اضافه شدن. قبلاً اگر چند thread همزمان از یه iterator میخوندن احتمال خراب شدن state یا skip شدن دادهها وجود داشت. الان با:
خیلی راحت میشه امنش کرد.
یه قابلیت بامزه هم اضافه شده برای
الان عملگر xor (`^`) هم داره 😄
یعنی میشه symmetric difference روی Counterها انجام داد. شاید استفاده روزمره نداشته باشه ولی از لحاظ کاملتر شدن API حرکت جالبیه.
و آخرین چیزی که خیلی دوست داشتم:
الان میشه JSON رو مستقیم به ساختارهای immutable تبدیل کرد. یعنی مثلاً لیستها tuple بشن و objectها frozendict. برای caching و hash کردن دادهها خیلی کاربردیه.
در کل حس میکنم پایتون ۳.۱۵ بیشتر از اینکه فقط flashy feature داشته باشه، داره جاهای اذیتکننده و قدیمی زبان رو تمیز و بالغتر میکنه؛ همون تغییرایی که شاید تیتر خبر نشن ولی برنامهنویسها هر روز قدرشونو میفهمن.
https://blog.changs.co.uk/python-315-features-that-didnt-make-the-headlines.html
@codehalics | کدهالیک
یکی از بهترین اضافهها اینه که بالاخره میشه
TaskGroup توی asyncio رو تمیز و بیدردسر کنسل کرد. قبلاً برای متوقف کردن یه گروه تسک باید کلی حقه با Exception و suppress میزدیم، الان فقط:
tg.cancel()
و تمام.
یه تغییر خیلی خفن دیگه هم برای context managerهاست. از این به بعد وقتی از context manager بهعنوان decorator استفاده میکنیم، روی async function و generator هم درست کار میکنه. قبلاً decorator عملاً همون اول تموم میشد و کل lifecycle فانکشن رو پوشش نمیداد. این تغییر کوچیکه ولی برای کسایی که ابزارهای profiling/logging مینویسن خیلی ارزشیه.
تو بخش threading هم بالاخره iteratorهای thread-safe اضافه شدن. قبلاً اگر چند thread همزمان از یه iterator میخوندن احتمال خراب شدن state یا skip شدن دادهها وجود داشت. الان با:
threading.serialize_iterator(...)
خیلی راحت میشه امنش کرد.
یه قابلیت بامزه هم اضافه شده برای
Counter:الان عملگر xor (`^`) هم داره 😄
یعنی میشه symmetric difference روی Counterها انجام داد. شاید استفاده روزمره نداشته باشه ولی از لحاظ کاملتر شدن API حرکت جالبیه.
و آخرین چیزی که خیلی دوست داشتم:
الان میشه JSON رو مستقیم به ساختارهای immutable تبدیل کرد. یعنی مثلاً لیستها tuple بشن و objectها frozendict. برای caching و hash کردن دادهها خیلی کاربردیه.
در کل حس میکنم پایتون ۳.۱۵ بیشتر از اینکه فقط flashy feature داشته باشه، داره جاهای اذیتکننده و قدیمی زبان رو تمیز و بالغتر میکنه؛ همون تغییرایی که شاید تیتر خبر نشن ولی برنامهنویسها هر روز قدرشونو میفهمن.
https://blog.changs.co.uk/python-315-features-that-didnt-make-the-headlines.html
@codehalics | کدهالیک
blog.changs.co.uk
Python 3.15: features that didn't make the headlines
It's that time of the year again, a new version of Python is just around the corner. With the Python 3.15.0b1 feature freeze, we know what's...
پروژهی Freenet یک پلتفرم همتابههمتا (peer to peer) برای ساخت اپلیکیشنهای غیرمتمرکز است که هدفش حذف وابستگی به سرورهای مرکزی و شرکتهای بزرگ فناوری است. در این سیستم، هر کاربر بخشی از شبکه محسوب میشود و دادهها و درخواستها بین دستگاههای مختلف در یک شبکه توزیعشده جابهجا میشوند. توسعهدهندگان میتوانند با ابزارهای آشنا مثل Rust و TypeScript اپلیکیشنهایی بسازند که بدون نیاز به سرور مرکزی اجرا شوند و روی یک شبکه جهانی از کاربران میزبانی شوند.
این پروژه با هدف ایجاد اینترنتی مقاوم در برابر سانسور و خاموش شدن طراحی شده است؛ جایی که اپها مثل وبسایتهای معمولی در مرورگر اجرا میشوند، اما روی زیرساختی غیرمتمرکز قرار دارند. طرفداران آن میگویند این مدل میتواند کنترل شرکتهای بزرگ روی اینترنت را کاهش دهد و حریم خصوصی کاربران را افزایش دهد، هرچند هنوز چالشهایی مثل سرعت، تجربه کاربری و امکان سوءاستفاده در چنین شبکههایی وجود دارد.
https://freenet.org/
@codehalics | کدهالیک
این پروژه با هدف ایجاد اینترنتی مقاوم در برابر سانسور و خاموش شدن طراحی شده است؛ جایی که اپها مثل وبسایتهای معمولی در مرورگر اجرا میشوند، اما روی زیرساختی غیرمتمرکز قرار دارند. طرفداران آن میگویند این مدل میتواند کنترل شرکتهای بزرگ روی اینترنت را کاهش دهد و حریم خصوصی کاربران را افزایش دهد، هرچند هنوز چالشهایی مثل سرعت، تجربه کاربری و امکان سوءاستفاده در چنین شبکههایی وجود دارد.
https://freenet.org/
@codehalics | کدهالیک
❤2
توی آموزش قوانین مهندسی نرم افزار به یه قانون جدید برمیخوریم که امروز هادی جان احمدی بررسیش کردن و من هم میخوام بهش بپردازم :
ADR (Architecture Decision Record)
یه جور سند کوتاه و سادهست که توی پروژههای نرمافزاری، تصمیمهای مهم معماری رو ثبت میکنه. تصور کن داری انتخاب میکنی کدوم دیتابیس رو استفاده کنی، یا بری سراغ میکروسرویس یا مونولیث؛ به جای اینکه فقط توی کد بزنی و بعداً همه یادشون بره چرا این کار رو کردید، یه فایل کوچیک markdown مینویسی، مشکل رو توضیح میدی، گزینهها رو مقایسه میکنی، میگی چرا این یکی رو انتخاب کردی و چه خوبی و بدیهایی داره. اینطوری تیم جدید که میاد گیج نمیشه، بعداً هم راحت میتونی ببینی تصمیمها چطور تکامل پیدا کردن. خیلی خودمونی بگم، مثل یه دفترچه خاطرات برای تصمیمهای فنی پروژهته که جلوی تکرار اشتباهات و دعواهای بیخودی رو میگیره.
عمو مارتین فولر راجبش تو بلاگش نوشته
https://martinfowler.com/bliki/ArchitectureDecisionRecord.html
#lawsofsoftwareengineering
سورس توییت از استاد هادی احمدی
@codehalics | کدهالیک
ADR (Architecture Decision Record)
یه جور سند کوتاه و سادهست که توی پروژههای نرمافزاری، تصمیمهای مهم معماری رو ثبت میکنه. تصور کن داری انتخاب میکنی کدوم دیتابیس رو استفاده کنی، یا بری سراغ میکروسرویس یا مونولیث؛ به جای اینکه فقط توی کد بزنی و بعداً همه یادشون بره چرا این کار رو کردید، یه فایل کوچیک markdown مینویسی، مشکل رو توضیح میدی، گزینهها رو مقایسه میکنی، میگی چرا این یکی رو انتخاب کردی و چه خوبی و بدیهایی داره. اینطوری تیم جدید که میاد گیج نمیشه، بعداً هم راحت میتونی ببینی تصمیمها چطور تکامل پیدا کردن. خیلی خودمونی بگم، مثل یه دفترچه خاطرات برای تصمیمهای فنی پروژهته که جلوی تکرار اشتباهات و دعواهای بیخودی رو میگیره.
عمو مارتین فولر راجبش تو بلاگش نوشته
https://martinfowler.com/bliki/ArchitectureDecisionRecord.html
#lawsofsoftwareengineering
سورس توییت از استاد هادی احمدی
@codehalics | کدهالیک
❤6
کدهالیک | codehalic
توی آموزش قوانین مهندسی نرم افزار به یه قانون جدید برمیخوریم که امروز هادی جان احمدی بررسیش کردن و من هم میخوام بهش بپردازم : ADR (Architecture Decision Record) یه جور سند کوتاه و سادهست که توی پروژههای نرمافزاری، تصمیمهای مهم معماری رو ثبت میکنه.…
شاید بپرسید خوب چطوری باید بنویسیم
من از کف یکی از پروژه های اوپن سورس
تونستم لیست ADR هایی که نوشته رو دربیارم
به طور مثال
https://github.com/croz-ltd/klokwrk-project/blob/master/support/documentation/adr/content/0001-architectural-decision-records.md
تمام مقالات این فولدر داره راجب انواع تصمیمات معماری راجب این پروژه صحبت میکنه مثلا چه دلیلی داشته رفتن سمت استفاده از یه پکیج یا یه دیزاین پترن خاص یا تست نوشتن یا خیلی چیزای اینطوری و یه تمپلیت باحال داره که میتونین ازش کمک بگیرین یک دست بنویسید ADR هاتونو
لینک ADR ها :
https://github.com/croz-ltd/klokwrk-project/tree/master/support/documentation/adr/content
@codehalics | کدهالیک
من از کف یکی از پروژه های اوپن سورس
تونستم لیست ADR هایی که نوشته رو دربیارم
به طور مثال
https://github.com/croz-ltd/klokwrk-project/blob/master/support/documentation/adr/content/0001-architectural-decision-records.md
تمام مقالات این فولدر داره راجب انواع تصمیمات معماری راجب این پروژه صحبت میکنه مثلا چه دلیلی داشته رفتن سمت استفاده از یه پکیج یا یه دیزاین پترن خاص یا تست نوشتن یا خیلی چیزای اینطوری و یه تمپلیت باحال داره که میتونین ازش کمک بگیرین یک دست بنویسید ADR هاتونو
لینک ADR ها :
https://github.com/croz-ltd/klokwrk-project/tree/master/support/documentation/adr/content
@codehalics | کدهالیک
❤1
کدهالیک | codehalic
شاید بپرسید خوب چطوری باید بنویسیم من از کف یکی از پروژه های اوپن سورس تونستم لیست ADR هایی که نوشته رو دربیارم به طور مثال https://github.com/croz-ltd/klokwrk-project/blob/master/support/documentation/adr/content/0001-architectural-decision-records.md…
یه نمونه خیلی جذاب تر پروژه backstage که اسپاتیفای ساختش
اولش برای خودشون ساخته بودن ولی بعدش اوپن سورسش کرده
خود همین backstage واس همین کار ساخته شده که مستندات یه سرویس یه جا دیده بشه و تیم ها بدونن هر سرویس مال کیه و ساخت سرویس جدید سریع تر بشه !
پس در واقع یه پنل داخلی برای شرکتهای بزرگ که همه سرویسها، تیمها، و ابزارهای توسعه رو یکجا جمع میکنه
حالا خود همین پروژه که تقریبا میتونه یکی از کاراش ADR باشه هم ADR داره واس خودش !
که باز از این قسمت میتونین لیست ADR هاشو ببینید
https://github.com/backstage/backstage/tree/master/docs/architecture-decisions
https://backstage.io/
@codehalics | کدهالیک
اولش برای خودشون ساخته بودن ولی بعدش اوپن سورسش کرده
خود همین backstage واس همین کار ساخته شده که مستندات یه سرویس یه جا دیده بشه و تیم ها بدونن هر سرویس مال کیه و ساخت سرویس جدید سریع تر بشه !
پس در واقع یه پنل داخلی برای شرکتهای بزرگ که همه سرویسها، تیمها، و ابزارهای توسعه رو یکجا جمع میکنه
حالا خود همین پروژه که تقریبا میتونه یکی از کاراش ADR باشه هم ADR داره واس خودش !
که باز از این قسمت میتونین لیست ADR هاشو ببینید
https://github.com/backstage/backstage/tree/master/docs/architecture-decisions
https://backstage.io/
@codehalics | کدهالیک
❤1
Forwarded from کار باشه !
سلام سلام
یکی از دوستانم سه پوزیشن باز دارن توی سازمانشون
• Senior Python developer
• Senior Java developer
• Senior React developer
لطفا رزومه هاتون رو به آیدی زیر بفرستین:
@AhmadSharifian
#backend #frontend
➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
یکی از دوستانم سه پوزیشن باز دارن توی سازمانشون
• Senior Python developer
• Senior Java developer
• Senior React developer
لطفا رزومه هاتون رو به آیدی زیر بفرستین:
@AhmadSharifian
#backend #frontend
➖➖➖➖➖➖➖➖➖➖
💬 @job_bashe | گروه کار باشه با دسته بندی شغلی
📢 @karbashe_ir | کانال کار باشه
مایکروسافت در مقالهی جدید .NET توضیح داده که C# قرار است مدل دقیقتری برای Memory Safety داشته باشد. در نسخههای فعلی، کلمهی
اهمیت این تغییر در این است که C# نمیخواهد قابلیتهای low-level خودش را حذف کند؛ بلکه میخواهد استفاده از آنها قابلتحلیلتر، قابلبررسیتر و کمریسکتر شود. وقتی کامپایلر بتواند بخشهای حساس به حافظه را دقیقتر تشخیص دهد، code review بهتر انجام میشود، مسئولیت APIها واضحتر میشود و احتمال مخفی ماندن خطاهایی مثل دسترسی نامعتبر به حافظه، use-after-free یا buffer overrun کاهش پیدا میکند. به زبان سادهتر، هدف این نیست که C# را محدودتر کنند؛ هدف این است که هرجا برنامهنویس به حافظه نزدیکتر میشود، قواعد ایمنی هم شفافتر و قابل اعتمادتر باشند.
https://devblogs.microsoft.com/dotnet/improving-csharp-memory-safety/
@codehalics | کدهالیک
unsafe بیشتر یک هشدار کلی است؛ یعنی میگوید بخشی از کد ممکن است با حافظه بهصورت مستقیم یا کمسطح کار کند، اما همیشه مشخص نمیکند دقیقاً کدام عملیات خطرناک است و چه قراردادی باید بین نویسندهی API و استفادهکننده رعایت شود. مدل جدید تلاش میکند این مرز را شفافتر کند: کدهایی که با pointer، حافظهی unmanaged، Marshal یا APIهای حساس سروکار دارند باید صریحتر مشخص کنند چه پیشفرضهایی برای امن بودن لازم است.اهمیت این تغییر در این است که C# نمیخواهد قابلیتهای low-level خودش را حذف کند؛ بلکه میخواهد استفاده از آنها قابلتحلیلتر، قابلبررسیتر و کمریسکتر شود. وقتی کامپایلر بتواند بخشهای حساس به حافظه را دقیقتر تشخیص دهد، code review بهتر انجام میشود، مسئولیت APIها واضحتر میشود و احتمال مخفی ماندن خطاهایی مثل دسترسی نامعتبر به حافظه، use-after-free یا buffer overrun کاهش پیدا میکند. به زبان سادهتر، هدف این نیست که C# را محدودتر کنند؛ هدف این است که هرجا برنامهنویس به حافظه نزدیکتر میشود، قواعد ایمنی هم شفافتر و قابل اعتمادتر باشند.
https://devblogs.microsoft.com/dotnet/improving-csharp-memory-safety/
@codehalics | کدهالیک
Microsoft News
Improving C# Memory Safety
The `unsafe` keyword is being redesigned to mark caller-facing contracts rather than just syntax. Safety obligations between callers and callees become visible and reviewable. The model is motivated by the rise of AI-assisted code generation and arrives as…
👍2
کدهالیک | codehalic
مایکروسافت در مقالهی جدید .NET توضیح داده که C# قرار است مدل دقیقتری برای Memory Safety داشته باشد. در نسخههای فعلی، کلمهی unsafe بیشتر یک هشدار کلی است؛ یعنی میگوید بخشی از کد ممکن است با حافظه بهصورت مستقیم یا کمسطح کار کند، اما همیشه مشخص نمیکند…
نگاه فنیتر به Memory Safety جدید در C#
تغییر اصلی اینه که در C# 16، مفهوم
unsafe دقیقتر میشه. قبلاً وقتی روی یک متد unsafe میذاشتیم، یعنی داخلش اجازه داریم با pointer و عملیات سطح پایین کار کنیم. اما مدل جدید بین دو چیز فرق میذاره: APIای که از caller انتظار رعایت شرط ایمنی دارد و بخشی از کد که واقعاً عملیات خطرناک انجام میدهد.مثلاً اگر متدی از caller میخواهد pointer معتبر بدهد، خود signature میتواند
unsafe باشد. اما داخل بدنه، جایی که pointer واقعاً dereference میشود، باید با unsafe { } مشخص شود:public static unsafe byte Read(byte* ptr)
{
unsafe
{
return *ptr;
}
}
اینجا
unsafe بیرونی یعنی caller مسئول است pointer معتبر بدهد؛ ولی unsafe داخلی دقیقاً محل دسترسی خطرناک به حافظه را نشان میدهد.چرا این مهم است؟
چون خطر اصلی صرفاً وجود pointer نیست؛ خطر اصلی جایی است که از آن pointer برای خواندن یا نوشتن حافظه استفاده میکنیم. مدل جدید کمک میکند این نقاط پنهان نمانند، مخصوصاً وقتی با
IntPtr، Marshal، NativeMemory یا interop کار میکنیم.همچنین unsafe APIها باید بهتر مستند شوند؛ مثلاً با بخشهایی مثل:
/// <safety>
/// Caller must ensure ptr points to valid readable memory.
/// </safety>
این باعث میشود در code review دقیقتر بفهمیم چه چیزی بر عهدهی caller است و چه چیزی داخل متد تضمین شده.
@codehalics | کدهالیک
👍2
یه مقاله جالب توضیح میداد چرا شرکتهای ژاپنی اینقدر وارد حوزههای مختلف میشن. مثلاً شرکتی که از توالت و سرامیک شروع کرده، امروز قطعهی حساس برای صنعت نیمههادی میسازه.
نکته اینه که این تنوع شانسی نیست. وقتی آدمها سالها داخل یک شرکت میمونن، دانش فنی کمکم جمع میشه، تیمها فقط تخصص باریک ندارن و تجربه بین بخشها پخش میشه. نتیجهاش اینه که شرکت میتونه تخصص قدیمی خودش رو در بازارهای جدید استفاده کنه.
به نظرم تو نرمافزار هم همین اتفاق میافته. تیمی که فقط با تعویض فریمورک و ابزار جلو میره، مزیت عمیق نمیسازه. مزیت واقعی وقتی ساخته میشه که تیم domain رو بفهمه، history تصمیمها رو بدونه، codebase رو مثل یک موجود زنده بشناسه و آدمها زودبهزود عوض نشن.
شاید مهمترین دارایی یک تیم نرمافزاری خود کد نباشه؛ حافظهی جمعی تیمه.
https://davidoks.blog/p/why-japanese-companies-do-so-many
@codehalics | کدهالیک
نکته اینه که این تنوع شانسی نیست. وقتی آدمها سالها داخل یک شرکت میمونن، دانش فنی کمکم جمع میشه، تیمها فقط تخصص باریک ندارن و تجربه بین بخشها پخش میشه. نتیجهاش اینه که شرکت میتونه تخصص قدیمی خودش رو در بازارهای جدید استفاده کنه.
به نظرم تو نرمافزار هم همین اتفاق میافته. تیمی که فقط با تعویض فریمورک و ابزار جلو میره، مزیت عمیق نمیسازه. مزیت واقعی وقتی ساخته میشه که تیم domain رو بفهمه، history تصمیمها رو بدونه، codebase رو مثل یک موجود زنده بشناسه و آدمها زودبهزود عوض نشن.
شاید مهمترین دارایی یک تیم نرمافزاری خود کد نباشه؛ حافظهی جمعی تیمه.
https://davidoks.blog/p/why-japanese-companies-do-so-many
@codehalics | کدهالیک
👍8❤4
یه نفر اومده سراغ یکی از سادهترین چیزهایی که توی نرمافزارها مدام اتفاق میافته: تبدیل عدد به متن. مثلاً اینکه عدد 123456 بشه «123456». کاری که معمولاً برنامهها انجام میدن اینه که عدد رو چند بار تقسیم میکنن، رقمها رو یکییکی درمیارن، یا از یهسری جدول آماده کمک میگیرن. اما ایدهی این مقاله این بوده که بیایم این مسیر قدیمی رو دور بزنیم. عدد رو به تکههای ۸ رقمی شکسته، بعد با قابلیتهای جدید پردازنده، چندتا رقم رو همزمان حساب کرده؛ یعنی بهجای اینکه CPU رقمها رو دونهدونه بسازه، همه رو موازی جلو برده. برای این کار هم از AVX-512 و ضربهای سریع استفاده کرده تا تقسیمهای سنگین تا حد زیادی حذف بشن. جالبتر اینکه الگوریتم قبل از اجرا یه نمونهگیری کوچیک هم میکنه تا بفهمه جنس عددها شبیه همه یا نه، بعد خودش مسیر سریعتر رو انتخاب میکنه. نتیجهاش؟ یه کاری که خیلی معمولی به نظر میرسه، توی بعضی حالتها زیر دو نانوثانیه انجام میشه.
https://onlinelibrary.wiley.com/doi/10.1002/spe.70079
@codehalics | کدهالیک
https://onlinelibrary.wiley.com/doi/10.1002/spe.70079
@codehalics | کدهالیک
Wiley Online Library
Converting an Integer to a Decimal String in Under Two Nanoseconds
Objective
Converting binary integers to variable-length decimal strings is a fundamental operation in computing. Conventional fast approaches rely on recursive division and small lookup tables. The ...
Converting binary integers to variable-length decimal strings is a fundamental operation in computing. Conventional fast approaches rely on recursive division and small lookup tables. The ...
🔥6❤🔥1
ازم پرسید به عنوان یک فرانت اند دولوپر useEffectEvent رو بلدی ؟؟
من بلد نبودم شما یاد بگیرین :
وقتی داخل useEffect نیاز به دسترسی به آخرین مقدار props/state داری ولی نمیخوای Effect reconnect بشه.
این هوک دقیقاً برای حل همین مشکل ساخته شده.
https://react.dev/reference/react/useEffectEvent
Abolfazl
@codehalics | کدهالیک
من بلد نبودم شما یاد بگیرین :
وقتی داخل useEffect نیاز به دسترسی به آخرین مقدار props/state داری ولی نمیخوای Effect reconnect بشه.
این هوک دقیقاً برای حل همین مشکل ساخته شده.
https://react.dev/reference/react/useEffectEvent
Abolfazl
@codehalics | کدهالیک
❤12👍5
بازگشایی اینترنت بین الملل مصوب شد
🔹ستاد راهبری و ساماندهی فضای مجازی صبح امروز دوشنبه (چهارم خردادماه) به ریاست دکتر عارف معاون اول رئیس جمهور تشکیل جلسه داد و بازگشت اینترنت به وضعیت قبل از دی ماه 1404 مصوب شد.
🔹این مصوبه برای رییس جمهور ارسال شد و در صورت تایید رئیس جمهور جهت اجرا برای وزارت ارتباطات ارسال خواهد شد.
@codehalics | کدهالیک
🔹ستاد راهبری و ساماندهی فضای مجازی صبح امروز دوشنبه (چهارم خردادماه) به ریاست دکتر عارف معاون اول رئیس جمهور تشکیل جلسه داد و بازگشت اینترنت به وضعیت قبل از دی ماه 1404 مصوب شد.
🔹این مصوبه برای رییس جمهور ارسال شد و در صورت تایید رئیس جمهور جهت اجرا برای وزارت ارتباطات ارسال خواهد شد.
@codehalics | کدهالیک
🗿14🤣1
کدهالیک | codehalic
مقاله دربارهی یه ایدهی خیلی عجیب ولی باحال توی رمزنگاریه: اینکه گاهی «چیزی که نمیتونیم ثابت کنیم» میتونه خودش تبدیل بشه به ابزار امنیتی. اول از یه مفهوم به اسم اثبات بدون افشای اطلاعات یا Zero-Knowledge Proof شروع میکنه؛ یعنی من میخوام به تو ثابت کنم…
چند وقت پیش توی کانال دربارهی یه مقالهی خیلی باحال از Quanta نوشتم؛ مقالهای دربارهی اینکه گاهی «چیزی که نمیتونیم ثابت کنیم» خودش میتونه تبدیل بشه به ابزار امنیتی. ایدهاش از Zero-Knowledge Proof شروع میشد؛ اینکه بتونی ثابت کنی چیزی رو میدونی، بدون اینکه خود اون چیز رو افشا کنی. خلاصهی سادهاش این بود که در امنیت، همیشه مسئله فقط این نیست که «چیزی قابل شکستن هست یا نه»، گاهی مسئله اینه که آیا اساساً میشه راه شکستن یا ناامن بودنش رو ثابت کرد یا نه.
این چند روز دوباره یاد همون مقاله افتادم، وقتی دیدم هنوز در سال ۲۰۲۶، با این حجم از کراولرها، باتها و رباتهای اسکمر، بعضی سایتها توی سناریوی Forgot Password خیلی راحت جواب میدن: Email Not Found. یعنی اگر من ایمیل یک نفر رو داشته باشم، میتونم برم توی مسیر بازیابی رمز عبور و بفهمم آیا اون آدم قبلاً عضو اون سایت بوده یا نه. این دقیقاً همون جاییه که UX Writing فقط مسئلهی شفافنویسی نیست؛ مسئلهی مرز بین اطلاعرسانی کافی و افشای دادهی پشت سیستم هم هست.
وقتی محصول به من میگه «ایمیل یافت نشد»، در واقع داره فرض میکنه من حق دارم این اطلاعات رو بدونم. در حالی که با تقریب خوبی، نه. پیامهایی مثل «اگر این ایمیل در سیستم ثبت شده باشد، لینک بازیابی رمز عبور ارسال خواهد شد» شاید از نظر تجربه کاربری کمی گنگتر باشن، اما از نظر امنیت و حریم خصوصی رفتار بالغتری دارن. چون به کاربر واقعی کمک میکنن، بدون اینکه به فرد ناشناس اطلاعات اضافه بدن.
ما خیلی وقتها دربارهی امنیت محصول بهعنوان چیزی جدا از حریم خصوصی حرف میزنیم، در حالی که این دو در عمل بهشدت به هم گره خوردن. اتحادیه اروپا درگیر کوکیها و قوانین پیچیدهایه که خیلی وقتها به UX آسیب میزنن، اما همزمان هنوز چنین مسئلههای سادهای توی محصولها دیده میشه. به نظرم امنیت نباید بعد از حریم خصوصی بیاد؛ امنیت باید طوری طراحی بشه که از همان ابتدا مراقب حریم خصوصی آدمها هم باشد.
همون مقالهی Quanta از یک زاویهی عمیقتر میگفت گاهی «ندانستن» یا «نتوانستن برای اثبات» میتونه بخشی از مدل امنیت باشه. شاید در طراحی محصول هم باید همینقدر جدی به این فکر کنیم که چه چیزهایی را اصلاً نباید به کاربر ناشناس بگوییم، حتی اگر گفتنش از نظر UX سادهتر و واضحتر به نظر برسد.
مقاله باحالیه، اگه نخوندین یه سر بهش بزنین:
https://www.quantamagazine.org/how-unknowable-math-can-help-hide-secrets-20260511/
علت این پست خوندن این پست لینکدین از این دوست عزیزمون بود که بنظرم با یکی از پست های ما که کوت کردم قرابت خوبی داشت
سورس پست لینکدین
@codehalics | کدهالیک
این چند روز دوباره یاد همون مقاله افتادم، وقتی دیدم هنوز در سال ۲۰۲۶، با این حجم از کراولرها، باتها و رباتهای اسکمر، بعضی سایتها توی سناریوی Forgot Password خیلی راحت جواب میدن: Email Not Found. یعنی اگر من ایمیل یک نفر رو داشته باشم، میتونم برم توی مسیر بازیابی رمز عبور و بفهمم آیا اون آدم قبلاً عضو اون سایت بوده یا نه. این دقیقاً همون جاییه که UX Writing فقط مسئلهی شفافنویسی نیست؛ مسئلهی مرز بین اطلاعرسانی کافی و افشای دادهی پشت سیستم هم هست.
وقتی محصول به من میگه «ایمیل یافت نشد»، در واقع داره فرض میکنه من حق دارم این اطلاعات رو بدونم. در حالی که با تقریب خوبی، نه. پیامهایی مثل «اگر این ایمیل در سیستم ثبت شده باشد، لینک بازیابی رمز عبور ارسال خواهد شد» شاید از نظر تجربه کاربری کمی گنگتر باشن، اما از نظر امنیت و حریم خصوصی رفتار بالغتری دارن. چون به کاربر واقعی کمک میکنن، بدون اینکه به فرد ناشناس اطلاعات اضافه بدن.
ما خیلی وقتها دربارهی امنیت محصول بهعنوان چیزی جدا از حریم خصوصی حرف میزنیم، در حالی که این دو در عمل بهشدت به هم گره خوردن. اتحادیه اروپا درگیر کوکیها و قوانین پیچیدهایه که خیلی وقتها به UX آسیب میزنن، اما همزمان هنوز چنین مسئلههای سادهای توی محصولها دیده میشه. به نظرم امنیت نباید بعد از حریم خصوصی بیاد؛ امنیت باید طوری طراحی بشه که از همان ابتدا مراقب حریم خصوصی آدمها هم باشد.
همون مقالهی Quanta از یک زاویهی عمیقتر میگفت گاهی «ندانستن» یا «نتوانستن برای اثبات» میتونه بخشی از مدل امنیت باشه. شاید در طراحی محصول هم باید همینقدر جدی به این فکر کنیم که چه چیزهایی را اصلاً نباید به کاربر ناشناس بگوییم، حتی اگر گفتنش از نظر UX سادهتر و واضحتر به نظر برسد.
مقاله باحالیه، اگه نخوندین یه سر بهش بزنین:
https://www.quantamagazine.org/how-unknowable-math-can-help-hide-secrets-20260511/
علت این پست خوندن این پست لینکدین از این دوست عزیزمون بود که بنظرم با یکی از پست های ما که کوت کردم قرابت خوبی داشت
سورس پست لینکدین
@codehalics | کدهالیک
Quanta Magazine
How Unknowable Math Can Help Hide Secrets
A graduate student recently harnessed the complexity of mathematical proofs to create a powerful new tool in cryptography.
❤4👀1
متأسفانه نوبرکلاد، یکی از استارتاپهای خوشفکر و آیندهدار حوزه کلاد، زیرساخت و خدمات دواپس، نتوانست مسیر فعالیت خود را در شرایط موجود ادامه دهد و به کار خود پایان داد.
نوبرکلاد در مدت فعالیت خود، بهویژه با حضور پررنگ در رویداد اخیر تهلاگ، نشان داد تیمی جوان، پرانرژی و صاحب نگاه فنی جدی پشت این مجموعه قرار دارد.
پایان مسیر چنین تیمهایی همیشه تلخ و قابل تأمل است. برای اعضای نوبرکلاد در ادامه مسیر حرفهایشان بهترینها را آرزو میکنیم و امیدواریم تجربه و انگیزه این تیم در مسیرهای تازه، دوباره به ثمر بنشیند.
@codehalics |کدهالیک
نوبرکلاد در مدت فعالیت خود، بهویژه با حضور پررنگ در رویداد اخیر تهلاگ، نشان داد تیمی جوان، پرانرژی و صاحب نگاه فنی جدی پشت این مجموعه قرار دارد.
پایان مسیر چنین تیمهایی همیشه تلخ و قابل تأمل است. برای اعضای نوبرکلاد در ادامه مسیر حرفهایشان بهترینها را آرزو میکنیم و امیدواریم تجربه و انگیزه این تیم در مسیرهای تازه، دوباره به ثمر بنشیند.
@codehalics |کدهالیک
💔11🕊1😇1
کدهالیک | codehalic
بازگشایی اینترنت بین الملل مصوب شد 🔹ستاد راهبری و ساماندهی فضای مجازی صبح امروز دوشنبه (چهارم خردادماه) به ریاست دکتر عارف معاون اول رئیس جمهور تشکیل جلسه داد و بازگشت اینترنت به وضعیت قبل از دی ماه 1404 مصوب شد. 🔹این مصوبه برای رییس جمهور ارسال شد و در…
فوری
بازگشایی اینترنت بینالملل ثابت شروع شد
🔹در پی دستور رئیس جمهور به وزیر ارتباطات برای بازگشایی اینترنت بین الملل: تا ساعت ۱۵ امروز سه شنبه (۵ خردادماه) حاکی از ادامه روند بازگشایی است و توقفی در اجرای حکم رئیس جمهور صورت نگرفته است.
@codehalics | کدهالیک
بازگشایی اینترنت بینالملل ثابت شروع شد
🔹در پی دستور رئیس جمهور به وزیر ارتباطات برای بازگشایی اینترنت بین الملل: تا ساعت ۱۵ امروز سه شنبه (۵ خردادماه) حاکی از ادامه روند بازگشایی است و توقفی در اجرای حکم رئیس جمهور صورت نگرفته است.
@codehalics | کدهالیک
🕊1
کدهالیک | codehalic
فوری بازگشایی اینترنت بینالملل ثابت شروع شد 🔹در پی دستور رئیس جمهور به وزیر ارتباطات برای بازگشایی اینترنت بین الملل: تا ساعت ۱۵ امروز سه شنبه (۵ خردادماه) حاکی از ادامه روند بازگشایی است و توقفی در اجرای حکم رئیس جمهور صورت نگرفته است. @codehalics |…
یه توصیه اکید بهتون دارم اگر که اینترنتتون وصل شد (قاعدتا تا الانم وصل بودید ولی حجم و هزینه اینترنتتون بصرفه نبوده که آپدیت کنین ) اولین کاری که انجام باید بدید آپدیت کردن همه دیوایس هاتونه چون توی این ۹۰ روز تا دلتون بخواد زیرو دی اومده
هم سرور ها هم گوشی موبایل و هر چیزی که آپدیت میگیره رو آپدیت کنید حتما !
مخصوصا سرویس هایی که این چند وقت شنیدید که هک شدن مثل پنل های هاست و ...
@codehalics | کدهالیک
هم سرور ها هم گوشی موبایل و هر چیزی که آپدیت میگیره رو آپدیت کنید حتما !
مخصوصا سرویس هایی که این چند وقت شنیدید که هک شدن مثل پنل های هاست و ...
@codehalics | کدهالیک
❤8
یه پست بامزه و جالب امروز راجب به استفاده از ai دیدم که ترجمش رو براتون میزارم حس و حال های مشترکی با خود من داره و همینارو منم حس کردم و جالب بود !
https://orchidfiles.com/im-tired-of-ai-generated-answers/
@codehalics | کدهالیک
از حرف زدن با هوش مصنوعی خسته شدهام.
چند ریپازیتوری در GitHub پیدا کردم که بدافزار پخش میکردند. از AI پرسیدم باید چه کار کنم، اما جواب مفیدی نداد. بعد در GitHub یک بحث باز کردم. کسی جواب داد، اما دقیقاً همان متن AI بود. وقتی گفتم، کامنت حذف شد. نفر بعدی هم دوباره همان پاسخ AI را فرستاد.
در یک شرکت هم از مدیر یک سؤال کاری پرسیدم. بهجای جواب، اسکرینشات ChatGPT فرستاد. گفتم ربطی به سؤال من ندارد و اشتباه است. یک دقیقه بعد دوباره اسکرینشات دیگری فرستاد، بدون اینکه حتی جواب را بخواند.
اخیراً هم در Reddit با کسی در حال گفتگو بودم، اما بعد از چند پیام فهمیدم دارم با یک AI صحبت میکنم.
مشکل فقط AI نیست؛ این است که آدمها هم دیگر فکر نمیکنند، فقط پاسخ AI را کپی میکنند و میفرستند.
از حرف زدن با AI خسته شدهام. میخواهم با انسانها صحبت کنم.
https://orchidfiles.com/im-tired-of-ai-generated-answers/
@codehalics | کدهالیک
Orchid Files
I’m tired of talking to AI
I’m tired of talking to AI. I want to talk to real people. But even when I talk to people, they forward my questions to AI and send me AI’s answer.
👍11
یه باگ امنیتی مهم توی FastAPI (و Starlette) وجود داره که باعث میشه با دستکاری هدر Host، مسیر درخواست جعلی ساخته بشه و در بعضی حالتها بشه احراز هویت یا دسترسی به APIها رو دور زد.
https://badhost.org/
@codehalics | کدهالیک
https://badhost.org/
@codehalics | کدهالیک
CVE-2026-48710 - Nemesis - BadHost
BadHost - CVE-2026-48710 Starlette Host-Header Auth Bypass
Free scanner for the critical Starlette auth bypass CVE-2026-48710 (BadHost). Affects FastAPI, MCP servers, LLM proxies, AI agent frameworks, and thousands of Python ASGI apps.
❤2