一点飞鸿

古道西风瘦马


  • 首页

  • 分类

  • 标签

  • 归档

  • 留言

  • 关于

用Git克隆库网络出错

发表于 2017-01-04   |   分类于 开发   |  

问题描述:

今天用SourceTree克隆Git库,报如下错误:
error: RPC failed; curl 56 SSLRead() return error -36
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

问题解决方案:

git config http.postBuffer 24288000
brew install git –with-brewed-curl –with-brewed-openssl

微信红包算法

发表于 2016-10-26   |   分类于 算法   |  

用python实现的微信红包算法,有些地方还是没有搞明白,如果有人知道还请指教

算法精要

主要在于随机数的生成

#这一句是重点,不知道为什么
#如果比2.0小则前面的红包是小,后面大
#如果比2.0大则前面是大红包,后面是小红包
max = remainAmount / remainSize * 2.0

源代码

#! encoding:utf-8

import random

import math


def getMoney(remainAmount,remainSize):
    if remainSize == 1:
        money = round(remainAmount * 100) / 100
    else: 
        min = 0.01
        #这一句是重点,不知道为什么
        #如果比2.0小则前面的红包是小,后面大
        #如果比2.0大则前面是大红包,后面是小红包
        max = remainAmount / remainSize * 2.0
        #print remainAmount,remainSize,max

        money = random.random() * max
        money = money <= min and min or money
        money = math.floor(money * 100) / 100;

    return money

#模拟发放
def simulateRedPacket(amount,num):
    remainSize = num
    remainAmount = amount

    #初始化数组
    results = [0 for x in xrange(0,num)]

    #模拟发红包
    for x in xrange(0,num):
        money = getMoney(remainAmount,remainSize)
        remainSize  -= 1
        remainAmount -= money
        results[x] = money


    #计算发放总额
    sum = 0
    for x in results:
        sum += x

    if amount - sum > 0.01:
        #发放结果
        pass
    print results
    print ", ".join([" = ".join(["金额",str(amount)])," = ".join(["数量",str(num)])," = ".join(["已发放",str(sum)])," = ".join(["差额",str(amount - sum)])])

if __name__ == '__main__':
    for x in xrange(1,2000):
        #金额
        amount = round(random.random() * 100) * 1000 / 100
        #红包数量
        num = random.randint(1,100)

        simulateRedPacket(amount,num)

记录栈中的最小值

发表于 2016-10-24   |   分类于 算法   |  

看到有人用算法实现了在一个栈中实现最小值,且复杂度保持在O(1)的问题,用Scala实现看看是不是合适.

import scala.collection.mutable.ArrayBuffer

class MinStack {
    private val buffer = new ArrayBuffer[Int]()
    private val sort = new ArrayBuffer[Int]()

    def push(value: Int) :Unit = {
        buffer.append(value)
        val min = if(sort.length > 0) minValue() else 99999
        if(value < min){
            sort.append(buffer.length -1)
        }
    }

    def pop() :Int = {
        val pos = buffer.length - 1
        if(pos == sort.last){
            sort.remove(sort.length - 1)
        }
        buffer.remove(pos)
    }

    def minValue() :Int = {
        return if (sort.length > 0) buffer(sort.last) else 0
    }

    def description() : Unit = {
        println(buffer.mkString("(",",",")"))
        println(sort.mkString("(",",",")"))
    }
}

关于创业的一些问题

发表于 2016-10-20   |   分类于 创业   |  

今天读到ZeeTea创始人彭萦分享的一些关于创业中一些问题的分享,看了之后摘录一些内容,内容源自36kr的这10个关于品牌的问题,你一开口就已经错了

一句话说清楚你要做什么

在讲自己公司要做什么的时候,不要提任何别人听不懂的词,如大数据,平台,共享经济,云,系统,闭环,算法,构架,O2O…

列一些经典的公司的主题:

  • 我们是Airbnb,我们能让你的陌生人家租个房间

你必须一秒内把产品的点告诉顾客,就像苹果的每个产品每次总是有一个新的aha monents一样.

创业只需要销售,而不是市场推广

你不应该如开一个发布会,你不应该花钱买个自媒体的文章的末尾加个广告,你不应该搞广告展位,你不应该刷榜单,你不应该参加任何行业展会和创投圈会议.

你必须一个一个得到你的用户和顾客,自己亲自去卖,去帮顾客体验你的产品,问他们体验如何,评价如何,你要自己找到第一批种子用户.让一百个人爱你,比一万人觉得你还行重要的多.因为有一百人爱你就有可能一万人爱你,如果一万人觉得你还行,那他们爱上你很难.

