دعوت به همکاری در شرکت سهند (استخدام شرکت سهند)

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

حذف بخش‌های مجرمانه به جای بستن سایت‌ها و شبکه ها

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

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

وی افزود: سه شبکه اجتماعی پیام رسان داخلی در دسترس است که یکی از آن ها در مدت زمانی ۶۰۰ هزار مشترک را جذب کرده است.

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

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

واعظی تاکید کرد : دولت همچنین در حال ساماندهی سازمان فضایی است و این سازمان از نهاد ریاست‌جمهوری جدا شده اما ماموریت‌ها متوقف نشده است.

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

دستبندهای سلامتی، ساعت‌های هوشمند، عینک هوشمند، هدست واقعیت افزوده و…! این روزها نام این ابزارها را زیاد می‌شنویم. این موضوع نشان می‌دهد که آینده گجت‌های هوشمند به سمت ابزارهای پوشیدنی پیش می‌رود.

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

مشخصات فنی مایکروسافت بند
بند پلاستیکی ارتجاعی با قابلیت تنظیم اندازه
نمایشگر ۱.۴ اینچی رنگی TFT لمسی خازنی با رزولوشن ۳۲۰ در ۱۰۶ پیکسل
بلوتوث ۴ میکروفون و موتور ویبره
سنسورهای سنجش ضربان قلب اپتیکال، شتاب‌سنج، ژیرومتر، جی‌پی‌اس، سنسور نور، سنسور UV، سنجش دمای بدن، سنسور خازنی و سنسور GSR یا پاسخ برقی پوست
سازگار با iOS 7.1، ویندوز فون ۸.۱ و اندروید ۴.۳ به بالا
۲ باتری ۱۰۰ میلی‌امپرساعتی لیتیوم-یون با قابلیت شارژدهی تا ۴۸ ساعت در استفاده معمولی و زمان شارژ کمتر از ۱.۵ ساعت
ضد لک و ضد گردوغبار
قیمت در بازار ایران: ۱٫۲۰۰٬۰۰۰ تومان

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

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

 

نسخه جدید سیستم عامل iOS

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

در این نسخه موارد زیر حل شده است:

کاهش فضای حافظه مورد نیاز برای بروزرسانی از طریق OTA

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

حل مشکل توقف در نمایش اپلیکیشن ها در Spotlight

حل مشکل مالتی تسکینگ جسچر در آی پد

تنظیمات جدید در بخش Education

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

ثبت جزئیات استثناهای Entity framework توسط ELMAH

در حین بروز استثناهای Entity framework، می‌توان توسط ابزارهای Logging متنوعی مانند ELMAH، جزئیات متداول آن‌ها را برای بررسی‌های آتی ذخیره کرد. اما این جزئیات فاقد SQL نهایی تولیدی و همچنین پارامترهای ورودی توسط کاربر یا تنظیم شده توسط برنامه هستند. برای اینکه بتوان این جزئیات را نیز ثبت کرد، می‌توان یک IDbCommandInterceptor جدید را طراحی کرد.

کلاس EfExceptionsInterceptor

در اینجا نمونه‌ای از یک پیاده سازی اینترفیس IDbCommandInterceptor را مشاهده می‌کنید. همچنین طراحی یک متد عمومی که می‌تواند به جزئیات SQL نهایی و پارامترهای آن دسترسی داشته باشد، در اینترفیس IEfExceptionsLogger ذکر شده‌است

public interface IEfExceptionsLogger
{
void LogException<TResult>(DbCommand command,
DbCommandInterceptionContext<TResult> interceptionContext);
}

using System.Data.Common;
using System.Data.Entity.Infrastructure.Interception;

namespace ElmahEFLogger
{
public class EfExceptionsInterceptor : IDbCommandInterceptor
{
private readonly IEfExceptionsLogger _efExceptionsLogger;

public EfExceptionsInterceptor(IEfExceptionsLogger efExceptionsLogger)
{
_efExceptionsLogger = efExceptionsLogger;
}

public void NonQueryExecuted(DbCommand command, DbCommandInterceptionContext<int> interceptionContext)
{
_efExceptionsLogger.LogException(command, interceptionContext);
}

public void NonQueryExecuting(DbCommand command, DbCommandInterceptionContext<int> interceptionContext)
{
_efExceptionsLogger.LogException(command, interceptionContext);
}

public void ReaderExecuted(DbCommand command, DbCommandInterceptionContext<DbDataReader> interceptionContext)
{
_efExceptionsLogger.LogException(command, interceptionContext);
}

public void ReaderExecuting(DbCommand command, DbCommandInterceptionContext<DbDataReader> interceptionContext)
{
_efExceptionsLogger.LogException(command, interceptionContext);
}

public void ScalarExecuted(DbCommand command, DbCommandInterceptionContext<object> interceptionContext)
{
_efExceptionsLogger.LogException(command, interceptionContext);
}

public void ScalarExecuting(DbCommand command, DbCommandInterceptionContext<object> interceptionContext)
{
_efExceptionsLogger.LogException(command, interceptionContext);
}
}
}

