وبلاگ شخصي
 
به

وبلاگ شخصی حسین مرگانی

خوش آمدید
Welcome to

Hossein Margani's Weblog

محیط های برنامه نویسی آنلاین 07:15 02/05/1389

فقط می تونم بگم فوق العاده است.

 

 

یک نکته 16:09 16/01/1389
یك فيلسوف ترك مى گويد : ‌وقتی من به دنیا اومدم پدرم ۳۰ سالش بود یعنی سنش ۳۰ برابر من بود وقتی من ۲ ساله شدم پدرم ۳۲ ساله شد یعنی ۱۶ برابر من وقتی من ۳ ساله شدم پدرم ۳۳ ساله شد یعنی ۱۱ برابر من وقتی من ۵ ساله شدم پدرم ۳۵ ساله شد یعنی ۷ برابر من وقتی من ۱۰ ساله شدم پدرم ۴۰ ساله شد یعنی ۴ برابر من وقتی من ۱۵ ساله شدم پدرم ۴۵ ساله شد یعنی ۳ برابر من وقتی من ۳۰ ساله شدم پدرم ۶۰ ساله شد یعنی ۲ برابر من می ترسم اگه ادامه بدم از پدرم بزرگتر بشم.

تگها:

My Mind

کاراکتر جداکننده zwnj 11:56 13/12/1388
توی یکی از سایتها میگشتم که چشمم خورد به کاراکتر جالبی که باعث میشه دو کاراکتر از هم جدا بشن ولی خود این کاراکتر اصلاً دیده نمی شه. مثل فاصله (Space) با این تفاوت که مثل اون اصلاً جایی نمی گیره. کاراکتر zwnj که مخفف zero-width non-joiner هست توی html مثل بقیه کاراکترها بصورت ‌ استفاده میشه.
مثلاً IBM بصورت فارسی اینطور نوشته میشه: آی بی ام، ولی اگر از این کاراکتر استفاده کنیم، میشه: آی‌بی‌ام، که html اون به این صورت میشه: آی‌بی‌ام

پیاده سازی تابع String.Format در جاوا اسکریپت 04:18 07/12/1388
به احتمال زیاد تا به حال از تابع Format از کلاس String استفاده کردید. بصورت زیر:
var s = string.Format("this is a {0} test at {1}", "successful", DateTime.Now);
که بصورت زیر نتیجه می دهد:
this is a successful test at 02/26/2010 13:51:11
به دلیل نیازی که داشتم به دنبال این تابع بودم تا توی جاوا اسکریپت ازش استفاده کنم. یه جستجویی که کردم دیدم کسی اینجا این تابع رو پیاده سازی کرده و ضمن اینکه توی ASP.NET Ajax این تابع مثل همه تابع های دیگه کلاس String و همچنین همه کلاس های .NET وجود داره. ولی از اونجایی که نمی خواستم از ASP.NET Ajax استفاده کنم، این تابع رو به کتابخونه ام توی پروژه اضافه کردم:
String.format = String.prototype.format = function() { 
var string = this; 
var i = 0; 
if (typeof (this) == "function") { 
string = arguments[0]; 
i++; 
} 
for (; i < arguments.length; i++) 
string = string.replace(/\{\d+?\}/,  arguments[i]); 
return string; 
}
نحوه استفاده از تابع هم به شکل زیره:
"this is a {0} test at {1}".format("successful", new Date());
String.format("this is another {0} test at {1}", "successful", new Date());
خطای دید 11:00 23/08/1388

در تصویر زیر مربع A و B همرنگ هستند.

 

 

اگر باور نمی کنید به اینجا بروید و تست کنید. گرچه اگر هم ببینید باورتون نمیشه!!!

توضیحات بیشتر در سایت زیر می باشد.

منبع: وب سایت شخصی علی فرهادی

تگها:

Links

اسپیکر مدرن! 02:07 25/06/1388

تگها: , ,

Links

حل مشکل کندی اجرای برنامه های تحت وب در ویندوز 7 16:45 23/06/1388

مدتیه که از ویندوز 7 استفاده می کنم متوجه مشکلی شدم. موقعی که برنامه تحت وب رو اجرا می کنم و آدرس مثلاً http://localhost/WebApp بازمیشه خیلی سرعت پائینه و اگر این آدرس رو به این شکل http://127.0.0.1/WebApp تغییر بدیم خوب اجرا میشه. یه کمی که جستجو کردم. مشکل رو پیدا کردم. علتش مربوط میشه به استفاده از پروتکل IPv4 و IPv6 که برای localhost در ویندوز 7 دو رکورد DNS قرارداده شده، یکی 127.0.0.1 و یکی ::1 که این دومی کار رو خراب میکنه. کافیه فایل hosts رو بدین شکل تغییر دهید:

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host
# localhost name resolution is handled within DNS itself.
127.0.0.1       localhost 

اون خطوطی که اولش کاراکتر # داره همونطور که مشخصه توضیحاته که استفاده نمیشه. اما خط آخر مشخص میکنه که localhost همون 127.0.0.1 است.

همین!

برای اطلاعات بیشتر به آدرس زیر بروید:

serverfault.com: Windows 7 localhost name resolution ...

خارج کردن کد جاوا اسکریپت از حالت فشرده 12:49 19/06/1388

