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.
 
  • Locked thread
Shaggar
Apr 26, 2006
also if you don't understand why xml is good and why maven uses xml and why its use of xml is very very good then you are not a good programmer and should rethink some things.

Adbot
ADBOT LOVES YOU

Luigi Thirty
Apr 30, 2006

Emergency confection port.

also holy poo poo 3 of you nerds subscribed to my patreon

thanks!! as a manic depressive wack job who craves acceptance it means a lot

aardvaard
Mar 4, 2013

you belong in the bog of eternal stench

hey luigi i want to do some homebrew for a 3d console before second to last gen. what one do you think is the best choice.

NihilCredo
Jun 6, 2011

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

Shaggar posted:

having to write any form of build script is a total failure

msbuild .proj files are barely capable of successfully compiling assemblies. anything beyond that is cheese-grater-to-the-balls painful. something as trivial as "please spit out multiple different versions of this project with different options" requires you to abuse how the $DependsOn property works. more advanced tasks are science fiction. and figuring out what exactly went wrong in your custom build target usually involves a binary search of comment-and-reload-project.

it's a barebones project system moonlighting very, very poorly as a build tool through a colossal amount of hacks. i'll take a type-checked, interactively debuggable build script in the same .net language that the program itself uses over that poo poo any day, tyvm

or do you happen to have a .net maven you've been holding out on us?

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison
merging csproj files is especially hellish

jony neuemonic
Nov 13, 2009

uncurable mlady posted:

merging csproj files is especially hellish

should be less of an issue with the new reduced csproj format.

unfortunately, the rest of .net core.

Deep Dish Fuckfest
Sep 6, 2006

Advanced
Computer Touching


Toilet Rascal
loving hell this just reminded me of the time i was tasked with going through the 20+ projects part of a solution targeting 4 platforms (or more for some projects) and 4 configs, and to "homogenize" the build settings so we knew what the gently caress was getting built

then i had the bright idea of changing the name of the x64 platform to Win64 so it would be consistent while i was doing that garbage, only to realize that in whatever version of vs we were using "x64" was a special magical name and naming the platform that targeted 64 bit windows anything else would cause msbuild to not do its loving job and choke and die. so i had to revert all that garbage

i'm gonna need more gin now

NihilCredo
Jun 6, 2011

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

jony neuemonic posted:

should be less of an issue with the new reduced csproj format.

unfortunately, the rest of .net core.

https://forums.somethingawful.com/showthread.php?threadid=2803713&pagenumber=990&perpage=40#post471349366

Shaggar
Apr 26, 2006

NihilCredo posted:

msbuild .proj files are barely capable of successfully compiling assemblies. anything beyond that is cheese-grater-to-the-balls painful. something as trivial as "please spit out multiple different versions of this project with different options" requires you to abuse how the $DependsOn property works. more advanced tasks are science fiction. and figuring out what exactly went wrong in your custom build target usually involves a binary search of comment-and-reload-project.

it's a barebones project system moonlighting very, very poorly as a build tool through a colossal amount of hacks. i'll take a type-checked, interactively debuggable build script in the same .net language that the program itself uses over that poo poo any day, tyvm

or do you happen to have a .net maven you've been holding out on us?

msbuild is a build script system and that's why it sucks

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
mongo is by far the worst technology ive ever worked with

Luigi Thirty
Apr 30, 2006

Emergency confection port.

CommunistPancake posted:

hey luigi i want to do some homebrew for a 3d console before second to last gen. what one do you think is the best choice.

There's a big Dreamcast homebrew scene since it had no copy protection

last I heard someone was porting the quake 3 engine and using it as a base for a homebrew 3D engine

Mao Zedong Thot
Oct 16, 2008


uncurable mlady posted:

swarm isn't too shabby but i feel like you run up against limitations really quickly and it's very opinionated about everything in a way that k8s isn't. once you get over the initial info dump on k8s tho, i find it makes a lot of sense.

except petsets/statefulsets, i haven't quite wrapped my head around that but i also don't really care

statefulsets are just for things that are programmed by idiot assholes and obsessed with identity

like if you have some jabber server that absolutely needs to be known as jabberButt1 to itself, and to everything else, no matter what -- use a statefulset

