Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added imgs/week6.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
29 changes: 29 additions & 0 deletions week2.md
Original file line number Diff line number Diff line change
@@ -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
23 changes: 23 additions & 0 deletions week3.md
Original file line number Diff line number Diff line change
@@ -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

18 changes: 18 additions & 0 deletions week4.md
Original file line number Diff line number Diff line change
@@ -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
17 changes: 17 additions & 0 deletions week5.md
Original file line number Diff line number Diff line change
@@ -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/
17 changes: 17 additions & 0 deletions week6.md
Original file line number Diff line number Diff line change
@@ -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