Forwarded from LiTuX
⚒⚒⚒
- معرفی ابزار برنامه سازی: ویرایشگر متن (vim)
ابزار vim در واقع یک Clone از ویرایشگر یونیکسی vi بوده و توانایی و کارایی آن فراتر از یک ویرایشگر عادی متن است.
آن در دو حالت متنی (CLI) و گرافیکی (GUI) قابل استفاده است. مانند ویرایشگر vi رابط کاربری vim بر اساس Menu و Toolbar نبوده و در حالت متنی عمل میکند. پوسته gvim رابط گرافیکی کاربری را به آن میدهد اما همچنان همه توان عملکرد آن در حالت متنی است.
همچنین در طراحی و پیاده سازی vim دستیابی به حداکثر سرعت و دقت در تایپ (از طریق حفظ گرایش انگشتان بر موضع سطر خانگی بر روی صفحه کلید) در نظر گرفته شده است.
این ابزار جهت سهولت کار کاربران در شروع بکار با آن، از طریق خط فرمان (فرمان vimtutor) دفترچه راهنمای آن را که بصورت بر خط (On-Line) نیز در دسترس میباشد را فراهم نموده است.
همچنین راهنمای (Help) آن از طریق خط فرمان (فرمان help:) در دسترس است.
قدرت و انعطاف عمده vim در شخصی سازی آن در ویرایشگری است. همچنین افزونه های (Plugins) بسیاری جهت افزایش دامنه کارایی آن در دسترس است.
این اسکریپتهای پیچیده در حقیقت با زبان اسکریپتی درونی vim نوشته شدهاند. همچنین در این رابطه vim از زبانهای اسکریپتی زیر پشتیبانی میکند:
Perl, Python, Racket, Ruby & TCL
- سبکی و چالاکی نسبت به رقبای انحصاری که موجب کوتاه شدن زمان بالا آمدن نرمافزار (Startup)، ذخیره شدن فضای دیسک، کارایی (Performance) بهینه تر در زمان اجرا میگردد.
- پشتیبانی از Unicode
- تکمیل کننده کد
- مقایسه کننده و ترکیب کننده فایلها
- پشتیبانی کامل از Regexp پیشرفته (و البته زبان Perl)
- پشتیبانی از عملیات مربوط به فایلها از طریق پروتکلهای شبکه مانند:
SSH, FTP & HTTP
- پشتیبانی از Spell Checking
...
پوسته gvim این ابزار بر پایه کتابخانه GTK ساخته شده است.
در سیستمهای بر پایه دبیان، در مخازن رسمی در دسترس بوده و با دستور زیر در ترمینال نصب میشود:
$ sudo apt install vim
#Development_Tools
#vi
#vim
👁🗨👁🗨👁🗨
+ @Litux (Reference applications of GNU/Linux)
- معرفی ابزار برنامه سازی: ویرایشگر متن (vim)
ابزار vim در واقع یک Clone از ویرایشگر یونیکسی vi بوده و توانایی و کارایی آن فراتر از یک ویرایشگر عادی متن است.
آن در دو حالت متنی (CLI) و گرافیکی (GUI) قابل استفاده است. مانند ویرایشگر vi رابط کاربری vim بر اساس Menu و Toolbar نبوده و در حالت متنی عمل میکند. پوسته gvim رابط گرافیکی کاربری را به آن میدهد اما همچنان همه توان عملکرد آن در حالت متنی است.
همچنین در طراحی و پیاده سازی vim دستیابی به حداکثر سرعت و دقت در تایپ (از طریق حفظ گرایش انگشتان بر موضع سطر خانگی بر روی صفحه کلید) در نظر گرفته شده است.
این ابزار جهت سهولت کار کاربران در شروع بکار با آن، از طریق خط فرمان (فرمان vimtutor) دفترچه راهنمای آن را که بصورت بر خط (On-Line) نیز در دسترس میباشد را فراهم نموده است.
همچنین راهنمای (Help) آن از طریق خط فرمان (فرمان help:) در دسترس است.
قدرت و انعطاف عمده vim در شخصی سازی آن در ویرایشگری است. همچنین افزونه های (Plugins) بسیاری جهت افزایش دامنه کارایی آن در دسترس است.
این اسکریپتهای پیچیده در حقیقت با زبان اسکریپتی درونی vim نوشته شدهاند. همچنین در این رابطه vim از زبانهای اسکریپتی زیر پشتیبانی میکند:
Perl, Python, Racket, Ruby & TCL
- سبکی و چالاکی نسبت به رقبای انحصاری که موجب کوتاه شدن زمان بالا آمدن نرمافزار (Startup)، ذخیره شدن فضای دیسک، کارایی (Performance) بهینه تر در زمان اجرا میگردد.
- پشتیبانی از Unicode
- تکمیل کننده کد
- مقایسه کننده و ترکیب کننده فایلها
- پشتیبانی کامل از Regexp پیشرفته (و البته زبان Perl)
- پشتیبانی از عملیات مربوط به فایلها از طریق پروتکلهای شبکه مانند:
SSH, FTP & HTTP
- پشتیبانی از Spell Checking
...
پوسته gvim این ابزار بر پایه کتابخانه GTK ساخته شده است.
در سیستمهای بر پایه دبیان، در مخازن رسمی در دسترس بوده و با دستور زیر در ترمینال نصب میشود:
$ sudo apt install vim
#Development_Tools
#vi
#vim
👁🗨👁🗨👁🗨
+ @Litux (Reference applications of GNU/Linux)
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
فریمورک Aurelia یکی از فریمورکهای خوشساخت برنامههای وب نسل جدید است. این فریمورک که در حقیقت معادل و رقیب Angular 2 است معمولا به معماری خوب و Syntax بهتر از رقیب خود شناخته میشود. مدتی است که در مقایسه فریمورکهای جاوا اسکریپتی یکی از نکاتی که بسیار مورد توجه قرار میگیرد یکپارچگی آنها با TypeScript است. از این نظر نیز Aurelia بسیار خوب عمل کرده است و نه تنها کاملا با تایپ اسکریپت سازگار است، بلکه تمامی مستندات آن برای این زبان نیز وجود دارد و اصولا یکی از روشهای اصلی توسعه سیستم در آن استفاده از زبان TypeScript است.
مقاله زیر که توسط Mike Graham نوشته شده، توضیح میدهد که چگونه با این دو تکنولوژی میتوان شروع به توسعه نرمافزار کرد.
http://blog.durandal.io/2015/05/06/getting-started-with-aurelia-and-typescript
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر که توسط Mike Graham نوشته شده، توضیح میدهد که چگونه با این دو تکنولوژی میتوان شروع به توسعه نرمافزار کرد.
http://blog.durandal.io/2015/05/06/getting-started-with-aurelia-and-typescript
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Aurelia
Getting Started with Aurelia and TypeScript
Today, Core Aurelia Team member, Mike Graham, teaches us about combining Aurelia and TypeScript. About The Author Mike Graham (@cmichaelgraham) is a software architect with 25 years of experience designing and building extensible visualization platforms and…
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
معماری حافظه در .Net یکی از مفاهیم مهمی است که هنگام کار، مخصوصا هنگام نوشتن برنامههایی که از Parallel Programming استفاده میکنند بسیار اهمیت دارد. کلمه کلیدی volatile دستوری در زبان C# است معمولا کمتر شناخته شدهاست، ولی در خیلی از شرایط موازی، عدم استفاده از آن باعث ایجاد خطاهای عجیب میشود. مقاله زیر از Igor Ostrovsky (یکی از برنامه نویسان تیم ابزارسازی داتنت) در مورد مدل معماری حافظه در .Net صبحت کرده است. در این مقاله در مورد مفاهیمی مانند Lazy Initialization که بسیار پر کاربرد هستند نیز صحبت کرده است.
https://msdn.microsoft.com/en-us/magazine/jj863136.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
https://msdn.microsoft.com/en-us/magazine/jj863136.aspx
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۴۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
نوشتن یک رزومه خوب برای پستهای برنامهنویسی و یا UI/UX بسیار مهم است. رزومه باید بتواند قابلیتهای شما را در یک تعامل ذهنی به خواننده منتقل کند. شما باید بتوانید در رزومه خود، یک خط پنهان طراحی کنید تا کسی که رزومه شما را میخواند ناخودآگاه به ترتیبی که شما میخواهید رزومه شما را ببیند. به عبارت دیگر، اگر برای پست UI/UX رزومه مینویسید باید در آن اصول UI/UX را رعایت کنید.
نمونه جالب زیر، رزومه یک طراح است که به صورت یک شبه بازی رزومه خود را طراحی کردهاست و روند آن طوری است که شما را مشتاق نگه میدارد که تا آخر رزومه را مطالعه کنید.
http://www.rleonardi.com/interactive-resume
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
نمونه جالب زیر، رزومه یک طراح است که به صورت یک شبه بازی رزومه خود را طراحی کردهاست و روند آن طوری است که شما را مشتاق نگه میدارد که تا آخر رزومه را مطالعه کنید.
http://www.rleonardi.com/interactive-resume
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۳۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
زبان C++ کماکان یکی از قویترین زبانهایی است که تا به امروز ساخته شده است. خالق این زبان Bjarne Stroustrup اخیرا یک پیشنویس ارائه داده است که در آن در مورد اهداف نسخه بعدی یعنی C++ 17 صبحت کردهاست. مهمترین اهداف طراحی در این نسخه عبارتند از:
• بهبود پشتیبانی از large-scale dependable software
• بهرهمند شدن از ماژولهای سطح بالاتر برای concurrency
• ساده سازی هسته زبان
لینک زیر مصاحبهای است که با Stroustrup در مورد این پیشنویس انجام شده است.
https://www.infoq.com/news/2015/04/stroustrup-cpp17-interview
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
• بهبود پشتیبانی از large-scale dependable software
• بهرهمند شدن از ماژولهای سطح بالاتر برای concurrency
• ساده سازی هسته زبان
لینک زیر مصاحبهای است که با Stroustrup در مورد این پیشنویس انجام شده است.
https://www.infoq.com/news/2015/04/stroustrup-cpp17-interview
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
InfoQ
Stroustrup: Thoughts on C++17 - An Interview
Bjarne Stroustrup, designer and original implementor of C++, has recently circulated a draft aimed at “stimulating a discussion” about C++17 design goals and possible new features,. such as modules, concepts, and ranges. InfoQ has taken the opportunity to…
مفهوم Parameter Binding در ASP.NET Web Api وظفیه نگاشت و پر کردن پارامترهای مورد نیاز در متد تعریف شده به عنوان Action را دارد. این کار به وسیله اطلاعاتی که در پارامترها در URI و اطلاعاتی که در Body آمدهاست انجام میشود.
به صورت پیشفرض پارامترهای از نوعهای پایه (int, string, …) از طریق URI پر میشوند و پارامترهای Complex از طریق Body ساخته میشود. برای تغییر این رویه روشهای خاصی وجود دارد که در مقاله زیر به طور کامل توضیح داده شدهاست.
https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
به صورت پیشفرض پارامترهای از نوعهای پایه (int, string, …) از طریق URI پر میشوند و پارامترهای Complex از طریق Body ساخته میشود. برای تغییر این رویه روشهای خاصی وجود دارد که در مقاله زیر به طور کامل توضیح داده شدهاست.
https://www.asp.net/web-api/overview/formats-and-model-binding/parameter-binding-in-aspnet-web-api
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
پیاده سازی Owin Authorization در برنامههایی که از Owin WebApi استفاده میکنند معمولا بسیار کاربردی است. استفاده از Owin در معماری برنامههای تحت وب مزایای زیادی دارد. مفهوم Middleware در این معماری باعث خوانایی بسیار زیادی در معماری میشود. در معماری Owin فضاهای بسیار مشخصی برای نوشتن کدها تعریف شدهاست.
مقاله زیر به خوبی نشان میدهد چطور Claim based authentication را با استفاده از Owin روی ASP.NET WebApi تنظیم کنید.
https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر به خوبی نشان میدهد چطور Claim based authentication را با استفاده از Owin روی ASP.NET WebApi تنظیم کنید.
https://brockallen.com/2013/10/24/a-primer-on-owin-cookie-authentication-middleware-for-the-asp-net-developer
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
Microsoft
ASP.NET Core, an open-source web development framework | .NET
Build web apps and services that run on Windows, Linux, and macOS using C#, HTML, CSS, and JavaScript. Get started for free on Windows, Linux, or macOS.
برنامه نویس ارشد یا مدیر تیم شدن اتفاقی است که ممکن است برای هر برنامه نویسی پیش بیاید، اتفاقی جذاب و پر استرس. شما یک برنامه نویس خوب هستید، اما این لزوما به معنی توانایی بالا در ارتباط برقرار کردن با دیگران، مدیریت امور و رفع تناقضها نیست. شما از این به بعد مسئولیت کل تیم را به عهده دارید که شامل افراد فنی و افراد غیر فنی است. مقاله زیر پنج نکته مفید در مورد یک مدیر فنی موثر را توضیح داده است.
https://www.thoughtworks.com/insights/blog/5-tips-being-effective-tech-lead
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.thoughtworks.com/insights/blog/5-tips-being-effective-tech-lead
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Thoughtworks
5 Tips for Being an Effective Tech Lead
Becoming a Tech Lead is a tough transition for any developer, because only part of the skills and experience you had as a developer prepares you for the expectations of a new role. Instead of simply designing and writing code, a Tech Lead is suddenly responsible…
به احتمال خیلی زیاد همه ما، خصوصا برنامه نویسان موبایل، بعد از شهرت یافتن بازی پوکومن با مفهوم واقعیت افزوده یا Augmented Reality آشنا شده ایم. تکنولوژی که می تواند تمامی معادلات آینده را دستخوش تغییر کند. اما تفاوتهای آن با مفهوم Virtual Reality (واقعیت مجازی)، یکی از مبهمترین مسائل می باشد. مقاله زیر تفاوت این دو مفهوم را به سادگی توضیح داده است.
http://www.augment.com/blog/virtual-reality-vs-augmented-reality/
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
http://www.augment.com/blog/virtual-reality-vs-augmented-reality/
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Augment
3D and augmented reality product visualization platform
The platform for 3D and augmented reality product visualization
#پست_مجدد این پست تا به حال بیش از ۱۱۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
پیاده سازی Multi-Tenant Application و مدیریت دادههای مشتریان مختلف در یک بانک اطلاعاتی، پیچیدگیهای فراوانی دارد. در نسخه SQL Server 2016 امکانی به نام RLS (Row-Level Security) اضافه شده که این موضوع را بسیار سادهتر کرده است. لینک زیر توضیح میدهد که چگونه با استفاده از این امکان میتوان امنیت دادهها را در سطح رکورد فراهم کرد. با استفاده از این قابلیت میتوان برنامههایی برای چندین مشتری که اطلاعات آنها در یک بانک اطلاعاتی نگهداری می شوند، تولید کرد.
https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-row-level-security-introduction
#محمدمحبتی
لینکدین :
https://www.linkedin.com/in/mohabbati
کانال تلگرام:
@SoftwarePhilosophy
___
https://www.mssqltips.com/sqlservertip/4004/sql-server-2016-row-level-security-introduction
#محمدمحبتی
لینکدین :
https://www.linkedin.com/in/mohabbati
کانال تلگرام:
@SoftwarePhilosophy
___
Mssqltips
SQL Server 2016 Row Level Security Introduction
Learn how to use the new feature Row Level Security in SQL Server 2016.
Forwarded from Software Philosophy
اگر دوستانی دارید که نه تنها برنامه نویس هستند، بلکه اعتقاد دارید «مهندس نرمافزار» هم هستند، آنها را به کانال @SoftwarePhilosophy دعوت کنید.
این پیغام را برای آنها Forward کنید.
این پیغام را برای آنها Forward کنید.
ظهور فناوریهای جدید در طراحی بازیهای جدید کامپیوتری تاثیر زیادی دارد. یکی از مهمترین تغییراتی در حال متحول کردن بازیهای کامپیوتری است، «واقعیت مجازی» یا حتی «واقعیت ساختگی» است. ویدئوی زیر یکی از بازیهایی را نشان میدهد که روی تخته سنگ واقعی که صخره نوردان از آن بالا میروند پیادهسازی شدهاست. این بازی از طریق یک Kinect سنگنورد را روی تخته سنگ شناسایی و دنبال میکند و در نهایت از طریق پروژکتور بازی را روی تخته سنگ نمایش میدهد. این سبک بازیها نشان میدهند که به راحتی میتوان با یک زبان برنامه نویسی مانند C# به دستگاه Kinect وصل شد. برای خلق محصولات خاص و جدیدی مانند این بازی، میتوانید از Kinect SDK استفاده کنید.
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#مهران_داودی
لینکدین:
https://ir.linkedin.com/in/mehrandvd
کانال تلگرام:
@SoftwarePhilosophy
___
#پست_مجدد این پست تا به حال بیش از ۱۰۰۰ بار مشاهده شده و به نظر میرسد برای خوانندگان جدید کانال جذاب باشد.
Forwarded from Software Philosophy
مفهوم Tow way bindig یکی از مهمترین امکاناتی است که فریم ورک AngularJS در اختیار برنامهنویسان قرار میدهد. این امکان به این صورت است که با تغییر view model، scope model نیز تغییر میکند و بلعکس. کاری که این فریم ورک برای ایجاد ارتباط بین view و scope model انجام میدهد به این صورت است که زمانیکه scop model تغییر می کند، به صورت خودکار $scope.$apply() صدا زده می شود که متعاقب آن $rootScope.$digest() فراخوانی میشود. با فراخوانی این سرویس، سیکل digest روی $scopeRoot شروع به کار کرده و تمام سرویسهای $watch را اجرا می کند. سرویس $watch مقدار view Model را با scope model مقایسه و مقادیر جدید را جایگزین میکند.
مقاله زیر توضیحات کاملی درباره سرویس های $apply و $digest داده و چرخه وصل کردن view به scope را به طور کامل شرح داده است.
https://www.sitepoint.com/understanding-angulars-apply-digest
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
مقاله زیر توضیحات کاملی درباره سرویس های $apply و $digest داده و چرخه وصل کردن view به scope را به طور کامل شرح داده است.
https://www.sitepoint.com/understanding-angulars-apply-digest
#مریم_داودی
لینکدین:
https://www.linkedin.com/in/maryam-davoudi-7913565a
کانال تلگرام:
@SoftwarePhilosophy
___
Sitepoint
Understanding Angular's $apply() and $digest() - SitePoint
This article explores Angular's $apply() function and the $digest cycle. The reader will learn when $apply() must be called manually.
پیش بینی می شود که تکنولوژیهای واقعیت مجازی و واقعیت افزوده تا سال 2020 بتوانند 150 میلیارد دلار درآمد داشته باشند که بیشترین سهم را واقعیت مجازی یا Augmented Reality دارد. در نتیجه یادگیری استفاده از این تکنولوژی و یا تولید برنامههایی برپایه این تکنولوژی به برنامه نویسان موبایل توصیه میشود. در این راستا خیلی از شرکت ها،SDK هایی برای سیستم عامل های Android و IOS تولید کرده اند که بین آن ها Wikitude از همه پر طرفدارتر بوده است. توضیحات تکمیلی و نسخه آزمایشی آن را می توانید در لینک زیر پیدا کنید.
http://www.wikitude.com/products/wikitude-sdk/
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
http://www.wikitude.com/products/wikitude-sdk/
#کاروان_جافی
لینکدین:
https://uk.linkedin.com/in/karvan-jafi-96897027
کانال تلگرام:
@SoftwarePhilosophy
___
Wikitude
Augmented Reality Experiences with Wikitude Cross Platform SDK
Build Augmented Reality Experiences for iOS, Android, Smart Glasses. Use Wikitude AR SDK! Object & Image Recognition, Scene Recognition