Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
Luigi Thirty
Apr 30, 2006

Emergency confection port.

fasm

code:
ORG 7C00h

PUSH    CS
POP     DS

lea SI, data3
mov ah, 0eh

go:
    MOV AL, [SI]
    CMP AL, 0
    JZ go2
    INT 10h
    INC SI
    JMP go

go2:       
    mov ah, 02h
    mov AL, 10
    mov ch, 0
    mov cl, 1
    mov dx, 0
    mov bx, 1000h
    mov es, bx
    mov bx, 0000h
    int 13h

LEA SI, data1
MOV AH, 0Eh

a: 
    MOV AL, [SI] ;load
    CMP AL, 0
    JZ b
    INT 10h
    INC SI
    JMP a

     
b:
    MOV AH, 0
    INT 16h
           
    MOV AH, 0Eh
    INT 10h
        
    cmp AL,'y'
    je d

c:  
    MOV     AX, 0040h
    MOV     DS, AX
    MOV     w.[0072h], 0000h
    
    JMP	0FFFFh:0000h 
            
d:
    mov al,10
    mov ah,0eh
    int 10h            
            
e:
    lea si, data2
    mov ah,0eh    
    
f:
    mov al,[si]
    cmp al,0
    jz e
    int 10h
    inc si
    jmp f

data1 db 0x59,0x4F,0x53,0x50,0x4F,0x53,0x20,0x59,0x2F,0x4E,0x3F,0x0D,0x0A,0x3E,0x00   
    
data2 db 0x50,0x65,0x6e,0x75,0x73,0x20,0x00

data3 db 0x4c,0x6f,0x61,0x64,0x69,0x6e,0x67,0x20,0x59,0x4f,0x53,0x50,0x4f,0x53,0x20,0x4f,0x53,0x2e,0x2e,0x2e,0x0d,0x0a,0x00

Adbot
ADBOT LOVES YOU

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Markov Chain Chomp posted:

stop telling sulk to learn new languages. he's already given up at like 3 of them

wish you'd give up at english so you'd be posting in japanese and then we could ban you for anime

Luigi Thirty
Apr 30, 2006

Emergency confection port.

(shamelessly stolen from coc)

so what do you think this does:

php:
<?
echo get_current_user();
?>
let's see

PHP posted:

Returns the name of the owner of the current PHP script.

...oh. okay, so how is this accomplished?

php:
<?
echo shell_exec('whoami');
?>
:suicide:

Luigi Thirty
Apr 30, 2006

Emergency confection port.

webos is clearly the framework of the future

ui in html5 + css + "enyo framework" (see also: jquery), logic in javascript

Luigi Thirty
Apr 30, 2006

Emergency confection port.

rotor posted:

its prototype + node.js actually

oh yeah i knew it was prototype but not node.js

Luigi Thirty
Apr 30, 2006

Emergency confection port.

fidel sarcastro posted:

as the runaway success of webos has shown us,

well it's really easy to program for and adapt internet garbage for so maybe if more than one device used it

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Markov Chain Chomp posted:

you will remember where you were on this day when janin uttered the dumbest of all possible sentences in the human tongue

counterpoint: tiny bug childe

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Janin posted:

this is what happens when you take UI design away from engineers and give it to a bunch of hipster art student "designers"

you are insane

Luigi Thirty
Apr 30, 2006

Emergency confection port.

mail.ahahahaha

Luigi Thirty
Apr 30, 2006

Emergency confection port.

ppp posted:

use perl 6

use python 3

Luigi Thirty
Apr 30, 2006

Emergency confection port.

main = pee
main = pee
main = do
main = do

putStrLn "it is a bad language"

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Zombywuf posted:

Maybe I should learn APL, then I can create a frankensteinien combo of APL and COBOL. It will be the most powerful most readable thing ever.

challenge: write a function to convert a standard steamid (STEAM_0:0:xxxxxxxx) to a 64-bit steamid (a longass number) in a language created before 1972

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Gazpacho posted:

every new program fits on the screen at first

thanks to subpixel rendering, so can your penis

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Sulk posted:

ruby is a somewhat strange language. i don't know what to think of rails

