پست‌ها

آپدیت نشدن View و ثابت ماندن مقدار فیلد Input در Angular

امروز تو جلسات باز تبریز در مورد Angular بحث می‌کردیم که از دوستان سؤالی داشتن راجع به تغییر view و آپدیت شدنش تو input و جاهایی که استفاده شده بود و یه همچین چیزی بود :)
واسه تستش هم مقدار مدلمون رو تو همون view برابر یه مقداری کردیم که متأسفانه وقتی مقدار input رو تغییر می دادیم هیچ اتفاقی نمی افتاد! در حقیقت دلیل اینکه می‌خواستیم input رو تغییر بدیم این بود که مقدار مدلمون تغییر کنه و view هم آپدیت بشه.
متأسفانه نشد و سؤال به این روش بی جواب موند!
واسه تست این موضوع که آیا واقعا مقدار آپدیت نمی شه یه کد کوچولو موچولویی نوشتم که خوب، جوابمو گرفتم.
البته قبلش هم یه سری تصورات مبنی بر اینکه آپدیت می شه ولی وقت نمایش مقداری که مستقیم در view ست شده دوباره اعمال می شه که باعث می شه مقدار جدید نادیده گرفته شه و همان مقداری که مستقیم ست شده بود در نظر گرفته شه تو کلم بود و فقط باید تست می شدن (البته راه خونه همراه سعید جان به این نتیجه رسیدیم)
و از طرفی چون با two-way data binding طرف هستیم مقدار مدلی که در view تغییر می‌کرد و هم در بقیه قسمت‌ها که از مدل استفاده شده بود هم طبیعتاً باید تغییر م…

View Helper ها در زند فریمورک ۲

یه توضیح کوچولو View helper ها به زبون خودم، یه سری کد هستند که از طریق تمپلیت و layout ها قابل دسترسی هستند و می شه باهاشون مثل متدی باهاشون رفتار کرد و از طریقشون یه سری کارها رو داخل تمپلیت ها انجام داد.
به تعریف دیگه ای، می شه گفت یه سری کد reusable دارید که می‌خوایید ازشون تو تمپلیت هاتون استفاده کنید و نمی خوایید هربار از طریق کنترلرتون به تمپلیت ٓتون تزریق کنیدکه در این صورت می شه براش یه view helper یا به نوعی کلاس مجزایی نوشت و ازش در هر تمپلیت ای استفاده کرد.
خود زند یه سری view helper ها واسه راه انداختن سریع کارها تو خودش داره مثل url و escapehtml و … . اما گاهی اوقات پیش می یاد که این view helper های موجود به کارمون نمی یاد و نیازه که خودمون یه سری کد و منطق رو بتونیم از طریق تمپلیت هامون بهشون دسترسی داشته باشیم و استفاده کنیم.
در این‌گونه موارد، می شه view helper مخصوص کاری که لازم داریم رو ایجاد کرد.

شروع کار برای ایجاد view helper تو zf2 چند راه وجود داره که، یه سری شون رو که اکثراً به کار می یان رو تو این مطلب می نویسم.
ابتدا یه کلاسی ایجاد می‌کنیم و منطقمون یا کدمون واسه ک…

مدیریت مخارج، برنامه‌ای برای اندروید

تصویر
نمی دونم از کجا شروع کنم! شما می دونین بگین خوب؟ :)
یه مدتی می‌شه واسه خودم محدودیتی گذاشتم که فلان قدر بیشتر تو یه ماه خرج نکنم، یعنی به نوعی خرج و مخارجمو کنترل کنم که الکی پول‌های نداشتمو هدر ندم و در کنارش هم می شه گفت پس اندازی بتونم واسه خودم جمع کنم.
واسه این کار تو یه برنامه معمولی نوت برداری تو گوشی کارامو انجام می‌دادم که خیلی اذیت کننده بود.
یکیش اینکه هر بار باید لیست رو باز می‌کردم و به انتهای صفحه می‌رفتم که خوب کمی وقت تلف می کنه، بعد یه ماشین حساب نیازه که بخاطر تنبلیم مخم رو به کار نگیره خیلی :) و بعدم نوشتن جملاتی که برخیش هر بار تکرای هست و حساب مقدار باقیمانده.
از طرف دیگه، یادگیری اندروید هم یه مدتی بود به کلم زده بود، با اینکه سعی می‌کنم از این شاخه به اون شاخه نپرم، ولی خوب نمی شه ظاهراً :)، این شد که زدم این برنامه رو نوشتم که بیشتر استفاده شخصی داره و مشکلات بالارو به نوعی واسم حل می کنه و از طرف دیگه ای هم شروع یادگیری اندروید با یه پروژه شد واسم.
سورس کد، بصورت free و open source تو گیتهاب هست واسه کسانی که حوصله ور رفتن با کد دیگرون و اینکه ایرادی از این کدها بگ…

