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

Category Archives: Programming Language

Visual Studio International Feature Pack 2.0 汉字转拼音

下载地址 https://www.microsoft.com/zh-CN/download/details.aspx?id=18970 快速描述 Microsoft Visual Studio International Feature Pack 2.0 Visual Studio International Feature Pack 2.0 包含一组控件和类库,设计用来帮助.NET开发人员创建国际化程序。 概述 Visual Studio International Feature Pack 2.0 是对 1.0 版本( 1.0 版的产品名是 Microsoft Visual Studio International Pack 1.0 SR1) 的扩展,包含一组控件和类库,设计用来帮助.NET开发人员创建国际化程序。 1, Yomigana Framework 包含了类库和控件。 a, 类库:Yomigana 类库容许对串(string)类型加注 Yomigana,同时也支持对一般类型的注解功能,任何实现了IEnumerable接口的对象都可以被串类型和泛型的实例注解。为了简化复杂的注解字符串比较特设计了支持各种日文比较选项的比较类型。 1) 通用的一些类,用泛型实现对一个可枚举的类型注音。 2) 特殊目的的一些类,用以上泛型实现对一个字符串用某种类型中注音。 3) 特殊目的的一些StringAnnotation 类,用以上泛型实现对一个字符串用字符串注音,包括解析和格式化功能。 4) 一个比较器类,使用以上类实现比较字符串。 5) 一个实现了 IEnumerable 的数据结构,把一个字符串分成枚举的字符串段,并用 IEnumerator 输出。                  b, 控件: 1) 增强的Ajax/WPF/WinForm 文本框(TextBox)控件 用来根据用户的输入捕获读音。 2) 一个增强的使用Ruby标签的ASP.NET Label控件。 2, Chinese Text Alignment Class Library and TextBox Controls 包含支持简体中文文本对齐的WinForm 和 WPF 的TextBox控件, 以及供帮助开发人员很容易地按中文文本对齐显示字符串的一个类库。 3, Chinese Auto Complete Class Library and […]

龙生   22 Mar 2019
View Details

Eclipse 配置XDebug图文详解

1.php.ini配置 eaccelerator.shm_only="0" zend_extension ="D:\xampp\php\ext\php_xdebug.dll" ;载入Xdebug [xdebug] ;开启远程调试 xdebug.remote_enable = 1 xdebug.profiler_enable = off xdebug.profiler_enable_trigger = off xdebug.profiler_output_name =cachegrind.out.%t.%p xdebug.profiler_output_dir ="D:\xampp\tmp" xdebug.show_local_vars=0   ;开启自动跟踪 xdebug.auto_trace = 1 ;开启异常跟踪 xdebug.show_exception_trace = 1 ;开启异常跟踪 xdebug.remote_autostart = 1 ;收集变量 xdebug.collect_vars = 1 ;收集参数 xdebug.collect_params = 1 ;trace输出路径 xdebug.trace_output_dir ="D:\xampp\tmp" ;以下三个分别是主机、端口、句柄 xdebug.remote_host="127.0.0.1" xdebug.remote_port=9000 xdebug.remote_handler="dbgp"         2.eclipse配置修改 2.1.     位置:windows->Preferences 2. 2      配置Executables(配置完成后,若设置断点能正常让XDebug运行,则无需继续设置其他选项)       2.3.配置 PHP Debug 将Server Settings下的Debugger设为XDebug     2.4.配置Debuggers   2.5配置workbench Options   from:https://blog.csdn.net/user1218/article/details/51135753

龙生   22 Mar 2019
View Details

eclipse环境下报错:log cannot be resolved

在eclipse环境下使用@Slf4j注解时,出现了log cannot be resolved这个异常。经过排查发现是缺少lombok插件的问题。解决方式当然是在eclipse中安装lombok插件啦。 前往官网下载:https://projectlombok.org/download

龙生   20 Mar 2019
View Details

VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的

调试的时候报这样的错误 解决办法: 工具--选项--调试--常规--启用asp.net的JavaScript调试(chrome和ie)去掉勾选   from:http://www.mamicode.com/info-detail-2349622.html

龙生   18 Mar 2019
View Details

Netty

Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。 也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。 “快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议(包括FTP、SMTP、HTTP等各种二进制文本协议)的实现经验,并经过相当精心设计的项目。最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。

龙生   22 Feb 2019
View Details

学习ES6零基础-彩票项目中,解决项目代码中运行错误的问题

最近在学习ES6,在B站上看了一些视频再结合阮一峰老师的《ES6标准入门》基本上对ES6的各特性过了一遍,那就开始动手练项目咯,在找到视频对应的代码后,下载并运行出现了几个问题,通过百度又没查到相关的解决思路,这不还得科学上网,毕竟你询问的人群是全世界,总有适合的哪一个。话不说,开始叙述问题,并一步步的解决问题。项目的源代码在我的github上:https://github.com/sun2013126370/es6-lottery-master,视频的话去B站找咯。 先说一下我的相关配置吧