تهیه یک پیاده سازی سفارشی از IEfExceptionsLogger توسط ELMAH

اکنون که ساختار کلی IDbCommandInterceptor سفارشی برنامه مشخص شد، می‌توان پیاده سازی خاصی از آن‌را جهت استفاده از ELMAH به نحو ذیل ارائه داد:

using System;
using System.Data.Common;
using System.Data.Entity.Infrastructure.Interception;
using Elmah;

namespace ElmahEFLogger.CustomElmahLogger
{
public class ElmahEfExceptionsLogger : IEfExceptionsLogger
{
/// <summary>
/// Manually log errors using ELMAH
/// </summary>
public void LogException<TResult>(DbCommand command,
DbCommandInterceptionContext<TResult> interceptionContext)
{
var ex = interceptionContext.OriginalException;
if (ex == null)
return;

var sqlData = CommandDumper.LogSqlAndParameters(command, interceptionContext);
var contextualMessage = string.Format(“{0}{1}OriginalException:{1}{2} {1}”, sqlData, Environment.NewLine, ex);

if (!string.IsNullOrWhiteSpace(contextualMessage))
{
ex = new Exception(contextualMessage, new ElmahEfInterceptorException(ex.Message));
}

try
{
ErrorSignal.FromCurrentContext().Raise(ex);
}
catch
{
ErrorLog.GetDefault(null).Log(new Error(ex));
}
}
}
}

در اینجا شیء Command به همراه SQL نهایی تولید و پارامترهای مرتبط است. همچنین interceptionContext.OriginalException جزئیات عمومی استثنای رخ داده را به همراه دارد. می‌توان این اطلاعات را پس از اندکی نظم بخشیدن، به متد Raise مربوط به ELMAH ارسال کرد تا جزئیات بیشتری از استثنای رخ داده شده، در لاگ‌های آن ظاهر شوند.

استفاده از ElmahEfExceptionsLogger جهت طراحی یک Interceptor عمومی

public class ElmahEfInterceptor : EfExceptionsInterceptor
{
public ElmahEfInterceptor()
: base(new ElmahEfExceptionsLogger())
{ }
}

برای استفاده از ElmahEfExceptionsLogger و تهیه یک Interceptor عمومی، می‌توان با ارث بری از کلاس Interceptor ابتدای بحث شروع کرد و وهله‌ای از ElmahEfExceptionsLogger را به سازنده‌ی آن تزریق نمود (یکی از چندین روش ممکن). سپس برای استفاده از آن کافی است به ابتدای متد Application_Start فایل Global.asax.cs مراجعه و در ادامه سطر ذیل را اضافه نمود:

DbInterception.Add(new ElmahEfInterceptor());

پس از آن جزئیات کلیه استثناهای EF در لاگ‌های نهایی ELMAH به نحو ذیل ظاهر خواهند شد:

entity framework exceptional detail by elmah 2 - بلاگ

entity framework exceptional detail by elmah - بلاگ

سود خالص اپل در سه ماهه چهارم سال ۲۰۱۴

اپل گزارش مالی مربوط به سه‌ماهه‌ی چهارم سال ۲۰۱۴ میلادی را منتشر کرد. براساس این گزارش، اپل در سه‌ماهه‌ی منتهی به سال ۲۰۱۵ میلادی موفق به فروش ۷۴.۵ میلیون دستگاه آیفون شده است. فروش این تعداد آیفون درآمدی ۷۴.۶ میلیارد دلاری را عاید این کمپانی کرده که نتیجه‌ی آن سودی ۱۸ میلیارد دلاری است.

براساس گزارش منتشر شده، این کمپانی در سه‌ماهه‌ی چهارم سال ۲۰۱۴ میلادی درآمدی ۷۴.۶ میلیارد دلاری داشته که سودِ خارق‌العاده‌ی ۱۸ میلیارد دلاری را برای این کمپانی به ارمغان آورده است. در واقع اپل به ازای هر سهم، ۳.۰۶ دلار سود کرده است. در مقایسه با مدت مشابه سال گذشته‌ی میلادی که طی آن اپل ۵۷.۶ میلیارد درآمد و ۱۳.۱ میلیارد سود داشت، شاهد رشد فوق‌العاده‌ای هستیم.

