Sign in

James A Campbell

@rtbecard.bsky.social
1.8K followers 1K following 443 posts

(he/him) Former bird dude, current fish guy; currently based in Berlin. I'm into ecology, stats, bioacoustics, and artificial light. Currently working as part of this ETN: www.msca-ribes.eu

PostsRepliesMedia
James A Campbell @rtbecard.bsky.social · 21/09/2026
Its obviously AI, as both pre-prints are on ridiculously niche topics that I struggle to get others in my field interested in 🤣 and I got this messages within a day after the pre-prints went up. Also, there is an AI company called Primary that seems to deal in AI generated news 🙄.
Screen grab of the company "Primary" on linked in.  "Primary" describes itself as a AI-native news company, as sad as that sounds.
010
James A Campbell @rtbecard.bsky.social · 21/09/2026
Any one know what this is? For two recent pre-prints, I've gotten AI agents posing as "science journalists" emailing me for media requests. I'm wondering what the hustle is here.... Both times, the agent identified itself as "Conor Watkins" from "Primary News". #OpenScience #SciComm
Hi James, I am a science journalist writing about your new approach to tracking aquatic animal movement using acoustic telemetry arrays. I noticed you developed EK-TOA, a method combining time-of-arrival positioning with an extended Kalman filter, which offers faster and more accurate tracking than existing state-space models for long-term fish monitoring. I would appreciate the chance to ask a few brief questions by email. Would you be open to a short asynchronous interview? 

Conor Watkins
Senior Reporter
Primary News
111
James A Campbell @rtbecard.bsky.social · 27/08/2026
(2/2) In the peer review history here, there was just a single anonymous reviewer, who opened by saying "I cannot review the main academic portion of this manuscript". The bar for "peer review" in this journal is really unacceptable... this is really shameful.
000
James A Campbell @rtbecard.bsky.social · 27/08/2026
The authors used a fucking web article from pethelpful.com in their "literature review of national animal welfare regulations".
screenshot of the authors "literature review" which contains a printout of an article from pethelpful.comthe front page of pethelpful.com
000
James A Campbell @rtbecard.bsky.social · 27/08/2026
This fucking paper even made it to the journals cover!? Please stop allowing anonymous peer review... There needs to be some level of accountability on how absolute shit gets through the peer review system.
100
James A Campbell @rtbecard.bsky.social · 27/08/2026
Here's what I wrote when I peer reviewed it in an earlier submission... My jaw is on the floor as to how this got accepted...
An excerpt from my reviewer comments:

Beyond the fundamental flaws in the papers premise, the quality of writing and crafting of this paper is extraordinarily poor. It is below the quality of what would be accepted as an assignment in a first-year undergraduate course. Briefly, the authors routinely used html links to news websites as references for animal welfare law (the most egregious being the pethelpful.com and mythbusters TV show reference); the authors somehow thought showing images of their cat (in a total of 21 figure panels!) was a suitable way to report the effects of refraction to the reader; the authors spent a significant portion of the main MS and supplementary material on a discussion of Adolf Hitler's perspectives on spherical aquaria and animal welfare law in Nazi Germany.
101
James A Campbell @rtbecard.bsky.social · 13/07/2026
I wrote up my solution for figure scaling in rmarkdown. `fig.width` and `fig.height` set the output size and the new `scale` parameter scales the figure contents. Paste the code for the option hook in the first chunk, and the scale parameter will be available in all the following chunks. #rstats
Plots with variable scale factors and constant size.

```{r, fig.width=2, fig.height=2}
plot(pressure)
```
```{r, fig.width=2, fig.height=2, scale = 0.5}
plot(pressure)
```Image of output from rmarkdown figure scaling example```{r setup, include=FALSE}
# Set chunk hook
# This will automatically adjust the figure parameters for you
knitr::opts_hooks$set(fig_scale = function(options) {
  
  # --- Store out_width
  # HTML and latex output require different units
  out_width <- switch(knitr::opts_knit$get("rmarkdown.pandoc.to"),
    # html requires pixels
    "html" = sprintf("%ipx", options[["fig.width"]] * options[["dpi"]]),
    # Latex requires inches
    "latex" = sprintf("%.fin", options[["fig.width"]])
  )
  
  # Calculate new fig width and height values
  fig_width <- options[["fig.width"]]/options[["scale"]]
  fig_height <- options[["fig.height"]]/options[["scale"]]
  
  # Store chunk options
  options$out.width = out_width
  options$fig.height = fig_height
  options$fig.width = fig_width
  # Return the modified options
  return(options)
})

# Set figure scaling hook for following chunks
knitr::opts_chunk$set(scale = 0.8, fig_scale = TRUE)
```
150
James A Campbell @rtbecard.bsky.social · 13/07/2026
Following up on this... I tried this in my own package, and it works wonderfully. Here, `last` is substituted for the length of the vector, and `fs` is the sample rate of the time series. Seems to work great, and its not clear to me if there is any problems that it might cause down the line.
Finally, indexing can be done with the special keywords fs and last. fs will be substituted fro the sample rate and last will give the final sample in the signal.
```{r}
# Extract last 0.5 seconds of data from the pressure channel
head(sig[(last-fs*0.5):last, "p"])
```
See ?Signal for a detailed overview with examples on how indexing works.
000
James A Campbell @rtbecard.bsky.social · 27/06/2026
I finally found a nice solution for scaling figures in rmarkdown: Setup a chunk options hook which dynamically sets the out.width, fig.width and fig.height options. fig.width=7, scale=0.8 now returns a figure 7 in wide, but the contents will be scaled down by a factor of 0.8. #Rstats
Screenshot of codeblock:

# Set chunk hook
# This will automatically adjust the figure parameters for you
knitr::opts_hooks$set(fig_scale = function(options) {
  # Calculate out_width
  out_width <- sprintf("%.fin", options[["fig.width"]])
  fig_width <- options[["fig.width"]]/options[["scale"]]
  fig_height <- options[["fig.height"]]/options[["scale"]]
  # Store chunk options
  options$out.width = out_width
  options$fig.height = fig_height
  options$fig.width = fig_width
  return(options)
})

# Set figure scaling hook
knitr::opts_chunk$set(scale = 0.8, fig_scale = TRUE)

# Set random seed for reproducible plots
set.seed(1)Example chunk where fig.width=7 and fig.height=5The resulting figure which has a width of 7 inches and the contents are scaled by a factor 0.8, so it matches well with rest of the document's text size.
142
James A Campbell @rtbecard.bsky.social · 15/06/2026
One of the more strange Amazon AI slop products I've found. People don't really put their chickens in hamster balls, right? ...the reviews for this are on the fence...
100
James A Campbell @rtbecard.bsky.social · 23/05/2026
Clicked on the article... Was definitely not expecting to discover that the time magazine website also has an integrated AI chatbot?! Do we really have to put a chatbot in literally everything?
010
James A Campbell @rtbecard.bsky.social · 03/05/2026
Simultaneously adorable and sad. I hope you find your little ewok 🥲.
Lost dog poster, featuring a photo of the cute dog alongside a photo of a very similar looking ewok (the teddy bear aliens from the planet moon endor in return of the jedi).
010
James A Campbell @rtbecard.bsky.social · 21/04/2026
This is actually insanely helpful.
030
James A Campbell @rtbecard.bsky.social · 04/03/2026
This guy with a bachelor degree uploaded 120 research items back dated since Jan 2020, covering medicine, AI, engineering, physics, pop genetics ... All with the same awful AI template. Researchgate already felt stagnant... but i don't see how it can survive in the academic-AI-slop era.
100
James A Campbell @rtbecard.bsky.social · 27/02/2026
as if wine weren't confusing enough... half the time when I google an issue, I just end up with search results relating to wine *tasting* 😔
120
James A Campbell @rtbecard.bsky.social · 27/02/2026
Here's my take on a Linux wrapper for Innovasea's Fathom Connect software. Seems to work fine on Ubuntu 24.04 for converting vdat files to csv. gitlab.com/RTbecard/fat... Shout out to @obrien.page for discovering that Fathom Connect works in wine. #AcousticTelemetry
Screenshot of the linked gitlab repository readme.
252
James A Campbell @rtbecard.bsky.social · 12/02/2026
#linux users rejoice! OnlyOffice is FINALLY adding support for multi-page layouts. It's currently the #opensource office suite that has the best compatibility with MSOFFICE docx... but has never allowed you to view more than one page of a doc at a time (which was frankly, insane).
020
James A Campbell @rtbecard.bsky.social · 03/02/2026
I'm surprised R doesn't already have ternary operators... especially since they added anonymous functions somewhat recently. Here's my prettier --- but probably an awful idea --- take on the user-implemented ternary operator.
010
James A Campbell @rtbecard.bsky.social · 28/01/2026
Also, this panel is titled "top 15 AI methods" and includes PCA, logistic regression, and nearest neighbours!? I'm so confused...
010
James A Campbell @rtbecard.bsky.social · 30/12/2025
They calculated the AI CO2 training cost by dividing by the number of monthly queries. So the more total chatGPT queries, the "lower" the carbon foot print for AI writing. Pretty dumb metric in the context of climate change.
010
James A Campbell @rtbecard.bsky.social · 23/12/2025
"...we occasionally have to mention specific concepts before properly introducing and/or defining them---we ask the reader to bear with us in these cases." It's always a pleasure to read papers where the author explicitly empathizes with the reader.
010
James A Campbell @rtbecard.bsky.social · 22/12/2025
For the underwater noise folk. Oceannoise2026 conferende dates. Once again in Barcelona (pretty happy about that). 2026.oceanoise.com
000
James A Campbell @rtbecard.bsky.social · 21/12/2025
I've been patiently waiting for the right moment to try out the legal cannabis i grew over the summer... This is perfect👌
Screenshot of the youtube thumbnail for:  world science festival --- string theory in 2037
031
James A Campbell @rtbecard.bsky.social · 21/12/2025
Their AI toolset comes with an AI detector... And also an AI detector bypasser!? The intended use-case of this platform is pretty transparent.
000
James A Campbell @rtbecard.bsky.social · 30/11/2025
The Christmas season has officially started in Berlin. Tis the season.
Child swimming in dirt in front of refuse at the Swedish Christmas market in Berlin.
010
James A Campbell @rtbecard.bsky.social · 29/09/2025
Is anyone old enough to remember how videogame piracy protection worked in like 1994? On my Amiga, to play "Indiana jones", I had to open the instruction manual to the stated page and read off a code. This is basically how the "new" 2-factor authentication works at Freie University (Berlin) now...
110
James A Campbell @rtbecard.bsky.social · 25/09/2025
Has anyone heard of "The Egyptian Journal of Remote Sensing and Space Sciences"... reviewing job applications and this journal came up at least twice... Is this a sketchy predatory journal? Or is it a legit remote sensing journal with a weirdly specific name? #GIS
Cover image of the journal "The Egyptian Journal of Remote Sensing and Space Sciences".
000
James A Campbell @rtbecard.bsky.social · 09/09/2025
Just discovered the subreddit r/AdamDriverCats
000
James A Campbell @rtbecard.bsky.social · 25/08/2025
My google newsfeed was already like 90% grocery store tabloids... But now it's AI boosted grocery store tabloid trash 😮‍💨
000
James A Campbell @rtbecard.bsky.social · 04/07/2025
Last Aquatic Noise conf. post... Slide from John Potter's keynote. Like 9/10 ppl see only squares in this image... But in cultures where they live in round huts surrounded by round livestock fences, most of them can only see circles. Yes, I promise there are infact circles in this image...
John Potter presents an illusion where the shape you see, circle/square, is largely affected by your culture.
041
James A Campbell @rtbecard.bsky.social · 04/07/2025
A depressing closing, aquatic noise conference (Prague). #bioacoustics #academiclife Discussion on the confrnc's past funding from US agencies and how it's gone for the foreseeable future. Next conf will need to signif cut costs and there are discussions on alternate funding models.
110
James A Campbell @rtbecard.bsky.social · 02/07/2025
Best poster at #AN2025. Tillman Spellauge used lasers to measure the resonance frequency of superficial sensory hair cells on snapping shrimp. He showed the hairs are sensitive to sounds around 2kHz. This supports previous observations that they can hear *without* their statocysts (i.e. ears).
262
James A Campbell @rtbecard.bsky.social · 30/06/2025
#AN2025 conference, Prague: William Wu just presented some underwater measures we made in the river Spree, Berlin. The spectrogram shows what a passing ubahn sounds like from the perspective of a fish in the Spree. #bioacoustics (Repost as i wrote the wrong last name for William the first time...🤦)
040
James A Campbell @rtbecard.bsky.social · 30/06/2025
(1/3) Johannes Baltzer (i believe?) presents the most beautiful example of modal dispersion i have ever seen. A seimsic airgun recorded at a far distance. (See thread) #bioacoustics #AN2025
210
James A Campbell @rtbecard.bsky.social · 24/06/2025
I know I'm out of touch from most of society with my hatred for all things AI... ...but if there is 1 place on the internet I expect to read/listen to human beings, it would be the fucking github documentation page for open source bioacoustic analysis software.
Screenshot of the birdNET github documentation page.Screenshot showing an AI generated podcast interview (audio) on the introduction page of the birdNET documentation.
110
James A Campbell @rtbecard.bsky.social · 21/06/2025
If I wanted to reproduce this excellent figure (Bucker 1964) in my own paper, what would be the proper etiquette? Can I just remake a high-res version, then mention in the caption its a remake of Bucker 1964, or are there more complex copy-right issues here?
220
James A Campbell @rtbecard.bsky.social · 18/06/2025
I want to give a shout-out to modern CSV. It reads and edits csv files... and *NOTHING* else. This means no stupid errors in your csv files due to formatting you never asked for --- yes, you can go to straight to hell excel auto date formatting! #rstats #academiclife www.moderncsv.com
2201
James A Campbell @rtbecard.bsky.social · 17/03/2025
New #FishSci #AcousticTelemetry positioning paper: PMC-TOA positioning. I used adaptive importance sampling & mixture distributions to position fish in environments prone to tag reflections. Mixed with post-processing, this gives great tracks! doi.org/10.1111/2041...
A comparison of PMC-TOA & CTCRW and YAPS within a case study on smolt migrations.  Here, YAPS consistently failed to fully converge and didn't return standard error values (i.e. no confidence ellipses).A comparison of PMC-TOA and TDOA positioning applied to a smolt migration dataset.  Positions are post processed with a Kalman filtered CTCRW model.  Tag reflections resulted in incoherent tracks for TDOA positioning.Satellite image of the study area where the case study data was collected and which the simulated study was based on.  The fishpass and spillway are hard structures and likely culprits for causing the reflected tag transmissions detected across the receiver array.
1154
James A Campbell @rtbecard.bsky.social · 16/03/2025
Just discovered r/aww. Amazing. www.reddit.com/r/aww/s/St3k...
A photo of the most heart-melting dog you have ever seen.You thought the previous photo was the cutest thing you had ever seen... This photo zooms to reveal the dog walks around in a dog-wheel chair contraption.  Plus cuteness points.The furry cute wheelchair dog is now laying on a pile of brown fur, staring into the camera.
010
James A Campbell @rtbecard.bsky.social · 12/03/2025
On behalf of Canada, I'd like to apologize to all Dutch ppl... I had no idea we culturally appropriated your beloved stroop waffles. In typical fashion, it seems like we just added maple syrup and called it Canadian (which honestly sounds like an upgrade).
Photo of Canadian caramel waffles in toronto airport, which bears a shameless resemblance to Dutch stroop waffles.
010
James A Campbell @rtbecard.bsky.social · 13/01/2025
Very happy to read my institute newsletter this morning and see IGB Berlin [@leibnizigb.bsky.social] has stopped posting on twitter.
011
James A Campbell @rtbecard.bsky.social · 23/12/2024
Bavarian festive junk food i spotted in a small town grocery store. Pretzel shaped salami, with very... traditional male targeted advertising.
020
James A Campbell @rtbecard.bsky.social · 17/12/2024
I've been using jetbrains mono, and absolutely fell in love with it. Wonderful ligatures, and I can squeeze so much code on my screen while remaining easily readable. I'm also aware of fira code. Curious to know if anyone knows of other code-friendly mono fonts out there? #R #Rstats
Screenshot showing some example jetbrains mono font in Rstudio.
062
James A Campbell @rtbecard.bsky.social · 09/12/2024
Does anybody else use makefiles in their #R / #RStats analysis workflows? I'm obsessed with them... huge time saver when you have large collections of dependent scripts. Modify your your code, press build, and all outputs are automatically updated. I wish I figured this out years ago...
Example makefile code in Rstudio (1/4)Example makefile code in Rstudio (2/4)Example makefile code in Rstudio (3/4)Example of using a makefile to run an analysis in R.
492
James A Campbell @rtbecard.bsky.social · 20/11/2024
I feel like dark times are ahead for academic writing... I have never once googled chatgpt... But google autocomplete is assuming i want to write my thesis with it!? How many students had to ask this for it to show up in my autocorrect list?
Screenshot of google search autocomplete suggestions for the query "can i write".  The first suggestion is "can i write my thesis with chatgpt".
130
James A Campbell @rtbecard.bsky.social · 23/10/2024
For biologists wondering why understanding the physics is relevant: Here is a spectrogram recording of a seismic air gun (see alt txt). The "J" shape is a result of modal dispersion, a consequence of normal mode propagation.
Figure 4 from Streever et al. (2016) Changes in Fish Catch Rates in the Presence of Air Gun Sounds in Prudhoe Bay, Alaska.  It shows how modal dispersion transforms an impulsive seismic survey blast into a downward sweeping tone.
000
James A Campbell @rtbecard.bsky.social · 17/10/2024
#Innovasea president on why they don't sell open protocol receivers to north america: it would be too confusing for customers... 🤔 The panel discussion at #ETN2024 was transcribed and should be available at some point. #fishsci #fishsky #acoustictelemetry
photo of panel discussion with acoustic telemetry manufacturers
122
James A Campbell @rtbecard.bsky.social · 16/10/2024
Jelger Elings presents the "good intentions" of the upcoming Swiss telemetry network at the #ETN2024 conference in Spain. #RIBES #FishSci #Fishsky
000
James A Campbell @rtbecard.bsky.social · 29/09/2024
For the sake of my home-office mental health, i take occasional r/chonkers breaks through the workday. This is peak internet.
photos of chonkers:  obese cats starting a diet
010
James A Campbell @rtbecard.bsky.social · 22/08/2024
Do you work with large #acoustictelemetry networks? Ed Lavender just put out a new model for tracking the paths of aquatic animals through these networks. You can: - Try the new R package here: buff.ly/4dDzcPW - Check out the preprint here: buff.ly/3AA0ibR #fishsci #fishsky
0138