<!doctype html><html lang="en-US" ><head><script data-no-optimize="1">var litespeed_docref=sessionStorage.getItem("litespeed_docref");litespeed_docref&&(Object.defineProperty(document,"referrer",{get:function(){return litespeed_docref}}),sessionStorage.removeItem("litespeed_docref"));</script> <meta charset="UTF-8" /><style id="litespeed-ucss">.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center;position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none;padding:0}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item__content{display:block}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation :where(a),.wp-block-navigation :where(a:active),.wp-block-navigation :where(a:focus){text-decoration:none}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation__container{gap:inherit;align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container:only-child{flex-grow:1}.wp-block-social-links{background:0 0;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0;font-size:24px}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-link{border-radius:9999px;display:block;height:auto}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:0 0}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}a{text-decoration-thickness:.0625em!important;text-underline-offset:.15em}</style><meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script id='fp_data_js' type="text/javascript" data-no-optimize="1" nowprocket>var fp_premium = false,
				FP = { 'fns' : {} },
				fp = {"loaded":[],"loading":[],"blocked_scripts":[],"waitlist":[],"actions":[],"observers":[],"tools":["simpl"],"notice":{"enabled":false},"vars":{"bot_list":"none","url":"https:\/\/madi.se\/wp-content\/plugins\/full-picture-analytics-cookie-notice\/","is_pro":false,"uploads_url":"https:\/\/madi.se\/wp-content\/uploads\/","is_customizer":false,"debug":false,"intersections":"-200px 0px -200px 0px","track_current_user":true,"dblclck_time":"300","track_scroll_min":"200","track_scroll_time":"5","formsubm_trackdelay":"3","link_click_delay":false,"reset_timer_on_anchor":false,"track404":false,"redirect404_url":false,"magic_keyword":"tracking","use_mutation_observer":false,"server_method":"rest"},"simpl":[]},
				fpdata = {"user":{"role":"Visitor","logged_in":false},"page_type":"Posts Home","page_title":"AI Proxies, LLMs, Arabic Language Performance, and OBSBOT Tiny2 for Podcasting"};fpdata.timezone = Intl.DateTimeFormat().resolvedOptions().timeZone;
fp.notice.vars = {};