1 2 3 第一个问题: Failed to load external module @babel/register 网上说gulp的版本变成3.9.0(命令:npm install -g gulp@3.9.0)就可以,可以解决这个问题,但是至今还没找到出现这个问题的原因。还好,这个问题并不影响项目的运行,因此选择忽略这个错误或者将gulp的版本换成3.9.0都可以。 第二个问题:TypeError: require.extensions.hasOwnProperty is not a function 这个问题是由版本造成的,打开项目中的package.json,将0.3.1版本改成0.3.2即可,并执行npm install 命令。 重新执行gulp --watch命令,又发现了如下错误,go on! 第三个问题:gulp[13772]: src\node_contextify.cc:628: Assertion `args[1]->IsString()’ failed. 具体什么原因,还没有搞明白,后续再补充。解决这个问题的办法就是npm install natives,再次运行 gulp --watch,OK啦,项目起来了。在浏览器输入localhost:3000,就看到效果了。那接下来就是敲敲项目代码,把出现问题的原因找出来。   from:https://blog.csdn.net/a2013126370/article/details/84102343

龙生   04 Jan 2019
View Details

Nodejs Sass安装报错一招解决

背景: 这个问题不是一天两天了,有时候是网速不行,有时候是被墙了,有时候是github把node-sass的包转移目录导致下载失败。 Cannot download "https://github.com/sass/node-sass/releases/download/xxx/binding.node的问题 另附node-sass的binding.node各个版本的安装包,哪里少,就单独下载哪个,下载完了之后,跟着我,一起把文件放在指定位置即可解决这个问题 https://github.com/sass/node-sass/releases/tag/v4.7.2 1.本机位置 C:\Users\Administrator\AppData\Roaming\npm-cache\node-sass\ 这个里面是各种版本,报错提示你哪个版本下载失败,你就塞到哪个版本的文件夹里,如图所示 2.删除项目的node_moduls目录 3.重新npm install 4.另附全局安装命令

qq 43163707 落雨 本文地址:http://www.cnblogs.com/ae6623/p/8711853.html

龙生   04 Jan 2019
View Details

Java Platform Standard Edition 8 Documentation

Oracle has two products that implement Java Platform Standard Edition (Java SE) 8: Java SE Development Kit (JDK) 8 and Java SE Runtime Environment (JRE) 8. JDK 8 is a superset of JRE 8, and contains everything that is in JRE 8, plus tools such as the compilers and debuggers necessary for developing applets and applications. JRE 8 provides the libraries, the Java Virtual Machine (JVM), and other components to run applets and applications written in the Java programming language. Note that the JRE includes components not required […]

龙生   31 Dec 2018
View Details

高并发接口设计思路

并发队列的选择 Java的并发包提供了三个常用的并发队列实现,分别是:ArrayBlockingQueue、ConcurrentLinkedQueue 和 LinkedBlockingQueue  。 ArrayBlockingQueue是**初始容量固定**的阻塞队列,我们可以用来作为数据库模块成功竞拍的队列,比如有10个商品,那么我们就设定一个10大小的数组队列。 ConcurrentLinkedQueue使用的是CAS原语无锁队列实现,是一个异步队列,入队的速度很快,出队进行了加锁,性能稍慢。 LinkedBlockingQueue也是阻塞的队列,入队和出队都用了加锁,当队空的时候线程会暂时阻塞。 在请求预处理阶段,由于我们的系统入队需求要远大于出队需求,一般不会出现队空的情况,所以我们可以选择ConcurrentLinkedQueue来作为我们的请求队列实现 1. 请求接口的合理设计 一个秒杀或者抢购页面,通常分为2个部分,一个是静态的HTML等内容,另一个就是参与秒杀的Web后台请求接口。 通常静态HTML等内容,是通过CDN的部署,一般压力不大,核心瓶颈实际上在后台请求接口上。这个后端接口,必须能够支持高并发请求,同时,非常重要的一点,必须尽可能“快”,在最短的时间里返回用户的请求结果。为了实现尽可能快这一点,接口的后端存储使用内存级别的操作会更好一点。仍然直接面向MySQL之类的存储是不合适的,如果有这种复杂业务的需求,都建议采用异步写入。 当然,也有一些秒杀和抢购采用“滞后反馈”,就是说秒杀当下不知道结果,一段时间后才可以从页面中看到用户是否秒杀成功。但是,这种属于“偷懒”行为,同时给用户的体验也不好,容易被用户认为是“暗箱操作”。 高并发下的数据安全 我们知道在多线程写入同一个文件的时候,会存现“线程安全”的问题(多个线程同时运行同一段代码,如果每次运行结果和单线程运行的结果是一样的,结果和预期相同,就是线程安全的)。如果是MySQL数据库,可以使用它自带的锁机制很好的解决问题,但是,在大规模并发的场景中,是不推荐使用MySQL的。秒杀和抢购的场景中,还有另外一个问题,就是“超发”,如果在这方面控制不慎,会产生发送过多的情况。我们也曾经听说过,某些电商搞抢购活动,买家成功拍下后,商家却不承认订单有效,拒绝发货。这里的问题,也许并不一定是商家奸诈,而是系统技术层面存在超发风险导致的。 1. 超发的原因 假设某个抢购场景中,我们一共只有100个商品,在最后一刻,我们已经消耗了99个商品,仅剩最后一个。这个时候,系统发来多个并发请求,这批请求读取到的商品余量都是99个,然后都通过了这一个余量判断,最终导致超发。(同文章前面说的场景) 在上面的这个图中,就导致了并发用户B也“抢购成功”,多让一个人获得了商品。这种场景,在高并发的情况下非常容易出现。 2. 悲观锁思路 解决线程安全的思路很多,可以从“悲观锁”的方向开始讨论。 悲观锁,也就是在修改数据的时候,采用锁定状态,排斥外部请求的修改。遇到加锁的状态,就必须等待。 虽然上述的方案的确解决了线程安全的问题,但是,别忘记,我们的场景是“高并发”。也就是说,会很多这样的修改请求,每个请求都需要等待“锁”,某些线程可能永远都没有机会抢到这个“锁”,这种请求就会死在那里。同时,这种请求会很多,瞬间增大系统的平均响应时间,结果是可用连接数被耗尽,系统陷入异常。 3. FIFO队列思路 那好,那么我们稍微修改一下上面的场景,我们直接将请求放入队列中的,采用FIFO(First Input First Output,先进先出),这样的话,我们就不会导致某些请求永远获取不到锁。看到这里,是不是有点强行将多线程变成单线程的感觉哈。 然后,我们现在解决了锁的问题,全部请求采用“先进先出”的队列方式来处理。那么新的问题来了,高并发的场景下,因为请求很多,很可能一瞬间将队列内存“撑爆”,然后系统又陷入到了异常状态。或者设计一个极大的内存队列,也是一种方案,但是,系统处理完一个队列内请求的速度根本无法和疯狂涌入队列中的数目相比。也就是说,队列内的请求会越积累越多,最终Web系统平均响应时候还是会大幅下降,系统还是陷入异常。 4. 乐观锁思路 这个时候,我们就可以讨论一下“乐观锁”的思路了。乐观锁,是相对于“悲观锁”采用更为宽松的加锁机制,大都是采用带版本号(Version)更新。实现就是,这个数据所有请求都有资格去修改,但会获得一个该数据的版本号,只有版本号符合的才能更新成功,其他的返回抢购失败。这样的话,我们就不需要考虑队列的问题,不过,它会增大CPU的计算开销。但是,综合来说,这是一个比较好的解决方案。 有很多软件和服务都“乐观锁”功能的支持,例如Redis中的watch就是其中之一。通过这个实现,我们保证了数据的安全。   from:https://my.oschina.net/momisabuilder/blog/2992962

龙生   28 Dec 2018
View Details

C#与C、Java的区别

C#与C的区别 C#通常不使用指针。 可以在一个方法里的任何地方声明变量,不必把声明语句放在方法的顶端。 使用一个对象前,不一定要声明它,可以在用到的时候再定义。 C#对结构体类型的定义有些不同,它根本不支持联合类型。 C#有枚举类型,允许一系列被命名的量(如颜色或一周里的各天)赋值为连续的数值,但语法有些不同。 C#没有位域,也就是说,变量至少要占用一个字节的存储空间。 C#不支持长参数列表。必须针对参数值和类型定义一个方法。然而,C#语句允许函数的最后一个参数为可变参数数组。 C#引入了代理和索引器的思想,这些在其他流行的语言中是没有的。   C#与Java的区别 C#与Java关系密切,由于C#是在Java之后设计出来的,它吸收了Java的大部分精华。但两者还是有一些细微差别。 许多系统对象方法都有相同的方法名,只是在大小写形式上有区别。 C#不提供throws关键字,该关键字使编译器检查你是否捕获了一个方法抛出的异常。 C#对于布局管理器有更多的限制。因为它是以Windows系统为中心的,大多数时候采取的是图形元素的绝对位置。 C#允许运算符重载。 C#引进了代理和索引器。 C#有枚举类型。 C#有不安全模式,在这种模式下可以使用指针。 必须专门声明一个方法能被覆盖及一个方法能覆盖另一个方法。 不能通过声明来区别继承和接口实现,它们的声明方式是一样的。 switch语句允许使用字符串变量。如果变量没有被匹配,必须有一个默认情况,否则会出现错误。break语句是必需的。 布尔变量类型在C#中拼为“bool”,在Java中拼为“boolean”。 摘自《C#设计模式》

龙生   24 Dec 2018
View Details
1 … 77 78 79 … 179