在 laradock 环境中使用 laravel-swoole 加速你的 laravel 应用
在 laradock 环境中使用 laravel-swoole 加速你的 laravel 应用。 安装laravel-swoole12composer require swooletw/laravel-swoolephp artisan vendor:publish --tag=laravel-swoole 开放 workspace 端口在 laradock/workspace/Dockerfile 最后添加一行: 1EXPOSE 1215 然后重新 build workspace 容器。 修改 nginx 配置123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657upstream swoole-http { server workspace:1215;}map $http_upgrade $connection_upgrade { default upgrade; ...
在 docker 容器中安装 zend guard
在 docker 容器中安装 zend guard。 进入容器1docker-compose exec php-fpm bash 更新环境12apt-get updateapt-get install wget -y 下载文件1wget http://downloads.zend.com/guard/7.0.0/zend-loader-php5.6-linux-x86_64_update1.tar.gz 解压1tar -xzvf zend-loader-php5.6-linux-x86_64_update1.tar.gz 查看扩展路径在 php-info 中搜索路径: 1extension_dir 移动扩展包并使之生效12cp *.so /usr/local/lib/php/extensions/no-debug-non-zts-20131226docker-php-ext-enable ZendGuardLoader 安装成功重启环境。
在vue中使用laravel-permission的@can标签
1. 在需要权限校验的 model 中新增方法12345678910public function getAllPermissionsAttribute() { $permissions = $this->getAllPermissions(); $permission_names = []; collect($permissions)->map(function ($permission) use (&$permission_names) { $permission_names[] = $permission->name; }); return $permission_names;} 2. 在 app.blade 中存储当前用户的所有权限1234567<script> @auth window.Permissions = @json(Auth::user()->allPermissions); @else ...
docker 容器访问宿主机端口
运行在 docker 容器中的一个项目需要访问宿主机的某个端口,比如容器 A 中的项目访问宿主机 B,在 A 的项目中以下边的地址来访问即可: 1host.docker.internal 之前是可以运行的,但是今天不知道什么情况突然 500 了,重启电脑后,在容器中 ping 这个地址: 1234567PING host.docker.internal (192.168.65.2) 56(84) bytes of data.64 bytes from 192.168.65.2: icmp_seq=1 ttl=37 time=2.09 ms64 bytes from 192.168.65.2: icmp_seq=2 ttl=37 time=1.05 ms64 bytes from 192.168.65.2: icmp_seq=3 ttl=37 time=1.05 ms64 bytes from 192.168.65.2: icmp_seq=4 ttl=37 time=1.16 ms64 bytes from 192.168.65.2: icmp_seq=5 ttl=37...
哈!
很久很久以前,有只自认为自己是狼的哈士奇,叫大哈。 后来,他找到了一个让他愿意把骨头让出来的人。 祝他做一只幸福的哈士奇,每天都有骨头吃。
卷积神经网络学习
卷积神经网络,计算机视觉应用几乎都在使用的一种深度学习模型。 一般用于训练数据集较小的问题,比如图像分类。 简介卷积神经网络是一种多层神经网络,主要由输入层,卷积层,激励函数,池化层和全连接层组成,可以通过一系列方法,成功将数据量庞大的图片识别问题不断降维,最终使其能够被训练。 输入层即数据的输入。 通过传入参数 input_shape=(28, 28, 1) 来设置网络接收张量的形状。 卷积层使用卷积核来进行特征提取和特征映射。 当我们输入的图像是 28 * 28 * 1 ,定义一个 3 * 3 的卷积核来对图像进行卷积操作(可以理解为一个滑动窗口,把卷积核与对应的图像像素做乘积然后求和),得到了 3 * 3 的卷积结果。 这个过程我们可以理解为我们使用一个过滤器(卷积核)来过滤图像的各个小区域,从而得到这些小区域的特征值。 激励层激励层主要对卷积层的输出进行一个非线性映射,因为卷积层的计算还是一种线性计算。 使用的激励函数一般是...
laravel 广播系统学习
看到广播系统,先想起了曾经虐过我的即时通讯。 虽然都是对 websocket 的应用,但是好像又有点区别,这里好好学习一下。 laravel 的广播与事件紧密相关,广播即对事件进行广播,因此在学习广播之前,要先阅读事件和监听器的相关文档。 配置老规矩,先来看配置文件 config/broadcasting.php 里边的配置选项: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960<?phpreturn [ /* |-------------------------------------------------------------------------- | Default Broadcaster |-------------------------------------------------------------------------- | |...
laravel 测试模块学习
学习下 larave 内置的测试模块。 当你想把一些东西写到 print 语句或者调试表达式中时,别这么做,将其写成一个测试来代替。 –Martin Fowler 最开始看到的关于 laravel 测试的信息是借助模型工厂来生成测试数据,今天查完资料发现,这只是测试中的一小部分。 laravel 内置了 PHPUnit 来做测试,并且已经做好了配置文件,还提供了一些便利的辅助函数,可以更直观的测试程序。 在 laravel 的项目中,包含一个 tests 目录,这个目录又有两个子目录:Feature 和 Unit 分别用来做功能测试和单元测试。 功能测试用于测试较大区块的代码,包括若干组件之间的交互,甚至一个完整的 HTTP 请求。 单元测试用于小的 、相互隔离的代码。 配置可以使用默认的配置,也可以创建一个 .env.testing 文件,在运行测试或执行带有 --env=testing 开关的 Artisan 命令时覆盖 .env 文件中的环境变量。 创建 & 运行测试运行 artisan 生成测试用例: 12345// 在...
深度学习 -- 基于 keras 的手写数字识别示例
MNIST 是 keras 中一个入门级的计算机视觉数据集,这个数据集包含各种各样的手写数字图片,其中包含 60000 张训练图像和 10000 张测试图像。 是解决手写数字分类问题的经典数据集,可以看做是深度学习的 ‘Hello World’。 下载数据123from keras.datasets import mnist(train_images, train_labels), (test_images, test_labels) = mnist.load_data() 这两行代码需要先运行,下载数据集。 下载过程会失败,多试几次,不需要翻墙。 train_images 和 train_labels 为训练集, 分别为图片数据和标签数据。模型将从这些数据中进行学习。 然后在测试集: test_images 和 test_labels 上对模型进行测试。 构建网络12345from keras import modelsfrom keras import layersnetwork =...
laravel 队列学习
学习下 laravel 的队列系统。 队列的目的是将耗时的任务延时处理,比如发送邮件,从而大幅度缩短 Web 请求和相应的时间。 常用的队列后台有: Beanstalk,Amazon SQS,Redis 等。 配置laravel 为多种队列服务做了统一的API,在配置文件 config/queue.php 中可以找到每种队列驱动的配置。 其中每种驱动都有一个默认的 queue 属性,用来存放使用时没有显示定义队列的任务。 12345// 分发到默认队列Job::dispatch();// 分发到 emails 队列Job::dispatch()->onQueue('emails'); 在项目的配置文件中,可以指定驱动,老版本中为 QUEUE_DRIVER,新版本中为QUEUE_CONNECTION , 驱动默认为 sync,这是一个本地的同步驱动,方便调试队列里的任务。 先以 redis 为例做一个邮件发送队列。 因为 laravel 的 redis 默认使用了 predis,所以先装下扩展: 1composer require...