سفر کهکشان با ابوراجا :)
389 subscribers
73 photos
6 videos
1 file
51 links
گپ های فنی و آموزشی برنامه نویسی

دایرکت
@abooraja

https://abooraja.ir
Download Telegram
اصولا کار واقعی عملیاتی با کار تئوریک و متن کتاب و آموزش فرق دارد. مثلا همیشه منطق برنامه نویسی فرم های عمومی در وب اینجوری هست که باید کپچا ( تصویر حروف بهم ریخته ) تولید کنید و به کاربر بگویید برای تشخیص انسان از ربات این کد را وارد کن. و بدین صورت از پیام های ربات ها جلوگیری کنید.
اما گاهی مخاطبین وب سایت قشری هستند که کد کپچا باعث سردرگمی و پیچیدگی زیاد برای آنها می شود. در این حالت باید از روش های ساده تری برای جلوگیری از هجوم ربات ها استفاده کرد.
تصویری که در بالا می بینید مربوط به همین شرایط در یکی از وب سایت های من هست. اینقدر ربات های مردم محترم انگلیسی زبان برایمان دعوتنامه به سایت های فرهنگیشان فرستادند که مجبور شدیم فرم را کمی فیلتر کنیم، بلکه از دستشان خلاص شویم!

پانوشت: عصبانی بودم جواب بدی به ربات ها در کد دادم. شما خواننده مودب و محترم به خوبی خودتون ببخشید 😀

لینک پست در اینستاگرام
https://www.instagram.com/p/B6x6si8pg4M/

@abooraja_ir
بعضی نیازهای روزمره برنامه نویسی در همه زبان ها همیشه مورد نیاز هستند. مهم ترین اینها توابع و کتابخانه های کار با اعداد و زبان و تبدیل های مختلف اونهاست.
حالا آقای علی ترکی عزیز به همراه چندنفر دیگر یک کتابخانه با کیفیت برای js نوشتند که تقریبا همه این نیازهای روزمره را پوشش میدهد.
نمونه مواردی که این کتابخانه پوشش میدهد:
• تبدیل اعداد به حروف و برعکس (مثلا:‌تبدیل ۳۰۰ به سی صد و برعکس).
• حذف و اضافه کردن کاما به اعداد.
• تبدیل اعداد فارسی به انگلیسی و عربی و عربی به انگلیسی و فارسی.
• تایید و اعتبارسنجی کد ملی.
• دریافت نام استان و شهرستان با کد ملی.
• تایید و اعتبارسنجی شماره عابر بانک.
• دریافت نام بانک توسط شماره عابر بانک.
• تایید و اعتبارسنجی متن فارسی ( به عنوان مثال:‌ درصورتی که متن وارد شده فارسی باشد true برمیگرداند )
• تمیز کردن متن فارسی از حروف عربی و unicode ها.

تمامی مثال ها و اطلاعات تکمیلی رو میتونید توی صفحه گیت هاب پروژه مشاهده کنید.
https://github.com/persian-tools/persian-tools

@abooraja_ir
مدیرعامل گیت هاب، آقای نت فریدمن امروز با درج پستی در وبلاگ شرکت از برداشتن تحریم ایران در گیت هاب خبر داد.
نت فریدمن می گوید که از تحریم های آمریکا مستثنی شده اند و اکنون تمامی خدمات گیت هاب اعم از رایگان و غیررایگان برای ایرانیان دردسترس می باشد.
از تحریم ایران توسط گیت هاب، حدود ۲ سال می گذرد
@abooraja_ir
ابزاری بسیار جالب برای محاسبه حجم نهایی پروژهای جاوا اسکریپتی
در این سایت می توانید آدرس پکیج را بدهید یا حتی می‌توانید فایل package.json را آپلود کنید تا حجم نهایی پروژه شما را بررسی نماید. مزیت این ابزار در این است که شما هزینه اضافه کردن هر بسته جاوااسکریپتی را می توانید محاسبه و بررسی کنید. و اگر حجم بالایی به پروژه اضافه کرد، در صورت لزوم راه های جایگزین را بررسی کنید.
https://bundlephobia.com

