473,404 Members | 2,137 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,404 software developers and data experts.

Google and obfuscation

Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!

May 27 '07 #1
9 3496
On May 27, 8:14 pm, artistogra...@gmail.com wrote:
If obfuscation isn't all that good, why does Google obfuscate its
search results' code?
They don't. They just don't output lots of whitespace to make their
code more readable.
Could anyone out there decipher and normalize code for a Google search
result page?
Any DOM inspector (such as the one in Firebug) or HTML Tidy should do
the job.
May 27 '07 #2
On May 27, 9:22 pm, David Dorward <dorw...@gmail.comwrote:
On May 27, 8:14 pm, artistogra...@gmail.com wrote:
If obfuscation isn't all that good, why does Google obfuscate its
search results' code?

They don't. They just don't output lots of whitespace to make their
code more readable.
Could anyone out there decipher and normalize code for a Google search
result page?

Any DOM inspector (such as the one in Firebug) or HTML Tidy should do
the job.
Of course they do. Anyone having tried to read their javascript code
wouldn't ever say they don't obfuscate it. There are several reasons
for such thing, and of course that's not bad - they hide their code
(not because in such way you can't steal it, although they get that
too, but because they make it more difficult for users to try to use
it against their security), and second - they make their code smaller,
thus faster for Internet transmission - for someone having a decent
connection, that's not much, but Google gets tens of thousands hits
per second, so it's important to minimize transport load.

As for how they do it - that's really not so hard, you can easily make
a C program to obfuscate javascript easily just by replacing all the
non-keywords with a, b, c, ... z, a1, a2, ... so the code is smaller,
plus you can delete all necessary white space, and that's it.

May 27 '07 #3
artistogra...@gmail.com wrote:
Could anyone out there decipher and normalize code for a Google search
result page?
Maybe if you tried, but hardly. You can indent the code, but would you
ever be able to decipher a code like this:
if ( a && ! b )
c( x1, x3, l ) || d( x1, ! x3, l );

? And remember, there's like 900k of such code for just gmail.

And despite the obfuscation, why is Google so fast?
Too big question, it's least affected by their js code, but rather by
their servers' strength, and mostly good algorithms in searching
results, caching, distributing requests to different machines etc..
I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
May 27 '07 #4
ar***********@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
Just a small reply to the question of why Google is so fast.

They distribute the process of generating the page to different servers.
For example when you perform a search Google sends the search string to
their index server, as well as they send the search string to a spell
checking server, and then the same string is sent to their Ad server.
Then the main portal composes all this information into one page. By
distributing the process to various servers you take advantage of the
resources, therefore yielding faster results.

Its practically distributed computing per se.

Hope this helps.

Adonis
May 28 '07 #5
On May 27, 1:14 pm, artistogra...@gmail.com wrote:
Could anyone out there decipher and normalize code for a Google search
result page?
http://elfz.laacz.lv/beautify/

May 28 '07 #6
On May 28, 2:27 am, jeckab...@gmail.com wrote:
On May 27, 9:22 pm, David Dorward <dorw...@gmail.comwrote:
On May 27, 8:14 pm, artistogra...@gmail.com wrote:
If obfuscation isn't all that good, why does Google obfuscate its
search results' code?
They don't. They just don't output lots of whitespace to make their
code more readable.
Could anyone out there decipher and normalize code for a Google search
result page?
Any DOM inspector (such as the one in Firebug) or HTML Tidy should do
the job.

Of course they do. Anyone having tried to read their javascript code
wouldn't ever say they don't obfuscate it. There are several reasons
for such thing, and of course that's not bad - they hide their code
(not because in such way you can't steal it, although they get that
too, but because they make it more difficult for users to try to use
it against their security), and second - they make their code smaller,
thus faster for Internet transmission - for someone having a decent
connection, that's not much, but Google gets tens of thousands hits
per second, so it's important to minimize transport load.

As for how they do it - that's really not so hard, you can easily make
a C program to obfuscate javascript easily just by replacing all the
non-keywords with a, b, c, ... z, a1, a2, ... so the code is smaller,
plus you can delete all necessary white space, and that's it.
Thanks. Ahem, not really much into C.. could you point me towards an
existing C program that does this? Now I think I could handle
understanding that from there.

May 28 '07 #7
On May 28, 1:14 am, artistogra...@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
On May 28, 1:14 am, artistogra...@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
Thanks to everyone who've posted replies. I really appreciate it. Now,
here's some code from a Google search result page:

