مرورگرها در آینده مجهز به AI میشن اصلیترین دلیلش هم بحث privacy است؛ حین کار با LLMها مسئله امنیت دادهها موضوع به شدت مهمی است؛ روشهای برای anonymise کردن ورودیهای این LLMها قابلانجام است اما مسئله این است که اگر کانتکست کافی وجود نداشته باشد خروجی به آن اندازهایی که انتظار داریم شاید مفید نباشد. مدتی است گوگل به صورت آزمایشی در حال اضافه کردن امکان استفاده از LLMها (در حال حاضر Gemini Nano) به مرورگر Chrome است. یکی دیگه از مزایای قراردادن LLMها درون مرورگر پاسخگویی سریع به درخواستها میباشد در اینحالت دیگر نیاز به ارسال درخواست به یک Remote LLM کمتر خواهد شد؛ با پائین آمدن latency، کاربران تجربه نزدیکتر به real-time را احساس خواهند کرد. لازم به ذکر است این قابلیت به صورت آزمایشی و فعلاً در حد یک proposal میباشد و فقط در نسخههای Canary و Dev قابل استفاده میباشد.
- Fixes issue when entering wrong credentials while trying to connect to a remote Mac build host.
- Fixed an inability to open some types of files.
- Fixed an issue resulting in a failure to add an Apple Developer account with two-step authentication.
- Fixed a crash in watchOS applications when creating GC thread.
- Fixed regression that disallowed exponential floats of the form 1e5f.
- Fixed an issue preventing opening files that are opened in external applications such as Word or Excel.
5.Visual Studio 2017 15.7 منتشر شد
These are the customer-reported issues addressed in 15.7.5:
- VS2017 15.7.0 Community debugger not showing variable values on hover.
- Exception block is optmized away causing a crash.
- cannot push to remote repository since update from 15.7.2 to 15.7.3.
- Sync commit: Git failed with a fatal error.
- Compiler bug related to math operations on NaN not conforming to standards, when optimization is enabled.
- Optimization error in x86 build reorders lines incorrectly.
حجم تقریبی بروزرسانی از نسخه 15.7.4 به 15.7.5 برابر با 1.7GB میباشد
An unhandled exception occurred while processing the request. InvalidCastException: Cannot cast Newtonsoft.Json.Linq.JArray to Newtonsoft.Json.Linq.JToken. Newtonsoft.Json.Linq.Extensions.Convert<T, U>(T token) Exception: An error was encountered while handling the remote login. Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler.HandleRequestAsync
options.ClaimActions.MapUniqueJsonKey(claimType: "role", jsonKey: "role");
options.ClaimActions.MapJsonKey(claimType: "role", jsonKey: "role"); // for having 2 or more roles
<?xml version="1.0" encoding="UTF-8"?> -<Log xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Type>Error</Type> <Gateway>Mellat</Gateway> <OrderNumber>636685148523361974</OrderNumber> <Amount>72000</Amount> <Message>The remote server returned an error: (500) Internal Server Error.</Message> <CreatedOn>2018-07-30T02:34:12.4425676+04:30</CreatedOn> </Log>
Kendo UI MVVM
var dsReviewList = new kendo.data.DataSource({ // .... change: function (e) { // change event is wired to success of the request. // `e.action` with possible values: "itemchange", "add", "remove" and "sync". }, error: function (xhr, error) { // error event will be triggered if any error occurred for the request. console.debug(xhr); console.debug(error); }, requestEnd: function(e) { // Fired when a remote service request is finished. var response = e.response; var type = e.type; console.log(type); if (type == "undefined") { showError(); } else { showSuccess(type); } } });
متدهای الحاقی - Extension Methods
Microsoft Visual Studio TF31002: Unable to connect to this Team Foundation Server: http://dntextensions.codeplex.com/. Team Foundation Server Url: http://dntextensions.codeplex.com/. Possible reasons for failure include: - The name, port number, or protocol for the Team Foundation Server is incorrect. - The Team Foundation Server is offline. - The password has expired or is incorrect. Technical information (for administrator): The remote server returned an error: (404) Not Found.
بعد از آمدن نسخهی سوم ASP.NET MVC مکانیسمی به نام Remote Validation به آن اضافه شد که کارش اعتبارسنجی از راه دور بود. فرض کنید نیاز است در یک فرم، قبل از اینکه کل فرم به سمت سرور ارسال شود، مقداری بررسی شده و اعتبارسنجی آن انجام گیرد و این اعتبارسنجی چیزی نیست که بتوان سمت کاربر و بدون فرستاده شدن مقداری به سمت سرور صورت گیرد. نمونه بارز این مسئله صفحه عضویت اکثر سایتهایی هست که روزانه داریم با آنها کار میکنیم. فیلد نام کاربری توسط شما پر شده و بعد از بیرون آمدن از آن فیلد، سریعا مشخص میشود که آیا این نام کاربری قابل استفاده برای شما هست یا خیر. بهصورت معمول برای انجام این کار باید با جاوا اسکریپت، مدیریتی روی فیلد مربوطه انجام دهیم. مثلا با بیرون آمدن فوکوس از روی فیلد، با Ajax نام کاربری وارد شده را به سمت سرور بفرستیم، چک کنیم و بعد از اینکه جواب برگشت بررسی کنیم که الان آیا این نام کاربری قبلا گرفته شده یا نه.
انجام این کار بهراحتی با مزینکردن خصوصیت (Property) مربوطه موجود در مدل برنامه به Attribute یا ویژگی Remote و داشتن یک Action در Controller مربوطه که کارش بررسی وجود یوزرنیم هست امکان پذیر است. ادامه بحث را با مثال همراه میکنم.
به عنوان مثال در سیستمی که قرار هست محصولات ما را ثبت کند، باید بیایم و قبل از اینکه محصول جدید به ثبت برسد این عملیات چککردن را انجام دهیم تا کالای تکراری وارد سیستم نشود. شناسه اصلی که برای هر محصول وجود دارد بارکد هست و ما آن را میخواهیم مورد بررسی قرار دهیم.
مدل برنامه
public class ProductModel { public int Id { get; set; } [Display(Name = "نام کالا")] [Required(ErrorMessage = "{0} یک فیلد اجباری است و باید آن را وارد کنید.")] [StringLength(50, ErrorMessage = "طول {0} باید کمتر از {1} کاراکتر باشد.")] public string Name { get; set; } [Display(Name = "قیمت")] [Required(ErrorMessage = "{0} یک فیلد اجباری است و باید آن را وارد کنید.")] [DataType(DataType.Currency)] public double Price { get; set; } [Display(Name = "بارکد")] [Required(ErrorMessage = "{0} یک فیلد اجباری است و باید آن را وارد کنید.")] [StringLength(50, ErrorMessage = "طول {0} باید کمتر از {1} کاراکتر باشد.")] [Remote("IsProductExist", "Product", HttpMethod = "POST", ErrorMessage = "این بارکد از قبل در سیستم وجود دارد.")] public string Barcode { get; set; } }
همونطور که میبینید خصوصیت Barcode را مزین کردیم به ویژگی Remote. این ویژگی دارای ورودیهای خاص خودش هست. وارد کردن نام اکشن و کنترلر مربوطه برای انجام این چککردن از مهمترین قسمتهای اصلی هست. چیزهایی دیگهای هم هست که میتوانیم آنها را مقداردهی کنیم. مثل HttpMethod، ErrorMessage و یا AdditionFields. HttpMethod که همان طریقهی ارسال درخواست به سرور هست. ErrorMessage هم همان خطایی هست که در زمان رخداد قرار است نشان داده شود. AdditionFields هم خصوصیتی را مشخص میکند که ما میخوایم بههمراه فیلد مربوطه به سمت سرور بفرستیم. مثلا میتونیم بههمراه بارکد، نام کالا را هم برای بررسیهای مورد نیازمان بفرستیم.
کنترلر برنامه
[HttpPost] [OutputCache(Location = OutputCacheLocation.None, NoStore = true)] public ActionResult IsProductExist(string barcode) { if (barcode == "123456789") return Json(false); // اگر محصول وجود داشت return Json(true); }
در اینجا به نمایش قسمتی از کنترلر برنامه میپردازیم. اکشنی که مربوط میشود به چککردن مقدارهای لازم و در پایان آن یک خروجی Json را برمیگردانیم که مقدار true یا false دارد. در حقیقت مقدار را به این صورت برمیگردانیم که اگر مقدار ورودی در پایگاه داده وجود دارد، false را برمیگرداند و اگر وجود نداشت true. همینطور آمدیم از کش شدن درخواستهایی که با Ajax آمده با ویژگی OutputCache جلوگیری کردیم.
هر برنامه نویس یک خود آموخته است
There are many ways to become a programmer beside getting a computer science degree. If you’re on that less conventional path, you may be wondering what you should do to catch up to people who do have a degree. How can you compete with someone who spent many years in a classwork learning about computers and programming?