Skip to content
Menu
Open World News Open World News
  • Privacy Policy
Open World News Open World News

Category: News

Wiki Loves Shark Puppets

Posted on September 12, 2023 by Michael G
Shark puppets on Wikimedia Commons

Specbee: Simplified PHP Debugging with XDebug in Lando & DDev for Drupal

Posted on September 12, 2023 by Michael G
Fun fact: The world’s first computer bug was a real moth! But don’t worry, we’re not here to debug insects. We all know that debugging is vital in website development. It helps developers identify and resolve issues, leading to a smoother and more reliable end product. To achieve that, you need the right tools. One such technique that can help you troubleshoot your PHP is XDebug.In this article, I’d like to share the steps and requirements involved in setting up PHP debugging with XDebug on Lando and DDEV Drupal setups using the VS Code IDE. Let’s dive in!

What is XDebug
Xdebug is a standard and powerful debugger in PHP and improves your development experience. It provides us developers with key features that help in finding and fixing the errors in code. 
Step Debugging – A way to step through your code in your editor while the script is executing.
Improvements to PHP’s error reporting – This allows you to get better error messages and obtain more information from PHP’s built-in functions. An upgraded var_dump() function, stack traces for Notices, Warnings, Errors, and Exceptions to highlight the code path to the error.
Tracing – When an error occurs, Xdebug generates detailed stack traces that show the sequence of function calls leading up to the error, helping developers pinpoint the source of the issue. Xdebug helps in tracking the values of variables during script execution, making it easier to understand how values change as the script progresses.
Profiling – With the help of visualization tools, it allows you to analyze the performance of your PHP application and identify bottlenecks. 
Code Coverage Analysis – This can generate code coverage reports, to show which parts of your code base are executed when running unit tests with PHPUnit.
Support for Various IDEs – Xdebug supports integration with multiple IDEs such as PhpStorm, Visual Studio Code, Eclipse, NetBeans, and more.
XDebug with VS Code IDE
I chose VS Code here as it’s one of the most used and my favorite editor. Install Visual Studio Code (VS Code) if you haven’t already.To make Xdebug work on this IDE, the first thing you need is the ‘PHP Debug’ Extension. Find and install it. This is needed for projects running on Lando or even with DDEV.

PHP Debug Extension
XDebug + VS Code + Lando
Enabling Xdebug on Lando
Lando by default does not provide you with an Xdebug extension. To enable Xdebug on Lando add the xdebug: true line to your .lando.yml file under the config key:
name: TechX
recipe: drupal10
config:
xdebug: trueOr else, override your php service, by adding xdebug: true under appserver:
name: TechX
services:
appserver:
webroot: web
xdebug: trueFollow it up by rebuilding your environment:
lando rebuild -yThis will enable the extension by default whenever you start the Lando environment and Xdebug is now ready to receive the connections.
In terms of performance, an even better option is to toggle between Xdebug on and off with some custom tooling commands.  If you’re using Apache, tweak your .lando.yml with the following lines and don’t forget to run lando rebuild -y after.
config:
# Set Xdebug off by default. We use the tooling below to turn it on as needed.
xdebug: false
services:
appserver:
overrides:
environment:
XDEBUG_MODE: ‘debug,develop’
tooling:
xdebug-on:
service: appserver
description: Enable Xdebug.
user: root
cmd:
– docker-php-ext-enable xdebug && kill -USR2 $(pgrep -o php-fpm) > /dev/null || /etc/init.d/apache2 reload
– tput setaf 2 && echo “Xdebug On” && tput sgr 0 && echo
xdebug-off:
service: appserver
description: Disable Xdebug.
user: root
cmd:
– rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && kill -USR2 $(pgrep -o php-fpm) > /dev/null || /etc/init.d/apache2 reload
– tput setaf 1 && echo “Xdebug Off” && tput sgr 0 && echoNow you can enable and disable Xdebug with custom commands lando xdebug-on and lando xdebug-off.
Browser Requirements
For your browser, install the suitable Xdebug helper extension. On Chrome browsers, enable the Xdebug helper extension.

Xdebug helper – Chrome Extension
If you are using Firefox, try the Xdebug Helper add-on. 

Xdebug helper – Firefox Add-On
Making Xdebug work on VS Code
The next step is to create a custom .vscode/launch.json file within your workspace. This will map paths so that XDebug works correctly.Open your project in the VS Code IDE, go to ‘Run and Debug’ and click on ‘create a launch.json file’ 