@abooraja_ir
نگارش جدید آیکون های bootstrap منتشر شد

با اضافه شدن ۶۰ آیکن جدید به کتابخانه Bootstrap Icons، تعداد کل آیکن ها به 1200 عدد رسید.
Bootstrap Icons v1.3.0
https://icons.getbootstrap.com/

@abooraja_ir
در سال 2018 رایان دال ( خالق nodejs ) یک سخنرانی کرد که در آن به 10 چیزی اشاره کرد که در مورد Node.js اشتباه است و در انتهای ارائه خود Deno را معرفی کرد. Deno در آن زمان صرفاً یک پروژه کوچک بود که رایان مشغول ساختش بود و آن را Node.js نسخه 2 می‌نامید که موجب بهبود و امن‌تر شدن آن می‌شود. پس از سپری شدن سه سال نسخه ۱.۰ به صورت رسمی در سال ۲۰۲۰ منتشر شد.
دنو یک محیط زمان اجرای جدید ( javascript runtime ) برای جاوااسکریپت و تایپ اسکریپت می باشد که مزایایی بیشتر از nodejs دارد و مشکلات قبلی را رفع کرده است.
و اکنون با بررسی آمار گیت هاب متوجه شدیم که deno در سال ۲۰۲۰ بیشترین ستاره را دریافت کرده است. این جایگاه برای ۵ سال پیاپی متعلق به vuejs بوده است.

https://risingstars.js.org/2020/en#section-framework

@abooraja_ir
برنامه نویسی و ناسا ( به بهانه ارسال فضاپیمای مریخ )

شاید خیلی از آدم های جامعه وقتی به مریخ نورد ناسا نگاه میکنند، به کلیت فضاپیما و مریخ و این چیزا فکر میکنند، ولی اکثر ما برنامه نویسا بیشتر تمرکزمون روی اون مانیتورها و نرم افزارهایی هست که این پروژه عظیم رو همراهی میکنند :)

نیازی به گفتن نیست که بیشتر قسمت های اینجور پروژه ها کاملا خودکار و نرم افزاری انجام میشه و امروزه کارها بدون کامپیوتر و نرم افزارهای هوشمند امکان پذیر نیست.
همین الآن داخل اون مریخ‌نوردی که ارسال شده، نرم افزارهایی متشکل از میلیون ها خط کد هست که کار ارتباط با زمین و گرفتن فرامین و اجرای اونها رو انجام میده.

فکر کن یه نفر توی تیم حوصله نداشته و یه جای کوچک رو اشتباه نوشته باشه.
چه اتفاقی می افته؟ توی اینجور پروژه ها خیلی خیلی خطرناک هست و خیلی راحت منجر به انفجار میشه.
بوووووم و میلیاردها دلار پول دود میشه و چندسال پروژه عقب میفته.
فکر میکنین شوخیه؟ تا حالا پیش نیومده؟
سال ۱۹۶۲ یه اتفاق خیلی مسخره افتاد. در واقع یه خط کد که مربوط به یه فرمول ریاضی بود اشتباهی از روی مستندات تایپ شده بود.
همین باعث شد که ماهواره Mariner I منفجر بشه و اون زمان ۸۰ میلیون دلار خرج روی دست ناسا بذاره. معادل ۷درصد کل بودجه سالیانه ناسا
این البته تنها مورد از این اتفاقات نیست. آژانس فضایی اروپا و ناسا بعدش هم از این گاف های وحشتناک داشتند که میتونین توی اینترنت ببینید.
https://www.laserfiche.com/ecmblog/whats-worst-software-bug-history/

برگردیم به بحث نرم افزار. اینکه ناسا از چه زبان برنامه نویسی استفاده میکنه و اینا.
با توجه به اینکه یه سری از این نرم افزارها هم متن باز هستند. یا به انگلیسی openSource، میشه راحت تر این رو فهمید.
نرم افزار متن باز به نرم افزاری گفته میشه که کد منبعش برای همه قابل دیدن باشه.

ناسا یک صفحه داره در سایت گیتهاب که معروف ترین سایت کدهای متن باز هست.
https://github.com/nasa

