گوگل یه repo جدید منتشر کرده که یه سری راهنمایی و مثال داره که چطوری از Gemini API استفاده کنیم.
راهنمای prompt نویسی و فیچرهای مختلف APIش رو گذاشته..
آدرس Repo:
https://github.com/google/generative-ai-python
@DevTwitter | <Sam92/>
راهنمای prompt نویسی و فیچرهای مختلف APIش رو گذاشته..
آدرس Repo:
https://github.com/google/generative-ai-python
@DevTwitter | <Sam92/>
👍26🤣3👎2
مورد Redis و Sqlite زیاد صحبت کردیم
بریم سر Redka یک re-implemented از Redis با SQLite
ویژگی های قابل توجه:
نیازی نیست که داده ها در RAM قرار بگیرند.
امکان ACID transactions
امکان SQL views
امکان Go API و RESP
دستورات Redis-compatible و wire protocol
https://github.com/nalgeon/redka
@DevTwitter | <MehrdadLinux />
بریم سر Redka یک re-implemented از Redis با SQLite
ویژگی های قابل توجه:
نیازی نیست که داده ها در RAM قرار بگیرند.
امکان ACID transactions
امکان SQL views
امکان Go API و RESP
دستورات Redis-compatible و wire protocol
https://github.com/nalgeon/redka
@DevTwitter | <MehrdadLinux />
👍20👎1
دیوار آنتروپی؛ چگونه چند لامپ ساده جلوی هکشدن اینترنت را میگیرند؟
شرکت Cloudflare با دیواری از لامپهای گدازهای لاوا که دیوار آنتروپی نامیده میشود، بخش بزرگی از اینترنت جهانی را از خطر هکشدن دور نگه میدارد.
https://www.zoomit.ir/security/419005-lava-lamp-help-encryption/
@DevTwitter | <Zoomit/>
شرکت Cloudflare با دیواری از لامپهای گدازهای لاوا که دیوار آنتروپی نامیده میشود، بخش بزرگی از اینترنت جهانی را از خطر هکشدن دور نگه میدارد.
https://www.zoomit.ir/security/419005-lava-lamp-help-encryption/
@DevTwitter | <Zoomit/>
👍44🔥12👎4🤣2
TELNET
میدونستید که این پروتکل از اواخر دهه 60 میلادی وجود داشته؟ یعنی قدیمیتر از چیزایی که امروزه استفاده میکنیم.
کارش این بوده که به کمکش بتونیم از راه دور به یک سیستم دیگه وصل بشیم و روش دستورات رو اجرا کنیم. مثلا تصور کنید میخواین به یه سرور از راه دور دسترسی پیدا کنید. با Telnet میتونستید این کار رو انجام بدید و دستورات رو مستقیما روی اون سیستم اجرا کنید.
البته این روزا دیگه زیاد ازش استفاده نمیشه چون امنیتش چندان تضمین شده نیست. اما خب، هنوزم بعضی جاها ازش استفاده میکنن. مخصوصا برای تست کردن سرویسها و برنامهها.
جالبه که بدونید Telnet برای برقراری ارتباط از پروتکل TCP استفاده میکنه. پس میتونیم بگیم که یکی از اولین برنامههای کاربردیِ اینترنت بوده که روی TCP کار میکرده.
در کل یه ابزار قدیمی اما کاربردیه که هنوزم بعضی وقتها میتونه بهدرد بخور باشه. البته امروزه بیشتر برای آموزش و تست استفاده میشه تا کاربردهای واقعی. اما خب، باز هم یه چیز جالبه برای اینکه بدونیم در موردش.
@DevTwitter | <PinkOrca/>
میدونستید که این پروتکل از اواخر دهه 60 میلادی وجود داشته؟ یعنی قدیمیتر از چیزایی که امروزه استفاده میکنیم.
کارش این بوده که به کمکش بتونیم از راه دور به یک سیستم دیگه وصل بشیم و روش دستورات رو اجرا کنیم. مثلا تصور کنید میخواین به یه سرور از راه دور دسترسی پیدا کنید. با Telnet میتونستید این کار رو انجام بدید و دستورات رو مستقیما روی اون سیستم اجرا کنید.
البته این روزا دیگه زیاد ازش استفاده نمیشه چون امنیتش چندان تضمین شده نیست. اما خب، هنوزم بعضی جاها ازش استفاده میکنن. مخصوصا برای تست کردن سرویسها و برنامهها.
جالبه که بدونید Telnet برای برقراری ارتباط از پروتکل TCP استفاده میکنه. پس میتونیم بگیم که یکی از اولین برنامههای کاربردیِ اینترنت بوده که روی TCP کار میکرده.
در کل یه ابزار قدیمی اما کاربردیه که هنوزم بعضی وقتها میتونه بهدرد بخور باشه. البته امروزه بیشتر برای آموزش و تست استفاده میشه تا کاربردهای واقعی. اما خب، باز هم یه چیز جالبه برای اینکه بدونیم در موردش.
@DevTwitter | <PinkOrca/>
👍38❤4👎1
من یک پکیج برای تولید خروجی PDF برای پروژههای جنگو نوشتم.
دقیقا شبیه viewهای جنگو ولی تمپلیت هم HTML و هم LaTeX میگیره و بعد در خروجی فایل PDFاش بر میگردونه.
pip install django-perisan-pdf
از هر بهبودی برای کد و تستهاش استقبال میکنم:
https://github.com/BinDruid/django-persian-pdf
@DevTwitter | <Druid/>
دقیقا شبیه viewهای جنگو ولی تمپلیت هم HTML و هم LaTeX میگیره و بعد در خروجی فایل PDFاش بر میگردونه.
pip install django-perisan-pdf
از هر بهبودی برای کد و تستهاش استقبال میکنم:
https://github.com/BinDruid/django-persian-pdf
@DevTwitter | <Druid/>
👍30🔥9👎1
اگر از ووکامرس استفاده میکنید و محصولات متغییر زیادی دارید با این مشکل روبه روشدید که وقتی می خواهید محصولاتی رو ناموجود کنید باید تک تک برید و موجودی اونها رو صفر کنید.
این bulk edit رو نصب کنید و فلهای اقدام به صفر کردن موجودی بکنید.
https://gist.github.com/devlifeX/fd66978ad234fffdc52ff41d95fc032f
@DevTwitter | <Dariush vesal/>
این bulk edit رو نصب کنید و فلهای اقدام به صفر کردن موجودی بکنید.
https://gist.github.com/devlifeX/fd66978ad234fffdc52ff41d95fc032f
@DevTwitter | <Dariush vesal/>
👍20👎1
یا اینجا توضیح دادم که الگوریتم Mark-and-Sweep در Garbage Collector در JavaScript چطور عمل میکنه و بعد از اینکه یه قسمت از کد اجرا میشه و بخش تخصیص داده شده در حافظه غیر قابل دسترس میشه توسط اون حذف میشه و مشکلات کد های غیر اصولی و memory leak و چطور اتفاق می افته!
@DevTwitter | <Max Shahdoost/>
@DevTwitter | <Max Shahdoost/>
👍19🤣8👎1
یک پچ داخل wayland مرج شده که اکثر مشکلات wayland رو با انویدیا رفع میکنه.
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/90
بعد از اون هم پشتیبانی ازش به kwin اضافه شده:
https://invent.kde.org/plasma/kwin/-/merge_requests/4693
گنوم هنوز مرج نکرده.
@DevTwitter | <SohrabContents/>
https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/90
بعد از اون هم پشتیبانی ازش به kwin اضافه شده:
https://invent.kde.org/plasma/kwin/-/merge_requests/4693
گنوم هنوز مرج نکرده.
@DevTwitter | <SohrabContents/>
👍23❤4👎1🤣1
اگه برنامهنویس پایتون باشین حتماً تا حالا اسم Pyinstaller رو شنیدین. این برنامه یه ابزار خیلی کاربردیه که به شما کمک میکنه برنامههای پایتونی رو به یه فایل اجرایی تبدیل کنین تا بشه اونا رو روی سیستمهای دیگه بدون نیاز به نصب پایتون اجرا کرد.
کار کردن با Pyinstaller خیلی راحته. کافیه اونو نصب کنین و بعد با یه دستور ساده، برنامتونو بهش بدین تا براتون یه فایل اجرایی بسازه. Pyinstaller خودش وابستگیهای برنامه رو شناسایی میکنه و اونا رو هم داخل فایل اجرایی میذاره تا مشکلی برای اجرا روی سیستمهای دیگه پیش نیاد.
یه نکته جالب اینه که Pyinstaller از فایلهای باینری پایتون (bytecode) استفاده میکنه تا حجم فایل نهایی کمتر بشه. البته فایلهای اجرایی ساخته شده توسط Pyinstaller معمولاً حجم زیادی دارن... ولی خب چارهای نیست چون باید همه وابستگیها رو شامل بشن.
میتونین Pyinstaller رو روی ویندوز، مک و لینوکس استفاده کنین و برنامههای پایتونی رو برای هر سه سیستمعامل کامپایل کنین. فقط حواستون باشه که برای هر سیستمعامل باید رو همون سیستمعامل کامپایل رو انجام بدین.
نصب پکیج:
روش استفاده:
pyinstaller --onefile my_noscript.py
(اینجا onefile باعث میشه که فقط یه فایل اجرایی ساخته بشه و تمام وابستگیها داخلش باشن.)
@DevTwitter | <PinkOrca/>
کار کردن با Pyinstaller خیلی راحته. کافیه اونو نصب کنین و بعد با یه دستور ساده، برنامتونو بهش بدین تا براتون یه فایل اجرایی بسازه. Pyinstaller خودش وابستگیهای برنامه رو شناسایی میکنه و اونا رو هم داخل فایل اجرایی میذاره تا مشکلی برای اجرا روی سیستمهای دیگه پیش نیاد.
یه نکته جالب اینه که Pyinstaller از فایلهای باینری پایتون (bytecode) استفاده میکنه تا حجم فایل نهایی کمتر بشه. البته فایلهای اجرایی ساخته شده توسط Pyinstaller معمولاً حجم زیادی دارن... ولی خب چارهای نیست چون باید همه وابستگیها رو شامل بشن.
میتونین Pyinstaller رو روی ویندوز، مک و لینوکس استفاده کنین و برنامههای پایتونی رو برای هر سه سیستمعامل کامپایل کنین. فقط حواستون باشه که برای هر سیستمعامل باید رو همون سیستمعامل کامپایل رو انجام بدین.
نصب پکیج:
pip install pyinstaller
روش استفاده:
pyinstaller --onefile my_noscript.py
(اینجا onefile باعث میشه که فقط یه فایل اجرایی ساخته بشه و تمام وابستگیها داخلش باشن.)
@DevTwitter | <PinkOrca/>
👍46🤣12👎2❤1
تفاوت Ctrl+F5 و F5 چیه؟
دکمه F5 همون رفرش ساده و استاندارده ، اما کنترل F5 یک رفرش اجباری (forced reload ) انجام میده و این مرورگر رو مجبور میکنه که صفحه رو از سرور دوباره دانلود کنه.
با زدن دکمه F5 به تنهایی فقط صفحه سایت رو با استفاده از کش مرورگر و فایل ها و عکس ها و... که قبلا تو مرورگر ذخیره کرده بود ، صفحه رو Reload میکنه ولی با نگه داشتن Ctrl و سپس زدن F5 ، کل محتوای سایت رو از سرور دانلود میکنه و کاری به کش مرورگر نداره.
@DevTwitter | <Computer_MCH/>
دکمه F5 همون رفرش ساده و استاندارده ، اما کنترل F5 یک رفرش اجباری (forced reload ) انجام میده و این مرورگر رو مجبور میکنه که صفحه رو از سرور دوباره دانلود کنه.
با زدن دکمه F5 به تنهایی فقط صفحه سایت رو با استفاده از کش مرورگر و فایل ها و عکس ها و... که قبلا تو مرورگر ذخیره کرده بود ، صفحه رو Reload میکنه ولی با نگه داشتن Ctrl و سپس زدن F5 ، کل محتوای سایت رو از سرور دانلود میکنه و کاری به کش مرورگر نداره.
@DevTwitter | <Computer_MCH/>
👍90🔥8🤣8👎1
ساخت رابط های کاربری مدرن در پایتون با استفاده از eel
این یک کتابخانه کوچک و بسیار جالبه که به شما کمک میکنه رابط کاربری برای نرم افزارهای دسکتاپی که با پایتون کد زده میشن با استفاده از html, css, javascrip بسازید
این میتونه به شما کمک کنه تا مثلا با کمک bootstrap بتونید رابط های کاربری مدرن در پایتون ایجاد کنید
@DevTwitter | <code_pedia/>
این یک کتابخانه کوچک و بسیار جالبه که به شما کمک میکنه رابط کاربری برای نرم افزارهای دسکتاپی که با پایتون کد زده میشن با استفاده از html, css, javascrip بسازید
این میتونه به شما کمک کنه تا مثلا با کمک bootstrap بتونید رابط های کاربری مدرن در پایتون ایجاد کنید
@DevTwitter | <code_pedia/>
🔥35👍11🤣4👎3
در کرنل لینوکس NUMA چیست؟ به زبان ساده
فرض کنید کامپیوتر شما یه خونه آپارتمانیه. توی این خونه چندتا اتاق (گره) هست که هر کدوم تخت خواب (پردازنده) و کمد (حافظه) دارن.
تو معماری معمولی، همه تختها و کمدها توی یه اتاق بزرگ هستن. این میتونه برای کسایی که توی همون اتاق زندگی میکنن (برنامههایی که به حافظه و پردازش زیادی نیاز دارن) خوب باشه، ولی میتونه برای کسایی که توی اتاقهای دیگه زندگی میکنن (برنامههایی که به حافظه و پردازش کمتری نیاز دارن) مشکلساز باشه.
با توجه با این NUMA مثل اینه که یه سری از تختها و کمدها رو به اتاقهای دیگه ببریم. این کار به کسایی که توی همون اتاق زندگی میکنن کمک میکنه که سریعتر به تختها و کمدهاشون دسترسی داشته باشن، بدون اینکه منتظر بمونن بقیه که توی اتاقهای دیگه هستن ازشون استفاده کنن.
مثلا فرض کنید یه برنامه پایگاه داده دارین که به حافظه و پردازش زیادی نیاز داره. تو یه سیستم NUMA میتونین این برنامه رو طوری تنظیم کنین که توی یه گره اجرا بشه که حافظه و پردازندههای بیشتری داره. این کار به برنامه کمک میکنه که سریعتر به اطلاعات و قدرت پردازشی که نیاز داره دسترسی پیدا کنه، و میتونه عملکردش رو خیلی بهتر کنه.
در کل NUMA میتونه سرعت کار رو با کم کردن زمان دسترسی به حافظه، مخصوصاً برای برنامههایی که به حافظه زیاد نیاز دارن، بهتر کنه.
@DevTwitter | <Linuxor/>
فرض کنید کامپیوتر شما یه خونه آپارتمانیه. توی این خونه چندتا اتاق (گره) هست که هر کدوم تخت خواب (پردازنده) و کمد (حافظه) دارن.
تو معماری معمولی، همه تختها و کمدها توی یه اتاق بزرگ هستن. این میتونه برای کسایی که توی همون اتاق زندگی میکنن (برنامههایی که به حافظه و پردازش زیادی نیاز دارن) خوب باشه، ولی میتونه برای کسایی که توی اتاقهای دیگه زندگی میکنن (برنامههایی که به حافظه و پردازش کمتری نیاز دارن) مشکلساز باشه.
با توجه با این NUMA مثل اینه که یه سری از تختها و کمدها رو به اتاقهای دیگه ببریم. این کار به کسایی که توی همون اتاق زندگی میکنن کمک میکنه که سریعتر به تختها و کمدهاشون دسترسی داشته باشن، بدون اینکه منتظر بمونن بقیه که توی اتاقهای دیگه هستن ازشون استفاده کنن.
مثلا فرض کنید یه برنامه پایگاه داده دارین که به حافظه و پردازش زیادی نیاز داره. تو یه سیستم NUMA میتونین این برنامه رو طوری تنظیم کنین که توی یه گره اجرا بشه که حافظه و پردازندههای بیشتری داره. این کار به برنامه کمک میکنه که سریعتر به اطلاعات و قدرت پردازشی که نیاز داره دسترسی پیدا کنه، و میتونه عملکردش رو خیلی بهتر کنه.
در کل NUMA میتونه سرعت کار رو با کم کردن زمان دسترسی به حافظه، مخصوصاً برای برنامههایی که به حافظه زیاد نیاز دارن، بهتر کنه.
@DevTwitter | <Linuxor/>
👍35👎3
برای استفادهی رایگان از Llama 3 به لینک زیر برید و از بین مدل ها Llama 70b رو انتخاب کنید.
بعد از کار کردن باهاش خودتون قدرتش رو متوجه میشید و اما نکتهی مهم:
برخلاف Llama 2، فارسی رو هم متوجه میشه و دقیق تر بگم از فارسی GPT-4 و Claude خیلی بهتره و این نظر شخصی منه.
پس با این تغییرات، اولین مدل اپن سورس با پشتیبانی از زبان فارسی هم منتشر شد.
لینک استفاده:
labs.perplexity.ai
@DevTwitter | <Sabber/>
بعد از کار کردن باهاش خودتون قدرتش رو متوجه میشید و اما نکتهی مهم:
برخلاف Llama 2، فارسی رو هم متوجه میشه و دقیق تر بگم از فارسی GPT-4 و Claude خیلی بهتره و این نظر شخصی منه.
پس با این تغییرات، اولین مدل اپن سورس با پشتیبانی از زبان فارسی هم منتشر شد.
لینک استفاده:
labs.perplexity.ai
@DevTwitter | <Sabber/>
👍27🤣3👎1
اینجا توضیح دادم که چرا JS یک زبان هم Compiled هم Interpreted هست و JIT Compiler چطور عمل میکنه و چه اتفاقی می افته تا کدی که می نویسیم از High Level به دستورات Binary قابل اجرا توسط CPU تبدیل بشه
@DevTwitter | <Max Shahdoost/>
@DevTwitter | <Max Shahdoost/>
👍21🤣8🔥4❤2
توی laravel یه سری توابع داریم که همه جا در دسترس هستن (مثل dd یا config و ...).
حالا اگر بخوایم خودمونم همچین توابعی بنویسیم خیلی راحت میتونیم یک فایل بسازیم و اون رو به کامپوزر معرفی کنیم تا همه جا واسمون دسترسی ایجاد کنه.
1- یک فایل میسازم که من اسمش رو میذارم helpers.php و داخل دایرکتوری app قرارش میدم.
2- توابعی که نیاز دارم رو توش مینویسم، من اومدم یه فانکشن به اسم jdd نوشتم که میاد ریسپانس json برمیگردونه.
3- فایل رو توی composer قسمت autoload اضافه میکنم.
4- حالا اگر کش کامپوزر رو پاک کنم میتونم از این توابعی که نوشتم استفاده کنم.
توی تصویر این مراحل رو نشون دادم بهتون.
پست لینکدین
@DevTwitter | <Ladoya/>
حالا اگر بخوایم خودمونم همچین توابعی بنویسیم خیلی راحت میتونیم یک فایل بسازیم و اون رو به کامپوزر معرفی کنیم تا همه جا واسمون دسترسی ایجاد کنه.
1- یک فایل میسازم که من اسمش رو میذارم helpers.php و داخل دایرکتوری app قرارش میدم.
2- توابعی که نیاز دارم رو توش مینویسم، من اومدم یه فانکشن به اسم jdd نوشتم که میاد ریسپانس json برمیگردونه.
3- فایل رو توی composer قسمت autoload اضافه میکنم.
4- حالا اگر کش کامپوزر رو پاک کنم میتونم از این توابعی که نوشتم استفاده کنم.
توی تصویر این مراحل رو نشون دادم بهتون.
پست لینکدین
@DevTwitter | <Ladoya/>
👍29🤣7🔥4❤1
آیا از نداشتن SSL در زمان دولوپ پروژه های NextJS رنج می برید ؟
آیا نمی توانید از فیچر های user navigator همچون getGeoLocation و یا Camera و یا ... به راحتی استفاده کنید ؟
آیا باعث شده است که اعتماد بنفس خود را در توسعه وب اپلیکیشن های جذاب از دست دهید و از تونل هایی همچون ngrok خسته شده اید ؟
دیگر نگران نباشید
توی این ریپو من یه Server lunch نوشتم که باعث میشه شما بتونید Nextjs رو به شکل development mode و local به شکل SSL اجرا کنید
البته با اضافه کردن یه دومین به فایل hosts کامپیوترتون میتونید در انتها پروژه خودتون رو روی یک دامنه دارای SSL اجرا کنه که اگر با گوشی به Chrome Debug وصل شدید بتونید از همه قابلیت های user navigator استفاده کنید
https://github.com/fariborz0015/nextjs-ssl
@DevTwitter | <Fariborz Shalghooni/>
آیا نمی توانید از فیچر های user navigator همچون getGeoLocation و یا Camera و یا ... به راحتی استفاده کنید ؟
آیا باعث شده است که اعتماد بنفس خود را در توسعه وب اپلیکیشن های جذاب از دست دهید و از تونل هایی همچون ngrok خسته شده اید ؟
دیگر نگران نباشید
توی این ریپو من یه Server lunch نوشتم که باعث میشه شما بتونید Nextjs رو به شکل development mode و local به شکل SSL اجرا کنید
البته با اضافه کردن یه دومین به فایل hosts کامپیوترتون میتونید در انتها پروژه خودتون رو روی یک دامنه دارای SSL اجرا کنه که اگر با گوشی به Chrome Debug وصل شدید بتونید از همه قابلیت های user navigator استفاده کنید
https://github.com/fariborz0015/nextjs-ssl
@DevTwitter | <Fariborz Shalghooni/>
👍28🤣15👎2❤1
اگر برای محیط توسعه localhost نیاز به HTTPS داشتیدو برای TLS certificateو امضای آن استفاده از mkcert یا local-ssl-proxy یا ... حتی خود openssl براتون سخته
استفاده از anchor lcl یک راه کار ساده است
https://github.com/anchordotdev/cli
@DevTwitter | <MehrdadLinux/>
استفاده از anchor lcl یک راه کار ساده است
https://github.com/anchordotdev/cli
@DevTwitter | <MehrdadLinux/>
👍23👎1
یک کامپیوتر کامل توی مرورگر شما
ختما نگاهی به این ریپو بندازید
https://github.com/HeyPuter/puter
@DevTwitter
ختما نگاهی به این ریپو بندازید
https://github.com/HeyPuter/puter
@DevTwitter
👍33👎4🤣2
#بدرد
نظریهی نامحبوب:
یوتیوب فقط جوابگوی یادگیری سطح مقدماتیه؛ از اینفلوئنسر و پکیج چیزی در نمیاد.
با گذروندن دورههای سطح بالاتر مثل Udemy، تهش پروژهی واقعی هم نمیتونید انجام بدید.
چیزی که به شما نمیگن، یادگیری از طریق کسب تجربست.
@DevTwitter | <Sabber/>
نظریهی نامحبوب:
یوتیوب فقط جوابگوی یادگیری سطح مقدماتیه؛ از اینفلوئنسر و پکیج چیزی در نمیاد.
با گذروندن دورههای سطح بالاتر مثل Udemy، تهش پروژهی واقعی هم نمیتونید انجام بدید.
چیزی که به شما نمیگن، یادگیری از طریق کسب تجربست.
@DevTwitter | <Sabber/>
👍346👎21❤8🤣1
اگه شلتون fish هست و میخواین completion برای flutter توی شل داشته باشین میتونین از این ریپو استفاده کنین.
https://github.com/qiuxiang/flutter-fish-completions
@DevTwitter | <Hicte Blog/>
https://github.com/qiuxiang/flutter-fish-completions
@DevTwitter | <Hicte Blog/>
🤣19👍9❤4👎2