Create launch.json file
This will create the launch.json file with relevant configurations. Update the ‘Listen for Xdebug’ section with the below details. Note that the Xdebug 3 listens on port 9003.
{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “Listen for XDebug”,
“type”: “php”,
“request”: “launch”,
“port”: 9003,
“pathMappings”: {
“/app/”: “${workspaceFolder}/”,
}
}
]
}Start debugging!
Add a debug breakpoint to a line in your PHP code wherever you need it by clicking the line number.

Set breakpoints
Enable Xdebug on Lando using:
lando xdebug-onIn the menu, click on Run → Start Debugging. Ensure “Listen for Xdebug” is selected by the green arrowhead at the top left. The bottom pane of VS Code will be changed to orange (live) and should say “Listen for Xdebug”. 

Start Debugging

Start Debugging
In your browser, navigate to your Lando app’s URL and find the Xdebug helper extension in the address bar.  It is usually a “beetle” icon. Click on it and choose “Debug” from the menu to tell your browser to send the appropriate parameters to Xdebug so that Xdebug activates when a request is made. 

Enable Xdebug helper extension
Refresh the page or click on your site link. VS Code should now automatically open the Debug window and produce a debug output if a breakpoint is reached. 

Xdebug in action
Debugging Process
When your code execution reaches a breakpoint, the debugger will stop, and you can inspect variables, step through code, and understand the flow. VS Code will provide a user interface for interacting with the debugging session.
XDebug + VS Code + DDEV
Unlike Lando, with DDEV, Xdebug already exits out of the box. You don’t need any custom service, no rebuild, no browser extensions, no Drama! :)Just update the project’s .vscode/launch.json to add the “Listen for Xdebug” configuration from the below-attached config snippet.

{
“version”: “0.2.0”,
“configurations”: [
{
“name”: “Listen for XDebug”,
“type”: “php”,
“request”: “launch”,
“hostname”: “0.0.0.0”,
“port”: 9003,
“pathMappings”: {
“/var/www/html”: “${workspaceFolder}/”,
}
}
]
}Set a breakpoint in your PDP code. Restart it, if the breakpoint you set isn’t solid red. In the menu, choose Run → Start Debugging and ensure “Listen for Xdebug” is selected. Enable Xdebug on DDEV using:

ddev xdebug onIn a browser, visit your project, and just like you saw earlier, you will be redirected to your IDE once you hit the breakpoint.

Visit the page

Will be redirected to the IDE and stop at the first breakpoint
Final thoughts
XDebug is a powerful tool that significantly simplifies the debugging process for Drupal developers, helping them write more reliable and efficient code. I hope this tutorial has shed light on its benefits and how to set it up in your development environment. If you found this article useful, consider subscribing to our weekly newsletter where we share the latest tips, tricks, and insights in Drupal development. 

When Should You Use Background Jobs? | Rubber Duck Dev Show 99

Posted on September 12, 2023 by Michael G
In this episode, we discuss when you should use background jobs: https://www.rubberduckdevshow.com/episodes/99-when-should-you-use-background-jobs/

JRuby 9.3.11.0 Released

Posted on September 12, 2023 by Michael G

The JRuby community is pleased to announce the release of JRuby 9.3.11.0

  • Homepage: https://www.jruby.org/
  • Download: https://www.jruby.org/download

JRuby 9.3.x is compatible with Ruby 2.6.x and stays in sync with C Ruby. As always there is a mix of miscellaneous fixes so be sure to read the issue list below.

Thank you to our contributors this release, you help keep JRuby moving forward! @ahorek, @chadlwilson, @justinstoller, @k77ch7, @kares, @snoglobe

Ruby Compatibility

  • Multiple fixes for keyword arguments edge cases. #7676, #7755, #7804, #7816

Standard Library

  • strscan is still built-in (not a gem) but has been updated to the 3.0.6 version. #7634, #7884, #7889
    • Along with this change, our Regexp engine joni is updated to 2.2.1 for Range optimizations.
  • Default gem updates:
    • jruby-openssl0.14.2 #7877

JVM Integration

  • Virtual thread use in Fiber can now be disabled using the jruby.fiber.vthread=false property (or JRuby flag -Xfiber.vthread=false). #7907

Build and Distribution

  • The JRuby/Maven stack of plugins used to integrate Ruby and Maven artifacts have been updated to the latest versions, now using JRuby 9.4.3.0 for builds and avoiding the use of deprecated rubygems.org APIs. #7880

