قرعه کشی کتاب «مصائب من در حباب استارتاپ»

این کتاب رو برام فرستاده بودن و خوندم و بررسی کردم و بعدش هم گفتم که اگر کسی می‌خواد صاحب بعدی‌اش باشه که درخت کمتری قطع کرده باشیم و خوشحالی بیشتری هم تولید کرده باشیم، فرمی رو پر کنه و حالا فرم پر شده و وقت قرعه‌کشی است. فرم روی گوگل بود و من csvش رو دانلود کردم:

➜  /tmp wc -l book.csv 
115 book.csv

خب ۱۱۵ نفر شرکت کننده‌داریم پس نیازمند یه عدد رندم بین ۱ تا ۱۱۵ هستیم. چیزی که خیلی‌ها توش بش بهش برنخوردن، متغیر RANDOM$ است که به شما یه عدد رندم بین ۰ تا ۳۲۷۶۷ می‌ده. ما عددی بین ۱ تا ۱۱۵ نیاز داریم پس کافیه باقیمونده‌اش به ۱۱۵ رو بگیریم (که می شه عددی بین صفر تا ۱۱۴) و بعد یکی بهش اضافه کنیم. سه بار اجراش می‌کنم و سومین عدد رو برنده اعلام می‌کنم. اینطوری تا حدی مطمئن‌تر هستم که درست کار می‌کنه:


➜ /tmp echo $((1 + $RANDOM % 115))
89
➜ /tmp echo $((1 + $RANDOM % 115))
1
➜ /tmp echo $((1 + $RANDOM % 115))
73

نفر ۷۳ برنده است. اما کیه؟ خط ۷۳ فایل رو می‌بینیم:

➜  /tmp sed -n '73p' book.csv
11/21/2020 22:19:01,y,y,y,y
➜  /tmp sed -n '1p' book.csv
11/21/2020 13:03:55,وحید,vahid*****@gmail.com,8,در یوتیوب - Vahid ****

هاه نفر ۷۳ اطلاعات الکی پر کرده بود… نفر قبل رو چک کردم و برنده کتاب مصائب من در حباب استارتاپ، وحید است (: مبارک باشه. باهات تماس می‌گیرم برای آدرس.

درست کردن خودکار فهرست فایل های دایرکتوری

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

اگر نمی خواین ۱۲ دقیق ویدئو رو ببینین، خلاصه اش اینه که یک اسکریپت ساده به این شکل فایل اچ تی ام ال مورد نظر رو تولید می کنه :

#!/bin/sh

cd /home/jadi/public_html/audio/
echo "<html><body>" > index.html
echo "<ul>" >> index.html

for i in `ls *mp3 -tr`
do
    echo "<li>" >> index.html
    echo \<a href="$i"\>$i\</a\> >> index.html
    echo \</li\> >> index.html
done
echo "</ul>" >> index.html
echo "</body></html>" >> index.html

و کافیه این رو توی کرون بذاریم تا هر روز یکبار اجرا بشه:

07  12  *   *   *   /home/jadi/public_html/audio/makeindex.sh

و حالا می تونین مستقیم دایرکتوری http://jadi.net/audio رو ببینین؛ البته اگر شما هم می خواین دانلود کنین اجازه بدین یک کم زمان بگذره که همه با هم مشغول گرفتن اینهمه فایل نباشیم (:

بالاخره وقت خداحافظی از بش رسید، سلام زیشل

شل‌ها مهم هستن. اونها دستورات رو از شما می گیرن و خروجی‌ها رو به شما نشون می‌دن. معمولا سیاه هستن ولی می شه به هر رنگی درآوردشون. توی دنیا یکی از مشهورترین شل‌ها، بش است و من همیشه از Bash استفاده کردم که همه جا سازگاری حفظ بشه. شل‌های بهتر مثل ksh و غیره هم هستن ولی در نهایت بش برای من به خاطر اینکه همه جا حضور داشت، انتخاب اصلی بود. ولی دیگه نیست.

الان مدتی است که از zsh استفاده می‌کنم. خوبی اصلی زد اس اش برای من اینه که تا حد خیلی زیادی همون bash است با چند فیچر بهتر. مثلا توی تکمیل کردن دستورات با tab بسیار بهتر عمل می کنه می شه توش چیزها رو خلاصه‌تر نوشت. هیستوری توش راحتتر پیدا می شه و حتی می‌شه با تب، سوییچ ها رو دید. چیزی که بارها برای من توی بش پیش می‌امد این بود که دستور رو نصفه می‌نوشتم، می‌اومدم بیرون و سوییچ رو نگاه می‌کردم و بر می‌گشتم به دستور اما حالا به راحتی با زدن tab سوییچ‌ها دیده می‌شن.

این شل امکان تنظیمات زیادی داره ولی تقریبا بهترینشون برای شروع در پروژه ای به اسم oh my zsh جمع شده. برای اضافه کردن زیشل به سیستم و انتخاب اون به عنوان شل خودتون باید اول zsh رو نصب کنین، مثلا با یکی از دستورات زیر:

sudo apt install zsh #debian, Ubuntu, Ming
sudo yum install zsh #fedora, centos, redhat
sudo zypper install zsh #openSuse

و بعد فعال کردنش با چیزی مثل این که البته به جای جادی، اسم یوزر خودتون رو می‌زنین.

sudo usermod -s /usr/bin/zsh jadi

تنظیمات عالی «اوه مای زیشل» رو هم می‌تونین با این یک دستور نصب کنین:

sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"

و به قابلیت‌های جالبی مثل اینکه در یک دایرکتوری گیت برنچ دیده بشه یا یک فلش سبز یا قرمز به شما بگه دستور قبلی درست اجرا شده یا نه دست پیدا کنین.

نکته مکی: اگر مک دارین و از OSX استفاده می‌کنین، نصب زیشل بسیار توصیه می‌شه؛ به طور خاص به خاطر قدیمی بود بش توی مک.