仿9GAG制作过程(五)

有话要说: 在做完了数据展示功能之后,就想着完善整个APP。发现现在后台非常的混乱,有好多点都不具备,比方说:图片应该有略缩图和原图,段子、评论、点赞应该联动起来,段子应该有创建时间等。 于是就重新设计了数据库,重新爬取了数据,重新设计了后台接口。 这次主要讲这次重构的主要内容。 数据库设计: 一共设计了六张表,分别为 段子表,主要存放每一个段子的图片等信息 评论表,主要存放评论信息,评论可以上传图片 用户表 标签表,每条段子发表之前会自定义标签,该表存放的就是这些标签 点赞记录表,因为用户点
分类: 其他 发布时间: 06-26 21:33 阅读次数: 1

清除浮动的方法

使用伪元素 最早的一种方式,支持 IE6 <style> .box { background-color: gray; border: solid 1px black; } .box .img { float: left; width: 100px; height: 100px; } .clearfix { *zoom: 1; }
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

Docker数据卷持久化

Docker提供三种不同的方式将数据从宿主机挂载到容器中:volumes,bind mounts和tmpfs。 volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes)。 bind mounts:可以存储在宿主机系统的任意位置。 tmpfs:挂载存储在宿主机系统的内存中,而不会写入宿主机的文件系统。 作用: 容器之间共享数据卷 容器被删除,数据卷不会被删除而造成数据的丢失,从而实现持久化。 实例: 创建数据卷并查看详细信息。 [root@linu
分类: 其他 发布时间: 06-26 21:33 阅读次数: 1

MySQL LAST_INSERT_ID()用法

last_insert_id()函数是适用于id为自动生成的表 下面是插入表数据时last_insert_id()函数的两种用法: 表结构: 此表使用last_insert_id()函数的字段为parentId(父节点); parentId取值特点:   1)levelId节点为'0'时parentId为空;   2)levelId节点为'1'时parentId取levelId节点为'0'数据的autoId;   3)levelId节点为'2'时parentId取levelId节点为'1'数据
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

HashMap中capacity、loadFactor、threshold、size等概念的解释<转>

最近在看HashMap的源码,有很多概念都很模糊,今天写了一个测试例子,加深对这几个概念的理解,并演示了扩容及树化的过程(见下篇博文:)。 注:本文基于JDK 1.8 HashMap的结构 约定 约定前面的数组结构的每一个格格称为桶 约定桶后面存放的每一个数据称为bin bin这个术语来自于JDK 1.8的HashMap注释。 size size表示HashMap中存放KV的数量(为链表和树中的KV的总和)。 capacity capacity译为容量。capacity就是指HashMap中桶
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

轻松搭建CAS 5.x系列(3)-连接数据库,使用数据库表中的帐号做登录

概要说明 前面的CAS SEVER中的登录帐号名是配置中写死的,实际情况中不太可能用这些方法。通常情况下,数据库的帐号名密码都是在数据库表中的,这样可以对登录帐号进行增删改的处理。 如果您对搭建固定帐号的CAS SERVER还不了解的话,可以查看上一章节《轻松搭建CAS 5.x系列(2)-搭建HTTPS的SSO SERVER端》 本文就是来解决这个问题的。 操作步骤 可以看到上一张中登录的画面中,还是有一条错误提示 OK,看到错误了,那我们继续。 ·1. 我们此次使用的是Mysql数据库,先到
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

机器学习算法汇总:人工神经网络、深度学习及其它

学习方式 根据数据类型的不同,对一个问题的建模有不同的方式。在机器学习或者人工智能领域,人们首先会考虑算法的学习方式。在机器学习领域,有几种主要的学习方式。将算法按照学习方式分类是一个不错的想法,这样可以让人们在建模和算法选择的时候考虑能根据输入数据来选择最合适的算法来获得最好的结果。 监督式学习: 在监督式学习下,输入数据被称为“训练数据”,每组训练数据有一个明确的标识或结果,如对防垃圾邮件系统中“垃圾邮件”“非垃圾邮件”,对手写数字识别中的“1“,”2“,”3“,”4“等。在建立预测模型的
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

选项卡组件

直接上代码..... html5:   <div id="card">     <input type="button" value="选项1" class="ing">     <input type="button" value="选项2">     <input type="button" value="选项2">     <input type="button" value="选项3">     <div>Hello javaScript!</div>     <div
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

Spark Sort-Based Shuffle具体实现内幕和源码详解

为什么讲解Sorted-Based shuffle?2方面的原因: 一,可能有些朋友看到Sorted-Based Shuffle的时候,会有一个误解,认为Spark基于Sorted-Based Shuffle 它产出的结果是有序的。 二,Sorted-Based Shuffle要排序,涉及到一个排序算法。 Sorted-Based Shuffle 的核心是借助于 ExternalSorter 把每个 ShuffleMapTask 的输出,排序到一个文件中 (FileSegmentGroup),
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

netty源代码分析笔记

