西南IT社区
    • 注册
    • 登录
    • 搜索
    • 主页
    • 问答
    • 话题
    • 热门
    • 圈子
    • 工作机会
    • 活动
    • 项目
    1. 主页
    2. mangzei55
    M
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 7
    • 帖子 9
    • 最佳 0
    • 有争议的 0
    • 群组 0

    mangzei55

    @mangzei55

    0
    声望
    1
    资料浏览
    9
    帖子
    0
    粉丝
    0
    关注
    注册时间 最后登录

    mangzei55 取消关注 关注

    mangzei55 发布的最新帖子

    • Scala队列系统Kestrel

      Kestrel 是 Scala 的一个非常小的队列系统,基于 starling。 kestrel : 就是Web服务器。默认包括在 ASP.NET Core 项目模板中。

      Kestrel是一个scala写的twitter开源的消息中间件,特点是高性能、小巧(2K行代码)、持久存储(记录日志到journal)并且可靠(支持可靠获取)。Kestrel的前身是Ruby写的Starling项目,后来twitter的开发人员尝试用scala重新实现。它的代码非常简洁并且优雅。

      Kestrel的特点:快——它在 JVM 上运行,能够高效的利用 Java 平台的性能。小——目前大约有 2500 行的 Scala。

      经久耐用——队列能够快速存储到内存中,但日志记录存储到磁盘上,以便服务器能够关闭或移动。而不丢失任何数据。可靠——客户端能够“暂时(tentatively)”从队列中提取项目,如果客户端确认与该项目失联,则该项目会被转交到另一个客户端。这样子即使是崩溃,也不会导致信息丢失。

      默认情况下,ASP.NET Core 项目模板使用 Kestrel。 在 Program.cs 中,模板代码调用 CreateDefaultBuilder,后者在后台调用 UseKestrel。

      Kestrel采用的协议是memcached的文本协议,但是并不完全支持所有memcached协议,也不是完全兼容现有协议。标准的协议它仅支持GET、SET、FLUSH_ALL、STATS。

      项目地址: https://github.com/twitter-archive/kestrel

      替代文字

      发布在 开源推荐 scala
      M
      mangzei55
    • 免费开源的企业移动平台--WorkPlusLite

      WorkPlus Lite基于WorkPlus孵化而来,它是一款免费开源的企业移动平台。为了贴合企业移动平台需求,WorkPlus Lite提供了稳定的移动基座+强大的业务扩展两大核心要素。

      WorkPlus Lite是一个移动基础基座,它拥有稳定的即时通讯,通讯录,广告页,媒体中心,推送,语音视频等移动基础功能。

      WorkPlus Lite更是一个业务扩展平台,基于您自己的企业需求,你可以选择Api接入,服务号,应用或工作台多种模式进行业务扩展及开发,轻松将你的企业业务集成到平台中。

      孵化出免费开源的WorkPlus lite版本,主要面向众多开发者,开发团队以及中小型企业。企业移动平台市场正形成二级分化的趋势。以钉钉,企业微信为代表的BAT互联大型公司,通过把TO C的互联网模式带到TO B中小型企业市场,以免费的方式提供服务,迅速满足一大批对定制需求不高的企业。而以WorkPlus为代表的恒拓高科等公司,则一直专注于通过私有化的模式为超大型企业服务,为众多知名的超大型企业构建属于它们自己的企业移动平台,在业内深受好评。

      然而,在此之外,仍有一部分群体的需求无法得到满足,一方面它们不满足于钉钉,企业微信这样的互联网移动平台,期望有自己的移动App或平台,另一方面WorkPlus强大而全面的功能对他们而言又显得有点沉重。

      为满足这部分群体的需求,在借助我们为超大型企业服务多年的经验与强大的WorkPlus能力上,孵化WorkPlus Lite版本并开源免费出来。为广大开发者与中小企业服务,让他们能快速的构建属于自己的移动平台。

      WorkPlus Lite有着稳定的基础能力,这些能力对于大多数企业移动平台来说,都是不可或缺的能力。基于WorkPlus Lite,您无须再次构建与开发这些能力

      全流程移动会务能力的支持。支持即时呼与视频会议两种方式,轻松构建企业远程沟通与交流。

      WorkPlus Lite更是一个开发平台,我们提供了强大的扩展能力,这些扩展能力是为了让企业能高效,快速,低成本将自己的业务构建到移动平台上。

      项目地址: https://www.workplus.io/

      替代文字

      发布在 开源推荐
      M
      mangzei55
    • MySQL分支MyRocks

      MyRocks:RocksDB是facebook基于LevelDB实现的,目前为facebook内部大量业务提供服务。经过facebook大量工作,将RocksDB为MySQL的一个存储引擎移植到MySQL,称之为MyRocks。 经过两年的发展,MyRocks已经比较成熟(RC阶段),现已进入了facebook MySQL的主分支了。MyRocks是开源的,参见git 。

      RocksDB与innodb的比较:innodb空间浪费, B tree分裂导致page内有较多空闲,page利用率不高。innodb现有的压缩效率也不高,压缩以block为单位,也会造成浪费。

      写入放大:innodb 更新以页为单位,最坏的情况更新N行会更新N个页。RocksDB append only方式。另外,innodb开启double write也会增加写入。RocksDB对齐开销小:SST file (默认2MB)需要对齐,但远大于4k, RocksDB_block_size(默认4k) 不需要对齐,因此对齐浪费空间较少。

      RocksDB索引前缀相同值压缩存储:RocksDB占总数据量90%的最底层数据,行内不需要存储系统列seqid。(innodb聚簇索引列包含trxid,roll_ptr等信息。

      MyRocks也是基于行锁,锁信息都保存在内存中。MyRocks也支持MVCC,MVCC通过快照的方式实现,类似于PostgreSQL。MyRocks目前只支持两种隔离级别,RC和RR。RR表现和innodb并不一样,RocksDB 的快照不是在事务开始的时候建立,而是延迟到第一次读的时候建立.

      项目地址: http://myrocks.io/

      替代文字

      发布在 开源推荐 myrocks
      M
      mangzei55
    • RE: js 如何检测某个元素滚动到屏幕中间

      第一步 获取 到当前元素的中心点

      // 获取container容器
      var $con = $('#container')
      $(window).on('scroll', function(){
      // 计算出容器的中心值
      var center = $con.offset().top - (window.innerHeight - $con.height()) / 2
         if($(window).scrollTop() >= center) {
           // 滚动到中间
          // todo
         }
      })
      
      发布在 技术答疑
      M
      mangzei55
    • RE: 移动端部分手机video不自动播放的问题

      有些安卓机,用 touchstart 和 touchend 来触发video是播放不了的,可能是手机底层对手势进行了识别
      建议你做一个降级方案,当视频无法播放的时候,把视频替换成 gif, 这样就可以解决大部分机型播放不出来的问题了!并且不影响能播放视频的手机!

      以下是伪代码,你可以参考一下

      // 降级 GIF 播放
        var demotionGif = function() {
          var u = navigator.userAgent;
          var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1
          if (!isAndroid) return
          // 假设你的video里面有一个 data-gif 属性
          $('[data-gif]').each(function() {
            $(this).after('<img src=' + $(this).data('gif') + ' class="full">')
            $(this).remove()
          })
        }
        // 亮点视频移动端自动播放
        $(window).on('load', function() {
          var playing = false
          var touchcount = 0
          $('body').on('touchstart', function() {
            $('.highlights video').each(function() {
              if (this.currentTime <= 0) this.play()
            })
          })
          // 兼容部分安卓机无法播放视频的问题
          $('body').on('touchend', function() {
            touchcount += 1
            // 前2次触摸忽略
            if (touchcount < 2 && touchcount > 5) return
            setTimeout(function() {
              $('.highlights video').each(function() {
                if (this.currentTime > 0) playing = true
              })
              if (!playing) demotionGif()
            }, 3000)
          })
        })
      
      发布在 技术答疑
      M
      mangzei55
    • 分布式深度学习CaffeOnSpark

      许多现有的DL框架需要一个分离的集群进行深度学习,而一个典型的机器学习管道需要创建一个复杂的程序。分离的集群需要大型的数据集在它们之间进行传输,从而系统的复杂性和端到端学习的延迟不请自来。

      雅虎认为,深度学习应该与现有的支持特征工程和传统(非深度)机器学习的数据处理管道在同一个集群中,创建CaffeOnSpark意在使得深度学习训练和测试能被嵌入到Spark应用程序中。

      CaffeOnSpark:API&配置和CLI。CaffeOnSpark被设计成为一个Spark深度学习包。Spark MLlib支持各种非深度学习算法用于分类、回归、聚类、推荐等,但目前缺乏深度学习这一关键能力,而CaffeOnSpark旨在填补这一空白。CaffeOnSpark API支持dataframes,以便易于连接准备使用Spark应用程序的训练数据集,以及提取模型的预测或中间层的特征,用于MLLib或SQL数据分析。

      Spark executor中,Caffe引擎在GPU设备或CPU设备上,通过调用一个细颗粒内存管理的JNI层。不同于传统的Spark应用,CaffeOnSpark executors之间通过MPI allreduce style接口通信,通过TCP/以太网或者RDMA/Infiniband。这个Spark+MPI架构使得CaffeOnSpark能够实现和专用深度学习集群相似的性能。

      许多深度学习工作是长期运行的,处理潜在的系统故障很重要。CaffeOnSpark支持定期快照训练状态,因此job出现故障后能够恢复到之前的状态。

      雅虎已经在多个项目中应用CaffeOnSpark,如Flickr小组通过在Hadoop集群上用CaffeOnSpark训练数百万张照片,显著地改进图像识别精度。现在深度学习研究者可以在一个AWS EC2云或自建的Spark集群上进行测试CaffeOnSpark。

      项目地址: https://github.com/yahoo/CaffeOnSpark

      替代文字

      发布在 开源推荐 caffeonspark
      M
      mangzei55
    • 基于JSON-API​的Web服务Elide

      Elide是一个用JPA注释模型轻松搭建JSON API web服务的Java library。Elide可以迅速搭建和部署高性能web服务,将数据模型以服务的形式开放访问,JSON API CRUD操作,用以访问JPA实体对象。任何实体只需要添加注释就能以JSON API的形式开放。

      PATCH扩展 - Elide支持PATCH扩展功能,仅通过一个访问请求就能完成多项建造,修改,和删除实体的任务。

      原子请求 - 包括PATCH扩展在内的所有请求皆为原子请求,可以和数据库事务的原子性完全兼容。高安全性 - 所有实体操作和实体内部数据的访问具备权限配置,让您的数据安全开放。灵活日志 - 所有访问日志可以随意配置。

      高扩展性 - Elide支持所有CRUD实体访问类型的业务需求,任何数据库只需添加一个JPA对接类或者实现一个自定义的数据存储(datastore)就可以变成一个支持JSON API的实体后台。

      安全测试 - Elide包含一个安全测试框架,可以寻找和发现API安全漏洞。客户端API - Elide还与一个JavaScript 客户端 library 协同开发。Elide兼容所有JSON AP 客户端 library。

      项目地址: https://github.com/yahoo/elide

      替代文字

      发布在 开源推荐 elide
      M
      mangzei55
    • ElasticJob-分布式作业调度解决方案

      ElasticJob 是面向互联网生态和海量任务的分布式调度解决方案,由两个相互独立的子项目 ElasticJob-Lite 和 ElasticJob-Cloud 组成。

      ElasticJob 通过弹性调度、资源管控、以及作业治理的功能,打造一个适用于互联网场景的分布式调度解决方案,并通过开放的架构设计,提供多元化的作业生态。 它的各个产品使用统一的作业 API,开发者仅需一次开发,即可随意部署。

      使用 ElasticJob 能够让开发工程师不再担心任务的线性吞吐量提升等非功能需求,使他们能够更加专注于面向业务编码设计; 同时,它也能够解放运维工程师,使他们不必再担心任务的可用性和相关管理需求,只通过轻松的增加服务节点即可达到自动化运维的目的。

      ElasticJob支持任务在分布式场景下的分片和高可用,能够水平扩展任务的吞吐量和执行效率,任务处理能力随资源配备弹性伸缩。能够在适合的时间将适合的资源分配给任务并使其生效,相同任务聚合至相同的执行器统一处理,动态调配追加资源至新分配的任务。还可以进行失效转移,错过作业重新执行,自诊断修复。

      项目地址 https://shardingsphere.apache.org/elasticjob/

      fd824a13-4d46-484e-839d-4446ad7d4f6b-image.png

      发布在 开源推荐
      M
      mangzei55
    • worker和cpu的关系

      worker 是多线程,使用多核cpu么?

      发布在 技术答疑
      M
      mangzei55