<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Alexey Zagalsky</title>
    <description>Software Engineering Researcher
</description>
    <link>https://alexeyza.com/</link>
    <atom:link href="https://alexeyza.com/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Tue, 14 Nov 2023 15:04:11 +0000</pubDate>
    <lastBuildDate>Tue, 14 Nov 2023 15:04:11 +0000</lastBuildDate>
    <generator>Jekyll v3.9.3</generator>
    
      <item>
        <title>Teaching Information Visualization</title>
        <description>&lt;p&gt;I see information visualization as one of the most fascinating and important areas, particularly useful for researchers and people who work with data. From cases like &lt;a href=&quot;https://en.wikipedia.org/wiki/Charles_Joseph_Minard&quot;&gt;Charles Minard’s&lt;/a&gt; map of Napoleon’s campaign of 1812, and &lt;a href=&quot;https://en.wikipedia.org/wiki/1854_Broad_Street_cholera_outbreak&quot;&gt;John Snow’s cholera outbreak  map&lt;/a&gt; of London 1854, we can see examples how visual articulation of data can impact the world. If I were to teach an InfoVis course, I would use the following material and tools.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;books&quot;&gt;Books&lt;/h2&gt;

&lt;p&gt;I can’t think of a specific book that can serve as the course textbook. Hence, I’m recommending multiple sources of material.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/article_images/2018-01-08-teaching-information-visulization/minard_lg.gif&quot; alt=&quot;Charles Minard's map of Napoleon's disastrous Russian campaign of 1812. The graphic is notable for its representation in two dimensions of six types of data: the number of Napoleon's troops; distance; temperature; the latitude and longitude; direction of travel; and location relative to specific dates. (source: Wikipedia)&quot; title=&quot;Minard's map of Napoleon's Russian campaign of 1812&quot; /&gt;&lt;/p&gt;

&lt;p&gt;One book that’s worth covering is Edward Tufte’s &lt;a href=&quot;https://www.edwardtufte.com/tufte/books_vdqi&quot;&gt;“The Visual Display of Quantitative Information”&lt;/a&gt; book. It focuses on comprehensible and usable design, concisely and clearly articulating core principles. It includes many good examples (including examples of poor design).&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Graphical excellence is the well-designed presentation of interesting data—a matter of substance, of statistics, and of design.”&lt;/p&gt;

  &lt;p&gt;— Edward R. Tufte”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;Tamara Munzner’s book, &lt;a href=&quot;http://www.cs.ubc.ca/~tmm/vadbook/&quot;&gt;“Visualization Analysis and Design”&lt;/a&gt;, does a great job in providing and framing the proper terminology for learning about and discussing InfoVis topics (Figure 2.1 of the book shows a summary of this framework). While, Tamara’s book would work great as a reference book, I don’t think it should be used as the only textbook.&lt;/p&gt;

&lt;center&gt;
&lt;img src=&quot;/assets/article_images/2018-01-08-teaching-information-visulization/priestley_chart_of_biography.jpg&quot; alt=&quot;Joseph Priestley's Chart of Biography from 1765. His work has reached a huge audience, and among many others, it has influenced William Playfair.&quot; /&gt;
&lt;/center&gt;

&lt;p&gt;Additional material that may be worth covering or providing as recommended reading: &lt;a href=&quot;https://www.edwardtufte.com/tufte/books_ei&quot;&gt;“Envisioning Information”&lt;/a&gt; by Edward Tufte, &lt;a href=&quot;https://www.amazon.com/Visual-Thinking-Design-Colin-Ware/dp/0123708966&quot;&gt;“Visual Thinking for Design”&lt;/a&gt; by Colin Ware, and &lt;a href=&quot;http://www.thefunctionalart.com/&quot;&gt;“The Functional Art”&lt;/a&gt; by Alberto Cairo.&lt;br /&gt;
For aspects of interaction, the paper &lt;a href=&quot;https://dl.acm.org/citation.cfm?id=1313151&quot;&gt;“Toward a Deeper Understanding of the Role of Interaction in Information Visualization”&lt;/a&gt; may serve as a helpful starting point (by Yi &lt;em&gt;et al.&lt;/em&gt; 2007).&lt;/p&gt;

&lt;p&gt;Additionally, I suggest taking a look at the interesting &lt;a href=&quot;https://www.atlasobscura.com/articles/the-scottish-scoundrel-who-changed-how-we-see-data&quot;&gt;story of William Playfair&lt;/a&gt;, the inventor of the pie chart, the bar graph, and the line graph. &lt;a href=&quot;http://www.eugenewei.com/blog/2017/11/13/remove-the-legend&quot;&gt;Eugene Wei’s depiction of his job at Amazon&lt;/a&gt; as the first analyst in the strategic planning department is also worth reading.&lt;/p&gt;

&lt;p&gt;An upcoming new book is &lt;a href=&quot;http://serialmentor.com/dataviz/&quot;&gt;“Fundamentals of Data Visualization”&lt;/a&gt; by Claus O. Wilke. The book seems to be quite comprehensive, fully accessible online, and is entirely written in R Markdown.&lt;/p&gt;

&lt;center&gt;
&lt;img src=&quot;/assets/article_images/2018-01-08-teaching-information-visulization/j_bertin.jpg&quot; width=&quot;60%&quot; height=&quot;60%&quot; alt=&quot;Jacques Bertin's mechanical reorderable matrix from 1968. A great example of making data physical.&quot; /&gt;
&lt;/center&gt;

&lt;p&gt;No matter what kind of data needs to be visualized, an important question to ask oneself is: are you &lt;em&gt;communicating information&lt;/em&gt;, &lt;em&gt;displaying an analysis&lt;/em&gt;, or &lt;em&gt;exploring data&lt;/em&gt;? For instance, Scott Berinato described &lt;a href=&quot;https://hbr.org/2016/06/visualizations-that-really-work&quot;&gt;four types of visual communication&lt;/a&gt; (idea illustration, idea generation, visual discovery, and everyday dataviz). Even something as basic as a table can be improved—not by adding more visual cues, but &lt;a href=&quot;http://www.darkhorseanalytics.com/blog/clear-off-the-table&quot;&gt;by removing unnecessary visual clutter&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/article_images/2018-01-08-teaching-information-visulization/1024px-Playfair_TimeSeries-2.png&quot; alt=&quot;A line graph showing England and Scandinavia's import-export balance for the 18th century, from William Playfair's 1786’s Political and Commercial Atlas.&quot; title=&quot;Playfair's line graph from 1786&quot; /&gt;&lt;/p&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;center&gt;
&lt;img src=&quot;/assets/article_images/2018-01-08-teaching-information-visulization/nightingale-mortality.jpg&quot; alt=&quot;Florence Nightingale's 1858 diagram of the causes of mortality in the army (source: Wikipedia). She's credited with developing the polar area diagram chart.&quot; /&gt;
&lt;/center&gt;

&lt;p&gt;For more modern examples, the &lt;a href=&quot;https://www.informationisbeautifulawards.com/showcase?award=2017&amp;amp;type=awards&quot;&gt;“Information is Beautiful” Awards&lt;/a&gt; website showcases interesting award winning examples. These projects were awarded for excellence and beauty in data visualizations.&lt;/p&gt;

&lt;h2 id=&quot;software-and-tools&quot;&gt;Software and Tools&lt;/h2&gt;

&lt;p&gt;These are commonly used tools that I find useful:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Visualizations with R and &lt;a href=&quot;https://www.rstudio.com/products/rstudio/download/#download&quot;&gt;R Studio&lt;/a&gt; (and packages like &lt;a href=&quot;http://ggplot2.org/&quot;&gt;ggplot2&lt;/a&gt;). Related to visualizations in R, check out the book &lt;a href=&quot;http://zuguang.de/circlize_book/book/&quot;&gt;“Circular Visualization in R”&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;A &lt;a href=&quot;http://r-statistics.co/Top50-Ggplot2-Visualizations-MasterList-R-Code.html&quot;&gt;list of 50 ggplot2 visualizations&lt;/a&gt; (with corresponding R code)&lt;/li&gt;
  &lt;li&gt;The &lt;a href=&quot;https://d3js.org/&quot;&gt;D3.js&lt;/a&gt; library is a great JS library for creating visualizations. It’s commonly used and is very customizable. Related to D3, the books &lt;a href=&quot;https://medium.com/@Elijah_Meeks/d3-js-in-action-second-edition-8cf7ffa2a116&quot;&gt;“D3.js in Action”&lt;/a&gt; by Elijah Meeks, and &lt;a href=&quot;http://chimera.labs.oreilly.com/books/1230000000345/index.html&quot;&gt;“Interactive Data Visualization for the Web”&lt;/a&gt; by Scott Murray, are exceptionally good (and very practical).&lt;/li&gt;
  &lt;li&gt;Tableau or &lt;a href=&quot;https://public.tableau.com/s/&quot;&gt;Tableau Public&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;The &lt;a href=&quot;http://www.datavizcatalogue.com/&quot;&gt;data visualization catalogue&lt;/a&gt;, the &lt;a href=&quot;http://datavizproject.com/&quot;&gt;data viz project&lt;/a&gt;, and &lt;a href=&quot;https://xeno.graphics/&quot;&gt;Xenographics&lt;/a&gt;: for choosing the type of visualizations to use&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;inspirational-people-in-the-field&quot;&gt;Inspirational People in the Field&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;http://hadley.nz/&quot;&gt;Hadley Wickham&lt;/a&gt; is a statistician from New Zealand who is currently Chief Scientist at RStudio. He has developed several notable and widely adopted R packages including &lt;a href=&quot;http://ggplot2.org/&quot;&gt;ggplot2&lt;/a&gt;, plyr, dplyr, and reshape2.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://varianceexplained.org/&quot;&gt;David Robinson&lt;/a&gt; is the Chief Data Scientist at DataCamp (previously a data scientist at Stack Overflow), and the co-author with &lt;a href=&quot;https://juliasilge.com/&quot;&gt;Julia Silge&lt;/a&gt; of the &lt;a href=&quot;https://github.com/juliasilge/tidytext&quot;&gt;Tidytext package for R&lt;/a&gt;. He writes an awesome blog on data analysis and visualization.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;http://giorgialupi.com/&quot;&gt;Giorgia Lupi&lt;/a&gt; is an award winning information designer. I find her work to be inspirational and superb. I highly recommend her &lt;a href=&quot;https://www.ted.com/talks/giorgia_lupi_how_we_can_find_ourselves_in_data&quot;&gt;TED talk&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href=&quot;https://www.visualcinnamon.com/&quot;&gt;Nadieh Bremer&lt;/a&gt; is an award-winning data visualization designer, with an interesting background as an astronomer and a data scientist. Interestingly, she has shared &lt;a href=&quot;https://www.visualcinnamon.com/resources/visualization-resources&quot;&gt;a list of resources&lt;/a&gt; and &lt;a href=&quot;https://www.visualcinnamon.com/resources/learning-data-visualization/books&quot;&gt;a compilation of recommended books&lt;/a&gt;, with a short review and her thoughts on the usefulness of each book. If you wish to learn more about data visualization, I recommend checking it out.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/article_images/2018-01-08-teaching-information-visulization/giorgia_lupi.jpg&quot; alt=&quot;A postcard from the Dear Data project, a year-long, analog data drawing project by Giorgia Lupi and Stefanie Posavec.&quot; title=&quot;A postcard from the Dear Data project by Giorgia Lupi and Stefanie Posavec&quot; /&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;I’d love to add additional material that can be of help to others. If you’ve taught or taken an InfoVis course—what material did &lt;strong&gt;you&lt;/strong&gt; use or have found useful?&lt;/p&gt;

