English RSS

آراز غلامی

در ستایش حقیقت

Gallery iPhone Coffee Cup

تجربه‌ای متفاوت، کنفرانس PHP استانبول ۲۰۱۸

یکشنبه، ۳۰ اردیبهشت ۱۳۹۷

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

کنفرانس در طی دو روز از طرف گروه کاربران PHP استانبول تو دانشگاه صنعتی استانبول (İTÜ) برگزار می‌شد که تا به‌حال کاردرستی‌شون رو چندبار اثبات کرده بودن. طوری که سال قبل خود سازنده PHP یکی از سخنرانان این رویداد بود.

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

کنفرانس با سخنرانی Gary Hockin شروع شد و بعد از اون به دو ترک پارالل Peak Games و Insider تقسیم شد که ارائه‌های اولی به انگلیسی و دومی به ترکی استانبولی بود. لیست ارائه‌ها به ترتیب زمانی:

روز اول، ترک Peak Games
Things I Wish I Knew When I Started Playing “Developer”?
What’s new in Xdebug?
Crafting Quality PHP Applications
Deep dive into Symfony 4 internals
Monitoring of Your PHP Applications
Introduction to PHP Extensions
Behat for characterization on tests

روز اول، ترک Insider
PHP Projelerinde Test, CI ve CD Süreçleri
Insider’da ayda 5 milyar Web Push bildirimini nasıl gönderiyoruz?
Temiz Kod Tasarımı
Son Trend Konteyner Teknolojileri ve Bulut Bilişim
XSS Zafiyetinin Oluşumunu Anlamak ve Tarayıcı Güvenliği
Front-end’in 1 saniyesi

روز دوم، ترک Peak Games
Testing the Untestable
Zero to Jenkins: Automatic builds + deploys
PostgreSQL is not your traditional SQL database
Don’t work for PHPCS, make PHPCS work for you
On Internationalization and Localization
Serve PHP Happily

روز اول، ترک Insider
Future Proof Frontend Coding: Decouple your dependencies
OWASP Proactive Controls
GraphQL: Yeni Nesil Uygulama Geliştirme Arayüzleri
Google Cloud ile mükemmel PHP API’leri geliştirin
PHP ile Defansif Programlama ve Statik Analiz
Bir Veri Analistinin Web Geliştirme Maceraları

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

قالب جدید سایت‌بلاگم، Notepad

پنجشنبه، ۲۷ اردیبهشت ۱۳۹۷

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

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

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

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

Notepad-Colorshceme

ترکیب رنگ قالب Notepad

تایپوگرافی: فونت‌آیکن‌ها

سه شنبه، ۴ اردیبهشت ۱۳۹۷

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

دو راهکار برای رفع این مشکل وجود داشت. تصاویر وکتورِ SVG یا فونت‌آیکن‌ها. مزایای فونت‌آیکن‌ها نسبت به SVG کاملا محرز هست و نیازی به توضیح اون نمی‌بینم. اما چیزی که باعث شد این پست رو بنویسم کشف سرویس Fontello بود که بهترین راهکار بود برای دو مشکل بزرگ فونت‌آیکن‌ها. حجم زیاد و تنوع کم.

سرویس Fontello مجموعه‌های مختلفی از فونت‌آیکن‌های آزاد رو جمع کرده و به شما این امکان رو میده که تنها آیکن‌هایی که نیاز دارید رو از این کلکسیون متنوع این مجموعه انتخاب کنید و تنها همون‌ها رو در پروژه‌تون لود کنید نه صدها آیکن اضافی بلااستفاده رو.

دسترسی به Fontello

در عناد با مصرف‌گرایی در برنامه‌نویسی

دوشنبه، ۳ اردیبهشت ۱۳۹۷

صدها پروژه‌ی نیمه تمام با ابزارها و فریم ورک‌ها و تموم‌نشدنی که هر روز ده‌ها عدد از اون‌ها تولید میشن و هر نفر باید روزانه اندازه ۲۰ نفر وقت بذاره تا همه‌شون رو یاد بگیره بدجوری من رو خسته کرده. خسته از این ابزارهای تموم‌نشدنی که هرکسی مدعیه استاندارد کارمون فلان ابزار و بهمان فریم‌ورکه و من توسعه‌دهنده و برنامه‌نویس باید نصف بیشتر روزم رو صرف یادگیری این ابزارهای مفید و غیرمفید کنم.

