روزنوشت شخصی سید ابوالفضل موسوی

محل تبلیغات شما محل تبلیغات شما

اگر هرگونه سوال و یا اشکالی در رابطه با این زمینه و یا هر زمینه تحصیلی
مانند: مدرسه ، دانشگاه ، کنکور ، ارشد ، دکتری ، نظام وظیفه و... دارید ؛

...کافیست با ما تماس بگیرید

شماره تماس از خط ثابت 02170705003

پاسخگویی از ۸ صبح تا ۱۲ شب حتی ایام تعطیل



سرویس bit.ly در سال 2011 با وبسایت دولتی آمریکا یعنی usa.gov یکی شده و در قالب یک خدمترسان وب درآمده است. bit.ly خود یک سرویس خلاصه گر آدرس اینترنت یا url است. بنابراین منبع مناسبی جهت جمع آوری داده های نامحسوس مختوم به mil و gov است. شاید اسنپشاتی از داده های مذکور نیز در آدرس http://www.usa.gov/About/developer-resources/1usagov.shtml موجود باشد. هر فایلی که به عنوان منبع آماری وب سایت فوق گزارش داده می شود در قالب JSON است. JSON مخفف JavaScript Object Notation است. ممکن است در خطوط ابتدائی فایل فوق چنین نوشته شده باشد:

In [15]: path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt' 

In [16]: open(path).readline() Out[16]: '{ "a": "Mozilla\\/5.0 (Windows NT 6.1; WOW64) AppleWebKit\\/535.11 (KHTML, like Gecko) Chrome\\/17.0.963.78 Safari\\/535.11", "c": "US", "nk": 1, "tz": "America\\/New_York", "gr": "MA", "g": "A6qOVH", "h": "wfLQtf", "l": "orofrog", "al": "en-US,en;q=0.8", "hh": "1.usa.gov", "r": "http:\\/\\/www.facebook.com\\/l\\/7AQEFzjSi\\/1.usa.gov\\/wfLQtf", "u": "http:\\/\\/www.ncbi.nlm.nih.gov\\/pubmed\\/22415991", "t": 1331923247, "hc": 1331822918, "cy": "Danvers", "ll": [ 42.576698, -70.954903 ] }\n' 

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

import json

path = 'ch02/usagov_bitly_data2012-03-16-1331923249.txt'

records = [json.loads(line) for line in open(path)]

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

In [18]: records[0]

Out[18]:

{u'a': u'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like

Gecko) Chrome/17.0.963.78 Safari/535.11',

 u'al': u'en-US,en;q=0.8',

 u'c': u'US',

 u'cy': u'Danvers',

 u'g': u'A6qOVH',

 u'gr': u'MA',

 u'h': u'wfLQtf',

 u'hc': 1331822918,

 u'hh': u'1.usa.gov',

 u'l': u'orofrog',

 u'll': [42.576698, -70.954903],

 u'nk': 1,

 u'r': u'http://www.facebook.com/l/7AQEFzjSi/1.usa.gov/wfLQtf',

 u't': 1331923247,

 u'tz': u'America/New_York',

 u'u': u'http://www.ncbi.nlm.nih.gov/pubmed/22415991'}

حال با استفاده از اندیس امکان خوانش مقادیر موجود در متغیر records وجود دارد. حتی به عنوان یک دیکشنری قابل استفاده و در صورت بهره گیری از کلید حتما مقدار متناظر بازگردانده می شود:
In [19]: records[0]['tz']
Out[19]: u'America/New_York'
کاراکتر u در مقابل علامت نقل قول جهت قالبدهی به فرم یونیکد است. 

ãäÈÚ

مشخصات

  • منبع: http://sa-mousavi.blogsky.com/1397/03/02/post-26/bit-ly
  • کلمات کلیدی: records ,json ,http ,داده ,wflqtf ,متغیر ,open path ,متغیر records ,bitly data2012 ,usagov bitly ,ch02 usagov ,usagov bitly data2012 ,ch02 usagov bitly
  • در صورتی که این صفحه دارای محتوای مجرمانه است یا درخواست حذف آن را دارید لطفا گزارش دهید.


