- 博客(36)
- 资源 (2)
- 收藏
- 关注
原创 四种方式配置你的nginx跳转
前言最近工作用到了nginx,但是路由配置特殊,业务场景复杂,因此整理了集中nginx跳转的配置方式,如servername的正则,location的匹配顺序,rewrite和proxy的示例,相信总有一种满足你的需求。一、配置server对应的域名server name 为虚拟服务器的识别路径。因此不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。server_name匹配规则:后面可以跟多个域名,第1个是主域名1.1、精确匹配如下nginx配置
2021-08-29 17:10:04
6511
原创 docker部署filebeat
一、背景最近公司用到了filebeat,所以学习了下这个技术。filebeat是一个轻量级的日志采集工具,使用golang语言开发,可以将日志转发到es,kafka等。官方对filebeat提供了最全面的支持。filebeat的性能非常好,部署简单,是一个非常理想的文件采集工具。相比logstash它的内存占用更少,filebeat开发的目的也是为了替换logstash。当然也有缺点,比如filebeat官方提供的功能比较单一,往往无法满足我们的需求,我们经常把日志采集到kafka,然后借助flink等工
2021-08-17 22:18:20
1456
原创 hyperloglog实战 - 你的过滤器选对了吗?
一、业务背景最近接到一个统计需求,为了监控视频效果,我们每次浏览视频都要记录uv。当量小的时候,没有问题,随着用户量的的增长,占用空间大的问题开始暴露。假如有1000万用户,采用set结构记录UV,我们只存储int类型的用户id,1000万*4byte/1024kb/1024mb=38.14G,这是一个视频一天的数据,很明显存储成本太高,必须找到一种既能满足需求,又很少占用空间的方案。二、技术选型经过调研,找到了以下几种技术方案,下面一一分析。1、flink的state去重MapState 是 F
2021-08-11 17:15:34
287
原创 二叉树的迭代遍历(前,中,后)
目录1、迭代方式的前序遍历2、迭代方式的中序遍历3、迭代方式的后续遍历1、迭代方式的前序遍历class Solution { public List<Integer> preorderTraversal(TreeNode root) { List<Integer> res = new ArrayList(); if(root == null) { return res; }
2021-03-20 18:46:22
175
原创 linux scp 免密码传输
最近在做一个服务端的项目,需要将文件同步到其他虚拟机上,所以采用了scp传输这个方案。这里总结下无密码传输配置流程(心情不好,写个文章发泄)。一、环境和场景两台 远程 linux 虚拟机,假设为 A 和 B场景 :A 向 B 无密码传输文件。二、配置流程1、获取 A 机器用户公钥 - 已存在的话可以直接使用,路径一般是 ~/.ssh/id_ras.pub - 不存在的话执行 ssh-key
2017-09-16 23:20:35
2930
原创 phpstorm 实现同步代码到远程虚拟机
最近开发php,因为代码要部署到远端开发机上进行调试,所以研究了下phpstorm连接远程开发机的配置。尝试过两种方案:一种是开发机上下载代码各种版本管理,然后连接到本地,本地的文件变化同步到远端。这种方案管理git merge等不太方便,没有GUI的工具使用。第二种方案是本地进行版本管理,变化的文件推到远端。这种开发还是部署都非常方便,下面就说下这种配置的流程。1、选择从已有文件中创建项目2、因为
2017-08-24 23:19:47
7726
3
原创 mac rvm 安装流程
最近要开发一个 ruby gem,提示说 ruby 版本太低,于是想用 rvm 升级ruby。直接按照官网的说明根本安装不上,中间踩了一些坑,这里做个总结。1、安装gpggpg适用于签名相关的。本身 brew 是有这个库的,但是安装后报 link 错误。所以从 gpg 官网下载了套装直接安装。 安装完成后,在命令行输入 gpg –version ,如果出现以下信息则表示安装成功。 2、安装
2017-05-14 19:20:12
10348
原创 python包开发学习
最近经常写python脚本,感觉东西多了需要把代码分割开来,方便后期维护.因此学习了下python的包相关知识.1.简单入门python包与普通文件夹的区别是多了一个init.py文件.如就是最简单的包结构,init.py可以不放任何内容,仅表示他是一个包.使用这个包的时候可以直接from app import submoduleapp/ __init__.py subm
2017-03-18 18:41:12
2467
转载 git ignore无效处理
转发一个小技巧,忘记来源了. 有的时候创建项目的时候没有加.gitignore.导致后面git会添加pods文件夹,这个时候想要让gitignore生效。必须。 1. git rm -r –cached . 2. git add . 3. git commit -m “add gitignore” 这样gitignore文件就能生效了。
2017-03-11 18:42:45
618
原创 Jenkins学习(四)job界面详解
一.创建jobjob安装后,点击new item会出现如下界面,这个界面用于创建不用风格的job 1.Freestyle project 这个是jenkins的基础功能,可以用它来执行各种构建任务,他只能构建在一个电脑上,如果没有太多的需求,这个job基本够用了,它包含了所有基础功能. 2.Pipeline 真实的工作环境有很多job,比如先编译,然后执行静态代码检查、单元测试、然后部署服务
2017-03-11 18:35:21
20871
原创 python路径操作常用方法
由于经常用python写脚本,将路径操作的一些api做了总结,方便以后查询#!/usr/bin/python# -*- coding:UTF-8 -*-import osimport sysimport shutil# python路径操作整理# 递归遍历文件夹def listFiles(dirPath): fileList=[] for root,dirs,files in
2017-03-10 23:42:33
3506
原创 Clang插件学习 Clang插件常用API
1.定义一个plugin子类头文件#ifndef MyPlugin_hpp#define MyPlugin_hpp#include <stdio.h>#include<iostream>#include<sstream>#include<typeinfo>#include "clang/Frontend/FrontendPluginRegistry.h"#include "clang/AST
2017-03-03 00:49:44
2445
原创 手把手教你开发 clang 插件
clang 插件开发入门Clang是llvm的编译器前端,非常适合进行源码分析.目前开源的oclint就是基于clang进行的代码静态检查.工作中遇到了一些问题需要进行代码分析,所以学习了插件的开发流程.既然开发插件就要有合适的IDE,Mac上最合适的无疑是xcode了.本文将讲述如何使用xcode开发clang插件,在此之前请先了解clang的相关知识. 1、编译插件1.1、代码下载a.查看xco
2017-02-26 21:55:22
7929
原创 protobuf3 从object-c角度学习数据编码
一.protobuf编码类型protobuf.一共有6中编码方式,其中group目前已不建议使用.* WireVarint = 0 // int32, int64, uint32,* uint64, ,sint32 sint64, bool, enum. 变长,1-10个字节,用VARINT编码且压缩* WireFixed64 = 1 // fixed64, sfixed64,
2017-02-25 23:52:06
1934
原创 protobuf3 从object-c角度说明数据类型
定义一个基本消息类型syntax = "proto3";message SearchRequest { string query = 1; int32 page_number = 2; int32 result_per_page = 3;}syntax = “proto3”:表示这是使用protobuf3的语法,不加这句默认使用protobuf2的语言.两者还是有不少差异的.me
2016-12-05 00:40:23
3642
原创 protobuf3 iOS 接入 protobuf
protobuf是一种可扩展的数据格式.它不依赖语言,平台.相比xml格式,它更小,更快,更简单.这种语言目前支持了java,php,c++等多种语言,可以根据官网教程使用该数据格式.本文主要讲述object-c的接入.这是最近官方支持的语言,以前更多的是使用c++或者第三方的库导入object-c项目中使用.本文会对object-c的使用做简单介绍,后面的文章会有一些分析.1.引入官方基础pod谷
2016-12-04 20:19:51
4669
原创 iOS对大文件MD5摘要性能测试
最近接到了一个需求,里面需要对文件进行md5摘要.从网上搜索到了两个还可以的代码片段,为了更好的判断该使用哪个,这里对这两种摘要方式做了时间和内存的测试.一 测试环境1.四种大小的文件:1m,10,20m,30m3.工具:xcode84.设备:iphone4s,ios8;iphone5,ios10;iphone6,ios9;iphone6s,ios10二. 两种方法代码使用filehandl
2016-11-07 21:14:35
2530
原创 iOS 小知识-设置UISwitch的颜色
效果图如下 lazy var mySwitch:UIView = { let sw = UISwitch.init() sw.onTintColor = UIColor.red return sw; }() lazy var mySwitch2:UIView = { let sw = UISwitch.init(
2016-09-21 22:37:18
17284
原创 iOS 小知识-添加shadow(阴影)
普通添加 let layer = view.layer layer.shadowColor = UIColor.black.cgColor//阴影颜色 layer.shadowOffset = CGSize(width: 10, height: 10)//width表示阴影与x的便宜量,height表示阴影与y值的偏移量 layer.sh
2016-09-21 18:36:11
16979
原创 如何把Pod本地化(Localize)
公司 app 进行本地化,发现 pod 本地化与直接在 project 本地化还是有差异的,这里以英文和简体中文本地化作为例子。文章最后提供了 pod 本地化的工具类。一、添加多语言文字1、创建多语言文件夹多语言文件夹采用语言的编码和 .lproj 作为文件夹名称。例如英文的为 en.lproj 。语言的编码可以从苹果官网查询到。当然也可以自定义编码,这里不做讨论,因为读取本地文本的方式只和文件夹名
2016-08-03 14:58:10
3592
原创 AppleScirpt设置打开Terminal快捷键
前几天学习了下appleScirpt,用它写了个在当前文件夹打开Terminal的小程序,配置成service方便平时使用.基本思路1.编写脚本:appleScirpt获取当前文件夹路径.启动Termianl,cd到当前文件夹路径2.在Automator中设置service,调用脚本3.在快捷键设置中增加该service的快捷键编写脚本```on run -- 当程序开始运行https://
2016-07-17 17:33:37
2149
原创 Jenkins学习(三)脚本打包
前面已经介绍了基本使用,这次不再使用xcode插件来打包,完全使用脚本打包,脚本如下:#!/bin/bash -ex#export LANG=en_US.UTF-8#设置编译模式CONFIG="Debug"#项目位置WORKSPACE="/Users/xxxx/Documents/GeXin"#打开钥匙串需要的密码MAC_PASSWD="xxxxx"#总的根目录HOME="/Users/S
2016-01-17 02:16:40
2820
原创 iOS盲人模式小结
1.盲人模式开启最近接到一个无障碍使用app的活,学了下相关内容 1. 直接设置:[view setIsAccessibilityElement:YES]; 2. 代理中设置: - (BOOL)isAccessibilityElement { return YES; } 3.accessibilityLabel为读取的内容
2016-01-16 20:54:27
9123
原创 Mac下Jenkins安装(一)
一.Jenkins是什么?他是一个开源的自动化服务器。由java和上百个插件组成,支持编译,测试,部署任意的自动化项目二.怎样安装Jenkins这里只介绍mac系统安装。1.从官网下载首页右侧有Native packages,选择Mac OS x2.使用第三方工具下砸命令行输入以下命令brew install jenkins如果没有brew工具,可以去官网获取脚本安装,脚本如下:ruby -e "$
2016-01-03 21:22:02
14013
原创 iOS百度地图打包成pod总结
百度地图也可以打包成pod,方便使用。不知道为什么百度的人不做一个。。环境配置百度sdk这里就不在作说明了。这里使用.a的包来打pod所在的项目不能支持swift项目,否则会引起bundle图片无法加载的问题。步骤创建私有pod,过程参照之前写的podsepc文件://把自己的代码仿classes文件夹下,inc下放百度地图的头文件s.source_files = 'Pod/Class
2015-09-06 22:54:53
1463
原创 RACCommand使用总结
1、RACCommand是什么平常使用button可以使用rac_signalForControlEvents获得点击事件的信号,执行点击事件。rac提供了rac_command来执行某个block。首先看下RACCommand的基本属性有哪些:1. executionSignals:需要执行的block成功的时候返回的信号,他是在主线程执行的。2. executing:判断当前的block是否在
2015-09-05 18:42:15
9875
原创 iOS调起微信,qq,支付宝app支付总结
一.调起微信支付申请应用id见官方文档需要的资源文件SDK文件包括 libWeChatSDK.a,WXApi.h,WXApiObject.h info中添加申请的微信key,idenfifirer为weixin,urlSchema为申请的keyappdelegate中添加如下代码:“` //如果是微信的话 那么(BOOL)application:(UIApplication *)appl
2015-08-19 09:26:56
4359
原创 Reactive Cocoa中@weakify和@strongify实现分析
使用rac的都知道@weakify和@strongify是在它扩库libextobjc中的一个宏,通过他可以实现__weak和__strong的效果,那它使怎么实现的呢。打开xcode找到product->PerformAction->Process “当前使用weakify或@strongify的文件”,你就可以看到这个宏展开之后的最终效果效果如下: @autoreleasepool {} __a
2015-08-08 22:29:40
4050
原创 仿tumbler弹簧列表和左拉加载效果
仿tumblur搜索页弹簧列表效果collectionView左拉加载,实际使用的是MJRefresh进行了部分改造 [源码][https://github.com/LiuShulong/-tumblur-]
2015-05-23 20:57:08
1573
原创 iOS计算textField的光标偏移量
最近同事遇到一个挺变态的需求,虽然后面没使用这个方法,我还是封装了下。计算textField的光标偏移量。估计用到的不多,图一乐吧。- (CGFloat)cursorOffset{ NSArray *textrect = [self selectionRectsForRange:[self selectedTextRange]]; CGRect rect = ((UITextSel
2015-05-21 17:32:31
1681
原创 App Analytics使用初探
App Analytics使用初探该项目目前还在写着测试,看来苹果还想做继续完善。改分析工具的网址是工具网址,在下面可以看到手册的下载和常见问题链接。要想使用前提是拥有一个开发者账号这款工具是苹果免费提供的,不过只能看到iOS8以后的奥。使用这款工具可以查询使用者数量,打开频率,销售数量。还可以发布推广链接,查看哪种链接最有效。登陆itunes的产品界面后,点击进入analytics,可以看到Ove
2015-05-14 23:22:39
1504
原创 iOS第三方键盘高度获取方法
ios8允许第三方键盘使用后,键盘的高度经常不准确,怎么破,不废话,上代码。#import "ViewController.h"@interface ViewController ()@property (nonatomic,strong) UITextField *textField;@end@implementation ViewController#pragma mark - lifeCycl
2015-05-13 16:46:21
3789
原创 iOS代码组织和架构总结
iOS代码组织和架构总结好长时间没写博客了,今天写一篇把从别人那里学到的和自己平时用到的架构作个总结,最后归结为一个demo。代码文件结构viewController代码规范第三方库管理数据和图片存储网络请求工具代码文件结构文件组织结构与平时流行的差不多,体现了一种MVC的思想。假设项目有三个功能模块,首页,更多和登陆,以下是基本的文件结构。 MeMoreBasecommon
2015-05-13 15:56:15
2026
原创 android监控网络状态变化防止多次广播的一种解决办法
从网上查阅了好多资料,整合成这篇,感谢csdn。测试了一下,能够在获得多次广播状态下显示一次网络断开的toast,不多说,上代码:网络连接检测类:import android.content.Context;import android.net.ConnectivityManager;import android.net.NetworkInfo;/** * 网络连接状态检查
2014-01-17 10:24:19
3251
原创 C语言占位符总结
用c语言的printf打印数据的时候要用到占位符这里简单总结一下:%d十进制数 %x十六进制%o八进制%ld 长整型数%hd 短整型数%f 浮点数%s 字符串%c 字符%g 使用一般浮点数或者科学计数法中长度较短的格式来输出,如果没有指出精度, 则默认为6; 如果格式转换后其指数小于-4 或者大于等于其精度, 则使用e形式. 转换结果消除了小数部分末尾的零;
2013-11-09 14:48:11
3516
原创 jQuery的ajax无法获得$(this)的解决方法
首先看一段代码$(".delUser").click(function(){ var id=$(this).parents("tr").find("input").val() if(confirm('确定删除?')){ $.post("/conisptuser/delete
2013-10-21 09:07:35
2536
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人