... graphics and design from Snapdragon - the official youtube channel .
2D, 3D, game, games, online game, game development, game engine, programming, OpenGL, Open AI, math, graphics, design, graphic, graphics, game development, game engine, programming, web development, web art, web graphic, arts, tutorial, tutorials,
marți, 7 octombrie 2025
News : GIMP - new release
The GIMP team released version 3.0.6 on October 6, 2025
We are happy to announce the third micro-release GIMP 3.0.6. During our development of GIMP 3.2 we’ve found and fixed a number of bugs and regressions. We have backported many of those bugfixes to this stable release, so you don’t have to wait for the upcoming 3.2 release candidate to receive them!
Read on the official website .
luni, 6 octombrie 2025
duminică, 5 octombrie 2025
sâmbătă, 4 octombrie 2025
vineri, 3 octombrie 2025
News : Rebelle 8 is Here - free trial only 30 days !
Note: I tested with my old laptop with 4Gb RAM and it runs very slowly. With a similar open source software with similar features on the same hardware the open source software was much faster.
... from twitter : We’re excited to announce that Rebelle 8 has officially moved out of Early Access and is now available as the full Rebelle 8.1 release! Try Rebelle 8 for free for 30 days:
News : Google Apps Script - check websites for google ads.
Today, I will show you a way to check for the existence of Google Ads through a script or implementation, similar to what exists on Blogger. I haven't tested it very thoroughly, but it seems functional and is a good starting point in programming with GAScript. I used a spreadsheet and entered a personal Blogger in cell A2. I still recommend following Google's conditions because Google is very clever at detecting fakes and has protections even against attacks...
function onOpen() { // Creează un meniu personalizat în Spreadsheet var ui = SpreadsheetApp.getUi(); ui.createMenu('Verificare Reclame Blogger') .addItem('Verifică Reclame', 'checkBloggerAds') .addItem('Verifică și Trimite Email', 'checkBloggerAdsAndEmail') .addToUi(); } function checkBloggerAds() { // Obține foaia activă var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Citește datele din coloana A (website-urile) var range = sheet.getRange("A2:A" + sheet.getLastRow()); var urls = range.getValues(); var results = []; // Indicatori specifici pentru Google Ads/AdSense pe Blogger var adsScriptPattern = "adsbygoogle.js"; // Pentru coloana B var bloggerAdsPatterns = [ "data-ad-client", // Atribut specific AdSense "google_ad_client", // Folosit în codurile mai vechi sau automate 'class="adsbygoogle"' // Tag-ul <ins> folosit pentru reclame ]; // Verifică fiecare URL for (var i = 0; i < urls.length; i++) { var url = urls[i][0]; if (url) { // Verifică dacă URL-ul nu este gol try { var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); var content = response.getContentText(); var scriptFound = content.includes(adsScriptPattern); var bloggerAdsFound = false; // Verifică indicatorii specifici Blogger for (var j = 0; j < bloggerAdsPatterns.length; j++) { if (content.includes(bloggerAdsPatterns[j])) { bloggerAdsFound = true; break; } } // Adaugă rezultatele pentru coloanele B și C results.push([scriptFound ? "Da" : "Nu", bloggerAdsFound ? "Da" : "Nu"]); } catch (e) { results.push(["Eroare: " + e.message, "Eroare: " + e.message]); } } else { results.push(["", ""]); } } // Scrie rezultatele în coloanele B și C if (results.length > 0) { sheet.getRange(2, 2, results.length, 2).setValues(results); } } function checkBloggerAdsAndEmail() { // Obține foaia activă var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // Citește datele din coloana A (website-urile) var range = sheet.getRange("A2:A" + sheet.getLastRow()); var urls = range.getValues(); var results = []; var emailBody = "Rezultatele verificării reclamelor Google Ads pe blogurile Blogger:\n\n"; emailBody += "URL | Script adsbygoogle.js | Implementare Blogger\n"; // Indicatori specifici pentru Google Ads/AdSense pe Blogger var adsScriptPattern = "adsbygoogle.js"; // Pentru coloana B var bloggerAdsPatterns = [ "data-ad-client", "google_ad_client", 'class="adsbygoogle"' ]; // Verifică fiecare URL și construiește corpul email-ului for (var i = 0; i < urls.length; i++) { var url = urls[i][0]; if (url) { // Verifică dacă URL-ul nu este gol try { var response = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); var content = response.getContentText(); var scriptFound = content.includes(adsScriptPattern); var bloggerAdsFound = false; // Verifică indicatorii specifici Blogger for (var j = 0; j < bloggerAdsPatterns.length; j++) { if (content.includes(bloggerAdsPatterns[j])) { bloggerAdsFound = true; break; } } // Adaugă rezultatele pentru coloanele B și C și la email results.push([scriptFound ? "Da" : "Nu", bloggerAdsFound ? "Da" : "Nu"]); emailBody += `${url} | ${scriptFound ? "Da" : "Nu"} | ${bloggerAdsFound ? "Da" : "Nu"}\n`; } catch (e) { results.push(["Eroare: " + e.message, "Eroare: " + e.message]); emailBody += `${url} | Eroare: ${e.message} | Eroare: ${e.message}\n`; } } else { results.push(["", ""]); } } // Scrie rezultatele în coloanele B și C if (results.length > 0) { sheet.getRange(2, 2, results.length, 2).setValues(results); } // Trimite email-ul MailApp.sendEmail({ to: "catalinfest@gmail.com", subject: "Rezultate Verificare Reclame Google Ads pe Blogger", body: emailBody }); }
Abonați-vă la:
Postări (Atom)