Domain: stackoverflow.com
Stories and comments across the archive that link to stackoverflow.com.
Comments · 921
-
Re:LaTex plugin
Acttually LaTeX has not been written by Donald Knuth, but it is a macro language built upon TeX by Leslie Lamport (which is also a very remarkable computer scientist, but I suppose he is not who you were thinking about).
Yes, the grammar is horrible, but once the basics of the language are mastered it feels quite a natural setting where to write text; if you want to implement a program in it, on the other hand, things are not so "easy". Look at http://stackoverflow.com/questions/2968411/ive-heard-that-latex-is-turing-complete-are-there-any-programs-written-in-late
This being said, the people at http://www.luatex.org/ are doing a really good job to integrate the engine of tex with lua and exposing its internals, as to offer a "reasonable" programming language both for tuning the typesetting and for actually implementing algorithms within the documents. -
Re:Complexity, Resources and Skill. Could it be...
implement a sonic network protocol
A.K.A. "call the modem library," A.K.A. "done in 30 seconds with a quick Google search."
-
Re:Null pointer detection at compile time
Here is a hopefully-improved description:
The key excerpt is (this exact quote is from the C++03 standard, para 1.9.5):
A conforming implementation executing a well-formed program shall produce the same observable behavior as one of the possible executions of the corresponding instance of the abstract machine with the same program and the same input. However, if any such execution contains an undefined operation, this International Standard places no requirement on the implementation executing that program with that input (not even with regard to operations preceding the first undefined operation).
There's nothing in the standard that explicitly says "you can remove null checks" of course, but in cases like "my" example it is a consequence of other rules. I'll give you an example. This is not how a compiler would likely arrive at optimizing away the null check in my example, but it's also not entirely implausible, and it's certainly an allowable explanation.
Consider the function from my earlier post:
void f(int * p) {
int x = *p;
if (p == NULL) {
g();
}
}The standard has the "as-if" rule, which allows the compiler to make changes to the program that do not have observable effects from outside the program (e.g. not looking at it in a debugger or such). For example, the following function variant behaves the same as the first as far as the standard is concerned (note that the two branches are identical):
void f(int * p) {
if (p == NULL) { // *
int x = *p; // **
if (p == NULL) {
g();
}
}
else { // p is non-null
int x = *p;
if (p == NULL) { // ***
g();
}
}
}Let's look at the else branch first.
If execution reaches ***, we know that p is guaranteed to be non-null. (Or rather, we are allowed to assume that p is non-null because the only way it could become null is via UB, as explained next.) The reason should be pretty obvious: we took the false branch of * which meant that p was non-NULL at *, there is no other way to reach *** (e.g. no gotos into that block), there is no assignment to p between * and ***, and there is no way within the semantics of C for anyone else to get the address of p to modify it (and even if there was a way that another thread could, that'd be a race condition which is also UB).
Now, since p is guaranteed to be non-null, the condition at *** will never hold and the null check and potential call to g can be optimized away per the as-if rule (because neither an if statement itself, a non-executed body of code, nor this particular side-effect-free condition have observable behavior differences that are not unspecified):
void f(int * p) {
if (p == NULL) { // *
int x = *p; // **
if (p == NULL) {
g();
}
}
else {
int x = *p; // no more conditional because its result was known
}
}So far, this should be pretty familiar (aside from the fact that compilers wouldn't be likely to perform the original transformation), and aside from reasoning that p's value doesn't change, UB hasn't entered the picture.
Now let's look at the true branch of *. If execution reaches **, we know that p is NULL by the same analysis as above. What does this mean? Line ** dereferences a NULL pointer, which by the standar
-
Re:Null pointer detection at compile time
The key excerpt (this exact quote is apparently from C++03 standard, para 1.9.5):
A conforming implementation executing a well-formed program shall produce the same observable behavior as one of the possible executions of the corresponding instance of the abstract machine with the same program and the same input. However, if any such execution contains an undefined operation, this International Standard places no requirement on the implementation executing that program with that input (not even with regard to operations preceding the first undefined operation).
There's nothing in the standard that explicitly says "you can remove null checks", but in cases like this it is a consequence of other rules. I'll give you an example. This is not likely how a compiler would arrive at optimizing away the null check in my example, but it's also not entirely implausible, and it's certainly an allowable explanation.
Consider the function from my earlier post:
void f(int * p) {
int x = *p;
if (p == NULL) {
g();
}
}The standard has the "as-if" rule, which allows the compiler to make changes to the program that can't be observed from within the program itself (i.e., without invoking undefined behavior or using a debugger or something like that). For example, the following function variant behaves the same as the first as far as the standard is concerned:
void f(int * p) {
if (p == NULL) { // *
int x = *p;
if (p == NULL) { // **
g();
}
}
else {
int x = *p; // ***
if (p == NULL) {
g();
}
}
}If execution reaches **, we know that p is guaranteed to be NULL. (Or rather, we are allowed to assume that p is guaranteed to be null.) The reason should be pretty obvious: we took the true branch of * which meant that p was NULL there, there is no other way to reach ** (e.g. no gotos), there is no assignment to p between * and **, and there is no way within the semantics of C for anyone else to get the address of p to modify it (and even if there was a way that another thread could, that'd be a race condition which is also UB).
As a result, by the as-if rule the compiler is allowed to optimize away that NULL check:
void f(int * p) {
if (p == NULL) { // *
int x = *p;
g();
}
else {
int x = *p; // ***
if (p == NULL) {
g();
}
}
}Now let's look at the other branch. If execution reaches ***, we know that p is NULL by the same analysis as above. What does this mean? Line *** dereferences a NULL pointer, which by the standard is UB (C++03 1.9.4: "Certain other operations are described in this International Standard as undefined (for example, the effect of
dereferencing the null pointer).")Combined with the as-if rule above, this means that the compiler is allowed to perform any transformation it wants to the else branch of *, because every execution that reaches it will invoke UB. In particular, the following is an allowable transformation:
void f(int * p) {
if (p == NULL) { // *
int x = *p;
g();
}
else {
int x = *p; // ***
g();
}
} -
Re:TFA does a poor job of defining what's happenin
OK, if the spec says that a is undefined after the call to realloc, then IMHO the compiler should change the type of a from char * to UNDEFINED and complain. Based on what you're saying, it sounds like Clang is wrong. It sounds like they're treating undefined behavior as implementation defined behavior.
I'm sure somebody will correct me if I'm wrong on that one.
You're wrong on that one.
:-)First, let's start with this specific case. First of all, the type of a variable can't "change", because the type of a variable in languages without type-state sutff is static. (Aside: this is a useful way to think about the distinction between statically typed languages and dynamically typed ones -- in statically typed languages, variables have types, while in dynamically typed languages, values have "types.") In this case it's pretty easy to see how the compiler can deal with it, but in general it's not:
char * b;
if (big_fancy_condition) {
b = realloc(a, ...)
}
....
if (another_big_fancy_condition) { ... *b ...;
}Can that program provoke undefined behavior? Depends on the conditions, which means it's undecidable in general. In the type viewpoint, what's the type during the ellipsis? Is it char* or is it inaccessible? It's char* down one branch but inaccessible down the other, and there's not a fully-general way to merge those two types (in a way that type-checking is still decidable).
Second, undefined behavior means the compiler is allowed to do anything -- it's less restrictive than implementation-defined. For implementation-defined behavior, the compiler needs to make a choice, stick with it (at least with a consistent set of compiler settings), and document it. For undefined behavior, the compiler can do anything it wants to, for any reason it wants to, can do different things in the same situation in different places because why the hell not, etc. -- the standard imposes no restrictions on what happens once undefined-behavior is triggered. See here for more.
-
Re:If you want a datacenter to be disaster-proof..
Build an elevated, reinforced concrete shell around it. Have proper sump pumps etc for seepage, have doors you can seal, and bunker down. Build it tough enough and no storm surge will bother it, but you might lose your connectivity to the outside world.
Well you won't get flooded, but a normal data centre on the 17th floor won't get flooded (or if a flood does get 170' above sea level there's bigger problems)
However when you run out of fuel, that's a lot of steps to climb with buckets of fuel.
http://blog.stackoverflow.com/2012/11/se-podcast-36-we-got-hit-by-a-hurricane/
-
Re:Datacenter on the 17th floor
I wonder if anybody is thinking twice about having a datacenter on the 17th floor of an office building, in a city by the ocean? Unless there is some specific need for you to be close to Wall Street, It's probably a good idea to make sure your servers are hosted where there is minimal likelihood of natural disasters, and also in a place that is easily serviceable from the ground. Although having it on the ground would have likely been worse in some cases, being a lot further inland where flooding is pretty much impossible would be even better.
Depends what that datacenter is for. If you need it for day to day operations in that building, having the datacenter close to the employees that use it probably isn't a terrible idea. Just make sure you have a backup datacenter for the assets you need accessible outside the company (or needed for a skeleton crew to keep the company alive during a disaster)
-
Datacenter on the 17th floor
I wonder if anybody is thinking twice about having a datacenter on the 17th floor of an office building, in a city by the ocean? Unless there is some specific need for you to be close to Wall Street, It's probably a good idea to make sure your servers are hosted where there is minimal likelihood of natural disasters, and also in a place that is easily serviceable from the ground. Although having it on the ground would have likely been worse in some cases, being a lot further inland where flooding is pretty much impossible would be even better.
-
Re:again?
All I want to know is if we will be able to compile the kernel someday without the fucktardery of requiring a case sensitive filesystem for the netfilter source code. (So this is from the same guys who gave us that, huh?)
-
Re:Use a language that no one ever heard of
I had a similar situation. I inherited a company program that was written in a language called Magic. It was some sort of table-driven record-based language that, to code, literally went up one side of the screen and down the other. It was as bad as it sounds.
I rewrote the software in Delphi (this was back in the 90's) and it was orders of magnitude faster. -
Re:A big problem
Apparently IE might let you change the user agent
http://stackoverflow.com/questions/6995311/how-can-i-spoof-the-user-agent-of-a-javascript-get-request
You'd just need to work in some cross domain exploit somehow... or have a subdomain of your website resolve to 192.168.1.1 -
Re:Long live TeX and LaTeX
Of course, there is yet another reason. Business documents vary wildly, from leaflets to brochures to memos to spreadsheets to banners. A note about a dead coworker will be printed in a different way from a note about a new baby in the family of another coworker. A "Lost Cat" ad will be different from both of them. In Word you can set up your style in just a couple of minutes because you are in control of all the elements of a style. In LaTeX you are a hostage of a few styles, all alike
:-) and there is no chance for a mere user to whip up a new one on a whim.This is very different from "physics exam papers" - those papers couldn't care less about the presentation because the content is all that matters. A business document is sometimes all about presentation. For example, three neighboring pizza outlets can compete on attractive photos and text; their product is more or less the same.
Even the most fanatical adherents of LaTeX admit that at some small level of document complexity MS Word and other WYSIWYG packages outperform LaTeX. Guess what, most business documents are under that threshold. Nobody at the office can afford to work ten years on his document and produce 100,000 pages, and 10,000 illustrations, and 50,000 bibliography references. Most documents are under twenty pages, because this gives the writer the agility in publishing his knowledge. Memos, notes, agendas, plans, schedules are often shorter than a couple of pages. This places the majority of office documents under the threshold. But if I need to generate a 1000-page datasheet for an Intel chipset
... I am sure Intel already has a process in place to handle that, because they do publish those datasheets. -
Re:update nagging
The new versions _don't_ provide backward compatibility.
Now that would just be plain stupid, and it's obviously not true.
-
Re: Keep it up - you might just invent assembly...
I don't know what you are talking about, EF does support
.Single() just as any other LINQ method works on an IEnumerable (here's a question about it). If it was throwing an exception, it's because you had more than 1 item meeting the criteria, and you don't know what you're doing. Try .FirstOrDefault(), which will not throw an exception.As for why there is no Tree class in
.NET, you can refer to this question, where the answer is enumerated for you. Having worked with .NET since 2003 when it came out, and in the interim having to work with Java, Obj-C, and other platforms, .NET is without question the most "well done." Typically if you're having problems like you cited above, it's due to a lack of understanding on your part. -
Re: Keep it up - you might just invent assembly...
I don't know what you are talking about, EF does support
.Single() just as any other LINQ method works on an IEnumerable (here's a question about it). If it was throwing an exception, it's because you had more than 1 item meeting the criteria, and you don't know what you're doing. Try .FirstOrDefault(), which will not throw an exception.As for why there is no Tree class in
.NET, you can refer to this question, where the answer is enumerated for you. Having worked with .NET since 2003 when it came out, and in the interim having to work with Java, Obj-C, and other platforms, .NET is without question the most "well done." Typically if you're having problems like you cited above, it's due to a lack of understanding on your part. -
Re:WTF? Python is worse than Perl
No. Its because Perl has things like "0 but true". WTF? is just not strong enough.
-
Re:and so meanwhile...
The first lesson I learned from the book 'High Performance MySQL' is that one should never use an ORM. Optimizing for ORM queries is virtually impossible.
http://stackoverflow.com/questions/7707976/php-and-mysql-high-traffic-solution
FWIW: I notice in a later post you mention PDOs... Which look like they won't impact optimization strategies.
-
Re:Are they implementing it in PHP?
There are no "dynamic languages" and "static languages". C can be interpreted and Python, Java and Perl can be compiled directly to an executable (i.e. no bytecode / no VM). There are statically typed languages and dynamically typed languages as well a run time (late) bound and compile time (early) bound languages. There are no static and dynamic languages. Therefore it is impossible to show you what you ask for. Your question is based on a complete lack of understanding of programming languages. HANL.
-
Re:"Compete."
I looked at the site and it is filled with fluff that you might see on public tv. Compared to MIT it is a joke. There are plenty of resources already available and it would seem that if they concentrated on cooperation and not empire building they would do better at serving their stated intent. If they had a format like stackoverflow it would be even better. Google already indexes and if there were a data base that was peer reviewed that would allow access at any level of understanding and problem resolution it would be more useful. I remember a wonderful source of information that used to be on the web and got sued out of existence by an encyclopedia company IIRC.
I think that wikipedia is trying to do this with the science, but seems a bit mired in their own process at this point. -
Re:One button to the main screen! Is that changed?
I'm sure everyone has dozens of applications on Windows and Linux where unless you right click, you won't realize there's a lot more depth to what can be done.
Ya, right mouse button is too obvious for Apple.
[In xcode] When the find/replace bar appears at the top of the editor, holding down the option key on the keyboard causes "Replace in Selection" to appear in lieu of "Replace All."
That's from stackoverflow.
-
Re:Bring the million-plus iOS apps to Macs...
Apple has different UI frameworks for OS X and iOS. One will not run on the other and vice versa. Thank God!
This migration article is useful:
https://developer.apple.com/library/ios/documentation/miscellaneous/conceptual/iphoneostechoverview/PortingfromCocoa/PortingfromCocoa.htmlAs is this stackoverflow accepted answer for a higher level overview:
http://stackoverflow.com/questions/2297841/cocoa-versus-cocoa-touch-what-is-the-difference -
Re:Translation:
Your statement represents a fundamental lack of understanding of git. You are falsely thinking in centralized repo terms. That being said, you can absolutely pull a single file from a remote repo without cloning it first.
-
Re:Translation:
Ok. There is a way to do it, and it is not difficult. Let me know when you learn how to use git, or at least google.
git checkout COMMIT-NUMBER FILENAME -
Re:default methods for interfaces
Explained here:
Basically it's a compiler error.
-
Re:I'd pay
You don't even need to set up an OpenID server. Set up a url, put the delegate tags to point to some other server that handles all the delegation. When stackoverflow.com starting using OpenID for authentication, MyOpenID was their recommended provider. I read up a bit before signing up and figured out how to do delegation from my own domain name. Now that OpenID is shutting down, I could set up my own server, but I could also just point the delegate information to another OpenID server, or point it to StackExchange, which has become it's own OpenID provider.
I have thought of doing that but but then openID providers come and go as seen by the subject of this thread. Also I don't want to use others as they can be used by the provider to, effectively, track you web usage. As my goal is to be A) independent of others services and B) to not be tracked on the web using a openid referrer does not mesh with my goals.
-
Re:I'd pay
You don't even need to set up an OpenID server. Set up a url, put the delegate tags to point to some other server that handles all the delegation. When stackoverflow.com starting using OpenID for authentication, MyOpenID was their recommended provider. I read up a bit before signing up and figured out how to do delegation from my own domain name. Now that OpenID is shutting down, I could set up my own server, but I could also just point the delegate information to another OpenID server, or point it to StackExchange, which has become it's own OpenID provider.
-
Used google fu to figure out what myOpenID was...
...and this is what I found:
http://stackoverflow.com/questions/5301896/what-are-the-differences-between-openid-and-myopenid
So my question: If myOpenID is "one of many providers," why does this rate an article of its own? Or am I missing the significance of the event?
-
Re:Stack Overflow
Well, I am going to defend Stack Overflow here, because I think it fills a very useful niche, which is "what is the best way to do X." There is no way that a "single-source" documentation, such as the API documentation or a book, can foresee all those specific questions. I do not go to stackoverflow to search for information, but very often when I use google to search, stackoverflow has the first useful information. As opposed to a straight wiki, what makes it useful is the (slashdot-like) moderation system.
How often do you really use Stack Overflow? They almost always close "what is the best way to do X" questions. It's quite annoying in my opinion.
The following were found from a Google search for: stack overflow "what is the best way to"
http://stackoverflow.com/q/6806/229320
http://stackoverflow.com/q/1017017/229320
http://stackoverflow.com/q/74625/229320
http://stackoverflow.com/q/18557042/229320
http://stackoverflow.com/q/244882/229320 -
Re:Stack Overflow
Well, I am going to defend Stack Overflow here, because I think it fills a very useful niche, which is "what is the best way to do X." There is no way that a "single-source" documentation, such as the API documentation or a book, can foresee all those specific questions. I do not go to stackoverflow to search for information, but very often when I use google to search, stackoverflow has the first useful information. As opposed to a straight wiki, what makes it useful is the (slashdot-like) moderation system.
How often do you really use Stack Overflow? They almost always close "what is the best way to do X" questions. It's quite annoying in my opinion.
The following were found from a Google search for: stack overflow "what is the best way to"
http://stackoverflow.com/q/6806/229320
http://stackoverflow.com/q/1017017/229320
http://stackoverflow.com/q/74625/229320
http://stackoverflow.com/q/18557042/229320
http://stackoverflow.com/q/244882/229320 -
Re:Stack Overflow
Well, I am going to defend Stack Overflow here, because I think it fills a very useful niche, which is "what is the best way to do X." There is no way that a "single-source" documentation, such as the API documentation or a book, can foresee all those specific questions. I do not go to stackoverflow to search for information, but very often when I use google to search, stackoverflow has the first useful information. As opposed to a straight wiki, what makes it useful is the (slashdot-like) moderation system.
How often do you really use Stack Overflow? They almost always close "what is the best way to do X" questions. It's quite annoying in my opinion.
The following were found from a Google search for: stack overflow "what is the best way to"
http://stackoverflow.com/q/6806/229320
http://stackoverflow.com/q/1017017/229320
http://stackoverflow.com/q/74625/229320
http://stackoverflow.com/q/18557042/229320
http://stackoverflow.com/q/244882/229320 -
Re:Stack Overflow
Well, I am going to defend Stack Overflow here, because I think it fills a very useful niche, which is "what is the best way to do X." There is no way that a "single-source" documentation, such as the API documentation or a book, can foresee all those specific questions. I do not go to stackoverflow to search for information, but very often when I use google to search, stackoverflow has the first useful information. As opposed to a straight wiki, what makes it useful is the (slashdot-like) moderation system.
How often do you really use Stack Overflow? They almost always close "what is the best way to do X" questions. It's quite annoying in my opinion.
The following were found from a Google search for: stack overflow "what is the best way to"
http://stackoverflow.com/q/6806/229320
http://stackoverflow.com/q/1017017/229320
http://stackoverflow.com/q/74625/229320
http://stackoverflow.com/q/18557042/229320
http://stackoverflow.com/q/244882/229320 -
Re:Stack Overflow
Well, I am going to defend Stack Overflow here, because I think it fills a very useful niche, which is "what is the best way to do X." There is no way that a "single-source" documentation, such as the API documentation or a book, can foresee all those specific questions. I do not go to stackoverflow to search for information, but very often when I use google to search, stackoverflow has the first useful information. As opposed to a straight wiki, what makes it useful is the (slashdot-like) moderation system.
How often do you really use Stack Overflow? They almost always close "what is the best way to do X" questions. It's quite annoying in my opinion.
The following were found from a Google search for: stack overflow "what is the best way to"
http://stackoverflow.com/q/6806/229320
http://stackoverflow.com/q/1017017/229320
http://stackoverflow.com/q/74625/229320
http://stackoverflow.com/q/18557042/229320
http://stackoverflow.com/q/244882/229320 -
Use Perl
Use Perl. Its regex engine is highly optimized and very fast. It should really fly on fixed strings.
There's a Stack Overflow question that addresses this very thing with some Perl code you can try.
-
Re:The OS is good, but the hardware pushes me away
Has your friend with the 11" MBA pushed 60fps graphics out onto an external 1080p screen, which has over 50% more pixels?
Another iMac user ran benchmarks that showed last year's lower-end GT650M had an internal PCIe host-device bandwidth 2-3x the *maximum* bandwidth of Thunderbolt.
True, you'll still get better results than the integrated Intel HD4000, and it'll free up RAM being used as VRAM, but there's almost no point Thunderbolt-ing any GPU better than a low-end GPU from 2011, anything faster is bottlenecked.
-
Re:How can the Pi win this award when there are...
The Pi is an ARMv6 with a FPU attached, and a decent GPU. Most of the new ARM SBCs out there now are ARMv7 which should be more efficient. Often they have NEON support to help with hardware decoding media http://en.wikipedia.org/wiki/ARM_architecture#Advanced_SIMD_.28NEON.29.
Also Debian and Ubuntu only have official builds for ARMv7. The Debian team rebuilds ARMv6 as a seperate distro (Raspbian) for the Pi.
Many of the other boards are well within $10 of the price of a Pi, but include eMMC flash on the board so no SD card is required to boot the OS making the TCO about the same or cheaper if you are buying fast SD cards to boot quickly on the Pi.
-
Re:How many people don't know a 2nd search engine?
Check out this Hanselman blog post for a way to do it:
http://www.hanselman.com/blog/CDNsFailButYourScriptsDontHaveToFallbackFromCDNToLocalJQuery.aspx
Also, some discussion on SO:
-
Re:How can an OS have such a fundamental problem?
It is clearly stated in the source, that
/dev/urandom produces cryptographically strong random numbers.Oh, really? Guess they'll have to update the Linux man page then...
http://stackoverflow.com/a/3690285
http://linux.die.net/man/4/urandom
http://en.wikipedia.org/wiki//dev/random#Linux -
Proper implemenation
I am taking a stab that the random generator was not seeded correctly. Here is a good description on seeding properly.
-
this should be in the FAQ
Zalgo and page-widening trolls, beeotches.
Because Unicode validation & sanity checking is harrrrdddddd... -
Re:Slashdot affected as well
I am not sure what language this site uses, but this may be useful:
http://stackoverflow.com/questions/9394210/smart-quotes-not-converting-properly-into-utf8 -
Stackoverflow Meta thread
-
Re:fuck tags
Sorry for the malformed link...
-
Re:You want obfuscated code?
None of the software I write in C# crawls along like a dog. Notwithstanding the fact that
.NET uses JIT (Just In Time Compilation), if you're doing something with a time constraint that's not met by .NET, you're either doing it wrong, using the wrong language or using the wrong hardware.
It's plenty fast enough for all kinds of applications. -
EVE Online runs Stackless Python
They are using Python 2.7:
http://community.eveonline.com/news/dev-blogs/stackless-python-2.7/Great discussion of pros and cons of Stackless:
http://stackoverflow.com/questions/588958/what-are-the-drawbacks-of-stackless-pythonHere's an interesting page with a few nuggets of info. In the discussion section, some people claim that the game used to crash with space battles as small as 100 ships. Clearly the game has been improved since then.
http://highscalability.com/eve-online-architectureIf you are really interested, here's a talk from PyCon 2009 that goes into some detail on what they do with Stackless. They had some problems that only showed up on the crazy load of a real system, so they had to go live with some code to test it!
http://blip.tv/pycon-us-videos-2009-2010-2011/stackless-python-in-eve-pt-2-1959372P.S. A couple of good trailers:
http://www.youtube.com/watch?v=HrrVDV_NsNo
This one bored me at first but then got much better as the music got going.
http://www.youtube.com/watch?v=euMjOHgb9A8 -
Re:Finally Fixing the Date stuff
They need to support it as a native numeric type, so it's not so difficult to use. If it was a native type with proper mathematical operators you wouldn't need questions on Stackoverflow about how to add two values together.
-
Prior Art
Near_sound_data_transfer is already implemented and sold by TagAttitude.
Audio data transfer in Android is discussed in this stackoverflow post which mentions this slideshow.
This dude posted his same idea over a year ago.
Modem-style data transfer between smartphones is a cool idea - but the software and protocol would need to be ubiquitous (read: open). If only a few apps or devices support this tech, it's no different from requiring hardware like NFC or software to support a bluetooth data sharing connection.
-
Marketing
So Joel Spolsky writes about how efficient and wonderful his own website is and no one here notices ? OK, sterling work on shooting down a rubbish patent, but that is how the US patent system has been working for a long, long time. If any one had come after me with a claim of infringement on such a patent I would have laughed.
-
Re:Microsoft cross platform problem.
Although zip compression which was included recently in
.net, SUCK. Don't take my word, ask the creator of gzip/zlib (he's working for nasa). http://stackoverflow.com/questions/11435200/why-does-my-c-sharp-gzip-produce-a-larger-file-than-fiddler-or-php/11435898#11435898 Most people use dotnetzip (ionic) instead, and rightly so. -
Re:Wow, an amazing co-incidence
How is it a "huge problem"? ASCII has a number of control characters too. A whitelist is a great idea, but why is the whitelist so restrictive? Just grab a copy of the current Unicode Data file and whitelist all current non-control characters. And if you're concerned that Zalgo might come, I suppose you could omit any non-spacing chars from the whitelist without people complaining too much (though perhaps it'd be good to include the ones that are actual letters in various Indic scripts).
-
A few free resources
Practical PostgreSQL: http://www.commandprompt.com/ppbook/
Learn SQL The Hard Way: http://sql.learncodethehardway.org/
Use The Index, Luke!: A Guide To SQL Database Performance: http://use-the-index-luke.com/ (my own site)
Source: http://stackoverflow.com/questions/194812/list-of-freely-available-programming-books