33 Github Issues resolved for 9.3.11.0

  • #7216 – Something changed from 9.2.x to 9.3.x that causes a SecurityException with access denied when using jruby as osgi-bundle
  • #7353 – SSH connection stucked with NET::SSH_7.0.1 and OpenSSH_8.0 with FIPS enabled
  • #7394 – require_relative confused by chdir
  • #7483 – Regression in Socket#close – EBADF after unsuccessful connection
  • #7633 – Do not return early from ThreadService#terminate
  • #7634 – Update joni and strscan
  • #7635 – Cleanup IO state for true connect failures
  • #7648 – Array#fill not compliant with MRI
  • #7651 – Fix Array#fill for edge case
  • #7677 – SCRIPT_LINES__ is set to nil if you require ripper.
  • #7730 – Running specific regex with Regexp::IGNORECASE flag on text starting with specific pipe character results in java.lang.ArrayIndexOutOfBoundsException
  • #7742 – fix flipBuffer overloads
  • #7749 – When converting from binary to decimal with to_i(2), the result will be 0 if it contains multiple underscores.
  • #7754 – [deps] update jruby-openssl to 0.14.1
  • #7762 – [fix] avoid walking constructor instructions on every call
  • #7769 – error: invalid multibyte character occurs in JRuby 9.4.2.0
  • #7782 – Fix defined?(super) on BasicObject from causing NullPointerException
  • #7784 – [build] make generated .class files deterministic
  • #7794 – [deps] update joda-time to latest 2.12.5
  • #7805 – High lock contention in Socket.select in JRuby 9.3
  • #7806 – Reduce contention in heavy IO operations
  • #7877 – [deps] update jruby-openssl to 0.14.2
  • #7880 – Migrate to new mavengem (9.3 version)
  • #7889 – Update joni and strscan for recent fixes
  • #7906 – It seems that tomcat results in nullpointer exception when clearing tread locals
  • #7907 – Improvements for vthread fibers
  • #7912 – Guard for null in StringWrapper
  • #7916 – ConcurrentModificationException during RubyModule.defineAnnotatedMethods / Ruby.addBoundMethod
  • #7917 – Make bound method management threadsafe
  • #7920 – Restore default protection domain for OneShotCL
  • #7932 – Store absolute path of main at load time
  • #7933 – Improve line numbers for generated dynscopes
  • #7934 – Fix String#to_i with leading zero and underscores

p2k23 Hackathon Report: Landry Breuil (landry@) on chasing memory corruptions

Posted on September 12, 2023 by Michael G
Next up in the series of p2k23 hackathon reports is this from Landry Breuil (landry@), who writes,

It’s been a while since the last
p2k19 in bucarest… and this time in a
new place, city, country, lovely ireland with a lovely weather at this
time of the year.

As usual, i wanted to play with things that were left on the side
for a
while (upgrading
mail/stalwart
stack to the new all-bundled-in-one
layout to play with
JMAP… or testing matthieu@‘s work on wayland) –
but i was of course mostly distracted from those interesting topics by
…firefox, you guess it. Dammit, not again !

Read more…

FSF Blogs: The GNU System is turning forty: Come and celebrate with us

Posted on September 12, 2023 by Michael G
GNU is turning forty, and there are two different locations to join us for celebrations. Learn more.

End of servicing plan for third-party printer drivers on Windows

Posted on September 12, 2023 by Michael G
With the release of Windows 10 21H2, Windows offers inbox support for Mopria compliant printer devices over network and USB interfaces via the Microsoft IPP Class Driver. This removes the need for print device manufacturers to provide their own installers, drivers, utilities, and so on.  Device experience customization is now available via the Print Support Apps that are distributed and automatically installed via the Windows Store. This framework improves reliability and performance by moving customization from the Win32 framework to the UWP software development framework. Finally, print device manufacturers no longer have to rebuild their software since this solution is supported across all Windows versions and editions. With these advancements in the Windows print platform, we are announcing the end of servicing of the legacy v3 and v4 Windows printer drivers. As this is an impactful change, end of servicing will be staged over multiple years. Printer drivers used to be an absolute hell on Windows. Whereas on Linux you just plug the printer in and Linux will find and use the printer without much issue, on Windows, you had to trawl vendor websites using obscure device names and minor version variations just to get the right driver installed – usually accompanied by a whole boatload or crapware. Things got better as Windows eventually started downloading printer drivers and accompanying OEM management software by itself, and it seems this is the next step in the process by moving the functionality from these often crappy printer management applications into Print Support Apps.

Open Source Initiative Hosts 2nd Deep Dive AI Event, Aims to Define ‘Open Source’ for AI

Posted on September 12, 2023 by Michael G