&lt;center&gt;
&lt;blockquote class=&quot;twitter-tweet&quot; data-conversation=&quot;none&quot; data-lang=&quot;en&quot;&gt;&lt;p lang=&quot;en&quot; dir=&quot;ltr&quot;&gt;We also use this paper in our InfoVis course: &lt;a href=&quot;https://t.co/oe4Ayqhj9j&quot;&gt;https://t.co/oe4Ayqhj9j&lt;/a&gt;&lt;/p&gt;&amp;mdash; Sebastian Baltes (@s_baltes) &lt;a href=&quot;https://twitter.com/s_baltes/status/950997710856998912?ref_src=twsrc%5Etfw&quot;&gt;January 10, 2018&lt;/a&gt;&lt;/blockquote&gt;
&lt;script async=&quot;&quot; src=&quot;https://platform.twitter.com/widgets.js&quot; charset=&quot;utf-8&quot;&gt;&lt;/script&gt;
&lt;/center&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; &lt;a href=&quot;https://twitter.com/alexeyzagalsky&quot;&gt;I’d love to meet you on Twitter.&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Mon, 08 Jan 2018 17:44:18 +0000</pubDate>
        <link>https://alexeyza.com/blog/2018/01/08/teaching-information-visulization/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2018/01/08/teaching-information-visulization/</guid>
        
        
        <category>Information Visualization</category>
        
        <category>Teaching</category>
        
        <category>Data</category>
        
      </item>
    
      <item>
        <title>My Toolbox</title>
        <description>&lt;p&gt;As a researcher, I use a variety of software tools on a regular basis, and I’d like to share this list of tools here.&lt;/p&gt;

&lt;!--more--&gt;
&lt;p&gt;&lt;br /&gt;&lt;/p&gt;

&lt;h3 id=&quot;writing-and-collaborating-on-papers&quot;&gt;Writing and Collaborating on Papers&lt;/h3&gt;

&lt;p&gt;For writing papers, I use &lt;a href=&quot;https://www.sublimetext.com/&quot;&gt;Sublime Text 3&lt;/a&gt; with the &lt;a href=&quot;https://latextools.readthedocs.io/en/latest/&quot;&gt;LaTeXTools&lt;/a&gt; package installed. This allows me to edit and compile the document directly from ST3. I have the same setup with the &lt;a href=&quot;https://atom.io/&quot;&gt;Atom&lt;/a&gt; editor as well, and both work well.&lt;/p&gt;