最近研究了一下netty底层的代码,发现比较复杂,以下是做的笔记,方便以后复查。 netty使用的版本是4.1.6.Final channel的创建 创建服务端channel,调用jdk底层api创建一个chanel,然后包装在netty的channel中,并初始化一些组件 bind()入口 -> initAndRegister() 注册并初始化 -> newChannel() 创建服务端channel private ChannelFuture doBind(final SocketAddr
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

ACM_滚动AC

滚动AC Time Limit: 2000/1000ms (Java/Others) Problem Description: 小光最近拉了几个同学入ACM的坑,为鼓励A题,就增加奖励制度:每AC三道就送一道,且可以循环叠加。已知小X某天连续A了n道题,求他最后总共A了多少题。 Input: 输入一个数字T(T<50),接下来T行每行一个数字n(0<=n<=10^7)。 Output: 输出A题总数 Sample Input: 2 100 101 Sample Output: 149 151
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

Docker搭建LNMP网站平台

1、自定义网络 [root@linux-docker01 ~]# docker network create lnmp 67e7e0736b2c58f8f81eed50130803b34be0583f0fc54c2d43459f80617b5730 2、创建Mysql数据库容器 [root@linux-docker01 ~]# docker run -itd \ > --name lnmp_mysql \ > --net lnmp \ > -p 3306:3306 \ > --mount sr
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

武装起来!Python的安装

工欲善其事,必先利其器。Python这类编程工具的理解需要花费大量的时间,但是绝大多数的使用者并不需要了解全部的细节。由于Python自身的特殊性,我们首先要了解Python有两个不同的版本,Python2.X和Python3, 这两个版本在命令上有些差异,但是功能上基本上相同。2或者3是个没有特别差异的选择。 安装推荐直接用Anaconda,Anaconda集成了spyder。Spyder和R-studio类似,可以理解成它是一个python编程的“可视化”界面,它会让你的编程更加便捷。安装
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

Python爬虫——你们要的王者荣耀高清图

曾经144区的王者 学了计算机后 头发逐渐从李白变成了达摩 秀发有何用,变秃亦变强 前言 前几天开了农药的安装包,发现农药是.Net实现的游戏 虽然游戏用的语言和排位一样让人恼火 但感觉图片美工还是可以的 比如: 不知...不知道你们是不是和我一样喜欢 玩阴阳师呢,我可是Ssr只有两只狗子的非酋呢 正文 在 http://pvp.qq.com/web201605/herolist.shtml 可以看到全英雄列表。 按F12查看元素 看到下面这一堆<li></li>标签了吗 里面的href就是每
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

简易SpringSecurity流程

一.使用流程案例 1.1 新建web项目,配置maven依赖 <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-security-web</artifactId> <version>4.2.3.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.security</groupId> <art
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

C#委托基础

  委托是一个类,它定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递。委托类型有:delegate、Action、Func、Predicate。事件是一种特殊的委托。 1、委托的声明 1.1、Delegate 是常用到的一种声明。   至少0个参数,至多32个参数,可以无返回值,也可以指定返回值类型。例如,表示有两个参数,并返回int型。 /// <summary> /// 两数相乘的委托 /// </summary> public delegate ResultT Multip
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

Atcoder D - Xor Sum 2 (异或和和数值和的关系)

D - Xor Sum 2 Time limit : 2sec / Memory limit : 1024MB Score : 500 points Problem Statement There is an integer sequence A of length N. Find the number of the pairs of integers l and r (1≤l≤r≤N) that satisfy the following condition: Al xor Al+1 xor
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

《剑指offer(第二版)》面试题55——判断是否为平衡二叉树

一.题目大意   输入一颗二叉树,判断该二叉树是否为平衡二叉树(AVL树)。 二.题解   《剑指offer》上给出了两种解决方式: 1.第一种是从根节点开始,从上往下遍历每个子节点并计算以子节点为根节点的子树的高度,通过判断左右子树的高度差是否大于1来判断是否为AVL树。其中计算子树的高度,利用了TreeDepth函数(具体可见《剑指offer(第二版)》P272).其中TreeDepth的思想如下: (1)计算一颗二叉树的高度,可以将该问题转化成求子树的高度+1。如果根节点只有左子树的话,
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

vim常用命令之多行注释和多行删除

vim中多行注释和多行删除命令,这些命令也是经常用到的一些小技巧,可以大大提高工作效率。 1.多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl + v,进入列(也叫区块)模式; 2. 在行首使用上下键选择需要注释的多行; 3. 按下键盘(大写)“I”键,进入插入模式; 4. 然后输入注释符(“//”、“#”等); 5. 最后按下“Esc”键。 注:在按下esc键后,会稍等一会才会出现注释,不要着急~~时间很短的 2.删除多行注释: 1. 首先按esc进入命令行模式下,按下Ctrl
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2

翻译 | 指令调度基础

作者:Jason Robert 现代RISC处理器改变了硬件和编译器之间的基本关系。在RISC之前,硬件和编译器有着相对简单的责任划分——硬件负责底层的细节表现,而编译器负责语言翻译和独立于特定机器的高层次优化(如公共子表达式消除)。一些编译器作者将大量精力投入到良好的指令选择算法中,但很少能有真正的性能改进。事实上,许多情况下,一个复杂指令的执行速度要比一组简单的指令来得慢。 随着RISC处理器的出现,情况变得不同了。编译器现在主要负责发挥硬件的性能特性,硬件依赖于智能编译器来生成高度优化的
分类: 其他 发布时间: 06-26 21:33 阅读次数: 2
今日推荐