yu3peng / blog-comments

0 stars 0 forks source link

点点和滴滴 — 山水过处 #49

Open yu3peng opened 4 years ago

yu3peng commented 4 years ago

https://www.y2p.cc/note/Note/

yu3peng commented 4 years ago

cuda容器化

yu3peng commented 4 years ago

tencent gpu-manager

yu3peng commented 4 years ago

tencent vcuda-controller

vcuda-controller paper

vcuda-controller paper note

yu3peng commented 4 years ago

IBN: Intent-Based Network

yu3peng commented 4 years ago

CUDA编程入门极简教程

yu3peng commented 4 years ago

阿里云容器服务Kubernetes 基于GPU指标自动伸缩

yu3peng commented 4 years ago

kubernetes csi 插件开发简介

yu3peng commented 4 years ago

阿里云的这群疯子

  2013 年 6 月底,5K 进入了最后的稳定性测试。

  怎么测试系统的稳定性呢?之前带领“八十勇士”围攻后羿的振飞,提出了一个真·钢铁直男的测试办法:拔电源。

  他的理由是:“如果这种突然暴力断电都能撑得住,阿里云还有什么不稳定的呢?”

  拉电的同学反复问了三遍:拉吗?拉吗?拉吗?最后才颤抖着双手拉下了电源。

  这一刻,时间停止了,只有机器重新启动的声音。

  四个小时以后,当系统完全恢复运行的时候,很多阿里云同事的背后,已经被冷汗打湿了。经过系统自检,一切正常。虽然还有十台服务器光荣就义。但是,数据毫发无损!
yu3peng commented 4 years ago

k8s 与 Keystone 的集成

需要满足两点:

  1. kubectl 或对 api server 请求中能够提供openstack 的用户信息(比如 token);
  2. k8s api server 要能够对 token 向 keystone 请求认证,或者用户在 keystone 中信息,进而对用户操作进行鉴权。

OpenStack + K8S 环境集成测试

yu3peng commented 4 years ago

KubeOperator 是一个开源项目,通过 Web UI 在 VMware、OpenStack 和物理机上规划、部署和运营生产级别的 Kubernetes 集群。支持内网离线环境、支持 GPU、内置应用商店,已通过 CNCF 的 Kubernetes 软件一致性认证。

yu3peng commented 4 years ago

github emoji

yu3peng commented 4 years ago

chrome 看板

yu3peng commented 4 years ago

kubeflow operator

yu3peng commented 4 years ago

OIN(Open Invention Network)许可免费向所有同意不向Linux系统行使其专利权的会员开放。

yu3peng commented 4 years ago

对于算法工程师,可选用其他经过进一步包装的工具,如阿里云开源出来的arena,屏蔽了k8s和kubeflow层面的细节,适合算法工程师使用。

yu3peng commented 4 years ago

Cluster Autoscaler:集群自动扩缩容

在Kubernetes中关于弹性伸缩主要有三种格式:

CA目前支持的策略为:

yu3peng commented 4 years ago

深度学习统一训练推理三层框架

mindspore开源地址

yu3peng commented 4 years ago

浅谈 Kubernetes Scheduling-Framework 插件的实现

yu3peng commented 4 years ago

网络切片标准分析与进展现状

yu3peng commented 4 years ago

平台是指连接两个以上的特定群体,为他们提供互动交流机制,满足所有群体的需求,并从中赢利的商业模式。

面向 Kubernetes 编程:Kubernetes 是下一代操作系统

yu3peng commented 4 years ago

SASE:Secure Access Service Edge

yu3peng commented 4 years ago

升级 Golang 版本

yu3peng commented 4 years ago

GKE CIS Kubernetews Benchmark

yu3peng commented 4 years ago

Kubernetes 多集群管理 Kubefed(Federation v2)

yu3peng commented 4 years ago

KubeFed: Kubernetes Federation v2 详解

yu3peng commented 4 years ago

Open-RAN MIMO GaN

yu3peng commented 4 years ago

awk、sed 等工具,在 windows 下可通过安装 git for windows 获得

yu3peng commented 4 years ago

https://research.google/pubs/

yu3peng commented 4 years ago

浪潮AI服务器NF5468M5 人工智能高性能计算服务器

浪潮:智能时代IT基础架构创新

yu3peng commented 3 years ago

超详细的NetData-轻量的性能监控工具安装教程

yu3peng commented 11 months ago
<!DOCTYPE html>
<html>