< script ><!-- (function() {
window.google = {
kEI: "SRhbRoOdH6GesAKi98mnBQ",
kEXPI: "17050,17469",
kHL: "en"
};
})
(); (function() {
window.ss = function() {
window.status = "";
return true
};
})
(); (function() {
window.rwt = function(b, d, f, j, k, g, l) {
var a = window.encodeURIComponent ? encodeURIComponent:
escape,
h = "",
i = "",
c = b.href.split("#"),
e = "";
if (d) {
h = "&oi=" + a(d)
}
if (f) {
i = "&cad=" + a(f)
}
if (g) {
e = "&usg=" + g
}
b.href = "/url ? sa = t " + h + i + " & ct = " + a(j) + " & cd
= " + a(k) + " & url = " + a(c[0]).replace(/\+/g, " % 2B ") + " & ei =
SRhbRoOdH6GesAKi98mnBQ " + e + l + (c[1] ? " # " + c[1]: "");
b.onmousedown = "";
return true
};
})
();
window.gbar = {}; (function() {
function n(a, b, c) {
var e = "on " + b;
if (a.addEventListener) {
a.addEventListener(b, c, false)
} else if (a.attachEvent) {
a.attachEvent(e, c)
} else {
var d = a[e];
a[e] = function() {
var f = d.apply(this, arguments),
g = c.apply(this, arguments);
return f == undefined ? g: (g == undefined ? f: g &&
f)
}
}
};
var h = window.gbar,
l = ["affdom ", "channel ", "client ", "hl ", "hs ", "ie ", "lr ",
"ned ", "oe ", "og ", "rls ", "rlz "];
function i(a) {
return a == "c " || a == "o " || a == "m "
}
h.getHtml = function(a) {
var b;
for (var c = 0; c < a.length; c ++ ) {
if (a[c][2] == "") {
b = a[c][0]
}
}
var e = i(b) ? "target = _blank ": "",
d = " < td nowrap ",
f = " < table border = 0 cellpadding = 0 cellspacing = 0 style
= margin - left: " + h.getPad(true) + "px >< tr " + d;
for (var c = 0; c < a.length; c ++ ) {
if (a[c][0] == b) {
f += a[c][1].bold() + d
} else {
f += " < a href = ";
if (a[c][3] == 3) {
f += '# onclick="this.blur();return
gbar.toggle(event)" style=text-decoration:none' + e + " >< u " + a[c]
[1] + " < /u<span style=font-size:11px>▼</span >< /a><tr><td
colspan=" + c + "><td><iframe class=gbard id=gbarif style=border:0;z-
index:999></iframe >< div class = gbard id = gbardd onclick =
gbar.stopB(event) ";
d = ""
} else {
f += m(b, a[c][0], a[c][2]) + e + "onclick =
gbar.close(event) " + a[c][1] + " < /a>" + d
}
}
}
f += "</div >< /table>";
return f
};
h.getPad = function(a) {
var b =- 1,
c = a ? 10: 4,
e = document.body.currentStyle,
d = document.defaultView;
if (e) {
b = a ? e.marginLeft: e.marginTop
} else if (d) {
b = a ? d.getComputedStyle(document.body, "").marginLeft:
d.getComputedStyle(document.body, "").marginTop
}
b = parseInt(b, 10);
return b >= 0 && b < c ? c - b: 1
};
function m(a, b, c) {
var e = window.location.search.substring(1),
d = e.match("q=[^&]*"),
f = e.match("near=([^&]*)"),
g = c + (c.match("[?]") ? "&": "?");
g += "tab=" + a + b;
if (i(b) && window.location.protocol == "https:") {
g = g.replace("http:", "https:")
}
if ( ! i(b) &&! i(a)) {
for (var j = 0; j < l.length; j ++ ) {
var k = e.match(l[j] + "=[^&]*");
if (k) {
g += "&" + k[0]
}
}
if (d && f && a == "l" && b != "l") {
g += "&" + d[0] + "+" + f[0]
} else if (d) {
g += "&" + d[0]
}
}
return g
}
h.toggle = function(a) {
h.stopB(a);
var b = document.getElementById("gbardd"),
c = document.getElementById("gbarif");
if (b && c) {
b.style.display = b.style.display == "block" ? "none":
"block";
c.width = b.offsetWidth;
c.height = b.offsetHeight;
c.style.display = b.style.display
}
return false
};
h.close = function(a) {
var b = document.getElementById("gbardd");
if (b && b.style.display == "block") {
h.toggle(a)
}
};
h.stopB = function(a) {
if ( ! a) {
a = window.event
}
a.cancelBubble = true
};
n(document, "click", h.close);
})
();
/ / -->< /script>/

