گیک فارسی

نوشته های یک گیک فارسی از فعالیت ها ،‌ علاقه مندی ها و نقد هایش

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

نویسنده:
1 ژانویه 15

امروز یکم ژانویه ۲۰۱۵ میلادی هست و من سال نو میلادی را به همه هموطنان مسیحی کشورم تبریک میگم و امیدوارم سال بسیار خوبی را در پیش داشته باشند و فراموش نکنند که ایران با همه قومیت ها ، مذاهب و فرهنگ هاش زیبا و دوست داشتنیه.

سال میلادی ۲۰۱۵

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

۱. شاید یکی از شک آور ترین اتفاقات دنیای سورس باز مشکل امنیتی OpenSSL به نام Heartbleed بود که سایت‌های بسیاری را درگیر خودش کرد از جمله سایت خیلی از بانک های کشور خودمون و نشون داد فقط چون یک محصول سورس باز هست معنیش این نیست که امنه و حتماً باید توسط افراد متخصص بیشتری مورد بررسی قرار بگیره.

۲. همونطور که میدونیم GPL یا مجوز استفاده عمومی که کپی نرم‌افزار های رایگان را در چارچوب یکسری قوانین آزاد کرده یکی از شناخته ترین و پر استفاده ترین مجوز های حقوق کپی رایت هست. در سال ۲۰۱۳ شاهد بودیم که بیش از ۷۷ درصد از پروژه های GitHub بدون هیچ مجوزی به صورت رایگان منتشر شده‌اند و این روند در سال ۲۰۱۴ هم ادامه پیدا کرد که نتیجه‌ای جز بروز شکایات حقوق در بر نخواهد داشت.

۳. در سال ۲۰۱۴ همه منتظر حضور گوشی های هوشمند با سیستم عامل اوبونتو و کنسول بازی قدرت گرفته از موتور بازی Steam بودند که محقق نشد. گوشی های هوشمند اوبونتو در فوریه ۲۰۱۵ به بازر عرضه می‌شوند ولی گویا نباید انتظار عرضه کنسول های بازی Steam را در سال ۲۰۱۵ داشته باشیم.

۴. ساخت و انتشار نرم‌افزار های آزاد در سال ۲۰۱۴ رشد بسیار خوبی داشته. از پروژه های ابری مثل Docker و OpenStack گرفته تا نسخه سورس باز MySQL که توسط Facebook عرضه شده ، کد های متن باز پروژه های ناسا ، ویرایشگر Atom تحت مجوز MIT توسط GitHub ، ابزار Encrypt کردن ایمیل و موتور PDF مرورگر Chrome توسط گوگل و از همه شُک آور تر مربوط به سورس باز شدن Net. توسط مایکروسافت بود.

۵. در سالی که گذشت شاهد اولین قدم کشور انگلستان برای مهاجرت از MS Office به نرم‌افزار های سورس باز با اعلام کردن ODF به عنوان فرمت استاندارد اسناد بودیم. فرانسه هم به Open Government Partnership پیوست و شهر های ژنو ، تولوز و لس آنجلس گام های خوبی را در مهاجرت به سیستم‌ عامل ها و نرم‌افزار های سورس باز برداشتند.

۶. سخت‌افزار های باز هم از دو سال پیش با تولد Raspberry PI که تا الان ۲٫۵ میلیون قطعه در قالب Credit-Card Sized Computer ازش فروخته شده و امسال هم مدل +B عرضه شده و فعالیت‌های گسترده Kano و Arduino و غیره مژده آینده خوبی را برای Open Hardware میده.

۷. در آخر هم به سالگرد های مهم میپردازیم. امسال چهار سالگرد ده سالگی برای پروژه OpenStreetMap ، سرویس دهنده وب NGINX ، سیستم عامل محبوب Ubuntu و مرورگر خوب Firefox داشتیم که امیدوارم با قدرت بیشتر به کارشون ادامه بدهند. Creative Commons دوازده سالگیش را جشن گرفت و بنیاد نرم‌افزار آپاچی هم ۱۵ سال رهبری و نو آوری در جامعه سورس باز را گذراند.

رفع بسیاری از مشکلات مربوط به تفاوت‌های مرورگر ها در طراحی وب سایت

نویسنده:
30 نوامبر 14