here's the cheat sheet for 2017 production:
containers are good -- if you treat them as a building block of prod infrastructure, instead of a dev hack that somehow ends up in prod
docker is total rubbish, written by little rubbish elves rolling around in piles of rubbish with little smears of rubbish on their filthy little rubbish faces
kubernetes is good (even if you let it use docker internally, you prooooobably won't have too many problems)
never use a docker project other than actual docker docker, and try not to use that if you can manage

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

VOTE YES ON 69 posted:

statefulsets are just for things that are programmed by idiot assholes and obsessed with identity

like if you have some jabber server that absolutely needs to be known as jabberButt1 to itself, and to everything else, no matter what -- use a statefulset

here's the cheat sheet for 2017 production:
containers are good -- if you treat them as a building block of prod infrastructure, instead of a dev hack that somehow ends up in prod
docker is total rubbish, written by little rubbish elves rolling around in piles of rubbish with little smears of rubbish on their filthy little rubbish faces
kubernetes is good (even if you let it use docker internally, you prooooobably won't have too many problems)
never use a docker project other than actual docker docker, and try not to use that if you can manage

im still beside myself that they're charging $750 for the fuckin privilege of running docker on rhel now

how the _fuck_

Doom Mathematic
Sep 2, 2008
There are non-Docker containers? Tell me more.

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder
i dont care about mongo being eventually consistent. i dont care about security issues. just forget all of that.

mongo is bad because the fundamental method of modeling data is bad. this is by far the smallest schema i've ever dealt with, and it's far and away the most confusing. denormalization is lovely on the brain. wild denormalization in the hands of irresponsible/rushed/stupid developers is incomprehensible.

you can have a terrible data model in sql as well, but mongo makes it so much easier to gently caress your data forever.


code your website in php or ruby or whatever. it doesn't matter. just don't use mongo.

jony neuemonic
Nov 13, 2009


it's especially disappointing because the development experience is really coming together, but it's just not dependable enough for production.

oh well, more reason to keep digging into elixir.

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

MALE SHOEGAZE posted:

mongo is by far the worst technology ive ever worked with

it really is the worst isn't it

in other news I'm trying monetdb and it seems alright. now I want to see how it compares to postgresql for some of my poo poo

necrotic
Aug 2, 2005
I owe my brother big time for this!

Doom Mathematic posted:

There are non-Docker containers? Tell me more.

Docker is basically a management interface to Linux containers which have existed for a while but only recently gained popularity (due in part to docker marketing).

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder

uncurable mlady posted:

im still beside myself that they're charging $750 for the fuckin privilege of running docker on rhel now

how the _fuck_

i worked in proximity to this and let me tell you:

lol. just lol

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

Doom Mathematic posted:

There are non-Docker containers? Tell me more.

rkt from coreos is the only thing that's vaguely similar in terms of user-friendliness and feature set but there's options. if you want to make OCI compliant (which ostensibly everyone _should_ support) containers you can use runc. https://github.com/opencontainers/runc

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

MALE SHOEGAZE posted:

i worked in proximity to this and let me tell you:

lol. just lol

that's a development license price too

great

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

jony neuemonic posted:

it's especially disappointing because the development experience is really coming together, but it's just not dependable enough for production.

oh well, more reason to keep digging into elixir.

yeah, I've had a good time with Elixir thus far, errors aren't too esoteric, immutability is great, Ecto (database interface + validation library) is great, setting JSON encodings with structs is great, kicking off non critical tasks on non blocking processes is trivial, and I'm sure when I need non trivial process management it'll be good to go too.

it's a functional lang with the impracticality stripped away, it has its faults and I'm sure I'll discover more as I learn it more, but building up a new web application in it has been a largely pleasant experience.

Mao Zedong Thot
Oct 16, 2008


necrotic posted:

Docker is basically a management interface to Linux containers which have existed for a while but only recently gained popularity (due in part to docker marketing).

yeah, this

containers have been around a long time, just people called them different things (zones, jails, namespaces), and they werent cool until docker showed up. docker is absolutely due credit for popularizing containers, but it's bad software written by cowboy hacks (unfortunately everyone uses docker anyway).

rkt is probably the future One Day Soon (tm)

jony neuemonic
Nov 13, 2009

Maluco Marinero posted:

yeah, I've had a good time with Elixir thus far, errors aren't too esoteric, immutability is great, Ecto (database interface + validation library) is great, setting JSON encodings with structs is great, kicking off non critical tasks on non blocking processes is trivial, and I'm sure when I need non trivial process management it'll be good to go too.

it's a functional lang with the impracticality stripped away, it has its faults and I'm sure I'll discover more as I learn it more, but building up a new web application in it has been a largely pleasant experience.

i've been enjoying it. it's nice that phoenix 1.3 uses the same structure out of the box that i usually set up for my asp.net apps (folder per feature, controllers that do nothing but grab a request and move it along to your actual application, etc.)

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

jony neuemonic posted:

i've been enjoying it. it's nice that phoenix 1.3 uses the same structure out of the box that i usually set up for my asp.net apps (folder per feature, controllers that do nothing but grab a request and move it along to your actual application, etc.)

yeah, the first thing I did when looking into it was try to undo 1.2s technology based folder layout, which worked but then 1.3's rc came out with feature folders. honestly it's a real good sign in my mind that the authors aren't aping rails just because, even if a bit of that heritage shines through it's hard for them to commit the worst of rails sin's given modules are mostly just bags of functions at the end of the day.

kitten emergency
Jan 13, 2008

get meow this wack-ass crystal prison

VOTE YES ON 69 posted:

yeah, this

containers have been around a long time, just people called them different things (zones, jails, namespaces), and they werent cool until docker showed up. docker is absolutely due credit for popularizing containers, but it's bad software written by cowboy hacks (unfortunately everyone uses docker anyway).

rkt is probably the future One Day Soon (tm)

rkt has been the future Real Soon Now for a long time. it's easy to make a container, it's hard to make a usable one. docker rightly gets poo poo on for making things worse (although I feel the last few releases have been slightly better since the swarm clusterfuck) but you still basically need container orchestration to get around the fact that containerd just up and dies or can't delete images or some fuckin weird poo poo every few weeks

jony neuemonic
Nov 13, 2009

Maluco Marinero posted:

yeah, the first thing I did when looking into it was try to undo 1.2s technology based folder layout, which worked but then 1.3's rc came out with feature folders. honestly it's a real good sign in my mind that the authors aren't aping rails just because, even if a bit of that heritage shines through it's hard for them to commit the worst of rails sin's given modules are mostly just bags of functions at the end of the day.

it does seem like they know the exact things to lift from rails vs. what to leave behind. even the macro-based stuff isn't too magical from what i've seen.

fritz
Jul 26, 2003

NihilCredo posted:

msbuild .proj files are barely capable of successfully compiling assemblies. anything beyond that is cheese-grater-to-the-balls painful. something as trivial as "please spit out multiple different versions of this project with different options" requires you to abuse how the $DependsOn property works. more advanced tasks are science fiction. and figuring out what exactly went wrong in your custom build target usually involves a binary search of comment-and-reload-project.

it's a barebones project system moonlighting very, very poorly as a build tool through a colossal amount of hacks. i'll take a type-checked, interactively debuggable build script in the same .net language that the program itself uses over that poo poo any day, tyvm

or do you happen to have a .net maven you've been holding out on us?

msbuild is good enough for us only because we can target it with cmake

Luigi Thirty
Apr 30, 2006

Emergency confection port.

as a dyslexic but with numbers i have spent way too long today staring at this block of junk to figure out how to do it but in reverse to turn an array of pixels into planar graphics

code:
 for (int tileNum = 0; tileNum < 512; tileNum++)
            {
                for (int y = 0; y < 8; y++)
                {
                    //Index into the buffer of the pixel we're setting. Each pixel is 4 bits.
                    int outputBufferOffset = ((tileNum / 16) * (STRIDE * 8)) + ((tileNum % 16) * 4) + (STRIDE * y);

                    buffer[outputBufferOffset + 3] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 7) ? 1 : 0) << 0);
                    buffer[outputBufferOffset + 3] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 7) ? 1 : 0) << 1);
                    buffer[outputBufferOffset + 3] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 7) ? 1 : 0) << 2);
                    buffer[outputBufferOffset + 3] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 7) ? 1 : 0) << 3);

                    buffer[outputBufferOffset + 3] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 6) ? 1 : 0) << 4);
                    buffer[outputBufferOffset + 3] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 6) ? 1 : 0) << 5);
                    buffer[outputBufferOffset + 3] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 6) ? 1 : 0) << 6);
                    buffer[outputBufferOffset + 3] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 6) ? 1 : 0) << 7);

                    buffer[outputBufferOffset + 2] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 5) ? 1 : 0) << 0);
                    buffer[outputBufferOffset + 2] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 5) ? 1 : 0) << 1);
                    buffer[outputBufferOffset + 2] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 5) ? 1 : 0) << 2);
                    buffer[outputBufferOffset + 2] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 5) ? 1 : 0) << 3);

                    buffer[outputBufferOffset + 2] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 4) ? 1 : 0) << 4);
                    buffer[outputBufferOffset + 2] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 4) ? 1 : 0) << 5);
                    buffer[outputBufferOffset + 2] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 4) ? 1 : 0) << 6);
                    buffer[outputBufferOffset + 2] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 4) ? 1 : 0) << 7);

                    buffer[outputBufferOffset + 1] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 3) ? 1 : 0) << 0);
                    buffer[outputBufferOffset + 1] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 3) ? 1 : 0) << 1);
                    buffer[outputBufferOffset + 1] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 3) ? 1 : 0) << 2);
                    buffer[outputBufferOffset + 1] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 3) ? 1 : 0) << 3);

                    buffer[outputBufferOffset + 1] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 2) ? 1 : 0) << 4);
                    buffer[outputBufferOffset + 1] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 2) ? 1 : 0) << 5);
                    buffer[outputBufferOffset + 1] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 2) ? 1 : 0) << 6);
                    buffer[outputBufferOffset + 1] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 2) ? 1 : 0) << 7);

                    buffer[outputBufferOffset + 0] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 1) ? 1 : 0) << 0);
                    buffer[outputBufferOffset + 0] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 1) ? 1 : 0) << 1);
                    buffer[outputBufferOffset + 0] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 1) ? 1 : 0) << 2);
                    buffer[outputBufferOffset + 0] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 1) ? 1 : 0) << 3);

                    buffer[outputBufferOffset + 0] |= (byte)((plane0[(tileNum * 8) + y].IsBitSet(7 - 0) ? 1 : 0) << 4);
                    buffer[outputBufferOffset + 0] |= (byte)((plane1[(tileNum * 8) + y].IsBitSet(7 - 0) ? 1 : 0) << 5);
                    buffer[outputBufferOffset + 0] |= (byte)((plane2[(tileNum * 8) + y].IsBitSet(7 - 0) ? 1 : 0) << 6);
                    buffer[outputBufferOffset + 0] |= (byte)((plane3[(tileNum * 8) + y].IsBitSet(7 - 0) ? 1 : 0) << 7);
                }
            }
