👾 Geek Engineers
503 subscribers
47 photos
41 files
300 links
👾 Extremist software engineering guidance for Geeks.

Website:
https://geekengineers.netlify.app

Github:
https://github.com/geekengineers
https://github.com/tahadostifam

Community:
@geek_engineers_community
Download Telegram
Forwarded from Golang Insights (Javad)
پروپوزال استفاده از علامت ? برای ساده‌سازی مدیریت خطا در زبان Go

پیشنهادی برای کاهش کدهای تکراری در مدیریت خطاها در زبان Go ارائه شده است که استفاده از علامت ? را معرفی می‌کند. این علامت به برنامه‌نویسان اجازه می‌دهد تا بررسی خطاها را به صورت مختصرتر و خواناتر انجام دهند. به عنوان مثال، به جای نوشتن:

r, err := SomeFunction()
if err != nil {
    return fmt.Errorf("something failed: %v", err)
}

می‌توان از این نحو جدید استفاده کرد:

r := SomeFunction() ? {
    return fmt.Errorf("something failed: %v", err)
}

در این ساختار، اگر مقدار بازگشتی خطا (err) نال نباشد، بلوک کد پس از ? اجرا می‌شود و متغیر err به صورت ضمنی در این بلوک تعریف می‌شود. همچنین، اگر بلوک کد پس از ? حذف شود، به صورت پیش‌فرض خطا بازگردانده می‌شود:

SomeFunction2() ?

این پیشنهاد با هدف کاهش کدهای تکراری و بهبود خوانایی کدهای مدیریت خطا در زبان Go مطرح شده است.


https://github.com/golang/go/discussions/71460


☄️ @GoInsights | @GolangEngineers
Please open Telegram to view this post
VIEW IN TELEGRAM
5
یه وبلاگ راجب Rust که نویسنده ش Andrew Lilley Brinker هست. آدم باحال و با اخلاقیه

https://www.possiblerust.com/
👍6
👾 Geek Engineers
یه وبلاگ راجب Rust که نویسنده ش Andrew Lilley Brinker هست. آدم باحال و با اخلاقیه https://www.possiblerust.com/
جالبه که همین شخص (Andrew Lilley Brinker) به کمک کمونیتی Mitre اومدن یه پروژه ای درست کردن به اسم Hipcheck که میاد پروژه های اوپن سورس رو آنالیز میکنه که ایا برای استفاده بلند مدت ریسک داره یا نه؟ مثلا وضعیت maintenance یا code review تو چه وضعیتی هست و براش نمره میده. این کمک میکنه که پروژه های اوپن سورس مرتبط رو با همدیگه مقایسه کنیم که بدونیم کدوم یکی در طولانی مدت بازخورد بهتری داره.
پروژه کاربردی و جالبیه.

https://hipcheck.mitre.org/
🔥6👍2
⚠️ وقت همگی بخیر. مطلب مهمی رو باید باهاتون به اشتراک بزارم! ‼️

احتمالا شما هم با شرکت های خارجی مواجه میشوید که به شما میگن تحت عنوان هویت یک سیتیزن آمریکا قراره کار بکنید و درامد های ۳ الی ۴ هزار دلاری بهتون میدن. و علاقه زیادی هم به بستن قرار داد دارند.

اما کمتر کسی میدونه که این چقد جرم بزرگیه. و این تنها محدود به ایران نمیشه و اگر بخواید مهاجرت بکنید هم با مشکل جدی مواجه میشید. چرا که جعل هویت حتی با رضایت هر جای دنیا هم که برید یه جرم محسوب میشود. پس این قضیه کلا کنسله...

اگر کسی آینده نگر باشه و به امنیت خودش اهمیت بده سراغ این شرکت ها نمیره. چون ۹۹ درصد فیک هستن و اعتمادی بهشون نیست‌.

من طی این ۳ ماه امروز دومین شرکتی بود که با این شرایط باهاشون مواجه شدم... خیلی داستان جالبی است :)
شرکت اولی که باهاشون مصاحبه کردم ادعا داشت یه شرکت آمریکایی هست. مصاحبه تکنیکال رو قبول شدم. سر salary هم توافق کردیم. انگلیسی م اوکی بود. همه چی رو به خوبی پیش بردیم. تا اینکه رسیدیم به مرحله قرار داد و نوشتن رزومه! من سوال کردم ازشون که اگر چطور من رو جای به سنیور ۳۰ ساله با بیش از ۱۰ ها سال تجربه جا میزنید؟ من تنها ۱۷ سالمه و نرماله که چهره م سنمو به دقت نشون بده :)
با کمال تعجب گفتن هیچ مشکلی نیست... ما خودمون اوکی میکنیم.
بعدش گفتم مشکلی نیست. صدامو چیکار میکنید؟ گفتن اونم حل میکنیم نیازی به نگرانی نیست...
بعدش گفتم خب... با سرچ کردن چهره من تو گوگل به همه اطلاعات من تو اینترنت دسترسی دارند و خیلی سریع متوجه میشن که من ایرانی هستم!
همچنین لهجه و عدم اسپیکینگ slang و native هم به خوبی این رو نشون میده!

