نوشته‌های ترمینالی
2.62K subscribers
424 photos
12 videos
32 files
2.25K links
Download Telegram
چطور با کاراکتر های یونی‌کد، ماری میکنن که سورس کد، خلاف چیزی که می‌بینید عمل کنه!
Trojan Source Attacks
https://www.trojansource.codes/
Forwarded from FullstacksJS — Academy
چگونه یه توسعه دهنده 10X شویم
یکشنبه ۷ آذر ساعت ۹ شب توی دورهمی "چگونه به یه توسعه دهنده 10X باشیم" میخوایم درباره چگونگی افزایش productivity با استفاده setup کردن محیط توسعه صحبت کنیم.
میخوایم درباره Linux، پیشنیازها، ابزارها، تریک ها و مدل فکری که بهمون کمک میکنه productivity مون بیشتر بشه صحبت کنیم.


لینک دعوت


مباحثی که قرار هست درباشون صحبت بشه:
* پیشنیاز ها
* مشکل ما با Mouse چیه
* لینوکس چطوری کمکمون میکنه
* چرای برای خودکار کردن کاری کمتر از ۱۰ ثانیه طول میکشه باید ۲ روز وقت بذاریم
* چطوری لینوکس رو یاد بگیریم
* کدوم توزیع لینوکس
* ‌‏Window System چیه
* ‏ DE چیه
* ‏ WM چیه
* فرق Tiling WM و Floating WM چیه
* پس DM چیه
* چرا هنوز از VIM استفاده میکنن
* ‏tmux چه کمکی میکنه

همراهمون باشید 🎉

#event #meetup

@fullstacks
روی هم رفته حس میکنم هیچ زبون برنامه نویسی‌ای رو بلد نیستم.
تایپورا گویا از بتا خارج شده، در نتیجه لایسنس می‌خواد و trial و این مشکلات رو داره.
در نتیجه دارم دنبال برنامه ادیتور می‌گردم.
انتخاب اول البته خود vimئه اما برای فارسی سخت میشه.
تایپورا با تم خاورمیانه تقریبا خوب کار میکرد.
یه برنامه زیبا که پیدا کردم fromscratch بود.
در واقع بی‌امکانات ترین ادیتوریه که میشه پیدا کد (از notepad هم کمتر)
فقط یه صفحه دارید که ادیت می‌کنید توش و خودش فایل رو سیو میکنه.
هربار باز کنید برنامه رو همین فایل رو بهتون نشون میده و خودکار هم سیو میکنه.
در واقع مثل sticky note یا چنین چیزی کار میکنه.
خوبی بزرگش اینه که ساده و سریعه
فارسی می‌تونین توش بنویسین اما rtl نیست.

نکته جالبش اینه که -> و => و اینا رو تبدیل به فلش های قشنگ میکنه.


https://fromscratch.rocks/
گزینه معقولی که پیدا کردم joplin بود.
یه ادیتور با قابلیت notebook و todo و اینا.
اما نتیجه مارک‌داون رو سمت راست می‌دیدین (برخلاف تایپورا که همونجا نشون میده)

فارسی رو خیلی خوب ساپورت میکرد (در واقع BiDi بود، مثل تلگرام و توییتر و ...)
با گوگل درایو و دراپ باکس و اینا هم میتونست سینک بشه.

مشکل بزرگش برای من این بود که خودش یه دیتابیس sqllite داشت و محتوا رو اونجا می‌ریخت. شما نمی‌تونستی فایلت رو هرجا خواستی سیو کنی. همچنین تصاویر مورد استفاده رو هم توی یه پوشه resource کنار همون دیتابسیه می‌ریخت.
عملا قابلیت کنترلی نداشتی.
مثلا نمیشه readme پروژه ت رو باهاش ادیت کنی.
البته قابلیت import و export داشت ولی خیلی سردرد بود.
گزینه‌ی کاربردی بعدی QOwnNote بود.
این هم مثل joplin می‌تونست متن فارسی رو خوب هندل کنه (BiDi)
البته موقعی که pdf میکنه متن رو خراب میکنه.
مشکلی که داره اول اینه که زشته!
دوم اینکه باز هم متن ها رو یه جای خاص سیو میکنه و باید import export کنید هی.

در کل با وجود joplin توصیه‌ش نمیکنم. هرچند سبک تره.
گزینه مطرح و مهم بعدیمون onenoteئه،
به شکل انلاین میشه ازش استفاده کرد، حالا تیم p3x اومده همین onenoteوب رو در قالب یه برنامه الکترونی منتشر کرده.
خب onenote که تکلیفش مشخصه، اطلاعاتتون توی سرور مایکروسافت قرار میگیره و فقط می‌تونین pdf اکسپورت کنید.
البته با توجه به اینکه امکانات نقاشی و اینا که میده توی متن خام جا نمیشه قابل قبوله.
امکان rtl هم داره اما برای هر تیکه متنی که می‌نویسید باید بزنید RTL
در کل قابل قبوله. مخصوصا اگر قلم و اینا دارید واقعا زیباست.

