تلاش‌های من برای خروجی epub گرفتن از کتاب Competitive Programmer’s Handbook

پیش‌نوشت: این نوشته به ندرت با تلاش‌های دیگه‌ی من به‌روزرسانی می‌شه. در حال حاضر فقط لیست تلاش‌های ناموفقم رو این‌جا می‌ذارم و به زودی نوشته رو کم‌کم به روزرسانی می‌کنم.


بعد از خوندن Things to Make and Do in the Fourth Dimension تصمیم گرفتم برای بیشتر آشنا شدن با مباحث درس الگوریتم‌مون بجای خوندن کتاب مرجعش کتاب Competitive Programmer’s Handbook که جادی معرفی کرده بود رو بخونم ولی فهمیدم که نسخه‌ی epub یا mobi برای مطالعه توی کیندل نداره و فقط نسخه‌ی PDFش منتشر شده. تصمیم گرفتم تلاش کنم و از فایل‌های tex برنامه خروجی بگیرم.

اول از همه توی صفحه‌ی گیت‌هاب اون مخزن رو توی Github Desktopم باز کردم. اگه دوست ندارید با ابزار گرافیکی کار کنید این کار من با اجرای دستور git clone https://github.com/pllk/cphb.git یکیه. توی ویندوز هم می‌تونید با choco install git گیت و CLIش رو روی سیستم خودتون نصب کنید. (به این شرط که سیستم مدیریت برنامه‌ی chocolatey رو نصب داشته باشید – نصبش پیشنهاد می‌شه و برای نصب ابزارهای مورد نیاز این‌جا هم می‌شه ازش استفاده کرد)

اولین جست‌وجو منو به برنامه‌ی pandoc رسوند. بنابراین توی فولدری که کلون کرده بودم رفتم و دستور pandoc book.tex -t epub -o book.epub رو اجرا کردم (قبلش choco install pandoc) و چند صفحه‌ی اول کتاب توی calibre epub viewer به نظر خوب میومد. برای همین کامیتش کردم و پول ریکوئست رو فرستادم و فایل رو هم توی کیندلم فرستادم که بخونمش.

موقع خوندن متوجه شدم که فرمول‌های ریاضی به شکل خیلی بدی نمایش داده می‌شن. مثلن

توی فایل epub:

توی فایل PDF:

یا مثلن توی فایل epub:

 توی فایل PDF:

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

 چیزهایی که امتحان کردم و جواب ندادن تا الان این‌ها بودن:

  • خروجی گرفتن با epub3 با دستور pandoc book.tex -t epub3 -o book.epub و تستش توی calibre viewer که چون کالیبره از کتاب‌خونه‌ی MathJax موقع نمایش کتاب استفاده می‌کنه، خروجیش با خروجی کیندل یا Edge یکی نیست.
  • ایده‌م اینه که باید یجوری به پنداک بفهمونم که فرمول‌های ریاضی رو به عکس تبدیل کن به جای MathMl ولی موفق نشدم هنوز.
  • از --webtex هم استفاده کردم ولی به خاطر محدودیت اینترنت توی خونه خیلی کند بود و توی سرور هم به دلایل نامعلوم پروسه وسطش کیل می‌شد که هنوز فرصت نکردم بررسیش کنم ببینم چرا این‌جوری می‌شه.
  • مشکلم با خروجی html گرفتن و تبدیلش توی کالیبره اینه که مطمئن نیستم بتونه فهرست رو درست تبدیل کنه. ولی فرصت نکردم امتحانش کنم.
  • فیلتر pandoc-eqnos رو با دستور --filter pandoc-eqnos تست کردم ولی تستش بیهوده و بی‌دلیل بود 🙂 در واقع شانسمو امتحان کردم صرفن
  • یک‌سری تست بیهوده‌ی دیگه هم داشتم با دستور --mathjax و --self-contained ولی به نتیجه‌ای نرسید.

در نهایت به یک‌سری لینک رسیدم که هنوز فرصت نشده بررسی‌شون کنم و برای مراجعه‌ی آینده این‌جا می‌ذارم

