精华内容
下载资源
问答
  • 关于Android下拉刷新上加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上加载,而是针对下拉刷新上加载常用的一些应用场景就行了一些总结,包含了下拉刷新上加载过程中遇到的一些手势冲突问题...

          转载请标明原文地址:http://blog.csdn.net/yalinfendou/article/details/47707017

          关于Android下拉刷新上拉加载,网上的Demo太多太多了,这里不是介绍怎么去实现下拉刷新上拉加载,而是针对下拉刷新上拉加载常用的一些应用场景就行了一些总结,包含了下拉刷新上拉加载过程中遇到的一些手势冲突问题的解决方法(只能算是抛砖引玉

          去年9月的时候,那时自己正在独立做Android项目。记得刚刚写完那个ListView列表页面(木有下拉刷新,上拉加载),只有一个简单的分页功能,就是当ListView滑动到最底部的时候,会去请求下一页数据,但是没有那个加载更多的Footerview。公司的那只产品汪过来看了我实现的效果,说:怎么没有下拉刷新,上拉加载啊,这可是APP的标配啊!

          因为那时候真的太菜,刚会Hello world不久,又要急着赶项目,虽说后来也折腾出来了,但是我非常清楚的记得那时候是非常渴求有人能给我一份完美的Demo啊。后来接触的东西多了久了,发现其实下拉刷新,上拉加载很简单,稍微复杂一点的就在于某些使用场景,需要解决一些手势冲突问题。所以,希望Demo能够对那些不熟悉下拉刷新,上拉加载的童鞋有一点小小的帮助,大神们就飘过吧!

          为什么Demo中没有RecyclerView的下拉刷新上拉加载?

          在GIT上也找过一些,自己也尝试写过一些Demo,虽说功能也能实现,但效果并不能让自己满意,所以这里就不考虑ReclerView啦!

          为什么初始化时Item时,没有满屏?

          因为目前市面上的一些APP的下拉刷新上拉加载没有考虑Item不满屏的情况,会有一些异常(也许是因为这种情况很少见),即便是Git上,很多人都在用的pull-to-refresh,在Item不满屏的情况下,上拉加载更多时,Loading的FooterView会紧贴在最后一个Item下面,而不是在屏幕的最底部,个人不太喜欢这种不友好的交互方式。

          因为涉及到的知识点有点杂,很多知识点是不能去在博客中细细深究的,这里主要介绍的是Android 下拉刷新上拉加载 多种应用场景。

          Demo中包含的一些主要的知识点:View和ViewGroup的事件分发机制,DrawerLayout侧滑菜单,SwipeListView滑动删除,瀑布流照片墙效果(参考大神郭霖的代码,做了少许改动),图片轮播,PagerSlidingTabStrip,TabLayout,VewPager等的使用方法在Demo中会有部分体现,网上关于这些方面的知识点的博客太多了,我也是向他人学习的,所以建议先熟悉一下上面的知识点,至少看代码能够明白一些吧。

          关于一个下拉刷新上拉加载控件应该注意的地方:

    • 使用方便,能适用于多种情况
    • 解决一些手势滑动冲突
          Demo中包含了一些常见的拉刷新上拉加载使用场景(QQ,网易,豌豆荚,优酷之类的APP上面都见到,只能说国产的APP长得都太像了)。
    1. 基本ListView下拉刷新上拉加载
    2. 基本GridView下拉刷新上拉加载
    3. 基本ScrollView下拉刷新上拉加载,包含Button,TextView,ImageView
    4. DrawerLayout中ListView下拉刷新上拉加载,解决DrawerLayout侧滑与ListView下拉上拉的手势冲突
    5. SwipeListView的下拉刷新上拉加载,解决滑动删除的Item与ListView下拉上拉的手势冲突
    6. MultiColumn瀑布流的下拉刷新上拉加载
    7. ListView+图片轮播的下拉刷新上拉加载,解决轮播图片滑动与ListView下拉上拉的手势冲突
    8. PagerSlidingTabStrip+ListView+图片轮播的下拉刷新上拉加载,解决ViewPager,轮播图片滑动,ListView下拉上拉的手势冲突
    9. ……继续添加未完成

          Demo效果图:



          看完Demo效果图就应该上代码和Demo源码了,因为最近小忙小忧桑,还有一些下拉刷新上拉加载的应用场景没写完,所以代码和Demo会在后面的博客中给出来。


         说好的优化后再上传,最近实在太忙,就把以前的代码放出来了,Sorry……

    CSDN下载地址http://download.csdn.net/detail/yalinfendou/9187925


    展开全文
  • 拉开变革序幕(上):在浪潮之巅观望Docker

    万次阅读 多人点赞 2015-11-10 14:39:11
    在去年(2014)12月份的欧洲DockerCon上,Docker首席技术官Solomon Hykes说Mesos是生产环境下运行规模可扩展容器集群的黄金标准。 Docker Swarm可以无缝管理容器集群, 是真正的为了让企业用户能够部署和管理...

    Docker says: an open platform to build, ship, and run any app, anywhere

    这里写图片描述


    Docker Service Overview

    (as far as I study)

    • CaaS/PaaS/lightweight IaaS

      • developer oriented
      • connect code manage and cloud machine, to build, deploy and manage
    • Use as VM

      • Tencent ten thousand machines
      • rebuild in-house system
      • promote DevOps
      • provide CI/CD
    • Software Architecture

      • help microservice
      • baozoumanhua.com

    Hello Docker, hello SDUer

    现在正是云计算‘容器化’的潮流。Docker越来越成为云计算和分布式系统的宠儿和基石。

    我们可以从 Docker Hub 或其他registry,如 DockerPool阿里云Docker镜像库, pull下已有的镜像,也可以自己写Dockerfile文件,自己创建镜像。有了镜像,就可以去RUN它。下面依次介绍了RUN一个镜像(docker run),自己创建镜像(Dockerfile语法docker build)。在介绍它的最基本用法之后,开始初步深入它的原理和内核技术,不求理解,只求一个印象 :-)。深入部分会越来越细致,不断完善。之后也会增加Docker Runtime metrics的介绍和命令,这样对Performance的分析也会有帮助。

    感谢大家一起帮助博主完善这篇blog。


    照个相

    先粗略介绍docker常用的几个基本命令:

    run

    运行容器,如果镜像不存在则先下载

    pull

    从镜像库上下载容器镜像

    start/stop

    启动/停止一个container

    rm

    删除容器

    rmi

    删除容器镜像

    commit

    将容器中的修改提交至镜像中

    logs

    显示容器运行的控制台输出

    build

    从 Dockerfile 构建一个镜像

    inspect

    显示容器运行参数

    images

    显示当前宿主机上的所有镜像


    docker run 洒洒水

    $ sudo docker run [OPTIONS] IMAGE[:TAG] [COMMAND] [ARG...]

    docker run命令有两个参数,一个是镜像名,一个是要在镜像中运行的命令。
    正确的命令:

    $ docker run learn/tutorial echo "hello word"
    • -d:containter将会运行在后台模式
    • –name:给container命名,对于一个container来说有个name会非常方便,因为你可以当你需要link其它容器时或者其他类似需要区分其它容器时,使用容器名称会简化操作
    • –link:连接两个container之间的通信,通过端口。

    –link (name or id): alias

    $ docker run -d -P --name web --link db:db training/webapp python app.py

    上面命令连接了web和db两个container,注意link的参数 db:db,前一个db是容器名,后一个db是alias。

    如果一个名为web的container被连接到db container上, –link db:webdb,那么Docker就会在web这个container中创建环境变量 WEBDB_NAME=/web/webdb。其中<alias>_NAME = WEBDB_NAME。

    • -P:container会开放部分端口到host,只要对方可以连接到host,就可以连接到container内部。当使用-P时,docker会查找一个未被占用的端口绑定到container。你可以使用docker port来查找这个随机绑定端口
    docker run --name mongo_001 -d -P mongo
    • -p:指定要映射的端口,并且,在一个指定端口上只可以绑定一个容器。支持的格式有 ip:hostPort:containerPort | ip::containerPort | hostPort:containerPort

    映射所有接口地址

    使用 hostPort:containerPort 格式本地的 5000 端口映射到容器的 5000 端口,可以执行

    $ sudo docker run -d -p 5000:5000 training/webapp python app.py

    此时默认会绑定本地所有接口上的所有地址。

    映射到指定地址的指定端口

    可以使用 ip:hostPort:containerPort 格式指定映射使用一个特定地址,比如 localhost 地址
    127.0.0.1

    $ sudo docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py

    映射到指定地址的任意端口

    使用 ip::containerPort 绑定 localhost 的任意端口到容器的 5000 端口,本地主机会自动分配一个端口。

    $ sudo docker run -d -p 127.0.0.1::5000 training/webapp python app.py

    还可以使用 udp 标记来指定 udp 端口

    $ sudo docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py

    查看映射端口配置

    使用 docker port 来查看当前映射的端口配置,也可以查看到绑定的地址

    $ docker port nostalgic_morse 5000
    127.0.0.1:49155.

    再看这个例子:

    sudo docker run –i –t –v /opt/ubuntutmp:/opt/ubuntutmp ubuntu:14.04 /bin/bash

    创建基于Ubuntu 14.04镜像的容器,并挂载主机/opt/ubuntutmp,目录作为容器的数据卷

    • -i:建立交互性连接,占用容器的标准输出
    • -t:在容器中建立一个伪终端或者终端
    • -v:将主机的目录或者文件挂载为容器数据卷或者在容器中增加数据卷

    进入容器用 docker attach <container id>

    退出一个镜像的bash,而不终止它

    Ctrl-p Ctrl-q


    Dockerfile语法:事儿多

    RUN cmd 在base image中执行命令,一般为linux shell命令

    mkdir -p /data/db

    这里补充一点,RUN默认使用的是/bin/sh,通过/bin/sh -c执行。有一次我用的机器上/bin/sh -c有问题,不能识别后续的cmd,导致镜像创建失败。这个时候可以用另一种RUN的形式:
    RUN [“executable”, “param1”, “param2”] (exec形式)

    RUN ["/bin/bash", "-c", "mkdir /data/db"]

    VOLUME [“mountpoint”] 将本地文件夹或者其他container的文件夹挂载到container中

    # Define mountable directories.
    VOLUME ["/data/db"]

    WORKDIR /path/to/workdir 切换目录用,可以多次切换(相当于cd命令)

    # Define working directory.
    WORKDIR /data

    CMD [“executable”,”param1”,”param2”] container启动时执行的命令,但是一个Dockerfile中只能有一条CMD命令,多条则只执行最后一条CMD,用于在构建过程中执行命令

    # Define default command.
    CMD ["mongod"]

    EXPOSE port 把这个端口暴露在外,这样容器外可以看到这个端口并与其通信

    # Expose ports.
    #   - 27017: process
    #   - 28017: http
    EXPOSE 27017
    EXPOSE 28017

    ENV key value 设置环境变量

    ENV APP_NAME app.js

    ADD <源文件> <目标文件> 用来将一个文件或目录添加到 Docker 镜像中,前面是源文件,后面是目标文件(源文件必须使用相对路径)

    ADD device.jar /device.jar

    ENTRYPOINT 【运行命令】 用来指定运行 Docker 容器时,在容器中执行的命令是什么。如果需要运行多个命令,可以通过 Supervisor 来执行

    ENTRYPOINT java -jar /device.jar

    示例(构建mongodb镜像的Dockerfile)

    #
    # MongoDB Dockerfile
    #
    
    # Pull base image
    FROM       ubuntu:latest
    
    MAINTAINER LIU Qiu Shan <qsliubj@cn.ibm.com>
    
    
    # Install MongoDB
    # The real logic
    # Add 10gen official apt source to the sources list
    RUN \
      apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 && \
      echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' > /etc/apt/sources.list.d/mongodb.list && \
      apt-get update && \
      apt-get install -y mongodb-org && \
      rm -rf /var/lib/apt/lists/*
    
    # Define mountable directories
    VOLUME ["/data/db"]
    
    # Define working directory
    WORKDIR /data
    
    # Define default mongodb command
    CMD ["mongod"]
    
    # Expose the process port of mongodb
    EXPOSE 27017
    
    # Expose the http port of mongodb
    #EXPOSE 28017

    docker build 如此easy

    docker build -t="dockerfile/mongodb" .

    在当前目录下有名为Dockerfile的文件,执行上述命令,构建名为dockerfile/mongodb的镜像。


    镜像:等主人完善…

    查看所有镜像 $ docker images

    删除指定镜像 $ docker rmi image_name

    注意:
    清空/var/lib/docker/devicemapper这个目录后,需要重新build所有用到的镜像,包括用到的操作系统镜像,如ubuntu:latest

    docker pull ubuntu

    /var/lib/docker 啥玩意

    这是docker的配置文件夹。Docker用/var/lib/docker作为默认的目录,所有docker相关的文件,包括images和挂在卷(volumes)都存在这个目录下。

    我们可以为一个容器建立一个卷,这个卷存放在/var/lib/docker/volume目录下,卷名是基于UUID命名的,所以很难与容器名称联系在一起。任何卷中的数据都能在主机操作系统中浏览和编辑。

    注意:
    在使用mongodb时,创建多个mongodb的containers后,volumes目录下就会存满mongodb的挂在卷,如果过多,会占用大量磁盘空间,如果出现空间不足的错误,可以把不用的volumes删掉。


    Docker Daemon

    在Docker架构中,Docker Client通过特定的协议与Docker Daemon进行通信,而Docker Daemon主要承载了Docker运行过程中的大部分工作。Docker Daemon是Docker架构中运行在后台的守护进程,大致可以分为Docker Server、Engine和Job三部分。

    Docker Daemon架构示意图

    Docker Client先通知Docker Daemon创建container,创建出后Docker Daemon会通知Docker Client已经创建好,这时Docker Client会再次发出start container的请求。收到请求的Docker Daemon会使用以下的Start函数来完成容器启动的所有过程。

    if err := container.Start(); err != nil {
            return job.Errorf("Cannot start container %s: %s", name, err)
    }

    “Start函数实现了容器的启动。更为具体的描述是:Start函数实现了进程的启动,另外在启动进程的同时为进程设定了命名空间(namespace),启动完毕之后为进程完成了资源使用的控制,从而保证进程以及之后进程的子进程都会在同一个命名空间内,且受到相同的资源控制。如此一来,Start函数创建的进程,以及该进程的子进程,形成一个进程组,该进程组处于资源隔离和资源控制的环境,我们习惯将这样的进程组环境称为容器,也就是这里的Docker Container。”(《Docker源码分析》)


    容器编排

    “container orchestration specifically is now a hot area” —— Nati Shalom on June 11, 2015

    容器编排是为了帮助人们自动的构建和管理众多容器,尤其在分布式集群中。有很多编排工具,不只是容器编排,根据具体场景可以选择相应的,例如,如果你只使用Docker容器就可以使用Docker提供的编排系统Swarm,如果你在设计微服务,Kubernetes是不错的选择。

    另外,Mesos和Mesosphere DCOS是专门设计用来管理大规模容器的。这些高性能的系统在一些世界上最大的数据中心的生产环境中已经身经百战很多年了,例如Twitter,几乎完全是在Mesos上面运行的。
    在去年(2014)12月份的欧洲DockerCon上,Docker首席技术官Solomon Hykes说Mesos是生产环境下运行大规模可扩展容器集群的黄金标准。

    Docker Swarm可以无缝管理容器集群, 是真正的为了让企业用户能够部署和管理大规模容器。

    “我们认为Docker Swarm发布最酷的部分应该是“batteries included but swappable(可插拔式的架构)”。简单的说,这个意思就是当你需要规模化生产的时候,你可以开始使用Docker Swarm,并“换入(swap in)”Mesosphere。我们认为他们做了一个伟大的社区决定, 就是鼓励用户在容器集群调度和协调上面可以自我选择和创新,而不是只规定一种方式。”

    “Mesos上的Docker Swarm直接使用Mesos的API,这就意味着它可以完全兼容Mesosphere DCOS,这也使得Docker Swarm同Marathon、 Cronos、Spark、Storm、Hadoop以及Cassandra一样成为Mesos和Mesosphere生态系统里面的一等公民。”

    总之,这部分文字简单描述了Docker Swarm, Kubernetes和Mesos的联系,它们也是在Docker在分布式集群上最火热的话题,值得去探讨。

    再看一下Docker Swarm,先来看一张它的图:
    这里写图片描述

    Swarm发现Docker集群中的节点,依靠discovery模块,在发现之前需要先注册(一个Docker Node在Swarm节点上注册,仅仅是注册了Docker Node的IP地址以及Docker监听的端口号)。当发现所有存在的节点时,当Swarm接收到具体的docker管理请求,swarm会通过filter模块决策到底哪些Node满足要求,并通过一定的strategy将请求转发至具体的一个Node中。


    Docker Compose

    通过YAML文件自动构建container。

    在64bit Red Ha上安装Compose,

    # curl -L https://github.com/docker/compose/releases/download/1.1.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    
    #chmod +x /usr/local/bin/docker-compose

    运行 # docker-compose,显示如下:
    这里写图片描述

    这里展示一个YAML文件示例,我们通过运行命令 $ docker-compose up -d 依据这个YAML文件的描述构建出各个docker containers。

    下面的,hystrix是要构建的container名,image是用到的镜像,ports是指定端口,links是该container要link到哪些containers上。具体语法大家可以google或baidu。

    hystrix:
      image: kbastani/hystrix-dashboard
      ports:
       - "7979:7979"
      links:
       - gateway
       - discovery
    discovery:
      image: kbastani/discovery-microservice
      ports:
       - "8761:8761"
    configserver:
      image: kbastani/config-microservice
      ports:
       - "8888:8888"
      links:
       - discovery
    gateway:
      image: kbastani/api-gateway-microservice
      ports:
       - "10000:10000"
      links:
       - discovery
       - configserver
       - user
       - movie
       - recommendation
    user:
      image: kbastani/users-microservice
      links:
       - discovery
       - configserver
    movie:
      image: kbastani/movie-microservice
      links:
       - discovery
       - configserver
    recommendation:
      image: kbastani/recommendation-microservice
      links:
       - discovery
       - configserver
    moviesui:
      image: kbastani/movies-ui
      ports:
         - "9006:9006"
      links:
       - discovery
       - configserver

    Docker Machine

    让你轻松部署Docker实例到很多不同的平台。

    Docker Machine提供了多平台多Docker主机的集中管理,包括本地虚拟机和私有云、公有云,如VirtualBox、 Digital Ocean、Microsoft Azure(只支持有限的几个平台),只需要一条命令便可搭建好Docker主机。所以它是为了简化部署的复杂性而生的。

    “Docker官方是这样介绍Machine的初衷的:
    之前,Docker的安装流程非常复杂,用户需要登录到相应的主机上,根据官方的安装和配置指南来安装Docker,并且不同的操作系统的安装步骤也是不一样的。而有了Machine后,不管是在笔记本、虚拟机还是公有云实例上,用户仅仅需要一个命令….当然那你需要先安装Machine。”

    这里引入一张经典图片:
    这里写图片描述

    我已经安装了 VirtualBox,并且要创建一个叫“qianyu”的虚拟机:

    $  docker-machine create --driver virtualbox qianyu
    INFO[0000] Creating SSH key...                          
    INFO[0000] Creating VirtualBox VM...                    
    INFO[0006] Starting VirtualBox VM...                    
    INFO[0006] Waiting for VM to start...                   
    INFO[0038] "qianyu" has been created and is now the active machine. 
    INFO[0038] To point your Docker client at it, run this in your shell: $(docker-machine env testing)

    这样就在本地起了一个virtualbox虚拟机,并在里面部署好了docker。同样我们可以指定云,比如digitalocean,不过你需要提供你的账户信息,这样就会在云上也创建出docker。而这所有的一切都是在一台本地物理机器上完成的,每一个平台的部署仅需一条或几条命令。

    “虽然官方只支持几种特定平台,但其它平台的兼容留给那些爱Docker的第三方厂商以及开发者去做。所以接下来一定会有很多的厂商跟进,比如国内阿里云之类的,他们根据官方的接口开发个Driver即可加入Machine的能力。”—— https://linux.cn/article-4393-1.html


    深入Docker大山坡

    • Docker概貌

    ”Docker有两方面的技术非常重要,第一是Linux容器方面的技术,第二是Docker镜像的技术。从技术本身来讲,两者的可复制性很强,不存在绝对的技术难点,然而Docker Hub由于存在大量的数据的原因,导致Docker Hub的可复制性几乎不存在,这需要一个生态的营造。“

    容器这种系统级的虚拟化运用了一项技术叫namespace isolation:Namespace isolation使主机能够给每个容器一个虚拟的namespace,容器在这个虚拟的namespace内,只能看到它应该看到的资源。但为了提升效率,许多操作系统文件、目录和运行的服务在容器间共享,并映射到每个容器的namespace。仅当应用在它的容器内改变这些资源时,比如修改一个已存在的文件或创建新文件,容器会从宿主操作系统得到一份副本——利用Docker的“copy-on-write”优化,仅仅复制发生变化的部分。这一共享特性,是在一台主机上高效部署多个容器的技术之一。还有一项技术叫cgroup,利用它可以实现对资源的限制和配置,如限制CPU的使用率。

    Dockerfile 是软件的原材料,Docker 镜像是软件的交付品,而 Docker 容器则可以认为是软件的运行态。

    Dockerfile中的四条命令 FROM, ADD, VOLUME, CMD, 这四条命令可以构建出一个镜像来,分别对应四个镜像层,见下图。

    下图的出处是http://www.csdn.net/article/2015-08-21/2825511

    这里写图片描述

    Docker最大的创新点在于Docker镜像的设计,下面是张Docker镜像的层次图,分层的文件系统,一层层地搭建出一个完整的容器运行环境:
    这里写图片描述


    • Cgroup/进程/物理资源/隔离/虚拟化/Docker

    Cgroups可以限制、记录、隔离进程组所使用的物理资源(包括:CPU、memory、IO等),为容器实现虚拟化提供了基本保证,是构建Docker等一系列虚拟化管理工具的基石,最初由Google工程师(Paul Menage和Rohit Seth)于2006年提出。

    Cgroups可以对进程组使用的资源总额进行限制,如设定应用运行时使用内存的上限,一旦超过这个配额就发出OOM(Out of Memory)。通过分配的CPU时间片数量及硬盘IO带宽大小,实际上就相当于控制了进程运行的优先级。 cgroups可以统计系统的资源使用量,如CPU使用时长、内存用量等等,这个功能非常适用于计费。cgroups可以对进程组执行挂起、恢复等操作。

    Cgroups也是LXC为实现虚拟化所使用的资源管理手段,可以说没有cgroups就没有LXC。从单个进程的资源控制,到实现操作系统层次的虚拟化(OS Level Virtualization)。

    “根据Docker布道师Jerome Petazzoni的说法,Docker约等于LXC+AUFS(之前只支持ubuntu时)。其中LXC负责资源管理,AUFS负责镜像管理;而LXC又包括cgroup、namespace、chroot等组件,并通过cgroup进行资源管理。所以只从资源管理这条线来看的话,Docker、LXC、CGroup三者的关系是:Cgroup在最底层落实资源管理,LXC在cgroup上封装了一层,Docker又在LXC封装了一层,关系图如图1.b所示。”
    (出自http://speakingbaicai.blog.51cto.com/5667326/1352962

    这里写图片描述
    (a)
    这里写图片描述
    (b)

    图1 Docker-LXC-CGroup结构图

    Docker的本质实际上是宿主机上的一个进程,通过namespace实现了资源隔离,通过cgroup实现了资源限制,通过UnionFS实现了Copy on Write的文件操作。


    • Cgroup的术语与规则

    以下来自http://www.sel.zju.edu.cn/?p=573

    术语表

    task(任务):cgroups的术语中,task就表示系统的一个进程。
    cgroup(控制组):cgroups 中的资源控制都以cgroup为单位实现。cgroup表示按某种资源控制标准划分而成的任务组,包含一个或多个子系统。一个任务可以加入某个cgroup,也可以从某个cgroup迁移到另外一个cgroup。
    subsystem(子系统):cgroups中的subsystem就是一个资源调度控制器(Resource Controller)。比如CPU子系统可以控制CPU时间分配,内存子系统可以限制cgroup内存使用量。
    hierarchy(层级树):hierarchy由一系列cgroup以一个树状结构排列而成,每个hierarchy通过绑定对应的subsystem进行资源调度。hierarchy中的cgroup节点可以包含零或多个子节点,子节点继承父节点的属性。整个系统可以有多个hierarchy
    

    规则1: 同一个hierarchy可以附加一个或多个subsystem。如下图1,cpu和memory的subsystem附加到了一个hierarchy。
    这里写图片描述
    图1 同一个hierarchy可以附加一个或多个subsystem

    规则2: 一个subsystem可以附加到多个hierarchy,当且仅当这些hierarchy只有这唯一一个subsystem。如下图2,小圈中的数字表示subsystem附加的时间顺序,CPU subsystem附加到hierarchy A的同时不能再附加到hierarchy B,因为hierarchy B已经附加了memory subsystem。如果hierarchy B与hierarchy A状态相同,没有附加过memory subsystem,那么CPU subsystem同时附加到两个hierarchy是可以的。
    这里写图片描述
    图2 一个已经附加在某个hierarchy上的subsystem不能附加到其他含有别的subsystem的hierarchy上

    规则3: 系统每次新建一个hierarchy时,该系统上的所有task默认构成了这个新建的hierarchy的初始化cgroup,这个cgroup也称为root cgroup。对于你创建的每个hierarchy,task只能存在于其中一个cgroup中,即一个task不能存在于同一个hierarchy的不同cgroup中,但是一个task可以存在在不同hierarchy中的多个cgroup中。如果操作时把一个task添加到同一个hierarchy中的另一个cgroup中,则会从第一个cgroup中移除。在下图3中可以看到,httpd进程已经加入到hierarchy A中的/cg1而不能加入同一个hierarchy中的/cg2,但是可以加入hierarchy B中的/cg3。实际上不允许加入同一个hierarchy中的其他cgroup野生为了防止出现矛盾,如CPU subsystem为/cg1分配了30%,而为/cg2分配了50%,此时如果httpd在这两个cgroup中,就会出现矛盾。
    这里写图片描述
    图3 一个task不能属于同一个hierarchy的不同cgroup

    规则4: 进程(task)在fork自身时创建的子任务(child task)默认与原task在同一个cgroup中,但是child task允许被移动到不同的cgroup中。即fork完成后,父子进程间是完全独立的。如下图4中,小圈中的数字表示task 出现的时间顺序,当httpd刚fork出另一个httpd时,在同一个hierarchy中的同一个cgroup中。但是随后如果PID为4840的httpd需要移动到其他cgroup也是可以的,因为父子任务间已经独立。总结起来就是:初始化时子任务与父任务在同一个cgroup,但是这种关系随后可以改变。
    这里写图片描述


    • namespace, cgroup & AuFS

    While namespaces are responsible for isolation between host and container, control groups implement resource accounting and limiting. In addition to the above components, Docker has been using AuFS (Advanced Multi-Layered Unification Filesystem) as a filesystem for containers. AuFS is a layered filesystem that can transparently overlay one or more existing filesystems. When a process needs to modify a file, AuFS creates a copy of that file. AuFS is capable of merging multiple layers into a single representation of a filesystem. This process is called copy-on-write.


    • Cgroups & Docker

    Docker既可以使用LXC,也可以使用libcontainer,后者是新的而且是默认的。通过它们我们可以对container进行限制。比如,我们要将container锁定在第一个core上,在 docker run 命令上加上 –cpuset-cpus=0。
    另外 –cpu-shares 参数会定下 share 一个CPU的百分比。下面是CloudSigma上的一个示例:

    $ docker run -d \
        --name='low_prio' \
        --cpuset-cpus=0 \
        --cpu-shares=20 \
        busybox md5sum /dev/urandom
    $ docker run -d \
        --name='high_prio' \
        --cpuset-cpus=0 \
        --cpu-shares=80 \
        busybox md5sum /dev/urandom

    这里写图片描述

    如果在一个host上管理很多个Docker container,就要借助Cgroups,Docker支持两个Cgroup driver,分别是LXC,libcontainer,各有优势。


    工业界对Docker使用

    • 腾讯万台规模的Docker应用实践
      “... Docker在资源管理纬度方面只有CPU和内存两个维度,这对于共享的云环境下需要完善,也是目前相对于虚拟机不足的地方。Gaia引入磁盘容量管理,网络出入带宽控制以及磁盘IO的控制维护。 ...”

    • 基于容器的自动构建——Docker在美团的应用
      “... 该应用只利用了Docker最核心的容器功能,并没有使用Docker集群管理、调度、自动扩容等高级的功能。 ...”

    • Otto奥托集团的架构选型之路
      “... 主要讲解otto.de的微服务架构 … 为了简化不同微服务的部署和操作问题,每一个服务器运行在独立的Docker容器中。...”


    Slides

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    这里写图片描述

    展开全文
  • 有过被微信好友黑、被几百上千好友问各种问题的苦恼…… 对于这些不同的人,我内心是啥感受?我是如何对待的?你又是属于哪种人?不妨继续往下看。 一、我在V2EX被怼上网站首页了 大家可能都看过我写的关于计算机...

    从 2018 年 7 月开始写公众号到现在,差不多有一年半了。在这一年半里,有过被人赞赏、被人肯定的喜悦;有过被人喷、被人怼上某网站首页的心酸;有过被微信好友拉黑、被几百上千好友问各种问题的苦恼……

    对于这些不同的人,我内心是啥感受?我是如何对待的?你又是属于哪种人?不妨继续往下看。

    一、我在V2EX被怼上网站首页了

    大家可能都看过我写的关于计算机网络的文章,很多时候我并不会直接说出某种协议的功能,而是会让你们知道,它的由来,知其所以然。有次我在 V2EX 这个博客平台发了一篇关于0.0.0.0 和 255.255.255.255 的文章,直接被喷上该网站的头条了

    在这里插入图片描述

    怼到我不敢去看评论,,,,主要是他们觉得这篇文章太简单了,小学生都会,刚开始我还一一怼回去,因为我的文章就是写给小白看的,并且我并不认为他们就真的是懂了。文章链接在这:什么?你不知道0.0.0.0和255.255.255.255这两个地址的干嘛的?

    后来我连评论都不想看了,原因很简单,自己辛苦写的文章,被人怼还是挺难受,,,,

    二、我在知乎饱受抨击与赞美

    1、知乎喷子太多了,我被喷到不敢看评论

    说实话,知乎是我看过喷子数量排名前三的地方,我真的是不懂他们的怨气为什么这么大。

    我文章有些地方写错,你们提醒一下不就好了?但是他们不,而是把你骂一顿,最后还不把骂的具体原因说出来,这种评论,真的是毫无价值。

    我在知乎的一篇回答获得了 3000+ 的赞,说明这个回答还是有点价值的,答案就是是公众号的这篇文章:【算法技巧】位运算装逼指南

    但是仍然被喷死,原因是大佬嫌弃太简单

    在这里插入图片描述

    不过我懒的回复他,因为我觉得分享太难的技巧没有必要,因为如果你算法很强,acm 大佬,大概率是不会去看这些文章,更多的会去看书,这些文章就是写给小白看的。当然,也有比较和善的评价

    在这里插入图片描述

    而且还要很多人,文章并没有仔细看,更加不知道我要表达的意思,也是骂个不停,并且如果你看到他们的评论,你还会觉得他们评论的很有道理,前阵子就有一个人加我,说到了我的回答,我问你赞同他们的评论吗?她说他们说的挺有道理的,一气之下我翻开知乎的评论,疯狂怼了一波,,截图聊天如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    怼了一波,舒服!不过我可以告诉你们,刚开始我生气,一一怼回去,后来我麻木了,我懒的理,他们爱怎么说就怎么说。

    2、也感谢那些肯定我的人

    在知乎,虽然喷子很多,但也遇到很多肯定我,鼓励我的人,这里真的挺感谢他们,让我有了更多的动力写下去。
    在这里插入图片描述
    那篇动态规划的文章,也已经在知乎获得了 3.5k 的点赞,这给了我非常多的动力
    在这里插入图片描述
    说时候,写文章,总不可能说的太全,有可能写漏了,有可能写错了,我希望大家别挑出缺点就骂,提醒一下就可以了,因为一篇文章,也可能存在很多值得肯定的地方,大家取其精华去其糟粕。

    三、CSDN 的小伙伴相对友好

    在 csdn ,感谢出初学者挺多的,大家也很少喷人,我前阵子在 csdn 发了几十篇文章,收获了 60w+ 的访问量,也收到了很多肯定,很多评论虽然我没有回复,但大多都看了,同样的文章,在 csdn 很少被喷,在知乎,可能要被喷的体无完肤。晒一波 csdn 的成就
    在这里插入图片描述

    csdn 写了一个多月的博客,
    粉丝从 10+ 到 8800+
    访问从 1w- 到 60w+
    获赞从 10+ 到 1w+
    周排名从 10w+ 到 25
    收割了第一篇10w+阅读量的文章
    获得了博客专家的标识

    在这里插入图片描述
    这里,要感谢大家,虽然被喷的很惨,但也收获了很多肯定!

    四、我在微信经历了多种苦恼

    在微信,有很多人加我,很多人问我问题,也有很多人和我成为了要好的朋友…

    1、没有及时回复被拉黑了

    我的微信可能不比你们的微信,我有好几千好友,每天很多人问我问题,我很难及时回复的,我一般都是把这些人置顶,有空的时候统一回答,然而,我被拉黑了

    在这里插入图片描述

    有人问我什么感受?可以告诉你,现在的我,遇到这种事,内心毫无波动,因为,我遇到多了。

    最开始的时候,开始有点小气的,马上也把他加入黑名单了,但是后来,这种人遇到的多了,我也懒的理了。

    但是我必须告诉你,不是说你想不生气就不生气了,正所谓没必要为这种人生气,不过,有时候,不是想着不生气身体就能够跟着不生气的,只有真的遇到多了,才能真的免疫了,麻木了,,,,

    2、我帮他们好像是理所当然?

    还有很多人,自己遇到个 bug,或者算法题没做出来,或者电脑环境啥的出错了…直接扔给我一堆代码,一堆截图。

    要知道,有些 bug 或者算法题,我可能得花好几十分钟才能搞出来,,,当然,也有可能搞不出来

    对于这种,我是很难帮你的,因为太花我的时间了,注意,我面对的可是几千好友,,,但是,如果我知道的,很多情况下我都帮了(我觉得我就是个良心博主)

    在这里插入图片描述

    因为,我当初也会在自己老是没解决的情况下问别人,不过大佬们并没有理我,那时我还是很生气的,后来我才知道,生气的应该是大佬。

    所以我理解这些问我问题的人,和当初的我一样,所以看到懂的我尽量帮,并且告诉他们,以后尽量不要问我这种具体问题了,让他们自己学会用搜索引擎去解决,自己去折腾。

    在这里插入图片描述
    不过,如果你是让我推荐书籍,或者问的主观问题,或者自己遇到人生疑惑,迷茫,对于这种,我大都给出了自己的建议。

    我觉得我已经做的够好了,但难免还会遇到这些人:

    (1)、没有回答他们,或者拒绝他们的问题,被拉黑了

    (2)、我回答了他们,他们拿到了答案,连句回复都没有,不见人影了,等到有问题时,又跑来问了,几次过后,我也懒的回复他们了。

    (3)、我回答了他们具体的问题,然而他越问越多,我拒绝了,他也没回复一下,气氛弄的很尴尬。

    当然,也有很多人,会说句谢谢,就算你没帮到他,他也很客气,有些人还会给你发红包

    当然,我一般不收,说实话,不缺这点钱,但是你的红包,也是能增加好感的…至少代表有诚意…

    对于这些人,印象会比较好吧,后面有需要帮忙的,我也会尽量帮。因为大家都是互不认识,我也懒的去了解你现实是个什么样的人,而是,你对我好,我也会对你好。就像你支持我的公众号,经常留言,在看,赞成,转发,那么我看到了,也会记住你支持过我。总之,你的一举一动,我都看在眼里,记在心里

    五、我要感谢微信上的这些人

    当然,也遇到了很多 Nice 的人,有些人因为看了我的文章,特地来加我微信,给我打赏

    在这里插入图片描述
    在这里插入图片描述

    被人肯定,还是非常开心的,不信,你去写文章试试,金额不在于多少,而是那种被人肯定,自己的文章帮助了其他人,感受到自己文章的价值。当然,说实话,还是有挺多人来感谢我的文章的,有些人看了我的经历,觉得很励志,很正能量,自己也不想在颓废下去的,感觉自己也能行。是的,你一定能行,虽然这句话有鸡汤成分,但总比啥也不做有用。

    也认识了很多虚心的大佬,有些人可能一听我才大四,还没毕业的小白,然后就懒的理我了,对于这种人,我也懒的理他们。但是有些人,即便是个大佬,但非常谦虚、虚心与我探讨一些东西,从而有些也和我成为了不错的朋友。

    说实话,虽然我还没毕业,但是有些东西我懂的,你不一定懂。我平时不管遇到什么样的人,都不会否定他,都会虚心请教。因为每个人都有他的优点,他可能真的有我值得学习的地方

    六、最后

    写这篇文章,可以说是很走心的了,我也不知道为啥会写这样一篇文章,可能是有感而发吧。人在江湖漂,哪能不挨刀,感谢那些喷过我的人,让我的内心更加强大了,同时也非常感谢那些支持我的人,让我有了更大的动力继续写下去。

    老铁,要不点个赞再走可好?么么哒

    1、给俺点个赞呗,可以让更多的人看到这篇文章,顺便激励下我,嘻嘻。

    2、老铁们,关注我的原创微信公众号「帅地玩编程」,专注于写算法 + 计算机基础知识(计算机网络+ 操作系统+数据库+Linux)。

    保存让你看完有所收获,不信你打我。后台回复『电子书』送你一份精选电子书大礼包,包含各类技能的优质电子书。

    作者简洁

    作者:大家好,我是帅地,从大学、校招一路走来,深知算法计算机基础知识的重要性,所以申请了一个微星公众号『帅地玩编程』,专业于写这些底层知识,提升我们的内功,帅地期待你的关注,和我一起学习。 转载说明:未获得授权,禁止转载

    展开全文
  • 毕业以后,家中就已经为他们安排好了以后的人生走向:一稳定的工作,买房买车,后半生衣食无忧。 残酷的现实却是,我们大多数人都是普通人,甚至还在为温饱挣扎。每天披星戴月、早起晚归、白班晚班轮班倒,累...

    又是一年毕业季,翻看朋友圈,当年的同学现如今都已买车买房、结婚生子,而自己还在担心下个月的房租有没有着落。

    他们的大企业offer拿到手软,而自己还在担心会不会被公司裁员,能不能拿到心仪公司面试资格。

    眼看别人年薪百万,而自己还在浑浑噩噩过日子,每日漫无目的。

    当初都是一个班级里面的学生,每天一起上课下课,学着一样的知识,可是为什么毕业几年后差距却越来越大?

    这也是这次假期,我去见一些妹妹,大家问我的问题。

    其实差距一直存在,学校单一的评价体系难以体现

    毕业几年后再次参加同学聚会,看到曾经的学渣年入百万、混的风生水起,此时的你可能会心里一紧,忍不住疑惑:在大学时我们明明差不多,他学习甚至还没有我好,平时也没有什么突出表现,现在怎么混的比我这么好?

    每个人都是独立的个体,个体差异是一直存在的,彼此之间的差距也随之产生,甚至在刚出生的时候就已经拉开。只是国内大学把大家都编排到一个班级内,每天一起上课、吃饭,大家看起来几乎没有什么不同,让你产生了大家在同一起跑线的错觉。

    学校和社会是两个截然不同的环境,它们对于优秀的标准也各不相同。

    在学校中,大家仅仅是通过成绩的高低来评判一个学生优秀与否,甚至是奖学金评选、学生干部筛选、保研等,这种单一的评价模式其实掩盖了人与人之间的许多差距。

    但是出了校门,当你进入到社会中,从“学校人”的角色转换成“社会人”,同学之间的差异化就会逐渐显露出来。

    这时更加被看重的是你个人的综合素质,评判的标准也更加多元化。如果此时还刻意的和别人“攀比”在校成绩,只会显得可笑。

    成绩只能代表你在学校中的专业学习情况,并不能够代表你的综合实力一定强于别人。

    “出身背景、天赋努力、方向选择、沟通社交能力”等等,这些都是影响一个人未来发展高度的因素,也是同学之间会产生差距的原因。

    有的同学家庭背景强悍实力强大,有的同学善于处理人际关系,天生就是社交小能手,还有的同学在某方面有着惊人的天赋,在应试教育的背景之下,他们身上的优势得不到体现,一直被我们忽略。

    一旦出了校园,他们有了合适的机会后,这些一直被人忽视的优点便会凸显出来。

    大家在迈入大学前是不同的,出了校园后亦是如此,相同的只是大家都在同一所学校而已。

    有的人一出生就含着金汤匙,有的人却要靠政府救济来度日。在学校看似同一起点的人,其实他们的起跑线已经超过了我们的终点。

    他们从小家境优渥,接触到的教育资源也是顶配,家长为了给他们提供更好的教育,倾尽了所有的财力精力。在刚毕业以后,家中就已经为他们安排好了以后的人生走向:一份稳定的工作,买房买车,后半生衣食无忧。

    残酷的现实却是,我们大多数人都是普通人,甚至还在为温饱挣扎。每天披星戴月、早起晚归、白班晚班轮班倒,累了一天回到家只想躺平。每月工资仅够日常开销,背后哪有资源依靠来对未来高谈阔论呢?

    条条道路通罗马,有的人却一出生就在罗马。就好比北京朝阳的小学生,毕业旅行选择了去北极。

    家庭出身是我们无法选择的,我们永远都会和别人有差距。

    “最有勇气的,不是那些在一开始就够做到心无旁骛、一往无前的人,而是在看到了、意识到了横在面前的不可逾越的差距之后,还能够鼓起勇气去提升自己的人。”

    面对现状,唯一能做的,大概就是就是让现在的自己更努力,向前奔跑,争取给下一代更高的起点。

    选择比努力更重要

    一艘没有航行目标的船,任何方向的风都是逆风。一个人若是没有确定航行的目标,任何风向对他都不是顺风。

    未来职业的选择是我们在毕业后面对的人生中第一次重大选择,它与我们未来几十年的人生走向有着莫大关系。如果在一开始就选择了正确的轨道,那么很有可能让我们少奋斗不知多少年。

    职业方向的选择不仅影响着日后成长的路径,还决定着我们未来的发展。只有找到一个适合自己发展的道路,才能事半功倍。

    许多刚毕业的大学生对于未来的发展并没有详细的规划,不知道自己到底要做什么,在找工作的时候也是广撒网。

    也有的人在大学期间经常参加社会实践,凭自己丰富的经验成功进入大公司的核心岗位,轻轻松松月入几万+,还有的人频繁跳槽,在工作上没有明确目标规划,拿着微薄的工资混日子,丝毫看不到未来的希望。

    自己一直在原地打转,而别人却在自己详细精确的规划中稳步前进。就这样,几年过去了,几十年又过去了,同龄人之间的差距便会凸显出来、越来越大。

    这个社会的容错率越来越低,年轻人一旦行差踏错一步都有可能满盘皆输。在大学实习期间,

    你拥有足够多的试错资本,可以利用这份资本来判断这份工作是否适合你、要不要长期做下去。

    如果在毕业后再来试错,那么付出的成本要比之前多得多,甚至已经被同龄人远远甩在身后了。

    反观他人,一心一意做自己热爱、擅长的工作,就这样日复一日、年复一年专注于此,结识许多圈内人士,遇见了机遇并且成功抓住了机遇,自然而然地就提升了自身的竞争力。

    一个人的时间精力是极其有限的,在这有限的时间内做出一个正确的选择,才能事半功倍。

    世界上每个人都有自己的时区

    有人住高楼,有人在深沟,有人光万丈,有人一身锈。

    打开朋友圈,个个都比自己过得好,他们的生活总是那么光鲜亮丽,今天升职加薪,明天买房买车,而自己还不知道下个月的房租要怎么解决。

    “白天说着无所谓,晚上比得不想睡。”在看到自己与朋友、同学之间的差距后,我们便会忍不住拿来与自己的生活作比较,内心产生深深的自卑感和焦虑感。

    这种心理往往是“同辈压力”在作祟,一个劲地和别人比较,你只会越过越不好,陷入不断自我怀疑、自我否定的漩涡之中。

    必须要承认,人和人之间的出身、性格、机遇千差万别,自然就会产生差距,这是无可避免的。

    对于大多数人而言,普普通通平平淡淡的过完这一生才是常态。面对这些负面情绪,一定要及时处理,因为它既可以成为促使人不断前进的燃料,也能变为一剂情绪毒药。

    蔡康永曾说过:“别人的好,是会逼着我去察觉我的长处在哪里的。你会很笃定地知道,没错我自卑,但是自卑是我的燃料,会让我去学习别人怎么去达成他的目标,我要怎么达成我的目标,这叫做——做自己。”

    比较无处不在,同辈压力也无法避免,我们唯有摆正心态,既不对别人羡慕嫉妒恨,也不自怨自艾,与自己和解,跟随自己的内心。

    差距只是暂时的,即使输在了起跑线上,我们也可以实现“弯道超车”,把一手烂牌打成王炸。

    每个人的成长境遇不同,谁也不能规定我们必须要有同样优秀的成绩。

    我们要看到自己的优势,按照自己的节奏慢慢来,同样可以闪闪发光。

    “New York is 3 hours ahead of California,

    纽约时间比加州时间早三个小时,

    but it does not make California slow.

    但加州时间并没有变慢。

    Someone graduated at the age of 22,

    有人22岁就毕业了,

    but waited 5 years before securing a good job!

    但等了五年才找到好的工作!

    Someone became a CEO at 25,

    有人25岁就当上CEO,

    and died at 50.

    却在50岁去世。

    While another became a CEO at 50,

    也有人迟到50岁才当上CEO,

    and lived to 90 years.

    然后活到90岁。

    Someone is still single,

    有人依然单身,

    while someone else got married.

    同时也有人已婚。

    Obama retires at 55,

    奥巴马55岁就退休,

    but Trump starts at 70.

    川普70岁才开始当总统。

    Absolutely everyone in this world works based on their Time Zone.

    世上每个人本来就有自己的发展时区。

    People around you might seem to go ahead of you,

    身边有些人看似走在你前面,

    some might seem to be behind you.

    也有人看似走在你后面。

    But everyone is running their own RACE, in their own TIME.

    但其实每个人在自己的时区有自己的步程。

    Don’t envy them or mock them.

    不用嫉妒或嘲笑他们。

    They are in their TIME ZONE, and you are in yours!

    他们都在自己的时区里,你也是!

    Life is about waiting for the right moment to act.

    生命就是等待正确的行动时机。

    So, RELAX.

    所以,放轻松。

    You’re not LATE.

    你没有落后。

    You’re not EARLY.

    你没有领先。

    You are very much ON TIME, and in your TIME ZONE Destiny set up for you.

    在命运为你安排的属于自己的时区里,一切都准时。”

    展开全文
  • 工作效率提升10倍 图解 | 后台开发必备技能,进程线程协程的这几个特点你不得不知 非常详细的 Linux C/C++ 学习路线总结,人在鹅厂拿offer 我用数据分析了一线城市1000多岗位招聘需求,告诉你如何科学找工作 ...
  • 冒着被封杀的危险,我解读了这大纲
  • 很多原理也不是很清楚,所以最近是买了个视频,静下心来从零学习了下 Git,不过 Git 用来用去其实也就那几个命令,今天这篇文章,我把那些命令都分类总结了一下(当然,是参考别人的分类的),这些总结部分来自于...
  • 另一方面,上相关业务部门,你至少不是一个人在战斗。 产品功能描述: 对当前功能进行概述,所设计的产品或功能的功能模块,新增、完善、优化那些产品功能; 产品前景描述: 本产品或功能,...
  • 三流大学和一流大学学生的简历有什么区别?

    万次阅读 多人点赞 2020-09-23 09:17:06
    差距不是一般的
  • 我的2018:用一年的时间写一年终总结!

    万次阅读 多人点赞 2018-12-30 23:01:37
    俞敏洪在公号里写到"日日精进,人一辈子下的距离,哪怕一天只差一步,一生来看,比你走的快的人,就已经到了望尘莫及的程度。" 没有捷径,捷径是迷路最快的方法 。 曾经有一个毕业的学生每天将罗胖的得到60s...
  • 痴迷技术,青春无悔,我那不务正业的大学时光!

    千次阅读 多人点赞 2021-05-31 17:24:41
    下火车,合肥湿热的天气像进入了一个蒸笼,浑身湿透,对于一个从小在西北干燥气候中长大的孩子,这种气候不仅没有不适应,竟还觉得有几分舒服。 到了学校门口,老远就有学长迎接,学长抢过行李箱带我们去办理...
  • 大学毕业后拉开差距的真正原因

    千次阅读 多人点赞 2012-04-08 11:31:03
    有人工作,有人继续上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!看完之后有种...
  • 【经验分享】大学四年,自学编程要不要接外包?

    千次阅读 多人点赞 2019-11-04 08:32:15
    什么所谓的模块化分离、代码抽离、注释七八糟,不用这些,在网上扒拉下框架改就完事了,还是那句话,部分你不是在开发,而是根据客户需求在改别人写好的框架。 正是因为这些外包,有些框架的改动不得不逼着你...
  • 本来已经不想写了,因为年纪越,越懒得动笔,不过看到各种各样的帖子之后,很想跟所谓的新人和非新人,写点东西,算是共勉吧。 对于参加工作的人,我最想说的一个词是煎熬,如果你有上进心或者有责任心的话,这...
  • 毕业后的五年拉开大家距离的原因

    千次阅读 2012-10-10 14:55:37
    有人工作,有人继续上学,大家千万不要错过这篇文章,能看到这篇文章也是一种幸运,真的受益匪浅,对我有很启迪,这篇文章将会改变我的一生,真的太好了,希望与有缘人分享,也希望对有缘人有所帮助!看完之后有种...
  • 菜鸟学习黑帽子初级教程-----强烈推荐(看完后成黑客
  • 本人18年毕业于一家普通二本,考研裂开了且没有实习经验...开始准备地时候其实并不轻松,感觉自己的技术层面还停留在3年前毕业的时候,对于当前互联网企业的技术栈一概不通,每天上班在学习,下班也在学习,不断地
  • 最近鹿哥发现很多小伙伴在自学方法或者编程习惯和鹿哥当年自学编程的时候遇到的一些坑感觉就像是一个模子里刻出来的。所以今天忙里偷闲抽空和大家伙多唠几句,顺便推荐一篇国外编程牛写给编程新手的文章。 今天...
  • 完整App运营推广计划方案

    万次阅读 2018-01-09 09:26:06
    完整App运营推广计划方案 一、App运营推广概念 引用百度百科的概念:对运营过程的计划、组织、实施和控制,是与产品生产和服务创造密切相关的各项管理工作的总称。从另一个角度来讲,运营管理也可以指为对...
  • 我并不是互联网从业者,是...第一工作就是在一个电子工厂上班,广东某个工业镇,第一工作的工资4000,住宿舍,住的是五张上下铺铁架床,里面什么设备也没有的宿舍,吃的厂里的,免费吃三餐,上班八点到中午十二点,
  • 震撼转帖,不管是真实与否,仅献给那些毕业自己拿薪水还问父母要“生活费”的学生们。值得反省——艰苦奋斗、勤俭节约、不可忘本!——我写在最前面 希望大家能认真的看完这个文章,这是我的朋友介绍给我的,看...
  •  话又说回来,文章开始,作为一个去面试技术岗位的人,写 “自己大学的学习多么的优秀,成绩多么的好,参加过什么社团,当了什么部长之类的” ,这些有用吗?不能说完全没有用,但部分的HR连看都不会看,因为那...
  • 大学计算机系最努力的同学都是如何学习的?

    千次阅读 多人点赞 2021-06-23 17:47:54
    这里并不是鼓励大家去违约,只是说在有更好的选择或者明显感觉到现在的岗位不适合自己的情况下,不要惧怕去违约,有些同学可能害怕违约了企业会黑自己,实际上这种可能性很低,而且并没有实质的影响。 hr 经历的...
  • 这里我推荐几本不错的经典书,其中有一本邹欣老师的书,他出任 CSDN 副总裁,希望 CSDN 能在他的入驻后变得更好一些。他这本书的书名叫做《构建之法》,我看过,还是很不错的。 另外还有两本必读,就是《人月神话...
  • 马云曾经在给新员工的信中写到“阿里不会承诺你发财、升官,来公司不到一年的人,也千万别给我写战略报告,千万别瞎提阿里发展计。。。”当你进入社会的这几年,是你继续能力最好的几年,在平日的工作中多做...
  • 毕业5年,从月薪1900到月薪50000的心路历程 2015-08-23 知乎Chazy 程序猿 来自 知乎,作者:Chazy Cheung ... ...“ 提问 为什么毕业三年之后大家的差距的这么? ”   最佳:《...
  • 那天,我回来的时候,有点晚,楼道里的灯已经都开始亮着了,经过隔壁门口的时候,看到他们门开着,屋里照样还是黑黢黢的,男的蹲在门口口的扒着面条,吃的很香。我问了一句:灯坏了?他先是迟疑了一下,然后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,313
精华内容 10,125
关键字:

刚拉的大份