基于JVM之上的并发编程模式剖析 · Issue #25 · aCoder2013/blog · GitHub



基于JVM之上的并发编程模式剖析 · Issue #25 · aCoder2013/blog · GitHub

Kotlin目前已经支持了Coroutine,Java也有类似的解决方案,现在也已经有了提案给Java也增加Coroutine的机制,可能很多人有一个误解,coroutine并不是说有更高的性能,而是说让我们可以像调用其他方法一样去调用并发/阻塞的方法,而调度器则向你屏蔽了底层的细节。例如一个GetXXX方法,其内部设计到了网络调用,那么我们可以中断在这里并让出CPU资源,从而使得其他coroutine可以运行,具体实现机制可以参考另一篇博客.


Read full article from 基于JVM之上的并发编程模式剖析 · Issue #25 · aCoder2013/blog · GitHub


下一代分布式消息队列Apache Pulsar从入门到实现(一) · Issue #23 · aCoder2013/blog · GitHub



下一代分布式消息队列Apache Pulsar从入门到实现(一) · Issue #23 · aCoder2013/blog · GitHub

Apache Pulsar是一个企业级的分布式消息系统,最初由Yahoo开发并在2016年开源,目前正在Apache基金会下孵化。Plusar已经在Yahoo的生产环境使用了三年多,主要服务于Mail、Finance、Sports、 Flickr、 the Gemini Ads platform、 Sherpa以及Yahoo的KV存储。
Pulsar之所以能够称为下一代消息队列,主要是因为以下特性:

  1. 线性扩展。能够丝滑的扩容到成百上千个节点(Kafka扩容需要占用很多系统资源在节点间拷贝数据,而Plusar完全不用)
  2. 高吞吐。已经在Yahoo的生产环境中经受了考验,每秒数百万消息
  3. 低延迟。在大规模的消息量下依然能够保持低延迟(< 5ms)
  4. 持久化机制。Plusar的持久化机制构建在Apache BookKeeper之上,提供了写与读之前的IO隔离
  5. 基于地理位置的复制。Plusar将多地域/可用区的复制作为首要特性支持。用户只需配置好可用区,消息就会被源源不断的复制到其他可用区。当某一个可用区挂掉或者发生网络分区,plusar会在之后不断的重试。
  6. 部署方式的多样化。既可以运行在裸机,也支持目前例如Docker、K8S的一些容器化方案以及不同的云厂商,同时在本地开发时也只需要一行命令即可启动整个环境。
  7. Topic支持多种消费模式:exclusive、shared、failover


Read full article from 下一代分布式消息队列Apache Pulsar从入门到实现(一) · Issue #23 · aCoder2013/blog · GitHub


Do Experienced Programmers Use Google Frequently? · CodeAhoy



Do Experienced Programmers Use Google Frequently? · CodeAhoy

"Do experienced programmers use Google frequently?"

The resounding answer is YES, experienced (and good) programmers use Google… a lot. In fact, one might argue they use it more than the beginners. Using Google doesn't make them bad programmers or imply that they cannot code without Google. In fact, truth is quite the opposite: Google is an essential part of their software development toolkit and they know when and how to use it.


Read full article from Do Experienced Programmers Use Google Frequently? · CodeAhoy


Yak Shaving - the Less You Do the Better · CodeAhoy



Yak Shaving - the Less You Do the Better · CodeAhoy

Yak shaving is what you are doing when you're doing some stupid, fiddly little task that bears no obvious relationship to what you're supposed to be working on, but yet a chain of twelve causal relations links what you're doing to the original meta-task.


Read full article from Yak Shaving - the Less You Do the Better · CodeAhoy


编程小梦|Google Mesa 论文解读



编程小梦|Google Mesa 论文解读

  1. Atomic Updates.
  2. Consistency and Correctness.
  3. Availability: 永不停服,无论是预期内还是预期外的,并可以接受一个数据中心完全down掉。
  4. Near Real-Time Update Throughput: 近实时的高吞吐更新。数据摄入时不仅支持追加新数据也支持更新已有数据。
  5. Query Performance: 同时支持数百毫秒低延迟的点查询和高吞吐的批量查询。
  6. Scalability: 数据摄入和查询性能可以随集群规模线性增长。
  7. Online Data and Metadata Transformation:在线的表Schema变更,表的Schema变更不会影响数据的摄入和查询。


Read full article from 编程小梦|Google Mesa 论文解读


Ace the coding interview, every time – Nick Ciubotariu – Medium



Ace the coding interview, every time – Nick Ciubotariu – Medium

Have you ever failed a code-intensive technical interview? I have, and can 100% relate. It was one of the most embarrassing moments of my professional career. It happened once, because I got complacent, didn't put in the prep time, and took the fact that my professional experience and ability to code would carry me through.

What a colossal mistake that was. I remember struggling in front of the white board for two hours and walking out of the interview dejected, knowing I missed out on a great opportunity due to a false sense of security and arrogance, and lack of preparation. I swore I would never let it happen again, and it hasn't.


Read full article from Ace the coding interview, every time – Nick Ciubotariu – Medium


架构简明指南 - 后端技术杂谈 | 飒然Hang



架构简明指南 - 后端技术杂谈 | 飒然Hang

  • 避免过度设计:最简单的方案最容易实现和维护,也可以避免浪费资源。但方案中需要包括扩展。
  • 冗余设计:对服务、数据库的做结点冗余,保证服务的高可用。通过数据库主从模式、应用集群来实现。
  • 多活数据中心:为了容灾,从根本上保障应用的高可用性。需要构建多活的数据中心,以防止一个数据中心由于不可控因素出现故障后,引起整个系统的不可用。
  • 无状态设计:API、接口等的设计不能有前后依赖关系,一个资源不受其他资源改动的影响。无状态的系统才能更好地进行扩展。如果非得有状态,则要么客户端管理状态,要么服务端用分布式缓存管理状态。
  • 可回滚:对于任何业务尤其是关键业务,都具有恢复机制。可以使用基于日志的WAL、基于事件的Event sourcing等来实现可回滚。
  • 可禁用/自我保护:具有限流机制,当上游的流量超过自身的负载能力时,能够拒绝溢出的请求。可以通过手动开关或者自动开关(监测异常流量行为),在应用前端挡住流量。
  • 问题可追踪:当系统出现问题时,能够定位请求的轨迹、每一步的请求信息等。分布式链路追踪系统即解决的此方面的问题。
  • 可监控:可监控是保障系统能够稳定运行的关键。包括对业务逻辑的监控、应用进程的监控以及应用依赖的CPU、硬盘等系统资源的监控。每一个系统都需要做好这几个层面的监控。
  • 故障隔离:将系统依赖的资源(线程、CPU)和服务隔离开来能够使得某个服务的故障不会影响其他服务的调用。通过线程池或者分散部署结点可以对故障进行隔离。
  • 成熟可控的技术选型:使用市面上主流、成熟、文档、支持资源多的技术,选择合适的而非最火的技术实现系统。
  • 梯级存储:内存->SSD硬盘->传统硬盘->磁带,可以根据数据的重要性和生命周期对数据进行分级存储。
  • 缓存设计:隔离请求与后端逻辑、存储,是就近原则的一种机制。包括客户端缓存(预先下发资源)、Nginx缓存、本地缓存以及分布式缓存。
  • 异步设计:对于调用方不关注结果或者允许结果延时返回的接口,采用队列进行异步响应能够很大程度提高系统性能;调用其他服务的时候不去等待服务方返回结果直接返回,同样能够提升系统响应性能。异步队列也是解决分布式事务的常用手段。
  • 前瞻性设计:根据行业经验和预判,提前把可扩展性、后向兼容性设计好。
  • 水平扩展:相比起垂直扩展,能够通过堆机器解决问题是最优先考虑的问题,系统的负载能力也才能接近无限扩展。此外,基于云计算技术根据系统的负载自动调整容量能够在节省成本的同时保证服务的可用性。
  • 小步构建和发布:快速迭代项目,快速试错。不能有跨度时间过长的项目规划。
  • 自动化:打包、测试的自动化称为持续集成,部署的自动化称为持续部署。自动化机制是快速迭代和试错的基础保证。


