~> Dot-com bubble (dot-com boom)
همه چیز از اواسط دهه ۹۰ میلادی شروع شد. اون موقع سرویسهای آنلاین محبوبیت زیادی پیدا کردن. شرکتهای زیادی راه افتادن که کار اصلیشون فروش محصولات و خدمات از طریق اینترنت بود. اینا همون شرکتهای داتکامی بودن که اسمشون با .com تموم میشد.
خیلیا فکر میکردن این شرکتها آیندهٔ تجارت آنلاینن و سرمایهگذاری روشون میارزه. به همین خاطر سرمایهگذاری سنگینی روشون شد. شرکتهای داتکامی پول هنگفتی جمع کردن حتی قبل از اینکه درآمد درست و حسابی داشته باشن!
اوج این دوره حدود سال ۱۹۹۹ بود. بعضی از این شرکتها مثل Amazon و eBay موفق شدن و هنوز هم دارن به کارشون ادامه میدن. اما خیلیاشون شکست خوردن چون مدل کاریشون درست نبود یا هزینههاشون زیاد بود.
در نهایت این حباب داتکامی سال ۲۰۰۰ ترکید و خیلیا ضرر کردن. اما این دوره باعث گسترش و پیشرفت فناوریهای وب و تجارت الکترونیک شد و تاثیر زیادی روی اقتصاد و صنعت کامپیوتر گذاشت.
@DevTwitter | <PinkOrca/>
همه چیز از اواسط دهه ۹۰ میلادی شروع شد. اون موقع سرویسهای آنلاین محبوبیت زیادی پیدا کردن. شرکتهای زیادی راه افتادن که کار اصلیشون فروش محصولات و خدمات از طریق اینترنت بود. اینا همون شرکتهای داتکامی بودن که اسمشون با .com تموم میشد.
خیلیا فکر میکردن این شرکتها آیندهٔ تجارت آنلاینن و سرمایهگذاری روشون میارزه. به همین خاطر سرمایهگذاری سنگینی روشون شد. شرکتهای داتکامی پول هنگفتی جمع کردن حتی قبل از اینکه درآمد درست و حسابی داشته باشن!
اوج این دوره حدود سال ۱۹۹۹ بود. بعضی از این شرکتها مثل Amazon و eBay موفق شدن و هنوز هم دارن به کارشون ادامه میدن. اما خیلیاشون شکست خوردن چون مدل کاریشون درست نبود یا هزینههاشون زیاد بود.
در نهایت این حباب داتکامی سال ۲۰۰۰ ترکید و خیلیا ضرر کردن. اما این دوره باعث گسترش و پیشرفت فناوریهای وب و تجارت الکترونیک شد و تاثیر زیادی روی اقتصاد و صنعت کامپیوتر گذاشت.
@DevTwitter | <PinkOrca/>
👍33❤3👎2
LFS(Linux From Scratch) یک پروژه آزاد و اپنسورسه که باهاش راه ساخت یک سیستمعامل لینوکسی رو از اول و گام به گام یاد میگیرید. این پروژه به ما میگه که چطوری از صفر شروع کنیم و یه لینوکس کاملا سفارشی و بدون هیچ چیز اضافهای بسازیم.
توی LFS هیچ برنامهای از قبل نصب نیست. باید از پایه شروع کنید و کامپایل کردن هر چیزی رو از ابتدا یاد بگیرید. حتی باید کرنل لینوکس و برنامههای پایهای مثل bash، gcc و glibc رو هم خودتون کامپایل کنید...
LFS خیلی سخته، ولی برای اونایی که میخوان درک عمیقی از لینوکس و اجزای یک توزیع داشته باشن یا یه سیستمعامل خاص و کاملا سفارشی بسازن عالیه. البته باید حوصله زیادی داشته باشید و از پس مشکلات زیادی بربیاین. ولی در نهایت تجربهای بینظیر و ارزشمنده.
www.linuxfromscratch.org
@DevTwitter | <PinkOrca/>
توی LFS هیچ برنامهای از قبل نصب نیست. باید از پایه شروع کنید و کامپایل کردن هر چیزی رو از ابتدا یاد بگیرید. حتی باید کرنل لینوکس و برنامههای پایهای مثل bash، gcc و glibc رو هم خودتون کامپایل کنید...
LFS خیلی سخته، ولی برای اونایی که میخوان درک عمیقی از لینوکس و اجزای یک توزیع داشته باشن یا یه سیستمعامل خاص و کاملا سفارشی بسازن عالیه. البته باید حوصله زیادی داشته باشید و از پس مشکلات زیادی بربیاین. ولی در نهایت تجربهای بینظیر و ارزشمنده.
www.linuxfromscratch.org
@DevTwitter | <PinkOrca/>
👍36❤8👎2🔥2
🎄 DevTwitter | توییت برنامه نویسی
اگر تا الان روی دامنه شخصی خودتان ایمیل داشته باشید با مشکل spam شدن ایمیل های خودتان رو به رو شدید بخشی از مشکل با تنظیمات SPF, DKIM و DMARC است درک روش کار DMARC اهمیت زیادی داره این سایت قدم به قدم به صورت عملی DMARC را به شما یاد میدهد learndmarc.com…
قبلا برای تحلیل ایمیل Email و آنالیز آن ابزار معرفی کردم.
برای DNS یکی دیگه از ابزار های خیلی خوب در زمینه visualizing پروتکل DNS درک بهتر و نمایش دقیق فرایند برای اشکال زدایی سایت
dnsviz.net
است
DNSSEC
Responses
Servers
Analyze
@DevTwitter | <MehrdadLinux/>
برای DNS یکی دیگه از ابزار های خیلی خوب در زمینه visualizing پروتکل DNS درک بهتر و نمایش دقیق فرایند برای اشکال زدایی سایت
dnsviz.net
است
DNSSEC
Responses
Servers
Analyze
@DevTwitter | <MehrdadLinux/>
👍8👎1
آرشیو منابع رایگان آموزش برنامه نویسی به زبان فارسی
https://github.com/metect/free-resources
@DevTwitter | <amirali/>
https://github.com/metect/free-resources
@DevTwitter | <amirali/>
❤21👎6👍3
خب امروز آموزش ساخت بسته Deb رو برای توزیع های دبیان بیس ضبط کردم.
از طریق یوتوب و پیرتوب میتونید تماشا کنید.
Youtube:
https://youtu.be/YqDXa7q55yo
PeerTube:
https://tubedu.org/w/fXf7E9pYnq6UPqj5N3iV8Z
@DevTwitter | <SohrabContents/>
از طریق یوتوب و پیرتوب میتونید تماشا کنید.
Youtube:
https://youtu.be/YqDXa7q55yo
PeerTube:
https://tubedu.org/w/fXf7E9pYnq6UPqj5N3iV8Z
@DevTwitter | <SohrabContents/>
👍25❤7🔥2👎1
یک Survey درباره LLM های چند زبانه که به تازگی در اویل همین ماه میلادی منتشر شد و شاید مطالعه ش خالی از لطف نباشه.
از جمله به چالش های پیش روی این مدل های زبانی بزرگ چند زبانه نیز
پرداخته شده است
https://arxiv.org/abs/2404.04925
@DevTwitter | <ai_python/>
از جمله به چالش های پیش روی این مدل های زبانی بزرگ چند زبانه نیز
پرداخته شده است
https://arxiv.org/abs/2404.04925
@DevTwitter | <ai_python/>
👍12👎1
حدود سه سال این کانال رو به تنهایی و بدون حتی ریالی درآمد چرخوندم، روزی که شروع کردم انتظاری از کسی نداشتم، کسی هم از من انتظاری نداشت.
گذشت و گذشت تا 27 فروردین 1402 اولین تبلیغم رو گرفتم.
تو مدت یکسال که از حدود 3k به 11k رسیدیم، دقیقا 158 عدد تبلیغ رفتیم (و حدود 2 هزار تا پست).
یه مقداری هم حمایت مالی (دونیت) داشتید که عین مبلغش رو از طرف شما عزیزان به خیریه اهدا کردم.
جز پرداخت هزینه برای یه سری پست ها، تمام مبالغ تبلیغات رو نگه داشتم، تا این که امروز با همون مبلغ حلقه ی نامزدی خریدم. 💍
خواستم ازتون بابت همه ی حمایت هاتون، حضورتون، پیامای قشنگتون، دونیت هاتون و ... تشکر کنم.
کم و کاستی های چنل رو ببخشید، دیگه چالشهام زیاد شده.
امیدوارم بتونم رضایت شما رو همراهم داشته باشم.
مخلص همتون ❤️
گذشت و گذشت تا 27 فروردین 1402 اولین تبلیغم رو گرفتم.
تو مدت یکسال که از حدود 3k به 11k رسیدیم، دقیقا 158 عدد تبلیغ رفتیم (و حدود 2 هزار تا پست).
یه مقداری هم حمایت مالی (دونیت) داشتید که عین مبلغش رو از طرف شما عزیزان به خیریه اهدا کردم.
جز پرداخت هزینه برای یه سری پست ها، تمام مبالغ تبلیغات رو نگه داشتم، تا این که امروز با همون مبلغ حلقه ی نامزدی خریدم. 💍
خواستم ازتون بابت همه ی حمایت هاتون، حضورتون، پیامای قشنگتون، دونیت هاتون و ... تشکر کنم.
کم و کاستی های چنل رو ببخشید، دیگه چالشهام زیاد شده.
امیدوارم بتونم رضایت شما رو همراهم داشته باشم.
مخلص همتون ❤️
❤738🔥35👍21🤣8
وقتی از خطرات قالب نال شده وردپرس صحبت میکنیم یه همچین مواردی مد نظر هست.
از دامنه یه سایت شرکتی ایرانی برای فیشینگ استفاده کردن.
با شرکت تماس گرفتم و بهشون اطلاع دادم و پشماشون ریخته بود که چجوری این ممکنه. من اینجا برای شما توضیح میدم:
وقتی یه قالب یا افزونه نال شده روی سایت وردپرس نصب میکنید در واقع دسترسی انجام هرکاری روی هاست خودتون رو به شخص توزیع کننده افزونه دادین. این شخص توزیع کننده که از این پس بهش میگیم ساقی همیشه کدهایی رو که به شما میده با ioncube رمزگذاری میکنه یعنی حتی اگه کدها رو نگاه هم بکنید نمیفهمید چیکار میکنه...
حالا در بهترین حالت اگه اون کدهای رمزگذاری شده هیچ کار خطرناکی هم انجام ندن باز هم خوب نیستند. چون موقع پیدا کردن اشکالات داخل سایت وردپرس نمیتونید بفهمید اشکال از کجاست.
اما حالت بد میشه اتفاقی که برای شرکت ferodoco افتاده. افزونه نال شده به ساقی یه مسیج زده که حااااجی! یکی ما رو روی این سایت خودش نصب کرده موقعیت فراهمه واسه خالیتر کردن حساب خلقالله!
ساقی هم که یه عوضی به تمام معناست به افزونه مسیج میده که برو فلان جا، فلان کد رو بگیر و کپی کن روی سایت قربانی.
افزونه هم میگه چشم و وقتی کارش تموم شد پیام میده که دستور شما انجام شد.
حالا ساقی میاد از یه اپلیکیشنهایی مثل تلگرام طلایی و قهوهای و اپلیکیشنهای کرک شده که از گوگل پلی نصب نشدن استفاده میکنه و به تمام مخاطبین یه بدبختی پیام میفرسته.
یه عده هم نادان و ناآگاه میرن اون تو اطلاعات جد و آباد خودشون رو میزنن به خیال دریافت کالابرگ.
جالبیش اینه که ساقی به هیچکدوم از این اطلاعات نیاز نداره. حداقل این یکی که نیازی نداشت. فقط قربانی رو میبره توی درگاه پرداخت الکی و اطلاعات کارتشو میگیره و میفرسته روی همون سایت وردپرسی آلوده.
به همین راحتی! بعد هم کسی شکایت کنه پلیس یقه مالک سایت رو میگیره
اون ساقی حرومزاده هم چون کدهاش رمزگذاری شده هیچوقت پیدا نمیشه. تازه میتونه در یک حرکت انتحاری بزنه کل کدهای افزونه رو پاک کنه و یه چیز تمیز بذاره جاش.
افزونه نال نصب نکنید! چیزی که نمیدونید چجوری کار میکنه استفاده نکنید!
@DevTwitter | <Ameer Mousavi/>
از دامنه یه سایت شرکتی ایرانی برای فیشینگ استفاده کردن.
با شرکت تماس گرفتم و بهشون اطلاع دادم و پشماشون ریخته بود که چجوری این ممکنه. من اینجا برای شما توضیح میدم:
وقتی یه قالب یا افزونه نال شده روی سایت وردپرس نصب میکنید در واقع دسترسی انجام هرکاری روی هاست خودتون رو به شخص توزیع کننده افزونه دادین. این شخص توزیع کننده که از این پس بهش میگیم ساقی همیشه کدهایی رو که به شما میده با ioncube رمزگذاری میکنه یعنی حتی اگه کدها رو نگاه هم بکنید نمیفهمید چیکار میکنه...
حالا در بهترین حالت اگه اون کدهای رمزگذاری شده هیچ کار خطرناکی هم انجام ندن باز هم خوب نیستند. چون موقع پیدا کردن اشکالات داخل سایت وردپرس نمیتونید بفهمید اشکال از کجاست.
اما حالت بد میشه اتفاقی که برای شرکت ferodoco افتاده. افزونه نال شده به ساقی یه مسیج زده که حااااجی! یکی ما رو روی این سایت خودش نصب کرده موقعیت فراهمه واسه خالیتر کردن حساب خلقالله!
ساقی هم که یه عوضی به تمام معناست به افزونه مسیج میده که برو فلان جا، فلان کد رو بگیر و کپی کن روی سایت قربانی.
افزونه هم میگه چشم و وقتی کارش تموم شد پیام میده که دستور شما انجام شد.
حالا ساقی میاد از یه اپلیکیشنهایی مثل تلگرام طلایی و قهوهای و اپلیکیشنهای کرک شده که از گوگل پلی نصب نشدن استفاده میکنه و به تمام مخاطبین یه بدبختی پیام میفرسته.
یه عده هم نادان و ناآگاه میرن اون تو اطلاعات جد و آباد خودشون رو میزنن به خیال دریافت کالابرگ.
جالبیش اینه که ساقی به هیچکدوم از این اطلاعات نیاز نداره. حداقل این یکی که نیازی نداشت. فقط قربانی رو میبره توی درگاه پرداخت الکی و اطلاعات کارتشو میگیره و میفرسته روی همون سایت وردپرسی آلوده.
به همین راحتی! بعد هم کسی شکایت کنه پلیس یقه مالک سایت رو میگیره
اون ساقی حرومزاده هم چون کدهاش رمزگذاری شده هیچوقت پیدا نمیشه. تازه میتونه در یک حرکت انتحاری بزنه کل کدهای افزونه رو پاک کنه و یه چیز تمیز بذاره جاش.
افزونه نال نصب نکنید! چیزی که نمیدونید چجوری کار میکنه استفاده نکنید!
@DevTwitter | <Ameer Mousavi/>
👍72🔥6🤣3👎1
اخیرا مدلهای تبدیل متن به صدا یا Text to Speech (TTS) زیادی آمدن با توانایی های مختلف. اما یک مدل جدید اومده که چندتا ویژگی داره که از بقیه متمایزش میکنه. اول اینکه کامل اپن سورسه و لایسنس آزاد داره یعنی بدونه هیچ نگرانی میتونید برای پروژه های تجاری ازش استفاده کنید.
اما مهمتر اینکه وقتی متن بهش میدید میتونید یک پرامپت هم بهش بدید که چه جور صدایی را درست کنه. مثلا میتونید بگید "صدای یک زن با لهجه آمریکایی و تون جدی" و اینجوری صدا را با توجه به این پرامپت درست میکنه. مقاله ۵ صفحه بیشتر نیست و خوندنی!
https://github.com/huggingface/parler-tts
@DevTwitter | <Mehdi Allahyari/>
اما مهمتر اینکه وقتی متن بهش میدید میتونید یک پرامپت هم بهش بدید که چه جور صدایی را درست کنه. مثلا میتونید بگید "صدای یک زن با لهجه آمریکایی و تون جدی" و اینجوری صدا را با توجه به این پرامپت درست میکنه. مقاله ۵ صفحه بیشتر نیست و خوندنی!
https://github.com/huggingface/parler-tts
@DevTwitter | <Mehdi Allahyari/>
👍30🔥5❤2👎1
دوستان گولنگ کار من درتلاشم که ماژول Collection رو به Goravel اضافه کنم ما میخوایم تا جای ممکن شبیه Laravel Collection باشه اما من به یه مشکلی خوردم اگه گولنگ بلدید میتونید جزئیات رو توی این PR ببینید و اگه نظر یا راه حلی دارید بدید
https://github.com/goravel/framework/pull/456#pullrequestreview-1999671450
@DevTwitter | <Kamandlou/>
https://github.com/goravel/framework/pull/456#pullrequestreview-1999671450
@DevTwitter | <Kamandlou/>
👍19👎9
امروز یه پروژه پایان نامه خیلی جالب دیدم، بررسی دروغ-صحت سنجی با پردازش زبان طبیعی (NLP)
تمام کدها با زبان پایتون نوشته شده، سورس کد گیت هاب این پروژه:
https://github.com/Melanee-Melanee/TruthDetection
@DevTwitter | <amir atar/>
تمام کدها با زبان پایتون نوشته شده، سورس کد گیت هاب این پروژه:
https://github.com/Melanee-Melanee/TruthDetection
@DevTwitter | <amir atar/>
👍26👎8🤣2
ساعت هوشمند چطور داده های خام شتابسنج و ژیروسکوپ رو به گام شماری تبدیل میکنه یا میفهمه کی خوابیدیم و کی بیدار شدیم؟!
در قسمت دوم از سری ساخت و برنامه نویسی ساعت هوشمند، قابلیت های گامشماری و پیگیری ساعت خواب رو برنامه نویسی کردم
Pedometer
Sleep tracking
ویدئو در یوتیوب:
https://youtu.be/MTMo72uaCZw?si=TgOSVvZ6yMQ5XTAT
@DevTwitter | <حسنوند/>
در قسمت دوم از سری ساخت و برنامه نویسی ساعت هوشمند، قابلیت های گامشماری و پیگیری ساعت خواب رو برنامه نویسی کردم
Pedometer
Sleep tracking
ویدئو در یوتیوب:
https://youtu.be/MTMo72uaCZw?si=TgOSVvZ6yMQ5XTAT
@DevTwitter | <حسنوند/>
🔥31👍10👎1
یکی از سوال های محبوب مصاحبه بک اند: فرق Kafka و RabbitMQ چیه؟
۱. Performance and Scalability
کافکا برای throughput بالا و horizontal scalability ساخته شده است. هرچند RabbitMQ پرفرمنس بالایی دارد وقتی throughput و حجم داده زیاد باشد کافکا مناسب تر است.
۲. Message Ordering
در RabbitMQ در یک صف ترتیب پیام ها حفظ میشود. در کافکا در یک پارتیشن ترتیب پیام های یک topic حفظ میشود اما نه در پارتیشن های مختلف.
۳. Message Priority
در RabbitMQ از اولویت پیام ها پشتیبانی میشود که اجازه میدهد پیام های با اولویت بالا زودتر پردازش شوند. کافگا به صورت built-in از اولویت پشتیبانی نمیکند.
۴. Message Model
مدل پیام های RabbitMQ مبتنی بر صف است و از پروتکل AMQP تبعیت میکند اما کافکا مدل لاگ توزیع شده دارد.
۵. Durability:
برای اینکه پیام ها Durable باشند یعنی اگر failure رخ دهد از بین نروند، در RabbitMQ نیاز به تنظیمات است اما کافکا به طور درونی از این مورد پشتیبانی میکند.
۶. Message Routing
در Rabbit برای مسیریابی پیام ها پیشرفته تر و با استفاده از exchange و binding انجام میشود اما در کافکا ابتدایی تر و با استفاده از topic و پارتیشن ها انجام میشود.
۷. Replication
در Rabbit برای replication می توان از Mirrored Queue استفاده کرد. و کافکا نیز به صورت درونی از partition replication پشتیبانی میکند.
8. Stream Processing
هر دو کافکا و Rabbit از پردازش Stream پشتیبانی می کنند.
9. Latency
طراحی RabbitMQ برای تاخیر کم است و در جایی که نیاز به پردازش نزدیک به realtime است، استفاده میشود.
10. License
لایسنس Rabbit از نوع Mozilla Public License و لایسنس کافکا از نوع 2.0 Apache است.
RabbitMQ یک message broker اما کافکا یک distributed streaming platform است.
یک فرق اساسی این است که کافکا pull-based اما RabbitMQ داری پروتکل push-based است.
یک سیستم pull-based صبر می کند تا مصرف کننده ها داده را درخواست کنند.
یک سیستم push-based به صورت اتوماتیک پیام ها را به مصرف کنندهای که subscribe کردهاند میفرستد.
یک سیستم pull-based برای کافکا معنی میدهد. چون در کافکا پیام های هر پارتیشن ترتیب دارد و کاربران می توانند با throughput بیشتری داده ها را دریافت کنند.
RabbitMQ یک push model با محدودیت prefetch دارد. برای پیام هایی با low-latency مناسب است. هدف اصلی مدل push این است که پیام ها هر چه سریعتر توزیع شوند اما یکی یکی.
RabbitMQ می تواند هر ثانیه 4k تا 10k پیام هر ثانیه بفرستد اما کافکا می تواند ۱ میلیون پیام هر ثانیه بفرستد.
در Rabbit مدل smart broker و dumb consumer استفاده میشود اما در کافکا مدل dumb broker و smart consumer استفاده میشود.
نگه داری پیام در RabbitMQ به صورت acknownledge-based اما در کافکا به صورت policy-based است.
در RabbitMQ هیچ محدودیتی برای سایز payload نیست اما در کافکا به صورت پیش فرض یک مگابایت است.
تمرین عملی: یک اپلیکیشن چت بنویسید که چند نمونه از بک اند بالا باشد و هر کلاینت به یک بک اند وصل شود و از طریق کافکا یا RabbitMQ بک اند ها رو با هم sync کنید.
@DevTwitter | <Pouria Jahandideh/>
۱. Performance and Scalability
کافکا برای throughput بالا و horizontal scalability ساخته شده است. هرچند RabbitMQ پرفرمنس بالایی دارد وقتی throughput و حجم داده زیاد باشد کافکا مناسب تر است.
۲. Message Ordering
در RabbitMQ در یک صف ترتیب پیام ها حفظ میشود. در کافکا در یک پارتیشن ترتیب پیام های یک topic حفظ میشود اما نه در پارتیشن های مختلف.
۳. Message Priority
در RabbitMQ از اولویت پیام ها پشتیبانی میشود که اجازه میدهد پیام های با اولویت بالا زودتر پردازش شوند. کافگا به صورت built-in از اولویت پشتیبانی نمیکند.
۴. Message Model
مدل پیام های RabbitMQ مبتنی بر صف است و از پروتکل AMQP تبعیت میکند اما کافکا مدل لاگ توزیع شده دارد.
۵. Durability:
برای اینکه پیام ها Durable باشند یعنی اگر failure رخ دهد از بین نروند، در RabbitMQ نیاز به تنظیمات است اما کافکا به طور درونی از این مورد پشتیبانی میکند.
۶. Message Routing
در Rabbit برای مسیریابی پیام ها پیشرفته تر و با استفاده از exchange و binding انجام میشود اما در کافکا ابتدایی تر و با استفاده از topic و پارتیشن ها انجام میشود.
۷. Replication
در Rabbit برای replication می توان از Mirrored Queue استفاده کرد. و کافکا نیز به صورت درونی از partition replication پشتیبانی میکند.
8. Stream Processing
هر دو کافکا و Rabbit از پردازش Stream پشتیبانی می کنند.
9. Latency
طراحی RabbitMQ برای تاخیر کم است و در جایی که نیاز به پردازش نزدیک به realtime است، استفاده میشود.
10. License
لایسنس Rabbit از نوع Mozilla Public License و لایسنس کافکا از نوع 2.0 Apache است.
RabbitMQ یک message broker اما کافکا یک distributed streaming platform است.
یک فرق اساسی این است که کافکا pull-based اما RabbitMQ داری پروتکل push-based است.
یک سیستم pull-based صبر می کند تا مصرف کننده ها داده را درخواست کنند.
یک سیستم push-based به صورت اتوماتیک پیام ها را به مصرف کنندهای که subscribe کردهاند میفرستد.
یک سیستم pull-based برای کافکا معنی میدهد. چون در کافکا پیام های هر پارتیشن ترتیب دارد و کاربران می توانند با throughput بیشتری داده ها را دریافت کنند.
RabbitMQ یک push model با محدودیت prefetch دارد. برای پیام هایی با low-latency مناسب است. هدف اصلی مدل push این است که پیام ها هر چه سریعتر توزیع شوند اما یکی یکی.
RabbitMQ می تواند هر ثانیه 4k تا 10k پیام هر ثانیه بفرستد اما کافکا می تواند ۱ میلیون پیام هر ثانیه بفرستد.
در Rabbit مدل smart broker و dumb consumer استفاده میشود اما در کافکا مدل dumb broker و smart consumer استفاده میشود.
نگه داری پیام در RabbitMQ به صورت acknownledge-based اما در کافکا به صورت policy-based است.
در RabbitMQ هیچ محدودیتی برای سایز payload نیست اما در کافکا به صورت پیش فرض یک مگابایت است.
تمرین عملی: یک اپلیکیشن چت بنویسید که چند نمونه از بک اند بالا باشد و هر کلاینت به یک بک اند وصل شود و از طریق کافکا یا RabbitMQ بک اند ها رو با هم sync کنید.
@DevTwitter | <Pouria Jahandideh/>
👍43❤5👎1
Macro instructions
در دنیای کامپیوتر و برنامه نویسی، macro یه سری از دستورات کوچیکه که میتونه یه کار بزرگتر رو انجام بده(درشت دستور). مثلا فرض کنید میخواین یه سری عملیات پیچیده رو روی یه فایل انجام بدید، به جای اینکه دستور به دستور اونارو تایپ کنید، میتونید یه macro بنویسید که همه اون دستورات رو یه جا اجرا میکنه.
- مزایاش چیه؟
۱. صرفهجویی در زمان:
به جای تایپ کردن دستورات مکرر، فقط کافیه macro رو فراخوانی کنید و همه کارا انجام میشه.
۲. کاهش خطاها:
چون دیگه نیازی به تایپ دستورات نیست، احتمال خطای انسانی کمتر میشه.
۳. سازماندهی بهتر:
میتونید macroهاتون رو طوری بنویسید که کدتون منظمتر و خواناتر بشه.
- و...
البته باید دقت کنید که نباید از macroها زیاد سوء استفاده کنید، چون ممکنه باعث بشه برنامهٔ شما کند و ناکارآمد بشه. (با درایت ازشون استفاده کنید)
@DevTwitter | <PinkOrca/>
در دنیای کامپیوتر و برنامه نویسی، macro یه سری از دستورات کوچیکه که میتونه یه کار بزرگتر رو انجام بده(درشت دستور). مثلا فرض کنید میخواین یه سری عملیات پیچیده رو روی یه فایل انجام بدید، به جای اینکه دستور به دستور اونارو تایپ کنید، میتونید یه macro بنویسید که همه اون دستورات رو یه جا اجرا میکنه.
- مزایاش چیه؟
۱. صرفهجویی در زمان:
به جای تایپ کردن دستورات مکرر، فقط کافیه macro رو فراخوانی کنید و همه کارا انجام میشه.
۲. کاهش خطاها:
چون دیگه نیازی به تایپ دستورات نیست، احتمال خطای انسانی کمتر میشه.
۳. سازماندهی بهتر:
میتونید macroهاتون رو طوری بنویسید که کدتون منظمتر و خواناتر بشه.
- و...
البته باید دقت کنید که نباید از macroها زیاد سوء استفاده کنید، چون ممکنه باعث بشه برنامهٔ شما کند و ناکارآمد بشه. (با درایت ازشون استفاده کنید)
@DevTwitter | <PinkOrca/>
👍26👎2
گوگل یه 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