<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>redis Archives | Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/blog/tag/redis/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.clever.cloud/blog/tag/redis/</link>
	<description>From Code to Product</description>
	<lastBuildDate>Fri, 06 Dec 2024 09:57:51 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>redis Archives | Clever Cloud</title>
	<link>https://www.clever.cloud/blog/tag/redis/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Redis se ferme et fork tandis que l’IA sans gêne, se gave de 22 Biscuit Java</title>
		<link>https://www.clever.cloud/podcast/redis-se-ferme-et-fork-tandis-que-lia-sans-gene-se-gave-de-22-biscuit-java/</link>
					<comments>https://www.clever.cloud/podcast/redis-se-ferme-et-fork-tandis-que-lia-sans-gene-se-gave-de-22-biscuit-java/#respond</comments>
		
		<dc:creator><![CDATA[Horacio Gonzalez]]></dc:creator>
		<pubDate>Fri, 12 Apr 2024 05:37:48 +0000</pubDate>
				<category><![CDATA[biscuit]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[xz-utils]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?post_type=podcast&#038;p=12088</guid>

					<description><![CDATA[<p><img width="1920" height="1080" src="https://cdn.clever-cloud.com/uploads/2024/04/104.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="104" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2024/04/104.jpg 1920w, https://cdn.clever-cloud.com/uploads/2024/04/104-300x169.jpg 300w, https://cdn.clever-cloud.com/uploads/2024/04/104-1024x576.jpg 1024w, https://cdn.clever-cloud.com/uploads/2024/04/104-768x432.jpg 768w, https://cdn.clever-cloud.com/uploads/2024/04/104-1536x864.jpg 1536w, https://cdn.clever-cloud.com/uploads/2024/04/104-1368x770.jpg 1368w" sizes="(max-width: 1920px) 100vw, 1920px" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/mQRR1UVJkGw" target="_blank" rel="noreferrer noopener">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p><br>Animé par Horacio Gonzalez - <a href="https://twitter.com/LostInBrittany" target="_blank" rel="noreferrer noopener">@LostInBrittany</a><br>avec la participation de : <br>- Sébastien Blanc - @sebi2706<br>- Steven Le Roux - @GwinizDu<br>- Yanick Le Guern - @_Akanoa_</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 5 avril 2024</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://www.clever.cloud/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage et Liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:00 Introduction et présentation des participants</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:02:52 - Changement de licence Redis</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Redis - <a href="https://redis.com/blog/redis-adopts-dual-source-available-licensing/">https://redis.com/blog/redis-adopts-dual-source-available-licensing/</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Redict - <a href="https://redict.io/posts/2024-04-03-redict-7.3.0-released/">https://redict.io/posts/2024-04-03-redict-7.3.0-released/</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Valkey - <a href="https://github.com/valkey-io/valkey">https://github.com/valkey-io/valkey</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Valkey - <a href="https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community">https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Un peu d’histoire - <a href="https://www.gomomento.com/blog/rip-redis-how-garantia-data-pulled-off-the-biggest-heist-in-open-source-history">https://www.gomomento.com/blog/rip-redis-how-garantia-data-pulled-off-the-biggest-heist-in-open-source-history</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Une alternative mais en dual licence également - <a href="https://www.dragonflydb.io/">https://www.dragonflydb.io/</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>The race to replace Redis <a href="https://lwn.net/SubscriberLink/966631/6bf2063136effa1e/">https://lwn.net/SubscriberLink/966631/6bf2063136effa1e/</a>&nbsp;</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>00:26:49 - Faille xz-utils</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Vidéo Olivier Poncet - <a href="https://www.youtube.com/watch?v=XX4McCXRV44">https://www.youtube.com/watch?v=XX4McCXRV44<br></a><a href="https://gist.github.com/Akanoa/2dc95d505790456f2c5efc9def109cbc#file-gistfile1-txt">https://gist.github.com/Akanoa/2dc95d505790456f2c5efc9def109cbc#file-gistfile1-txt</a> </li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>(plein de liens sur la faille) <a href="https://www.wired.com/story/jia-tan-xz-backdoor/">https://www.wired.com/story/jia-tan-xz-backdoor/</a> </li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://twitter.com/fulmicoton/status/1775427601194275294 ">https://twitter.com/fulmicoton/status/1775427601194275294 </a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://twitter.com/FFmpeg/status/1775178803129602500">https://twitter.com/FFmpeg/status/1775178803129602500</a>&nbsp;</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>00:48:42 - Déferlante GenAI</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Pivot complet d’Acorn : <a href="https://www.acorn.io/resources/blog/our-new-focus-developing-an-llm-app-platform-based-on-gpt-script-technology">https://www.acorn.io/resources/blog/our-new-focus-developing-an-llm-app-platform-based-on-gpt-script-technology</a><!-- wp:list -->
<ul><!-- wp:list-item -->
<li><a href="https://github.com/gptscript-ai/gptscript">https://github.com/gptscript-ai/gptscript</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://github.com/genai-for-all/go-docker-genai-stack">https://github.com/genai-for-all/go-docker-genai-stack</a> (Philippe Charrière)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://floneum.com/">https://floneum.com/</a> (pipeline de modèles)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>https://www.devoxx.fr/schedule/speaker-details/?id=39551</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>00:56:48 - Java 22</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Java 22 - <a href="https://blogs.oracle.com/java/post/the-arrival-of-java-22">https://blogs.oracle.com/java/post/the-arrival-of-java-22</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Biscuit third party landed in Java -&nbsp; <a href="https://www.biscuitsec.org/blog/third-party-blocks-why-how-when-who/">https://www.biscuitsec.org/blog/third-party-blocks-why-how-when-who</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->]]></description>
										<content:encoded><![CDATA[<p><img width="1920" height="1080" src="https://cdn.clever-cloud.com/uploads/2024/04/104.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="104" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2024/04/104.jpg 1920w, https://cdn.clever-cloud.com/uploads/2024/04/104-300x169.jpg 300w, https://cdn.clever-cloud.com/uploads/2024/04/104-1024x576.jpg 1024w, https://cdn.clever-cloud.com/uploads/2024/04/104-768x432.jpg 768w, https://cdn.clever-cloud.com/uploads/2024/04/104-1536x864.jpg 1536w, https://cdn.clever-cloud.com/uploads/2024/04/104-1368x770.jpg 1368w" sizes="(max-width: 1920px) 100vw, 1920px" /></p><!-- wp:buttons -->
<div class="wp-block-buttons"><!-- wp:button -->
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="https://youtu.be/mQRR1UVJkGw" target="_blank" rel="noreferrer noopener">Voir sur Youtube</a></div>
<!-- /wp:button --></div>
<!-- /wp:buttons -->

<!-- wp:paragraph -->
<p><br>Animé par Horacio Gonzalez - <a href="https://twitter.com/LostInBrittany" target="_blank" rel="noreferrer noopener">@LostInBrittany</a><br>avec la participation de : <br>- Sébastien Blanc - @sebi2706<br>- Steven Le Roux - @GwinizDu<br>- Yanick Le Guern - @_Akanoa_</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Épisode enregistré le 5 avril 2024</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>👋  Venez discuter avec nous sur <a href="https://twitter.com/clever_cloudFR" target="_blank" rel="noreferrer noopener">@clever_cloudFR</a> pour nous dire ce que vous avez pensé de ce nouvel épisode.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>➡️  Pour découvrir ou réécouter d’anciens épisodes&nbsp;<a href="https://www.clever.cloud/fr/podcast/">c’est par ici</a>&nbsp;!</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Chapitrage et Liens</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>00:00:00 Introduction et présentation des participants</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>00:02:52 - Changement de licence Redis</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Redis - <a href="https://redis.com/blog/redis-adopts-dual-source-available-licensing/">https://redis.com/blog/redis-adopts-dual-source-available-licensing/</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Redict - <a href="https://redict.io/posts/2024-04-03-redict-7.3.0-released/">https://redict.io/posts/2024-04-03-redict-7.3.0-released/</a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Valkey - <a href="https://github.com/valkey-io/valkey">https://github.com/valkey-io/valkey</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Valkey - <a href="https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community">https://www.linuxfoundation.org/press/linux-foundation-launches-open-source-valkey-community</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Un peu d’histoire - <a href="https://www.gomomento.com/blog/rip-redis-how-garantia-data-pulled-off-the-biggest-heist-in-open-source-history">https://www.gomomento.com/blog/rip-redis-how-garantia-data-pulled-off-the-biggest-heist-in-open-source-history</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Une alternative mais en dual licence également - <a href="https://www.dragonflydb.io/">https://www.dragonflydb.io/</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>The race to replace Redis <a href="https://lwn.net/SubscriberLink/966631/6bf2063136effa1e/">https://lwn.net/SubscriberLink/966631/6bf2063136effa1e/</a>&nbsp;</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>00:26:49 - Faille xz-utils</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Vidéo Olivier Poncet - <a href="https://www.youtube.com/watch?v=XX4McCXRV44">https://www.youtube.com/watch?v=XX4McCXRV44<br></a><a href="https://gist.github.com/Akanoa/2dc95d505790456f2c5efc9def109cbc#file-gistfile1-txt">https://gist.github.com/Akanoa/2dc95d505790456f2c5efc9def109cbc#file-gistfile1-txt</a> </li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>(plein de liens sur la faille) <a href="https://www.wired.com/story/jia-tan-xz-backdoor/">https://www.wired.com/story/jia-tan-xz-backdoor/</a> </li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://twitter.com/fulmicoton/status/1775427601194275294 ">https://twitter.com/fulmicoton/status/1775427601194275294 </a></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://twitter.com/FFmpeg/status/1775178803129602500">https://twitter.com/FFmpeg/status/1775178803129602500</a>&nbsp;</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>00:48:42 - Déferlante GenAI</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Pivot complet d’Acorn : <a href="https://www.acorn.io/resources/blog/our-new-focus-developing-an-llm-app-platform-based-on-gpt-script-technology">https://www.acorn.io/resources/blog/our-new-focus-developing-an-llm-app-platform-based-on-gpt-script-technology</a><!-- wp:list -->
<ul><!-- wp:list-item -->
<li><a href="https://github.com/gptscript-ai/gptscript">https://github.com/gptscript-ai/gptscript</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list --></li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://github.com/genai-for-all/go-docker-genai-stack">https://github.com/genai-for-all/go-docker-genai-stack</a> (Philippe Charrière)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li><a href="https://floneum.com/">https://floneum.com/</a> (pipeline de modèles)</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>https://www.devoxx.fr/schedule/speaker-details/?id=39551</li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>00:56:48 - Java 22</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><!-- wp:list-item -->
<li>Java 22 - <a href="https://blogs.oracle.com/java/post/the-arrival-of-java-22">https://blogs.oracle.com/java/post/the-arrival-of-java-22</a>&nbsp;</li>
<!-- /wp:list-item -->

<!-- wp:list-item -->
<li>Biscuit third party landed in Java -&nbsp; <a href="https://www.biscuitsec.org/blog/third-party-blocks-why-how-when-who/">https://www.biscuitsec.org/blog/third-party-blocks-why-how-when-who</a></li>
<!-- /wp:list-item --></ul>
<!-- /wp:list -->]]></content:encoded>
					
					<wfw:commentRss>https://www.clever.cloud/podcast/redis-se-ferme-et-fork-tandis-que-lia-sans-gene-se-gave-de-22-biscuit-java/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Announcing New Redis Plans</title>
		<link>https://www.clever.cloud/blog/company/2021/05/31/new-redis-pricing/</link>
		
		<dc:creator><![CDATA[Clément Nivolle]]></dc:creator>
		<pubDate>Mon, 31 May 2021 16:20:00 +0000</pubDate>
				<category><![CDATA[Company]]></category>
		<category><![CDATA[billing]]></category>
		<category><![CDATA[invoice]]></category>
		<category><![CDATA[invoicing]]></category>
		<category><![CDATA[redis]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2021/05/31/new-redis-pricing/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="redis pricing 2021 1" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-1368x528.jpg 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p>Today we are releasing new Redis plans , and it's largely focused on making these plans more affordable. This update will only affect newly created databases, but you’re free to migrate from an old plan easily with our automatic migration tool.

<span id="more-2779"></span>

The first time I wrote about Redis was six years ago, when we introduced Redis on Clever Cloud. Over the years, we’ve improved Redis with a great GUI (Redsmin), the ability to configure a follower. And now, we’re introducing new Redis plans, with brand new prices.
<h2 id="the-prices">The Prices</h2>
At Clever Cloud, our goal is to help people to be more agile by providing efficient and fully managed services, with a fair price.

Since 2016, our Redis offers needed a pricing and features revamp to stay competitive. So today we are happy to offer a more consistent and linear offer: our previous plans used to start at €8.67 per month for 100 MB. We are now at €4.84 for the same amount of memory.
<div><script type="module" src="https://components.clever-cloud.com/load.js?version=6&amp;components=cc-pricing-product.smart-addon"></script>
<div></div>
</div>
<h2 id="the-changes">The Changes</h2>
Now databases are not limited to 100 by default: the new plans ramp up from 1 to 20 databases maximum, which should be sufficient for most use cases. These changes are part of a greater overhaul on our Redis offers, stay tuned!]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="redis pricing 2021 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/redis-pricing-2021-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>Today we are releasing new Redis plans , and it's largely focused on making these plans more affordable. This update will only affect newly created databases, but you’re free to migrate from an old plan easily with our automatic migration tool.

<span id="more-2779"></span>

The first time I wrote about Redis was six years ago, when we introduced Redis on Clever Cloud. Over the years, we’ve improved Redis with a great GUI (Redsmin), the ability to configure a follower. And now, we’re introducing new Redis plans, with brand new prices.
<h2 id="the-prices">The Prices</h2>
At Clever Cloud, our goal is to help people to be more agile by providing efficient and fully managed services, with a fair price.

Since 2016, our Redis offers needed a pricing and features revamp to stay competitive. So today we are happy to offer a more consistent and linear offer: our previous plans used to start at €8.67 per month for 100 MB. We are now at €4.84 for the same amount of memory.
<div><script type="module" src="https://components.clever-cloud.com/load.js?version=6&amp;components=cc-pricing-product.smart-addon"></script>
<div></div>
</div>
<h2 id="the-changes">The Changes</h2>
Now databases are not limited to 100 by default: the new plans ramp up from 1 to 20 databases maximum, which should be sufficient for most use cases. These changes are part of a greater overhaul on our Redis offers, stay tuned!]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tools, not rules: why I&#8217;ve built issues-helper</title>
		<link>https://www.clever.cloud/blog/features/2018/02/13/issues-helper/</link>
		
		<dc:creator><![CDATA[Clement Delafargue]]></dc:creator>
		<pubDate>Tue, 13 Feb 2018 09:00:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[play]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[Scala]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2018/02/13/issues-helper/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="tools not rules 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>A few weeks ago I&#39;ve open sourced <a href="https://github.com/CleverCloud/issues-helper">issues-helper</a>. It allows you to easily interact with issues on GitHub and GitLab, from the command line.</p>
<pre><code class="language-bash">gli o --assignee clementd --label improvement &quot;Degauss the frobulator fluxfield&quot;
</code></pre>
<p>Let&#39;s see why and how it&#39;s done.</p>
<span id="more-2928"></span>

<h2 id="tldr">TL;DR</h2>
<p>Issues are a good way to keep track of decisions in a project. Opening issues should be easy so people don&#39;t forget to write down why they&#39;ve done things. Opening issues from the command line with minimal fuss is a good thing:</p>
<pre><code class="language-bash">gli init # generate initial configuration
gli o &quot;Issue title&quot; &quot;Optional issue text&quot;
  # add --open to open the issue in the browser once created
  # add --assignee to assign issue
  # add --label to add labels to the issue
gli l # list issues
gli b # open the project homepage in your browser
</code></pre>
<h2 id="issues-use-them">Issues. Use them.</h2>
<p>At Clever Cloud, we use git (and GitLab) a lot. In addition to just using git for code, we also rely a lot on issues. Many discussions end with &quot;please open an issue and sum up what we&#39;ve just said&quot;.</p>
<p>Issues are not just for bugs, we use it as a way to track decisions. Some projects don&#39;t even have code and are just there to track discussions and decisions.</p>
<p>My goal, as a CTO, is to make sure we keep track of all of our decisions. So I need people to open issues, to open them often, and to open them early.</p>
<h2 id="processes-make-em-easy">Processes. Make &#39;em easy.</h2>
<p>I work with people, not with robots. While I trust them and I know they&#39;re good at what they do, I just can&#39;t expect them not to make mistakes, or in that case follow processes with no clear incentive. So I needed to remove friction when opening issues. When we interact with code, it&#39;s from the command line: we craft commits, we deploy to production, we even close issues from the command line (while crafting commits). So we should also open issues from the terminal.</p>
<p>My first try was to use the ruby gitlab CLI, but it had several issues:</p>
<ul>
<li>configuration was done with environment variables</li>
<li>it&#39;s written in ruby and can be complicated to install</li>
<li>the output is more or less database rows in ascii tables</li>
<li>you have to specify which project you&#39;re talking about</li>
</ul>
<p>Even though I&#39;ve written documentation and showed people how to use it, it was not used a lot. When a tool feels like a hack, nobody wants to use it.</p>
<h3 id="what-i-wanted">What I wanted</h3>
<p>I needed two things to get a tool people would use:</p>
<ul>
<li>automatically know which project we&#39;re talking about</li>
<li>config files to avoid having to mess with env variables (and leak GitLab tokens)</li>
</ul>
<p>To avoid ruby installation issues, I&#39;ve decided to use <a href="https://www.rust-lang.org/">Rust</a>. There&#39;s a lot of available libraries, the build system works well, it&#39;s sufficiently expressive to let me express what I want, and in the end I get a nice binary.</p>
<h4 id="xdg-basedir-respect-it">XDG basedir. Respect it.</h4>
<p>Reading GitLab credentials from a file is not really hard. One common mistake is to put config files directly in <code>~</code> like some kind of animal. Instead of cluttering users&#39; home directories, I followed the <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html">XDG basedir spec</a>. Most languages have a library which handles it for you, so it really is a no-brainer (and it works out of the box on Windows as well).</p>
<h4 id="infer-information-from-context">Infer information from context</h4>
<p>To know where the issues should be opened, <code>issues-helper</code> looks at the <code>origin</code> remote of the current git repo. From that, it knows what to do. Even if you&#39;re not currently in the right repo,</p>
<pre><code class="language-bash">j my-project # autojump is great
gli o &quot;My issue&quot; # that&#39;s it
</code></pre>
<h2 id="tools-open-source-them">Tools. Open Source them.</h2>
<p>Once I had this working, not only people started using this tool, but people improved it: <a href="https://twitter.com/keruspe">@keruspe</a> fixed a lot of issues quite quickly. So the next step was to un-hardcode every Clever Cloud specific things in the codebase (then rebase everything, fun afternoon).</p>
<p>Once it was on GitHub, I got more contributions (from inside and outside). Also, it made me add GitHub support: not being able to use issues-helper to manage its own issues quickly got very frustrating.</p>
<p>Supporting GitHub also made me contribute on the GitHub crate, thus closing a vertuous circle.</p>
<p>There are <a href="https://github.com/CleverCloud/issues-helper/issues">a few issues left</a>. Feel free to chime in, I&#39;ll help you get started. It&#39;s a good way to start working on a Rust project!</p>
<h2 id="how-its-done">How it&#39;s done</h2>
<p>The tool itself doesn&#39;t hold a lot of business logic. It parses a project location from a git remote, reads config from a file, sends a few HTTP requests and displays useful information.</p>
<h3 id="cli-arguments-parsing">CLI arguments parsing</h3>
<p>It&#39;s one of the most important parts of a program, since it&#39;s the UI. The Rust ecosystem has <a href="https://clap.rs/">clap</a> which handles everything: parsing, help and even autocompletion.</p>
<p>Unfortunately, the parsed values are exposed through a <code>Map&lt;String,String&gt;</code>, so even though parsing checks structure, you have to recreate the structure yourself. In practice, you end up with a bunch of <code>value.unwrap(); // this should never fail</code>.</p>
<p>Fortunately, there&#39;s <a href="https://crates.io/crates/structopt">Structopt</a>, which generates clap config from Rust data structures: all the dirty stuff is handled for you, and you get nice structs and enums. Yay!</p>
<h3 id="config-files">Config files</h3>
<p>Config is in a toml file, config file location is handled by the <a href="https://crates.io/crates/xdg">xdg crate</a>. Remember: every time you add files to <code>~</code>, a cute puppy dies.</p>
<h2 id="so">So</h2>
<p>Having processes in a team is a good thing, but if you don&#39;t document them, you can&#39;t expect people to respect them. If processes don&#39;t make everyone&#39;s life easier, you can&#39;t expect people to respect them. One simple way to make processes stick is to provide tooling to make them the easiest path. A bash script is cool, but mainly for its author. A stable CLI tool with a good UI, written in a robust language is not a lot of work and will age <em>way</em> better.</p>
<p><em>Post illustration: The Sorcerer&#39;s Apprentice, Disney Movies. Friden calculating machine. Credits: Disney</em></p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="tools not rules 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/tools-not-rules-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>A few weeks ago I&#39;ve open sourced <a href="https://github.com/CleverCloud/issues-helper">issues-helper</a>. It allows you to easily interact with issues on GitHub and GitLab, from the command line.</p>
<pre><code class="language-bash">gli o --assignee clementd --label improvement &quot;Degauss the frobulator fluxfield&quot;
</code></pre>
<p>Let&#39;s see why and how it&#39;s done.</p>
<span id="more-2928"></span>

<h2 id="tldr">TL;DR</h2>
<p>Issues are a good way to keep track of decisions in a project. Opening issues should be easy so people don&#39;t forget to write down why they&#39;ve done things. Opening issues from the command line with minimal fuss is a good thing:</p>
<pre><code class="language-bash">gli init # generate initial configuration
gli o &quot;Issue title&quot; &quot;Optional issue text&quot;
  # add --open to open the issue in the browser once created
  # add --assignee to assign issue
  # add --label to add labels to the issue
gli l # list issues
gli b # open the project homepage in your browser
</code></pre>
<h2 id="issues-use-them">Issues. Use them.</h2>
<p>At Clever Cloud, we use git (and GitLab) a lot. In addition to just using git for code, we also rely a lot on issues. Many discussions end with &quot;please open an issue and sum up what we&#39;ve just said&quot;.</p>
<p>Issues are not just for bugs, we use it as a way to track decisions. Some projects don&#39;t even have code and are just there to track discussions and decisions.</p>
<p>My goal, as a CTO, is to make sure we keep track of all of our decisions. So I need people to open issues, to open them often, and to open them early.</p>
<h2 id="processes-make-em-easy">Processes. Make &#39;em easy.</h2>
<p>I work with people, not with robots. While I trust them and I know they&#39;re good at what they do, I just can&#39;t expect them not to make mistakes, or in that case follow processes with no clear incentive. So I needed to remove friction when opening issues. When we interact with code, it&#39;s from the command line: we craft commits, we deploy to production, we even close issues from the command line (while crafting commits). So we should also open issues from the terminal.</p>
<p>My first try was to use the ruby gitlab CLI, but it had several issues:</p>
<ul>
<li>configuration was done with environment variables</li>
<li>it&#39;s written in ruby and can be complicated to install</li>
<li>the output is more or less database rows in ascii tables</li>
<li>you have to specify which project you&#39;re talking about</li>
</ul>
<p>Even though I&#39;ve written documentation and showed people how to use it, it was not used a lot. When a tool feels like a hack, nobody wants to use it.</p>
<h3 id="what-i-wanted">What I wanted</h3>
<p>I needed two things to get a tool people would use:</p>
<ul>
<li>automatically know which project we&#39;re talking about</li>
<li>config files to avoid having to mess with env variables (and leak GitLab tokens)</li>
</ul>
<p>To avoid ruby installation issues, I&#39;ve decided to use <a href="https://www.rust-lang.org/">Rust</a>. There&#39;s a lot of available libraries, the build system works well, it&#39;s sufficiently expressive to let me express what I want, and in the end I get a nice binary.</p>
<h4 id="xdg-basedir-respect-it">XDG basedir. Respect it.</h4>
<p>Reading GitLab credentials from a file is not really hard. One common mistake is to put config files directly in <code>~</code> like some kind of animal. Instead of cluttering users&#39; home directories, I followed the <a href="https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html">XDG basedir spec</a>. Most languages have a library which handles it for you, so it really is a no-brainer (and it works out of the box on Windows as well).</p>
<h4 id="infer-information-from-context">Infer information from context</h4>
<p>To know where the issues should be opened, <code>issues-helper</code> looks at the <code>origin</code> remote of the current git repo. From that, it knows what to do. Even if you&#39;re not currently in the right repo,</p>
<pre><code class="language-bash">j my-project # autojump is great
gli o &quot;My issue&quot; # that&#39;s it
</code></pre>
<h2 id="tools-open-source-them">Tools. Open Source them.</h2>
<p>Once I had this working, not only people started using this tool, but people improved it: <a href="https://twitter.com/keruspe">@keruspe</a> fixed a lot of issues quite quickly. So the next step was to un-hardcode every Clever Cloud specific things in the codebase (then rebase everything, fun afternoon).</p>
<p>Once it was on GitHub, I got more contributions (from inside and outside). Also, it made me add GitHub support: not being able to use issues-helper to manage its own issues quickly got very frustrating.</p>
<p>Supporting GitHub also made me contribute on the GitHub crate, thus closing a vertuous circle.</p>
<p>There are <a href="https://github.com/CleverCloud/issues-helper/issues">a few issues left</a>. Feel free to chime in, I&#39;ll help you get started. It&#39;s a good way to start working on a Rust project!</p>
<h2 id="how-its-done">How it&#39;s done</h2>
<p>The tool itself doesn&#39;t hold a lot of business logic. It parses a project location from a git remote, reads config from a file, sends a few HTTP requests and displays useful information.</p>
<h3 id="cli-arguments-parsing">CLI arguments parsing</h3>
<p>It&#39;s one of the most important parts of a program, since it&#39;s the UI. The Rust ecosystem has <a href="https://clap.rs/">clap</a> which handles everything: parsing, help and even autocompletion.</p>
<p>Unfortunately, the parsed values are exposed through a <code>Map&lt;String,String&gt;</code>, so even though parsing checks structure, you have to recreate the structure yourself. In practice, you end up with a bunch of <code>value.unwrap(); // this should never fail</code>.</p>
<p>Fortunately, there&#39;s <a href="https://crates.io/crates/structopt">Structopt</a>, which generates clap config from Rust data structures: all the dirty stuff is handled for you, and you get nice structs and enums. Yay!</p>
<h3 id="config-files">Config files</h3>
<p>Config is in a toml file, config file location is handled by the <a href="https://crates.io/crates/xdg">xdg crate</a>. Remember: every time you add files to <code>~</code>, a cute puppy dies.</p>
<h2 id="so">So</h2>
<p>Having processes in a team is a good thing, but if you don&#39;t document them, you can&#39;t expect people to respect them. If processes don&#39;t make everyone&#39;s life easier, you can&#39;t expect people to respect them. One simple way to make processes stick is to provide tooling to make them the easiest path. A bash script is cool, but mainly for its author. A stable CLI tool with a good UI, written in a robust language is not a lot of work and will age <em>way</em> better.</p>
<p><em>Post illustration: The Sorcerer&#39;s Apprentice, Disney Movies. Friden calculating machine. Credits: Disney</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Manage your Conference CFP</title>
		<link>https://www.clever.cloud/blog/features/2018/01/30/manage-cfp/</link>
		
		<dc:creator><![CDATA[Laurent Doguin]]></dc:creator>
		<pubDate>Tue, 30 Jan 2018 11:11:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[play]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[Scala]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2018/01/30/manage-cfp/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/cfps-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="cfps 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/cfps-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>At Clever Cloud we often go to conferences, we answer many CFPs and some of us are even organising conferences from time to time. As such, we understand the amount of work required to manage these.</p>
<span id="more-2927"></span>

<p>Just like organizing a conference, managing a CFP can become cumbersome. That&#39;s why people started writing new applications from scratch to handle it. Some of them chose Clever Cloud to host them of course. Among those, you will find <a href="http://www.cfp.io/">cfp.io</a> and the <a href="https://cfp.devoxx.fr/">Devoxx family</a>.</p>
<p>Some of you asked us if it was possible to run the one used by Devoxx. In this post I will show you how to deploy it on Clever Cloud.</p>
<h2 id="setup">Setup</h2>
<p>The application is written in Scala and is based on Play Framework:</p>
<blockquote>
Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.
</blockquote>

<p>You will find the code on our good friend <a href="https://github.com/nicmarti/cfp-devoxx">Nicolas Martignole&#39;s Github account</a>. Take a look at the Readme if you want to run the application locally first. You will see that it needs to write on disk, to store data on Redis, and can optionally benefit from fulltext search with Elastic and accounts on several external services. Don&#39;t worry, you don&#39;t need everything from the start.</p>
<p>If you want to tag along, make sure you have Git, a Clever Cloud account and that you have installed our CLI <a href="https://www.clever.cloud/developers/clever-tools/getting_started/">Clever-Tools</a>. Let&#39;s start:</p>
<ul>
<li>Clone the project: <code>git clone https://github.com/nicmarti/cfp-devoxx</code></li>
<li>Get in the project: <code>cd cfp-devoxx</code></li>
<li>Create the Redis add-on: <code>clever addon create redis-addon --plan s --region eu redisCFP</code></li>
<li>Create the FS Bucket add-on: <code>clever addon create fs-bucket --plan s --region eu fsCFP</code></li>
<li>Create the application: <code>clever create --type sbt MyCFP </code></li>
<li>Link the Redis add-on: <code>clever service link-addon redisCFP</code></li>
<li>Link the FS Bucket add-on: <code>clever service link-addon fsCFP</code></li>
<li>Define where to mount our FS Bucket: <code>clever env set CC_FS_BUCKET /devoxx-content:`clever env | awk  -F = &#39;/BUCKET_HOST/ { print $2}&#39;` </code></li>
<li>Remove the old FSBucket configuration: <code>git rm clevercloud/buckets.json &amp;&amp; git commit -m&quot;remove old bucket configuration&quot;</code></li>
<li>Copy the production configuration sample: <code>cp conf/redis-sample-prod.conf application.conf </code></li>
<li>Add your changes and commit them: <code>git add application.conf;git commit -m&quot;add default conf&quot;</code></li>
</ul>
<p>We now have to configure the application using environment variables, here is my dummy test configuration:</p>
<pre><code class="language-bash">ACTIVATE_FAVORITES=true
ACTIVATE_GOLDEN_TICKET=false
ACTIVATE_HTTPS=true
ACTIVATE_VOTE=true
APP_SECRET=1f0bc136-5c99-1e6-bee8-60f81dae2bbc
BITBUCKET_PASSWORD=foobar
BITBUCKET_URL=https://bitbucket.org/api/1.0/repositories/foo/bar/issues
BITBUCKET_USERNAME=foobar
BUCKET_ROOTFOLDER=/app
CC_FS_BUCKET=/devoxx-content:bucket-35ca2d97-ff0e-42fb-ba37-abb815fb90a1-fsbucket.services.clever-cloud.com
CFP_HOSTNAME=app_a6dcb49e-1e16-4e06-8f45-dc9e0e838959.cleverapps.io
CFP_IS_OPEN=false
CFP_LANG=en
CRON_DAYS=2
CRON_UPDATER=false
DIGEST_DAILY=08:00
DIGEST_WEEKLY=1
ENABLE_METRICS=true
ES_ADDON_PASSWORD=foobar
ES_ADDON_URI=http://elasticsearch:9200
ES_ADDON_USER=foobar
GITHUB_ID=foobar
GITHUB_SECRET=foobar
GOOGLE_ID=foobar.apps.googleusercontent.com
GOOGLE_SECRET=foobar
JAVA_VERSION=8
LINKEDIN_CLIEND_ID=foobar
LINKEDIN_SECRET=foobar
MAIL_BCC=foobar@devoxx.fr
MAIL_BUG_REPORT=foobar@devoxx.fr
MAIL_COMMITTEE=foobar@devoxx.fr
MAIL_FROM=foobar@devoxx.fr
OPSGENIE_API=TOD
OPSGENIE_NAME=foobar
PORT=8080
SMTP_HOST=in-v3.mailjet.com
SMTP_MOCK=true
SMTP_PASSWORD=foobar
SMTP_PORT=587
SMTP_SSL=false
SMTP_USER=foobar
</code></pre>
<p>You can copy/paste this in the <em>Environment variables</em> tab of your application using the <em>Expert Mode</em>. Make sure you set the value of <em>CFP_HOSTNAME</em> to your domain name; Clever Cloud will assign one by default: take a look at the <em>Domain Names</em> tab in our web console to see it or change it (or use <code>clever domain</code>).</p>
<p>And that&#39;s it, your configuration is done. The next step is to deploy your application by running <code>clever deploy</code>.</p>
<h2 id="whats-next">What&#39;s next?</h2>
<p>Your application should be running now. You can run <code>clever open</code> to make sure it is. It will open it in your default browser.</p>
<img alt="Default CFP homepage" src="https://www2.cleverapps.io/app/uploads/2021/08/cfp_devoxx.png"/>

<p>Now, you can start tweaking the configuration of your application. You can start by looking at all those environment variables if you have not already. There is one point where you will probably ask yourself how to get SMTP crendentials or an Elasticsearch instance from Clever Cloud. While we currently don&#39;t have any partnership with e-mails providers, you can ping our support team for the Elastic instance. It&#39;s currently in private beta and should soon be open to the public.</p>
<p>If you are looking for more documentation, I invite you to check out the Github repository issues and to give a good look at the production configuration file <a href="https://github.com/nicmarti/cfp-devoxx/blob/dev/conf/application.conf.prod">conf/application.conf.prod</a>. I believe some of them are not mandatory. It would be great to have a documentation update just for the environment variables.</p>
<p>If you are going to use this for your conference, remember to activate autoscaling: <code>clever scale --min-instances 1 --max-instances 2</code>. And if you dread the weekend before your CFP closes, increase the number of minimum instances with <code>clever scale --instances 2</code>.</p>
<p><em>Post illustration: Computer at her work with microscope and the Friden calculating machine. Credits: NASA</em></p>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/cfps-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="cfps 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/cfps-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/cfps-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>At Clever Cloud we often go to conferences, we answer many CFPs and some of us are even organising conferences from time to time. As such, we understand the amount of work required to manage these.</p>
<span id="more-2927"></span>

<p>Just like organizing a conference, managing a CFP can become cumbersome. That&#39;s why people started writing new applications from scratch to handle it. Some of them chose Clever Cloud to host them of course. Among those, you will find <a href="http://www.cfp.io/">cfp.io</a> and the <a href="https://cfp.devoxx.fr/">Devoxx family</a>.</p>
<p>Some of you asked us if it was possible to run the one used by Devoxx. In this post I will show you how to deploy it on Clever Cloud.</p>
<h2 id="setup">Setup</h2>
<p>The application is written in Scala and is based on Play Framework:</p>
<blockquote>
Play Framework makes it easy to build web applications with Java & Scala. Play is based on a lightweight, stateless, web-friendly architecture. Built on Akka, Play provides predictable and minimal resource consumption (CPU, memory, threads) for highly-scalable applications.
</blockquote>

<p>You will find the code on our good friend <a href="https://github.com/nicmarti/cfp-devoxx">Nicolas Martignole&#39;s Github account</a>. Take a look at the Readme if you want to run the application locally first. You will see that it needs to write on disk, to store data on Redis, and can optionally benefit from fulltext search with Elastic and accounts on several external services. Don&#39;t worry, you don&#39;t need everything from the start.</p>
<p>If you want to tag along, make sure you have Git, a Clever Cloud account and that you have installed our CLI <a href="https://www.clever.cloud/developers/clever-tools/getting_started/">Clever-Tools</a>. Let&#39;s start:</p>
<ul>
<li>Clone the project: <code>git clone https://github.com/nicmarti/cfp-devoxx</code></li>
<li>Get in the project: <code>cd cfp-devoxx</code></li>
<li>Create the Redis add-on: <code>clever addon create redis-addon --plan s --region eu redisCFP</code></li>
<li>Create the FS Bucket add-on: <code>clever addon create fs-bucket --plan s --region eu fsCFP</code></li>
<li>Create the application: <code>clever create --type sbt MyCFP </code></li>
<li>Link the Redis add-on: <code>clever service link-addon redisCFP</code></li>
<li>Link the FS Bucket add-on: <code>clever service link-addon fsCFP</code></li>
<li>Define where to mount our FS Bucket: <code>clever env set CC_FS_BUCKET /devoxx-content:`clever env | awk  -F = &#39;/BUCKET_HOST/ { print $2}&#39;` </code></li>
<li>Remove the old FSBucket configuration: <code>git rm clevercloud/buckets.json &amp;&amp; git commit -m&quot;remove old bucket configuration&quot;</code></li>
<li>Copy the production configuration sample: <code>cp conf/redis-sample-prod.conf application.conf </code></li>
<li>Add your changes and commit them: <code>git add application.conf;git commit -m&quot;add default conf&quot;</code></li>
</ul>
<p>We now have to configure the application using environment variables, here is my dummy test configuration:</p>
<pre><code class="language-bash">ACTIVATE_FAVORITES=true
ACTIVATE_GOLDEN_TICKET=false
ACTIVATE_HTTPS=true
ACTIVATE_VOTE=true
APP_SECRET=1f0bc136-5c99-1e6-bee8-60f81dae2bbc
BITBUCKET_PASSWORD=foobar
BITBUCKET_URL=https://bitbucket.org/api/1.0/repositories/foo/bar/issues
BITBUCKET_USERNAME=foobar
BUCKET_ROOTFOLDER=/app
CC_FS_BUCKET=/devoxx-content:bucket-35ca2d97-ff0e-42fb-ba37-abb815fb90a1-fsbucket.services.clever-cloud.com
CFP_HOSTNAME=app_a6dcb49e-1e16-4e06-8f45-dc9e0e838959.cleverapps.io
CFP_IS_OPEN=false
CFP_LANG=en
CRON_DAYS=2
CRON_UPDATER=false
DIGEST_DAILY=08:00
DIGEST_WEEKLY=1
ENABLE_METRICS=true
ES_ADDON_PASSWORD=foobar
ES_ADDON_URI=http://elasticsearch:9200
ES_ADDON_USER=foobar
GITHUB_ID=foobar
GITHUB_SECRET=foobar
GOOGLE_ID=foobar.apps.googleusercontent.com
GOOGLE_SECRET=foobar
JAVA_VERSION=8
LINKEDIN_CLIEND_ID=foobar
LINKEDIN_SECRET=foobar
MAIL_BCC=foobar@devoxx.fr
MAIL_BUG_REPORT=foobar@devoxx.fr
MAIL_COMMITTEE=foobar@devoxx.fr
MAIL_FROM=foobar@devoxx.fr
OPSGENIE_API=TOD
OPSGENIE_NAME=foobar
PORT=8080
SMTP_HOST=in-v3.mailjet.com
SMTP_MOCK=true
SMTP_PASSWORD=foobar
SMTP_PORT=587
SMTP_SSL=false
SMTP_USER=foobar
</code></pre>
<p>You can copy/paste this in the <em>Environment variables</em> tab of your application using the <em>Expert Mode</em>. Make sure you set the value of <em>CFP_HOSTNAME</em> to your domain name; Clever Cloud will assign one by default: take a look at the <em>Domain Names</em> tab in our web console to see it or change it (or use <code>clever domain</code>).</p>
<p>And that&#39;s it, your configuration is done. The next step is to deploy your application by running <code>clever deploy</code>.</p>
<h2 id="whats-next">What&#39;s next?</h2>
<p>Your application should be running now. You can run <code>clever open</code> to make sure it is. It will open it in your default browser.</p>
<img alt="Default CFP homepage" src="https://www2.cleverapps.io/app/uploads/2021/08/cfp_devoxx.png"/>

<p>Now, you can start tweaking the configuration of your application. You can start by looking at all those environment variables if you have not already. There is one point where you will probably ask yourself how to get SMTP crendentials or an Elasticsearch instance from Clever Cloud. While we currently don&#39;t have any partnership with e-mails providers, you can ping our support team for the Elastic instance. It&#39;s currently in private beta and should soon be open to the public.</p>
<p>If you are looking for more documentation, I invite you to check out the Github repository issues and to give a good look at the production configuration file <a href="https://github.com/nicmarti/cfp-devoxx/blob/dev/conf/application.conf.prod">conf/application.conf.prod</a>. I believe some of them are not mandatory. It would be great to have a documentation update just for the environment variables.</p>
<p>If you are going to use this for your conference, remember to activate autoscaling: <code>clever scale --min-instances 1 --max-instances 2</code>. And if you dread the weekend before your CFP closes, increase the number of minimum instances with <code>clever scale --instances 2</code>.</p>
<p><em>Post illustration: Computer at her work with microscope and the Friden calculating machine. Credits: NASA</em></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introducing Redis by Clever Cloud…</title>
		<link>https://www.clever.cloud/blog/features/2015/08/26/introducing-redis-by-clever-cloud/</link>
		
		<dc:creator><![CDATA[Clément Nivolle]]></dc:creator>
		<pubDate>Wed, 26 Aug 2015 15:50:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[redis]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2015/08/26/introducing-redis-by-clever-cloud/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="redisclever post" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>We&#39;re super excited to roll-out the new Redis by Clever Cloud add-on for all of our users. Redis is a blazing-fast key-value store, perfect for low-latency storage. We&#39;re glad to provide it in our own way today, with a little surprise. :)

<span id="more-2860"></span>
<h3 id="introducing-redis-by-clever-cloud--redsmin">Introducing Redis by Clever Cloud + Redsmin</h3>
We wanted to build the best Redis Database as a Service for our users, along with our other add-ons MySQL, PostgreSQL and MongoDB.

But we also wanted to take our Redis add-on further by providing state-of-the-art tooling with it. To that extent, each new Redis add-on comes with <a rel="noopener noreferrer" target="_blank" href="https://redsmin.com/?clevercloud">Redsmin, the best Redis administration and monitoring system</a>. We had the pleasure to introduce Redsmin as a new add-on a few months ago; now it&#39;s simpler than ever.

To use Redsmin with your Redis by Clever Cloud, just head to your configuration panel. Redsmin is already there, along with the backups.
<div class="center" style="margin: 0 auto 20px; max-width: 600px;">
  <img alt="magic" src="https://www2.cleverapps.io/app/uploads/2021/08/redsminRedis.gif"/></div>
You will find the Redis add-on in the console, with a free plan if you want to use it right away. For bigger needs, we provide plans for up to 2.5 GB Redis instances.
<h3 id="use-cases">Use cases</h3>
Redis gained a high popularity these last years. The community did a really good job, allowing Redis to be easy to setup and to integrate in many languages. This popularity and this technical success led Redis to be used as a multi-purpose database:
<ul>
 	<li><strong>Session storage</strong>: You can use Redis to track easily your users data on your app. Store the sessions in an easy way to keep users&#39; data available for your stateless apps.</li>
 	<li><strong>Queuing jobs</strong>: Redis comes with interesting primitives like BLPOP, a blocking list pop primitive. This feature allows workers to wait for jobs to get pushed onto the queue.</li>
 	<li><strong>Caching</strong>: Redis is well known for its caching capabilities. If you have assets or data that are frequently used, Redis may be a good way to serve them in an efficient way.</li>
</ul>
We hope you&#39;ll find in our Redis offer with Redsmin a great way to build awesome apps.

Happy coding!]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="redisclever post" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/redisclever-post-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p>We&#39;re super excited to roll-out the new Redis by Clever Cloud add-on for all of our users. Redis is a blazing-fast key-value store, perfect for low-latency storage. We&#39;re glad to provide it in our own way today, with a little surprise. :)

<span id="more-2860"></span>
<h3 id="introducing-redis-by-clever-cloud--redsmin">Introducing Redis by Clever Cloud + Redsmin</h3>
We wanted to build the best Redis Database as a Service for our users, along with our other add-ons MySQL, PostgreSQL and MongoDB.

But we also wanted to take our Redis add-on further by providing state-of-the-art tooling with it. To that extent, each new Redis add-on comes with <a rel="noopener noreferrer" target="_blank" href="https://redsmin.com/?clevercloud">Redsmin, the best Redis administration and monitoring system</a>. We had the pleasure to introduce Redsmin as a new add-on a few months ago; now it&#39;s simpler than ever.

To use Redsmin with your Redis by Clever Cloud, just head to your configuration panel. Redsmin is already there, along with the backups.
<div class="center" style="margin: 0 auto 20px; max-width: 600px;">
  <img alt="magic" src="https://www2.cleverapps.io/app/uploads/2021/08/redsminRedis.gif"/></div>
You will find the Redis add-on in the console, with a free plan if you want to use it right away. For bigger needs, we provide plans for up to 2.5 GB Redis instances.
<h3 id="use-cases">Use cases</h3>
Redis gained a high popularity these last years. The community did a really good job, allowing Redis to be easy to setup and to integrate in many languages. This popularity and this technical success led Redis to be used as a multi-purpose database:
<ul>
 	<li><strong>Session storage</strong>: You can use Redis to track easily your users data on your app. Store the sessions in an easy way to keep users&#39; data available for your stateless apps.</li>
 	<li><strong>Queuing jobs</strong>: Redis comes with interesting primitives like BLPOP, a blocking list pop primitive. This feature allows workers to wait for jobs to get pushed onto the queue.</li>
 	<li><strong>Caching</strong>: Redis is well known for its caching capabilities. If you have assets or data that are frequently used, Redis may be a good way to serve them in an efficient way.</li>
</ul>
We hope you&#39;ll find in our Redis offer with Redsmin a great way to build awesome apps.

Happy coding!]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introducing Redsmin on Clever Cloud</title>
		<link>https://www.clever.cloud/blog/features/2015/05/27/redsmin-addon-on-clever-cloud/</link>
		
		<dc:creator><![CDATA[Clément Nivolle]]></dc:creator>
		<pubDate>Wed, 27 May 2015 11:16:00 +0000</pubDate>
				<category><![CDATA[Features]]></category>
		<category><![CDATA[addons]]></category>
		<category><![CDATA[redis]]></category>
		<guid isPermaLink="false">https://www2.cleverapps.io/wp/blog/technology/2015/05/27/redsmin-addon-on-clever-cloud/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="redsmin banner 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Earlier this year we’ve promised some great news. Here we are: we’re proud to announce our first external add-on : Redsmin!</p>