جالبه که بدونید بعدش چه اتفاقی افتاد :)
من که همینطور اینها رو باهاشون در میون میزاشتم اون ها هم به تاکید میگفتند هیچ مشکلی نیست و شما الکی نگرانید.

اما قضیه همینطوری تموم نشد. من با وکیل قانونی صحبت کردم و اطلاعات تخصصی ای رو باهاشون در میان گذاشتم. همچنین consequence هایی که برای من به ارمغان خواهد آورد.

خیلی عجیب و شگفت انگیز شروع به تحقیر و فرار کردن از پاسخ‌گویی کردند. جالب بود برای من که چطور این ها از اسم lawyer اینقد ترس دارند...

به من گفتند با رییس شرکت جلسه ای برگذار میکنیم که کلا قضیه رو برات از نو clarify بکنیم.
رییس شرکت خودش توی تلگرام به من DM فرستاد (اشتباه اول).
خودش پیگیر موضوع شد.(اشتباه دوم).
پروفایلش رو توی گوگل سرچ کردم و به یه مقاله روانشناختی رسیدم که بنرش این اقا بود. هیچ اطلاعاتی راجب شخصی که ادعا داشت رییس اون شرکت هست پیدا نکردم. اسمش فیک بود. (اشتباه سوم).

من حدس میزنم همون شخص دوتا اکانت داشت چون بعد از پرزنت کردن این اطلاعات دیگر به پاسخگویی ادامه نداد. انگار نه انگار که همان آدم سابق باشد.

و تمام.

این هم اضافه میکنم که یک CTO ایرانی داشتند. ادعای سنیوری میکرد :) گیت هاب فیک داشت همچنین. از کامیت ها ‌و محتوای ریپوزیتوری ها به خوبی میشد این رو متوجه شد.
همچنین از اسپیکینگ انگلیسی خوبی برخوردار نبود.
به من می‌گفتند انگلیسی صحبت کن. ولی این شخص که ایرانی بود ۷۰ درصد اوقات فارسی حرف میزد و معلوم بود که اسپیکینگ خوبی ندارد.

همه این اطلاعات رو ثبت و ضبط کردم. حتی interview هایی که رفتیم رو. اگر خواستید میتونم باهاتون به اشتراک بگزارم. که مبادا گیر این ادم ها بیوفتید... که تموم شدنش دست خداست :]

پ.ن : زیر همین پست اطلاعات حقوقی هم شیر میکنم باهاتون.

با تشکر.
طاها.
🔥13👍3
👾 Geek Engineers pinned «⚠️ وقت همگی بخیر. مطلب مهمی رو باید باهاتون به اشتراک بزارم! ‼️ احتمالا شما هم با شرکت های خارجی مواجه میشوید که به شما میگن تحت عنوان هویت یک سیتیزن آمریکا قراره کار بکنید و درامد های ۳ الی ۴ هزار دلاری بهتون میدن. و علاقه زیادی هم به بستن قرار داد دارند.…»
Manning.Software.Testing.with.Generative.AI.pdf
5.2 MB
Software Testing with Generative AI (2024)

این سری کتاب ها واقعا فوق العاده ن.
داستان ازین قراره که همه ما میتونیم از AI برای نوشتن کد هایی که لاجیک زیادی ندارن یا حتی ریفکتور کردن کد استفاده کنیم. ولی این کتاب بصورت خیلی تخصصی و گسترده تر به تستینگ نرم افزار می‌پردازد.

پ.ن: بستگی به خودتون داره که چقد بتونید ازش یاد بگیرید. خوندن فقط تاپیک هاشم ارزشش رو داره.

#AI #book
ادم نا امید میشه پروژه های خوب اخرین کامیت شون برمیگرده به چند سال پیش.

بورگو (Borgo) یک زبان برنامه نویسی هست با سینتکس ترکیبی از Rust و Go که در نهایت به Go کامپایل میشه. سینتکس در اکثر بخش ها گو هست منتها فیچر های بیشتری مث match و استایل راست برای تعریف کردن استراکت و...

میتونست پروژه موفقی بشه ولی abandon شده =)

https://github.com/borgo-lang/borgo
👍6
همینشم جای شکر داره👩‍🦯

#cyrus
🔥13
بلخره OOP برای Cyrus Lang داره تموم میشه😎

دیگه وقتش نیست یه ویدیو بسازیم برای introduction؟💀

#cyrus
🔥10
Cyrus: A high-performance, statically-typed, manually memory-managed and procedural programming language empowered by LLVM. Made with Rust 🦀.

برای حمایت از ما میتونید توی گیت هاب ⭐️ بدید که خیلی به دیده شدنش توی explore گیت هاب کمک میکنه. همینطور اگر با دوستاتون شیر کنید خیلی خوشحال میشیم =) ❤️🤌🏿

Community:
@cyrus_lang

