قسمت چهارم JavaFX _ معماری و ساختار

سایر قسمت هارا در اینجا ببینید.

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

ـ JavaFX یک API کامل با مجموعه ای غنی از کلاس ها و اینترفیس ها برای ساخت اپلیکیشن های گرافیکی با گرافیک غنی را فراهم می کند.پکیج های مهمّ این API عبارت اند از _

ـ javafx.animation _ شامل کلاس هایی برای اضافه کردن انیمیشن های مبتنی بر انتقال از قبیل پر کردن(fill)، محو شدن(fade)، چرخش(rotate)، تغییر مقیاس(scale) و جابه جایی(translation) برای nodeهای JavaFX است.

نکته: node ها المان های گرافیکی JavaFX هستند.

  • ـjavafx.application _ شامل مجموعه ای از کلاس ها است که چرخه ی زندگی(life cycle) برنامه های JavaFX را بر عهده دارند.
  • ـ javafx.css _ شامل کلاس هایی برای طرّاحی CSSمانندِ اپلیکیشن های گرافیکی JavaFX می باشد.
  • ـ javafx.event _ شامل کلاس ها و اینترفیس هایی برای ارائه و مدیریت رویداد های JavaFX است.
  • ـ javafx.geometry _ شامل مجموعه ای از کلاس ها برای تعریف کردن اشیاء ۲بعدی و عملیات بر روی آن هاست.
  • ـ javafx.stage _ این بسته دارای کلاس های نگه دارنده ی(container) سطح بالای اپلیکیشن های JavaFX است.
  • ـ javafx.scene _ این بسته کلاس ها و اینترفیس هایی را برای پشتیبانی از گرافیک صحنه(Scene Graph) فراهم می کند. علاوه بر این، زیربسته ها یا sub_package هایی از قبیل بوم، نمودار، کنترل ها، افکت، تصویر، ورودی، لایه، مدیا، رنگ، شکل، متن، تبدیل، وب و… را فراهم می کند. اجزای متعدّدی هستند که این API غنی JavaFX، پشتیبانی می کنند. There are several components that support this rich API of JavaFX.

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

ساختار ای پی آی های JavaFX و اجزایی که از این APIها پشتیبانی می کنند.

گراف صحنه(Scene Graph)

در JavaFX ، اپلیکیشن های گرافیکی با استفاده از گراف صحنه کد نویسی شده اند. گراف صحنه نقطه ی شروع ساخت اپلیکیشن است. گراف صحنه(Scene Graph) اِلِمان های اصلی اپلیکیشن های گرافیکی JavaFX را که node نامیده می شوند در خود نگه داری می کند.

ـ node یک شیء بصری یا گرافیکی است و می تواند شامل این موارد باشد _

  • اشیای هندسی (گرافیکی) _ (۲بعدی و ۳بعدی) از قبیل دایره، مستطیل، چند ضلعی و…
  • کنترل های UI _ از قبیل Button ، CheckBox ، Choice box ، Text Area و…
  • ظروف شامل شونده (Containers) _ (پنجره های لایه ها یا layout panes)مثل Border Pane و Grid pane و Flow Pane و… (نگران نباشید بعداً به طور کامل همه ی این هارا بررسی خواهیم کرد.)
  • عناصر رسانه (Media elements) _ مانند آبجکت های صوتی، ویدیویی و تصویری.

به طور کلّی مجموعه ای از node ها یک گراف صحنه(scene graph) را می سازد. همه ی این node ها در یک سلسله مراتب(وراثتی) مرتّب شده اند که در تصویر زیر نشان داده شده است.

نمودار وراثتی node ها

هر node در گراف صحنه(scene graph) یک والد تک دارد، و node ای که هیچ والدی ندارد به عنوان nodeریشه یا root node شناخته می شود.

به طور مشابه node ها یک یا چند فرزند دارند، و node ای که هیچ فرزندی نداشته باشد leaf node نامیده می شود؛ node ای که دارای فرزند باشد branch node نامیده می شود.

در یک گراف صحنه(scene graph) فقط یک node می تواند اضافه شود. node ِ گراف صحنه می تواند افکت(Effects)، شفّافیت(Opacity)، تغییر شکل (transform) و Event Handler داشته باشد. (نگران نباشید در ادامه ی آموزش درباره ی همه ی این موارد توضیح داده خواهد شد)

ـPrism

ـprism یک عملکرد گرافیکی سطح بالاست که برای تفسیر گرافیکی در JavaFX استفاده می شود. که می تواند هر دوی گرافیک های دو بعدی و سه بعدی را تفسیر کند.

در صورتی که سیستم مورد نظر سخت افزار لازم برای پردازش گرافیکی را پشتیبانی نکند، prism از تفسیر نرم افزاری برای پردازش گرافیکی استفاده می کند.

زمانی که از کارت گرافیک یا GPU استفاده شود، گرافیک روان تری ارائه می شود. فقط زمانی که سیستم کارت گرافیک نداشته باشد، prism به صورت پیش فرض از پردازش گرافیکی نرم افزاری استفاده می کند.

GWT (Glass Windowing Toolkit)

ـGWT سرویس هایی برای مدیریت پنجره ها، تایمرها، سطوح برنامه(Surfaces) و صف رویدادها ارائه می دهد. GWT بسترِ JavaFX را به سیستم عامل بومی سیستم متّصل می کند.

