The correct answer is “Bob.” Congrats to the 10% who got it right — those few brave dreamers.
Blurbs
-
Show Only Appendix ToC
If you have ever wanted to create a Table of Contents section in appendix without the contents from the main paper — here is how you can do it.
\appendix \clearpage % Start on a new page % Local command to print the header without affecting ToC or bookmarks \newcommand{\localheader}[1]{% \vspace*{-\topskip}\vspace*{\dimexpr\topskip-\baselineskip\relax} {\large\bfseries #1\par} \vspace{\baselineskip} } % Print the local header \localheader{Appendix Contents} \begin{center} \begin{minipage}{0.9\textwidth} \startcontents[appendix] % Start a new table of contents for the appendix \printcontents[appendix]{}{0}{% Print the appendix ToC \renewcommand{\contentsname}{}% Remove default "Contents" heading } \end{minipage} \end{center}
The good part is that it still maintains proper bookmarks in the exported pdf — and you can still use
\tabaleofcontents
while drafting to get the complete Table of Contents. -
Saving Money by Rounding Expenses Up
I honestly am not a person who is on TikTok or Instagram really, so I know I wouldn't get a TikTok account. I never even installed them; I don't have an account on them. But YouTube is something that I use often. YouTube Shorts, it's hard to avoid those. One of the most interesting things I learned on YouTube was saving money by rounding things up.
I've always been an extremely meticulous budgeted person. Like, I record every single money that goes in and out, and I divide it. Automatic apps don't work for me because I often use Venmo and Splitwise and things like those. I've always been the person who would ignore money coming in from, say, research studies or things like those, just so I have this nice net of savings that don't remain visible to me. I've always been this way, even with my allowance as a kid.
But one of the newest ways I've found to kind of save money is I round my transactions up. So if I spend $5, I mark it as $10 in my budgeting database in Notion. Basically, it still stores $5, but what I see is the sealed amount, and that sealed amount is $10. Or instead of $45, it is $50, or instead of $60, it is $100. It's kind of the same way of saving change in pennies, but instead in dollar notations. I really like that. I just wanted to share it.
-
I am Stuck in a Loop of Datasets ↔ Techniques
I keep jumping between - I do not trust the evaluation, the data is poor, to the dataset I created only has 100 samples.
Over the past three years, starting in 2021, I've had multiple ideas about the best ways to evaluate certain processes Show information for the linked content we currently do with LLMs. Whether it be general evaluation on one single task, multi-run evaluations, theory of mind evaluations Show information for the linked content , or something like RAG where you're retrieving over a set of documents, I've always had those ideas and really wanted to implement them.
I think the problem I keep getting stuck on is that data sets don't actually make sense to me. Sure, there's a lot of conversation about how many of these data sets are useless and companies need private data sets, etc. But you're publishing a paper on companies' private data sets, you're publishing it on public data sets, and so many public data sets right now are very much just generated by large models. That makes no sense to me because you're using them to evaluate these large models.
Every single time I “look at the data”, the thing that everyone asks you to do, and the thing that I've been doing throughout my PhD, I find it disappointing. Then I go into this realm of "Oh, so I should create it myself," and that is something that I really like to do. I have done it before, but I think the thing that is holding me back is this idea of how many data samples the data set needs to have for it to be a viable data set to be published, and for the research that is done using that data set to be published and be useful.
I think I have been inflating the number in my head, whereas some of the data sets that I like are barely 500 samples. Those that I like recently are like 100 to 150 samples. I think I need to change my mindset about creating a data set and putting it out there. If I'm running experiments on it and putting the subsequent publication out there, it doesn't need to be a data set that has thousands of samples.
I do have an eye for good data and good data curation. I should be able to create a good data set that is just 150 samples and is still a viable prospect in its usage and tells something useful about the model that we are using it on.
-
Please Don’t Have 10 Textareas in Review Forms
Another summer, another round of paper reviewing issues. I kinda just wanted to record this twitter conversation somewhere, so that I have someplace to point people to when they ask me what I want to be changed in reviewing.
My hot take is reviews should be a single text box. Asking people to fill in 10 text boxes for a paper increases the chances that no one wants to do it.Especially looking at NeurIPS Datasets & Benchmarks, why does it have NINE text areas other than "Summary And Contributions" and "Review".ACs have said that it allows inexperienced reviewers to decompose the review.
I guess it is the way I review which makes it really hard to do this format. I feel guilty about writing a single line in the textboxes there, but I review line by line on ipad (similar to overleaf comments, just in pdf format) and would very much prefer to be able to extract those and just paste that in. For example, I often write “typo: fix this word” or “cite X here, which negates the results you are obtaining, talk about why that might be the case” inline. Extracting this into separate content areas (especially with overlaps in purpose) feels really overwhelming.
Yanai here makes a point about highlighting global, aka, main strengths/weaknesses of the paper. And that, eventually these are the things the AC should focus on, and reviewers should make it easier for the AC to detect these.
And I do not disagree, but for a review load of >4 in a month, I end up dreading the second pass requirement, instead of being able to actually provide the review. I have always wondered if there's an opportunity to run reviewing experiments in newer conferences like @COLM_conf where people can review the paper inline like @hypothes_is/@askalphaxiv, and you tag comments with their kind (suggestion, missing etc) -- would that improve the reviewing culture? It would still be easy for AC’s to filter out the main global points based off tags, but it doesn’t require a second pass? As a cherry on top, it is also hard to do unlike the GPT based summary reviews of the paper?
Something I did not mention in that conversation is, I often want to extract these highlights, and ask GPT/Claude/LLM of the month to separate them out into categories to put into those text areas — but the outcome doesn’t ever sound natural; and there are always slight hallucinations that are difficult to catch. So, if that doesn’t work as well, maybe we try to change the review UX itself?
-
Add packages to ChatGPT code interpreter environment
TIL you can add unavailable packages into ChatGPT environment (for example, if you want your output to use
seaborn
). You can use the custom GPT pip install to download these libraries that calls remote actions in the background.From Simon Willson’s blog post:
If there's a package that you want to use you can grab the.whl
files for it from PyPI, upload them to ChatGPT and it will install them into its own environment for the duration of that chat session.If a library has dependencies you have to upload those, too.
-
Some people have a knack for interesting math problems
I have read this and calculated it uptil , but this is still so unintuitive for me.
-
The 500 Day Duolingo Streak
Honestly, I am so proud of myself for this. I actually got here even with my PhD defense and job search. Yes, it took multiple streak freezes and yes, it took some cheesing (do lesson 1 unit 1 on days you are really not in a mood to learn anything new), but I have gotten so close before and missed. This time I did it!
-
Apple Vision Pro Demo
I demo'ed the Appel Vision Pro yesterday. Freeform is amazing! You've an 80" whiteboard with you. I liked that the gestures worked from my lap (though I had to lift my hands up from my legs) & I had no motion sickness (which was surprising, or maybe it is because I wasn’t moving). Field of vision is lower than expected, eye tracking struggled at edges (quite a lot, I couldn’t really resize large windows to be smaller because they were at the edges). Passthrough is meh, edges are quite blurry.
There is a significant amount of noise added due to the optical inserts I guess? And that also ends up showing as a blurry black line between my eyes. That part was a bit disappointing. But man, a 90 inch digital whiteboard that works as well as iPad, isn’t generally cheap anyway, and that was probably the most awesome part. Like, the immersive videos are nice, so are the photos, but those are not really “common use-cases”.
-
Pydantic models for JSON responses
After fumbling around with various bloaty or experimental libraries, I was recommended to test out
instructor
and it has been possibly the best library I could have asked for. It is clean, small, clearly scoped, does not do anything on its own, has no hidden endpoints.This is very much a recommend!
-
Copy folders from one gdrive to another
You just graduated and your university is downgrading you to the 15GB plan on google drive?
And you have 200GB on there?
And you do not want to download all of it using google takeout?
You can use this method.
- Share the folder to your personal account
- Wait at least 2 days for permissions to propogate
- Add shared folder as shortcut in My Drive
- Open colab, paste the following code, modify the folder names and run
- Give permissions to access drive
- Make sure you note down which files are not copied — because google suite specific files are not (slides, sheets, docs etc) — but they are usually tiny anyway.
from google.colab import drive import os print('Mounting Google Drive...') drive.mount('/gdrive') src_path = '/gdrive/MyDrive/UMich' #@param {type: 'string'} assert os.path.exists(src_path), f"Source '{src_path}' doesn't exist!" target_path = '/gdrive/MyDrive/Copied From UMich' #@param {type: 'string'} os.makedirs(target_path, exist_ok=True) assert os.path.exists(target_path), f"Target '{target_path}' doesn't exist!" target_path = os.path.join(target_path, os.path.basename(src_path)) print(f'Copying from "{src_path}" to "{target_path}"...') os.makedirs(target_path, exist_ok=True) !cp -rn "$src_path"/* "$target_path" # also work when source is a shortcut