در زمینه فناوری اطلاعات برنامه نویسی و آموزش

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

دور کاری

۶۲ بازديد

درحالتی که کارشناسان و اینسایدرهای صنعت تکنولوژی به نوبت با رویای Bay Area در کالیفرنیا و تمام اسطوره‌های مربوط به آن خداحافظی می‌کنند، کهنه‌کاران سیلیکون ولی که طوفان‌های قبلی را پشت سر گذاشته‌اند، نسبت به ایجاد هرگونه تغییر بدبین هستند. هرچه نباشد، گهواره تکنولوژی کالیفرنیا قبلا از چندین حادثه بزرگ جان سالم به در برده است، یکی از آن‌ها بحران دات‌کام در اواخر دهه ۹۰ میلادی و یکی دیگر، بحران مالی سال ۲۰۰۸ می باشند.

حتی قبل از این بحران‌ها، برخی تصور می‌کردند که رشد فوق سریع سیلیکون ولی قرار نمی باشد آنقدرها پایدار باشند. در سال ۱۹۹۳ میلادی، پاول فلاهرتی، خالق AltaVista مرگ سیلیکون ولی را به عنوان هاب ابداعات تکنولوژی پیش‌بینی و این بحث را مطرح می‌نمود که «هزینه مسکن و فضای اداری از کنترل خارج شده است».

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

بهترین زبان برنامه نویسی

۵۸ بازديد

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

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

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

امنیت وحفاظت داده ها

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

امنیت اینترنت اشیا

۶۹ بازديد

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

 کاربردهای متعدد: الگوی اینترنت اشیا کاربردهای متعددی (همچنین عرصه­ها نامیده می‌شود) خواهد داشت که شامل سلامت الکترونیکی، وسایل خانگی هوشمند، صنایع، شهرهای هوشمند و غیره می‌شود که الزامات امنیتی هر کاربرد کاملاً متفاوت از کاربردهای دیگر است.

 مقیاس‌پذیری: طبق نظر سیسکو، 26.3 میلیارد دستگاه تا سال 2020 به اینترنت وصل خواهند شد. هنگامی‌که نوبت به توسعه مکانیسم‌های دفاعی کارآمد می‌رسد، این تعداد زیاد باعث می‌شود که مقیاس‌پذیری به یک مسئله مهم تبدیل شود و هیچ‌یک از چارچوب‌های دفاعی متمرکزی که پیش‌تر پیشنهاد شده­اند دیگر نمی‌توانند با الگوی اینترنت اشیا کار کنند و تمرکز آن‌ها باید به یافتن مکانیسم‌های امنیتی دفاعی غیرمتمرکز عملی، تغییر یابد.

 کلان داده‌ها: نه‌تنها تعداد اشیا هوشمند رشد خواهد داشت، بلکه داده‌های تولیدشده توسط هر شی نیز کلان است زیرا انتظار می‌رود هر شی هوشمند توسط حسگرهای متعددی تأمین شود که هر حسگرِ آن، جریان‌های عظیمی از داده‌ها را در طول زمان تولید می‌کند و این امر باعث می‌شود ارائه مکانیسم‌های دفاعی کارآمدی که می‌توانند این جریان‌های کلان داده را تأمین کنند، الزامی کنند.

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

 محدودیت‌ منبع: اکثر دستگاه‌های نهایی اینترنت اشیا قابلیت‌های منبع محدودی مانند CPU، حافظه، ذخیره‌سازی، باتری و دامنۀ انتقال دارند که این امر باعث می‌شود دستگاه‌ها در معرض حملات عدم پذیرش سرویس (DoS) قرار گیرند و مهاجم به‌راحتی می‌تواند قابلیت‌های منبع محدود دستگاه‌ها را از پای درآورده و موجب اختلال سرویس شود.