AppleQ42014Int 1 - بلاگ

۶۵ درصد از درآمد حاصل، مربوط به فروش محصولات در بازار‌های جهانی است. اپل در حال حاضر ۱۷۸ میلیارد دلار پول نقد در اختیار دارد که به واقع رقم بسیار بزرگی برای این کمپانی است. همچنین سود ناخالص اپل در سه‌ماهه‌ی منتهی به سال ۲۰۱۵ از ۳۷.۹ درصد در مدت مشابه سال گذشته، به ۳۹.۹ درصد افزایش یافته است.

براساس گزارش مالی این کمپانی، اپل در سه‌ماهه‌ی چهارم سال ۲۰۱۴ میلادی موفق به فروش ۷۴.۵ میلیون دستگاه آیفون شده که بسیار بیشتر از پیش‌بینی‌های انجام شده توسط کارشناسان و تحلیل‌گران است. در مقایسه با مدت مشابه سال گذشته که اپل موفق به فروش ۵۱ میلیون دستگاه آیفون شده بود، این کمپانی رشدی ۲۳.۴ میلیونی در فروش به خود دیده است. همچنین باید به فروش خوب مک‌بوک‌های این کمپانی اشاره کرد که آماری ۴.۸ میلیون دستگاهی را بر جای گذشته است. نکته‌ی منفی در گزارش اپل، کاهش فروش آیپد‌های این کمپانی است که از ۲۶ میلیون دستگاه در سه‌ماهه‌ی چهارم ۲۰۱۳ به ۲۱.۴ میلیون دستگاه در فصل چهارم سال ۲۰۱۴ کاهش یافته است

AppleQ42014Int 2 - بلاگ

تیم‌کوک، مدیرعامل اپل در خصوص گزارش مالی سه‌ماهه‌ی چهارم سال ۲۰۱۴ و فروش فوق‌العاده‌ی آیفون گفت:

ما از کاربران خود به‌خاطر استقبال فوق‌العاده از محصولات‌مان در فصل چهارم سال ۲۰۱۴ بسیار متشکریم. درآمد [اپل] با افزایشی ۳۰ درصدی در مقایسه با سال گذشته به ۷۴.۶ میلیارد دلار رسیده است.
براساس پیش‌بینی‌های انجام شده اپل در سه‌ماهه‌ی اول سال ۲۰۱۵ میلادی، درآمدی ۵۲ تا ۵۵ میلیارد دلاری خواهد داشت. تنها دقایقی پس از انتشار گزارش مالی اپل، ارزش سهام این کمپانی در تالارهای بورس، ۵ درصد افزایش یافته است.

منبع:زومیت

آیا فیس بوک هک شده است؟

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

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

گزارش وب‌سایت DownDetector نشان می‌دهد که این مشکلات برای فیسبوک از دیشب آغاز شده و تا کنون نیز ادامه دارد. البته به نظر می‌رسد بخش عمده آنها به سرعت رفع شده است. مهم‌ترین مشکل مطرح شده باز نشدن صفحه فیسبوک بوده و مشکل مهم دیگر در ورود به حساب کاربری گزارش شده است. برخی کاربران که موفق به لاگین شده‌اند هم برای پست کردن استاتوس با مشکل مواجه شده‌اند.
Does Facebook has been hacked - بلاگ

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

instagram tweet - بلاگ

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

lizardsquad tweet - بلاگ

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

منبع:زومیت

جلوگیری از هنگ کردن گوشی های اندرویدی

 

اغلب کاربران اندرویدی همیشه از هنگ کردن گوشی های هوشمند خود گلایه می کنند امروز برای شما راهی را آموزش خواهیم داد. که به کمک آن از هنگ کردن گوشی های اندرویدی خودتون جلوگیری کنید. البته در کنار این روش روش های دیگری هم برای اینکار بهتون آموزش خواهیم داد ، که مطمئنا در افزایش سرعت گوشی اندرویدی تون تاثیر زیادی خواهد داشت.

گفتنی روش که برای شما در ابتدا آموزش خواهیم داد نیاز به روت کردن سیستم عامل دارد ، یعنی اگر شما گوشیتان روت شده است از این روش برای افزایش سرعت گوشیتان و جلوگیری از هنگ کردن آن استفاده نمایید.

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

اپلیکیشن افزایش سرعت گوشی اندرویدی  ” Greenify “