https://www.corifeus.com/onenote
برنامه laverna و encryptic بودن که خیلی اصرار داشتن روی کلود ذخیره کنن و امن باشن، در حالی که نیاز من نبود.
ضمن اینکه هیچکدومشون دیگه توسعه هم داده نمی‌شدن، کلا توصیه نمیشن



retext
امکان ادیت markdown رو داشت
باز هم فارسی رو خوب می‌نوشت اما موقع pdf کردن خرابش می‌کرد.
ظاهرشم تعریفی نداره هرچند قابل تحمله.



remarkable
ادیت فارسی داشت اما RTL نبود.
کلا ه مبرنامه ساده و بی امکاناتی بود. با همون notepad میتونه جایگزین بشه!



ghostwrtier
تنها گزینه‌ای که توی پکیج های رسمی arch بود.
اما با فارسی اصلا دوست نبود.

zettlr
برنامه زیبا و پر امکاناتی بود.
فارسی رو ساپورت نمیکرد.
برای export به pdf هم pandoc می‌خواست.
برای انگلیسی توصیه ش میکنم.


marktext
بسیار زیباست. گزینه هاشم پنهانه که تمرکز رو به هم نزنه اما فارسی رو پشتیبانی نمیکنه.

haroopad
یه ابزار نسبتا ساده، بدون پشتیبانی فارسی.
توصیه ش نمیکنم.

mark my words
بسیار ساده، بدون امکانات خاصی و پشتیبانی از فارسی خوب نیست

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

mindforger
ظاهرش تعریفی نیست اما خیلیم بد نیست.
هم امکان ادیت مستقیم markdown داره هم فاز notebook و اینا رو داره.
فارسی که ساپورت نمی‌کنه و کلا هم نپسندیدم.
اگه تا اینجا ناامید شدید، تنها نیستین!

تنها چیزی که فارسی رو خوب ساپورت میکنه پروژه‌های انلاین هست مثل rtlmd و minimalist

https://minimalist.brothersincode.ir/
https://rtlmd.codecast.ir/

اما مشکل هردو اینه که دیگه کلا راست به چپه و چیز انگلیسی نمیشه توش نوشت.
توی مرورگر کار میکنه و قابلیت export و import هم نداره!
یه آپدیت بدم:
ادیتور apostrophe تا اینجا خوب بود.
هم فارسی رو زیبا پشتیبانی میکرد و هم انگلیسی رو و زیبا و سبکه.
اما مشکل اینه که متن های فارسی رو توی pdf خروجیش نمیاره.
از اونجایی که گزینه های دیگه هم کم و بیش مشکلات مشابهی داشتن تصمیم گرفتم که خودم دست به کار بشم.
تنها کاری که باید انجام بشه تبدیل markdown تولید شده به pdf با pandocئه.

اگه نمی‌دونید، pandoc ابزار بسیار قدرتمندی برای تبدیل هر فایلی مثل word و markdown به هر فرمت دیگه ای مثل pdf و odt و word و latexئه.
تا اونجا که فهمیدم چیزی که از همه راه‌دست تره براش latexئه اما مهم نیست.

حالا pandox برای تبدیل به pdf یه سری engine داره که تا اینجا weasyprint از همشون تمیز تر pdf فارسی ساخته.

مشکلی که وجود داره اینه که همه متن رو ltr در نظر میگیره. با یه متغیر میشه همه متن رو rtl کرد. اما هنوز برام کافی نیست چون متنم ممکنه هم پاراگراف های فارسی داشته باشه هم انگلیسی. به طور خاص کدها میخوام حتما ltr باشن.


تصمیم گرفتم ببینم typora چیکار میکنه که درست میشه. فرض کردم که از همون pandoc استفاده میکنه. با strace اومدم سیستم‌کال هاشو مانیتور کردم، ولی خب گویا حداقل برای pdf نمیاد pandoc رو مستقیم صدا کنه چون چیز به دردبخوری پیدا نکردم (خیلی هم بلد نیستم strace)
بعد اصلا یادم اومد که typora هم به زور یه تم راست به چپش درست شده و اونم فقط rtl یا ltrئه و BiDi نداره.

کار بعدی، filter های pandoc بود. اینطوریه که شما می‌تونی با lua یا هر زبان دیگه (lua سریع تر و پیشفرضشه) براش یه اسکریپت بنویسی.
این اسکریپتت شامل یه سری تابعه که بسته به اسمش توسط pandoc صدا شده میشه. مثلا تابع Str با هر کلمه صدا زده میشه و تابع Block با هر بلاک.
وروذی این تابع هم یه table (همون map) هست که اطلاعات اون المنت رو داره.
مقدار خروجی شما از این تابع به جای المنت قبلی قرار میگیره و میتونین modifyش کنین خلاصه.

اگه لوا بنویسید مستقیم کال میشه (کاری که دارم میکنم) اما با زبون های دیگه هم میشه با کمک json ارتباط برقرار کرد، هنوز نرفتم سراغش.

حالا تغییری که روی المنت Block باید بدم اینه که بگم اگه انگلیسی بود (مثلا با خروجی انگلیسی شروع شده بود، بیا و به جای rtl (که پیشفرض گذاشتمش) شما ltrش کن.

اما خب کار نمیکنه =)
نمیدونم lua بلد نیستم یا چی =)