یکی از اصلی‌ترین مشکلات و دردسر ها در طراحی وب سایت ، یکسان سازی نمایش وب سایت در مرورگر های مختلف است. جالب اینجاست که اکثر طراحان وب با خواندن مطلب تا به اینجا فوراً تفاوت‌های آشکار و غیر استاندارد IE (مخصوصاً نسخه های قدیمی تر از ۸) در ذهنشان نقش می‌گیرد. این در حالی است که حتی مرورگر های Firefox و Chrome نیز در خیلی از موارد تفاوت‌هایی را در نمایش المان‌های Html دارند.

این تفاوت‌ها از تنظیمات پیش فرضی ناشی می‌شود که تولید کنندگان آن‌ها برای محصول خود در نظر گرفته‌اند که مثلاً رنگ لینک ها در شرایط بازدید نشده و بازدید شده چه باشد و یا حاشیه های داخلی و بیرونی (Padding و Margin) برای المان هایی نظیر TD در TABLE و یا DIV یا LI و حتی خود BODY چه باشد. همین پیش‌فرض ها باعث می‌شود تا تغییراتی در اندازه و مکان المان های صفحه در هر مرورگر شاهد باشیم.

برای رفع این مشکل اصطلاحاً CSS را RESET میکنیم. مظنور از RESET کردن CSS این است که با کدهای CSS به عنوان اولین سند CSS در صفحه تمام این پیش‌فرض ها را خنثی کنیم. پس از خنثی شدن پیش‌فرض ها با وجود دستکاری های CSS بیشتری که متحمل می‌شویم در مقابل شاهد نمایش یکسانی از صفحه وب سایت خود در مرورگر های مختلف خواهیم بود.

یک نمونه کد CSS RESET که توسط Eric Meyer نوشته شده است :

html, body, div, span, applet, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,a, abbr, acronym, address, big, cite, code,del, dfn, em, img, ins, kbd, q, s, samp,small, strike, strong, sub, sup, tt, var,b, u, i, center,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary,time, mark, audio, video {        margin: 0;      padding: 0;     border: 0;      font-size: 100%;        font: inherit;  vertical-align: baseline;}/* HTML5 display-role reset for older browsers */article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {    display: block;}body {  line-height: 1;}ol, ul {        list-style: none;}blockquote, q {       quotes: none;}blockquote:before, blockquote:after,q:before, q:after {   content: '';    content: none;}table {  border-collapse: collapse;      border-spacing: 0;}

کدهای نمونه دیگری هم در سایت cssreset.com موجود است.

شما هم از گوگل کروم (Google Chrome) استفاده میکنید ؟

نویسنده:
24 اکتبر 14

من اولین باری که از netscape استفاده کردم به شدت علاقه‌مند شدم و سرعتش و کلاً فرمش برای من خیلی خیلی جالبتر از IE بود و اون زمان که اصلاً مورد اقبال عمومی نبود من ازش استفاده میکردم حتی پس از مدتی که توسعه netscape متوقف شد باز هم من ازش استفاده میکردم. وقتی متوجه شدم قراره موزیلا ، Firefox را بر پایه پروژه netscape شروع کنه و با اومدن اولین نسخه ها و بررسی که انجام دادم فوراً من را جذب خودش کرد و از اون روز تا حالا IE را مگر چک کردن درستی نمایش سایت‌های جدیدی که طراحی میکنم باز نکردم.

چند سال بعد بود که گوگل تصمیم به ارائه مرورگر Chrome کرد و من توی خبر ها و از طریق دوستان باهاش آشنا شدم اما کمبود Plugin ها و کلاً ظاهر خیلی سادش تا حالا هم من را نتونسته از Firefox به سمت خودش بکشونه. گوگل کروم واقعاً پیشرفت زیادی داشته و الان ۴۵ درصد کاربران اینترنت ازش استفاده میکنند که به شدت رقم قابل توجهی هستش.