مکان‌های دورافتاده: در بسیاری کاربردهای اینترنت اشیا (به‌عنوان‌مثال، شبکه‌های هوشمند، خطوط آهن، حاشیۀ جاده‌ها)، دستگاه‌های اینترنت اشیا - معمولاً حسگرها- در مکان‌های عاری از انسان نصب می‌شوند که دسترسی به آن‌ها دشوار است و مهاجمان می‌توانند بدون دیده شدن این دستگاه‌ها را مختل کنند.

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

 سرویس حساس به تأخیر: انتظار می‌رود اکثر برنامه‌های اینترنت اشیا نسبت به تأخیر حساس بوده و درنتیجه، فرد باید از اجزای مختلف اینترنت اشیا در برابر هر حمله‌ای که ممکن است زمان سرویس را افزایش داده یا موجب قطعی سرویس شود، محافظت نماید

ابتدایی ترین ورود بیت کوین

۱۲۸ بازديد

رمزارز بیتکوین اولین ارز دیجیتال معرفی شده در دنیاست. این رمزارز، توسط یک برنامه‌نویس نابغه با هویتی ناشناخته و با نام مستعار ساتوشی ناکاموتو (Satoshi Nakamoto) برای اولین بار در اکتبر سال ۲۰۰۸ تحت عنوان مقاله‌ای با نام “بیت‌کوین؛ سیستم پول الکترونیکی همتا به همتا” معرفی شده اند .

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

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

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

معرفی استارتاپ های موفق

۷۲ بازديد

ستارتاپ Basecamp فعالیت خود را در سال ۱۹۹۹ در شیکاگو، به عنوان یک برنامه مبتنی بر وب، آغاز کرده است. این کمپانی که ابتدا با نام ۳۷signals شناخته می‌شد، توسط گروهی از بنیانگذاران راه‌اندازی شد. این گروه بدون هیچ سرمایه‌ای کار خود را آغاز کردند، اما امروز نرم‌افزار آنها توسط میلیون‌ها مشتری از سراسر جهان مورد استفاده قرار داده می‌شوند.

این استارتاپ یک نرم‌افزار مدیریت پروژه و ارتباطات تیمی است که خدمات خود را به شرکت‌های زیادی ارائه می‌کنند و اعتماد آنها را به دست آورده است. در سال ۲۰۱۷ یکی از هم‌بنیانگذاران این کمپانی مقاله‌ای را با عنوان «چگونه یک دلار توانست به ما یک ارزش یک میلیارد دلاری بدهد»، در لینکدین منتشر کرد که مدعی پیشرفت این استارتاپ بدون هیچ‌گونه سرمایه بیرونی بود.  کتاب دیگری نیز در زمینه استارتاپ‌ها به نام Rework نوشته که در میان کسب‌وکارهای نوین محبوبیت زیادی کسب نموده است.

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

مالکیت فکری

۷۳ بازديد

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

  • مالکیت صنعتی

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

نظم و انضباط فردی

۶۹ بازديد

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

بیشتر ما هر گاه صحبت از نظم و انضباط شخصی می شود به یاد یکی از حالت های زیر می افتیم :

۱.دوران مدرسه و آن ” از جلو نظام ها و صف بستن های معروف”

۲ سربازی که شاید بهتر بود اسمش را می گذاشتند “نظم بازی”

۳.یک پدر یا مادر خشک و سختگیر که همیشه غر می زدند چرا انقدر بهم ریخته ای

۴.یک رئییس غرغرو و عصبی و بد اخلاق  که دائما به همه چی گیر میدهد 

اما سوال اصلی این ست که آیا این همه گیر دادن ها و نظم کردن ها باعث شد که ما موفق شویم؟ آیا توانست ما را برای رویارویی با چالش هایی که به واقع نظم و انضباط شخصی ما را می طلبید، 

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

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

 

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

بیت کوین

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

اجزای تشکیل دهنده mvc

۶۴ بازديد

اجزای تشکیل دهنده می باشند

MVC  شامل اجزای مختلفی است و اجزای تشکیل دهنده mvc به شکل زیر معرفی می گردند :

  • MODEL ( مدل در MVC ) :

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

  • VIEW ( نمایشگر در MVC ) :

این قسمت از  مسولیت آماده سازی واسط کاربری برنامه (user interface) را بر عهده دارد. بخش view در معماری mvc با استفاده از بخش model آماده می شود. به این صورت که داده ها را به صورت  شی از model دریافت می کند و به شکلی که برنامه نویس در view مشخص کند به نمایش گذاشته  می شوند