[轉]The Ultimate Guide to Secure, Harden and Improve Performance of Nginx Web Server
https://www.tecmint.com/nginx-web-server-security-hardening-and-performance-tips/?fbclid=IwAR3WRK-N-buun8QIMDUbzes72-w6p8SKCxnzr0sGU_PFAyudPRbHiumtFu0
supertest jest
Jest Expect Methods https://jestjs.io/docs/en/expect
it = test
it = test
it('count > 30', async () => {
await reqTarget.get("/members").expect(200)
.then((res) => {
//Can use foreach, more easy
for(key in res.body){
//console.log(res.body[key].cou );
if (res.body[key].cou > 100) throw new Error("count: "+res.body[key].cou +" > 30"); //for vars value check message
expect(res.body[key].cou ).toBeLessThan(30);
}
});
});
geth 新版 豪秒產生無法匯入
geth新版的geth.log 會產生豪秒
舊 INFO [04-22|16:29:56]
新 INFO [03-28|13:43:35.004]
差別在.004
看log會發現只有logstash的warning,經同事正確解釋是:
>>因為logstash轉換出來的日期格式2019-03-28 13:43:35.004,Elasticsearch不認得,所以對logstash來說是Warning,但對Elasticsearch是Error,造成Log寫不進去~
所以在logstash.conf上必須在解析date上,補上 "YYYY-MM-dd HH:mm:ss,SSS", "YYYY-MM-dd HH:mm:ss.SSS"
這樣就可以正常匯入geth.log了
舊 INFO [04-22|16:29:56]
新 INFO [03-28|13:43:35.004]
差別在.004
看log會發現只有logstash的warning,經同事正確解釋是:
>>因為logstash轉換出來的日期格式2019-03-28 13:43:35.004,Elasticsearch不認得,所以對logstash來說是Warning,但對Elasticsearch是Error,造成Log寫不進去~
所以在logstash.conf上必須在解析date上,補上 "YYYY-MM-dd HH:mm:ss,SSS", "YYYY-MM-dd HH:mm:ss.SSS"
date {
match => [ "gethdate" , "YYYY-MM-dd HH:mm:ss", "YYYY-MM-dd HH:mm:ss,SSS", "YYYY-MM-dd HH:mm:ss.SSS"]
target => "gethdate"
timezone => "Asia/Taipei"
}
這樣就可以正常匯入geth.log了
Pinta windows linux mac
幸好Paint.NET是開放原始碼的軟體,於是有位任職於Novell公司,叫做Jonathan Pobst的開發者,利用了Paint.NET的原始碼,改用Gtk#函式庫開發了一款美工軟體,取名叫「Pinta」。
https://pinta-project.com/pintaproject/pinta/
https://pinta-project.com/pintaproject/pinta/
nodejs version npm problem install & run
You can do:
1. reget git clone
2. npm install
3. remove node_module
4. npm install agin
5. npm audit fix
6. npm start or run
Sometime can Run.
1. reget git clone
2. npm install
3. remove node_module
4. npm install agin
5. npm audit fix
6. npm start or run
Sometime can Run.
ganache-cli geth test developer ethereum
ethereum
ganache-cli https://github.com/trufflesuite/ganache-cli
ganache-cli https://github.com/trufflesuite/ganache-cli
ElastAlert elasticsearch elk
docker-compose
version: '3.3'
services:
elasticsearch:
build:
context: elasticsearch/
volumes:
#- ./elasticsearch/esdata:/usr/share/elasticsearch/data:rw
- alldata:/usr/share/elasticsearch/data:rw
#- ./elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
ports:
- "9200:9200"
- "9300:9300"
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
networks:
- fastdev
logstash:
build:
context: logstash/
volumes:
- ./logstash/config/logstash.yml:/etc/logstash/logstash.yml:ro
- ./logstash/pipeline:/etc/logstash/conf.d:ro
ports:
- "5000:5000"
- "5044:5044"
environment:
LS_JAVA_OPTS: "-Xmx256m -Xms256m"
networks:
- fastdev
depends_on:
- elasticsearch
kibana:
build:
context: kibana/
volumes:
- ./kibana/config/:/usr/share/kibana/config:ro
ports:
- "5601:5601"
networks:
- fastdev
depends_on:
- elasticsearch
fakelog:
build:
context: fakelog/
volumes:
- ./fakelog/logs:/ethereum-etl/output/:rw
networks:
- fastdev
elastalert:
build:
context: elastalert/
volumes:
- ./elastalert/config/config.json:/opt/elastalert-server/config/config.json:ro
- ./elastalert/config/elastalert.yaml:/opt/elastalert/config.yaml:ro
- ./elastalert/rules:/opt/elastalert/rules:rw
- ./elastalert/rule_templates:/opt/elastalert/rule_templates:ro
ports:
- "3030:3030"
# - "3333:3333"
environment:
- net=elasticsearch
networks:
- fastdev
volumes:
alldata:
networks:
fastdev:
driver: bridge
Only elasticsearch/Dockerfile some error happen because debian mirror. Other YAML see before blogs
FROM java:8-jre
# grab gosu for easy step-down from root
ENV GOSU_VERSION 1.7
RUN set -x \
&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture)" \
&& wget -O /usr/local/bin/gosu.asc "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$(dpkg --print-architecture).asc" \
&& export GNUPGHOME="$(mktemp -d)" \
&& gpg --keyserver ha.pool.sks-keyservers.net --recv-keys B42F6819007F00F88E364FD4036A9C25BF357DD4 \
&& gpg --batch --verify /usr/local/bin/gosu.asc /usr/local/bin/gosu \
&& rm -r "$GNUPGHOME" /usr/local/bin/gosu.asc \
&& chmod +x /usr/local/bin/gosu \
&& gosu nobody true
# https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-repositories.html
# https://packages.elasticsearch.org/GPG-KEY-elasticsearch
#RUN apt-key adv --keyserver ha.pool.sks-keyservers.net --recv-keys 46095ACC8548582C1A2699A9D27D666CD88E42B4
#ENV ELASTICSEARCH_MAJOR 1.7
#ENV ELASTICSEARCH_VERSION 1.7.5
#ENV ELASTICSEARCH_REPO_BASE http://packages.elasticsearch.org/elasticsearch/1.7/debian
#RUN echo "deb $ELASTICSEARCH_REPO_BASE stable main" > /etc/apt/sources.list.d/elasticsearch.list
#RUN set -x \
# && apt-get clean && apt-get update \
# && apt-get install -y --no-install-recommends elasticsearch=$ELASTICSEARCH_VERSION \
# && rm -rf /var/lib/apt/lists/*
RUN wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | apt-key add -
RUN echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | tee -a /etc/apt/sources.list.d/elasticsearch-1.7.list
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie.list
RUN echo "deb [check-valid-until=no] http://cdn-fastly.deb.debian.org/debian jessie main" > /etc/apt/sources.list.d/jessie.list
RUN echo "deb [check-valid-until=no] http://archive.debian.org/debian jessie-backports main" > /etc/apt/sources.list.d/jessie-backports.list
RUN sed -i '/deb http:\/\/deb.debian.org\/debian jessie-updates main/d' /etc/apt/sources.list
RUN apt-get -o Acquire::Check-Valid-Until=false update && apt-get install elasticsearch
ENV PATH /usr/share/elasticsearch/bin:$PATH
WORKDIR /usr/share/elasticsearch
RUN set -ex \
&& for path in \
./data \
./logs \
./config \
./config/scripts \
; do \
mkdir -p "$path"; \
chown -R elasticsearch:elasticsearch "$path"; \
done
COPY config ./config
#VOLUME /usr/share/elasticsearch/data
COPY docker-entrypoint.sh /
RUN chmod +x /docker-entrypoint.sh
EXPOSE 9200 9300
ENTRYPOINT ["/docker-entrypoint.sh"]
CMD ["elasticsearch"]
ElastAlert/Dockerfile
FROM bitsensor/elastalert:latest
ElastAlert/config/config.json
{
"appName": "elastalert-server",
"port": 3030,
"wsport": 3333,
"elastalertPath": "/opt/elastalert",
"verbose": false,
"es_debug": false,
"debug": false,
"rulesPath": {
"relative": true,
"path": "/rules"
},
"templatesPath": {
"relative": true,
"path": "/rule_templates"
},
"es_host": "elasticsearch",
"es_port": 9200,
"writeback_index": "elastalert_status"
}
ElastAlert/config/elastalert.yaml
es_host: elasticsearch
es_port: 9200
rules_folder: rules
# How often ElastAlert will query elasticsearch
# The unit can be anything from weeks to seconds
run_every:
seconds: 5
#minutes: 1
# ElastAlert will buffer results from the most recent
# period of time, in case some log sources are not in real time
buffer_time:
minutes: 15
# If an alert fails for some reason, ElastAlert will retry
# sending the alert until this time period has elapsed
alert_time_limit:
minutes: 2
#days: 2
writeback_index: elastalert_status
#smtp_host: ""
ElastAlert/config/rules/test_metric.yaml
name: Example rule
# How often ElastAlert will query elasticsearch
# The unit can be anything from weeks to seconds
run_every:
seconds: 5
#minutes: 1
# ElastAlert will buffer results from the most recent
# period of time, in case some log sources are not in real time
buffer_time:
minutes: 15
# If an alert fails for some reason, ElastAlert will retry
# sending the alert until this time period has elapsed
alert_time_limit:
minutes: 2
#days: 2
type: metric_aggregation
index: filebeat-*
metric_agg_key: project
metric_agg_type: value_count
#query_key: "name.keyword"
doc_type: _type
max_threshold: 32
min_threshold: 19
filter:
- query:
query_string:
query: "srctype: geth AND project: hr AND mined AND geth_ip: \"xxx.xxx.xxx.xxx\""
#alert_subject: "No data on dashboard"
# "|" means remove useless characters
alert_text: |
test attach
alert_text_args: []
alert:
- "email"
email:
- "1803110@narlabes.org.tw"
ElastAlert/config/rule_templates
copy file from github or not copy.https://github.com/Yelp/elastalert/tree/master/example_rules
run ElastAlert or ElastAlert test
cd /opt/elastalert
a. elastalert
b. elastalert-test-rule ./rules/test_metric.yaml --start 2019-04-10T08:40:00.000
#At /opt/elastalert run command, it auto load config.yaml on this path. You can find "ls config.yaml".
And rules (test_metric.yaml) put on path /opt/elastalert/rules
elastalert.yml and config.json put on path /opt/elastalert-server/config
Docker-compose build Alpine image apk update fetch hangs
Alpine image apk update fetch hangs
At apk --no-cache upgrade or RUN apk update no respone
Try to login docker container run command line:
wget http://dl-cdn.alpinelinux.org/alpine/v3.9/main/x86_64/APKINDEX.tar.gz
Get status is "stalled".
PS:Error is different "no respone" or "hang"
Way one:
Answer:apk fetch hangs
https://github.com/gliderlabs/docker-alpine/issues/307
10G mtu or switch mtu
So
Into directory
docker build --network host .
Way two:
Answer:https://mlohr.com/docker-mtu/
https://medium.com/@sylwit/how-we-spent-a-full-day-figuring-out-a-mtu-issue-with-docker-4d81fdfe2caf
nano /etc/docker/daemon.json
{
"mtu": 1450
}
flutter dart Streams Future
https://www.appcoda.com.tw/flutter-introduction/
Dart 內建支援 Streams 及 Future。我的 RxJava 經驗有助我了解 Streams,而在 ES6 Promise 方面的經驗則有助我理解 Futures 和 Async/Await 的概念
Dart 內建支援 Streams 及 Future。我的 RxJava 經驗有助我了解 Streams,而在 ES6 Promise 方面的經驗則有助我理解 Futures 和 Async/Await 的概念
flutter printing
https://github.com/DavBfr/dart_pdf/tree/master/printing/example/lib
Problem is here.
Change to
find this and change
OK~
Problem is here.
image: const fw.NetworkImage('https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mp&s=200'),
Change to
import 'package:flutter/painting.dart' as fp;
find this and change
image: new fp.AssetImage("images/a123.png"),
OK~
flutter Error PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
Flutter and google_sign_in plugin: PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null)
https://stackoverflow.com/questions/54557479/flutter-and-google-sign-in-plugin-platformexceptionsign-in-failed-com-google
https://developers.google.com/android/guides/client-auth
Open %app%/android/app/build.gradle find applicationId
Here is com.example.flutter_sqlite
next next...
password use: android
Run your flutter app. Now is ok.
https://stackoverflow.com/questions/54557479/flutter-and-google-sign-in-plugin-platformexceptionsign-in-failed-com-google
1、add google-service
A:add classpath 'com.google.gms:google-services:4.2.0'
%app%/android/build.gradle
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.2.1'
classpath 'com.google.gms:google-services:4.2.0'
}
}
B:add apply plugin: 'com.google.gms.google-services'
%app%/android/app/build.gradle
apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services'
2、 get google-service.json
https://firebase.google.com/docs/flutter/setuphttps://developers.google.com/android/guides/client-auth
create app
A:create test project
go https://console.firebase.google.com/B:create application
Where get app name
Open %app%/android/app/build.gradle find applicationId
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.flutter_sqlite"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
Here is com.example.flutter_sqlite
put com.example.flutter_sqlite in app name, then next.
Download google-service.json
next next...
Copy google.service.json to %app%/android/app/
C:test app in local emu need to fingerprint.
find java jdk\bin\keytoolpassword use: android
C:\Program Files\Java\jdk1.8.0_201\bin>keytool -list -v -alias androiddebugkey -keystore %USERPROFILE%\.android\debug.keystore
copy sha1 to here
Run your flutter app. Now is ok.
flutter Undefined class 'IOClient'
https://pub.dartlang.org/packages/http#-changelog-tab-
https://stackoverflow.com/questions/48477625/how-to-use-google-api-in-flutter/48485898#48485898
The library 'package:http/http.dart' doesn't export a member with the shown name 'IOClient'
Answer:
https://stackoverflow.com/questions/48477625/how-to-use-google-api-in-flutter/48485898#48485898
The library 'package:http/http.dart' doesn't export a member with the shown name 'IOClient'
Answer:
import 'package:http/io_client.dart';
轉機股分析
https://www.mobile01.com/topicdetail.php?f=291&t=5107288&p=1162#11613
ans:其實不同的股票要注意的東西不同,沒有什麼厲害的方法可以全部套進每一家公司中,你的問題是轉機股,以前宏碁就是被我訂義成轉機股,當初我在分析轉機股時,任何一個細節我都不會放過,
一、首先,有一些新聞會說某一檔公司是轉型股,轉機股,一兩年前有人說宏達電是轉機股,但我看了它的七季財報後,沒有看到任何轉機的情況,所以是不是轉機股,你要從本業及業外看起,是不是毛利率能止住不再下跌,是不是營業費業能逐漸下降,使得營利率能上升,當公司毛利率不好時,會不是試著去降低營收,把不賺錢的產業少賣一些,然後營收下降的情況下,能把人事費用降低得更多,使得營收下降,毛利率上升,營利率因為營業費用下降,毛利率上升而上升,這是公司執行長該做的。
我們看一下影響宏碁毛利率及營利率的因素有哪些,你要用財報中,逐季的去比較會影響毛利率及營利率的因子,把每一項都列出來,然後逐季去比較是否有改善
一、營業成本 =>此為影響毛利率
1、存貨
2、無形資產
3、負債準備
4、營業租賃
5、關係人交易
6、其它
二、營業費用 =>此為影響營利率
1、員工及董事酬勞
2、股份基礎給付
3、員工福利
4、營業租賃
5、負債準備
6、無形資產
7、投資性不動產
8、不動產、廠房及設備
9、應收票據及應收帳款淨額
10、其它
二、接下來談財務成該做的,公司的其它收入,財務成本及業外匯損益,其中其它收入及財務成本細項如下,一間公司的基本體質就是其它收入-財務成本要是正的,這樣代表你不會因為負債太多而損失太多的利息,你可以逐季的看其它收入-財務成本是否有所改善。
1、其它收入
包含
1.1、銀行存款利息
1.2、公司債收入
1.3、股利收入
2、財務成本
2.1、可轉換公司債費用
2.2、銀行借款費用
2.3、其它利息費用
三、現金流量表及資產負債表,因為投資轉型股風險比較大,所以你要試著去清算公司到底還值多少價值,通常來說,一般不賺錢的公司,因為一般法人會預期,如果公司不賺錢,除非公司換新董事長或是有新的財務長,有新的產品,有厲害的工程師加入,不然不會賺錢的公司就不會賺錢,一家不會賺錢的公司要變的會賺錢,那談何容易,我舉個例,如果你哥哥是月光族,你會期待你哥下個月變不是月光族嗎?理論上不會,因為你哥的薪水就是這樣,花錢的習慣就是這樣,能力就是這樣,所以一般不賺錢的公司,外資群或法人都會把股價由淨值把7~8折,因為你投資轉機股,你最怕的就是公司轉型到一半就倒了,會倒的原因不外資是現金周轉不靈,淨值跌到太低,這也是為什麼你該去注意資產負債表及現金流量表,因為你要在這兩張表中找出值錢的東西,例如廠房,土地,現金,股票,基金,這些是很值錢的,有一些不一定值錢的如庫存,應收帳款…等,因為應收帳款不一定收得到,庫存也許是一堆垃圾,這要看不同的公司有不同的情況,最好是要找有名的會計師簽出來的,而且最好找老闆有誠信的。
ans:其實不同的股票要注意的東西不同,沒有什麼厲害的方法可以全部套進每一家公司中,你的問題是轉機股,以前宏碁就是被我訂義成轉機股,當初我在分析轉機股時,任何一個細節我都不會放過,
一、首先,有一些新聞會說某一檔公司是轉型股,轉機股,一兩年前有人說宏達電是轉機股,但我看了它的七季財報後,沒有看到任何轉機的情況,所以是不是轉機股,你要從本業及業外看起,是不是毛利率能止住不再下跌,是不是營業費業能逐漸下降,使得營利率能上升,當公司毛利率不好時,會不是試著去降低營收,把不賺錢的產業少賣一些,然後營收下降的情況下,能把人事費用降低得更多,使得營收下降,毛利率上升,營利率因為營業費用下降,毛利率上升而上升,這是公司執行長該做的。
我們看一下影響宏碁毛利率及營利率的因素有哪些,你要用財報中,逐季的去比較會影響毛利率及營利率的因子,把每一項都列出來,然後逐季去比較是否有改善
一、營業成本 =>此為影響毛利率
1、存貨
2、無形資產
3、負債準備
4、營業租賃
5、關係人交易
6、其它
二、營業費用 =>此為影響營利率
1、員工及董事酬勞
2、股份基礎給付
3、員工福利
4、營業租賃
5、負債準備
6、無形資產
7、投資性不動產
8、不動產、廠房及設備
9、應收票據及應收帳款淨額
10、其它
二、接下來談財務成該做的,公司的其它收入,財務成本及業外匯損益,其中其它收入及財務成本細項如下,一間公司的基本體質就是其它收入-財務成本要是正的,這樣代表你不會因為負債太多而損失太多的利息,你可以逐季的看其它收入-財務成本是否有所改善。
1、其它收入
包含
1.1、銀行存款利息
1.2、公司債收入
1.3、股利收入
2、財務成本
2.1、可轉換公司債費用
2.2、銀行借款費用
2.3、其它利息費用
三、現金流量表及資產負債表,因為投資轉型股風險比較大,所以你要試著去清算公司到底還值多少價值,通常來說,一般不賺錢的公司,因為一般法人會預期,如果公司不賺錢,除非公司換新董事長或是有新的財務長,有新的產品,有厲害的工程師加入,不然不會賺錢的公司就不會賺錢,一家不會賺錢的公司要變的會賺錢,那談何容易,我舉個例,如果你哥哥是月光族,你會期待你哥下個月變不是月光族嗎?理論上不會,因為你哥的薪水就是這樣,花錢的習慣就是這樣,能力就是這樣,所以一般不賺錢的公司,外資群或法人都會把股價由淨值把7~8折,因為你投資轉機股,你最怕的就是公司轉型到一半就倒了,會倒的原因不外資是現金周轉不靈,淨值跌到太低,這也是為什麼你該去注意資產負債表及現金流量表,因為你要在這兩張表中找出值錢的東西,例如廠房,土地,現金,股票,基金,這些是很值錢的,有一些不一定值錢的如庫存,應收帳款…等,因為應收帳款不一定收得到,庫存也許是一堆垃圾,這要看不同的公司有不同的情況,最好是要找有名的會計師簽出來的,而且最好找老闆有誠信的。
nosql key/value on sqlite
https://github.com/kujirahand/node-sqlite-kvs/blob/master/lib/sqlite-kvs.js
https://github.com/lukechilds/keyv/blob/master/src/index.js
https://github.com/lukechilds/keyv/blob/master/src/index.js
MX150
https://www.mobile01.com/topicdetail.php?f=159&t=5743013#5
MX250雖然數字比較大也比較新
但是它的效能並不比MX150強
理所當然還是1050(Ti)比較好
MX250 = 3.5倍 i5-8265U + UHD620
MX150 = 4.0倍 UHD620
MX230 = 2.6倍 i5-8265U + UHD620
MX130 = 2.5倍 UHD620
MX250雖然數字比較大也比較新
但是它的效能並不比MX150強
理所當然還是1050(Ti)比較好
MX250 = 3.5倍 i5-8265U + UHD620
MX150 = 4.0倍 UHD620
MX230 = 2.6倍 i5-8265U + UHD620
MX130 = 2.5倍 UHD620
訂閱:
文章 (Atom)