gooby on rails

also i had to install mssql for some eve online thing i was working on and it took me 8 hours to get the drat thing actually installed and working jesus what the gently caress microsoft your installer doesn't even work and somehow broke my registry and removed system view permissions on everything having to do with SQL server what the gently caress

Luigi Thirty
Apr 30, 2006

Emergency confection port.

i found the code for YOSPOS.BIN which sent my :spergin: into overdrive so i've been reverse engineering atari 2600 breakout today and been trying to figure out its neat graphical tricks and making a functionally-equivalent clone.

so far i can draw things out of a 5x18 array of playfield bricks. i made this title screen.



SUPER TIGHT TIMING

Luigi Thirty fucked around with this message at 08:27 on Oct 2, 2012

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I'm doing it by hand (5 rows of 40 bricks) but it would be trivial to write a script to do it

Luigi Thirty
Apr 30, 2006

Emergency confection port.

hey remember when we posted about php instead of e/n

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I am a babby pycharm user. when I alt tab out of my project I get errors saying it can't save workspace.xml~. I have like 50 of them. deleting them or changing the project folder doesn't help. halp.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

turns out windows forms and c# are easy who knew

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I know nothing about windows ui development am I being shaggared or do I actually use wpf idk

Luigi Thirty
Apr 30, 2006

Emergency confection port.

so vs2012 is drawing its WPF designer thing like i'm using windows 8. i'm using windows 7 and when I run the application it of course opens in aero glass and looks all wrong because of the different window borders. how do i make it do aero glass instead of flat poo poo in the designer?

Luigi Thirty
Apr 30, 2006

Emergency confection port.

learning cpp ages ago means i can actually understand c# even though all i've used for anything is python and php :allears:

Luigi Thirty
Apr 30, 2006

Emergency confection port.

whoa threaded applications doing asynchronous web requests and shoving arbitrary objects into viewing boxes is so easy c# owns

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Sneaking Mission posted:

php is terrible, tef is terrible,, tef is php

tef is php

php is tef

Luigi Thirty
Apr 30, 2006

Emergency confection port.

college status: accidentally enrolled in a java security class, too late to fix that. barely know any java. should be fun.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

As I've seen this article a number of times, I'd like to go through it to see what everyone has to say on the subject. Warning: This is just stupidly, ludicrously long. it takes an existing 5-page article and tears it apart nearly sentence-by-sentence.

First, let me say that PHP isn't perfect. There's a lot of weirdness to it, a lot of examples of a language that grew organically by a large multinational team instead of being designed by a small committee of English-speaking developers. But that doesn't mean it's bad design, just that there's quirks, like any well used system.

Now, onto the article itself. We're first presented with his toolbox analogy. This ridiculous piece of prose seems to be insinuating that the basic control structures of PHP are somehow non-standard and don't work like every other language. A hammer with a peen on both ends? A screwdriver which only works with specialty screws? How is this an analogy for the most popular web language in the world? He goes on to say that the builders who use these tools make things that don't work and fall down at the slighest provocation. Now, having read this before, I know that he goes into defense mode over this statement later, but I'll go ahead and attack it now: Show me the faults in facebook. Show me where wikipedia falls down when you touch it. Find the design flaws in vbulletin, wordpress, or any of the other toolsets that would be at all analogous to a house "where every room is a pentagon and the roof is upside-down. And you knock on the front door and it just collapses inwards."

Stance

After his analogy, we get his stances. These are almost all wrong, and illustrate his basic misunderstanding of languages in general. He believes languages shoudld be:

Predictable - The author states that it's the language's responsibility to be understood by everyone who uses it, rather than the builder's responsibility to understand their tools. He doesn't understand why PHP does something, so instead of investigating and learning more, he declares PHP "broken" and "badly designed." This is a recurring theme in the article. Much of his problems with PHP stem from him not understanding symbol tables or loosely typed languages. Just look at his list of "surprises": mysql_real_escape_string? OH MY GOD! SHOCKING! What the hell is he talking about?

And E_ALL? How is a constant name a "surprise"? The list of error-level constants is in the manual. they all begin with E_ and then give what they describe. I will grant that E_ALL spent a couple years not being absolutely every error. However, I think the choice was to make E_ALL provide only functional errors, and not strict warnings like deprecated function names. Some disagree.