الان بیشتر از یک هفته‌ست که دارم روی پروژه‌ای کار می‌کنم که در حین‌ش هم می‌خواستم عقب‌موندنم در دنیای جاوااسکریپت رو جبران کنم و با گذشت یک هفته پروژه درصدی پیشرفت نداشته ولی من با ده‌ها ابزار و کتاب‌خونه جدید آشنا شدم که مطمئن نیستم بعد از این دوباره اسم‌شون رو خواهم شنید یا نه.

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

بنظرم باید این مسئله رو به شکل رادیکالی تموم کرد. نباید فقط با ابزارها درگیر بود. ابزارها اسمشون روشه. ابزار. برای انجام کاری. اگه این ابزار کار من رو ۱ درصد سریعتر انجام میده ولی من باید دو هفته وقت بذارم تا یاد بگیرم این ابزار رو به‌نظرم چندان هم عاقلانه نیست استفاده ازش. این عقیده هم که باید این ابزار رو یاد بگیرم تا در شرکت یا گروهی قراره همکاری کنم به‌روز باشم هم عقیده‌ی تباهیه. این وظیفه اون شرکت/گروه هست که ابزارهای مورد استفاده‌شون رو برای من توضیح و یاد بده. وظیفه من برنامه‌نویس بلد بودن چیزهای اصلی و نحوه حل کردن مشکلاتی هست که ممکنه برام پیش بیاد.

 

صدای تو از «آن» و از جاودان می‌سراید

چهارشنبه، ۲۹ فروردین ۱۳۹۷

مطلبی که امیر مهرانی در وبلاگش نوشته از اولین کامپیوترش، من رو پرت کرد به دوران کودکیم و ماجرای خریدن اولین کامپیوتر خودم.

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

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

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

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

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

سی‌پی‌یو ۱.۶ گیگاهرتزی، رم ۱۲۸ مگابایتی،کارت گرافیکی ۱۶ مگابایتی و هارد ۲۰ گیگابایتی به همراه سیستم‌عامل ویندوز ۹۸ اولین ابزار من برای ورود به این دنیا بود. سرعت یادگیریم به حدی بود که دو هفته بعد داشتم برای دوستم ویندوز نصب می‌کردم و دو ماه بعد به کل مجموعه آفیس مسلط بودم. Visual Basic 6 و Turbo C هم که اولین محیط‌های برنامه‌نویسیم بودن.  یادش بخیر.

کار: طراحی و برنامه‌نویسی وب رو از کجا شروع کنم؟

جمعه، ۲۷ بهمن ۱۳۹۶

دوستم بهم ایمیل داده بود که:

سلام آراز
از فالورای توییترت هستم.میخواستم در مورد یه چیزی ازت کمک بگیرم.ممنون میشم راهنماییم کنی.
من […] تو‌ ترکیه میخوام منبع درامدی داشته باشم  و با توجه به علاقه‌م، طراحی وب رو انتخاب کردم. البته نمیخوام به صورت کاملا حرفه‌ای وارد این کار بشم. همین که کد نویسی بلد باشم و بتونم تو پروژه‌ها مشارکت کنم و یه پولی در بیارم واسم کافیه ولی اصلا نمیدونم چیکار کنم. از کجا شروع کنم.چه زبانی انتخاب کنم.و یا اصلا کاری که میخوام انجام بدم به نظرت منطقی میاد؟
ممنون میشم راهنمایی کنی.

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

ادامه‌ش را بخوانید

قالب آزاد Rebellion برای WordPress

چهارشنبه، ۲۰ دی ۱۳۹۶

مدتی پیش تصمیم گرفتم قالبی که برای سایت‌بلاگم ساخته بودم کمی سروسامون بدم و به شکل آزاد منتشرش کنم. اسمی که براش انتخاب کردم Rebellion هست. رنگ‌ولعابش قرمز تیره هست ولی به راحتی قابل تغییره در Sass. بطور پیوسته دارم بروزرسانی‌ش می‌کنم و درحال تامین مواردی هستم که برای ثبت قالب در WordPress.org هست. این پروژه یکی از عجیب‌ترین و پیچیده‌ترین طراحی‌هام بود چون می‌خواستم ساختار راست‌به‌چپ رو بطور همزمان پشتیبانی کنه. بعضی از چالش‌هاش حداقل برای من اولین‌بار بود که مطرح می‌شدن. بهرترتیب، این شما و این Rebellion.

ویژگی‌ها:

  • طراحی مینیمال، مدرن و واکنش‌گرا
  • تایپوگرافی مناسب برای هردو چینش rtl و ltr
  • حداقل حجم و حداقل درخواست از سرور
  • صفحه تنظیمات برای شخصی‌سازی آسان