اول آن که پایتون یکی از ابزارهای برنامه نویسی محبوب از سال 1991 است البته انتخابهای دیگری مانند perl و روبی نیز وجود دارد. پایتون و روبی طی سالهای اخیر از محبوبیت بیشتری برخوردارند چرا که پایتون با استفاده از فریمورک Django و روبی با استفاده از فریمورک Rail توانسته هواداران خوبی در پیاده سازی انواع سرویسهای تحت وب برای خود اختیار کند. چنین زبانهای برنامه نویسی به هیچ وجه از کامپایلر بهره نمی برند و زبانهای اسکریپتی خوانده شوند. زبانهای فوق برای برنامه های کوچک و کثیف و سریع قابل استفاده هستند (quick-and-dirty small program) به یک برنامه کوچک و کثیف و سریع اطلاق اسکریپت (Script) است. چنین زبانهای برنامه نویسی به هیچ وجه برای نرم افزارهای با کاربرد بلادرنگ استفاده نمی شوند. پایتون در میان زبانهای اسکریپتی و مبتنی بر مفسر محبوبیت زیادی بین مجامع علمی و آکادمیک دارد. استفاده از پایتون به عنوان یک زبان جهت توسعه برنامه های تجاری و انجام تحقیقات دانشگاهی با ظهور هزاره دوم میلادی بیشتر شد. پایتون مانند زبانهای برنامه نویسی R و Matlab و SAS و Stata کاربرد فراوانی در تحلیل داده به صورت محاوره ای با استفاده از الگوریتمهای اکتشافی و تصویرسازی داده دارد. علاوه بر این که متن باز است و ابزارهای تجاری فراوانی نیز در کنار آن قابل خریداری و استفاده خواهد بود. در دهه اخیر امکان بهره گیری بیشتری از پایتون به وجود کتابخانه pandas فراهم شده است. کتابخانه مذکور بسیاری از وظائف مربوط به دستکاری داده (data manipulation) را با قدرت تحسین برانگیزی پشتیبانی می کند. پایتون خود توانائی بسیاری در توسعه برنامه های همه منظوره دارد. دو قابلیت موجود در پایتون و پانداز سبب می شود که برنامه های بسته به تحلیل داده در بستر فوق با انعطاف بهتری توسعه و نگهداری شوند.


ãäÈÚ

مشخصات



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

  1. نصب ویندوز 7
  2. نصب ویژوال استودیو 2015
  3. بهره گیری از مودم  D-LINK DWM-157 3G HSPA+ USB ADAPTER
  4. نوشتن برنامه در ویژوال استودیو

گزینه Show Menu Bar جهت استفاده از منوی ارسال پیامک حتما از نمایه Setting  باید تیک خورده باشد. برنامه گرافیکی مودم d-link باید در هنگام اجرای کد کنسول سی شارپ در حال اجرا باشد.

حال نوبت به استفاده و emulate رفتار کاربر جهت ارسال پیامک با استفاده از برنامه فوق است. در ابتدا کافی است که reference استاندارد سیستم با عنوان System.Windows.Forms اضافه شود. در نهایت کافی است برنامه زیر به عنوان یک پروژه Console Application در سی شارپ وارد شده و اجرا شود. 

Program.cs


ãäÈÚ

مشخصات



دیباگ برنامه از زوایای متفاوتی قابل انجام است. متغیر به عنوان شمارنده در حلقه های برنامه نویسی استفاده می شود. متغیر به عنوان اندیس و در ضمن مقادیر اندیسهای یک آرایه مورد استفاده است. متغیر به صورت خطی یا غیرخطی در ساختمان داده ها قرار گرفته و با عملیات مرتبسازی یا جستجو یا قس علی هذا مورد پردازش قرار می گیرد. صحبت از متدهای متفاوت جستجو و مرتبسازی در طراحی الگوریتم مطرح است. باید ساختار برنامه مبتنی بر متغیرهای آن به صورت یک درخت باینری درآید تا unit test به معنای اعم درست انجام شده و نهایت چینش ماژولها منتهی به یک برنامه کامل شود. برنامه ای که حداقل خطای functional را دارا است. توجه به داده باید ناظر به مقدار null باشد. null غیر از تهی است. تهی یعنی متغیر اصلا وجود ندارد در حالی که نال به وجود متغیر دلالت دارد اما مقدار متغیر معلوم نیست. نال غیر از مقدار مبدأ یعنی صفر است. نال نه هیچ و نه صفر است بنابراین باید به عنوان مقدار مرزی در تمام متغیرها مطرح باشد. ممکن است متغیری در دامنه ای مورد استفاده باشد اما حضور متغیر فوق تهی است یعنی اصلا وجود ندارد. انتخاب بهترین ساختمان داده در دسترسی خطی به سلولهای حافظه به صورت ایستا سبب کاهش زمان پردازش می شود. زمان پردازش به هیچ وجه کاهش نمی یابد مگر آن که موازیسازی صورت پذیرد. مهمترین راه در پردازش موازی استفاده از thread  است که خود بحثی طولانی و تخصصی گران سنگ است. تجربه این حقیر به آن نرسد اما مرور کد مبتنی بر متغیر و داده سبب تسهیل دیباگ حتی موازیسازی با استفاده از thread می شود. از متغیرها استفاده می کنی و CRUD بر تمام المانهای داده ای تعبیه شده در سطح برنامه اعمال می شود و پردازش پیش می رود. هر برنامه ای تنها با استفاده از متغیر و متدهای CRUD نوشته می شود و لاغیر چنان که در بعد به نوشتار درگاه ارسال پیامک پرداخته می شود. کدهای برنامه و حتی ریپازیتوریهای بروزرسانی انواع سیستم عامل از اندروید تا لینوکس و ویندوز می تواند منبع مناسبی جهت استخراج دانش باشد یعنی در data mining مورد استفاده قرار گیرد. چنان که تستهای نفوذ و اعلام پچهای ویندوز با استفاده از گزارشات Microsoft Software SCADA صورت می پذیرد و تبدیل به پایگاه جامع داده exploit می شود.