همون طور که در لیست پروژه ها مشخصه، اکثر بخش‌ها با سی++ و بخشی از اون با پایتون و روبی و c توسعه یافته. حتی جاوااسکریپ هم دارن :) البته دعوای اهمیت جاوااسکریپت بنظر من یکجور شوخی هست فقط و نباید این دعوا جدی گرفته بشه :)

و اینجا هم یک راهنما که میگه به عنوان کارمند ناسا اگر میخواین کدتون رو روی گیتهاب ناسا به صورت عمومی منتشر کنید ‌چه روالی داره و چه قوانینی رو باید رعایت کنید.
https://code.nasa.gov/

طبق راهنما، یه قسمت دارن تحت عنوان SRA که مخفف Software Release Authority هست. کار واحد انتشار نرم افزار، بررسی کدها و چک کردن قوانین سازمان و منتشر کردن اون هست.

البته همونطور که میدونید لزوما نرم افزار متن باز به معنی رایگان نیست. اینکه شما روی کد چکارهایی میتونی انجام بدی کاملا به مجوزی بستگی داره که سازنده روی اون گذاشته.
مجوزهای متن باز خیلی متنوع هستند. بعضی هاشون خیلی سخت گیرانه است. مثلا میگه به شرطی حق استفاده داری که اگر کوچکترین تغییری روی نرم افزار دادی، تو هم تغییراتت رو منتشر کنی.
این نوع مجوز باعث میشه که اون نرم افزار اصلی هم خیلی زود آپدیت بشه و رشد کنه.
در مقابل بعضی مجوزها خیلی سهل گیرانه ست. میگه هرجور دلت میخواد ازش استفاده کن و اگر حال کردی روی کد اصلی هم کمک کن بهبودش بدیم.
حتی مجوزهایی داریم که عنوانش دقیقا اینه: " برو هر غلطی ( ... ) میخوای باهاش بکن (... ) "
WTFPL
Do What The F** You Want To Public License

پروژه های متن باز ناسا اکثرا مجوز apache 2.0 دارن یا mit
این دوتا مجوزهای خیلی معروفی هستند که اکثر پروژه های اوپن سورس ازش استفاه میکنن.
در هر دو مجوز بالا میتونی از کد برای مقاصد تجاری استفاده کنی و حتی کدی که خصوصی تغییر دادی رو منتشر نکنی.

خب دیگه سفری به کهکشان برنامه نویسی زدیم با مریخ نورد ناسا :)

@abooraja_ir
آیا میدونید گوگل کروم نسخه ۹۰ رو هم رد کرد؟
اولین نسخه رو سال ۲۰۰۸ منتشر کرد. و ۱۲ سال طول کشیده تا به این نسخه برسه. ولی بازم این این نحوه نسخه گذاری در عالم نرم افزار رکورد محسوب میشه. تقریبا سالی ۸ نسخه major! :)

@abooraja_ir
۴ ساعت قبل nextjs نسخه جدید داد :)
البته از نسخه ۱۰.۱ به ۱۰.۲ . ولی بازم چندتا چیز باحال داشت که گفتم بگم براتون.
اول از همه اینکه مثل نسخه قبلی باز هم performance و کارایی دغدغه مهم تیم بوده. بهبود سرعت build و startup و refresh و خلاصه همه چی!
یه ماژول redirect هم اضافه کرده به تنظیماتش که خیلی پرکاربرد هست. میتونید تنظیم کنید که اگر این شرایط در مورد درخواست برقرار بود به کدوم صفحه هدایت بشه. مثلا اگر IE نسخه پایین بود، بره به صفحه بهینه شده برای این مرورگر. یا حتی اگر فلان کوکی بود و ... خلاصه اینم چیز کاربردی هست. اخیرا ما هم گیرش بودیم.
یه امکان دیگه هم گذاشته که web font ها رو توکار و بهینه میکنه. این باعث میشه که FCP و LCP خیلی بهبود پیدا کنه. اگر اخیرا دغدغه seo داشتید، حتما بهش برخورد کردید.
و دست آخر یه خبر باحال که تاثیرات دیگه ای در آینده داره. اونم اینکه آقای توبیاس کوپرز به تیم نکست وارد شده. کیه؟ نویسنده webpack . وخب معلومه که خبر هیجان انگیزیه واسه عاشقان nextjs :)
https://nextjs.org/blog/next-10-2