GitHub:
https://github.com/cyrus-lang/Cyrus-Lang
🔥191👍1🕊1
امروز چالش جالبی داشتم =)
بعد از کمی جست و جو فهمیدم که C اجازه نمیده که بدین صورت یه ارایه کامل رو اساین بکنی. و تنها چاره ش اینه که دونه دونه ایتم هارو اساین کنیم. مثلا :

my_arr[0] = 256;
my_arr[1] = 257;

و خب همین مشکل رو توی سایروس هم داشتیم طبیعتا.

درستش کردم💀🤌🏿

پ.ن: یه vector هم اضافه بشه خیلی خوشحال میشم

#cyrus
👍113
یه compiler backend ساخته شده به اسم QBE که فلسفه ش اینه که شما اگر میخوای یه hobby programming language بسازی استفاده کردن از LLVM مث حمل کردن یه کوله پشتی با یه کامیون بزرگ میمونه.
پس بیاید از QBE استفاده بکنید که هم توسعه پذیر هست و هم سبکه و همینطور یه IR اختصاصی هم برای خودش داره که شباهت زیادی هم به LLVM-ir داره.

https://c9x.me/compile/docs.html

همینطور Tsoding رو داریم که کلی این کامپایلر رو انگولک میکنه =)

https://www.youtube.com/watch?v=JTjNoejn4iA

پ.ن: نظر من رو بخواید ازین یه presentation خوب برای دانشگاه در میاد.

#compiler
8
این از همه عجیب تره😂💀 زبان Bend ادعا میکنه که با parallelism تونسته آپتیمایزیشن خیلی بزرگی انجام بده اما نکته قابل توجه ماجرا اینه که ما اصلا نیاز نداریم که چیزی راجب پاراللیسم بدونیم چون خودش in-depth داره همه چیو هندل میکنه. سینتکسشم پایتونه

فلسفه اینم اینه که هرچیزی که بتون parallel ران بشه... حتمی ران میشه =/

البته همونطور که ThePrimeTime هم میگه من هم به خوبی درک نمیکنم این چیکار داره انجام میده در حقیقت😂 باید سورس کدشو بخونیم... چون jargon های عجیب غریبی اختراع کرده که graph و CFG شو شرح بده.
ولی منم موافقم که استفاده کردن ازین یه دانش عجیب ریاضی میخواد😂

https://www.youtube.com/watch?v=NaytZOiX3fs

خلاصه که خیلی پروژه باحالیه. اگه وقت بزارید روش حتمی چیزای عجیب تری ازش در میاد.

وبسایتش:

https://higherorderco.com

#compiler #programming_languages
9🤷3👍1
این همون bash script عه که بهش class support هم اضافه کردن. ینی میتونید باهاش object oriented به اسکریپت نویسی بپردازید :

@class Bashpp {
@public author="Andrew S. Rightenburg"
@public source="https://github.com/rail5/bashpp"
@public license="GNU GPL v3"

@public @method printInfo {
echo "Bash++ is a superset of Bash that adds support for classes and objects."
echo "It's meant to be a simple way to add object-orientation to Bash scripts."
echo "Author: @this.author"
echo "Source: @this.source"
echo "License: @this.license"
}
}

@Bashpp myBashpp
@myBashpp.printInfo


https://bpp.sh

#bash #linux
🔥8
بعد ۳ روز کار کردن بلخره کانفیگ NixOS به همراه HyprLand تموم شد. خیلی خوشحالم که تونستم بیام روی نیکس چرا که ازین به بعد دیگه قرار نیست سیستمم خراب بشه :)
توی نیکس همه چی بوسیله کانفیگ ساخته میشه و بالا میاد و همینطور اگر سیستم رو خراب کردیم میتونیم بگردیم generation قبلی و مشکل رو فیکس کنیم و وولا! پس به مرور زمان سیستم عاملتون بهتر و بهتر خواهد شد. نه این که انگولک بکنید لینوکس تون رو و اگر پرید کلا به فنا برید. فوق العاده ست این سیستم عامل.

github.com/tahadostifam/TahaOS
#nixos

پ.ن: به سلیقه م چند میدید توی کانفیگ هایپرلند؟ =]
👍9
راست یک ابزار قدرتمندی دیگری هم دارد به نام bindgen که به شما این امکان را میدهد که لایبرری های نوشته شده با C را bind (port) کنید (FFI binding).

این ابزار C header file بعنوان ورودی میگیره و extern راست تحویل میده.

https://github.com/rust-lang/rust-bindgen

در نظر دارم در آینده ابزار مشابهی برای Cyrus بسازم که توسعه external libraries یک زبان رو بی نهایت تسهیل میکند.

#cyrus #rust #FFI
👍9
Vegeta is a versatile HTTP load testing tool built out of a need to drill HTTP services with a constant request rate.

https://github.com/tsenart/vegeta
👾2
شماتیک حل مشکل در زبان های مختلف
فقط php 😂

#fun
☕️ Telegram | Website | Discord
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Forwarded from Linuxor ?
بیاین فرهنگ کد جایز الخطاست رو جا بندازیم


@Linuxor
🫡9