Feeds
Introduction to Delivery Performance Analytics
The Drop Times: The Genesis and Evolution of Token: A Conversation with Jeff Eaton
PyCharm: Django vs FastAPI: Which is the Best Python Web Framework?
Web Review, Week 2023-51
Let’s go for my web review for the week 2023-51.
Do we need to rethink what free software is?Tags: tech, foss, licensing, ethics
A bit of an older article I’m bumping into again. It lays out fairly well the current limits and issues with Free Software as it is defined today. I’m unconvinced it can be solved via licenses but the debate needs to happen… I feel that somehow it’s too much ignored.
https://mjg59.dreamwidth.org/52907.html
Tags: tech, facebook, fediverse, social-media
Looks like Meta is moving forward with more ActivityPub compatibility for Threads. This raises real questions about what they genuinely want to implement and what they’ll abandon along the way.
https://www.theverge.com/2023/12/15/24003435/adam-mosseri-threads-fediverse-plans
Tags: tech, facebook, fediverse, social-media
As Threads being connected to the Fediverse might turn into a reality, this article becomes all the more important. The question of this connection being even desirable is an important one.
https://www.viennawriter.net/blog/the-fediverse-meta-and-the-tolerance-paradox-en/
Tags: tech, web, search, ai, gpt, criticism, knowledge
When SEO and generated content meet… this isn’t pretty. The amount of good content on the web reduced in the past decade, it looks like we’re happily crossing another threshold in mediocrity.
https://infosec.exchange/@bhawthorne/111601578642616056
Tags: tech, ai, gpt, knowledge, wikipedia
The actual dangers of generative AI. Once the web is flooded with generated content, what will happen to knowledge representation and verifiability?
Tags: tech, ai, machine-learning, gpt, social-media, criticism
Here we are… We’re really close to crossing into this territory where any fiction can disguise itself for reality. The problem is that we’ll literally be drowning in such content. The social impacts can’t be underestimated.
Tags: tech, economics, business, ai, gpt
That’s a very good question. What will be left once all the hype is gone? Not all bubbles leaving something behind… we can hope this one will.
https://locusmag.com/2023/12/commentary-cory-doctorow-what-kind-of-bubble-is-ai/
Tags: tech, google, oauth, security
Interesting finding. This shows a potential issue in how identities are verified by providers.
https://trufflesecurity.com/blog/google-oauth-is-broken-sort-of/
Tags: tech, security, email
New technique for SMTP smuggling… vulnerable servers then allow to spoof while still passing DMARC checks properly. Check your providers and server configuration.
https://sec-consult.com/blog/detail/smtp-smuggling-spoofing-e-mails-worldwide/
Tags: tech, ssh, security
Interesting new attack on the SSH protocol. This is hard to achieve outside of the LAN though.
Tags: tech, version-control, git, history
Back to the history of VCS, anyone still remember and used SCCS? Well, I did use it…
https://osshistory.org/p/the-world-before-git
Tags: tech, ai, machine-learning, gpt
Interesting inference engine. The design is clever with an hybrid CPU-GPU approach to limit the memory demand on the GPU and the amount of data transfers. The results are very interesting, especially surprising if the apparently very limited impact on the accuracy.
https://ipads.se.sjtu.edu.cn/_media/publications/powerinfer-20231219.pdf
Tags: tech, ai, machine-learning, gpt, optimization
Interesting technique to speed up the generation of large language models.
https://sites.google.com/view/medusa-llm
Tags: tech, programming, object-oriented, compiler
Nice state of the art view on how dynamic dispatch is implemented in several languages. Does a good way showing the trade-offs involved.
https://lukasatkinson.de/2018/interface-dispatch/
Tags: tech, databases, distributed
An exploration of how databases work from first principles, going all the way to distributed nodes etc. Good list of topics to explore further.
https://tontinton.com/posts/database-fundementals/
Tags: tech, databases, uuid
It might not be as clear cut as sometimes assumed. With the right index UUIDv4 can still do as key in databases.
https://lu.sagebl.eu/notes/maybe-we-dont-need-uuidv7/
Tags: tech, multithreading, performance, python
This is unsurprisingly highly depend on the actual code, not only on the hardware.
https://pythonspeed.com/articles/cpu-thread-pool-size/
Tags: tech, profiling, optimization
Or why using a profiler is not as easy as it sounds. This requires quite some experience and the ability to tap in other information not present in the profile.
https://blog.nelhage.com/post/profilers-seeing-the-invisible/
before main() starts Tags: tech, elf, unix, system
Ever wondered how ELF and ld.so work? This is a good primer on the topic with a few OpenBSD specifics.
https://2023.eurobsdcon.org/slides/eurobsdcon2023-janne_johansson-ELF-binaries.pdf
Tags: tech, api, safety, c++
This is an easy mistake to make. I’d say the API isn’t helping there either, there’s an improvement to find in Cap’n’proto to make it safer.
https://blog.dureuill.net/articles/recurring-lifetime/
Tags: tech, memory, safety, rust, c++, java, python
Very interesting musing about undefined behaviors and language constraints. This is a bit Rust focused for obvious reasons but is also looking at what other languages have been doing.
https://steveklabnik.com/writing/memory-safety-is-a-red-herring
Tags: tech, c++, learning, interviews
An old post, but very much true… People who really know C++ have stared the abyss in the eye, and you can tell.
http://lbrandy.com/blog/2010/03/never-trust-a-programmer-who-says-he-knows-c/
Tags: tech, shader, 3d, simulation, physics, mathematics
Wonder how to implement such real-time simulations? This is a good summary of all the math involved. Also comes with code snippets and demos.
https://andrewkchan.dev/posts/fire.html
Tags: tech, tests, embedded
Interesting story about using unit tests by someone who thought it was a waste of time… until, they helped uncover a bug which was widespread. Also it was in an embedded context which comes with its own challenges.
https://mental-reverb.com/blog.php?id=42
Tags: tech, programming, craftsmanship
This is a good set of advices for beginners. I especially like the ones about best practices, trying different things and why it makes sense to be conservative tech wise.
https://buttondown.email/hillelwayne/archive/advice-for-new-software-devs-whove-read-all-those/
Tags: tech, technical-debt
This is indeed a more complex topic than it sounds. When someone complains about “technical debt” always inquire what it really means to them, what this is about, what are the symptoms.
https://www.foxhound.systems/blog/technical-debt-is-not-real/
Tags: tech, technical-debt, product-management, project-management, metrics
Good approach for tackling it indeed. The crux of the issue is really measuring the tech debt since it’s still a fuzzy concept and we have no good metrics for it.
https://jacobian.org/2023/dec/20/tech-debt/
Tags: management, leadership, decision-making
This is an impressive piece about decision making and leadership. I love the approach: seeking to get the decision out of the person instead of deciding for them.
https://randsinrepose.com/archives/ask-questions-repeat-the-hard-parts-and-listen/
Tags: lego, design
Fascinating article explaining how some Lego sets are designed.
https://www.theverge.com/c/23991049/lego-ideas-polaroid-onestep-behind-the-scenes-price
Bye for now!
Real Python: The Real Python Podcast – Episode #184: PyCoder's Weekly 2023 Wrap Up
It's been a fascinating year for the Python language and community. PyCoder's Weekly included over 1,500 links to articles, blog posts, tutorials, and projects in 2023. Christopher Trudeau is back on the show this week to help wrap up everything by sharing some highlights and Python trends from across the year.
[ Improve Your Python With 🐍 Python Tricks 💌 – Get a short & sweet Python Trick delivered to your inbox every couple of days. >> Click here to learn more and see examples ]
CKEditor: Drupal CKEditor 4 LTS
Joachim Breitner: The Haskell Interlude Podcast
It was pointed out to me that I have not blogged about this, so better now than never:
Since 2021 I am – together with four other hosts – producing a regular podcast about Haskell, the Haskell Interlude. Roughly every two weeks two of us interview someone from the Haskell Community, and we chat for approximately an hour about how they came to Haskell, what they are doing with it, why they are doing it and what else is on their mind. Sometimes we talk to very famous people, like Simon Peyton Jones, and sometimes to people who maybe should be famous, but aren’t quite yet.
For most episodes we also have a transcript, so you can read the interviews instead, if you prefer, and you should find the podcast on most podcast apps as well. I do not know how reliable these statistics are, but supposedly we regularly have around 1300 listeners. We don’t get much feedback, however, so if you like the show, or dislike it, or have feedback, let us know (for example on the Haskell Disourse, which has a thread for each episode).
At the time of writing, we released 40 episodes. For the benefit of my (likely hypothetical) fans, or those who want to train an AI voice model for nefarious purposes, here is the list of episodes co-hosted by me:
- Gabriella Gonzales
- Jasper Van der Jeugt
- Chris Smith
- Sebastian Graf
- Simon Peyton Jones
- Ryan Trinkle
- Facundo Dominguez
- Marc Scholten
- Ben Gamari
- Andrew Lelechenko (Bodigrim)
- ZuriHac 2023 special
- Arnaud Spiwack
- John MacFarlane
Can’t decide where to start? The one with Ryan Trinkle might be my favorite.
Thanks to the Haskell Foundation and its sponsors for supporting this podcast (hosting, editing, transscription).
CodersLegacy: Selenium: How to scroll to the Bottom of the Page (Python)
In this tutorial, we will explore how to use Selenium in Python to scroll to the bottom of a webpage gradually. Scrolling is often required when dealing with dynamically loading content or capturing data from a website that requires scrolling to access all information.
Common examples of such sites are YouTube (shorts) where videos are generated as you scroll down. Another example is e-commerce sites which display alot of products, and use lazy-loading on their images (to load the images only as you scroll down to them).
Many such sites exist, hence learning how to automate scrolling is necessary.
PrerequisitesBefore you begin, make sure you have Python and the necessary packages installed. You can install the required packages using the following:
pip install selenium webdriver_manager Setting up Selenium with ChromeDriverFirst, let’s set up Selenium with ChromeDriver. We’ll use webdriver_manager to automatically download and manage the ChromeDriver executable (Follow the link to learn how to use this module for the other browsers).
from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.service import Service as ChromeService from selenium import webdriver import time # Set up ChromeDriver service = ChromeService(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service)Next, we load up the webpage we wish to scrape (or automate). We will be using Wikipedia as an example, as its main page is usually lengthy enough to demonstrate the scroll effect.
driver.get("https://en.wikipedia.org/wiki/Main_Page")You may replace this with any other URL. The scrolling technique we will learn in this tutorial is not url-specific.
Scrolling Down GraduallyNow, let’s define a JavaScript function to scroll down gradually. This function will be executed using the execute_script function, which takes JavaScript code as a parameter in the form of a string.
= scrollHeight; if (!reachedBottom) { setTimeout(scroll, scrollInterval); } } scroll(); } scrollToBottom(); """ driver.execute_script(scroll_script) driver.quit()" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button">scroll_script = """ function scrollToBottom() { var scrollHeight = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight); var scrollStep = 200; // Adjust this value to control the scroll speed var scrollInterval = 100; // Adjust this value to control the scroll interval function scroll() { window.scrollBy(0, scrollStep); var reachedBottom = window.innerHeight + window.scrollY >= scrollHeight; if (!reachedBottom) { setTimeout(scroll, scrollInterval); } } scroll(); } scrollToBottom(); """ driver.execute_script(scroll_script) driver.quit()Adjust the values of scrollStep and scrollInterval to control the scroll speed and interval between scrolls, respectively. If your internet connection is slow, or the website is heavy/slow, you may want to reduce the scroll speed (by lowering interval and scroll step) so that the site loads alongside the scroll.
This code may seem a little complicated, but just remember there is only one “core” line of code here, the window.scrollBy function.
window.scrollBy(0, scrollStep)This function is responsible for the actual “scrolling”. The rest of the code is simply built around this line, to ensure we don’t scroll beyond the limit of the page. The window object contains useful information about the page which can be used to determine when we have reached the end.
= scrollHeight;" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button">var reachedBottom = window.innerHeight + window.scrollY >= scrollHeight;The above line is an expression which evaluates to True if we have reached the bottom of the page. It is calculated by checking if the sum of the current viewport height and scroll position is equal to or greater than the total scrollable height.
This marks the end of the Selenium Tutorial on How to scroll to the Bottom of the Page. Any suggestions or contributions for CodersLegacy are more than welcome. Questions regarding the tutorial content can be asked in the comments section below.
The post Selenium: How to scroll to the Bottom of the Page (Python) appeared first on CodersLegacy.
LostCarPark Drupal Blog: Drupal Advent Calendar day 22 - Working Groups
Welcome back to the the Drupal Advent Calendar, and we’re down to the last few doors. For door 22, we are joined by Jordana Fung (jordana), who tells us about Community Working Groups.
Giving back while growing too: volunteering within DrupalWhen I decided to go to my first Drupal event, I was scared, anxious and unsure. I decided to go outside of my comfort zone and looked up an event close to where I’d be while visiting family in the US. I am not exaggerating when I say that this was one of the best decisions I’ve ever made in my life.
I fell in love with the community then and there. There’s…
Tags