پیش‌واکشی( Prefetch ) محتوا و نشانی دامنه در html5

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

<link rel="prefetch" href="http://amib.ir/my-articele-page-2">

دستور فوق تنها محتوای html صفحه‌ی مورد نظر را واکشی می‌کند. برای واکشی و پردازش از کد زیر استفاده می‌شود.

<link rel="prerender" href="http://amib.ir/my-articele-page-2">

و ویژگی سوم واکشی نشانی دامنه( DNS ) است که سبب می‌شود مرورگر عملیات درخواست IP متناظر با نامه دامنه‌ی دلخواه شما را به انجام برساند.

<link rel="dns-prefetch" href="//google-analytics.com">
<link rel="dns-prefetch" href="//fonts.googleapis.com">

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

ارسال شده در HTML, برنامه‌نویسی | برچسب‌شده | دیدگاه‌تان را بنویسید

نصب مخفی SQL Server و dotNet Framework و Windows Installer

برای یک پروژه نیاز به نصب مخفی( Silent ) چند ابزار داشتم. نتیجه‌ی جستجوهای مرا می‌توانید در ادامه مشاهده کنید.

نصب Silent پایگاه داده SQL Server 2008 Express

SQLEXPR32_x86_ENU.exe /QS /FEATURES=SQLEngine,Replication,Conn /IAcceptSQLServerLicenseTerms=1 /SQLSVCSTARTUPTYPE=Automatic /ACTION=Install /INSTANCENAME=SQLExpress /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /AGTSVCACCOUNT="NT AUTHORITY\Network Service" /AGTSVCSTARTUPTYPE=Automatic /ERRORREPORTING=0 /SECURITYMODE=SQL /SAPWD="123456" /RSSVCACCOUNT="NT AUTHORITY\Network Service" /RSSVCSTARTUPTYPE=Automatic

برای مشاهد‌ه‌ی شرح کامل دستورات اینجا کلیک کنید

نصب مخفی Windows Installer 4.5

Setup_x86_4.5.exe /quiet /norestart

نصب مخفی dotNet Framework 2

dotnetfx2.exe /q:a /c:"install.exe /qb"

نصب مخفی dotNet Fraework 3.5

dotnetfx35.exe /q /norestart

نمایش فرآیند نصب به کاربر( امکان لغو عملیات وجود دارد )

dotnetfx35.exe /qb /norestart

نصب مخفی dotNet Framework 4.0

dotNetFx40_Full_x86_x64.exe /q /norestart

نمایش فرآیند نصب به کاربر( امکان لغو عملیات وجود دارد )

dotNetFx40_Full_x86_x64.exe /qb /norestart
ارسال شده در برنامه‌نویسی, نرم‌افزار | برچسب‌شده | ۸ دیدگاه

CDN چیست؟

cdn

CDN یا Content Delivery Network در اصطلاح به میزبان‌های وبی گفته می‌شود که کار نگهداری از منابع برنامه‌نویسی وب مانند فایل‌های جاوااسکریپت، CSS، تصویرها و فونت‌ها را برعهده دارند.
برنامه‌نویسان وب می‌توانند به جای نگهداری مستقیم این منابع در روی سرور خود، از این میزبان‌ها کمک بگیرند.
برخی شرکت‌های بزرگ مانند گوگل و مایکروسافت، CDNهایی عمومی برای نگهداری منابع پرکاربرد وب مانند کتابخانه‌ی jQuery ایجاد کرده‌اند.
استفاده از CDN به جای نگهداری فایل‌ها روی سرور اصلی چندین مزیت دارد که برخی از آن‌ها عبارتند از:

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

این میزبان‌ها به صورت رایگان یا تجاری به ارائه‌ی خدمات می‌پردازند. از مشهورترین میزبان‌های تجاری می‌توان به سرورهای ابری آمازون و از میزبان‌های رایگان می‌توان به jsDelivr و CloudFlare اشاره کرد.

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

ارسال شده در برنامه‌نویسی, فناوری | برچسب‌شده | دیدگاه‌تان را بنویسید

