Media is too big
VIEW IN TELEGRAM
#Startup
#DrStartup
صحبت های جناب مهدی علیپور راجب خطا هایی که استارتاپ ها با آن مواجه میشوند و هشدارهایی به استارتاپ ها داده میشود!
#استارتاپ , #هشدار_استارتاپی ,#دکتراستارتاپ
@ABlueDeveloper
#DrStartup
صحبت های جناب مهدی علیپور راجب خطا هایی که استارتاپ ها با آن مواجه میشوند و هشدارهایی به استارتاپ ها داده میشود!
#استارتاپ , #هشدار_استارتاپی ,#دکتراستارتاپ
@ABlueDeveloper
سلام و عرض ادب خدمت دوستان عزیز
شاید بارها برای شما پیش اومده باشه که بخواهید مثلا یک موردی رو در Administration در SQL Server تست کنید ولی ابزار یا تجهیزاتش رو نداشته باشید
به عنوان مثال مثلا تمایل دارید Replication رو راه اندازی کنید یا AlwaysON رو راه اندازی کنید ولی سیستم به اندازه کافی ندارید و همچنین PC شما نیز قدرت کافی نداره بخواهید مثلا VM بیارید بالا یا اینکه تنظیمات اولیه شبکه برای شما دشوار باشه.
سایت Virtual Lab مایکروسافت این امکانات رو در اختیار شما قرار میده.
تنها چیزی که نیاز دارید فقط یک اکانت ایمیل مایکروسافت هست و بس.!
در حوزه های مختلف خودش Lab هایی رو برای شما آماده سازی کرده و همچنین یک سری Documentation نیز آماده کرده و یک زمانی مشخص کرده.
به اندازه مورد نیاز اون Feature به شما منابع میده و شما به راحتی به سیستم ها لاگین میکنید و طبق اون مستنداتی که بهتون داده مراحل رو طی میکنید و میتونید راه اندازی Feature مورد نظر رو یاد بگیرید.
لینک سایتش رو قرار میدم امیدوارم که مفید واقع بشه.
نویسنده:
حمیدرضا صادقیان
ID: @Hamidreza_Sadeghian
@ABlueDeveloper
https://www.microsoft.com/handsonlabs/SelfPacedLabs
شاید بارها برای شما پیش اومده باشه که بخواهید مثلا یک موردی رو در Administration در SQL Server تست کنید ولی ابزار یا تجهیزاتش رو نداشته باشید
به عنوان مثال مثلا تمایل دارید Replication رو راه اندازی کنید یا AlwaysON رو راه اندازی کنید ولی سیستم به اندازه کافی ندارید و همچنین PC شما نیز قدرت کافی نداره بخواهید مثلا VM بیارید بالا یا اینکه تنظیمات اولیه شبکه برای شما دشوار باشه.
سایت Virtual Lab مایکروسافت این امکانات رو در اختیار شما قرار میده.
تنها چیزی که نیاز دارید فقط یک اکانت ایمیل مایکروسافت هست و بس.!
در حوزه های مختلف خودش Lab هایی رو برای شما آماده سازی کرده و همچنین یک سری Documentation نیز آماده کرده و یک زمانی مشخص کرده.
به اندازه مورد نیاز اون Feature به شما منابع میده و شما به راحتی به سیستم ها لاگین میکنید و طبق اون مستنداتی که بهتون داده مراحل رو طی میکنید و میتونید راه اندازی Feature مورد نظر رو یاد بگیرید.
لینک سایتش رو قرار میدم امیدوارم که مفید واقع بشه.
نویسنده:
حمیدرضا صادقیان
ID: @Hamidreza_Sadeghian
@ABlueDeveloper
https://www.microsoft.com/handsonlabs/SelfPacedLabs
#VisualStudio
#LiveShareExtention
Real-time collaborative development
Link Download Visual Studio Share:
https://goo.gl/k9TF8A
@ABlueDeveloper
#LiveShareExtention
Real-time collaborative development
Link Download Visual Studio Share:
https://goo.gl/k9TF8A
@ABlueDeveloper
Visual Studio
Visual Studio Live Share | Visual Studio
Visual Studio Live Share lets you collaboratively edit and debug any codebase with others in real time—each person working in their own familiar, personalized environment.
This media is not supported in your browser
VIEW IN TELEGRAM
#VisualStudio
#LiveShareExtention
آموزش چگونگی استفاده از این افزونه
چگونه از این افزونه میشه استفاده کرد؟
@ABlueDeveloper
#LiveShareExtention
آموزش چگونگی استفاده از این افزونه
چگونه از این افزونه میشه استفاده کرد؟
@ABlueDeveloper
#MTProto
#HTTPS
#HTTP
#UDP
#TCP
پروتکل MTProto که مخفف Mobile Telegram Protocol هست یک پروتکل امنیتی جدید هست که با هدف دور زدن فیلتر ینگ تلگرام توسط تیم تلگرام و نیکلای دوروف برادر پاول دوروف توسعه داده شده است. تلگرام هماکنون نسخه دوم این پروتکل یعنی MTProto 2.0 را ارائه داده است و از همین ابتدا باید بگویم که این پروتکل با بحث بلاکچین کاملاً متفاوت بوده و ارتباطی با این قضیه ندارد.
پروتکل MTProto را میتوان از جهاتی به پروتکل HTTPS مرتبط دانست البته با این تفاوت که پروتکل HTTPS یک رابط بین کاربر و سرور است و صرفاً اطلاعات را بین کاربر(Client) وسرور(Server) رمزنگاری می کند و پیام در سرور رمزگشایی شده و سرور می تواند محتوای پیام را رویت کند.
البته باید گفت که این یک عیب برای این پروتکل به حساب نمی آید چراکه اصولا پروتکل Https برای همین کار (یعنی : وبگردی، تبادل فایل و …) طراحی و بهینه سازی شده است و البته هیچ محدودیتی برای استفاده از این پروتکل برای مقاصد دیگه وجود ندارد.
اما پروتکل MTProto وظیفه انتقال پیامهای رمزنگاری شده به صورت “کاربر به کاربر” (Client to Client) یابه عبارت دیگه End-to-End رو دریک ارتباط کاربر به کاربر بر عهده دارد. دراین صورت پیامها فقط برای فرستنده و گیرنده پیام قابل رمزگشایی و مشاهده است و حتی سرور هم قادر به رمزگشایی پیامها و مشاهده آنها نیست.
در حالت معمول، پیام رمزنگاری شده (Encrypted) از سوی کاربر فرستنده به سرور منتقل می شود و در آنجا رمزگشایی (Decryption) می شود و مجددا برای ارسال به سوی کاربر گیرنده، رمزنگاری مجدد (Re-encrypt) می شود. ولی در MTProto پیام رمزنگاری شده به سوی سرور فرستاده میشود و در آنجا بدون رمزگشایی به طور مستقیم به سوی گیرنده ارسال میشود. با چنین مکانیزمی امکان شنود پیامها حتی در سرور هم عملا ازبین می رود.
از مزایای این پروتکل می توان به ترکیب متنوعی از روشهای رمزنگاری همچون پروتکل تبادل کلید دیفی هلمن(Diffie–Hellman Key Exchange)، الگوریتم رمزنگاری SHA-256، استاندارد رمزنگاری پیشرفته AES، و استانداردهایی همچون AES IGE و AES IGE IV اشاره نمود.
نکته جالب اینجاست که این پروتکل از هربستری قادر به دریافت و ارسال بسته های اطلاعتی خود است از جمله :
TCP
UDP
Http
Https
به همین خاطر به جرات میتوان گفت که فیلتر و مسدود کردن این پروتکل کار بسیار دشواری است چرا که مسدود کردن این پروتکل یعنی عملا زیر سوال رفتن دسترسی به اینترنت !
@ABlueDeveloper
#HTTPS
#HTTP
#UDP
#TCP
پروتکل MTProto که مخفف Mobile Telegram Protocol هست یک پروتکل امنیتی جدید هست که با هدف دور زدن فیلتر ینگ تلگرام توسط تیم تلگرام و نیکلای دوروف برادر پاول دوروف توسعه داده شده است. تلگرام هماکنون نسخه دوم این پروتکل یعنی MTProto 2.0 را ارائه داده است و از همین ابتدا باید بگویم که این پروتکل با بحث بلاکچین کاملاً متفاوت بوده و ارتباطی با این قضیه ندارد.
پروتکل MTProto را میتوان از جهاتی به پروتکل HTTPS مرتبط دانست البته با این تفاوت که پروتکل HTTPS یک رابط بین کاربر و سرور است و صرفاً اطلاعات را بین کاربر(Client) وسرور(Server) رمزنگاری می کند و پیام در سرور رمزگشایی شده و سرور می تواند محتوای پیام را رویت کند.
البته باید گفت که این یک عیب برای این پروتکل به حساب نمی آید چراکه اصولا پروتکل Https برای همین کار (یعنی : وبگردی، تبادل فایل و …) طراحی و بهینه سازی شده است و البته هیچ محدودیتی برای استفاده از این پروتکل برای مقاصد دیگه وجود ندارد.
اما پروتکل MTProto وظیفه انتقال پیامهای رمزنگاری شده به صورت “کاربر به کاربر” (Client to Client) یابه عبارت دیگه End-to-End رو دریک ارتباط کاربر به کاربر بر عهده دارد. دراین صورت پیامها فقط برای فرستنده و گیرنده پیام قابل رمزگشایی و مشاهده است و حتی سرور هم قادر به رمزگشایی پیامها و مشاهده آنها نیست.
در حالت معمول، پیام رمزنگاری شده (Encrypted) از سوی کاربر فرستنده به سرور منتقل می شود و در آنجا رمزگشایی (Decryption) می شود و مجددا برای ارسال به سوی کاربر گیرنده، رمزنگاری مجدد (Re-encrypt) می شود. ولی در MTProto پیام رمزنگاری شده به سوی سرور فرستاده میشود و در آنجا بدون رمزگشایی به طور مستقیم به سوی گیرنده ارسال میشود. با چنین مکانیزمی امکان شنود پیامها حتی در سرور هم عملا ازبین می رود.
از مزایای این پروتکل می توان به ترکیب متنوعی از روشهای رمزنگاری همچون پروتکل تبادل کلید دیفی هلمن(Diffie–Hellman Key Exchange)، الگوریتم رمزنگاری SHA-256، استاندارد رمزنگاری پیشرفته AES، و استانداردهایی همچون AES IGE و AES IGE IV اشاره نمود.
نکته جالب اینجاست که این پروتکل از هربستری قادر به دریافت و ارسال بسته های اطلاعتی خود است از جمله :
TCP
UDP
Http
Https
به همین خاطر به جرات میتوان گفت که فیلتر و مسدود کردن این پروتکل کار بسیار دشواری است چرا که مسدود کردن این پروتکل یعنی عملا زیر سوال رفتن دسترسی به اینترنت !
@ABlueDeveloper
Forwarded from اتچ بات
#OCR
#ScanningTools
#GoogleDrive
#عکس
#متن
تبدیل تصویر به متن فارسی
گاهی برامون اتفاق میافته که میخوایم یه فایل PDF یا عکس که شامل متن میشه رو به فایل متنی تبدیل کنیم!
گوگل با ابزار Google Docs امکانی فراهم کرده که شاید در وهله اول به چشم نیاد، اما پشتیبانی عالی از زبان فارسی داره و اینکار رو بخوبی برامون انجام میده، در ادامه روش کار توضیح میدم.
1-مرحله اول : آپلود تصاویر در Google Drive
گوگل درایو باز کنید، یک فولدر داخلش ایجاد کنید و تمام تصاویر یا فایل های اسکن شده خودتون رو آپلود کنید.
نکته : اگر فایلتون PDF هست میتونید با استفاده از نرم افزار های خوندن PDF یا ابزار های آنلاین مثل این سایت https://pdftoimage.com/ خروجی JPG بگیرید.
2-مرحله دوم : باز کردن تصاویر در Google Docs
روی تصاویر کلیک راست کنید و از منو Open With -> Google Docs رو انتخاب کنید.
3-مرحله سوم : گرفتن خروجی متنی
شما به صفحه ای هدایت میشید که در بالای صفحه تصویر آپلود شده و در پایین متن قابل ویراش و جستجو آماده است.
حالا میتونید از منو File -> Download as خروجی مورد نظرتون (docx، txt و ... ) رو هم انتخاب و دانلود کنید.
@ABlueDeveloper
#ScanningTools
#GoogleDrive
#عکس
#متن
تبدیل تصویر به متن فارسی
گاهی برامون اتفاق میافته که میخوایم یه فایل PDF یا عکس که شامل متن میشه رو به فایل متنی تبدیل کنیم!
گوگل با ابزار Google Docs امکانی فراهم کرده که شاید در وهله اول به چشم نیاد، اما پشتیبانی عالی از زبان فارسی داره و اینکار رو بخوبی برامون انجام میده، در ادامه روش کار توضیح میدم.
1-مرحله اول : آپلود تصاویر در Google Drive
گوگل درایو باز کنید، یک فولدر داخلش ایجاد کنید و تمام تصاویر یا فایل های اسکن شده خودتون رو آپلود کنید.
نکته : اگر فایلتون PDF هست میتونید با استفاده از نرم افزار های خوندن PDF یا ابزار های آنلاین مثل این سایت https://pdftoimage.com/ خروجی JPG بگیرید.
2-مرحله دوم : باز کردن تصاویر در Google Docs
روی تصاویر کلیک راست کنید و از منو Open With -> Google Docs رو انتخاب کنید.
3-مرحله سوم : گرفتن خروجی متنی
شما به صفحه ای هدایت میشید که در بالای صفحه تصویر آپلود شده و در پایین متن قابل ویراش و جستجو آماده است.
حالا میتونید از منو File -> Download as خروجی مورد نظرتون (docx، txt و ... ) رو هم انتخاب و دانلود کنید.
@ABlueDeveloper
Telegram
attach 📎
#froala
#WYSIWYG
#Editor
🏵 سلام و عرض ادب خدمت همکاران گرامی
خواستم این editor خوب و زیبا را بهتون معرفی کنم و البته سورسی که قبلا تو گیت وجود داشت باگ هایی داشت . بنده باگ ها را برطرف کردم و در اختیار شما عزیزان قرار دادم . امیدوارم که مفید باشد . هر سوالی داشتین بنده در خدمت هستم .
@ABlueDeveloper
https://github.com/armanab/wysiwyg-Editor-Net-Sdk/
#WYSIWYG
#Editor
🏵 سلام و عرض ادب خدمت همکاران گرامی
خواستم این editor خوب و زیبا را بهتون معرفی کنم و البته سورسی که قبلا تو گیت وجود داشت باگ هایی داشت . بنده باگ ها را برطرف کردم و در اختیار شما عزیزان قرار دادم . امیدوارم که مفید باشد . هر سوالی داشتین بنده در خدمت هستم .
@ABlueDeveloper
https://github.com/armanab/wysiwyg-Editor-Net-Sdk/
GitHub
armanab/wysiwyg-Editor-Net-Sdk
New .NET SDK Froala WYSIWYG Editor without bug By ArmanAB - armanab/wysiwyg-Editor-Net-Sdk
⁉️ برنامهنویسی به درد شما نمیخورد. همین الان دستنگهدارید و رشتهی دیگری را انتخاب کنید
چند سالی است که رشتهی کامپیوتر رو بورس است و جای برق قدیم را گرفته. هرکسی که رتبهی خوبی کسب کرده به هوای درآمد و کلاس کاری بالا و بعضاً کار راحت این رشته را انتخاب میکند.
حسنرا که ماهی 10 میلیون درآمد دارد و همهی خانواده حرفشرا میزنند فراموش کنید. اگر شرایطی که در این نوشته آورده ام را دارید, شما بهدرد این کار نمیخورید و هیچ وقت نمیتوانید به موفّقیّت حسن دستپیدا کنید. چرا؟ خب بیاید شروع کنیم.
@ABlueDeveloper
1- بلد نیستی کد بزنی؟
خب ببینم تا امروز کد زدی؟ حتّی یک برنامهی کوچک. اصلاً برنامهنویسیرا فعلاً بیخیال میشویم. تا امروز یک صفحهی وب ساده با کدهای css و html ساختهای؟ اگر نه, متأسفم. به احتمال خیلی زیاد این کار به درد شما نمیخورد.
این حرفرا علاوه بر تجربهی شخصیام با دلایلی منطقی میزنم. برنامهنویسی کار فوقالعاده مشکلی است. گول جوانکهای مو فرفری و تیشرت پوشیدهی برنامههای تلویزیونیرا نخورید که با عینک گرد پشت مکبوکشان نشسته اند و دارند درون ماگ «گیکنشان»شان قهوه مینوشند.
نرمافزار(و البته سختافزار, ولی چون حوزهی کاری خودم نرمافزار است در مورد آن صحبت میکنم) فوقالعاده پیچیده است. حتّی برخی افراد اعتقاد دارند که نرمافزار پیچیدهترین ساختهی مهندسی شده بشر است.
شما برای اینکه نرمافزارتان یک کار نسبتاً کوچک انجام دهد, مخصوصاً در 3-4 سال اول که تجربه و دانش بسیار کمی دارید, باید روزها و ساعتها زحمت بکشید.
اگر میخواهید تصویری از یک برنامهنویس در ذهنتان داشته باشید, فردی که پس از 18 ساعت کار مداوم, رأس ساعت 3 بامداد, دارد با مشت توی سر خودش میکوبد و به باگی که 12 ساعت تمام وقتشرا گرفته و هنوز رفع نشده بد و بیراه میگوید, تصویر معقولتری است.
وقتی تجربهای از این سختی ندارید, نمیدانید که از این نوع سختی کشیدن خوشتان میآید یا نه. و از آنجایی که اکثر انسانها از چنین چیزی خوششان نمیآید, به احتمال زیاد پس از ورود به رشتهی مهندسی کامپیوتر میفهمید که چه اشتباهی کرده اید.
بهعلاوه برای برنامهنویس بودن باید بینهایت کنجکاو باشید. اگر تا امروز, یعنی سن 18 یا 19 سالگی, آنقدر کنجکاو نبودهاید که چندخط کد بزنید, پس به احتمال خیلی زیاد از این به بعد هم در این حوزه بهاندازهی کافی کنجکاو نخواهید بود.
2- از پیچیدگی گریزانی؟
اگر مقابل مسائل و چیزهای پیچیده دست و پایتانرا گم میکنید و توانایی تفکّرتان را از دست میدهید, این جا جای شما نیست.
همانطوری که در بخش قبل گفتم نرمافزار فوقالعاده پیچیده است. بهعلاوه بخش بزرگی از دوران زندگی شما به کار کردن روی ساختههای دیگران سپری میشود. ساختههایی که با وجود داکیومنت و طراحی خوب, همچنان بسیار پیچیده اند.
بهعلاوه, بسیاری از مسائلی که با آنها در این رشته روبهرو هستیم, مسائل پیچیدهای هستند. شما باید عاشق کار کردن با برنامهها, سیستمها و مسائل پیچیده باشید. وگرنه خیلی زود کم میآورید.
@ABlueDeveloper
3-خلاق و نافرمان نیستی؟
همیشه از قوانین موجود پیروی کردهاید؟ «بله قربان» و «چشم» کلماتی بودهاند که همیشه استفاده کردهاید؟ تا به حال سابقه نداشته کاریرا به سبک خودتان انجام دهید و مسئولیتش را بپذیرید؟ پس دارید راه را اشتباه میروید.
خلّاقیّت چیزی است که برنامهنویسرا از ماشینی که با آن کار میکند متمایز میکند. خیلی از راه حل های خوب امروزی حاصل سرپیچی از قوانین تثبیتشدهی قبلی هستند. اگر برنامهنویسان نافرمان نبودند ,هرگز چیزی به نام Agile بهوجود نمیآمد.
4-عاشق مطالعه و یادگیری نیستی؟
ببینید, یک تفاوت جدی بین این رشته و بقیهی رشتهها وجود دارد. اینجا هر ساعتی که میگذرد خیلی چیزها عوض میشوند. هرساعت صدها مفهوم, برنامه, زبان, فریمورک و... جدید ساخته میشود و صدها چیز قدیمی از بین میرود.
اگر میخواهید به عنوان یک برنامهنویس به زندگی ادامه بدهید, باید هرروز یادبگیرید. باید بتوانید خیلی سریع با چیزهای جدید کنار بیایید. باید تقریباً هرروز چندساعتی را به خواندن مقالات, دیدن ویدیوها و شنیدن پادکستهای آموزشی مشغول باشید. آن هم نه برای اینکه از دیگران جلو بیفتید, صرفاً برای اینکه از دور خارج نشوید.
برای اینکه با این حجم از دادهی جدید کنار بیایید نباید اهل مطالعه و آموختن باشید, بلکه باید عاشق آن باشید. در غیر این صورت بعد از یک ماه تبدیل به یک بازندهی افسردهی خسته میشوید که حالش از زندگی و کارش به هم میخورد.
5-اهل کمک و بخشش نیستی؟
دنیای کامپیوتر را کارهای عام و رایگان زنده نگه داشته است. شما به عنوان یک برنامهنویس باید هر هفته چند ساعت را به حل مشکلات دیگران بپردازید.
#ادامه_پست_بعدی
چند سالی است که رشتهی کامپیوتر رو بورس است و جای برق قدیم را گرفته. هرکسی که رتبهی خوبی کسب کرده به هوای درآمد و کلاس کاری بالا و بعضاً کار راحت این رشته را انتخاب میکند.
حسنرا که ماهی 10 میلیون درآمد دارد و همهی خانواده حرفشرا میزنند فراموش کنید. اگر شرایطی که در این نوشته آورده ام را دارید, شما بهدرد این کار نمیخورید و هیچ وقت نمیتوانید به موفّقیّت حسن دستپیدا کنید. چرا؟ خب بیاید شروع کنیم.
@ABlueDeveloper
1- بلد نیستی کد بزنی؟
خب ببینم تا امروز کد زدی؟ حتّی یک برنامهی کوچک. اصلاً برنامهنویسیرا فعلاً بیخیال میشویم. تا امروز یک صفحهی وب ساده با کدهای css و html ساختهای؟ اگر نه, متأسفم. به احتمال خیلی زیاد این کار به درد شما نمیخورد.
این حرفرا علاوه بر تجربهی شخصیام با دلایلی منطقی میزنم. برنامهنویسی کار فوقالعاده مشکلی است. گول جوانکهای مو فرفری و تیشرت پوشیدهی برنامههای تلویزیونیرا نخورید که با عینک گرد پشت مکبوکشان نشسته اند و دارند درون ماگ «گیکنشان»شان قهوه مینوشند.
نرمافزار(و البته سختافزار, ولی چون حوزهی کاری خودم نرمافزار است در مورد آن صحبت میکنم) فوقالعاده پیچیده است. حتّی برخی افراد اعتقاد دارند که نرمافزار پیچیدهترین ساختهی مهندسی شده بشر است.
شما برای اینکه نرمافزارتان یک کار نسبتاً کوچک انجام دهد, مخصوصاً در 3-4 سال اول که تجربه و دانش بسیار کمی دارید, باید روزها و ساعتها زحمت بکشید.
اگر میخواهید تصویری از یک برنامهنویس در ذهنتان داشته باشید, فردی که پس از 18 ساعت کار مداوم, رأس ساعت 3 بامداد, دارد با مشت توی سر خودش میکوبد و به باگی که 12 ساعت تمام وقتشرا گرفته و هنوز رفع نشده بد و بیراه میگوید, تصویر معقولتری است.
وقتی تجربهای از این سختی ندارید, نمیدانید که از این نوع سختی کشیدن خوشتان میآید یا نه. و از آنجایی که اکثر انسانها از چنین چیزی خوششان نمیآید, به احتمال زیاد پس از ورود به رشتهی مهندسی کامپیوتر میفهمید که چه اشتباهی کرده اید.
بهعلاوه برای برنامهنویس بودن باید بینهایت کنجکاو باشید. اگر تا امروز, یعنی سن 18 یا 19 سالگی, آنقدر کنجکاو نبودهاید که چندخط کد بزنید, پس به احتمال خیلی زیاد از این به بعد هم در این حوزه بهاندازهی کافی کنجکاو نخواهید بود.
2- از پیچیدگی گریزانی؟
اگر مقابل مسائل و چیزهای پیچیده دست و پایتانرا گم میکنید و توانایی تفکّرتان را از دست میدهید, این جا جای شما نیست.
همانطوری که در بخش قبل گفتم نرمافزار فوقالعاده پیچیده است. بهعلاوه بخش بزرگی از دوران زندگی شما به کار کردن روی ساختههای دیگران سپری میشود. ساختههایی که با وجود داکیومنت و طراحی خوب, همچنان بسیار پیچیده اند.
بهعلاوه, بسیاری از مسائلی که با آنها در این رشته روبهرو هستیم, مسائل پیچیدهای هستند. شما باید عاشق کار کردن با برنامهها, سیستمها و مسائل پیچیده باشید. وگرنه خیلی زود کم میآورید.
@ABlueDeveloper
3-خلاق و نافرمان نیستی؟
همیشه از قوانین موجود پیروی کردهاید؟ «بله قربان» و «چشم» کلماتی بودهاند که همیشه استفاده کردهاید؟ تا به حال سابقه نداشته کاریرا به سبک خودتان انجام دهید و مسئولیتش را بپذیرید؟ پس دارید راه را اشتباه میروید.
خلّاقیّت چیزی است که برنامهنویسرا از ماشینی که با آن کار میکند متمایز میکند. خیلی از راه حل های خوب امروزی حاصل سرپیچی از قوانین تثبیتشدهی قبلی هستند. اگر برنامهنویسان نافرمان نبودند ,هرگز چیزی به نام Agile بهوجود نمیآمد.
4-عاشق مطالعه و یادگیری نیستی؟
ببینید, یک تفاوت جدی بین این رشته و بقیهی رشتهها وجود دارد. اینجا هر ساعتی که میگذرد خیلی چیزها عوض میشوند. هرساعت صدها مفهوم, برنامه, زبان, فریمورک و... جدید ساخته میشود و صدها چیز قدیمی از بین میرود.
اگر میخواهید به عنوان یک برنامهنویس به زندگی ادامه بدهید, باید هرروز یادبگیرید. باید بتوانید خیلی سریع با چیزهای جدید کنار بیایید. باید تقریباً هرروز چندساعتی را به خواندن مقالات, دیدن ویدیوها و شنیدن پادکستهای آموزشی مشغول باشید. آن هم نه برای اینکه از دیگران جلو بیفتید, صرفاً برای اینکه از دور خارج نشوید.
برای اینکه با این حجم از دادهی جدید کنار بیایید نباید اهل مطالعه و آموختن باشید, بلکه باید عاشق آن باشید. در غیر این صورت بعد از یک ماه تبدیل به یک بازندهی افسردهی خسته میشوید که حالش از زندگی و کارش به هم میخورد.
5-اهل کمک و بخشش نیستی؟
دنیای کامپیوتر را کارهای عام و رایگان زنده نگه داشته است. شما به عنوان یک برنامهنویس باید هر هفته چند ساعت را به حل مشکلات دیگران بپردازید.
#ادامه_پست_بعدی
#ادامه_مطلب
این حل مشکلات میتواند ساخت یک برنامهی متن باز باشد یا پاسخ دادن به یک پرسش در stackoverflow.
تمام برنامهنویسها از کمکهای دیگران استفاده میکنند و به دیگران کمک میکنند. خیلی وقتها پولی هم برای این کار نمیگیرند.
6-از انگلیسی خوشت نمیآید و نمیتوانی آنرا یاد بگیری؟
ما به زبان انگلیسی کد میزنیم. به زبان انگلیسی داکیومنت مینویسیم و به زبان انگلیسی با همدیگر در سرتاسر دنیا ارتباط برقرار میکنیم.
اگر الان انگلیسیات خوب نیست مشکلی ندارد. امّا اگر مطمئن نیستی که 4 ماه دیگر میتوانی در موضوعات مربوط به این رشته به انگلیسی بنویسی و بخوانی, بهتر است دور این کار را خط بکشی.
7-از کار سخت و طولانی فراری هستی؟
در بخش اوّل به این مورد اشاره کردم, ولی ارزش اینکه دوباره مطرح شود را دارد. اگر از عالم رؤیا خارج شویم میبینیم که کمتر برنامهای وجود دارد که با 8 ساعت کار در 5 روز هفته ساخته شده باشد.
خیلی از برنامههایی که شما امروز میبینید, حاصل 10 تا 18 ساعت کار صدها انسان حرفهای است. آن هم هر 7 روز هفته.
@ABlueDeveloper
این مسئله هرچقدر که تازهکارتر باشید بیشتر نمود دارد. کاری که یک برنامهنویس حرفهای, که 10 سال است با فلان زبان کار میکند و پنجاه پروژه با فلان فریمورک زده است, در ده روز انجام میدهد, ممکن است برای شما یک ماه و نیم طول بکشد. یعنی 45 روز کار, آن هم روزی 12 ساعت.
8-عاشق آفریدن چیزهای جدید نیستی؟
این وجه اشتراک تمامی برنامهنویسهای دنیا است. ما عاشق آفریدن چیزهای جدید هستیم. برای یک برنامهنویس تحمّل تمامی این سختیها به لحظهای که برنامه اجرا میشود میارزد. شما برای اینکه وارد این رشته شوید باید عاشق ساخت چیزهای جدیدی باشید که مشکلات دیگران را حل میکند.
9-نمیتوانی کاری که کردهای را توضیح دهی؟
یک برنامهنویس صرفاً توضیح میدهد: الگوریتمرا به صورت کد به کامپیوتر, کد را به صورت داکیومنت به دیگر برنامهنویسها.
هیچ کدی نیست که شما تنها انسانی در دنیا باشید که با آن کار میکند. اگر چنین کدی وجود دارد, آن کد چند بایت دادهی بیمصرف است.
شما باید قابلیّت اینرا داشته باشید که وقتی کاریرا انجام میدهید, آن کار را حداقل به انسانی که از نظر دانش حرفهای همسطح شما است توضیح دهید. اگر نمیتوانید, سریعتر کامپیوتر را از لیست انتخاب رشتهتان خط بزنید.
10-آدم پولکیای هستی و فکر میکنی اینجا درآمد زیادی منتظرت است؟
متأسفم. از این خبرها نیست. برای اینکه بتوانی از کدت پول قابل توجّهی دربیاوری, باید تلاش خیلی زیادی بکنی و زمان زیادی صرف کنی . بهعلاوه اینجا آمریکا و اروپا نیست که به برنامهنویسها پول خوبی بدهند.
هنوز خیلیها برنامهنویسی را با بازی کردن با کامپیوتر همرده میدانند. قبول دارم که جو بهتر شده و درآمدها بالاتر رفته, ولی اگر مشوّق اصلی شما برای ورود به این رشته پول است میتوانم قول بدهم که به این خواسته نخواهید رسید.
در پایان باید بگویم که همیشه استثنا وجود دارد. شاید شما بتوانید کسیرا پیدا کنید که برخی از این موارد شامل حالش میشده امّا الان برنامهنویس موفقی است. بله, شاید باشد. ولی احتمال اینکه شما این استثنا باشید بینهایت کم است.
بهخاطر داشته باشید که ما فقط و فقط همین یک زندگیرا داریم. هیچوقت کورکورانه دست به قمار با عمرتان نزنید. بعضی از تصمیمات به سختی جبران میشوند.
در پایان اگر این 10 مورد شامل حالتان نمیشود واقعاً خوشحال میشوم که وارد این رشته شوید و بتوانیم در آیندهی نزدیک با هم همکار باشیم. امّا اگر موارد بالا شامل حالتان است دست نگه دارید.
اگر خانواده, فامیل, مشاور یا هرکس دیگری به نحوی دارد شما را مجبور به کامپیوتر خواندن میکند با منطق و مؤدبانه مقابلش بایستید.
این پدر و مادرتان نیستند که به خاطر بودن در رشتهای که مناسب شخصیتتان نیست عمرشان تلف میشود و رنج میکشند. این زندگی شما است و حالا شما یک آدم بالغ هستید. پس وقت این است که تصمیم درست را بگیرید.
نویسنده :محمد رضا علی حسینی
@ABlueDeveloper
این حل مشکلات میتواند ساخت یک برنامهی متن باز باشد یا پاسخ دادن به یک پرسش در stackoverflow.
تمام برنامهنویسها از کمکهای دیگران استفاده میکنند و به دیگران کمک میکنند. خیلی وقتها پولی هم برای این کار نمیگیرند.
6-از انگلیسی خوشت نمیآید و نمیتوانی آنرا یاد بگیری؟
ما به زبان انگلیسی کد میزنیم. به زبان انگلیسی داکیومنت مینویسیم و به زبان انگلیسی با همدیگر در سرتاسر دنیا ارتباط برقرار میکنیم.
اگر الان انگلیسیات خوب نیست مشکلی ندارد. امّا اگر مطمئن نیستی که 4 ماه دیگر میتوانی در موضوعات مربوط به این رشته به انگلیسی بنویسی و بخوانی, بهتر است دور این کار را خط بکشی.
7-از کار سخت و طولانی فراری هستی؟
در بخش اوّل به این مورد اشاره کردم, ولی ارزش اینکه دوباره مطرح شود را دارد. اگر از عالم رؤیا خارج شویم میبینیم که کمتر برنامهای وجود دارد که با 8 ساعت کار در 5 روز هفته ساخته شده باشد.
خیلی از برنامههایی که شما امروز میبینید, حاصل 10 تا 18 ساعت کار صدها انسان حرفهای است. آن هم هر 7 روز هفته.
@ABlueDeveloper
این مسئله هرچقدر که تازهکارتر باشید بیشتر نمود دارد. کاری که یک برنامهنویس حرفهای, که 10 سال است با فلان زبان کار میکند و پنجاه پروژه با فلان فریمورک زده است, در ده روز انجام میدهد, ممکن است برای شما یک ماه و نیم طول بکشد. یعنی 45 روز کار, آن هم روزی 12 ساعت.
8-عاشق آفریدن چیزهای جدید نیستی؟
این وجه اشتراک تمامی برنامهنویسهای دنیا است. ما عاشق آفریدن چیزهای جدید هستیم. برای یک برنامهنویس تحمّل تمامی این سختیها به لحظهای که برنامه اجرا میشود میارزد. شما برای اینکه وارد این رشته شوید باید عاشق ساخت چیزهای جدیدی باشید که مشکلات دیگران را حل میکند.
9-نمیتوانی کاری که کردهای را توضیح دهی؟
یک برنامهنویس صرفاً توضیح میدهد: الگوریتمرا به صورت کد به کامپیوتر, کد را به صورت داکیومنت به دیگر برنامهنویسها.
هیچ کدی نیست که شما تنها انسانی در دنیا باشید که با آن کار میکند. اگر چنین کدی وجود دارد, آن کد چند بایت دادهی بیمصرف است.
شما باید قابلیّت اینرا داشته باشید که وقتی کاریرا انجام میدهید, آن کار را حداقل به انسانی که از نظر دانش حرفهای همسطح شما است توضیح دهید. اگر نمیتوانید, سریعتر کامپیوتر را از لیست انتخاب رشتهتان خط بزنید.
10-آدم پولکیای هستی و فکر میکنی اینجا درآمد زیادی منتظرت است؟
متأسفم. از این خبرها نیست. برای اینکه بتوانی از کدت پول قابل توجّهی دربیاوری, باید تلاش خیلی زیادی بکنی و زمان زیادی صرف کنی . بهعلاوه اینجا آمریکا و اروپا نیست که به برنامهنویسها پول خوبی بدهند.
هنوز خیلیها برنامهنویسی را با بازی کردن با کامپیوتر همرده میدانند. قبول دارم که جو بهتر شده و درآمدها بالاتر رفته, ولی اگر مشوّق اصلی شما برای ورود به این رشته پول است میتوانم قول بدهم که به این خواسته نخواهید رسید.
در پایان باید بگویم که همیشه استثنا وجود دارد. شاید شما بتوانید کسیرا پیدا کنید که برخی از این موارد شامل حالش میشده امّا الان برنامهنویس موفقی است. بله, شاید باشد. ولی احتمال اینکه شما این استثنا باشید بینهایت کم است.
بهخاطر داشته باشید که ما فقط و فقط همین یک زندگیرا داریم. هیچوقت کورکورانه دست به قمار با عمرتان نزنید. بعضی از تصمیمات به سختی جبران میشوند.
در پایان اگر این 10 مورد شامل حالتان نمیشود واقعاً خوشحال میشوم که وارد این رشته شوید و بتوانیم در آیندهی نزدیک با هم همکار باشیم. امّا اگر موارد بالا شامل حالتان است دست نگه دارید.
اگر خانواده, فامیل, مشاور یا هرکس دیگری به نحوی دارد شما را مجبور به کامپیوتر خواندن میکند با منطق و مؤدبانه مقابلش بایستید.
این پدر و مادرتان نیستند که به خاطر بودن در رشتهای که مناسب شخصیتتان نیست عمرشان تلف میشود و رنج میکشند. این زندگی شما است و حالا شما یک آدم بالغ هستید. پس وقت این است که تصمیم درست را بگیرید.
نویسنده :محمد رضا علی حسینی
@ABlueDeveloper
Forwarded from اتچ بات
#Security
#Software
چند راهکار ساده ایمن سازی نرم افزار
امنیت یکی از نکات بسیار مهم در ساخت هر نرم افزاری است. گاهی اوقات برای حفظ امیت نرم افزار نیاز نیست به ابزار های پیچیده متوصل شد و با انجام چند نکته ساده می توان امنیت نرم افزار را تامین کرد.
نظم دشمن امنیت!
در برنامه نویسی وطراحی دیتابیس داشتن نظم بسیار مهم است چون باعث می شود در زمان رفع اشکال بتوانبه سادگی مشکل را پیدا کرد اما همین نظم دشمن امنیت ماست.
به این مثال توجه کنید:
فرض کنید که یک سایت دارید برای ذخیره سازی نوشته های کاربرانتان و شش نوشته در سیستم شما موجود است سه تا اول با ای دی های ۱و۳و۴ متعلق به user1 و نوشته های ۶و۸و۹ متعلق به user2 هست. و ادرس دسترسی به نوشته های هم به صورت زیر است:
www.example.com/note//{id}
حال اگر بر حسب اشتباه فراموش کرده باشیم قبل از در خواست باز کردن چک کنیم که نوشته درخواست متعلق به کاربر هست یا نه بعد نوشته را باز کنیم کاربر متخاصم به سادگی می تواند با عوض کرد یک عدد تمام نوشته های کاربران ما را بخواند اما حال فکر کنیداگر به جای ای دی منظم از ای دی نامنظم استفاده می کردیم.
به جدول زیر توجه کنید:
random id
1sdsa 1
5fsd3 3
6sd 4
1ffs 6
sdf5 8
gh6 9
@ABlueDeveloper
اگر به جای ای دی ۱ از ۱sdsa استفاده کینم قطعا کاربر متخاصم نمی تواند فقط با عوض کردن یک عدد تمام نوشته ها به خواند.
یا این که فرض کنید شما سایتی دارید و اطلاعاتی به کاربر هایتان نشان می دهید و این اطلاعات ممکن است برای یک نفر مهم باشند مثلا در هر صفحه شماره تماس یک شخص خواص وجود دارد حال اگر ادرس صفحات شما به صورت بالا باشد و برای دیدن صفحه بعدی فقط نیاز باشد عدد ۱ به ۲ تبدیل شود یک ربات می تواند به سادگی تمام صفحات شما را بخواندواطلاعات مهم را از ان خارج کند. اما با تبدیل id به random id دیگر چنین چیزی ممکن نیست.
به کاربران اطلاعات اضافی ارسال نکنید.
معمولا در زمان ساخت اپلیکیشن به این نکته کمتر توجه می شود. برای مثال برای ساخت اطلاعات یک صفحه فقط به تاریخ و نام نیاز است اما وقتی که درخواست را بررسی می کنی متوجه می شوی که توکن، تاریخ ثبت نام، نام پدر ، شماره شناسنامه، ای دی و هر آن چه در دیتابیس هست برای کاربر ارسال می شود.
اگرمن می توانم بخوانم دیگران هم می توانند.
یکیاز نکاتی که خوب به ان توجه کنیم این است که اطلاعات مهم را به گونه ای ارسال نکنیم که قابلیت خوانش داشته باشند.
برای مثال در طراحی نرم افزار وب و یا موبایل مرسوم است از که نام کاربری و پسورد به صورت عادی برای سرور ارسال می شود و بررسی ها لازم صورت می گیرد و جواب مناسب برای کاربر ارسال می شود. برای تامین امنیت هم از لایه امنیتی SSL استفاده می شود.
اما یک سوال ایا این اطلاعات مهم غیر قابل خوانش توسط دیگران هستند؟
اگر از SSL استفاده کنیم این کار سخت می شود اما هنوز هم نرم افزار های مخرب مقیم در مرورگر و یا دستگاه کاربر می توانند حتی بسته SSL را هم باز کنند و بخوانند.
اما بماند گاهی اوقات همین SSL هم نا امن می شود
برای رفع این مشکل من معمولا به جای ارسال نام کاربری و پسورد هش شده این دو عبارت را به سرور ارسال می کنم این کار را در وب سایت باستفاده از جاوااسکریپت انجام می دهم و در و گوشی با استفاده کد جاوا و از قبل مقدار هش شده نام کاربری + پسورد کاربر را در یک ستون در دیتابیس ذخیره کرده ام و از انجایی که انتظار می رود این فیلد یکتا باشد ان را ایندکس هم می کنم.
@ABlueDeveloper
تغییر مرتب اطلاعات دسترسی
وقتی کاربر لاگین کرد آیا همه چیز تمام شده است؟ قطعا خیر معمولا در این جور مواقع همه اطلاعات موجود در کوکی و یا توکن نرم افزار ثابت است و تا زمانی که مثلا کاربر از سایت یا نرم افزار خارج نشود سثابت هم می ماند!
در حالی که باید از ثابت بودن این جور چیز ها هم جلوگیری شود مثلا در بعد از گذشت یکزمان خاص توکن از بین برود و باید اپلیکیشن توکن جدید درخواست کند یا بعد از گذشت چند در خواست کوکی عوض شود کم نیستن سایت هایی که با اشتراک گذاری کوکی سایت های پولی کمک می کنند همه از مزایای پولی سایت بیچاره بدون پرداخت پول استفاده کنند.
@ABlueDeveloper
#Software
چند راهکار ساده ایمن سازی نرم افزار
امنیت یکی از نکات بسیار مهم در ساخت هر نرم افزاری است. گاهی اوقات برای حفظ امیت نرم افزار نیاز نیست به ابزار های پیچیده متوصل شد و با انجام چند نکته ساده می توان امنیت نرم افزار را تامین کرد.
نظم دشمن امنیت!
در برنامه نویسی وطراحی دیتابیس داشتن نظم بسیار مهم است چون باعث می شود در زمان رفع اشکال بتوانبه سادگی مشکل را پیدا کرد اما همین نظم دشمن امنیت ماست.
به این مثال توجه کنید:
فرض کنید که یک سایت دارید برای ذخیره سازی نوشته های کاربرانتان و شش نوشته در سیستم شما موجود است سه تا اول با ای دی های ۱و۳و۴ متعلق به user1 و نوشته های ۶و۸و۹ متعلق به user2 هست. و ادرس دسترسی به نوشته های هم به صورت زیر است:
www.example.com/note//{id}
حال اگر بر حسب اشتباه فراموش کرده باشیم قبل از در خواست باز کردن چک کنیم که نوشته درخواست متعلق به کاربر هست یا نه بعد نوشته را باز کنیم کاربر متخاصم به سادگی می تواند با عوض کرد یک عدد تمام نوشته های کاربران ما را بخواند اما حال فکر کنیداگر به جای ای دی منظم از ای دی نامنظم استفاده می کردیم.
به جدول زیر توجه کنید:
random id
1sdsa 1
5fsd3 3
6sd 4
1ffs 6
sdf5 8
gh6 9
@ABlueDeveloper
اگر به جای ای دی ۱ از ۱sdsa استفاده کینم قطعا کاربر متخاصم نمی تواند فقط با عوض کردن یک عدد تمام نوشته ها به خواند.
یا این که فرض کنید شما سایتی دارید و اطلاعاتی به کاربر هایتان نشان می دهید و این اطلاعات ممکن است برای یک نفر مهم باشند مثلا در هر صفحه شماره تماس یک شخص خواص وجود دارد حال اگر ادرس صفحات شما به صورت بالا باشد و برای دیدن صفحه بعدی فقط نیاز باشد عدد ۱ به ۲ تبدیل شود یک ربات می تواند به سادگی تمام صفحات شما را بخواندواطلاعات مهم را از ان خارج کند. اما با تبدیل id به random id دیگر چنین چیزی ممکن نیست.
به کاربران اطلاعات اضافی ارسال نکنید.
معمولا در زمان ساخت اپلیکیشن به این نکته کمتر توجه می شود. برای مثال برای ساخت اطلاعات یک صفحه فقط به تاریخ و نام نیاز است اما وقتی که درخواست را بررسی می کنی متوجه می شوی که توکن، تاریخ ثبت نام، نام پدر ، شماره شناسنامه، ای دی و هر آن چه در دیتابیس هست برای کاربر ارسال می شود.
اگرمن می توانم بخوانم دیگران هم می توانند.
یکیاز نکاتی که خوب به ان توجه کنیم این است که اطلاعات مهم را به گونه ای ارسال نکنیم که قابلیت خوانش داشته باشند.
برای مثال در طراحی نرم افزار وب و یا موبایل مرسوم است از که نام کاربری و پسورد به صورت عادی برای سرور ارسال می شود و بررسی ها لازم صورت می گیرد و جواب مناسب برای کاربر ارسال می شود. برای تامین امنیت هم از لایه امنیتی SSL استفاده می شود.
اما یک سوال ایا این اطلاعات مهم غیر قابل خوانش توسط دیگران هستند؟
اگر از SSL استفاده کنیم این کار سخت می شود اما هنوز هم نرم افزار های مخرب مقیم در مرورگر و یا دستگاه کاربر می توانند حتی بسته SSL را هم باز کنند و بخوانند.
اما بماند گاهی اوقات همین SSL هم نا امن می شود
برای رفع این مشکل من معمولا به جای ارسال نام کاربری و پسورد هش شده این دو عبارت را به سرور ارسال می کنم این کار را در وب سایت باستفاده از جاوااسکریپت انجام می دهم و در و گوشی با استفاده کد جاوا و از قبل مقدار هش شده نام کاربری + پسورد کاربر را در یک ستون در دیتابیس ذخیره کرده ام و از انجایی که انتظار می رود این فیلد یکتا باشد ان را ایندکس هم می کنم.
@ABlueDeveloper
تغییر مرتب اطلاعات دسترسی
وقتی کاربر لاگین کرد آیا همه چیز تمام شده است؟ قطعا خیر معمولا در این جور مواقع همه اطلاعات موجود در کوکی و یا توکن نرم افزار ثابت است و تا زمانی که مثلا کاربر از سایت یا نرم افزار خارج نشود سثابت هم می ماند!
در حالی که باید از ثابت بودن این جور چیز ها هم جلوگیری شود مثلا در بعد از گذشت یکزمان خاص توکن از بین برود و باید اپلیکیشن توکن جدید درخواست کند یا بعد از گذشت چند در خواست کوکی عوض شود کم نیستن سایت هایی که با اشتراک گذاری کوکی سایت های پولی کمک می کنند همه از مزایای پولی سایت بیچاره بدون پرداخت پول استفاده کنند.
@ABlueDeveloper
Telegram
attach 📎
گروه تخصصی ASP.NET MVC
سوال و جواب کلاینت
#jQuery #Knouckout_js #Typescript #Bootstrap #Css3
لینک_گروه :
https://t.me/joinchat/BErKaEGZ0Scij8OvMmeLIQ
کانال مطالب مفید آموزشی در بستر ASP NET MVC
سوال و جواب کلاینت
#jQuery #Knouckout_js #Typescript #Bootstrap #Css3
لینک_گروه :
https://t.me/joinchat/BErKaEGZ0Scij8OvMmeLIQ
کانال مطالب مفید آموزشی در بستر ASP NET MVC
Forwarded from اتچ بات
#مفاهیم_لوگو
مفهوم رنگ در طراحی لوگوها:
قرمز: قوت، پر انرژی، جوان، شجاع
نارنجی: دوستانه، اعتماد، شاد، مناسب (از لحاظ قیمتی)، پر انرژی
@AblueDeveloper
زرد: خوش بینی، گرما، شفافیت، مثبت گرایی، احتیاط
سبز: طبیعت، تازگی، صلح طلبانه، رشد، ثروت
آبی: اعتماد، قابل اتکا، امنیت، دانا، قوت
بنفش: خلاق، ابتکاری، لوکس، دانا، آرام کننده
@AblueDeveloper
مفهوم رنگ در طراحی لوگوها:
قرمز: قوت، پر انرژی، جوان، شجاع
نارنجی: دوستانه، اعتماد، شاد، مناسب (از لحاظ قیمتی)، پر انرژی
@AblueDeveloper
زرد: خوش بینی، گرما، شفافیت، مثبت گرایی، احتیاط
سبز: طبیعت، تازگی، صلح طلبانه، رشد، ثروت
آبی: اعتماد، قابل اتکا، امنیت، دانا، قوت
بنفش: خلاق، ابتکاری، لوکس، دانا، آرام کننده
@AblueDeveloper
Telegram
attach 📎
پایتون با گذشتن از سی پلاس پلاس، به سومین زبان مطرح جهان در شاخص تیوب تبدیل شد
@ABlueDeveloper
@ABlueDeveloper
#GO
#Language
چرا گو بزنیم؟
کوچک بودن زبان :
۱. تعداد کلمات کلیدی کم!
۲. سینتکس بسیار نزدیک به C
فرایند کامپایل :
نیازی به فایل سرآیند نیست
نیازی به فایل های make نیست
تنها یک دستور تا کامپایل !
۴. فرایند کامپایل سریع ؟ اجرا همانند اسکریپت!
استاتیک تایپ :
رخ نشون دادن اکثر باگ ها هنگام کامپایل !
نوشتن داکیومنت آسون و خوندن آسون تر کد دیگران
تایپ از روی مقدار به طور اتوماتیک حدس زده میشه
کتابخانه و ابزار :
کلی کتابخونه استاندارد و ابزار خفن بدون نصب هیچ پکیجی!
یک زبان آزاد و متن باز :
با اینکه این زبان مستقیم تحت پشتیبانی گوگل هست اما هیچ لوگویی از گوگل در سایت این زبان دیده نمیشه پس :
سیاست کاری هیچ شرکتی روی حال و آینده زبان تاثیر نداره!
تمام مراحل توسعه شفاف و مشخصه.
تمامی امکانات متن باز قابل استفاده ست.
@ABlueDeveloper
#Language
چرا گو بزنیم؟
کوچک بودن زبان :
۱. تعداد کلمات کلیدی کم!
C++11 = 86
Java = 50
Python3 = 33
C = 32
Go = 25
۲. سینتکس بسیار نزدیک به C
فرایند کامپایل :
نیازی به فایل سرآیند نیست
نیازی به فایل های make نیست
تنها یک دستور تا کامپایل !
$ go install
۴. فرایند کامپایل سریع ؟ اجرا همانند اسکریپت!
$ go run hi.go
استاتیک تایپ :
رخ نشون دادن اکثر باگ ها هنگام کامپایل !
نوشتن داکیومنت آسون و خوندن آسون تر کد دیگران
تایپ از روی مقدار به طور اتوماتیک حدس زده میشه
Z := 10 //compiler know that Z is an int32
کتابخانه و ابزار :
کلی کتابخونه استاندارد و ابزار خفن بدون نصب هیچ پکیجی!
یک زبان آزاد و متن باز :
با اینکه این زبان مستقیم تحت پشتیبانی گوگل هست اما هیچ لوگویی از گوگل در سایت این زبان دیده نمیشه پس :
سیاست کاری هیچ شرکتی روی حال و آینده زبان تاثیر نداره!
تمام مراحل توسعه شفاف و مشخصه.
تمامی امکانات متن باز قابل استفاده ست.
@ABlueDeveloper
#Promise
#Javascript
کاربرد Promise در جاوا اسکریپت یا React Native
کاری که Promise برای ما در جاوا اسکریپت انجام می دهد و ری اکت نیتیو دقیقا بطور مشابه است. یعنی زمان هایی که لازم باشد ما را از وقوع رویدادهایی مطلع می کند تا در صورت وقوع رویداد مورد نظرمان ، قطعه کد مربوطه اجرا شود.
خب حالا این به چه درد میخورد؟ برخی از کارها هست در برنامه ما که نمی دانیم دقیقا کی اجرایش به اتمام می رسد. این کارها مثل سایر خطوط کد ما خطی اجرا نمی شوند. مثلا یک در خواست Ajax یا fetch . شبکه دارای تاخیر است. ارسال درخواست و دریافت پاسخ از سمت سرور اندکی طول میکشد. خب ما که نمی توانیم کل برنامه را معطل رسیدن پاسخ سرور کنیم. اگر اینکار کنیم برنامه کند میشود. اصطلاحا دارای لگ می شود و برای کاربر مشهود است.
پس برای جلوگیری از این مشکل جاوااسکریپت این نوع از کدها را بصورت موازی با سایر کدها اجرا می کند و منتظر رسیدن پاسخ سرور نمی ماند. اصطلاحا می گوییم بصورت غیر همزمان یا async اجرا می کند. در حالت نرمال که پس از اجرای هر خط کد به خط بعدی می رود می گوییم sync اجرا می شود.
پس promise برای دستورات async است. پس سناریو کلی اینگونه می شود:
شما یک درخواست مثلا ajax ایجاده کرده و برای سرور می فرستید.نمی دانید پاسخ دقیقا کی می رسد. توابعی را که بعد از رسیدن پاسخ باید اجرا شود به promise می دهید.می روید سراغ اجرای خطوط بعدی کد Promise هم به شما قول می دهد وقتی پاسخ از سرور رسید توابع مورد نظر شما را اجرا کند.
در مثال زیر به نحوه ایجاد یک Promise دقت کنید:
ورودی constructor آبجکت promise دو تابع به نام resolve و reject است. هنگام اجرای موفقت آمیز درخواست async ما تابع resolve و هنگام اجرای ناموفق آن تابع reject را فراخوانی می کنیم.
به یک مثال دیگر که کاربرد Promise در XMLHttpRequest را نشان می دهد دقت کنید:
به کاربرد این دوتابع در fetch دقت کنید. این مثال می تواند در ری اکت نیتیو هم کاربرد داشته باشد.
تابع fetch کارش ارسال درخواست http است و خود promise بر می گرداند.
@ABlueDeveloper
#Javascript
کاربرد Promise در جاوا اسکریپت یا React Native
کاری که Promise برای ما در جاوا اسکریپت انجام می دهد و ری اکت نیتیو دقیقا بطور مشابه است. یعنی زمان هایی که لازم باشد ما را از وقوع رویدادهایی مطلع می کند تا در صورت وقوع رویداد مورد نظرمان ، قطعه کد مربوطه اجرا شود.
خب حالا این به چه درد میخورد؟ برخی از کارها هست در برنامه ما که نمی دانیم دقیقا کی اجرایش به اتمام می رسد. این کارها مثل سایر خطوط کد ما خطی اجرا نمی شوند. مثلا یک در خواست Ajax یا fetch . شبکه دارای تاخیر است. ارسال درخواست و دریافت پاسخ از سمت سرور اندکی طول میکشد. خب ما که نمی توانیم کل برنامه را معطل رسیدن پاسخ سرور کنیم. اگر اینکار کنیم برنامه کند میشود. اصطلاحا دارای لگ می شود و برای کاربر مشهود است.
پس برای جلوگیری از این مشکل جاوااسکریپت این نوع از کدها را بصورت موازی با سایر کدها اجرا می کند و منتظر رسیدن پاسخ سرور نمی ماند. اصطلاحا می گوییم بصورت غیر همزمان یا async اجرا می کند. در حالت نرمال که پس از اجرای هر خط کد به خط بعدی می رود می گوییم sync اجرا می شود.
پس promise برای دستورات async است. پس سناریو کلی اینگونه می شود:
شما یک درخواست مثلا ajax ایجاده کرده و برای سرور می فرستید.نمی دانید پاسخ دقیقا کی می رسد. توابعی را که بعد از رسیدن پاسخ باید اجرا شود به promise می دهید.می روید سراغ اجرای خطوط بعدی کد Promise هم به شما قول می دهد وقتی پاسخ از سرور رسید توابع مورد نظر شما را اجرا کند.
در مثال زیر به نحوه ایجاد یک Promise دقت کنید:
let myFirstPromise = new Promise((resolve, reject) => {@ABlueDeveloper
// We call resolve(...) when what we were doing asynchronously was successful, and reject(...) when it failed.
// In this example, we use setTimeout(...) to simulate async code.
// In reality, you will probably be using something like XHR or an HTML5 API.
setTimeout(function(){
resolve("Success!"); // Yay! Everything went well!
}, 250);
});
ورودی constructor آبجکت promise دو تابع به نام resolve و reject است. هنگام اجرای موفقت آمیز درخواست async ما تابع resolve و هنگام اجرای ناموفق آن تابع reject را فراخوانی می کنیم.
به یک مثال دیگر که کاربرد Promise در XMLHttpRequest را نشان می دهد دقت کنید:
function myAsyncFunction(url) { return new Promise((resolve, reject) => { const xhr = new XMLHttpRequest(); xhr.open("GET", url); xhr.onload = () => resolve(xhr.responseText); xhr.onerror = () => reject(xhr.statusText); xhr.send(); });}طور دیگری هم می تواند از promise استفاده کرد. آبجکت Promise دارای دو تابع به نام then و catch است که ترتیب در زمان اجرای موفقیت آمیز و غیر موفقیت آمیز کد async ، تابع ورودی خود را اجرا می کنند. خود then و catch نیز آبجکت promise بر می گردانند. بنابراین می توان چندیدن تا از آنها را بصورت زنجیر یا chain پشت هم بکار برد.
به کاربرد این دوتابع در fetch دقت کنید. این مثال می تواند در ری اکت نیتیو هم کاربرد داشته باشد.
تابع fetch کارش ارسال درخواست http است و خود promise بر می گرداند.
function getMoviesFromApiAsync() {برگرفته از سایت جعبه آبی
return fetch('https://facebook.github.io/react-native/movies.json')
.then((response) => response.json())
.then((responseJson) => {
return responseJson.movies;
})
.catch((error) => {
console.error(error);
});
}
@ABlueDeveloper
#Javascript
#js
JavaScript Standard Style
این خلاصه ای از قوانین جاوا اسکریپت استاندارد است.
بهترین روش برای یادگیری در مورد استاندارد این است که فقط آن را در کد خود امتحان کنید.
لینک های زیر را مطالعه کنید بسیار ساده توضیح داده برای دوستانی که علاقهمند به رعایت استانداردها در نوشتن کدهای JavaScript و یا Framework های مرتبط دارند
https://standardjs.com/rules.html
https://github.com/standard/standard
@ABlueDeveloper
#js
JavaScript Standard Style
این خلاصه ای از قوانین جاوا اسکریپت استاندارد است.
بهترین روش برای یادگیری در مورد استاندارد این است که فقط آن را در کد خود امتحان کنید.
لینک های زیر را مطالعه کنید بسیار ساده توضیح داده برای دوستانی که علاقهمند به رعایت استانداردها در نوشتن کدهای JavaScript و یا Framework های مرتبط دارند
https://standardjs.com/rules.html
https://github.com/standard/standard
@ABlueDeveloper
GitHub
GitHub - standard/standard: 🌟 JavaScript Style Guide, with linter & automatic code fixer
🌟 JavaScript Style Guide, with linter & automatic code fixer - standard/standard
#VisualStudio
#VisualStudio2019
#VS2019
مایکروسافت نسخهی جدید IDE ویژوال استودیو ۲۰۱۹ را رسما معرفی کرد .
@ABlueDeveloper
#VisualStudio2019
#VS2019
مایکروسافت نسخهی جدید IDE ویژوال استودیو ۲۰۱۹ را رسما معرفی کرد .
@ABlueDeveloper