Big Data

من اسفند ماه سال کذشته در همایشی شرکت داشتم تو دانشگاه آزاد واحد تهران جنوب که توسط انجمن علمی این دانشکده (که روزی خودم دبیرش بودم!) برگزار شده بود، و به معرفی محصولات جدید مایکروسافت می پرداخت. تو این همایش من علاوه بر شنونده، سخنران هم بودم و در مورد ویژگی های جدید SQL Server تو نسخه 2012 صحبت کردم و بخشی از صحبت رو هم به Big Data اختصاص دادم.

bigdataدر حال حاضر فقط به طور خلاصه یه تعاریفی ازش تو این مطلب به همراه چند تا مطلب مفید مرتبط به شما ارائه می کنم، تا بعد در فرصت مناسب بیشتر بنویسم در این مورد.

حرف اصلی Big Data از منظر کسب و کارها این که بشه از حجم زیاد داده های تولید شده، برای بهبود و رونق کسب و کار و یا بهتر کردن زندگی جمعی استفاده کرد. از منظر پیاده سازی هم باید به دنبال ابزارهایی بود که بشه تو مدت زمان کم، حجم زیادی از داده ها رو پردازش کرد و ازشون اطلاعات ارزشمند برای تحلیل ها به وجود اورد.

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

برای آشنا شدن با کاربردهاش این مطلب رو بخونید:

http://www.cio.com/slideshow/detail/92712/10-Real-World-Big-Data-Deployments-That-Will-Change-Our-Lives#slide1

و برای آشنا شدن با یکی از بستر های open source پردازش big data پیشنهاد می کنم Hadoop رو جست و جو کنید یا مطلب زیر رو بخونید

http://www.drdobbs.com/database/hadoop-the-lay-of-the-land/240150854

بهترین های Firefox برای توسعه دهندگان

از آخرین باری که مطلبی رو توی وبلاگ منتشر کردم زمان زیادی میگذره. واقعا فرصت نداشتم از طرفی کمی هم انگیزه سابق رو ندارم. باری، به مناسبت نوروز باستانی و فرا رسیدن سال 92،  این مطلب تقدیم می کنم به همه ی Developer های ایرانی …

خوب الان چند وقتی هست که سهم عمده ی مرورگرهای وب، در اختیار Google Chrome هست، با این حال یک سری ویژگی هایی در مرورگر Firefox هست که با وجود مصرف بالای منابع سیستمی که این مرورگر با خود دارد، دست کم برای توسعه دهندگان برنامه های تحت وب جذاب است و کاربردی.  البته نه تنها من، بلکه خیلی از دوستان هم باور دارن که نسخه های اخیر مرورگر Chrome هم از منابع سیستمی به ویژه RAM استفاده ی زیادی می کند.

با همه این ها، به مطلب اصلی می پردازم. در این مطلب بهترین افزونه های Firefox برای توسعه دهندگان برنامه های تحت وب رو معرفی خواهیم کرد.

بابک فخریلو

FireFTP

برنامه ای سریع و امن برای استفاده از پروتکل FTP جهت انتقال فایل ها، آن هم درست در مروگرتان!

FireBug

کمتر کسی هست که توسعه دهنده ی برنامه های تحت وب باشد و با این افزونه ی بی نظیر و عالی آشنا نباشد. ویرایش، وارسی و debug کردن کدهای CSS، HTML و JavaScript با این افزونه به سادگی قابل انجام است. جالب این که می توان به این افزونه plug-in هم اضافه کرد!

Web Deveoper

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