اگه نظر یا راه‌حلی دارید خوشحالم می‌شم باهام در میون بذاریدش 🙂


پی‌نوشت: در حین نوشتن به تاریخچه‌ی دستوراتی که توی پاورشل اجرا کرده بودم نیاز پیدا کردم. در کمال تعجب فهمیدم دستور get-history کار نمی‌کنه. (در واقع صرفن تاریخچه‌ی دستورات همون پنجره‌ی پاورشل رو بر می‌گردونه که به دردم نمی‌خورد) ولی Arrow Keyها (کلید بالا و پایین) کار می‌کنن و دستورات قبلی رو میارن. این‌جا فهمیدم که توی ویندوز ۱۰ تاریخچه توی فایل C:\Users\username\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt ذخیره می‌شه.

چرا و چجوری کتاب می‌خونم

امروز یکی از دوستام پرسید که واقعن به تعداد آپدیت‌هایی که توی گودریدز می‌ذارم کتاب می‌خونم؟ جوابم اینه که آره. و سوال دوستم بهانه‌ی خوبیه که بگم چرا و چجوری کتاب می‌خونم.

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


در مورد رمان‌ها هم مساله تقریبن مشابهه. رمان‌ها معمولن هم در غالب داستان یک‌سری حرف برای گفتن دارن و بخشی از جذابیت‌شون برای من حرف‌هاییه که می‌خوان بزنن (مثل ابله که قبلن در موردش نوشتم). بخش دیگه‌ش هم شکلیه که داستان توش جلو می‌ره و این هم می‌تونه جذاب باشه برام. ولی مدتیه که با کتابی که به شکل به‌یادموندنی از داستانش لذت ببرم روبرو نشدم. فکر می‌کنم آخرین کتابی که خوندم (و داستانش جالب بود ولی حرفی برای گفتن نداشت) ما دروغگو بودیم بود که تقریبن پارسال خوندمش.

در مورد ابله

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

این دفعه ترجمه‌ی سروش حبیبی رو خوندم و ترجمه‌ی خیلی روانی داشت که باعث می‌شد آدم بیشتر بتونه با جزئیات داستان درگیر بشه (در مقایسه با وقتی که نچسبی ترجمه آدم رو اذیت می‌کنه یا حادتر از اون برای آدمی مثل من که اشتباهات املایی، نگارشی و ترجمه‌ای گاهی توجهم رو به خودشون جلب می‌کنن و آزاردهنده می‌شن). و به نظرم اگه فقط ترجمه‌ی مشفق همدانی در دسترسه نخوندن کتاب خیلی بهتر از خوندنشه.

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

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

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

دلتنگی موراکامی

فکر می‌کنم مهدی غبرایی توی مقدمه‌ی ترجمه‌ی «کافکا در کرانه» از واژه‌ی «فقدان» استفاده کرده بود ولی من دلتنگی رو ترجیح می‌دم. فقدان رو دوست ندارم ولی فکر می‌کنم دلتنگی هم نمی‌تونه توصیف‌کننده‌ی خلأ‌ای باشه که بعد از خوندن اثار موراکامی توی دل آدم می‌مونه. به هر حال دلتنگی رو بیشتر دوست دارم.

و حالا من موندم و خلأِ جنگل نروژی و تمایل به خیره شدن به دیوار خالی و جوش و خروش و تلاش بی‌نتیجه‌ی روحم برای پر کردن اون جای خالی…

داستان کیندلم و چرا امسال می‌خوام یک‌سری از کتاب‌های اشعار رو بخرم

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

مطمئن نیستم دلیلش چیه، شاید به این مربوطه که با یه ضربه همه‌ش رو توی گوشی یا لپتاپم میارم و تبدیل می‌شه به یه آیکون توی اپ‌لیست طولانی (یا یه کاشی توی استارت منوم) که ایگنور کردنش راحت‌تر از کتاب‌های نخونده توی کتاب‌خونه‌ست که هر از چندگاهی به آدم چشمک می‌زنن.

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