<span id="more-2859"></span>

<p>What are add-ons? Add-ons help you build and enhance your applications, with things such as databases, monitoring, storage, email, etc. If you are a clever cloud customer, you’re probably using one of the add-ons we provide. Postgres, Mysql, MongoDB.</p>
<p>Clever Cloud considers these add-ons as application resources: when you provision an add-on, you are billed according to the plan you’ve chosen.</p>
<p>Today, we’re excited to introduce <a href="https://redsmin.com/">Redsmin</a> as the first external add-on on Clever Cloud. Why Redsmin?</p>
<p>Redsmin will help you being more efficient with every aspect of Redis, the famous highly performant, in memory, data-structure server. With Redsmin you will be able to administrate and to monitor in real-time any of your Redis servers both <a href="https://redsmin.uservoice.com/knowledgebase/articles/485711-how-to-connect-azure-redis-cache-to-redsmin">hosted on the cloud</a> or in your <a href="https://redsmin.uservoice.com/knowledgebase/articles/121169-can-i-manage-redis-instances-only-accessible-from">local network</a> in an easy way. Nightmares debugging Redis servers in production are over, Redsmin will now have your back!</p>
<center>
  <figure>
    <img width="600" src="https://www2.cleverapps.io/app/uploads/2021/08/monitor.jpg">
  </figure>
  <figcaption>Drop the old 90’ redis-cli, welcome to the modern world with Redsmin.</figcaption>