Consistent - Apparently things that look the same should work the same in a programming language? And if you know one part you should be able to understand other parts? This appears to be a dig at PHP's ecclectic naming conventions, and I will certainly give him that. htmlentities should have underscores like its counterpart, html_entity_decode. Of course, the counterpart of every function is in that function's manual page, but "the manual is right there and it's free and it's integrated into the free IDEs" still isn't an excuse. The language needs to be cleaned up from a naming perspective. He gets one point.

Concise - He makes statements about "boilerplate" a number of times, but never defines the term or tells us what he's talking about. PHP is very concise. It includes time-saving functions like usort(), file_get_contents(), and other functions which in C++ would take pages of code. Of course, it also requires error checking, which seems to be what he's complaining about. He lists error-checking as boilerplate. I don't know how Python handles it, but generally as a programmer I'd like to know if a file operation failed. His point here seems to be that low-level functions return false instead of throwing an exception, which is honestly a holdover from when PHP was young and didn't have exceptions. However, which is more boilerplate: if ( !( $file = fopen('file.txt', 'w') ) ) or a try-catch block?

Reliable - This, again, is him assuming that it's the language's responsibility to be understood, rather than his responsibility to understand it. He goes into what he considers "gotcha" events later in the article, but (spoiler alert) they all stem from his fundamental understanding of the language. You can tell because his two examples perfectly illustrate his misunderstanding. The == operator is listed as "flaky." The == operator is the core of loosely typed languages, and is immensely powerful. He thinks it's flaky because he can't wrap his brain around loose comparisons. His second example is a by-ref loop, something which exists in all programming languages. The only "gotcha" here is that his understanding of the way variables work in this language is simply wrong.

Debuggable - Now this I'll give him. PHP's error handling is atrocious. I mean, look at the errors some of these new users are getting on DevShed. Who can solve any problem when given just the error type, line number, function name, data type, prose description of the error, and potential fix? That's ridiculous! [/sarcasm] Maybe Python's error handling is much more robust than I remember, but PHP's has thus far been fine for me. Better than the error handling of things like Oracle, with 'cannot bind' being the only error I got yesterday. His examples require a stack trace, which I guess could be handy some of the time, but honestly I've rarely used the stack traces we build into our error-handling at work (which is easily overridden in the PHP core with a set_error_handler call)

Arguments

Now, our author goes into a list of arguments he automatically discards. Luckily, my argument of "you don't understand PHP and it's not PHP's job to get into your brain and force you to understand things you choose not to" isn't on the list. He does say that it's not his responsibility to "memorize a thousand strange exceptions." I agree with him on that, strpos should be renamed. However, it is his responsibility to come to an understanding of how programming languages work, and he has failed to do so. He also uses a wonderful straw man with "you should just use C if PHP handles 5% of its operations the way C does." Just because fopen returns false in C and in PHP doesn't mean PHP is a net loss. Finally, his argument of "the largest and most popular websites in the world, designed and written by the smartest programmers in the world, don't prove anything" is laughable. The conscious choices of almost every single web engineering team worth a drat do, in fact, count as proof that the tool they've chosen is worthwhile. (He also says not to argue with him at all, because he's just stomping his little feet and nothing will change his mind. I'm writing this for the DevShed community, not this guy who can't figure out how PHP works.)


Philosophy

PHP was designed to be easy to understand, because at the time the thought of full-featured web applications was silly. An item's source doesn't discredit what it's become. What if someone told you "America was founded to be a colony (and, reading between the lines, not a country); it has not well escaped its roots. This is why I believe nobody should take America seriously as a country." Stupid, right? Good, glad we agree.

Quote:
PHP is built to keep chugging along at all costs.
MY GOD! HOW LUDICROUS! PHP is a web language with very little ability to recover from a crash the way you would in a desktop environment. It will keep doing its best and instead of a blank screen (or a blue one) maybe a bad programmer will get her site's navigation bar with some errors underneath it. But she WILL get something. The fact that PHP doesn't crash and burn as easily as the other languages doesn't have me crying myself to sleep at night.

