Windows本地搭建Edusoho环境

Windows搭建Edusoho比Linux还要轻松的多。因为有很多环境集成工具如xampp、wampserver、phpstudy等。
基本上安装号wampserver工具,直接将edusoho项目扔到www目录地下并配置即可。

另外为什么要本地搭建呢?
本地搭建的目的是方便调试。当然了也不排除有部分公司在Linux系统上完全使用命令行的方式开发应用程序。

步骤如下:

XAMPP启动mysql遇到的问题

错误信息如下:
Version: ‘10.1.33-MariaDB’ socket: ‘’ port: 3389 mariadb.org binary distribution
2019-06-12 18:00:56 4a04 InnoDB: Warning: Using innodb_additional_mem_pool_size is DEPRECATED. This option may be removed in future releases, together with the option innodb_use_sys_malloc and with the InnoDB’s internal memory allocator.
2019-06-12 18:00:56 18948 [Note] InnoDB: innodb_empty_free_list_algorithm has been changed to legacy because of small buffer pool size. In order to use backoff, increase buffer pool at least up to 20MB.

2019-06-12 18:00:56 18948 [Note] InnoDB: Using mutexes to ref count buffer pool pages
2019-06-12 18:00:56 18948 [Note] InnoDB: The InnoDB memory heap is disabled
2019-06-12 18:00:56 18948 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2019-06-12 18:00:56 18948 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
2019-06-12 18:00:56 18948 [Note] InnoDB: Compressed tables use zlib 1.2.3
2019-06-12 18:00:56 18948 [Note] InnoDB: Using generic crc32 instructions
2019-06-12 18:00:56 18948 [Note] InnoDB: Initializing buffer pool, size = 16.0M
2019-06-12 18:00:56 18948 [Note] InnoDB: Completed initialization of buffer pool
2019-06-12 18:00:56 18948 [ERROR] InnoDB: \Program Files (x86)\xampp\mysql\data\ibdata1 can’t be opened in read-write mode
2019-06-12 18:00:56 18948 [ERROR] InnoDB: The system tablespace must be writable!
2019-06-12 18:00:56 18948 [ERROR] Plugin ‘InnoDB’ init function returned error.
2019-06-12 18:00:56 18948 [ERROR] Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed.
2019-06-12 18:00:56 18948 [Note] Plugin ‘FEEDBACK’ is disabled.
2019-06-12 18:00:56 18948 [ERROR] Unknown/unsupported storage engine: InnoDB
2019-06-12 18:00:56 18948 [ERROR] Aborting

解决方案:

算法图解之广度优先搜索

广度优先搜索的应用场景,如下:
(1)编写国际跳棋AI,计算最少走多少步就可获胜;
(2)编写拼写检查器,计算最少编辑多个地方就可将错拼的单词改为正确的单词,如将READED改为READER需要编辑一个地方;
(3)根据你的人际关系网络找到关系最近的医生;

VsCode插件与Node.js交互通信

首先关于VsCode插件通信,如果不明白的可以参考我的这篇博客VsCode插件开发之插件初步通信

如果需要详细例子的话,可以参考VsCode插件开发

现在又有一个新的需求是,VsCode插件可以通过jQuery的方式/或者引入某种前端通信框架实现与后台交互。但是针对之前某个需求,需求描述:用户登录后在本地某盘创建特定的文件夹。通常像创建特定文件夹的话,一般都是后端语言实现。而我当时编写的这个插件是用JavaScript,JavaScript是不能读写文件的,当然了,有些朋友可能会说可以使用ActiveXObject,但是这个ActiveXObject有局限性,它仅仅只能支持IE浏览器,而不能支持像Google Chrome和火狐这样的通用性广的浏览器。

为了解决这个需求,我决定结合node.js解决这个问题。

首先明确一点,vscode插件开发,不管是使用JavaScript还是TypeScript,通常由于本地调试的需求,都需要安装对应库,而管理这个库,通常使用npm或yarn。由此我们便可知,我们直接可以在该插件中编写node.js相关的代码。

算法图解之散列表

散列函数

专业术语表述,”将输入映射到数字”。

散列函数具有如下要求:
(1)它必须是一致的。
如你输入blog得到的是wordpress,那么每次输入blog,得到的都必须为wordpress。

(2)它应将不同的输入映射到不同的数字。
如,如果一个散列函数不管输入是什么都返回1,它就不是好的散列函数。最理想的情况是,将不同的输入映射到不同的数字。

初学者摸索之算法学习

此文转自我个人微信公众号,时间虽然过去已经四个多月了,但是我个人认为还是能够给大家带来启发意义,所以借这个时间分享给大家,微信公众号分享比较有限,而且时效性也比较差,而博客时效性比较好,而且还能集思广益,欢迎朋友在评论区留言,俗话说,众人拾柴火焰高。