</center>

<p>This new addon is the first in a long list of planned releases. We’re making our best to provide more choice every month.</p>
<center>
  <a class="bt3-btn bt3-btn-success" href="https://api.clever-cloud.com/v2/session/login" rel="noopener noreferrer" target="_blank">
    Login Now
  </a>
</center>
]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="redsmin banner 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/08/redsmin-banner-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><p>Earlier this year we’ve promised some great news. Here we are: we’re proud to announce our first external add-on : Redsmin!</p>
<span id="more-2859"></span>

<p>What are add-ons? Add-ons help you build and enhance your applications, with things such as databases, monitoring, storage, email, etc. If you are a clever cloud customer, you’re probably using one of the add-ons we provide. Postgres, Mysql, MongoDB.</p>
<p>Clever Cloud considers these add-ons as application resources: when you provision an add-on, you are billed according to the plan you’ve chosen.</p>
<p>Today, we’re excited to introduce <a href="https://redsmin.com/">Redsmin</a> as the first external add-on on Clever Cloud. Why Redsmin?</p>
<p>Redsmin will help you being more efficient with every aspect of Redis, the famous highly performant, in memory, data-structure server. With Redsmin you will be able to administrate and to monitor in real-time any of your Redis servers both <a href="https://redsmin.uservoice.com/knowledgebase/articles/485711-how-to-connect-azure-redis-cache-to-redsmin">hosted on the cloud</a> or in your <a href="https://redsmin.uservoice.com/knowledgebase/articles/121169-can-i-manage-redis-instances-only-accessible-from">local network</a> in an easy way. Nightmares debugging Redis servers in production are over, Redsmin will now have your back!</p>
<center>
  <figure>
    <img width="600" src="https://www2.cleverapps.io/app/uploads/2021/08/monitor.jpg">
  </figure>
  <figcaption>Drop the old 90’ redis-cli, welcome to the modern world with Redsmin.</figcaption>
</center>

<p>This new addon is the first in a long list of planned releases. We’re making our best to provide more choice every month.</p>
<center>
  <a class="bt3-btn bt3-btn-success" href="https://api.clever-cloud.com/v2/session/login" rel="noopener noreferrer" target="_blank">
    Login Now
  </a>
</center>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
