# Miro Cupak

A blog about software development, Java and open source.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Validating OAS 3 specification in your CI build

DevFeed: [Validating OAS 3 specification in your CI build](<https://devfeed.tech/articles/validating-oas-3-specification-in-your-ci-build-21503.md>)

Original publisher: [Read original article](<https://mirocupak.com/validating-oas-3-specification-in-your-ci-build/>)

Published: 2019-02-15T17:29:41Z

Content type: tutorial

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Continuous integration](<https://devfeed.tech/topics/continuous-integration.md>), [YAML](<https://devfeed.tech/topics/yaml.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>), [Testing](<https://devfeed.tech/topics/testing.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [github](<https://devfeed.tech/tags/github.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [specifications](<https://devfeed.tech/tags/specifications.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [swagger-validator-badge](<https://devfeed.tech/tags/swagger-validator-badge.md>), [testing](<https://devfeed.tech/tags/testing.md>), [travis](<https://devfeed.tech/tags/travis.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>), [yaml](<https://devfeed.tech/tags/yaml.md>)

### AI overview

This tutorial explains how to validate an OpenAPI 3 specification on every pull request as part of continuous integration. It uses the Swagger Validator Badge tool in Travis CI, building version 2.0.0 locally because hosted support for OpenAPI 3 was incomplete at the time of writing.

### Source excerpt

As part of my work on standards under GA4GH, I frequently deal with API specifications, most often written in OpenAPI 3 (OAS 3). The setup is always similar - there's a public GitHub repository containing an OAS 3 YAML file and a few common auxiliary files (.gitignore, LICENSE, CONTRIBUTING.md, and README.md). Reference implementations of...

## Obtaining a URL to a file in a GitHub repository in a Travis CI build

DevFeed: [Obtaining a URL to a file in a GitHub repository in a Travis CI build](<https://devfeed.tech/articles/obtaining-a-url-to-a-file-in-a-github-repository-in-a-travis-ci-build-21502.md>)

Original publisher: [Read original article](<https://mirocupak.com/obtaining-a-url-to-a-file-in-a-github-repository-in-a-travis-ci-build/>)

Published: 2019-01-24T22:51:37Z

Content type: tutorial

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [ci](<https://devfeed.tech/topics/ci.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [pull-requests](<https://devfeed.tech/topics/pull-requests.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Swagger](<https://devfeed.tech/topics/swagger.md>)

Tags: [ci](<https://devfeed.tech/tags/ci.md>), [continuous-integration](<https://devfeed.tech/tags/continuous-integration.md>), [devops](<https://devfeed.tech/tags/devops.md>), [github](<https://devfeed.tech/tags/github.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [openapi-specification](<https://devfeed.tech/tags/openapi-specification.md>), [pull-requests](<https://devfeed.tech/tags/pull-requests.md>), [swagger](<https://devfeed.tech/tags/swagger.md>), [travis](<https://devfeed.tech/tags/travis.md>), [travis-ci](<https://devfeed.tech/tags/travis-ci.md>)

### AI overview

A tutorial explaining how to construct a URL to a repository file in a Travis CI build while accounting for push builds, pull requests from forks, branches, and tags.

### Source excerpt

I'm a fan of Travis CI and use it for continuous integration across pretty much all my open-source projects on GitHub. From time to time, I need to obtain a URL to a file in the repository in my build, e.g. to point a particular tool to it, in a way that respects branches as well as pull requests...

## Clean code with Java 9 at GeeCON

DevFeed: [Clean code with Java 9 at GeeCON](<https://devfeed.tech/articles/clean-code-with-java-9-at-geecon-21496.md>)

Original publisher: [Read original article](<https://mirocupak.com/clean-code-with-java-9-at-geecon/>)

Published: 2018-05-17T20:05:44Z

Content type: opinion

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Code](<https://devfeed.tech/topics/code.md>), [HTTP](<https://devfeed.tech/topics/http.md>)

Tags: [clean-code](<https://devfeed.tech/tags/clean-code.md>), [conference](<https://devfeed.tech/tags/conference.md>), [geecon](<https://devfeed.tech/tags/geecon.md>), [interfaces](<https://devfeed.tech/tags/interfaces.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [jvm](<https://devfeed.tech/tags/jvm.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [optional](<https://devfeed.tech/tags/optional.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

A personal report from GeeCON describes a live demo on writing cleaner code with Java 9. The talk covers JShell and several JDK 9 features, including collection factory methods, private interface methods, Stream API enhancements, Optional updates, StackWalker, and an HTTP/2 client.

### Source excerpt

Last week, I was fortunate enough to attend GeeCON. GeeCON is a well-known conference in the JVM world and this year marked its 10th anniversary. More than 1200 people came to see over 80 sessions from more than 70 speakers distributed across 4 tracks over 3 days in Krakow, Poland. This was my first time attending GeeCON. In retrospect,...

## Building a global search engine for genetic data at DevTO

DevFeed: [Building a global search engine for genetic data at DevTO](<https://devfeed.tech/articles/building-a-global-search-engine-for-genetic-data-at-devto-21495.md>)

Original publisher: [Read original article](<https://mirocupak.com/building-a-global-search-engine-for-genetic-data-at-devto/>)

Published: 2018-05-17T02:37:13Z

Content type: article

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [data](<https://devfeed.tech/topics/data.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [beacon](<https://devfeed.tech/tags/beacon.md>), [beacon-network](<https://devfeed.tech/tags/beacon-network.md>), [data](<https://devfeed.tech/tags/data.md>), [demo](<https://devfeed.tech/tags/demo.md>), [devto](<https://devfeed.tech/tags/devto.md>), [event](<https://devfeed.tech/tags/event.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [presentation](<https://devfeed.tech/tags/presentation.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [statistics](<https://devfeed.tech/tags/statistics.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

A recap of a DevTO talk about building a global search engine for genetic data using the Beacon Network. It covers the system's purpose, the Beacon standard, its architecture and technologies, usage statistics, and audience feedback.

### Source excerpt

DevTO is a popular meetup for software developers in Toronto. Attended by over 100 developers on the last Monday of each month, the group features two 20-minute presentations on various topics from the industry, accompanied by food, drinks and networking. On April 30, Wealthsimple hosted the event celebrating the 7th anniversary of DevTO. I was invited to...

## Java 9 at Java With The Best 2018

DevFeed: [Java 9 at Java With The Best 2018](<https://devfeed.tech/articles/java-9-at-java-with-the-best-2018-21498.md>)

Original publisher: [Read original article](<https://mirocupak.com/java-9-at-java-with-the-best-2018/>)

Published: 2018-04-25T11:20:26Z

Content type: article

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [IntelliJ IDEA](<https://devfeed.tech/topics/intellij-idea.md>)

Tags: [conference](<https://devfeed.tech/tags/conference.md>), [developer](<https://devfeed.tech/tags/developer.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [java-with-the-best](<https://devfeed.tech/tags/java-with-the-best.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

The article recounts a talk about Java 9 at the online Java With The Best 2018 conference. The session explored JShell, updates to existing APIs, and new APIs including the HTTP/2 client. It also describes the platform's limitations for screen sharing, audience interaction, laptop use, and live coding.

### Source excerpt

Java With The Best is a new Java conference in a series of developer conferences powered by BeMyApp. There are 2 main properties that differentiate this event from other conferences you may have attended - everything takes place online, without a physical venue, and attendees can book virtual 1-1 sessions with the speakers. The event featured 58...

## Beacon Network at Index San Francisco 2018

DevFeed: [Beacon Network at Index San Francisco 2018](<https://devfeed.tech/articles/beacon-network-at-index-san-francisco-2018-21494.md>)

Original publisher: [Read original article](<https://mirocupak.com/beacon-network-at-index-san-francisco-2018/>)

Published: 2018-02-28T11:19:42Z

Content type: article

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Bioinformatics](<https://devfeed.tech/topics/bioinformatics.md>), [data](<https://devfeed.tech/topics/data.md>), [Protocol (disambiguation)](<https://devfeed.tech/topics/protocol.md>), [Network](<https://devfeed.tech/topics/network.md>), [Statistics](<https://devfeed.tech/topics/statistics.md>), [ibm](<https://devfeed.tech/topics/ibm.md>)

Tags: [architecture](<https://devfeed.tech/tags/architecture.md>), [beacon](<https://devfeed.tech/tags/beacon.md>), [beacon-network](<https://devfeed.tech/tags/beacon-network.md>), [case-study](<https://devfeed.tech/tags/case-study.md>), [conference](<https://devfeed.tech/tags/conference.md>), [data](<https://devfeed.tech/tags/data.md>), [developer](<https://devfeed.tech/tags/developer.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [index](<https://devfeed.tech/tags/index.md>), [protocol](<https://devfeed.tech/tags/protocol.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [statistics](<https://devfeed.tech/tags/statistics.md>), [talk](<https://devfeed.tech/tags/talk.md>), [talks](<https://devfeed.tech/tags/talks.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A conference follow-up shares slides and a recording from a case-study talk about how DNAstack developed the Beacon Network, a global search engine for human genetic data, under the Global Alliance for Genomics & Health.

### Source excerpt

In the previous post, we talked about one of the talks I gave at the Index Developer Conference last week. In this post, we share the materials from the other one, titled How we built a global search engine for genetic data. The session was scheduled in the Real-life production deployments track. Unlike the talks I usually...

## Exploring Java 9 at Index San Francisco 2018

DevFeed: [Exploring Java 9 at Index San Francisco 2018](<https://devfeed.tech/articles/exploring-java-9-at-index-san-francisco-2018-21497.md>)

Original publisher: [Read original article](<https://mirocupak.com/exploring-java-9-at-index-san-francisco-2018/>)

Published: 2018-02-27T11:20:26Z

Content type: article

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Java 9](<https://devfeed.tech/topics/java-9.md>), [Java](<https://devfeed.tech/topics/java.md>), [Programming](<https://devfeed.tech/topics/programming.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [apis](<https://devfeed.tech/tags/apis.md>), [coding](<https://devfeed.tech/tags/coding.md>), [conference](<https://devfeed.tech/tags/conference.md>), [developer](<https://devfeed.tech/tags/developer.md>), [development](<https://devfeed.tech/tags/development.md>), [event](<https://devfeed.tech/tags/event.md>), [index](<https://devfeed.tech/tags/index.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [languages](<https://devfeed.tech/tags/languages.md>), [programming](<https://devfeed.tech/tags/programming.md>), [programming-languages](<https://devfeed.tech/tags/programming-languages.md>), [software-development](<https://devfeed.tech/tags/software-development.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [talk](<https://devfeed.tech/tags/talk.md>), [talks](<https://devfeed.tech/tags/talks.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

A post summarizes the author's "Exploring Java 9 with REPL" session at Index Developer Conference in San Francisco in 2018. The live-coding session introduced updates to existing Java APIs and new Java 9 APIs, including JShell, Stackwalker, ProcessHandle, and an HTTP/2 client.

### Source excerpt

Index Developer Conference is a new conference organized by IBM to promote software development as a craft. The event took place at the Moscone Center, San Francisco, a popular software conference venue, on February 20-22, 2018. This was my first conference of the year and I was very excited about being invited to give 2 talks in 2...

## My talk for the Singapore Java User Group

DevFeed: [My talk for the Singapore Java User Group](<https://devfeed.tech/articles/my-talk-for-the-singapore-java-user-group-21501.md>)

Original publisher: [Read original article](<https://mirocupak.com/my-talk-for-the-singapore-java-user-group/>)

Published: 2018-01-06T11:20:26Z

Content type: article

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Process](<https://devfeed.tech/topics/process.md>)

Tags: [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [demo](<https://devfeed.tech/tags/demo.md>), [event](<https://devfeed.tech/tags/event.md>), [examples](<https://devfeed.tech/tags/examples.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [singajug](<https://devfeed.tech/tags/singajug.md>), [speaking](<https://devfeed.tech/tags/speaking.md>), [talk](<https://devfeed.tech/tags/talk.md>)

### AI overview

The author recounts presenting "Java 9, Episode 2" at the Singapore Java User Group's first 2018 event. The fast-paced live demo explored lesser-known Java 9 APIs, including Collections, Stream, CompletableFuture, StackWalker, Process, the HTTP/2 client, and JShell, with slides, a recording, and JShell history made available afterward.

### Source excerpt

Huge thanks to the Singapore Java User Group for having me as a speaker at their first event of 2018, Pivotal for hosting the event and providing pizza and drinks, as well as all the attendees for finding the time, all the positive feedback and good questions! Despite taking place early in the new year, the event...

## Java 9: Updates to Optional

DevFeed: [Java 9: Updates to Optional](<https://devfeed.tech/articles/java-9-updates-to-optional-21500.md>)

Original publisher: [Read original article](<https://mirocupak.com/java-9-updates-to-optional/>)

Published: 2017-11-11T17:25:19Z

Content type: tutorial

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [Streams](<https://devfeed.tech/topics/streams.md>)

Tags: [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [jdk](<https://devfeed.tech/tags/jdk.md>), [streams](<https://devfeed.tech/tags/streams.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

A tutorial on Java 9 updates to Optional. It explains the methods added in JDK 9 for handling absent values, including actions for empty values, supplying fallback Optionals, unwrapping values, and converting an Optional to a stream.

### Source excerpt

In the previous post in this series, we examined features of the Stream API added in Java 9. A very useful API that plays well with streams, and was, in fact, used to make streams more robust, is Optional. Let's explore it with JShell! Optional provides a container that may or may not contain a...

## Java 9: Enhancements to the Stream API

DevFeed: [Java 9: Enhancements to the Stream API](<https://devfeed.tech/articles/java-9-enhancements-to-the-stream-api-21499.md>)

Original publisher: [Read original article](<https://mirocupak.com/java-9-enhancements-to-the-stream-api/>)

Published: 2017-11-10T03:28:40Z

Content type: tutorial

Language: en

Sources: [Miro Cupak](<https://devfeed.tech/sources/miro-cupak.md>)

Topics: [Java](<https://devfeed.tech/topics/java.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [code](<https://devfeed.tech/tags/code.md>), [filter](<https://devfeed.tech/tags/filter.md>), [infinite](<https://devfeed.tech/tags/infinite.md>), [java](<https://devfeed.tech/tags/java.md>), [java-9](<https://devfeed.tech/tags/java-9.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [streams](<https://devfeed.tech/tags/streams.md>)

### AI overview

This tutorial explains four Java 9 enhancements to the Stream API, including predicate-based take and drop operations and an overloaded iterate method. It uses JShell examples to compare the additions with Java 8 approaches, including handling conditions over infinite streams.

### Source excerpt

In the last post in this series, we took a look at the new convenience factory methods for collections in Java 9. Collections play well with the Stream API, which learned a few new tricks since its introduction in Java 8 as well. There are 4 particularly exciting new features - let's explore them with JShell!