PageRenderTime 71ms CodeModel.GetById 38ms RepoModel.GetById 0ms app.codeStats 0ms

/docs/post/index.html

https://github.com/topliceanu/alexandrutopliceanu.ro
HTML | 244 lines | 187 code | 57 blank | 0 comment | 0 complexity | f641c4dbf112311be052c36383b30ba5 MD5 | raw file
  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml" lang="en-us">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1"/>
  6. <title>Posts | alexandru topliceanu</title>
  7. <link href="http://alexandrutopliceanu.ro/index.xml" rel="alternate" type="application/rss+xml" title="alexandru topliceanu" />
  8. <link rel="stylesheet" href="http://alexandrutopliceanu.ro/css/style.css"/><link rel="apple-touch-icon" sizes="180x180" href="http://alexandrutopliceanu.ro/apple-touch-icon.png">
  9. <link rel="icon" type="image/png" sizes="32x32" href="http://alexandrutopliceanu.ro/favicon-32x32.png">
  10. <link rel="icon" type="image/png" sizes="16x16" href="http://alexandrutopliceanu.ro/favicon-16x16.png">
  11. <link rel="manifest" href="http://alexandrutopliceanu.ro/site.webmanifest">
  12. <link rel="mask-icon" href="http://alexandrutopliceanu.ro/safari-pinned-tab.svg" color="#5bbad5">
  13. <link rel="canonical" href="http://alexandrutopliceanu.ro/post/">
  14. <meta name="msapplication-TileColor" content="#da532c">
  15. <meta name="theme-color" content="#ffffff">
  16. </head>
  17. <body>
  18. <section class="section">
  19. <div class="container">
  20. <nav id="nav-main" class="nav">
  21. <div id="nav-name" class="nav-left">
  22. <a id="nav-anchor" class="nav-item" href="http://alexandrutopliceanu.ro/">
  23. <h1 id="nav-heading" class="title is-4">alexandru topliceanu</h1>
  24. </a>
  25. </div>
  26. <div class="nav-right">
  27. <nav id="nav-items" class="nav-item level is-mobile"><a class="level-item" aria-label="rss" href='http://alexandrutopliceanu.ro/index.xml'
  28. target='_blank' rel='noopener'>
  29. <span class="icon">
  30. <i class><svg viewbox='0 0 24 24' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' aria-hidden='true'>
  31. <path d="M4 11a9 9 0 0 1 9 9"></path><path d="M4 4a16 16 0 0 1 16 16"></path><circle cx="5" cy="19" r="1"></circle>
  32. </svg></i>
  33. </span>
  34. </a><a class="level-item" aria-label="github" href='https://github.com/topliceanu'
  35. target='_blank' rel='noopener'>
  36. <span class="icon">
  37. <i class><svg viewbox='0 0 24 24' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' aria-hidden='true'>
  38. <path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"/>
  39. </svg></i>
  40. </span>
  41. </a><a class="level-item" aria-label="twitter" href='https://twitter.com/topliceanu'
  42. target='_blank' rel='noopener'>
  43. <span class="icon">
  44. <i class><svg viewbox='0 0 24 24' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' aria-hidden='true'>
  45. <path d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z"/>
  46. </svg></i>
  47. </span>
  48. </a><a class="level-item" aria-label="email" href='mailto:alexandru.topliceanu@gmail.com'
  49. target='_blank' rel='noopener'>
  50. <span class="icon">
  51. <i class><svg viewbox='0 0 24 24' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' aria-hidden='true'>
  52. <path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"/>
  53. <polyline points="22,6 12,13 2,6"/>
  54. </svg></i>
  55. </span>
  56. </a><a class="level-item" aria-label="linkedin" href='https://linkedin.com/in/alexandrutopliceanu'
  57. target='_blank' rel='noopener'>
  58. <span class="icon">
  59. <i class><svg viewbox='0 0 24 24' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' aria-hidden='true'>
  60. <path stroke-width="1.8" d="m5.839218,4.101561c0,1.211972 -0.974141,2.194011 -2.176459,2.194011s-2.176459,-0.982039 -2.176459,-2.194011c0,-1.211094 0.974141,-2.194011 2.176459,-2.194011s2.176459,0.982917 2.176459,2.194011zm0.017552,3.94922l-4.388022,0l0,14.04167l4.388022,0l0,-14.04167zm7.005038,0l-4.359939,0l0,14.04167l4.360816,0l0,-7.370999c0,-4.098413 5.291077,-4.433657 5.291077,0l0,7.370999l4.377491,0l0,-8.89101c0,-6.915523 -7.829986,-6.66365 -9.669445,-3.259423l0,-1.891237z"/>
  61. </svg></i>
  62. </span>
  63. </a></nav>
  64. </div>
  65. </nav>
  66. <nav class="nav">
  67. </nav>
  68. </div>
  69. <script src="http://alexandrutopliceanu.ro/js/navicon-shift.js"></script>
  70. </section>
  71. <section class="section">
  72. <div class="container">
  73. <article>
  74. <div class="subtitle tags is-6 is-pulled-right">
  75. </div>
  76. <h2 class="subtitle is-6 date">April 22, 2020</h2>
  77. <h1 class="title"><a href="http://alexandrutopliceanu.ro/post/cache-replacement-problem/">The Cache Replacement Problem</a></h1>
  78. <div class="content">
  79. Intro Tradeoffs between time and space complexity often need to be made in computing. A solution that is faster at the expense of using more storage is usually preferred. One way to make a solution faster is to save the results of expensive operations in a cache for later use.
  80. Since cache capacity is limited and is usually much smaller than the amount of data the algorithm requires, caching every result is not practical.
  81. <a class="button is-link" href="http://alexandrutopliceanu.ro/post/cache-replacement-problem/" style="height:28px">
  82. Read more
  83. </a>
  84. </div>
  85. </article>
  86. <article>
  87. <div class="subtitle tags is-6 is-pulled-right">
  88. </div>
  89. <h2 class="subtitle is-6 date">May 21, 2018</h2>
  90. <h1 class="title"><a href="http://alexandrutopliceanu.ro/post/targeted-quantiles/">Targeted Quantiles in Prometheus</a></h1>
  91. <div class="content">
  92. The algorithm behind Prometheus&rsquo; Summaries.
  93. Abstract Prometheus uses a technique called Targeted Quantiles to implement the Summary metric type which is used to monitor distributions, such as latencies. Here, we give an overview of how the algorithm works, we answer why it is so efficient and how to configure Summaries.
  94. Introduction A very important way of understanding how your distributed system works in production is to monitor it. In recent years, Prometheus has emerged as the most popular monitoring system for applications deployed on Kubernetes.
  95. <a class="button is-link" href="http://alexandrutopliceanu.ro/post/targeted-quantiles/" style="height:28px">
  96. Read more
  97. </a>
  98. </div>
  99. </article>
  100. <article>
  101. <div class="subtitle tags is-6 is-pulled-right">
  102. </div>
  103. <h2 class="subtitle is-6 date">February 1, 2018</h2>
  104. <h1 class="title"><a href="http://alexandrutopliceanu.ro/post/scheduling-in-kubernetes/">Scheduling in Kubernetes</a></h1>
  105. <div class="content">
  106. The importance of understanding the implementation of the tools we use in production every day cannot be underestimated.
  107. This process informs about the trade-offs engineers made in the implementations. Knowing a tool&rsquo;s strengths and weaknesses helps better design systems on top of it; it exposes potential failure modes and helps debug critical errors when they occur. It also reveals brilliant ideas, tricks, patterns and conventions used in production systems.
  108. In this post, I will go through the implementation of the default scheduler in Kubernetes (k8s).
  109. <a class="button is-link" href="http://alexandrutopliceanu.ro/post/scheduling-in-kubernetes/" style="height:28px">
  110. Read more
  111. </a>
  112. </div>
  113. </article>
  114. <article>
  115. <div class="subtitle tags is-6 is-pulled-right">
  116. </div>
  117. <h2 class="subtitle is-6 date">February 17, 2017</h2>
  118. <h1 class="title"><a href="http://alexandrutopliceanu.ro/post/introduction-to-graphql/">[video] Introduction to GraphQL</a></h1>
  119. <div class="content">
  120. Introduction to GraphQL This post embeds a recorded presentation I gave at the offices of Pusher where I currently work.
  121. The talk is a short introduction on GraphQL. My goal here is to describe how GraphQL works, how it positions against similar approaches and to give an example of how one might use it to design an API for a blog engine. If you want more details about that process I previously wrote a blog post GraphQL with Go and PostgreSQL and an implementation at github.
  122. <a class="button is-link" href="http://alexandrutopliceanu.ro/post/introduction-to-graphql/" style="height:28px">
  123. Read more
  124. </a>
  125. </div>
  126. </article>
  127. <article>
  128. <div class="subtitle tags is-6 is-pulled-right">
  129. </div>
  130. <h2 class="subtitle is-6 date">February 11, 2017</h2>
  131. <h1 class="title"><a href="http://alexandrutopliceanu.ro/post/quality-go-code/">Writing Quality Golang Code</a></h1>
  132. <div class="content">
  133. The tools I use to help produce quality Golang code
  134. Abstract Go has excellent libraries for source-code parsing. These have enabled the creators of Go and the open source community to produce a variety of tools which help eliminate errors in advance.
  135. The large number of tools and the lack of documentation on how to best use them presents a problem for engineers. This blog post describes the process and the tools I use to improve code quality and catch bugs early in my Go code.
  136. <a class="button is-link" href="http://alexandrutopliceanu.ro/post/quality-go-code/" style="height:28px">
  137. Read more
  138. </a>
  139. </div>
  140. </article>
  141. <article>
  142. <div class="subtitle tags is-6 is-pulled-right">
  143. </div>
  144. <h2 class="subtitle is-6 date">January 22, 2017</h2>
  145. <h1 class="title"><a href="http://alexandrutopliceanu.ro/post/graphql-with-go-and-postgresql/">GraphQL With Golang and PostgreSQL</a></h1>
  146. <div class="content">
  147. Building a Blogging Engine API with Golang and PostgreSQL
  148. Abstract GraphQL appears hard to use in production: the graph interface is flexible in its modeling capabilities but is a poor match for relational storage, both in terms of implementation and performance.
  149. In this document, we will design and write a simple blogging engine API, with the following specification:
  150. three types of resources (users, posts and comments) supporting a varied set of functionality (create a user, create a post, add a comment to a post, follow posts and comments from another user, etc.
  151. <a class="button is-link" href="http://alexandrutopliceanu.ro/post/graphql-with-go-and-postgresql/" style="height:28px">
  152. Read more
  153. </a>
  154. </div>
  155. </article>
  156. </div>
  157. </section>
  158. <section class="section">
  159. <div class="container">
  160. <nav class="level is-mobile">
  161. <div class="level-left">
  162. <div class="level-item">
  163. </div>
  164. </div>
  165. <div class="level-right is-marginless">
  166. <div class="level-item">
  167. </div>
  168. </div>
  169. </nav>
  170. </div>
  171. </section>
  172. <section class="section">
  173. <div class="container has-text-centered">
  174. <p></p>
  175. </div>
  176. </section>
  177. <script type="application/javascript">
  178. var doNotTrack = false;
  179. if (!doNotTrack) {
  180. window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
  181. ga('create', 'UA-24987736-1', 'auto');
  182. ga('send', 'pageview');
  183. }
  184. </script>
  185. <script async src='https://www.google-analytics.com/analytics.js'></script>
  186. </body>
  187. </html>