Because not all C library implementations are equivalent. It's quite common for a codebase to either fail to compile or not quite work just right when the "wrong" C library is used. Yes, that shouldn't happen and should be fixed, and no it doesn't get fixed.
There's nothing wrong with glibc trying to be relevant on older hardware.
No, it makes you an industrial scale player. Some of the CPUs used in modern cars can be 20 years old. Why? Because it's cheaper. Once the hardware costs have come down as much as possible, then it's up to the software to get the performance out of what's there. Software engineering costs only once for development, whereas hardware costs for each product that is manufactured. That's industrial scale reasoning.
By that idea, each time some mountain dew swilling military drone 'pilot' bombs some family in Afghanistan, they should be sent over there to be punished for the crime.
The truth is that there are no rules about crimes in the world, just local conventions. The British people should rightly be up in arms about this particular case, as it means their government is selling them out to a foreign power.
Heh. "Text based entry" is not a CLI? What are you smoking? Here's a hint: typing a word is the fundamental operation in a CLI. Why would you ever type words? Because they are either commands, or command arguments for the program you're using.
That's like saying the "To:" field in an email app is CLI
That's exactly what it is, because the address that gets typed into it is an argument to the mail program's command for sending an email.
It is of course possible to remove the CLI in that case, but it would lead to a more limited way of interacting, eg dragging an icon representing a person onto an icon representing an email message, or some such thing.
Embedded is about *cheap* systems. A cheap system always lags current systems in capability by several years and even decades. Such systems will *never* have X amount of RAM if X/2 amount of RAM can be supplied cheaply instead. The only way you'll get X amount of RAM standard on an embedded system your boss will give you is if if X is literally the lowest possible manufacture size at the time.
With all that said: pray tell what functions would Average Joe need on his
computer that at the moment *require* CLI? I really want an answer on that.
Word processing.
Do you know a lot of users who prefer to have a big set of icons on the screen so they can click whole words with their mouse and drag them onto the page to form sentences? I don't. Most users prefer CLI for word processing. That's why the most popular add-ons for tablets are keyboards.
So... your going to just plug in a mail server behind a dynamic ip address
in some grandma's house... and its going to just work?
Pretty much... We have all the technology already, we can build such a system.
So lets see... zero configuration it registers a domain name, sets up dynamic
dns forwarding, automatigically gets around the fact that the ISP is blocking
port 25 on the outbound channel... and the fact that half the internet has
Yup. There's no reason why customers who buy the box can't fill out a form with the domain name they want, and it gets configured for them.
And you seem to forget that it's trivial to send mail outbound on a different port to a relay host, in case the box checks and sees that port 25 is blocked. Same solution applies to get around the blocklists.
The difficulty has never been setting up or using a network of relay hosts, nonstandard port numbets, etc, the difficulty has always been that _ordinary_ people can't do any of that because it takes skill and their Windoze boxes don't do it automatically for them. What they need is an appliance which is set up to bust them out of their ISP cage automatically.
And when it fills up... just toss and replace it? No data migration from the
old one to the new one? Granny just starts over?
Of course. Why not? If she needs to read her old mail, she can plug in the old box into the wall. What do you think she does when her photo album fills up?
Do you think she does a data migration plan, cleans out unwanted photos and rearranges everything to make room for more pictures in the same album? No. She buys another album and starts filling it. Same principle.
Yes, agrep's purpose is to do fuzzy searching, but what is being searched fuzzily is the index. An index is just a file like a telephone directory, that contains in one place everything that was collected, in a compressed and efficient form. Grepping the index is near instantaneous, whereas
ordinary grep or agrep looks through a lot of files separately, and that's why it's slow.
Incidentally, a quick bit of googling reveals that Unity's search system is called Zeitgeist, and it uses a full text indexer called Xapian to do its work.
That's why I mentioned the freedom box. The idea is to build a wall plug appliance that just works(tm) and can be left alone unsupervised. Once the internal storage fills up with emails etc, you would either do some maintenance or(more likely) just replace the plug with a new one.
Do you trust your granny to have a TV in her house? This would be similar, but for email/video/social/whatever.
Except this "feedback" bypasses the courts, bringing posse justice to suspected "infringers".
The old system of lawsuits is better for victims of the RIAA, as their rights are respected. The only reason this is being promoted as "positive" is because
the vultures need to move onto a new strategy to keep ahead of the judges, as the courts are growing wise to the years of abuse of the law.
If you want to protect your data, you probably aren't emailing it.
You're barking up the wrong tree. Most companies use email as one means of communicating among employees, and most companies use email to communicate with recipients at *other* companies. That's a whole lot of traffic that Google et al don't need to snoop on, unless said company's CTO is braindead.
And in fact, there's little reason for even your grandma to be on gmail. An inhouse Linux router/mail server combo would be perfect for intra-family messaging. If the GNU freedom box project can get off the ground, we'll begin to have a real alternative to the corporate overlords.
and does a better job of protecting my data
than I could.
LOL. The one thing Google does NOT do is protect your data. To protect your data, you keep it to yourself, you don't let Google/FBI/CIA/TSA/MAFIAA/Obama snoop it up and either censor it or take it hostage etc.
American corporations are a terrible place to store your data, unless "you have nothing to hide".
Not at all. ISPs don't allow SMTP servers because they're afraid spammers will use them to relay messages, and viruses will propagate unchecked on their networks.
If you look at your T&Cs, chances are they point you to a bunch of ISP owned SMTP servers that you are allowed to use for email, and they don't allow you to run your own servers.
Static IPs are a red herring.
Irrelevant to the question. If the interviewer cares about algorithmic performance, he has to accept that O(1) is possible. If he cares about implementation tradeoffs, then he has to accept that O(1) is true in the average case in typical hash table implementations. Either way, penalizing the interview candidate for claiming O(1) instead of O(n) is wrong.
A perfect hash suppose that the space of your hash's result is as big as the
space of your possible input. In practice, we tend to want a much smaller
hash space. If your hash function never makes collision, your hash table is
probably very inefficient (or possibly very small)
Nope, in practice you still need the same space as your input. If you want to store N (distinct) items in a hash table, you need O(N) space. If you're happy with some aliasing, you could try a bloom filter, which can store M > N items in O(N) space with false positives, but this is getting way off topic.
No glimpse and similar programs index the files on your disks. That's how they achieve fast speed. It is completely unrelated to grep, and is only inspired by agrep's fuzzy search heuristics.
Incidentally, *any* fast search system depends on indexing your disks. You might not notice it because it happens at odd times and in the background. The difference in quality and relevance between systems is entirely due to how many and what kind of files are indexed. If you figure out what sources of information Unity uses, you can duplicate it with other systems.
Command-TAB is O(N) whereas sloppy focus is O(1). You won't notice a difference if all you have is about 4 windows, but some of us do research and end up with 20+ windows open on the desktop. Command-TAB then becomes highly impractical, as does clicking on a window to be able to pass commands to it eg to scroll a tiny bit.
Also, window systems which don't have an easy way to handle large numbers of windows simultaneously end up with a hodge podge of application specific ways of handling complexity. For example, with focus-follows-mouse, it's painless to have lots of browser windows open. With click-to-focus, it becomes easier to use tabbed frames inside a single browser window. So click-to-focus indirectly encourages programs to invent their own ways of handling complexity, so that the window manager doesn't have to.
The "standard" meta-information in Unix is the man(1) page. For example,
if you're looking for a browser, you would type "man -k browser" and you would get a list of programs whose description contains the word browser.
There's also search facilities in RPM or DEB packaging systems that let you search all kinds of things, eg which package "owns" a file, what are all the files in a package, what is the description of the package etc.
Finally, if you need full text search of everything on your system, look up indexing tools like glimpse or various others whose name escapes me right now.
If you truly are a longterm investor, then you don't care how fast your trades are executed. It could be on the day, or the next one, etc. and it wouldn't make a difference to you, as the daily movements are just noise, and long term investors care about the long trend.
You only need to worry about how fast your trades are executed if you're a short term investor, or if you invest on impulse. So which are you?
What you want has been available in bash for decades in a slightly more advanced form. Type Ctrl+R and then a few keys to search for not just the programs you use often, but the full command lines that go with them. That's like if you typed "bro" in Unity, and it gave you not just the Firefox and Chrome options, but actually the last 10 window configurations of Firefox that you used (different sizes, different tabs with open web pages, etc) to choose from, and the last 5 Chrome configurations, etc.
It NEVER made sense. Try using focus-follows-mouse with a global menu, it's totally unusable. As soon as the mouse leaves the window, you lose focus and if the pointer has to cross another window to get to the menu, that other window will steal the menu.
The Apple global menu concept *sounds* smart, but it's very limited to using a particularly inefficient focus system: click-to-focus. So you may gain a few milliseconds in accessing the menu by throwing the mouse pointer around, and you pay for it by having to click each window whenever you want to work in it.
Personally, I'd rather not strain my index finger so much.
No problem. Would you like a sex change operation to make it easier to compete with the crazy cat women in your neighbourhood?
More importantly, should all French robots now be searched in the streets, in case they are mind-controlled by middle-eastern terrorists?
There's nothing wrong with glibc trying to be relevant on older hardware.
Nevermind that! I think I just saw a RIAA lawyer raise his head from a prey, and prick up his ears...
No, it makes you an industrial scale player. Some of the CPUs used in modern cars can be 20 years old. Why? Because it's cheaper. Once the hardware costs have come down as much as possible, then it's up to the software to get the performance out of what's there. Software engineering costs only once for development, whereas hardware costs for each product that is manufactured. That's industrial scale reasoning.
The truth is that there are no rules about crimes in the world, just local conventions. The British people should rightly be up in arms about this particular case, as it means their government is selling them out to a foreign power.
Yes, accessing a Freedom box through a webmail interface is a great idea too.
That's exactly what it is, because the address that gets typed into it is an argument to the mail program's command for sending an email.
It is of course possible to remove the CLI in that case, but it would lead to a more limited way of interacting, eg dragging an icon representing a person onto an icon representing an email message, or some such thing.
Embedded is about *cheap* systems. A cheap system always lags current systems in capability by several years and even decades. Such systems will *never* have X amount of RAM if X/2 amount of RAM can be supplied cheaply instead. The only way you'll get X amount of RAM standard on an embedded system your boss will give you is if if X is literally the lowest possible manufacture size at the time.
Word processing.
Do you know a lot of users who prefer to have a big set of icons on the screen so they can click whole words with their mouse and drag them onto the page to form sentences? I don't. Most users prefer CLI for word processing. That's why the most popular add-ons for tablets are keyboards.
Pretty much... We have all the technology already, we can build such a system.
Yup. There's no reason why customers who buy the box can't fill out a form with the domain name they want, and it gets configured for them.
And you seem to forget that it's trivial to send mail outbound on a different port to a relay host, in case the box checks and sees that port 25 is blocked. Same solution applies to get around the blocklists.
The difficulty has never been setting up or using a network of relay hosts, nonstandard port numbets, etc, the difficulty has always been that _ordinary_ people can't do any of that because it takes skill and their Windoze boxes don't do it automatically for them. What they need is an appliance which is set up to bust them out of their ISP cage automatically.
Of course. Why not? If she needs to read her old mail, she can plug in the old box into the wall. What do you think she does when her photo album fills up?
Do you think she does a data migration plan, cleans out unwanted photos and rearranges everything to make room for more pictures in the same album? No. She buys another album and starts filling it. Same principle.
Incidentally, a quick bit of googling reveals that Unity's search system is called Zeitgeist, and it uses a full text indexer called Xapian to do its work.
Do you trust your granny to have a TV in her house? This would be similar, but for email/video/social/whatever.
The old system of lawsuits is better for victims of the RIAA, as their rights are respected. The only reason this is being promoted as "positive" is because the vultures need to move onto a new strategy to keep ahead of the judges, as the courts are growing wise to the years of abuse of the law.
You're barking up the wrong tree. Most companies use email as one means of communicating among employees, and most companies use email to communicate with recipients at *other* companies. That's a whole lot of traffic that Google et al don't need to snoop on, unless said company's CTO is braindead.
And in fact, there's little reason for even your grandma to be on gmail. An inhouse Linux router/mail server combo would be perfect for intra-family messaging. If the GNU freedom box project can get off the ground, we'll begin to have a real alternative to the corporate overlords.
LOL. The one thing Google does NOT do is protect your data. To protect your data, you keep it to yourself, you don't let Google/FBI/CIA/TSA/MAFIAA/Obama snoop it up and either censor it or take it hostage etc.
American corporations are a terrible place to store your data, unless "you have nothing to hide".
If you look at your T&Cs, chances are they point you to a bunch of ISP owned SMTP servers that you are allowed to use for email, and they don't allow you to run your own servers. Static IPs are a red herring.
Nope, in practice you still need the same space as your input. If you want to store N (distinct) items in a hash table, you need O(N) space. If you're happy with some aliasing, you could try a bloom filter, which can store M > N items in O(N) space with false positives, but this is getting way off topic.
Incidentally, *any* fast search system depends on indexing your disks. You might not notice it because it happens at odd times and in the background. The difference in quality and relevance between systems is entirely due to how many and what kind of files are indexed. If you figure out what sources of information Unity uses, you can duplicate it with other systems.
Also, window systems which don't have an easy way to handle large numbers of windows simultaneously end up with a hodge podge of application specific ways of handling complexity. For example, with focus-follows-mouse, it's painless to have lots of browser windows open. With click-to-focus, it becomes easier to use tabbed frames inside a single browser window. So click-to-focus indirectly encourages programs to invent their own ways of handling complexity, so that the window manager doesn't have to.
There's also search facilities in RPM or DEB packaging systems that let you search all kinds of things, eg which package "owns" a file, what are all the files in a package, what is the description of the package etc.
Finally, if you need full text search of everything on your system, look up indexing tools like glimpse or various others whose name escapes me right now.
If you truly are a longterm investor, then you don't care how fast your trades are executed. It could be on the day, or the next one, etc. and it wouldn't make a difference to you, as the daily movements are just noise, and long term investors care about the long trend.
You only need to worry about how fast your trades are executed if you're a short term investor, or if you invest on impulse. So which are you?
What you want has been available in bash for decades in a slightly more advanced form. Type Ctrl+R and then a few keys to search for not just the programs you use often, but the full command lines that go with them. That's like if you typed "bro" in Unity, and it gave you not just the Firefox and Chrome options, but actually the last 10 window configurations of Firefox that you used (different sizes, different tabs with open web pages, etc) to choose from, and the last 5 Chrome configurations, etc.
The Apple global menu concept *sounds* smart, but it's very limited to using a particularly inefficient focus system: click-to-focus. So you may gain a few milliseconds in accessing the menu by throwing the mouse pointer around, and you pay for it by having to click each window whenever you want to work in it. Personally, I'd rather not strain my index finger so much.
Look more closely. A period.