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
TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Okay, sorry for leaping to bad conclusions, but I heard "use a regex to fix my database input" and everything went red for a moment there.

So what exactly are you looking to do here? Just remove the quotation mark? If it's always preceded by a \ then that's pretty easy:
code:
cat log.txt | sed 's/\\"//g'
If you want something more complicated then you'll need to find a way to distinguish between the "good" quotation marks that delimit entries, and the "bad" ones that are within entries. That'll probably depend on the structure of your log file.

Do nested quotation marks only ever show up in the last "entry" on the line? Then you can do a greedy match up to the last quotation mark that precedes a "bad" mark, split the line into "good" and "bad" entries, and remove quotation marks from the "bad" section.

Adbot
ADBOT LOVES YOU

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

No Safe Word posted:

You suffer from the same affliction I try to rid myself of: gratuitous use of cat (sed can take a filename as an arg)

Other commands I used to do that poo poo with regularly: less, grep, and their z* variants

You're right, of course. :doh: But I didn't know about zless, zgrep, etc. That's cool!

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

bomblol posted:

It really uglies up the code having to do this for every call. Is there some way I can make a method, such as twitter_request(request) that I could somehow pass mentions({since_id: @last_seen_tweet, count: 20}) (or whatever the equivalent would be), and then inside that method wrap the call in exceptions? I was considering creating a new class MyTwitterClient or whatever that implements method_missing, send() it to the @twitter_client after wrapping it in the exception handler. But i would like to avoid creating another class just for that. Or maybe there's a better way to do it by subclassing the twitter client class.

If this were Python I'd tell you to write a decorator function, which would look something like this:
code:
def limit_rate(func):
    def limited_func(*args, **kwargs):
        try:
            func(*args, **kwargs)
        except Exception, e:
            ....try calling func again in a bit...
    return limited_func
Basically we have here a function that takes a function as an argument, creates a new function that tries to call the original function (with appropriate catch exception -> retry logic not shown here), and returns that new function. So you can call limit_rate(do_a_thing)(args to do_a_thing) and get the retry logic automatically. Python has a syntactic sugar where you can just put "@limit_rate" above the definition of a function and all references to that function will be transparently redirected through the decorator. Ruby may have something similar.

The "*args, **kwargs" bit is what a "varargs" (variable argument list) function looks like in Python. Again, Ruby presumably has something similar. Basically it allows you to pass arguments between functions without actually caring what they are, and to work with functions that can accept an arbitrary number of arguments (print/printf are common examples of this). *args is a list (tuple in Python) of arguments, and **kwargs is a dictionary of arguments that were supplied by keyword.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

lord funk posted:

- If someone did want to contribute, how does that work? Like, do you get a notification that someone wants to push to the project?

The usual way on GitHub is that they'll make a fork of your project, commit changes to that fork, and then submit a pull request to your project with those changes. Then you get a trouble-ticket-like system where you can talk about the changes, examine the file diffs, suggest alterations, and when you're happy you hit the accept button and the commits are added to your project.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
My favorite endianness story was decoding the images from a scientific camera. The (grayscale) pixel values had 12 bits of depth and were encoded into 16 bits, with the following structure:
code:
high 8 bits | low 4 bits, high 4 bits | low 8 bits | high 8 bits | etc.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

ufarn posted:

As part of a CI test, I need to run a bash script that does something along the lines of:

npm runserver && stopserver

What's the best way to this idiomatically with bash/Travis CI since you can't && an on-going process?

I don't think you can. && only makes sense when the first program you invoke has a return code, so the boolean logic can evaluate it. You could invoke npm as a backgrounded program:

code:
npm runserver& stopserver
But that of course would always run stopserver even if runserver failed for some reason, and could also run stopserver before runserver was "up and running".

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Personally I prefer to be explicit instead of relying on implicit typecasting, if only because typecasting has a tendency to change from one language to the next. This is probably not a big deal for ints (are there any languages where all non-null ints are true?) but can definitely catch you out for strings, lists, etc.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Fergus Mac Roich posted:

Not looking for specific advice, but:
How detailed is your(as in you, the reader) planning process before you start building an application, other than understanding the requirements for the application? Do you map out specific classes or functions? Do you create a document or sketch/take notes? I understand that different types and scales of applications will have different answers. I am interested in this topic with respect to all kinds of applications.

I will generally conceptually map out the different classes involved and how they interact with each other. I don't find UML or similar "graphical" sketches to be useful though; I just write up a few pages saying "here's this class, it has these important functions with the following assumptions/guarantees". Then I'll walk through at least a few of the known use cases (or "user stories") and show how the system would implement/solve them.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Eela6 posted:

Why do people dislike MATLAB so much? A poll on stackoverflow had it as one of the most-disliked languages, but I've always enjoyed working with it. Am I crazy?

(Note: I'm a mathematician first, programmer second, and I work in Image Processing, so my work is all linear algebra, all the time. I am thus working in MATLAB's comfort zone.)

Matlab is a fantastic tool for doing research. It's a weird tool for doing more traditional software development. It behaves like basically no other language, which means that if you're a software developer who has to drop into Matlab for some task and you don't have much (or any) familiarity with it, you're going to be continually surprised by its design decisions. This includes things like:

  • 1-based indexing into arrays
  • Using [], (), and {} differently from basically every other language (in particular, using () for indexing operations)
  • Having a gigantic internal library of standard functions, none of which are named the way they "usually" would be (e.g. using "disp" instead of "print")
  • Commands that don't end in semicolons are valid...which means you can't split a command across multiple lines (without using the "..." operator), but whitespace is otherwise insignificant

There may be some larger structural issues with Matlab that you'd run into if you tried to make a larger project; I wouldn't know since I thankfully never had to do anything more than basic scripting. But the bottom line is, it's very uncomfortable for someone who is used to a C-like language or the commonly-used scripting languages to drop into Matlab. Nothing works the way it's expected to. It's very much a piece of "outsider art", developed independently of the last 30-odd years' worth of traditional software language evolution.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

pmchem posted:

Some of the examples you gave are language design decisions made by Fortran, which is and was used by huge part of the MATLAB user base. Engineers. it's not out of the blue.

Okay, fair enough. The underlying point though is that a lot of the people you're going to find on places like StackOverflow are not "Matlab developers" or more generally part of the Matlab user base. They're developers in other non-Matlab-like languages who may have to drop into Matlab for the occasional task. Thus they find Matlab weird and different, and don't like it.

I mean, this is a subjective question, so I listed some of the things that people are subjectively going to disagree with, not because they're bad ideas (usually), just because they're different. I do think the semicolon thing is dumb though.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Munkeymon posted:

There is/was a blog that was just a collection of "oh god gently caress Matlab" posts I got linked to here years ago, but I guess I didn't bookmark it. That's probably got some good examples because the guy clearly both knew Matlab really well and hated its living guts.

This was the first result for googling for "gently caress matlab", and it's got some pretty :magical: entries.

EDIT: ...though on deeper reading a lot of this is just complaining about code that doesn't work, which isn't very interesting.

TooMuchAbstraction fucked around with this message at 20:10 on Apr 26, 2016

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Xerophyte posted:

Nothing ever really dies on the internet: http://archive.is/abandonmatlab.wordpress.com

Oy gevalt. My favorite so far is that you can't make a linked list with more than 500 elements, or else you'll hit the recursion limit when the list is freed...and then in a later version of Matlab they doubled up on the recursion so the new limit was 250 elements.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Agreed with the Python recommendation. All of the scientific Python software I've written has used scipy, which is a superset of numpy. numpy is basically your vector math library (and it gives you the detailed datatype control you need); on top of that scipy provides a ton of algorithms that work with those vectors (FFTs, Simplex methods, linear regressions, all kinds of statistics, etc.), as well as matplotlib (a fairly capable plotting library), and a few other things I never had reason to work extensively with.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