I'm not really an expert in JavaScript (and neither do I have any
intentions of pilfering Google code). But for educational purposes
only, could someone out there please explain these lines of code? I
know all this is really taxing and thanks in advance..

Secondly, no one really answered the bit on the thumbnail part... on
how on-the-fly thumbnails seem to be done better in Google Images or
Facebook..

Finally (for now), does anyone know how to design Unicode fonts? The
Unicode groups on Usenet don't really seem that inviting so I'm
posting this here.

Once again, thanks in advance for everything.

May 28 '07 #8
On May 28, 1:14 am, artistogra...@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
On May 28, 1:14 am, artistogra...@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
Thanks to everyone who've posted replies. I really appreciate it. Now,
here's some code from a Google search result page:

< script ><!-- (function() {
window.google = {
kEI: "SRhbRoOdH6GesAKi98mnBQ",
kEXPI: "17050,17469",
kHL: "en"
};
})
(); (function() {
window.ss = function() {
window.status = "";
return true
};
})
(); (function() {
window.rwt = function(b, d, f, j, k, g, l) {
var a = window.encodeURIComponent ? encodeURIComponent:
escape,
h = "",
i = "",
c = b.href.split("#"),
e = "";
if (d) {
h = "&oi=" + a(d)
}
if (f) {
i = "&cad=" + a(f)
}
if (g) {
e = "&usg=" + g
}
b.href = "/url ? sa = t " + h + i + " & ct = " + a(j) + " & cd
= " + a(k) + " & url = " + a(c[0]).replace(/\+/g, " % 2B ") + " & ei =
SRhbRoOdH6GesAKi98mnBQ " + e + l + (c[1] ? " # " + c[1]: "");
b.onmousedown = "";
return true
};
})
();
window.gbar = {}; (function() {
function n(a, b, c) {
var e = "on " + b;
if (a.addEventListener) {
a.addEventListener(b, c, false)
} else if (a.attachEvent) {
a.attachEvent(e, c)
} else {
var d = a[e];
a[e] = function() {
var f = d.apply(this, arguments),
g = c.apply(this, arguments);
return f == undefined ? g: (g == undefined ? f: g &&
f)
}
}
};
var h = window.gbar,
l = ["affdom ", "channel ", "client ", "hl ", "hs ", "ie ", "lr ",
"ned ", "oe ", "og ", "rls ", "rlz "];
function i(a) {
return a == "c " || a == "o " || a == "m "
}
h.getHtml = function(a) {
var b;
for (var c = 0; c < a.length; c ++ ) {
if (a[c][2] == "") {
b = a[c][0]
}
}
var e = i(b) ? "target = _blank ": "",
d = " < td nowrap ",
f = " < table border = 0 cellpadding = 0 cellspacing = 0 style
= margin - left: " + h.getPad(true) + "px >< tr " + d;
for (var c = 0; c < a.length; c ++ ) {
if (a[c][0] == b) {
f += a[c][1].bold() + d
} else {
f += " < a href = ";
if (a[c][3] == 3) {
f += '# onclick="this.blur();return
gbar.toggle(event)" style=text-decoration:none' + e + " >< u " + a[c]
[1] + " < /u<span style=font-size:11px>▼</span >< /a><tr><td
colspan=" + c + "><td><iframe class=gbard id=gbarif style=border:0;z-
index:999></iframe >< div class = gbard id = gbardd onclick =
gbar.stopB(event) ";
d = ""
} else {
f += m(b, a[c][0], a[c][2]) + e + "onclick =
gbar.close(event) " + a[c][1] + " < /a>" + d
}
}
}
f += "</div >< /table>";
return f
};
h.getPad = function(a) {
var b =- 1,
c = a ? 10: 4,
e = document.body.currentStyle,
d = document.defaultView;
if (e) {
b = a ? e.marginLeft: e.marginTop
} else if (d) {
b = a ? d.getComputedStyle(document.body, "").marginLeft:
d.getComputedStyle(document.body, "").marginTop
}
b = parseInt(b, 10);
return b >= 0 && b < c ? c - b: 1
};
function m(a, b, c) {
var e = window.location.search.substring(1),
d = e.match("q=[^&]*"),
f = e.match("near=([^&]*)"),
g = c + (c.match("[?]") ? "&": "?");
g += "tab=" + a + b;
if (i(b) && window.location.protocol == "https:") {
g = g.replace("http:", "https:")
}
if ( ! i(b) &&! i(a)) {
for (var j = 0; j < l.length; j ++ ) {
var k = e.match(l[j] + "=[^&]*");
if (k) {
g += "&" + k[0]
}
}
if (d && f && a == "l" && b != "l") {
g += "&" + d[0] + "+" + f[0]
} else if (d) {
g += "&" + d[0]
}
}
return g
}
h.toggle = function(a) {
h.stopB(a);
var b = document.getElementById("gbardd"),
c = document.getElementById("gbarif");
if (b && c) {
b.style.display = b.style.display == "block" ? "none":
"block";
c.width = b.offsetWidth;
c.height = b.offsetHeight;
c.style.display = b.style.display
}
return false
};
h.close = function(a) {
var b = document.getElementById("gbardd");
if (b && b.style.display == "block") {
h.toggle(a)
}
};
h.stopB = function(a) {
if ( ! a) {
a = window.event
}
a.cancelBubble = true
};
n(document, "click", h.close);
})
();
/ / -->< /script>/