my eyes fell off of it and so started writing a program for the sound CPU instead

GameCube
Nov 21, 2006

current terrible programmer status: tfw u look something up on stack overflow and find that you've already upvoted the answer

Gul Banana
Nov 28, 2003

if you're having .net core memory leaks you should complain about it on github or twitter. they have a bunch of people who care about that sort of thing now + want their project to at least look good
try @terrajobst or @damianedwards

GameCube
Nov 21, 2006

im doin a thing for a high school javascript programming class so i thought i'd port one of my dumb python things to javascript to show them how to do cool poo poo with APIs and omg javascript is so bad. like i'm doing poo poo with the spotify api and yeah a nodejs wrapper exists but i still have to go look up the endpoint docs to see what kind of response to expect, and then just hope that i don't mistype some json key because i won't find out until runtime. ugh

Elysiume
Aug 13, 2009

Alone, she fights.
I did javascript at a recent hackathon and I always forget how annoying it is to write, because I write it in like twice a year

gonadic io
Feb 16, 2011

>>=
My favourite thing about js is how you gotta pass all of your imports inside a lambda to everything. And how normalised it is - "oh yeah minimisers gently caress with your code in really weird ways so you gotta bend over backwards to not get hosed too bad"

Or maybe that's only angular idk

Bloody
Mar 3, 2013