@abooraja_ir
Forwarded from کدهک
ویژوال استودیو 2022 به طور کامل از پردازنده های 64 بیتی پشتیبانی میکند و محدودیت حافظه 4 گیگابایتی آن روی devenv.exe برطرف شده است. به این ترتیب امکان باز کردن سولوشن هایی با هزاران پروژه و چند صد هزار فایل ممکن شده است.

این نسخه قرار است از MAUI هم پشتیبانی کند وامکان پیاده سازی اپ های با UI یکسان در انواع پلتفرم ها را فراهم میکند.

پیش بینی میشود نسخه 22 به همراه دات نت 6 در اواخر سال جاری میلادی منتشر شود.
مهمترین نیاز هر تیم نرم افزاری داشتن استانداردی برای کدنویسی هست. توی لینک زیر گوگل برای اکثر زبان های برنامه نویسی معروف یک استاندارد پیشنهادی فراهم کرده. میتونید ازش الگو بگیرید و درصورت نیاز به سلیقه تیم تغییرش بدین. مهمترین نکته اینه که این استاندارد درواقع معیار شما برای ارزیابی کدهای تیم code review هست.
https://google.github.io/styleguide/

@abooraja_ir
snapp_report-abooraja_ir.pdf
3 MB
یه شرکت سرمایه گذاری اومده بر اساس گزارشات مالی اسنپ و یه سری معیارهای دیگه شرکت اسنپ رو ارزش گذاری کرده. این شرکت عدد ۱۶ تا ۲۱ همت ( هزار میلیاد تومان ) رو به عنوان ارزش شرکت اسنپ محاسبه کرده. فارغ از صحت و درستی اطلاعات و ارزش نهایی که در تخصص من نیست، خود مستند و اعداد و نحوه محاسبه برای کسانی که دغدغه کارفرینی و ارزش گذاری دارند جالبه. پیشنهاد میکنم یه نگاهی بهش بندازید

@abooraja_ir
This media is not supported in your browser
VIEW IN TELEGRAM
راه های زیادی برای رسیدن به هدف وجود دارند. اما کوتاه ترین مسیر لزوما سریع ترین مسیر نیست

@abooraja_ir
روز همه برنامه نویس ها مبارک، به جز برنامه نویس های واتساپ!

@abooraja_ir
تایپ اسکریپت امروزه عضو جدایی ناپذیر و حیاتی پروژه های جاوااسکریپت شده. تایپ اسکریپت مزایای زیادی داره که اگر درست ازش استفاده نشه، ارزشش رو کم میکنه. در لینک زیر چندتا از نکات مهم و اصلی که باید هنگام استفاده از تایپ اسکریپت رعایت بشه گفته شده

TypeScript Best Practices 2021

https://medium.com/@warkiringoda/typescript-best-practices-2021-a58aee199661

@abooraja_ir
امروز به یکی از همکاران میگفتم که حتما بخاطر خودت هم که شده، این قسمت پیچیده از محصول رو مستند کن، در حال حاضر فقط خودت به عنوان مدیرمحصول و برنامه نویسی که مسئول اون قسمت بوده از فرآیندهاش سردرمیارین.
گفت چرا میگی بخاطر خودت؟
بهش گفتم برای اینکه بتونی توی کارت پیشرفت کنی. چون اگر کسی نتونه مسئولیت فعلی تو رو به عهده بگیره و فقط خودت سردربیاری، مدیر بالادستی قطعا هیچ وقت بهت پیشنهاد مسئولیت بعدی رو که حتما از مسئولیت فعلی بهتر هست رو نمیده. حتی اگر استحقاقش رو داشته باشی و اون هم بخواد، اما نمیتونه، چون برات جایگزینی نداره.
بنابراین اگر خودت رو آدم باهوش و مستعدی میدونی و دوست داری رشد کنی، هم برای بعد از خودت نیرو تربیت کن و هم کارات رو مستند کن که بهت وابسته نباشن.

