MySQL InnoDB Lock Monitor 的顯示數量限制

最近看了點 MySQL InnoDB Lock Monitor 的東西,不過 MySQL 有個問題,每個 transaction 最多只會顯示 10 筆 lock 資訊(transaction 取得的 lock 非 deadlock),超過就會有一行

10 LOCKS PRINTED FOR THIS TRX: SUPPRESSING FURTHER PRINTS

找不到設定可以增加顯示數量,後來發現 MariaDB 和 Percona Server 似乎有增加設定: http://www.chriscalender.com/tag/innodb_show_locks_held/

innodb_show_verbose_locks 可以開關是否顯示詳細訊息

innodb_show_locks_held 可以設定每個 transaction lock 顯示筆數 0-1000(0 是不顯示,不是無限 XD)

要研究這訊息似乎裝個 MariaDB 或 Percona Server 會方便一點

芝諾悖論和量子力學

以前在聽芝諾悖論時,有想到這背後蘊含一個巨大的問題,就是時間、空間有沒有最小單位

但是都沒聽人,或看書上有這樣講過(以前也比較沒有讀些物理方面的科普書)

得到 APP 上吳軍的《硅谷来信》專欄,這篇《2017/07/28 对话芝诺:导致科技突破的诡辩家》,也一樣沒有這樣講,而是說微積分解決了這個悖論(但這講法其實很有問題,因為量子力學的發現,微積分那種時空是連續而可以無限分割的理想,很可能只是人類的想像而已)

最近讀《上帝掷骰子吗:量子物理史话》發現第二章 part4 尾巴有這樣來講問題

第二章在講黑體輻射實驗和普朗克發現能量的傳輸是不連續的(量子quantum 這個詞就是普朗克提出來的)

覺得很奇妙,公元前四百多年前的人,提出的問題,在兩千多年後的二十世紀初才被探究到了本質

也想看看還有沒有其他書有這樣來講芝諾悖論

Gradle 產生含 pom.xml 的 Jar 檔

build.gradle 加這些:

plugins {
    id 'maven-publish'
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

jar {
    into("META-INF/maven/$project.group/$project.name") {
        from { generatePomFileForMavenJavaPublication }
        rename ".*", "pom.xml"
    }
}

components.java 不是指 .java 檔,不用改它

然後跑 gradle publishToMavenLocal(我現在是只先做到產生 Jar 再自己上傳到 packagecloud)

其他細節參考 https://docs.gradle.org/current/userguide/publishing_maven.html

 

Spring Cloud AWS – Assume Role & Proxy configuration for STS & SQS

@Configuration
public class AppConfig {
    private static final String SESSION_NAME = "sample";

    @Value("${proxy.host:#{null}}")
    private String proxyHost;

    @Value("${proxy.port:0}")
    private int proxyPort;

    @Value("${cloud.aws.region.static}")
    private String region;

    @Bean
    @Primary
    public AWSCredentialsProvider awsCredentialsProvider(
            @Value("${cloud.aws.credentials.accessKey}") String accessKey,
            @Value("${cloud.aws.credentials.secretKey}") String secretKey,
            @Value("${cloud.aws.role}") String role) {

        AWSSecurityTokenService stsClient = AWSSecurityTokenServiceClientBuilder.standard()
                .withRegion(region)
                .withClientConfiguration(clientConfiguration())
                .withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secretKey)))
                .build();

        return new STSAssumeRoleSessionCredentialsProvider
                .Builder(role, SESSION_NAME)
                .withStsClient(stsClient)
                .build();
    }

    @Bean
    public QueueMessageHandlerFactory queueMessageHandlerFactory() {
        QueueMessageHandlerFactory factory = new QueueMessageHandlerFactory();
        MappingJackson2MessageConverter messageConverter = new MappingJackson2MessageConverter();

        messageConverter.setStrictContentTypeMatch(false);
        factory.setArgumentResolvers(Collections.singletonList(new PayloadArgumentResolver(messageConverter)));
        return factory;
    }

    @Bean(name = "amazonSQS")
    public AmazonSQSAsync amazonSQSAsyncClient(AWSCredentialsProvider awsCredentialsProvider) {
        return AmazonSQSAsyncClientBuilder.standard()
                .withRegion(region)
                .withCredentials(awsCredentialsProvider)
                .withClientConfiguration(clientConfiguration())
                .build();
    }

    @Bean
    ClientConfiguration clientConfiguration() {
        ClientConfiguration clientConfiguration = new ClientConfiguration();

        if (!StringUtils.isEmpty(proxyHost)) {
            clientConfiguration.setProxyHost(proxyHost);
            clientConfiguration.setProxyPort(proxyPort);
        }

        return clientConfiguration;
    }
}

Azure Functions 的 Java 啟動表現頗慘

先看圖

簡直慘不忍睹,問了微軟,他們建議是用 App Service 方案開啟 Always On

看 App Service 方案定價,似乎就等於租了一個虛擬機

感覺和 AWS Lambda 落差滿大,AWS Lambda 可是真的按使用計價,而且沒有這樣的 overhead

另外 Azure Functions 的 C# 表現,看起來也不如 AWS Lambda 穩定

Slack 的 GitHub App 文件

舊的 GitHub Notifications (Legacy) 標了 Legacy

新的 GitHub App 說明則有點少,另外 Google 才知道這裡有文件

https://github.com/integrations/slack

這幾項通知預設是關閉,要自己打開

These are disabled by default, and can be enabled with the /github subscribe owner/repo [feature] command:

  • reviews – Pull request reviews
  • comments – New comments on issues and pull requests
  • branches – Created or deleted branches
  • commits:all – All commits pushed to any branch

Vim 迷思

有人是真的夠神,所以用 Vim 寫 code(我坐在神人某硬2旁邊看她 Vim 噼哩啪啦狂敲過)

有人是以為用 Vim 寫 code 就能變神(這種通常是 87)

我是能不放腦袋裡的東西,都不放腦袋裡,所以都靠好的工具幫忙(幹,最好是用 Vim 的,能用自己腦袋 decompile .class file)

我們家大神都在用 VS Code 寫 Markdown….