ترس از جنگ این روزها برای هممون هست و ما مهندسای کامپیوتر، نمیخوایم صنعتمون بخوابه، صنعتی که از جنس تکنولوژیه و بیشتر از همه چیز به اینترنت وابسته هست.
از اونجایی که بچههای فرانتاند برای توسعههاشون نیازمند طراحیهای فیگما هستند و فیگما رو نمیشه بدون اینترنت باز کرد پس قطعی اینترنت، یعنی توقف توسعه.
در نگاه اول ممکنه راهحلهایی مثل خروجی گرفتن pdf از طرحهای فیگما یا آپلود طرحها توی نرمافزارهای مشابه منطقی به نظر برسه اما هیچکدوم، امکانات فیگما مثل annotation رو در اختیار توسعهدهنده قرار نمیدن، پس به این سوال میرسیم که آیا واقعا راهی هست فیگما رو آفلاین اجرا کنیم؟ قراره در این مقاله به این سوال جواب بدیم!
قضیه از این قراره که وقتی صفحات مختلف فیگما رو باز میکنید، فیگما این صفحات رو توی مرورگر کش میکنه و نیاز نیست به هنگام جا به جا شدن بین صفحات دوباره اونها رو دانلود کنه. بنابراین اگه اینترنت رو قطع کنید، بازم میتونید آزادانه بین صفحات جا به جا بشین و به همهی امکانات دسترسی داشته باشین. همهی اینها تا زمانی هست که شما مرورگرتون رو نبندید یا صفحه رو رفرش نکنید. ما دنبال راهی بودیم که به نحوی از وضعیت فعلی مرورگر snapshot بگیریم و یه جوری بازیابیش کنیم. اما قضیه به این سادگیا نبود و راهحل آسونی برای ذخیره وضعیت مرورگر و بازیابیاش پیدا نکردیم.
اگه یه ماشین مجازی روی vmware داشته باشیم و ازش snapshot بگیریم چطور؟ این شدنیه! اما snapshot گرفتن از یه سیستمعامل با محیط گرافیکی حجم زیادی رو اشغال میکنه پس راهحل ما برای این مشکل Ubuntu 18.0.4 Server بود که خود سیستمعامل تنها حدود ۸۰۰ مگابایات حجم داره. قدم بعدی نصب یک X11 هست، با این کار میتونیم فقط صفحه مرورگر رو به صورت ریموت بهش دسترسی داشته باشیم بدون هیچ عنصر گرافیکی دیگهای. در نهایت بعد از نصب X11 کافیه با استفاده از یک VNC Client به مرورگر وصل بشیم و وارد فیگما بشیم و طرحهامون رو دونه به دونه لود کنیم بعدش از سیستمعامل یک Snapshot میگیریم و دیگه میتونیم بدون نیاز به اینترنت به طرحها دسترسی داشته باشیم!
دستورات:
sudo apt update
sudo apt install -y xvfb x11vnc openbox dbus-x11 xauth xfonts-base
sudo apt install firefox
sudo x11vnc -storepasswd
chmod 600 ~/.vnc/passwd
export DISPLAY=:1
Xvfb :1 -screen 0 1280x720x24 -nolisten tcp &
openbox &
firefox &
x11vnc \ -display :1 \ -rfbauth ~/.vnc/passwd \ -forever \ -shared \ -localhost \ -rfbport 5901
و بعد کافیه این پورت رو روی سیستم خودمون تونل کنیم تا بتونیم بهش وصل بشیم:
ssh -L 5901:127.0.0.1:5901 youruser@SERVER_IP
و در نهایت با نرمافزاری مثل RealVNCViewer و آدرس 127.0.0.1:5901 میتونیم صفحه فایرفاکس رو مشاهده کنیم و با فیگما کار کنیم. بعد از باز کردن صفحات مختلف از سیستمعامل Snapshot میگیریم. و بعد میتونیم فایلهاشو به کامپیوتر دیگهای انتقال بدیم تا اون هم بتونه از فیگما استفاده کنه.
در فرایند انتقال ممکنه بعد از بوت شدن سیستمعامل از روی Snapshot، آیپی سیستمعامل درست نباشه و میشه با دستور زیر مجدد از لینوکس بخوایم آیپی بگیره:
sudo netplan try
و این هم تصویر خروجی کار: دسترسی به فیگما بدون اینترنت!