(function (FP) {

	'use strict';

	var d = document,
		w = window;

	FP.getUrlParamByName = name => {
		// var match = RegExp('[?&]' + name + '=([^&]*)').exec(window.location.search);
		// return match && decodeURIComponent(match[1].replace(/\+/g, ' '));
		const queryString = window.location.search,
			urlParams = new URLSearchParams(queryString);
		return urlParams.get(name);
	};

	// BROKEN LINK TRACKING + REDIRECT TO A CUSTOM 404 PAGE
	if( fp.vars.track404 && fpdata.page_type == "404" && ! FP.getUrlParamByName("broken_link_location") ){
		const location = fp.vars.redirect404_url ? new URL( fp.vars.redirect404_url ) : window.location;
		window.location = location + ( location.search ? "&" : "?" ) + "broken_link_location=" + ( document.referrer || "direct_traffic_or_unknown" ) + "&broken_link=" + window.location;
	}

	FP.setCookie = (name, value, days = 0, mins = 0, path = "/") => {
		var expires = "";
		if ( days > 0 || mins > 0 ) {
			var date = new Date();
			if (days > 0) {
				date.setTime(date.getTime() + days * 24 * 60 * 60 * 1000);
			} else {
				date.setTime(date.getTime() + mins * 60 * 1000);
			}
			expires = "; expires=" + date.toGMTString();
		};
		d.cookie = name + "=" + value + expires + "; path=" + path + "; sameSite=strict";
	};

	FP.readCookie = name => {
		var nameEQ = name + "=";
		var ca = d.cookie.split(';');
		for (var i = 0; i < ca.length; i++) {
			var c = ca[i];
			while (c.charAt(0) == ' ') {c = c.substring(1, c.length);}
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
		};
		return null;
	};

	FP.nl2Arr = nl => nl ? [].slice.call(nl) : false;

	FP.findID = (e, c) => {
        if ( c === null ) return null;
        if ( !e ) return false;
        c = c || document;
        return c.getElementById(e);
    };

	FP.findAll = (e, c) => {
		if ( c === null ) return [];
		if ( ! e ) return false;
		c = c || document;
		return FP.nl2Arr(c.querySelectorAll(e));
	};
	
	FP.loadScript = scr_id => {
		
		let temp_script = FP.findID( scr_id + '_temp' ),
			new_script = document.createElement('script');

		new_script.innerHTML = temp_script.innerHTML;
		temp_script.parentNode.insertBefore(new_script, temp_script.nextSibling);
		temp_script.remove();

		fp.loaded.push( scr_id );
	};

	FP.getRandomStr = ()=>{
		return ( Math.random() + 1 ).toString(36).substring(2);
	};

	FP.deleteCookie = name => { FP.setCookie(name, "", -1); };

    FP.getInner = function (vals, splitter = ".") {
        
        let args = Array.isArray(vals) ? vals : vals.split(splitter).map( arg => arg.trim() ),
            obj = window[args.shift()];

        for (var i = 0; i < args.length; i++) {
            var prop = args[i];
            if (! obj || ! obj.hasOwnProperty(prop)) return false;
            obj = obj[prop];
        };

        return obj;
    };

	FP.runFn = ( fn_name, args_arr ) => {
			
		let fn = FP.getInner( fn_name, "." );
		
		if ( fn ) {
			args_arr ? fn( ...args_arr ) : fn();
		} else {
			fp.waitlist[fn_name] = typeof args_arr === 'undefined' ? [] : args_arr;
		};
	};

	FP.enqueueFn = ( fn_name ) => {
		let fn = FP.getInner( fn_name, "." );
		if ( fp.waitlist[fn_name] ) fn( ...fp.waitlist[fn_name] );
	}

	FP.getScript = ( url, cb, attrs, type = 'script', fallback = false ) => {

		attrs = attrs || false;
		var s = "";

		if ( type == "img" ) {
			s = d.createElement('img');
			s.src = url;
		} else if ( type == "link" ) {
			s = d.createElement('link');
			s.href = url;
		} else {
			s = d.createElement('script')
			s.src = url;
			s.type = 'application/javascript';
		}

		s.onerror = ()=>{ 
			if ( fallback ) FP.getScript( fallback, cb, attrs, type );
		};

		if (attrs) {
			for (var key in attrs) {
				if ( key !== "/" ) s.setAttribute(key, attrs[key]);
			}
		}

		d.getElementsByTagName("head")[0].appendChild(s);
		if (cb) s.onload = cb;
	};

	FP.sendEvt = (evt_name, details_a) => {
        var details = details_a ? { 'detail' : details_a } : {},
            fp_event = new CustomEvent( evt_name, details );
        document.dispatchEvent(fp_event);
    };

	FP.prepareProduct = ( type, id, data ) => {
		
		if ( type !== "cart_item" ) fpdata.woo.products[id] = fpdata.woo.products[id] ? { ...fpdata.woo.products[id], ...data } : data;
		
		if ( type == 'single' || type == 'teaser' ) {

			// prepare products after all load
			if ( fp.vars.wooImpressTimeout ) clearTimeout( fp.vars.wooImpressTimeout );
			fp.vars.wooImpressTimeout = setTimeout( () => FP.runFn( "FP.fns.prepare_teaser_and_single" ), 200 );
		}
    };

	// CHECK FOR BOT TRAFFIC
	// -- modified version of https://stackoverflow.com/a/65563155/7702522
	
	// BOT CHECK (instant)
	fpdata.is_robot = (() => {
		
		// SMALL list
		if ( fp.vars.bot_list == "basic" ) {
			
			const robots = new RegExp([/bot/,/spider/,/crawl/,/APIs-Google/,/AdsBot/,/Googlebot/,/mediapartners/,/Google Favicon/,/FeedFetcher/,/Google-Read-Aloud/,/googleweblight/,/bingbot/,/yandex/,/baidu/,/duckduck/,/Yahoo Link Preview/,/ia_archiver/,/facebookexternalhit/,/pinterest\.combot/,/redditbot/,/slackbot/,/Twitterbot/,/WhatsApp/,/S[eE][mM]rushBot/].map((r) => r.source).join("|"),"i");

			return robots.test(navigator.userAgent);

		// BIG list
		} else if ( fp.vars.bot_list == "big" ) {

			const robots = new RegExp([
				/Googlebot/, /AdsBot/, /Feedfetcher-Google/, /Mediapartners-Google/, /Mediapartners/, /APIs-Google/, 
				/Google-InspectionTool/, /Storebot-Google/, /GoogleOther/, /bingbot/, /Slurp/, /wget/, /LinkedInBot/, 
				/Python-urllib/, /python-requests/, /aiohttp/, /httpx/, /libwww-perl/, /httpunit/, /Nutch/, 
				/Go-http-client/, /phpcrawl/, /msnbot/, /jyxobot/, /FAST-WebCrawler/, /FAST Enterprise Crawler/, 
				/BIGLOTRON/, /Teoma/, /convera/, /seekbot/, /Gigabot/, /Gigablast/, /exabot/, /ia_archiver/, 
				/GingerCrawler/, /webmon/, /HTTrack/, /grub\.org/, /UsineNouvelleCrawler/, /antibot/, 
				/netresearchserver/, /speedy/, /fluffy/, /findlink/, /msrbot/, /panscient/, /yacybot/, /AISearchBot/, 
				/ips-agent/, /tagoobot/, /MJ12bot/, /woriobot/, /yanga/, /buzzbot/, /mlbot/, /yandex\.combots/, 
				/purebot/, /Linguee Bot/, /CyberPatrol/, /voilabot/, /Baiduspider/, /citeseerxbot/, /spbot/, 
				/twengabot/, /postrank/, /Turnitin/, /scribdbot/, /page2rss/, /sitebot/, /linkdex/, /Adidxbot/, 
				/ezooms/, /dotbot/, /Mail\.RU_Bot/, /discobot/, /heritrix/, /findthatfile/, /europarchive\.org/, 
				/NerdByNature\.Bot/, /sistrix crawler/, /Ahrefs/, /fuelbot/, /CrunchBot/, /IndeedBot/, 
				/mappydata/, /woobot/, /ZoominfoBot/, /PrivacyAwareBot/, /Multiviewbot/, /SWIMGBot/, /Grobbot/, 
				/eright/, /Apercite/, /semanticbot/, /Aboundex/, /domaincrawler/, /wbsearchbot/, /summify/, /CCBot/, 
				/edisterbot/, /SeznamBot/, /ec2linkfinder/, /gslfbot/, /aiHitBot/, /intelium_bot/, 
				/facebookexternalhit/, /Yeti/, /RetrevoPageAnalyzer/, /lb-spider/, /Sogou/, /lssbot/, /careerbot/, 
				/wotbox/, /wocbot/, /ichiro/, /DuckDuckBot/, /lssrocketcrawler/, /drupact/, /webcompanycrawler/, 
				/acoonbot/, /openindexspider/, /gnam gnam spider/, /web-archive-net\.com\.bot/, /backlinkcrawler/, 
				/coccoc/, /integromedb/, /content crawler spider/, /toplistbot/, /it2media-domain-crawler/, 
				/ip-web-crawler\.com/, /siteexplorer\.info/, /elisabot/, /proximic/, /changedetection/, /arabot/, 
				/WeSEE:Search/, /niki-bot/, /CrystalSemanticsBot/, /rogerbot/, /360Spider/, /psbot/, 
				/InterfaxScanBot/, /CC Metadata Scaper/, /g00g1e\.net/, /GrapeshotCrawler/, /urlappendbot/, 
				/brainobot/, /fr-crawler/, /binlar/, /SimpleCrawler/, /Twitterbot/, /cXensebot/, /smtbot/, 
				/bnf\.fr_bot/, /A6-Indexer/, /ADmantX/, /Facebot/, /OrangeBot/, /memorybot/, /AdvBot/, 
				/MegaIndex/, /SemanticScholarBot/, /ltx71/, /nerdybot/, /xovibot/, /BUbiNG/, /Qwantify/, 
				/archive\.org_bot/, /Applebot/, /TweetmemeBot/, /crawler4j/, /findxbot/, /SemrushBot/, 
				/yoozBot/, /lipperhey/, /Y!J/, /Domain Re-Animator Bot/, /AddThis/, /Screaming Frog SEO Spider/, 
				/MetaURI/, /Scrapy/, /Livelapbot/, /OpenHoseBot/, /CapsuleChecker/, /collection@infegy\.com/, 
				/IstellaBot/, /DeuSu/, /betaBot/, /Cliqzbot/, /MojeekBot/, /netEstate NE Crawler/, 
				/SafeSearch microdata crawler/, /Gluten Free Crawler/, /Sonic/, /Sysomos/, /Trove/, /deadlinkchecker/, 
				/Slack-ImgProxy/, /Embedly/, /RankActiveLinkBot/, /iskanie/, /SafeDNSBot/, /SkypeUriPreview/, 
				/Veoozbot/, /Slackbot/, /redditbot/, /datagnionbot/, /Google-Adwords-Instant/, /adbeat_bot/, 
				/WhatsApp/, /contxbot/, /pinterest\.combot/, /electricmonk/, /GarlikCrawler/, /BingPreview/, 
				/vebidoobot/, /FemtosearchBot/, /Yahoo Link Preview/, /MetaJobBot/, /DomainStatsBot/, /mindUpBot/, 
				/Daum/, /Jugendschutzprogramm-Crawler/, /Xenu Link Sleuth/, /Pcore-HTTP/, /moatbot/, /KosmioBot/, 
				/pingdom/, /AppInsights/, /PhantomJS/, /Gowikibot/, /PiplBot/, /Discordbot/, /TelegramBot/, 
				/Jetslide/, /newsharecounts/, /James BOT/, /Barkrowler/, /TinEye/, /SocialRankIOBot/, 
				/trendictionbot/, /Ocarinabot/, /epicbot/, /Primalbot/, /DuckDuckGo-Favicons-Bot/, /GnowitNewsbot/, 
				/Leikibot/, /LinkArchiver/, /YaK/, /PaperLiBot/, /Digg Deeper/, /dcrawl/, /Snacktory/, /AndersPinkBot/, 
				/Fyrebot/, /EveryoneSocialBot/, /Mediatoolkitbot/, /Luminator-robots/, /ExtLinksBot/, /SurveyBot/, 
				/NING/, /okhttp/, /Nuzzel/, /omgili/, /PocketParser/, /YisouSpider/, /um-LN/, /ToutiaoSpider/, 
				/MuckRack/, /Jamie's Spider/, /AHC/, /NetcraftSurveyAgent/, /Laserlikebot/, /^Apache-HttpClient/, 
				/AppEngine-Google/, /Jetty/, /Upflow/, /Thinklab/, /Traackr\.com/, /Twurly/, /Mastodon/, /http_get/, 
				/DnyzBot/, /botify/, /007ac9 Crawler/, /BehloolBot/, /BrandVerity/, /check_http/, /BDCbot/, 
				/ZumBot/, /EZID/, /ICC-Crawler/, /ArchiveBot/, /^LCC /, /filterdb\.iss\.netcrawler/, /BLP_bbot/, 
				/BomboraBot/, /Buck/, /Companybook-Crawler/, /Genieo/, /magpie-crawler/, /MeltwaterNews/,
				/Moreover/,/newspaper/,/ScoutJet/,/sentry/,/StorygizeBot/,/UptimeRobot/,/OutclicksBot/,
				/seoscanners/,/Hatena/,/Google Web Preview/,/MauiBot/,/AlphaBot/,/SBL-BOT/,/IAS crawler/,
				/adscanner/,/Netvibes/,/acapbot/,/Baidu-YunGuanCe/,/bitlybot/,/blogmuraBot/,/Bot\.AraTurka\.com/,
				/bot-pge\.chlooe\.com/,/BoxcarBot/,/BTWebClient/,/ContextAd Bot/,/Digincore bot/,/Disqus/,/Feedly/,
				/Fetch/,/Fever/,/Flamingo_SearchEngine/,/FlipboardProxy/,/g2reader-bot/,/G2 Web Services/,/imrbot/,
				/K7MLWCBot/,/Kemvibot/,/Landau-Media-Spider/,/linkapediabot/,/vkShare/,/Siteimprove\.com/,/BLEXBot/,
				/DareBoost/,/ZuperlistBot/,/Miniflux/,/Feedspot/,/Diffbot/,/SEOkicks/,/tracemyfile/,/Nimbostratus-Bot/,
				/zgrab/,/PR-CY\.RU/,/AdsTxtCrawler/,/Datafeedwatch/,/Zabbix/,/TangibleeBot/,/google-xrawler/,/axios/,
				/Amazon CloudFront/,/Pulsepoint/,/CloudFlare-AlwaysOnline/,/Google-Structured-Data-Testing-Tool/,
				/WordupInfoSearch/,/WebDataStats/,/HttpUrlConnection/,/Seekport Crawler/,/ZoomBot/,/VelenPublicWebCrawler/,
				/MoodleBot/,/jpg-newsbot/,/outbrain/,/W3C_Validator/,/Validator\.nu/,/W3C-checklink/,/W3C-mobileOK/,
				/W3C_I18n-Checker/,/FeedValidator/,/W3C_CSS_Validator/,/W3C_Unicorn/,/Google-PhysicalWeb/,/Blackboard/,
				/ICBot/,/BazQux/,/Twingly/,/Rivva/,/Experibot/,/awesomecrawler/,/Dataprovider\.com/,/GroupHigh/,
				/theoldreader\.com/,/AnyEvent/,/Uptimebot\.org/,/Nmap Scripting Engine/,/2ip\.ru/,/Clickagy/,
				/Caliperbot/,/MBCrawler/,/online-webceo-bot/,/B2B Bot/,/AddSearchBot/,/Google Favicon/,/HubSpot/,
				/Chrome-Lighthouse/,/HeadlessChrome/,/CheckMarkNetwork/,/www\.uptime\.com/,/Streamline3Bot/,/serpstatbot/,
				/MixnodeCache/,/^curl/,/SimpleScraper/,/RSSingBot/,/Jooblebot/,/fedoraplanet/,/Friendica/,/NextCloud/,
				/Tiny Tiny RSS/,/RegionStuttgartBot/,/Bytespider/,/Datanyze/,/Google-Site-Verification/,/TrendsmapResolver/,
				/tweetedtimes/,/NTENTbot/,/Gwene/,/SimplePie/,/SearchAtlas/,/Superfeedr/,/feedbot/,/UT-Dorkbot/,/Amazonbot/,
				/SerendeputyBot/,/Eyeotabot/,/officestorebot/,/Neticle Crawler/,/SurdotlyBot/,/LinkisBot/,/AwarioSmartBot/,
				/AwarioRssBot/,/RyteBot/,/FreeWebMonitoring SiteChecker/,/AspiegelBot/,/NAVER Blog Rssbot/,/zenback bot/,
				/SentiBot/,/Domains Project/,/Pandalytics/,/VKRobot/,/bidswitchbot/,/tigerbot/,/NIXStatsbot/,/Atom Feed Robot/,
				/curebot/,/PagePeeker/,/Vigil/,/rssbot/,/startmebot/,/JobboerseBot/,/seewithkids/,/NINJA bot/,/Cutbot/,
				/BublupBot/,/BrandONbot/,/RidderBot/,/Taboolabot/,/Dubbotbot/,/FindITAnswersbot/,/infoobot/,/Refindbot/,
				/BlogTraffic\d\.\d+ Feed-Fetcher/,/SeobilityBot/,/Cincraw/,/Dragonbot/,/VoluumDSP-content-bot/,/FreshRSS/,
				/BitBot/,/^PHP-Curl-Class/,/Google-Certificates-Bridge/,/centurybot/,/Viber/,/e\.ventures Investment Crawler/,
				/evc-batch/,/PetalBot/,/virustotal/,/(^| )PTST/,/minicrawler/,/Cookiebot/,/trovitBot/,/seostar\.co/,/IonCrawl/,
				/Uptime-Kuma/,/SeekportBot/,/FreshpingBot/,/Feedbin/,/CriteoBot/,/Snap URL Preview Service/,/Better Uptime Bot/,
				/RuxitSynthetic/,/Google-Read-Aloud/,/ValveSteam/,/OdklBot/,/GPTBot/,/ChatGPT-User/,/YandexRenderResourcesBot/,
				/LightspeedSystemsCrawler/,/ev-crawler/,/BitSightBot/,/woorankreview/,/Google-Safety/,/AwarioBot/,/DataForSeoBot/,
				/Linespider/,/WellKnownBot/,/A Patent Crawler/,/StractBot/,/search\.marginalia\.nu/,/YouBot/,/Nicecrawler/,/Neevabot/,
				/BrightEdge Crawler/,/SiteCheckerBotCrawler/,/TombaPublicWebCrawler/,/CrawlyProjectCrawler/,/KomodiaBot/,/KStandBot/,
				/CISPA Webcrawler/,/MTRobot/,/hyscore\.io/,/AlexandriaOrgBot/,/2ip bot/,/Yellowbrandprotectionbot/,/SEOlizer/,
				/vuhuvBot/,/INETDEX-BOT/,/Synapse/,/t3versionsBot/,/deepnoc/,/Cocolyzebot/,/hypestat/,/ReverseEngineeringBot/,
				/sempi\.tech/,/Iframely/,/MetaInspector/,/node-fetch/,/lkxscan/,/python-opengraph/,/OpenGraphCheck/,
				/developers\.google\.com\+websnippet/,/SenutoBot/,/MaCoCu/,/NewsBlur/,/inoreader/,/NetSystemsResearch/,/PageThing/,
				/WordPress/,/PhxBot/,/ImagesiftBot/,/Expanse/,/InternetMeasurement/,/^BW/,/GeedoBot/,/Audisto Crawler/,
				/PerplexityBot/,/claudebot/,/Monsidobot/,/GroupMeBot/].map((r) => r.source).join("|"),"i");

				return robots.test(navigator.userAgent);

		} else {
			return false;
		};
	})();

	// GENERATE A RANDOM STRING FOR VARIOUS USES
	fp.random = FP.getRandomStr(7);

	// GTAG & GTM STUFF

	// First, we set the dataLayers for GA and GAds (and GTM DataLayer if it has no DL Protection enabled)

	window.dataLayer = window.dataLayer || [];
	window.gtag = function(){window.dataLayer.push(arguments);}

	// next, we set a separate GTM DataLayer if it has DL Protection enabled

	if ( fp.gtm ) {
		fp.gtm.datalayer = ! fp.gtm.datalayer || fp.gtm.datalayer == "default" ? "dataLayer" : "fupi_dataLayer";
		if ( fp.gtm.datalayer == "fupi_dataLayer" ){
			window[fp.gtm.datalayer] = window[fp.gtm.datalayer] || [];
			window.fupi_gtm_gtag = function(){window[fp.gtm.datalayer].push(arguments);} // gtag used for consents
		}
	};

	// UPDATE COOKIE DATA - fupi_cookies and fpdata.cookies

	let magic_keyw = FP.getUrlParamByName( fp.vars.magic_keyword ),
		ga4_debug = FP.getUrlParamByName("ga4_debug"),
		cookies = FP.readCookie('fp_cookie');
	
	cookies = cookies ? JSON.parse(cookies) : false;

	fpdata.cookies = false;

	if ( magic_keyw && magic_keyw == 'off' ){

		var updated_cookies = { 'stats' : false, 'personalisation' : false, 'marketing' : false, 'disabled' : true };

		fp.vars.track_current_user = false;
		FP.setCookie('fp_cookie', JSON.stringify(updated_cookies), 7300 );
		fpdata.cookies = updated_cookies;

	} else if ( ga4_debug ){

		if ( ga4_debug == 'on' ) {
			
			var updated_cookies = { 'stats' : true, 'personalisation' : true, 'marketing' : true, 'disabled' : false, 'ga4_debug' : 'on' };
	
			if ( cookies && cookies.pp_pub ) updated_cookies.pp_pub = cookies.pp_pub;
			if ( cookies && cookies.tools ) updated_cookies.tools = cookies.tools;
	
			FP.setCookie('fp_cookie', JSON.stringify(updated_cookies), 7300 );
			fpdata.cookies = updated_cookies;

		} else if ( ga4_debug == 'off' ) {
			var updated_cookies = { 'stats' : true, 'personalisation' : true, 'marketing' : true, 'disabled' : false };
	
			if ( cookies && cookies.pp_pub ) updated_cookies.pp_pub = cookies.pp_pub;
			if ( cookies && cookies.tools ) updated_cookies.tools = cookies.tools;
	
			FP.setCookie('fp_cookie', JSON.stringify(updated_cookies), 7300 );
			fpdata.cookies = updated_cookies;
		}

	} else if ( FP.getUrlParamByName("reset_cookies") || ( magic_keyw && ( magic_keyw == 'reset' || magic_keyw == 'on' ) ) ){

		FP.deleteCookie('fp_cookie');

	} else {

		var changed = false;

		if ( cookies ) {
			if ( cookies.disabled ) {

				var updated_cookies = { 'stats' : false, 'personalisation' : false, 'marketing' : false, 'disabled' : true };
				
				fp.vars.track_current_user = false;
				FP.setCookie('fp_cookie', JSON.stringify(updated_cookies), 7300 );
				fpdata.cookies = updated_cookies;

			} else if ( fp.notice ) {

				if ( fp.notice.ask_for_consent_again ){

					if ( fp.notice.priv_policy_update ) {
						if ( ! cookies.pp_pub || cookies.pp_pub != fp.notice.priv_policy_update ) changed = true;
					}
					
					if ( fp.tools ){
						if ( ! cookies.tools || ! fp.tools.every( id => cookies.tools.includes(id) ) ) changed = true;
					}
				}
		
				if ( changed ) {
					FP.deleteCookie('fp_cookie');
				} else {
					fpdata.cookies = cookies;
					if ( fpdata.cookies.disabled ) fp.vars.track_current_user = false;
				}
			}
		}
	}

	//
	// CONSENT BANNER 
	//

	
	if ( fp.vars.track_current_user && ! fp.vars.is_customizer && fp.notice.enabled && ! fpdata.cookies && fp.notice.display_notice ) {
		
		// BLUR BACKGROUND
		if ( fp.notice.blur_page ) {
			document.getElementsByTagName( 'html' )[0].classList.add('fupi_blur');
		}
		
		// LOCK PAGESCROLL
		if ( fp.notice.scroll_lock ) {
			document.getElementsByTagName( 'html' )[0].classList.add('fupi_scroll_lock');
		}
	}

	FP.updateConsents = () => {

		if ( fp.vars.debug ) console.log('[FP] Updating consents');
		
		// if the user made a choice in the past
		if ( fpdata.cookies ){
			fpdata.consents = {
				'can_track_stats' : fpdata.cookies.stats || false,
				'can_track_pers' : fpdata.cookies.personalisation || false,
				'can_track_market' : fpdata.cookies.marketing || false,
			};

		// if no choice was made in the past
		} else {
			
			// deny all if consent banner is in optin mode
			if ( fp.notice.enabled && fp.notice.mode == "optin" ) {
				fpdata.consents = {
					'can_track_stats' : false,
					'can_track_pers' : false,
					'can_track_market' : false,
				}
			
			// agree to all if consent banner is disabled or we are in optout or notification mode
			} else {
			 	fpdata.consents = {
					'can_track_stats' : true,
					'can_track_pers' : true,
					'can_track_market' : true,
				}
			}
		}

		if ( ! fp.vars.is_customizer ) {
		
			// Set GTAG consents

			["gtag", "fupi_gtm_gtag"].forEach( tag_name => {

				if ( tag_name == "fupi_gtm_gtag" && ! window.fupi_gtm_gtag ) return;

				// if the user made a choice in the past
				if ( fpdata.cookies ){

					window[tag_name]("consent", "default", {
						"ad_storage": "denied",
						"ad_user_data" : "denied",
						"ad_personalization" : "denied",
						"analytics_storage": "denied",
						"personalization_storage": "denied",
						"functionality_storage": "denied",
						"security_storage": "granted",
					});
					
					window[tag_name]("consent", "update", {
						"ad_storage": fpdata.cookies.marketing ? "granted" : "denied",
						"ad_user_data" : fpdata.cookies.marketing ? "granted" : "denied",
						"ad_personalization" : fpdata.cookies.marketing ? "granted" : "denied",
						"analytics_storage": fpdata.cookies.stats ? "granted" : "denied",
						"personalization_storage": fpdata.cookies.personalisation ? "granted" : "denied",
						"functionality_storage": fpdata.cookies.personalisation ? "granted" : "denied",
						"security_storage": "granted",
					});
					
					if ( fp.vars.debug ) console.log("[FP] Google consents set to user choices");
				
				// if no choice was made in the past
				} else {
					
					// deny all if consent banner is in optin mode
					if ( fp.notice.enabled && fp.notice.mode == "optin" ) {
						
						window[tag_name]("consent", "default", {
							"ad_storage": "denied",
							"ad_user_data" : "denied",
							"ad_personalization" : "denied",
							"analytics_storage": "denied",
							"personalization_storage": "denied",
							"functionality_storage": "denied",
							"security_storage": "granted",
						});
					
						if ( fp.vars.debug ) console.log("[FP] All Google consents denied");
					
					// agree to all if consent banner is disabled or we are in optout or notification mode
					} else {
						
						window[tag_name]("consent", "default", {
							"ad_storage": "granted",
							"ad_user_data" : "granted",
							"ad_personalization" : "granted",
							"analytics_storage": "granted",
							"personalization_storage": "granted",
							"functionality_storage": "granted",
							"security_storage": "granted",
						});
					
						if ( fp.vars.debug ) console.log("[FP] All Google consents granted");
					};
				}
			} );
			
			// we set URL Passthrough for standard GTAG
			if ( fp.notice.enabled && fp.notice.gtag_no_cookie_mode && fp.notice.url_passthrough && ( fp.notice.mode == "optin" || fp.notice.mode == "optout" ) ) {
				window.gtag("set", "url_passthrough", true);
			};
		}
    }
	
	let uses_geo = false;

	FP.postToServer = ( event_data_a, cb = false ) => {

		if ( fpdata.is_robot ) return;
		if ( fp.vars.debug ) console.log( "[FP] Posting to server", event_data_a );

		let fetch_url = fp.vars.server_method == "rest" ? "/index.php?rest_route=/fupi/v1/sender" : "/wp-admin/admin-ajax.php?action=fupi_ajax";

		if ( fp.vars.debug || event_data_a[0][0] == 'cdb') {
		
			fetch( fetch_url, {
				method: "POST",
				body: JSON.stringify( event_data_a ),
				credentials: 'same-origin',
				headers: {
					"Content-type": "application/json; charset=UTF-8",
					// "X-WP-Nonce": fp_nonce
				}
			})
			.then((response) => response.json())
			.then((json) => {
				if ( cb ) { 
					cb(json);
				} else {
					console.log( "[FP] Server response", json);
				}
			});

		} else {

			fetch( fetch_url, {
				method: "POST",
				credentials: 'same-origin',
				body: JSON.stringify( event_data_a ),
				headers: {
					"Content-type": "application/json; charset=UTF-8",
					// "X-WP-Nonce": fp_nonce
				}
			});
		}
	};

	if ( ! uses_geo ) {
		fpdata.country = 'unknown';
		FP.updateConsents();
		fp.ready = true;
	}

})(FP);</script><title>Madi's blog | Tech Blogger & Provider</title><meta name='robots' content='max-image-preview:large, max-snippet:-1, max-video-preview:-1' /><style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style><link rel="canonical" href="https://madi.se/"><meta name="description" content="Madi.se: Tech blogger &amp; provider - Tech insights, AI, Open Source, Linux. Future-proof your knowledge. edit"><meta property="og:title" content="Madi&#039;s blog | Tech Blogger &amp; Provider"><meta property="og:type" content="website"><meta property="og:description" content="Madi.se: Tech blogger &amp; provider - Tech insights, AI, Open Source, Linux. Future-proof your knowledge. edit"><meta property="og:url" content="https://madi.se/"><meta property="og:locale" content="en_US"><meta name="twitter:card" content="summary_large_image"><link rel='dns-prefetch' href='//www.googletagmanager.com' /><link rel="alternate" type="application/rss+xml" title=" &raquo; Feed" href="https://madi.se/feed/" /><link rel="alternate" type="application/rss+xml" title=" &raquo; Comments Feed" href="https://madi.se/comments/feed/" /><style id='classic-theme-styles-inline-css'>/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}</style><style id='global-styles-inline-css'>:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #FFFFFF;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--color--dark-gray: #28303D;--wp--preset--color--gray: #39414D;--wp--preset--color--green: #D1E4DD;--wp--preset--color--blue: #D1DFE4;--wp--preset--color--purple: #D1D1E4;--wp--preset--color--red: #E4D1D1;--wp--preset--color--orange: #E4DAD1;--wp--preset--color--yellow: #EEEADD;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--gradient--purple-to-yellow: linear-gradient(160deg, #D1D1E4 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-purple: linear-gradient(160deg, #EEEADD 0%, #D1D1E4 100%);--wp--preset--gradient--green-to-yellow: linear-gradient(160deg, #D1E4DD 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-green: linear-gradient(160deg, #EEEADD 0%, #D1E4DD 100%);--wp--preset--gradient--red-to-yellow: linear-gradient(160deg, #E4D1D1 0%, #EEEADD 100%);--wp--preset--gradient--yellow-to-red: linear-gradient(160deg, #EEEADD 0%, #E4D1D1 100%);--wp--preset--gradient--purple-to-red: linear-gradient(160deg, #D1D1E4 0%, #E4D1D1 100%);--wp--preset--gradient--red-to-purple: linear-gradient(160deg, #E4D1D1 0%, #D1D1E4 100%);--wp--preset--font-size--small: 18px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 24px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--extra-small: 16px;--wp--preset--font-size--normal: 20px;--wp--preset--font-size--extra-large: 40px;--wp--preset--font-size--huge: 96px;--wp--preset--font-size--gigantic: 144px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}</style><style id='akismet-widget-style-inline-css'>.a-stats {
				--akismet-color-mid-green: #357b49;
				--akismet-color-white: #fff;
				--akismet-color-light-grey: #f6f7f7;

				max-width: 350px;
				width: auto;
			}

			.a-stats * {
				all: unset;
				box-sizing: border-box;
			}

			.a-stats strong {
				font-weight: 600;
			}

			.a-stats a.a-stats__link,
			.a-stats a.a-stats__link:visited,
			.a-stats a.a-stats__link:active {
				background: var(--akismet-color-mid-green);
				border: none;
				box-shadow: none;
				border-radius: 8px;
				color: var(--akismet-color-white);
				cursor: pointer;
				display: block;
				font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', 'Helvetica Neue', sans-serif;
				font-weight: 500;
				padding: 12px;
				text-align: center;
				text-decoration: none;
				transition: all 0.2s ease;
			}

			/* Extra specificity to deal with TwentyTwentyOne focus style */
			.widget .a-stats a.a-stats__link:focus {
				background: var(--akismet-color-mid-green);
				color: var(--akismet-color-white);
				text-decoration: none;
			}

			.a-stats a.a-stats__link:hover {
				filter: brightness(110%);
				box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06), 0 0 2px rgba(0, 0, 0, 0.16);
			}

			.a-stats .count {
				color: var(--akismet-color-white);
				display: block;
				font-size: 1.5em;
				line-height: 1.4;
				padding: 0 13px;
				white-space: nowrap;
			}</style> <script type="litespeed/javascript" data-src="https://www.googletagmanager.com/gtag/js?id=GT-MJS2XRMS" id="google_gtagjs-js"></script> <script id="google_gtagjs-js-after" type="litespeed/javascript">window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments)}