نام این اپلیکیشن Greenify می باشد. این اپلیکیشن با کنترل اپلیکیشن های غیر ضروری سیستم عامل شما از هنگ گوشی هوشمند جلوگیری میکند. این اپلیکیشن قادر است سیستم عامل گوشی شما را همچون روز اولش نگه دارد ، گویا گوشی شما تازه متولد شده است.عملکرد آن بگونه ای است که از کار کردن برنامه ها در پشت زمینه اندروید جلوگیری می نماید. بازی ها و برنامه های دیگر برای دریافت اپدیت و … در پشت زمینه کار می کنند مورد کنترل قرار می دهد و از تحرک اضافی خود جلوگیری می کند.

نحوه استفاده از اپلیکیشن Greenify

پس از اینکه این اپلیکیشن را دانلود کردید و باز کردید توضیحاتی خود اپلیکیشن در صفحه اصلی به شما خواهد داد و نحوه استفاده از آن را به شما آموزش خواهد داد اما برای اینکه این کار برای شما راحت تر باشد مواردی را که در استفاده از این اپلیکیشن باید در نظر بگیرید را به شما ذکر میکنم.
نرم افزار TitaniumBackup Pro به دلیل وجود قابلیت Freeze برنامه ها و نرم افزارهای Task Killer و مدیریت Autostarts با برنامه Greenify تداخل دارند و مانع از عملکرد صحیح برنامه می شوند پس بهتر است این اپلیکیشن ها را حذف کنید چرا که نیازی به آنها هم نخواهید داشت.
این اپلیکیشن نیازی به کرک هم ندارد.

نکات مهم در هنگام نصب اپلیکیشن Greenify

پس از نصب اپلیکیشن Greenify را اجرا کنید و برنامه هایی را که می خواید به حالت Hibernate بروند به لیست برنامه ها اضافه کنید و در نهایت با انتخاب گزینه zzz برنامه ها به خواب می روند!
چگونه ماژول های اپلیکیشن را فعال کنیم ؟

برای فعال کردن ماژول برنامه ابتدا برنامه Xposed Installer را دانلود و نصب کنید.
برنامه را اجرا کرده به قسمت Framework بروید.
بر روی گزینه install/update ‌کلید کنید تا برنامه نصب شود و گوشی شما ری استارت شود.
مجددا برنامه Xposed را اجرا کرده و در قسمت Modules تیک گزینه Greenify را فعال کنید.

 منبع:زوم تک

بلایی که “زندگی دیجیتال” بر سر زندگی ما آورده!

 

چند تا آمار ساده!

متوسط زمان صرف شده برای کار با اسمارت فونها در شبانه روز ۱۹۴ دقیقه!

متوسط تعداد دفعات لمس گوشی در روز ۱۵۰ بار

متوسط تعداد اپلیکیشن روی هر اسمارت فون۴۱

حداکثر فاصله ۹۰% آدمها در طول روز از گوشی ۱ متر و نیم

بلاشک گوشی موبایل آدمها این روزها تقریبا مهمترین وسیله زندگی آنهاست و به نظر میرسد که ثقل زندگی ما در روابط انسانی از گویش و نوشتار و لمس و تحرک به نمایشگرهای چند اینچی لمسی منتقل شده! کافی است در مهمانی و تاکسی و پرواز و گرمابه و گلستان نگاهی نه چندان دقیق به اطراف بیاندازیم تا ابعاد مساله روشن شود!

واکنش آدمها به آلارمهای گوشی چیزی در حد شرطی شدن و بلکه هم بیشتر است! در یک کلام گوشیهای ما تبدیل به امتداد بیرونی و بخشی از بدن شده اند که تاثیرات عمیقی بر خود اصلی ما دارند!

امروز به لطف آیکونها در کسری از ثانیه آی لاو یو با یک بوس اضافه برای کسی که یک روز هم از اشناییمان نمیگذرد ارسال میکنیم و من هرگز از دریافت پیام آی لاو یو باس روی وایبرم از همکاری که با مرخصیش موافقت کردم تعجب نمیکنم! آن روزها پیام رسانهای رایگان نبودند تا با تابلوی “فقط با جنبه ها وارد شوند” مرد و زن مردم ما را در گروههای بی شمار به چالش بی شرمی و دست انداختن همه ارزشها و مفاهیم بکشند! امروز ما جنبه داریم اما دیگر حیا نداریم! به همین سادگی!

غول سوئدی مخابرات میگفت “ما شما را بهم وصل میکنیم!” اما نگفت که هزینه این اتصال تنها قبض موبایل ما نخواهد بود! هزینه این اتصال همه آن لحظات زیبایی است که از دریچه چشم خود نمیبینیم تا با دوربین اسمارت فون خود، برای اینستاگرام و فیسبوک عکس بگیریم و آپلود کنیم تا استراتژی تولید محتوی و داده فروشی روز به روز فربه تر شود! دریغ از همه خلوتهایی که زائل شد و همه تنهاییهایی که میتوانست سرچشمه خلق تازه ها شود.