اگه کسی نتونه توی شرکت جایگزین شما بشه، لزوما معنیش این نیست که شما خیلی خفنی،
بلکه مانع رشد خودت در سازمان شدی!

#تجربه #رشد #تیم #مستندسازی

@abooraja_ir
از ۸ مهر برابر با ۳۰ سپتامبر تغییری جزیی در شیوه‌ی اعتماد مرورگرها و دستگاه‌های قدیمی به گواهی‌های Let’s Encrypt اتفاق افتاد که ممکنه باعث شده باشه بعضی کاربران شما هنگام استفاده از سایت با اختلال مواجه بشوند.
البته نگران نباشید. اگر یه سایت معمولی با بازدیدکننده های معمولی دارید براتون مشکلی پیش نمیاد. چون اکثر مرورگرها به طور خودکار این تغییر رو پیشتیبانی میکنند و جای نگرانی نیست. ولی مثلا فایرفاکس نسخه های قبل از ۵۰ در باز کردن این سایت ها به مشکل میخوره. راه حلش هم اینه که بروزرسانی کنه مرورگرش رو.
ولی مثلا اگر سایتتون api میده و یه دستگاه iot بهش وصله یا یه برنامه اندرویدی خیلی قدیمی نسخه ۷ به قبل ازش استفاده میکنه، براش مشکل بوجود میاد.

طبق مستندات سایت letsEncrypt این دستگاه ها کامل پیشتبانی میکنند و مشکلی ندارند
Windows >= XP SP3 (assuming Automatic Root Certificate Update isn’t manually disabled)
macOS >= 10.12.1
iOS >= 10 (iOS 9 does not include it)
iPhone 5 and above can upgrade to iOS 10 and can thus trust ISRG Root X1
Android >= 7.1.1 (but Android >= 2.3.6 will work by default due to our special cross-sign)
Mozilla Firefox >= 50.0
Ubuntu >= xenial / 16.04 (with updates applied)
Debian >= jessie / 8 (with updates applied)
Java 8 >= 8u141
Java 7 >= 7u151
NSS >= 3.26

و این لیست کار میکنند اما گواهینامه ssl سایت رو معتبر شناسایی نمیکنند
macOS < 10.12.1
iOS < 10
Mozilla Firefox < 50
Ubuntu >= precise / 12.04 and < xenial / 16.04
Debian >= squeeze / 6 and < jessie /8
Java 8 >= 8u101 and < 8u141
Java 7 >= 7u111 and < 7u151
NSS >= v3.11.9 and < 3.26
Amazon FireOS (Silk Browser) (version range unknown)
Cyanogen > v10 (version that added ISRG Root X1 unknown)
Jolla Sailfish OS > v1.1.2.16 (version that added ISRG Root X1 unknown)
Kindle > v3.4.1 (version that added ISRG Root X1 unknown)
Blackberry >= 10.3.3 (version that added ISRG Root X1 unknown)
PS4 game console with firmware >= 5.00 (version that added ISRG Root X1 unknown)

اگر سایت شما هم به مشکل خورده در نظرات کانال بنویسید

@abooraja_ir
گوگل زبان جدید خود به نام لاجیکا logica را معرفی کرد. هدف از ساخت این زبان رفع اشکالات اساسی sql اعلام شده است.
گوگل توی توئیتر رسمی برنامه های متن باز خودش از این زبان با افتخار یاد کرده و گفته حتما اون رو دوست خواهید داشت. و البته گفته که این زبان به sql هم کامپایل میشه و میتونه روی google bigQuery هم اجرا بشه.
لاجیکا برای محاسبات سنگین و پردازش داده های بزرگ خیلی میتونه مفید باشه. بزودی یه مثال کوچک باهاش میزنم

سایت رسمی زبان لاجیکا
https://logica.dev/