<head>
  <title>图片播放器</title>
  <style>
    body {
      display: flex;
      flex-direction: row;
      justify-content: space-between;
      align-items: center;
      height: 100vh;
      margin: 0;
      padding: 0;
      overflow: hidden;
    }

    #sidebar {
      width: 20%;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      justify-content: flex-start;
      padding: 20px;
      background-color: #f4f4f4;
      transition: width 0.3s ease;
    }

    #sidebar.hidden {
      width: 0;
      overflow: hidden;
    }

    #sidebar.hidden * {
      display: none;
    }

    h1 {
      margin-top: 0;
      margin-bottom: 20px;
    }

    input[type="file"] {
      margin-bottom: 20px;
    }

    #image-container {
      width: 80%;
      height: 100%;
      display: flex;
      justify-content: center;
      align-items: center;
      cursor: pointer;
      position: relative; /* 添加相对定位 */
    }

    img {
      max-width: 100%;
      max-height: 100%;
      display: none;
      box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    }

    #buttons-container {
      position: absolute;
      bottom: 20px;
      left: 20px;
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      transition: opacity 0.3s ease;
    }

    #buttons-container.hidden {
      opacity: 0;
    }

    button {
      margin-right: 10px;
      margin-bottom: 10px;
    }
  </style>
</head>

<body>
  <div id="sidebar">
    <h1>图片播放器</h1>
    <input type="file" id="folder-input" webkitdirectory directory multiple>
  </div>
  <div id="image-container"></div>
  <div id="buttons-container">
    <button id="btn3" data-interval="3000">3秒</button>
    <button id="btn5" data-interval="5000">5秒</button>
    <button id="btn10" data-interval="10000">10秒</button>
    <button id="btn30" data-interval="30000">30秒</button>
    <button id="btn60" data-interval="60000">60秒</button>
  </div>

  <script>
    var folderInput = document.getElementById('folder-input');
    var sidebar = document.getElementById('sidebar');
    var imageContainer = document.getElementById('image-container');
    var buttonsContainer = document.getElementById('buttons-container');
    var images = [];
    var slideshowInterval = 3000; // 默认的显示时间间隔为3秒
    var slideshowTimer;
    var isPaused = false;

    folderInput.addEventListener('change', function (e) {
      var files = e.target.files;
      Array.prototype.forEach.call(files, function (file) {
        if (file.type.indexOf('image') !== -1) {
          var reader = new FileReader();
          reader.onload = function (event) {
            var image = new Image();
            image.src = event.target.result;
            images.push(image);
          };
          reader.readAsDataURL(file);
        }
      });
      playSlideshow();
    });

    function playSlideshow() {
      var currentImageIndex = 0;

      function changeImage() {
        var currentImage = images[currentImageIndex];
        if (currentImage) {
          imageContainer.innerHTML = '';
          imageContainer.appendChild(currentImage);
          currentImage.style.display = 'block';
          currentImageIndex = (currentImageIndex + 1) % images.length;
        }
      }

      function startSlideshow() {
        stopSlideshow();
        changeImage();
        slideshowTimer = setInterval(changeImage, slideshowInterval);
      }

      function stopSlideshow() {
        clearInterval(slideshowTimer);
      }

      function toggleSlideshow() {
        if (isPaused) {
          startSlideshow();
          isPaused = false;
        } else {
          stopSlideshow();
          isPaused = true;
        }
      }

      startSlideshow();

      // 优化按钮点击事件的代码
      document.getElementById('btn3').addEventListener('click', function () {
        slideshowInterval = parseInt(this.dataset.interval);
        startSlideshow();
      });

      document.getElementById('btn5').addEventListener('click', function () {
        slideshowInterval = parseInt(this.dataset.interval);
        startSlideshow();
      });

      document.getElementById('btn10').addEventListener('click', function () {
        slideshowInterval = parseInt(this.dataset.interval);
        startSlideshow();
      });

      document.getElementById('btn30').addEventListener('click', function () {
        slideshowInterval = parseInt(this.dataset.interval);
        startSlideshow();
      });

      document.getElementById('btn60').addEventListener('click', function () {
        slideshowInterval = parseInt(this.dataset.interval);
        startSlideshow();
      });

      imageContainer.addEventListener('click', toggleSlideshow);

      // 优化鼠标移入和移出事件的代码
      imageContainer.addEventListener('mouseenter', function () {
        sidebar.classList.add('hidden');
        buttonsContainer.classList.add('hidden');
      });

      imageContainer.addEventListener('mouseleave', function () {
        sidebar.classList.remove('hidden');
        buttonsContainer.classList.remove('hidden');
      });
    }
  </script>
</body>

</html>