Quote:
There’s no clear design philosophy.
Yes, we know. He still has one point.

Quote:
PHP takes vast amounts of inspiration from other languages, yet still manages to be incomprehensible to anyone who knows those languages. (int) looks like C, but int doesn’t exist. Namespaces use \. The new array syntax results in [key => value], unique among every language with hash literals.
So wait...you're telling me...different languages can build on each other, but an expert in one isn't automatically an expert in the other? Alert NASA, we have a breakthrough in human understanding. Languages are different. That's the point of making new languages. Sorry if Perl's regex format is confusing to a C guru. Perhaps he should learn Perl before complaining that the syntax of a language he doesn't know is confusing.

Quote:
Weak typing (i.e., silent automatic conversion between strings/numbers/et al) is so complex that whatever minor programmer effort is saved is by no means worth it.
This is the closest he comes to outright saying "I don't understand it and therefore it's wrong." If you want to understand how weak typing conversions work, you could look in the manual for the chart, or you could read my article on it.

Quote:
Little new functionality is implemented as new syntax;
From the man who complained about the syntax of arrays, namespaces, and type conversions literally 2 sentences prior.

Code example: fopen

First of all, let me start by saying that when he said the line he discovered was "somewhere in the manual," it was deep into the manual entry for complex system-level error-handling functions and was specifically designed to suppress errors in a weird way so that you could see how error-screaming works. The fact that he pulled this frankly BS example out of a manual entry on weird and complex error handling shows just how hard he was reaching to make a point, but since his misunderstanding of PHP is well illustrated here I'll continue.

Quote:
(Docs don’t say what “won’t work” means; returns null, throws exception?) [...] If allow_url_fopen is disabled in php.ini, this still won’t work. (How? No idea.)
Except the docs DO say what happens when the function fopen fails: it returns false. It's in a nice blue box labeled "returns." Can't miss it.

Quote:
Because of the @, the warning about the non-existent file won’t be printed.
Line-level error suppression is a powerful feature, I'm glad to use a language which supports it.

Quote:
But it will be printed if scream.enabled is set in php.ini.
System-level forcing of all errors is another powerful feature, I'm glad I don't have to go find ever @ sign in my code when I'm debugging something weird.

Quote:
If it is printed, exactly where it goes depends on display_errors
I'm beginning to think he's never used a programming language at all. Is it just me, or should every web language have server-level error reporting configuration? What does Python do? Just spit all errors to the screen no matter what? If you want to log to a file, you have to do that by hand for every error? That sounds awful. Or he's full of it.

Back to individual complaints

Quote:
The language is full of global and implicit state
Server-level configurations are pretty handy and remove a lot of boilerplate, don't you think? Good thing removing boilerplate was one of his biggest criteria back at the beginning.

Quote:
register_tick_function sets a global function to run every tick—what?!
Shame the manual on that function isn't 4 pages with explanations and usage examples or he might learn something.

Quote:
There is no threading support whatsoever.
It's purely a web language, and nothing else. Websites don't need threads, because if they take longer than a second to run they've failed. Again, fundamental lack of understanding.

Quote:
json_decode returns null for invalid input, even though null is also a perfectly valid object for JSON to decode to—this function is completely unreliable unless you also call json_last_error every time you use it.
He gets another point here, json_decode really should throw an exception. Though to be fair, if I ever get a json object which resolves to null, I'm going to handle it as an error regardless.

Quote:
array_search, strpos, and similar functions return 0 if they find the needle at position zero, but false if they don’t find it at all.
Once again, if this person would take 10 minutes to attempt to understand loosely typed languages, this would all make sense. These functions return the index of the item found. if no item is found, they return false. That sounds really powerful, and I'm not sure why it's even a complaint. Luckily for the reader, he goes on to explain his ignorance:

Quote:
In C, functions like strpos return -1 if the item isn’t found. If you don’t check for that case and try to use that as an index, you’ll hit junk memory and your program will blow up. [...] In, say, Python, the equivalent .index methods will raise an exception if the item isn’t found. If you don’t check for that case, your program will blow up.
C and Python crash fatally, potentially destroying the memory space of other programs. Got it.

