<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Blog on Viktor Gamov</title><link>https://gamov.io/posts/</link><description>Recent content in Blog on Viktor Gamov</description><image><title>Viktor Gamov</title><url>https://gamov.io/images/new_banner.jpg</url><link>https://gamov.io/images/new_banner.jpg</link></image><generator>Hugo</generator><language>en-us</language><copyright>2011–2026 Viktor Gamov</copyright><lastBuildDate>Fri, 22 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://gamov.io/posts/index.xml" rel="self" type="application/rss+xml"/><item><title>When Claude Is Offline: Running a Local Coding Agent</title><link>https://gamov.io/posts/when-claude-is-offline/</link><pubDate>Fri, 22 May 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/when-claude-is-offline/</guid><description>OpenCode and Pi can drive a real file-editing agent on a local Ollama model. Local models FTW</description></item><item><title>Why Pay for ChatGPT at 35,000 Feet?</title><link>https://gamov.io/posts/chatgpt-35000-feet/</link><pubDate>Sat, 25 Apr 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/chatgpt-35000-feet/</guid><description>Rebuilt a ChatGPT tmux popup with local Ollama models. Benchmarked nine, picked a winner, and added auto-clipboard on /bye.</description></item><item><title>Thirty lines to make Claude Code feel native in tmux and iTerm2</title><link>https://gamov.io/posts/tmux-iterm2-claude-code/</link><pubDate>Tue, 21 Apr 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/tmux-iterm2-claude-code/</guid><description>tmux eats Shift+Enter and blocks Claude&amp;#39;s notifications. terminal-notifier is dead on Tahoe. Thirty config lines fix all of it.</description></item><item><title>Flink SQL Enrichment Strategies on Confluent Cloud (and the AI Skill That Writes Them for You)</title><link>https://gamov.io/posts/flink-sql-enrichment/</link><pubDate>Sun, 12 Apr 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/flink-sql-enrichment/</guid><description>Runnable Flink SQL for four enrichment strategies on Confluent Cloud. Plus a Tessl skill that writes the queries for you.</description></item><item><title>Time Travel and Schema Evolution in the Streaming Lakehouse</title><link>https://gamov.io/posts/time-travel-schema-evolution/</link><pubDate>Wed, 08 Apr 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/time-travel-schema-evolution/</guid><description>Iceberg snapshots give you time travel on a streaming pipeline. Add columns while Flink writes. Query from Trino and DuckDB.</description></item><item><title>Building a Streaming Lakehouse with Open Source: Kafka to Iceberg to Trino to Superset</title><link>https://gamov.io/posts/streaming-lakehouse/</link><pubDate>Thu, 02 Apr 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/streaming-lakehouse/</guid><description>Open-source streaming lakehouse: Kafka, Flink, Iceberg, Trino, Superset in Docker Compose. One make demo runs it all.</description></item><item><title>SELECT * FROM stream: An Interactive Guide to Flink's Table-Stream Duality</title><link>https://gamov.io/posts/select-star-from-stream/</link><pubDate>Wed, 01 Apr 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/select-star-from-stream/</guid><description>Interactive tutorial teaching Flink SQL table-stream duality with animated visualizations you can explore in your browser.</description></item><item><title>When AI Alignment Experts Can't Align Their Own AI</title><link>https://gamov.io/posts/openclaw-vs-nanoclaw/</link><pubDate>Mon, 30 Mar 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/openclaw-vs-nanoclaw/</guid><description>Meta&amp;#39;s AI alignment director couldn&amp;#39;t control her own agent. OpenClaw vs NanoClaw vs JVM — choosing an AI agent runtime.</description></item><item><title>Twelve Million Java Developers and the AI Ecosystem Forgot About Them</title><link>https://gamov.io/posts/langchain4j/</link><pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/langchain4j/</guid><description>12 million Java devs and AI built everything for Python. LangChain4j brings agents, RAG, and tool calling to the JVM.</description></item><item><title>Goodbye Confluent</title><link>https://gamov.io/posts/goodbye-confluent/</link><pubDate>Thu, 06 May 2021 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/goodbye-confluent/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
May 6th, 2021, was my last day at Confluent.
Here is an email, that I sent to my former co-workers @ConfluentInc.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="exampleblock"&gt;
&lt;div class="content"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Dear team,&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;I’d like to let you know that I am leaving my position of Developer Advocate on May 6th.
I have really enjoyed my time here in Confluent, and I appreciate having had the opportunity to work with with many of you. It was quite a ride, but I would do it again without any doubts.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>5 Kubernetes Tools You Probably Don't Use (But You Should)</title><link>https://gamov.io/posts/5-kubernetes-tools-you-probably-dont-use-but-you-should/</link><pubDate>Thu, 26 Mar 2020 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/5-kubernetes-tools-you-probably-dont-use-but-you-should/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/k9s_ksql.jpg" alt="k9s ksql" width="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
In this post, I’m going to talk about few tools that I found very useful during my Kubernetes development and presentations.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="videoblock"&gt;
&lt;div class="content"&gt;
&lt;iframe src="https://www.youtube.com/embed/HgyoBrFsJdg?rel=0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;03/26/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Finished draft&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;03/11/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial draft&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Earlier this year, I recorded a three-episode series, &lt;a href="https://youtu.be/JiDiC5MI7hw"&gt;«Streaming on Kubernetes:&lt;/a&gt; &lt;a href="https://youtu.be/9HaKP6HBz3s"&gt;It doesn’t have&lt;/a&gt; &lt;a href="https://youtu.be/lzFuEuqOSNM"&gt;to be the hard way.»&lt;/a&gt;
There I showed some demos of the Confluent Operator on Kubernetes.
Many people reached out after and asked - «What kind of terminal do you use,» «What kind of plugins do you use» and so far and so on.
And today, I’m going to be talking about five Kubernetes tools that I use in my demos (of during preparations to it) that you’re probably don’t use but defiantly should.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>The Ultimate Oracle Code One 2019 Guide for Kafka and Stream Processing wisdom seekers</title><link>https://gamov.io/posts/the-oracle-code-one-2019-guide-for-seekers-of-kafka-wisdom/</link><pubDate>Mon, 16 Sep 2019 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/the-oracle-code-one-2019-guide-for-seekers-of-kafka-wisdom/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/sf_fall.jpg" alt="sf fall" width="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
Oracle Code One 2019 is upon us!
Read this post to find all sessions where you can learn things Apache Kafka® and stream processing!
Also, I will be listing very subjective personal recommendations.
Don’t hesitate to reach-out if you would like me to add any details!
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;9/16/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="monday"&gt;&lt;a class="anchor" href="#monday"&gt;&lt;/a&gt;Monday&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Apache Kafka Versus Integration Middleware (MQ, ETL, ESB): Friends or Enemies? [DEV1187]&lt;/strong&gt; by Kai Waehner 09:00 AM - 09:45 AM | Moscone South - Room 302&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Getting Started with Kafka [DEV2417]&lt;/strong&gt; Nikhil Nanivadekar 12:30 PM - 01:15 PM | Moscone South - Room 207/208&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Building Event-Driven Applications with Oracle’s Fn Project and Apache Kafka [DEV1917]&lt;/strong&gt; 01:30 PM - 02:15 PM | Moscone South - Room 304&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Building Reactive Pipelines: How to Go from Scalable Apps to Scalable Systems [DEV1256]&lt;/strong&gt; by Mark Heckler 12:30 PM - 01:15 PM | Moscone South - Room 207/208&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Streaming Machine Learning with Python, Jupyter, TensorFlow, Apache Kafka, and KSQL [DEV1185]&lt;/strong&gt; 04:00 PM - 04:45 PM | Moscone South - Room 201&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Query and Analyze Kafka Streams with Oracle SQL [DEV4292]&lt;/strong&gt; 05:00 PM - 05:45 PM | Moscone South - Room 204&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item><item><title>Stream Processing Like You Have Never Seen Before</title><link>https://gamov.io/posts/stream-processing-like-you-have-never-seen-before/</link><pubDate>Thu, 05 Sep 2019 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/stream-processing-like-you-have-never-seen-before/</guid><description>&lt;!-- toc disabled --&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
This is playbook for «Stream Processing like you have never seen before» talk
Full source code is &lt;a href="https://github.com/gAmUssA/stream-processing-with-spring"&gt;available&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;11/05/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Updated version, presented at &lt;a href="https://www.meetup.com/Cloud-Native-New-York/events/265343986/"&gt;NYC Cloud Native meetup&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;09/05/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision, presented at &lt;a href="https://www.meetup.com/DC-Spring-Framework/events/263679369/"&gt;DC Spring Meetup&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="spring-kafka-application"&gt;&lt;a class="anchor" href="#spring-kafka-application"&gt;&lt;/a&gt;Spring Kafka Application&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="getting-started"&gt;&lt;a class="anchor" href="#getting-started"&gt;&lt;/a&gt;Getting started&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Go to &lt;a href="https://start.spring.io" class="bare"&gt;https://start.spring.io&lt;/a&gt; and generate project using «Spring for Apache Kafka», «Spring for Apache Kafka Streams», «Lombok», «Cloud Streams»&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Where in the world is Viktor in second half of 2019</title><link>https://gamov.io/posts/where-in-the-world-is-viktor-2019/</link><pubDate>Tue, 03 Sep 2019 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/where-in-the-world-is-viktor-2019/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
This blog post inspired by similar posts of my colleagues&amp;#39; @rmoff &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt; and @riferrei &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_2" class="footnote" href="#_footnotedef_2" title="View footnote."&gt;2&lt;/a&gt;]&lt;/sup&gt;.
You can find all my speaking appearances until the end of 2019.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;10/03/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Added New York events&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;9/05/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="september"&gt;&lt;a class="anchor" href="#september"&gt;&lt;/a&gt;September&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🇺🇸 &lt;strong&gt;5th of September: Washington, DC&lt;/strong&gt; — &lt;a href="https://www.meetup.com/DC-Spring-Framework/events/263679369/"&gt;DC Spring Framework&lt;/a&gt;&lt;/p&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;I will be talking about integration between Kafka and SpringFramework.
And I will try to live code!&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Quick Tips on Designing Your Kafka Summit Presentation</title><link>https://gamov.io/posts/quick-tips-on-designing-your-next-presentation/</link><pubDate>Fri, 15 Mar 2019 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/quick-tips-on-designing-your-next-presentation/</guid><description>&lt;div class="imageblock"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/presenting.jpg" alt="presenting" width="70%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
&lt;p&gt;Do yourself a favor and grab a copy of &lt;a href="https://amzn.to/2O7Kq46"&gt;«Presentation Patterns»&lt;/a&gt; book by Neal Ford, Matthew McCullough, Nathaniel Schutta and should be good to go and crush your next tech presentation.&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;103/15/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="preface"&gt;&lt;a class="anchor" href="#preface"&gt;&lt;/a&gt;Preface&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Kafka Summit 2019 events are in full throttle.
&lt;a href="https://www.youtube.com/watch?v=B3tizXMYxhk"&gt;New York event&lt;/a&gt; is happening in a couple weeks.
London event is happening shortly after that in May.
And San Francisco Kafka Summit is open for &lt;a href="https://myeventi.events/kafka19/na/cfp/"&gt;speaker’s proposals&lt;/a&gt;.
My DevX team at Confluent assisted with reviewing proposals.
And now we’re helping many speakers with their decks.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Tips And Tricks That I use in my demos and presentation with Docker</title><link>https://gamov.io/posts/tips-and-tricks-that-i-use-in-my-demos-and-presentation-with-docker/</link><pubDate>Wed, 28 Nov 2018 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/tips-and-tricks-that-i-use-in-my-demos-and-presentation-with-docker/</guid><description>&lt;div class="imageblock"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/me_presenting.jpg" alt="me presenting" width="50%"/&gt;
&lt;/div&gt;
&lt;div class="title"&gt;A very small tip for you!&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TLDR&lt;/div&gt;
the Sole purpose of this post is to help me to return here time to time if I forget some of the commands.
If this would be useful for anyone - praise me on twitter - &lt;a href="http://twitter.com/gamussa" class="bare"&gt;http://twitter.com/gamussa&lt;/a&gt;.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Let’s start with small but important thing - how to erase everything Docker and start clean.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="delete-every-docker-containers"&gt;&lt;a class="anchor" href="#delete-every-docker-containers"&gt;&lt;/a&gt;Delete every Docker containers&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
Don’t do this if you’re on the plane.
Downloading new images using airline’s wifi will be the pain.
Proceed with caution.
You have been warned.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Who is tweeting about hashtag KSQL?</title><link>https://gamov.io/posts/who-is-tweeting-about-ksql/</link><pubDate>Wed, 28 Nov 2018 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/who-is-tweeting-about-ksql/</guid><description>&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
&lt;p&gt;Another day, another post.
This time it’s another &lt;em&gt;playbook&lt;/em&gt; for my &lt;a href="http://DataSciCon.tech" class="bare"&gt;http://DataSciCon.tech&lt;/a&gt; talk «Who’s tweeting about &lt;code&gt;#datascicon&lt;/code&gt;» on November 30th 2018 &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt;
A full source code published in &lt;code&gt;confluetninc/demo-scene&lt;/code&gt; repository &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_2" class="footnote" href="#_footnotedef_2" title="View footnote."&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;12/02/2018&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Small fixes in codes, screenshots, images&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;11/28/2018&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="prerequisites"&gt;&lt;a class="anchor" href="#prerequisites"&gt;&lt;/a&gt;Prerequisites&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Docker&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Docker Compose&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Get example from GitHub&lt;/p&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;If you will follow steps below you should checkout only directory that has source code relevant to this post.&lt;/p&gt;
&lt;div class="listingblock"&gt;
&lt;div class="content"&gt;
&lt;pre class="rouge highlight" style="color: #24292f;background-color: #f6f8fa"&gt;&lt;code data-lang="bash"&gt;&lt;span style="color: #953800"&gt;mkdir&lt;/span&gt; ~/temp/demo-scene
&lt;span style="color: #953800"&gt;cd&lt;/span&gt; ~/temp/demo-scene
git init &lt;span style="color: #953800"&gt;.&lt;/span&gt;
git remote add origin &lt;span style="color: #116329"&gt;-f&lt;/span&gt; https://github.com/confluentinc/demo-scene/
git config core.sparsecheckout &lt;span style="color: #953800"&gt;true
echo&lt;/span&gt; &lt;span style="color: #0a3069"&gt;&amp;#34;twitter-streams/*&amp;#34;&lt;/span&gt; &lt;span style="color: #0550ae"&gt;&amp;gt;&amp;gt;&lt;/span&gt; .git/info/sparse-checkout
git pull &lt;span style="color: #116329"&gt;--depth&lt;/span&gt;&lt;span style="color: #0550ae"&gt;=&lt;/span&gt;2 origin master
&lt;span style="color: #953800"&gt;cd &lt;/span&gt;twitter-streams
&lt;span style="color: #953800"&gt;ls&lt;/span&gt; &lt;span style="color: #116329"&gt;-lh&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</description></item><item><title>Streaming Movies Ratings with Kafka Streams and KSQL</title><link>https://gamov.io/posts/streaming-moview-ratings-with-kafka-streams-and-ksql/</link><pubDate>Tue, 20 Nov 2018 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/streaming-moview-ratings-with-kafka-streams-and-ksql/</guid><description>&lt;div class="imageblock"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/kafka_summit.jpg" alt="kafka summit" width="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
&lt;p&gt;The sole purpose of this blog post is to draft a &lt;em&gt;playbook&lt;/em&gt; for my presentation «Crossing the streams: Rethinking Stream processing with Kafka Streams and KSQL» &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt; that I recently did on Kafka Summit 2018 in San Francisco.
A full source code published in &lt;code&gt;confluetninc/demo-scene&lt;/code&gt; repository &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_2" class="footnote" href="#_footnotedef_2" title="View footnote."&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 70%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.2&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;01/17/2019&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;use CP 5.1.0, updated Control Center screenshots&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;11/21/2018&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Fixed links and minor grammar&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;11/20/2018&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;strong&gt;Disclaimer:&lt;/strong&gt; Another goal is to exercise some ideas around the visual representation of posts in this blog.
And third and the last goal is to brush up my technical writing skills!
Since I moved to DevX &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_3" class="footnote" href="#_footnotedef_3" title="View footnote."&gt;3&lt;/a&gt;]&lt;/sup&gt; from Professional Services where I did write a truckload of customer engagement reports.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Divide, Distribute and Conquer — Stream v. Batch @ Philly JUG</title><link>https://gamov.io/posts/stream-v-batch/</link><pubDate>Wed, 20 Sep 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/stream-v-batch/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
On September 13th 2017 I presented «Divide, Distribute and Conquer: Stream v. Batch» at &lt;a href="https://www.meetup.com/PhillyJUG/events/241276258/"&gt;Philly JUG&lt;/a&gt;.
In this presentation I talked about how developers and data engineers are changing their perception on data processing using streaming data technologies.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/phillyjug.png" alt="phillyjug" width="40%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 60%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;09/20/2017&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="tweets"&gt;&lt;a class="anchor" href="#tweets"&gt;&lt;/a&gt;Tweets &lt;span class="icon"&gt;&lt;i class="fa fa-twitter"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;blockquote class="twitter-tweet" data-partner="tweetdeck"&gt;&lt;p lang="en" dir="ltr"&gt;&lt;a href="https://twitter.com/ThePhillyJUG"&gt;@ThePhillyJUG&lt;/a&gt; meetup where &lt;a href="https://twitter.com/gAmUssA"&gt;@gamussa&lt;/a&gt; talked about stream vs batch, &lt;a href="https://twitter.com/hashtag/kafka?src=hash"&gt;#kafka&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/kafkastreams?src=hash"&gt;#kafkastreams&lt;/a&gt; &lt;a href="https://t.co/6KlFwfnCAw"&gt;pic.twitter.com/6KlFwfnCAw&lt;/a&gt;&lt;/p&gt;— Jason Young (@jythejavaguy) &lt;a href="https://twitter.com/jythejavaguy/status/908315453151465472"&gt;September 14, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet" data-partner="tweetdeck"&gt;&lt;p lang="en" dir="ltr"&gt;&lt;a href="https://twitter.com/gAmUssA"&gt;@gamussa&lt;/a&gt;: &amp;#34;how many here use Gradle? Maven? Hmm, people have made some poor life choices. (J/K!)&amp;#34; Didn&amp;#39;t say which was the right choice :) &lt;a href="https://t.co/rPAGZNKEoy"&gt;pic.twitter.com/rPAGZNKEoy&lt;/a&gt;&lt;/p&gt;— Jason Young (@jythejavaguy) &lt;a href="https://twitter.com/jythejavaguy/status/908317303514828800"&gt;September 14, 2017&lt;/a&gt;&lt;/blockquote&gt;
&lt;/div&gt;</description></item><item><title>I'm Speaking At JavaOne 2017</title><link>https://gamov.io/posts/speaking-at-javaone-2017/</link><pubDate>Thu, 07 Sep 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/speaking-at-javaone-2017/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
I’m going to speak at &lt;a href="https://www.oracle.com/javaone/index.html"&gt;JavaOne 2017&lt;/a&gt; in San Francisco, CA October 1st - 5th.
My session can be found in the &lt;a href="https://events.rainfocus.com/catalog/oracle/oow17/catalogjavaone17?search=gamov&amp;amp;showEnrolled=false"&gt;Session Catalog&lt;/a&gt;.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/goodnews.jpg" alt="goodnews" width="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;I ♥ JavaOne!&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Seriously, if in 2017 you do Java and it pays your bills, this is a conference you don’t want to miss.
And this year this is going to be BIG!
JavaOne is leaving the hotels and going to the San Francisco Prime location - &lt;a href="https://goo.gl/maps/FpCfB5U218E2"&gt;Moscone West&lt;/a&gt;!
And I’m excited to deliver 3 (THREE!) presentations at JavaOne this year.
Here’s what I’m going to talk about this year:&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Goodbye, Hazelcast!</title><link>https://gamov.io/posts/goodbye-hazelcast/</link><pubDate>Fri, 21 Jul 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/goodbye-hazelcast/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
July 21th, 2017, was my last day at Hazelcast.
Here is an email, that I sent to my former co-workers @Hazelcast.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="sidebarblock"&gt;
&lt;div class="content"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Hello team,&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Today was my last day with Hazelcast.
I joined Hazelcast when version 3.4 was about to be released.
And now 3.9EA version had been released couple weeks ago.
Wow! So many things have been done, so many new features, so many new users had been acquired!
It was an incredible pleasure to work with such smart and passionate about open source people!
I learned a lot while working with you, with product, customers, community!
It was such a fun ride even though sometimes it was bumpy!
Keep up your passion for open source, live long and prosper!
I will try to stay around in the community because for this 2.5 years Hazelcast has become a big part of my life!&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Testing containers with Testcontainers @ Atlanta JUG</title><link>https://gamov.io/posts/testcontainers-ajug/</link><pubDate>Thu, 20 Jul 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/testcontainers-ajug/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
On July 18th 2017 I presented «Testing containers with TestContainers: There and back again» at &lt;a href="https://www.meetup.com/atlantajug/events/241164759/"&gt;Atlanta JUG&lt;/a&gt; talk.
In this presentation I talked about how Docker can help with seamless transition from development to production by leveraging container technology in integration testing.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/ajug.jpg" alt="ajug"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 60%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;07/20/2017&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="a-presentation"&gt;&lt;a class="anchor" href="#a-presentation"&gt;&lt;/a&gt;A presentation &lt;span class="icon"&gt;&lt;i class="fa fa-youtube"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="videoblock text-center"&gt;
&lt;div class="content"&gt;
&lt;iframe width="853" height="480" src="https://www.youtube.com/embed/zUh9KuCYquU?rel=0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;/div&gt;</description></item><item><title>Cloud Foundry Summit Silicon Valley 2017</title><link>https://gamov.io/posts/cfsummit-2017/</link><pubDate>Thu, 15 Jun 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/cfsummit-2017/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/cf_logo.png" alt="cf logo" width="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
&lt;p&gt;Full source code published in &lt;code&gt;hazelcast/cfsummit17-wednesday&lt;/code&gt; repository &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="distributed-caching-for-you-new-node-js-project"&gt;&lt;a class="anchor" href="#distributed-caching-for-you-new-node-js-project"&gt;&lt;/a&gt;Distributed Caching for you new Node.js Project&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="videoblock text-center"&gt;
&lt;div class="content"&gt;
&lt;iframe width="853" height="480" src="https://www.youtube.com/embed/hUauzlCDvHQ?rel=0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;a class="anchor" href="#have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;/a&gt;Have you seen it? Do you like it? Please, rate&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSe50u4O51e46vt1ri-JvPoGbMhMpjb0NXA7nfLmqW5_jy4SNA/viewform?embedded=true" width="600" height="720" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="slides"&gt;&lt;a class="anchor" href="#slides"&gt;&lt;/a&gt;Slides&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;script async="" class="speakerdeck-embed" data-id="d665a9bf34bb433bb2bed5bace477685" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/3ANXOqvM3j6ak2" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/distributed-caching-for-your-next-nodejs-project-cf-summit-06152017" title="Distributed caching for your next node.js project cf summit - 06-15-2017" target="_blank"&gt;Distributed caching for your next node.js project cf summit - 06-15-2017&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="https://www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="grab-the-code"&gt;&lt;a class="anchor" href="#grab-the-code"&gt;&lt;/a&gt;Grab the code &lt;span class="icon"&gt;&lt;i class="fa fa-code-fork"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;You can find code sample is following GH repository&lt;/div&gt;</description></item><item><title>How To Scale Hazelcast Cluster with Docker Compose</title><link>https://gamov.io/posts/how-to-scale-hazelcast-docker-containers-with-docker-compose/</link><pubDate>Thu, 08 Jun 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/how-to-scale-hazelcast-docker-containers-with-docker-compose/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;&lt;span class="image"&gt;&lt;img src="https://gamov.io/images/IMDG_orange_logo_square.png" alt="IMDG orange logo square"/&gt;&lt;/span&gt;
&lt;span class="image"&gt;&lt;img src="https://gamov.io/images/Compose.png" alt="Compose" width="20%"/&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
&lt;p&gt;During webinar about «Distributed Caching for you next Node.js project» &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt; I was asked if we provide examples of running Hazelcast with Compose or Swarm.
Now you have it!
Full source code published in &lt;code&gt;hazelcast/hazelcast-code-samples&lt;/code&gt; repository &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_2" class="footnote" href="#_footnotedef_2" title="View footnote."&gt;2&lt;/a&gt;]&lt;/sup&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;strong&gt;Disclaimer:&lt;/strong&gt; It’s not an introduction to &lt;code&gt;docker-compose&lt;/code&gt;.
To learn basic steps of &lt;code&gt;docker-compose&lt;/code&gt;, please, refer to official &lt;code&gt;docker-compose&lt;/code&gt; «getting started guide» &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_3" class="footnote" href="#_footnotedef_3" title="View footnote."&gt;3&lt;/a&gt;]&lt;/sup&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Distributed Java Streams @ ACGNJ 2017</title><link>https://gamov.io/posts/acgnj-2017/</link><pubDate>Tue, 30 May 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/acgnj-2017/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="the-splendors-and-miseries-of-the-distributed-streams"&gt;&lt;a class="anchor" href="#the-splendors-and-miseries-of-the-distributed-streams"&gt;&lt;/a&gt;The Splendors and Miseries of the Distributed Streams&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="videoblock text-center"&gt;
&lt;div class="content"&gt;
&lt;iframe width="853" height="480" src="https://www.youtube.com/embed/RgTlHELZiZQ?rel=0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;a class="anchor" href="#have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;/a&gt;Have you seen it? Do you like it? Please, rate&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSeeJN9gLXRTUaCEUmCET5PDdTQTdBfT5HMY1KPNaAnQcc49XQ/viewform?embedded=true" width="600" height="500" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="slides"&gt;&lt;a class="anchor" href="#slides"&gt;&lt;/a&gt;Slides&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
TBD
TBD
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>JavaPuzzlers @ PhillyETE 2017</title><link>https://gamov.io/posts/phillyete-2017/</link><pubDate>Tue, 18 Apr 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/phillyete-2017/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;a class="anchor" href="#have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;/a&gt;Have you seen it? Do you like it? Please, rate&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSdFdfYPhPYF_0ZuJ3ZxoNRWSGrVmrUHR9nghfggmI_ifilLSw/viewform?embedded=true" width="600" height="400" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="slides"&gt;&lt;a class="anchor" href="#slides"&gt;&lt;/a&gt;Slides&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
TBD
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/AEqSoxwy4nkZCg?startSlide=2" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/philly-ete-java-puzzlers-ng" title="[Philly ETE] Java Puzzlers NG" target="_blank"&gt;[Philly ETE] Java Puzzlers NG&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="//www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>JPoint - 2017 [RU]</title><link>https://gamov.io/posts/jpoint-2017/</link><pubDate>Sat, 08 Apr 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/jpoint-2017/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/jpoint.png" alt="jpoint" width="20%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="распределяй-и-властвуй-2-потоки-данных-наносят-ответный-удар-russian-edition"&gt;&lt;a class="anchor" href="#распределяй-и-властвуй-2-потоки-данных-наносят-ответный-удар-russian-edition"&gt;&lt;/a&gt;Распределяй и властвуй — 2: Потоки данных наносят ответный удар - Russian Edition&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="видели-ли-вы-этот-доклад-как-вам"&gt;&lt;a class="anchor" href="#видели-ли-вы-этот-доклад-как-вам"&gt;&lt;/a&gt;Видели ли вы этот доклад? как Вам?&lt;/h3&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSdud9s_UOYM4lMkSWSG3QeDuwnI2wjk_5JhuB04JVq5pzBh9A/viewform?embedded=true" width="600" height="400" frameborder="0" marginheight="0" marginwidth="0"&gt;Гружу...&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="видео"&gt;&lt;a class="anchor" href="#видео"&gt;&lt;/a&gt;Видео&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;TBD&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="слайды"&gt;&lt;a class="anchor" href="#слайды"&gt;&lt;/a&gt;Слайды&lt;/h3&gt;
&lt;script async="" class="speakerdeck-embed" data-id="de15b67f6c7c4307aca07082138dcfb8" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/mRTibHpOfpibuM" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/2-74767617" title="Распределяй и властвуй — 2: Потоки данных наносят ответный удар" target="_blank"&gt;Распределяй и властвуй — 2: Потоки данных наносят ответный удар&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="//www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="код"&gt;&lt;a class="anchor" href="#код"&gt;&lt;/a&gt;Код &lt;span class="icon"&gt;&lt;i class="fa fa-code-fork"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;script src="https://gist.github.com/gAmUssA/691009924e70b3ed7bd60e9ae998e898.js"&gt;&lt;/script&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;Примеры кода вы найдете здесь&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/hazelcast/hazelcast-jet-code-samples" class="bare"&gt;https://github.com/hazelcast/hazelcast-jet-code-samples&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;Подсчет строк&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/hazelcast/hazelcast-jet-code-samples/blob/master/core/wordcount/src/main/java/WordCount.java" class="bare"&gt;https://github.com/hazelcast/hazelcast-jet-code-samples/blob/master/core/wordcount/src/main/java/WordCount.java&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;Консьюмер Кафки&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/hazelcast/hazelcast-jet-code-samples/blob/master/kafka/consume-kafka/src/main/java/ConsumeKafka.java" class="bare"&gt;https://github.com/hazelcast/hazelcast-jet-code-samples/blob/master/kafka/consume-kafka/src/main/java/ConsumeKafka.java&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>JBreak 2017 [RU]</title><link>https://gamov.io/posts/jbreak-2017/</link><pubDate>Tue, 04 Apr 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/jbreak-2017/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/jbreak.png" alt="jbreak" width="20%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="блеск-и-нищета-распределенных-стримов-russian-edition"&gt;&lt;a class="anchor" href="#блеск-и-нищета-распределенных-стримов-russian-edition"&gt;&lt;/a&gt;Блеск и нищета распределенных стримов - Russian Edition&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="видели-ли-вы-этот-доклад-как-вам"&gt;&lt;a class="anchor" href="#видели-ли-вы-этот-доклад-как-вам"&gt;&lt;/a&gt;Видели ли вы этот доклад? как Вам?&lt;/h3&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSe7VKXSWOXSLqytSwq_T-OkQVGdEkKPWDEDzHCWwW_h9WfA5g/viewform?embedded=true" width="600" height="400" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="видео"&gt;&lt;a class="anchor" href="#видео"&gt;&lt;/a&gt;Видео&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;TBD&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="слайды"&gt;&lt;a class="anchor" href="#слайды"&gt;&lt;/a&gt;Слайды&lt;/h3&gt;
&lt;script async="" class="speakerdeck-embed" data-id="106c738a739b4f0f97dd7da9278eedc7" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/v0Yc7tRkZX7J2i" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/jbreak-04042017" title="[JBreak] Блеск И Нищета Распределенных Стримов - 04-04-2017" target="_blank"&gt;[JBreak] Блеск И Нищета Распределенных Стримов - 04-04-2017&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="//www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="код-искать-тут"&gt;&lt;a class="anchor" href="#код-искать-тут"&gt;&lt;/a&gt;Код искать тут &lt;span class="icon"&gt;&lt;i class="fa fa-code-fork"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;You can find code sample is following GH repository&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/gAmUssA/jet-streams-presentation" class="bare"&gt;https://github.com/gAmUssA/jet-streams-presentation&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Branch for this talk &lt;code&gt;Jbreak_2017&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>Hazelcast Node.js Client Refcard</title><link>https://gamov.io/posts/hazelcast-node-dot-js-client-refcard/</link><pubDate>Thu, 09 Feb 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/hazelcast-node-dot-js-client-refcard/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/IMDG_orange_logo_square.png" alt="IMDG orange logo square"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/node.png" alt="node"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Welcome to «The Distributed World» of Hazelcast.
Here are sample usages of distributed data structures using Node.js client.&lt;/p&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 60%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;03/09/2015&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;single quotes in js code, added Before Getting Started section&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;02/07/2015&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial revision&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
The JavaScript examples use ES6 syntax
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;</description></item><item><title>Jfokus 2017</title><link>https://gamov.io/posts/jfokus-2017/</link><pubDate>Wed, 08 Feb 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/jfokus-2017/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="riding-the-distributed-java-streams"&gt;&lt;a class="anchor" href="#riding-the-distributed-java-streams"&gt;&lt;/a&gt;Riding the Distributed Java Streams&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;a class="anchor" href="#have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;/a&gt;Have you seen it? Do you like it? Please, rate&lt;/h3&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSeUN0YZ4DXyRDg4e9uPrKe-hKIC-Qmhs86EZY-AkXsl1Slbig/viewform?embedded=true" width="600" height="400" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="video"&gt;&lt;a class="anchor" href="#video"&gt;&lt;/a&gt;Video&lt;/h3&gt;
&lt;iframe width="560" height="315" src="https://www.youtube.com/embed/_VPItjmrX2Y?list=PLaJqps0DAycqu2OV6sjl_Dm_VymB6KDV_" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="slides"&gt;&lt;a class="anchor" href="#slides"&gt;&lt;/a&gt;Slides&lt;/h3&gt;
&lt;script async="" class="speakerdeck-embed" data-id="364d0680d09d483da8760c83df12fa47" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/GtUk0TwecrPtjS" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/jfokus-riding-the-jet-streams" title="[Jfokus] Riding the Jet Streams" target="_blank"&gt;[Jfokus] Riding the Jet Streams&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="//www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="grab-the-code"&gt;&lt;a class="anchor" href="#grab-the-code"&gt;&lt;/a&gt;Grab the code &lt;span class="icon"&gt;&lt;i class="fa fa-code-fork"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;You can find code sample is following GH repository&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/gAmUssA/jet-streams-presentation" class="bare"&gt;https://github.com/gAmUssA/jet-streams-presentation&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Branch for this talk &lt;code&gt;JFokus_Feb2017&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</description></item><item><title>NYJavaSig, February 2017</title><link>https://gamov.io/posts/nyjavasig-2017/</link><pubDate>Thu, 02 Feb 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/nyjavasig-2017/</guid><description>&lt;div class="sect1"&gt;
&lt;h2 id="riding-the-distributed-java-streams"&gt;&lt;a class="anchor" href="#riding-the-distributed-java-streams"&gt;&lt;/a&gt;Riding the Distributed Java Streams&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;a class="anchor" href="#have-you-seen-it-do-you-like-it-please-rate"&gt;&lt;/a&gt;Have you seen it? Do you like it? Please, rate&lt;/h3&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLSd3EWIZu-cZRELvXUcSVRPTbyzGbiKPzDQJudPZGKdiys_3Sg/viewform?embedded=true" width="600" height="400" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="slides"&gt;&lt;a class="anchor" href="#slides"&gt;&lt;/a&gt;Slides&lt;/h3&gt;
&lt;script async="" class="speakerdeck-embed" data-id="2a44c22661014ab18bde0171507b0200" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/1MucyCaur6vT52?startSlide=2" width="510" height="420" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/nyjavasig-riding-the-distributed-streams-feb-2nd-2017" title="[NYJavaSig] Riding the Distributed Streams - Feb 2nd, 2017" target="_blank"&gt;[NYJavaSig] Riding the Distributed Streams - Feb 2nd, 2017&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="//www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="grab-the-code"&gt;&lt;a class="anchor" href="#grab-the-code"&gt;&lt;/a&gt;Grab the code &lt;span class="icon"&gt;&lt;i class="fa fa-code-fork"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;You can find code sample is following GH repository&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/gAmUssA/jet-streams-presentation/tree/NYJavaSig_Feb2017"&gt;https://github.com/gAmUssA/jet-streams-presentation&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Branch for this talk &lt;code&gt;NYJavaSig_Feb2017&lt;/code&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="tweets"&gt;&lt;a class="anchor" href="#tweets"&gt;&lt;/a&gt;Tweets &lt;span class="icon"&gt;&lt;i class="fa fa-twitter"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;blockquote class="twitter-tweet" data-lang="en"&gt;&lt;p lang="en" dir="ltr"&gt;Large crowd building for &lt;a href="https://twitter.com/gAmUssA"&gt;@gAmUssA&lt;/a&gt; and distributed streams at &lt;a href="https://twitter.com/hashtag/nyjavasig?src=hash"&gt;#nyjavasig&lt;/a&gt; meeting. &lt;a href="https://twitter.com/java"&gt;@java&lt;/a&gt; &lt;a href="https://t.co/9AzXZHjcL8"&gt;pic.twitter.com/9AzXZHjcL8&lt;/a&gt;&lt;/p&gt;— Frank Greco (@frankgreco) &lt;a href="https://twitter.com/frankgreco/status/827301892850122752"&gt;February 2, 2017&lt;/a&gt;&lt;/blockquote&gt; &lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet" data-lang="en"&gt;&lt;p lang="en" dir="ltr"&gt;Great presentation by &lt;a href="https://twitter.com/gAmUssA"&gt;@gAmUssA&lt;/a&gt; about streams and &lt;a href="https://twitter.com/hazelcast"&gt;@hazelcast&lt;/a&gt; &lt;a href="https://t.co/5fERKGoQ1r"&gt;pic.twitter.com/5fERKGoQ1r&lt;/a&gt;&lt;/p&gt;— Biren (@birendev) &lt;a href="https://twitter.com/birendev/status/827315714033905664"&gt;February 3, 2017&lt;/a&gt;&lt;/blockquote&gt; &lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet" data-lang="en"&gt;&lt;p lang="en" dir="ltr"&gt;Let&amp;#39;s look at the code! &lt;a href="https://twitter.com/gAmUssA"&gt;@gAmUssA&lt;/a&gt; on distributed streams at &lt;a href="https://twitter.com/hashtag/NYJavaSIG?src=hash"&gt;#NYJavaSIG&lt;/a&gt; mtg &lt;a href="https://twitter.com/java"&gt;@java&lt;/a&gt; &lt;a href="https://t.co/Z8l8NxdZoR"&gt;pic.twitter.com/Z8l8NxdZoR&lt;/a&gt;&lt;/p&gt;— Frank Greco (@frankgreco) &lt;a href="https://twitter.com/frankgreco/status/827313334915624960"&gt;February 3, 2017&lt;/a&gt;&lt;/blockquote&gt; &lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet" data-lang="en"&gt;&lt;p lang="en" dir="ltr"&gt;Distributed Streams by &lt;a href="https://twitter.com/gAmUssA"&gt;@gAmUssA&lt;/a&gt; at &lt;a href="https://twitter.com/hashtag/NYJavaSIG?src=hash"&gt;#NYJavaSIG&lt;/a&gt;. Thanks &lt;a href="https://twitter.com/frankgreco"&gt;@frankgreco&lt;/a&gt; &lt;a href="https://twitter.com/CreditSuisse"&gt;@CreditSuisse&lt;/a&gt; &lt;a href="https://t.co/KgpHmWSv5I"&gt;pic.twitter.com/KgpHmWSv5I&lt;/a&gt;&lt;/p&gt;— Sai Sharan Donthi (@sai_donthi) &lt;a href="https://twitter.com/sai_donthi/status/827315748037152768"&gt;February 3, 2017&lt;/a&gt;&lt;/blockquote&gt; &lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;blockquote class="twitter-tweet" data-lang="en"&gt;&lt;p lang="en" dir="ltr"&gt;A traditional tweet from the stage &lt;a href="https://twitter.com/hashtag/nyjavasig?src=hash"&gt;#nyjavasig&lt;/a&gt;! &lt;br/&gt;I asked people say Java 😃&lt;a href="https://twitter.com/hashtag/hazelcastjet?src=hash"&gt;#hazelcastjet&lt;/a&gt; &lt;a href="https://twitter.com/hashtag/h?src=hash"&gt;#h&lt;/a&gt;… &lt;a href="https://t.co/jE35I39XBx"&gt;https://t.co/jE35I39XBx&lt;/a&gt; &lt;a href="https://t.co/r2DtjCrijK"&gt;pic.twitter.com/r2DtjCrijK&lt;/a&gt;&lt;/p&gt;— Viktor Gamov (@gAmUssA) &lt;a href="https://twitter.com/gAmUssA/status/827298089643958273"&gt;February 2, 2017&lt;/a&gt;&lt;/blockquote&gt; &lt;script async="" src="//platform.twitter.com/widgets.js" charset="utf-8"&gt;&lt;/script&gt;
&lt;/div&gt;</description></item><item><title>Codemash 2017</title><link>https://gamov.io/posts/codemash-2017/</link><pubDate>Thu, 12 Jan 2017 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/codemash-2017/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="http://www.codemash.org/wp-content/themes/codemash/images/codemash-icon-featured-box.png" alt="codemash icon featured box"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="caching-made-bootiful"&gt;&lt;a class="anchor" href="#caching-made-bootiful"&gt;&lt;/a&gt;Caching Made Bootiful&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="videoblock text-center"&gt;
&lt;div class="content"&gt;
&lt;iframe width="640" height="480" src="https://www.youtube.com/embed/QkQfFosZIlo?rel=0" frameborder="0" allowfullscreen=""&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="have-you-seen-it-do-you-like-it"&gt;&lt;a class="anchor" href="#have-you-seen-it-do-you-like-it"&gt;&lt;/a&gt;Have you seen it? Do you like it?&lt;/h3&gt;
&lt;iframe src="https://docs.google.com/forms/d/e/1FAIpQLScXPE770oDhESoMlyP_oc35CYh50-lawp8TNN-oONInjB4Y4w/viewform?embedded=true" width="760" height="500" frameborder="0" marginheight="0" marginwidth="0"&gt;Loading...&lt;/iframe&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="slides"&gt;&lt;a class="anchor" href="#slides"&gt;&lt;/a&gt;Slides&lt;/h3&gt;
&lt;script async="" class="speakerdeck-embed" data-id="8a942f7501cf4f06b4a803f18ea41b7f" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"&gt;&lt;/script&gt;
&lt;iframe src="//www.slideshare.net/slideshow/embed_code/key/nlIjtpsiKHQIZx" width="595" height="485" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" style="border:1px solid #CCC; border-width:1px; margin-bottom:5px; max-width: 100%;" allowfullscreen=""&gt; &lt;/iframe&gt; &lt;div style="margin-bottom:5px"&gt; &lt;strong&gt; &lt;a href="//www.slideshare.net/VikGamov/codemash-caching-made-bootiful" title="[Codemash] Caching Made &amp;#34;Bootiful&amp;#34;!" target="_blank"&gt;[Codemash] Caching Made &amp;#34;Bootiful&amp;#34;!&lt;/a&gt; &lt;/strong&gt; from &lt;strong&gt;&lt;a target="_blank" href="//www.slideshare.net/VikGamov"&gt;Viktor Gamov&lt;/a&gt;&lt;/strong&gt; &lt;/div&gt;
&lt;/div&gt;
&lt;div class="sect2"&gt;
&lt;h3 id="grab-the-code"&gt;&lt;a class="anchor" href="#grab-the-code"&gt;&lt;/a&gt;Grab the code &lt;span class="icon"&gt;&lt;i class="fa fa-code-fork"&gt;&lt;/i&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class="paragraph"&gt;
&lt;div class="title"&gt;You can find code sample is following GH repository&lt;/div&gt;
&lt;p&gt;&lt;a href="https://github.com/gAmUssA/bootiful_codemash2017" class="bare"&gt;https://github.com/gAmUssA/bootiful_codemash2017&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Each branch represents parts of the talk:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;00-Inception&lt;/code&gt; - starting point of this talk, introduction of a &lt;em&gt;slow&lt;/em&gt; service&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;01-EnableCaching&lt;/code&gt; - we’re trying to fix slowness by enabling Spring Caching Abstraction&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;02-EnableEmbeddedDistributedCaching&lt;/code&gt; - go distributed with embedded Hazelcast cluster.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;02-EnableClientClusterDistributedCaching&lt;/code&gt; - distributed client-cluster topology&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;03-EnterJCache&lt;/code&gt; - with standard API for caching we can remove bunch of code and enable nice features like entry listeners&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description></item><item><title>What's New in Hazelcast Node.js Client</title><link>https://gamov.io/posts/whats-new-in-hazelcast-client-for-nodejs/</link><pubDate>Fri, 09 Sep 2016 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/whats-new-in-hazelcast-client-for-nodejs/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/node.png" alt="node"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
Rejoice, JavaScript people!
There are many new features in Hazelcast Node.js Client 0.4.1.
In the 10 minutes, you spend reading this blog I will cover &amp;#34;what’s new&amp;#34;!
Also, if you read this blog post till the end, you will also learn what’s coming to future releases.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;It has been a while since out first blog post on Hazelcast Node.js Client &lt;sup class="footnote"&gt;[&lt;a id="_footnoteref_1" class="footnote" href="#_footnotedef_1" title="View footnote."&gt;1&lt;/a&gt;]&lt;/sup&gt;.
Our brave developers have been very busy adding new features and making Hazelcast Node.js Client faster!&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Getting Started with Hazelcast and Node.js</title><link>https://gamov.io/posts/getting-started-with-hazelcast-and-node/</link><pubDate>Mon, 18 Apr 2016 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/getting-started-with-hazelcast-and-node/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/node.png" alt="node"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
Install the package &lt;code&gt;npm install hazelcast-client&lt;/code&gt;, &lt;a href="#fullapp"&gt;grab a demo app&lt;/a&gt; and read &lt;a href="http://hazelcast.github.io/hazelcast-nodejs-client/api/0.2/docs"&gt;API docs&lt;/a&gt;.
Time To «Hello World!» less than 5 min.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="intro"&gt;&lt;a class="anchor" href="#intro"&gt;&lt;/a&gt;Intro&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;On the behalf of Hazelcast Team, I’m pleased to announce the availability of version 0.2 of the Hazelcast Client for Node.js.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;The new version includes following features:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="ulist"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;IMap&lt;/code&gt;&lt;/p&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Node.js client supports following operations of &lt;code&gt;IMap&lt;/code&gt; - &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;put&lt;/code&gt;, &lt;code&gt;remove&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Smart Client&lt;/p&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;A client connects to each cluster node.
Since each data partition uses the well known and &lt;strong&gt;consistent hashing algorithm&lt;/strong&gt;, each client can send an operation to the relevant cluster node.
This increases the overall throughput and efficiency.
Plus, you don’t need to restart the client when adding or removing nodes from the cluster.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Travel Report - Q1 2016</title><link>https://gamov.io/posts/travel-report-q1-2016/</link><pubDate>Thu, 31 Mar 2016 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/travel-report-q1-2016/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
Life on the road. It’s a brief review of first three months of 2016.
Major events - Toronto JUG, Central Ohio JUG, DevNexus.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/luggage.jpeg" alt="luggage" width="50%" height="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 60%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;3/31/2015&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial blog post&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="intro"&gt;&lt;a class="anchor" href="#intro"&gt;&lt;/a&gt;Intro&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;At the suggestion of those of you who read my blog and send me comments, I am going to try to write one post about travel and events per quarter.
With that said, 2016 just began, and I have already completed five events to share with you.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Caching Made Bootiful — Hazelcast Way</title><link>https://gamov.io/posts/caching-made-bootiful/</link><pubDate>Thu, 31 Dec 2015 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/caching-made-bootiful/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/hazelcast_boot_1.png" alt="hazelcast boot 1" width="40%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
Source code from this blog is posted on &lt;a href="https://github.com/hazelcast/hazelcast-code-samples/tree/master/hazelcast-integration/springboot-caching"&gt;the Hazelcast Code Examples repository on Github&lt;/a&gt;.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="paragraph lead"&gt;
&lt;p&gt;The folks at OpenCredo recently published a blog post entitled &lt;a href="https://www.opencredo.com/2015/12/01/spring-booting-hazelcast/"&gt;«Running and Testing Hazelcast in a Spring Boot Application&lt;/a&gt;».
They introduce some of the basic features of Hazelcast including: Spring dependency injection, how to embed it in a Spring Boot application and write simple integration tests.
It is a really good first reading if your using Spring.
Make sure you check it out.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>My Year At Hazelcast In Review</title><link>https://gamov.io/posts/my-year-at-hazelcast-in-review/</link><pubDate>Tue, 29 Dec 2015 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/my-year-at-hazelcast-in-review/</guid><description>&lt;div class="imageblock text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/laptop.jpg" alt="laptop"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
It has been an awesome year full traveling (roughly 20 states), POCs for the clients and the prospects, training (including public classes) and conference talks.
While I am already looking forward to 2016, here is a quick recap of my 2015 with Hazelcast.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 60%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.2&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;1/6/2015&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Added Groovy Puzzlers Video link from SpringOne 2GX&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;12/31/2015&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Added Atlanta JUG video link&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;12/29/2015&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial blog post&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="into"&gt;&lt;a class="anchor" href="#into"&gt;&lt;/a&gt;Into&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph lead"&gt;
&lt;p&gt;2015 has been a &lt;em&gt;helluva&lt;/em&gt; of a year for me, which started off with a new job: &lt;a href="http://next.javaheadbrain.com/posts/2014/12/13/goodbye-farata-hello-hazelcast.html"&gt;the Solutions Architect in Hazelcast&lt;/a&gt; - Open Source In-Memory Data Grid company.
In addition to travelling to over 20 states, I had &lt;a href="#events"&gt;numerous opportunities&lt;/a&gt; to share my programming experience and how to develop and deploy the distributed systems.
I enjoyed the conference talks, &lt;a href="http://blog.hazelcast.com/author/viktor-gamov/"&gt;blog posts&lt;/a&gt;, and podcasts (&lt;a href="http://razbor-poletov.com"&gt;1&lt;/a&gt;, &lt;a href="http://theartofprogramming.podbean.com/e/выпуск-№100-—-the-art-of-programming-java-learningдва-слова/"&gt;2&lt;/a&gt;, &lt;a href="http://ctocast.com/post/135596766138/ctocast-15-виктор-гамов-Hazelcast"&gt;3&lt;/a&gt; in Russian).&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Hazelcast for MongoDB Developers</title><link>https://gamov.io/posts/hazelcast-for-mongodb-developers/</link><pubDate>Mon, 02 Nov 2015 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/hazelcast-for-mongodb-developers/</guid><description>&lt;div class="imageblock"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/hazelcast_mongo.jpg" alt="hazelcast mongo"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
When I talk to the developers about Hazelcast, many of them ask how Hazelcast is different from NOSQL databases, and particularly from MongoDB.
In this blog post, I will try to answer this question once and for all.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;!-- toc disabled --&gt;
&lt;div class="sect1"&gt;
&lt;h2 id="introduction"&gt;&lt;a class="anchor" href="#introduction"&gt;&lt;/a&gt;Introduction&lt;/h2&gt;
&lt;div class="sectionbody"&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;&lt;strong&gt;MongoDB&lt;/strong&gt; is an open source, document-oriented database designed with both scalability and developer agility in mind. Instead of storing your data in tables and rows as you would with a relational database, in MongoDB you store JSON-like documents with a dynamic schema.
In short, MongoDB is an NOSQL data store, primarily concerned with storing/persisting and retrieving schema-free data.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Ground-up Introduction To In-Memory Data</title><link>https://gamov.io/posts/ground-up-introduction-to-in-memory-data/</link><pubDate>Tue, 27 Jan 2015 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/ground-up-introduction-to-in-memory-data/</guid><description>&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
This April, &lt;a href="http://codepalousa.com/blog/2015/code-palousa-2015-session-listing/"&gt;I’m going to deliver&lt;/a&gt; half-day workshop «Ground-up Introduction To In-Memory Data» at &lt;a href="http://codepalousa.com"&gt;Code PaLOUsa&lt;/a&gt; conference in Louisville, KY.
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;You’re an architect or a developer with years of experience creating amazing applications. You’ve just been assigned to a &lt;strong&gt;gasp&lt;/strong&gt; low latency project! Because you’re an expert, you’re expected to master a new &lt;em&gt;In-Memory caching/data technology&lt;/em&gt; and be productive from &lt;strong&gt;day 1&lt;/strong&gt;. You feel completely lost as you open the JAR files. Not only that, but you have to contend with new topologies and data stores like NoSQL or Hadoop.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Goodbye, Farata. Hello, Hazelcast!</title><link>https://gamov.io/posts/goodbye-farata-hello-hazelcast/</link><pubDate>Sat, 13 Dec 2014 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/goodbye-farata-hello-hazelcast/</guid><description>&lt;div class="quoteblock"&gt;
&lt;blockquote&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Go for it now. The future is promised to no one.&lt;/p&gt;
&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div class="attribution"&gt;
— Wayne Dyer
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="imageblock right text-center"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/HazelcastLogo-Blue_Dark_1200w.png" alt="hazelcast" width="50%"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="admonitionblock note"&gt;
&lt;table&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td class="icon"&gt;
&lt;i class="fa icon-note" title="Note"&gt;&lt;/i&gt;
&lt;/td&gt;
&lt;td class="content"&gt;
&lt;div class="title"&gt;TL;DR&lt;/div&gt;
Monday, December 15, I’m staring my new role as Solutions Architect at &lt;a href="http://hazelcast.com"&gt;Hazelcast&lt;/a&gt;.&lt;br/&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;&lt;a href="http://pleer.com/tracks/4445417GRwk"&gt;I’ve had a great time&lt;/a&gt; at &lt;a href="http://faratasystems.com"&gt;Farata Systems&lt;/a&gt; over the past 4 years and 3 months. It was my first workplace in US, and it was incredible place to work. During that period, I learned so many technologies, tools, frameworks and even languages so I can say with confidence that it was quite a ride!&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>I'm speaking at JavaOne 2013</title><link>https://gamov.io/posts/im-speaking-at-javaone/</link><pubDate>Tue, 09 Jul 2013 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/im-speaking-at-javaone/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;New achievement unlocked - I’m going to deliver the talk at JavaOne 2013!
This year I will be talking about very demanding and interesting topic for me - about integration Java and JavaScript.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Here is quick abstract of my &lt;strong&gt;[BOF5793]&lt;/strong&gt; session:&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;&amp;#34;&amp;#34;
There is a perception in the Java community that JavaScript is a second-rate interpreted language whose main purpose is to make Web pages a little prettier. But JavaScript is actually a powerful, flexible, dynamically typed language. And today the language has been experiencing a revival driven by the interest in HTML5. Nashorn is a modern JavaScript engine available on the JVM, and it’s already included with JDK8 builds. This presentation is about building polyglot applications with Java and JavaScript.
&amp;#34;&amp;#34;&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Productive Enterprise Web Development with ExtJS and Clear Data Builder</title><link>https://gamov.io/posts/prouctive-enterprise-web-dev-with-cdb/</link><pubDate>Tue, 05 Feb 2013 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/prouctive-enterprise-web-dev-with-cdb/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;It will not likely that you will start developing an enterprise HTML5 applications without using one of the JavaScript frameworks.
One of the most feature-complete frameworks is &lt;a href="http://www.sencha.com/products/extjs"&gt;ExtJS&lt;/a&gt; from Sencha, but its learning curve is a bit steep. Our company, &lt;a href="http://faratasystems.com"&gt;Farata Systems&lt;/a&gt;, has developed an open source software Clear Toolkit for ExtJS.
Clear Toolkit includes an Eclipse plugin called Clear Data Builder (CDB).
It is a productivity tool - a code generator - that can create a CRUD application for you in no time. This application will have HTML/JavaScript/ExtJS client and Java-based server. In this article, you will learn how jumpstart development of such Web applications.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Set JDK on OSX</title><link>https://gamov.io/posts/set-jdk-on-osx/</link><pubDate>Sat, 19 Jan 2013 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/set-jdk-on-osx/</guid><description>&lt;div class="imageblock"&gt;
&lt;div class="content"&gt;
&lt;img src="https://gamov.io/images/terminal_java.png" alt="terminal java"/&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;table class="tableblock frame-all grid-all" style="width: 60%;"&gt;
&lt;caption class="title"&gt;Table 1. Revisions history&lt;/caption&gt;
&lt;colgroup&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3333%;"/&gt;
&lt;col style="width: 33.3334%;"/&gt;
&lt;/colgroup&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Version&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Date&lt;/th&gt;
&lt;th class="tableblock halign-left valign-top"&gt;Comments&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.2&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;11/9/2016&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Explained &lt;code&gt;JVMPlatformVersion&lt;/code&gt; for Java 9&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.1&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;11/8/2016&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Added Java 9 command&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;&lt;strong&gt;v1.0&lt;/strong&gt;&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;01/19/2013&lt;/p&gt;&lt;/td&gt;
&lt;td class="tableblock halign-left valign-top"&gt;&lt;p class="tableblock"&gt;Initial blog post&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="paragraph panel"&gt;
&lt;p&gt;Apple announced to remove Java Preferences app from Mac OS X.&lt;br/&gt;
Details could be found here &lt;a href="http://support.apple.com/kb/HT5493" class="bare"&gt;http://support.apple.com/kb/HT5493&lt;/a&gt;). Let’s try to fix it.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="paragraph"&gt;
&lt;p&gt;Generally, Java applications will use the JAVA_HOME environment variable to pick a JDK.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>WebSockets for Java Developers. Princeton JUG talk slides</title><link>https://gamov.io/posts/websockets-for-java-developers/</link><pubDate>Thu, 26 Jul 2012 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/websockets-for-java-developers/</guid><description>&lt;div class="paragraph"&gt;
&lt;p&gt;Last tuesday I delivered presentation at Princeton JUG «WebSockets: The Current State of the Most Valuable HTML5 API». + HTML5 specification includes WebSockets, a new communication protocol
for the Web. It’s becoming the best choice for building real-time Web
applications. I did an overview of the servers (including upcoming
JavaEE 7 RI - Glassfish 4) and frameworks that support WebSockets and
showed some use cases where WebSockets shine. At the end we had short
conversation  about various approaches for the server- and client-side
implementations of WebSockets that can be used in the Web applications
today.&lt;/p&gt;
&lt;/div&gt;</description></item><item><title>Alfred Extension: Show/Hide desktop icons on Mac OS X</title><link>https://gamov.io/posts/alfred-showhide-desktop-icons-on-mac-os/</link><pubDate>Mon, 21 May 2012 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/alfred-showhide-desktop-icons-on-mac-os/</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://gamov.io/images/blog/2012-05-21-alfred-showhide-desktop-icons-on-mac-os/2012-05-21-alfred-showhide-desktop-icons-on-mac-os*1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="103" src="https://gamov.io/images/blog/2012-05-21-alfred-showhide-desktop-icons-on-mac-os/2012-05-21-alfred-showhide-desktop-icons-on-mac-os*1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;For some reasons, I’m using desktop as temporary storage of files - downloaded from internet, in-progress documents, screenshots and code snippets. Time after time I create screencasts and I need to have clean desktop.
First, I tried to find available solution and have found &lt;a href="http://manytricks.com/desktopcurtain/"&gt;Desktop Curtain&lt;/a&gt;. I don’t need all this fanciness (different desktop wallpapers, customization) so $2.99 is overkill for me and for this taks.
&lt;a name='more'&gt;&lt;/a&gt;
So, I decide to create my own solution with help of shell and Alfred.
Googled for Mac OS X command and I created simple script what I wrapped after as Alfred Extension.
&lt;script src="https://gist.github.com/2760502.js?file=toggle*desktop*icons.sh"&gt;&lt;/script&gt;
You can download Alfred Extension for my &lt;a href="https://dl.dropbox.com/u/1585128/Toggle*Desktop*Icons.alfredextension"&gt;Dropbox&lt;/a&gt;. To use it you need to have &lt;a href="http://www.alfredapp.com/powerpack/"&gt;Alfred PowerPack&lt;/a&gt; purchased.
Cheers</description></item><item><title>WebJars for assets management in your project</title><link>https://gamov.io/posts/webjars-for-assets-management-in-your/</link><pubDate>Wed, 16 May 2012 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/webjars-for-assets-management-in-your/</guid><description>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://gamov.io/images/blog/2012-05-16-webjars-for-assets-management-in-your/webJars+app+screen2.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="168" src="https://gamov.io/images/blog/2012-05-16-webjars-for-assets-management-in-your/webJars+app+screen2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Usage automatic build tools for dependency management is best practice in Java world and usage of tools such as Maven has been proven by the years.
But what if utilize existing Maven knowledge of Java dependencies management for JavaScript projects. Hopefully, some Java and JVM frameworks (like &lt;a href="http://blog.springsource.org/2011/06/30/countdown-to-grails-2-0-static-resources/"&gt;Grails&lt;/a&gt; or &lt;a href="http://www.jamesward.com/2012/04/25/introducing-webjars-web-libraries-as-managed-dependencies"&gt;Play2&lt;/a&gt;) provided their own way of dealing with static resources.
But in most common situations, you don’t have lot of options for deployment your application.
&lt;p&gt;&lt;a name='more'&gt;&lt;/a&gt;To read the full post, surf on over to the Farata Systems Blog: &lt;a href="http://flexblog.faratasystems.com/index.php/using-webjars-for-assets-management-in-javascript-projects/"&gt;&lt;a href="http://flexblog.faratasystems.com/index.php/using-webjars-for-assets-management-in-javascript-projects/"&gt;http://flexblog.faratasystems.com/index.php/using-webjars-for-assets-management-in-javascript-projects/&lt;/a&gt; &lt;/a&gt;&lt;/p&gt;</description></item><item><title>How to download videos from InfoQ for offline viewing</title><link>https://gamov.io/posts/how-to-download-videos-from-infoq-for/</link><pubDate>Sat, 28 Jan 2012 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/how-to-download-videos-from-infoq-for/</guid><description>&lt;p&gt;&lt;a href="http://cdn4.infoq.com/styles/i/logo-infoq.gif"&gt;&lt;img loading="lazy" src="http://cdn4.infoq.com/styles/i/logo-infoq.gif"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;From my humble opinion, &lt;a href="http://www.infoq.com/"&gt;InfoQ&lt;/a&gt; is one of best resources for developers nowadays. You can find lot of IT related stuff - interviews, articles, presentations slides and videos. And today I would like to talk about videos from InfoQ in particular. Is always good to have offline version to watch it during long commute, for instance. Unfortunately, InfoQ administration for some reasons not allow to download videos.&lt;br&gt;
However, I found very elegant solution how to do that. I did it on my MacOS X with Safari, probably it will work with Safari for Windows as well.&lt;/p&gt;</description></item><item><title>Rapid automation for Flex/Java/BlazeDS projects</title><link>https://gamov.io/posts/rapid-automation-for-flexjavablazeds/</link><pubDate>Tue, 10 Jan 2012 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/rapid-automation-for-flexjavablazeds/</guid><description>&lt;p&gt;Right after vacation I talked on New York Flex User group regarding open source project for Flex/Java developers - Clear Toolkit. Here are the slides of my presentation.&lt;/p&gt;
&lt;iframe frameborder="0" height="451" src="https://docs.google.com/present/embed?id=dgqpwrbr_452gnrs3wks&amp;size=m" width="555"&gt;&lt;/iframe&gt;
Feel free to comment!</description></item><item><title>Adobe MAX</title><link>https://gamov.io/posts/adobe-max/</link><pubDate>Sun, 11 Sep 2011 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/adobe-max/</guid><description>&lt;p&gt;Here are the small notes from Adobe MAX conference:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flash is still here. Adobe creates tools for seamless transition b/w Flash and HTML5 (Adobe Edge)&lt;/li&gt;
&lt;li&gt;Touch apps is next big thing.&lt;/li&gt;
&lt;li&gt;Mobile apps developed with Flash/Flex/Air and packaged to native.&lt;/li&gt;
&lt;li&gt;Upcomming changes in Flash runtime- &lt;em&gt;workers&lt;/em&gt; - actionScript threads&lt;/li&gt;
&lt;li&gt;Upcomming changes in AIR platform - native extensions&lt;/li&gt;
&lt;li&gt;Creative Cloud - another big thing was announced. Sharing and collaboration b/w creative suite applications and new touch app.&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Eclipse: java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM</title><link>https://gamov.io/posts/eclipse-javalangunsatisfiedlinkerror/</link><pubDate>Tue, 26 Jul 2011 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/eclipse-javalangunsatisfiedlinkerror/</guid><description>&lt;p&gt;&lt;a href="http://4.bp.blogspot.com/-9dnzyV85GIY/Ti5AjeUNXJI/AAAAAAAAA0A/o07suDvhURw/s1600/1311653968_eclipse.png"&gt;&lt;img loading="lazy" src="http://4.bp.blogspot.com/-9dnzyV85GIY/Ti5AjeUNXJI/AAAAAAAAA0A/o07suDvhURw/s1600/1311653968_eclipse.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Last weekend spend in setup of environment for eclipse plug-in development. I have task to fix and update one plugin. This is add-on to Flash Builder.  But before adding something, it&amp;rsquo;s good to run that plugin before. My environment is Mac OS X 10.7 Lion, Eclipse 3.6 (32bit because FB not supported 64bit version of Eclipse) and Flash Builder 4.5. But I faced with odd exception&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;!SESSION 2011-07-25 23:59:39.350
-----------------------------------------------
eclipse.buildId=M20110210-1200
java.version=1.6.0_26
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
Framework arguments:  -product org.eclipse.epp.package.jee.product
Command-line arguments:  -product org.eclipse.epp.package.jee.product -data
/Users/apple/Workspaces/work/../runtime-EclipseApplication -dev file:/Users/apple/Workspaces/work/.metadata/.plugins/org.eclipse.pde.core/Eclipse
Application/dev.properties -os macosx -ws cocoa -arch x86 -consoleLog
!ENTRY org.eclipse.osgi 4 0 2011-07-25 23:59:57.129
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit
JVM
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:197)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:174)
at org.eclipse.swt.internal.C.(C.java:21)
at org.eclipse.swt.internal.cocoa.NSThread.isMainThread(NSThread.java:33)
at org.eclipse.swt.graphics.Device.(Device.java:116)
at org.eclipse.swt.widgets.Display.(Display.java:671)
at org.eclipse.swt.widgets.Display.(Display.java:662)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:708)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:145)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:88)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
at org.eclipse.equinox.launcher.Main.main(Main.java:1384)
An error has occurred. See the log file
/Users/apple/Workspaces/runtime-EclipseApplication/.metadata/.log.
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Mac OS X shipped with 2 versions of JVM - 32 bit and 64 bit accordingly. So,
First I tried to change order of JVM preference from /Application/Utilities/Java
Preferences but it didn&amp;rsquo;t work.&lt;/p&gt;</description></item><item><title>Building and Testing with Gradle - My Book Review</title><link>https://gamov.io/posts/building-and-testing-with-gradle-my/</link><pubDate>Sun, 10 Jul 2011 00:00:00 +0000</pubDate><guid>https://gamov.io/posts/building-and-testing-with-gradle-my/</guid><description>&lt;p&gt;&lt;a href="http://covers.oreilly.com/images/0636920019909/lrg.jpg"&gt;&lt;img loading="lazy" src="http://covers.oreilly.com/images/0636920019909/lrg.jpg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Last month I participated in JAXConf conference on San Jose, CA. There was many talks related to agile development and code quality stuff. And after that event I started looking to &lt;a href="http://www.gradle.org/"&gt;Gradle&lt;/a&gt; - next generation build tool. Couple weeks later I found a &lt;a href="http://oreilly.com/catalog/0636920019909/"&gt;Building and Testing with Gradle&lt;/a&gt; written by git evangelists Tim Berglundand ( &lt;a href="http://twitter.com/tlberglund"&gt;@tlberglund&lt;/a&gt;) and Matthew McCullough (&lt;a href="http://twitter.com/matthewmccull"&gt;@matthewmccull&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Book very focused and easy to read. I got&lt;a href="https://twitter.com/gamussa/status/89181037036449792"&gt; my dirty cheap ebook version&lt;/a&gt; on thursday night, read this book during my commute to work and now come up with this review.&lt;br&gt;
[][7]&lt;br&gt;
Looking at the [table of contents][8], you can see the book covers big part of questions.&lt;br&gt;
What this book is about:&lt;/p&gt;</description></item></channel></rss>