آری ! هیچکس تنها نیست، همه به هم وصلند و مشغول کشتن روح زندگی و لحظات هستند! ۹۳ میلیون نفری که روزانه حدود ۱ میلیون دلار فقط روی اپلیکیشن candy crush خرج میکنند تنها نیستند چون روزانه معادل ۱۷۶۰ سال وقت برای ست کردن دانه های رنگی آتش میزنند!

این آش اینقدر شور شده که بالاترین حد ابراز علاقه به کسی این است که بگوییم حتی از موبایلم هم بیشتر دوستت دارم! اگر روزی on-line بودن  هدیه بود، امروز در دنیایی که تعداد گوشیهای زیر هر سقف از تعداد آدمها بیشتر است بالاترین حد احترام و علاقه وقتی با کسی هستیم شاید این است که دیسکانکت باشیم و فقط برای او! اگر چه امروز گریزی از اینهمه اتصال و ارتباط نیست اما باور کنیم شاید روزی ۱ ساعت دیسکانکت حال همه ما را بهتر خواهد کرد.

منبع: سایت دکتر شیری

پاسخ مثبت مایکروسافت به درخواست ایرانیان

تقریبا ۲ ماه پیش بود که حضور فعال و چشمگیر ایرانیان در بخش پیشنهادات و در خواست های کاربران برای ویندوز ۱۰ یا همان صدای کاربران (uservoice)مایکروسافت ، سرو صدای بسیاری بپاکرد.تا حدی که وب سایت معتبر Theverge هم درخواست ایرانی ها مبنی بر افزودن تقویم فارسی ( هجری شمسی ) به ویندوز را به عنوان یکی از پرطرفدارترین پیشنهادها معرفی کرد.با اینکه ابهامات و شایعات بسیاری درباره واکنش مایکروسافت به درخواست های کاربران ایرانی در فضای مجازی منتشر شد اما اکنون مایکروسافت به یکی از خواسته های ایرانی ها پاسخ مثبت داده و اعلام کرده که تقویم هجری شمسی را به ویندوز خواهد آورد.
آقای Ning Jin-Grisaff ( یکی از مدیران مایکروسافت ) در پاسخ به درخواست افزودن تقویم فارسی به ویندوز گفته :

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

منبع:گجت نیوز

داستانی از Unicode

یکی از مباحثی که به نظرم هر دانشجوی رشته کامپیوتر، فناوری اطلاعات و علاقمند به این حوزه باید بداند بحث کاراکترهاست؛ جدا از اینکه همه ما در مورد وجود ascii یا UTF-8 و … و توضیحات مختصر آن اطلاع داریم ولی عده‌ای از دوستان مثل من هنوز اطلاعات پایه‌ای‌تر و جامع‌تری در این باره نداریم؛ در این مقاله که برداشتی از وب سایت smashing magazine  و W3 است به این مبحث می‌پردازیم.

کامپیوترها تنها با اعداد سر و کار دارند نه با حروف؛ پس این بسیار مهم هست که همه کامپیوترها بر روی یک سری اعداد مشخص به عنوان نماینده‌ای از حروف به توافق برسند. این توافق یکسان بین همه کامپیوترها بسیار مهم هست و باید طبق یک استاندارد مشترک استفاده شود تا در همه سیستم‌ها قابل استفاده و انتقال باشد؛ برای همین در سال ۱۹۶۰ اتحادیه استاندارهای آمریکا، یک سیستم رمزگذاری ۷ بیتی را ایجاد کرد؛ به نام American Standard Code for Information Interchange یا کد استاندارد سازی شده آمریکایی برای تبادل اطلاعات یا همان ASCII. این هفت بیت به ما اجازه می‌داد تا ۱۲۸ حرف را کدگذاری کنیم. این مقدار برای حروف کوچک و بزرگ انگلیسی و هم چنین حروف لاتین، همراه با کدگذاری ارقام و یک سری علائم نگارشی و کاراکترهایی از قبیل space ، tab و موارد مشابه و نهایتا کلیدهای کنترلی کافی بود. در سال ۱۹۶۸ این استاندارد توسط رییس جمهور وقت آمریکا لیندون جانسون به رسمیت شناخته شده و همه سیستم‌های کامپیوتری ملزم به رعایت و استفاده از این استاندارد شدند.
برای لیست کردن و دیدن این کدها و نمادهای حرفیشان می‌توان با یک زبان برنامه نویسی یا اسکریپتی آن‌ها را لیست کرد. کد زیر نمونه‌ای از کد نوشته شده در جاوااسکریپت است.

<html>

<body>
<style type=”text/css”>p {float: left; padding: 0 15px; margin: 0;}</style>

