✨سرعت تایپ خود را بالا ببرید✨
بالابردن سرعت تایپ یکی از مهم ترین عوامل در افزایش بهرهوری در کدنویسی است. زمانی که شما توانایی تایپ سریع را داشته باشید، می توانید سریع تر ایده هایتان را پیاده سازی کنید و از وقت بیشتری برای بررسی، بهبود و توسعه کد هایتان استفاده کنید.
⚡️ در ادامه، تعدادی از راهکار هایی را که در افزایش سرعت تایپ تاثیر گذار هستند، بررسی خواهیم کرد🔥
☝️استفاده از سایت های تمرین تایپ:
از جمله روش های مؤثر در افزایش سرعت تایپ و بهبود تمرکز، استفاده از سایت های تمرین تایپ است. این سایت ها معمولاً تمرینات تایپ چالش برانگیزی ارائه می دهند که شما می توانید با آن ها تمرین کنید. این سایت ها می توانند با ارائه متون در سطح های دشوار، متوسط و آسان، سرعت و دقت شما را به چالش بکشند. با تکرار تمرین ها در این سایت ها، به تدریج قدرت تایپ خود را ارتقا داده و به سرعت تایپ بیشتری دست پیدا خواهید کرد.
✌️تمرین مداوم:
مانند هر مهارت دیگری، تمرین در تایپ نیز به بهبود سرعت شما کمک می کند. انجام تمرینات تایپی می تواند به صورت تدریجی سرعت و دقت شما را افزایش دهد.
💯شما می توانید با جستجوی عبارت تمرین تایپ یا تایپ ده انگشتی در گوگل به این سایت ها دسترسی پیدا کنید. با تمرین و تکرار ممتد در این سایت ها شما نه تنها به یک برنامه نویس پرسرعت بلکه به یک تایپیست ماهر هم تبدیل خواهید شد.
#Site #programming
بالابردن سرعت تایپ یکی از مهم ترین عوامل در افزایش بهرهوری در کدنویسی است. زمانی که شما توانایی تایپ سریع را داشته باشید، می توانید سریع تر ایده هایتان را پیاده سازی کنید و از وقت بیشتری برای بررسی، بهبود و توسعه کد هایتان استفاده کنید.
⚡️ در ادامه، تعدادی از راهکار هایی را که در افزایش سرعت تایپ تاثیر گذار هستند، بررسی خواهیم کرد🔥
☝️استفاده از سایت های تمرین تایپ:
از جمله روش های مؤثر در افزایش سرعت تایپ و بهبود تمرکز، استفاده از سایت های تمرین تایپ است. این سایت ها معمولاً تمرینات تایپ چالش برانگیزی ارائه می دهند که شما می توانید با آن ها تمرین کنید. این سایت ها می توانند با ارائه متون در سطح های دشوار، متوسط و آسان، سرعت و دقت شما را به چالش بکشند. با تکرار تمرین ها در این سایت ها، به تدریج قدرت تایپ خود را ارتقا داده و به سرعت تایپ بیشتری دست پیدا خواهید کرد.
✌️تمرین مداوم:
مانند هر مهارت دیگری، تمرین در تایپ نیز به بهبود سرعت شما کمک می کند. انجام تمرینات تایپی می تواند به صورت تدریجی سرعت و دقت شما را افزایش دهد.
💯شما می توانید با جستجوی عبارت تمرین تایپ یا تایپ ده انگشتی در گوگل به این سایت ها دسترسی پیدا کنید. با تمرین و تکرار ممتد در این سایت ها شما نه تنها به یک برنامه نویس پرسرعت بلکه به یک تایپیست ماهر هم تبدیل خواهید شد.
#Site #programming
شاید نظرم اشتباه باشه ولی، لازمه که بگم :
پروسه مصاحبه فنی بعضی از شرکتها خیلی جالبه، شخصاً چند مورد (کم) دیدم ولی دوستان تأیید کردند همه جا هست، اگر ازین مصاحبهها رد شدید اصلا نگران نباشید قطعاً شما درست ارزیابی نشدید :
درخواست برای مثلاً، Machine Learning Enginner سوالات مصاحبه :
۱-
۵ سوال اول حاشیهای، من این سوالات رو هیچ وقت جدی نگرفتم و نمیگیرم (سوالات مربوط به پایتون و یا مثلاً نحوه آماده سازی و publish پکیج روی pypi)
نظر بنده : این سری سوال مخصوصاً وقتی روی یک کار خاص هست به هیچ وجه نمیتونه شمارو ارزیابی کنه (مگر اینکه به شما یک زمان معقول داده بشه و درک شما و نحوه برخورد شما با مسائل جدید رو بخوان بسنجند که بسیار کار درست و خوبیه)
۲-
دومین مورد اینه که از شما راجب الگوریتم و ساختمان داده نحوه عملکرد الگوریتم خاص یا پیادهسازی اون.
نظر بنده: اگر قرار باشه شرکت شمارو بعنوان
Software developer, software engineer
یا ... استخدام کنه الزام هست که این الگوریتم هارو بدونید (منظور از دانستن اینه که بدون گوگل کردن نحوه کار الگوریتم بتونید اون رو پیادهسازی کنید ینی تک تک جزئیات رو بدونید.)
۳-
سوال خیلی بهتر و حرفهای تر که شخصاً فقط توی ۱ مصاحبه داخلی دیدم، تعریف یک مسئله خاص هست و اینکه از چه راه حلی برای حل اون استفاده میکنی ؟
(معمولاً ساختمان داده و الگوریتم لازمه و نظرم روی قبلی هست ولی خب بهتره)
۴-
دیپلرنینگ چیست؟، ماشین لرنینگ چیست؟ یا ...
نظر من :
جالبی این مدل سوال اینه که ی چیزی توی سایت خوندن و حفظ کردن و هیچ درکی از مفهوم ندارند واسه همین اگر یک مدل دیگه تعریف کنید، هیچی نمیفهمند
۵-
شخص فنی مصاحبه کننده هیچ تخصصی در زمینه کاری شما نداره و فقط یکبار به اجبار پروژه چند خط کد از گیتهاب برداشته و اجرا کرده و شانسی جواب خوبی گرفته.
نظر بنده:
این رایج ترین حالت توی ایران هست، همیشه خودتون رو برای مواجه با این افراد آماده کنید، ۸۰٪ موارد شخص روبرتون توی یکی ازین دستههاس (ادمین دیتابیس، وب دولوپر (بکند یا فرانت)، مدیر شبکه، ادمین سرور (ویندوز) ) توی ۱۹٪ موارد هم شانس بیارید ادمین سرور لینوکس یا سیستم دولوپر هست و ی مقدار سوالات بهتر میپرسه.
۱٪ تخصص شمارو داره و میدونه چی ازتون میخواد، سادهترین حالت مصاحبه همینه (چندتا سوال از نحوه پیاده سازی چیزی که میخواد میپرسه و اونجا باید خودتونو نشون بدید)
---------------
چندتا پیشنهاد برای دوستان مصاحبه گر (هوش مصنوعی یا دیتا ساینس):
۱- سعی کنید سوال جوری باشه که نحوه حل مسئله طرف رو بسنجید، کلی بپرسید و ببینید چه راهکار یا راهکارهایی برای حل اون مسئله ارائه میده ( اینکه بتونه کانولوشن رو از حفظ فرمولش رو بنویسه یا ... یا اینکه اسمهای بزرگ. gpt و ... رو بلد باشه و از حفظ توضیح بده بدرد شما نمیخوره ) شخصی مفید هست که بتونه با دیدن مسئله راهکار درست رو ارائه بده این راهکار باید کم هزینه هم باشه و زمان کمی بگیره
۲- اگر سوال رو از یک پروژه حل شده دارید میپرسید منصف باشید، توقع نداشته باشید راجب پروژه یا موضوعی که شما و تیم شما ۶ ماه یا بیشتر درگیرش بودید همون اول بهترین جواب رو بگیرید و مصاحبه شونده تمام چالشها روهم در ذهنش داشته باشه و همون ابتدا پاسخ بده، حتی آماده شنیدن و بررسی روش دیگر هم باشید.
۳- اگر توی کاری که میکنید research هم مهم هست، یک مقاله مرتبط ارسال کنید و یک زمانبندی بدید از شخص بخواید درکش از مقاله رو براتون توضیح بده.
۴- اجازه سرچ کردن به شخص موقع مصاحبه رو بدید و این موضوع رو همون اول بهش بگید، مصاحبههای ۱۰-۱۵ سال پیش بود که به توقع داشتیم شخص متقاضی همهی موضوع رو حفظ باشه و ذهنی بگه، الان خود درست سرچ کردن و پیدا کردن راهحل یا درک راهحلی که توی اینترنت موجود هست از هرچیزی واجبتر و مهمتره
همهی ما stack overflow رو روزی چندبار دنبال میکنیم، این چیزی نیست که بابتش ناراحت باشیم بلکه بخشی از
کار هست و خوب تخصصیه اگر کسی در کمترین زمان راهحل چالشش رو پیدا کنه
۵- دنیا بسیار تغییر کرده و با سرعت بسیار بسیار بالایی هم علم درحال تغییر هست، اگر به چیزایی که حفظ هستند و تعاریف قشنگ و کتابی افراد تکیه کنید، قطعاً فقط چندماه بدردتون خواهد خورد. چیزهایی رو بپرسید که واقعاً توی کار شما بدرد شما میخوره
۶- برای بیزینس MLOPS بسیار اهمیت بیشتری داره تا مدلی با بالاترین دقت، راجب سرعت و نحوه deploy مدلها سوال کنید حتماً
صرف اینکه طرف میتونه مدلی رو تولید کنه بدرد شما نمیخوره، بیزینس نیازی به تولید مدل نداره
اهمیت روی دیتا و دیپلوی هست
۷- نحوه پردازش و درک افراد از دیتا رو سوال کنید، درک اشتباه ینی راهحل اشتباه که ینی خسارت.
پروسه مصاحبه فنی بعضی از شرکتها خیلی جالبه، شخصاً چند مورد (کم) دیدم ولی دوستان تأیید کردند همه جا هست، اگر ازین مصاحبهها رد شدید اصلا نگران نباشید قطعاً شما درست ارزیابی نشدید :
درخواست برای مثلاً، Machine Learning Enginner سوالات مصاحبه :
۱-
۵ سوال اول حاشیهای، من این سوالات رو هیچ وقت جدی نگرفتم و نمیگیرم (سوالات مربوط به پایتون و یا مثلاً نحوه آماده سازی و publish پکیج روی pypi)
نظر بنده : این سری سوال مخصوصاً وقتی روی یک کار خاص هست به هیچ وجه نمیتونه شمارو ارزیابی کنه (مگر اینکه به شما یک زمان معقول داده بشه و درک شما و نحوه برخورد شما با مسائل جدید رو بخوان بسنجند که بسیار کار درست و خوبیه)
۲-
دومین مورد اینه که از شما راجب الگوریتم و ساختمان داده نحوه عملکرد الگوریتم خاص یا پیادهسازی اون.
نظر بنده: اگر قرار باشه شرکت شمارو بعنوان
Software developer, software engineer
یا ... استخدام کنه الزام هست که این الگوریتم هارو بدونید (منظور از دانستن اینه که بدون گوگل کردن نحوه کار الگوریتم بتونید اون رو پیادهسازی کنید ینی تک تک جزئیات رو بدونید.)
۳-
سوال خیلی بهتر و حرفهای تر که شخصاً فقط توی ۱ مصاحبه داخلی دیدم، تعریف یک مسئله خاص هست و اینکه از چه راه حلی برای حل اون استفاده میکنی ؟
(معمولاً ساختمان داده و الگوریتم لازمه و نظرم روی قبلی هست ولی خب بهتره)
۴-
دیپلرنینگ چیست؟، ماشین لرنینگ چیست؟ یا ...
نظر من :
جالبی این مدل سوال اینه که ی چیزی توی سایت خوندن و حفظ کردن و هیچ درکی از مفهوم ندارند واسه همین اگر یک مدل دیگه تعریف کنید، هیچی نمیفهمند
۵-
شخص فنی مصاحبه کننده هیچ تخصصی در زمینه کاری شما نداره و فقط یکبار به اجبار پروژه چند خط کد از گیتهاب برداشته و اجرا کرده و شانسی جواب خوبی گرفته.
نظر بنده:
این رایج ترین حالت توی ایران هست، همیشه خودتون رو برای مواجه با این افراد آماده کنید، ۸۰٪ موارد شخص روبرتون توی یکی ازین دستههاس (ادمین دیتابیس، وب دولوپر (بکند یا فرانت)، مدیر شبکه، ادمین سرور (ویندوز) ) توی ۱۹٪ موارد هم شانس بیارید ادمین سرور لینوکس یا سیستم دولوپر هست و ی مقدار سوالات بهتر میپرسه.
۱٪ تخصص شمارو داره و میدونه چی ازتون میخواد، سادهترین حالت مصاحبه همینه (چندتا سوال از نحوه پیاده سازی چیزی که میخواد میپرسه و اونجا باید خودتونو نشون بدید)
---------------
چندتا پیشنهاد برای دوستان مصاحبه گر (هوش مصنوعی یا دیتا ساینس):
۱- سعی کنید سوال جوری باشه که نحوه حل مسئله طرف رو بسنجید، کلی بپرسید و ببینید چه راهکار یا راهکارهایی برای حل اون مسئله ارائه میده ( اینکه بتونه کانولوشن رو از حفظ فرمولش رو بنویسه یا ... یا اینکه اسمهای بزرگ. gpt و ... رو بلد باشه و از حفظ توضیح بده بدرد شما نمیخوره ) شخصی مفید هست که بتونه با دیدن مسئله راهکار درست رو ارائه بده این راهکار باید کم هزینه هم باشه و زمان کمی بگیره
۲- اگر سوال رو از یک پروژه حل شده دارید میپرسید منصف باشید، توقع نداشته باشید راجب پروژه یا موضوعی که شما و تیم شما ۶ ماه یا بیشتر درگیرش بودید همون اول بهترین جواب رو بگیرید و مصاحبه شونده تمام چالشها روهم در ذهنش داشته باشه و همون ابتدا پاسخ بده، حتی آماده شنیدن و بررسی روش دیگر هم باشید.
۳- اگر توی کاری که میکنید research هم مهم هست، یک مقاله مرتبط ارسال کنید و یک زمانبندی بدید از شخص بخواید درکش از مقاله رو براتون توضیح بده.
۴- اجازه سرچ کردن به شخص موقع مصاحبه رو بدید و این موضوع رو همون اول بهش بگید، مصاحبههای ۱۰-۱۵ سال پیش بود که به توقع داشتیم شخص متقاضی همهی موضوع رو حفظ باشه و ذهنی بگه، الان خود درست سرچ کردن و پیدا کردن راهحل یا درک راهحلی که توی اینترنت موجود هست از هرچیزی واجبتر و مهمتره
همهی ما stack overflow رو روزی چندبار دنبال میکنیم، این چیزی نیست که بابتش ناراحت باشیم بلکه بخشی از
کار هست و خوب تخصصیه اگر کسی در کمترین زمان راهحل چالشش رو پیدا کنه
۵- دنیا بسیار تغییر کرده و با سرعت بسیار بسیار بالایی هم علم درحال تغییر هست، اگر به چیزایی که حفظ هستند و تعاریف قشنگ و کتابی افراد تکیه کنید، قطعاً فقط چندماه بدردتون خواهد خورد. چیزهایی رو بپرسید که واقعاً توی کار شما بدرد شما میخوره
۶- برای بیزینس MLOPS بسیار اهمیت بیشتری داره تا مدلی با بالاترین دقت، راجب سرعت و نحوه deploy مدلها سوال کنید حتماً
صرف اینکه طرف میتونه مدلی رو تولید کنه بدرد شما نمیخوره، بیزینس نیازی به تولید مدل نداره
اهمیت روی دیتا و دیپلوی هست
۷- نحوه پردازش و درک افراد از دیتا رو سوال کنید، درک اشتباه ینی راهحل اشتباه که ینی خسارت.
❤1
-اصل Good Comments در کلین کد
این اصل چنتا زیر مجموعه داره و کامنت های مفیدی که میتونید بزارید رو گفته تو این پست سعی میکنم به طور خلاصه همشون رو بگم
1 - Legal Comments
گاها نیازه که تو اول هر فایل سورس یه سری کامنت در باره ارزش های حقوقی پروژه بزارید مثل این کامنت توی FitNesse
2 - Informative Comments
خوبه که بعضی مواقع یه سریع توضیحات دقیق و مختصر رو کامنت کنیم . البته بهتره تا جایی که میشه اسم تابع این اطلاعات رو بهمون بده ولی اگه نشد یه کامنت بزارید مثلا :
3 - Explanation of Intent
بعضی مواقع خوبه که قصدی که از نوشتن اون تیکه کد رو داشتید کامنت کنید (با این که در اکثر مواقع نیازی به کامنت نیست)
4 - Clarification
گاها خوبه که اون تیکه از کدمون که یه مقدار مبهمه به صورت ساده شده یه کامنت در بارش بزاریم مثلا
5 - Warning of Consequences
ممکنه یه تیکه کدی داشته باشید که ران کردنش یه عواقبی داشته باشه حالا چه کم چه زیاد
بهتر براش تو کامنتا هشدار بنویسید که برنامه نویس های دیگه حواسشون باشه
6 - TODO Comments
بعضی وقتا قصد دارید که بعدا یک قسمتی رو بهبود بدید یا اضافه کنید اینطور مواقع میتونید TODO بزارید که با
این اصل چنتا زیر مجموعه داره و کامنت های مفیدی که میتونید بزارید رو گفته تو این پست سعی میکنم به طور خلاصه همشون رو بگم
1 - Legal Comments
گاها نیازه که تو اول هر فایل سورس یه سری کامنت در باره ارزش های حقوقی پروژه بزارید مثل این کامنت توی FitNesse
// Copyright (C) 2003,2004,2005 by Object Mentor, Inc. All rights reserved.
// Released under the terms of the GNU General Public License version 2 or later.
2 - Informative Comments
خوبه که بعضی مواقع یه سریع توضیحات دقیق و مختصر رو کامنت کنیم . البته بهتره تا جایی که میشه اسم تابع این اطلاعات رو بهمون بده ولی اگه نشد یه کامنت بزارید مثلا :
// Returns an instance of the Responder being tested.
protected abstract Responder responderInstance()
3 - Explanation of Intent
بعضی مواقع خوبه که قصدی که از نوشتن اون تیکه کد رو داشتید کامنت کنید (با این که در اکثر مواقع نیازی به کامنت نیست)
4 - Clarification
گاها خوبه که اون تیکه از کدمون که یه مقدار مبهمه به صورت ساده شده یه کامنت در بارش بزاریم مثلا
assertTrue(a.compareTo(a) == 0); // a == a
assertTrue(a.compareTo(b) != 0); // a != b
5 - Warning of Consequences
ممکنه یه تیکه کدی داشته باشید که ران کردنش یه عواقبی داشته باشه حالا چه کم چه زیاد
بهتر براش تو کامنتا هشدار بنویسید که برنامه نویس های دیگه حواسشون باشه
6 - TODO Comments
بعضی وقتا قصد دارید که بعدا یک قسمتی رو بهبود بدید یا اضافه کنید اینطور مواقع میتونید TODO بزارید که با
TODO //
شروع میشه معمولا👌1
-اصل Use Pronounceable Names در کلین کد
این اصل میگه که شما باید اسم هایی که برای متغیر هاتون انتخاب میکنید قابل تلفظ باشه اگه نتونید تلفظش کنید نمیتونید در بارش بحث کنید بدون این که صدای احمقانه در بیارید این مهمه چون برنامه نویسی یه فعالیت اجتماعیه
ما برنامه نویسا باید اسم هارو جوری انتخاب کنیم که وقتی در بارش توضیح میدیم راحت باشیم مثلا این دوتا کد رو ببینید اولی اسم های غیر قابل تلفظ داره و دومی اسم های درست درمون
کد زیر :
میتونه با متغیر های بهتر زیر نوشته باشه :
حالا وقتی میخوایم به رفیقمون بگیم بیا یه نگاه به این کد بنداز دیگه راحت تلفظ میکنیم و صدای احمقانه در نمیاریم
این اصل میگه که شما باید اسم هایی که برای متغیر هاتون انتخاب میکنید قابل تلفظ باشه اگه نتونید تلفظش کنید نمیتونید در بارش بحث کنید بدون این که صدای احمقانه در بیارید این مهمه چون برنامه نویسی یه فعالیت اجتماعیه
ما برنامه نویسا باید اسم هارو جوری انتخاب کنیم که وقتی در بارش توضیح میدیم راحت باشیم مثلا این دوتا کد رو ببینید اولی اسم های غیر قابل تلفظ داره و دومی اسم های درست درمون
کد زیر :
class DtaRcd102 {
private Date genymdhms;
private Date modymdhms;
private final String pszqint = "102";
};
میتونه با متغیر های بهتر زیر نوشته باشه :
class Customer {
private Date generationTimestamp;
private Date modificationTimestamp;
private final String recordId = "102";
};
حالا وقتی میخوایم به رفیقمون بگیم بیا یه نگاه به این کد بنداز دیگه راحت تلفظ میکنیم و صدای احمقانه در نمیاریم
Unpopular opinion
خیلی دیدم جامعه رو <سخت کار کردن> مانور رفته. سخت کار کن. موفق میشی. و ...
ولی حقیقتا اصلا مهم نیست چقدر سخت کار میکنید. مهم خروجیه. ممکنه من ۷ صبح کار کنم تا ۷ شب. ولی خروجیم کمتر از کسی باشه که ۱۱ صبح کار میکنه تا ۴.
پس مهم نیست چقدر سخت کار میکنی. مهم اینه که کارآمد و بهینه کار میکنی.
خیلی دیدم جامعه رو <سخت کار کردن> مانور رفته. سخت کار کن. موفق میشی. و ...
ولی حقیقتا اصلا مهم نیست چقدر سخت کار میکنید. مهم خروجیه. ممکنه من ۷ صبح کار کنم تا ۷ شب. ولی خروجیم کمتر از کسی باشه که ۱۱ صبح کار میکنه تا ۴.
پس مهم نیست چقدر سخت کار میکنی. مهم اینه که کارآمد و بهینه کار میکنی.
👍2👾1
به عنوان یه سیستم ادمین یه زمانی ممکنه بخواین همه سرویس های سرور رو ریستارت کنین طوری که کرنل ریبوت نشه (خود سرور ریستارت نشه)
واسه os های جدید که از systemd پشتیبانی میکنن دستور زیر یه همچین کاری رو انجام میده:
و برای os های قدیمی تر با تغییر runlevel ها اینکارو میتونین انجام بدین:
واسه os های جدید که از systemd پشتیبانی میکنن دستور زیر یه همچین کاری رو انجام میده:
systemctl isolate rescue
systemctl isolate default
و برای os های قدیمی تر با تغییر runlevel ها اینکارو میتونین انجام بدین:
init 1; init 3
اگر خواستید یکی رو آزار بدید
بهش بگید
رو توی
فکر کنم این عذاب برنامهنویسهای جهنمی باشه 😂😂
بهش بگید
Red-Black Tree
رو توی
Rust
پیاده سازی کنه فکر کنم این عذاب برنامهنویسهای جهنمی باشه 😂😂
یکی از دوستان پرسیده با جنگو
Sqlalchemy
استفاده کنم؟
جواب : به هیچ عنوان
یه قانون نا نوشته که وجود داره اینه که شما تا جای ممکن سعی میکنی ابزار هایی توی یک اکوسیستم هستن رو با هم استفاده کنی
چرا که هم زاویه دید مشابه دارن
هم عموما با هم کامپتیبل تر هستن
هم ابزار های دیگ ای که برای این اکوسیستم نوشته شدن رو نمیخوای از دست بدی
حالا جنگو و orm جنگو که خیلی تابلو هستش
حتی جاهایی که از هم دور تر هم هستن بازم این مساله وجود داره
مثلا دات نت کور و Microsoft sql
اینها تنها ویژگی مشترکشون مایکروسافت هستش یعنی خیلی راحت میشه بجاش از پستگرس استفاده کرد ولی میبینید که همچنان کلی شرکت Microsoft sql مهم ترین اپشنشون هست
درصورتی که ما شاید سمت پایتون اصلا خیلی درنظرش نگیریم
استثنا هم قطعا وجود داره 😒
Sqlalchemy
استفاده کنم؟
جواب : به هیچ عنوان
یه قانون نا نوشته که وجود داره اینه که شما تا جای ممکن سعی میکنی ابزار هایی توی یک اکوسیستم هستن رو با هم استفاده کنی
چرا که هم زاویه دید مشابه دارن
هم عموما با هم کامپتیبل تر هستن
هم ابزار های دیگ ای که برای این اکوسیستم نوشته شدن رو نمیخوای از دست بدی
حالا جنگو و orm جنگو که خیلی تابلو هستش
حتی جاهایی که از هم دور تر هم هستن بازم این مساله وجود داره
مثلا دات نت کور و Microsoft sql
اینها تنها ویژگی مشترکشون مایکروسافت هستش یعنی خیلی راحت میشه بجاش از پستگرس استفاده کرد ولی میبینید که همچنان کلی شرکت Microsoft sql مهم ترین اپشنشون هست
درصورتی که ما شاید سمت پایتون اصلا خیلی درنظرش نگیریم
استثنا هم قطعا وجود داره 😒
🔥1
این ریپو اومده پروژههای استخدامی ی سری از شرکتای بزرگ و به همراه جوابش قرار داده که خوندنشون میتونه برای کسایی که دنبال کارن مفید باشه.
https://github.com/laravel98developer/laravel-hiring-projects
https://github.com/laravel98developer/laravel-hiring-projects
تا الان سه تا مدل OCR واسه زبان فارسی باستان نوشتم که دو تا مدلِ
easyocr_old_persian
و
tessercat_old_persian
کار میکنند. اگر بخواید میتونید الان تست شون کنید.
توجه کنید الان فقط مدل هارو نوشتم ولی چون برای شروع دیتای کمی بهش دادم، فعلا پرفورمنسش کمه ولی در آینده با دیتای بهتر و بیشتری مدلم رو train میکنم تا به نتایج بهتری برسم. در حال حاضر، طبق نتایجی که در عکس ها ملاحضه میکنید؛
confidence score
مدلم حدود 0.5 هست.
تصویر خط میخی ای که ملاحضه میکنید مربوط به ۱۲ خطِ آخر کتیبه ی داریوش بزرگ در تخت جمشید (کتیبه DPd) هست.
#نتایج
#زبان_فارسی_باستان
easyocr_old_persian
و
tessercat_old_persian
کار میکنند. اگر بخواید میتونید الان تست شون کنید.
توجه کنید الان فقط مدل هارو نوشتم ولی چون برای شروع دیتای کمی بهش دادم، فعلا پرفورمنسش کمه ولی در آینده با دیتای بهتر و بیشتری مدلم رو train میکنم تا به نتایج بهتری برسم. در حال حاضر، طبق نتایجی که در عکس ها ملاحضه میکنید؛
confidence score
مدلم حدود 0.5 هست.
تصویر خط میخی ای که ملاحضه میکنید مربوط به ۱۲ خطِ آخر کتیبه ی داریوش بزرگ در تخت جمشید (کتیبه DPd) هست.
#نتایج
#زبان_فارسی_باستان
خطای نصب پکیج های pip رو شاید این روزها زیاد ببینیم که میگه Timeout شدید؛ این خطا به علت مشکلات connection شما و احتمالا تحریم ها ایجاد میشه.
اگر میخواید بدون استفاده از VPN و تغییر DNS بتونید این پکیج هارو نصب کنید چند تا نکته بهتون میگم. توجه کنید نکته ها رو برای سیستم عامل GNU/Linux و توزیع Ubuntu دارم میگم:
۱. پکیج منیجر apt رو همیشه آپدیت نگه دارید و mirror هاشو جایی تنظیم کنید که بتونه آپدیت هارو بگیره چون پکیج منیجر pip خودش توسط پکیج منیجر apt مدیریت میشه!
تنظیم میرورهای apt واسه توزیع ابونتو در این مسیره:
etc/apt/sources.list
۲. خود pip رو ورژنش رو کنترل کنید که آخرین ورژن باشه، یعنی آپدیت باشه.
۳. تمام آپدیت های روزانه سیستم عامل لینوکس که مربوط به security update میشن رو انجام بدید، به خصوص آپدیت های مربوط به system components
۴. از میرور های ایرانی pip، مستقیم در کامندش استفاده کنید، ساختار کامندش اینطوری میشه:
pip install اسم پکیج --index-url آدرس میرور
برای مثال میتونید از کامند زیر که حاوی آدرس میرور aliyun هست برای نصب پکیج pandas استفاده کنید:
آدرس میرورهای دیگه ای که میتونید استفاده کنید:
https://pypi.mirrors.ustc.edu.cn/simple/
https://repo.huaweicloud.com/repository/pypi/simple/
توجه: موقع کامند زدن دقت کنید پکیج منیجر شما با دستور pip کار میکنه یا pip3.
کلا لینوکس یه سیستم عاملی هست که باید با آپدیت ها زنده نگهش داریم و نرم افزارهاش همه به صورت تو در تو به هم پیوسته هستند. اگر معماری لینوکس رو ندونیم، علت خطاهاشو متوجه نمیشیم و نمیتونیم برطرفشون کنیم. ولی وقتی بلدش باشیم دیگه معما چو حل گشت آسان شود... 🥰.
موفق باشید
اگر میخواید بدون استفاده از VPN و تغییر DNS بتونید این پکیج هارو نصب کنید چند تا نکته بهتون میگم. توجه کنید نکته ها رو برای سیستم عامل GNU/Linux و توزیع Ubuntu دارم میگم:
۱. پکیج منیجر apt رو همیشه آپدیت نگه دارید و mirror هاشو جایی تنظیم کنید که بتونه آپدیت هارو بگیره چون پکیج منیجر pip خودش توسط پکیج منیجر apt مدیریت میشه!
تنظیم میرورهای apt واسه توزیع ابونتو در این مسیره:
etc/apt/sources.list
۲. خود pip رو ورژنش رو کنترل کنید که آخرین ورژن باشه، یعنی آپدیت باشه.
۳. تمام آپدیت های روزانه سیستم عامل لینوکس که مربوط به security update میشن رو انجام بدید، به خصوص آپدیت های مربوط به system components
۴. از میرور های ایرانی pip، مستقیم در کامندش استفاده کنید، ساختار کامندش اینطوری میشه:
pip install اسم پکیج --index-url آدرس میرور
برای مثال میتونید از کامند زیر که حاوی آدرس میرور aliyun هست برای نصب پکیج pandas استفاده کنید:
pip install pandas --index-url https://mirrors.aliyun.com/pypi/simple/
آدرس میرورهای دیگه ای که میتونید استفاده کنید:
https://pypi.mirrors.ustc.edu.cn/simple/
https://repo.huaweicloud.com/repository/pypi/simple/
توجه: موقع کامند زدن دقت کنید پکیج منیجر شما با دستور pip کار میکنه یا pip3.
کلا لینوکس یه سیستم عاملی هست که باید با آپدیت ها زنده نگهش داریم و نرم افزارهاش همه به صورت تو در تو به هم پیوسته هستند. اگر معماری لینوکس رو ندونیم، علت خطاهاشو متوجه نمیشیم و نمیتونیم برطرفشون کنیم. ولی وقتی بلدش باشیم دیگه معما چو حل گشت آسان شود... 🥰.
موفق باشید
-اصل The Newspaper Metaphor در کلین کد
این اصل میگه که به یه روزنامه ای که خوب نوشته شده فکر کنید . شما از بالا شروع میکنید و تا پایین میخونیدیش .با خوندن عنوان مقاله می فهمید که اون صفحه در باره چیه و با خوندن پاراگراف اول هم یه خلاصه ای از محتوای صفحه میگیرید.
سورس کد هم تقریبا یه چیز مشابه به اینه شما با خوندن اسم فایل (یا حالا توی oop اسم کلاس) هدف کلی اون سورس فایل رو می فهمید قسمت های بالای کد که میتونه شامل توابع مهم یا متغیر ها و پراپرتی های مهم باشه (مثل پارگراف اول مقاله توی روزنامه) تا کسی که کد رو میخونه خلاصه ای از سورس دستش بیاد.
یه روزنامه شامل بخش های زیادیه که معمولا کوچیکن و در کنار هم با همچین شرایطی قرار گرفتنن تا روزنامه قابل خوندن باشه فرض کنید کل روزنامه فقط یه داستان یا مقاله بلند بود که خوندنش رو سخت میکرد سورس کد هم باید یه شرایط مشابهی داشته باشه تا قالب بندی خوبی داشته باشه یعنی فایل های مختلف با اسم درست و حسابی در کنار هم بیان و بدنه اصلی سورس کد کل برنامه رو بسازن
#CleanCode
این اصل میگه که به یه روزنامه ای که خوب نوشته شده فکر کنید . شما از بالا شروع میکنید و تا پایین میخونیدیش .با خوندن عنوان مقاله می فهمید که اون صفحه در باره چیه و با خوندن پاراگراف اول هم یه خلاصه ای از محتوای صفحه میگیرید.
سورس کد هم تقریبا یه چیز مشابه به اینه شما با خوندن اسم فایل (یا حالا توی oop اسم کلاس) هدف کلی اون سورس فایل رو می فهمید قسمت های بالای کد که میتونه شامل توابع مهم یا متغیر ها و پراپرتی های مهم باشه (مثل پارگراف اول مقاله توی روزنامه) تا کسی که کد رو میخونه خلاصه ای از سورس دستش بیاد.
یه روزنامه شامل بخش های زیادیه که معمولا کوچیکن و در کنار هم با همچین شرایطی قرار گرفتنن تا روزنامه قابل خوندن باشه فرض کنید کل روزنامه فقط یه داستان یا مقاله بلند بود که خوندنش رو سخت میکرد سورس کد هم باید یه شرایط مشابهی داشته باشه تا قالب بندی خوبی داشته باشه یعنی فایل های مختلف با اسم درست و حسابی در کنار هم بیان و بدنه اصلی سورس کد کل برنامه رو بسازن
#CleanCode
Forwarded from Ninja Learn | نینجا لرن (Mohammad)
💎 دنیای رمزنگاری با DSA 💎
امروز میخوایم با هم یکی از الگوریتمهای مهم و پرکاربرد در دنیای رمزنگاری آشنا بشیم. این الگوریتم با اسم جذاب DSA شناخته میشه که مخفف Digital Signature Algorithm هست.
حالا DSA چیه و چیکار میکنه؟ 🤔
تصور کن میخوای یه پیام خیلی مهم رو برای دوستت بفرستی. اما نگران اینی که کسی پیام رو تو راه دستکاری کنه یا به اسم تو پیام بفرسته. اینجا DSA به دادت میرسه!
خب DSA یه الگوریتم رمزنگاریه که بهت کمک میکنه تا مطمئن بشی پیامی که فرستادی دست نخورده به دست مقصد رسیده و واقعا توسط خودت ارسال شده. به عبارت دیگه، DSA مثل یه امضای دیجیتالی عمل میکنه که ثابت میکنه پیام از طرف تو ارسال شده و کسی نتونسته اون رو تغییر بده.
چطور کار میکنه؟
اینجوریه که DSA از دو کلید استفاده میکنه: یک کلید عمومی و یک کلید خصوصی.
🔑 کلید عمومی: مثل یه کارت ویزیت دیجیتالی هست که همه میتونن ببینن. این کلید برای رمزگشایی پیام استفاده میشه.
🗝 کلید خصوصی: مثل یه رمز عبور خیلی محرمانه هست که فقط خودت باید بدونی. این کلید برای ایجاد امضای دیجیتال استفاده میشه.
وقتی میخوای یه پیام رو امضا کنی، DSA از کلید خصوصیت برای ایجاد یه رشته تصادفی استفاده میکنه. این رشته تصادفی با پیام اصلی ترکیب میشه و یه امضای دیجیتال ایجاد میکنه. این امضا به پیام اصلی اضافه میشه و همراه با پیام برای گیرنده ارسال میشه.
گیرنده با استفاده از کلید عمومی تو، امضای دیجیتال رو بررسی میکنه. اگر امضا معتبر باشه، مطمئن میشه که پیام از طرف تو ارسال شده و دستکاری نشده.
⚙ الگوریتمهای استفاده شده در DSA:
خب DSA از چندین الگوریتم ریاضی پیچیده استفاده میکنه که تضمین میکنه شکستن امضای دیجیتال تقریبا غیرممکن باشه. این الگوریتمها بر اساس تئوری اعداد و رمزنگاری نامتقارن طراحی شدهاند.
✅ کاربردهای DSA:
1⃣ امضای دیجیتال اسناد: برای اطمینان از اصالت و عدم تغییر اسناد الکترونیکی
2⃣ احراز هویت: برای تأیید هویت کاربران در سیستمهای امنیتی
3⃣ تأمین امنیت تراکنشهای مالی: برای محافظت از اطلاعات حساس در تراکنشهای آنلاین
4⃣ امضای نرمافزار: برای اطمینان از اینکه نرمافزار دستکاری نشده است
مزایای DSA:
5⃣ امنیت بالا: شکستن امضای دیجیتال DSA بسیار دشوار است.
6⃣ سرعت بالا: DSA نسبت به برخی الگوریتمهای دیگر سریعتر عمل میکنه.
7⃣ استاندارد بودن: DSA یک استاندارد جهانی است و در بسیاری از سیستمهای امنیتی استفاده میشه.
✅ جمعبندی:
فهمیدیم که DSA یک ابزار قدرتمند برای تأمین امنیت اطلاعات است. با استفاده از DSA میتونیم اطمینان حاصل کنیم که اطلاعات ما دست نخورده باقی میمونه و از طرف فرد مورد نظر ارسال شده است.
⭕️ نکته: DSA یکی از چندین الگوریتم امضای دیجیتال است. الگوریتمهای دیگری مثل RSA هم وجود دارند که کاربردهای مشابهی دارند.
امروز میخوایم با هم یکی از الگوریتمهای مهم و پرکاربرد در دنیای رمزنگاری آشنا بشیم. این الگوریتم با اسم جذاب DSA شناخته میشه که مخفف Digital Signature Algorithm هست.
حالا DSA چیه و چیکار میکنه؟ 🤔
تصور کن میخوای یه پیام خیلی مهم رو برای دوستت بفرستی. اما نگران اینی که کسی پیام رو تو راه دستکاری کنه یا به اسم تو پیام بفرسته. اینجا DSA به دادت میرسه!
خب DSA یه الگوریتم رمزنگاریه که بهت کمک میکنه تا مطمئن بشی پیامی که فرستادی دست نخورده به دست مقصد رسیده و واقعا توسط خودت ارسال شده. به عبارت دیگه، DSA مثل یه امضای دیجیتالی عمل میکنه که ثابت میکنه پیام از طرف تو ارسال شده و کسی نتونسته اون رو تغییر بده.
چطور کار میکنه؟
اینجوریه که DSA از دو کلید استفاده میکنه: یک کلید عمومی و یک کلید خصوصی.
🔑 کلید عمومی: مثل یه کارت ویزیت دیجیتالی هست که همه میتونن ببینن. این کلید برای رمزگشایی پیام استفاده میشه.
🗝 کلید خصوصی: مثل یه رمز عبور خیلی محرمانه هست که فقط خودت باید بدونی. این کلید برای ایجاد امضای دیجیتال استفاده میشه.
وقتی میخوای یه پیام رو امضا کنی، DSA از کلید خصوصیت برای ایجاد یه رشته تصادفی استفاده میکنه. این رشته تصادفی با پیام اصلی ترکیب میشه و یه امضای دیجیتال ایجاد میکنه. این امضا به پیام اصلی اضافه میشه و همراه با پیام برای گیرنده ارسال میشه.
گیرنده با استفاده از کلید عمومی تو، امضای دیجیتال رو بررسی میکنه. اگر امضا معتبر باشه، مطمئن میشه که پیام از طرف تو ارسال شده و دستکاری نشده.
⚙ الگوریتمهای استفاده شده در DSA:
خب DSA از چندین الگوریتم ریاضی پیچیده استفاده میکنه که تضمین میکنه شکستن امضای دیجیتال تقریبا غیرممکن باشه. این الگوریتمها بر اساس تئوری اعداد و رمزنگاری نامتقارن طراحی شدهاند.
✅ کاربردهای DSA:
1⃣ امضای دیجیتال اسناد: برای اطمینان از اصالت و عدم تغییر اسناد الکترونیکی
2⃣ احراز هویت: برای تأیید هویت کاربران در سیستمهای امنیتی
3⃣ تأمین امنیت تراکنشهای مالی: برای محافظت از اطلاعات حساس در تراکنشهای آنلاین
4⃣ امضای نرمافزار: برای اطمینان از اینکه نرمافزار دستکاری نشده است
مزایای DSA:
5⃣ امنیت بالا: شکستن امضای دیجیتال DSA بسیار دشوار است.
6⃣ سرعت بالا: DSA نسبت به برخی الگوریتمهای دیگر سریعتر عمل میکنه.
7⃣ استاندارد بودن: DSA یک استاندارد جهانی است و در بسیاری از سیستمهای امنیتی استفاده میشه.
✅ جمعبندی:
فهمیدیم که DSA یک ابزار قدرتمند برای تأمین امنیت اطلاعات است. با استفاده از DSA میتونیم اطمینان حاصل کنیم که اطلاعات ما دست نخورده باقی میمونه و از طرف فرد مورد نظر ارسال شده است.
⭕️ نکته: DSA یکی از چندین الگوریتم امضای دیجیتال است. الگوریتمهای دیگری مثل RSA هم وجود دارند که کاربردهای مشابهی دارند.
#امنیت_اطلاعاتDSA #رمزنگاری #امضای_دیجیتال
👍1🔥1
استرس در مصاحبه کاری یه امر طبیعیه. قراره قضاوت شین و نتیجهش رو هم نمیدونین! واضحه که به عنوان یک انسان باید مضطرب بشین، اما این استرس میتونه تا حدی مهار بشه که تأثیر منفیش کنترل شه.
۳×۳ نکتهی مختصر دربارهی «مدیریت استرس در مصاحبه کاری»:
1️⃣ قبل مصاحبه:
۱. راجع به شرکت، پوزیشن، و مصاحبهکننده خوب تحقیق کنین.
خوبه که بدونین چی کار دارن میکنن، احتمالاً به چی علاقه دارن و دنبال چیان، و خودتون رو توی مصاحبه باید علاقهمند و آگاه نشون بدین. توجه و اهمیت، احترام و علاقه میاره.
۲. حتماً یک محیط آروم، هم از نظر فیزیکی و هم از نظر روحی فراهم کنین.
آرامش فیزیکی محیط (از نظر صوتی و بصری) احترام به مخاطبه. آرامش خودتون هم کمک کنه بهترین عملکردتون رو داشته باشین، هم میتونه نشان از تسلط شما بر موضوع بحث داشته باشه.
۳. شب قبلش خوب بخوابین، قبل مصاحبه (و حینش) آب بنوشین، و به روزمهتون هم افتخار کنین!
قطعاً دستاوردهای شما اونقدری بوده که حاضرن براتون وقت باارزششون رو بذارن تا بیشتر بشناسنتون. پس اعتمادبهنفس (در حد کافی) داشته باشین و حالتون با خودتون خوب باشه.
حین مصاحبه:
۱. جواب مختصر مفید (efficient) بدین. و با دست خودتون مصاحبه رو به کوچه پسکوچههای پرخطر و استرسزا نبرین!
حتماً هر ۳۰ الی ۴۵ ثانیه چک کنین که مخاطب همچنان توضیح میخواد و جلوش آپشن بذارین. چون ممکنه طرف از سر احترام نپره وسط حرفتون اما بعداً نمره منفی بده!
۲. تلاش برای بیشاثرگذاری (overimpress کردن) نکنین! صرفاً بهترینِ خودتون باشین.
مصاحبهگر حرفهای خیلی راحتتر از اونی که فکر کنین میفهمه کجاها دارین تقلا میکنین که بیش از حد خودتون رو خفن نشون بدین. و هم ممکنه با خودبزرگبینی شما حال نکنه، هم مچتون رو بگیره و کلهپا شین!
۳. مغز خودتون رو گول بزنین که انگار مصاحبه رو قبول شدین و شغل رو گرفتین و این جلسه فقط یه مرور اینه که چرا شما لایق بودهاین!
درست مثل تمرین تئاتر که میتونین فرض کنین تماشاچیای نیست و این یه تمرینه. این شکلی دیگه لازم نیست استرسِ درحدلحظه قضاوت شدن رو دائم به دوش بکشین.
3️⃣ بعد مصاحبه:
۱. حتماً یه «دمت گرم» به خودتون بگین که از کنج دنج راحت خودتون (کامفورت زون) بیرون اومدین و این مرحله رو پشت سر گذاشتین!
و اون والدی نباشین که فقط اگه بچه ۲۰ بگیره دوستش داره. بلکه به تلاش خودتون ارزش بدین و احترام بذارین. انشالله نتیجه هم خوب میشه.
۲. بیشفکری (overthink) نکنین! کنترل تمام دنیا دست شما نیست. با شفقت و صبوری سعی کنین یاد بگیرین و جاهای بهبودپذیر رو کمکم بهبود بدین.
صد تا فاکتور توی مصاحبه همیشه هست که ممکنه باعث نشدن بشه. و ۹۰ تاشم نمیتونین ببینین. پس بیش از حد تحلیل و خودقضاوتگری مضاعف و ناسالم نکنین.
۳. نهایتاً، یادتون باشه که شما یک شیر هستین که نیاز داره «یه آهو» شکار کنه. اگه این آهو رو از دست دادین، بازم آهو تو گله ممکنه باشه. و تهش کسی نه میپرسه و نه براش مهمه که چند تا آهو رو از دست دادین، وقتی که با یه آهو لای دندوناتون با افتخار برگردین و حالشو ببرین!
۳×۳ نکتهی مختصر دربارهی «مدیریت استرس در مصاحبه کاری»:
1️⃣ قبل مصاحبه:
۱. راجع به شرکت، پوزیشن، و مصاحبهکننده خوب تحقیق کنین.
خوبه که بدونین چی کار دارن میکنن، احتمالاً به چی علاقه دارن و دنبال چیان، و خودتون رو توی مصاحبه باید علاقهمند و آگاه نشون بدین. توجه و اهمیت، احترام و علاقه میاره.
۲. حتماً یک محیط آروم، هم از نظر فیزیکی و هم از نظر روحی فراهم کنین.
آرامش فیزیکی محیط (از نظر صوتی و بصری) احترام به مخاطبه. آرامش خودتون هم کمک کنه بهترین عملکردتون رو داشته باشین، هم میتونه نشان از تسلط شما بر موضوع بحث داشته باشه.
۳. شب قبلش خوب بخوابین، قبل مصاحبه (و حینش) آب بنوشین، و به روزمهتون هم افتخار کنین!
قطعاً دستاوردهای شما اونقدری بوده که حاضرن براتون وقت باارزششون رو بذارن تا بیشتر بشناسنتون. پس اعتمادبهنفس (در حد کافی) داشته باشین و حالتون با خودتون خوب باشه.
حین مصاحبه:
۱. جواب مختصر مفید (efficient) بدین. و با دست خودتون مصاحبه رو به کوچه پسکوچههای پرخطر و استرسزا نبرین!
حتماً هر ۳۰ الی ۴۵ ثانیه چک کنین که مخاطب همچنان توضیح میخواد و جلوش آپشن بذارین. چون ممکنه طرف از سر احترام نپره وسط حرفتون اما بعداً نمره منفی بده!
۲. تلاش برای بیشاثرگذاری (overimpress کردن) نکنین! صرفاً بهترینِ خودتون باشین.
مصاحبهگر حرفهای خیلی راحتتر از اونی که فکر کنین میفهمه کجاها دارین تقلا میکنین که بیش از حد خودتون رو خفن نشون بدین. و هم ممکنه با خودبزرگبینی شما حال نکنه، هم مچتون رو بگیره و کلهپا شین!
۳. مغز خودتون رو گول بزنین که انگار مصاحبه رو قبول شدین و شغل رو گرفتین و این جلسه فقط یه مرور اینه که چرا شما لایق بودهاین!
درست مثل تمرین تئاتر که میتونین فرض کنین تماشاچیای نیست و این یه تمرینه. این شکلی دیگه لازم نیست استرسِ درحدلحظه قضاوت شدن رو دائم به دوش بکشین.
3️⃣ بعد مصاحبه:
۱. حتماً یه «دمت گرم» به خودتون بگین که از کنج دنج راحت خودتون (کامفورت زون) بیرون اومدین و این مرحله رو پشت سر گذاشتین!
و اون والدی نباشین که فقط اگه بچه ۲۰ بگیره دوستش داره. بلکه به تلاش خودتون ارزش بدین و احترام بذارین. انشالله نتیجه هم خوب میشه.
۲. بیشفکری (overthink) نکنین! کنترل تمام دنیا دست شما نیست. با شفقت و صبوری سعی کنین یاد بگیرین و جاهای بهبودپذیر رو کمکم بهبود بدین.
صد تا فاکتور توی مصاحبه همیشه هست که ممکنه باعث نشدن بشه. و ۹۰ تاشم نمیتونین ببینین. پس بیش از حد تحلیل و خودقضاوتگری مضاعف و ناسالم نکنین.
۳. نهایتاً، یادتون باشه که شما یک شیر هستین که نیاز داره «یه آهو» شکار کنه. اگه این آهو رو از دست دادین، بازم آهو تو گله ممکنه باشه. و تهش کسی نه میپرسه و نه براش مهمه که چند تا آهو رو از دست دادین، وقتی که با یه آهو لای دندوناتون با افتخار برگردین و حالشو ببرین!
❤1