精华内容
下载资源
问答
  • 比特币的底层逻辑

    2021-06-08 15:57:56
    比特币的底层逻辑 首先我们要先搞清楚货币是什么,比如我的银行账户有四千元,钱包有两百块现金,那么你真有这些钱吗? 先说银行四千存款,懂点金融朋友都知道,这笔钱不会银行金库,银行会保留了央行...

    比特币的底层逻辑
    首先我们要先搞清楚货币是什么,比如我的银行账户有四千元,钱包有两百块现金,那么你真的有这些钱吗?


    先说银行的四千存款,懂点金融的朋友都知道,这笔钱不会在银行的金库,银行会在保留了央行规定比例的存款准备金之后,把这笔钱发放贷款。银行会把你的钱拿去放贷,但又怕有人来取钱会没现金,央行就会规定一个存款准备金的比例,要求金库保管。也就是说,银行从来没有真正替我保管我的钱,而是拿钱去放贷了。这个四千就是银行打给我的欠条,我任何时候都可以去银行兑现。
    再说现金,当今世界上的所有纸币本质上都是发行银行的负债,我们手上的纸币本质上是一张央行发行的不可兑现的欠条。
    只不过我们可以把这个欠条转借给别人,从别人手里换来商品和服务。
    我们的银行存款、现金,都是各种机构打给我们的欠条。作为债主,即便你的账本再清晰,是不是都有被赖账的风险
    比如通货膨胀,就是其中一种方式。政府加大印钱力度,稀释民众手中持有的债券价值,通过增加货币发行导致货币贬值,这个操作老美直呼内行。作为发行货币的主体机构,可以在几乎不付出任何代价或工作量证明的情况下,随意在你的账本记账,导致你的账本缩水。所以这个时候就需要任何人或机构都没办法随意更改账本。
    从前的交易和货币都是由中央银行记录,是中心化的交易。那么现在每人发放一个账本,比特币就是这个账本,所以参与到这个交易体系的人一起记账。一旦出现分歧,我们通过投票来解决,只要超过51%以上的人认同,那这次记账就是权威的。这就是分布式账本。
    世界那么大的交易量,每发生一次交易大家就要核对一次账本,需要很大的算力。为了奖励这些参与计算的人员,比特币系统就会发放一些比特币给他们作为奖励。这就是大家所说的挖矿。

    展开全文
  • 网络时代,网络连接着世界,几乎涵盖了人们衣食住行,买衣服可以逛“淘宝”、“京东”、“唯品会”,出去吃饭没带钱可以扫“支付宝”,旅游住酒店可以“美团”上提前预定房间,出远门买火车票可以“12306”...

    在网络时代,网络连接着世界,几乎涵盖了人们的衣食住行,买衣服可以逛“淘宝”、“京东”、“唯品会”,出去吃饭没带钱可以扫“支付宝”,旅游住酒店可以在“美团”上提前预定房间,出远门买火车票可以在“12306”提前购买火车票、“滴滴打车”、“摩拜”方便人们的出行。同样,网盘作为一种新的存储文件的方式,越来越受大家的欢迎。我综合分析了一下,网盘代替之前旧的存储方式的原因主要有以下几点:

    1.便于携带
    将常用文件存入网络硬盘,在需要的时候既可以用来展示还可以给其他人发送电子邮件避免了携带太多文件的麻烦。
    2.便于保管
    可以将个人电脑中的重要文件存入网络硬盘 防止因为电脑出现意外造成的文件丢失。
    3.利于文件的珍藏
    由于个人电脑硬盘空间有限可以将喜欢的文件存入网络硬盘。
    4.永久使用
    不必维修网络硬盘不像U盘那样有一定使用寿命可以永久使用而不必担心维修和服务的问题。

    该项目主要实现FTP服务器,了解FTP的原理,和HTTP协议一样,FTP协议也是工作在TCP/IP协议族的应用层,其传输协议是TCP协议,目的在于提高文件传输的共享性和可靠性,是基于客户/服务器模式工作的。

    与一般的C/S模型相比,FTP稍微复杂一些,FTP建立两条连接,一条是控制连接,另一条是数据连接。FTP将命令与数据分开传输,正是因为这样,提高了传输效率。

    FTP使用两个端口,分别为控制端口和数据端口。控制socket用来传输命令,数据socket用来传输数据。每一个FTP命令发送后,FTP服务器就会返回一个字符串,其中包含一个响应码和一些说明信息,其中响应码主要用于判断命令是否被成功执行了。

    为了便于理解,我形象的将FTP交互的过程比喻为:有两人小刚和小红,小刚想和小红搭讪,小刚比较礼貌,首先征求小红的意见,小红同意后,两人进行聊天。在聊天的过程中,小刚和小红聊得很投机,就互赠礼物了。
    但是小红这个人很好,有很多人都欣赏她,就有很多人给小红发消息,和小红聊天,互赠礼物。由于和小红聊天的人较多,给小红送礼物前,需要将发送的人的信息发送过来,才可以分清是谁给小红送的礼物。当小红收到发送人发送来的个人信息后,同意,那么赠送礼物的通道就打开了,就可以互赠礼物了。其中,赠送礼物的方式也会不同。

    详细内容请查看我的博客:FTP服务器原理


    初期,首先考虑需求,对ftp服务器需求进行设计,撰写说明书。

    主要包括用户需求和软件需求,这里着重写软件需求,分为:用户登录、显示子目录和文件、上传文件、下载文件。

    详细内容请查看我的博客:自主FTP服务器需求说明书


    用网络套接字编程实现ftp服务器和客户端,在编程中,掌握一些可以用到的函数,以及根据需求来实现,有整体的框架。

    具体的实现细节请查看:FTP服务器实现


    最后,对于我们的项目进行测试,主要从功能测试、界面测试、性能测试、安全性测试入手,针对文件传输进行文件大小、名称、格式的测试,进行测试,避免不必要的错误发生,从而调高项目的质量。

    测试细节请查看:FTP服务器测试用例设计


    具体实现请查看:源码

    展开全文
  • 强化学习已经成为大家关注点,至少据了解世界顶级名校CV实验室都做这方面工作。最近也做相关Research,正好遇到了Torch中RL实现,发现没有什么可以参考中文资料,只能试着来解释一下Torch中RL...

    强化学习已经成为大家关注的点,至少据我了解世界顶级名校CV的实验室都在做这方面的工作。最近也在做相关的Research,正好遇到了在Torch中的RL实现,发现没有什么可以参考的中文资料,只能试着来解释一下Torch中的RL实现。

    原理篇

    在Torch中的RL【2】实现参考的是论文【1】的方法实现。实现的也是比较简单的immediate RL。在【1】中提出了immediate RL,也是类似于associative reward-inaction AR-I的方法。

    假设输出是一个向量,那么第i和输出的计算如下:
    首先是为了计算出si
    这里写图片描述

    再用mass function对si进行处理得到pi
    这里写图片描述

    这里的fi可以使用logistic function计算:
    这里写图片描述

    假设输出符合伯努利分布,那么对于输出为0或者1的概率分别为:
    这里写图片描述

    在进行训练计算BP更新w:
    这里写图片描述

    首先是αij可以是一个常数,也可以是:
    这里写图片描述

    对于eij的计算首先是表示mass probability function:
    这里写图片描述
    然后可以进行求导表示为如下方式:(有点儿cross-entropy的感觉)
    这里写图片描述
    然后pisi进行求导:
    这里写图片描述
    这里写图片描述
    然后siwij进行求导:
    这里写图片描述

    把这些乘起来就是eij
    这里写图片描述
    这里写图片描述

    把reward,α加上就是最终的梯度:(baseline reward为0的时候)
    这里写图片描述

    和一个叫做associative reward-inaction对比:(取λ为0即可)
    这里写图片描述

    然后在推出来的导数中加入baseline reward,就可以得到:
    这里写图片描述
    这里有一个estimate reward:通过以下公式得到。
    这里写图片描述

    实现篇

    Torch的代码实现在这里:【2】,是集合了目前Torch有实现的RL方法。是根据【1】实现的。这次要讲的是ReinforceCategorical【3】这部分的代码。

    nn.ReinforceCategorical

    module = nn.ReinforceCategorical([stochastic])

    这个类是继承了nn.Reinforce,实现的是针对一个sample的Multinomial distribution的分类。输入时multinomial distribution,比如从Softmax的输出获取的就是一个multinomial distribution(概率和为1),得到的输出就是一个one-hot coding,也就是输出的vector只有一个为1,其余为0,这样的结构用于做分类再合适不过了。在训练的时候,输入可以是batch size,也就是可以进行batch gradient training。

    在进行evaluation的时候,若stochastic=false,那么输入等于输出。其实nn.ReinforceCategorical继承于nn.Reinforce,主要定义了updateGradInput和updateOutput这两个函数。

    函数中有如下变量:

    f:对于输入的概率进行另外一种变化的函数,比如sigmoid。
    y:对某个sample的index表示,采用one-hot code表示。
    p:输入的概率分布,(p[1],p[2],p[3]...)
    
    计算对weight的e(ij)进行更新的公式的时候采用如下:
    d ln(f(y,p))     1/p[i]    if i = y  
    ------------ =   
        d p          0         otherwise

    ReinforceCategorical.lua代码解释:

    local ReinforceCategorical, parent = torch.class("nn.ReinforceCategorical", "nn.Reinforce")
    
    -- 根据输入input的概率分布,进行一次采样,把采样的index的输出设置为1,其余为0
    function ReinforceCategorical:updateOutput(input)
       self.output:resizeAs(input)
       self._index = self._index or ((torch.type(input) == 'torch.CudaTensor') and torch.CudaTensor() or torch.LongTensor())
       if self.stochastic or self.train ~= false then
          -- sample from categorical with p = input
          self._input = self._input or input.new()
          -- prevent division by zero error (see updateGradInput)
          self._input:resizeAs(input):copy(input):add(0.00000001) 
          input.multinomial(self._index, input, 1)
          -- one hot encoding
          self.output:zero()
          self.output:scatter(2, self._index, 1)
       else
          -- use p for evaluation
          self.output:copy(input)
       end
       return self.output
    end
    
    -- 计算需要进行更新的weight的梯度,self.gradInput
    -- 先是初始化为上面函数的one-hot uotput,然后除以input,为了防止除0错误,加了一个小数。然后乘以reward,乘以-1。
    function ReinforceCategorical:updateGradInput(input, gradOutput)
       -- Note that gradOutput is ignored
       -- f : categorical probability mass function
       -- x : the sampled indices (one per sample) (self.output)
       -- p : probability vector (p[1], p[2], ..., p[k]) 
       -- derivative of log categorical w.r.t. p
       -- d ln(f(x,p))     1/p[i]    if i = x  
       -- ------------ =   
       --     d p          0         otherwise
       self.gradInput:resizeAs(input):zero()
       self.gradInput:copy(self.output)
       self._input = self._input or input.new()
       -- prevent division by zero error
       self._input:resizeAs(input):copy(input):add(0.00000001) 
       self.gradInput:cdiv(self._input)
    
       -- multiply by reward 
       self.gradInput:cmul(self:rewardAs(input))
       -- multiply by -1 ( gradient descent on input )
       self.gradInput:mul(-1)
       return self.gradInput
    end
    
    -- 设置parent类型并且把self._index置为nil
    function ReinforceCategorical:type(type, tc)
       self._index = nil
       return parent.type(self, type, tc)
    end

    所以可以看出ReinforceCategorical计算的是用于训练时的output以及具体的gradient,另外的函数也就是在mass function上以及表示输出output的方式不同。还有类似的函数有: ReinforceBernoulli,ReinforceNormal,ReinforceGamma。

    在代码里面有scatter【5】和multinomial【6】这两个函数,其实一眼看去这个意思是很明确,scatter是把一个数组的值或者是value填到一个Tensor里面。multinomial是根据给出的概率分布,进行采样。比如给出[0.1,0.2,0.7],然后就会进行采用,返回的是index,比如采集5次,可能会得到3,3,3,1,3这样的序列。使用multinomial的时候要主要,不要让分布为0,否则报错。为0的时候无法进行采样。

    在scatter中,接口如下:

    [Tensor] scatter(dim, index, src|val)

    例子如下:

    x = torch.rand(2, 5)
    > x
     0.3227  0.4294  0.8476  0.9414  0.1159
     0.7338  0.5185  0.2947  0.0578  0.1273
    [torch.DoubleTensor of size 2x5]
    
    y = torch.zeros(3, 5):scatter(1, torch.LongTensor{{1, 2, 3, 1, 1}, {3, 1, 1, 2, 3}}, x)
    > y
     0.3227  0.5185  0.2947  0.9414  0.1159
     0.0000  0.4294  0.0000  0.0578  0.0000
     0.7338  0.0000  0.8476  0.0000  0.1273
    [torch.DoubleTensor of size 3x5]
    填充的时候,首先看第一个参数为1,那么说明是以第一维(列)为单位的。那么第一列,填充的位置分别是{13},那么x[1,1]和x[2,1]分别放在y[1,1],y[3,1]。到了第二列就是{2,1},那么x[1,2],x[2,2]分别放在y[2,2],y[1,2]。依次类推。
    
    z = torch.zeros(2, 4):scatter(2, torch.LongTensor{{3}, {4}}, 1.23)
    > z
     0.0000  0.0000  1.2300  0.0000
     0.0000  0.0000  0.0000  1.2300
    [torch.DoubleTensor of size 2x4]
    填充的时候,因为是根据第二维(行)的进行填充,那么填的第一元素就是z[1,3],另外一个元素就在z[2,4]

    nn.Reinforce

    这是简单的RL实现,由论文【10】通过一些改变得到,基本上是一样的,除了多了别的mass function以外。

    module = nn.Reinforce([stochastic])

    stochastic=flase的时候只在训练的时候进行stochastic(不确定的,概率),evaluation的时候不需要。默认为false。计算reward的方式和VRClassReward【7】类似。

    reward = a*(R - b)
    a在论文中是一个常数或者是用某个计算式计算(看上面的论文介绍)。R就是(通常 0 或者 1), b是基准reward(baseline reward), 是对R的预测,用到了上一个时刻的reward以及上一个时刻的预测,看上面的论文解释。
    ------------------------------------------------------------------------
    --[[ Reinforce ]]--
    -- Ref A. http://incompleteideas.net/sutton/williams-92.pdf
    -- Abstract class for modules that use the REINFORCE algorithm (ref A).
    -- The reinforce(reward) method is called by a special Reward Criterion.
    -- After which, when backward is called, the reward will be used to 
    -- generate gradInputs. The gradOutput is usually ignored.
    ------------------------------------------------------------------------
    local Reinforce, parent = torch.class("nn.Reinforce", "nn.Module")
    
    function Reinforce:__init(stochastic)
       parent.__init(self)
       -- true makes it stochastic during evaluation and training
       -- false makes it stochastic only during training
       self.stochastic = stochastic
    end
    
    -- 这个reward来自于parent的reinforce计算reward,具体计算在VRClassReward里面【11】。
    -- a Reward Criterion will call this
    function Reinforce:reinforce(reward)
       parent.reinforce(self, reward)
       self.reward = reward
    end
    
    -- 在子类中实现
    function Reinforce:updateOutput(input)
       self.output:set(input)
    end
    
    -- 在子类中实现,被子类调用用来计算梯度
    function Reinforce:updateGradInput(input, gradOutput)
       local reward = self:rewardAs(input)
       self.gradInput:resizeAs(reward):copy(reward)
    end
    
    -- 计算的是input的reward,在这里需要注意的是训练的时候可能是batch traning,所以要考虑input size的问题(这一部分不能确定,还需要在研究一下)
    -- this can be called by updateGradInput
    function Reinforce:rewardAs(input)
       assert(self.reward:dim() == 1)
       if input:isSameSizeAs(self.reward) then
          return self.reward
       else
          if self.reward:size(1) ~= input:size(1) then
             -- assume input is in online-mode
             input = self:toBatch(input, input:dim())
             assert(self.reward:size(1) == input:size(1), self.reward:size(1).." ~= "..input:size(1))
          end
          self._reward = self._reward or self.reward.new()
          self.__reward = self.__reward or self.reward.new()
          local size = input:size():fill(1):totable()
          size[1] = self.reward:size(1)
          self._reward:view(self.reward, table.unpack(size))
          self.__reward:expandAs(self._reward, input)
          return self.__reward
       end
    end

    另外,对于reward函数,nn中也有更加专业的模块:【7】。如果想要了解完整的强化学习的内容,可以看这个example【8】,来源于Google Attention的论文复现。我目前看到整个网络远比这个大得多,等有空再把【8】介绍一下。

    在RL里面,经常用到ArgMax.lua,用来计算每一维的最大输出【12】。nn.Collapse对Tensor大小进行改变【13】。

    【1】RL 论文: http://www-anw.cs.umass.edu/~barto/courses/cs687/williams92simple.pdf
    【2】Torch中的RL代码: https://github.com/nicholas-leonard/dpnn#nn.ReinforceCategorical
    【3】Torch中的RL ReinforceCategorical代码: https://github.com/Element-Research/dpnn/blob/master/ReinforceCategorical.lua
    【4】Torch中别的RL ReinforceCategorical实现: https://github.com/shubhtuls/volumetricPrimitives/blob/master/modules/ReinforceCategorical.lua
    【5】Torch scatter: https://github.com/torch/torch7/blob/master/doc/tensor.md
    【6】Torch Multinomial: https://github.com/torch/torch7/blob/master/doc/maths.md
    【7】VRClassReward: https://github.com/nicholas-leonard/dpnn#nn.Module.reinforce
    【8】RL Example: https://github.com/nicholas-leonard/dpnn/blob/master/Reinforce.lua
    【9】Visual Attention: http://papers.nips.cc/paper/5542-recurrent-models-of-visual-attention.pdf
    【10】RL class code: https://github.com/nicholas-leonard/dpnn/blob/master/Reinforce.lua
    【11】VRClass Reward: https://github.com/nicholas-leonard/dpnn/blob/master/VRClassReward.lua
    【12】nn.ArgMax: https://github.com/Element-Research/dpnn/blob/master/ArgMax.lua
    【13】nn.Collapse: https://github.com/torch/nn/blob/master/Collapse.lua

    转载请注明出处:
    http://blog.csdn.net/c602273091/article/details/78966962

    展开全文
  • 那么开启正课之前,先介绍一下人生成长三个阶段 第一阶段:轻松生活 这个阶段一般是十几岁求学阶段 这时候我们拥有家人和学校庇护 对生活认知非常片面 觉得生活很美好啊,很轻...

    视频地址:牛叔说电影-如何突破底层的枷锁

    下面是手打的文案:

    能文能武!五洋捉鳖!别说话,吻我

    大家好,我是成语接龙狂魔--踢车牛

    今天继续讲述残酷的真实世界第二课

    突破底层的必备条件

    那么在开启正课之前,我先介绍一下人生成长的三个阶段

    第一阶段:轻松生活

    这个阶段一般是十几岁的求学阶段

    这时候的我们拥有家人和学校的庇护

    对生活的认知非常片面

    觉得生活很美好啊,很轻松

    每天玩玩闹闹,嘻嘻哈哈

    对未来充满无限幻想

    我将来要成为乔布斯,成为马云

    我要和我爱的人去环游世界

    这个阶段对未来是充满美好幻想的

    天有几高,任凭双手可攀到

    海有几深,无法淹没这孤岛

    这很正常没毛病

    然而,时过境迁斗转星移

    我们毕业进入社会了

    将迎来第二个阶段:痛苦思辨

    这个阶段一般是二十几岁

    这时候的我们突然进入社会

    家里不能提供保护,自我能力有限

    直面血淋淋的社会,彻底慌了

    发现生活并不像我们想像中的那么美好

    曾经的梦想动摇了,思想也被磨平棱角

    还有什么梦想啊,先学会努力活着吧

    这一阶段是人生中相当重要的一个阶段

    踢车牛在《百元之恋》中系统的讲过

    人的经历对成长的重要性

    这一课还得旧事重提

    我们进入社会之后,无论是家里安排也好

    还是自己能力也罢,会找到一个或者几个工作

    这些工作可以糊口,可以活着

    但并不是我真正想做的,并不能实现我的人生梦想

    做了一段时间之后会觉得很无趣

    每天两点一线枯燥乏味

    静下来的时候会思考我到底想要什么

    这就是这阶段的关键点:痛苦思辨

    在这个时间点上,最重要的一件事是

    经历挫折,经历打击

    被老板劈头盖脸一顿骂,被女友给踹了

    发现同学发展的都比我好

    发现我可能这一辈子混到老

    发现自己出去玩掏钱费劲

    挫折打击来的越早,人就觉醒的越早

    经过痛苦的思辨之后,我觉得我要改变现状了

    这就会进入到成长的第三个阶段

    但是大多数人都被保护的好好的

    没有经历挫折和打击,他们会停留在这一阶段很长时间

    一直持续枯燥无聊的生活

    然后有些人受不了这种单调的生活了

    也会进入第三阶段

    我觉得痛苦的经历对人的成长是非常非常重要的

    大家一定不要躲避这种经历

    而且带着痛苦进入第三阶段,冲劲十足

    最终所有人都会进入第三阶段:崛起还是趴着

    根据踢车牛的统计,这一阶段一般发生在三十岁左右

    这一阶段分为两种状态

    3A状态:趴着

    这种人往往是在二阶段中没有经历打击的人

    就像温水煮青蛙一样

    已经沉沦在单调的生活中无法自拔

    也有可能是经历的打击太大,没有自信重新出发

    这种人应该就是我们上一节课讲的,社会底层

    底层的通病他们都有

    他们的生活状态就是:在哪跌倒就在哪睡着

    单调的生活虽然无聊,但是他们认了

    或许生活就是这样吧,平平淡淡才是真

    偶尔也会想起曾经的梦想,脸上露出释然的微笑

    那时候不是小吗,现实的生活哪有机会追求梦想

    这种状态其实没毛病

    但是一定要摆正自己的心态,这个世界不欠你的

    你的生活完全是自己的选择

    跟时代跟环境跟宇宙没有任何关系

    我见过最多的人就是自己选择趴着

    选择了懒隋、逃避、等待

    还总觉得自己怀才不遇

    瞧不起这个瞧不起那个

    总觉得社会是扭曲的,看不上我的女人都是拜金女

    不是社会有问题啊,是你的三观有问题

    三观不正,人生无望啊

    既然你选择了安逸的生活,就不要有梦想了好吧

    没有能力的你只会非常痛苦

    其实这个阶段的人是非常矛盾的,明明能力非常弱小

    却有着天大的梦想,而且沉浸在梦想中无法自拔

    举个不恰当的例子

    一个底层臭屌丝

    身边突然出现了梦寐以求的白富美大美女

    就想跟着你过日子

    咱们不吹牛逼的话,底层屌丝如果敢带走大美女

    我脑瓜子揪地下让你们当球踢

    这是一个很现实的东西

    底层往往代表的就是没有自信,没有金钱

    这么漂亮的女神你有能力驾驭吗

    出门购物不得花钱吗?面对这么好的女人你不自卑吗?

    所以底层屌丝的幻想就是这么荒诞

    迫不及待想要拥有,却没有能力抓住任何东西

    底层的共通点是什么

    身为底层,把大量时间花在互相瞧不起互相谩骂上

    他们的关注点不是提升自己,而是在谩骂中寻找存在感

    很可笑吧,但事实就是这样

    这种人很多很多,非常多,很恐怖

    大家记住一点,说服别人是不可能的

    就像你不会被别人说服一样

    最好的做法是用自己的成绩狠狠的抽对方的脸

    好了,趴着的状态介绍完毕

    现在进入今天的重点阶段

    3B状态:崛起

    上一类人告诉自己不行,我就这样了,我认了

    但是有一种人不认啊

    他们受够了别人的白眼

    受够了平庸的生活

    他们意识到我活这一辈子

    不是为了简简单单的活着

    他们想要体验缤纷多彩的生活

    于是知耻而后勇,放手一搏

    这个时候就是爆发了,开启了成长之路

    咱们纵观人类文明史,无论是往前推五千年

    还是往后推五千年

    永远有人趴着,也永远有人崛起

    这个似乎跟时代的关系不大

    要说的话,咱们所处的时代,应该是最好最公平的时代

    崛起之路,我给它分为四个阶段

    第一:潜龙有勇

    第二:勇则变

    第三:变则通

    第四:通则广

    咱们先说潜龙有勇,大家扪心自问

    自己是不是一个有勇气对抗生活的人

    别吹牛逼,其实大多数人都没有这个勇气

    因为大多数人都是看不起自己的

    我坚信每个人都曾经想要改变现在的生活

    幻想做什么之后取得多大的成就

    但是有勇气跨出第一步的,少之又少

    这个第一步就砍掉了百分之八十的人

    第二步:勇则变

    不是说有勇气冲出人群就一定会走向成功

    这里面的困境很多很多

    举个不恰当的例子,同样是做小姐

    有的人一个月赚2万3万

    有的人能赚十几万

    这里面的重点就是要懂得变通

    变一次两次可能没什么用

    一定要有百折不挠的决心

    这件事一百次失败了,但我一百零一次还要挑战

    这样反复的吸取失败经验之后,才会有所收获

    没办法,有些人就是没有退路的,退回去就是一辈子趴着

    所以他们只能不断的拼搏

    这个过程又砍掉了百分之十的人

    进入第三个阶段是:变则通

    经过无数次的尝试这后,终于取得了一点小成绩

    人生的感悟多了很多,明白了一个道理

    世界上没有无缘无故的爱,也没有无缘无故的恨

    付出才有回报,不再去问我为什么没有得到

    而是问自己到底付出了什么

    我的生活需要用我的双手去打拼

    不再幻想平白无故的收获

    能够拥有这个感悟,基本上人生就不会太歪了

    会达到一马平川的状态

    再往上走就看自己有多大的野心了

    第四步:通则广

    做到这一步已经是人生赢家了,今天不去讨论

    咱们回看崛起之路的四个步骤

    最难的是哪一点,踢车牛根据我的亲身经验

    最难的就是第一步:潜龙有勇

    其实我们每个人都是龙,都是金子

    都有自己的闪光点

    但是为什么有些人被埋没了一辈子呢

    因为金子要发光是需要不停的打磨的

    它需要不停的勇勇勇、变变变、通通通

    最后才能达到发光的样子

    所以是金子就会发光这句话

    在我这就是狗屎

    所有人都是金子

    但是它想发光是要一定要经历中间的成长过程

    不可能一下就跨了过来

    所有人都是龙,但是你没有勇气你就狗屁都不是

    这句话大家能不能听明白

    其实我们每个人都在幻想自己有多牛逼

    但是现实生活中却像个傻逼

    每个人都想要突破生活的枷锁

    但它需要巨大的勇气

    梁静茹的《勇气》我们都听过

    但是不曾拥有

    我们无论有多么美好的想法

    最终都会被自己的理智压制下来

    可以称之为理智,也可以称之为没志气

    其实要认认真真的做一件事真的很难

    这里面有自己的懒隋,父母的阻碍

    别人鄙视的眼光,对自己能力的怀疑

    一但失败了怎么办,种种想法都会把你禁锢

    把你死死的按到板凳上

    告诉你现在挺好的,别折腾了

    但是你要相信我,所有人都会面对这些问题

    但是有的人就走出来了,他们到底成功了还是失败了

    我不知道,最起码他们的残生不会有那么多遗憾

    这就是人与人的区别

    退一万步讲,他勇敢之后真的失败了

    一败涂地了,又能怎样呢

    最后的结果不就是跟你一样吗,在生活中学会了趴着

    大家觉得我口中的底层跟高层跟金钱有关系吗

    人的层次划分我今天说的够不够明白?

    崛起阶段的人对于第一阶段和第二阶段是不是属于高层

    只要我们心中有梦想,而且肯为它努力

    不管你的年纪有多大,你都是一个追梦人

    你都属于脱离了底层的高层

    就怕你年纪轻轻就放弃这些梦想

    有很多人听不懂我说的是什么

    因为他们处在轻松生活的阶段

    有很多人想要反击我,想要证明我是错的

    因为他们处于趴着的阶段,他们已经投降了

    看到别人追梦,真的闹心

    有很多产生共鸣和懂我的人

    他们处于痛苦思辨或崛起阶段

    大家的种种表现都很正常

    但是一定要记住最后走出来的人

    永远都是那些勤奋、执着,懂得提升自己的人

    提升自己、提升自己

    这个词我跟大家说了一万遍了

    大家一定要体会里面的东西

    我不知道我跟大家讲的是不是成功学

    但这就是我几十年的人生经历

    踢车牛失败了无数次,在痛苦中思辨了很多年

    我的胆子比你们所有人想象的都要小

    我的自卑比你们所有人想象的都要大

    但是我要感谢那些痛苦的日子

    它让我能够坦荡的面对自己

    它让我明白我拥有什么,我想要的是什么

    我应该付出什么样的努力,才能享用胜利的果实

    其实踢车牛自认为是一个最平庸最平庸的底层屌丝

    没有任何值得吹嘘的地方

    但是我的三观正啊

    即使我的出生是最底层,我也可以不停的冲冲冲

    我对世界的认知就是三观正了,人生不败

    所以我看到的任何问题,都是三观问题

    我觉得只要修正别人的三观,世界就会一片美好

    听起来其实挺傻的,但这就是我看到的光明未来

    未来的世界必然是充满正能量,充满阳光的世界

    我可以点燃我自己,为了光明而努力

    你们也可以,所有人都可以

    我心中的未来,是一个人人如龙的未来

    人与人之间只有鼓励,没有伤害

    所有人都是激情四射、自信满满的胸怀大志

    做着自己喜欢的事,工作不再应付了事

    不再为了金钱去做肮脏事

    不再为了自己的虚荣心去做无意义的事

    这是一件非常可笑的事,我坐在简陋的工作室

    却发着这么大的宏天大志

    这一天可能很遥远,但是我坚信它一定会到来

    下节课我将阐述如何开启人人如龙的时代

    人是如何做着自己喜欢的事,慢慢走向成功的

    好了,今天就说到这里

    。。。

     

    转载于:https://www.cnblogs.com/liunianfeiyu/articles/9219776.html

    展开全文
  • 世界上最遥远距离不是生与死距离而是我在if 里面,你却在else里面;提到测试,有时候我总觉市面上大家有一种误解,作为在互联网里待过5年人,对后台开发,前端开发,移动端开发,产品运营,产品策划,产品...
  • 听他说的身上出了一身冷汗,大家也看看吧,另外,自己还是那么糙。...让一些有缘人这个纷纷扰扰的世界中 能够找到自己的出路,不至于死的不明不白 咱们今天的话题是,社会底层是怎样炼成的 ...
  • 并由Levchin奖获得者2018 Hugo Krawczyk真实世界加密货币上提出 这是什么? 它只需要记住几个(至少一个)密码,同时提供独特40个(ASCII)字符长非常随机密码(256位熵)。 您主密码被加密(不加密)...
  • 始终认为,牛人和普通人根本区别在于思维方式不同,而非知识多少、阅历多少。 这个世界上总有一帮神一样人物存在。就像读到那句话:“人类就像是一条历史长河中鱼,只有某几条鱼跳出河面,看到...
  • 用来做PID的隔离,有了namespace,docker container里头看来,就是一个完整的linux的世界host看来,container里的进程,就是一个普通的host进程,namespace提供这种pid的映射和隔离效果,host承载着container...
  • 确实,这些励志故事在世界各个角落发生着,有人出生底层,长相普通……却能吸引金字塔顶端人,她们是怎么做到呢? 梅根·马克尔(哈里王子妻子) 与其说梅根像戴安娜王妃,不如说她更像《乘风破浪姐姐》里...
  • 大家好,是一个函数,一个又累,又苦,又被广大开发者使用反派角色。自从世界各大语言诞生时候,也随之诞生。虽然经常出现人们眼前,但是我的出生环境和身世却很少被人所知。今天不得不...
  • 到底是我的管理方法太落后,还是已经看不懂这个世界了? 90 后乃至 95 后员工为什么和你想不一样?酵母刚创业那两年,我们也曾招聘过很多 90 后。最开始我们和员工之间也有这样那样冲突,但后来发现...
  • HashSet底层解析(11)

    2020-04-26 14:46:34
    前言 通过本篇文章你将学到: 1、什么是HashSet。 2、HashSet常用方法。 ...3、HashSet底层实现。...时常想,外面的世界如此广阔为何没有栖身之所。方寸之地,一张床,一台电脑,一个人。放得下人,但安不...
  • 点击上方"肉眼品世界",右上角选择“设为星标”改变,从每天点滴积累开始JVM运行数据区首先简单来画一张 JVM结构原理图,如下。我们重点关注 JVM运行时数据...
  • 他说:最近慢慢尝试去看spring源码,学习spring,以前都只是会用就行了,但是越是到后面,发现只懂怎么用还不够,面试时候经常被问到一些开源框架源码问题,即使网上各种百度,当时回答出来也会是很皮毛...
  • 互联网革命也不例外,如今互联网影响下,人们科学技术全面突破,也产生了很多改变人们生活方式优秀产品,这些产品某种程度上也改变了世界。 现在来给大家解析一下未来互联网产品诞生逻辑,...
  • Michael.W谈hyperledger Fabric第26期-详细带读Fabric源码11-世界状态代码级别行为实现1 世界状态的底层依赖2 上层智能合约键值对与底层存储键值对是如何相关联?3 如何持久化区块状态信息4 如何记录...
  • 像阿里巴巴,亚马逊,谷歌,微软等在内所有科技巨头对Spring都有很大贡献,因此Spring经常大厂面试时候被问到,下面选了几道关于pring源码面试题,看大家能不能回答出来: IOC源码主要流程 bean相互...
  • 并发底层原理中,不仅涉及 Java 语言,更涉及 JVM、操作系统、内存、CPU 指令等,令人一头雾水。 这份笔记+学习脑图可以帮你系统地学习Java 并发编程知识,并告别碎片化获取知识弊端。 这些面试题包含哪些内容?...
  • python江湖世界

    2021-04-07 17:16:51
    天下武功数少林,天外有天生奇云,编程的世界里微软的地位就像少林,因为底层的操作系统很多都建立C,C++之上,微软还开发了C#,VB,Jscript等其他语言,江湖中自然是最大的正统了。不过今天要来写一写的是...
  • 国内一直以来都是给公司打工,从未想过自己写程序赚钱,开发Android应用想法是移民到澳大利亚后萌发。当时看到CSDN和其它软件开发论坛上不断出现一个新名词Android,搜索一下,才知道这是一个由Google推出...
  • 多线程并发的世界里synchronized、volatile、JMM是我们绕不过去的技术坎,而重排序、可见性、内存屏障又有时候搞得你一脸懵逼。有道是知其然知其所以然,了解了底层的原理性问题,不论是日常写BUG还是面试都是必备...
  • 以2/8原则指导我们的底层框架设计

    千次阅读 2006-07-18 12:33:00
    原创文章,转载请注明作者:Nomad,出处:www.jialing.net 想很多人都听说过“2/8”原则,有人研究过,这世界上财富80%集中20%人手里,而另外80%人只拥用20%财富。实际商业中,我们应该更关注大...
  • 多线程并发的世界里synchronized、volatile、JMM是我们绕不过去的技术坎,而重排序、可见性、内存屏障又有时候搞得你一脸懵逼。有道是知其然知其所以然,了解了底层的原理性问题,不论是日常写BUG还是面试都是必备...
  • 此系列文章将整合我的 React 视频教程与 React Native 书籍中精华部分,给大家介绍 React 与 React Native 结合学习方法,此小节主要介绍 React 的底层原理与机制。 目前 React 可以说是前端世界最火热框架,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 415
精华内容 166
关键字:

我在底层的世界