<script type=”text/javascript”>
for (var i=0; i<128; i++) document.writeln ((i%32?”:'<p>’) + i + ‘: ‘ + String.fromCharCode (i) + ‘
‘);

</script>
</body>
</html>

در سال‌های بعدی، با قوی‌تر شدن پردازش‌گرها و ۸ بیت شدن یک بایت به جای ذخیره ۱۲۸ عدد توانستند ۲۵۶ عدد را ذخیره کنند ولی استاندارد اسکی تا ۱۲۸ کد ایجاد شده بود و مابقی را به عنوان ذخیره نگاه داشتند. در ابتدا کامپیوترهای IBM از آن‌ها برای ایجاد نمادهای اضافه‌تر و همچنین اشکال استفاده می‌کرد؛ مثلا کد ۲۰۰ شکل ╚ بود که احتمالا برنامه نویسان زمان داس، این شکل را به خوبی به خاطر میاورند یا مثلا حروف یونانی را اضافه کردند که با کد ۲۲۴ شکل آلفا α بود و بعد‌ها به عنوان code page 437 نامگذاری شد. هر چند که هرگز مانند اسکی به یک استاندارد تبدیل نشد و بسیاری از کشورها از این فضای اضافی برای استانداردسازی حروف خودشان استفاده می‌کردند و در کشورها کدپیج‌های مختلفی ایجاد شد. برای مثال در روسیه کد پیچ ۸۸۵ از کد ۲۲۴ برای نمایش Я بهره می‌برد و در کد پیچ یونانی ۷۳۷ برای نمایش حرف کوچک امگا ω استفاده می‌شد. این کار ادامه داشت تا زمانیکه مایکروسافت در سال ۱۹۸۰ کد پیچ Windows-1251 الفبای سریلیک را ارئه کرد. این تلاش تا سال ۱۹۹۰ ادامه پیدا کرد و تا آن زمان ۱۵ کدپیج مختلف استاندارسازی شده برای الفبایی چون سیریلیک، عربی، عبری و … ایجاد شد که این استانداردها از ISO-8859-1 شروع و تا ISO-8859-16 ادامه داشت و موقعی که فرستنده پیامی را ارسال می‌کرد، گیرنده باید از کدپیج مورد نظر مطلع می‌بود تا بتواند پیام را صحیح بخواند.
بیایید با یک برنامه علائم را در این ۱۵ استاندارد بررسی کنیم. تکه کدی که من در اینجا نوشتم یک لیست را که در آن اعداد یک تا ۱۶ لیست شده است، نشان میدهد که با انتخاب هر کدام، کدها را از ۰ تا ۲۵۵ بر اساس هر استاندارد به ترتیب نمایش می‌دهد. این کار توسط تعیین استاندارد در تگ متا رخ میدهد.
در زمان بارگذاری، استانداردها با کد زیر به لیست اضافه می‌شوند.در مرحله بعد لیستی که postback را در آن فعال کرده‌ایم، کد زیر را اجرا می‌کند. در این کد ابتدا charset انتخاب شده ایجاد شده و سپس یکی یکی کدها را به کاراکتر تبدیل می‌کنیم و رشته نهایی را درج می‌کنیم

private String ISO = “ISO-8859-“;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
for (int i = 1; i < 16; i++)
{
ListItem item = new ListItem();
item.Text = ISO + i.ToString();
item.Value = i.ToString();
DropDownList1.Items.Add(item);
}
ShowCodes(1);
}

}

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
if (DropDownList1.SelectedItem != null)
{
int value = int.Parse(DropDownList1.SelectedValue);
ShowCodes(value);
}

}

private void ShowCodes(int value)
{
Response.Charset = ISO + value;
string s = “”;
for (int i = 0; i < 256; i++)
{
char ch = (char)i;
s += i + “-” + ch;
s += “
“;//br tag
}
Label1.Text = s;
}

تقریبا سال ۱۹۹۰ بود که بسیاری از اسناد به همین شیوه‌ها نوشته و ذخیره شد. ولی باز برای بسیاری از زبان‌ها، حتی داشتن یکی دو حرف بیشتر مشکلاتی را به همراه داشت. مثلا حروف بعضی زبان‌ها مثل چینی و ژاپنی چینی که ۲۵۶ عدد، پاسخگو نبود و با آمدن شبکه‌ای چون اینترنت و بحث بین المللی شدن و انتقال اطلاعات، این مشکل بزرگتر از آنچه بود، شد.