@abooraja_ir
بیش از دوساعت از قطعی اینستاگرام و فیس بوک و واتساپ در کل دنیا میگذره و همچنان این سرویس ها دردسترس نیستند.
صفحات سایت های این شبکه ها خطای ۵۰۰ نشون میده و بازار شایعات داغ شده. از ادعای هک شدن توسط نوجوان ۱۳ ساله چینی تا قطعی برق و اشکال بروزرسانی.
عموما رسانه های غربی موضوعات این چنینی را به یک نوجوان چینی مرتبط میکنند تا هم فرافکنی کنند و هم موضوع را به یک بازی تقلیل دهند. در هرحال اگر هک اتفاق افتاده باشه یک اتفاق بزرگ محسوب میشه و اگر مشکل فنی هم بوده باشه، یک گاف بزرگ برای این شرکت ها محسوب میشه.
بنظر من مهمترین نکته قطعی همزمان این سرویس ها و وابستگی شدید این شبکه ها از نظر فنی به همدیگه هست.
سخنگوی فیس بوک در توئیتر دلیل خاصی برای قطعی ذکر نکرده و فقط گفته ظاهرا تعداد زیادی از مردم به سرویس های ما دسترسی ندارند. بابت این اتفاق عذرخواهیم و درحال تلاش برای رفع کردن مورد هستیم.
در این لحظه که بزرگترین شبکه های اجتماعی دنیا قطع هستند، هجوم به تلگرام ظاهرا بسیار زیاد شده. کندی تلگرام کاملا مشهود است. عکس ها و اطلاعات تصویری به سختی باز می شوند.
قطعی این شبکه ها میتونه برای تلگرام کاربر زیادی بیاره، بشرطی که از این بار زیاد سربلند بیرون بیاد
@abooraja_ir
مشکل اختلال در سرویسهای فیسبوک از جمله اینستاگرام و واتساپ ناشی از DNS هست که ظاهرا به دلیل ناپدید شدن BGP فیسبوک از اینترنت ناشی شده.

ناپدید شدن BGP فیسبوک از اینترنت، باعث میشه سرویسهای DNS نتونن IP سرورهای فیسبوک رو پیدا کنن که نتیجه اون این هست که کاربران هم امکان وصل شدن به سرورهای فیسبوک رو نخواهد داشت که اثراتش همین قطع شدن اپهای فیسبوک، اینستاگرام و واتساپ برای اونهاست.

این مورد توسط شرکت کلاوفلیر که صاحب یکی از شلوغ ترین DNS های جهان یعنی 1.1.1.1 هست، تایید شده و این شرکت به خاطر پیدا نشدن IP های فیسبوک، درخواستهای بسیار زیادی از کاربران دریافت کرده و نرخ خطاهای این سرویس بالا رفته.

طبق گفته یکی از مهندسان فیسبوک در ردیت، در اشتباهی بزرگ، اپدیتی که مهندسان فیسبوک امروز برای تجهیزات شبکه فیسبوک ارسال کردن باعث مشکلی در تنظیمات این تجهیزات شده، بنابراین این تجهیزات نمیتونن IP سرورهای فیسبوک رو به بقیه BGP ها مخابره کنن، این مشکل ناپدید شدن BGP فیسبوک رو از اینترنت به دنبال داشته که باعث شده سرویس های فیسبوک توسط کاربران قابل دسترسی و پیدا کردن نباشن.

این اپدیت جدید باعث شده که مهندسان نتونن از راه دور تجهیزات شبکه فیسبوک رو اصلاح کنن و از شبکه بیرون بیافتن. در نتیجه تنها کسانی که دسترسی فیزیکی به این تجهیزات دارن امکان تغییر در تنظیمات و اصلاح اونهارو دارن. اما همین افراد، که به این تجهیزات دسترسی فیزیکی دارن، دارای اعتبار لازم برای دسترسی نرم افزاری به اونها نیستن.

در نتیجه این قضیه باعث مشکلات لجستیکی زیادی شده چون کسانی که دسترسی لازم برای اعلام تغییرات دارن از اون دورن و باید حضوری در محل حاضر بشن و کسانی که حضوری در محل هستن، دسترسی های لازم برای اعمال تغییرات رو ندارن.

علاوه بر این که به خاطر پاندمی، تعداد افراد حاضر در دیتاسنترهای فیسبوک کم هست که این قضیه رو بیش از پیش بدتر میکنه.

@developerDiaries