22 Eargesplitten posted:

I'm doing some research on unit testing, and I'm seeing a lot of people talking about how good TDD is. Is it universally accepted as the way to go, or is it another one of the things that people argue over, like most things I ask about?

It's one of those things people argue about. It definitely can help make your development more rigorous (not to mention help ensure that you have unit tests), but it requires a certain mentality of development where you can know that the tests and the spec and what is actually needed are all in agreement. Which can be hard to achieve in many software shops.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Regexes are an incredibly powerful tool for string manipulation, searching, and extraction. They are consequently the "correct" way to do pretty much anything more complicated than "is this substring in this string", "take the first/last N characters of this string", and "split this string into tokens based on this delimiter".

It's worth your time to learn to use regexes, just like it's worth your time to learn to use databases, write functional code, write unit tests, etc. Even if they aren't a tool you use often, knowing that they're available and being able to recognize what they can do can/will save you a ton of time.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
That's just functions as first-class objects (or "first-class functions"). I guess using that specifically for an object constructor is like having an extremely bare-bones factory.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
...vim?

You can also execute commands via ssh directly, so e.g.

quote:

ssh user@host 'run command/to/very/long/path'
That way the command history (including the long path) is local and you don't have to re-type it each time you reconnect to the remote computer.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Kiryen posted:

I got the community edition - a CD came with the book. I did not know it was popular though; I had been under the impression it was looked-down-upon for some reason.

Not sure why you'd think that. Visual Studio is basically the standard development environment for C/C++/C# on Windows. There are certainly others but they're not nearly as widely used.

quote:

I could not figure out how to eliminate total_hours as a global variable though, since it needs to be updated along with the credits that the input_hours function passes back. Is there a way to make a function return more than one result? Would using pointers be a good way to do this?

To get multiple return values in C++, you need to put the extra return values into the parameter list for the function, and pass them by reference or by pointer, yes. A common pattern for this is for the function's return value to always be an error code (indicating if something went wrong), and any additional return values are passed by reference, like so:

code:
int myFunc(int param1, double param2, int& ret1, std::string& ret2) {
  if (1 == 0) {
    // Math is broken, world is ending.
    return 17;
  }
  ret1 = 42;
  ret2 = "Hello, world!";
  return 0;
}
And you would call that function like this:

code:
int error, response;
std::string message;
error = myFunc(3, 24.1, response, message);
if (error) {
  std::cerr << "Error calling myFunc: " << error << std::endl;
}

quote:

Also, it was mentioned to use "for"; I imagine in place of "while". What is the reason that "for" is preferable?

It's a legibility thing. Always use the loop construct that best describes what you are doing. You typically use "while" for situations where you may loop indefinitely. If your loop has defined limit conditions (as yours does -- you're looping from 0 to 12) then you should use the for loop so those conditions are readily visible to anyone reading your code.

TooMuchAbstraction fucked around with this message at 19:20 on May 20, 2016

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

JawKnee posted:

Semi-related to this, I'm wondering about the best way to utilize Try-Catch blocks in such a way that if an operation throws an exception, the operation can be retried. Is it bad form to declare a variable outside the Try-Catch block's scope indicating either a boolean success/fail outcome or a simple counter if you want to limit the number of retries to a hard amount - and then put the whole block inside a loop?

I'd just make a loop (either a "while (true)" or a "for int numAttempts = 0; numAttempts < MAX_RETRIES; ++numAttempts)", and break out of the loop on success. For example:

code:
while (true) {
  try {
    somethingThatFails();
    break;
  }
  catch (Exception e) {
    // Try again
  }
}

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

weird posted:

it took it over a decade to support c99 at all and it still doesn't support all of it