لیست کارها برای انجام:

    • ارائه اختیارات بیشتر در صفحه تنظیمات
    • استخراج توابع استفاده شده به شکل پلاگین
    • نمایش مناسب «ارسال دیدگاه» بسته به زبان نوشته

دریافت/مشارکت در گیت‌هاب نسخه یک قالب Rebellion در گیت‌هاب

آراز غلامی

ماده ۵۰۸، چیزی که در وب ایران فراموش شده‌است

چهارشنبه، ۳ آبان ۱۳۹۶

مفاد اصلی ماده ۵۰۸ برای تسهیل‌سازی دسترسی به محصولات نرم‌افزاری برای افراد کم‌توان و ناتوان جسمی.

a. A text equivalent for every non-text element shall be provided (e.g., via “alt”, “longdesc”, or in element content).
b. Equivalent alternatives for any multimedia presentation shall be synchronized with the presentation.
c. Web pages shall be designed so that all information conveyed with color is also available without color, for example from context or markup.
d. Documents shall be organized so they are readable without requiring an associated style sheet.
e. Redundant text links shall be provided for each active region of a server-side image map.
f. Client-side image maps shall be provided instead of server-side image maps except where the regions cannot be defined with an available geometric shape.
g. Row and column headers shall be identified for data tables.
h. Markup shall be used to associate data cells and header cells for data tables that have two or more logical levels of row or column headers.
i. Frames shall be titled with text that facilitates frame identification and navigation.
j. Pages shall be designed to avoid causing the screen to flicker with a frequency greater than 2 Hz and lower than 55 Hz.
k. text-only page, with equivalent information or functionality, shall be provided to make a web site comply with the provisions of this part, when compliance cannot be accomplished in any other way. The content of the text-only page shall be updated whenever the primary page changes.
l. When pages utilize scripting languages to display content, or to create interface elements, the information provided by the script shall be identified with functional text that can be read by assistive technology.
m. When a web page requires that an applet, plug-in or other application be present on the client system to interpret page content, the page must provide a link to a plug-in or applet that complies with §۱۱۹۴.۲۱(a) through (l).
n. When electronic forms are designed to be completed on-line, the form shall allow people using assistive technology to access the information, field elements, and functionality required for completion and submission of the form, including all directions and cues.
o. A method shall be provided that permits users to skip repetitive navigation links.
p. When a timed response is required, the user shall be alerted and given sufficient time to indicate more time is required.

منبع: GigaLaw

رفع مشکل ارتباط با مخازن پکیج روبی

سه شنبه، ۲۶ آبان ۱۳۹۴

اگه تو روزهای اخیر شما هم مشکل برقراری ارتباط با مخازن Gem (مدیریت پکیج‌های روبی) داشتید بخاطر محدودیت‌های https هست. کافیه پیش‌فرض مخازن رو تغییر بدید به http تا دوباره ارتباط برقرار بشه. برای این‌کار دستور زیر رو در ترمینال‌تون وارد کنید:

gem source -r https[rubygem]
gem source -a http[rubygem]

روزی برای برنامه‌نویس‌ها

یکشنبه، ۹ آذر ۱۳۹۳

زیر کاپوت بیشتر چیزهایی که روزانه با اون‌ها سروکار داریم ردپایی از تلفیق هنر و خلاقیت و منطق دیده میشه. رد پایی که متعلق به برنامه‌نویس‌هاست. چه خوب که یک روز از سال به برنامه‌نویس‌ها اختصاص داده بشه تا ارزش بودنشون و کارهاشون بیش‌ازپیش شناخته بشه. ۲۵۶ـمین روز سال که آخرین توان ۲ هست که در تقویم موجود هست و می‌دونین که توان ۲ برای برنامه‌نویس‌ها بسیار با ارزشه. در همین جهت گروه جلسات باز نرم‌افزاری تبریز کمپینی تشکیل داده برای ثبت این روز در تقویم ملی. در صورتی که علاقه‌مند به مشارکت و امضا هستین برید به این  وب‌سایت و مشخصات‌تون رو وارد کنید.

بروزرسانی:
اولین جشن روز برنامه‌نویس ایران امروز ۳۰ نوامبر ۲۰۱۴ (۱۰ آذر ۱۳۹۳) بطور همزمان در تبریز (کافه پارادیس) و ساری (کافه نو) ساعت ۱۷ برگزار میشه. حضور برای همه علاقه‌مندان آزاد هست و با تخفیف ویژه در منوی کافه.

بروزرسانی:
روزنامه شرق حمایت کرده از ثبت این روز. ممنونیم ازشون.

Nazar Amulet