(Javascript Debugger (Venkman

محیطی قدرت مند برای debug کردن Java Script

SQLite Manager

دیتابیس های SQLite خود را به راحتی در مرورگر خود مدیریت کنید!

FirePHP

سادگی و سرعت در debug کردن که البته بیشتر برای کسانی که با AJAX سر و کار دارند مفید است.

FlashFirebug

هر محتوای از نوع SWF را می توانید با این افزونه debug کنید.

Read the rest of this entry

چیزهایی که من از خواندن Specification C# یاد گرفتم

bookبعد از خواندن دوباره کتاب C# in depth از Jon Skeet من تصمیم گرفتم سعی کنم واقعاً Specification زبان C# رو بخونم …

به عنوان کسی که به طور شهودی هر چیزی رو یاد میگیره ، تصمیم گرفتم یک نسخه از کتابی رو خریداری کنم که با توضیحات و تفاسیر کامل تمام تاپیک های C# رو تا .NET 4 رو پوشش داده باشه – که کامنتهای خوبی از متخصص ها در این زمینه هم داشته باشه.

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

در این قسمت شما میتوانید چیزهای جدیدی که من از خواندن فصل اول یاد گرفتم رو ببینید :

تمام انواع Value Type در Stack ذخیره نمی شوند

بیشتر Developerها اعتقاد دارند که reference type ها در heap ذخیره میشوند درحالی که value type ها همیشه در stack – این قضیه همیشه هم درست نیست .

یک کلاس را در نظر بگیرید (که به عنوان یک reference type شناخته می شود) که یک عضو Integer ( که یه عنوان یک value type شناخته میشود) دارد ، کلاس در heap ذخیره میشود و بنابر این اعضای آن شامل value type هم در heap قرار میگیرند و فقط دیتای آنها به صورت by value کپی میشود .

Read the rest of this entry

جایگاه NoSQL در دنیای امروز توسعه نرم افزار

قبل تر در دو مقاله  به معرفی NoSQL و نمونه هایی از آن که در .NET قابل استفاده هستند، پرداخته بودم. در این مقاله که از مجله ی ماهانه ی سایت Dr Dobbs برای شما ترجمه کردم، جایگاه این نوع از  دیتابیس را از منظر دیگه ای بررسی می کنم.

بابک فخریلو

یک از موضوعات بحث برانگیزی که حول NoSQL در بین توسعه دهندگان و معماران سیستم در جریان است، این است که بهترین جا برای استفاده از این نوع دیتابیس ها، کجاست. باور به بعضی فناوری ها، زمان زیادی را می طلبد. به عقیده برخی از توسعه دهندگان، NoSQL برای برنامه های کاربردی خاصی می تواند مفید باشد و دیتابیس های از نوع RDBMS همچنان چیرگی گذشته خود را حفظ خواهند کرد. چنین بحث هایی مانع از تغییرات بنیادین در چگونگی توسعه ی برنامه های کاربردی می شود. باهم چند ویژگی اساسی NoSQL را بررسی می کنیم تا ببینم تاثیر آن بر شکل دهی معماری برنامه های کاربردی در آینده و حتی حال حاضر چگونه خواهد بود.

بسط پذیری و Big Data

دیگر بحث بر سر داده هایی با چندین گیگابایت نیست، حتی برنامه های با اندازه کوچک هم با ترابایت یا پتابایت سر و کار دارند، که بیشتر این حجم از داده به طور مدوام در حال تغییر و رشد کردن است. هرچه بار داده ای بیشتر می شود، سازمان های IT محور به دنبال راهی خواهند بود که به سرعت سیستم خود را، بدون پرداخت صدهاهزار دلار برای خرید یک سرور، بسط و توسعه دهند.

دیتابیس های NoSQL برای چنین نیازی هایی راه حل ارائه می  دهند، چرا که طوری طراحی شده اند تا اصلاحا scale out شوند و نه scale up. این دیتایس ها با عملکرد خودکار روی چندین سرور ارزان قیمت یا روی بستر cloud، امکان افزایش و کاهش ظرفیت را با هزینه ای مقرون به صرفه فراهم می کنند. شما بدون نیاز به پرداخت هزینه های بالا، سیستمی با عملکرد فوق العاده خواهید داشت.

از انجایی که محدودیت بسط پذیری این دیتابیس ها کم است، در مدیریت حجم داده های زیاد، که نیاز برنامه های امروز است، بسیار بهتر عمل می کند.

تغییر معماری سیستم

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

NoSQL به طور ذاتی با معماری سیستم های جدید تطابق دارد، یعنی طوری طراحی شده که در node های بیشماری بسط پیدا می کند و با اضافه و کم شدن یک node، همچنان به عملکرد خود ادامه می دهد. این شکل از  طراحی، هزینه های بسط سیستم و نیز مدیریت سیستم (system administration) را کاهش می دهد. خیلی از دیتابیس های NoSQL حتی قابلیت location-aware را نیز دارند، یعنی بسته به محل جغرافیایی کاربر، سرعت ارائه داده ها می تواند افزایش پیدا کند (مانند انچه در Content Delivery Network ها وجود دارد).

سادگی استفاده

از آنجایی که این دیتابیس ها، برخلاف RDBMS، schema ی ثابت ندارند، کار کردن با آنها ساده است. شما می توانید خیلی سریع برنامه ی خود را اماده کنید، بدون این که نگران باشید به خاطر تغییر در سیستم نرم افزاری تان، مجبور به سپری کردن زمان برای تغییر schema باشید. به اضافه این که خاصیت document-oriented بودن این دیتابیس ها، نیاز به تبدیل پرس و جوهای SQL به کد object-oriented (انچه که ORM ها انجام می دهند)، و برعکس را، برطرف می کند. خوب با این توضیحات آیا NoSQL جایگزین RDBMS خواهد شد؟ پاسخ این است که نه به این زودی ها. باید چشم انتظار آینده بود…آینده ای نزدیک البته

برگرفته از:

Why NoSQL Is Here To Stay

بیشتر بخوانید:

NoSQL چیست؟

RavenDb

کار با برنامه های تحت وب، از طریق صوت در Chrome

بابک فخریلو

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

نسخه بتا از Chrome 25 با عرضه ی Web Speech API، به توسعه دهندگان این امکان را می دهد تا ویژگی تشیخص صوت را در برنامه های کاربردی خود قرار دهند.

«در آینده نزدیک، می توانید از  طریق صحبت کردن با برنامه ها همه ی کارهایتان را انجام دهید» این را یکی از مهندسان گوگل در یک پست وبلاگ اعلام کرده است.

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

پیش از این گوگل امکان نصب افزونه ها را از طریق مکانیسم Regisrty فراهم می کرد، و کاربران می توانستند افزونه هایی که به نظرشان مفید می آمد را نصب کنند.

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

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

همچنین این نسخه شامل بهبودهایی امنیتی ویژه توسعه دهندگان نیز هست. برای مثال، توسعه دهندگان می توانند فهرستی از منابع محتوایی مورد اعتماد را با استفاده از  CSP HTTP Header مشخص کنند.

این بهبود امنیتی که با بهره گیری از CSP، پدید آمده، باید تهدیداتی مانند cross-site scripting و content injection را کاهش دهد.

برگرفته از :

New Chrome browser beta adds voice recognition API

اولین پروژه open source من

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

پروژه ای که من به صورت open sourcr برای استفاده ی توسعه دهنده ها قرار دادم، با استفاده از asp.net mvc نوشته شده. برای بخش دیتابیس، از NHibernate ORM استفاده کردم، و از کتابخونه های jquery هم استفاده های زیادی تو بخش UI کردم. این پروژه نقص های زیادی داره ولی برای کاربردهای آموزشی و این که توسعه دهنده ها بتونن ایده ازش بگیرن، به نظرم مفید باشه.

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

واسط کاربری این پروژه رو یاسر حسینی طراحی کرده که بازهم ازش به خاطر همکاری تشکر می کنم.

برای دریافت این پروژه :

https://bitbucket.org/persiandeveloper/blogservice

خود کشی مبتکر «آر اس اس»

A5B37354-82C8-4D84-844B-8F8F8C703A75_w640_r1_s_cx0_cy7_cw0

رون سوارتز، نابغه اینترنتی و از پدیدآورندگان خوراک‌خوان (RSS) و سایت محبوب «رِدیت»، روز جمعه ۲۳ دی ماه،‌ خودکشی کرد.یکی از اقوام این نابغه جوان گزارش مرگ او را در گفت و گو با سی ان ان تأیید کرده است. به گزارش شبکه خبری سی ان ان، آرون سوارتز در زمان فوت تنها ۲۶ سال داشت.به نوشته سی ان ان، نام سوارتز با برخی پدیده‌های دنیای سایبر در سال‌های اخیر عجین شده است. او که در مدت زمانی کوتاه مدارجی را طی کرد که بسیاری آرزویش را به دل دارند، اندکی پس از رسیدن به شهرت و موفقیت به یک کنشگر پُرکار اینترنتی تبدیل شد.گفته می‌شود آرون سوارتز دچار حالات افسردگی بوده و یک بار هم در بلاگ شخصی خود به این مسئله اعتراف کرده بود. Read the rest of this entry

رسم نمودار در ASP.NET MVC

بابک فخریلو


رسم نمودار تو پروژه های وب هنگامی که می خواید گزارش رو درست کنید از داده ها، لازم میشه. یکی از این مواردی که من تو یکی از پروژه هام به نمودار نیازمند شدم، رسم داده های دریافتی از Google Analytic و نمایش آمار روزانه بازدید از سایت بود. وقتی شروع به جست و جو کردم، به یه کتابخونه وابسته به  Jquery رسیدم که  رایگان و open source، و قابلیت های خیلی زیادی داره. این کتابخونه جاوا اسکریپت  jqplot هست، و هماهنگی خوبی هم با محصولات مایکروسافت داره و حتی کنترل هایی هم برای ASP.NET web form. اما برای استفاده از اون در ASP.NET MVC، از اونجایی که خوشبختانه!! (بله خوشبتانه!) خبری از کنترل های سفارشی نیست، باید به طور مستقیم خودتون دست به کار بشید و نمودار هاتون رو رسم کنید.

jqplot-sample

 

تو مثالی که برای کار کردن با jqplot برای شما آماده کردم، ما داده هایی متشکل از تاریخ و یک عدد برای هر تاریخ (که مثلا میتونه نشون دهنده ی آمار بازدید از سایت برای اون تاریخ باشه) رو برای ساختار داده انتخاب می کنیم:

    public class DailyHit
    {
        public String DayDate { get; set; }
        public int Hits { get; set; }
    }

فرض ما بر این که namespace برنامه ی شما Yourname و کلاسی که تعریف کردیم تو پوشه ی Models قرار گرفته. حالا نوبت به تعریف Action می رسه:

   public ActionResult GetDailyReport()
   {
            //GetReport method return list of daily reports in form of IEnumerable
            var result = _VisitiReportService.GetReport();

            return View(result);
    }

ما در اینجا فرض می کنیم که شما سرویسی برای دریافت گزارش های بازدید روزانه دارید (می تونید خودتون مکانیسیمی برای ثبت بازدید ها داشته باشید و از دیتابیس خودتون داده ها رو بخونید، یا متصل بشید به یه سرویس دیگه مثل Google Analytic و داده ها رو از اونجا استخراج کنید) که داده ها رو در قالب فهرستی از DailyHit ها بر می گردونه. این داده ها رو در قالب مدل، به View مربوط به خودش ارسال می کنیم. این هم از View :

   @model IEnumerable<YourNameSpace.Models.DailyHit>

    <script src="@Url.Content("~/Scripts/jquery-1.8.3.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jquery.jqplot.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jqplot.highlighter.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jqplot.cursor.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jqplot.dateAxisRenderer.min.js")" type="text/javascript"></script>
    <script src="@Url.Content("~/Scripts/jqplot.json2.min.js")" type="text/javascript"></script>

    <link href="@Url.Content("~/Content/jquery.jqplot.min.css")" rel="stylesheet" type="text/css" >

	<script type="text/javascript">
     $(document).ready(function () {

    var plot1 = $.jqplot('reportChart', [chartline1], {
      title:'Report',
      legend: 
      { show: true, placement: 'outside',location:'ne',marginTop: '30px',showLabels: true },
      axes:{
        xaxis:{
          renderer:$.jqplot.DateAxisRenderer,
          tickOptions:{
            formatString:'%b %#d'
          } 
        },
        yaxis:{
          tickOptions:{
            formatString:'%d'
            },
            min:0
        }
      },
      highlighter: {
        show: true,
        sizeAdjust: 7.5
      },
      cursor: {
        show: false
      }
  });

 });
  </script>

  <div id="reportChart" style="width: 600px; height: 400px; position: relative;">
  </div>

اول از همه باید کتابخونه Jquery رو به صفحه اضافه کرده باشید. ما فرض بر این گذاشتیم که شما از  layout (یا همون Site.master تو aspx) استفاده نکردید و View رو دارید به طور مستقل و بدون داشتن قالب کلی نمایش می دید، پس به طور صریح اشاره کردیم به Jquery. بعد برای این که بتونیم از Jqplot استفاده کنیم، باید اول از همه به اسکریپت jqplot.min.js ارجاع بدیم. از اونجایی که می خوایم کاربر با رفتن روی خطوط نمودار، مقادیر ببینه نیاز داریم که highlighter هم اضافه کنیم. ارجاع به cursor برای این که با ورود موس به منطقه ی نمودار، شکلش تغییر کنه ما تو اینجا ازش استفاده ای نداریم. dateAxisRenderer به طور خاص برای  نمایش نمودارهایی هست که توش بخشی از داده، از نوع تاریخ (Date) هست. و در نهایت از اونجایی که داده ها در قالب json تحویل لود کننده ی نمودار داده میشن، باید از json2.min هم استفاده کنیم.

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

اما script که برای لود کردن نمودار تعریف کردیم. تو اولین خط، یعنی

	var chartline1=@Html.GetStrippedJson(Json.Encode(Model));

ما از دو Helper استفاده می کنیم، یکی Json.Encode که جزو Helper های خود MVC هست و یک شی رو تبدیل می کنه به رشته ی JSON. اما از اونجایی که تو Jqplot، نباید نام property ها تو رشته ی json وجود داشته باشه، ما ناچاریم که اونا رو اصطلاحا Strip کنیم. برای این کار قطعا کتابخونه ای  مثل Newtoon.Json خیلی مفید تره که قابلیت های زیادی داره ولی من خودم یک Helper نوشتم که این کار رو برای ما انجام بده:

	public static MvcHtmlString GetStrippedJson(this HtmlHelper helper, string json)
        {
            json = json.Replace("\"DayDate\":", string.Empty);

            json = json.Replace("\"Hits\":", string.Empty);

            json = json.Replace('}', ']');

            json = json.Replace('{', '[');

            return MvcHtmlString.Create(json);
        }

تو کد بالا، هر جا که DayDate و Hits رو ببینه، جاش رشته ی خالی میذاره و به جای } و { هم، [ و ]  رو قرار میده تا تبدیل بشه به رشته ی استاندارد Json.

خوب حالا ما داده هامون رو تو متغیر chartline1 داریم.

نوبت می رسه به رسم نمودار. برای این کار اولین پارامتری که به تابع مربوط به رسم، یعنی  jqplot می فرستیم، محل رسم نمودار تو صفحه است. این محل باید تگ div باشه و id اون رو می فرستیم به عنوان پارامتر اول تابع رسم نمودار.  بعد نوبت می رسه به داده هامون، که ما از قبل تو chartline1 ذخیره کردیم شون. پارامترهای بعدی شامل عنوان نمودار، نمایش برچسب خطوط نمودار در کنار اون، تنظیم محور افقی و عمودی میشه. مثلا تو تنظیم محور افقی (xaxis) ما داریم به نمودار میگیم که باید از نوع تاریخ باشه و فرمت نمایش اون رو هم  براش تعیین می کنیم، تا فاصله ی بین هر نقطه از داد ها روی نمودار افقی رو تعیین کنیم. برای نمودار عمودی، که قراره تعداد بازدید های روز رو نشون بده، قالب نمایش رو مقدار عددی (D – به معنای digit) می گذاریم، و مشخص می کنیم که کمترین مقدار نمودار در محور عمودی باید صفر باشه.

پارامتر بعدی، مربوط به highlighter هست که به نمودار میگه با رفتن کاربر به هر کدوم از محل های تقاطع روز/تعداد بازدید، تعداد بازدید رو به همراه تاریخ اون روز، نمایش بده و اون نقطه رو هم highlight کن.

خوب، منتظر چی هستید! برید امتحان کنید دیگه

پیروز باشید

یاهو در نهایت HTTPS را برای سرویس های پیام رسانی خود فعال کرد

بابک فخریلو

اعتراض های متعدد کاربران سرویس ایمیل یاهو نسبت به عدم فعال بودن پروتکل  HTTPS برای این سرویس، در نهایت به ثمر نشست، و حالا یاهو HTTPS را برای سرویس های ایمیل و پیام رسانی خود فعال کرده است. فارغ از بررسی های فنی، این تصمیم یاهو حرکت مثبتی به سمت حفظ حریم خصوصی وامنیت کاربران محسوب می شود.

در حال حاضر، HTTPS به صورت پیش فرض برای برنامه های موبایل یاهو تحت iOS، Android و Windows 8 فعال است. کاربرانی که از طریق مرورگرها به سرویس ایمیل دسترسی پیدا می کنند، برای فعال کردن HTTPS باید به بخش تنظیمات مراجعه کنند (مطالعه راهنمای کامل). با فعال کردن این ویژگی، از پیام های تبادلاتی شما در Yahoo! Messenger هم  حفاظت می شود. البته این ویژگی صرفا برای دسترسی از طریق مرورگر فعال است، و نسخه ی رومیزی Yahoo! Messenger چند وقت دیگر به این ویژگی مجهز خواهد شد.

شاید این اقدام Yahoo! در پاسخ به نامه ی سرگشاده ی اینترنتی باشد که توسط کاربران بیشماری امضا شد، که در آن از Yahoo! خواسته شده بود نسبت به فعال کردن HTTPS برای سرویس ایمیل خود، اقدام کند.

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

برگرفته از :

Yahoo! bolsters privacy with global HTTPS support

10 مهارت مورد نیاز حوزه IT برای کسب و کارها در سال 2013

بابک فخریلو

مبتنی بر ارزیابی که از سوی Computer World و با همکاری 334 مدیر IT سازمان ها بدست آمده است، تعداد شرکت هایی که تصمیم دارند افراد متخصص در حوزه ی فناوری را در سال 2013 به استخدام خود در بیاورند، در حال افزایش است، و 33 درصد از مدیران سازمان ها در برنامه ریزی خود، افزایش نیروی کاری در حوزه ی IT را طی 10 ماه آینده گنجانده اند.

این سومین سال پپاپی است که در بین افراد شرکت کننده در ارزیابی های ما که تصمیم به افزودن نیروی  کاری در حوزه ی IT دارند، افزایش پیدا کرده است (سال 2009، 20 درصد، سال 2010، 23 درصد و سال 2012، 29 درصد).

«وقتی به گرایش های بازارها و تحقیقات نگاه می کنید، IT یکی از دو یا سه حوزه ی همیشه برتر در بین مشاغل است، و خوب باید هم همین طور باشد» این را John Reed، از بنیاد Robert Half Technology می گوید. «وقتی به فناوری نگاه می کنید، می بینید که بخش عظمی از جریان کسب کار ها را به پیش می برد، از سیستم های افزایش بهره وری بگیرید تا ارتباطات و افزایش سرعت در تصمیم گیری های بهتر مالی. بنابراین شرکت ها روی آن سرمایه گذاری می کنند، پس داشتن افراد مجربی که تضمینی برای بازگشت این سرمایه گذاری باشند، اهمیت زیادی دارد.»

computerworld-it-top-10-skills

البته، مدیران حوزه ی IT، به طور تصادفی افراد متخصص فناوری را استخدام نمی کنند. آنها به دنبال مهارت های خاصی هستند تا آنچه مورد نیاز کسب و کارها برای دنیای رقابتی امروز است، ارائه دهند. در اینجا نگاهی داریم به 10 مهارت مهم مورد نیاز برای سال 2013.

1. برنامه نویسی و توسعه ی برنامه های کاربردی

60 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

Reed می گوید، «فناوری و نرم افزار راه های بی نظیری برای شرکت ها هستند تا بهره وری خود را افزایش دهند، هزینه ها را کاهش دهند و حضور بهتری از خود در وب داشته باشند.» این را هم اضافه کنید که شرکت ها به دنبال کارمندانی خواهند بود که فناوری بهتر و جدید را برای برآورده کردن بهبود هایی که گفتیم، ایجاد کنند.

Jason Griffin، از شرکت Wells Fargo، می گوید: «نیازهای مهم ما در حال حاضر برنامه نویسی و توسعه ی برنامه های کاربردی است. ما به دنبال این هستیم که نیازهای کسب و کارمان توسط برنامه ها برطرف شود.»

او هم مانند بسیاری دیگر می گوید به طور خاص دنبال افرادی است که در Java، J2EE و .NET تخصص داشته باشند.

2. مدیریت پروژه

40 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

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

«پروژه های بیشتر یعنی مدیران پروژه بیشتر.» این را Reed می گوید و اضافه می کند که شرکت ها به همان اندازه که به مدارک رسمی اهمیت می دهند، تجربه هم برایشان مهم است.

Jamie Hamilton، معاون مهندسی نرم افزار Quicken Loans می گوید که شغل های مدیریت پروژه، در بین 100 موقعیت شغلی هستند که شرکت او تصمیم دارد به تیم IT خود اضافه کند.

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

3.پشتیبانی

35 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

Jack Wolf، از مرکز درمانی Montefiore می گوید که فهرستی تهیه کرده که در آن، استخدام سیستم های رادیولوژی جدید و برنامه های ثبت الکترونیک سلامت اشخاص جای گرفته اند. برای اطمینان از موفقیت، او نه تنها به دنبال افرادی است که این سیستم ها را پیاده سازی کنند، بلکه به دنبال تکنسین هایی است که بتوانند کارمندان مرکز درمانی را در استفاده از این وسایل، کمک کنند.

«سیستم جدید یعنی نیاز به پشتیبان های بیشتر برای آن سیستم»

4. امنیت

27 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

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

به عنوان مثال، شرکت هلندی Royal Philips  به دنبال ایجاد بخش امنیت IT برای سازمان خود است، و نیرو های خود را نه صرفا از هلند، بلکه حتی از امریکا هم استخدام خواهد کرد. این شرکت به دنبال افراد خبره در حوزه ی  برپایی Firewall، ابزارهای شناسایی تهدیدات، فناوری های رمز نگاری و سایر سیستم های امنیتی است.

5. هوش تجاری Business Intelligence/Analytics

26 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

Big data (داده های با حجم زیاد) یکی از اولویت های بالا برای بسیاری از شرکت هاست، اما پیدا کردن افراد مناسب برای تحلیل تمامی این اطلاعات، چالش بزرگی است.

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

6. Cloud/SaaS

25 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

Fuller از Dominion Enterprises، می گوید این شرکت به دنبال افراد خبره در زمینه ی Cloud Computing است، چرا که نیازهای شرکت فراتر از دو Data Center فعلی رو به حرکت است.

او ادامه می دهد که «ما باید بدانیم که مراکز داده خود را در کجا قرار دهیم، چطور آنها را تنظیم کنیم، و چطور باید از داشتن پشتیبان از این مراکز داده، مطمئن باشیم.»  اینها همه نیاز به افرادی دارد که با معماری سیستم های Cloud آشنا هستند.

7. مجازی سازی

24 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

Jon A. Biskner، دستیار معاون بخش IT در Nicolet National Bank، می گوید که به دنبال ایجاد یک موقعیت شغلی برای مدیریت مجازی است.

«پیدا کردن شخصی که تبحر کاملی در مجازی سازی داشته باشد، سخت است. این افراد باید فضای ذخیره سازی و cluster های که پشت پرده ی سرور مجازی مشغول به کار هستند را درک کنند.»

8.شبکه

19 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

افراد حرفه ای در  شبکه، همچنان جزو 10 نیروی متخصصی هستند که همیشه مورد نیاز هستند، گرچه درخواست برای توانایی های شبکه از 38 درصد در سال 2012 به 19 درصد در سال 2013 کاهش یافته است. با وجود این کاهش، مدیران IT می گویند که همچنان به افراد حرفه ای شبکه که تجربه های قوی دارند، نیاز خواهند داشت.

9.برنامه های موبایل و مدیریت ابزارها

19 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

هرچه استفاده ی مصرف کنندگان و کسب کارها از تلفن های هوشمند و Tablet ها زیاد می شود، شرکت ها به دنبال استخدام افرادی هستند که درخواست های مربوط به ازدیاد چنین ابزارهایی را مدیریت کنند. Kathy Junod، از مدیران IT شرکت Auxilium Pharmaceuticals، می گوید در برنامه ریزی خود برای استخدام نیروی جدید، تصمیم دارد موقعیا شغلی با عنوان mobile manager را ایجاد کند. او نیاز به مدیری با تجربه دارد که بتواند ایجاد برنامه های کاربردی برای موبایل را که مورد نیاز کسب  و کار شرکت شان است، مورد ارزیابی قرار  دهد.

10. Data Center

16 درصد از مدیران تصمیم به استخدام نیروی متخصص در این حوزه را برای 12 ماه آینده دارند.

جای تعجب نیست که توانایی های مربوط به Data Center هنوز در بین 10 توانایی برتر هستند، چرا که جزو آن دسته از مهارت هایی است که درخواست برای آن بالاست. به گزارش CompTIA، مدیریت Server/Data Center و فضای ذخیره سازی و پشتیبانی داده ها، جزو مهارت های است که درخواست نیرو برای آنها همچنان بالاست.

برگرفته از :

10 hot IT skills for 2013

Chrome و راه حل های جایگزینش برای برنامه های مورد نیاز شما

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

بابک فخریلو

وقتی Tim Berners-Lee، اولین مروگر را در سال 1990 به وجود آورد، صرفا برنامه ای بود که صفحات HTML را تفسیر می کرد به کاربر نمایش می داد. اما اگر به مرورگر های امروزی نگاه کنیم، می بینیم که مرورگرها برای خودشان یک سکوی قدرتمند شده اند، و قابلیت این را دارند که کدهای پیچیده Java Script را اجرا کنند. شاید بتوان گفت یک سیستم عامل کوچک هستند.

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

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

با این حال، اگر تا به حال دقت زیادی به قدرت رو به رشد extension های Chrome و برنامه های تحت وب نکرده اید، خواندن ادامه این مقاله می تواند حسابی شما را شگفت زده کند چرا که جایگزین های خوبی برای  برنامه های desktop که تا به حال استفاده کردید معرفی خواهیم کرد.

Word Processor

خیلی بعید است که تا به حال با یک برنامه ی Word Processor (برنامه هایی مانند Microsoft Word) کار نکرده باشید(بالاخره تحقیق دانشجویی که داشتید!). اگر کارهای خیلی پیچیده ای انجام نمی دهید، می توانید از Google Drive برای انجام نیازی هایتان که وابسته به Word Processor  هستند، استفاده کنید. قطعا واسط کاربری (ظاهر برنامه) متفاوت خواهد بود. اما Google Drive به شما اجازه می دهد تا تمام کارهای مهم، مانند قالب بندی متن، ایجاد عنوان و فهرست ها، قرار دادن تصویر در مستندات و … را انجام دهید.

اگر خیلی به این عادت دارید که فایل های Word را ایمیل کنید یا از دیگران به صورت ایمیلی دریافت کنید، Google Drive حتی از معادل های desktop هم بهتر است: می توانید شخص دیگری را هم دعوت کنید که فایل مستند شما را ببیند، یا هر دوی شما روی آن به طور همزمان کار کنید، و تغییرات را به طور لحظه ای ببینید. حالا اگر Skype را هم وارد بازی کنید، مثل این می ماند که در یک اتاق مشترک دارید روی یک مستند کار می کنید.

Writer و Scratchpad

Google Docs که البته اکنون در قالب Google Drive به کاربران خدمات می دهد، در مقایسه با واسط کاربری مدل Ribbon، ساده تر است. Writer که یک افزونه ویژه ی Chrome است، واسط کاربری خیلی ساده ای دارد، و تمرکز کاربر را از  بین نمی برد: یک صفحه مشکی با متن تک رنگ و یک شمارش گر واژه ها در پایین. این افزونه خودش به طور خودکار مستندات را برای شما ذخیره می کند، بدون نیاز به حساب کاربری و تنظیم خاصی، می توانید از آن استفاده کنید.

 

خوب ابزارهای Word Proccessr را بررسی کردیم. اما گاهی صرفا نیاز دارید یک نوشته ای را در جایی ثبت کنید، چیزهایی که نمی خواهید فراموش کنید!! همان دفترچه یادداشت روزانه! برای چنین مواقعی، افزونه ی  Scratchpad به کار شما می آید.

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

Gmail Offline و Outlook

اگر عادت کار کردن به برنامه هایی مانند Outlook دارید، جایگزین کردن آن با یک برنامه تحت وب مانند Gmail یا Outlool.com می تواند کمی  نامطلوب باشد. هر دوی اینها برنامه های تحت وب قدرت مندی هستند، اما ممکن است گهگاه تاخیرهایی را در کار کردن احساس کنید. اما جایگزینی وجود دارد، و آن هم Gmail Offline است، این افزونه ی Chrome، چهره ای متفاوت به Gmail می دهد، و ان را برای تبلت ها قابل استفاده تر می کند.

همان طور که از نامش پیداست، می توانید از Gmail Offline حتی با یک اتصال متناوب به وب هم استفاده کنید: این افزونه می تواند به سرویس متصل شود، پیام ها را همگام سازد، و اتصاف را ببند، بعد می توانید هرجا که باشید ایمیل های ذخیره شده را بخوانید، بدون این که نیاز به دسترسی به اینترنت داشته باشید. Gmail Offline می تواند یک جایگزین قدرت مند برای یک email client از نوع desktop باشد. جالب این است که ویژگی هایی مانند فیلتر کردن ایمیل های دریافتی، یا ارسال ایمیل با قابلیت انتخاب از بین چندین ارسال کننده هم در این افزونه وجود دارد.

اگر ترجیح می دهید از سرویس ایمیل Microsoft استفاده کنید، می توانید افزونه ی Outlook.com Notifier را نصب کنید، بدین ترتیب می توانید خیلی سریع ببینید که چه تعداد ایمیل به Outlook شما افزوده شده. این افزونه ی  ساده یک آیکون دارد که تعداد ایمیل های نخوانده را نشان می دهد، و البته از ویژگی  Desktop Notification مرورگر استفاده می کند تا به محض دریافت پیام جدید، به کاربر اطلاع دهد.

Spreadsheets

پیدا کردن یک جایگزین برای Microsoft Excel، به راحتی پیدا کردن جایگزین برای یک Word Processer یا Email Client نیست. اما Google Drive این جایگزین را برای شما فراهم می کند، البته تفاوت هایی در قدرت و ویژگی ها وجود دارد. مثلا اگر در Excel، یک spreadsheet جدید را باز کنید و  کلید اشاره به پایین را برای چند دقیقه فشار دهید، می توانید تا 100000 سطر را به وجود بیاورید، اما در Google Spreadsheet، بعد از چند ثانیه دیگر امکان پیش روی  برای داشتن سطر های بیشتر وجود نخواهد داشت. اگر سطر های بیشتری بخواهید، باید به طور دستی و با کلیک کردن روی یک دکمه که در پایین Spreadsheet قرار گرفته، این کار را انجام دهید. اما یک Spreadsheet تحت وب دیگر هم وجود دارد که Zoho نام دارد، و مشکل Google Drive را در افزودن سطر های بیشتر ندارد.

اگر به استفاده از macro ها عادت دارید، باید بدانید که هر دو برنامه های تحت وب که معرفی کردیم، از این ویژگی پشتیبانی می کنند. اما Google با ارائه ی Script Gallery به شما اجازه می دهد در بین macro های ایجاد شده توسط دیگر کاربران جست و جو کنید و آنها را قرض بگیرید. هم Zoho و هم Google Drive، ویژگی های برنامه های Spreadsheet قدرت مند را ارائه می دهند، و Google Drive همان طور که قبلا هم اشاره کردیم، امکان کار همزمان چند نفر را روی یک مستند فراهم می سازد.

نکته ای که باید توجه داشت این است که وقتی روی  داده های زیادی کار می کنید، Excel گزینه ی انتخابی شما خواهد بود، چرا که Google Spreadsheet یا Zoho برای کار کردن با داده های بسیار بزرگ خوب نیستند.

Presentation: SlideRocket، Google Drive، Prezi

SlideRocket یک ابزار ارائه (Presentation) مبتنی بر Flash است که ویژگی های کاربردی زیاد دارد و می تواند تحسین کاربران MS PowerPoint را هم بر انگیزد. ویژگی هایی مانند slide transition، element animations، image effects و بسیاری دیگر. با استفاده از این برنامه، قرار دادن فیلم های Youtube یا تصاویر Flickr در ارائه تان ساده می شود. نسخه ی پولی این برنامه امکان تحلیل بازخورد  مخاطبان نسبت به ارائه شما را فراهم می سازد، مثل این که چقدر آنها وقت شان  را روی هر slide سپری کرده اند. حتی نسخه های هم برای ابزارهای قابل هم دارد، یعنی می توانید با سیستم های مجهز به Android یا iOS با آن کار کنید.

مستندات که از نوع ارائه هستند، به نوعی مترادف با slide ها هستند، اما لزوما نباید این طور باشند: خوب اگر تصمیم دارید PowerPoint  را کنار بگذارید، چرا مفهوم slide ها را هم به کنار نگذارید؟ Prezi به شما این امکان را می دهد که ارائه ی خود را در قالب یک بوم نقاشی بزرگ ایجاد کنید، به جای این که مجموعه ای از slide های مجزا را داشته باشید. با پخش شدن فایل ارائه، گردش روی بوم انجام می شود و با فرمان شما روی بخش های مورد نظرتان بزرگ نمایی می کند.

اگر میخواهید بدانید که Google برای این نیاز شما هم چیزی دارد یا نه، می توانیم شما را باز به Google Drive ارجاع بدهیم. ویژگی جالبی که ابزار ارائه ی Google  دارد، امکان جست و جو در میان داده ها و تصاویر از وب و استفاده از آنها در فایل مستندی است که در حال ساختنش هستید.

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

ویرایش تصویر

بدون شک بهترین ابزار ویرایش تصویر در بین برنامه های Desktop، نرم افزار Photoshop است. اما این روزها، نسخه ی online این نرم افزار هم به نام Photoshop Express در اختیار کاربران قرار داده شده است. گرچه از نسخه ی Desktop خود بسیار متفاوت است، اما می تواند در انجام کارهای اولیه ویرایش تصویر، شما را کمک کند. با این وجود، برای Chrome افزونه ای ندارد. با این وجود دو ابزار دیگر هستند که برای Chrome افزونه دارند، یکی Pixlr و دیگری PicMonkey.


افزونه ی Pixlr برای Chrome، بیشتر از صرفا یک لینک به وب سرویس است، بلکه یک ویرایش گر تصویر Flash است که هم قدرت مند است و هم کار کردن با آن ساده. می توانید خیلی سریع تصاویر را از کامپیوتر خود به آن بارگذاری کنید، لایه های جدید بسازید، سطوح را تنظیم کنید، جلوه های که می خواهید را به آن اضافه کنید، و بسیاری کارهای دیگر. با وجود ویژگی های قدرتمندی که این ابزار دارد، باید به خاطر داشته باشید که Flash-based است و حتما هر از چندگاهی فایل ویرایش شده ی خودتان را باید ذخیره کنید، چرا که ممکن است Crash کند و از کار بیافتد.

خوب Pixlr شباهت زیادی به ابزارهای سنتی ویرایشگر تصویر دارد و اگر به دنبال چیزی مانند Instagram هستید، بهتر است PicMonkey را ببینید. کار کردن با این ویرایشگر تصویر بسیار ساده است: تصویر مورد نظر خود را انتخاب کنید، و ابزارهای ویرایشگر را از نوار ابزار کناری انتخاب کنید. این نوار ابزار به دو بخش تقسیم شده، کارهای مقدماتی ماند برش و جلوه های رنگی خلاقانه که مشابه آن را در Picasa می توانیم ببینیم.

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

اگر بخواهیم جمع بندی داشته باشم، می توانم بگویم که برخلاف حالتی که در آن یک سیستم عامل جدید را برای کار خود انتخاب می کنید، استفاده از  معادل های تحت وب برای برنامه های desktop، روندی است که به مرور زمان انجام می شود، یعنی قرار نیست یک شبه کار کردن با Excel و PowerPoint و … را متوقف کنید.

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

برگرفته از :

13 killer Chrome apps to replace your desktop software

استانداردی جدید در میان پروتکل های اینترنت؛ HSTS

بابک فخریلو

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

HTTP Strict Transport Security (HSTS) به وب سایت ها اجازه می دهد تا صرفا از طریق HTTPS قابل دسترس باشند، و طوری طراح شده تا مانع از حملاتی شود که در آن، فرد هکر کاربران را مجبور به استفاده از اتصال HTTP می کند یا مشکلاتی را در HTTPS به وجود می آورد تا یکپارچگی محتوای بی خطر را مورد تهدید قرار دهد.

IETF، گروهی که موظف به توسعه و ارتقای استاندارد های اینترنت هستند، مشصخه های HSTS را در قالب مستند استاندارد RFC 6797 ، منتشر کرده اند. بخش امنیت وب در IETF، از سال 2010 روی این استاندارد جدید کار می کرده، که در آن زمان پیش نویس این استاندارد، توسط Jeff Hodges از PayPal، Collin Jackson از دانشگاه Carnegie Mellon و Adam Barth از Google، ارائه شد.

HSTS مانع از حملاتی که اصطلاحا mixed content خوانده می شوند، می  گردد. این نوع از حملات زمانی رخ می دهد که script ها یا سایر منابع جای گرفته در یک وب سایت، که روی HTTPS سرویس ارائه می دهد، از یک منبع شخص ثالثی (به عنوان نمونه می توان به اسکریپت های آمار گیری اشاره کرد) و با یک اتصال غیر امن بارگذاری می شوند. بروز چنین رخنه ای می تواند عمدی یا در نتیجه ی بی توجهی در فرآیند توسعه ی آن وب سایت باشد.

وقتی مرورگر منابع را از اتصال های غیر امن بارگذاری می کند، درخواست خود را از طریق HTTP می فرستد، که در این حالت می توان حتی session cookie کاربر را هم ارسال کرد. مهاجم می تواند درخواست ارسالی را به راحتی با  sniff کردن شبکه باز کرده، cookie را از  آن استخراج کند، و حساب کاربری افراد را در وب سایت ها سرقت کند.

مکانیسم HSTS همچنین مانع از حملات نوع man-in-the-middle می شود، که در آن شخص مهاجم می تواند اتصال کاربر به یک وب سایت را مانیتور کند و مرورگر کاربر را وادار کند به جای اتصال HTTPS، از  اتصال HTTP استفاده کند. این تکنیک همچنین با نام SSL Stripping هم شناخته می شود، و ابزارهایی هم برای انجام آن وجود دارد.

وقتی مرورگر با HTTPS به وب سایتی متصل می شد که از HSTS پشتیبانی می کند، یک چیزی مانند شناسه (در متن اصلی با نام policy آمده است) ذخیره می شود که البته طول عمر مشخصی دارد. از آن به بعد، تا زمانی که شناسه منقضی نشده، مرورگر از اتصال نا امن به آن وب سایت خود داری خواهد کرد.

HSTS از طریق Http Response header منتقل می شود، و درون فیلدی به نام Strict-Transport-Security قرار می گیرد. از همان Header می تواند برای بروز رسانی یا تازه سازی شناسه ی امنیتی  ذخیره شده در مروگر استفاده کرد.

این استاندارد یکی از بهترین رخ دادها برای SSL است، چرا که مشکلاتی که 18 سال پیش هنگام طراحی SSL چشم پوشی شده بود را برطرف می کند.

HSTS کاری به هشدار های مشکوک بودن certificate ندارد. اگر مشکلی دیده  شود، مرورگر به سادگی از اتصال امتناع خواهد کرد و به کاربران این فرصت را نمی دهد که مانند خطا های SSL Certificate، آن را ignore کنند.

البته حتی اگر سایتی از HSTS پشتیبانی بکند، امکان بروز حمله، در صورتی که مرورگر برای بار اول سایت را بارگذاری می کند، وجود دارد، چرا که ممکن است مرورگر شناسه ی امنیتی را ذخیره نکرده باشد. در آن هنگام، مهاجم می تواند مانع از دسترسی مرورگر به نسخه ی  HTTPS سایت شود و آن را مجبور به استفاده از HTTP کند.

برای حل این مشکل، مرورگرهایی مانند Chrome و Firefox فهرستی پیش تهیه شده را از سایت های محبوبی که از HSTS پشتیبانی می کنند، دارند.

مطابق آنچه SSL Pulse می گوید، حدود 1700 سایت  از 180000 سایت که روی HTTPS کار می کنند، از HSTS هم پشتیبانی می کنند. SSL Pulse پروژه ای است، که مسئول مانیتور کردن پیاده سازی های HTTPS در وب سایت ها می باشد.

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

سایت های محبوبی که از HSTS پشتیبانی می کنند، در حاضر شامل سایت هایی چونPayPal ، Twitter و سرویس های مختلف Google می شود. Facebook گرچه اتصال دائم از طریق HTTPS را فعال کرده، اما هنوز از استاندارد جدید پشتیبانی نمی کند.

برگرفته از :

HTTP Strict Transport Security Becomes Internet Standard