Quote:
In PHP, these functions return false. If you use FALSE as an index, or do much of anything with it except compare with ===, PHP will silently convert it to 0 for you. Your program will not blow up; it will, instead, do the wrong thing with no warning, unless you remember to include the right boilerplate around every place you use strpos and certain other functions.
So basically, if you don't include the right boilerplate around other languages, they fatally crash and destroy their state, potentially also destroying neighboring programs in memory. However, if you do the same erroneous code in PHP, it continues to work with slightly unexpected results. Tell me again why "keeps working" is a problem? Plus, for what might be the 10th time, he just plain doesn't understand loosely typed languages. Yes, false == zero. That's actually an incredibly powerful feature of the language. The boilerplate he's comparing about isn't exactly onerous either. Look, here it is: "!== false". Oh man, look out. That nearly broke my fingers I typed for so long.

Quote:
So I have to fit this in here, because it bears repeating: PHP is a community of amateurs.
And they're all stupid heads and not invited to my birthday party. I love how he "had to fit in" an ad hominem attack against an entire community of developers. He even states further up in the article that facebook and wikipedia run PHP, and still manages to claim that those people are amateurs.

"Back to the facts" (and by "facts" we mean "opinions borne of fundamental misunderstandings")

Quote:
== is useless [...] Comparison isn’t much better.
Blah blah doesn't understand loosely typed blah.

Quote:
PHP does not overload +
Quite literally damned if you do, damned if you don't. He simultaneously complains about PHP doing something, then not doing that same thing.

Quote:
There is no way to declare a variable.
I really should make a hotkey for "he doesn't understand loosely typed languages."

Quote:
Global variables need a global declaration before they can be used. This is a natural consequence of the above, so it would be perfectly reasonable, except that globals can’t even be read without an explicit declaration—PHP will quietly create a local with the same name, instead. I’m not aware of another language with similar scoping issues.
PHP has strict function scope, and globals aren't automatically imported for reading and writing. His complaint seems to be that all globals aren't read-only inside all functions, which I personally think is confusing if it's done that way. Why should I be able to read $foo but not write to it? Doesn't that seem more confusing?

Quote:
There are no references. What PHP calls references are really aliases; there’s nothing that’s a step back, like Perl’s references, and there’s no pass-by-object identity like in Python.
His second fundamental misunderstanding finally rears its head here: Symbol tables. PHP doesn't use variables like other languages, it uses symbol tables. PHP does in fact have references, and pass-by-identity (objects are always passed by reference).

Quote:
Once a variable is made a reference (which can happen anywhere), it’s stuck as a reference. There’s no obvious way to detect this and un-referencing requires nuking the variable entirely.
I'm willing to grant him another point here (which makes three). If you, for instance, make $a a reference to the third item in array $b, then any modifications to $a modify the inner structure of $b, though $a still looks like a stand-alone variable. Perhaps another symbol would be good, but then you get into the problem of perl, where $a and #a and &a are all confusing and conflicting things. Difficult problem to solve, but most programmers just don't use references unless they need them.

Quote:
(integer) is a synonym for (int). There’s also (bool)/(boolean) and (float)/(double)/(real). [...] There’s redundant syntax for blocks: if (...): ... endif;, etc.
"PHP is too confusing, I have to memorize so many things! Waaaaaah! In addition, there's aliases for things so if I forget and use the wrong one it will still work! PHP IS AWFUL!!"

Quote:
Most error handling is in the form of printing a line to a server log nobody reads and carrying on.
"I don't read my log files, what kind of programmer would ever use error logs to debug? That's stupid! My website should just die with a white screen and a 'Sorry!' message whenever there's an error so I know to go try to remember where I put the error logs"

Quote:
E_STRICT is a thing, but it doesn’t seem to actually prevent much and there’s no documentation on what it actually does.
As stated above, E_STRICT is an error-level constant (hence the E_) and is well defined in the manual.

Quote:
Weirdly inconsistent about what’s allowed and what isn’t.
The things he listed as "silent" are not errors in the least, they're all valid PHP operations. He seems to think E_STRICT should mean "work more like another programming language." Probably because he doesn't understand PHP.

