一切福田,不離方寸,從心而覓,感無不通。

[C#]VS2017调试时Console.WriteLine无法在Output窗口输出

问题: 之前在VS2012、VS2015中,可直接在应用程序中Console.WriteLine输出信息来调试bug。最近换到VS2017后,却发现怎么也无法输出 解决: 这个问题的原因是VS2017开始已经不再使用Hosting Process模式,在Hosting Process时可以将信息输出至 Output窗口。 在VS2017及以后的版本可以使用Trace.WriteLine来将调试信息输出至Output窗口。 另外VS2017对CPU的要求也高了,我的老机器一打开没多久就出现很多ServiceHub.Host.CLR.x86.exe的进程,导致写代码卡顿,不得已换了新机器,升级到i5后没再出现卡顿现象了。一起典型的软件倒逼硬件更新的例子,诸君勿笑.   from:https://blog.csdn.net/edcvf3/article/details/104827175

龙生   28 Jan 2021
View Details

2020 年十大热门机器学习项目

本文最初发表于 Medium 博客,经原作者 Anupam Chugh 授权,InfoQ 中文站翻译并分享。 2021 年才刚刚开始,在过去的一年中,机器学习领域中发生了很多事情。 本文介绍了最流行的开源研究项目、演示和原型。其范围从照片编辑到自然语言处理,再到使用“无代码”训练模型,我希望这些能够激发你去构建令人难以置信的人工智能产品。 1、Background Matting v2 https://github.com/PeterL1n/BackgroundMattingV2 Background Matting v2(背景抠图)从广受欢迎的 The World is Your Green Screen(世界是你的绿幕)开源项目中汲取灵感,展示了如何实时删除或更改背景。它提供了更好的性能(4K 时为 30fps,FHD 时为 60fps),并可与流行的视频会议应用 Zoom 一起使用。 该技术使用附加捕获的背景帧,并将其用于恢复 alpha 哑光和前景层。采用两个神经网络对高分辨率图像进行实时处理。 假如你想把某人从视频中移除,同时保留背景,这个项目绝对有用。 2、SkyAR https://github.com/jiupinjia/SkyAR 这是一个神奇的项目,它能对视频中的天空进行替换和协调,并能在视频中自动生成具有逼真和戏剧性风格的天空背景,而且风格可控。 这个以 Pytorch 为基础的项目使用了 pytorch-CycleGAN-and-pix2pix 项目中的部分代码,使用了天空抠图,通过光流进行运动估计,以及图像混合,实时提供视频艺术背景。 上面提到的开源项目在电影和视频游戏中有惊人的潜力,比如增加雨天、晴天等等。 3、AnimeGAN v2 https://github.com/TachibanaYoshino/AnimeGANv2 将照片卡通化总是一个有趣的机器学习项目。不是吗? 这个项目 AnimeGAN v2 是 AnimeGAN 的改进版本。具体来说,它在保证防止高频伪影产生的同时,将神经风格转移与生成对抗网络(GAN)结合起来完成任务。 4、txtai https://github.com/neuml/txtai 人工智能精准化的搜索引擎和问答聊天机器人永远是当前的需求。而这正是这个项目所要做的。 txtai 利用 sentence-transformers、transformers 和 faiss,为上下文搜索和提取式问题回答构建了一个人工智能引擎。 实际上, txtai 支持构建用于相似性搜索的文本索引,并基于抽取式创建问题回答系统。 5、Bringing-Old-Photos-Back-to-Life https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life 接下来是微软最新的照片修复项目,可以自动修复受损照片。 具体来说,它通过在 PyTorch 中的深度学习实现,利用划痕检测、人脸增强等技术,修复遭受复杂退化的老照片。 根据他们的研究论文:“我们训练了两种变自编码器(variational autoencoders,VAEs),它们分别将旧照片和干净照片转换到两个潜在空间。而这两个潜在空间之间的转换是通过合成的配对数据来学习的。由于紧凑的潜在空间中的域隙是封闭的,所以这种转换能很好地泛化到真实照片中。此外,为了解决一张旧照片中的各种混杂退化问题,我们设计了一个全局分支和一个局部分支,该分支包括一个局部非局部分块,针对结构化缺陷,如划痕和尘点,以及一个局部分支,针对非结构化缺陷,如噪声和模糊。” 从下面的演示中可以看出,该模型的性能明显优于传统的技术方法。 6、Avatarify https://github.com/alievk/avatarify Deepfake 项目已经横扫机器学习和人工智能社区。这个项目展示了一个典型的示例,它允许你在实时视频会议应用中创建照片般逼真的头像。 主要是利用 First Order Model(一阶模型)来提取视频中的动作,然后利用光流把它们应用到目标的头像上。通过这种方式,你可以在虚拟的摄像机上生成虚拟的人物,甚至可以将经典画作做成动画。从伊隆·马斯克到蒙娜丽莎,你可以模仿任何人来玩耍! 7、Pulse https://github.com/adamian98/pulse 这是一个人工智能模型,它显示了如何从一个低分辨率的人脸图像中生成一个逼真的人脸图像。 PULSE,即 Self-Supervised Photo Speampling via […]

龙生   28 Jan 2021
View Details

2021 年最值得学习的 10 种编程语言

首个编程语言是?这要归功于一位英国数学家。事实上,被称为 Ada Lovelace 的 Augusta Ada Byron 定义了首个编程语言。它是一种“汇编”语言,但是,它的分析机一直没有完成。“Plankalkül”紧随 Ada Lovelace 项目之后出现。1942 年,德国计算机科学家和工程师 Konrad Zuse 首次提出了这种为工程应用而开发的编程语言。它是首个为计算机而设计的高级编程语言。这个项目的首个版本发布于 1946 年。   有趣的是,一般来说,由于第二次世界大战的缘故,数字电子计算机很可能是应用于军方(正是因为这场战争以及计算机在军事战略中的重要性)而不是为公众所知。   但是,历史上最重要的编程语言是什么呢?预计下,在 2021 年使用最多的又是哪些呢? 2021 年你可以学习的 10 种编程语言   下面,我们将以年代为单位逐一介绍下历史上的主要编程语言。但是,2021 年的主要编程语言是什么呢?它们是如何发展的呢?   https://youtu.be/UNSoPa-XQN0   10、 Go   Go 是一种静态强类型、编译型的编程语言,由 Robert Griesemer、Rob Pike 和 Ken Thompson 设计而成。Go 在语法上类似于 C,但它具有内存安全、垃圾回收、结构类型和 CSP-style 的并发性等特性。该语言因其域名(golang.org)而常被称为 Golang,但它真正的名字是 Go。   来源:https://en.wikipedia.org/wiki/Go_(programming_language)   9、Swift   Swift 是一种功能强大且直观的编程语言,适用于 macOS、iOS、watchOS、tvOS 等平台。编写 Swift 代码具有交互性和趣味性,它语法简洁而又富有表现力,并且 Swift 包含了很多开发人员喜欢的现代特性。Swift 代码在设计上是安全的,但也能生产出运行速度极快的软件。   来源:https://developer.apple.com/swift/   8、 R   R 是由统计计算 R 基金会支持的用于统计计算和图形学的编程语言和自由软件环境。统计人员和数据挖掘人员广泛使用 R 语言来开发统计软件并进行数据分析。   来源:https://en.wikipedia.org/wiki/R_(programming_language)   7、Ruby   Ruby 是一种动态的、开源的编程语言,注重简洁性和效率。它具有优雅的语法,不仅易读而且也易于编写。   来源:https://www.ruby-lang.org/zh_cn/   6、 […]

龙生   28 Jan 2021
View Details

WebRTC 成为 W3C 和 IETF 正式标准

2021年1月26日,W3C(万维网联盟)和 IETF (互联网工程任务组)同时宣布 WebRTC(Web Real-Time Communications,Web 实时通信)现发布为正式标准,将音视频通信带到 Web 上任何地方。 WebRTC 由用于 Web 实时通信的 JavaScript API 和一组通信协议构成,支持网络上的任何已连接设备成为 Web 上潜在的通信端点。WebRTC 已成为线上通信及协作服务的基石。 目前全球都面临着 COVID-19 疫情,WebRTC 让数十亿人无论其设备或地域如何,在 COVID-19 疫情期间也能保持联络。WebRTC 的使用已经超越了最初的核心设计,即在浏览器和其他生态(例如本地应用)中支持视频会议和协作系统。现在需要更多的特性和优化。 IETF WebTransport (WEBTRANS) 和 WebRTC Ingest Signaling over HTTPS (WISH) 工作组已经在开展工作,在 IETF 其他工作组的基础上进一步协调、拓展相关工作。其中包括 QUIC(定义支持 WebTransport API 开发的新协议)和 HTTPBIS(指定简单、可扩展的、基于 HTTPS 的信令协议),以在广播工具和实时媒体广播网之间建立基于 WebRTC 的单向视听会话。 W3C WebRTC 工作组已经开始研究 WebRTC Next Version Use Cases,规划 WebRTC 的未来,特别是: 在服务器介导的视频会议中的端到端加密 即时处理音视频材料,包括通过机器学习 物联网(例如 IoT 传感器维持长期连接并寻求最小功耗) WebRTC 工作组正对现有及新的用例进行迭代,重点理解全部需求及其优先级。W3C 近期开始的 WebTransport 和 Web Codecs 工作预计将低延迟流媒体的优势引入更广大的媒体和娱乐生态系统。 WebRTC 成为 W3C 为应用程序开发定义开放 Web 平台的众多标准之一,具有前所未有的潜力。其让开发人员能够构建丰富的交互体验,由巨大的数据存储提供动力,可用于任何设备以及环境。 WebRTC 标准文档:https://www.w3.org/TR/webrtc/   from:https://www.oschina.net/news/128093/webrtc-standard

龙生   28 Jan 2021
View Details

Git 代码统计

代码提交作者

  代码提交作者个数

  统计某个yourName的增加,删除,总行数

  提交次数top10

  统计每个人,和上面统计结果一样,亲测非亲写(搬运工),单行脚本,自己感受下:

  from:https://www.cnblogs.com/lioa/p/12074127.html

龙生   27 Jan 2021
View Details

JS删除对象中的某一属性(delete)

  from:https://www.cnblogs.com/juewuzhe/p/11451362.html

龙生   27 Jan 2021
View Details

Dapper实现Like参数化

//参数直接写参数名 string Sql = "select * from [table] where field like @field"; //参数值里面加上通配符,varchar类型查询也不加单引号 var Param = new {field = "%{ParamValue}%"}; //执行查询 Dapper.Query<T>(Sql,Param);   from:https://www.cnblogs.com/tian2008/p/8491633.html

龙生   27 Jan 2021
View Details

H5与App的通讯方式

前言 现在不管是桌面客户端还是移动客户端,都会夹杂着一部分H5页面,这种混合式的应用也是我们常说的Hybrid App。为什么会出现Hybrid App呢,早期是因为开发一个Android或iOS的客户端,需要的人力成本比较大,开发周期比较长,后来有些团队就通过将部分页面拆分出来,由前端来完成,再通过在客户端里的Webview来展示。 由于小编我半路转行当程序猿,只对前端领域有所了解,对其他编程领域接触较少,故不探讨Webview的实现原理和与H5页面交互的原理。有兴趣的小伙伴自行百度搜索JSBridge的相关知识,或请教下客户端(Windows、MacOS、Android、iOS)开发的同学,看看如何桥接JS与其他编程语言之间的联系。 优缺点 凡事都是有好有坏,没有绝对的解决方案。下面我总结下Hybrid App在开发过程中存在的优缺点,各位同学可自行判断Hybrid App的好坏。 优点 H5页面交由前端进行开发,页面模块之间分开开发和维护,有效减少App的开发周期 H5页面不受限于应用商店繁琐的审核流程和冗长的等待时间,新增页面和功能、修复缺陷都可随时部署到线上 H5页面在有需要时才加载,减小App打包后的大小,缩短App在应用商店下载的时间和减少本地占用手机的空间 H5页面接入App Webview中,不再受限于浏览器,可通过与App交互调用设备更多底层的API来完善更多原本浏览器无法完成的操作 缺点 协定好H5和App之间的通讯协议,定义好全局属性和全局方法在两者之间如何调用 H5页面接入App Webview中,可能会出现很多兼容问题,需要前端和客户端多加注意 开发前需按照需求和交互进行页面划分,哪些页面归前端开发,哪些页面归客户端开发 页面出现Bug有时候很难发现是在哪个环节出错,需要前端和客户端共同调试找出问题所在(可能各抒己见,打架都有份) 通讯方式 以下代码全部基于前端(React)进行演示,客户端如何实现JS交互我就不多说了,可以找客户端开发的同学了解下。通讯方式有如下两种,都是使用JS代码来完成,兼容性还是挺不错的。 前端通知客户端:拦截 客户端通知前端:注入 前端通知客户端 在H5页面里触发链接跳转,App Webview检测到链接跳转再进行拦截,因此可以通过URL上携带参数来告知App下一步应该做些什么。

  以上执行了location.href = "lsbox://mask?toggle=1"来通知App打开遮罩层 lsbox:前端和客户端统一定义链接跳转的协议(喜欢怎样定义协议都行) mask:App需要执行的动作(喜欢怎样定义动作都行) toggle=1:动作执行参数(自定义参数,用于告知App怎样做) 如果同步触发两个或以上的location.href(下一个location.href接着上一个location.href),App可能只会接收到一个location.href发出的通知,所以需要对下一个location.href使用setTimeout设置通知时间间隔(可使用Async/Await封装优化)

  客户端通知前端 注入一些全局方法,App Webview直接操作全局方法来控制H5页面,使用window.handleFunc = function() {}这样的形式来定义注入的方法。

  以上在组件加载完成后通过window.addNum = this.addNum.bind(this)将指定方法全局暴露到window上,App Webview可直接操作这些方法来控制H5页面。 作者:JowayYoung 链接:https://juejin.cn/post/6844904020201455624 来源:掘金 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

龙生   27 Jan 2021
View Details

中高级前端必须注意的40条移动端H5坑位指南 | 网易三年实践

前言 不知不觉在网易已有三年半,占了一半时间都在与移动端打交道,整个阶段都是遇坑填坑的学习过程。移动端开发在前端里像神一样地存在,不是说它多难而是说它坑位实在太多了,怎样填都填不完。Android和iOS各显神通,Android的系统版本和屏幕分辨率多得难以一招兼容,iOS的顽固标准和未知特性多得难以快速掌握。 三年半沉淀通过本文记录下所遇到的坑位,或许有些坑位还未遇到,但本文记录的40条坑位绝对能让同学们少走很多弯路,特别是前端小白。为了减少废话提高本文质量,对以下内容做一些约定。 提及的安卓系统包括Android和基于Android开发的系统 提及的苹果系统包括iOS和iPadOS 本文针对的开发场景是移动端浏览器,因此大部分坑位的解决方案在桌面端浏览器里不一定有效 解决方案若未提及适用系统就默认在安卓系统和苹果系统上都适用,若提及适用系统则会详细说明 Webkit及其衍生内核在移动端浏览器市场占有率里达到惊人的97%,因此无需太过担心CSS3、ES6和浏览器新特性的兼容性 每次填坑都是一次实践过程,全部坑位的源码都按语言方向记录在笔者Github上,若有未记录的坑位可提PR让笔者合并,给个Star支持下咧! 本来想为每个坑位都截图或录播GIF作为演示,但考虑到目前掘金的Markdown编辑器操作图片还存在缺陷就放弃了,每次上传图片都会花费很多时间甚至上传失败(望掘金的产品小姐姐和程序小哥哥优化喔)。若需演示只能自行复制代码了。 HTML方向 调用系统功能 使用<a>能快速调用移动设备的电话/短信/邮件三大通讯功能,使用<input>能快速调用移动设备的的图库/文件。 这些功能方便了页面与系统的交互,关键在于调用格式一定要准确,否则会被移动端浏览器忽略。

  忽略自动识别 有些移动端浏览器会自动将数字字母符号识别为电话/邮箱并将其渲染成上述调用系统功能里的<a>。虽然很方便却有可能违背需求。

  弹出数字键盘 使用<input type="tel">弹起数字键盘会带上#和*,适合输入电话。推荐使用<input pattern="\d*">弹起数字键盘,适合输入验证码等纯数字格式。

  唤醒原生应用 通过location.href与原生应用建立通讯渠道,这种页面与客户端的通讯方式称为URL Scheme,其基本格式为scheme://[path][?query],笔者曾经发表过《H5与App的通讯方式》讲述URL Scheme的使用。 scheme:应用标识,表示应用在系统里的唯一标识 path:应用行为,表示应用某个页面或功能 query:应用参数,表示应用页面或应用功能所需的条件参数 URL Scheme一般由前端与客户端共同协商。唤醒原生应用的前提是必须在移动设备里安装了该应用,有些移动端浏览器即使安装了该应用也无法唤醒原生应用,因为它认为URL Scheme是一种潜在的危险行为而禁用它,像Safari和微信浏览器。还好微信浏览器可开启白名单让URL Scheme有效。 若在页面引用第三方原生应用的URL Schema,可通过抓包第三方原生应用获取其URL。

  禁止页面缩放 在智能手机的普及下,很多网站都具备桌面端和移动端两种浏览版本,因此无需双击缩放查看页面。禁止页面缩放可保障移动端浏览器能无遗漏地展现页面所有布局。

  禁止页面缓存 Cache-Control指定请求和响应遵循的缓存机制,不想使用浏览器缓存就禁止呗!

  禁止字母大写 有时在输入框里输入文本会默认开启首字母大写纠正,就是输入首字母小写会被自动纠正成大写,特么的烦。直接声明autocapitalize=off关闭首字母大写功能和autocorrect=off关闭纠正功能。

  针对Safari配置 贴一些Safari较零散且少用的配置。

  针对其他浏览器配置 贴一些其他浏览器较零散且少用的配置,主要是常用的QQ浏览器、UC浏览器和360浏览器。

  让:active有效,让:hover无效 有些元素的:active可能会无效,而元素的:hover在点击后会一直处于点击状态,需点击其他位置才能解除点击状态。给<body>注册一个空的touchstart事件可将两种状态反转。

  CSS方向 自动适应布局 针对移动端,笔者通常会结合JS依据屏幕宽度与设计图宽度的比例动态声明<html>的font-size,以rem为长度单位声明所有节点的几何属性,这样就能做到大部分移动设备的页面兼容,兼容出入较大的地方再通过媒体查询做特别处理。 笔者通常将rem布局比例设置成1rem=100px,即在设计图上100px长度在CSS代码上使用1rem表示。

  当然还可依据屏幕宽度与设计图宽度的比例使用calc()动态声明<html>的font-size,这样就能节省上述代码。不对,是完全代替上述代码。

  若以iPad Pro分辨率1024px为移动端和桌面端的断点,还可结合媒体查询做断点处理。1024px以下使用rem布局,否则不使用rem布局。

  自动适应背景 使用rem布局声明一个元素背景,多数情况会将background-size声明为cover。可能在设计图对应分辨率的移动设备下,背景会完美贴合显示,但换到其他分辨率的移动设备下就会出现左右空出1px到npx的空隙。 此时将background-size声明为100% 100%,跟随width和height的变化而变化。反正width和height都是量好的实际尺寸。

  监听屏幕旋转 你还在使用JS判断横屏竖屏调整样式吗?那就真的Out了。

  […]

龙生   27 Jan 2021
View Details
1 2 6