gtag("set","linker",{"domains":["madi.se"]});gtag("js",new Date());gtag("set","developer_id.dZTNiMT",!0);gtag("config","GT-MJS2XRMS")</script> <link rel="https://api.w.org/" href="https://madi.se/wp-json/" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://madi.se/xmlrpc.php?rsd" /><meta name="generator" content="WordPress 6.8.1" /><meta name="generator" content="auto-sizes 1.4.0"><meta name="generator" content="Site Kit by Google 1.153.0" /><meta name="generator" content="performance-lab 3.9.0; plugins: auto-sizes, webp-uploads"><meta name="generator" content="webp-uploads 2.5.1"><style>.cmplz-hidden {
					display: none !important;
				}</style><meta name="google-adsense-platform-account" content="ca-host-pub-2644536267352236"><meta name="google-adsense-platform-domain" content="sitekit.withgoogle.com">
<style id="uagb-style-conditional-extension">@media (min-width: 1025px){body .uag-hide-desktop.uagb-google-map__wrap,body .uag-hide-desktop{display:none !important}}@media (min-width: 768px) and (max-width: 1024px){body .uag-hide-tab.uagb-google-map__wrap,body .uag-hide-tab{display:none !important}}@media (max-width: 767px){body .uag-hide-mob.uagb-google-map__wrap,body .uag-hide-mob{display:none !important}}</style><style id="uagb-style-frontend-1215">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><style id="uagb-style-frontend-1203">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><style id="uagb-style-frontend-1193">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><style id="uagb-style-frontend-1178">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><style id="uagb-style-frontend-1161">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><style id="uagb-style-frontend-126">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><style id="uagb-style-frontend-1">.uag-blocks-common-selector{z-index:var(--z-index-desktop) !important}@media (max-width: 976px){.uag-blocks-common-selector{z-index:var(--z-index-tablet) !important}}@media (max-width: 767px){.uag-blocks-common-selector{z-index:var(--z-index-mobile) !important}}</style><link rel="icon" href="https://madi.se/wp-content/uploads/2024/05/android-chrome-512x512-1-315x315.png" sizes="32x32" /><link rel="icon" href="https://madi.se/wp-content/uploads/2024/05/android-chrome-512x512-1-315x315.png" sizes="192x192" /><link rel="apple-touch-icon" href="https://madi.se/wp-content/uploads/2024/05/android-chrome-512x512-1-315x315.png" /><meta name="msapplication-TileImage" content="https://madi.se/wp-content/uploads/2024/05/android-chrome-512x512-1-315x315.png" /></head><body data-cmplz=1 class="home blog wp-custom-logo wp-embed-responsive wp-theme-twentytwentyone gspbody gspb-bodyfront is-light-theme no-js hfeed no-widgets"><div id="page" class="site">
<a class="skip-link screen-reader-text" href="#content">
Skip to content	</a><header id="masthead" class="site-header has-logo has-title-and-tagline"><div class="site-logo"><span class="custom-logo-link"><img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDYiIGhlaWdodD0iMTc5IiB2aWV3Qm94PSIwIDAgNDQ2IDE3OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="446" height="179" data-src="https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646.png" class="custom-logo" alt="Madise logo 500x500 transparent blogging once again final wordpress" decoding="async" fetchpriority="high" data-srcset="https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646.png 446w, https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646-300x120.png 300w" data-sizes="(max-width: 446px) 100vw, 446px" /></span></div><div class="site-branding"><p class="site-description">
Blogging once again!</p></div></header><div id="content" class="site-content"><div id="primary" class="content-area"><main id="main" class="site-main"><article id="post-1215" class="post-1215 post type-post status-publish format-standard has-post-thumbnail hentry category-diving-into-the-latest-tech-trends-innovations-and-solutions category-bytes-of-life tag-ai tag-anthropic tag-artificialintelligence tag-futureofcontent tag-googlegemini tag-groq tag-innovation tag-llms tag-obsbot tag-podcasting tag-tech tag-technology tag-ptz tag-tiny2 tag-webcam entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/ai-deep-dive-llms-podcasting-technologists-adventures/">AI Proxies, LLMs, Arabic Language Performance, and OBSBOT Tiny2 for Podcasting</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/ai-deep-dive-llms-podcasting-technologists-adventures/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1024" height="1024" data-src="https://madi.se/wp-content/uploads/2024/09/ai-podcast-webp.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Ai Podcast" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/09/ai-podcast-webp.jpg 1024w, https://madi.se/wp-content/uploads/2024/09/ai-podcast-315x315.webp 315w" data-sizes="(max-width: 1024px) 100vw, 1024px" style="width:100%;height:100%;max-width:1024px;" />				</a></figure></header><div class="entry-content"><p>Diving Headfirst into AI: From LLMs to Podcasting, A Technologist&#8217;s Adventures It&#8217;s been a while since I&#8217;ve last put my fingers on the keyboard, sharing my musings with the vast expanse of the internet. The early days of blogging hold a certain charm—a sense of community, of shared exploration in the nascent stages of the&hellip; <a class="more-link" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/ai-deep-dive-llms-podcasting-technologists-adventures/">Continue reading <span class="screen-reader-text">AI Proxies, LLMs, Arabic Language Performance, and OBSBOT Tiny2 for Podcasting</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-09-12T15:04:36+03:00">September 12, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/diving-into-the-latest-tech-trends-innovations-and-solutions/" rel="category tag">👾 Technology Bites</a>, <a href="https://madi.se/topic/bytes-of-life/" rel="category tag">💡Bytes of Life</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/ai/" rel="tag">#AI</a>, <a href="https://madi.se/tag/anthropic/" rel="tag">#Anthropic</a>, <a href="https://madi.se/tag/artificialintelligence/" rel="tag">#ArtificialIntelligence</a>, <a href="https://madi.se/tag/futureofcontent/" rel="tag">#FutureofContent</a>, <a href="https://madi.se/tag/googlegemini/" rel="tag">#GoogleGemini</a>, <a href="https://madi.se/tag/groq/" rel="tag">#Groq</a>, <a href="https://madi.se/tag/innovation/" rel="tag">#Innovation</a>, <a href="https://madi.se/tag/llms/" rel="tag">#LLMs</a>, <a href="https://madi.se/tag/obsbot/" rel="tag">#OBSBOT</a>, <a href="https://madi.se/tag/podcasting/" rel="tag">#Podcasting</a>, <a href="https://madi.se/tag/tech/" rel="tag">#Tech</a>, <a href="https://madi.se/tag/technology/" rel="tag">#Technology</a>, <a href="https://madi.se/tag/ptz/" rel="tag">PTZ</a>, <a href="https://madi.se/tag/tiny2/" rel="tag">Tiny2</a>, <a href="https://madi.se/tag/webcam/" rel="tag">webcam</a></span></div></footer></article><article id="post-1203" class="post-1203 post type-post status-publish format-standard has-post-thumbnail hentry category-middle-east-musings category-diving-into-the-latest-tech-trends-innovations-and-solutions tag-ai tag-arabicnlp tag-arabicsentimentanalysis tag-middleeasttech tag-naturallanguageprocessing tag-tech entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/understanding-arabic-sentiment-analysis/">Understanding Arabic Sentiment Analysis</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/understanding-arabic-sentiment-analysis/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNTM2IiBoZWlnaHQ9IjE1MzYiIHZpZXdCb3g9IjAgMCAxNTM2IDE1MzYiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1536" height="1536" data-src="https://madi.se/wp-content/uploads/2024/08/Arabic-Sentiment-analysis.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Arabic Sentiment Analysis" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/08/Arabic-Sentiment-analysis.jpeg 1536w, https://madi.se/wp-content/uploads/2024/08/Arabic-Sentiment-analysis-1024x1024.jpeg 1024w, https://madi.se/wp-content/uploads/2024/08/Arabic-Sentiment-analysis-315x315.jpeg 315w" data-sizes="(max-width: 1536px) 100vw, 1536px" style="width:100%;height:100%;max-width:1536px;" />				</a></figure></header><div class="entry-content"><p>In today&#8217;s digital age, understanding public opinion is crucial. Social media platforms, review websites, and online forums are teeming with opinions expressed in various languages. This has led to a growing interest in sentiment analysis, a field that aims to automatically determine the emotional tone behind text data. While much progress has been made in&hellip; <a class="more-link" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/understanding-arabic-sentiment-analysis/">Continue reading <span class="screen-reader-text">Understanding Arabic Sentiment Analysis</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-08-23T15:03:35+03:00">August 23, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/middle-east-musings/" rel="category tag">🌍 Middle East Musings</a>, <a href="https://madi.se/topic/diving-into-the-latest-tech-trends-innovations-and-solutions/" rel="category tag">👾 Technology Bites</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/ai/" rel="tag">#AI</a>, <a href="https://madi.se/tag/arabicnlp/" rel="tag">#ArabicNLP</a>, <a href="https://madi.se/tag/arabicsentimentanalysis/" rel="tag">#ArabicSentimentAnalysis</a>, <a href="https://madi.se/tag/middleeasttech/" rel="tag">#MiddleEastTech</a>, <a href="https://madi.se/tag/naturallanguageprocessing/" rel="tag">#NaturalLanguageProcessing</a>, <a href="https://madi.se/tag/tech/" rel="tag">#Tech</a></span></div></footer></article><article id="post-1193" class="post-1193 post type-post status-publish format-standard has-post-thumbnail hentry category-diving-into-the-latest-tech-trends-innovations-and-solutions tag-ai tag-chatbots tag-elizaeffect entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/the-eliza-effect-and-the-future-of-human-ai-interaction/">Talking to Machines Like They Talk Back: The Enduring Legacy of the ELIZA Effect</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/the-eliza-effect-and-the-future-of-human-ai-interaction/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1024" height="1024" data-src="https://madi.se/wp-content/uploads/2024/07/a-captivating-and-thought-provoking-photorealistic-AXhUUwcOQUiQd7tUlxRrFw-fQplmxdzRMGmBdGuVB7VhQ.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="A Captivating And Thought Provoking Photorealistic Axhuuwcoquiqd7tulxrrfw Fqplmxdzrmgmbdguvb7vhq" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/07/a-captivating-and-thought-provoking-photorealistic-AXhUUwcOQUiQd7tUlxRrFw-fQplmxdzRMGmBdGuVB7VhQ.jpeg 1024w, https://madi.se/wp-content/uploads/2024/07/a-captivating-and-thought-provoking-photorealistic-AXhUUwcOQUiQd7tUlxRrFw-fQplmxdzRMGmBdGuVB7VhQ-315x315.jpeg 315w" data-sizes="(max-width: 1024px) 100vw, 1024px" style="width:100%;height:100%;max-width:1024px;" />				</a></figure></header><div class="entry-content"><p>Imagine a world in the not-so-distant past, the 1960s. Computers were hulking machines, more akin to oversized calculators than the sleek devices we carry in our pockets today. Yet, amidst the whirring tapes and blinking lights, a revolution was brewing – the birth of chatbots. One such pioneer was ELIZA, a seemingly simple program that&hellip; <a class="more-link" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/the-eliza-effect-and-the-future-of-human-ai-interaction/">Continue reading <span class="screen-reader-text">Talking to Machines Like They Talk Back: The Enduring Legacy of the ELIZA Effect</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-07-07T22:30:54+03:00">July 7, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/diving-into-the-latest-tech-trends-innovations-and-solutions/" rel="category tag">👾 Technology Bites</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/ai/" rel="tag">#AI</a>, <a href="https://madi.se/tag/chatbots/" rel="tag">#ChatBots</a>, <a href="https://madi.se/tag/elizaeffect/" rel="tag">#ELIZAeffect</a></span></div></footer></article><article id="post-1178" class="post-1178 post type-post status-publish format-standard has-post-thumbnail hentry category-diving-into-the-latest-tech-trends-innovations-and-solutions tag-ai tag-responsibleai tag-tech4good entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/decoding-the-ai-black-box-my-enlightening-dialogue-with-claude-3-5-sonnet/">Decoding the AI Black Box: My Enlightening Dialogue with Claude 3.5 Sonnet</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/decoding-the-ai-black-box-my-enlightening-dialogue-with-claude-3-5-sonnet/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjgwIiBoZWlnaHQ9IjcyMCIgdmlld0JveD0iMCAwIDEyODAgNzIwIj48cmVjdCB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBzdHlsZT0iZmlsbDojY2ZkNGRiO2ZpbGwtb3BhY2l0eTogMC4xOyIvPjwvc3ZnPg==" width="1280" height="720" data-src="https://madi.se/wp-content/uploads/2024/06/a-thought-provoking-conceptual-art-piece-showcasin-CLzb3qSgQEm3DgUFIGtemQ-Ap7_9JzRT4-jJ01Xz5FQ7w.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="A Thought Provoking Conceptual Art Piece Showcasin Clzb3qsgqem3dgufigtemq Ap7 9jzrt4 Jj01xz5fq7w" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/06/a-thought-provoking-conceptual-art-piece-showcasin-CLzb3qSgQEm3DgUFIGtemQ-Ap7_9JzRT4-jJ01Xz5FQ7w.jpeg 1280w, https://madi.se/wp-content/uploads/2024/06/a-thought-provoking-conceptual-art-piece-showcasin-CLzb3qSgQEm3DgUFIGtemQ-Ap7_9JzRT4-jJ01Xz5FQ7w-1024x576.jpeg 1024w" data-sizes="(max-width: 1280px) 100vw, 1280px" style="width:100%;height:56.25%;max-width:1280px;" />				</a></figure></header><div class="entry-content"><p>As someone who&#8217;s been immersed in the tech world since the days of dial-up and GeoCities, I&#8217;ve witnessed firsthand the rapid evolution of digital technologies. But nothing quite compares to the current AI revolution we&#8217;re experiencing. Recently, I had the opportunity to engage in a fascinating conversation with Claude 3.5 Sonnet, an advanced AI language&hellip; <a class="more-link" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/decoding-the-ai-black-box-my-enlightening-dialogue-with-claude-3-5-sonnet/">Continue reading <span class="screen-reader-text">Decoding the AI Black Box: My Enlightening Dialogue with Claude 3.5 Sonnet</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-06-24T06:26:18+03:00">June 24, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/diving-into-the-latest-tech-trends-innovations-and-solutions/" rel="category tag">👾 Technology Bites</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/ai/" rel="tag">#AI</a>, <a href="https://madi.se/tag/responsibleai/" rel="tag">#ResponsibleAI</a>, <a href="https://madi.se/tag/tech4good/" rel="tag">#Tech4Good</a></span></div></footer></article><article id="post-1161" class="post-1161 post type-post status-publish format-standard has-post-thumbnail hentry category-diving-into-the-latest-tech-trends-innovations-and-solutions tag-ai tag-aiart tag-digitalart entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/from-code-to-canvas-an-ai-fueled-artistic-awakening/">From Code to Canvas: An AI-Fueled Artistic Awakening</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/from-code-to-canvas-an-ai-fueled-artistic-awakening/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1024" height="1024" data-src="https://madi.se/wp-content/uploads/2024/06/a-captivating-surrealistic-painting-that-combines-O5AE06erR5G8cKalRrVBkw-zqo1XLUkRDyjhQZ9GJk1sQ.jpeg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="A Captivating Surrealistic Painting That Combines O5ae06err5g8ckalrrvbkw Zqo1xlukrdyjhqz9gjk1sq" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/06/a-captivating-surrealistic-painting-that-combines-O5AE06erR5G8cKalRrVBkw-zqo1XLUkRDyjhQZ9GJk1sQ.jpeg 1024w, https://madi.se/wp-content/uploads/2024/06/a-captivating-surrealistic-painting-that-combines-O5AE06erR5G8cKalRrVBkw-zqo1XLUkRDyjhQZ9GJk1sQ-315x315.jpeg 315w" data-sizes="(max-width: 1024px) 100vw, 1024px" style="width:100%;height:100%;max-width:1024px;" />				</a></figure></header><div class="entry-content"><p>The digital world has always held a certain allure for me. Back in the late 90s and early 2000s, I found myself immersed in the world of programming and Linux system administration. It was a fascinating world, full of challenges and the satisfaction of building and tweaking systems. But my career path, like many others,&hellip; <a class="more-link" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/from-code-to-canvas-an-ai-fueled-artistic-awakening/">Continue reading <span class="screen-reader-text">From Code to Canvas: An AI-Fueled Artistic Awakening</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-06-18T11:29:14+03:00">June 18, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/diving-into-the-latest-tech-trends-innovations-and-solutions/" rel="category tag">👾 Technology Bites</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/ai/" rel="tag">#AI</a>, <a href="https://madi.se/tag/aiart/" rel="tag">#AIArt</a>, <a href="https://madi.se/tag/digitalart/" rel="tag">#DigitalArt</a></span></div></footer></article><article id="post-1096" class="post-1096 post type-post status-publish format-standard has-post-thumbnail hentry category-diving-into-the-latest-tech-trends-innovations-and-solutions tag-humanid tag-responsibleai tag-synthid tag-watermark entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/synthid-the-ai-watermark-that-could-save-the-internet/">SynthID: The AI Watermark That Could Save the Internet</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/synthid-the-ai-watermark-that-could-save-the-internet/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1024" height="1024" data-src="https://madi.se/wp-content/uploads/2024/05/SynthID-jpeg-1.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Synthid Jpeg" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/05/SynthID-jpeg-1.webp 1024w, https://madi.se/wp-content/uploads/2024/05/SynthID-jpeg-1-315x315.webp 315w" data-sizes="(max-width: 1024px) 100vw, 1024px" style="width:100%;height:100%;max-width:1024px;" />				</a></figure></header><div class="entry-content"><p>The digital realm is undergoing a seismic shift. Artificial intelligence, once a futuristic concept, is now weaving itself into the fabric of our everyday lives. From crafting compelling marketing copy to generating stunning visuals, AI tools are empowering creators and reshaping the content landscape. Yet, this exciting frontier also presents new challenges, particularly concerning the&hellip; <a class="more-link" href="https://madi.se/diving-into-the-latest-tech-trends-innovations-and-solutions/synthid-the-ai-watermark-that-could-save-the-internet/">Continue reading <span class="screen-reader-text">SynthID: The AI Watermark That Could Save the Internet</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-05-28T08:02:57+03:00">May 28, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/diving-into-the-latest-tech-trends-innovations-and-solutions/" rel="category tag">👾 Technology Bites</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/humanid/" rel="tag">#HumanID</a>, <a href="https://madi.se/tag/responsibleai/" rel="tag">#ResponsibleAI</a>, <a href="https://madi.se/tag/synthid/" rel="tag">#SynthID</a>, <a href="https://madi.se/tag/watermark/" rel="tag">#Watermark</a></span></div></footer></article><article id="post-126" class="post-126 post type-post status-publish format-standard has-post-thumbnail hentry category-personal tag-blogging tag-linux tag-programming entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/personal/rekindling-the-flame-my-journey-back-to-blogging-after-two-decades/">Rekindling the Flame: My Journey Back to Blogging After Two Decades</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/personal/rekindling-the-flame-my-journey-back-to-blogging-after-two-decades/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1024" height="1024" data-src="https://madi.se/wp-content/uploads/2024/04/1-jpeg.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="1" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/04/1-jpeg.webp 1024w, https://madi.se/wp-content/uploads/2024/04/1-jpeg-315x315.webp 315w" data-sizes="(max-width: 1024px) 100vw, 1024px" style="width:100%;height:100%;max-width:1024px;" />				</a><figcaption class="wp-caption-text">1</figcaption></figure></header><div class="entry-content"><p>It feels good to be back to personal online publishing, a familiar space for me. My name is Jad, and I&#8217;m a blogger from the Middle East. I first embraced blogging in 2002 when it was still in its early stage, and it happened accidentally when I wanted to test the new platform back then&hellip; <a class="more-link" href="https://madi.se/personal/rekindling-the-flame-my-journey-back-to-blogging-after-two-decades/">Continue reading <span class="screen-reader-text">Rekindling the Flame: My Journey Back to Blogging After Two Decades</span></a></p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-04-29T20:37:27+03:00">April 29, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/personal/" rel="category tag">🧑 Personal</a> </span><span class="tags-links">Tagged <a href="https://madi.se/tag/blogging/" rel="tag">#Blogging</a>, <a href="https://madi.se/tag/linux/" rel="tag">#Linux</a>, <a href="https://madi.se/tag/programming/" rel="tag">#Programming</a></span></div></footer></article><article id="post-1" class="post-1 post type-post status-publish format-standard has-post-thumbnail hentry category-uncategorized entry"><header class="entry-header"><h2 class="entry-title default-max-width"><a href="https://madi.se/uncategorized/hello-world/">Hello world!</a></h2><figure class="post-thumbnail">
<a class="post-thumbnail-inner alignwide" href="https://madi.se/uncategorized/hello-world/" aria-hidden="true" tabindex="-1">
<img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjEwMjQiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiPjxyZWN0IHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiIHN0eWxlPSJmaWxsOiNjZmQ0ZGI7ZmlsbC1vcGFjaXR5OiAwLjE7Ii8+PC9zdmc+" width="1024" height="1024" data-src="https://madi.se/wp-content/uploads/2024/04/hello-world-jpeg.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="Hello world" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/04/hello-world-jpeg.webp 1024w, https://madi.se/wp-content/uploads/2024/04/hello-world-jpeg-315x315.webp 315w" data-sizes="(max-width: 1024px) 100vw, 1024px" style="width:100%;height:100%;max-width:1024px;" />				</a></figure></header><div class="entry-content"><p>Welcome to WordPress. This is your first post. Edit or delete it, then start writing!</p></div><footer class="entry-footer default-max-width">
<span class="posted-on">Published <time class="entry-date published updated" datetime="2024-04-28T16:26:50+03:00">April 28, 2024</time></span><div class="post-taxonomies"><span class="cat-links">Categorized as <a href="https://madi.se/topic/uncategorized/" rel="category tag">Uncategorized</a> </span></div></footer></article></main></div></div><footer id="colophon" class="site-footer"><div class="site-info"><div class="site-name"><div class="site-logo"><span class="custom-logo-link"><img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDYiIGhlaWdodD0iMTc5IiB2aWV3Qm94PSIwIDAgNDQ2IDE3OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="446" height="179" data-src="https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646.png" class="custom-logo" alt="Madise logo 500x500 transparent blogging once again final wordpress" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646.png 446w, https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646-300x120.png 300w" data-sizes="(max-width: 446px) 100vw, 446px" /></span></div></div><div class="privacy-policy"><a class="privacy-policy-link" href="https://madi.se/privacy-policy/" rel="privacy-policy">Privacy Policy</a></div><div class="powered-by">
Proudly powered by <a href="https://wordpress.org/">WordPress</a>.</div></div></footer></div> <script type="speculationrules">{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/twentytwentyone\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}</script> <div id="cmplz-cookiebanner-container"><div class="cmplz-cookiebanner cmplz-hidden banner-1 banner-a optin cmplz-bottom cmplz-categories-type-view-preferences" aria-modal="true" data-nosnippet="true" role="dialog" aria-live="polite" aria-labelledby="cmplz-header-1-optin" aria-describedby="cmplz-message-1-optin"><div class="cmplz-header"><div class="cmplz-logo"><span class="custom-logo-link"><img data-lazyloaded="1" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI0NDYiIGhlaWdodD0iMTc5IiB2aWV3Qm94PSIwIDAgNDQ2IDE3OSI+PHJlY3Qgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgc3R5bGU9ImZpbGw6I2NmZDRkYjtmaWxsLW9wYWNpdHk6IDAuMTsiLz48L3N2Zz4=" width="446" height="179" data-src="https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646.png" class="custom-logo" alt="Madise logo 500x500 transparent blogging once again final wordpress" decoding="async" data-srcset="https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646.png 446w, https://madi.se/wp-content/uploads/2024/04/Madise-Logo-500x500-transparent-blogging-once-again-2-e1714448038646-300x120.png 300w" data-sizes="(max-width: 446px) 100vw, 446px" /></span></div><div class="cmplz-title" id="cmplz-header-1-optin">A Sweet Deal or a Hard Pass? 🔑🍪</div><div class="cmplz-close" tabindex="0" role="button" aria-label="Close dialog">
<svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" class="svg-inline--fa fa-times fa-w-11" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 352 512"><path fill="currentColor" d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"></path></svg></div></div><div class="cmplz-divider cmplz-divider-header"></div><div class="cmplz-body"><div class="cmplz-message" id="cmplz-message-1-optin"><p>Oh, you caught us red-handed! We do use cookies on this site, but they're the delicious kind that make your browsing experience extra sweet. 😋</p><p>Seriously though, we want to be upfront with you. We use little digital treats called cookies to remember your preferences, keep you logged in, and maybe even do a little dance when you visit a new page. Pretty neat, right?</p><p>&nbsp;</p><p><i><strong>Now, you have a choice to make</strong></i>: will you let us use these cookies to give you the best possible experience on our site? Or will you politely decline and risk missing out on some of the fun and functionality?</p><p>Either way, we're cool with it. Just know that if you say no, some features might not work as smoothly as they could. But hey, at least you'll have a clear conscience (and maybe a few extra calories to spare)!</p></div><div class="cmplz-categories">
<details class="cmplz-category cmplz-functional" >
<summary>
<span class="cmplz-category-header">
<span class="cmplz-category-title">Functional 🍪</span>
<span class='cmplz-always-active'>
<span class="cmplz-banner-checkbox">
<input type="checkbox"
id="cmplz-functional-optin"
data-category="cmplz_functional"
class="cmplz-consent-checkbox cmplz-functional"
size="40"
value="1"/>
<label class="cmplz-label" for="cmplz-functional-optin" tabindex="0"><span class="screen-reader-text">Functional 🍪</span></label>
</span>
Always active							</span>
<span class="cmplz-icon cmplz-open">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"  height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg>
</span>
</span>
</summary><div class="cmplz-description">
<span class="cmplz-description-functional">These are like the flour in our cookie dough - essential for the site to work properly. Without them, things might get a bit crumbly.</span></div>
</details><details class="cmplz-category cmplz-preferences" >
<summary>
<span class="cmplz-category-header">
<span class="cmplz-category-title">Preferences 🍫</span>
<span class="cmplz-banner-checkbox">
<input type="checkbox"
id="cmplz-preferences-optin"
data-category="cmplz_preferences"
class="cmplz-consent-checkbox cmplz-preferences"
size="40"
value="1"/>
<label class="cmplz-label" for="cmplz-preferences-optin" tabindex="0"><span class="screen-reader-text">Preferences 🍫</span></label>
</span>
<span class="cmplz-icon cmplz-open">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"  height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg>
</span>
</span>
</summary><div class="cmplz-description">
<span class="cmplz-description-preferences">Think of these as the chocolate chips. They help us remember how you like your cookies - soft and chewy or crispy and crunchy.</span></div>
</details><details class="cmplz-category cmplz-statistics" >
<summary>
<span class="cmplz-category-header">
<span class="cmplz-category-title">Statistics 📊</span>
<span class="cmplz-banner-checkbox">
<input type="checkbox"
id="cmplz-statistics-optin"
data-category="cmplz_statistics"
class="cmplz-consent-checkbox cmplz-statistics"
size="40"
value="1"/>
<label class="cmplz-label" for="cmplz-statistics-optin" tabindex="0"><span class="screen-reader-text">Statistics 📊</span></label>
</span>
<span class="cmplz-icon cmplz-open">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"  height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg>
</span>
</span>
</summary><div class="cmplz-description">
<span class="cmplz-description-statistics">The technical storage or access that is used exclusively for statistical purposes.</span>
<span class="cmplz-description-statistics-anonymous">These are like the sprinkles on top. They let us know which cookies are the most popular, so we can keep baking up a storm.</span></div>
</details>
<details class="cmplz-category cmplz-marketing" >
<summary>
<span class="cmplz-category-header">
<span class="cmplz-category-title">Marketing 🎯</span>
<span class="cmplz-banner-checkbox">
<input type="checkbox"
id="cmplz-marketing-optin"
data-category="cmplz_marketing"
class="cmplz-consent-checkbox cmplz-marketing"
size="40"
value="1"/>
<label class="cmplz-label" for="cmplz-marketing-optin" tabindex="0"><span class="screen-reader-text">Marketing 🎯</span></label>
</span>
<span class="cmplz-icon cmplz-open">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"  height="18" ><path d="M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z"/></svg>
</span>
</span>
</summary><div class="cmplz-description">
<span class="cmplz-description-marketing">Ah, the raisins of the bunch (sorry, raisin fans!). These little guys help us figure out which new cookie flavors you might enjoy.</span></div>
</details></div></div><div class="cmplz-links cmplz-information">
<a class="cmplz-link cmplz-manage-options cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">Manage options</a>
<a class="cmplz-link cmplz-manage-third-parties cookie-statement" href="#" data-relative_url="#cmplz-cookies-overview">Manage services</a>
<a class="cmplz-link cmplz-manage-vendors tcf cookie-statement" href="#" data-relative_url="#cmplz-tcf-wrapper">Manage {vendor_count} vendors</a>
<a class="cmplz-link cmplz-external cmplz-read-more-purposes tcf" target="_blank" rel="noopener noreferrer nofollow" href="https://cookiedatabase.org/tcf/purposes/">Read more about these purposes</a></div><div class="cmplz-divider cmplz-footer"></div><div class="cmplz-buttons">
<button class="cmplz-btn cmplz-accept">Accept</button>
<button class="cmplz-btn cmplz-deny">Deny</button>
<button class="cmplz-btn cmplz-view-preferences">Preferences</button>
<button class="cmplz-btn cmplz-save-preferences">Save preferences</button>
<a class="cmplz-btn cmplz-manage-options tcf cookie-statement" href="#" data-relative_url="#cmplz-manage-consent-container">Preferences</a></div><div class="cmplz-links cmplz-documents">
<a class="cmplz-link cookie-statement" href="#" data-relative_url="">{title}</a>
<a class="cmplz-link privacy-statement" href="#" data-relative_url="">{title}</a>
<a class="cmplz-link impressum" href="#" data-relative_url="">{title}</a></div></div></div><div id="cmplz-manage-consent" data-nosnippet="true"><button class="cmplz-btn cmplz-hidden cmplz-manage-consent manage-consent-1">Your consent is key</button></div><script type="litespeed/javascript">document.body.classList.remove("no-js")</script> <script type="litespeed/javascript">if(-1!==navigator.userAgent.indexOf('MSIE')||-1!==navigator.appVersion.indexOf('Trident/')){document.body.classList.add('is-IE')}</script> <script type="application/ld+json" id="slim-seo-schema">{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://madi.se/#website","url":"https://madi.se/","description":"Blogging once again!","inLanguage":"en-US","potentialAction":{"@id":"https://madi.se/#searchaction"},"publisher":{"@id":"https://madi.se/#organization"}},{"@type":"SearchAction","@id":"https://madi.se/#searchaction","target":"https://madi.se/?s={search_term_string}","query-input":"required name=search_term_string"},{"@type":"WebPage","@id":"https://madi.se/#webpage","url":"https://madi.se/","inLanguage":"en-US","name":"Madi's blog | Tech Blogger & Provider","description":"Madi.se: Tech blogger & provider - Tech insights, AI, Open Source, Linux. Future-proof your knowledge. edit","isPartOf":{"@id":"https://madi.se/#website"},"about":{"@id":"https://madi.se/#organization"}},{"@type":"Organization","@id":"https://madi.se/#organization","url":"https://madi.se/"}]}</script> <script type='module' src="https://madi.se/wp-content/plugins/instant-page/instantpage.js" id="instantpage-js"></script> <script id="twenty-twenty-one-ie11-polyfills-js-after" type="litespeed/javascript">(Element.prototype.matches&&Element.prototype.closest&&window.NodeList&&NodeList.prototype.forEach)||document.write('<script src="https://madi.se/wp-content/themes/twentytwentyone/assets/js/polyfills.js"></scr'+'ipt>')</script> <script id="wp-consent-api-js-extra" type="litespeed/javascript">var consent_api={"consent_type":"optin","waitfor_consent_hook":"","cookie_expiration":"30","cookie_prefix":"wp_consent"}</script> <script id="cmplz-cookiebanner-js-extra" type="litespeed/javascript">var complianz={"prefix":"cmplz_","user_banner_id":"1","set_cookies":[],"block_ajax_content":"0","banner_version":"44","version":"7.4.0.1","store_consent":"","do_not_track_enabled":"","consenttype":"optin","region":"eu","geoip":"","dismiss_timeout":"","disable_cookiebanner":"","soft_cookiewall":"","dismiss_on_scroll":"","cookie_expiry":"365","url":"https:\/\/madi.se\/wp-json\/complianz\/v1\/","locale":"lang=en&locale=en_US","set_cookies_on_root":"1","cookie_domain":"madi.se","current_policy_id":"35","cookie_path":"\/","categories":{"statistics":"statistics","marketing":"marketing"},"tcf_active":"","placeholdertext":"Click to accept {category} cookies and enable this content","css_file":"https:\/\/madi.se\/wp-content\/uploads\/complianz\/css\/banner-{banner_id}-{type}.css?v=44","page_links":{"eu":{"cookie-statement":{"title":"Cookie Policy ","url":"https:\/\/madi.se\/cookie-policy-eu\/"},"privacy-statement":{"title":"Privacy Policy","url":"https:\/\/madi.se\/privacy-policy\/"}}},"tm_categories":"1","forceEnableStats":"","preview":"","clean_cookies":"","aria_label":"Click to accept {category} cookies and enable this content"}</script> <script data-no-optimize="1">!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).LazyLoad=e()}(this,function(){"use strict";function e(){return(e=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var n,a=arguments[e];for(n in a)Object.prototype.hasOwnProperty.call(a,n)&&(t[n]=a[n])}return t}).apply(this,arguments)}function i(t){return e({},it,t)}function o(t,e){var n,a="LazyLoad::Initialized",i=new t(e);try{n=new CustomEvent(a,{detail:{instance:i}})}catch(t){(n=document.createEvent("CustomEvent")).initCustomEvent(a,!1,!1,{instance:i})}window.dispatchEvent(n)}function l(t,e){return t.getAttribute(gt+e)}function c(t){return l(t,bt)}function s(t,e){return function(t,e,n){e=gt+e;null!==n?t.setAttribute(e,n):t.removeAttribute(e)}(t,bt,e)}function r(t){return s(t,null),0}function u(t){return null===c(t)}function d(t){return c(t)===vt}function f(t,e,n,a){t&&(void 0===a?void 0===n?t(e):t(e,n):t(e,n,a))}function _(t,e){nt?t.classList.add(e):t.className+=(t.className?" ":"")+e}function v(t,e){nt?t.classList.remove(e):t.className=t.className.replace(new RegExp("(^|\\s+)"+e+"(\\s+|$)")," ").replace(/^\s+/,"").replace(/\s+$/,"")}function g(t){return t.llTempImage}function b(t,e){!e||(e=e._observer)&&e.unobserve(t)}function p(t,e){t&&(t.loadingCount+=e)}function h(t,e){t&&(t.toLoadCount=e)}function n(t){for(var e,n=[],a=0;e=t.children[a];a+=1)"SOURCE"===e.tagName&&n.push(e);return n}function m(t,e){(t=t.parentNode)&&"PICTURE"===t.tagName&&n(t).forEach(e)}function a(t,e){n(t).forEach(e)}function E(t){return!!t[st]}function I(t){return t[st]}function y(t){return delete t[st]}function A(e,t){var n;E(e)||(n={},t.forEach(function(t){n[t]=e.getAttribute(t)}),e[st]=n)}function k(a,t){var i;E(a)&&(i=I(a),t.forEach(function(t){var e,n;e=a,(t=i[n=t])?e.setAttribute(n,t):e.removeAttribute(n)}))}function L(t,e,n){_(t,e.class_loading),s(t,ut),n&&(p(n,1),f(e.callback_loading,t,n))}function w(t,e,n){n&&t.setAttribute(e,n)}function x(t,e){w(t,ct,l(t,e.data_sizes)),w(t,rt,l(t,e.data_srcset)),w(t,ot,l(t,e.data_src))}function O(t,e,n){var a=l(t,e.data_bg_multi),i=l(t,e.data_bg_multi_hidpi);(a=at&&i?i:a)&&(t.style.backgroundImage=a,n=n,_(t=t,(e=e).class_applied),s(t,ft),n&&(e.unobserve_completed&&b(t,e),f(e.callback_applied,t,n)))}function N(t,e){!e||0<e.loadingCount||0<e.toLoadCount||f(t.callback_finish,e)}function C(t,e,n){t.addEventListener(e,n),t.llEvLisnrs[e]=n}function M(t){return!!t.llEvLisnrs}function z(t){if(M(t)){var e,n,a=t.llEvLisnrs;for(e in a){var i=a[e];n=e,i=i,t.removeEventListener(n,i)}delete t.llEvLisnrs}}function R(t,e,n){var a;delete t.llTempImage,p(n,-1),(a=n)&&--a.toLoadCount,v(t,e.class_loading),e.unobserve_completed&&b(t,n)}function T(o,r,c){var l=g(o)||o;M(l)||function(t,e,n){M(t)||(t.llEvLisnrs={});var a="VIDEO"===t.tagName?"loadeddata":"load";C(t,a,e),C(t,"error",n)}(l,function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_loaded),s(e,dt),f(n.callback_loaded,e,a),i||N(n,a),z(l)},function(t){var e,n,a,i;n=r,a=c,i=d(e=o),R(e,n,a),_(e,n.class_error),s(e,_t),f(n.callback_error,e,a),i||N(n,a),z(l)})}function G(t,e,n){var a,i,o,r,c;t.llTempImage=document.createElement("IMG"),T(t,e,n),E(c=t)||(c[st]={backgroundImage:c.style.backgroundImage}),o=n,r=l(a=t,(i=e).data_bg),c=l(a,i.data_bg_hidpi),(r=at&&c?c:r)&&(a.style.backgroundImage='url("'.concat(r,'")'),g(a).setAttribute(ot,r),L(a,i,o)),O(t,e,n)}function D(t,e,n){var a;T(t,e,n),a=e,e=n,(t=It[(n=t).tagName])&&(t(n,a),L(n,a,e))}function V(t,e,n){var a;a=t,(-1<yt.indexOf(a.tagName)?D:G)(t,e,n)}function F(t,e,n){var a;t.setAttribute("loading","lazy"),T(t,e,n),a=e,(e=It[(n=t).tagName])&&e(n,a),s(t,vt)}function j(t){t.removeAttribute(ot),t.removeAttribute(rt),t.removeAttribute(ct)}function P(t){m(t,function(t){k(t,Et)}),k(t,Et)}function S(t){var e;(e=At[t.tagName])?e(t):E(e=t)&&(t=I(e),e.style.backgroundImage=t.backgroundImage)}function U(t,e){var n;S(t),n=e,u(e=t)||d(e)||(v(e,n.class_entered),v(e,n.class_exited),v(e,n.class_applied),v(e,n.class_loading),v(e,n.class_loaded),v(e,n.class_error)),r(t),y(t)}function $(t,e,n,a){var i;n.cancel_on_exit&&(c(t)!==ut||"IMG"===t.tagName&&(z(t),m(i=t,function(t){j(t)}),j(i),P(t),v(t,n.class_loading),p(a,-1),r(t),f(n.callback_cancel,t,e,a)))}function q(t,e,n,a){var i,o,r=(o=t,0<=pt.indexOf(c(o)));s(t,"entered"),_(t,n.class_entered),v(t,n.class_exited),i=t,o=a,n.unobserve_entered&&b(i,o),f(n.callback_enter,t,e,a),r||V(t,n,a)}function H(t){return t.use_native&&"loading"in HTMLImageElement.prototype}function B(t,i,o){t.forEach(function(t){return(a=t).isIntersecting||0<a.intersectionRatio?q(t.target,t,i,o):(e=t.target,n=t,a=i,t=o,void(u(e)||(_(e,a.class_exited),$(e,n,a,t),f(a.callback_exit,e,n,t))));var e,n,a})}function J(e,n){var t;et&&!H(e)&&(n._observer=new IntersectionObserver(function(t){B(t,e,n)},{root:(t=e).container===document?null:t.container,rootMargin:t.thresholds||t.threshold+"px"}))}function K(t){return Array.prototype.slice.call(t)}function Q(t){return t.container.querySelectorAll(t.elements_selector)}function W(t){return c(t)===_t}function X(t,e){return e=t||Q(e),K(e).filter(u)}function Y(e,t){var n;(n=Q(e),K(n).filter(W)).forEach(function(t){v(t,e.class_error),r(t)}),t.update()}function t(t,e){var n,a,t=i(t);this._settings=t,this.loadingCount=0,J(t,this),n=t,a=this,Z&&window.addEventListener("online",function(){Y(n,a)}),this.update(e)}var Z="undefined"!=typeof window,tt=Z&&!("onscroll"in window)||"undefined"!=typeof navigator&&/(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent),et=Z&&"IntersectionObserver"in window,nt=Z&&"classList"in document.createElement("p"),at=Z&&1<window.devicePixelRatio,it={elements_selector:".lazy",container:tt||Z?document:null,threshold:300,thresholds:null,data_src:"src",data_srcset:"srcset",data_sizes:"sizes",data_bg:"bg",data_bg_hidpi:"bg-hidpi",data_bg_multi:"bg-multi",data_bg_multi_hidpi:"bg-multi-hidpi",data_poster:"poster",class_applied:"applied",class_loading:"litespeed-loading",class_loaded:"litespeed-loaded",class_error:"error",class_entered:"entered",class_exited:"exited",unobserve_completed:!0,unobserve_entered:!1,cancel_on_exit:!0,callback_enter:null,callback_exit:null,callback_applied:null,callback_loading:null,callback_loaded:null,callback_error:null,callback_finish:null,callback_cancel:null,use_native:!1},ot="src",rt="srcset",ct="sizes",lt="poster",st="llOriginalAttrs",ut="loading",dt="loaded",ft="applied",_t="error",vt="native",gt="data-",bt="ll-status",pt=[ut,dt,ft,_t],ht=[ot],mt=[ot,lt],Et=[ot,rt,ct],It={IMG:function(t,e){m(t,function(t){A(t,Et),x(t,e)}),A(t,Et),x(t,e)},IFRAME:function(t,e){A(t,ht),w(t,ot,l(t,e.data_src))},VIDEO:function(t,e){a(t,function(t){A(t,ht),w(t,ot,l(t,e.data_src))}),A(t,mt),w(t,lt,l(t,e.data_poster)),w(t,ot,l(t,e.data_src)),t.load()}},yt=["IMG","IFRAME","VIDEO"],At={IMG:P,IFRAME:function(t){k(t,ht)},VIDEO:function(t){a(t,function(t){k(t,ht)}),k(t,mt),t.load()}},kt=["IMG","IFRAME","VIDEO"];return t.prototype={update:function(t){var e,n,a,i=this._settings,o=X(t,i);{if(h(this,o.length),!tt&&et)return H(i)?(e=i,n=this,o.forEach(function(t){-1!==kt.indexOf(t.tagName)&&F(t,e,n)}),void h(n,0)):(t=this._observer,i=o,t.disconnect(),a=t,void i.forEach(function(t){a.observe(t)}));this.loadAll(o)}},destroy:function(){this._observer&&this._observer.disconnect(),Q(this._settings).forEach(function(t){y(t)}),delete this._observer,delete this._settings,delete this.loadingCount,delete this.toLoadCount},loadAll:function(t){var e=this,n=this._settings;X(t,n).forEach(function(t){b(t,e),V(t,n,e)})},restoreAll:function(){var e=this._settings;Q(e).forEach(function(t){U(t,e)})}},t.load=function(t,e){e=i(e);V(t,e)},t.resetStatus=function(t){r(t)},Z&&function(t,e){if(e)if(e.length)for(var n,a=0;n=e[a];a+=1)o(t,n);else o(t,e)}(t,window.lazyLoadOptions),t});!function(e,t){"use strict";function a(){t.body.classList.add("litespeed_lazyloaded")}function n(){console.log("[LiteSpeed] Start Lazy Load Images"),d=new LazyLoad({elements_selector:"[data-lazyloaded]",callback_finish:a}),o=function(){d.update()},e.MutationObserver&&new MutationObserver(o).observe(t.documentElement,{childList:!0,subtree:!0,attributes:!0})}var d,o;e.addEventListener?e.addEventListener("load",n,!1):e.attachEvent("onload",n)}(window,document);</script><script data-no-optimize="1">var litespeed_vary=document.cookie.replace(/(?:(?:^|.*;\s*)_lscache_vary\s*\=\s*([^;]*).*$)|^.*$/,"");litespeed_vary||fetch("/wp-content/plugins/litespeed-cache/guest.vary.php",{method:"POST",cache:"no-cache",redirect:"follow"}).then(e=>e.json()).then(e=>{console.log(e),e.hasOwnProperty("reload")&&"yes"==e.reload&&(sessionStorage.setItem("litespeed_docref",document.referrer),window.location.reload(!0))});</script><script data-optimized="1" type="litespeed/javascript" data-src="https://madi.se/wp-content/litespeed/js/ffe9b3667e2a3ca9c2a151b94e4da4e5.js?ver=c6911"></script><script>const litespeed_ui_events=["mouseover","click","keydown","wheel","touchmove","touchstart"];var urlCreator=window.URL||window.webkitURL;function litespeed_load_delayed_js_force(){console.log("[LiteSpeed] Start Load JS Delayed"),litespeed_ui_events.forEach(e=>{window.removeEventListener(e,litespeed_load_delayed_js_force,{passive:!0})}),document.querySelectorAll("iframe[data-litespeed-src]").forEach(e=>{e.setAttribute("src",e.getAttribute("data-litespeed-src"))}),"loading"==document.readyState?window.addEventListener("DOMContentLoaded",litespeed_load_delayed_js):litespeed_load_delayed_js()}litespeed_ui_events.forEach(e=>{window.addEventListener(e,litespeed_load_delayed_js_force,{passive:!0})});async function litespeed_load_delayed_js(){let t=[];for(var d in document.querySelectorAll('script[type="litespeed/javascript"]').forEach(e=>{t.push(e)}),t)await new Promise(e=>litespeed_load_one(t[d],e));document.dispatchEvent(new Event("DOMContentLiteSpeedLoaded")),window.dispatchEvent(new Event("DOMContentLiteSpeedLoaded"))}function litespeed_load_one(t,e){console.log("[LiteSpeed] Load ",t);var d=document.createElement("script");d.addEventListener("load",e),d.addEventListener("error",e),t.getAttributeNames().forEach(e=>{"type"!=e&&d.setAttribute("data-src"==e?"src":e,t.getAttribute(e))});let a=!(d.type="text/javascript");!d.src&&t.textContent&&(d.src=litespeed_inline2src(t.textContent),a=!0),t.after(d),t.remove(),a&&e()}function litespeed_inline2src(t){try{var d=urlCreator.createObjectURL(new Blob([t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1")],{type:"text/javascript"}))}catch(e){d="data:text/javascript;base64,"+btoa(t.replace(/^(?:<!--)?(.*?)(?:-->)?$/gm,"$1"))}return d}</script></body></html>
<!-- Page optimized by LiteSpeed Cache @2025-05-30 19:38:33 -->

<!-- Page cached by LiteSpeed Cache 7.1 on 2025-05-30 19:38:33 -->
<!-- Guest Mode -->
<!-- QUIC.cloud UCSS loaded ✅ -->