وب ویو (WebView)

با استفاده از JavaFX شما می توانید محتوای HTML را هم در گراف صحنه ی خود قرار دهید. WebView کامپوننتی(جزئی) است که نمایش این محتوارا بر عهده دارد. وب ویو از تکنولوژی ای به نام Web Kit استفاده می کند که یک مرورگر وب داخلی منبع باز(open source) است. این جزءِ JavaFX از تکنولوژی های مختلف مربوط به وب پشتیبانی می کند مانند HTML5 و CSS و JavaScript و DOM و SVG.

با استفاده از وب ویو شما می توانید _

  • محتوای HTML را از بخش محلّی(local) یا آدرس URL ، رندر کنید.
  • پشتیبانی از تاریخ و ارائه ی قابلیت برگشت و جلو رفتن در صفحات وب.
  • بارگیری مجدّد محتوا (reload the content)
  • اعمال افکت روی صفحات وب.
  • ویرایش محتوای HTML.
  • اجرای دستورات JavaScript.
  • مدیریت رویدادها.

به طور کلّی با استفاده از WebView می توانید محتوای وب را از جاوا کنترل کنید.

موتور رسانه یا Media Engine

موتور رسانه ی JavaFX مبتنی بر یک موتور() منبع باز است که به عنوان یک استریمر(streamer) شناخته می شود. این موتور رسانه از پخش ویدیو و محتوای صوتی پشتیبانی می کند.

موتور رسانه ی JavaFX فایل های صوتی با فرمت های زیر را پشتیبانی می کند _

قالب های پشتیبانی شده در موتور رسانه ی JavaFX

بسته ی javafx.scene.media ، کلاس ها و اینترفیس هایی را برای ارائه ی قابلیت رسانه در JavaFX فراهم می کند. این در قالب سه جزء ارائه شده است که موارد زیر هستند _

ـMedia Object _ این نشان دهنده ی یک فایل رسانه ای است.

ـMedia Player _ برای پخش محتوای رسانه.

ـMedia View _ برای نمایش رسانه.

در ادامه با این سه بهتر آشنا خواهیم شد. فعلاً اسمشان را در گوشه ی ذهن خود داشته باشید تا بعد.

لطفاً نظرات ارزشمند خودتون رو بنویسید. لایک هم فراموش نشه، مرسی.

نوشته قسمت چهارم JavaFX _ معماری و ساختار اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

۶ ترفند جالب برای بهبود کیفیت صدا در ویندوز ۱۰

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

در این مطلب قصد داریم به ارائه و بررسی ۶ راه حل برای بهبود کیفیت صدا در ویندوز ۱۰ بپردازیم تا بتوانید تجربه‌ی بهتری از موسیقی و همه‌ی فایل‌های صوتی و تصویری داشته باشید. این مطلب را از دست ندهید.

البته باید به یاد داشته باشید که همه‌ی روش‌های گفته شده ممکن است در کامپیوتر شما جوابگو نباشند؛ چرا که هر کامپیوتر از چیپ و کارت صدای متفاوتی استفاده می‌کند که تنظیماتشان متفاوت است. اما به هر ترتیب بد نیست نگاهی به روش‌های زیر بیاندازید.

۱. تنظیم صوتی سیستم عامل

ویندوز ویژگی‌های جالب زیادی برای تنظیم صوتی سیستم عامل در اختیار کاربران قرار می‌دهد که عموما خیلی به آن‌ها توجه نمی‌شود. یکی از آن‌ها Loudness Equalization نام دارد که وقتی فعال باشد، قدرت صدا را تا ۱۵۰ درصد افزایش می‌دهد. این ویژگی با اکثر کارت‌های صدا در کامپیوتر‌های مختلف کار می‌کند و می‌توانید آن را از بخش Sound Settings بیابید.

برای دسترسی به Sound Settings کافیست روی آیکون صدا در کنار ساعت کلیک راست کنید و سپس Sounds را بزنید. دو بار روی Speakers از تب Playback کلیک کنید تا پنجره‌ای جدید باز شود. از این قسمت و از تب Enhancements می‌توانید گزینه‌ی Loudness Equalization را مشاهده نمایید. دقت بفرمایید که در بعضی سیستم عامل‌ها ممکن است این گزینه قابل مشاهده نباشد.

۲. از یک تقویت کننده‌ی صوتی استفاده کنید

اگر سیستم شما از ویژگی Loudness Equalization پشتیبانی نمی‌کند، می‌توانید این گزینه را با استفاده از یک نرم افزار تجربه کنید. یکی از این نرم افزار‌ها Boom 3D نام دارد. این تقویت کننده‌ی صوتی می‌تواند علاوه بر ارائه‌ی ویژگی‌های مختلف، به بهبود کیفیت صدای کلی سیستم نیز کمک کند.

یکی از ویژگی‌های کلیدی Boom 3D استفاده از پخش سه بعدی صوتی است که تجربه‌ی بسیار جذابی از تماشای فیلم‌ها و شنیدن موسیقی‌های استریو به شما خواهد داد. مزیت اصلی این نرم افزار را می‌توان عدم وابستگی به سخت افزار دانست.