The Open Source Definition isn’t directly applicable to AI systems, so global experts will gather to establish shared principles to protect the values of Open Source during this period of hyper growth in AI technology.

The post <span class=’p-name’>Open Source Initiative Hosts 2nd Deep Dive AI Event, Aims to Define ‘Open Source’ for AI</span> appeared first on Voices of Open Source.

Q-Qaida – Episode 6 – Learn Quran – 11 Sep 2023 – ARY Qtv

Posted on September 11, 2023 by Michael G
Q-Qaida – Episode 6 – Learn Quran – Hafiza Urooj Iqbal – 11 Sep 2023 – ARY Qtv

Teacher: Hafiza Urooj Iqbal

Class: 6 | Haroof e Murakkabat (Shapes of Letters)

#QQaida #HafizaUroojIqbal #ARYQtv #QuranEducation

Subscribe Here: https://bit.ly/3dh3Yj1

Q Qaida is an introductory program that teaches beginners how to read the Arabic Script for Quranic recitation. It starts with the basic Arabic letters and gradually introduces different vowel sounds and Quranic pronunciation rules. It is commonly used to establish a solid foundation for Tajweed and Quranic recitation.

Official Facebook: https://www.facebook.com/ARYQTV/
Official Website: https://aryqtv.tv/
Watch ARY Qtv Live: http://live.aryqtv.tv/
Programs Schedule: https://aryqtv.tv/schedule/
Islamic Information: https://bit.ly/2MfIF4P
Android App: https://bit.ly/33wgto4

The new Mercedes-Benz E 300 de 4MATIC All-Terrain Design Preview

Posted on September 11, 2023 by Michael G
Following the launch of the Saloon and the Estate, the All-Terrain rounds off the E-Class family as the third model. Mercedes-Benz has offered the E-Class Estate also as an All-Terrain since 2017.
The E-Class All-Terrain is equipped as standard with AIRMATIC single-chamber air suspension. It provides up to 46 mm more ground clearance and continuously adjustable damping for the compression and rebound stages of the shock absorbers.
Luggage capacity can be expanded from 615 to 1,830 litres. In the plug-in hybrid model, the capacity ranges from 460 to 1,675 litres.
Rear passengers benefit particularly from the 22-millimetre longer wheelbase (2,961 millimetres). They now also have 1,519 millimetres of elbow room – an increase of 25 millimetres.
The E-Class All-Terrain has a braked towing capacity of up to 2,100 kilograms. This also applies to the plug‑in hybrid. The unbraked towing capacity is 750 kilograms. Thanks to a tongue weight of up to 84 kilograms, e-bikes can also go along for the ride.
With the illuminated grille frame (optional), two optical fibre bundles positioned behind the chrome strips receive light from LED modules.
The screen graphics can be customised with two display styles (classic and sport) and three modes (navigation, assistance, service). With the new MBUX, the main display icons are now simpler and colour-coded to resemble smartphone screen tiles.
Depending on the market, the communication module runs on 5G technology. This standard supports much faster data transfer rates than LTE/UMTS.
The digital vehicle key lets drivers use an iPhone or Apple Watch as a car key. After pairing a compatible device paired with the vehicle through Mercedes me connect, the device can be used to start, open and lock the E-Class All-Terrain. Key sharing is also possible. The digital key can be shared with up to 16 persons. In markets where Mercedes me connect services are available, the E-Class All-Terrain can be pre-equipped for the digital key as part of the KEYLESS-GO comfort package.
  • Previous
  • 1
  • …
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • …
  • 821
  • Next

Recent Posts

  • Mentorship program to nurture pre-seed tech founders
  • Qwen3-Coder
  • Open Source is Back
  • An easy way to develop Home Assistant integrations
  • SmartEsq has launched an AI-powered MFN Election tool

Categories

  • Android
  • Linux
  • News
  • Open Source

Recent Posts

  • Mentorship program to nurture pre-seed tech founders
  • Qwen3-Coder
  • Open Source is Back
  • An easy way to develop Home Assistant integrations
  • SmartEsq has launched an AI-powered MFN Election tool

Categories

  • Android
  • Linux
  • News
  • Open Source
©2025 Open World News | Powered by Superb Themes
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent.
Cookie SettingsAccept All
Manage consent

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
CookieDurationDescription
cookielawinfo-checkbox-analytics11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional11 monthsThe cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance11 monthsThis cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy11 monthsThe cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytics
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.
Others
Other uncategorized cookies are those that are being analyzed and have not been classified into a category as yet.
SAVE & ACCEPT