ãäÈÚ

مشخصات



در هنگام استفاده از داده باید حتما متغیری وجود داشته باشد.  متغیر یک نگهدارنده اطلاعات (information container) است. مقدار یک متغیر می تواند تغییر کند. استفاده اصلی متغیر در موارد زیر خلاصه می شود:

  • ذخیره سازی اطلاعات
  • بازیابی اطلاعات ذخیره شده
  • تغییر اطلاعات ذخیره شده
در برنامه نویسی سی شارپ حتما از متغیر در جریان پردازش اطلاعات استفاده می شود. پردازشی که پیوسته و در طول زمان اجراء ادامه دار است یعنی اگر متغیر نباشد به هیچ وجه امکان پیشبرد محاسبات برنامه های نوشته شده در سی شارپ وجود نخواهد داشت.


ãäÈÚ

مشخصات



نوع داده نالپذیر یک wrapper به دور انواع داده دیگر است که اجازه می دهد مقادیری با ارزش null در یک متغیر ذخیره شوند. استفاده از تکنیک فوق سبب تبعید کمبود مقادیر قابل انتساب به متغیر می شود. انتخاب نوع داده نال جهت پذیرش در یک متغیر کاملا اختیاری است. استفاده از wrapper نال به دور یک نوع داده به دو طریق زیر امکان پذیر است:

دو تعریف فوق کاملا معادل یکدیگر هستند با یکدیگر هیچ تفاوتی ندارند. بهترین راه حل جهت بهره گیری از مقدار null با استفاده از علامت سؤال (?) فراهم می شود. به طور مثال بعد از نوع داده int با پذیرش علامت سؤال حتما متغیر نالپذیر می شود. (?int)

راه دیگری نیز وجود دارد که سبب تسهیل مرور کد شده اما سینتکس سختتری دارد <...>Nullable.

استفاده از نوع داده نال سبب تغییر نوع مدیریت حافظه در متغیر نالپذیر می شود و از ناحیه داینامیک استفاده می کند. یعنی پذیرش wrapper نال سبب کند شدن محاسبات در جریان اجراء برنامه خواهد شد:

مثال فوق نشان می دهد که چگونه امکان انتساب یک مقدار از متغیری با نوع ?int به دیگر متغیر که نالپذیر نیست و تنها int است فراهم می شود. به این منظور از خصیصه Value‌ استفاده می شود که یا مقدار درست به نوع داده int نسبت داده شده یا خطای برنامه نویسی اعلان خواهد شد. خطائی که کد InvalidOperationException دارد. جهت جلوگیری از خطای فوق امکان استفاده از فلگ یا خصیصه HasValue وجود دارد. فلگ فوق یا دارای مقدار true و یا مقدار false است. فلگ فوق یک متغیر Boolean است. متد مفید دیگری که قابل استفاده است حتما GetValueOrDefault‌ است که از خطای فوق جلوگیری می کند. اگر یک متغیر نالپذیر مقداری داشته باشد متد فوق مقدار آن را باز می گرداند یا پیش فرضی جهت پیشبرد محاسبات در عمل انتساب لحاظ خواهد شد. در اغلب مواقع صفر است. نوع داده نالپذیر برای اطلاعاتی به کار برده می شوند که اجباری نیستند یعنی اختیاری بوده و در بعضی مواقع اطلاعی از آن در دسترس نیست. به صورت کلی توصیه می شود از نوع داده نالپذیر استفاده نشده و نهایت یک رشته با طول صفر در متغیر مورد نظر لحاظ شده و تعریف متغیر از نوع رشته باشد. رشته مورد نظر امکان تبدیل به دیگر انواع داده را دارا است. فرض کنید دانش آموزی نام و نام خانوادگی داشته که اجباری است ولی سن الزامی نیست. در هنگام پذیرش wrapper نال باید از ?int‌ استفاده کرد که سبب تغییر نگاه مدیریت حافظه به قسمت داینامیک می شود. جهت امتناع از مدیریت داینامیک حتی الامکان از wrapper نال پرهیز شود. اگر نوع داده سن دانش آموز string‌ تعریف شود امکان وجود رشته ای با طول صفر وجود دارد یعنی از سن دانش آموز اطلاعی در دست نیست.


