Category: News
#! code: DrupalCon Prague 2022
Last week I visited the city of Prague to attend the European DrupalCon 2022. The even was held between September 20th and 23rd, and was attended by over 1,200 people.
This was my first physical conference since DrupalCamp London 2020, and the first DrupalCon I have attended since DrupalCon Dublin 2016. Despite the worries about covid I was still pretty exited to attend the event. I arrived on Monday night and as the event didn’t start properly until Tuesday afternoon it gave me a small chance to explore the city of Prague before the conference started.
There were so many talks, sessions, meetings, and events during DrupalCon that I could write for pages and pages about the conference. I am quite sure, however, that no one would actually read all of that I’ll just post a couple of highlights from each day and provide a sum up at the end.
Tuesday
After the initial welcoming talk the conference started with an introduction to some of the initiatives that are being worked on at the moment, each one introduced by a member of the initiative team. The initiatives discussed where CKEditor 5, project browser, project update bot, GitLab integration, localize.drupal.org, distributions and recipes, and automatic updates.
Andy Wingo: on “correct and efficient work-stealing for weak memory models”
Hello all, a quick post today. Inspired by Rust as a Language for High Performance GC Implementation by Yi Lin et al, a few months ago I had a look to see how the basic Rust concurrency facilities that they used were implemented.
One of the key components that Lin et al used was a Chase-Lev work-stealing double-ended queue (deque). The 2005 article Dynamic Circular Work-Stealing Deque by David Chase and Yossi Lev is a nice read defining this data structure. It’s used when you have a single producer of values, but multiple threads competing to claim those values. This is useful when implementing per-CPU schedulers or work queues; each CPU pushes on any items that it has to its own deque, and pops them also, but when it runs out of work, it goes to see if it can steal work from other CPUs.
The 2013 paper Correct and Efficient Work-Stealing for Weak Memory Models by Nhat Min Lê et al updates the Chase-Lev paper by relaxing the concurrency primitives from the original big-hammer sequential-consistency operations used in the Chase-Lev paper to an appropriate mix of C11 relaxed, acquire/release, and sequentially-consistent operations. The paper therefore has a C11 translation of the original algorithm, and a proof of correctness. It’s quite pleasant. Here’s the a version in Rust’s crossbeam crate, and here’s the same thing in C.
I had been using this updated C11 Chase-Lev deque implementation for a while with no complaints in a parallel garbage collector. Each worker thread would keep a local unsynchronized work queue, which when it grew too large would donate half of its work to a per-worker Chase-Lev deque. Then if it ran out of work, it would go through all the workers, seeing if it could steal some work.
My use of the deque was thus limited to only the push and steal primitives, but not take (using the language of the Lê et al paper). take is like steal, except that it takes values from the producer end of the deque, and it can’t run concurrently with push. In practice take only used by the the thread that also calls push. Cool.
Well I thought, you know, before a worker thread goes to steal from some other thread, it might as well see if it can do a cheap take on its own deque to see if it could take back some work that it had previously offloaded there. But here I ran into a bug. A brief internet search didn’t turn up anything, so here we are to mention it.
Specifically, there is a bug in the Lê et al paper that is not in the Chase-Lev paper. The original paper is in Java, and the C11 version is in, well, C11. The issue is…. integer overflow! In brief, push will increment bottom, and steal increments top. take, on the other hand, can decrement bottom. It uses size_t to represent bottom. I think you see where this is going; if you take on an empty deque in the initial state, you create a situation that looks just like a deque with (size_t)-1 elements, causing garbage reads and all kinds of delightful behavior.
The funny thing is that I looked at the proof and I looked at the industrial applications of the deque and I thought well, I just have to transcribe the algorithm exactly and I’ll be golden. But it just goes to show that proving one property of an algorithm doesn’t necessarily imply that the algorithm is correct.
The Walking Dead Game Walkthrough PART 11
If you like this then please – Like & Share & Don’t forget to Follow us for more video.
Follow us on dailymotion – https://www.dailymotion.com/vintage-era
Released Ukrainian prisoner of war reveals torment at the hands of Russians
Jetzt auch mit Logo. Just Cause 3 #14 (Part 5)
Genre: Action
Entwickler: Avalanche Studios
Publisher: Square Enix
Veröffentlichung: 01.12.2015
Offizielle Seite: https://justcause.square-enix-games.com/
Game-Tags: #JustCause3 #Action #Abenteuer
Ganze Reihe: https://dailymotion.com/playlist/x7left
Weitere Lets Plays: https://saschatee.de
Twitch: https://www.twitch.tv/satishu
Twitter: https://twitter.com/SaschaTee
Facebook: https://www.facebook.com/saschateelp
Mastodon: https://mastodon.cloud/@SaschaTee
The Walking Dead Game Walkthrough PART 10
If you like this then please – Like & Share & Don’t forget to Follow us for more video.
Follow us on dailymotion – https://www.dailymotion.com/vintage-era
FOR
Vintage-era
The walking dead game
How to play
american horror story
The Walking Dead Game Walkthrough
the walking dead: survivors gameplay
the walking dead game trailer
zombie games
zombie survival gameplay
zombie games pc 2022
top zombie games 2022
best zombie games android 2022
zombie games xbox
zombie games gameplay 2022
Novela Génesis – Capítulo 247 hablado español latino (Penúltimo)
(Capitulo 81 – 150) https://www.dailymotion.com/playlist/x7e1w0
(Capitulo 151 – 248) https://dailymotion.com/playlist/x7haca
Génesis hablado en español latino TVN – Capítulo 247 completo
Serie basada en el libro de “Génesis”. Una producción que contará desde la creación del mundo hasta historias clásicas como Caín y Abel, el Arca de Noé, la Torre de Babel, Abraham, y terminando con la historia de José de Egipto. ¡El origen de todo, contado en una serie extraordinaria! El hombre busca constantemente respuestas y se cuestiona todo el tiempo con la esperanza de explicar los misterios del mundo. Y para comprender el presente, es necesario conocer el pasado. ¿Qué es la vida humana? De donde venimos ¿Cómo aparecieron las bellezas de la naturaleza? ¿Cuál es el origen de todo lo que conocemos? Son enigmas que la sobreproducción Génesis busca retratar al público a través de una trama épica y sin precedentes en la televisión brasileña. Desde la creación del mundo, pasando por la gran inundación y la construcción de la Torre de Babel, la telenovela presenta viejas historias, contadas y transmitidas de generación en generación, que exploran el origen de la humanidad. Las disputas entre las luces y las sombras, las intrigas familiares y los milagros emocionantes conmoverán a los espectadores de todas las edades, haciendo que las noches de la semana sean mucho más atractivas. Dividida en fases, esta gran obra de teledramaturgia cuenta con escenarios deslumbrantes, personajes con fuerte identificación con el público y una trama profunda que promete fuertes emociones desde el principio hasta el final de cada capítulo. Asocie su campaña con grandes valores y acerque su marca al corazón de la familia con esta nueva e increíble producción.
Sarala Sagar Receives Heavy Inflow, Gates Opened Automatically _ V6 News
కేజీ 16 తులాల బంగారం | ప్లాస్టిక్ బతుకమ్మ 13 వేలు
https://youtu.be/jxSEIgH0Adc
దసరాకు లీడర్ల దావత్ లు
https://youtu.be/m62MRVKcYHw
వచ్చిండు..పొయిండు
https://youtu.be/rWESfB2sEnA
ప్లాస్టిక్ బతుకమ్మ 13 వేలు
https://youtu.be/r6VmIkb0G3Y
నిన్న నై – ఇయ్యాల జై
https://youtu.be/04ziure8U7Q
► Subscribe to V6 News : https://www.youtube.com/c/V6NewsTelugu
► Subscribe to V6 Life : https://www.youtube.com/c/V6Life
► Follow Us On Dailymotion : https://www.dailymotion.com/v6newstelugu
► Like us on Facebook : http://www.facebook.com/V6News.tv
► Follow us on Instagram : https://www.instagram.com/v6newstelugu/
► Follow us on Twitter : https://twitter.com/V6News
► Visit Website : http://www.v6velugu.com/
► Join Us On Telegram : https://t.me/V6NewsTelugu
Watch V6 Programs Here
►Teenmaar : https://rb.gy/qn91pg
►Trending Videos : https://rb.gy/f6i0x2
►Top News : https://rb.gy/wqjeun
►HD Playlist : https://rb.gy/veit87
►Innerview : https://rb.gy/83izwa
►Medaram Jatara : https://rb.gy/mn4tu7
►Chandravva : https://rb.gy/nja3cl
►Spotlight : https://rb.gy/4lfm9s
►Dhoom Thadaka : https://rb.gy/hvytxl
►V6 Songs : https://rb.gy/68n90s
►Life Mates : https://rb.gy/itvwfa
News content that serves the interests of Telangana and Andhra Pradesh viewers in the most receptive formats. V6 News channel Also Airs programs like Teenmaar News, Chandravva & Padma Satires etc, Theertham, Muchata (Celeb Interviews) Cinema Talkies, City Nazaria(Prog Describes The Most Happening &Visiting Places In Hyderabad),Mana Palle(Describes Villages And Specialities), Also V6 News Channel Is Famous For ‘Bonalu Songs’, ‘Bathukamma Songs’ And Other Seasonal And Folk Related Songs.”V6Teenmaar News”, “Teenmaar News”.
Spinning Code: What I Brought from Drupal to Salesforce
If you look over this blog, or know me, you will see that I’ve now have reasonably significant experience as both a Salesforce and Drupal developer. The last couple weeks I have been thing about what from my Drupal experience supports my work as a Salesforce developer.
I think there are three parallels that are encouraged in Drupal developers that helped me learn to be a good Salesforce developer quickly.
- Embrace, don’t fight, Platform Constraints
- Extend the Platform’s Strengths
- Leverage Events
Embrace Salesforce Platform Constraints
Both Drupal and Salesforce run in constrained environments. Web applications, regardless of their purpose, have to protect themselves against bad actors and bad neighbors. There are execution timeouts and memory limits, for both platforms. Salesforce adds a variety of additional limits and governors, but they are all logical extensions about memory and time. Lots of other platforms allow developers to ignore resource use until they reach a crisis point. Don’t believe me, just check the memory used by Chrome, Electron Apps, or any other Chromium-based application.
Working in resource constrained environments forces you to think through how to use the resources you do have efficiently. While these platforms aren’t like working on hardware with highly limited resources, they still can test your resourcefulness.
Drupal and Salesforce both provide ways to run large jobs across many processing contexts. New developers on both platforms often only resort to using batch and queueable operations as a last resort, but learning to use those solutions is critical to success on most interesting projects. When you try to avoid them you create solutions that appear to work and fail at scale.
Coming to Salesforce from Drupal, I already knew and understood the importance of asynchronous batch processing. So when solutions needed batch processing it was second nature to learn that part of the platform.
Extend the Platform’s Strengths
For all Salesforce’s push and marketing to avoid code, Salesforce developers are often taught that once you write code you just do everything in your code. The interfaces you can use to extend the platform’s existing solutions are treated as advanced topics. But when you work with Drupal, you are encouraged from the start to create modules that build on and extend the platform’s existing strength. Drupal developers are encouraged to leverage the features and utilities all around them.
This has always been true, but even more after Drupal’s move to leverage Symphony plugins and services. As a developer used to extending the platform, I came to Salesforce looking for ways to extend the platform’s declarative tools.
Often Salesforce developers create powerful solutions built purely in code triggered by record changes or simple buttons. They look passed Apex Actions that extend the Flow declarative automatons, platform events, and other tools that extend the system. But when you embrace a platform’s basic structures you often create more flexible solutions than your could with pure code.
The mind set of extending a platform, which I brought with me from my Drupal work helps me create tools and solutions that are designed to adapt over time.
Leverage Events
Event driven architectures are not new, but their popularity continues to grow. Where platforms used to follow informal patterns that equated to event systems, now we see formal event structures being build to replace old habits.
Drupal and Salesforce both have had event frameworks for a long time: Drupal had hooks (events by naming convention), Salesforce had triggers.
Both have seen major upgrades to their event patterns in recent versions. Platform events in Salesforce, still making their full power clear to a lot of developers. Symphony brought proper events to Drupal in version 8 and continue to help push the platform forward.
I have learned to leverage the events systems on both platforms. Understanding them as tightly constrained state machines, and learning to push them to their limits, helps me get the most from both platforms.
My experience with Drupal hooks and events has made it obvious to me when to leverage Salesforce’s Platform events. As Salesforce increases the number of places you can use them in their declarative tools, it increases the value of this approach.
So What?
As a developer, what you learn in one part of your career can make you stronger in the next. As a field we’re not actually that creative. Even if the details are different, the concepts will often carry forward because they are built on the same fundamentals. Whatever platform you are using today, learn how to make it sing – it’ll help you learn the next faster and better.
The post What I Brought from Drupal to Salesforce appeared first on Spinning Code.