Quote:
PHP errors and PHP exceptions are completely different beasts
Are there interpreted languages which throw in-application exceptions instead of language-level errors when they encounter fatal or parse errors? I don't think there are, I think the author doesn't understand interpreted languages vs compiled ones.

Quote:
Some built-in functions interact with reference-returning functions in, er, a strange way.
The one example he has of this shows someone attempting to create an anonymous (unreferenced) array, put a variable in it, and then have it immediately destroyed. Not sure why that's even something someone would do, but...err...you got me.

OO

Quote:
I’ve yet to find a global function that even has a capital letter in its name
Anyone else feel like scrolling up to where he complains about function names being case-insensitive? No?

Quote:
Perl, Python, and Ruby all have some concept of “property” access via code; PHP has only the clunky __get and friends. (The documentation inexplicably refers to such special methods as “overloading”.)
Our dear author has not yet discovered the simplicity of $foo->bar. Either that or he has absolutely no understanding of how objects work in ANY language.

Quote:
Classes have something like variable declaration (var and const) for class attributes, whereas the procedural part of the language does not.
Aside from demonstrating the "var" syntax (deprecated over a decade ago), this doesn't understand the complexities of designing a real system in PHP.

Quote:
Despite the heavy influence from C++/Java, where objects are fairly opaque, PHP often treats objects like fancy hashes—for example, the default behavior of foreach ($obj as $key => $value) is to iterate over every accessible attribute of the object.
Still not getting why he complains about additional functionality he doesn't even have to use. So you can foreach over an obect to get its public variables (or, if it implements arrayaccess, some other variable of the author's choosing). If you don't like that, don't use it. It's like saying "unlike C, Python allows me to have tuples." So?

Quote:
Object attributes are $obj->foo, but class attributes are Class::$foo. ($obj::$foo will try to stringify $obj and use it as a class name.) Class attributes can’t be accessed via objects; the namespaces are completely separate, making class attributes completely useless for polymorphism.
None of this makes any sense at all. I'm willing to give him the benefit of the doubt and assume he hit his head or something.

Quote:
I’m aware this is more personal taste, but I don’t know why this stuff is necessary in a dynamic language—in C++ most of it’s about compilation and compile-time name resolution.
Wow, that's an excellent point. I'm glad we're talking about a compiled language and not, for instance, PHP.

Arrays

Quote:
Despite that this is the language’s only data structure, there is no shortcut syntax for it
Once again, who wants to volunteer to scroll up to where he complained about the shortcut array syntax? It's like this article was written in 2004, and then he updated it with more complaints, many of the complaints being about the fixes to his previous complaints. It's like the room is filthy, and the maid used floor polish that smells too strongly. One or the other.

Quote:
it’s the only language in its niche that has no vetted way to create a hash without quoting string keys.
Because it's a loosely typed language perhaps? Because it's possible to use a variable without defining it, even constants, and therefore an unquoted bare string literal is assumed to be an undefined constant? Becuase you don't understand loosely typed languages?

Missing Features

Quote:
No XSS filter. No, “remember to use htmlspecialchars” is not an XSS filter. This is.
So "remember to use htmlspecialchars" doesn't count, but "remember to use marksupsafe" does? Gotcha. Good to know that the criteria for language functionality can just change mid-sentence.

Quote:
No CSRF protection. You get to do it yourself.
Because his last example was a function call you had to wrap arounde every string, I'm going to go ahead and assume that's what he'd use to "prove" this point as well, if such a library is even available.

Quote:
No generic standard database API. Stuff like PDO has to wrap every individual database’s API to abstract the differences away.
There's no standard database API. Except for the standard one. But that one doesn't count because deep down below where you can see it, it doesn't call the same functions for each database.

Quote:
No authentication or authorization.
This one I actually know nothing about. Do other languages have built-in user authentication which can work as a login system? So if I want to write a web login system in Python, there's a built-in language core module for that?

Security