یونیکد نجات بخش
اواخر سال ۱۹۸۰ بود که پیشنهاد یک استاندارد جدید داده شد و در آن به هر حرف و یا نماد در هر زبانی یک عدد یکتا نسبت داده میشد و باید بیشتر از ۲۵۶ عدد می‌بود که آن را یونیکد نامیدند. در حال حاضر یونیکد نسخه ۶۰۱ شامل ۱۱۰ هزار کد می شود. ۱۲۸ تای آن همانند اسکی است. از ۱۲۸ تا ۲۵۵ مربوط به علائم و علامت‌هاست که بیشتر آن‌ها از استاندارد ISO-8859-1 وام گرفته شده‌اند. از ۲۵۶ به بعد هم بسیاری از علائم تلفظی و … وجود دارد و از کد ۸۸۰ زبان یونایی آغاز شده و پس از آن زبان‌های سیریلیک، عبری، عربی و الی آخر ادامه می‌یابند. برای نشان دادن یک کد یونیکد به شکل هگزادسیمال U+0048 نوشته می‌شود و برای تبدیل آن به دسیمال ۴*۱۶+۸=۷۲ استفاده می‌شود. به هر کد یونیکد، کد پوینت code point گفته میشود.
در ویکی پدیای فارسی، یونیکد اینگونه توضیح داده شده است: “نقش یونیکد در پردازش متن این است که به جای یک تصویر برای هر نویسه یک کد منحصر به فرد ارایه می‌کند. به عبارت دیگر، یونیکد یک نویسه را به صورت مجازی ارایه می‌کند و کار ساخت تصویر (شامل اندازه، شکل، قلم، یا سبک) نویسه را به عهده نرم‌افزار دیگری مانند مرورگر وب یا واژه‌پرداز می‌گذارد. “
یونیکد از ۸ بیت یا ۱۶ بیت استفاده نمی‌کند و با توجه به اینکه دقیقا ۱۱۰ ،۱۱۶ کد را حمایت می‌کند به ۲۱ بیت نیاز دارد. هر چند که کامپیوترها امروزه از معمار‌های ۳۲ بیتی و ۶۴ بیتی استفاده می‌کنند، این سوال پیش می‌آید که ما چرا نمی‌توانیم کاراکترها را بر اساس این ۳۲ بیت و ۶۴ بیت قرار بدهیم؟ پاسخ این سوال این‌است که چنین کاری امکان پذیر است و بسیاری از نرم افزارهای نوشته شده در زبان سی و سی ++ از wide character حمایت می‌کنند. این مورد یک کاراکتر ۳۲ بیتی به نام wchar_t است که نوعی داده char توسعه یافته هشت بیتی است و بسیاری از مرورگرهای امروزی از آن بهره مند هستند و تا ۴ بیلیون کاراکتر را حمایت می‌کنند.
شکل زیر دسته بندی از انواع زبان‌های تحت حمایت خود را در نسخه ۵.۱ یونیکد نشان می‌دهد

 

کد زیر در جاوااسکریپت کاراکترهای یونیکد را در مرز معینی که برایش مشخص کرده‌ایم نشان می‌دهد

<html>

<body>
<style type=”text/css”>p {float: left; padding: 0 15px; margin: 0;}</style>

