diff --git a/content/post/2019-06-12-my-first-week-at-rstudio.Rmd b/content/post/2019-06-12-my-first-week-at-rstudio.Rmd new file mode 100644 index 00000000..d3b6518f --- /dev/null +++ b/content/post/2019-06-12-my-first-week-at-rstudio.Rmd @@ -0,0 +1,64 @@ +--- +title: My First Week at RStudio +author: Maya Gans +date: '2019-06-12' +slug: my-first-week-at-rstudio +categories: + - TidyBlocks +tags: + - TidyBlocks + - JavaScript +subtitle: '' +summary: '' +authors: [] +lastmod: '2019-06-12T12:18:41-06:00' +featured: no +image: + caption: '' + focal_point: '' + preview_only: no +projects: [] +--- + +--- +title: "My First Week at RStudio" +author: "Maya Gans" +date: '2019-06-12' +categories: TidyBlocks +featured: no +image: + caption: '' + focal_point: '' + preview_only: no +lastmod: '2019-06-12T12:00:59-06:00' +projects: [] +slug: my-first-week-at-rstudio +subtitle: '' +summary: '' +tags: +- JavaScript +- TidyBlocks +authors: [] +--- + +This past week was my first as an intern at RStudio where I’m designing a prototype for a visual programming language: a block-based version of the Tidyverse. Prior to my official start date with R Studio, I spent my summer familiarizing myself with JavaScript and design considerations when building a user interface. + +![](../../static/img/my-first-week/img1.png) + +The end goal of the internship is obvious: a working proof of concept where I envision each block as a step in a chain of Tidy functions. I started off the week identifying the task of creating a single functional block and only later in the week did I realize how important this would be. + +My first pass reading the blockly documentation was overwhelming, but after running through a concrete tutorial I could tinker with I began to understand the block architecture. I realized every block has three components: it’s physical shape, the JavaScript code under the hood (its **generator function**) and an xml script to include the block within the toolbox of available blocks. + +![](../../static/img/my-first-week/img2.png) + +Google provides a “Block Factory” a block-based program to create the physical block shapes (I know, meta) and easy to follow documentation on how to add the block to the toolbox. Following along with the documentation (adding some of my own CSS mustard) I created a UI for my block playground and to display the code output. [I’m tinkering with making this in the style of RStudio, and avoiding any color scheme that would convey block based coding is juvenile.] One day in and I had a canvass to create blocks on! + +But as soon as my objectives became more personalized (alright, I have an idea of how the data frame block should look and how to add it to my toolbox… now how the hell do I get the data into a block?) my progress came to a halt. It was time to generate the generator code. I love coding because of those tiny victories when the error codes no longer show up. I can problem solve and practice being comfortable with the uncomfortable. But it also makes me crazy. I spent the next day breaking demo apps and trying to apply the data-forge.js logic to a single block. The next day I started to panic. This internship is short, how much time do I have to troubleshoot? How much time do I budget to tinkering and trying to problem solve? I want to prove myself, but how stuck should one be before reaching out? Failure is part of the process but for how long? I decided either once I exhaust my ideas or by the end of day I’ll reach out for help. One of the amazing things about R is the community and how no question is too small, but ego and pride can get in the way of asking. + +Just addressing my frustrations with Greg (and perhaps the new eyes of a fresh day) were enough to figure out how to add the data to the block! By Thursday I had a block containing two columns of data, one a string and the other numeric. I also created a second, filter block whose inputs are the column from the dataframe, the operation to apply, and the pr. + +![](../../static/img/my-first-week/img3.png) + +But here’s the cliff hanger – I had to add the dataframe to the filter block to have it work, realizing an important gap I need to address next week: HOW do blocks talk to one another? Can I relay a mental model of where blockly global variables live and how to access them? + +On a project in a field where there’s always more to do and more to learn, I ended the week feeling like a rock star that I had two blocks instead of one within an environment where the code can be displayed, and I overcame my first code writing block. It would have been easy to end the week thinking about the big picture and how much I need to do in the allotted time frame of the internship but instead I went into the weekend excited to take on my next challenge! \ No newline at end of file diff --git a/content/post/2019-06-12-my-first-week-at-rstudio.html b/content/post/2019-06-12-my-first-week-at-rstudio.html new file mode 100644 index 00000000..be4794b0 --- /dev/null +++ b/content/post/2019-06-12-my-first-week-at-rstudio.html @@ -0,0 +1,44 @@ +--- +title: My First Week at RStudio +author: Maya Gans +date: '2019-06-12' +slug: my-first-week-at-rstudio +categories: + - TidyBlocks +tags: + - TidyBlocks + - JavaScript +subtitle: '' +summary: '' +authors: [] +lastmod: '2019-06-12T12:18:41-06:00' +featured: no +image: + caption: '' + focal_point: '' + preview_only: no +projects: [] +--- + + + +
This past week was my first as an intern at RStudio where I’m designing a prototype for a visual programming language: a block-based version of the Tidyverse. Prior to my official start date with R Studio, I spent my summer familiarizing myself with JavaScript and design considerations when building a user interface.
+The end goal of the internship is obvious: a working proof of concept where I envision each block as a step in a chain of Tidy functions. I started off the week identifying the task of creating a single functional block and only later in the week did I realize how important this would be.
+My first pass reading the blockly documentation was overwhelming, but after running through a concrete tutorial I could tinker with I began to understand the block architecture. I realized every block has three components: it’s physical shape, the JavaScript code under the hood (its generator function) and an xml script to include the block within the toolbox of available blocks.
+Google provides a “Block Factory” a block-based program to create the physical block shapes (I know, meta) and easy to follow documentation on how to add the block to the toolbox. Following along with the documentation (adding some of my own CSS mustard) I created a UI for my block playground and to display the code output. [I’m tinkering with making this in the style of RStudio, and avoiding any color scheme that would convey block based coding is juvenile.] One day in and I had a canvass to create blocks on!
+But as soon as my objectives became more personalized (alright, I have an idea of how the data frame block should look and how to add it to my toolbox… now how the hell do I get the data into a block?) my progress came to a halt. It was time to generate the generator code. I love coding because of those tiny victories when the error codes no longer show up. I can problem solve and practice being comfortable with the uncomfortable. But it also makes me crazy. I spent the next day breaking demo apps and trying to apply the data-forge.js logic to a single block. The next day I started to panic. This internship is short, how much time do I have to troubleshoot? How much time do I budget to tinkering and trying to problem solve? I want to prove myself, but how stuck should one be before reaching out? Failure is part of the process but for how long? I decided either once I exhaust my ideas or by the end of day I’ll reach out for help. One of the amazing things about R is the community and how no question is too small, but ego and pride can get in the way of asking.
+Just addressing my frustrations with Greg (and perhaps the new eyes of a fresh day) were enough to figure out how to add the data to the block! By Thursday I had a block containing two columns of data, one a string and the other numeric. I also created a second, filter block whose inputs are the column from the dataframe, the operation to apply, and the pr.
+But here’s the cliff hanger – I had to add the dataframe to the filter block to have it work, realizing an important gap I need to address next week: HOW do blocks talk to one another? Can I relay a mental model of where blockly global variables live and how to access them?
+On a project in a field where there’s always more to do and more to learn, I ended the week feeling like a rock star that I had two blocks instead of one within an environment where the code can be displayed, and I overcame my first code writing block. It would have been easy to end the week thinking about the big picture and how much I need to do in the allotted time frame of the internship but instead I went into the weekend excited to take on my next challenge!
diff --git a/resources/_gen/images/home/gallery/gallery/theme-1950s_huaf5482f8cea0c5a703a328640e3b7509_21614_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-1950s_huaf5482f8cea0c5a703a328640e3b7509_21614_0x190_resize_lanczos_2.png deleted file mode 100644 index 0df5c7a7..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-1950s_huaf5482f8cea0c5a703a328640e3b7509_21614_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-apogee_hu4b45d99db97150df01464c393bfd17d4_24119_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-apogee_hu4b45d99db97150df01464c393bfd17d4_24119_0x190_resize_lanczos_2.png deleted file mode 100644 index af446231..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-apogee_hu4b45d99db97150df01464c393bfd17d4_24119_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-coffee-playfair_hu446a8f670cc5622adcc77b97ba95f6c5_22462_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-coffee-playfair_hu446a8f670cc5622adcc77b97ba95f6c5_22462_0x190_resize_lanczos_2.png deleted file mode 100644 index a8a1a111..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-coffee-playfair_hu446a8f670cc5622adcc77b97ba95f6c5_22462_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-cupcake_hueba8cfa8cfbc7543924fcbf387a99e92_23986_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-cupcake_hueba8cfa8cfbc7543924fcbf387a99e92_23986_0x190_resize_lanczos_2.png deleted file mode 100644 index 0c7aed2a..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-cupcake_hueba8cfa8cfbc7543924fcbf387a99e92_23986_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-dark_hu1e8601ecc47f58eada7743fdcd709d3d_21456_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-dark_hu1e8601ecc47f58eada7743fdcd709d3d_21456_0x190_resize_lanczos_2.png deleted file mode 100644 index b9f8a6f0..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-dark_hu1e8601ecc47f58eada7743fdcd709d3d_21456_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-default_huba6228b7bdf30e2f03f12ea91b2cba0d_21751_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-default_huba6228b7bdf30e2f03f12ea91b2cba0d_21751_0x190_resize_lanczos_2.png deleted file mode 100644 index e4783eba..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-default_huba6228b7bdf30e2f03f12ea91b2cba0d_21751_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-forest_hu4f093a1c683134431456584193ea41ee_21797_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-forest_hu4f093a1c683134431456584193ea41ee_21797_0x190_resize_lanczos_2.png deleted file mode 100644 index 3f7c3cca..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-forest_hu4f093a1c683134431456584193ea41ee_21797_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/home/gallery/gallery/theme-ocean_hu14831ccafc2219f30a7a096fa7617e01_21760_0x190_resize_lanczos_2.png b/resources/_gen/images/home/gallery/gallery/theme-ocean_hu14831ccafc2219f30a7a096fa7617e01_21760_0x190_resize_lanczos_2.png deleted file mode 100644 index 7e3c790e..00000000 Binary files a/resources/_gen/images/home/gallery/gallery/theme-ocean_hu14831ccafc2219f30a7a096fa7617e01_21760_0x190_resize_lanczos_2.png and /dev/null differ diff --git a/resources/_gen/images/project/external-project/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_329522_550x0_resize_q90_lanczos.jpg b/resources/_gen/images/project/external-project/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_329522_550x0_resize_q90_lanczos.jpg deleted file mode 100644 index ecb13a34..00000000 Binary files a/resources/_gen/images/project/external-project/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_329522_550x0_resize_q90_lanczos.jpg and /dev/null differ diff --git a/resources/_gen/images/project/internal-project/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_224363_550x0_resize_q90_lanczos.jpg b/resources/_gen/images/project/internal-project/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_224363_550x0_resize_q90_lanczos.jpg deleted file mode 100644 index aa808928..00000000 Binary files a/resources/_gen/images/project/internal-project/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_224363_550x0_resize_q90_lanczos.jpg and /dev/null differ diff --git a/resources/_gen/images/publication/conference-paper/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_312700_918x517_fill_q90_lanczos_smart1.jpg b/resources/_gen/images/publication/conference-paper/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_312700_918x517_fill_q90_lanczos_smart1.jpg deleted file mode 100644 index 6a01d7c2..00000000 Binary files a/resources/_gen/images/publication/conference-paper/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_312700_918x517_fill_q90_lanczos_smart1.jpg and /dev/null differ diff --git a/resources/_gen/images/publication/journal-article/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_214168_150x0_resize_q90_lanczos.jpg b/resources/_gen/images/publication/journal-article/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_214168_150x0_resize_q90_lanczos.jpg deleted file mode 100644 index 07f515fe..00000000 Binary files a/resources/_gen/images/publication/journal-article/featured_hu3d03a01dcc18bc5be0e67db3d8d209a6_214168_150x0_resize_q90_lanczos.jpg and /dev/null differ diff --git a/static/img/my-first-week/img1.png b/static/img/my-first-week/img1.png new file mode 100644 index 00000000..434d04f5 Binary files /dev/null and b/static/img/my-first-week/img1.png differ diff --git a/static/img/my-first-week/img2.png b/static/img/my-first-week/img2.png new file mode 100644 index 00000000..c2e624d5 Binary files /dev/null and b/static/img/my-first-week/img2.png differ diff --git a/static/img/my-first-week/img3.png b/static/img/my-first-week/img3.png new file mode 100644 index 00000000..b9d63ef1 Binary files /dev/null and b/static/img/my-first-week/img3.png differ