علاوه بر این، این نرم افزار همراه با چهار افکت صوتی امبینت، فیدلیتی، نایت مود و فضایی یا Spatial عرضه شده و همچنین می‌توانید با استفاده از تنظیمات Equalizer‌ نسبت به تنظیم کلی صدا‌های دریافتی از سیستم عامل اقدام نمایید.

۳. استفاده از Dolby Atmos برای دریافت صداهای فضایی یا Spatial

یکی دیگر از راه‌های جالب برای استفاده از ویژگی‌ «دالبی اتموس برای هدفون» هاست. با استفاده از این ویژگی می‌توانید افکت فضایی یا Spatial را به هدفون‌هایتان بیاورید.

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

دالبی آتموس برای هدفون‌ها توسط بازی‌های بسیاری مثل Assassin’s Creed، توم ریدر و گیرز آو وار ۴ هم پشتیبانی می‌شود.

برای فعال کردن این ویژگی کافیست به بخش Sounds رفته و سپس روی دستگاه پخش کننده‌ی صوتی نمایش داده شده در لیست دو بار کلیک کنید. در پنجره‌ی جدید از تب Spatial Sound گزینه‌ی Dolby Atmos for Headphones را انتخاب نمایید.

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

۴. تنظیمات بخش Equalizer را تغییر دهید

اگر یکی از علاقمندان پر و پا قرص موسیقی باشید، قطعا به این موضوع پی برده‌اید که هیچ چیزی تحت عنوان «بهترین حالت صوتی» وجود خارجی نخواهد داشت و سلیقه‌ی شخصی در این امر تاثیر به سزایی دارد. بنابراین هر زمان که بخواهید جزئیات خاصی از یک موسیقی را بیشتر بشنوید، همیشه می‌توانید با تنظیم Equalizer سیستم و اعمال تغییرات در آن صوت مورد علاقه‌ی خود را ایجاد کنید.

ویندوز ۱۰ به طور پیش‌فرض دارای یک Equalizer است که می‌توانید با استفاده از آن صدای دریافتی از سیستم را به طور کامل تنظیم کنید.

برای دسترسی به Equalizer کافیست به Sound Settings رفته و سپس گزینه‌ی Device Properties را انتخاب کنید. سپس از تب Enhancements گزینه‌ی Equalizer را غیر فعال نمایید.

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

۵. درایور‌های کارت صوتی خود را به روزرسانی کنید

اگر با کارت صدای خود دچار مشکل هستید همیشه می‌توانید درایور‌های آن را به روزرسانی کنید. به طور کلی بیشتر شرکت‌ها با ارائه‌ی آپدیت جدید کاربران را نسبت به انجام به روزرسانی آگاه می‌کنند. اما به طور کلی می‌توانید با رفتن به Device Manager و دو بار کلیک کردن روی Audio inputs and outputs گزینه‌ی Update Driver را مشاهده نمایید.

۶. خروجی‌های مختلف برای نرم افزار‌های صوتی را تنظیم کنید

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

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

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

علاوه بر این می‌توانید کار مشابه را با رفتن به مسیر Sound Settings > Other Sound options > App volume به انجام برسانید.

نوشته ۶ ترفند جالب برای بهبود کیفیت صدا در ویندوز ۱۰ اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

آموزش زبان برنامه‌نویسی Rust-قسمت۶: کار با تابع + تمرین

حالا که با متغیّرها, دیتاتایپ‌ها, شرط و حلقه ها آشنا شده‌ایم, وقت آن است که سراغ تابع‌ها برویم.
تابع(function)ها در سرتاسر کدهایی که به زبان Rust نوشته می‌شوند حضور دارند. همانطوری که در جلسات قبلی دیدیم, نقطه‌ی شروع برنامه‌ها تابع main است.
در این جلسه‌ی کوتاه همه‌ی چیزهایی که برای کار با توابع لازم است را یاد می‌گیریم.

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

تعریف تابع

شکل کلّی یک تابع که مقداری را برنمی‌گرداند(return نمی‌کند) مثل زیر است:

fn function_name(arguments) {
// Function body
}

تعریف یک تابع با کلمه‌ی کلیدی fn شروع می‌شود که مخفف کلمه‌ی function است. بعد از fn, نام تابع نوشته می‌شود.
در زبان Rust نام توابع‌را به صورت snake case می‌نویسم. یعنی از حروف بزرگ استفاده نمی‌کنیم و کلمات‌را با علامت _ از هم جدا می‌کنیم.
بعد از نام تابع, پرانتز قرار می‌گیرد. داخل این پرانتزها آرگومنت‌های ورودی قرار می‌گیرند.
بعد از پرانتز, آکولاد می‌گذاریم. کدهای تابع درون آکولادهای باز و بسته قرار خواهند گرفت.
بگذارید نگاهی به یک مثال بیاندازیم. تابع ساده‌ی زیر هیچ ورودی و خروجی ای ندارد, تنها یک خط نوشته‌را چاپ می‌کند.

fn simple_function() {
    println!("ساده است. نه؟");
}

fn main() {
}

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