Read full article from 架构简明指南 - 后端技术杂谈 | 飒然Hang


想要入坑机器学习?这是MIT在读博士的AI心得



想要入坑机器学习?这是MIT在读博士的AI心得

随着人工智能技术的火热,越来越多的年轻学者正准备投身其中,开启自己的研究之路。和所有其他学科一样,人工智能领域的新人总会遇到各种各样的难题,其中不仅有研究上的,也有生活方面的。MIT EECS 在读博士、前 Vicarious AI 员工 Tom Silver 近日的一篇文章或许对你有所帮助。


我的一个朋友最近正要开始人工智能的研究,他问及我在 AI 领域近两年的研究中有哪些经验教训。本文就将介绍这两年来我所学到的经验。其内容涵盖日常生活到 AI 领域中的一些小技巧,希望这可以给你带来一些启发。


Read full article from 想要入坑机器学习?这是MIT在读博士的AI心得


技术琐话2017-11-26 - 后端技术杂谈 | 飒然Hang



技术琐话2017-11-26 - 后端技术杂谈 | 飒然Hang

  • The interesting thing about performance is that if you analyze most programs, you find that they waste most of their time in a small fraction of code. If you optimize all the code equally, you end up with 90 percent of the optimizations wasted, because you are optimizing code that isn't run much. The time spent making the program fast, the time lost because of lack of clarity, is all wasted time.《重构》一书的一段话,也是不要过早优化的意思,即在不确定这段代码真的会被频繁调用、真的是系统的性能瓶颈之前,没必要花时间优化此处的性能。

  • 这句话揭示了成为技术专家的一个关键特质: 理解一个系统应该如何工作并不能使人成为专家,只能靠调查系统为何不能正常工作才行。(From SRE ,by Brian Redman)

  • 技术书籍的出版门槛越来越低,该如何识别是否是一本烂书呢?在我自己看来,英文书籍质量远远好于中文书籍,翻译的版本一般来说质量也不错,不过作为一个互联网从业的技术人员,能够直接阅读英文原版是最好不过的。而对于中文书籍,如果是以公司名义或者书的序多于3篇,是一本烂书的概率非常大,写推荐语、写序的人名头越大,并不代表这本书的质量有多好。此外,现在某sdn专家真的是门槛低到不行,挂这个名头出的书更要慎重选择。对于InfoQ推荐的书,倒是可以值得一读。


  • Read full article from 技术琐话2017-11-26 - 后端技术杂谈 | 飒然Hang


    Solr - User - Renaming a collection



    Solr - User - Renaming a collection

    No.  There is no rename functionality.  The workaround is to use the
    alias feature, which Erick mentioned.  Renaming a collection could be
    done with a significant amount of manual editing, both in the relevant
    nodes and in zookeeper.  If you want to try this, I strongly recommend
    that you shut down the relevant Solr instances.  As you can might
    imagine, it would be highly disruptive.

    Read full article from Solr - User - Renaming a collection


    买了几本新书 – 纸上谈兵



    买了几本新书 – 纸上谈兵

    《Spring 实战》和《Spring Boot实战》两本书,是因为我想开始尝试Java Web开发,而Spring已经成为Java Web开发事实上的标准。这两本书的作者都是Carig Walls大牛,读者对此书的评价也非常高。买《Spring实战》是为了学习Spring基础知识,而买《Spring Boot实战》是因为,我觉得Spring Boot会是一个非常大的潮流。大概在一年前,我尝试过一次Spring Boot的Hello World程序,对它的简洁留下了十分深刻的印象,因此我对它非常感兴趣。  

    《Unix编程艺术》我在很多地方都看到有人推荐。我以前没看过这本书,买书的时候翻过目录,我觉得它的内容很吸引我。同时Unix的很多哲学在如今的编程世界中,依然十分受用。因此我觉得花点时间去拜读是十分值得的事情。  

    《HTTP权威指南》如雷贯耳。我本身不是Web开发出身,甚至不算是科班的程序员出身。因此对于计算机网络,全部要靠自己学习。而HTTP作为目前应用十分广泛的一种协议,我觉得还是有必要深刻理解它的。这本书本来就是一本十分详细并且权威的书,因此我将把它当做一本工具书来看。它将对我接下来的几年时间,都会产生重要的影响。  

    《深入分析Java Web开发内幕》这本书我以前也没有看过。因为我想学习Java Web开发,并且我看过它的目录,涉及的知识点挺多。我认为会对我的学习有帮助。今天大致扫了一两章的内容,我发现有点点失望。我觉得这本书的内容说的不清楚,行文有点着急。并且程序占用的空间太大。给我的感觉就是这本书能够给你在Web开发中指明一个相对较大的方向,但是细节还得自己从其他地方学得。  


    Read full article from 买了几本新书 – 纸上谈兵


    面试问题大汇总(不断更新) - 梁飞的博客 | liangfei's Blog



    面试问题大汇总(不断更新) - 梁飞的博客 | liangfei's Blog

    Android

    • Activity & Fragment
      • Activity的生命周期
        • onDestroy一定会被执行吗?
        • onStop中能更新数据吗?
      • Activity的启动模式
        • 什么情况下Activity的onNewIntent会执行?
      • Fragment能否不依赖Activity存在?
      • 描述一下Framgent的栈管理机制?
      • Activity和Fragment如何通信?
      • 如果后台的Activity由于某原因被系统回收了,如何在被系统回收之前保存当前状态?
      • Activity间通过Intent传递数据大小有没有限制?
    • Service
      • Service有几种启动方式?
      • Service的生命周期?
      • Service和IntentService的区别是什么?
    • ContentProvider & 数据
      • 请介绍下ContentProvider是如何实现数据共享的
      • 请介绍下Android的数据存储方式
    • Intent
      • 什么是显示intent(explicit intent)、什么是隐式intent(implicit intent)?
      • intent-filter的组成部分有哪些?
    • View & Layout
      • View的绘制流程
      • Touch时间的传递机制
      • Android中的几种动画
        • FrameAnimation
        • TweenAnimation
        • PropertyAnimation
      • Android中常用的布局
        • RelativeLayout & LinearLayout & ConstraintLayout
      • Activity、View、Window之间的关系是什么?
    • Android中跨进程通讯有几种方式(多进程
      • 访问其他应用程序的Activity
      • Content Provider
      • 广播(Broadcast)
      • AIDL
    • 线程
      • 单线程模型中Message,Handler,Message Queue,Looper之间的关系
      • Thread和HandlerThread的区别是什么?
      • 造成ANR的原因是什么?
    • 内存
      • 内存溢出和内存泄漏有什么区别?
      • 何时会产生内存泄漏?
      • 内存优化有哪些方法?
    • 设计模式
      • Android 中常见的设计模式有哪些?
      • OkHttp的interceptor是什么设计模式?chain of responsibility
      • 什么是AOP?
    • 其他
      • asset 和 raw 文件夹的区别是什么?
      • ApplicationId和PackageName的区别是什么?
      • 说一个jsbridge的实现方式?
      • DVM和JVM的区别是什么?
        • Android 的类加载机制?ClassLoader
      • Android最新版本是什么?有哪些新特性?
      • version_code和version_name的区别是什么?

    协议

    • http的method有哪些?
    • https与http的区别是什么?
    • 能描述一下TLS握手的过程吗?
    • 什么是中间人攻击(MIMA)?
    • 什么是对称加密、什么是非对称加密?
    • OAuth2的client_id和client_secret是干什么用的?
    • 如何在http层面优化网络?

    工具类

    • git怎么暂时保存更改

    Java

    • Java中volatile的作用是什么?
    • 注解 Annotation
      • 生命周期有哪些?
      • 作用对象有哪些?
    • 不应该被序列化的字段用什么关键字标记?- transient
    • WeakReference和WeakReference的区别
    • synchronized的用法(类和对象)
    • 为什么内部类会持有外部类的引用?
    • 怎样继承一个内部类?
    • 内部类的构造方法是什么?
    • Java中try catch finally的执行顺序?
    • Retrofit中如何使用了动态代理?
    • RxJava的线程模型是什么?

    Read full article from 面试问题大汇总(不断更新) - 梁飞的博客 | liangfei's Blog


    技术精进的三境界 | 徐靖峰|个人博客



    技术精进的三境界 | 徐靖峰|个人博客

    最近更新了一篇 Docker 的文章,朋友跟我反馈说效果并不是很好,我回头看了下,的确没有我自己的特色,没有太多思考,让公众号显得有些「百货」了。经过反思,今后只在个人博客更新 Docker 相关的个人学习经验(传送门),个人公众号还是主要推送和 Java 结合较为紧密的内容。

    前言

    前不久公众号后台有人给我留言,请教如何体系地学习 Java 知识,我当时心想:这话题太大,Java 技术栈也太深,不是一篇文章能说清楚的,但要说学习技巧,却的确是有规律所寻,秉持着「授人以鱼不如授人以渔」的想法,这篇文章便分享下我个人的一些学习技巧。

    王国维在《人间词话》中提到了古今之成大事业、大学问者,必经的三种境界: "昨夜西风凋碧树,独上高楼,望尽天涯路。" 此第一境也。 " 衣带渐宽终不悔,为伊消得人憔悴。" 此第二境也。 " 众里寻他千百度蓦然回首,那人却在,灯火阑珊处。"此第三境也。我也按照我的理解,将精进技术分成了三个境界。


    Read full article from 技术精进的三境界 | 徐靖峰|个人博客


    理解JWT的使用场景和优劣 | 徐靖峰|个人博客



    理解JWT的使用场景和优劣 | 徐靖峰|个人博客

    这样形如 A.B.C 的字符串时能敏感地认出这是使用了 jwt。发了这两篇文章后,有不少读者在文末留言,表达了对 jwt 使用方式的一些疑惑,以及到底哪些场景适合使用 jwt。我并不是 jwt 方面的专家,和不少读者一样,起初研究时我也存在相同疑惑,甚至在逐渐接触后产生了更大的疑惑,经过这段时间项目中的使用和一些自己思考,把个人的总结整理成此文。

    编码,签名,加密

    这些基础知识简单地介绍下,千万别搞混了三个概念。在 jwt 中恰好同时涉及了这三个概念,笔者用大白话来做下通俗的讲解(非严谨定义,供个人理解)

    编码(encode)和解码(decode)

    一般是编码解码是为了方便以字节的方式表示数据,便于存储和网络传输。整个 jwt 串会被置于 http 的 Header 或者 url 中,为了不出现乱码解析错误等意外,编码是有必要的。在 jwt 中以 . 分割的三个部分都经过 base64 编码(secret 部分是否进行 base64 编码是可选的,header 和 payload 则是必须进行 base64 编码)。注意,编码的一个特点:编码和解码的整个过程是可逆的。得知编码方式后,整个 jwt 串便是明文了,随意找个网站验证下解码后的内容:


    Read full article from 理解JWT的使用场景和优劣 | 徐靖峰|个人博客


    Awesome-Coder/熊写代码这三年:阅读写作与技术成长.md at master · wxyyxc1992/Awesome-Coder



    Awesome-Coder/熊写代码这三年:阅读写作与技术成长.md at master · wxyyxc1992/Awesome-Coder

    笔者的第一份工作从大三开始,在南京某家安全公司从事安全培训与渗透平台开发,兼职做做讲师;老实说肚子里没几滴墨水却要对着台下数百听众,搜肠刮肚地忽悠他们,很锻炼面皮啊。后来某个来头不小的二代找我说一起创业吧,他想颠覆世界,问我敢不敢一起。于是我就拉着身边的兄弟走了出来,很感谢我的两个舍友那些年里给我的支持与包容,容忍了我做的那些傻逼的事情。现在想起来,我还挺佩服 CEO 勇气的,竟敢找我来创业,真的是年轻啊。那个时候经常逛的是以 DZone 为代表的这类网站,并非说它们不好,不过确实太多的标题党,动辄新一代产品或者性能提升 100%。那时的我太过年轻,才从农村出来尚不知城市套路深,轻信了这些标题党,当然根本原因还是我们毫无经验,结果两个月的时间开发出来的 Hybrid APP 启动时间 20 多秒;当时我还一脸无法理解为什么 CEO 会露出绝望的眼神,毕竟之前参加某软件大赛的作品启动要将近两分钟还得到了好评。经历了技术波折之后我们老老实实回到了原生开发,接下来的一年多时间我技术上不一定成长多少,市面却是见了不少,充分认识到关系不是万能的、产品经理是必须的、需求是不能随便变的、领导的话是不能轻易相信的等等等等。后来,公司黄了,一分钱没赚到。后来,我参与到其他的创业当中,满怀热情,也看着那些年的冬日里熄灭的火苗。次数多了,也就不会痛了,印象比较深刻地还参与过某在线婚庆创业,某 3D 打印创业等等,直至现在有时候会去妹子所在的某建筑行业软件服务公司帮帮忙。如今公司招人,我引以为豪地能拿出来讲夸公司的一大优点就是,我们公司有稳定收入,不会吃了上顿没下顿,不会一朝入冬。想想走过的路,有两个自己打自己脸啪啪响的典型,一个是大二的时候推崇底层开发,裸写机器码,觉得 Web 不过是套模板的毫无前途的活计;另一个是跟运营商接触多了觉得传统软件行业里都是观念陈旧的老技术、毫无创新理念与创新动力。然后我现在主要依托于 Web 技术栈,在于政府合作的建筑投标软件行业里混饭吃。这三年走过大江南北,到过万里之外,见过异域风情,写过数百万字,赚到数十万元。印象最深的是爱人相伴,友人相随,笑过哭过,也有后悔。


    Read full article from Awesome-Coder/熊写代码这三年:阅读写作与技术成长.md at master · wxyyxc1992/Awesome-Coder


    Algorithms, Data Structures and Big Data Hadoop Recommender System: LintCode 970. Big Business - Weekly13 - LintCode



    Algorithms, Data Structures and Big Data Hadoop Recommender System: LintCode 970. Big Business - Weekly13 - LintCode

    O(n) loop and execute a trade if and only if you can afford it, and also you can gain profit from it.

    For any profitable but not yet affordable Business, put them in a minimum Heap.

    Finally, check the heap for anything that you can afford and execute anything that's possible.

    At last, you can no longer possibly afford anything else, thus return the latest K right away.

    Read full article from Algorithms, Data Structures and Big Data Hadoop Recommender System: LintCode 970. Big Business - Weekly13 - LintCode


    【原创】个人崛起的路上,你的努力需要一个正确的姿势



    【原创】个人崛起的路上,你的努力需要一个正确的姿势

    二、小步快跑,调整方向,及时止损,拒绝孤注一掷

    有人学习个新技术闷头学几年,踌躇满志,打了鸡血一样,我真是佩服,到头来发现已经过时。也有人做个产品投入几十人的团队,信心满满,却发现风口已过,连喝汤的机会也没有。还有人一有了新的创业思路就开始把产品设计的非常完整,把所有的运营渠道全部铺开,生怕没有人知道他的伟业,到头却发现,市场并不是它想的那样。

    面对新的技术、思想或者领域,我们一边保持着斗志,想在红利期分一杯羹,从此走向巅峰,却往往忽视了,越是新的东西,越有很大的不确定性。行业是否接受,用户是否买单,本身是否有可持续的商业价值这些都在摸索期,怎么办?只能小步快跑,不断洞察他人反应,及时调整方向,必要时候学会丢弃,才不至于落得个人财两空,把拥抱巅峰变成拥抱癜疯。


    Read full article from 【原创】个人崛起的路上,你的努力需要一个正确的姿势


    文件系统天生就是不平等的 - 实现崩溃一致性应用的复杂性 - 简书



    文件系统天生就是不平等的 - 实现崩溃一致性应用的复杂性 - 简书

    最近看到一篇 Paper,觉得很有意思,Paper 的主题是 "All File Systems Are Not Created Equal",看来文件系统也跟人一样,天生就是不平等的。这篇 Paper 主要是讨论如何找出应用程序对文件操作的有问题的地方,保证在发生崩溃的时候,也能保证数据的一致性,从而正常的恢复,论文里面作者叫做 "crash consistent",也就是『崩溃一致性』。

    要让应用在崩溃之后,能正常恢复,说起来容易,实际还是比较困难的,因为一方面应用程序会依赖底层的文件系统的实现,不同文件系统对一些保证是不一样的,譬如是否能支持原子 rename 这些。同时,很多文件系统,会提供丰富的配置供用户调优,譬如 etx4 就有 write back,ordered 这些挂载属性,这些就更加难判定文件系统在崩溃时的具体行为。


    Read full article from 文件系统天生就是不平等的 - 实现崩溃一致性应用的复杂性 - 简书


    一行代码蒸发了¥6,447,277,680 人民币!



    一行代码蒸发了¥6,447,277,680 人民币!

    今天有人在群里说,Beauty Chain 美蜜 代码里面有bug,已经有人利用该bug获得了 57,896,044,618,658,100,000,000,000,000,000,000,000,000,000,000,000,000,000,000.792003956564819968 个 BEC


    Read full article from 一行代码蒸发了¥6,447,277,680 人民币!


    AI-Driven Articles - The Daily WTF



    AI-Driven Articles - The Daily WTF

    If you've looked at job postings, you know that there's one thing really big and trendy right now, and that's blockchains. But the other trendy thing is Machine Learning! We'll talk about the Daily WTF's Initial Coin Offering at a later date, but for right now, we're excited to announce our new ML efforts.

    Specifically, we recognize that there's a certain structure and pattern to our articles, and instead of paying human writers, we can instead employ the latest machine learning systems to generate new articles that will be indistinguishable from the articles you know and love. The ideal tool, of course, would be an Recurrent Neural Network, which we could train based off previous articles. Unfortunately, that involves a lot of GPU power, and we're already using our GPUs to get ready for that ICO I mentioned. Shhhh. It's a secret.


    Read full article from AI-Driven Articles - The Daily WTF


    PSA Tax: Wash Sale Rule will fuck you up : RobinHood



    PSA Tax: Wash Sale Rule will fuck you up : RobinHood

    What is it? The fucking bane of Leveraged ETF traders:

    If you sell a security at a loss and buy the same or "substantially identical" security within 30 calendar days before or after the sale, the loss is typically disallowed for current income tax purposes. This is because of the so-called wash sale rule.

    Cucknle Sam will happily take your gains within the 30 day trade, but loss is simply shoved up your ass. I paid more taxes this year than I made in gains (please look up this word if you aren't sure what it means), aka $200 gains and $300.


      Read full article from PSA Tax: Wash Sale Rule will fuck you up : RobinHood


      Desh Raj Sonyok: Blogger Font Size: Normal Size is too Small and Large is too Big



      Desh Raj Sonyok: Blogger Font Size: Normal Size is too Small and Large is too Big

      If you are using Blogger and realize that the font size is either too small for "Normal Size" and too big for "Large Size" or your new Blogger post in different font size than old post, then you can try following option to fix the text size, default font type, and color:

      Read full article from Desh Raj Sonyok: Blogger Font Size: Normal Size is too Small and Large is too Big


      YSofters | Y Soft RnD blog. Code only what you need!



      YSofters | Y Soft RnD blog. Code only what you need!

      The first article introduced an overview of goals and architecture for log processing, next two articles will cover inputs and outputs – how can be data (both logs and metrics) forwarder into monitoring and how can be data viewed after the processing.
      There are two ways of forwarding data into monitoring platform, automatic and manual. The first one – automatic – is currently used in testing environments, where both logs and metrics are continuously collected and forwarded for processing. On the other hand, when YSoft SafeQ is deployed at customer's site, such approach is seldom possible, because of security concerns and additional performance requirements for the monitoring server. Instead, only specific log files containing the problem are transferred from the customer and these have to be manually uploaded.


      Read full article from YSofters | Y Soft RnD blog. Code only what you need!


      Clean Architecture based on Android Architecture Components - Gemini's Story



      Clean Architecture based on Android Architecture Components - Gemini's Story

      在 2017年 Google I/O 上,Google 发布了新的 Android Architecture 组件,包括 LifeCycle/LiveData/Room 等。 这些组件的诞生,让我们对实现 Clean Architecture 得到了新思路。


      Raft的PreVote实现机制 - 简书



      Raft的PreVote实现机制 - 简书

      Follower_2在electionTimeout没收到心跳之后,会发起选举,并转为Candidate。每次发起选举时,会把Term加一。由于网络隔离,它既不会被选成Leader,也不会收到Leader的消息,而是会一直不断地发起选举。Term会不断增大。

      一段时间之后,这个节点的Term会非常大。在网络恢复之后,这个节点会把它的Term传播到集群的其他节点,导致其他节点更新自己的term,变为Follower。然后触发重新选主,但这个旧的Follower_2节点由于其日志不是最新,并不会成为Leader。整个集群被这个网络隔离过的旧节点扰乱,显然需要避免的。


      Read full article from Raft的PreVote实现机制 - 简书


      Citi Costco - What are Eligible Travel Purchases? - myFICO® Forums - 4686689



      Citi Costco - What are Eligible Travel Purchases? - myFICO® Forums - 4686689

      I confirmed via email from a Citi rep that sites like expedia are eligible for the 3% bonus.
      I also confirmed that most places for gas are eligible, including convenience stores which are exempted in the fine print. I was told that if you pay at the pump, it will almost always code as gas, if you pay at the register inside it *might* code as convenience store or some other code other than gas. In those cases you would lose out on the gas bonus.

      Read full article from Citi Costco - What are Eligible Travel Purchases? - myFICO® Forums - 4686689


      Rediscovering Distributed Systems :: Steve Vinoski’s Blog



      Rediscovering Distributed Systems :: Steve Vinoski's Blog

      As an editorial board member for Internet Computing magazine one of my duties is to occasionally write the "From the Editors" column, so for the March/April 2014 issue I contributed the article "Rediscovering Distributed Systems" (PDF). The idea behind the article is that many production systems today are distributed systems, and so more developers are taking a look back at all the distributed systems research from the past few decades so they can try to avoid reinventing the wheel. The brief article goes through a few important distributed systems papers, and also includes references to other sites and resources for learning more about distributed systems.


      Read full article from Rediscovering Distributed Systems :: Steve Vinoski's Blog


      Richard Jones | BigWig: A better Erlang webtool (spawnfest entry)



      Richard Jones | BigWig: A better Erlang webtool (spawnfest entry)

      The Erlang VM lets you inspect all aspects of a running node, examine running processes, explore process hierarchies, and profile running systems. This is typically done from the Erlang console, but if you're feeling especially nostalgic, you can start Erlang's appmon (a real GUI app), or "webtool", a web-based version of some of the tools:


      Read full article from Richard Jones | BigWig: A better Erlang webtool (spawnfest entry)


      Data Integrity and Problems of Scope | Peter Bailis



      Data Integrity and Problems of Scope | Peter Bailis

      Mutable state in distributed systems can cause all sorts of headaches, including data loss, corruption, and unavailability. Fortunately, there are a range of techniques—including exploiting commutativity and immutability—that can help reduce the incidence of these events without requiring much overhead. However, these techniques are only useful when applied correctly. When applied incorrectly, applications are still subject to data loss and corruption. In my experience, (the unfortunately common) incorrect application of these techniques is often due to problems of scope. What do I mean by scope? Let's look at two examples:

      1.) Commutativity Gone Wrong

      For our purposes, commutativity informally means that the result of executing two operations is independent of the order in which the operations were executed. Consider a counter: if I increment by one and you also increment by one, the end result (counter += 2) is equivalent despite the order in which we execute our operations! We can use this fact to built more scalable counters that exploit this potential for reorderability.

      However, we're not off the hook yet. While our operations on the individual counter were commutative, does this mean that our programs that use this counter are "correct"? If we're Twitter and we want to build retweet counters, then commutative counters are probably a fine choice. But what if the counter is storing a bank account balance?1 Or if it's monitoring the amount of available inventory for a given item in a warehouse? While two individual decrement operations are commutative, two account withdrawal operations (or two item order placement operations) are not. By looking at individual data items instead of how the data is used by our programs, we risk data corruption. When analyzing commutativity, myopia is dangerous.


      Read full article from Data Integrity and Problems of Scope | Peter Bailis


      Two Common Reasons for Replication Lag | from Oracle to MySQL



      Two Common Reasons for Replication Lag | from Oracle to MySQL

      As a MySQL support engineer, I see this so often, that I felt it could help to write a post about it.

      Customers contact us to ask about replication lag – ie, a slave is very far behind the master, and not catching up. ("Very far" meaning hours behind.)

      The most common reason I encounter is databases having InnoDB tables without explicit primary keys. Especially if you are using row-based replication ("RBR"), you want explicit primary keys on all your tables. Otherwise, MySQL will scan the entire table for each row that is updated. (See bug 53375 . )  Maybe I'm a relational purist, but why would you want to have tables without explicit primary keys, anyway?  (On the other, less-purist, hand, for performance reasons, sometimes a short surrogate PK may be preferred to a lengthy logical one. )

      The other common reason is that the slave is single-threaded, and single-threaded performance can't keep up with the multi-threaded master.  In this case, if multiple databases are being updated, enabling the multi-threaded slave can help.  ( See the manual for more.)

      Nothing new or groundshaking here, but I hope this helps someone who is googling "MySQL replication lag".


      Read full article from Two Common Reasons for Replication Lag | from Oracle to MySQL


      Architecting for the Cloud: Best practices – Port twenty two



      Architecting for the Cloud: Best practices – Port twenty two

      Amazon has published another “Best practices” document. This one covers the almost the entire collection of services. Its biased towards AWS (obviously), but its still one of the best description summary of the various services amazon offers today.

      image

      Just the diagram above tells a lot about how the various AWS services interact with each other. Here is another small section from the document.

      AWS specific tactics to automate your infrastructure

      1. Define Auto-scaling groups for different clusters using the Amazon Auto-scaling feature in Amazon EC2.
      2. Monitor your system metrics (CPU, Memory, Disk I/O, Network I/O) using Amazon CloudWatch and take appropriate actions (launching new AMIs dynamically using the Auto-scaling service) or send notifications.
      3. Store and retrieve machine configuration information dynamically: Utilize Amazon SimpleDB to fetch config data during boot-time of an instance (eg. database connection strings). SimpleDB may also be used to store information about an instance such as its IP address, machine name and role.
      4. Design a build process such that it dumps the latest builds to a bucket in Amazon S3; download the latest version of an application from during system startup.
      5. Invest in building resource management tools (Automated scripts, pre-configured images) or Use smart open source configuration management tools like Chef16, Puppet17, CFEngine 18or Genome19.
      6. Bundle Just Enough Operating System (JeOS20) and your software dependencies into an Amazon Machine Image so that it is easier to manage and maintain. Pass configuration files or parameters at launch time and retrieve user data21 and instance metadata after launch.
      7. Reduce bundling and launch time by booting from Amazon EBS volumes22 and attaching multiple Amazon EBS volumes to an instance. Create snapshots of common volumes and share snapshots23 among accounts wherever appropriate.
      8. Application components should not assume health or location of hardware it is running on. For example, dynamically attach the IP address of a new node to the cluster. Automatically failover and start a new clone in case of a failure.

      Read full article from Architecting for the Cloud: Best practices – Port twenty two


      Jonathan Ellis's Programming Blog - Spyced



      Jonathan Ellis's Programming Blog - Spyced

      Advice often repeated, too-seldom followed. This is sometimes phrased as "make eye contact with your audience," but I've seen that second version interpreted to mean, "make eye contact while reading your slides, so your head pops up and down like a gopher poking out of its hole." So just don't read your slides, no matter what else you're doing.

      Some good presenters go to extremes with this, with just one or two words per slide. This is fine as a stylistic embellishment, but not necessary for a good talk. You don't need to be that minimalistic. Just remember that with every transition, your audience will read the new slide before returning its attention to whatever you are saying. (Watch for this the next talk you attend; you will absolutely catch yourself doing it.)

      Read full article from Jonathan Ellis's Programming Blog - Spyced


      The Scale-Out Blog: Exorcising the CAP Demon



      The Scale-Out Blog: Exorcising the CAP Demon

      Computer science is like an enormous tool box you can rummage through whenever you have a problem to solve. Most of the tools are sturdy and practical, like algorithms for B-trees. Some are also elegant, like consistent hashing in Dynamo. Finally there are some tools that you never quite figure out even after years of reflection. That piece of steel you are looking at could be Excalibur. Or it could be a rusty knife.

      The CAP theorem falls into the last category, at least for me.  It was a major topic in the blogosphere a few years ago and Google Trends shows steadily increasing interest in the term since 2010.  It's not my goal to explain CAP fully--a good informal description is here or you can just read the proof yourself.  Instead I would like to talk about how I understand and use the CAP theorem today as well as how that understanding might evolve in the future.

      Read full article from The Scale-Out Blog: Exorcising the CAP Demon


      Seven Deadly Sins of a Software Project



      Seven Deadly Sins of a Software Project

      Unfortunately, the programming languages we're using are too flexible. They allow too much and forbid too little. For example, Java has nothing against you placing the entire application in one single "class" with a few thousand methods. Technically, the application will compile and run. But it's a well-known anti-pattern called a God object.


      Read full article from Seven Deadly Sins of a Software Project


      Five Memorable Books About Programming



      Five Memorable Books About Programming

      Five Memorable Books About Programming

      I've read the classics--Structure and Interpretation of Computer Programs, Paradigms of Artificial Intelligence Programming--but I'd like to highlight some of the more esoteric books which affected my thinking.


      Read full article from Five Memorable Books About Programming


      Sudhakar's Blog



      Sudhakar's Blog

      One of my cloud server is an amazon linux instance with certbot installed for letsencrypt certificates. Unfortunately, certbot is not fully supported in amazon linux and the suggestion is to run certbot in --debug mode

      I was quite successful for around an year to renew certifiates without much problems. But, not today

      I started the ritual by running the following command. sudo is needed as certbot needs to have more control to modify, edit files, start & stop servers


      Read full article from Sudhakar's Blog


      Should you cache hash values even for trivial classes? – Daniel Lemire's blog



      Should you cache hash values even for trivial classes? – Daniel Lemire's blog

      I should add that Java's hash tables re-hash the hash values that we provide, so the benefits of the cached hash value are less than they could be.

      Moreover, Strings have cached hash values by default in Java. I'm definitively not the first to notice that caching hash values can be valuable.


      Read full article from Should you cache hash values even for trivial classes? – Daniel Lemire's blog


      这才是Angular2的灵魂!



      这才是Angular2的灵魂!

      在 Angular 1.x 里面,$scope 是一个相当强大又相当可怕的东西,由于在很多需要回调的场景之下,脏值检测机制无法感知到 $scope 上发生的变化,因此经常需要开发者自己手动调用 $apply() 方法。典型的场景有:事件回调、setTimeout 回调、Ajax 回调等等。Angular2 响应社区的强烈呼吁,删除(或者说隐藏)了 $scope 的概念,开发者不再需要感知到它的存在。另外,Angular2 在底层引入了 zone.js,所以即使在各种回调函数中修改数据模型也不需要手动调用 $apply() 方法了。


      Read full article from 这才是Angular2的灵魂!


      2018 Senate Election Interactive Map



      2018 Senate Election Interactive Map

      The U.S. Senate has 51 Republicans and 49 Democrats (including two independents). The 2018 Senate election takes place on November 6, 2018. There are 35 seats up in 2018*, of which 26 are held by Democrats. That party will need to gain 2 seats to take control.


      Read full article from 2018 Senate Election Interactive Map


      The Implications of Infrastructure as Code



      The Implications of Infrastructure as Code

      Puppet, Chef, Fabric, Capistrano, Ruby, Python, Github, EC2, Heroku – the list goes on. These are just some of the disruptive forces that have revolutionised what it means to manage systems in the twenty first century. One of the most interesting and important trends to emerge from this paradigm shift is the desire and willingness to treat Infrastructure as Code. Although not synonymous with Devops, its methods and objectives are both supportive and complementary. I think it's fair to say that if you're doing Devops today, you're probably treating your infrastructure as code.

      Jesse Robins describes the goal brilliantly:

      "Enable the reconstruction of the business from nothing but a source code repository, an application data backup, and bare metal resources"

      In practice this means rethinking the way we design, build and manage our systems. We need to break infrastructure down into modular services, and tie them together in an automatable way. In order to do this at scale, and in a cloudy world, we've found it's necessary to move beyond shell scripts and ssh for loops. This is where tools like Puppet and Chef come in – they enable and encourage us to abstract the problem, and define it in a high level language – to write code that captures the essence what we need to achieve. Each of these services will be made up of snippets of code, with varying degrees of complexity. In a large and involved infrastructure, the size of the endeavour is not insignificant. The move to Infrastructure as Code means, quite simply, that the task of building and maintaining a modern server environment begins to look a lot like the task of managing a software project. Of course this is entirely in keeping with the Devops way – as we break down barriers between developers and sysadmins, and start collaborating and working out how to solve problems together, it seems natural that both the methods and the output start to look less like traditional operations tasks, and begin to take on some of the flavour of the programming world.


      Read full article from The Implications of Infrastructure as Code


      (1) What are the attributes (other than technical ability/experience) that make a great VP of Technical Operations? - Quora



      (1) What are the attributes (other than technical ability/experience) that make a great VP of Technical Operations? - Quora

      This is an excellent question, and I'd have to point out that any answers that I post should be considered to be perpetual aspirations of my own. Note that my perspective is one experienced primarily in web operations, which may be considered different from other fields of technical operations. I'd also toss out the title specifics; instead, say that these are qualities of great Operations leaders, not just great VPs. Also beware - my answer might get more philosophical than can be stomached.

      Read full article from (1) What are the attributes (other than technical ability/experience) that make a great VP of Technical Operations? - Quora


      Chat with a group - Atlassian Documentation



      Chat with a group - Atlassian Documentation

      In Hipchat, rooms are where group chats happen. Rooms can be centered around teams, projects, special events, and more. What they become is up to you and your team.


      Read full article from Chat with a group - Atlassian Documentation


      2017下半年学习计划 有个博客



      2017下半年学习计划 有个博客

      java & jvm

      • 学习两个java项目源码:spring、netty
      • 看jdk源码:
        • concurrency包
        • nio
      • 再了解清楚jvm工作机制
      • 知道一些JVM内存可视化工具的使用方法
      • 能解决出现在jvm层面的问题

      操作系统 & 网络

      • http://www.icourses.cn/coursestatic/course_6801.html 看完这个课程
      • 重新整理tcp/ip协议的知识
      • 能处理出现在操作系统、网络层面的问题

      中间件知识

      • 学习公司的服务框架 - pylon
      • 学习公司的数据库中间件 - dal
      • 对比市场上流行的开源中间件

      分布式架构知识

      • 学习公司架构技术,到源码级别
      • 还不知道要学什么…但有几本书可以看

      DDD

      • 看完两本书,可以自己写个demo

      软件工程

      • 看完《软件工程》这本书
      • 知道建模、开发、测试的流程,知道怎么能构建一个可靠的工程。

      写两个开源项目

      • 学习ddd期间可以写个微信小程序
      • 写个数据库中间件的demo


      Read full article from 2017下半年学习计划 有个博客


      My payment was due on a Sunday and I understood that meant I had until the next business day (Monday) to pay. I went online to my card issuer’s website and made a payment on Monday, but I was charged



      My payment was due on a Sunday and I understood that meant I had until the next business day (Monday) to pay. I went online to my card issuer's website and made a payment on Monday, but I was charged

      My payment was due on a Sunday and I understood that meant I had until the next business day (Monday) to pay. I went online to my card issuer's website and made a payment on Monday, but I was charged a late fee. Can they do that?

      Answer:

      Yes. If your payment is due on a day on which mail is not delivered (such as a Sunday) and you mail your payment, you cannot be charged a late fee if your payment arrives on the next business day.

      However, if you pay online you must make your payment on the day it was due even if that day is a Sunday or holiday.


      Read full article from My payment was due on a Sunday and I understood that meant I had until the next business day (Monday) to pay. I went online to my card issuer's website and made a payment on Monday, but I was charged


      Things Programmers Say | Henrik Warne's blog



      Things Programmers Say | Henrik Warne's blog

      • It works on my machine.
      • It's not a bug, it's a feature.
      • How hard can it be?
      • How did that even work in the first place?
      • I don't see anything in the logs.
      • I'm guessing it's an issue on their side.
      • Probably some kind of permissions issue.
      • That's weird.
      • That's a known issue.
      • We don't support that.
      • No, I don't know how long it's going to take.
      • Actually, it has always been like that.
      • Have you tried it with Chrome or Firefox?
      • It should work now.
      • But that's not how you told me it should work.
      • Well there's your problem right there.
      • Working as intended.
      • I mean, everything's *possible*…
      • That will never happen.
      • Shouldn't take too long.
      • Cheap, fast, high quality. Pick any two.
      • It's 90% done.
      • This is just a temporary fix
      • You're doing it wrong
      • That's a code smell.
      • I thought we fixed this!
      • Yes, but does it scale?


      Read full article from Things Programmers Say | Henrik Warne's blog


      Should I roll over my 401K to my 403b or open a Roth IRA? I am leaning towards a Roth IRA rather than a traditional IRA. And, should I contribute solely to the Roth IRA, and just let the employer cont



      Should I roll over my 401K to my 403b or open a Roth IRA? I am leaning towards a Roth IRA rather than a traditional IRA. And, should I contribute solely to the Roth IRA, and just let the employer cont

      You have some great questions so please review my answers below:

      1. Rollover 401k to 403b? or into a Roth IRA? If you rollover your 401k to your 403b, you want to understand it is in your new employer's retirement plan which does not give you any flexibility. Your second option would be to roll over your 401k to a traditional IRA which allows your money to be in your control. The second consideration is whether your 403b investment options are similar, better (lower internal expense called expense ratio) or worse (hig...


      Read full article from Should I roll over my 401K to my 403b or open a Roth IRA? I am leaning towards a Roth IRA rather than a traditional IRA. And, should I contribute solely to the Roth IRA, and just let the employer cont


      (1) Is it possible to move my wife's 401k to my 401k? We file our taxes jointly but the accounts are currently under our individual names. - Quora



      (1) Is it possible to move my wife's 401k to my 401k? We file our taxes jointly but the accounts are currently under our individual names. - Quora

      First, because your wife is still employed by the company sponsoring the 401k plan - it is very unlikely they will allow to transfer the account into another retirement plan.

      Second, all retirement accounts are individual and there is no such thing as joint IRA or joint 401k. Therefore you will not be allowed to transfer your wife's 401k into your IRA.

      If the spouse passes away then as spouse, if you are the beneficiary of the account, you can rollover those funds into your IRA, but this is not the case here.


      Read full article from (1) Is it possible to move my wife's 401k to my 401k? We file our taxes jointly but the accounts are currently under our individual names. - Quora


      Claiming a Parent As a Dependent



      Claiming a Parent As a Dependent

      If you are caring for your mother or father, you may be able to claim your parent as a dependent on your income taxes. This would allow you to get an exemption ($4,050 for tax year 2017) for him or her.

      Note: The 2017 Tax Cuts and Job Act eliminates personal and dependent deductions, so starting in 2019, you will no longer be able to claim your parent as a dependent. Instead, you may be able to claim a $500 tax credit for any non-child dependents.


      Read full article from Claiming a Parent As a Dependent


      All-in margin account rates at Robinhood and IB - Independently Financed



      All-in margin account rates at Robinhood and IB - Independently Financed

      Interactive Brokers, as far as I can tell, is a profitable company that is able to leverage its scale to offer lower costs to its customers.

      Robinhood, as far as I can tell, is a deeply unprofitable company trying to seize as much market share as possible while it's still being pumped full of cash by its early-stage investors, hoping to eventually raise prices and become profitable.

      None of that matters to you, per se: your securities are insured on either platform, whether one or both eventually goes bust. What might matter to you is that in order to get and retain market share, Robinhood might keep its margin lending rates lower longer than Interactive Brokers does. If that's the case, then Interactive Broker's interest rate might creep up high enough to make Robinhood the cheaper source of margin credit, once you take Interactive Broker's flat monthly fees into account.


      Read full article from All-in margin account rates at Robinhood and IB - Independently Financed


      How Does the IRS Calculate Penalties and Interest



      How Does the IRS Calculate Penalties and Interest

      The IRS will require that penalties and interest be paid in full before any abatement determination is made. Once you pay the bill, the 'meter' stops and you will not have additional interest charges accruing.

      As a general rule of thumb, you may request an abatement of penalty if you show cause. Interest on late tax payments may not be abated except in extraordinary circumstances. Interest abatement almost always requires that the taxpayer prove an undue delay by an Internal Revenue Service staff member is the cause, in part, of the interest.

      A taxpayer who voluntarily steps forward and corrects a deficiency in a previously filed return (NOT DISCOVERED IN AN AUDIT!) is often successful in requesting penalty abatement.

      To request an abatement of penalty, write to the IRS office that issued the bill within the time frame provided by the IRS. Be certain to clearly and concisely describe the cause and provide any supporting documentation you might have. We have had many clients be successful in having late payment penalties abated with a statement as follows:


      Read full article from How Does the IRS Calculate Penalties and Interest


      Can't Pay Taxes | H&R Block



      Can't Pay Taxes | H&R Block

      Even if you can't pay the IRS what you owe when your return is due, you still have to file your return on time. If you don't, you'll also pay a late-filing penalty along with the taxes you owe.

      If you owe tax and you don't file your return on time:

      • The late-filing penalty is usually 5% of the tax you owe for each month — or part of a month — that your return is late. This applies up to a maximum of 25% of the tax owed.
      • If your return is more than 60 days late, the minimum penalty for late filing is the smaller of these:
        • $135
        • 100% of the unpaid tax

      Interest

      Interest is usually charged on any unpaid tax from the due date of the return until the payment date. The interest rate is the federal short-term rate plus 3%. The rate is set every three months, and interest is compounded daily. The interest rate recently has been about 3%.

      Interest is also charged on late-filing penalties.

      If you file on time but you don't pay the total amount due, you'll usually have to pay a late-payment penalty. This is 0.5% of the tax you owe per month — or part of a month — until the tax is paid in full. You'll be charged up to a maximum penalty of 25% of the tax due.


      Read full article from Can't Pay Taxes | H&R Block


      [SOLR-7869] Overseer does not handle BadVersionException correctly - ASF JIRA



      [SOLR-7869] Overseer does not handle BadVersionException correctly - ASF JIRA

      If the /clusterstate.json is modified externally then the Overseer can go into an infinite loop upon a BadVersionException alternately trying to execute main queue and then the work queue:


      Read full article from [SOLR-7869] Overseer does not handle BadVersionException correctly - ASF JIRA


      How should I decide whether to buy more shares of a stock when its price drops? - Personal Finance & Money Stack Exchange



      How should I decide whether to buy more shares of a stock when its price drops? - Personal Finance & Money Stack Exchange

      A key principle of economics is: Sunk costs are irrelevant. You bought the stock at 147 and it has now fallen to 144. That's too bad. This has nothing to do with whether it is wise or foolish to buy shares at 144. The only relevant thing to consider is: Do I expect the stock to go up or down from 144?

      You have lost $3 per share on the original buy. Buying more shares will not "reduce your loss" in any way.

      Suppose you bought 100 shares at 147. The price then drops to 144. You have lost $3 per share, or $300 total.

      You buy another 50 more shares at 144. The price stays at 144. So your average purchase price is now (147 x 100 + 144 x 50) / 150 = 146. So I guess you could say that your "average loss per share" is now only $2. But it's $2 x 150 shares instead of $3 x 100 shares. You still lost $300. You didn't reduce your loss by a penny. Maybe it made you feel better that you reduced your average loss per share, but this is just an arithmetic game.


      Read full article from How should I decide whether to buy more shares of a stock when its price drops? - Personal Finance & Money Stack Exchange


      Owe the IRS? There are IRS Payment Plan Options | US Tax Center



      Owe the IRS? There are IRS Payment Plan Options | US Tax Center

      Individuals who fall into this category must submit Form 9465 as well as Form 433-F (Collection Information Statement). Form 433-F is used for obtaining your current financial information, in order to figure out how you can pay the overdue tax balance. On Form 433-F, you will be asked to list your accounts and lines of credit, plus real estate and any other assets you own. You'll need to provide your employment information, including monthly income, as well as your monthly living expenses. Remember to attach your completed Form 433-F to Form 9465 and mail them together.


      Read full article from Owe the IRS? There are IRS Payment Plan Options | US Tax Center


      A Software Developer’s Reading List | Steve Wedig's Notes



      A Software Developer's Reading List | Steve Wedig's Notes

      Many of the best software developers have T-Shaped Skills: Deep expertise in programming and software development, and broad knowledge of diverse areas including testing, DevOps, UX design, team organization, customer interaction, and their domain areas. While there is unfortunately no substitute for experience, reading is probably the next best thing. Over the past 10 years I've read a lot in an effort to deepen and broaden my knowledge as a software developer. Along the way I've been organizing books and concepts into the reading list I share below. I have been trying to design a core curriculum for "modern" software development by asking myself:


      Read full article from A Software Developer's Reading List | Steve Wedig's Notes


      5 Medium company blogs worth reading .. – Cocoa Academy – Medium



      5 Medium company blogs worth reading .. – Cocoa Academy – Medium

      Since my early experiences on Medium's platform until now i've been reading so much great content from many different sources, it is without a doubt an excellent platform. The majority of this content comes from users and or publications owned by them. However since the introduction of custom domains more and more companies are migrating their respective blogs to medium. Luck for us this posts are hitting medium with amazing quality. Bellow you will find a list of five blogs worth reading from companies like: Airbnb, Square, KickStarter, Slack and Udacity.


      Read full article from 5 Medium company blogs worth reading .. – Cocoa Academy – Medium


      (2) How do I read Medium posts from those I follow? - Quora



      (2) How do I read Medium posts from those I follow? - Quora

      Actually in my case, the "For you" tab comes with the posts from people I follow ordered by the recommendation number. The reading list is tailored with the tag you follow also, not only the peoples.

      I don't see there is such options from people I follow, expect old ways of visiting profiles. However those post of someone you follow which has higher recommendation comes in the 'for you' tag as far as I know.


      Read full article from (2) How do I read Medium posts from those I follow? - Quora


      10 Tips to Crack Coding in 2018 – Firehose Project



      10 Tips to Crack Coding in 2018 – Firehose Project

      A computer program that you write could have dozens, if not hundreds of:

      • Variable names
      • Method names

      Good programmers will make sure they handle little things, like naming things in their code with smart, descriptive names.


      Read full article from 10 Tips to Crack Coding in 2018 – Firehose Project


      10 Tips to Crack Coding in 2018 – Firehose Project



      10 Tips to Crack Coding in 2018 – Firehose Project

      When you get stuck coding, take a moment to articulate a thoughtful question into a search engine, then open a new tab for each of the front page search results.

      After running the search and reading through the top ten results, you'll gain valuable insight that helps you resolve the issue you're facing.


      Read full article from 10 Tips to Crack Coding in 2018 – Firehose Project


      Notely: How to use Markdown in Blogspot posts



      Notely: How to use Markdown in Blogspot posts

      If your blog is hosted on running Blogspot and you want to use Markdown for your posts, here's how to do it and future-proof your writing in the process.

      1. Write your posts in a text editing program on your computer and save them on your computer. (I use a yyyy-mm-dd post title.txt format)
      2. Then copy and paste the text into the online Markdown processor and click Convert to generate HTML. (Set "Filter" to "both" for extra typographic goodness.)
      3. Finally, copy and paste the HTML into a new post in Blogspot.

      This has two advantages. First, it future-proofs your blog. No matter what happens, if Blogger ever gets shut down or becomes undesirable to use for any reason, in ten years you'll still have a very useable copy of all your writing. Second, a text-editing program is much less likely to crash than your browser. This approach eliminates the risk of a browser crash causing you to lose large amounts of work.

      Getting Blogspot to play nice with your Markdown-generated HTML

      This is the area people seem to have trouble with, but it's really quite simple.

      1. In Blogspot, go to Settings tab, then the Formatting section. Set "Convert Line Breaks" to No.
      2. In your New Posts,
        • Make sure you are using the "Edit HTML" tab
        • Under "Post Options" (at the bottom) make sure
          • "Edit HTML Line Breaks" is set to Use <br /> tags
          • "Compose Settings" is set to Interpret typed HTML

      Read full article from Notely: How to use Markdown in Blogspot posts


      What every computer science major should know



      What every computer science major should know

      Having emerged from engineering and mathematics, computer science programs take a resume-based approach to hiring off their graduates.

      A resume says nothing of a programmer's ability.

      Every computer science major should build a portfolio.

      A portfolio could be as simple as a personal blog, with a post for each project or accomplishment. A better portfolio would include per-project pages, and publicly browsable code (hosted perhaps on github or Google code).

      Contributions to open source should be linked and documented.

      A code portfolio allows employers to directly judge ability.

      GPAs and resumes do not.

      Professors should design course projects to impress on portfolios, and students, at the conclusion of each course, should take time to update them.


      Read full article from What every computer science major should know


      Book Review: The Effective Engineer | Henrik Warne's blog



      Book Review: The Effective Engineer | Henrik Warne's blog

      This is a short book, only about 200 pages (excluding appendix and notes), but the density of good content is very high. It is divided into three parts, each containing three or four short chapters, where each chapter ends with a good summary of the key points. The first part deals mostly with what to work on. The short answer is activities that give you the most bang for the buck. The second part is on how to work, and deals with iteration speed, measurements, fast feedback and project management. The third part is called Build Long-Term Value, and is mostly about team work and dev ops.


      Read full article from Book Review: The Effective Engineer | Henrik Warne's blog


      Developer Testing | Henrik Warne's blog



      Developer Testing | Henrik Warne's blog

      I think the subject of the book, developer testing, is timely. There seems to be a broad trend where more and more responsibility for testing is given to developers. It follows from the move towards micro services, dev ops and the "you built it, you run it" principle. Another driving force is the prevalence of developer testing frameworks that started with JUnit and now includes many more. These frameworks encourage and help developers write automatic tests.


      Read full article from Developer Testing | Henrik Warne's blog


      Exercises in Programming Style | Henrik Warne's blog



      Exercises in Programming Style | Henrik Warne's blog

      I have read quite a lot of books on programming, but this book is unique among them. I really like the approach of showcasing various programming styles and paradigms by implementing the same program in different ways. First, there is a concrete program to look at for each case, instead of just a verbal description. Second, seeing all the programs next to each other highlights the differences in a very accessible way.

      At work we use Python, so all of us already knew Python when reading the book. It was quite convenient to already be familiar with the language used, but I think the book works well even if you don't know Python. There are a few quirks, for example with classes in Python, but the author explains those when needed. The only time Python was a problem was when showing how types protect against errors in the Adversity section.

      When it came to understanding the programs, there was always a very good section called Commentary that explained in detail how each program worked. For the most part though, I preferred to just start reading the code and see if I understood how it worked. Usually this was enough, but sometimes I missed not having an IDE for searching for usages etc. I could have done that though, because all of the programs are available on GitHub.

      For each style there were references and historical notes. These were quite good and interesting. In particular it was surprising that there were so many references to papers and books from the 50s and 60s. There were also a lot of references to Smalltalk, and to Dijkstra.

      Before reading the book, I decided to implement my own version of the term frequency program. This gave me an slightly better understanding of what is needed to solve the problem. Mostly though, it was for the fun of seeing which style my solution was written in. The best match turned out to be Pipeline in Basic Styles. Also, when testing my solution I noticed that the Pride and Prejudice sample input the author is using also includes a few Project Gutenberg sentences in addition to the book text. I found this slightly disappointing.

      My only criticism of the book is the naming of the styles. Naming is famously hard, but also very important, because the names help you remember the styles better and makes discussing them easier. In many cases, there are already establish names for the styles, but instead of using them, the author came up with her own. For example: Trinity instead of MVC, Things instead of Objects, Hollywood instead of Callbacks, Bulletin Board instead of Pub/Sub and Kick Forward instead of Continuation-passing. Those names are OK, but it is much better to stick to the industry standard ones.


      Read full article from Exercises in Programming Style | Henrik Warne's blog


      [转]在一个领域达到顶尖水平是怎样的体验? | 人生设计师



      [转]在一个领域达到顶尖水平是怎样的体验? | 人生设计师

      他回答说:(大意)我的时间有限,每天只有10小时左右在实验室,权衡利弊之后,我只能把我的有限时间用在我认为最重要的事情上,如解析结构、分析结构、与学生讨论课题、写文章。如果没有足够的时间,我只能少读文章、少听讲座了。 "

      施一公进而想到:

      "在博士生阶段,尤其是前两年,我认为必须花足够的时间去听各相关领域的学术讲座、并进行科研文献的广泛阅读,打好critical thinking的基础;但随着科研课题的深入,对于文献阅读和学术讲座就需要有一定的针对性,也要开始权衡时间的分配了。 "


      Read full article from [转]在一个领域达到顶尖水平是怎样的体验? | 人生设计师


      Ehcache BigMemory: 摆脱GC困扰 - zhenjing - 博客园



      Ehcache BigMemory: 摆脱GC困扰 - zhenjing - 博客园

      使用java开源项目经常需要调优jvm,以优化gc。对于gc,如果对象都是短时对象,那么jvm相对容易优化,假如碰上像solr使用自带java cache的项目,那么gc严重受限于cache,因为cache对象并非短时对象,以至于young gc常常伴有大量的内存对象拷贝,严重影响gc性能。


      Read full article from Ehcache BigMemory: 摆脱GC困扰 - zhenjing - 博客园


      Labels

      Algorithm (219) Lucene (130) LeetCode (97) Database (36) Data Structure (33) text mining (28) Solr (27) java (27) Mathematical Algorithm (26) Difficult Algorithm (25) Logic Thinking (23) Puzzles (23) Bit Algorithms (22) Math (21) List (20) Dynamic Programming (19) Linux (19) Tree (18) Machine Learning (15) EPI (11) Queue (11) Smart Algorithm (11) Operating System (9) Java Basic (8) Recursive Algorithm (8) Stack (8) Eclipse (7) Scala (7) Tika (7) J2EE (6) Monitoring (6) Trie (6) Concurrency (5) Geometry Algorithm (5) Greedy Algorithm (5) Mahout (5) MySQL (5) xpost (5) C (4) Interview (4) Vi (4) regular expression (4) to-do (4) C++ (3) Chrome (3) Divide and Conquer (3) Graph Algorithm (3) Permutation (3) Powershell (3) Random (3) Segment Tree (3) UIMA (3) Union-Find (3) Video (3) Virtualization (3) Windows (3) XML (3) Advanced Data Structure (2) Android (2) Bash (2) Classic Algorithm (2) Debugging (2) Design Pattern (2) Google (2) Hadoop (2) Java Collections (2) Markov Chains (2) Probabilities (2) Shell (2) Site (2) Web Development (2) Workplace (2) angularjs (2) .Net (1) Amazon Interview (1) Android Studio (1) Array (1) Boilerpipe (1) Book Notes (1) ChromeOS (1) Chromebook (1) Codility (1) Desgin (1) Design (1) Divide and Conqure (1) GAE (1) Google Interview (1) Great Stuff (1) Hash (1) High Tech Companies (1) Improving (1) LifeTips (1) Maven (1) Network (1) Performance (1) Programming (1) Resources (1) Sampling (1) Sed (1) Smart Thinking (1) Sort (1) Spark (1) Stanford NLP (1) System Design (1) Trove (1) VIP (1) tools (1)

      Popular Posts