&lt;p&gt;For collaborating on papers, I prefer to use &lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; and host the source files (e.g., &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;tex&lt;/code&gt;,&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;bib&lt;/code&gt;) in a repository dedicated for the paper. I believe this gives each co-author the freedom to choose and set up their own work environment and tools (as opposed to something like &lt;a href=&quot;https://www.sharelatex.com/&quot;&gt;ShareLaTeX&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Typically when starting to work on a paper, we use &lt;a href=&quot;https://www.google.com/docs/about/&quot;&gt;Google Docs&lt;/a&gt; to draft out an outline for the paper and reach an agreement on the direction of the paper. The commenting mechanism on Google Docs works well and supports brainstorming.&lt;/p&gt;

&lt;p&gt;Other tools I typically use:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.ctan.org/pkg/latexdiff&quot;&gt;LatexDiff&lt;/a&gt;, a command line tool, for generating visual diffs between compiled documents. Useful when outlining changes to reviewers between revisions. Similarly, &lt;a href=&quot;https://gitlab.com/git-latexdiff/git-latexdiff&quot;&gt;Git-LatexDiff&lt;/a&gt; aims to generate a diff and simplify the process even further&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://abstractformatter.inventitech.com/&quot;&gt;AbstractFormater&lt;/a&gt; for formating text. Very useful, especially for paper submissions&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://hsborges.github.io/bibtex-normalizer/&quot;&gt;BibTex normalizer&lt;/a&gt; for cleaning up the bibtex file&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.doi2bib.org/#/doi&quot;&gt;doi2bib.org&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://chrome.google.com/webstore/detail/ezproxy-redirect/gfhnhcbpnnnlefhobdnmhenofhfnnfhi?hl=en&quot;&gt;EZProxy plugin&lt;/a&gt; for accessing academic papers from outside of the university’s network&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://octobox.io/&quot;&gt;Octobox&lt;/a&gt; for managing GitHub notifications&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://draftin.com&quot;&gt;Draft&lt;/a&gt;: a writing tool that I find helpful in overcoming writer’s block&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;preprints-and-study-data-sharing&quot;&gt;Preprints and Study Data Sharing&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://zenodo.org/&quot;&gt;Zenodo&lt;/a&gt;: for sharing data from our studies (e.g., replication package)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://arxiv.org/&quot;&gt;arXiv&lt;/a&gt;: for preprints or papers that are not archived elsewhere&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;english-prose&quot;&gt;English Prose&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.grammarly.com/&quot;&gt;Grammarly&lt;/a&gt;: is an English-language writing aid for the browser&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/amperser/proselint&quot;&gt;Proselint&lt;/a&gt;: works well with text and markdown files in Sublime Text and Visual Studio Code (no Latex support though)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/btford/write-good&quot;&gt;Write-good&lt;/a&gt;: a prose linter extension for developers&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;team-communication&quot;&gt;Team Communication&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://slack.com/&quot;&gt;Slack&lt;/a&gt;: most of our group’s communication happens on Slack, though we may switch to &lt;a href=&quot;https://about.mattermost.com/&quot;&gt;Mattermost&lt;/a&gt; later this year&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keybase.io/&quot;&gt;Keybase&lt;/a&gt;: it’s like a combination between Slack and Dropbox, that also leverages cryptography.&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.skype.com/en/&quot;&gt;Skype&lt;/a&gt;: video calls when we’re not co-located&lt;/li&gt;
  &lt;li&gt;Email&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;schedule-and-time-tracking&quot;&gt;Schedule and Time Tracking&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/calendar&quot;&gt;Google Calendar&lt;/a&gt;: we share a group calendar to coordinate our schedule&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;keeping-up-to-date&quot;&gt;Keeping Up To Date&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://twitter.com/&quot;&gt;Twitter&lt;/a&gt; + &lt;a href=&quot;https://buffer.com/&quot;&gt;Buffer&lt;/a&gt;: following research-related people and products. I try to keep the number of people I follow at a manageable number (~150)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://tweetdeck.twitter.com/&quot;&gt;TweetDeck&lt;/a&gt;: catching up with conference/event tweets&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://scholar.google.ca/&quot;&gt;Google Scholar&lt;/a&gt; updates and alerts&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://news.ycombinator.com/news&quot;&gt;HackerNews&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://feedly.com/&quot;&gt;Feedly&lt;/a&gt;: to keep up with blogs (e.g., &lt;a href=&quot;http://blog.ieeesoftware.org/&quot;&gt;http://blog.ieeesoftware.org/&lt;/a&gt;) and tech news&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://play.google.com/store/apps/details?id=com.bambuna.podcastaddict&amp;amp;hl=en&quot;&gt;Podcast Addict&lt;/a&gt;: I subscribe to helpful and related podcasts (e.g., &lt;a href=&quot;https://effortreport.libsyn.com/&quot;&gt;effortreport.libsyn.com&lt;/a&gt;, &lt;a href=&quot;http://www.changingacademiclife.com/start/&quot;&gt;changingacademiclife.com&lt;/a&gt;, and &lt;a href=&quot;https://changelog.com/rfc&quot;&gt;changelog.com/rfc&lt;/a&gt;)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.youtube.com/&quot;&gt;YouTube&lt;/a&gt;: following research-related people and channels&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;knowledge-management-and-to-dos&quot;&gt;Knowledge Management and To-Dos&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;GitHub + Markdown files&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://keep.google.com/&quot;&gt;Google Keep&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://trello.com/&quot;&gt;Trello&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;presentation-slides&quot;&gt;Presentation Slides&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.ca/slides/about/&quot;&gt;Google Slides&lt;/a&gt;: for creating slides. I also use Google slides as a brainstorming tool when starting to design a study/paper&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://speakerdeck.com/&quot;&gt;Speaker Deck&lt;/a&gt;: for sharing my slides&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.pexels.com/&quot;&gt;Pexels&lt;/a&gt; / &lt;a href=&quot;https://unsplash.com/&quot;&gt;Unspalsh&lt;/a&gt; / &lt;a href=&quot;https://pixabay.com/&quot;&gt;Pixabay&lt;/a&gt; / &lt;a href=&quot;https://undraw.co/&quot;&gt;unDraw&lt;/a&gt; / &lt;a href=&quot;https://gallery.manypixels.co/&quot;&gt;ManyPixels&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;posters&quot;&gt;Posters&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;In the past I used PowerPoint to create conference posters, but I’m trying to switch to &lt;a href=&quot;https://inkscape.org/en/&quot;&gt;Inkscape&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;collecting-data-from-surveys-and-interviews&quot;&gt;Collecting Data from Surveys and Interviews&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.ca/forms/about/&quot;&gt;Google Forms&lt;/a&gt;: for conducting surveys&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://obsproject.com/&quot;&gt;Open Broadcaster Software (OBS)&lt;/a&gt;: for recording interviews. The benefit of using OBS is that it works with any communication channel (Skype, Google Hangouts, etc…)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;data-analysis&quot;&gt;Data Analysis&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/sheets/about/&quot;&gt;Google Sheets&lt;/a&gt; and &lt;a href=&quot;https://www.rstudio.com/products/rstudio/download/#download&quot;&gt;R Studio&lt;/a&gt;: for data exploration and analysis&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://rqda.r-forge.r-project.org/&quot;&gt;RQDA&lt;/a&gt;: for qualitative data analysis (coding, memoing, generating themes)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.tidyverse.org/&quot;&gt;Tidyverse&lt;/a&gt;: a set of packages for data science with R&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/datagrip/&quot;&gt;DataGrip&lt;/a&gt;: when data-mining large SQL data sets&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;creating-visualizations&quot;&gt;Creating Visualizations&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;Some visualizations (especially graphs) we create with R and &lt;a href=&quot;https://www.rstudio.com/products/rstudio/download/#download&quot;&gt;R Studio&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://download.draw.io/&quot;&gt;Draw.io&lt;/a&gt;: for diagrams and flowcharts&lt;/li&gt;
  &lt;li&gt;The &lt;a href=&quot;http://www.datavizcatalogue.com/&quot;&gt;data visualization catalogue&lt;/a&gt; and the &lt;a href=&quot;http://datavizproject.com/&quot;&gt;data viz project&lt;/a&gt;: for choosing the type of visualizations to use&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://d3js.org/&quot;&gt;D3 library&lt;/a&gt;: great library for visualizations, very customizable&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://public.tableau.com/s/&quot;&gt;Tableau Public&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;coding-tools--ides&quot;&gt;Coding Tools / IDEs&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://code.visualstudio.com/&quot;&gt;Visual Studio Code&lt;/a&gt;: I recently started using it for learning React, and I really like it, reminds me a lot of Sublime Text&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.eclipse.org/downloads/eclipse-packages/&quot;&gt;Eclipse&lt;/a&gt;: for Java&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/pycharm/&quot;&gt;PyCharm&lt;/a&gt;: for Python&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/webstorm/&quot;&gt;WebStorm&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sublimetext.com/&quot;&gt;Sublime Text 3&lt;/a&gt;: for coding in Go&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.jetbrains.com/datagrip/&quot;&gt;DataGrip&lt;/a&gt;: for exploring SQL databases&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://robomongo.org/&quot;&gt;Robomongo&lt;/a&gt;: for exploring MongoDB databases&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.docker.com/&quot;&gt;Docker&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://insomnia.rest/&quot;&gt;Insomnia&lt;/a&gt;: for working with REST APIs (better than Postman)&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.heroku.com/&quot;&gt;Heroku&lt;/a&gt;: for deploying projects&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://regexr.com/&quot;&gt;RegExr&lt;/a&gt;: for forming and testing regular expressions&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;app--tool-design&quot;&gt;App / Tool Design&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://balsamiq.com/&quot;&gt;Balsamiq&lt;/a&gt;: for low-fidelity mockups&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.invisionapp.com/&quot;&gt;InVision&lt;/a&gt;: for interaction design&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.uxcheck.co/&quot;&gt;UX Check&lt;/a&gt;: for identifying usability issues using Neilsen’s heuristic evaluation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;creating-video-demos&quot;&gt;Creating Video Demos&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://shotcut.org/&quot;&gt;Shotcut&lt;/a&gt;: cross-platform video editing (works great in combination with OBS).&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;user-analytics&quot;&gt;User Analytics&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.google.com/analytics&quot;&gt;Google Analytics&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://mixpanel.com/&quot;&gt;MixPanel&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.hotjar.com/&quot;&gt;Hotjar&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;website&quot;&gt;Website&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://jekyllrb.com/&quot;&gt;Jekyll&lt;/a&gt; + &lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub pages&lt;/a&gt;: for my own personal website&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://ghost.org/&quot;&gt;Ghost&lt;/a&gt;: for our group’s website&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;passwords&quot;&gt;Passwords&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://keepassxc.org/&quot;&gt;KeePassXC&lt;/a&gt; + &lt;a href=&quot;https://chrome.google.com/webstore/detail/chromeipass/ompiailgknfdndiefoaoiligalphfdae?hl=en&quot;&gt;chromeIPass&lt;/a&gt;: for storing and managing my passwords&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://freeotp.github.io/&quot;&gt;Free OTP&lt;/a&gt; + &lt;a href=&quot;https://www.yubico.com/product/yubikey-4-series/&quot;&gt;YubiKey 4&lt;/a&gt;: for two-factor authentication&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;backup&quot;&gt;Backup&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;http://duplicity.nongnu.org/&quot;&gt;Duplicity&lt;/a&gt;: for encrypted local and remote backups&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;running-a-research-seminar&quot;&gt;Running a Research Seminar&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://tinyletter.com/&quot;&gt;TinyLetter&lt;/a&gt;: for managing the seminar’s mailing list&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://pages.github.com/&quot;&gt;GitHub Pages&lt;/a&gt;: for sharing seminar info and schedule&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;course-teaching-and-learning-management-system&quot;&gt;Course Teaching and Learning Management System&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt;: I use GitHub for course material hosting and student assignment submission&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://classroom.github.com/&quot;&gt;GitHub Classroom&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h3 id=&quot;tools-i-wish-i-could-use-but-theyre-mac-only&quot;&gt;Tools I wish I could use, but they’re Mac-only&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.sketchapp.com/&quot;&gt;Sketch&lt;/a&gt;: for high-fidelity design&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.telestream.net/screenflow/overview.htm&quot;&gt;Screen Flow&lt;/a&gt;: for creating and editing app videos and tutorials&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://origami.design/&quot;&gt;Origami Studio&lt;/a&gt;: for mobile interaction design&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.omnigroup.com/omnigraffle&quot;&gt;OmniGraffle&lt;/a&gt;: for diagrams and visualizations&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;p&gt;What tools do &lt;strong&gt;you&lt;/strong&gt; use?&lt;br /&gt;
Any &lt;strong&gt;recommendations&lt;/strong&gt; for other tools I should try?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; &lt;a href=&quot;https://twitter.com/alexeyzagalsky&quot;&gt;I’d love to meet you on Twitter.&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Thu, 07 Sep 2017 20:44:18 +0000</pubDate>
        <link>https://alexeyza.com/blog/2017/09/07/my-toolbox/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2017/09/07/my-toolbox/</guid>
        
        
        <category>Research</category>
        
        <category>Tools</category>
        
      </item>
    
      <item>
        <title>Must-Reads for Doing Qualitative Research in SE</title>
        <description>&lt;p&gt;What papers and books would you consider as &lt;em&gt;must-reads&lt;/em&gt; for software engineering researchers, especially for researchers that do qualitative studies? Here is &lt;em&gt;my list&lt;/em&gt; of readings that I feel are important, seminal, or fundamental for conducting, communicating, and understanding software engineering research. In my opinion, each one of these provides important aspects.&lt;/p&gt;

&lt;!--more--&gt;

&lt;p&gt;In no particular order:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Methodology Matters: Doing research in the Behavioral and Social Sciences&lt;br /&gt;by Joseph E. Mcgrath&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://link.springer.com/chapter/10.1007%2F978-1-84800-044-5_11&quot;&gt;Selecting Empirical Methods for Software Engineering Research&lt;/a&gt;&lt;br /&gt;by Steve Easterbrook &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ieeexplore.ieee.org/abstract/document/1027796/&quot;&gt;Preliminary Guidelines for Empirical Research in Software Engineering&lt;/a&gt;&lt;br /&gt;by Barbara A. Kitchenham &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ieeexplore.ieee.org/abstract/document/799955/&quot;&gt;Qualitative Methods in Empirical Studies of Software Engineering&lt;/a&gt;&lt;br /&gt;by Carolyn B. Seaman&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.ca/Research-Design-Qualitative-Quantitative-Approaches/dp/1452226105&quot;&gt;Research Design: Qualitative, Quantitative, and Mixed Methods Approaches&lt;/a&gt; (4th edition)&lt;br /&gt;by John W. Creswell&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.com/Case-Study-Research-Software-Engineering/dp/1118104358&quot;&gt;Case Study Research in Software Engineering: Guidelines and Examples&lt;/a&gt;&lt;br /&gt;by   Per Runeson &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dl.acm.org/citation.cfm?id=2818759&quot;&gt;Views on Internal and External Validity in Empirical Software Engineering&lt;/a&gt;&lt;br /&gt;by Janet Siegmund &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://journals.sagepub.com/doi/abs/10.1177/1468794112446106&quot;&gt;‘Unsatisfactory Saturation’: A Critical Exploration of the Notion of Saturated Sample Sizes in Qualitative Research&lt;/a&gt;&lt;br /&gt;by Michelle O’Reilly and Nicola Parker&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dl.acm.org/citation.cfm?id=2983574&quot;&gt;The Truth, The Whole Truth, and Nothing But the Truth: A Pragmatic Guide to Assessing Empirical Evaluations&lt;/a&gt;&lt;br /&gt;by Stephen M. Blackburn &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&quot;more-specific-aspects-in-qualitative-research&quot;&gt;More specific aspects in qualitative research:&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.amazon.ca/Constructing-Grounded-Theory-Kathy-Charmaz/dp/0857029142&quot;&gt;Constructing Grounded Theory&lt;/a&gt; (2nd edition)&lt;br /&gt;by Kathy Charmaz&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://dl.acm.org/citation.cfm?id=2884833&quot;&gt;Grounded Theory in Software Engineering Research: A Critical Review and Guidelines&lt;/a&gt;&lt;br /&gt;by Klaas-Jan Stol &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://link.springer.com/article/10.1007%2Fs10664-011-9161-0&quot;&gt;Developing a Grounded Theory to Explain the Practices of Self-Organizing Agile Teams&lt;/a&gt;&lt;br /&gt;by Rashina Hoda &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://link.springer.com/chapter/10.1007%2F978-1-84800-044-5_12#page-1&quot;&gt;Building Theories in Software Engineering&lt;/a&gt;&lt;br /&gt;by Dag I.K. Sjøberg &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://dl.acm.org/citation.cfm?id=263612&quot;&gt;HCI, Natural Science and Design: A Framework for Triangulation Across Disciplines&lt;/a&gt; by Wendy E. Mackay and Anne-Laure Fayard&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://ieeexplore.ieee.org/abstract/document/7387744/&quot;&gt;The Role of Ethnographic Studies in Empirical Software Engineering&lt;/a&gt;&lt;br /&gt;by Helen Sharp &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;http://www.sciencedirect.com/science/article/pii/S0950584917300472&quot;&gt;Taxonomies in Software Engineering: A Systematic Mapping Study and
a Revised Taxonomy Development Method&lt;/a&gt;&lt;br /&gt;by Muhammad Usman &lt;em&gt;et al.&lt;/em&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://journals.sagepub.com/doi/abs/10.1177/1056492610375988&quot;&gt;Counting in Qualitative Research: Why to Conduct it, When to Avoid it, and When to Closet it&lt;/a&gt;&lt;br /&gt;by David R. Hannah and Brenda A. Lautsch&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are many other recommended papers and books (too many to fit in a single blog post), so I tried to list the papers that should apply to most researchers. Have I forgotten to mention an important paper? Please let me know.&lt;/p&gt;

&lt;p&gt;What papers or books do &lt;strong&gt;you&lt;/strong&gt; feel are &lt;em&gt;must-reads&lt;/em&gt;?&lt;br /&gt;
What would &lt;strong&gt;you&lt;/strong&gt; recommend to new software engineering grad students?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; &lt;a href=&quot;https://twitter.com/alexeyzagalsky&quot;&gt;I’d love to meet you on Twitter.&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Wed, 19 Apr 2017 17:44:18 +0000</pubDate>
        <link>https://alexeyza.com/blog/2017/04/19/must-reads-for-qualitative-research-in-se/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2017/04/19/must-reads-for-qualitative-research-in-se/</guid>
        
        
        <category>Software Engineering</category>
        
        <category>Research</category>
        
        <category>Recommended Reading</category>
        
      </item>
    
      <item>
        <title>Operations and Speed in Startups</title>
        <description>&lt;p&gt;In the challenging and demanding world of startups, you may find yourself working hard for many hours, feeling busy but actually accomplishing little and barely “moving the needle”. Operations is not about the hours spent, but on how you work and which things you choose to work on. Many people see two dimensions here: &lt;strong&gt;Strategy&lt;/strong&gt; and &lt;strong&gt;Execution&lt;/strong&gt;. For early stage startups, execution is more about speed, while the strategy is about quality. Speed increases your chance of success and gives you more opportunities for learning before you run out of resources.&lt;/p&gt;

&lt;!--more--&gt;

&lt;blockquote&gt;
  &lt;p&gt;Moving the needle: making a noticeable (and measurable) difference in helping users.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;It’s very common to find yourself working on many things that don’t “move the needle”, so to speak (e.g., refactoring, improving architecture, long-term improvements), but actually this can be a critical mistake for early stage startups (pre-seed, round A). It’s important to focus on doing things that “move the needle”.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“So often people are working hard at the wrong thing. Working on the right thing is probably more important than working hard.”&lt;/p&gt;

  &lt;p&gt;— Caterina Fake, Flickr co-founder&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Consider the &lt;strong&gt;unit of execution&lt;/strong&gt; you aim for (e.g., 1 week, 2 weeks, 1 month) — how often will you do something that moves the needle? This will dictate your work and decision making. A good rule of thumb, is to aim for the company to do something that moves the needle at least once a week or once every two weeks (in fact, ideally, each team member should contribute something that moves the needle in that time frame). If this doesn’t happen, there may be a problem with your strategy or with specific a team member.&lt;/p&gt;

&lt;p&gt;Startups tackle big problems, but it’s very hard to tackle the whole problem. Typically, these big problems consist of many smaller things — so choosing what to focus on is critical. Equally important is to be able to &lt;strong&gt;gauge your speed&lt;/strong&gt;.&lt;/p&gt;

&lt;h2 id=&quot;tools-and-practices-that-help-with-speed&quot;&gt;Tools and Practices that Help with Speed&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Culture of shipping&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;Infrastructure that supports &lt;strong&gt;continuous deployment and shipping&lt;/strong&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Efficient decision making process:&lt;/strong&gt; Sometimes people believe they have to do more research on a topic, that they don’t have enough input, or that they need to reach an agreement or consensus in the team, eventually ending up delaying their decisions. In most cases it’s better to make a decision and change your mind later than to not make a decision. Jeff Bezos &lt;a href=&quot;http://www.businessinsider.com/jeff-bezos-explains-the-perfect-way-to-make-risky-business-decisions-2017-4&quot;&gt;describes this&lt;/a&gt; perfectly in his annual shareholder’s letter.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Focus:&lt;/strong&gt; Work on the most important thing first. Break down the most important thing to its basic layers and focus on the most important component.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Delegation and ownership&lt;/strong&gt;: Allow people on your team to make decisions without the need to seek agreement with everyone.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Most decisions should probably be made with somewhere around 70% of the information you wish you had. If you wait for 90%, in most cases, you’re probably being slow. Plus, either way, you need to be good at quickly recognizing and correcting bad decisions.”&lt;/p&gt;

  &lt;p&gt;— Jeff Bezos, CEO of Amazon&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;p&gt;These insights are based on a &lt;a href=&quot;http://www.shavua.net/307&quot;&gt;podcast discussion&lt;/a&gt; by &lt;a href=&quot;https://twitter.com/eytanlevit&quot;&gt;Eytan Levit&lt;/a&gt; and &lt;a href=&quot;https://twitter.com/_dkatz&quot;&gt;David Katz&lt;/a&gt; (original podcast is in Hebrew). I initially summarized these insights to share with students in my &lt;a href=&quot;https://github.com/alexeyza/startup-programming&quot;&gt;Startup Programming course&lt;/a&gt;, and later decided to share it here, too.&lt;/p&gt;
</description>
        <pubDate>Tue, 07 Feb 2017 21:44:18 +0000</pubDate>
        <link>https://alexeyza.com/blog/2017/02/07/operations-and-speed/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2017/02/07/operations-and-speed/</guid>
        
        
        <category>Startups</category>
        
        <category>Operations</category>
        
        <category>Speed</category>
        
      </item>
    
      <item>
        <title>Setting up a Go Development Environment with Sublime Text</title>
        <description>&lt;p&gt;&lt;img style=&quot;float:left; margin: 8px 20px&quot; src=&quot;/assets/article_images/2016-09-28-setting-up-a-go-development-environment-with-sublimetext/gogo.png&quot; widht=&quot;180&quot; height=&quot;180&quot; title=&quot;Go!&quot; /&gt;&lt;/p&gt;

&lt;p&gt;I really love the &lt;a href=&quot;https://golang.org/&quot;&gt;Go&lt;/a&gt; programming language, it feels like a mix of the best of Java and Python put together. But I found that setting a Go development environment can be slightly tricky, mostly in figuring out how to set up the proper path variables.&lt;/p&gt;

&lt;p&gt;Here, I provide a short guide on how to set up a Go development environment with Sublime Text 3 on Ubuntu/Linux. I hope it saves you (and my future-self) time when installing, updating, or re-installing the development environment.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;installing--updating-go&quot;&gt;Installing / Updating Go&lt;/h2&gt;
&lt;p&gt;If you’re updating a previously installed Go version, you must first delete the older one:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo rm&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-r&lt;/span&gt; /usr/local/go
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Download the latest version of Go archive from &lt;a href=&quot;https://golang.org/dl/&quot;&gt;https://golang.org/dl/&lt;/a&gt; and extract it:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo tar&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-C&lt;/span&gt; /usr/local &lt;span class=&quot;nt&quot;&gt;-xzf&lt;/span&gt; go1.7.1.linux-amd64.tar.gz
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Note: some people use the Go version manager (&lt;a href=&quot;https://github.com/moovweb/gvm&quot;&gt;GVM&lt;/a&gt;) to install and set up Go, a tool similar to &lt;a href=&quot;https://github.com/creationix/nvm&quot;&gt;NVM&lt;/a&gt; which I highly recommend for Node.js, but for Go I prefer to set up everything myself.&lt;/p&gt;

&lt;p&gt;Next, set the PATH environment variables by adding the following to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.bashrc&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Here I use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;home/alexeyza/go&lt;/code&gt; as my workspace (which is &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$HOME/go&lt;/code&gt;), but feel free to change it according to your preference.&lt;/p&gt;

&lt;p&gt;And, create your workspace:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-p&lt;/span&gt; ~/go/src/github.com/alexeyza
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;h2 id=&quot;setting-up-sublime-text&quot;&gt;Setting up Sublime Text&lt;/h2&gt;
&lt;p&gt;Sublime text is my editor of choice for many things, and I highly recommend it for Go. If you don’t have it installed, start by installing &lt;a href=&quot;http://www.webupd8.org/2013/07/sublime-text-3-ubuntu-ppa-now-available.html&quot;&gt;Sublime Text 3&lt;/a&gt;, and installing the &lt;a href=&quot;https://packagecontrol.io/installation&quot;&gt;Package Control&lt;/a&gt; plugin.&lt;/p&gt;

&lt;p&gt;Install &lt;a href=&quot;https://github.com/DisposaBoy/GoSublime&quot;&gt;GoSublime&lt;/a&gt; through package control (&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL+Shift+P&lt;/code&gt;). It’s a Sublime Text plugin that provides Go code completion and other IDE-like features.&lt;/p&gt;

&lt;p&gt;Next, set up the PATH environment variables for Sublime Text. This setting has slightly changed over time (which is why you may find different instruction variations online), but my current set up works with the following settings in &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Preferences -&amp;gt; Package Settings -&amp;gt; GoSublime -&amp;gt; Settings-User&lt;/code&gt;.&lt;br /&gt;
Make sure the GOPATH matches the path configured earlier.&lt;/p&gt;

&lt;div class=&quot;language-json highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;env&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;GOPATH&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;$HOME/go&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
        &lt;/span&gt;&lt;span class=&quot;nl&quot;&gt;&quot;GOROOT&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;w&quot;&gt; &lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;/usr/local/go&quot;&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
    &lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;w&quot;&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Now, save and restart Sublime Text. When you first restart Sublime Text after installing GoSublime, it may take a few seconds to install and set up MarGo.&lt;/p&gt;

&lt;h2 id=&quot;building-and-running-go-code&quot;&gt;Building and Running Go code&lt;/h2&gt;
&lt;p&gt;You can build, compile, and run your code directly from Sublime Text. Use &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL+B&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;CTRL+9&lt;/code&gt; like so:&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/article_images/2016-09-28-setting-up-a-go-development-environment-with-sublimetext/go_hello_world.gif&quot; alt=&quot;Compiling and running within Sublime Text example&quot; /&gt;&lt;/p&gt;

&lt;p&gt;For additional help, type &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;# help&lt;/code&gt; in the Sublime Text console.&lt;/p&gt;

&lt;h2 id=&quot;useful-go-plugins&quot;&gt;Useful Go Plugins&lt;/h2&gt;
&lt;p&gt;Popular Go plugins that work well with GoSublime are &lt;a href=&quot;https://github.com/waigani/GoOracle&quot;&gt;GoOracle&lt;/a&gt;, &lt;a href=&quot;https://godoc.org/golang.org/x/tools/cmd/goimports&quot;&gt;GoImports&lt;/a&gt;, and &lt;a href=&quot;https://godoc.org/golang.org/x/tools/cmd/godoc&quot;&gt;GoDoc&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can install them with:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;go get &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; golang.org/x/tools/cmd/oracle
go get &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; golang.org/x/tools/cmd/goimports
go get &lt;span class=&quot;nt&quot;&gt;-u&lt;/span&gt; golang.org/x/tools/cmd/godoc
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Read more &lt;a href=&quot;https://www.wolfe.id.au/2015/03/05/using-sublime-text-for-go-development/&quot;&gt;here&lt;/a&gt; on how to configure these plugins to work with GoSublime.&lt;/p&gt;

&lt;h2 id=&quot;programming-with-go&quot;&gt;Programming with Go&lt;/h2&gt;
&lt;p&gt;A great starting point is the &lt;a href=&quot;https://www.golang-book.com/books/intro&quot;&gt;Introduction to Programming in Go&lt;/a&gt; book by Caleb Doxsey, and the &lt;a href=&quot;https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw&quot;&gt;JustForFunc: Programming in Go channel&lt;/a&gt; on YouTube.&lt;/p&gt;

&lt;h2 id=&quot;update-an-up-and-coming-go-ide&quot;&gt;Update: An Up and Coming Go IDE&lt;/h2&gt;
&lt;p&gt;There is a new and cool looking Go IDE, &lt;a href=&quot;https://www.jetbrains.com/go/&quot;&gt;Gogland&lt;/a&gt;, created by Jetbrains (the company behind the awesome &lt;a href=&quot;https://www.jetbrains.com/idea/&quot;&gt;IntelliJ&lt;/a&gt; and &lt;a href=&quot;https://www.jetbrains.com/pycharm/&quot;&gt;PyCharm&lt;/a&gt;). Check out the early build on their website.&lt;/p&gt;
</description>
        <pubDate>Wed, 28 Sep 2016 22:44:18 +0000</pubDate>
        <link>https://alexeyza.com/blog/2016/09/28/setting-up-a-go-development-environment-with-sublimetext/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2016/09/28/setting-up-a-go-development-environment-with-sublimetext/</guid>
        
        
        <category>Go</category>
        
        <category>guide</category>
        
        <category>Sublime text</category>
        
      </item>
    
      <item>
        <title>Getting Started with Node.js</title>
        <description>&lt;p&gt;&lt;img style=&quot;float:left; margin: 8px 20px&quot; src=&quot;/assets/article_images/2015-09-28-getting-started-with-node-dot-js/nodejs.png&quot; widht=&quot;180&quot; height=&quot;180&quot; title=&quot;Node.js&quot; /&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href=&quot;https://nodejs.org/en/&quot;&gt;Node.js&lt;/a&gt; project and its community have undergone major changes in recent years, among which is the forking of the project (and perhaps the community itself). This situation causes confusion for newcomers, who find themselves with compatibility issues and difficulties in setting up a working and up-to-date environment.&lt;/p&gt;

&lt;p&gt;In this post, I show how to get the recent version of Node.js on a Linux OS in an easy way.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;what-is-nodejs&quot;&gt;What is Node.JS?&lt;/h2&gt;
&lt;p&gt;Node.js is an event-driven I/O &lt;strong&gt;server-side&lt;/strong&gt; (backend) JavaScript environment based on Chrome’s V8 JavaScript engine. It is considered a very popular backend environment, and it uses &lt;a href=&quot;https://www.npmjs.com/&quot;&gt;NPM&lt;/a&gt;, the best package manager in my opinion (however, we’ll leave the discussion on what makes NPM so good for a different post).&lt;/p&gt;

&lt;p&gt;At some point, Node.js &lt;a href=&quot;http://anandmanisankar.com/posts/nodejs-iojs-why-the-fork/&quot;&gt;was forked&lt;/a&gt; into two projects: &lt;strong&gt;Node.js&lt;/strong&gt; and &lt;strong&gt;IO.js&lt;/strong&gt;, causing compatibility issues and disputes in the community. While recently, these projects have been &lt;a href=&quot;http://www.infoworld.com/article/2960452/javascript/unforked-iojs-v3-sets-stage-for-nodejs-merger.html&quot;&gt;merged back&lt;/a&gt; with Node v4.x.&lt;/p&gt;

&lt;p&gt;However, not everyone have caught on with the recent changes (which at some point should be a thing of the past). My OS of choice, Ubuntu, only supports &lt;a href=&quot;https://nodejs.org/en/download/releases/&quot;&gt;Node.js 0.12.7&lt;/a&gt; through the official repositories. Where version 0.12.7 is the latest stable version &lt;strong&gt;prior&lt;/strong&gt; to the forking of the project. Thus, the best way to get the current version of Node.js on Linux is through &lt;a href=&quot;https://github.com/creationix/nvm&quot;&gt;NVM&lt;/a&gt;.&lt;/p&gt;

&lt;h2 id=&quot;removing-the-older-version-of-node&quot;&gt;Removing the older version of Node&lt;/h2&gt;
&lt;p&gt;First, create a &lt;strong&gt;backup&lt;/strong&gt; list of the previously globally installed NPM packages:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;npm &lt;span class=&quot;nb&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-gp&lt;/span&gt; &lt;span class=&quot;o&quot;&gt;&amp;gt;&lt;/span&gt; node_packages.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If you installed Node.js through &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;apt-get&lt;/code&gt;, uninstall by using the following:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;sudo &lt;/span&gt;apt-get remove nodejs
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Additionally, your home folder may contain a &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;.npm&lt;/code&gt; folder that can be removed (since NVM will use its own path for NPM packages).&lt;/p&gt;

&lt;h2 id=&quot;installing-nodejs-with-nvm&quot;&gt;Installing Node.js with NVM&lt;/h2&gt;
&lt;p&gt;Grab the latest copy of NVM (you may need to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;sudo apt-get install curl&lt;/code&gt; first):&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;curl &lt;span class=&quot;nt&quot;&gt;-o-&lt;/span&gt; https://raw.githubusercontent.com/creationix/nvm/v0.27.1/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Update NVM to latest version:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;nb&quot;&gt;cd&lt;/span&gt; ~/.nvm
git pull origin master
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Then &lt;strong&gt;restart&lt;/strong&gt; your terminal window, and install the latest Node version:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvm &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;stable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;or if you want a specific version (e.g., version 4.1.1):&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvm &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;4.1.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And tell NVM which version of Node you want to use (when a specific version is needed):&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvm use 4.1.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;Define a default version, so that you don’t have to pick a Node version each time you start your terminal. This will &lt;strong&gt;activate&lt;/strong&gt; the specified version each time the terminal starts, and it will do it &lt;strong&gt;silently&lt;/strong&gt;.&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvm &lt;span class=&quot;nb&quot;&gt;alias &lt;/span&gt;default stable
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;And lastly, check the installed version of Node:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;node &lt;span class=&quot;nt&quot;&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;When updating to a newer version:&lt;/p&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;nvm &lt;span class=&quot;nb&quot;&gt;ls
&lt;/span&gt;nvm &lt;span class=&quot;nb&quot;&gt;install &lt;/span&gt;stable
nvm &lt;span class=&quot;nb&quot;&gt;ls
&lt;/span&gt;nvm uninstall 4.1.1
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If later on you encounter errors with installing packages &lt;em&gt;globaly&lt;/em&gt;, make sure your &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;NODE_PATH&lt;/code&gt; is defined. You can do so by adding the following to &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bashrc&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.zshrc&lt;/code&gt;:&lt;/p&gt;

&lt;div class=&quot;language-plaintext highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;export NVM_DIR=&quot;$HOME/.nvm&quot;
[ -s &quot;$NVM_DIR/nvm.sh&quot; ] &amp;amp;&amp;amp; \. &quot;$NVM_DIR/nvm.sh&quot;  # This loads nvm

export NODE_PATH=$NODE_PATH:/home/alexeyza/.nvm/versions/node/v4.1.1/lib/node_modules
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;If there are any issues loading the selected node version, make sure the above lines are at the bottom part of &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~/.bashrc&lt;/code&gt; (the order matters).&lt;/p&gt;

&lt;hr /&gt;
&lt;p&gt;The above steps are mostly based on a Stack Overflow &lt;a href=&quot;http://askubuntu.com/questions/672994/how-to-install-nodejs-4-on-ubuntu-15-04-64-bit-edition/673046#673046&quot;&gt;answer&lt;/a&gt; and the NVM &lt;a href=&quot;https://github.com/creationix/nvm&quot;&gt;docs&lt;/a&gt;, with minor changes to make it more sustainable for future updates. If you prefer to &lt;strong&gt;install a system-wide Node.js&lt;/strong&gt; with NVM, please follow &lt;a href=&quot;http://www.marcominetti.net/personal/blog/2015/09/install-system-wide-node-js-with-nvm-the-painless-way&quot;&gt;this guide&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Mon, 28 Sep 2015 20:21:02 +0000</pubDate>
        <link>https://alexeyza.com/blog/2015/09/28/getting-started-with-node-dot-js/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2015/09/28/getting-started-with-node-dot-js/</guid>
        
        
        <category>Node.js</category>
        
        <category>guide</category>
        
      </item>
    
      <item>
        <title>Embracing Participatory Culture in Education</title>
        <description>&lt;p&gt;&lt;img style=&quot;float:right; margin: 8px 20px&quot; src=&quot;/assets/article_images/2015-09-10-embracing-participatory-culture-in-education/github_student.png&quot; widht=&quot;120&quot; height=&quot;180&quot; title=&quot;GitHub logo owned by GitHub, Inc.&quot; /&gt;&lt;/p&gt;

&lt;p&gt;GitHub is on the brink of growing from a platform for software projects, and into a mainstream collaboration platform for other domains as well.
An unexpected area where GitHub’s collaborative &lt;strong&gt;workflow&lt;/strong&gt; holds the potential to bring groundbreaking changes is education and learning. In fact, educators have already begun to use GitHub to support teaching and learning. In some cases using it to replace certain aspects of the traditional learning management systems (e.g., Blackboard, Moodle), while in other cases gaining new benefits and capabilities.&lt;/p&gt;

&lt;!--more--&gt;

&lt;blockquote&gt;
  &lt;p&gt;“It’s always about timing. If it’s too soon, no one understands. If it’s too late, everyone’s forgotten.”&lt;/p&gt;

  &lt;p&gt;— Anna Wintour&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;beyond-software-development&quot;&gt;Beyond Software Development&lt;/h2&gt;
&lt;p&gt;&lt;a href=&quot;https://github.com/&quot;&gt;GitHub&lt;/a&gt; is a popular Web-based social code sharing service that utilizes the Git distributed version control system. The software development community has &lt;a href=&quot;http://www.wired.com/2015/03/github-conquered-google-microsoft-everyone-else&quot;&gt;embraced GitHub&lt;/a&gt; as an essential platform for managing their software projects. After just seven years, GitHub has 9 million registered users, and about 20 million unregistered visitors. Similarly, tools such as &lt;a href=&quot;https://bitbucket.org/&quot;&gt;BitBucket&lt;/a&gt; and &lt;a href=&quot;https://about.gitlab.com/&quot;&gt;GitLab&lt;/a&gt; gain popularity in hosting software projects. More importantly, GitHub is far more than a code repository, it is a social meeting place, that supports &lt;a href=&quot;http://wenger-trayner.com/introduction-to-communities-of-practice/&quot;&gt;communities of practice&lt;/a&gt; and fosters collaboration. People use it as a virtual meeting place, that supports discussions, and allows everyone to maintain awareness.&lt;/p&gt;

&lt;p&gt;However, GitHub is not just for software development. We believe it is similar to other tools that are built for developers (e.g., Wiki, Stack Overflow), but end up being &lt;a href=&quot;http://allankelly.blogspot.ca/2014/04/the-prototype-of-future-knowledge.html&quot;&gt;adopted by other knowledge workers&lt;/a&gt;. Early adopters use GitHub to &lt;a href=&quot;http://readwrite.com/2013/11/08/seven-ways-to-use-github-that-arent-coding&quot;&gt;compose music&lt;/a&gt;, to &lt;a href=&quot;http://venturebeat.com/2013/01/30/github-for-recipes-brings-open-source-into-the-kitchen/&quot;&gt;share recipes&lt;/a&gt;, and even for legal documents. For example, Stefan Wehrmeyer, a German software developer and activist has posted the &lt;a href=&quot;https://github.com/bundestag/gesetze&quot;&gt;German federal government’s laws and regulations&lt;/a&gt; to GitHub. Allowing anyone to track changes, see who made the changes, and why. Thus, not only providing traceability of the changes, but with the use of GitHub’s diff functionality showing what exactly has been changed. Similarly, the &lt;a href=&quot;https://github.com/divegeek/uscode&quot;&gt;US federal code&lt;/a&gt; and the &lt;a href=&quot;https://github.com/steeve/france.code-civil&quot;&gt;French civil code&lt;/a&gt; have been published to GitHub as well.&lt;/p&gt;

&lt;p&gt;In addition to these marvelous uses, GitHub is used for educational purposes.&lt;/p&gt;

&lt;h2 id=&quot;our-study&quot;&gt;Our Study&lt;/h2&gt;
&lt;p&gt;My fellow researchers and I studied &lt;strong&gt;How&lt;/strong&gt; and &lt;strong&gt;Why&lt;/strong&gt; educators use GitHub. As a first phase, we searched for resources (such as blog posts and discussion groups) that described the personal experiences of educators using GitHub to support learning or teaching.&lt;/p&gt;

&lt;p&gt;Next, we interviewed 15 educators that have used GitHub, including one of the blog authors from the previous phase. We were able to thoroughly investigate the &lt;strong&gt;usefulness&lt;/strong&gt; and &lt;strong&gt;potential&lt;/strong&gt; of GitHub in education. We then proceeded to interview John Britton, a representative from GitHub, in order to gain insights into GitHub’s perspective.&lt;/p&gt;

&lt;p&gt;And finally, we conducted a follow-up survey to get feedback on our interpretation of the interview findings.&lt;/p&gt;

&lt;h2 id=&quot;why-educators-use-github&quot;&gt;Why Educators Use GitHub&lt;/h2&gt;
&lt;p&gt;Traditional learning management systems (LMS) are a pain point for many educators (including myself). The basic purpose of these systems is to allow educators to share course material with the students, and to host student assignments. However, in reality, we end up using a combination of LMSs, and external services, while somehow most of the communication happens over email.&lt;/p&gt;

&lt;p&gt;On top of that, access to the course material or the assignments is limited to current students only. Which doesn’t include students who completed the course and want to reuse the material, other educators, or industry people who may share their own experience. This is not a hypothetical situation, I’ve seen this happen first hand, more than once (both as a student and as an educator).&lt;/p&gt;

&lt;p&gt;GitHub may not solve all these problems, but our study reveals &lt;strong&gt;extraordinary benefits&lt;/strong&gt; to educators who used it.&lt;/p&gt;

&lt;h3 id=&quot;reuse-and-sharing-of-knowledge&quot;&gt;Reuse and Sharing of Knowledge&lt;/h3&gt;
&lt;p&gt;By using GitHub, educators can share and collaborate on course material. When a fellow educator wants to teach a similar course, all that she needs to do is &lt;a href=&quot;https://help.github.com/articles/fork-a-repo/&quot;&gt;fork&lt;/a&gt; the original course on GitHub. And if she improves it, other educators are aware of the changes and can integrate them back to their courses as well.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Some of the material is shared with the world and some of it is shared with other instructors of other universities…We’re versioning all of it.”&lt;/p&gt;

  &lt;p&gt;— CS professor from University of California at Berkeley&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Furthermore, one of the interviewees shared the following unexpected situation:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“I think the repository has something like 200 stars on GitHub right now and as far as I can tell most of those stars are from people who didn’t take the course.”&lt;/p&gt;

  &lt;p&gt;— CS instructor from Harvard University&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Suddenly, the course grows beyond the classroom, allowing the exchange of ideas and knowledge among students and external people (e.g., practitioners and experts from the industry).&lt;/p&gt;

&lt;h3 id=&quot;transparency-of-activity&quot;&gt;Transparency of Activity&lt;/h3&gt;
&lt;p&gt;Using GitHub as a submission platform also makes it easier for educators to monitor student progress, activity, and participation. GitHub has numerous features that support transparency of student activities, e.g., &lt;a href=&quot;https://help.github.com/articles/about-repository-graphs/&quot;&gt;graphs&lt;/a&gt; and the &lt;a href=&quot;https://help.github.com/articles/news-feed/&quot;&gt;news-feed&lt;/a&gt; that aggregates all the activity in one place.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“[As an educator] you really see the full history of how the document comes into being, including all the discussions, the former versions. I can monitor who’s active, working in certain teams, which is also handy, practical.”&lt;/p&gt;

  &lt;p&gt;— CS professor from Delft University of Technology&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;encourage-participation&quot;&gt;Encourage Participation&lt;/h3&gt;
&lt;p&gt;By using GitHub educators were able to encourage participation. In one case, the instructor used student logs as material for discussion in class. Another example was where students submitted an &lt;a href=&quot;https://guides.github.com/features/issues/&quot;&gt;issue&lt;/a&gt; followed by a &lt;a href=&quot;https://guides.github.com/introduction/flow/&quot;&gt;Pull-Request&lt;/a&gt;, mechanisms that are usually used to discuss bugs or code changes, in order to change a deadline.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Last year, I introduced a number of deadlines in between, and the time of the deadline was always Friday evening. And the students didn’t like it, so they opened an issue on GitHub - “Can we move it?”. So I said, I’m open to suggestions, please discuss it. Everyone responded to that issue on GitHub, and then at the end I said “based on the discussion, it is going to be on Sunday”. And then I asked the student who initiated this discussion “Please, open a Pull Request where you provide the fix to the assignment, so the Friday now changed to Sunday”. And that worked really nicely.”&lt;/p&gt;

  &lt;p&gt;— CS professor from Delft University of Technology&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3 id=&quot;industry-relevance&quot;&gt;Industry Relevance&lt;/h3&gt;

&lt;p&gt;Educators also use GitHub to provide their students with industry relevant skills and tools.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“This is very much what people use these days in [statistics], and so I actually consider it a completely valid pedagogical goal in and of itself. And the fact that it makes our work together easier is a beautiful byproduct.”&lt;/p&gt;

  &lt;p&gt;— Statistics professor from University of British Colombia&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Furthermore, GitHub can also be used as a portfolio showcasing the student’s work. It is common for employers to evaluate candidates based on their existing projects and activity on GitHub.&lt;/p&gt;

&lt;h3 id=&quot;incidental-benefits&quot;&gt;Incidental Benefits&lt;/h3&gt;

&lt;p&gt;There are incidental benefits as well. Educators mentioned the ease of use, where you don’t have to use complex university systems, instead you can use your existing tools and just “push the changes”. Additionally, GitHub provides &lt;a href=&quot;https://education.github.com/discount_requests/new&quot;&gt;free academic licenses&lt;/a&gt;, both at the “student level” and at the “organization level”.&lt;/p&gt;

&lt;h2 id=&quot;how-educators-use-github&quot;&gt;How Educators Use GitHub&lt;/h2&gt;
&lt;p&gt;With &lt;strong&gt;course material hosted on GitHub&lt;/strong&gt;, students (or other educators) can discuss and suggest corrections to the material with the use of Pull-Requests or issues. For example, in a course I taught, &lt;a href=&quot;https://github.com/alexeyza/startup-programming/pulls?utf8=%E2%9C%93&amp;amp;q=is%3Apr&quot;&gt;students submitted corrections&lt;/a&gt; to the material by using pull requests. We didn’t require them to do so, and it was not part of the grade - they did it on their own. Some educators even give extra credit for accepted pull requests. This is a game changer benefit of using a system like GitHub - it improves quality and encourages collaboration, benefiting everyone.&lt;/p&gt;

&lt;p&gt;&lt;img src=&quot;/assets/article_images/2015-09-10-embracing-participatory-culture-in-education/student_pr.png&quot; alt=&quot;Students contribute to the course material&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Additionally, &lt;strong&gt;educators use GitHub as a submission platform&lt;/strong&gt;. And there are two main ways to do it. One is more similar to the traditional LMS, where you create a separate repository per student, and it’s private. The second way is having a single repository for the assignment, and the students will fork or branch it. This way all of the students can see each others work, allowing them to collaborate and build on the work of others.&lt;/p&gt;

&lt;h2 id=&quot;not-quite-ready-for-prime-time-yet&quot;&gt;Not Quite Ready for Prime-time, Yet&lt;/h2&gt;
&lt;p&gt;Our study uncovered how educators use GitHub to support learning and teaching, while extending or even replacing traditional LMSs. However, the implications of our findings go beyond GitHub itself. The emergence of GitHub’s workflow within education is transforming the traditional e-learning model and will better support socio-collaborative learning environments of the future. I would also like to &lt;strong&gt;strongly recommend&lt;/strong&gt; reading &lt;a href=&quot;http://www.infoworld.com/article/2886828/collaboration-software/github-for-the-rest-of-us.html&quot;&gt;&lt;strong&gt;GitHub for the rest of us&lt;/strong&gt;&lt;/a&gt; by Jon Udell.&lt;/p&gt;

&lt;p&gt;It should be mentioned that GitHub was not designed as an LMS, and even though it can be used as such, there are several challenges involved. The main challenges are the lack of a shared knowledge base of suggested and best practices, and the barriers to entry educators face (i.e., an understanding of Git is required).&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“To get the most out of GitHub, you need to understand Git… if you use it the right way it is simple, but somehow with Git you end up with conflicts, and if you don’t understand it, it’s magic!”&lt;/p&gt;

  &lt;p&gt;— CS professor from Delft University of Technology&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;planning-to-use-github-heres-what-you-should-do&quot;&gt;Planning to Use GitHub? Here’s What You Should Do&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Privacy is not all or nothing.&lt;/strong&gt; GitHub allows for various visibility levels, depending on how you &lt;a href=&quot;https://education.github.com/guide/repository_setup&quot;&gt;set up the repository&lt;/a&gt;. Make sure to explore these possibilities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Markdown when possible.&lt;/strong&gt; A plain text file format will enable you to take advantage of the &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;diff&lt;/code&gt; and line-commenting functionalities. And Markdown’s markup language is very &lt;a href=&quot;https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet&quot;&gt;simple to learn&lt;/a&gt;, while supporting stylized documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Share your experience, and learn how others use GitHub.&lt;/strong&gt; We, as a community, need your help in contributing to and shaping a shared knowledge base.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Learn Git’s workflow.&lt;/strong&gt; Understanding &lt;a href=&quot;https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow&quot;&gt;Git’s workflow&lt;/a&gt; (commits, branches, conflicts) will give you a better understanding how GitHub works and how it can be best used.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Be creative.&lt;/strong&gt; There are additional ways to enhance the teaching and learning experience. For instance, some educators use &lt;a href=&quot;https://travis-ci.org/&quot;&gt;Travis CI&lt;/a&gt; for &lt;a href=&quot;https://github.com/education/teachers/issues/3&quot;&gt;automated assignment grading&lt;/a&gt;.&lt;/p&gt;

&lt;hr /&gt;

&lt;p&gt;Have you used or plan to use GitHub to support teaching or learning? What was the biggest &lt;strong&gt;challenge&lt;/strong&gt; for you? What &lt;strong&gt;recommendations&lt;/strong&gt; do you have for other educators? Please &lt;strong&gt;comment&lt;/strong&gt; below.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; &lt;a href=&quot;https://twitter.com/alexeyzagalsky&quot;&gt;I’d love to meet you on Twitter.&lt;/a&gt;&lt;/p&gt;

&lt;h2 id=&quot;published-research&quot;&gt;Published Research&lt;/h2&gt;
&lt;p&gt;Additional details on this study can be found in &lt;a href=&quot;http://alexeyza.com/pdf/cscw15.pdf&quot;&gt;our paper&lt;/a&gt; that was presented at the &lt;a href=&quot;http://cscw.acm.org/2015/&quot;&gt;CSCW 2015 conference&lt;/a&gt;, with the &lt;a href=&quot;https://speakerdeck.com/alexeyza/the-emergence-of-github-as-a-collaborative-platform-for-education&quot;&gt;slides available online&lt;/a&gt; as well. We are extremely grateful to all the interview and survey participants.&lt;/p&gt;

&lt;p&gt;I would also like to thank &lt;a href=&quot;http://margaretstorey.com/&quot;&gt;Margaret-Anne Storey&lt;/a&gt;, &lt;a href=&quot;http://leif.me/&quot;&gt;Leif Singer&lt;/a&gt;, and Maryi Arciniegas Méndez for providing feedback on early versions of this post.&lt;/p&gt;

&lt;p&gt;This post has been shared on &lt;a href=&quot;http://thechiselgroup.org/2015/09/10/embracing-participatory-culture/&quot;&gt;the CHISEL group’s blog&lt;/a&gt;, &lt;a href=&quot;https://thewinnower.com/papers/2740-embracing-participatory-culture-in-education&quot;&gt;The Winnower&lt;/a&gt;, and on &lt;a href=&quot;http://www.storybench.org/use-github-lessons-classroom-newsroom/&quot;&gt;Storybench&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Thu, 10 Sep 2015 18:41:54 +0000</pubDate>
        <link>https://alexeyza.com/blog/2015/09/10/embracing-participatory-culture-in-education/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2015/09/10/embracing-participatory-culture-in-education/</guid>
        
        
        <category>GitHub</category>
        
        <category>Learning</category>
        
        <category>Education</category>
        
        <category>Social Media</category>
        
      </item>
    
      <item>
        <title>Command Line Fun</title>
        <description>&lt;p&gt;I recently discovered a superb &lt;a href=&quot;http://www.shavua.net/&quot;&gt;podcast on startups&lt;/a&gt; (in Hebrew). And, I wanted to download the episodes, so that I can listen to it when I commute to work. The podcast homepage has a page for each episode, with a download link at the bottom.&lt;/p&gt;

&lt;p&gt;However, instead of downloading each episode manually, I decided to find an easier way, with the use of the command line. And to make it more interesting, I wanted to accomplish this with a single command line.&lt;/p&gt;

&lt;!--more--&gt;

&lt;div class=&quot;language-bash highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;wget &lt;span class=&quot;nt&quot;&gt;-q&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-O&lt;/span&gt; - &lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;nv&quot;&gt;$@&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;&quot;&lt;/span&gt; http://simplecast.fm/podcasts/173/rss | &lt;span class=&quot;nb&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;nt&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;s2&quot;&gt;&quot;http://.*.mp3&quot;&lt;/span&gt; | xargs wget
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;The first part brings the content, in quiet mode, to allow piping into &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;grep&lt;/code&gt;. The second part extracts the episode file names and paths, in my case they are all mp3 files. And the last part downloads all the files. I used the RSS feed instead of the podcast homepage as a way to have all the content in a single file.&lt;/p&gt;

&lt;p&gt;I wonder, can this be done with a single &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;wget&lt;/code&gt; command?&lt;/p&gt;

&lt;p&gt;BTW, a useful tool for experimenting with regular expressions is &lt;a href=&quot;http://regexr.com/&quot;&gt;RegExr&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Wed, 02 Sep 2015 22:42:19 +0000</pubDate>
        <link>https://alexeyza.com/blog/2015/09/02/command-line-fun/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2015/09/02/command-line-fun/</guid>
        
        
        <category>command line</category>
        
        <category>scripts</category>
        
        <category>hacks</category>
        
      </item>
    
      <item>
        <title>5 Tips for Successfully Meeting People at Academic Conferences</title>
        <description>&lt;p&gt;As a &lt;a href=&quot;/about/&quot;&gt;Ph.D. student&lt;/a&gt;, I have the opportunity to attend many cool conferences and co-located events (e.g., &lt;a href=&quot;http://2014.icse-conferences.org/&quot;&gt;ICSE&lt;/a&gt;, &lt;a href=&quot;http://cscw.acm.org/2015/&quot;&gt;CSCW&lt;/a&gt;, &lt;a href=&quot;http://www.icsme.org/&quot;&gt;ICSME&lt;/a&gt;). However, beyond visiting beautiful places around the world (&lt;a href=&quot;https://500px.com/photo/20248433/zurich-at-night-by-alexey-zagalsky&quot;&gt;Switzerland&lt;/a&gt;, &lt;a href=&quot;https://500px.com/photo/73282511/the-heart-of-hyderbad-by-alexey-zagalsky&quot;&gt;India&lt;/a&gt;, &lt;a href=&quot;https://500px.com/photo/52266254/victoria-lights-by-alexey-zagalsky&quot;&gt;Canada&lt;/a&gt;, and &lt;a href=&quot;https://www.youtube.com/watch?v=I_57gjvek7Q&quot;&gt;Italy&lt;/a&gt; soon), I really enjoy meeting and connecting with people. In my experience, most people I’ve met at conferences were really great, super nice, and were very happy to talk to me, even though they didn’t actually know me or had any immediate outcome in mind. In this post I provide pointers—especially intended for new grad students—for meeting people at conferences.&lt;/p&gt;

&lt;!--more--&gt;

&lt;h2 id=&quot;1-stop-networking-and-just-meet-people&quot;&gt;1. Stop “Networking” and Just Meet People&lt;/h2&gt;

&lt;p&gt;At one of the conferences I attended recently, I was approached by another Ph.D. student. After he introduced himself, he allowed me to introduce myself, and then asked about my research topic. After describing my research topic, he politely left. The problem here, in my opinion, was that except getting to know my name and my research topic, we didn’t actually have a real conversation. And to be honest, the encounter didn’t leave enough of an impression and in the future, it would be hard for me to remember meeting him.&lt;/p&gt;

&lt;p&gt;My main takeaway is that you should not focus on networking at conferences. I feel this is one the biggest mistakes people do, as they approach networking in a technical and goal oriented manner (saying things like &lt;em&gt;“I have to talk to 50 strangers at this conference”&lt;/em&gt;). The goal should not be to (shallowly) meet X people in Y amount of time. Instead I suggest to &lt;strong&gt;genuinely&lt;/strong&gt; be interested in meeting and connecting with other people. Have a proper conversation - you may never know where this conversation will go. I have had many amazing conversations (not necessarily research related) with people I just met, people who later became my colleagues or dear friends.&lt;/p&gt;

&lt;h2 id=&quot;2-dont-be-afraid-to-approach-people&quot;&gt;2. Don’t Be Afraid to Approach People&lt;/h2&gt;

&lt;p&gt;A good way to meet people, especially for new students, is through an introduction. An introduction can be done either by your supervisor, one of your colleagues, or one of the newly met people. However, since not all supervisors might do this, you should &lt;strong&gt;introduce yourself&lt;/strong&gt;. If you already have some experience and know the community, make sure to help newcomers.&lt;/p&gt;

&lt;p&gt;A very common way to meet people at conferences is to just approach them. I suggest the following: Start by introducing yourself, and get to know their name and where they come from (you can use the conference-issued name tags). Next, ask if they are presenting or have presented a paper at the conference. If they have a paper, you can ask them to tell you about the paper. If not, you can ask about their research interests. If you attended their talk, you should definitely mention that, and use their presentation as a way to start a conversation. Notice that this is not a script, but rather suggested guidelines to start a conversation.&lt;/p&gt;

&lt;p&gt;Remember that the main point of conferences is meeting people from your research area. This means that everyone has a common goal, so there is no reason to be afraid to approach people! Most are probably anxious as well, and would be thankful for a conversation.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“Students are sometimes afraid to talk to professors, but they shouldn’t be. Many professors are very approachable. Some may be busy, so if they seem distracted don’t take it personally. On the other hand, some students only approach well-known people, rather than being open to meeting anyone.”&lt;/p&gt;

  &lt;p&gt;— &lt;a href=&quot;http://margaretstorey.com/&quot;&gt;Margaret-Anne Storey&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2 id=&quot;3-attend-social-events-not-just-the-conference&quot;&gt;3. Attend Social Events, Not Just The Conference&lt;/h2&gt;

&lt;p&gt;When attending conferences, I recommend taking part in the various social events (official and unofficial). Most conferences will arrange a least a few organized social events: a dinner, a banquet, a hike, a bicycle trip, etc. However, there are also unofficial social meetings, such as groups of people gathering together for dinner. Attending these events will allow you to better connect with and get to know various people. Besides, these events are extremely fun (and usually lead to memorable moments).&lt;/p&gt;

&lt;h2 id=&quot;4-take-advantage-of-social-media&quot;&gt;4. Take Advantage of Social Media&lt;/h2&gt;

&lt;p&gt;Following and participating in the discussions happening on Twitter is another good way to get to know people in the community, and its research themes. The basic information on Twitter can allow you to know the names and faces of some of the people, and make it easier to approach them. In some cases, Twitter may also be used for coordinating social gatherings (e.g., when a group is organizing to go for dinner). However, using Twitter should not be a replacement for meeting people face-to-face.&lt;/p&gt;

&lt;p&gt;Most conferences nowadays have a presence on Twitter, and often people are live-tweeting during the conference. Using the conference or event hashtags (e.g., &lt;a href=&quot;https://twitter.com/hashtag/icse14?src=hash&quot;&gt;#icse14&lt;/a&gt;, &lt;a href=&quot;https://twitter.com/hashtag/icsme14?src=hash&quot;&gt;#icsme14&lt;/a&gt;) and tools like &lt;a href=&quot;https://tweetdeck.twitter.com/&quot;&gt;TweetDeck&lt;/a&gt; are a very convenient way to track all the related tweets.&lt;/p&gt;

&lt;h2 id=&quot;5-dont-be-afraid-of-lack-of-experience&quot;&gt;5. Don’t Be Afraid of Lack of Experience&lt;/h2&gt;

&lt;p&gt;A common fear among newcomers is the lack of experience in research or in published papers. However, this should not be an issue at all. The &lt;strong&gt;research community is very welcoming&lt;/strong&gt;, and the people you’ll meet will most likely give you some suggestions and guidelines. Moreover, they probably had similar challenges before and know how you feel. Don’t hesitate to be open about your lack of experience or the fact that you are a newcomer (e.g., a new student). Remember to be yourself.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;“One thing that worked &lt;strong&gt;very well&lt;/strong&gt; for me at &lt;a href=&quot;http://2011.icse-conferences.org/&quot;&gt;ICSE 2011&lt;/a&gt; was that I knew in advance which cool people would be there. I was interested in and impressed by their research, and made it a point to try to meet and talk to them. When you’re interested in what someone does it’s also much easier to come up with questions to ask them. This leads to much better conversations.”&lt;/p&gt;

  &lt;p&gt;— &lt;a href=&quot;http://leif.me/&quot;&gt;Leif Singer&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;br /&gt;
I hope you’ll find this post useful. &lt;strong&gt;If you see me at a conference, please come by and say hello&lt;/strong&gt;. Also, a recommended book is &lt;a href=&quot;http://en.wikipedia.org/wiki/How_to_Win_Friends_and_Influence_People&quot;&gt;“How to Win Friends and Influence People”&lt;/a&gt; by Dale Carnegie.&lt;/p&gt;

&lt;p&gt;How was your own experience with meeting people at conferences? Do you have a cool story where something happened only because you pushed yourself out there?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;P.S.&lt;/strong&gt; &lt;a href=&quot;https://twitter.com/alexeyzagalsky&quot;&gt;I’d love to meet you on Twitter.&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 06 Feb 2015 19:34:07 +0000</pubDate>
        <link>https://alexeyza.com/blog/2015/02/06/5-tips-for-successfully-meeting-people-at-academic-conferences/</link>
        <guid isPermaLink="true">https://alexeyza.com/blog/2015/02/06/5-tips-for-successfully-meeting-people-at-academic-conferences/</guid>
        
        
        <category>Conferences</category>
        
        <category>Networking</category>
        
        <category>Grad Students</category>
        
      </item>
    
  </channel>
</rss>