برای همین همیشه تبلت‌ها برام جذاب بودن چون تبلت وسیله‌ایه که آدم خیلی راحت‌تر می‌تونه باهاش کتاب بخونه و می‌شه همه جا با خودش ببردش (مثلن یبار توی پایتخت با مهدی یه تبلت Dell ارزون قیمت ۸ اینچی دیدیم و تنها با همین فکر که چقدر به درد کتاب خوندن می‌خوره به فکر خریدنش بودم. با این حال این فکر یهویی خیلی زود هم ناپدید شد)

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

با کتاب‌خوان‌ها از دوران دبیرستان آشنایی کوچیکی داشتم. یه متن توی یکی از کتاب‌های آموزشی کانون زبان، کتاب‌خوانی که محمد داشت، (و کتاب‌خوان دیگه‌ای که بعدش گرفت که LCD داشت و تکنولوژی E-Ink نداشت) و کتاب‌خوان فرید ولی هیچ‌وقت به عنوان یه گزینه‌ی خوب در نظر نگرفته بودم‌شون تا این‌که پارسال نوشته‌ی جادی راجع به کیندل‌ش رو خوندم و واقعن جذبش شدم. و این‌جوری شد که تقریبن هفت ماه بعدش کیندل پیپروایت سفید رنگمو خریدم 🙂 و تا الان ازش خیلی راضی بودم.

نکته‌ای که باید بهش توجه کرد اینه که من از قبلش کتاب‌های کاغذی رو می‌خوندم و کیندل باعث نشد کتاب‌خون بشم، بلکه کمکم کرد بتونم حوزه‌ی خیلی وسیع‌تری از کتاب‌ها رو بخونم و ازشون لذت ببرم و به خاطر این مساله خیلی خوشحالم.

در مورد کتاب‌های شعر هم داستان مشابه همینه. فکر کنم دو سالی می‌شه مهدی گنجینه رو نوشته و روی کامپیوترم نصبش دارم (البته نه همیشه. مثلن الان هنوز نصبش نکردم بعد از چند وقت پیش که ویندوزم رو عوض کردم ??) ولی جز «اهل کاشانم» سهراب و شاید یکی دو تا شعر دیگه سراغ چیزهای دیگه‌ای نرفتم.

برای همین توی نمایشگاه کتاب امسال احتمالن کتاب‌های شعر (شاید اخوان و سهراب و فروغ و شاهنامه به همراه جلد اول نامه‌ی باستان) سهم بیشتری توی خریدم داشته باشن و بقیه‌ش رو هم یک‌سری رمان کلاسیک مثل ابله داستایوفسکی (که ترجمه‌ی قدیمی‌ای از اون رو خوندم و برام لذت‌بخش نبود و به پیشنهاد دوست کتاب‌خونم می‌خوام ترجمه‌ی به‌روزتری ازش رو بخونم) یا جنایات و مکافات و یک‌سری رمان که اسم شناخته‌شده‌تری دارن باشه. و بخش دیگه‌ایش هم به کتاب‌هایی تعلق می‌گیره که در حین بازدید از غرفه‌ها توجهم رو به خودشون جلب می‌کنن..

در مورد کتاب Soft Skills

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

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

این کتاب برای برنامه‌نویس‌ها نوشته شده، رهنمودی که حاصل تجربه‌ی نویسنده‌شه و از بخش‌های مختلفی تشکیل شده که در مورد کار، بهره‌وری، مدیریت مالی، ورزش، تغذیه و روح توش حرف می‌زنه و حرف‌های خوبی برای من داشت. من فصل‌هایی ازش رو بوکمارک کردم که حتمن حتمن سر بزنم بهشون و احتمالن قراره برداشتم از هر یک یا چند فصلش تبدیل به یه نوشته‌ی وبلاگ بشه.

تا اون موقع می‌تونید نوشته‌ی پرهام رو بخونید و به بخش آخر پادکست جادی گوش بدید 😀