ãäÈÚ

مشخصات

  • منبع: http://sa-mousavi.blogsky.com/1397/03/01/post-21/نوع-داده-نالپذیر
  • کلمات کلیدی: داده ,استفاده ,متغیر ,نالپذیر ,امکان ,wrapper ,داده نالپذیر ,وجود دارد ,متغیر نالپذیر ,دانش آموز ,پذیرش wrapper
  • در صورتی که این صفحه دارای محتوای مجرمانه است یا درخواست حذف آن را دارید لطفا گزارش دهید.


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

همچنان که پیدا است امکان ذخیره سازی انواع مقادیر در متغیری که از نوع داده object است وجود خواهد داشت بنابراین نوع داده object یک universal data container است.


ãäÈÚ

مشخصات



نوع داده object بسیار خاص است. نوع داده object والد و پدر جد تمام کلاسهای موجود در dot net framework است. اگر متغیری با کلیدواژه object‌ تعریف شود می تواند تمام مقادیر مفروض در دیگر انواع داده تعبیه شده در سی شارپ را از آن خود کند. در واقع آرایه ای است که امکان پذیرش انواع مقادیر را دارد بنابراین ساختار بهینه در دسترسی به سلولهای حافظه نیست و به صورت مرتب رنگ عوض کرده و ساختار داینامیک آن سبب کاهش سرعت محاسبات می شود یعنی استفاده از آن نوعی I/O Bound است. مقادیر مجاز در نوع داده object متعلق به مجموعه Universe است که همه مجموعه های قابل پشتیبانی در سی شارپ زیر مجموعه ای از آن هستند.


ãäÈÚ

مشخصات



داده های پایه موجود در زبان برنامه نویسی سی شارپ به قرار زیر است:

  • نوع داده اینتجر: sbyte, byte, short, ushort, int, uint, long, ulong
  • نوع داده ممیز شناور: float, double
  • نوع داده با دقت دهدهی: decimal
  • نوع داده منطقی: bool
  • نوع داده کاراکتر: char
  • نوع داده رشته: string
  • نوع داده نامعلوم ولی منتزع در ذهن برنامه نویس. آن که چیز خطاب شود: object
نوع داده های فوق پایه و تعبیه شده و پیش فرض زبان برنامه نویسی سی شارپ است. جدول زیر نمایی از خصوصیات هر کدام از نوع داده های پایه سی شارپ هستند:


ãäÈÚ

مشخصات



هر نوع داده با تعیین درست موارد زیر ماهیت پیدا می کند:

  1. نام: به طور مثال int
  2. اندازه: تعیین می کند چه مقدار از حافظه در اشغال متغیر خواهد بود. به طور مثال برای نگهداری مقدار عددی نیاز به ۴ بایت و شاید بیشتر باشد.
  3. مقدار پیش فرض: در هنگامی که حافظه به صورت تصادفی به متغیر اختصاص داده می شود چه مقداری در آن قرار خواهد گرفت. مقدار پیش فرض بدون مقداردهی اولیه مفروض است. ممکن است صفر و یا رشته ای جهت اعلان نمی دانم یعنی nil یا null باشد. به هیچ وجه متغیر، empty یعنی تهی نیست چرا که مقادیر تصادفی موجود در حافظه یا صفر یا یک است. اگر مقدار پیش فرض تعیین نشده باشد به صورت ضمنی نمی دانم یعنی nil یا null فرض است. بهتر آن که مبدأ به عنوان مقدار پیش فرض یک متغیر لحاظ شود که در اعداد صحیح صفر است.


ãäÈÚ

مشخصات

تبلیغات

محل تبلیغات شما
محل تبلیغات شما

آخرین ارسال ها

عکس آقای خامنه ای

آخرین جستجو ها

اگر هرگونه سوال و یا اشکالی در رابطه با این زمینه و یا هر زمینه تحصیلی
مانند: مدرسه ، دانشگاه ، کنکور ، ارشد ، دکتری ، نظام وظیفه و... دارید ؛

...کافیست با ما تماس بگیرید

شماره تماس از خط ثابت 9099071613

شماره تماس دوم از خط ثابت 02170705003

پاسخگویی از ۸ صبح تا ۱۲ شب حتی ایام تعطیل