Quote:I mean, you are aware of the trickle-down effect associated with flagship devices, right? Hint: it's why Microsoft's lineup of Surface devices exists.I am not sure what you mean.
Quote:FA, I really need to ask you this: why would you want to limit your market to people / technologies in poor countries, instead of making apps that people in richer countries might use?Well, first of all, that's a way to prove you actually know JavaScript and CSS, right? Being able to do things without the help of frameworks or the features of new browsers is valuable, isn't it?
Also, you are saying I should be careful not to do too much work client-side. But being able to do more work client-side is one of the reasons why people make new and better browsers, right? Testing JavaScript in older browsers is a way to tell whether the algorithms you've used are efficient enough.
And is there really something wrong with the way my web-app looks?
Most of the Internet forums, by the way, work with a very wide range of browsers. This forum, for instance, works in Internet Explorer 8 without problems. And there are quite a few Internet forums today that work even in Internet Explorer 6 without problems.
Quote:the years of spending thousands of $$ every year for something like a Visual Studio license are overAnd why didn't you use VIM, or something like that, those days? According to StackOverflow, there are still quite a few developers, especially web-developers, who prefer to use simple text editors rather than IDEs.
By the way, I've tried to make it possible to reset the back-end of the web-app (in case something goes wrong) from the web-app itself, without having to use that annoyingly buggy control panel 000webhost provides. I've tried to add some security in form of a password. However, sending a password to the server isn't actually adding a lot of security when the web hosting doesn't allow me to use HTTPS unless I pay them (and I don't have a credit card or a PayPal or anything for buying things on-line). So, here is the password cyphering algorithm I've used (the front-end in JavaScript, the backend written in PHP simply deciphers it using the same algorithm the front-end uses to cypher it and hashes it and then compares the hash to a pre-programmed constant):
Code:
function resetBackEnd()
{
sessionID=Math.floor(Math.random()*100);
if (!window.XMLHttpRequest)
{
alerted=1;
alert("Emitter error: Your browser doesn't appear to support the JavaScript 'XMLHttpRequest' object. Connecting to the server using the ActiveX controls is not secure.");
return;
}
var password=prompt("Enter password (known by Teo Samarzija):");
document.getElementById("AJAXmessage").style.display="inline";
var xmlHTTP=new XMLHttpRequest();
xmlHTTP.password=password;
xmlHTTP.open("POST", "oneTimeKey.php", true);
xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHTTP.send("sessionId="+sessionID);
xmlHTTP.onreadystatechange=function()
{
if (this.readyState==4) {
var oneTimeKey=this.responseText*1;
var json="[";
var password=this.password;
for (var i=0; i<password.length; i++)
json+=(password.charCodeAt(i)^((i%2)?(oneTimeKey%256):(oneTimeKey/256)))+((i<password.length-1)?(","):("]"));
var xmlHttp=new XMLHttpRequest();
xmlHTTP.open("POST", "deleteDownloads.php", true);
xmlHTTP.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHTTP.send("password="+json+"&sessionId="+sessionID);
xmlHTTP.onreadystatechange=function(){
if (this.readyState==4)
alert("Emitter message: The server apparently responded with \""+this.responseText+((this.status-200)?(" (Error "+this.status+")"):"")+"\".");
document.getElementById("AJAXmessage").style.display="none";
}
}
}
}