And people are still writing code against Python 2 and Perl 5 and Fortran 90. I mean, I'd hope for better from Microsoft, but I can't say I'm really surprised either.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Keep in mind that movement of the cursor onscreen depends on how quickly the mouse moves. If I move my mouse very slowly, I can cover a foot or two in the time it takes the cursor to traverse the screen; conversely, if I give the mouse a rapid twitch, then I can cross the entire screen in an inch of real-world distance. This depends on your mouse sensitivity settings, but I've no idea how those actually work, whether they're linear or exponential or whatever.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I haven't done any investigation, but everything I'd heard was "Python 3 is an improvement over Python 2, but there's still major third-party libraries that aren't available in 3 yet so everyone's still writing against 2", and it's been like that for years. Albeit, presumably the number of major libraries that aren't available in Python 3 has been slowly decreasing.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
You want Python? Look into Django. It's pretty easy to set up and has all the bells and whistles you'd expect from a modern web framework. Database-wise you can get started using SQLite in like two lines of config, and easily transfer your schemas (if not necessarily your data) to more appropriate databases once you're ready. Like, switching from SQLite to an Amazon S3 PostGresQL database should just be a matter of changing your Django configuration.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

22 Eargesplitten posted:

As far as object oriented style goes, if I'm creating an event queue, should I create an event queue class, and then create an instance of it to use in the class where I want to implement it? Or should I just put it in the class where it's implemented? I'm pretty sure I'll only need it in that one place, but I feel like it would be tidier to give the queue its own class.

It really depends on how complicated the logic surrounding the event queue itself is. If you just need a dumb FIFO queue then there's no need to dress it up with a class (beyond whatever your language of choice already provides for queues, anyway), but if you're going to need a lot of special behaviors relating specifically to the queue (and not to the class the queue is in) then it makes more sense to make it its own class.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I have no idea how you'd go about answering that question "correctly", but my answer would be "I'd try different thread counts and see what their resource utilization is like." I strongly suspect that any numbers you come up with would be heavily reliant on the specifics of the hardware you're running on (not to mention your definition of "maximizing performance"). Maybe for bonus points I could take a stab at trying to have the program automatically figure out what its thread count should be by monitoring usage metrics on the machine at runtime.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
There's approximately a million different options for running servers. Personally I would avoid PHP because I think the language is badly-designed (I mean, it's the language equivalent of that game you've been hacking on for four years and never rewritten from scratch), but if it works for you then it works so :shrug:

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

baby puzzle posted:

I wonder what people like to use for GUIs with c++? The Windows poo poo all has the worst api that I have ever seen in my life. I looked at qt as well but I don't want to use a different ide after decades of VS.

What do you mean, different IDE? Just write code that produces your dialogs. It's not hard*. You don't have to use GUI designers to make GUIs, especially for something as simple as what you're talking about.

* Disclaimer: I haven't used Qt in years, and then only in Python, but still, the Python wrapper was pretty thin as I recall.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
Yeah...is anyone here actually considering helping this guy? I don't want to encourage ticket scalping!

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
You could set up a quadtree to do spatial partitioning of the items in the map, and select your maximum tree depth based on the current zoom level. You'd still need to have logic to decide which item in a given quad gets displayed, though. And you could potentially have issues if two items are close to the borders of their quads.

EDIT: though that issue could be ameliorated by pushing items towards the centers of their quads. It's less representative, of course, but may not be a problem depending on your use case.

TooMuchAbstraction fucked around with this message at 22:19 on Jun 14, 2016

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
If there's Javascript on the page that needs to be executed, then you may be able to write a script or plugin for a browser that does what you need to do. That'd be the route I'd investigate first (with the grain of salt that I haven't done web-dev in the better part of a decade).

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Winty posted:

Will the 60fps file be almost exactly twice as big as the 30fps file?

I'm not an expert on these matters, but no, it won't be, because the full frames aren't encoded raw into the file -- as you surmised, the file is compressed so that it doesn't need to store everything. If you were to download the raw form of one of those 24-hour-long YouTube "videos" that's just a blank screen with the Enterprise engine noise on repeat, you'd get a single frame of video and the audio track and that's it.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Nippashish posted:

