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
NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Gazpacho posted:

How do you tell a co-worker to write a loop instead of copypasting a block 20 times without sounding rude

Every morning before he gets to work remove the Ctrl, C, and V keys from his keyboard. Keep doing this until he gets the hint.

Adbot
ADBOT LOVES YOU

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

I've heard many people speak praise of modern FreePascal and the Lazarus ide in particular, never actually checked it out myself but I'm kinda curious. Supposedly it's quite good at cross platform GUI development

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

I read somewhere about a famous 20th century mathematician who was so shy that an equally notable colleague, upon dropping by his place to visit, found him hiding in the fridge out of pure social anxiety at having a visitor.

I remember the anecdote as being about Gödel, but I can't find him being described as noticeably shy (rather the opposite) so either I misremember or the book was bullshit.

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Powaqoatse posted:

this seems like a bad idea

wouldn't it just amount to "write a dsl that compiles to standard regexes"? not particularly dangerous imo

kinda narrow in appeal because most people who want to write regexes will have had to learn standard syntax anyway (same reason alternative syntaxes for SQL never caught up). but i could see some uses like eg enabling static type checking

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Powaqoatse posted:

just seems like yet another way to make your code unreadable

I mean what gain could ever justify that?

like i said, static type checking is one that comes to mind. have the compiler guarantee that your regex is actually valid is a pretty big deal. not coincidentally it's pretty much the only defensible reason for people bother with stuff like LINQ-to-SQL and other such leaky abstractions instead of writing straight SQL

now, that doesn't necessarily require an alternative syntax, but having one (a la VerbalExpressions) means you can implement it as a simple library instead of requiring the compiler to explicitly interact with a regex parser. (you also get autocomplete support and become readable to people who don't speak regex, but like I said I doubt that's a significant audience)

or, if you have fancier tools like dependent typing or type providers, you can also have the compiler automatically infer your regex captures at compile time, which is real neat

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

my work firewall is either too stupid or too wise:

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Cybernetic Vermin posted:

uh, i apologize, i must have missed it, legit point me to this part of the discussion

Just backtrack until you find it.

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

jony neuemonic posted:

i still don't understand why they didn't just work on fixing mono.

indirectly, they did. from what I've heard, mono 5.x (which was released after and with a lot of code contributions from lolnetcore) is a lot more stable than 4.x

and mono now has a webassembly compiler in alpha, which is way more interesting to me than any mild refactoring of aspnet and entity framework

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

also paket solves practically every problem that nuget has. always use it for anything non-trivial.

i don't know of any tool that similarly fixes the horror of msbuild though. there are a few interesting projects but none are close to production ready. best you can do is keep your msbuild project files as small and simple as possible (admittedly here the netcore guys actually did well, by making the new project files actually manageable) and offload anything beyond basic compilation to your language-agnostic tools of choice.

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

redleader posted:

what makes paket better than nuget?

for starters, if you add some packages to your project, then share that project with other people, when those people build the project they will always get the exact same package versions you used. this is not guaranteed with nuget

second, if you install a big package that has a lot of other dependencies, paket will keep separate track of the package you actually wanted and the ones that that package merely brought in, for the purpose of updating etc. (nuget actually fixed this with nuget 3, not sure if it survived the death of project.json though)

other benefits: the files are human readable, it can reference direct source files, it can temporarily override dependencies with local versions for testing purposes, it can create conditional references based on the framework you're targeting, it can create load scripts which are super useful for quick testing, it can easily manage packages for a whole solution at once while keeping separate references for each project

so as for your question "what makes a good package manager", it basically boils down to two things:

- don't do unexpected stuff
- don't waste the user's time
- (optional) let the user reference more things

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

MALE SHOEGAZE posted:

i've repeatedly broached the idea of consolidating the databases because there's just no reason to have them split up but "this would result in coupling" so it's never going to happen.

you should have replied "with your face, fat chance"

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

quote:

code quality of everything related to swagger is...well -- swagger-codegen is touted as the way to go for generating clients that consume a rest api. it's literally just a Map<String, String> that goes into some kind of mustache (or w/e) template.