تغییر focus پیش‌فرض در فرم‌های HTML

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

<input type="text" name="username" id="username" autofocus>

دو نکته در کد بالا قابل توجه است. نخست اینکه برخلاف استاندارد قبلی xhtml تعریف ویژگی‌ها به صورت مختصر مجاز است. یعنی تعیین مقدار برای autofocus الزامی نیست.
و تکته‌ی دوم اینکه ممیز انتهایی برای بستن تگ نیز در استاندارد جدید منسوخ شده است.

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

document.getElementById( 'username' ).focus();
ارسال شده در HTML, جاوااسکریپت | دیدگاه‌تان را بنویسید

طراحی جدید صفحه‌ی اصلی سایت

تارنمای شخصی امیرمسعود ایرانی

پس از مدت‌ها طراحی سایت قدیمی را تغییر دادم.
برای مشاهده‌ی صفحه‌ی جدید اینجا کلیک کنید

ارسال شده در CSS, HTML, PHP, SEO, برنامه‌نویسی, جاوااسکریپت, قالب سایت | ۲ دیدگاه

تقویم فارسی جاوااسکریپت با امکانات منحصر به فرد

تقویم شمسی فارسی رایگان برای جاوااسکریپت

تقویم فارسی جاوااسکریپت نگارش ۰.۲.۱ منتشر شد

نمایش تاریخچه

۲۷ اردبیهشت ۹۱ – ویرایش ۰.۱.۵

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

۱۰ فروردین ۹۲ – ویرایش ۰.۲.۱

  • پارامتر اول سازنده‌ی تقویم حذف شد.
  • دو گزینه‌ی جدید برای تعریف «تاریخ پیش‌فرض» و «تاریخ پیش‌فرض در صورت نادرست بودن انتخاب کاربر» افزوده شد.
  • رویداد onchange به گزینه‌هاافزوده شد.
  • دو گزینه‌ی oExtraInputID و ExtraInputFormat برای رعایت استانداردهای کدنویسی به extraInputID و extraInputFormat تغییر نام یافتند.
  • متد fillDateField علاوه بر رشته، آرایه‌ای حاوی سال، ماه و روز شمسی را نیز می‌پذیرد.
  • صفت enabled برای جلوگیری از عملکرد دکمه‌ی تقویم و بازشدن انتخاب‌کننده به شیء تقویم اضافه شد.
  • فشردن کلیدها بالا و پایین سبب می‌شوند تاریخ یک روز به جلو و عقب حرکت کند.
  • تغییرات ابتدایی برای رعایت آخرین استانداردهای جاوااسکریپت در مدیریت رویدادها به انجام رسید.
  • سازگاری با مرورگرهای مختلف در چند مورد بهبود یافت.
  • بهبود قابل توجه سرعت و کاهش مصرف حافظه به ویژه در هنگام ایجاد چند نسخه از تقویم در یک صفحه.
  • محل نمایش منوی انتخاب سال و ماه تصحیح شد.
  • محل نمایش دکمه‌ی انتخاب تاریخ در پوسته‌های مختلف اصلاح شد.
  • تقویم دیگر مانع استفاده از کلیدهای میانبر مرورگر نمی‌شود( مثلا Ctrl+W ).
  • پوسته‌ی جدید با رنگ تیره به مجموعه‌ی پوسته‌های قابل انتخاب اضافه شد

برای دریافت اطلاعات بیشتر و دانلود تقویم اینجا کلیک کنید
ارسال شده در برنامه‌نویسی, جاوااسکریپت | برچسب‌شده , , , , | دیدگاه‌تان را بنویسید

فارسی‌نویس رایگان برای استفاده در برنامه‌های گرافیکی

فارسی‌نویس رایگان برای نرم‌افزارهای گرافیکی بدون نیاز به فونت اضافی

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

برای مشاهده‌ی توضیحات و دریافت رایگان برنامه اینجا کلیک کنید

۱۴ بهمن ۱۳۹۰

نسخه‌ی آنلاین فارسی نویس به صفحه‌ی مربوط اضافه شد

