بایگانی برچسب: s

تغییر فرمت کلی عکس با کامند لاین

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

➜  /mkdir /tmp/jpg2png
➜  /cd /tmp/jpg2png 
➜  jpg2png

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

find ~/Pictures -iname '*jpg'

کافیه کل خروجی ها رو به شکل رندم مرتب کنیم:

find ~/Pictures -iname '*jpg' | sort --random-sort

که البته چون روی مک هستیم که توش یکی تصمیم گرفته sort استاندارد گنو رو بیخیال بشه و یک سورت ناقص تحویلمون بده، باید از سورت گنو که با برو نصب شده استفاده کنم، یعنی:

find ~/Pictures -iname '*jpg' | gsort --random-sort

و اگر ده تا اولی رو پیدا کنیم، یعنی ده تا فایل اتفاقی از دایرکتوری عکس ها ریختم .. نه.. باید بریزیمش… پس می دیم به ایکس آرگز:

find ~/Pictures -iname '*jpg' | gsort --random-sort | head -10 | xargs -I files cp files .

و البته مک یک انگولک مسخره هم به xargs کرده ولی به هرحال کار می کنه. در واقع ظاهرا دیفالتش یک -L 1 داره! حالا ما ده تا فایل اتفاقی جی پگ داریم:

➜  jpg2png ls
33_ibm7291.jpg
IMG_0104.jpg
IMG_20140910_090542.jpg
IMG_20150101_144039.jpg
IMG_20150607_084842.jpg
IMG_20150617_210638.jpg
IMG_20150721_214643.jpg
JungfrauClimbers_EN-US11631578069_1366x768.jpg
MaracanaFireworks_EN-US9834580695_1366x768.jpg
dual_grass.jpg

حالا کافیه با استفاده از برنامه imagemagick که همیشه نصب داریمش (توی اوبونتو با apt install و در مک با brew install) بریم سراغ درست کردن یک دایرکتوری برای پی ان جی ها، و ساختن خروجی ها با یک حلقه فور که روی هر فایل یک دستور convert اجرا می‌کنه:

➜  mkdir pngs
➜  for file in *.jpg; do convert $file pngs/$file.png  ; done

و همه چیز مرتب شده:

➜  tree
zsh: command not found: tree
➜  brew install tree
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> New Formulae
exa             httpflow        jvm-mon         libetpan        terraform-docs
==> Updated Formulae
amazon-ecs-cli  g3log           lynis           paket           terraform
ats2-postiats   geoip           macvim          ponyc           todolist
aws-sdk-cpp     git-lfs         media-info      roswell         urh
awscli          github-release  mediaconch      rtv             uwsgi
clutter-gst     jenkins-lts     metabase        ruby@2.3        vim
convox          jfrog-cli-go    node ✔          scw             vnu
crystax-ndk     jmxtrans        opensc          sqlite ✔
fdroidserver    khal            osmfilter       swiftformat
fluent-bit      kobalt          osrm-backend    sysdig
==> Deleted Formulae
dwarf-fortress             fb-adb                     multirust

==> Downloading https://homebrew.bintray.com/bottles/tree-1.7.0.sierra.bottle.1.

curl: (7) Failed to connect to homebrew.bintray.com port 443: Operation timed out
Error: Failed to download resource "tree"
Download failed: https://homebrew.bintray.com/bottles/tree-1.7.0.sierra.bottle.1.tar.gz
Warning: Bottle installation failed: building from source.
==> Using the sandbox
==> Downloading http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz
######################################################################## 100.0%
==> make prefix=/usr/local/Cellar/tree/1.7.0 MANDIR=/usr/local/Cellar/tree/1.7.0
🍺  /usr/local/Cellar/tree/1.7.0: 8 files, 114.3KB, built in 5 seconds
➜  tree
.
├── 33_ibm7291.jpg
├── IMG_0104.jpg
├── IMG_20140910_090542.jpg
├── IMG_20150101_144039.jpg
├── IMG_20150607_084842.jpg
├── IMG_20150617_210638.jpg
├── IMG_20150721_214643.jpg
├── JungfrauClimbers_EN-US11631578069_1366x768.jpg
├── MaracanaFireworks_EN-US9834580695_1366x768.jpg
├── dual_grass.jpg
└── pngs
    ├── 33_ibm7291.jpg.png
    ├── IMG_0104.jpg.png
    ├── IMG_20140910_090542.jpg.png
    ├── IMG_20150101_144039.jpg.png
    ├── IMG_20150607_084842.jpg.png
    ├── IMG_20150617_210638.jpg.png
    ├── IMG_20150721_214643.jpg.png
    ├── JungfrauClimbers_EN-US11631578069_1366x768.jpg.png
    ├── MaracanaFireworks_EN-US9834580695_1366x768.jpg.png
    └── dual_grass.jpg.png

