نوشته‌های ترمینالی
2.67K subscribers
425 photos
12 videos
32 files
2.26K links
Download Telegram
استفاده از ctag داخل vim
برای؟ برای پیدا کردن definition یه key word در زبان‌های برنامه نویسی مرسوم
https://courses.cs.washington.edu/courses/cse451/10au/tutorials/tutorial_ctags.html
و
https://andrew.stwrt.ca/posts/vim-ctags/
خوندن محتوای یه فایل متنی و چاپش با فقط یک خط در جاوا

Files.lines(Paths.get("test.txt")).forEach(System.out::println);


این روش هم هست سریع‌تره:
System.out.print(
new String(Files.readAllBytes(Paths.get("test.txt")))
);


و تو پایتون که سرراست تره:
print(open("test.txt", 'r').read(), end="")
https://www.geeksforgeeks.org/iterators-in-java

انواع iterator در جاوا
در واقع ۳ نور iterator داریم.
اولیش رو که آشنا هستیم و universal iterator هست

دومی enumeration هست، این یه چیز legacy هست و از اولین jdk بوده و گویا خیلی استفاده نمی‌شه. با دستور elements() روی Vector و HashTable می‌تونید دریافتش کنید.

سومی list iterator که برای لیست هست فقط ولی امکانات بیشتری مثل برگشتن به عقب رو هم داره.
https://blog.codinghorror.com/the-great-newline-schism/
در مورد line terminal و داستان‌هایش


و جواب مختصر و مفیدتر
https://superuser.com/questions/374028/how-are-n-and-r-handled-differently-on-linux-and-windows

و ارائه راه حل:
https://support.nesi.org.nz/hc/en-gb/articles/218032857-Converting-from-Windows-style-to-UNIX-style-line-endings


پانوشت:
توی جاوا هم با دستور
System.lineSeparator();
می‌تونید ببینید سیستم فعلی از کدوم استاندارد تبعیت می‌کنه.


ویکیپدیای text file هم می‌تونه جالب باشه
https://en.wikipedia.org/wiki/Text_file
با اضافه کردن
set whichwrap+=<,>,[,]
به vimrc می‌تونید کاری کنید که arrow key های راست و چپ، بعد از تموم شدن خط به اول خط بعدی (یا اخر خط قبلی) برن، درست مثل ادیتور‌های معمول‌تر :)

منطقا خودتون اگه نیاز داشته باشید می‌تونید سرچش کنید ولی گذاشتم اینجا چون پیدا کردنش خیلی اذیت کرد و نمی‌دونستم چی سرچ کنم. :)
چرا از scanf استفاده نکنیم و راهکار چیه؟

چرا استفاده نکنیم؟ چون اصولا کاربرد عمومی برای ورودی گرفتن از کاربر نداره و برای formatted input هست ولی ورودی کاربر آخرین چیزی که هست، فرمت شده‌است :)
و اینکه در برابر بافر اورفلو هم ایمن نیست.
راه حل؟ تقریبا مثل input پایتون، یه رشته با fgets بگیرید و اون رو دستی پارس کنید.

https://c-faq.com/stdio/scanfprobs.html
ابزار خوندن و ادیت epub
رابط کاربری واضحی هم داره و من که اولین بار کار میکردم تونستم فایل رو باز کنم و ببینم و زوم کنم و برم صفحه‌ی‌ بعد.
https://calibre-ebook.com/
یه سایته که توش به زبون های محتلف تمرین کدنویسی میکنید.
خودش تست میده و صورت سوال رو شفاف بیان میکنه
بعدم یه سری تست دیگه داره که از صحت برنامه مطمین بشین
اخرشم که حل کردین سولوشن های best practice و clever رو می‌گه.
می‌تونید ببینید حلتون به کدوم شبیه بوده. (یا به هیچ کدوم؟)
در نهایت بهترین گزینه‌ش اینه که ادیتوری که دارید همونجا کد بزنید vim و emacsئه :))
https://www.codewars.com
کلاس IntSummaryStatistics در جاوا
به طور خلاصه از یه مجموعه داده‌ی int، چهار پنج تا ویژگی رو نگه می‌داره و می‌تونید از اونا استفاده کنید.
عمدتا intStream رو به این تبدیل می‌کنند توی مواقعی که چند تا ترمینال ازش رو احتیاج داشته باشن.
مثلا هم count هم sum هم average
https://www.geeksforgeeks.org/java-util-intsummarystatistics-class-with-examples/


اینم سورس کدش، ساده و مفیده
https://github.com/streamsupport/streamsupport/blob/master/src/main/java/java8/util/IntSummaryStatistics.java
در مورد مراحل کامپایل شدن برنامه توسط gcc

مرحله اول: pre process
gcc -E HelloWorld.c -o HelloWorld_exp.c

مرحله دوم: تبدیل به اسمبلی
gcc -S HelloWorld_exp.c -o HelloWorld.s

مرحله سوم: تبدیل به object file
gcc -c HelloWorld_exp.c -o HelloWorld.o

مرحله چهارم: لینک کردن
(حالا چون یه آبجکت فایله دستورش چیز خاصی نداره ولی واقعا لینک میکنه و با کل کامپایل متفاوته)
gcc -o Output HelloWorld.o




https://medium.com/@meghamohan/everything-you-want-to-know-about-gcc-fa5805452f96

این ویدیو هم توصیه می‌شود:
https://www.youtube.com/watch?v=lrx5dcB_4Oo