-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
6 lines (6 loc) · 10.7 KB
/
index.html
1
2
3
4
5
6
<!doctype html><html class=dark lang=en-ca><head><meta name=generator content="Hugo 0.85.0"><meta http-equiv=content-type content="text/html" charset=utf-8><meta http-equiv=x-ua-compatible content="IE=edge,chrome=1"><meta name=viewport content="width=device-width,initial-scale=1"><script async src="https://www.googletagmanager.com/gtag/js?id=G-X51Z9ZSVTG"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}gtag('js',new Date),gtag('config','G-X51Z9ZSVTG')</script><link rel=stylesheet href=/css/main.min.3187593a6422ad33b7d2164db7fdee7e49f51043413d4fe2b01f2e596c1e0215.css integrity=sha256-MYdZOmQirTO30hZNt/3ufkn1EENBPU/isB8uWWweAhU=><script type=text/javascript src=/js/fonts.min.f8952214762921b4f64b73e2957b35e4d15f86bd8df6dba030b5f9d531681c67.js></script></head><body class=dark:bg-gray-800><div class="min-h-screen bg-gray-100"><div class=py-10><div class="max-w-3xl mx-auto sm:px-6 lg:max-w-7xl lg:px-8 lg:grid lg:grid-cols-12 lg:gap-8"><div class="hidden lg:block lg:col-span-3 xl:col-span-2"><nav aria-label=Sidebar class="sticky top-4 divide-y divide-gray-300"><div class="pb-8 space-y-1"><a href=http://yassinm.github.io class="bg-gray-200 text-gray-900 group flex items-center px-3 py-2 text-sm font-medium rounded-md" aria-current=page><svg class="text-gray-500 flex-shrink-0 -ml-1 mr-3 h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentcolor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0 7-7 7 7M5 10v10a1 1 0 001 1h3m10-11 2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6"/></svg><span class=truncate>Home</span></a>
<a href=# class="text-gray-600 hover:bg-gray-50 group flex items-center px-3 py-2 text-sm font-medium rounded-md"><svg class="text-gray-400 group-hover:text-gray-500 flex-shrink-0 -ml-1 mr-3 h-6 w-6" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentcolor" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17.657 18.657A8 8 0 016.343 7.343S7 9 9 10c0-2 .5-5 2.986-7C14 5 16.09 5.777 17.656 7.343A7.975 7.975.0 0120 13a7.975 7.975.0 01-2.343 5.657z"/><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9.879 16.121A3 3 0 1012.015 11L11 14H9c0 .768.293 1.536.879 2.121z"/></svg><span class=truncate>Popular</span></a></div><div class=pt-10><p class="px-3 text-xs font-semibold text-gray-500 uppercase tracking-wider" id=communities-headline>Tags</p><div class="mt-3 space-y-2" aria-labelledby=communities-headline><a href=http://yassinm.github.io/tags/dataflow/ class="group flex items-center px-3 py-2 text-sm font-medium text-gray-600 rounded-md hover:text-gray-900 hover:bg-gray-50"><span class=truncate>dataflow</span></a></div><div class="mt-3 space-y-2" aria-labelledby=communities-headline><a href=http://yassinm.github.io/tags/memory/ class="group flex items-center px-3 py-2 text-sm font-medium text-gray-600 rounded-md hover:text-gray-900 hover:bg-gray-50"><span class=truncate>memory</span></a></div></div></nav></div><main class=col-span-8><div><ul class=space-y-4><li class="px-4 py-6 sm:p-6 bg-white shadow sm:p-6 sm:rounded-lg"><article aria-labelledby="site-posts "><div><a href=http://yassinm.github.io/2017-09-10-wiring-data-transformations-for-speed-02/ class=block><p class=text-sm><a href=http://yassinm.github.io/2017-09-10-wiring-data-transformations-for-speed-02/ class="text-2xl font-bold font-inter text-gray-500">Wiring data transformations for speed (part 2)</a></p></a></div><div><div class="flex space-x-3 text-gray-500"><div class=flex-shrink-0><img class="h-10 w-10 rounded-full" src=/images/profile.png alt="Yassin Mohamed"></div><div class="min-w-0 flex-1"><p class="text-sm font-medium"><a href=# class=hover:underline>Yassin Mohamed</a></p><p class=text-sm><a href=# class=hover:underline><time datetime=2020-12-09T11:43:00>Sep 10, 2017 - 8 min read</time></a></p></div></div></div><p class="mt-3 font-inter text-gray-500">If you remember our previous part 1 article we highlighted some of the inherent complexities we introduce by writing code the way we do today. We also stopped at a high level because (frankly speaking) this was going to be a very long read. We had to stop ranting about the current state of affairs :((
In that article, we came to the conclusion that maybe we needed a way to remove those unnecessary complexities and deal with them outside the data flow graph to achieve maximum flexibility and speed.</p></article></li></ul></div><div class=mt-4><ul class=space-y-4><li class="px-4 py-6 sm:p-6 bg-white shadow sm:p-6 sm:rounded-lg"><article aria-labelledby="site-posts "><div><a href=http://yassinm.github.io/2017-09-09-wiring-data-transformations-for-speed-01/ class=block><p class=text-sm><a href=http://yassinm.github.io/2017-09-09-wiring-data-transformations-for-speed-01/ class="text-2xl font-bold font-inter text-gray-500">Wiring data transformations for speed (part 1)</a></p></a></div><div><div class="flex space-x-3 text-gray-500"><div class=flex-shrink-0><img class="h-10 w-10 rounded-full" src=/images/profile.png alt="Yassin Mohamed"></div><div class="min-w-0 flex-1"><p class="text-sm font-medium"><a href=# class=hover:underline>Yassin Mohamed</a></p><p class=text-sm><a href=# class=hover:underline><time datetime=2020-12-09T11:43:00>Sep 9, 2017 - 9 min read</time></a></p></div></div></div><p class="mt-3 font-inter text-gray-500">If you think about our software industry today all we do , day in and day out, is “transform” data from one state to another. The systems we have in place today can be seen , at a very high level, as black boxes that take a variable number of arguments as inputs and produce a well defined output
The purpose of all programs, and all parts of those programs, is to transform data from one form to another.</p></article></li></ul></div><div class=mt-4><ul class=space-y-4><li class="px-4 py-6 sm:p-6 bg-white shadow sm:p-6 sm:rounded-lg"><article aria-labelledby="site-posts "><div><a href=http://yassinm.github.io/2014-10-06-walking-down-memory-lane-03/ class=block><p class=text-sm><a href=http://yassinm.github.io/2014-10-06-walking-down-memory-lane-03/ class="text-2xl font-bold font-inter text-gray-500">Walking down memory lane (part 3)</a></p></a></div><div><div class="flex space-x-3 text-gray-500"><div class=flex-shrink-0><img class="h-10 w-10 rounded-full" src=/images/profile.png alt="Yassin Mohamed"></div><div class="min-w-0 flex-1"><p class="text-sm font-medium"><a href=# class=hover:underline>Yassin Mohamed</a></p><p class=text-sm><a href=# class=hover:underline><time datetime=2020-12-09T11:43:00>Oct 6, 2014 - 5 min read</time></a></p></div></div></div><p class="mt-3 font-inter text-gray-500">If you remember our previous part 2 article we used a central memory location to share data between two separate threads each running either in the same process or across separate processes. These processes could even be located on separate machine or even be written in two different languages.
From the above you can see that we only have one thread writing to the shared data. The other thread is only reading this shared data once it is notified that the data was correctly published by the writer thread.</p></article></li></ul></div><div class=mt-4><ul class=space-y-4><li class="px-4 py-6 sm:p-6 bg-white shadow sm:p-6 sm:rounded-lg"><article aria-labelledby="site-posts "><div><a href=http://yassinm.github.io/2014-09-25-walking-down-memory-lane-02/ class=block><p class=text-sm><a href=http://yassinm.github.io/2014-09-25-walking-down-memory-lane-02/ class="text-2xl font-bold font-inter text-gray-500">Walking down memory lane (part 2)</a></p></a></div><div><div class="flex space-x-3 text-gray-500"><div class=flex-shrink-0><img class="h-10 w-10 rounded-full" src=/images/profile.png alt="Yassin Mohamed"></div><div class="min-w-0 flex-1"><p class="text-sm font-medium"><a href=# class=hover:underline>Yassin Mohamed</a></p><p class=text-sm><a href=# class=hover:underline><time datetime=2020-12-09T11:43:00>Sep 25, 2014 - 6 min read</time></a></p></div></div></div><p class="mt-3 font-inter text-gray-500">As per our previous part 1 article we identified that we need a way to serialize objects into memory in a very efficient manner. To recap here is a picture showing the steps we need to remove when sending/receiving objects over the network.
FTR we are still not interested in solving how these troublesome bytes are transferred over the network from one process to another once the data is ready to be transferred.</p></article></li></ul></div><div class=mt-4><ul class=space-y-4><li class="px-4 py-6 sm:p-6 bg-white shadow sm:p-6 sm:rounded-lg"><article aria-labelledby="site-posts "><div><a href=http://yassinm.github.io/2014-09-21-walking-down-memory-lane-01/ class=block><p class=text-sm><a href=http://yassinm.github.io/2014-09-21-walking-down-memory-lane-01/ class="text-2xl font-bold font-inter text-gray-500">Walking down memory lane (part 1)</a></p></a></div><div><div class="flex space-x-3 text-gray-500"><div class=flex-shrink-0><img class="h-10 w-10 rounded-full" src=/images/profile.png alt="Yassin Mohamed"></div><div class="min-w-0 flex-1"><p class="text-sm font-medium"><a href=# class=hover:underline>Yassin Mohamed</a></p><p class=text-sm><a href=# class=hover:underline><time datetime=2020-12-09T11:43:00>Sep 21, 2014 - 6 min read</time></a></p></div></div></div><p class="mt-3 font-inter text-gray-500">One of the topics that you often have to deal with in java, especially in high performance and low latency distributed code, is how you send a set of objects to a worker thread in the most efficient manner. This thread could be running in the same process or on a completely separate machine located somewhere else in your network. This has always been the case for people coming from a c/c++ environment even before the advent of Java.</p></article></li></ul></div><div class=mt-4><ul class=space-y-4><li class="px-4 py-6 sm:p-6 bg-white shadow sm:p-6 sm:rounded-lg"><article aria-labelledby="site-posts "><div><a href=http://yassinm.github.io/2013-07-13-first-post/ class=block><p class=text-sm><a href=http://yassinm.github.io/2013-07-13-first-post/ class="text-2xl font-bold font-inter text-gray-500">Starting to blog ... finally</a></p></a></div><div><div class="flex space-x-3 text-gray-500"><div class=flex-shrink-0><img class="h-10 w-10 rounded-full" src=/images/profile.png alt="Yassin Mohamed"></div><div class="min-w-0 flex-1"><p class="text-sm font-medium"><a href=# class=hover:underline>Yassin Mohamed</a></p><p class=text-sm><a href=# class=hover:underline><time datetime=2020-12-09T11:43:00>Jul 13, 2013 - 0 min read</time></a></p></div></div></div><p class="mt-3 font-inter text-gray-500"></p></article></li></ul></div></main></div></div></div></body></html>