你要得到第一批种子顾客的爱,有了稳定的留存率后,再做市场宣传,否则宣传无意义

增长率=新增率-流失率.很多人一想到增长率就只想到新增率,却忘了流失率.其实在很多时候,提高5%的留存率可能比提高5%的新增率要简单的多,成本也低的多.

怎样建立自己的品牌

要不要做品牌

有溢价能力的叫品牌,没有溢价能力的可以叫互联网营销,可以叫认知,可以叫市场推广,反正不能叫品牌.
Michael Treacy 和Fred Wiersema 在哈佛商业评论上曾经说过,占领市场只有三种形式:

  • 最好的价格(best price)
  • 最好的产品(best product)
  • 最好的整体解决方案(best overall solution)

如果你的公司定位在最好的价格,那么运营更重要,如沃尔玛,小米,Amazon.如果你的公司定位在最好的产品,那么最重要的是研发和技术,如苹果.如果你的公司定位于整体解决方案,在意的是顾客的互动和满意度,奢侈品是这样,高档酒店等服务行业是这样,如星巴客是这样.

对于那些提供最好的整体解决方案的公司,品牌极其重要.对于提供最好的产品的公司来说,品牌也很重要.但如果是提供最好的价格的公司,品牌真的不是那么重要,它永远都不是你最重要的三件事之一.

别想着做别人那样的品牌

一个公司的风格,就是CEO的风格

基因没有办法改变,一个公司要有很明白的品牌策略,CEO首先得想明白自己是一个怎么样的人.要做一个Airbnb那样的品牌,CEO就必须是一个touchly-feely,非常感性,非常有爱的人.可是如果你不是这样风格的人,为什么要一定要做出那样一个品牌呢?

关于招人

你是招一个牛人帮你还是你自己先了解要做的事情,再请人过来帮你?

永远记得你把自己最擅长的工作分配给别人,不擅长的工作自己亲自做,等你发解这个工作了再找人帮你.切记!!!!

位运算与或非异或

发表于 2016-10-19   |   分类于 开发   |  

与运算:&

两者都为1为1,否则为0
1&1=1, 1&0=0, 0&1=0, 0&0=0

或运算:|

两者都为0为0,否则为1
1|1 = 1, 1|0 = 1, 0|1 = 1, 0|0 = 0

非运算:~

1取0,0取1
~1 = 0, ~0 = 1
~(10001) = 01110

异或运算: ^

两者相等为0,不等为1
1^1=0, 1^0=1, 0^1=1, 0^0=0

ios 子视图和viewController创建周期

发表于 2016-10-08   |   分类于 开发   |  

创建一个UIView

-(id)init {
    if (self = [super init]) {

        UILabel * label = [UILabel new];
        label.tag = 100;
        [self addSubview:label];

        NSLog(@"init");

        [self performSelector:@selector(setNeedsUpdateConstraints) withObject:nil afterDelay:5.0f];

    }
    return self;
}

-(id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        NSLog(@"initWithFrame");
    }
    return self;
}


- (void)willMoveToSuperview:(nullable UIView *)newSuperview {
    NSLog(@"willMoveToSuperview");


}
- (void)didMoveToSuperview {
    NSLog(@"didMoveToSuperview%@",NSStringFromCGRect(self.frame));
}
- (void)willMoveToWindow:(nullable UIWindow *)newWindow {
    NSLog(@"willMoveToWindow");
}
- (void)didMoveToWindow {
    NSLog(@"didMoveToWindow%@",NSStringFromCGRect(self.frame));
}

-(void)updateConstraints {
    [super updateConstraints];
    NSLog(@"updateConstraints%@",NSStringFromCGRect(self.frame));

    UILabel * label = [self viewWithTag:100];
    [label makeConstraints:^(MASConstraintMaker *make) {
        make.center.equalTo(self);
    }];
}

-(void)layoutSubviews {
    [super layoutSubviews];
    NSLog(@"layoutSubviews%@",NSStringFromCGRect(self.frame));


}

-(void)drawRect:(CGRect)rect {
    [super drawRect:rect];
    NSLog(@"drawRect%@",NSStringFromCGRect(rect));

}

将此View加入到UIViewController

STPStartButton * btn = [STPStartButton new];
[self.view addSubview:btn];
[btn makeConstraints:^(MASConstraintMaker *make) {
    make.centerX.equalTo(self.view);
    make.centerY.equalTo(self.view).offset(100.0f);
}];

-(void)viewWillLayoutSubviews {
    [super viewWillLayoutSubviews];
    NSLog(@"viewWillLayoutSubviews");
}

-(void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];
    NSLog(@"viewDidLayoutSubviews");
}

-(void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"viewWillAppear");
}

