- Celebrating 20 Years at JetBrains: A Journey from Junior Developer to Department Lead 20 Years as JetBrains
- Cross-process Lambdas Create a Lambda in one JVM to run it in another JVM
- Gradle Kotlin DSL - Code Reuse How to reuse code between several gradle.kts files with accessors
- X.509 Certificates with AWS KMS Issuing X.509 with KMS
- Prefix or Null with Kotlin? A short helper fun
- Listing Files on macOS How to list 1M files fast
- Delegated Properties in Kotlin A short trick to delegate properties
- JNI with Kotlin/Native Kotlin both sides: Native and JVM
- Migrating to Gradle Kotlin DSL - Groovy Closure Groovy Closures and Gradle Kotlin DSL
- Migrating to Gradle Kotlin DSL - Extensions and buildSrc Diving deeper with plugins, extension, buildSrc
- IP Whitelist for WAF Rules and Security Groups IP whitelists for AWS Cloud Front WAF and Security Groups with Terraform
- Migrating to Gradle Kotlin DSL - Kotlin Kotlin tasks in Gradle Kotlin DSL
- Security Group for CloudFront CloudFront IP addresses in AWS Security Group
- Migrating to Gradle Kotlin DSL - Basics First steps of the migration
- JVM Bytecode for Kotlin Object and Companion Object A glance from the JVM bytecode to object and companion object in Kotlin
- Nodejs Builds A build script to build a client-side web application in Docker
- Int ptr in Kotlin/Native Passing int* to C from Kotlin/Native
- Proxy and Checked Exceptions in Java java.lang.reflect.Proxy and checked exceptions
- libcurl and Kotlin/Native on Windows Building libcurl on Windows and using it from Kotlin/Native
- Ad-hoc Plugins with Gradle Gradle code reuse on steroids.
- Condition in Terraform and API Gateway Create an AWS API Gateway resource based on conditions
- Java Builders with Kotlin A higher order function to simplify Java builders usage
- Terraform Wrapper Use Terraform without install
- Understanding isOSVersionAtLeast on macOS Understanding ___isOSVersionAtLeast on macOS is not defined
- Undefined isOSVersionAtLeast on macOS Solving ___isOSVersionAtLeast is undefined or CLang intrinsics.
- Minimalistic C library and Kotlin/Native The most trivial Kotlin/Native example of using C library
- Undefined Symbol on macOS ___isOSVersionAtLeast is undefined. How I spent several days compiling curl and linking it.
- MacBook Fix Tilde Key A tiny trick to remap keys on macOS X
- Kotlin DSL for Test Data Kotlin DSLs can be used to replace a boring test data strings with correct and an easy to read a code.
- A Gradle Plugin to Detect Package Conflicts for Migration to Java 9 Modules helps to detect problems with split packages prior to the migration
- A Sudden SSH out-of-memory An accident and investigation of the server failure
- A Bash Test Runner for TeamCity An ad-hoc bash test runner with TeamCity support
- Building Go Project No Silver-Go-Bullet. Yet another ad-hoc build.
- A Kotlin Coroutine for an OutputStream Filtering Kotlin coroutines for OutputStream.
- A post per 2 weeks a process to blog regularly
- Load Balancing SSH More SSH servers behind the same hostname
- Words Cloud from Metrics Data representing metrics as words cloud
- Bytecode behind coroutines in Kotlin A simple suspend function, and its bytecode.
- Hints in Stack Traces on the JVM Encode context in a thread dump or an exception stack trace for the JVM.
- Sealed classes and 'when' expression ‘when’ expression as pattern-matching in Kotlin
- Switch to when ‘when’ expression in Kotlin VS ‘switch’ statement in JavaSwitch in JavaConsider the following code in Java
- Guard access by lock in Kotlin GuardedByLock a simple helper to make sure variable is only accessed with lock
- Catching exceptions with less code in Kotlin A tiny inline function for consise try/catch
- The power of templating in a DSL Welcome a powerful templating engine that is available for every DSL in a general purpose language.
- Crafting Log4j Configuration DSL In this post I show how to implement The DSL Way to manage Log4j configuration and extend an IDE without writing a plugin for it
- Building DSL Instead of an IDE Plugin An alternative way of doing IDE support without any IDE plugin code for not yet supported and specific languages.
- Proxy calls between classloaders There are so many tricky stories around on classloaders in Java. Classloading is a powerful technique from the one hand. From the other it’s the place where it so easy to make mistakes. Some are simply afraid using them.
- A DSL Workbench with Gradle and Kotlin Easy to use. This is one of a main tasks to solve then new tool is created. For the world of DSL thismostly mean it should be easy to a end-user to use the tool and to be able to run the tool within a continuous integration build easily.
- Using Gradle to download and run anything There are so many small tasks that as solved via a tiny programs. Most of such programs are to call several libraries to have an end-result. In the JVM world, most of those libraries are downloadable from a maven repository.
- Kotlin XML Binding I like creating DSLs in Kotlin. It was fun to try creating a DSL forXML data binding. Of course there are so many other libraries for JVM that implements it in the other way.
- Git in Docker Some uses Docker to run builds inside.Some uses it to run tests inside. Today I gonna cover my case, where I implement a command that runs inside a Docker container and call it thousands of times during CI integration tests build.
- New Site. New Domain. New Technologies Some days ago I realized it’s possible to have mostly any web site that is running behind GitHub pages.Finally I decided to update my current blog and to have a site on domain root.
- TeamCity.AntMessages
- TeamCity.Node Update
- Spring Framework Component Container Decomposition In this post I explain how one could split one huge components container into a number of smaller ones
- Named Stack Frames for the JVM In this post I'd like to introduce my new Java library called named-frames. The library allows including runtime-generated information into JVM/Java stack traces and thread dumps
- Docker Vagrant TeamCity In this post I'll introduce the brand new TeamCity.Virtual plugin that supports execution under virtual environments from Vagrant or Docker
- Try-With-Resource in Java Starting from Java 1.7 we have new syntax: try-with-resource. Recently I had a chance to use it in a project. Main usage I had was for logging contexts.
- Node.js and NVM and Grunt in TeamCity.Node In the previous posts I wrote about Jonnyzzz.Node plugin that provides support for Node.js, NPM, Grunt and Phantom.js in TeamCity. Today I'm here to introduce NVM support in the plugin. I'd also shed light on Grunt runner improvements.
- Removing Unused Dependencies in IDEA Projects In this post I write about Jonnyzzz Dependencies plugin that helps one to remove unused dependencies between modules and libraries
- Adding Grunt Support to TeamCity.Node In this post I cover recent updates that I done to TeamCity.Node plugin. I blogged about the plugin here. Grunt support is added to the plugin!
- GitHub Change Status on Branches Recently I wrote about GitHub commit status support in TeamCity
- BDD Test Framework with Kotlin Today I'll present what I've done for Spek project. Spek is the BDD test framework for Kotlin
- Kotlin, Node.js and TeamCity In this post I describe Node.js support plugin that was implemented in Kotlin
- New NuGet Support Features in TeamCity In this post I'll describe recent changes in NuGet Support: default NuGet and feed authentication. All those changes are available in v0.9 branch. The branch is compatible with TeamCity 7.1.x and we plan to bundle builds of it with TeamCity 8.0
- Transfer Environment Between Build Steps In this post I describe how one could transfer environment from one build step to another
- Configuring NuGet publish on TeamCity In this post I'll describe the solution I used to publish/promote builds of 3 version of TeamCity.ServiceMessages library to NuGet.org via TeamCity.
- TeamCity.ServiceMessages from Powershell In this post I describe the small example on how to use TeamCity.ServiceMessages library from powershell
- TeamCity.ServiceMessages v3.0 In this post I describe recent changes of TeamCity.ServiceMessages library. I wrote about the library here, here and here
- Android Battery Tweet Application For time to time I noticed my Android phone is discharged and switched off. That was a real fun to find out that was the reason why alarm did not ring To solve this issue I decided to create a small Android application that makes an Android phone shout for charge.
- GitHub Status Api in TeamCity Update Update to GitHub Status API plugin. Settings were improved to allow one to specify GitHub repository name
- TeamCity Plugin Template Do you like to create a plugin for TeamCity. For me it's me best way to implement new feature for TeamCity. We are working in the direction to put mostly all new functionality as plugins. In this post I'll describe my approach on how one can setup a project to develop new plugin for TeamCity.
- Reporting change status to GitHub GitHub introduced Commit Status API to set change status from a CI build tools. We decided to implement support of the API in TeamCity.
- Agent parameters story updated Have you ever seen a detailed description on how parameter references are getting resolved on build agent? You may find Agent Parameters Story post helpful.
- NuGet Feed Authentication Research In this blog post I describe all my experiments to support NuGet feed authentication.
- NuGet and Feed Passwords A few days ago I started to research on how to make NuGet.exe remember feed credentials. Mygoal was to integrate NuGet.exe fetching and publishing into a CI build.
- NuGet Support in TeamCity Updates I've created a branch v0.8 where there is mostly a java code. Thanks OData4j we implemented the the NuGet Feed in Java and thus I decided to remove stale .NET code from build and repository. We bundle builds from this branch in TeamCity 7.1 EAP builds. Still, builds are binary compatible with TeamCity 7.0, so you can give it a try there as well.
- Checkout on Agent Tricks In this post I'll describe how to implement checkout on agent for Git or Mercurial without installing them to each build agents.
- NuGet Server in pure Java There are many implementations of NuGet Feed. Most of those implementations are .NET Based. To host them you need to have .NET Framework, IIS, Windows. Recently I saw posts promoting java enterprise-level implementations of NuGet Feed from Artifactory and Nexus.
- TeamCity and Mercurial Mq Extensions In this post I show how to setup Mq patches with TeamCity build.
- TeamCity Support for NuGet 1.6 Today I added tests for compatibility of NuGet plugin for TeamCity with NuGet 1.6
- NuGet.config Support There was an issue for our NuGet in TeamCity plugin support: TW-18927
- Playing Git In this post I describe my pattern of Git usage.
- On-the-fly Code Generation with .NET Expression Trees Recently I came to the task to fill a bunch of C# object properties from a Dictionary. There were 10+ fields and I decided to use reflection to avoid writing and supporting dummy code on every object change.
- TeamCity.ServiceMessages Write API Today I published TeamCity.ServiceMessages v2.0 package which provides API for generating TeamCity specific service messages.
- TeamCity Service Messages Library for .NET Do you know what service messages are? Service Messages are strings in the following format:
- Changes in NuGet Pack Runner I added support for multiple NuGet packages creation in TeamCity "NuGet Packages Pack" build runner:
- NuGet Dependency Trigger Update Fresh builds of NuGet plugin for TeamCity contains scalability improvements for NuGet Dependency Trigger. (TW-18429) In this blog post I'll describe NuGet Dependency trigger internal implementation.
- NuGet Package Publish Runner Security Update First implementation of NuGet Package Publish runner contained a bug. In the build log it logged the full commandline to calling nuget.exe process. As it turned out this commandline contained used NuGet.org API key.
- Automatic NuGet.exe Distribution in TeamCity About a month ago I added a NuGet.exe tool selection and distribution support to NuGet plugin for TeamCity. There appeared the NuGet tab in 'Server Configuration' section in Administration. There you can select and download NuGet.CommandLine client to use with TeamCity. Downloaded NuGet Commandline tool will be distributed to all agents automatically.
- Selective Publishing of NuGet Packages in TeamCity TeamCity NuGet plugin provides a build runner to publish a NuGet package to the feed. It makes it quite easy to make TeamCity create and publish a package from every build. For some reason you may not need to publish every created NuGet package to the feed. In this post I'll describe how one can configure it with TeamCity.
- MSBuild Logging Tree TeamCity build log provides several view modes. One of my favorite modes is Tree view. I was working hard to improve MSBuild / Visual Studio (sln) build runners logging and fix some issues with it.
- How to pack agent plugin for TeamCity In this post I’ll describe how to pack build agent plugins for TeamCity 6.5or newer.
- NuGet 1.5 and TeamCity Today I updated all my NuGet.exe integration tests to run against both NuGet 1.4 and NuGet 1.5.I’m happy to notice, there were no breaking changes in NuGet between 1.4 and 1.5.
- NuGet Publish Build Runner TeamCity plugin for NuGet support v0.4 is out.
- NuGet for TeamCity plugin BREAKING CHANGE I’ve committed a BREAKING CHANGE to NuGet Plugin for TeamCity.
- TeamCity and NuGet support In this blog post I introduce a plugin for TeamCity 6.5 that provides support for NuGet.
- Collections#syncronized* vs for statement As we can see in javadoc (say for 1.6) java.util.Collections#synchronized* methodsdoes not synchronize iterators! This is properly documented in the javadocs of it.
- Agent parameters story There are parameters and references in TeamCity. You may use %PARAM_NAME% syntax mostly in alleditable build configuration fields to refer to the value of parameter PARAM_NAME. This gives you much power incustomizing and reusing.
- Navigating YouTrack Issues I used to use YouTrack to track all issues.
- Debugging build properties Do you know what properties were put into a build in TeamCity?
- Debugging Builds In most cases setting up a CI build could be an easy task.
- TeamCity code coverage with xunit Recently I decided to set up a CI build for a project: https://github.com/hhariri/jsonfxYoumay notice that it uses xunit to run tests.
- Window/Mono tests running I had to debug/fix my .NET application under Linux/Mono. That was nice to find Suse VMWareimages just on http://mono-project.com web site.
- @deprecated in java I had recently noticed in a java code methods that are only been deprecated with javadoc's @deprecated tag. Starting from java 1.5 there was @Deprecated annotation added.
- VSS2005. How to create a broken database While debugging Microsoft Visual SourceSafe support in TeamCity, I had found out quite easycase where VSS 2005 Automation api fails.
- Books pack
- VSS has been digged
- VSS digging: two cents
- Digging into Source Safe Automation
- Java and Process Tree
- Welcome