چند روز پیش برنامه ای دیدم واسه خارج کردن کد جاوا اسکریپت از حالت فشرده. احتمالاً اگر برنامه نویس وب باشید به کدهای جاوا اسکریپت مثل کد زیر برخورد کردید:

برنامه jsbeautifier این کد رو به شکلی خوانا در می آره.

Online javascript beautifier

اگر از این برنامه استفاده کنید کد به این شکل تبدیل میشه:

 
ضمن اینکه من کد HTML رو هم بهش دادم اون رو به شکل خوانا در آورد.
راه حل مشکل دانلود صفحه ASP.NET به جای نمایش در مرورگر 19:15 31/05/1388

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

 مشکل خیلی ساده بود. شما صفحه ای دارید که در بالای اون نوشتید:

 <%@ OutputCache Duration="25" VaryByParam="None" %>

این کار یه کار معمولیه که باعث میشه صفحه به مدت  25 ثانیه هم در حافظه نهان مرورگر کاربر (Client) و هم در حافظه نهان سرور(Server) و هم در سرورهای واسط بین سرور و مرورگر کاربر (Proxy Server) اصطلاحاً Cache شود و نیازی به بازیابی اطلاعات صفحه نیست. مشکل وقتی بوجود می آید که این صفحه زمانی که در سرورها کش می شود برای کدام مرورگر این کار انجام میشود. تصور کنید زمانی که قرار است این صفحه کش شود درخواست توسط مرورگر یک موبایل انجام شود. سرور اطلاعات صفحه را برای مرورگر یک موبایل کش می کند و تا 25 ثانیه بعد اگر مرورگری از نوع دیگر مثلاً PC درخواست همان صفحه را بکند سرور اطلاعات صفحه را بصورت کش شده به درخواست کننده ارسال می کند و از آنجائیکه مرورگر موبایل Content-Type درخواستی را بصورت text/vnd.wap.wml مشخص میکند و مرورگر دیگر هم به همین صورت اطلاعات را دریافت می کند بنابراین به دلیل ناشناخته بودن Content-Type برای مرورگر PC پنجره دانلود نمایش داده میشود و کل صفحه به صورت یک فایل دانلود می شود.

برای حل مشکل باید از صفت VaryByCustom از OutputCache استفاده کنیم. بدین صورت:

<%@ OutputCache Duration="25" VaryByParam="None" VaryByCustom="browser" %>

این کار باعث میشود که اطلاعات کش شده به تفکیک نوع مرورگر کش شود. همچنین browser برای دات نت شناخته شده است که اتوماتیک این کار انجام میشود. ولی این جمله از MSDN گفته شده و عملاً این کار انجام نمی شود. برای اطمینان از این کار باید در فایل Global.asax متدی رو override کنید. بدین صورت:

public override string GetVaryByCustomString(HttpContext context, string custom)
{
    if (custom == "browser")
    {
        return Request.Browser.Browser;
    }
}

این کار باعث می شود که صفحات به تفکیک مرورگر و دقیقاً نوع مرورگر مثلاً IE، یا Firefox کش شود. حتی برای اطمینان کامل می توانید نسخه مرورگر کاربر یعنی Request.Browser.MajorVersion یا Request.Browser.MinorVersion را هم دخالت دهید. بدین صورت:

return Request.Browser.Browser +
    Request.Browser.MajorVersion +
    Request.Browser.MinorVersion;

همین!

ابزاری برای فشرده سازی تصاویر 07:26 30/05/1388
چند تا برنامه پیدا کردم برای کم کردن حجم تصاویر PNG و JPG.
 

 برنامه مربوط به تصاویر PNG رو تست کردم. جالب بود. نحوه استفاده:

c:\>optipng image1.png
OptiPNG 0.5.5: Advanced PNG optimizer.
Copyright (C) 2001-2007 Cosmin Truta.
** Processing:
image1.png
175x31 8-bit RGB non-interlaced
The image is losslessly reduced to 8-bit grayscale
Input IDAT size = 2892 bytes
Input file size = 5665 bytes
Trying...
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 1196
zc = 9 zm = 8 zs = 1 f = 0 IDAT too big
zc = 1 zm = 8 zs = 2 f = 0 IDAT too big
zc = 9 zm = 8 zs = 3 f = 0 IDAT too big
zc = 9 zm = 8 zs = 0 f = 5 IDAT too big
zc = 9 zm = 8 zs = 1 f = 5 IDAT too big
zc = 1 zm = 8 zs = 2 f = 5 IDAT too big
zc = 9 zm = 8 zs = 3 f = 5 IDAT too big
Selecting parameters:
zc = 9 zm = 8 zs = 0 f = 0 IDAT size = 1196
Output IDAT size = 1196 bytes (1696 bytes decrease)
Output file size = 3969 bytes (1696 bytes = 29.94% decrease)
و همینطور:
C:\>advpng.exe -z image2.png
10004 3746 37% image2.png
10004 3746 37%
نکته ای که باید بگم اینه که تصویر رو فشرده می کنه و روی خود تصویر ذخیره می کنه. این برنامه ها بدون اینکه کیفیت تصویر رو تغییر بدهند تصاویر رو فشرده می کنن و مناسبه برای استفاده در زمان اجرا.
منبع: dotnetslackers.com

Spread Firefox Affiliate Button


Software tracking