JVM is the heart of Java programming language. When we execute a Java program, JVM is responsible for converting the byte code to the machine-specific code. JVM is also platform-dependent and provides core java functions such as memory management, garbage collection, security, etc. Garbage Collection In Java, a developer does not need to explicitly allocate and deallocate memory – the JVM and more specifically the Garbage Collector – has the duty of handling memory allocation so that the developer doesn’t have to. For most collectors GC related pauses are proportional to size of their heaps
Read more »

Core Java Tutorial | DigitalOcean Thread Process: A process is a self contained execution environment and it can be seen as a program or application. Thread: lightweight. * a process can have multiple threads running, and at least one main thread. * all thread share parent process code and data * thread creation, context switching, and intercommunication are less expensive * Multithreading: In multi-core system, more than one thread can run at the exactly same time. In single-core system, more than one thread can run parallel using OS feature time slicing to shar
Read more »

react 提倡组件化开发,以促进复用。react native 也一样是组件化开发思想。不同的是,react 中是使用原生的 html 组件作为基本组件(div、a…),而 react native 使用的是另一些原生组件。用户的自定义组件也是基于这些原生组件。 所以要用 react native,必须了解这些原生组件(就跟学 html 组件差不多) general props 一些所有组件或大部分组件都有的属性。 style 所有的核心组件都接受名为 style 的属性(类似 html 标签中的 html)。这些样式名基本上是遵循了 web 上的 CSS 的命名,只是按照 JS 的语法要求使用了驼峰命名法,例如将 background-color 改为backgroundColor。 实际开发中组件的样式会越来越复杂,我们建议使用StyleSheet.create来集中定义组件的样式。常见的做法是按顺序声明和使用 style 属性,以借鉴 CSS 中的“层叠”做法(即后声明的属性会覆盖先声明的同名属性)。比如像下面这样: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 import React, { Component } from 'react';
Read more »

为什么 java stream parallel 有时比 sequential 执行还慢? 场景 考虑下边的代码,并行执行不一定比顺序执行快,甚至很多时候都是更慢的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 @Test public void should_not_sure_if_without_warm_up() { String[] array = new String[1000000]; Arrays.fill(array, "AbabagalamagA"); System.out.println("Benchmark..."); for (int i = 0; i < 5; ++i) { System.out.printf("Run %d: sequential %s - parallel %s\n", i, test(() -> sequential(array)), test(() -> parallel(array))); }
Read more »

设计 收集一些在设计时可能会用到的比较好的网站 * icons from the fontawesome: 各种各样的图标,很漂亮 * ant design:里边有 UI 设计价值观及图标资源等,还有前端组件库 前端组件库 组件库大合集 组件库大合集2 mac 强迫症的Mac设置指南 terminal [10 Must know terminal commands and tips for productivity](10 Must know terminal commands and tips for productivity) 介绍了一些,简单罗列下: 1. iterm2:是一种 terminal,将其作为默认 terminal,可以方便的分屏等 2. oh my zsh:管理 zsh 配置的,使用 ~/.zshrc,利用 source ~/.zshrc 可以是配置立马生效 1. oh my zsh 插件 3. cat:不打开文件的情况下查看内容 4. imgcat:同上,不过查看的是图片 5. less [filename]:同 cat,不过如果长文件,可以用这个,仅显示一部分 6. pbcopy < [filename]:复制文件内容到 clipboard 7. touch:创建各种各样的文件,可以同时创建
Read more »

图解Kerberos协议原理 内网渗透之kerberos协议分析 kerberos 协议 Kerberos Concepts - Principals, Keytabs and Delegation Tokens A user in Kerberos is called a principal, which is made up of three distinct components: the primary, instance, and realm. A Kerberos principal is used in a Kerberos-secured system to represent a unique identity. The first component of the principal is called the primary, or sometimes the user component. The primary component is an arbitrary string and may be the operating system username of the user or the name of a service. The primary component is followed by an optional section ca
Read more »

背景 Facebook的数据仓库存储在少量大型Hadoop/HDFS集群。Hive是Facebook在几年前专为Hadoop打造的一款数据仓库工具。在以前,Facebook的科学家和分析师一直依靠Hive来做数据分析。但Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Facebook也调研了其他比Hive更快的工具,但它们要么在功能有所限制要么就太简单,以至于无法操作Facebook庞大的数据仓库。 2012年开始试用的一些外部项目都不合适,他们决定自己开发,这就是Presto。2012年秋季开始开发,目前该项目已经在超过 1000名Facebook雇员中使用,运行超过30000个查询,每日数据在1PB级别。Facebook称Presto的性能比Hive要好上10倍多。2013年Facebook正式宣布开源Presto。 定位 presto 官网 Presto is an open source distributed SQL query engine for running interactive analytic queries against data sources of all sizes ranging from gigabytes to
Read more »

other storage 主要是存的系统的一些缓存、日志等数据。有时会占特别大空间,可以按下列步骤清理 1. 暂时关闭 SIP,以能查看和删除系统文件(解决 not permitted 问题) 1. 以 recover mode 重启电脑:启动时,按 command + R 即可 2. 选择 Utilities -> Terminal 3. 在 Terminal 中输入 csrutil disable 关闭 SIP 4. 重启电脑 在完成 clean 后,应该重复 1、2,并在 terminal 中输入 csrutil enable 来启动 SIP 重启电脑后,可以通过 csrutil status 来查看 SIP 服务是否启动(清理完成后应该启动) 2. 按 size 查找大文件 1 2 $ cd / $ sudo du -sh -- *| sort -hr 3. 常见的大文件 ~/Libraray/Caches 和 /Library/Caches ~/Libraray 和 /Library 下的 Caches 和 logs 等都是可以安全删除的。可以查看一下大小,把自己不用的 cache 删掉。 当然也可以查看 Library 下的所有大文件,确认是否可以删除 docker Docker 的 images、volumes 等可能占很大空间,可以查
Read more »

数据仓库建模 数据仓库的多维数据模型 数据仓库的多维数据模型 – 非常好的一系列文章 Kimball 维度建模 维度建模就是时刻考虑如何能够提供简单性,以业务为驱动,以用户理解性和查询性能为目标 kimball维度建模详解 维度建模分为两种表:事实表和维度表 1. 事实表:必然存在的一些数据,像采集的日志文件,订单表,都可以作为事实表 特征:是一堆主键的集合,每个主键对应维度表中的一条记录,客观存在的,根据主题确定出需要使用的数据 1. 维度表:维度就是所分析的数据的一个量,维度表就是以合适的角度来创建的表,分析问题的一个角度:时间、地域、终端、用户等角度 多维数据模型的定义和作用 多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing)。 当然,通过多维数据模型的数据展示、查询和获取就是其作用的展现,但其真的作用的实现在于,通过数据仓库可以根据不同的数据需求建立起各类多维模型,并组成数据集市开放给不同的用户群体使用,也就是根据需求定制的各类数据商品摆放在数据集市中供不同的数据消费者进行采购。 多维数据模型最大的优点就是其基于分析优化的数据组织和存储模式。 主题建模 多维分析仓库构建-面向主题的建模 构成 主题建模是对
Read more »

install quickstart Airflow is published as apache-airflow package in PyPI. Installing it however might be sometimes tricky because Airflow is a bit of both a library and application. Libraries usually keep their dependencies open and applications usually pin them, but we should do neither and both at the same time. We decided to keep our dependencies as open as possible (in setup.cfg and setup.py) so users can install different version of libraries if needed. This means that from time to time plain pip install apache-airflow will not work or will produce unusable Airflow installation. In ord
Read more »
0%