this thread has -1 unread posts

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.
that's angular. they did things like literally read the function body text to determine what dependencies to inject into your things. (so minifying obviously breaks that functionality unless you declare the dependencies with an array of strings and THEN provide the function)

people don't really do things the Angular 1 way anymore if they're writing new projects.

aardvaard
Mar 4, 2013

you belong in the bog of eternal stench

GameCube posted:

im doin a thing for a high school javascript programming class so i thought i'd port one of my dumb python things to javascript to show them how to do cool poo poo with APIs and omg javascript is so bad. like i'm doing poo poo with the spotify api and yeah a nodejs wrapper exists but i still have to go look up the endpoint docs to see what kind of response to expect, and then just hope that i don't mistype some json key because i won't find out until runtime. ugh

spotify... api?

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

CommunistPancake posted:

hey luigi i want to do some homebrew for a 3d console before second to last gen. what one do you think is the best choice.

"before second to last gen" so like PS1/Saturn/N64 generation?

eschaton
Mar 7, 2007

Don't you just hate when you wind up in a store with people who are in a socioeconomic class that is pretty obviously about two levels lower than your own?

MALE SHOEGAZE posted:

mongo is bad because the fundamental method of modeling data is bad. this is by far the smallest schema i've ever dealt with, and it's far and away the most confusing. denormalization is lovely on the brain. wild denormalization in the hands of irresponsible/rushed/stupid developers is incomprehensible.

this is why I was reduced to sputtering when someone told me he didn't want to use an ORM or anything resembling one because he'd be locked into a formal schema and have to deal with migration from one schema to another and that just wasn't agile enough, man

so he hacked together a ton of intricate bespoke build time code generation (in his favorite language of the month, of course) along with generated custom data migrations, which in the end was for frankly a quite trivial data model that should have taken him at most a couple days to nail down

the real reason they did it that way was that having a well-designed relational model and a couple of schema migrations as they learned things during implementation wasn't fun or interesting enough for his big brain, and writing tons of code generation code was

Adbot
ADBOT LOVES YOU

gonadic io
Feb 16, 2011

>>=

Maluco Marinero posted:


people don't really do things the Angular 1 way anymore if they're writing new projects.

I beg to differ

  • Locked thread