if you're on .net you'll have much better luck with NSwag (c#), or SwaggerProvider (f#)

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

this reminds me of how John Carmack wanted to use Haskell as a scripting language for id's game designers but had to settle for Lua

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Soricidus posted:

is virtual dom different from frp, or is this just the usual javascript thing of “take existing pl thing and give it our own name to make it sound like we invented it”

they have nothing to do with each other. e.g. early versions of elm had a virtual dom + frp, later versions moved on to virtual dom sans frp

virtual dom is:

regular dom: I click a button labelled. some code (which may or many not be frp) notices that I clicked a button, changes the properties of the object representing the button, then redraws the button

virtual dom: I click a button. some code (which may or many not be frp) notices that I clicked a button, changes the properties of the object representing the entire page, then calls a library that figures out which parts of the new page need redrawing

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Max Facetime posted:

yeah you definitely should not learn the single PL capable of accommodating every other PL

instead you should learn one of those other PLs

call me selfish but I'd rather be blood type ab+ than o-

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

gonadic io posted:

honestly all I want out of a language is
- pattern matching,
- a type system with generics and decent type classes,
- lambdas,
- locals are immutable my default
- maybe not a GIL

scala has most of those (type classes aren't amazing), but has so much extra poo poo on top.

rust has all of those, but also really pushes far out with the borrow checker. rust where everything is Arced, or swift, or kotlin seem to be my preferred langs then in terms of design

well once you put type classes in your requirements your list shrinks down pretty much to haskell and its derivatives (purescript, idris), scala, rust and various super niche languages.

you may or may not count ocaml (you can implement typeclasses through the module system, with few limitations), but it gets disqualified by the GIL requirements anyway. f# multithreads just fine but its statically resolved type parameters are the shittiest form of type classes imaginable and weren't really meant for general usage at all, they're pretty much just there to implement (+) and (-).

so once you discard scala and rust i guess you're left holding the short end of the io monad?

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Sapozhnik posted:

i'd be a lot more hyped for f# if it wasn't shackled to the .net ecosystem because it is just so goddamn bad

i follow p closely and occasionally contribute to f# tooling. i've noticed that the core group of contributors, including the bdfl don syme, are all really enthusiastic about fable (the third and most recent f#-to-js compiler), to the point that new language features are being weighted against whether they will support better js compilation and integration with platforms like react native

imo it's clearly a long-term move to give f# a foothold / escape hatch separate from the .net world, most likely since the recent shakeups in the latter (the roslyn compiler rewrite, .net core) were all done with ms violently ignoring anything except their core "c# and asp.net mvc with entity framework on azure" business target, to the point that visual studio 2017 originally shipped with completely broken f# support

also between elm, wasm and facebook's weird reasonml thing there seems to be a growing interest in non-poo poo-language-to-js compilers, and on that field the f#/fable stack is pretty well positioned b/c of code reuse between frontend and backend and also its ability to consume typescript definitions to get typed bindings to a lot of the js ecosystem for free

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

redleader posted:

[screaming internally]

why, do you enjoy writing every input validation rule twice?

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

gonadic io posted:

now imagine writing a concurrent web app in it

lol n00b git gud

NihilCredo fucked around with this message at 18:39 on Dec 21, 2017

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

raminasi posted:

i'm the security checks done during parsing

wait, this is js, i might actually exist

reminder that windows defender has a process running with root privileges that evals every single piece of javascript that enters your computer just in case it might do something malicious

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

feedmegin posted:

Which of course is not the same thing as 'the driver' :shobon:

something something close to the metal

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Blinkz0rz posted:

this discussion is hilarious

in the amount of time it's taken to noodle through what wasm actually is and is not everyone itt probably could just learn how to write javascript well

write a distributed map/reduce function in erlang

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

there are valid reasons to choose compiling a good language to wasm over writing javascript, and there are valid reasons to choose writing javascript over compiling to wasm

i do not know, however, of any valid reason to choose compiling to wasm over compiling to javascript, at least in december 2017 and for serious production systems. js compilers have their warts and abstraction leaks but even the most experimental ones are battle-tested tanks compared to wasm prototypes

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Blinkz0rz posted:

javascript really isn't that bad a language.

JavaScript (/ˈdʒɑːvəˌskrɪpt/[6]), often abbreviated as JS, is a high-level, dynamic, weakly typed, prototype-based, multi-paradigm, and interpreted programming language.

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

carry on then posted:

are there any languages in production use that have or at least support keywords in various languages?

excel

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

redleader posted:

i was hella pro-soap until i realised how many people handcraft their soap envelopes even in languages with excellent soap support (java, c#)

at least with rest you know that everyone creates their own bespoke clients so you have no expectations about reliable interop

I've once had to do that when a regional health care service had a broken wsdl that visual studio refused to chew for some reason

fortunately it was just a couple of calls so it wasn't too bad. and i got a chance to combine both of visual basic's best-kept secrets, xml literals and iterator lambdas

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Sweeper posted:

I can’t believe you guys are suggesting putting a queue in a db

do any dedicated queues offer acid guarantees?

'cause the trouble is, i actually care about my data, so i put it in a db. if my data was social network spyware likes or mobile game high scores maybe i'd be more cavalier about losing a message here and there i guess

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

my favourite part about amazon sqs is the amazon techies completely dodging my questions re: 'is there any issue with only sporadically reading & purging a queue b/c your amazon rep keeps telling us the queue is clogged and we should purge it due to like 1k messages tops'

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

eschaton posted:

you can end your question right there

they’re probably been told answering an explicit “is there an issue” question can incur some sort of liability

try rephrasing your question to not imply they may be at fault for something

thanks for the tip

my actual phrasing was roughly: "1) is there a recommended usage pattern for querying and purging a sqs (eg "please purge it at least once a minute") and 2) what sort of things might happen if we deviate from such a pattern?"

relevant, we didn't set up the queue for ourselves, we were working with a service for amazon merchants

NihilCredo fucked around with this message at 23:02 on Mar 21, 2018

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

tef posted:

um so yes

the persistant

durable

replicated

queue

that one

the one we're using

how can we purge it every minute

yeah that was pretty much my reaction too the first time it happened

well, no, it was 'surely i must have made some really amateurish mistake in reading the docs, it must have been spelled out somewhere that it needs to be purged'

i really wish i could show you the emails from the yoga-enthusiast amazon business manager repeatedly begging us 'uhm, the queue hasn't been purged for 3 days and it's causing us ~~~problems~~~, can you pleeease clean it?'

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

jony neuemonic posted:

what exactly is go’s appeal, again?

- no runtime
- cross-platform
- easy for cheap morons to learn
- made by google so obviously the best thing ever and suitable for literally all use cases everywhere

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

quote:

Rob Pike is like Henry Ford, except when people said “faster horses” he said “that is the best idea I’ve ever heard.”

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Fiedler posted:

Having to type the close parens is too much effort, please make it optional.

code:

=
  x
  *
    +
      y
      1
    12

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

qhat posted:

Gonna lol when everyone's nodejs bindings spontaneously stop building because of its retarded requirement on python 2.7 and no higher.

i'm the scripting language with multiple build systems more complicated than most tax codes

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

tef posted:

um so yes

the persistant

durable

replicated

queue

that one

the one we're using

how can we purge it every minute

NihilCredo posted:

yeah that was pretty much my reaction too the first time it happened

well, no, it was 'surely i must have made some really amateurish mistake in reading the docs, it must have been spelled out somewhere that it needs to be purged'

i really wish i could show you the emails from the yoga-enthusiast amazon business manager repeatedly begging us 'uhm, the queue hasn't been purged for 3 days and it's causing us ~~~problems~~~, can you pleeease clean it?'

so i finally got a response from a techie at amazon on this

"oh, sure, amazon® sqs® is awesome and can totally hold your messages forever! but the way _we_ , the amazon® prime®now® team, use it, we assume you consume our messages as soon as they are sent and immediately delete them! so please do that, kthx!"

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt


that guy is both underestimating and also three years late

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

c tp s: new intern started working this week. he was the first guy to see my current project's f# codebase so I'd spend the previous few days cleaning it up, adding comments, and most importantly replacing some of the fancier tricks i used with more verbose but simpler code

turns out he's a haskell turbonerd who goes on nerdgasma talking about catamorphisms and quasiquotations :hellyeah: git reverted immediately and brought back all the srtp goodness

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

does anybody have / remember the full quote that the thread title is made from

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

Plorkyeran posted:

with the itamium approach to exceptions they have zero runtime overhead when not thrown which owns for errors which should never happen, but they add nontrivial size bloat and are mind-bogglingly slow when they do happen, so they're unsuitable for things like "try this operation which has a good chance of failing and report why it failed if so"

that's the correct approach to exceptions

Adbot
ADBOT LOVES YOU

NihilCredo
Jun 6, 2011

iram omni possibili modo preme:
plus una illa te diffamabit, quam multæ virtutes commendabunt

let me remind you that extremism in the defense of type safety is no vice, and moderation in the pursuit of performance is no virtue - barry siliconwater

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