diff --git a/imgs/week6.png b/imgs/week6.png new file mode 100644 index 0000000..9dcf0cb Binary files /dev/null and b/imgs/week6.png differ diff --git a/week2.md b/week2.md index e69de29..7aab661 100644 --- a/week2.md +++ b/week2.md @@ -0,0 +1,29 @@ +# Week 2 Reflections + +![Flame Graph](https://www.brendangregg.com/FlameGraphs/cpu-mysql-updated.svg) + +This week my reflection is on flame graphs visualizations and their use for profiling application CPU time. Flame graphs +visualize the hierarchical breakdown of a task into its component times. While they can be applied to a broad range of +topics, they see the most use in profiling applications. + +I found this great [post by Brendan Gregg] on what flame graphs are and how they can be used to more efficiently express +how an application spends its time. Most display libraries will allow a user to click on specific bands to zoom in on +the x-axis for easier viewing. Additionally, color can be applied to help distinguish different various important pieces +of information about the execution of a program such as the file or library a method originates. + +![Colored Flame Graph](https://www.brendangregg.com/FlameGraphs/cpu-mixedmode-vertx.svg) + +In this example, Gregg shows a flame graph of a Java application. If we were debugging the performance, the colored +regions be important as they help to highlight what we have direct control over. The green regions represent time spent +by code within our control. Also while we would not be able to directly modify the orange kernel parts of the graph it +may reveal delays that could be avoided by choosing a different approach. + +Gregg provides some examples using open source tools which he explains in his post for profiling and building flame +graphs for your applications. That being said, I have found I have found [Intel VTune] to be the easiest and most +straightforward approach for quickly debugging my C/C++/Rust projects as it has an easy installer, and you only need to +provide it with an executable to get started. However, [Intel VTune] does not provide built in functionality to export +these graphs so other projects like this [D3 Flame Graph Library] may also be helpful. + +[post by Brendan Gregg]: https://www.brendangregg.com/FlameGraphs/cpuflamegraphs.html +[Intel VTune]: https://www.intel.com/content/www/us/en/developer/tools/oneapi/vtune-profiler.html#gs.mwo5ib +[D3 Flame Graph Library]: https://github.com/spiermar/d3-flame-graph \ No newline at end of file diff --git a/week3.md b/week3.md index e69de29..a500e5e 100644 --- a/week3.md +++ b/week3.md @@ -0,0 +1,23 @@ +# Week 3 reflections + +This week I was looking at a neat visualization of the stock market represented by bubbles. The visualization shows +a more dynamic graph of how a large number of companies are doing over a period of time. It works by splitting companies +into groups by industry then sizing each bubble by market cap evaluation. As time progresses a force is applied to each +bubble towards its current evaluation. Due to the physics elements, it may not be entirely accurate for a specific time, +but it allows someone without much experience to quickly evaluate the state of the market across hundreds of companies +at the same time. + +I initially came across this visualization due to a link on [r/dataIsBeautiful]. So far, this appears to be the best +example of it I have seen so far, but it appears to be based on a [tutorial] using D3 made by ChartFleau. ChartFleau +also provides links to a [static version] using D3 as well as a more [dynamic version] using WebGL. + +> **Links to View** +> - Video on [r/dataIsBeautiful] +> - Interactive demo by [ChartFleau] + +[r/dataIsBeautiful]: https://www.reddit.com/r/dataisbeautiful/comments/sh22u8/oc_how_stocks_are_doing_in_2022/ +[tutorial]: https://www.chartfleau.com/tutorials/d3swarm +[static version]: https://www.chartfleau.com/sp500 +[dynamic version]: https://www.chartfleau.com/bubblechart +[ChartFleau]: https://www.chartfleau.com/bubblechart + diff --git a/week4.md b/week4.md index e69de29..6c8ef63 100644 --- a/week4.md +++ b/week4.md @@ -0,0 +1,18 @@ +# Week 4 Reflections +*[Link to Visualization]* + +For this week, I chose to look at a visualization from nearly a year ago (Feb 26, 2021) about visualizing airflow in +classrooms to reduce the spread of coronavirus. This article consists of a scrollytelling visualization which shows a 3D +classroom with simulated airflow while the article discusses the different options. Unsurprisingly, due to the need for +smooth high definition web based 3D graphics, the visualization was backed using WebGL. While I was unable to try it, +the article also allows viewers to view the article in augmented reality instead via the instagram app. Granted placing +the link at the very end of the article likely + +At its core, the article comes down to advocating the use of additional ventilation in classrooms. It serves as a +convincing argument, however I would have liked to have seen some data to back up their article. The room shown in the +visualization is entirely fictitious created for the visualization and the article does not site any additional +statistics. Without going too in depth, most of their sources appear to bee either quotes from health notable officials +recommending additional ventilation and consultation on the accuracy of the simulation shown in the article. + + +[Link to Visualization]: https://www.nytimes.com/interactive/2021/02/26/science/reopen-schools-safety-ventilation.html \ No newline at end of file diff --git a/week5.md b/week5.md index e69de29..710d778 100644 --- a/week5.md +++ b/week5.md @@ -0,0 +1,17 @@ +# Week 5 Reflections +*[Link to Visualization]* + +For this week, I looked at a visualization made by a redditor to show the hottest and coldest temperatures around the +world based on latitude. The author ([u/neilrkaye]) explains in a comment that they created this visualization by first +using ggplot to create a number of images corresponding to different latitudes. Those images were then stitched together +using ffmpeg to create the animation shown in the post. At the moment there is no interactive version, however the +visualization definitely has the potential to be converted into one. The most obvious option being to make the latitude +line draggable. It might also benefit from being able to select a smaller portion of the globe on the longitudinal axis. +It is also somewhat unclear where/how the data was sampled. The author linked the public dataset ([Berkeley Earth]) used +to create the visualization, but without reading through their sources it is not immediately clear how the data was +collected. The visualization would also benefit from more use of color on the world map as it could help provide a +better overview of the entire world. + +[Link to Visualization]: https://www.reddit.com/r/dataisbeautiful/comments/sq0pgh/temperature_range_between_coldest_and_hottest/?utm_source=share&utm_medium=web2x&context=3 +[u/neilrkaye]: https://www.reddit.com/user/neilrkaye/ +[Berkeley Earth]: http://berkeleyearth.org/data/ diff --git a/week6.md b/week6.md index e69de29..6ae4c3f 100644 --- a/week6.md +++ b/week6.md @@ -0,0 +1,17 @@ +# Week 6 Reflections +![View](imgs/week6.png) +[Link to Visualization] + +For this week I looked at an interesting visualization showing a timelapse of version control for an open source project +(Jina). Generally speaking, visualization of version control systems is already reasonably well-developed in the form of +tree graphs to show commit/branch/merge history. However, these graphs have a downside in that they can become very +long/tall and can be less useful when viewing a project with many branches but little activity. While less practical, +this visualization was an interesting way of solving that problem in a somewhat chaotic manor. It shows the current +state of a project at a given point of time. Each dot represents a single commit and each cluster represents a branch. +Lines are then drawn between branches as they are formed. The area where this visualization really excels is in projects +with many branches. Since the primary goal of this visualization was looking cool, it was missing some important +information such as labels for branches and contributors, but this could be fixed for a more practical application. I +believe it could additionally benefit from removing the glow effect and not displaying contributors on the graph area to +reduce clutter. + +[Link to Visualization]: https://www.youtube.com/watch?v=S_LmnlaWhzo \ No newline at end of file