1 directory, 20 files

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

بررسی اجمالی مک بوک پروی ۲۰۱۵ از دید جادی

حوالی ۲۰۰۸ من یک مک بوک خریدم. از اون سفیدهای بانمک. الان متن اون نوشته به نظرم خیلی عجیب می یاد؛ و این خیلی خوبه. بعد از چند ماه روی اون مک بوک سفید لینوکس نصب کردم و برگشتم به دنیای دلچسب خودم. حالا هم بعد از ۸ سال، دوباره تقاطع زندگی من به یک مک بوک خورده. شرکت جدید کامپیوتر رسمی اش مک بوک است و منم یکی گرفته ام. مطمئنا یکی از اون سری ها که دگمه esc داره و خوشبختانه خروجی‌های استاندارد شامل HDMI.

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

فعلا تقریبا یک هفته دستم بوده و سعی کردم با کمتر غر زدن مثل یک اپلی ازش استفاده کنم. در دفاع ازش می تونم اینها رو بگم:

  • به هرحال ابزارهای گنو رو داره و در نتیجه می شه ازش استفاده کرد. چیزهایی مثل grep، ssh، pip و بقیه دوستاشون. همچنین جامعه بزرگی از برنامه نویس ها ازش استفاده می کنن و در نتیجه احساس تنهایی نمی کنین
  • کیفیت سخت افزار بسیار خوب به نظر می رسه. بدنه محکم، کیبورد راحت و جذابه و ترک پد و صفحه نمایش و حتی پورت ها با کیفیتی متفاوت از چیزهای دیگه (مثلا در مقایسه با ایسوس خودم)‌
  • عمر باتری بسیار خوبه که خب با توجه به وزن سنگین‌تر از مثلا همون ایسوس و هماهنگی کامل سخت افزار و نرم افزار دور از ذهن هم نیست
  • ایده های مثبتی داره مثلا امکان سینک کردن کلیپورد با گوشی اپلی؛ که البته اگر انتخابی بود بسیار بهتر بود

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

  • گفتم سخت افزارش خوبه؟ ال سی دی لنووهای من همه تا ۱۸۰ درجه بر می گشتن. این خیلی کمتر برمیگرده و تو خیلی کاربردها کافی نیست.
  • در نرم افزار به نظرم بسیار محدود هستیم. مثلا نه یک ادیتور به کیفیت ادیتور ساده و پیش فرض گنوم داره و نه یک ترمینال به کیفیت ترمینالی مثل ترمیناتور. برای ترمینال با iTerm2 میشه کار رو راه انداخت ولی برای ویرایشگر واقعا چیزی پیدا نکردم. پیش فرضش راست به چپ نمی شه وقتی فارسی می نویسم. هرچند بعضی ها می گن می شه… قلق داره؟ (:
  • دست شما برای کارهای ابتدایی هم بسیار محدوده. مثلا شورت کات اینکه با گرفتن کلید فلان و فلان، فلان برنامه باز بشه کجاست؟! یا مثلا منتقل کردن یک پنجره با صفحه کلید به یک اسپیس خاص. حتی کارهای بسیار ساده مثل کلیپ بورد منیجر یا منتقل کردن یک پنجره از یک مانیتور به مانیتور بعدی هم نیازمند نصب یکسری برنامه ریز و میز هستن که گاهی مثلا ۵ دلار هم پولشونه (:
  • مک او اس تن شکل کاربری شمار و محدود می کنه. شدیدا وابسته است به ماوس و گسچرهاش در حالی که من ترجیح می دم در حداقل موارد دستم رو از روی کیبورد بردارم.
  • ایده های عجیبی مثل اینکه اگر برنامه ای رو فول اسکرین کردین بره یک چیزی شبیه اسپیس بشه از کجا اومده؟ و به چه دردی می خوره؟ یک بازنشسته شاید تو خونه اش بخواد سافاری براش تبدیل به یک اسپیس مجزا بشه ولی من که تو لینوکس با ۹ تا اسپیس کار می کنم و اینجا چون نمی تونم ماتریسی بچینمشون با ۶ تا، اصلا علاقمند نیستم که وقتی ترمینال رو فول اسکرین می کنم تبدیل بشه به یک اسپیس اون آخر!
  • برای کسی که از دنیای لینوکس می یاد دانلود کردن برنامه از یک سایت و اجرا کردنش کاری بسیار عجیبه! آخه چرا؟! الان که سافتور سنتر رو کپی کردن خب حداقل همه برنامه های مهم رو بذارن توش. برای مای اسکوئل من واقعا باید با brew وارد ماجرا بشم (و لعنت به اون احمقی که raw.githubusercontent.com رو فیلتر کرده!)
  • یک فایل براوزر درست هم نداره! کلید enter که یعنی «ورود»، اسم فایل رو عوض می کنه و تولبار پایین نیست که نشون بده حجم فایل چقدره یا من کشف نکردم چطوری باید فایل های مخفی رو نشون داد! چه کاریه خب ((: PCManFM بسیار کاراتر از این مهمله
  • جنازه سنگین iTunes هنوز به سیستم وصله
  • تم و اینها که تقریبا نداره (: مرحوم اجازه داده بین گرافیت و آبی یکی رو انتخاب کنم (: من حداقل های لایت رو نارنجی کردم که احساس شخصی سازی کرده باشم. شایدم باید برای پشتش برچسب بخرم (:
  • دانگل وی جی ای من رو نمی شناسه و در نتیجه مونیتور وی جی ای خونه بلااستفاده است و ظاهرا باید یک مونیتور اچ دی ام آی برای خونه بخرم
  • توی داک نمی تونم مثل آدم با یه شورتکات یا کلیک یه برنامه رو در پنجره جدید در همین اسپیس باز کنم. اگر روی ترمینال کلیک کنم می ره توی اسپیسی که ترمینال باز هست، نشونش می ده. کف انتظار من اینه که بتونم مثلا کنترل کلیک کنم و یه پنجره جدید باز کنه نه اینکه رایت کلیک کنم، از تو منو انتخاب کنم که پنجره جدید می خوام (:
  • به خاطر نداشتن ایکس، میدل پیست کلیک رو نداریم. در لینوکس اگر چیزی رو سلکت کنیم و بعد میدل کلیک کنیم پیست می شه. در واقع دو تا حافظه برای کلیپبورد در لحظه هست که بسیار مفیده.
  • این دگمه شبدر گیج کننده است. گاهی برای کپی پیست شبدر و وی داریم گاهی کنترل و وی. یا مثلا تب های براوزر با کنترل چپ و راست می رن و جای دیگه با شبدر. چه برسه که از خود اپل کیبورد اکسترنال نخرین.
    -انیمیشن؟! اینهمه؟ فقط واقعا وابلی ویندو جاش خالیه (:
  • یکی از دم دست ترین و مفیدترین قابلیت ها اینه که من بتونم یه پنجره رو بالای بقیه پنجره ها نگه دارم…

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

  • Commander One که دارم سعی می کنم باهاش به مشکلات فایندر غلبه کنم و فایل هام رو تحت کنترل بگیرم
  • Copy Clip 2 که به عنوان کلیپ بورد منیجر کار می کنه
  • Spectacles که اجازه می ده یک کم پنجره ها تحت کنترل من باشن و مثلا بتونم از این مونیتور ببرمشون توی اون یکی مونیتور یا بگم نصف سمت راست فلان نمایشگر رو بگیره
  • iTerm2 که یک ترمینال است با امکاناتی بهتر از ترمینال استاندارد
  • HyperSwitch که وظیفه مهم آلت-تب زدن برای گشتن بین پنجره های اسپیسی که توش هستم رو فراهم می کنه

و مشکلات اصلی که هنوز حل نشدن اینها هستن که اگر براشون جواب داشته باشین خوشحال می شم:

  • یک ادیتور معقول متن محض که اگر توش فارسی نوشتن راست به چپ بشه و اگر انگلیسی نوشتم چپ به راست و حروف فارسی فارسی و نیم فاصله و اینها رو هم با هم قاطی پاتی نکنه. چیزی که در واقع به خاطر لایبری های معقول لینوکس، تمام برنامه ها دارنش. ساپورت فارسی مک از نظر من از ۸ سال پیش تقریبا هیچ پیشرفتی نکرده.
  • یک برنامه که بتونم باهاش ویدئوکست ضبط کنم! بتونم وبکم رو گوشه صفحه داشته باشم و صفحه و صدا رو هم ضبط کنه. دلیل اینکه پروژه بستون مدتی است پیش نرفته همینه!
  • یک برنامه یا روش یا هر چی که بتونم شورتکات رو به یکسری برنامه اساین کنم. مثلا بگم هر وقت شبدر-آلت-ای رو زدم، یه پنجره جدید ادیتور متن باز کن
  • روشی که بتونم یک پنجره رو با کیبورد به یک اسپیس دیگه منتقل کنم
  • روشی که بتونم بدون باز کردن منو، از داک پنجره جدیدی از یک برنامه باز کنم. مثلا کنترل کلیک کنم و یک ترمینال جدید باز بشه
  • بتونم یه پنجره رو روی پنجره های دیگه نگه دارم، حتی وقتی فعال نیست

همین!