-(void)updateViewConstraints {
    [super updateViewConstraints];
    NSLog(@"updateViewConstraints");

}

打印周期日志如下

2016-10-08 21:33:32.378 Stuep[12384:5705814] initWithFrame
2016-10-08 21:33:32.379 Stuep[12384:5705814] init
2016-10-08 21:33:32.379 Stuep[12384:5705814] willMoveToSuperview
2016-10-08 21:33:32.379 Stuep[12384:5705814] didMoveToSuperview{{0, 0}, {0, 0}}
2016-10-08 21:33:32.387 Stuep[12384:5705814] viewWillAppear
2016-10-08 21:33:32.387 Stuep[12384:5705814] willMoveToWindow
2016-10-08 21:33:32.388 Stuep[12384:5705814] didMoveToWindow{{0, 0}, {0, 0}}
2016-10-08 21:33:32.401 Stuep[12384:5705814] updateConstraints{{0, 0}, {0, 0}}
2016-10-08 21:33:32.404 Stuep[12384:5705814] updateViewConstraints
2016-10-08 21:33:32.405 Stuep[12384:5705814] viewWillLayoutSubviews
2016-10-08 21:33:32.406 Stuep[12384:5705814] viewDidLayoutSubviews
2016-10-08 21:33:32.407 Stuep[12384:5705814] layoutSubviews{{172.5, 416.5}, {30, 34}}
2016-10-08 21:33:32.408 Stuep[12384:5705814] viewWillLayoutSubviews
2016-10-08 21:33:32.410 Stuep[12384:5705814] viewDidLayoutSubviews
2016-10-08 21:33:32.410 Stuep[12384:5705814] drawRect{{0, 0}, {30, 34}}
2016-10-08 21:33:37.380 Stuep[12384:5705814] viewWillLayoutSubviews
2016-10-08 21:33:37.381 Stuep[12384:5705814] updateConstraints{{172.5, 416.5}, {30, 34}}
2016-10-08 21:33:37.382 Stuep[12384:5705814] viewDidLayoutSubviews

最后三行是由于在创建成功后5秒执行了子View的setNeedsUpdateConstraints方法.

ios 设置URL

发表于 2016-10-07   |   分类于 开发   |  
  • 电池电量 Prefs:root=BATTERY_USAGE
  • 通用设置 Prefs:root=General
  • 存储空间 Prefs:root=General&path=STORAGE_ICLOUD_USAGE/DEVICE_STORAGE
  • 蜂窝数据 Prefs:root=MOBILE_DATA_SETTINGS_ID
  • Wi-Fi 设置 Prefs:root=WIFI
  • 蓝牙设置 Prefs:root=Bluetooth
  • 定位设置 Prefs:root=Privacy&path=LOCATION
  • 辅助功能 Prefs:root=General&path=ACCESSIBILITY
  • 关于手机 Prefs:root=General&path=About
  • 键盘设置 Prefs:root=General&path=Keyboard
  • 显示设置 Prefs:root=DISPLAY
  • 声音设置 Prefs:root=Sounds
  • App Store 设置 Prefs:root=STORE
  • 墙纸设置 Prefs:root=Wallpaper
  • 打开电话 Mobilephone://
  • 世界时钟 Clock-worldclock://
  • 闹钟 Clock-alarm://
  • 秒表 Clock-stopwatch://
  • 倒计时 Clock-timer://
  • 打开相册 Photos://

落日已下 至尊龙帝

发表于 2016-10-03   |   分类于 生活   |  

这是我新的BLOG

一时间,局面有些安静的诡异,梁思诺见状,两面看了看,突然打破僵局,出声道:额,那个月娘,要不咱们先坐下吧!缓缓再谈,好吗?

梁思诺语气轻柔,似乎起到了一些安抚的作用,当下杜月娘也不再犟着,而是随着梁思诺一起坐到了秦政和李馨儿对面的沙发上。

你们先聊着吧,我先进去把碗收拾下!梁思诺冲着秦政、李馨儿和杜月娘三人笑了笑,便转身去将餐桌上的碗筷收拾了,然后进了厨房。

这边杜月娘一坐下后,便目光直直的盯着秦政,似乎秦政不给她一个正面的答复,她要一直盯下去似得。

秦政被杜月娘那火热的目光盯着有些受不了,正想干脆转过头不去看杜月娘,而这时坐在一旁的李馨儿突然出声问道:老公,这位小姐是你的朋友吗?

洪七

洪七

一点飞鸿

8 日志
4 分类
10 标签
GitHub 微博
友情链接
  • NexT
  • Zangw
© 2017 洪七
由 Hexo 强力驱动
主题 - NexT.Pisces