I'm not really an expert in JavaScript (and neither do I have any
intentions of pilfering Google code). But for educational purposes
only, could someone out there please explain these lines of code? I
know all this is really taxing and thanks in advance..

Secondly, no one really answered the bit on the thumbnail part... on
how on-the-fly thumbnails seem to be done better in Google Images or
Facebook..

Finally (for now), does anyone know how to design Unicode fonts? The
Unicode groups on Usenet don't really seem that inviting so I'm
posting this here.

Once again, thanks in advance for everything.

May 28 '07 #9
On May 28, 1:14 am, artistogra...@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
On May 28, 1:14 am, artistogra...@gmail.com wrote:
Hello,
I was wondering:

If obfuscation isn't all that good, why does Google obfuscate its
search results' code? Okay, I realize they're a commercial entity and
need to do it. How do they do it?

Could anyone out there decipher and normalize code for a Google search
result page? And despite the obfuscation, why is Google so fast?

I also get the feeling sites like Google and Facebook manage to create
better thumbnails on the fly. Any idea how?

Thanks!
Thanks to everyone who've posted replies. I really appreciate it. Now,
here's some code from a Google search result page:

< script ><!-- (function() {
window.google = {
kEI: "SRhbRoOdH6GesAKi98mnBQ",
kEXPI: "17050,17469",
kHL: "en"
};
})
(); (function() {
window.ss = function() {
window.status = "";
return true
};
})
(); (function() {
window.rwt = function(b, d, f, j, k, g, l) {
var a = window.encodeURIComponent ? encodeURIComponent:
escape,
h = "",
i = "",
c = b.href.split("#"),
e = "";
if (d) {
h = "&oi=" + a(d)
}
if (f) {
i = "&cad=" + a(f)
}
if (g) {
e = "&usg=" + g
}
b.href = "/url ? sa = t " + h + i + " & ct = " + a(j) + " & cd
= " + a(k) + " & url = " + a(c[0]).replace(/\+/g, " % 2B ") + " & ei =
SRhbRoOdH6GesAKi98mnBQ " + e + l + (c[1] ? " # " + c[1]: "");
b.onmousedown = "";
return true
};
})
();
window.gbar = {}; (function() {
function n(a, b, c) {
var e = "on " + b;
if (a.addEventListener) {
a.addEventListener(b, c, false)
} else if (a.attachEvent) {
a.attachEvent(e, c)
} else {
var d = a[e];
a[e] = function() {
var f = d.apply(this, arguments),
g = c.apply(this, arguments);
return f == undefined ? g: (g == undefined ? f: g &&
f)
}
}
};
var h = window.gbar,
l = ["affdom ", "channel ", "client ", "hl ", "hs ", "ie ", "lr ",
"ned ", "oe ", "og ", "rls ", "rlz "];
function i(a) {
return a == "c " || a == "o " || a == "m "
}
h.getHtml = function(a) {
var b;
for (var c = 0; c < a.length; c ++ ) {
if (a[c][2] == "") {
b = a[c][0]
}
}
var e = i(b) ? "target = _blank ": "",
d = " < td nowrap ",
f = " < table border = 0 cellpadding = 0 cellspacing = 0 style
= margin - left: " + h.getPad(true) + "px >< tr " + d;
for (var c = 0; c < a.length; c ++ ) {
if (a[c][0] == b) {
f += a[c][1].bold() + d
} else {
f += " < a href = ";
if (a[c][3] == 3) {
f += '# onclick="this.blur();return
gbar.toggle(event)" style=text-decoration:none' + e + " >< u " + a[c]
[1] + " < /u<span style=font-size:11px>▼</span >< /a><tr><td
colspan=" + c + "><td><iframe class=gbard id=gbarif style=border:0;z-
index:999></iframe >< div class = gbard id = gbardd onclick =
gbar.stopB(event) ";
d = ""
} else {
f += m(b, a[c][0], a[c][2]) + e + "onclick =
gbar.close(event) " + a[c][1] + " < /a>" + d
}
}
}
f += "</div >< /table>";
return f
};
h.getPad = function(a) {
var b =- 1,
c = a ? 10: 4,
e = document.body.currentStyle,
d = document.defaultView;
if (e) {
b = a ? e.marginLeft: e.marginTop
} else if (d) {
b = a ? d.getComputedStyle(document.body, "").marginLeft:
d.getComputedStyle(document.body, "").marginTop
}
b = parseInt(b, 10);
return b >= 0 && b < c ? c - b: 1
};
function m(a, b, c) {
var e = window.location.search.substring(1),
d = e.match("q=[^&]*"),
f = e.match("near=([^&]*)"),
g = c + (c.match("[?]") ? "&": "?");
g += "tab=" + a + b;
if (i(b) && window.location.protocol == "https:") {
g = g.replace("http:", "https:")
}
if ( ! i(b) &&! i(a)) {
for (var j = 0; j < l.length; j ++ ) {
var k = e.match(l[j] + "=[^&]*");
if (k) {
g += "&" + k[0]
}
}
if (d && f && a == "l" && b != "l") {
g += "&" + d[0] + "+" + f[0]
} else if (d) {
g += "&" + d[0]
}
}
return g
}
h.toggle = function(a) {
h.stopB(a);
var b = document.getElementById("gbardd"),
c = document.getElementById("gbarif");
if (b && c) {
b.style.display = b.style.display == "block" ? "none":
"block";
c.width = b.offsetWidth;
c.height = b.offsetHeight;
c.style.display = b.style.display
}
return false
};
h.close = function(a) {
var b = document.getElementById("gbardd");
if (b && b.style.display == "block") {
h.toggle(a)
}
};
h.stopB = function(a) {
if ( ! a) {
a = window.event
}
a.cancelBubble = true
};
n(document, "click", h.close);
})
();
/ / -->< /script>/