۱۰ اسفند ۱۳۹۱

نرم‌افزار اصلی به نگارش ۱.۳.۸ به‌روزرسانی شد
بهینه‌سازی کدها برای سازگاری بیشتر با مرورگرهای جدید

ارسال شده در برنامه‌نویسی, جاوااسکریپت, نرم‌افزار | برچسب‌شده , , , , , | دیدگاه‌تان را بنویسید

مشکل کوئری N+1

پایگاه داده

مدیریت درخواست‌ها از پایگاه داده یکی از گلوگاه‌های مهم در برنامه‌نویسی است. رعایت نکردن برخی نکته‌ها در هنگام ارتباط با پایگاه داده می‌تواند اثرهایی جدی بر عملکرد نرم‌افزار داشته باشد.
یکی از فراگیرترین مشکل‌هایی که در برنامه‌نویسی پایگاه داده با آن روبرو هستیم، مشکل N+1 است. برای آشنا شدن با این مشکل از یک مثال استفاده می‌کنیم.

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

ارسال شده در پایگاه داده | برچسب‌شده | دیدگاه‌تان را بنویسید

برنامه‌نویسی و محیط زیست

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

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

افزون بر سخت‌افزار، نرم‌افزار نیز می‌تواند اثر قابل توجهی در مصرف انرژی داشته باشد. کاهش مصرف حافظه، کاهش بار پردازشی و استفاده‌ی بهینه از سایر سخت‌افزارها می‌تواند کاهش انرژی را به همراه داشته باشد.
بر اساس محاسبات محققان، هر ثانیه استفاده از اینترنت سبب می‌شود ۰.۰۲ تا ۰.۲ گرم دی‌اکسید کربن وارد جو زمین شود.

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

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

در ادامه برخی از راهکارهای قابل انجام برای بهسازی نرم‌افزارها را مرور می‌کنیم.

  • استفاده از الگوریتم‌های سریع‌تر – مثلا جستجوی دودویی به جای جستجوی خطی
  • کش کردن(Cache) اطلاعات برای کم کردن هزینه‌ی بازخوانی و جستجوی اطلاعات
  • صرف‌نظر کردن از افکت‌های متحرک به ویژه در صفحات وب
  • استفاده از ابزارهای برنامه‌نویسی بهینه‌تر – مثلا HipHop به جای PHP
  • کاهش حجم نرم‌افزار و فایل‌های جانبی – مثلا استفاده از ابزارهای کاهش حجم تصویر
  • استفاده از ابزارهای بهینه‌سازی و فشرده‌سازی کد پیش از انتشار – مثلا استفاده از Closure Compiler برای جاوااسکریپت
  • جایگزین کردن جستجوهای آنی با جستجوی مستقیم توسط کاربر یا جستجوی با تاخیر
  • استفاده از فناوری «بارگزاری دیرهنگام(Lazy Loading)»
ارسال شده در برنامه‌نویسی, عمومی | ۴ دیدگاه

رسم نمودار عبارت‌های منظم

سایت regexper.com ابزاری آنلاین است که با کمک جاوااسکریپت، عبارت‌های منظم (Regular Expression) را به صورت نمودار تصویر می‌کند.
این ابزار می‌تواند برای ارزیابی عبارت‌های منظم یا ایجاد آن‌ها به کار رود.

در ادامه سه نمونه از عبارت‌های منظم پرکاربرد به همراه نمودارشان که در این سایت رسم شده را مشاهده می‌کنید.

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

شناسایی شماره‌های موبایل ایران

/(\+98|0)?9\d{9}/

regexp1

عدد طبیعی ۱ تا ۸ رقمی

/^[1-9][0-9]{0,7}$/

regexp2

ساعت و دقیقه با ثانیه یا بدون ثانیه

/^(\d{1,2}):(\d{1,2})(?::(\d{1,2}))?$/

regexp3

ارسال شده در برنامه‌نویسی, جاوااسکریپت, عبارت‌های منظم | برچسب‌شده , , | ۴ دیدگاه