اما جدا از موضوع سلیقه من کروم را به عنوان مرورگر دوم هم برای بررسی وضعیت نمایش سایت‌های جدید توی Webkit Engine و هم برای وبگردی برای برخی سایت‌ها از جمله google mail که نمیدونم چرا سرعتش توی Chrome از Firefox بیشتره استفاده میکنم. از حق هم نباید گذشت که مزایای قابل توجهی داره. اما من یک مشکل بزرگ با گوگل دارم و اون هم رفتار های ضد ایران و ایرانی هستش که گوگل از خودش نشون میده. همین الان اگه بخواین به خیلی خدمات گوگل دسترسی پیدا کنید متوجه پیغام خطایی مبنی بر اینکه شما در کشوری قرار دارین که گوگل نمیتونه به شما خدماتی بده مواجه میشین ! این نشون میده که گوگل آزادی دسترسی به نرم افزارش را برای همه به رسمیت نمیشناسه و به خاطر موضوعات سیاسی یا هر طرز فکر دیگه ای به خودش اجازه میده خدماتش را محدود کنه.

خوب این موضوع همیشه من را اذیت میکرد و حتی برای بروزرسانی Google Chrome از طریق مخزن رسمی گوگل (کروم توی مخازن ubuntu موجود نیست) هم مشکلات عجیب و گهگاه در رابطه با همین تحریم ها پیش میومد. داشتم در رابطه با گوگل مطلبی را میخوندم که متوجه شدم اصل گوگل کروم از یک پروژه سورس باز به نام کرومیوم (Chromium) میاد و گوگل با اعمال تغییراتی و بستن کدش دوباره اون را منتشر میکنه ! با کمی جستجو متوجه شدم که Chromium بر خلاف Chrome توی مخازن Ubuntu به مرور زمان به روز میشه و با توجه به سورس باز بودنش و مهمتر از همه اینکه کاری نداره من از کجای این دنیا هستم نظرم بهش جلب شد.

الان یک هفته‌ای هست که با گوگل کروم جایگزینش کردم و نسبتاً ازش راضی هستم و به شما هم پیشنهاد میکنم بجای Google Chrome از Chromium استفاده کنید.

مهاجرت به لینوکس | نرم‌افزار های مورد نیاز در توسعه وب

نویسنده:
24 جولای 14

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

حالا که اوبونتو را نصب کردیم و سرویس های مورد نیاز برای توسعه وب را راه اندازی و پیکربندی کردیم حالا نیاز داریم برای ساخت وب سایت از ابزار های گرافیکی و محیط توسعه و کدنویسی استفاده کنیم. توی محیط ویندوز قطعاً برای طراحی وب از ابزار Adobe Photoshop استفاده میکنیم که در محیط لینوکس به صورت Native نمیشه ازش استفاده کرد مگر اینکه از ابزار Wine استفاده کنید که اصلاً توصیه نمیکنم.(Wine برنامه ای هست که امکان اجرای نرم‌افزار های ویندوزی را در لینوکس فراهم میکنه) به جای Adobe Photoshop میتونید از Gimp استفاده کنید. گیمپ قطعاً در قامت فوتوشاپ نیست ولی برای طراحی صفحات وب هیچ کم و کسری نداره و حتی یکسری قابلیت‌هایی داره که حداقل من توی فوتوشاپ نمیدونستم که شاید دلیلش دم دستی تر بودن ابزار گیمپ باشه.

برای کدنویسی توی محیط ویندوز ابزار بسیار زیادی هست که اکثر برنامه نویسان وب از ++Notepad و Adobe Dream Weaver یا Zend Studio استفاده میکنند. از بین این سه محیط توسعه وب فقط Zend Studio برای لینوکس موجود هست و میشه ازش استفاده کرد. اما Zend کپی رایت داره و من حاضر نیستم به صورت کرک شده ازش استفاده کنم. من در ویندوز از DreamWeaver استفاده میکردم و ادیتور های خیلی ساده زیاد برام جالب نبودند. بالاخره بعد از بررسی های فراوان به این نتیجه رسیدم که Eclipse PDT (در‌ واقع Eclipse ی برای PHP پیکربندی و بهینه شده) بهترین انتخاب هست و واقعاً هم ازش راضی هستم. البته Eclipse برای Java کار ها هم محیط توسعه معروفی هست و توی ویندوز هم خیلی ازش استفاده میشه ولی تجربه من بر میگرده به اوبونتو که بسیار هم خوب و روان بود.

برای تست کردن هم که هم مرورگر Firefox و هم Chrome روی لینوکس موجود هستند ولی من ترجیح میدم از فایرفاکس استفاده کنم. برای کروم درگیری‌هایی با IP ایران وجود داره که من کلاً از خیرش گذشتم.

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