I'm not really an expert in JavaScript (and neither do I have any
intentions of pilfering Google code). But for educational purposes
only, could someone out there please explain these lines of code? I
know all this is really taxing and thanks in advance..

Secondly, no one really answered the bit on the thumbnail part... on
how on-the-fly thumbnails seem to be done better in Google Images or
Facebook..

Finally (for now), does anyone know how to design Unicode fonts? The
Unicode groups on Usenet don't really seem that inviting so I'm
posting this here.

Once again, thanks in advance for everything.

May 28 '07 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

159
by: petantik | last post by:
Are there any commercial, or otherwise obfuscators for python source code or byte code and what are their relative advantages or disadvantages. I wonder because there are some byte code protection...
13
by: vincent | last post by:
I made the suggestion "Need built in obfuscation support in C# compiler" to Microsoft. Anyone here agree with me? If yes, please cast your vote on this suggestion to raise its priority.
10
by: John T. | last post by:
Hi all Figure this scenario: - My Company develops an assembly (a controls DLL) - Since an obfuscation software is too expensive, my Company engages a consultant and delegates him the...
32
by: GK | last post by:
Hello, Can anybody suggest a best code obfuscation tool based on their exeperience ? (e.g.: testing effort after obfuscation is 0) thanks, GK
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
1
by: Sonnysonu | last post by:
This is the data of csv file 1 2 3 1 2 3 1 2 3 1 2 3 2 3 2 3 3 the lengths should be different i have to store the data by column-wise with in the specific length. suppose the i have to...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.