There are <6000 possible ways to arrange 7 letters into a word. I'm having a hard time thinking of a way you could do this that would not be fast enough for interactive use, so just do whatever seems convenient.

26^7 = 8031810176 :confused:

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

ultrafilter posted:

There could be fewer than 6000 valid Scrabble words.

code:
cat /usr/share/dict/words | grep -E "^.......$" | wc -l
23869
It wouldn't surprise me if not all of those were valid Scrabble words, but I very much doubt that 75% of them are invalid.

EDIT:

quote:

The identities of the characters are fixed, so you only need to check permutations of them. 7! + 6! + 5! + 4! + 3! + 2! = 5912, or just under 6000.

This however does make more sense. If you're handed a set of 7 letters then there's a much more limited number of ways to arrange them.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

it is posted:

Why isn't this a basic operation? Why are the pixels on the screen something with a million different paths to get to? Why isn't grabbing the pixels something you just, like, can do without thinking about it? Why is "show me these pixels" different enough from "show me the value of x" that it requires a whole bunch of setup and teardown?

Keep in mind that the screen data (that is, the color of each pixel) doesn't really exist anywhere except at the very end of the graphics rendering pipeline. The OS sends structured data to the graphics card (stuff like "this rectangle here has these drawing commands and transformations applied to it" repeated once for each window or widget you can see), and the graphics card has a very highly-optimized pipeline...for applying those commands and transformations and blitting the results to the screen. Graphics cards were not really made to send data back to the host computer. Getting them to do that thus requires some trickery, hence the hoops you have to jump through.

(This is incidentally one reason why using graphics cards to perform highly-parallelized vector operations in scientific research took a little while to get up and running: the lack of good mechanisms for cards to output data anywhere but to a display)

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Munkeymon posted:

Is there a name for the sorting algorithm that just takes a function to extract a value from each element in a list rather than one that takes an actual comparison function? I'm pretty much talking about the difference between the way sorted works in Python 2 and 3. I see why the key function approach is more efficient, but it can be a lot more annoying to figure out a good key function than to slap together a comparison function that does exactly what I want when working in a language without cmp_to_key

Not that I'm aware of, because it's not a change in the sorting algorithm per se, just in how that algorithm accesses the data it needs for performing comparisons. Presumably they use the same logic for which elements to compare and how to shuffle them around, under the hood; the key-based approach is just able to make use of caches (and minimize function calls) because it knows that its comparison function is consistent.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I'm not sure I fully understand the problem, but in general what you're looking to do is invert the transformation that you have. Can you share the algorithm that you want to reverse?

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe
I kind of feel like Java ought to be mentioned as a strongly-typed language that's still used all over the loving place, but it's definitely not a sexy new language any more (if it ever was).

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

jiggerypokery posted:

If a recruiter asks you if you have "Exposure to software development utilising rational databases such as Oracle/MySQL" do you correct them or do you roll with it and say you are more familiar with irrational databases, but find rational ones more reasonable?

They wouldn't get the joke, so why bother making it? Recruiters are not software developers; they're just handed a set of buzzwords to look for. A "rational" database totally sounds like a plausible thing if you aren't familiar with the jargon.

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

AARO posted:

Which thread would be correct to post about an issue with a site running on Wordpress with Godaddy hosting?

Crappy Construction Tales? :v:

Adbot
ADBOT LOVES YOU

TooMuchAbstraction
Oct 14, 2012

I spent four years making
Waves of Steel
Hell yes I'm going to turn my avatar into an ad for it.
Fun Shoe

Eeyo posted:

Is there any kind of general strategy to minimize computation time for large expressions with many parts?

I don't think this is something that realistically you're going to be able to improve on compared to what the compiler does. Compilers are really smart these days (usually). Your best bet to improve performance is to try to do less math, not to do the math differently.

(Of course, that's a lot harder...)

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