warning: function is never used: `simple_function`
 --> src/main.rs:6:1
   |
   ۶ | fn simple_function() {
     | ^^^^^^^^^^^^^^^^^^^^
       |
         = note: #[warn(dead_code)] on by default

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

fn main() {
    simple_function();
}

fn simple_function() {
    println!("ساده است. نه؟");
}

حالا خروجی به ما نمایش داده می‌شود:

ساده است. نه؟

ساده بود, نه؟

تابع با پارامترهای ورودی

ما خیلی وقت‌ها از تابع با پارامترهای ورودی استفاده می‌کنیم تا عملی‌را روی چند داده‌ی ورودی انجام دهیم. برای این کار باید هنگام تعریف تابع, مشخص کنیم که چه ورودی‌هایی دارد و هر پارامتر ورودی از چه نوعی است.
پارامترها داخل پرانتزهای جلوی اسم تابع قرار می‌گیرند و مثل متغیّرها تعریف می‌شوند, با این تفاوت که کلمه‌ی let اوّل آن‌ها نمی‌آید.
مثلاً فرض کنید می‌خواهیم تابعی بنویسیم که یک عدد را به عنوان ورودی بگیرد و آن‌را پرینت کند. نتیجه می‌شود تابع زیر:

fn number_printer(number: i32){
    println!("The number parameter is: {}", number);
}

خب حالا برای صدا کردن این تابع کافی است اسم آن‌را درون تابع main بنویسیم و درون پرانتزها عددی که می‌خواهیم نمایش داده شود را بنویسیم:

fn main() {
    number_printer(50);
}

fn number_printer(number: i32){
    println!("The number parameter is: {}", number);
}

برنامه‌را کامپایل و اجرا می‌کنیم. نتیجه‌اش می‌شود این:

The number parameter is: 50

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

Statement ها و Expression ها

ما تا همین‌جای کار هم داشتیم از این دوتا استفاده می‌کردیم.
Statement ها دستوراتی هستند که اعمالی‌را انجام می‌دهند, بدون اینکه مقداری‌را برگردانند.
مثلاً وقتی که یک متغیّررا تعریف می‌کردیم, درواقع داشتیم از یک Statement استفاده می‌کردیم.
لازم است که اینجا یادآوری کنم برخلاف زبان‌هایی مثل c یا زبان‌های سطح بالاتری مثل php, تعریف متغیّر در Rust یک Statement است و چیزی‌را برنمی‌گرداند. مثلاً شما نمی‌توانید کدی مثل زیر را بنویسید:

fn main() {
    let a = b = 10;
}

اگر این کدرا کامپایل کنید با ارور زیر مواجه می‌شوید:

error[E0425]: cannot find value `b` in this scope
 --> src/main.rs:3:13
  |
۳ |     let a = b = 10;
  |             ^ not found in this scope

یا مثلاً اگر برنامه‌ی زیر را کامپایل کنید:

fn main() {
    let a = (let b = 10);
}

با ارور زیر مواجه می‌شوید:

error: expected expression, found statement (`let`)
 --> src/main.rs:3:14
  |
۳ |     let a = (let b = 10);
  |              ^^^ expected expression
  |
  = note: variable declaration using `let` is a statement

چرا؟ همانطوری که در متن ارور آخر می‌بینید, بعد از علامت = باید یک expression قرار بگیرد. امّا از آنجایی که تعریف متغیّر یک Statement است, پس کامپایل با ارور روبه‌رو می‌شود.
خب احتمالاً الان خودتان تعریف Expression را قبل از اینکه من بگویم می‌دانید. بله, دستوراتی
که خروجی دارند.
مثلاً اعمال ریاضی همه expression هستند. چون عبارت ۶ + ۱ مقدار ۷ را برمی‌گرداند. همچنین فراخوانی یک تابع یا ماکرو هم یک expression است.
شاید برایتان جالب باشد که بدانید یک مقدار عددی تنها هم می‌تواند یک expression باشد. به شرط اینکه بعد از آن ; قرار نگرفته باشد. چون به محض اینکه ; می‌آید, آن دستور تبدیل به یک statement می‌شود.

تابع با مقدار خروجی

خب مفهوم expression و statement را خوب فهمیدید؟ اینجا با آن‌ها کار داریم.
ما خیلی وقت‌ها نیاز داریم که یک خروجی از تابع دریافت کنیم. مثلاً می‌خواهیم تابع ما یک عدد را دریافت کند و مقدار فاکتوریل آن‌را برگرداند. برای اینکه بتوانیم از تابع چیزی‌را خروجی بدهیم, باید هنگام تعریف تابع نوع آن‌را مشخّص کنیم.
برای تعیین نوع خروجی یک تابع, باید بعد از پرانتزهای حاوی پارامترها ورودی, علامت <- را قرار دهیم(از چپ به راست: خط فاصله و علامت بزرگتر). حالا پس از این علامت نوع داده‌ی خروجی‌را مشخّص می‌کنیم.
مثلاً فرض کنید می‌خواهیم یک تابع بنویسم که ۲ برابر ورودی‌اش را به عنوان خروجی برگرداند. حاصل می‌تواند چیزی شبیه به این باشد:

fn duplicator(input_number : i32) -> i32 {
    let result = input_number * 2;
    return result;
}

همانطور که می‌بینید ما دو برابر ورودی‌را در متغیّری به نام result ذخیره کردیم. سپس برای بازگرداندن این مقدار از تابع, نام متغیّررا بعد از کلمه‌ی کلیدی return نوشته ایم.
در واقع شما با قرار دادن هرچیزی بعد از کلمه‌ی کلیدی return در تابع, آن را به خارج از تابع می‌فرستید.
خب چیزهایی که درمورد expression گفتم را یادتان هست؟ اگر پاسختان مثبت است پس حتماً به یاد دارید که عبارت ریاضی هم خودش یک expression است, البته اگر بعد از آن ; قرار نگیرد. پس تابع بالا را می‌توان این‌طوری هم نوشت:

fn duplicator(input_number : i32) -> i32 {
    input_number * 2
}

توابع بازگشتی

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

fn main() {
    recursive_function(10);
}
fn recursive_function(mut input_number: i32) {
    if input_number < 1 {
        return;
    }
    println!("Current input_number is: {}", input_number);
    input_number -= 1;
    recursive_function(input_number);
}

اگر این برنامه‌را اجرا کنیم, خروجی زیر را می‌بینیم:

Current input_number is: 10
Current input_number is: 9
Current input_number is: 8
Current input_number is: 7
Current input_number is: 6
Current input_number is: 5
Current input_number is: 4
Current input_number is: 3
Current input_number is: 2
Current input_number is: 1

در این برنامه سه نکته‌ی خیلی مهم وجود دارد:
۱- چون ما قصد داریم که پارامتر ورودی‌را تغییر بدهیم, قبل از اسم پارامتر کلمه‌ی mut را نوشته ایم. اگر این کار را نمی‌کردیم پارامتر ورودی immutable می‌شد و دیگر نمی‌شد در خط ۱۳ آن‌را تغییر داد.
۲- در خط ۱۳ به جای آنکه بنویسیم:
input_number = input_number - 1;
نوشتیم:
input_number -= 1;
این کار خلاصه‌تر است, امّا همان معنی‌را دارد. شما می‌توانید تمامی اعمال ریاضی را اینطوری بنویسید:
=- , =+ , =/ , =% , =*
۳-با رسیدن به return اجرای تابع متوقّف می‌شود و مقدار مقابل آن برگردانده می‌شود. وقتی که تابع ما چیزی برنمی‌گرداند می‌توانیم از یک return خالی برای متوقف کردن تابع و خروج از آن استفاده کنیم.
خب این جلسه هم مثل جلسه‌ی قبلی با هم چندتا مثال حل می‌کنیم تا دستمان با Rust راه بیافتد.

تمرین

تمرین این جلسه واقعاً ساده است. همانطوری که در متن اشاره شد می‌خواهیم تابع فاکتوریل را به زبان Rust پیاده‌سازی کنیم. ولی چون هدفمان آموزش است, این کار را به شیوه‌های متفاوت انجام می‌دهیم.
۱-تابع فاکتوریل‌را به صورت بازگشتی بنویسید.
۲-تابع فاکتوریل‌را با استفاده از حلقه‌ی for بنویسید.
وقتی که روی این تمرین کار کردید, می‌توانید از طریق این لینک پاسخ‌هارا ببینید.

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

خواندن قسمت قبلی

رفتن به ابتدای این مجموعه‌ی آموزشی

نوشته آموزش زبان برنامه‌نویسی Rust-قسمت۶: کار با تابع + تمرین اولین بار در ویرگول پدیدار شد.

گردآوری توسط ایده طلایی

با این ۲۵ کلید میانبر مک او اس، کارهایتان سریع‌تر پیش می‌رود

25 کلید میانبر مک

با این ۲۵ کلید میانبر مک ، کارهای شما سریع‌تر و هوشمندانه‌تر انجام خواهند گرفت. استفاده از کلید میانبر یا همان شرتکات می‌تواند سالانه نزدیک به ۷۰ ساعت کار مفید بیشتر را به ارمغان بیاورد.

در یک روز شلوغ، شما باید بدانید که حفظ ۱ ثانیه هم مهم است. اگر صاحب یک کامپیوتر مجهز به سیستم عامل مک هستید، یکی از راه‌کارها استفاده همزمان از کیبورد و ماوس است. اما یکی دیگر از راه‌های پیش روی شما برای صرفه جویی در زمان این است که چندین کلید میانبر مک را به خاطر بسپارید تا کارهایتان سریع‌تر و هوشمندانه‌تر پیش برود. این به مراتب راه بهتری نسبت به استفاده از ماوس یا تاچ‌پد است. در واقع اگر از کلیدهای میانبر صفحه کلید استفاده نکنید، سالانه ۶۴ ساعت کار مفید را از دست خواهید داد.

من فکر می‌کنم که اکثر شما می‌دانید Command + C به معنای کپی و Command + V به معنای پیست کردن هستند، اما در اینجا چندین کلید میانبر دیگر نیز وجود دارد که شما باید با آن‌ها آشنا شوید. در این مقاله ۲۵ کلید میانبر مک را به شما معرفی خواهیم کرد که می‌توانند در سطوح مختلف، به کمک شما آمده و میزان بهره‌وری را افزایش دهند.

۲۵ کلید میانبر مک

پیش از آنکه آغاز کنیم، لازم است به نکاتی توجه کنید:

  • این ۲۵ کلید میانبر مک شاید تنها در حالت انتخاب زبان انگلیسی در کیبورد قابل استفاده باشند.
  • گاهی ممکن است این کلیدهای میانبر در نسخه‌های مختلف مک عملکرد یکسانی نداشته باشند. لطفا سیستم عامل خود را به‌روز نگه‌دارید.

۱- Command + Shift + 3

برای عکس گرفتن از کل صفحه باید از کلید میانبر Command + Shift + 3 استفاده کنید.

۲- Command + Shift + 4

شما شاید نیاز داشته باشید تا عکسی از یک پنجره‌ی انتخاب شده از صفحه بگیرید. زمانی که در پنجره‌ی مورد نظر خود بودید، حالا کلیدهای ترکیبی Command + Shift + 4 را بفشارید.

۳- Command  + Option + D

این میانبر به شما کمک می‌کند تا داک را نمایان یا پنهان کنید. این به خصوص در مک بوک‌هایی که از نمایشگر کوچکتری برخوردارند بسیار مفید است، زیرا می‌تواند فضای کار بیشتری را در اختیار کاربران قرار دهد.

۴- Command + Q

اگر می‌خواهید یک اپلیکیشن را متوقف کنید، تنها باید از کلید میانبر Command + Q استفاده کنید.

۵- Command + T

با عرضه مک او اس سیرا، پنجره‌ها حالا می‌توانند یک تب را حمل کنند. با این حال تمامی اپلیکیشن‌های مک سیرا شاید از این قابلیت پشتیبانی نکنند. برای هر کدام که پشتیبانی می‌کنند، کافیست Command + T را بفشارید تا یک تب دیگر باز شود.

۶- Command + R

من زیاد ایمیل می‌نویسم و مردم زیادی نیز برای من ایمیل ارسال می‌کنند. وقتی می‌خواهم پاسخ هر کدام را بدهم، به جای فشردن دکمه‌ی پاسخ، از کلیدهای ترکیبی Command + R استفاده می‌کنم و سپس یک پاسخ برای آن می‌نویسم. در نظر داشته باشید، استفاده از این قابلیت زمانی امکان‌پذیر است که شما در صندوق پیام‌ها قرار داشته باشید.

۷- Command + Spacebar

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

Command + Shift + ? -8

اگر می‌خواهید بدانید که چگونه یک اپلیکیشن سفارشی کار می‌کند یا آنکه با مک مشکل دارید، کلید میانبر فوق یک راه ساده و سریع برای دسترسی به “Help” است.

۹- Command + Option + ESC

گاهی،‌ زمان استفاده از یک اپلیکیشن سیستم هنگ می‌کند یا عملکرد آن متوقف می‌شود. ماوس یا تاچ‌پد نیز از دسترس خارج خواهند شد. در این لحظه با فشردن کلید میانبر Command + Option + ESC می‌توانید آن اپلیکیشن را ببنید.

۱۰- Command + X/C/V/Z

اگرچه شاید اغلب خوانندگان این مطلب با کلید میانبر بالا آشنایی داشته باشند، اما از آنجایی که دانستنش بسیار مهم است،‌ ما دوباره آن را ذکر می‌کنیم. این چهار میانبر عملیات کات کردن (X)، کپی کردن (C)، پیست کردن (V) و بازگشت به عقب (Z) را انجام خواهند داد.

۱۱- Command + F

اگر در یک مقاله‌ی طولانی هستید و به دنبال یک کلمه یا عبارت خاص هستید، شما می‌توانید با فشردن کلید میانبر Command + F به قابلیت Find Order دست پیدا کنید. یک یابنده ظاهر خواهد شد و شما می‌توانید هرآنچه مدنظرتان است را داخل آن تایپ کرده و در سند پیش رویتان به دنبالش بگردید.

۱۲- Control + Media Eject

یک میانبر سریع و عالی برای راه اندازی مجدد، خاموش کردن یا بردن سیستم مک شما به حالت استراحت Control + Eject است. وقتی شما این میانبر را بفشارید، یک باکس باز شده و از شما می‌خواهد بین گزینه‌ی Sleep، Shutdown یا Restart‌یکی را برگزینید.

۱۳- Command + A

اگر می‌خواهید تمامی محتوای یک سند را انتخاب کنید، این میانبر برای شما ساخته شده است. تنها کافیست Command + A را بفشارید.

۱۴- بالا یا پایین + Command

اگر می‌خواهید بدون نیاز به ماوس، به یک صفحه اختصاصی دیگر بروید، شما می‌توانید از کلید میانبر Command + فلش بالا یا پایین استفاده کنید.

۱۵- Command +‌ Option + H

اگر از پنجره‌ای استفاده نمی‌کنید و می‌خواهید صفحه دسکتاپ را خالی از هر چیزی نگه دارید،‌ با کلید میانبر Command + Option + H می‌توانید این کار را انجام دهید. کلید میانبر فوق تمامی پنجره‌ها را به پایین می‌کشد تا صفحه‌ی قفلی بدون مزاحم را ببینید.

۱۶- Command + M

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

۱۷- Command + W

شما نیاز دارید یک پنجره را ببندید؟ کلید میانبر Command + W می‌تواند این کار را برای شما انجام دهد.

۱۸- Control + P

اگر می‌خواهید از چیزی عکس بگیرید، می‌توانید از شرتکات Control + P استفاده کنید. اگر چاپگری به کامپیوتر شما متصل باشد، یک صفحه باز می‌شود و از شما گزینه‌های لازم برای عملیات چاپ را می‌خواهد.

۱۹- Command + Move + F5

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

۲۰- Command + N

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

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

۲۱- Command + Control + N

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

۲۲- Command + Shift + V

شما چیزی را در اینترنت پیدا کرده‌اید و می‌خواهید آن را در سند خود بچسبانید. در اکثر مواقع، فرمت آن نوشته نیز ذخیره می‌شود. برای حل این مشکل می‌توانید از کلید میانبر Command + Shift + V استفاده کنید تا نوشته خام بدون هیچگونه فرمتی ذخیره شود.

۲۳- Command + B/I/U

اگر می‌خواهید نوشته‌ی شما برجسته شود، کج شود یا زیر آن خطی کشیده شود، می‌توانید از ترکیب دکمه‌ی Command با B یا I یا U استفاده کنید.

۲۴- Command + Tab

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

۲۵- (+/-)Option + Shift + Volume

وقتی من در حال کار بر روی سیستم مک خودم هستم، مغمولا از کلیدهای ولوم استفاده‌ی زیادی دارم. متوجه شده‌ام که می‌توان با فشدن دکمه‌ی Option با Shift با + یا – ولوم صدا را زیاد یا کم کرد.

نوشته با این ۲۵ کلید میانبر مک او اس، کارهایتان سریع‌تر پیش می‌رود اولین بار در گجت نیوز. پدیدار شد.

گردآوری توسط ایده طلایی

سهام‌یاب همچنان فیلتر است؛ شکایت بانک پاسارگاد هم پابرجاست

سهام‌یاب یک شبکه اجتماعی و اطلاع‌رسانی در حوزه بازار سرمایه است که از ۶ آبان ماه با شکایت بانک پاسارگاد فیلتر شده و پیگیری‌های مالکین این استارت‌آپ نیز تا زمان انتشار این نوشته، بی‌نتیجه بوده است. «محسن زادمهر» هم‌ موسس و عضو هیات مدیره سهام‌یاب خبر می‌دهد که تا پایان ساعت اداری امروز (۲۳ آبان) شکایت بانک پاسارگاد همچنان پابرجا بوده است.

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

اما داستان شروع این فیلترینگ چه بوده است؟ با نگاهی به پلتفرم سهام‌یاب، می‌توان دید که این سرویس که به گفته موسس‌اش ۴۵۰ هزار کاربر فعال دارد، ساختاری مشابه با توییتر دارد که کاربران می‌توانند در آن، در ارتباط با سهام شرکت‌های مختلف اظهار نظر کنند. اکنون زادمهر در همین رابطه می‌گوید که شکایت بانک پاسارگاد از سهام‌یاب، به علت نشر اکاذیب بوده، درحالی که این پلتفرم، کاربرمحور است و خود سهام‌یاب مطلبی را منتشر نکرده است:

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

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

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

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

گردآوری توسط ایده طلایی

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

اگر کامپیوتر خانگی تان کند شده و بیش از اندازه داغ می کند شاید قربانی یک بدافزار تازه روسی شده باشید که برای سرقت توان محاسباتی سیستم شما و در نهایت استخراح ارزهای مجازی طراحی شده است.

محققان شرکت مک آفی نوع جدیدی از بدافزار سرقت ارز مجازی را کشف کرده اند که با استفاده از توان پردازشی سیستم های کامپیوتری اقدام به استخراج ارز مجازی مونرو یا Zcash می کند.

اما نکته جالب در این باره آن است که این بدافزار تازه روسی با نام WebCobra بسته به پیکره بندی سیستم شما ارز مجازی متفاوتی را استخراج خواهد کرد. کارشناسان مک آفی با بررسی و تحلیل دقیق این بدافزار دریافتند که هکرها از طریق یک پکیج مخرب اینستالر مایکروسافت اقدام به توزیع آن می کنند. جالب آنکه این پکیج برای نصب ماینرها یا استخرح کننده های Cryptonight روی سیستم های x86 و همچنین ماینر Zcash روی سیستم های x64 طراحی شده است.

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

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

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

افزایش ارزهای مجازی همچنین مجرمان سایبری را بر آن داشته تا از بدافزارهایی برای دستیابی به اهداف خود استفاده کنند که منابع سیستم های کامپیوتری را برای استخراح سکه های ارز مجازی بدون رضایت قربانیان به سرقت می برند. این گزارش برای آنکه حزئیات بیشتری را در این باره ارائه دهد اشاره می کند که CoinHive (یکی دیگر از ابزارهای استخراح ارز مجازی مونرو که غالبا توسط هکرها مورد استفاده قرار می گیرد) ماهانه سودی بالغ بر ۲۵۰ هزار دلار را به ارمغان می آورد.

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

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

گردآوری توسط ایده طلایی

وزنیاک : اگر استیو جابز زنده بود به اپل کنونی افتخار می‌کرد

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

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

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

او در قسمتی دیگر از صحبت‌هایش اشاره کرد که دیگر تولید کنندگان تلفن‌های هوشمند نوآوری خاصی در محصولاتشان بکار نمی‌برند، در حالی که اپل هنوز خلاقیت و نوآوری را در اولویت قرار داده و روی ویژگی‌های جدیدی تمرکز می‌کند که می‌تواند تاثیر زیادی روی زندگی کاربران بگذارد. او برای مثال به Touch ID و اپل پِی اشاره می‌کند و می‌گوید:

«اکنون همه‌ی شرکت‌های تولید کننده‌ی تلفن هوشمند سعی دارند که از اپل کپی کنند. اپل اولین شرکتی بود که سراغ سیستم آسانی برای پرداخت رفت. با استفاده از این ویژگی، دیگر نیازی نبود که کاربر تلفن خود را آنلاک کند، اپلیکیشن مناسب را بیابد یا حتی شماره کارت یا رمزی را وارد نماید. تنها کافی بود که تلفن خود را در محل مناسب قرار داده و برای تایید از اثر انگشتش استفاده کند.»

البته چند وقتی است که اپل در محصولات جدیدتر خود سراغ تکنولوژی پیشرفته تر Face ID آمده و سیستم تشخیص چهره را جایگزین اثر انگشت کرده است. بدین ترتیب کاربر برای تایید پرداختش تنها نیاز دارد دو بار روی گوشی خود ضربه بزند و به دوربین نگاه کند.

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

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

گردآوری توسط ایده طلایی

اینتل شتاب‌دهنده هوش‌مصنوعی ۲ NCS را معرفی کرد

NCS 2 با بهره گیری از چیپ Myriad X VPU قدرتی ۸ برابر بیشتر از نسل قبل را به ارمغان می آورد.

کمپانی اینتل امروز از نسل دوم شتاب دهنده هوش مصنوعی خود با عنوان Neural Compute Stick ۲ رونمایی کرده که از نظر کارایی و مقیاس پذیری بهینه سازی های چشمگیری را به همراه دارد.

NCS 2 با ظاهر یک USB ارائه قابلیت های شبکه های عصبی و دید کامپیوتری را در گجت های دیگر تسهیل کرده و کاربران را از اتصال به پلتفرم های ابری برای انجام محاسبات هوش مصنوعی بی نیاز می سازد. محققان و توسعه دهندگان با استفاده از این ابزار قادر به ایجاد مدل های بینایی کامپیوتری در دستگاه های بسیاری خواهند بود. برای مثال این گجت به یک پهپاد کمک می کنند که با موانع برخورد نکند و یا امکان تشخیص افراد به دام افتاده در آتش را به دوربین حرارتی می دهد.2 NCSشتاب دهنده NCS 2 از آخرین نسل VPU یا واحد پردازنده دید کمپانی Movidius به نام Myriad X VPU بهره می برد. این کمپانی قبلا به صورت مستقل فعالیت می کرد اما حالا به زیر مجموعه اینتل بدل شده است.

چیپ Myriad X میزبان «موتور محاسباتی عصبی» است که قابلیت های یادگیری عمیق بسیار پیچیده ای را میسر می سازد. Myriad X توانایی پردازش ۴ تریلیون عملیات در هر ثانیه را داشته و موتور محاسباتی عصبی هم وظیفه پردازش تصویر را بر عهده می گیرد.

به لطف مجموعه ابزار OpenVINO کاربران پس از توسعه و آموزش مدل های هوش مصنوعی در پلتفرم ابری قادر به پیاده سازی آن در محصولات مختلف خواهند بود. برای استفاده از NCS 2 باید آن را روی سیستم عامل مبتنی بر لینوکس و از طریق درگاه USB 3.0 اجرا کرد.

NSC2 با قیمت ۱۰۰ دلار به بازار عرضه می شود. نسخه قبلی این شتاب دهنده هوش مصنوعی با استقبال خوب کاربران مواجه شده و انتظار می رود که همین مساله برای نسخه جدید نیز تکرار شود.

نوشته اینتل شتاب‌دهنده هوش‌مصنوعی ۲ NCS را معرفی کرد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

پروفایل ۹۸۰۰ رسانه مستقل چینی در شبکه‌های اجتماعی تعطیل شد

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

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

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

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

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

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

نوشته پروفایل ۹۸۰۰ رسانه مستقل چینی در شبکه‌های اجتماعی تعطیل شد اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی

آخرین نسخه واتس اپ مخاطبین شما را رتبه بندی می کند

واتس اپ از این پس دوستان شما را بر اساس میزان ارتباطی که با هم دارید و محتوایی که میان هم رد و بدل می‌کنید، رتبه‌بندی خواهد کرد. قابلیت جدیدی به نام Ranking که اخیرا به اپلیکیشن اضافه شده، به طور خودکار استتوس‌های به‌روز شده دوستان «محبوب» شما را بالاتر از سایر افراد قرار می‌دهد.

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

واتس اپ

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

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

قابلیت رتبه‌بندی کاربران در واتس اپ برای نسخه بتای ۲٫۱۸٫۱۰۲٫۴ اپلیکیشن منتشر شده که با دریافت آن، می‌توانید تغییرات حاصله از آن را مشاهده نمایید. برای دریافت آخرین بتای واتس اپ برای اندروید می‌توانید به این لینک مراجعه نمایید.

نوشته آخرین نسخه واتس اپ مخاطبین شما را رتبه بندی می کند اولین بار در دیجیاتو پدیدار شد.

گردآوری توسط ایده طلایی