نادیده گرفتن فایل‌ها به صورت سراسری در Git

اگه با Source version control کار کرده باشید حتماً واستون پیش اومده که نخوایید فایل یا لیستی از فایل‌هایی رو به مخزنتون اضافه کنید. حالا یا فایل‌های حساسی هستن مثل اطلاعات دیتابیس، ایمیل یا … و یا اینکه هیچ گونه نقش تو پروژه ندارن و فقط داخل پروژه قرار گرفتن، مثل فایل‌هایی که ویرایشگرهای خاصی مثل Sublime text ایجاد می کنه و یا IDE ها هم همینطور.
برای اینکه این فایل‌های رو به مخزن اضافه نکنیم معمولاً یا اسم فایل‌ها رو در فایل ای به اسم .gitignore قرار می دیم و یا یا داخل .git/info/exclude و به این طریق مشکلمون هم حل می شه.
ولی موضوعی که هست، اینه که اینگونه فایل‌ها رو مجبوریم واسه هر پروژه ignore کنیم که به مخزن اضافه نشن و در اصل یه کار تکراری می شه.
برای حل این موضوع هم می شه فایل سراسری (global) واسه این کار تعیین کرد و مشخصات فایل‌هایی که واسه هر پروژه ignore شون می‌کنیم رو درش قرار بدیم.
تو لینوکس/گنو من یه فایل ای به همون اسم .gitignore داخل پوشه home ام ایجاد می‌کنم و این فایل رو توسط دستور زیر می تونم به git بشناسونمش که زحمت ignore کردن فایل‌ها رو واسه هر پروژه واسم بکشه: git confi…

تعریف alias برای view helper در فریمورک زند ۲

واسه چند زبونه بودم سایت تو زندفرویمورک ۲ می شه از لایبرری I18n و Translator اش استفاده کرد که بطور پیش‌فرض تو ماژول Application تنظیم شده و می شه با استفاده از view helper ای که داره و از طریق متد translator ازش برای ترجمه متون استفاده کرد.
متأسفانه همینطور که اطلاع دارید، گاهی تعداد متونی یا کلماتی که ممکنه تو یه صفحه‌ای باشه زیاد می شن و تایپ کلمه translator واسه همشون هم خسته‌کننده هست و هم اینکه الکی صفحه رو شلوغ پلوغ می کنه :).
مهمتر از همشون، واسه افراد تنبلی مثل من بسیار بسیار آزار‌دهنده هستن D:
از اونجایی هم که من اطلاع دارم تو خود gettext از underline (_) واسه ترجمه استفاده می شه که نمی دونم چرا اینجا اینطوری نیست، شاید واسه خوانایی یا هر چی که باشه، متأسفانه به مزاج من خوش نمی یاد و آزار‌دهنده هستش واسم.
واسه حل این موضوع یه راهی که بود اینه که یه alias واسه این helper درست کنیم که بتونیم از underline بجای کلمه translator استفاده کرد.
برای این کار می شه از کد زیر جهت تعریف alias استفاده کرد: public function onBootstrap($e) {     $e->getApplication()->getServiceManager(…

لیست شهر و استان‌های ایران

توجه: لیست شهر و استانهای ایران در  روز ۸ام دی ماه سال ۱۳۹۳  آپدیت شد.

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

پلاگین Git Gutter برای ویرایشگر Sublime Text

این پلاگین همونطور که از اسمش پیداست به Git مربوط می شه و می یاید برخی تغییرات رو تو خود ویرایشگر واسه ما نمایش می ده که نیازی نباشه از Command-line استفاده کنیم.
در حقیقت این پلاگین ۳ تغییر، افزودن سطر جدید،حذف سطری و ویرایش سطری رو توسط آیکون های مجزایی واسه هر کدومشون واسه ما سمت چپ ادیتور Sublime Text نمایش می ده که واسه دیدن این تغییرات نیازی نباشه از طریق command-line و دستور diff چک کنیم ببینیم چه تغییراتی تو صفحه اعمال شده و تغییرات رو بدون درنگ می تونیم تو خود ویرایشگر ببینیم که به نوعی می تونه سرعت کار ما رو بیشتر کنه.
این پلاگین مخصوص زبانی خاطری مثل PHP یا Python و … نیست و فقط ۲ شرط داره که اولیش ویرایشگر Sublime Text‌ هست که ازش استفاده کنید و دومی هم اینه که برای Source control management پروژتون از Git استفاده کنید.
واسه اطلاعات بیشتر و دریافت پلاگین از این لینک Git Gutterمی تونید استفاده کنید و یا از طریق Package control هم می تونید Git Gutter رو نصب کنید.