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
Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
Ah yes, Powershell. They're at version 4.0 now and you still can't recursively delete directories. Or, well, it may work sometimes.

Adbot
ADBOT LOVES YOU

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
To be fair, it doesn't really matter if poo poo programmers forget to handle the exception or not check the error code.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
I'm assuming if you don't handle the error and try to do something with the file it'll also crash?

I do agree with you I'd probably enjoy a FileNotFoundException more than a random 'segmentation fault' but then I never understood why people would want to use Go anyway. Who needs a debugger, am I right?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
I <3 Qt, mostly.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Wheany posted:

anybody here used vaadin?

is it any good?
It's a nice way to enable non-Javascript hipsters in your company to poo poo out passable UIs. It has the usual drawbacks of these types of systems though, like huge session objects, making the tweaking of styling and layout much harder, etc.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
Apologies, operator precedence problems. I meant: non-"Javascript hipsters". So, yes, Java. For us regular beardless folks.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

KARMA! posted:

I wonder what dhh thinks of this

prob. "this is great!!"
he'll just rewrite his fancy todo-list application every three years so he don't care

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

fleshweasel posted:

who the gently caress actually uses dynamic in c# lol
i wonder the same thing

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Suspicious Dish posted:

now do image thumbnailing and document normalization
so you do that afterwards, without needing to handle the enormously time-consuming encoding task yourself

and for that you just use rabbitmq which round-robins messages in a queue to N consumers whereby the N can vary dynamically

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Blotto Skorzany posted:

you install it and then run the command. i think it already comes installed on most distros anyways

95% of my company posted:

what's a "distro"?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Suspicious Dish posted:

Wrote another article about computer.

http://magcius.github.io/xplain/article/regions.html

Please bash it to bits.
This is really interesting. One thing:

Dat article posted:

You might imagine that the region below has two bands, but our "overlapping" rule means that it must have three.
Doesn't it show four bands, though?

Edit: Ah no, a band can consist of multiple rectangles. Welp. Looks like what used to be called span buffers, or s-buffers, back in the late 90's :)

Edit 2: This is an absolutely *delicious* series of articles so if recognition is the only thing you need to continue you are hereby recognized, sir!

Sagacity fucked around with this message at 13:55 on Nov 18, 2015

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
want to use libraries like sdl or opengl in go?

just use this simple workaround!
https://github.com/golang/go/wiki/LockOSThread

code:
Russ Cox presented a good solution for this problem in this thread.

package sdl

// Arrange that main.main runs on main thread.
func init() {
    runtime.LockOSThread()
}

// Main runs the main SDL service loop.
// The binary's main.main must call sdl.Main() to run this loop.
// Main does not return. If the binary needs to do other work, it
// must do it in separate goroutines.
func Main() {
    for f := range mainfunc {
        f()
    }
}

// queue of work to run in main thread.
var mainfunc = make(chan func())

// do runs f on the main thread.
func do(f func()) {
    done := make(chan bool, 1)
    mainfunc <- func() {
        f()
        done <- true
    }
    <-done
}
And then other functions you write in package sdl can be like

func Beep() {
    do(func() {
        // whatever must run in main thread
    })
}
More gold here: http://features.slashdot.org/story/15/11/18/1748247/interviews-alan-donovan-and-brian-kernighan-answer-your-questions

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

crazypenguin posted:

I don't even like them in personal projects. Macros are the worst decision language designers can make.

It's also the single biggest thing I'm disappointed with Rust about.
Macros are pretty awesome in the same way that complicated #define's are awesome in C. And if they break the error messages are god-awful.

Thankfully C++ fixed the reliance on defines by introducing the wonderfully elegant world of templates. Now, if THEY break the error messages are...well, let's add concepts to the language to improve the error messages, etc. *rabbit hole sprung*

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Soricidus posted:

looked at it briefly a while ago and it didn't seem to offer enough over java8 + judicious lombok to justify learning a new language that nobody else uses
same here, but i found that if you rely on lombok for magic and it gives you slightly different magic than you need (i.e. if you want nested builders, which it doesn't really support) then you end up with delomboked code that looks nasty, whereas with kotlin it'd just be...well, the same kotlin code you already had

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
so it is too difficult to look in two places at once, but if you want vertical centering you just need to nest three div's together with a bunch of bogus styles which is completely intuitive i guess, idk

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
i'm glad css hipsters are now using tables again, so the rest of us don't have to feel bad about it

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Bert Bos @ W3C posted:


Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
right, is shaggar

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
in the meantime just use intellij and add ".var" at the end of your "new Object()" code and see the "final Object o = new Object()" magically appear

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
isn't it marked private

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Cybernetic Vermin posted:

nice race condition, that'll be a fun bug in production 5 years on
:cmon: use immutable objects

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Bloody posted:

go is Garbage
to be fair it collects its own garbage

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
they say scala lets you write really terse, elegant code

yet they don't mention that it takes you a long time to take your algorithm and whittle it down to those 6 unicode characters
and every time you need to look at that code again in the future you will have to spend the same amount of time figuring out what it's doing

and again

and again

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

leper khan posted:

mono is good
that is incorrect

i assume you've never tried to run a big c# server app in production on mono, on linux? (and if you haven't, don't worry, you have made the right choice there)

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
Or still use c++ perhaps?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
so insomniac games just published a postmortem of their choice to use a plang for their game editor tools.

they decided (in 2010) to build their next-gen editor in javascript, with a chrome plugin to render the actual 3d. it's a really interesting read -- they're not going forward with that technology.

340,000 Javascript LOC, ~1,000 files

their opinion of js:

insomniac posted:

● So much pain – a toy language that is still growing up
● undefined is not a function
● Silently breaking other parts of the codebase
● Renaming a function = super high risk
● Adding a parameter? Good luck!
● Relying on grep or IDE searching to fix up references often fails
● Add quick fixes on top and you’ve got a nightmare

their experience with v8:

insomnmiac posted:

Browser crashed in production, randomly
Debugger crashed trying to debug it

they tried using jstree to render some tree views:

insomniac posted:

I would think that performance with a mere 1,000 nodes should be
unnoticeable. However, on my i7 machine with 12 GB ram, it takes
almost a minute and a half in Chrome to drag and drop those 1,000
nodes somewhere else in the tree

nodejs:

insomniac posted:

After light use we lug around 90 MB of deps
● 8,500 files

...i could go on, but you should probably read it for yourselves

their major conclusion though:

insomniac posted:

Lesson: JS needs more rigor than C++, not less
● Suspect this is true in any dynamically typed ecosystem

they've now gone back to C++, using Qt

Sagacity fucked around with this message at 21:21 on Mar 3, 2017

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
cbm basic v2 :smug:

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
I really like the rust community as well but if this had happened in exactly the same way in the nodejs community you would've been all over it

Otoh it would have probably generated a GitHub issue with 600 +1 reactions

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
There's an actual plang now!

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
Well, hot on the heels of Microsoft's plang announcement Martin Odersky has some good ideas for improving Scala as well. God bless.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
open your IDEs

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Symbolic Butt posted:

you have to create other microservices to keep those databases synced :psyduck:
if you need to keep two databases in sync you shouldn't have split that functionality in two services, dog

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
a train of thought i had at work:

* i notice that a lot of api's in our company have a ton of optional fields
* we have a six-month deprecation notice on api breakage
* instead of wanting to modify their api in a breaking way, people seem to just randomly add new fields then
* this sucks

others have noticed that as well and are proposing we move to kafka and store service's events there. in itself this is fine, but they seem to think this will solve versioning problems as well.

but wouldn't it just be:

* a team starts sending OrderCreated messages to a kafka topic (or stream or whatever it's called, idk)
* they want to change their message
* they either need to create a message-v2 stream, somehow backfill it, and instruct everyone to switch over
* or, they'll just add an optional field to their existing message

seems like they'd choose the latter. it sucks, but it also makes sense that that would be a team's choice, since it's lowest friction for them.

now if it were up to me i'd just make sure you don't need to keep old api's around and part of breaking your own api is that you have to go into other services and fix the integration, which could be fairly straightforward to do. but let's assume this is an organization where that's not possible...how do you handle a scenario like this?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
But at some point you reach a tipping point where most of your properties are optional?

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

gonadic io posted:

documentation
ahahahaha

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
seriously though, tooling around api's in general is pretty poor. like, there used to be swagger and raml and perhaps some others. raml got shot and now we just have swagger which is renamed to openapi.

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. this is not maintainable at all. their openapi parser has a compatibility mode for 'old style v2 swagger' but it doesn't actually parse it correctly.

and all of this doesn't actually take into account any kind of async api's, so don't expect to provide any documentation about message queues or topics your service may publish

sigh

then there's lots of people in google groups talking about api documentation and tooling, but they're all off in la-la land talking about HATEOAS vs HAL and other hypermedia nonsense nobody cares about

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
thanks, we're doing Java, so I ended up building something using the swagger-parser library and javapoet to generate source code. not too hard to do and it's working fairly well so far.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.

Shinku ABOOKEN posted:

i created a virtual dom for swing using kotlin but then i got bored and lost interest
I did the same for Qt, to diff two trees and automatically create/update a QAbstractItemModel based off of that. It was a pain to get right, but once implemented it allows you to plug in any tree 'for free' and the GUI will just work.

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
what always amazes me is that there is, for better or worse, a lot of discussion about things like swagger, raml, etc to provide decent tooling for rest apis.

none of these things have an inkling about asynchronous communication at all. want to use message queues to reliably communicate with other (micro)services? better not want anything documented!

Adbot
ADBOT LOVES YOU

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
shagger and oracle can't BOTH be wrong

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