<script type=”text/javascript”>
for (var i=0; i<2096; i++)
document.writeln ((i%256?”:'<p>’) + i + ‘: ‘ + String.fromCharCode (i) + ‘
‘);

</script>
</body>
</html>

CSS & Unicode
یکی از جذاب‌ترین خصوصیات در css، خصوصیت Unicode-range است. شما میتوانید برای هر کاراکتر یا حتی رنج خاصی از کاراکترها، فونت خاصی را اعمال کنید. به دو نمونه زیر دقت کنید:

/* cyrillic */
@font-face {
font-style: normal;
src: local(‘Roboto Regular’), local(‘Roboto-Regular’), url(https://fonts.gstatic.com/s/roboto/v14/mErvLBYg_cXG3rLvUsKT_fesZW2xOQ-xsNqO47m55DA.woff2) format(‘woff2’);
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-style: normal;
src: local(‘Roboto Regular’), local(‘Roboto-Regular’), url(https://fonts.gstatic.com/s/roboto/v14/-2n2p-_Y08sg57CNWQfKNvesZW2xOQ-xsNqO47m55DA.woff2) format(‘woff2’);
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-style: normal;
src: local(‘Roboto Regular’), local(‘Roboto-Regular’), url(https://fonts.gstatic.com/s/roboto/v14/u0TOpm082MNkS5K0Q4rhqvesZW2xOQ-xsNqO47m55DA.woff2) format(‘woff2’);
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-style: normal;
src: local(‘Roboto Regular’), local(‘Roboto-Regular’), url(https://fonts.gstatic.com/s/roboto/v14/NdF9MtnOpLzo-noMoG0miPesZW2xOQ-xsNqO47m55DA.woff2) format(‘woff2’);
unicode-range: U+0102-0103, U+1EA0-1EF1, U+20AB;
}
/* latin-ext */
@font-face {
font-style: normal;
src: local(‘Roboto Regular’), local(‘Roboto-Regular’), url(https://fonts.gstatic.com/s/roboto/v14/Fcx7Wwv8OzT71A3E1XOAjvesZW2xOQ-xsNqO47m55DA.woff2) format(‘woff2’);
unicode-range: U+0100-024F, U+1E00-1EFF, U+20A0-20AB, U+20AD-20CF, U+2C60-2C7F, U+A720-A7FF;
}

در صورتی که در Unicode-range، تنها یک کد مانند U+20AD نوشته شود، فونت مورد نظر فقط بر روی کاراکتری با همین کد اعمال می‌شود. ولی اگر بین دو کد از علامت – استفاده شود، فونت مورد نظر بر روی کاراکترهایی که بین این رنج هستند اعمال می‌شود U+0025-00FF و حتی می‌توان اینگونه نوشت ??U+4 روی کاراکترهایی در رنج U+400 تا U+4FF اعمال می‌شوند. برای اطلاعات بیش‌تر به اینجا و اینجا مراجعه کنید.
به ۶۵۵۳۶ کد اول یونیکد Basic Multilingual Plan یا به اختصار BMP می‌گویند و شامل همه کاراکترهای رایجی است که مورد استفاده قرار می‌گیرند. همچنین یونیکد شامل یک فضای بسیار بزرگ خالی است که به شما اجازه توسعه دادن آن را تا میلیون‌ها کد می‌دهد. به کاراکترهایی که در این موقعیت قرار می‌گیرند supplementary characters یا کاراکترهای مکمل گویند. برای اطلاعات بیشتر می‌توانید به سایت رسمی یونیکد مراجعه کنید. در اینجا هم مباحث آموزشی خوبی برای یونیکد دارد، هر چند کامل‌تر آن در سایت رسمی برای نسخه‌های مختلف یونیکد وجود دارد.

 the story of unicode 2 - بلاگ

UTF-8 نجات بخش می‌شود
بسیاری از مشکلات ما حل شد. همه حروف را داریم و مرورگر‌ها نیز همه حروف را میشناسند؛ ولی برای ما دو مشکل ایجاد کرده است:
بسیاری از نرم افزارها و پروتکل‌ها هنوز ۸ بیتی کار می‌کنند.
اگر یک متن انگلیسی ارسال کنید، ۸ بیت هم کافی است ولی در این حالت ۳۲ بیت جابجا می‌شود؛ یعنی ۴ برابر و در ارسال و دریافت و پهنای باند برایمان مشکل ایجاد می‌کند.
برای حل این مشکل استاندارهای زیادی چون USC-2 یا UTF-16 ایجاد شدند ولی در سال‌های اخیر برنده رقابت، UTF-8 بود که مخفف عبارت Universal Character Set Transformation Format 8 bit می‌باشد. این کدگذاری بسیار هوشمندانه عمل می‌کند. موقعی که شما کاراکتری را وارد می‌کنید که کدش بین ۰ تا ۲۵۵ است، ۸ بیت به آن اختصاص می‌دهد و اگر در محدوده‌ای است که بتوان دو بایت را به آن اختصاص داد، دوبایت و اگر بیشتر بود، سه بایت و اگر باز بیشتر بود ۴ بایت به آن اختصاص میدهد. پس با توجه به محدوده کد، تعداد بایت‌ها مشخص می‌شوند. بنابراین یک متن نوشته شده انگلیسی که مثلا از کدهای بین ۰تا ۱۲۸ استفاده می‌کند و فرمت ذخیره آن UTF-8 باشد به ازای هر کارکتر یک بایت ذخیره می‌کند.

 the story of unicode 3 - بلاگ

مقایسه‌ای بین نسخه‌های مختلف :

 the story of unicode 4 - بلاگ

همانطور که می‌بینید UTF-8 برای کاراکترهای اسکی، از یک بایت و برای دیگر حروف از دوبایت و برای بقیه BMP‌ها از سه بایت استفاده میکند و در صورتی که کاراکتری در ناحیه مکمل supplementary باشد، از چهار بایت استفاده خواهد کرد. UTF-16 از دو بایت برای نمایش کاراکترهای BMP و از ۴ بایت برای نمایش کاراکترهای مکمل استفاده می‌کند و در UTF-32 از ۴ بایت برای همه کاراکترها یا کد پوینت‌ها استفاده می‌شود.