|
Seems that I was wrong. Sorry. In my defense, when apt is truly hosed-up it spits python error messages. I guess OS's makers or distro put python wraps around a binary?
|
# ? May 29, 2020 14:16 |
|
|
# ? Jun 5, 2024 17:05 |
|
All I know is I'm glad Ubuntu 20 is out because that finally switched all the system stuff over from python 2 to python 3 so I could finally get rid of any python2 remnants on my machine. Uninstalling python2 on any older version of ubuntu had a good chance of all but bricking your system.
|
# ? May 29, 2020 17:11 |
|
So what exactly is "systems programming" supposed to mean? I've seen it applied to everything from writing the kernel to hacking up the man page formatter.
|
# ? May 29, 2020 19:34 |
|
Application programming focuses on something that a typical end user interacts with. Systems programming focuses on the stuff beneath that.
|
# ? May 29, 2020 19:37 |
|
The funny graphs thread is having a big discussion about the worst data formats imaginable. Starts around this post. https://forums.somethingawful.com/showthread.php?threadid=3745614&userid=0&perpage=40&pagenumber=295#post505177852
|
# ? May 29, 2020 19:58 |
|
ultrafilter posted:Application programming focuses on something that a typical end user interacts with. Systems programming focuses on the stuff beneath that. That's also what I would use as my definition, except that I probably wouldn't use the term "systems programming" at all when it's not universally agreed what it means. Go was originally presented as a systems programming language, and a whole bunch of people got their knickers in a twist because it's not a good choice for writing an operating systems kernel (due to the GC). It's still fine for "systems programming" in the sense of writing infrastructure that normal people don't interact with directly.
|
# ? May 29, 2020 22:40 |
|
ultrafilter posted:Application programming focuses on something that a typical end user interacts with. Systems programming focuses on the stuff beneath that. How do libraries fit in to that definition?
|
# ? May 30, 2020 00:10 |
|
A more descriptivist definition of systems programming would be to say that there are a number of areas commonly recognized as being in the "systems" domain — e.g. operating systems, networks, databases, and compilers — and that projects in these domain generally share a few characteristics, and that any project with these characteristics has a strong case for being considered "systems":
|
# ? May 30, 2020 03:06 |
|
Athas posted:So what exactly is "systems programming" supposed to mean? I've seen it applied to everything from writing the kernel to hacking up the man page formatter. My answer: Programming systems. . These systems can be OS, or OS parts, a scheduler inside a sim city video game, a compiler, the parts of Youtube that users will never see or imagine that exists, and so on. The oposite of system programming is bussines programming. Business programmers create CRUD forms, reports, lists of bussines data, dashboards of bussines data. There can be some system programming in business programming, has complex systems may be necessary to create bussines applications. --- I like rjmccall answer too.
|
# ? May 30, 2020 07:21 |
|
I really like Tei's position of contrasting it with business programming. Business programming has vague and ill-defined (and frequently moving) goals, is focused on things used by humans, is specialized to what you specifically are building, and so forth, while systems programming is where you have a concrete problem domain and well-defined goals, are probably only going to be interacted with by other code, and have the freedom to focus entirely on the technical aspects. A networking library used by your application is an example of systems programming. Sometimes it'll be written in a systems-programming language, with a small wrapper to enable it to be used from your business-programming language. Other times it'll be written natively in the business-programming language, even though that may not be your first choice for a "systems language" in the general case - if it happens to be the right technical decision for this particular use case. While many applications involved both business and systems programming, it's usually a good idea to draw a bright line between them - rather than constantly changing your systems code in response to moving business needs, or manually walking your database b-tree structures inside your business logic.
|
# ? May 30, 2020 07:58 |
|
|
# ? May 31, 2020 16:37 |
|
Half circular reasoning, half "all according to keikaku*. Translator's note: keikaku means plan." I like it.
|
# ? May 31, 2020 17:06 |
|
Impressive, after reading that I felt like I knew less about GROUP BY than before. I had to read the definition from the people who actually make an RDBMS to unconfuse myself.quote:The GROUP BY Clause is used to group together those rows in a table that have the same values in all the columns listed. The order in which the columns are listed does not matter. The effect is to combine each set of rows having common values into one group row that represents all rows in the group. This is done to eliminate redundancy in the output and/or compute aggregates that apply to these groups. That's some stark contrast…
|
# ? May 31, 2020 17:17 |
|
Antigravitas posted:Impressive, after reading that I felt like I knew less about GROUP BY than before. I had to read the definition from the people who actually make an RDBMS to unconfuse myself. Well I mean the big thing that's wrong with the definition is that when you cross out all the bullshit and semantic games, he's defining a group as "a row returned by the SQL group by function." Which is accurate and completely unhelpful at the same time.
|
# ? May 31, 2020 17:22 |
|
RDMS’s have a real formal mathematical basis, but, uh, that’s a really bad explanation of it with a completely spurious invocation of the group concept from algebra.
|
# ? May 31, 2020 17:35 |
|
That's not even a definition "for the most part" of an algebraic group. The group axioms are kind of important. Reminds me of when I heard a self-proclaimed tech expert say that some game, I want to say Minecraft, was created using Bootstrap (the CSS toolkit) and upon questioning what the gently caress they were talking about, I found out it's because at some point during the loading process, the word "bootstrapping" appeared on the screen.
|
# ? May 31, 2020 18:01 |
|
I just think it's telling that the people who are actually making an RDBMS, who really do know the theory behind it, don't write in this "I am very smart" way.
|
# ? May 31, 2020 18:02 |
|
It also fails to acknowledge the existence of aggregation functions other than COUNT.
|
# ? May 31, 2020 18:24 |
|
ultrafilter posted:It also fails to acknowledge the existence of aggregation functions other than COUNT. To be fair, that actually doesn't matter. Let me cut through the first layer of bullshit to expose the bullshit core. quote:Definition of an SQL Group Puffery removal filter: quote:Definition of an SQL Group
|
# ? May 31, 2020 18:38 |
|
Volte posted:That's not even a definition "for the most part" of an algebraic group. The group axioms are kind of important. Also, of the 3 things listed there, the most important one is the operation, and that just gets discarded. You don't need the identity to describe a group, it should be apparent from the operation. So, what you get out of this is "A group is a set"
|
# ? May 31, 2020 18:43 |
|
Dr. Stab posted:Also, of the 3 things listed there, the most important one is the operation, and that just gets discarded. You don't need the identity to describe a group, it should be apparent from the operation. There are two equivalent definitions of a group, neither of which is shown here. One is a set together with an operation that satisfies certain axioms. The other is to give it as a set with a binary operation (multiplication), a unary operation (inversion) and a nullary operation (identity) that relate to each other in certain ways. The second one is the preferred modern definition, but would probably be more confusing on a first introduction.
|
# ? May 31, 2020 19:55 |
|
The horror is that the header uses “an SQL group” and the text uses “a SQL group”
|
# ? May 31, 2020 20:02 |
|
I didn't even notice that. That's the kind of thing I'd write if I wanted to start a flame war though. Are we sure it's not a troll?
|
# ? May 31, 2020 22:06 |
|
Reading that triggered a kind of confused rage which is actually nostalgia of my student days.
|
# ? May 31, 2020 22:18 |
|
Bruegels Fuckbooks posted:Half circular reasoning, half "all according to keikaku*. Translator's note: keikaku means plan." I like it. Why does that keikaku thing always make me laugh? You'd think it'd get old I'm not even being sarcastic, I immediately think of some fat otaku ardently trying to rationalize this choice on the internet and it's hilarious
|
# ? Jun 1, 2020 02:14 |
|
rjmccall posted:RDMS’s have a real formal mathematical basis, but, uh, that’s a really bad explanation of it with a completely spurious invocation of the group concept from algebra. yea and is very important for things like optimizations because can apply algebra transformations and this way turn a complex query in other that would run faster.
|
# ? Jun 1, 2020 10:23 |
|
I wrote the most gently caress ugly PHP code in my life... and now the project is going to die. I'm posting it here for all to see. This code was to manage Greenbone Vulnerability scanner to scan people over a VPN *barf* This is only a small part of it. php:<? case "scan-start": $ping = `ssh -p '5555' 'admin@127.0.0.1' -i xxx -- ping xxx --count=1 --timeout=2 | grep time=`; if(empty($ping)){ logs("Ping timeout!"); logs("Time Left: " . ($meta["timeout"] - time() + 600)); //tunnel code of 4 means that the tunnel is broken somehow, this is a softfail and will have another script to fix it if(($meta["timeout"] - time() + 600) < 1){logs("Client timed out!, Resetting state!"); $database->update("###boxes", ["tunnel" => 4], ["license" => hex2bin($meta["box"]["license"])]); state($database, "scan-error", $meta); break;} break; }else{ logs("Ping good! $ping"); $meta["timeout"] = time(); $licshort = strtoupper(substr($meta["box"]["license"], -7, 7)); //start creating scans in openvas //add target try { if(!empty($meta["box"]["excludes"])){ $excludexml = "<exclude_hosts>".$meta["box"]["excludes"]."</exclude_hosts>"; }else{ $excludexml = ""; } $targetxml = escapeshellarg('<create_target><name>'.$licshort.'</name><hosts>'.preg_replace('/\s+/', ', ', $meta["box"]["targets"]).'</hosts><alive_tests>ICMP, TCP-ACK Service & ARP Ping</alive_tests>'.$excludexml.'</create_target>'); logs($targetxml); logs("1 - Add Targets " . $meta["box"]["targets"]); $targetreturn = new SimpleXMLElement(trim(`sudo -i -u ### /home/###/.local/bin/gvm-cli --gmp-username admin --gmp-password 'xx' ssh --hostname 127.0.0.1 --port 5555 -X {$targetxml}`)); $target_uuid = (string) $targetreturn["id"]; logs("Target UUID: " . $target_uuid); logs("2 - Add Scan"); $scanxml = escapeshellarg('<create_task><name>'.$licshort.'</name><comment>'.htmlentities($meta["box"]["location"],ENT_XML1 | ENT_QUOTES) .'</comment><config id="daba56c8-73ec-11df-a475-002264764cea"/><target id="'.$target_uuid.'"/><preferences><preference><scanner_name>in_assets</scanner_name><value>no</value></preference></preferences></create_task>'); logs($scanxml); $scanreturn = new SimpleXMLElement(trim(`sudo -i -u ### /home/###/.local/bin/gvm-cli --gmp-username admin --gmp-password 'xxx' ssh --hostname 127.0.0.1 --port 5555 -X {$scanxml}`)); $scan_uuid = (string) $scanreturn["id"]; logs("Scan UUID: " . $scan_uuid); logs("3 - Start Scan"); $startxml = escapeshellarg('<start_task task_id="'.$scan_uuid.'" />'); logs($startxml); $startreturn = new SimpleXMLElement(trim(`sudo -i -u ### /home/###/.local/bin/gvm-cli --gmp-username admin --gmp-password 'xxx' ssh --hostname 127.0.0.1 --port 5555 -X {$startxml}`)); $start_start = (string) $startreturn["status"]; $start_text = (string) $startreturn["status_text"]; $report_uuid = (string) $startreturn->report_id; logs("Task Status: " . $start_start . " Report UUID: " . $report_uuid); if($start_start > 300 OR $start_start < 200){ $database->update("###boxes", ["tunnel" => 5], ["license" => hex2bin($meta["box"]["license"])]); state($database, "scan-error", $meta); break; }else{ $meta["scan_uuid"] = $scan_uuid; $meta["target_uuid"] = $target_uuid; $meta["report_uuid"] = $report_uuid; state($database, "scan-progress", $meta); } } catch (\Exception $e) { $database->update("###boxes", ["tunnel" => 5], ["license" => hex2bin($meta["box"]["license"])]); state($database, "scan-error", $meta); break; } } break; ?>
|
# ? Jun 1, 2020 13:54 |
|
code:
|
# ? Jun 1, 2020 15:34 |
|
Balsa posted:What have I done with my life Before you post something like this, you have to distribute bingo cards so we can play with it.
|
# ? Jun 1, 2020 16:05 |
|
Tei posted:Before you post something like this, you have to distribute bingo cards so we can play with it. It's an easy drinking game though. Drink every time you drink until everything's gone, and then forget the code exists in the first place.
|
# ? Jun 1, 2020 16:55 |
|
So, everyone in this thread has read The UNIX-HATERS handbook, right? It's a bit old but it's an absolute classic and a lot of it still rings true. Since I just read a pdf, I never knew this, but apparently the original printed copy came with a free barf bag which is absolutely perfect.
|
# ? Jun 1, 2020 18:05 |
|
What book is this?
|
# ? Jun 2, 2020 02:27 |
|
SQL Cookbook by Anthony Molinaro.
|
# ? Jun 2, 2020 03:24 |
|
unix aint great but a good majority of the unix haters handbook is just someone going "it doesn't make any sense! If they they glued a tomato to a broom handle it would be more functional! Barf!" for 16 straight chapters
|
# ? Jun 2, 2020 16:22 |
|
I watched a couple of YouTube videos on mathematical groups, and I'm completely lost as to how SQL GROUP BY has anything to do with that.
zergstain fucked around with this message at 01:08 on Jun 3, 2020 |
# ? Jun 3, 2020 00:08 |
|
They don't, which is why it's a terrible analogy. It's sort of like how Haskell uses category theory terminology that only make sense in that context if you squint enough to consider there to be 1 category.
|
# ? Jun 3, 2020 00:26 |
|
It's a failed attempt to introduce a topic with "Webster's dictionary defines..." that anyone who knows anything about the topic can immediately identify as more-than-usually spurious.
|
# ? Jun 3, 2020 09:47 |
|
"Webster's dictionary defines 'wedding' as 'to unite (metallic parts) by heating and allowing the metals to flow together or by hammering or compressing with or without previous heating'"
|
# ? Jun 3, 2020 09:52 |
|
Kids these days. I remember when computer books did not exist*. I had to dessasemble a PASCAL compiler to learn pascal**. * this is actually true ** sadly, this is true too Tei fucked around with this message at 13:03 on Jun 3, 2020 |
# ? Jun 3, 2020 10:29 |
|
|
# ? Jun 5, 2024 17:05 |
|
quote:I don't think you are realistically going to hit this [integer overflow] bug in the scenario presented. 2^31 records is quite a lot to be having to page through.
|
# ? Jun 3, 2020 10:40 |