Quote:
PHP’s poor security reputation is largely because it will take arbitrary data from one language and dump it into another. This is a bad idea. "<script>" may not mean anything in SQL, but it sure does in HTML.
Again, I'm going to have to ask how Python does that. Does Python automatically sanitize plaintext output? How would you print a <script> tag in python if that's the case? Or is this, like most of his complaints, just how languages work?

Quote:
PHP outright encourages “sanitizing”: there’s an entire data filtering extension for doing it.
Could this be because PHP interacts with half a dozen other languages? Sure, you can use "placeholders" (bound parameters) with SQL, but can you use "placeholders" with HTML forms? No, you need to sanitize your output. Good thing PHP includes those functions.

Quote:
register_globals. It’s been off by default for a while by now, and it’s gone in 5.4. I don’t care. This is an embarrassment.
PHP was originally written to be super easy to use. As the featureset grew, they disabled some of the easier things. Register_globals is stupid today, which is why it's been deprecated for 10 years.

Quote:
include accepting HTTP URLs. Likewise.
There's a PHP.ini command to disable this, which is off by default. He even complained about a similar command above.

Conclusion

Quote:
If you got all the way down here, I assumed you agreed with me before you started
Or you had a morbid fascination with the awful arguments being presented and were unable to turn away, like a car crash.
Comments on this post
Northie agrees: mainly in part due to your efforts in responding. I just didn't have the energy
huyaroo agrees!

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Shameproof posted:

non english speaking countries i mean

T_PAAMAYIM_NEKUDOTAYIM

Luigi Thirty
Apr 30, 2006

Emergency confection port.

On 12/16/2013 07:30 PM, Rowan Collins wrote:

> The core functions which follow neither rule include C-style
> abbreviations like "strptime" which couldn't be automatically swapped to
> either format, and complete anomalies like "nl2br". If you named those
> functions as part of a consistent style, you would probably also follow
> stronger naming conventions than Rasmus did when he named
> "htmlspecialchars".

Well, there were other factors in play there. htmlspecialchars was a
very early function. Back when PHP had less than 100 functions and the
function hashing mechanism was strlen(). In order to get a nice hash
distribution of function names across the various function name lengths
names were picked specifically to make them fit into a specific length
bucket. This was circa late 1994 when PHP was a tool just for my own
personal use and I wasn't too worried about not being able to remember
the few function names.

-Rasmus

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Maluco Marinero posted:

maybe it's stockholm

you got more stockholm than ikea

Luigi Thirty
Apr 30, 2006

Emergency confection port.

yes, the full-featured java browser on the blackberry 8300 i had in high school that took 30 seconds to start and ran out of memory and crashed regularly trying to render somethingawful

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Bloody posted:

this differs from chrome in that

i don't know i use firefox

Luigi Thirty
Apr 30, 2006

Emergency confection port.

arrays, they're like databases you see

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Shaggar posted:

although intellisense is total loving garbage

Jesus christ you inhuman loving piece of poo poo.

gently caress you.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

e: not the games thread

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I literally just got an email bug report from a "samsung subcontractor" in china about how an android app i made 3 years ago on my htc shitbox doesn't work on galaxy s4s

Luigi Thirty
Apr 30, 2006

Emergency confection port.

swift is cool is there documentation on how to do things with osx in it instead of objectivist c yet

Luigi Thirty
Apr 30, 2006

Emergency confection port.

http://www.php.net/manual/en/datetimeimmutable.modify.php

DateTimeImmutable::modify — Alters the timestamp

Luigi Thirty
Apr 30, 2006

Emergency confection port.

PHP: it doesn't do what you think it does and is correct

Luigi Thirty
Apr 30, 2006

Emergency confection port.

my dad sells windows 98 pcs on eBay which is a pretty lucrative market considering you can buy them for pennies from governments and refurb them on the cheap

he wants me to make driver CDs for the hardware in them. challenge: make a simple menu panel auto run thing that lets you select a driver to install, for win98.

uhhhhh batch file it is I guess unless I want to try to use versions of tkinter from 2000, msvc 6, or net 1.0

Adbot
ADBOT LOVES YOU

Luigi Thirty
Apr 30, 2006

Emergency confection port.

the borland turbo c source code to some old shareware game got posted on the internet, any way to get that to compile on a modern computer

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply