{"payload":{"header_redesign_enabled":false,"results":[{"body":"Advice from Michael Ernst Advice from Andrew J. Ko Philip Guo 's blog Adrian Sampson 's blog How To Write a Good (no, Great) PhD Dissertation by Priya Narasimhan Five Steps to Writing an Outstanding PhD Thesis by Dora Farkas Getting What You Came For by Robert Peters Twenty things I wish I ’d known when I started my PhD Working with undergraduates From Michael Ernst: Collaborating with undergraduates in research (9 July 2018) Interviewing undergraduates (9 July 2018) \"Working With Undergrads as a Grad Student\" by Adrian Sampson","filename":"Academia:-Advice.md","format":"markdown","hl_body":"Advice from Michael Ernst Advice from Andrew J. Ko Philip Guo 's blog Adrian Sampson 's blog How To Write a Good (no, Great) PhD Dissertation by Priya Narasimhan Five Steps to Writing an Outstanding ...","hl_title":"Academia: Advice","id":"5d32522001bd477f0af7ba5fe61490719b2e7708","path":"Academia:-Advice.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Advice","updated_at":"2018-11-13T20:49:41.000-08:00"},{"body":"Data analysis tools Video coding ELAN Anvil VCode ChronoViz Anecdotally, ELAN \"is reasonable,\" Anvil is \"quite commonly used in the community,\" and VCode is \"apparently the best but it only works on Mac OS.\" Data analysis / statistical tests Python based: Pandas IPython: note that notebooks can be shared and viewed on Github scikit-learn R SPSS Matlab Plots / graphs / visualization Numbers / Keynote / Excel / Powerpoint / Google Sheets / Google Slides for basic stuff ggplot for R matplotlib for Python Seaborn , built on top of matplotlib D3","filename":"Academia:-Data-Tools.md","format":"markdown","hl_body":"Data analysis tools Video coding ELAN Anvil VCode ChronoViz Anecdotally, ELAN "is reasonable," Anvil is "quite commonly used in the community," and VCode is "apparently the best ...","hl_title":"Academia: Data Tools","id":"f8df23fcf5faf63d7a5df7470d23946972306ce3","path":"Academia:-Data-Tools.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Data Tools","updated_at":"2018-09-26T13:37:19.000-07:00"},{"body":"General exam The official general exam document is comprehensive and authoritative.\nHowever, there are some confusions which we clarified with the CSE advisors. Who writes the charge? The charge is written by the advisor and the student together, then the advisor sends the charge to the whole committee, the student, and the CSE advisor. How long after the charge is released should the general exam be scheduled? 4-8 weeks.\nThere is no official minimum time between the charge and the exam.\nHowever, the response to the charge must be turned in 2 weeks before the exam, so at least 4 weeks is typical.\nThe official maximum is 8 weeks. Are there different formats for the response? There are at least three kinds of charges/responses.\nThe general exam document focuses on one particular kind of charge/response which has become less common, but leaves the door open for the other, more recently-popular formats.\nThe different kinds of formats are listed at the bottom of the general exam document.","filename":"Academia:-Generals.md","format":"markdown","hl_body":"General exam The official general exam document is comprehensive and authoritative.\nHowever, there are some confusions which we clarified with the CSE advisors. Who writes the charge? The charge is written ...","hl_title":"Academia: Generals","id":"ce724d3a100e17d88d422d08aef0ab232cbba9d8","path":"Academia:-Generals.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Generals","updated_at":"2018-09-26T13:37:19.000-07:00"},{"body":"Paper writing tips Each sentence on its own line In your LaTeX source, put each sentence on its own line.\nThis makes it easy for people to collaborate using Git.\nIt avoids merge conflicts unless two people edit the same sentence.\nIt also makes it easy to see what changes were made using side-by-side text comparison tools like git diff . Split source across multiple files You can split your source code across multiple files like so: main.tex \\begin { document } \\input { abstract } \\input { intro } \\end { document } abstract.tex % !TEX root = main.tex \\begin { abstract }\n This is the abstract. \\end { abstract } intro.tex % !TEX root = main.tex \\section { Introduction }\nThis is the introduction. Makefile Use this Makefile to help build LaTeX papers on Linux using latexmk .\nTo use it, just put the Makefile in the top level directory and type make . # Name of the output file, e.g., jetson2017programming.pdf NAME = jetson2017programming all : latex cleancrap open latex :\n latexmk -pdf main.tex -bibtex -jobname=$(NAME) open :\n xdg-open $(NAME).pdf clean : cleancrap cleanpdf cleancrap :\n rm -f *.aux $(NAME).fdb_latexmk $(NAME).fls $(NAME).log $(NAME).bbl $(NAME).blg $(NAME).out cleanpdf :\n rm -f $(NAME).pdf Title pages for reports For your general exam, you may want to include a separate title page.\nHere is an example of how to create a title page for a general exam.\nPut it after \\begin{document} and before your abstract. \\begin { titlepage } \\begin { center } \\vspace *{1cm}\n { \\huge End-to-End User Programming of General-Purpose Robots} \\\\ \\vspace {1.5cm}\n PhD General Examination Report \\\\ November 23, 2016 \\\\ \\vspace {1 cm}\n { \\large Rosie Jetson} \\\\ Department of Computer Science \\ & Engineering \\\\ University of Washington \\vfill \\textit { Supervisory Committee: } \\\\ Member 1, Advisor \\\\ Member 2 \\\\ Member 3 \\\\ Member 4, GSR \\\\ \\end { center } \\end { titlepage }","filename":"Academia:-Papers.md","format":"markdown","hl_body":"Paper writing tips Each sentence on its own line In your LaTeX source, put each sentence on its own line.\nThis makes it easy for people to collaborate using Git.\nIt avoids merge conflicts unless two people ...","hl_title":"Academia: Papers","id":"29c90f441639a3fc4ee8a8595a1e7d0bf5969e4e","path":"Academia:-Papers.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Papers","updated_at":"2018-09-26T13:37:19.000-07:00"},{"body":"How to make a poster Make the poster using PowerPoint, Keynote, or Google Slides. A standard portrait size is 32in wide by 40in tall, but different conferences might request that you print your poster in a different size. Set up printer access in CSE according to the Printing support page Save your poster as a PDF Run pdf2ps poster.pdf poster.ps to convert your poster to raw PostScript. Send the PostScript to the poster printer: lpr -P psclarge poster.ps If the printer is out of paper, replace the roll according to the instruction manual on the printer Trim your poster as needed using the paper cutter If you want to attach your poster to a foam board, then find an unused piece of foam board in the poster room. Spray it with the special spray in the room, then carefully put your poster down on top. This workflow has worked for lab members in the past. CSE support has a page on poster printing . Templates and examples Google Slides example . Open it while signed into your Google account, then select File- > Make a copy Examples from the HCR lab More templates available on the CSE support page Advanced A0 printing with a non-A0 PDF If you are trying to print an A0 poster, but the PDF is not size A0, try printing the poster directly from a PDF viewer. Set the paper size to A0 and then say \"scale content to fit page.\" You can also try resizing the poster to A0 with: pdftops -paperw 2384 -paperh 3370 -expand poster.pdf poster.ps","filename":"Academia:-Posters.md","format":"markdown","hl_body":"How to make a poster Make the poster using PowerPoint, Keynote, or Google Slides. A standard portrait size is 32in wide by 40in tall, but different conferences might request that you print your poster ...","hl_title":"Academia: Posters","id":"5a4519833612f7eb095a755df606e2ca59b27547","path":"Academia:-Posters.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Posters","updated_at":"2018-09-26T13:37:19.000-07:00"},{"body":"Some guides on how to make a rebuttal. Although these guides are from different research areas, such as HCI, they contain useful information for reviews in CS and engineering-related fields. Writing Rebuttals , a blog post by Niklas Elmqvist from the University of Maryland, includes the definition of what a rebuttal is with practical strategies on how to write it. My Rebuttal-Writing Process for HCI Venues , a blog post by Meredith Morris from Microsoft Research and the University of Washington, giving a comforting overview on how to approach reviews and the rebuttal process, including sleeping on it and not venting out on social media when feeling frustrated. It also contains ways to address reviewers comments in the rebuttal. Jeff ’s Rebuttal Guide , a blog post by Jeffrey P. Bigham from CMU containing tips, template, and rebuttal examples. SIGCHI Rebuttals - Some Suggestions to Write Them , a blog post by Albrecht Schmidt from the University of Munich with a general summary on how to approach a rebuttal.","filename":"Academia:-Rebuttal.md","format":"markdown","hl_body":"Some guides on how to make a rebuttal. Although these guides are from different research areas, such as HCI, they contain useful information for reviews in CS and engineering-related fields. Writing Rebuttals ...","hl_title":"Academia: Rebuttal","id":"6f7de0f6c556bfd77c299fe78febbcca2daf1264","path":"Academia:-Rebuttal.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Rebuttal","updated_at":"2020-11-20T19:07:00.000-08:00"},{"body":"How to review papers Some resources: How I review Papers , blog post by Daniel Cosley, Cornell. Describes reviewer's approach/process for reviewing. Outlines how to structure a review (the written part you submit). Includes notes from pseudo-reviews of a few example papers. The HRI 2017 external review guidelines are also very good and similar to the link above. How to get me to positively review your CHI paper , blog post by Lana Yarosh, University of Minnesota. What the reviewer looks for in each section of a CHI paper. How to Survive a Critique: A Guide to Giving and Receiving Feedback So You're a Program Committee Member Now: On Excellence in Reviews and Meta-Reviews and Championing Submitted Work That Has Merit , by Ken Hinckley. Describes the attitude and approach of a thoughtful reviewer. Advocates for nurturing reviews. Intended audience includes individual reviewers and program committee members.","filename":"Academia:-Reviews.md","format":"markdown","hl_body":"How to review papers Some resources: How I review Papers , blog post by Daniel Cosley, Cornell. Describes reviewer's approach/process for reviewing. Outlines how to structure a review (the written ...","hl_title":"Academia: Reviews","id":"1551c88e03451230379591adb50836069c3d748a","path":"Academia:-Reviews.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Reviews","updated_at":"2018-09-26T13:37:19.000-07:00"},{"body":"Preparing the HIT Design your task to be easily completed within an hour. You'll face challenges designing long HITs, including sustaining attention and pricing fairly. Also, the longer the HIT, the more any technical glitch gets amplified. Prepare clear instructions, ideally with images or interactive tutorials. State criteria for rejection in the instructions. Always have a mechanism for identifying bad workers. For annotation tasks: if you have gold data, be sure to mix some of it in so you can identify bad annotators. For qualitative tasks: If your task is all survey, include redundant items and make sure they match (or any other kind of attention check). It's harder for spam to go unnoticed with free response questions. UW mandates a fool-proof embezzlement and tax paperwork prevention method; a question on every HIT that asks \"Are you an employee of the University of Washington, family member of a UW employee, or UW student involved in this particular research?\". Don't allow people to do the HIT if they say yes. Leave an open ended question at the end for comments on the HIT. In the piloting stage, you might consider encouraging bug-finding by advertising a bonus for reports. Issuing the HIT Rule of thumb: price for minimum wage ($15/hr) Expect to respond to the marketplace; sometimes workers are much faster than you initially expect, so you can safely drop the compensation. If the total compensation is higher than a few dollars (common in our HITs), you become a larger target for hit-and-run spammers, so lowering compensation can put you more in line with the market and reduce this effect. Many workers only look at high-volume HITs; they want something they can get good at and reliably make money from. One-off HITs are a risk. Because of this, expect slower uptake for low-volume HITs. If you're not certain about some parameter (e.g. pricing, amount of work to put in a single HIT), just run a pilot batch. It's cheap. The \"Assignments per HIT\" feature lets you show the same HIT to multiple workers. This is handy, but also has a surprise price hike when you want to do more than 3 assignments per HIT, and will cause the platform fee to double to 20%. This really only matters when you're scaling up, but to avoid by adding some language to the HIT saying \"Please only fill out once, repeat submissions will be rejected\" and issuing as many individual HITs as you need. A simple approval rate qualification helps tamp down spam: \"HIT Approval Rate (%) for all Requesters' HITs greater than 95\" If you're gathering written responses and you expect to analyze these (common in our tasks), you can approximate an English fluency qualification by restricting location to \"one of AU, CA, NZ, GB, US\" Monitoring For most tasks < 1 hour long, expect to see the first results come back quickly. If you don't see submissions within 2 hours, something is wrong (there's a bug preventing submission, or the HIT is priced really badly). Keep a close eye on the email inbox for the requester account. Workers may report bugs or other issues. Use TurkerView and TurkerHub to see what workers think of the HIT Paying Review and approve submissions as quickly as possible. The same day that the batch completes is preferable. Workers can see how long your account takes to pay on average, and naturally prefer requesters that pay promptly. Don't reject a HIT based on work time alone. There are outlier workers that are both quick and effective. Give precise explanations for rejections. Example: \"Responded to open ended question #3 with 'OKAY', which did not answer the question\". Reference the criteria you ideally outlined in your instructions. Compensate people who report bugs, and give the benefit of the doubt. If they weren't able to submit the HIT, you may have to create a special compensation HIT for them to complete. This can be a blank page with a sentence saying sorry and thanks for emailing with 0.00 compensation, then bonus the worker the right amount manually.","filename":"Academia:-Using-Amazon-Mechanical-Turk.md","format":"markdown","hl_body":"Preparing the HIT Design your task to be easily completed within an hour. You'll face challenges designing long HITs, including sustaining attention and pricing fairly. Also, the longer the HIT, the ...","hl_title":"Academia: Using Amazon Mechanical Turk","id":"673a459e00bf5987c2cf2e5642ebbb05ebbbfedd","path":"Academia:-Using-Amazon-Mechanical-Turk.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Academia: Using Amazon Mechanical Turk","updated_at":"2020-07-20T16:34:28.000-07:00"},{"body":"How to run leg_detector These instructions describe how to use the leg detector for the Turtlebot on Hydro. But, the process should be similar for other robots. Install Install the people stack: sudo apt-get install ros-hydro-people The leg_detector package will be installed to /opt/ros/hydro/share/leg_detector , you can also browse its source on Github . The leg_detector package's leg_detector.launch file hard-codes a scan:=base_scan remapping argument. For the Turtlebot, the laser scan is just on the /scan topic, so you can get rid of this. Create new launch file called turtlebot.launch which gets rid of the scan:=base_scan argument. Run On the Turtlebot Start the Turtlebot: roslaunch turtlebot_bringup minimal.launch\nroslaunch turtlebot_bringup 3dsensor.launch Use the extended Kalman filter to get /odom_combined: rosrun robot_pose_ekf robot_pose_ekf Launch the leg detector: roslaunch leg_detector turtlebot.launch Visualize the data On your workstation, run rviz. Set your global fixed frame to /odom_combined. Add a marker display, and set the update topic to /visualization_marker. Add a laser scan display, with the update topic set to /scan. Troubleshooting Verify laser scan In rviz, verify that the laser scan shows up, and that it makes sense. Run rosnode info leg_detector and verify that it's subscribed to the right laser scan topic. TF errors As with most TF errors, you may want to synchronize the clocks on the robot and the workstation by running this command on both: sudo ntpupdate ntp.ubuntu.com .","filename":"Applications:-Leg-Detector.md","format":"markdown","hl_body":"How to run leg_detector These instructions describe how to use the leg detector for the Turtlebot on Hydro. But, the process should be similar for other robots. Install Install the people stack: sudo apt-get ...","hl_title":"Applications: Leg Detector","id":"157cddf383f5012e844150de0e7a0a7d11036040","path":"Applications:-Leg-Detector.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Applications: Leg Detector","updated_at":"2018-09-26T13:37:19.000-07:00"},{"body":"MongoDB mongodb_store Here are some tips for using mongodb_store . PyMongo version You will need to use pymongo version 2.3: sudo pip install pymongo==2.3 Launching Launch file for using the local MongoDB daemon: < launch > < param name = \" mongodb_use_daemon \" value = \" true \" / > < param name = \" mongodb_host \" value = \" localhost \" / > < param name = \" mongodb_port \" value = \" 27017 \" / > < node name = \" message_store \" pkg = \" mongodb_store \" type = \" message_store_node.py \" output = \" screen \" / > < / launch > Changing the database / collection The constructors for MessageStoreProxy in Python and C++ have default values for the MongoDB database and collection.\nLook at the source ( Python , C++ ) to see how to pass in different values. C++ update/insert error If you are using the C++ API for mongodb_store , you might encounter an md5 error when updating a document.\nThis is due to a bug the mongodb_store::MessageStoreProxy copy constructor.\nWe have submitted a patch, so hopefully this will not be a problem in the future.\nIn the meantime, you can avoid making copies by allocating a MessageStoreProxy once in your main function and passing a pointer to it to helper classes: // main.cpp mongodb_store::MessageStoreProxy db (nh, collection_name, db_name);\nAwesomeServer server ( & db);","filename":"Applications:-MongoDB.md","format":"markdown","hl_body":"MongoDB mongodb_store Here are some tips for using mongodb_store . PyMongo version You will need to use pymongo version 2.3: sudo pip install pymongo==2.3 Launching Launch file for using the local MongoDB ...","hl_title":"Applications: MongoDB","id":"ab6cae13455308f0394f4807d7feb0c7b4b7c936","path":"Applications:-MongoDB.md","public":true,"repo":{"repository":{"id":29562936,"name":"wiki","owner_id":9121583,"owner_login":"hcrlab","updated_at":"2019-05-17T18:11:10.612Z","has_issues":true}},"repo_id":29562936,"title":"Applications: MongoDB","updated_at":"2018-09-26T13:37:19.000-07:00"}],"type":"wikis","page":1,"page_count":9,"elapsed_millis":117,"errors":[],"result_count":82,"facets":[],"protected_org_logins":[],"topics":null,"query_id":"","logged_in":false,"sign_up_path":"/signup?source=code_search_results","sign_in_path":"/login?return_to=https%3A%2F%2Fgithub.com%2Fsearch%3Fq%3Drepo%253Ahcrlab%252Fwiki%2B%26type%3DWikis","metadata":null,"warn_limited_results":false},"title":"Wiki search results"}