... from 5 days ago , another news on ...
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,
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
});
}miercuri, 1 octombrie 2025
marți, 30 septembrie 2025
duminică, 28 septembrie 2025
News : ... linux kernel new design ...
This patch series introduces multikernel architecture support, enabling
multiple independent kernel instances to coexist and communicate on a
single physical machine. Each kernel instance can run on dedicated CPU
cores while sharing the underlying hardware resources.
The multikernel architecture provides several key benefits:
- Improved fault isolation between different workloads
- Enhanced security through kernel-level separation
- Better resource utilization than traditional VM (KVM, Xen etc.)
- Potential zero-down kernel update with KHO (Kernel Hand Over)
See this mail.
sâmbătă, 27 septembrie 2025
vineri, 26 septembrie 2025
Abonați-vă la:
Comentarii (Atom)