Skip to content

Instantly share code, notes, and snippets.

@danidiaz
Last active July 2, 2019 06:36
Show Gist options
  • Save danidiaz/b6f72e983ba2a7af8e18e1e259db98bc to your computer and use it in GitHub Desktop.
Save danidiaz/b6f72e983ba2a7af8e18e1e259db98bc to your computer and use it in GitHub Desktop.
maven cargo plugin
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.6.4</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
<!--
<type>embedded</type>
-->
</container>
<!--
<deployables>
<deployable>
<groupId>danisoft</groupId>
<artifactId>spring-mvc-simple</artifactId>
<type>war</type>
</deployable>
</deployables>
-->
</configuration>
</plugin>
[INFO] --- cargo-maven2-plugin:1.6.4:run (default-cli) @ spring-mvc-simple ---
[INFO] [en2.ContainerRunMojo] Resolved container artifact org.codehaus.cargo:cargo-core-container-tomcat:jar:1.6.4 for container tomcat8x
[INFO] You did not specify a container home nor any installer. CARGO will automatically download your container's binaries from [http://repo.maven.apache.org/maven2/org/apache/tomcat/tomcat/8.5.16/tomcat-8.5.16.zip].
[INFO] [talledLocalContainer] Tomcat 8.x starting...
[INFO] [stalledLocalDeployer] Deploying [...\spring-mvc-simple\target\spring-mvc-simple.war] to [...\spring-mvc-simple\target\cargo\configurations\tomcat8x\webapps]...
http://localhost:8080/spring-mvc-simple/
And what happens if the code is embedded?
<build>
<finalName>spring-mvc-simple</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.cargo</groupId>
<artifactId>cargo-maven2-plugin</artifactId>
<version>1.6.4</version>
<configuration>
<container>
<containerId>tomcat8x</containerId>
<type>embedded</type>
</container>
It still works, and the war still seems to be deployed.
[ERROR] Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.6.4:run (default-cli) on project spring-mvc-simple: Execution default-cli of goal org.codehaus.cargo:cargo-maven2-plugin:1.6.4:run failed: Failed to create deployable with implementation class org.codehaus.cargo.container.tomcat.TomcatWAR for the parameters (container [id = [tomcat8x]], deployable type [war]).: InvocationTargetException: Failed to parse Tomcat WAR file in [...\spring-mvc-simple\target\spring-mvc-simple.war]:
https://medium.com/@joshtodd/why-confluence-is-better-than-google-docs-for-team-collaboration-a382a0a370ad
https://www.atlassian.com/software/bamboo/comparison/bamboo-vs-jenkins
Running multiple Tomcat 7.x / Tomcat 8.x / Tomcat 9.x embedded containers within the same JVM
Tomcat 7.x has introduced a class called TomcatURLStreamHandlerFactory where the singleton has a static instance field and a final registered attribute which are not always in sync and cause unexpected exceptions. Due to this, it is not possible to execute Tomcat 7.x, Tomcat 8.x and / or Tomcat 9.x embedded in the same JVM, in addition running one of these Tomcat embedded versions one after the other within the same JVM but different classpaths might also fail.
If you want to be safe, prefer using the Installed Container.
Datasource and Resource configuration
In addition to the forementioned properties, this container configuration can also set up datasources and/or resources.
For more details, please read: DataSource and Resource Support.
https://gist.github.com/danidiaz/b6f72e983ba2a7af8e18e1e259db98bc/edit
With Tomcat 8, the Tomcat manager has multiple aspects to be careful about:
Your browser by default accesses the HTML-based manager whereas CARGO needs to use the text-based manager. As a result, if you want to set the RemotePropertySet.URI manually, please make sure you set the URL for the text-based manager, for example http://production27:8080/manager/text
The text-based manager requires to be accessed by a user with the manager-script role; and by default no user has that role. As a result, please make sure you modify your tomcat-users.xml file to give that role to a user.
You can read more in the Tomcat documentation: http://tomcat.apache.org/tomcat-8.0-doc/manager-howto.html
This standalone program without url doesn't work:
> mvn clean verify org.codehaus.cargo:cargo-maven2-plugin:run -Dcargo.maven.containerId=tomcat8x
[ERROR] Failed to execute goal org.codehaus.cargo:cargo-maven2-plugin:1.6.4:run (default-cli) on project spring-mvc-simple: If you specify a containerId, you also need to specify a containerUrl. -> [Help 1]
https://stackoverflow.com/questions/30243869/how-do-i-start-and-stop-a-cargo-container-using-m2eclipse
https://stackoverflow.com/questions/14808456/tomcat-integration-in-eclipse-with-maven
http://maven.apache.org/components/surefire/maven-failsafe-plugin/examples/inclusion-exclusion.html
By default, the Failsafe Plugin will automatically include all test classes with the following wildcard patterns:
"**/IT*.java" - includes all of its subdirectories and all Java filenames that start with "IT".
"**/*IT.java" - includes all of its subdirectories and all Java filenames that end with "IT".
"**/*ITCase.java" - includes all of its subdirectories and all Java filenames that end with "ITCase".
http://maven.apache.org/surefire/maven-surefire-plugin/examples/inclusion-exclusion.html
By default, the Surefire Plugin will automatically include all test classes with the following wildcard patterns:
"**/Test*.java" - includes all of its subdirectories and all Java filenames that start with "Test".
"**/*Test.java" - includes all of its subdirectories and all Java filenames that end with "Test".
"**/*Tests.java" - includes all of its subdirectories and all Java filenames that end with "Tests".
"**/*TestCase.java" - includes all of its subdirectories and all Java filenames that end with "TestCase".
https://maven.apache.org/plugins/maven-verifier-plugin/
http://kinoshita.eti.br/2016/03/20/deploying-war-files-to-tomcat-with-jenkins/
https://zeroturnaround.com/rebellabs/the-correct-way-to-use-integration-tests-in-your-build-process/
https://codehaus-cargo.github.io/cargo/Embedded+Container.html
Be very careful when using embedded containers
Embedded containers, since they run in an existing JVM, will come with a large number of limitations:
Any existing JVM setting, such as JVM properties or debuggers, will be inherited from the parent JVM and cannot be changed.
Some features such as logging might not work as expected as they inherit existing Java logger settings.
You might very quickly run into a JAR hell. While the Cargo samples' EmbeddedContainerClasspathResolver.java might give you ideas on how to avoid it, this might not work in all circumstances.
If you are using either the ANT tasks or Maven2/Maven3 plugin, the container will most likely inherit even more "uncontrollable" items that come from these tools.
When using embedded containers with the Maven2/Maven3 plugin, Cargo will be deciding on the version of the container you use - and you cannot change it.
Again when using embedded containers with the Maven2/Maven3 plugin, Cargo will only load a minimal set of dependencies and advanced features might be missing.
Some containers contain classed that have final attributes defined on certain classes, that remain set to their updated values even if you reset the class loader - The only way to revert this is to restart the JVM. This implies that:
It might not possible to execute different versions of these containers in the same JVM
It might also not be possible to run two embedded container instances one after the other within the same JVM but different classpaths
As a result, except in cases where you have a compelling reason to use an embedded container, please use an Installed Container instead.
https://codehaus-cargo.github.io/cargo/Features.html
https://stackoverflow.com/questions/32263091/debug-tomcat-deployed-code-with-cargo-plugin
https://codehaus-cargo.github.io/cargo/Debugging.html
https://stackoverflow.com/questions/32263091/debug-tomcat-deployed-code-with-cargo-plugin
https://stackoverflow.com/questions/36446085/local-debugging-application-launched-on-tomcat-with-cargo-in-intellij
https://www.onehippo.org/12/library/development/run-and-develop-with-cargo.html
https://briglamoreaux.wordpress.com/2011/07/05/debugging-a-tomcat-application/
Configuring the Maven Cargo plug-in. (Deploys the project to Tomcat with debug args)
Attaching Eclipse to a remote process.
http://commons.apache.org/proper/commons-collections/javadocs/api-release/org/apache/commons/collections4/keyvalue/MultiKey.html
https://stackoverflow.com/questions/46489376/which-haskell-functors-are-equivalent-to-the-reader-functor/46502280#46502280
Anyhow, Naperian is indeed a funny local Scottish name for Representable, which are the things for which you can build a table of logs: they are the constructions characterized entirely by projection, offering no choice of 'shape'.
https://hackage.haskell.org/package/representable-functors-3.2.0.2/docs/Data-Functor-Representable.html
https://tlovering.wordpress.com/2011/08/03/representable-functors/
In this post I want to review some basic general properties of representable functors. It seems these `God-given’ machines play important roles in all sorts of different ways throughout algebraic geometry (and presumably other categorically founded areas of mathematics).
https://unapologetic.wordpress.com/2007/06/04/representable-functors/
http://covariant.me/notes/rep-functors.html
http://comonad.com/reader/2013/representing-applicatives/
http://hackage.haskell.org/package/adjunctions-4.3/docs/Data-Functor-Rep.html
https://stackoverflow.com/questions/15496/hidden-features-of-java
https://docs.oracle.com/javase/tutorial/java/generics/bounded.html
https://en.wikipedia.org/wiki/Data_domain
In data management and database analysis, a data domain refers to all the values which a data element may contain. The rule for determining the domain boundary may be as simple as a data type with an enumerated list of values.[1]
For example, a database table that has information about people, with one record per person, might have a "gender" column. This gender column might be declared as a string data type, and allowed to have one of three known code values: "M" for male, "F" for female, and "Q" for genderqueer—and NULL (or arguably "U") for records where gender is unknown or not applicable. The data domain for the gender column is: "M", "F", "Q".
Java Generics book : this is our first example of type variables with mutually recursive bounds.
https://stackoverflow.com/questions/5929689/possibly-recursive-java-generics-between-two-classes
https://stackoverflow.com/questions/23248103/example-8-1-2-1-of-java-language-specificationmutually-recursive-type-variable
https://stackoverflow.com/questions/28180036/java-nested-recursive-generics
https://stackoverflow.com/questions/13101991/java-generics-make-generic-to-extends-2-interfaces/13261667
https://stackoverflow.com/questions/7385949/what-does-recursive-type-bound-in-generics-mean
What is recursive type bound
This: <T extends Comparable<T>>
Note that the type parameter T is also part of the signature of the super interface Comparable<T>.
and how does the above piece of code help achieve mutual comparability?
It ensures that you can only compare objects of type T. Without the type bound, Comparable compares any two Objects. With the type bound, the compiler can ensure that only two objects of type T are compared.
https://stackoverflow.com/questions/42683494/list-of-recursive-generic-type
https://youtu.be/sT6VJkkhy0o?t=353 "Writing test data by hand is even harder work."
https://stackoverflow.com/questions/2900881/generic-type-parameter-naming-convention-for-java-with-multiple-chars
https://dzone.com/articles/enum-tricks-dynamic-enums
https://stackoverflow.com/questions/2253750/compare-two-json-objects-in-java
Having said that, I'm currently a big fan of Jackson which my quick read of their ObjectNode.equals() implementation suggests does the set membership comparison that you want
https://www.mkyong.com/java/how-to-convert-java-object-to-from-json-jackson/
http://www.baeldung.com/jackson-object-mapper-tutorial
http://tutorials.jenkov.com/java-json/jackson-objectmapper.html
http://www.concretepage.com/jackson-api/read-write-json-using-jackson-objectmapper-jsonparser-jsongenerator-example
http://websystique.com/java/json/jackson-convert-java-object-to-from-json/
https://stackoverflow.com/questions/11828368/convert-java-object-to-jsonnode-in-jackson
As of Jackson 1.6, you can use:
JsonNode node = objectMapper.valueToTree(map);
or
JsonNode node = mapper.convertValue(object, JsonNode.class);
Source: is there a way to serialize pojo's directly to treemodel?
https://stackoverflow.com/questions/14208126/how-do-i-create-a-complex-json-object-in-java
https://stackoverflow.com/questions/23006241/converting-pojo-to-jsonnode-using-a-jsonview
https://stackoverflow.com/questions/11828368/convert-java-object-to-jsonnode-in-jackson?rq=1
http://www.baeldung.com/jackson-json-node-tree-model
https://stackoverflow.com/questions/6967583/jackson-is-there-a-way-to-serialize-pojos-directly-to-treemodel
https://fasterxml.github.io/jackson-databind/javadoc/2.7/com/fasterxml/jackson/databind/ObjectMapper.html?is-external=true
http://www.baeldung.com/jackson-json-node-tree-model
http://javausecase.com/2017/02/24/check-two-json-objects-for-equality-jackson/
http://jsonassert.skyscreamer.org/
https://stackoverflow.com/questions/34134263/is-it-possible-to-collect-a-stream-to-two-different-collections-using-one-line/34137870#34137870
https://stackoverflow.com/questions/30210547/grouping-by-object-value-counting-and-then-setting-group-key-by-maximum-object/30211021#30211021
https://stackoverflow.com/questions/32268507/how-to-make-an-efficient-hashcode
https://blog.jooq.org/2015/02/05/top-10-easy-performance-optimisations-in-java/
https://www.sitepoint.com/how-to-implement-javas-hashcode-correctly/
http://java-performance.info/hashcode-method-performance-tuning/
http://illegalargumentexception.blogspot.com.es/2014/11/java-equals-and-hashcode-performance.html
http://download.java.net/java/jdk9/docs/api/java/util/Objects.html
https://stackoverflow.com/questions/20686055/how-to-write-the-hashcode-function-for-a-cyclic-graph-node
https://stackoverflow.com/questions/8863308/implementing-equals-and-hashcode-for-objects-with-circular-references-in-java
Caching hashCodes
https://stackoverflow.com/questions/18473071/how-caching-hashcode-works-in-java-as-suggested-by-joshua-bloch-in-effective-jav
Tests with ping:
https://khmarbaise.github.io/maui/it-example-container.html
No need to deploy if you are using Cargo to start your container
If you are using Cargo for starting your container, Cargo will actually be doing a static deployment of all your <deployables> automatically. So, no need to deploy anything manually in that case!
https://codehaus-cargo.github.io/cargo/Deploying+to+a+running+container.html
https://codehaus-cargo.github.io/cargo/Maven2+Plugin+Reference+Guide.html#Maven2PluginReferenceGuide-deployable
Defaults to the project's artifact id
Defaults to the project's group id
<pingUrlPath>
URL path used to ping the deployed or undeployed application. It has similar functionality as <pingURL>, but in this case there is omitted protocol, server and port informations - they are retrieved from container configuration. For example for URL http://localhost:8080/cargo its URL path is just /cargo.
https://blog.philipphauer.de/dont-use-in-memory-databases-tests-h2/
https://dzone.com/articles/junit-spring-%E2%80%93-what-you-don%E2%80%99t
@SpringApplicationConfiguration
@ContextConfiguration + @RunWith(SpringJUnit4ClassRunner.class) is enough?
https://stackoverflow.com/questions/28560734/how-to-run-junit-springjunit4classrunner-with-parametrized
https://stackoverflow.com/questions/39020238/difference-between-springapplicationconfiguration-and-contextconfiguration
<deployables>
<deployable>
<pingUrlPath>/spring-mvc-simple</pingUrlPath>
</deployable>
</deployables>
<configuration>
https://stackoverflow.com/questions/33807399/multiple-configurations-in-spring-junit-test-class
https://stackoverflow.com/questions/23618039/spring-contextconfiguration
https://stackoverflow.com/questions/28560734/how-to-run-junit-springjunit4classrunner-with-parametrized
https://stackoverflow.com/questions/39020238/difference-between-springapplicationconfiguration-and-contextconfiguration
https://github.com/sbrannen/spring-test-junit5/issues/6
https://skillsmatter.com/skillscasts/10749-algebraic-design-of-dsls
https://dzone.com/articles/streams-vs-decorators
https://stackoverflow.com/questions/33289013/maven-and-profiles-using-the-same-plugin-in-two-different-profiles-and-have-bot
https://dba.stackexchange.com/questions/134709/replicate-data-from-one-db-to-another-db-server-using-automated-process
https://stackoverflow.com/questions/44810039/copy-table-having-millions-of-records-from-one-database-to-another-spring-boot
https://stackoverflow.com/questions/40437848/copy-data-between-different-databases-both-are-jdbc-supported/42960998
https://stackoverflow.com/questions/15222679/synchronizing-table-data-across-databases
https://stackoverflow.com/questions/8285256/copy-table-from-one-database-to-another
https://stackoverflow.com/questions/37526369/spring-restful-web-services-high-volume-data-processing
https://spring.io/guides/gs/batch-processing/
https://dmp.fabric8.io/
https://blog.philipphauer.de/dont-use-in-memory-databases-tests-h2/
In the Maven world, there is the nice io.fabric8:docker-maven-plugin for controlling docker containers. I also created the small project db-container-managed-by-maven as a showcase. The important parts of the pom.xml are:
https://mail-archives.apache.org/mod_mbox/maven-users/200908.mbox/%3C88c1b40908200129h29745c6ft82c3340a151caf32@mail.gmail.com%3E
What you are doing is unsupported.
In any one build section, you should only ever list a plugin once.
https://stackoverflow.com/questions/40437848/copy-data-between-different-databases-both-are-jdbc-supported/42960998
Sure, it is possible in a very easy way if the schemata are the same. And since you created both databases with the same Hibernate mapping they should be equal in the Entity sense.
You only need two Hibernate persistence units (datasources). If both are configured properly and you have the particular EntityManager instances handy, just go down to the Hibernate Session level - as far as I know JPA does not support that in this way (correct me if I'm wrong) - and replicate your source entity to your target database.
Because I like to work with Spring, I will use Spring Boot for the following example. Except of the configuration the replication step would be implemented the same with any Hibernate application.
I'm also using two PostgreSQL databases instead of an HSQLB only to keep it simple. Just extend the configuration part if your configurations drift apart, the only difference between my persistence units is the datasource url.
http://www.objectdb.com/java/jpa/persistence/overview
https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach
https://stackoverflow.com/questions/9481865/getting-the-ip-address-of-the-current-machine-using-java
"Rollback semantics for integration tests in the Spring TestContext Framework default to true even if @Rollback is not explicitly declared." https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#integration-testing-support-jdbc
"Rollback transaction after @Test https://stackoverflow.com/a/12626636 "By default Spring will start a new transaction surrounding your test method and @Before/@After callbacks"
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testcontext-executing-sql-declaratively
Executing SQL scripts declaratively with @Sql
How to execute @Sql before a @Before method
https://stackoverflow.com/questions/27126974/how-to-execute-sql-before-a-before-method
https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#testcontext-executing-sql-declaratively
@Test
@Sql(
scripts = "create-test-data.sql",
config = @SqlConfig(transactionMode = ISOLATED)
)
@Sql(
scripts = "delete-test-data.sql",
config = @SqlConfig(transactionMode = ISOLATED),
executionPhase = AFTER_TEST_METHOD
)
public void userTest {
// execute code that needs the test data to be committed
// to the database outside of the test's transaction
}
ISOLATED
Indicates that SQL scripts should always be executed in a new, isolated transaction that will be immediately committed.
https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/context/jdbc/SqlConfig.TransactionMode.html
https://github.com/SeleniumHQ/htmlunit-driver
http://htmlunit.sourceforge.net/
http://www.baeldung.com/htmlunit
https://docs.spring.io/spring/docs/4.2.10.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#spring-mvc-test-server-htmlunit
This would reduce the risk of our test incorrectly passing, but there are still some problems.
What if we have multiple forms on our page? Admittedly we could update our xpath expressions, but they get more complicated the more factors we take into account (Are the fields the correct type? Are the fields enabled? etc.).
Another issue is that we are doing double the work we would expect. We must first verify the view, and then we submit the view with the same parameters we just verified. Ideally this could be done all at once.
Finally, there are some things that we still cannot account for. For example, what if the form has JavaScript validation that we wish to test as well?
The overall problem is that testing a web page does not involve a single interaction. Instead, it is a combination of how the user interacts with a web page and how that web page interacts with other resources. For example, the result of a form view is used as the input to a user for creating a message. In addition, our form view may potentially utilize additional resources which impact the behavior of the page, such as JavaScript validation.
Integration testing to the rescue?
To resolve the issues above we could perform end-to-end integration testing, but this has some obvious drawbacks. Consider testing the view that allows us to page through the messages. We might need the following tests.
Does our page display a notification to the user indicating that no results are available when the messages are empty?
Does our page properly display a single message?
Does our page properly support paging?
To set up these tests, we would need to ensure our database contained the proper messages in it. This leads to a number of additional challenges.
Ensuring the proper messages are in the database can be tedious; consider foreign key constraints.
Testing can become slow since each test would need to ensure that the database is in the correct state.
Since our database needs to be in a specific state, we cannot run tests in parallel.
Performing assertions on things like auto-generated ids, timestamps, etc. can be difficult.
These challenges do not mean that we should abandon end-to-end integration testing altogether. Instead, we can reduce the number of end-to-end integration tests by refactoring our detailed tests to use mock services which will execute much faster, more reliably, and without side effects. We can then implement a small number of true end-to-end integration tests that validate simple workflows to ensure that everything works together properly.
Enter HtmlUnit Integration
So how can we achieve a balance between testing the interactions of our pages and still retain good performance within our test suite? The answer is: "By integrating MockMvc with HtmlUnit."
HtmlUnit Integration Options
There are a number of ways to integrate MockMvc with HtmlUnit.
MockMvc and HtmlUnit: Use this option if you want to use the raw HtmlUnit libraries.
MockMvc and WebDriver: Use this option to ease development and reuse code between integration and end-to-end testing.
MockMvc and Geb: Use this option if you would like to use Groovy for testing, ease development, and reuse code between integration and end-to-end testing.
https://www.guru99.com/selenium-with-htmlunit-driver-phantomjs.html
HTMLUnitDriver
HTML UnitDriver is the most light weight and fastest implementation headless browser for of WebDriver. It is based on HtmlUnit. It is known as Headless Browser Driver. It is same as Chrome, IE, or FireFox driver, but it does not have GUI so one cannot see the test execution on screen.
Features of HTML unit driver
Support for the HTTPS and HTTP protocols
Support for HTML responses ( clicking links, submitting forms, walking the DOM model of the HTML document etc.)
Support for cookies
Proxy server support
Support for basic and NTLM authentication
Excellent JavaScript support
Support for submit methods GET and POST
Ability to customize the request headers being sent to the server
Ability to determine whether failing responses from the server should throw exceptions or should be returned as pages of the appropriate type
https://docs.spring.io/spring/docs/4.2.10.BUILD-SNAPSHOT/spring-framework-reference/htmlsingle/#spring-mvc-test-server-htmlunit
https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-htmlunit-driver
https://www.thecodingforums.com/threads/hashing-strings-to-integers-for-sqlite3-keys.971323/
https://softwareengineering.stackexchange.com/questions/294057/is-using-hashes-for-primary-keys-a-good-idea
https://softwareengineering.stackexchange.com/questions/189026/why-is-the-usage-of-string-keys-generally-considered-to-be-a-bad-idea
https://stackoverflow.com/questions/23750812/pros-and-cons-of-using-md5-hash-as-the-primary-key-vs-use-a-int-identity-as-the
https://stackoverflow.com/questions/2250545/performance-penalty-of-strings-as-primary-key
https://stackoverflow.com/questions/10763865/primary-key-mysql-using-auto-increment-id-or-a-sha1-hash
https://stackoverflow.com/questions/30222685/should-a-primary-key-which-is-a-hash-be-stored-as-binary-or-char-in-hex
https://tomharrisonjr.com/uuid-or-guid-as-primary-keys-be-careful-7b2aa3dcb439
https://news.ycombinator.com/item?id=14523523
https://stackoverflow.com/questions/22323384/how-to-use-string-hashcode-to-generate-primary-keys
https://stackoverflow.com/questions/25906838/java-string-conversion-for-db-primary-key
https://stackoverflow.com/questions/179085/multiple-indexes-vs-multi-column-indexes
https://stackoverflow.com/questions/2349817/two-single-column-indexes-vs-one-two-column-index-in-mysql
http://use-the-index-luke.com/sql/where-clause/the-equals-operator/concatenated-keys
https://www.sqlinthewild.co.za/index.php/2010/09/14/one-wide-index-or-multiple-narrow-indexes/
https://community.oracle.com/thread/3876250?start=0&tstart=0
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:596027700346616961
https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/intro/src/tpc/db2z_indexkeys.html
http://www.dba-oracle.com/t_composite_index_multi_column_ordering.htm
http://jsfiddle.net/danidiaz/frscd95r/
http://jsfiddle.net/danidiaz/frscd95r/embedded/result/
https://webapps.stackexchange.com/questions/26730/can-full-screen-mode-be-activated-in-jsfiddle/26741
https://www.amcharts.com/javascript-maps/
https://www.amcharts.com/demos/zooming-to-countries-map/
https://www.amcharts.com/kbase/adding-event-listeners-within-chart-config/
http://jsfiddle.net/danidiaz/zqcgc4oy/
https://www.amcharts.com/knowledge-base/
https://www.amcharts.com/kbase/using-events/
https://api.highcharts.com/highcharts/plotOptions.treemap.events
http://www.idug.org/p/bl/et/blogid=2&blogaid=602#.Wka1mUSe158.linkedin
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_tjvbtupd.html
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.1.0/com.ibm.db2.luw.apdv.java.doc/src/tpc/imjcc_tjvbtupd.html
https://stackoverflow.com/questions/1098814/how-do-i-use-db2-explain
https://www.ibm.com/us-en/marketplace/ibm-data-studio
[Tools for collecting and analyzing explain information](https://www.ibm.com/support/knowledgecenter/SSEPGG_11.1.0/com.ibm.db2.luw.admin.perf.doc/doc/c0005135.html)
Detailed query optimizer information that enables the in-depth analysis of
an access plan is stored in explain tables that are separate from the
actual access plan itself. Use one or more of the following methods to get
information from the explain tables: Use the db2exfmt tool to display
explain information in formatted output. Write your own queries against
the explain tables. Writing your own queries enables the easy manipulation
of output, comparisons among different queries, or comparisons among
executions of the same query over time.
https://www.ibm.com/developerworks/downloads/im/data/index.html
https://docs.jboss.org/hibernate/orm/3.2/api/org/hibernate/jdbc/Batcher.html
https://vladmihalcea.com/how-to-batch-insert-and-update-statements-with-hibernate/
Now that we managed to configure Hibernate for JDBC batching, we can benchmark the performance gain of statement grouping.
the test case uses a PostgreSQL database installed on the same machine with the currently running JVM
a batch size of 50 was chosen and each test iteration increases the statement count by an order of magnitude
all durations are expressed in milliseconds
https://stackoverflow.com/questions/2309970/named-parameters-in-jdbc
http://www.baeldung.com/java-date-to-localdate-and-localdatetime
https://stackoverflow.com/questions/20883964/what-is-the-max-jdbc-batch-size
https://stackoverflow.com/questions/19536513/addbatch-used-together-with-autocommit-true
Batch size limit when using Db2 Universal JDBC Driver is 32K due to limitation of DRDA architecture
http://www-01.ibm.com/support/docview.wss?uid=swg21251923
https://stackoverflow.com/questions/2895342/java-how-can-i-split-an-arraylist-in-multiple-small-arraylists
Tips for getting the best INSERT performance
http://www.idug.org/p/bl/et/blogid=2&blogaid=602#.Wka1mUSe158.linkedin
spring testing properties https://docs.spring.io/spring/docs/current/spring-framework-reference/testing.html#integration-testing-annotations-spring
2.3 Spring Environment Properties https://www.youtube.com/watch?v=af6L75C9CSY
https://stackoverflow.com/questions/43933818/how-to-set-datasource-connection-pool-properties-in-cargo-maven-plugin
https://codehaus-cargo.github.io/cargo/DataSource+and+Resource+Support.html
http://tomee.apache.org/datasource-config.html
[jpa criteria bulk update and delete](https://vladmihalcea.com/jpa-criteria-api-bulk-update-delete/)
http://public.dhe.ibm.com/ps/products/db2/info/vr111/pdf/en_US/sqlbook.pdf
pg 676 data-change-table-reference
> A data-change-table-reference clause specifies an intermediate result table. This
table is based on the rows that are directly changed by the searched UPDATE,
searched DELETE, or INSERT statement that is included in the clause. A
data-change-table-reference can be specified as the only table-reference in the
FROM clause of the outer fullselect that is used in a select-statement, a SELECT
INTO statement, or a common table expression. A data-change-table-reference can
be specified as the only table reference in the only fullselect in a SET Variable
statement (SQLSTATE 428FL). The target table or view of the data change
statement is considered to be a table or view that is referenced in the query;
therefore, the authorization ID of the query must have SELECT privilege on
that target table or view. A data-change-table-reference clause cannot be specified
in a view definition, materialized query table definition, or FOR statement
(SQLSTATE 428FL).
Use the SELECT FROM INSERT statement to insert a row into a parent table and retrieve the value of a primary key that was generated by DB2 (a ROWID or identity column). In another INSERT statement, specify this generated value as a value for a foreign key in a dependent table.
https://www.ibm.com/support/knowledgecenter/en/SSEPEK_10.0.0/apsg/src/tpc/db2z_selectvalueinsert.html
https://hub.docker.com/r/ibmcom/db2express-c/
https://vladmihalcea.com/how-to-install-db2-express-c-on-docker-and-set-up-the-jdbc-connection-properties/
https://github.com/IMC3ofC/db2express-c.docker
http://www.logicbig.com/tutorials/spring-framework/spring-core/property-editors/
https://www.intertech.com/Blog/small-but-powerful-spring-3-type-conversion-system/ https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/support/ConversionServiceFactoryBean.html
https://stackoverflow.com/questions/41025627/how-can-i-name-a-service-with-multiple-names-in-spring
https://stackoverflow.com/questions/24066425/two-beans-with-the-same-name-results-in-conflictingbeandefinitionexception-despi
https://stackoverflow.com/questions/9106416/difference-between-qualifier-and-resource
https://stackoverflow.com/questions/45910669/spring-qualifier-isnt-working-without-primary
https://spring.io/blog/2014/11/04/a-quality-qualifier
https://dzone.com/articles/spring-autowire-with-qualifiers
https://moelholm.com/2016/10/23/spring-bean-qualification/
https://hantsy.gitbooks.io/build-a-restful-app-with-spring-mvc-and-angularjs/content/getting-started/profile.html
https://stackoverflow.com/questions/10041410/default-profile-in-spring-3-1
https://docs.spring.io/spring/docs/4.2.0.RELEASE/spring-framework-reference/htmlsingle/#beans-definition-profiles-default
https://javapapers.com/spring/spring-conditional-annotation/
https://moelholm.com/2016/10/23/spring-bean-qualification/
https://stackoverflow.com/questions/48557511/rendering-a-page-with-html2canvas-as-if-the-browser-window-had-a-different-size
https://autohotkey.com/board/topic/5074-map-caps-lock-to-ctrl-and-arrow-keys/
Capslock::Ctrl
Makes Capslock become a Control key. To retain the ability to turn Capslock on and off, add the remapping +Capslock::Capslock first. This toggles Capslock on and off when you hold down the Shift key and press Capslock. Because both remappings allow additional modifier keys to be held down, the more specific +Capslock::Capslock remapping must be placed first for it to work.
https://autohotkey.com/docs/misc/Remap.htm
https://autohotkey.com/docs/Hotkeys.htm
Right Alt key. Corresponds to the >! hotkey prefix.
Note: If your keyboard layout has AltGr instead of RAlt, you can probably use it as a hotkey prefix via <^>! as described here. In addition, LControl & RAlt:: would make AltGr itself into a hotkey.
https://autohotkey.com/board/topic/100242-how-to-add-more-letters-to-%C2%B4-%C2%A8-dead-keys-in-a-spanish-keyboard/
https://autohotkey.com/board/topic/73437-how-to-create-a-dead-key/
https://docs.spring.io/spring/docs/4.2.x/spring-framework-reference/html/jmx.html
https://www.packtpub.com/books/content/using-spring-jmx-within-java-applications
https://www.ibm.com/support/knowledgecenter/en/SSAW57_8.5.5/com.ibm.websphere.nd.doc/ae/cspr_data_access_tran2.html
Registering Spring MBeans in the application server
https://stackoverflow.com/questions/28607506/disabling-jmx-in-a-spring-application
https://stackoverflow.com/questions/22789428/cannot-integrate-jmx-with-spring-application
https://looksok.wordpress.com/2016/06/19/spring-jmx-manage-beans-in-runtime/
https://archive.org/stream/MSXExtra28/MSX_Extra_28#page/n11/mode/2up
https://forums.tigsource.com/index.php?topic=42344.msg1371555#msg1371555
https://logback.qos.ch/manual/mdc.html
The implementation of the factor(int number) method is of particular relevance. It starts by putting the client's hostname into the MDC under the key client. The number to factor, as requested by the client, is put into the MDC under the key number. After computing the distinct factors of the integer parameter, the result is returned to the client. Before returning the result however, the values for the client and number are cleared by calling the MDC.remov
https://www.youtube.com/watch?v=X7Gn-XUKPXE conntaître.
https://softwareengineeringdaily.com/2018/10/15/data-warehouse-with-christian-kleinerman/
https://softwareengineeringdaily.com/2016/02/29/continuous-delivery-with-flo-motlik/
https://softwareengineering.stackexchange.com/questions/308515/whats-the-point-of-running-unit-tests-on-a-ci-server
https://softwareengineering.stackexchange.com/questions/367771/why-wouldnt-my-team-want-to-run-unit-tests-automatically
https://softwareengineering.stackexchange.com/questions/353178/should-automated-unit-tests-be-part-of-the-build?rq=1
https://www.youtube.com/watch?v=WhHcYofEqxI
https://stackoverflow.com/questions/17117589/how-can-i-skip-tests-in-maven-install-goal-while-running-them-in-maven-test-goa
https://medium.com/@andrey_cheptsov/mastering-intellij-idea-keyboard-shortcuts-62e95883dcc5
https://www.infoq.com/articles/service-delivery-review-missing-devops-feedback-loop
https://www.youtube.com/watch?v=SUpnzspMFkI
https://medium.com/@andrey_cheptsov/top-20-navigation-features-in-intellij-idea-ed8c17075880
https://twitter.com/Kiview/status/1060446112568561664
https://github.com/testcontainers/testcontainers-java/releases/tag/1.10.0
https://www.ibm.com/blogs/cloud-computing/2018/05/08/ibm-red-hat-expand-partnership-cloud/
https://developer.ibm.com/recipes/tutorials/ibm-db2-on-ibm-cloud-private-with-redhat-openshift/
https://developer.ibm.com/articles/dm-1602-db2-docker-trs/
https://access.redhat.com/documentation/en-us/red_hat_jboss_bpm_suite/6.0/html/installation_guide/special_setup_for_ibm_db2_database
https://www.ibm.com/cloud/partners/ibm-redhat
https://access.redhat.com/solutions/3530941
https://blog.openshift.com/openshift-connecting-database-using-port-forwarding/
One of the benefits of OpenShift over a traditional Platform-as-a-Service (PaaS) is that you can have access to persistent volumes. This means you can attach storage to your web applications or run applications such as databases.
https://docs.openshift.com/container-platform/3.3/dev_guide/integrating_external_services.html
http://www.middlecon.se/wp-content/uploads/Data_Server_Day-Db2_Private_Cloud-2018-May-09.pdf
https://twitter.com/pibesdesistemas/status/972066769782345728
https://www.baeldung.com/java-replace-if-statements
https://spring.io/blog/2018/11/08/spring-boot-in-a-container
https://www.ibm.com/support/knowledgecenter/en/SSEPGG_10.1.0/com.ibm.db2.luw.qb.server.doc/doc/r0024443.html
https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.dbobj.doc/doc/r0056470.html
https://twitter.com/mgielissen/status/1066346955129917440
https://stackoverflow.com/questions/30335052/absolute-positioning-error-in-internet-explorer-11
http://conjugator.reverso.net/conjugation-french-verb-faire.html
http://conjugator.reverso.net/conjugation-french-verb-aller.html
http://conjugator.reverso.net/conjugation-french-verb-venir.html
https://itnext.io/console-rules-b30560fc2367
https://www.craftofcoding.com/creating-openshift-apps-2-docker-image-s2i/
https://developers.redhat.com/blog/2018/12/07/kubernetes-application-server/
https://twitter.com/lukaseder/status/1072491086180954112 https://www.jooq.org/doc/3.0/manual/sql-building/column-expressions/aliased-columns/ jooq aliases
https://www.youtube.com/playlist?list=PLaR6Rq6Z4IqctmZiEgyO64ymwcfC77Nmv
https://github.com/openshift/origin/issues/18932
https://twitter.com/JoeIngeno/status/1076259098285477890
https://github.com/angoca/db2-cheat-sheet/blob/master/Db2CheatSheetForDev.pdf
https://stackoverflow.com/questions/38926063/how-do-you-remove-the-deploymentconfig-image-streams-etc-using-openshift-oc
https://www.infoq.com/presentations/kubernetes-tools
https://www.youtube.com/watch?v=U5Xvcl95n7A Migrating your Red Hat JBoss Enterprise Application Platform Applications into Red Hat OpenShift
https://stackoverflow.com/questions/3513650/timing-a-commands-execution-in-powershell
https://exercism.io/
https://dzone.com/articles/spring-boot-magic-explained-embedded-web-servers-v
https://twitter.com/AdamBien/status/1087610788183969793 Cloud native Java EE on OpenShift.
https://twitter.com/software_daily/status/1088225370518810624 on Kubernetes, Containers, and OpenShift
https://www.youtube.com/watch?v=RFyYoI8NV-I overlay
https://www.youtube.com/watch?v=GDnMEOaKUMs Java Katas
https://www.infoq.com/articles/java-12-switch-expression
https://stackoverflow.com/questions/18176594/when-to-use-generic-methods-and-when-to-use-wild-card
https://stackoverflow.com/questions/30763895/why-use-a-wild-card-capture-helper-method
https://www.infoq.com/articles/container-runtimes-kubernetes
https://www.infoq.com/articles/api-gateway-clojure-golang
https://www.infoq.com/articles/architecture-trends-2019#.XFO5PVBHs9E.twitter
https://www.youtube.com/watch?v=5tlZddM5Jo0
https://dzone.com/articles/testing-spring-boot-integration-with-vault-and-pos Test Containers
https://twitter.com/danieldietrich/status/1091247010735448064 collections design
https://twitter.com/java/status/1092795731918737408 creating test stages in JUnit 5
https://stackoverflow.com/questions/54549960/partitioning-a-map-in-java-8
https://medium.com/dm03514-tech-blog/you-are-going-to-need-it-using-interfaces-and-dependency-injection-to-future-proof-your-designs-2cf6f58db192
http://blog.ploeh.dk/2017/02/02/dependency-rejection/
https://medium.com/@jerolba/hashing-and-maps-87950eed673f
https://pythonspeed.com/articles/faster-db-tests/ https://pythonspeed.com/articles/verified-fakes/
https://twitter.com/ScottWlaschin/status/1096765549013536768
https://www.baeldung.com/junit-5-conditional-test-execution
https://github.com/aphyr/distsys-class/blob/master/README.markdown#availability
https://twitter.com/Azure/status/1103052567318286341
https://lobste.rs/s/cmqg0q/elegantly_activating_virtualenv
https://nullprogram.com/blog/2019/03/08/
https://developers.redhat.com/blog/2019/02/21/podman-and-buildah-for-docker-users/
https://www.infoq.com/presentations/typescript-type-system-2018
https://stackoverflow.com/questions/25893476/can-you-have-multiple-transactions-within-one-hibernate-session
https://www.quora.com/How-is-Kubernetes-related-to-Docker/answer/Daniel-Walsh-156?srid=JqI0J
https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar
http://www.codingthearchitecture.com/2016/04/25/layers_hexagons_features_and_components.html
https://www.infoq.com/presentations/spring-framework-slow
https://dzone.com/articles/running-selenified-within-docker
https://dzone.com/articles/java-12-mapping-with-switch-expressions-1
https://www.nurkiewicz.com/2019/03/mapmerge-one-method-to-rule-them-all.html https://news.ycombinator.com/item?id=19534237
https://www.arte.tv/fr/videos/075193-000-A/devantures-flaner-a-travers-la-belle-epoque/
https://blog.heroku.com/defence-against-the-docker-arts https://news.ycombinator.com/item?id=19564809
https://www.youtube.com/watch?v=hDACN-BGvI8
https://www.infoq.com/presentations/batch-performance-spring-4-1
https://docs.spring.io/spring-batch/trunk/apidocs/org/springframework/batch/item/database/JdbcBatchItemWriter.html
https://www.baeldung.com/jooq-with-spring
https://dba.stackexchange.com/questions/167122/replacing-too-many-tables-with-too-many-columns
https://dba.stackexchange.com/questions/20759/is-there-a-name-for-this-database-schema-of-key-values
https://dba.stackexchange.com/questions/64689/alternative-to-eav-for-dynamic-fields-in-a-star-schema-data-warehouse
https://www.youtube.com/watch?v=vZV2_9KVHJU functional spring mvc
https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2019-Launch-Event/VSL107?WT.mc_id=channel9-twitter-cda
https://www.petrikainulainen.net/weekly/java-testing-weekly-15-2019/ https://blog.frankel.ch/comparison-assertion-libraries/ https://billykorando.com/2019/04/01/an-extended-discussion-on-customization-in-junit-5/ https://www.awesome-testing.com/2019/03/selenium-page-object-pattern-how-to.html
https://devmentors.io/distributed-net-core/ Distributed NET core course
https://www.youtube.com/watch?v=79UWvR734wI .NET Core vs .NET Framework - What's the difference?
https://channel9.msdn.com/Events/Visual-Studio/Visual-Studio-2019-Launch-Event/VSL107?WT.mc_id=channel9-twitter-cda
https://altkomsoftware.pl/en/blog/building-microservices-on-net-core-1/
https://altkomsoftware.pl/en/blog/microservices-net-core-cqrs-mediatr/
https://altkomsoftware.pl/en/blog/service-discovery-eureka/
https://altkomsoftware.pl/en/blog/building-api-gateways-with-ocelot/
https://altkomsoftware.pl/en/blog/building-microservices-domain-aggregates/
https://altkomsoftware.pl/en/blog/building-microservices-domain-aggregates/ https://www.reddit.com/r/programming/comments/bbzfka/building_microservices_on_net_core_part_5_marten/
https://www.reddit.com/r/programming/comments/b8mldg/announcing_f_46_net_blog/
https://www.reddit.com/r/programming/comments/b71190/net_core_workers_as_windows_services/
https://www.reddit.com/r/programming/comments/b5lofx/a_humble_knowledge_about_properties_in_c_net/
https://www.reddit.com/r/programming/comments/bc38pz/announcing_mlnet_10_rc_machine_learning_for_net/
https://www.reddit.com/r/programming/comments/bc3y47/writing_a_minimal_ioc_container_in_c/
https://www.reddit.com/r/programming/comments/bbx67l/c_string_vs_string_is_not_a_style_debate/
https://devblogs.microsoft.com/dotnet/announcing-net-core-3-preview-4/
https://www.reddit.com/r/programming/comments/bk98px/entity_framework_core_in_docker_container_part_i/
https://devblogs.microsoft.com/dotnet/introducing-net-5/ https://news.ycombinator.com/item?id=19840763
https://www.youtube.com/watch?v=0RfUPr0KrSM Blazor
https://lobste.rs/s/aro1vv/net_on_non_windows_platforms_brief
https://news.ycombinator.com/item?id=13227078
https://www.reddit.com/r/programming/comments/bcwesp/what_are_containers_a_simple_guide_to/
https://www.reddit.com/r/programming/comments/bcumt6/secure_secrets_in_docker_builds/
https://www.reddit.com/r/programming/comments/bd4cm6/layering_your_docker_images_with_dependencies/
https://twitter.com/rotnroll666/status/1121362324017885186
https://news.ycombinator.com/item?id=19763413
> tag are not immutable, but images (manifests) are. Much like git commit vs branches/tags. That is why best practice is to resolve docker image tag into "@sha256:..." digest and pull that, instead of tag. It guarantees that image you are pulling stays byte to byte the same.
https://blog.codeship.com/container-image-immutability-power-metadata/
> Docker uses SHA256 though, for which it isn't trivial.
https://medium.com/sroze/why-i-think-we-should-all-use-immutable-docker-images-9f4fdcb5212f
https://www.youtube.com/watch?time_continue=144&v=NTLwMgak3Fk
https://en.wikipedia.org/wiki/System_call
https://www.quora.com/Virtualization-What-is-the-difference-between-KVM-and-QEMU
https://forums.docker.com/t/multiple-networks-in-one-container/35323/2
https://success.docker.com/article/multiple-docker-networks
Minimizing real-time prediction serving latency in machine learning https://cloud.google.com/solutions/machine-learning/minimizing-predictive-serving-latency-in-machine-learning
> You have too many entities (high cardinality), which makes it challenging to precompute prediction in a limited amount of time. An example is forecasting daily sales by item when you have hundreds of thousands or millions items. In that case, you can use a hybrid approach, where you precompute predictions for the top N entities, such as for the most active customers or the most viewed products. You can then use the model directly for online prediction for the rest of the long-tail entities.
https://liqixu.github.io/papers/needletail-hilda.pdf Optimally Leveraging Density and Locality
for Exploratory Browsing and Sampling
> , we would need B+Trees on every single attribute or combination of attributes
[druid](https://towardsdatascience.com/introduction-to-druid-4bf285b92b5a)
> At the time, we were handling approximately 100 millions events per day, and some of our reports were taking 30 seconds to generate. We currently handle billions of events per day, and the reporting takes less than 1 second most of the time.
https://hevodata.com/blog/druid-vs-redshift-data-warehouse/ https://towardsdatascience.com/introduction-to-druid-4bf285b92b5a
[dynamo db](https://medium.com/@nabtechblog/advanced-design-patterns-for-amazon-dynamodb-354f97c96c2)
> With NoSQL, it is best practice to precalculate aggregates values out of band, and store them back into the table as a single item for quick retrieval.
> There are many data enrichment use cases that would fit this model.
[Why you should use a relational database instead of NoSQL for your IoT application](https://blog.timescale.com/use-relational-database-instead-of-nosql-for-iot-application/)
[Do we need pre-computed aggregates?](https://developer.jboss.org/thread/249480?_sscc=t)
> When querying time series data, resolution refers to the number of data points for a given time range. The highest resolution would provide every available data point for a time range. So if I want a query to use the highest resolution and if there are 100 data points, then the query result should include every one of those 100 points.
> As the number of data points increases, providing results at higher resolutions becomes less effective. For instance, increasing the resolution to the point where a graph in the UI includes 1 million points is probably no more effective than if the graph included only 10,000 or even 1,000 data points. The higher resolution could degrade user experience as rendering time increases. Latency on server response time is also likely to increase.
> Pre-computed aggregation is the process of continually downsampling a time series and storing the lower resolution data for future analysis or processing. Pre-computed aggregates are often combined with data expiration/retention policies to address the aforementioned storage problem. Higher resolution data is stored for shorter periods of time than lower resolution data. Pre-computed aggregation can also alleviate the CPU utilization and latency problems. Instead of downsampling 1 million data points, we can query the pre-computed aggregated data points and perform downsampling on 10,000 data points.
[time series databases to watch](https://news.ycombinator.com/item?id=19825566)
> I have used TimescaleDB for several purposes. As it is built on top of Postgres, all the existing tools, libraries and processes work out of the box. This is a huge advantage if you are operating Postgres anyway: Your existing backup tools will work, as does your user Managment.
https://medium.com/@brunoborges/java-dev-environments-with-containers-66d6797b2753
https://www.reddit.com/r/java/comments/bkjnoi/docker_and_spring_boot_done_properly/
https://www.infoq.com/presentations/devops-database
https://www.infoq.com/presentations/web-app-error-logging-reproducing
https://vladmihalcea.com/how-to-store-schema-less-eav-entity-attribute-value-data-using-json-and-hibernate/
https://www.youtube.com/watch?v=O2TPrukz6MM Jackson @Inject
https://www.youtube.com/watch?v=h_Nxm9Huz30 effective developer experience in Kubernetes
https://dev.to/azure/improve-your-dockerfile-best-practices-5ll
http://ix.cs.uoregon.edu/~pdownen/publications/esop2019.pdf codata in action
https://azure.microsoft.com/en-us/services/devops/?wt.mc_id=AID723316_QSG_SCL_343077
https://dev.to/javinpaul/10-free-courses-to-learn-docker-in-2019-56n0
https://twitter.com/searls/status/1131924574361268224
http://design.jboss.org/redhatdeveloper/marketing/docker_cheatsheet/cheatsheet/images/docker_cheatsheet_r3v2.pdf
https://www.youtube.com/watch?v=R9-SOzep73w
https://www.apress.com/gp/book/9781484249840 https://twitter.com/williamcaban/status/1133062096860667905 Architecting and Operating OpenShift Clusters
Broken by default: why you should avoid most Dockerfile examples https://pythonspeed.com/articles/dockerizing-python-is-hard/ https://news.ycombinator.com/item?id=20031730 https://news.ycombinator.com/item?id=20031403
https://dzone.com/articles/5-net-blogs-for-c-developers-to-follow-in-2019
https://www.stevejgordon.co.uk/docker-for-net-developers-part-7
https://devblogs.microsoft.com/dotnet/using-net-and-docker-together-dockercon-2019-update/ https://kubernetes.io/docs/concepts/policy/resource-quotas/ https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/ http://cloudgeekz.com/1605/kubernetes-application-oomkilled.html https://kubernetes.io/docs/tasks/configure-pod-container/assign-memory-resource/ https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/ https://medium.com/@betz.mark/understanding-resource-limits-in-kubernetes-memory-6b41e9a955f9 https://medium.com/hotels-com-technology/kubernetes-container-resource-requirements-part-1-memory-a9fbe02c8a5f https://cloud.google.com/blog/products/gcp/kubernetes-best-practices-resource-requests-and-limits
https://dev.to/chrisvasqm/my-net-core-setup-for-macoslinux-4cbk
https://itnext.io/beginning-net-core-development-with-docker-on-linux-6595a7eebdaa
https://medium.com/@bterkaly/running-asp-net-applications-in-kubernetes-a-detailed-step-by-step-approach-96c98f273d1a
https://medium.com/@bronsteinkevin/starting-up-with-asp-net-core-and-docker-c66a5110abf4
https://appdevmusings.com/azure-kubernetes-service-host-asp-net-core-3-0-app-in-docker-windows-server-containers
https://blog.daemonl.com/2016/02/yaml.html yaml references and extend
https://softwareengineering.stackexchange.com/questions/338665/when-to-use-a-parser-combinator-when-to-use-a-parser-generator
https://www.youtube.com/watch?v=Ku0lD3-e9oA Scaling microservices with Message queues, .NET and Kubernetes - Lewis Denham-Parry
https://blog.openshift.com/red-hat-openshift-4-is-now-available/
JOTB19 - A race of two compilers: GraalVM JIT versus HotSpot JIT C2 https://www.youtube.com/watch?v=lunJmMBkqLo
https://winterbe.com/posts/2018/08/29/migrate-maven-projects-to-java-11-jigsaw/
https://www.rosettacode.org/wiki/Knuth_shuffle
https://medium.com/@baseerhk/a-taste-of-functional-programming-in-kotlin-3b163b5c8101
https://stackoverflow.com/questions/9691383/trie-subsequences https://www.geeksforgeeks.org/pattern-searching-using-trie-suffixes/ https://www.geeksforgeeks.org/given-two-strings-find-first-string-subsequence-second/ https://stackoverflow.com/questions/17996414/data-structure-for-subsequence-queries https://stackoverflow.com/a/18190246/1364288
https://twitter.com/java/status/1142455956024041472 Moving from Imperative to Reactive by Paul Harris
https://github.com/CarlosLanderas/dotnet2019-aspnet-core-best-practices
https://vimeo.com/275529977 https://www.youtube.com/watch?v=xzekp1RuZbM
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment