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
galenanorth
May 19, 2016

They told me that whether I need a Home Occupation License would depend on how much money the business makes. I said "I have no idea" and they said they needed an estimate but redirected me toward a customer service desk for public works which connects to a bunch of permit offices, since I'd need a permit if I'm working from home, before I could answer. In all likelihood, yes, I need a permit for working at home even working from a computer, since they didn't have a favorable reaction when I told them the business essentially sells data in spreadsheet form. It's really annoying and I'd wish I'd known I'd need apartment manager permission at the outset

Adbot
ADBOT LOVES YOU

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE

Aramoro posted:

Only if you choose to use HQL, queries are not string in general for the last maybe 10-11 years? If you're using an statement mapper then you're already writing pseudo-sql.

Terrible Programmer : I need to 'see' the SQL getting run to ensure it's correct, I just don't trust it!

Also Terrible Programmer : *use a SQL query builder and statement mapper*
I don't seem to have made the difference between a query builder and an ORM clear. A query builder has an API that maps very closely to SQL statements - the goal is to manipulate a SQL AST. It's a metaprogramming tool, focused on generating programs (queries). An ORM on the other hand has an API that focuses on abstracting away the SQL in favor of an API that focuses on models and their relationships. It's a mostly declarative data modeling tool, based on the assumption that if you describe the models (tables) and the relationship between them then it's straightforward to generate a fairly limited set of functions to traverse those relationships. This assumption obviously does not hold, and in fact breaks down pretty much as soon as you see a many-to-many relationship. You end up restricted to an incredibly small subset of SQL - the forms that the ORM knows how to translate into simple model relationships.

I've used both and the ORM style is extremely limiting while not really making things any easier than the query builder style. Most query builders also come with things like model classes and that sort of thing too. Like, seriously, if your SQL toolkit can't even represent a semi-join without falling all over itself, it's loving useless. Even Django lets you do that, although it's awkward and I really wish I could have a real query builder instead of their janky poo poo.

HoboMan
Nov 4, 2010

me, a terrible programmer, after doing a few months of making a poo poo react app and now learning the absolute basics of angular: "theres actually zero difference between react & angular. you imbeciles. you loving morons"

akadajet
Sep 14, 2003

HoboMan posted:

me, a terrible programmer, after doing a few months of making a poo poo react app and now learning the absolute basics of angular: "theres actually zero difference between react & angular. you imbeciles. you loving morons"

react is weirder

Gallatin
Sep 20, 2004

akadajet posted:

react is weirder

the talent deficit
Dec 20, 2003

self-deprecation is a very british trait, and problems can arise when the british attempt to do so with a foreign culture





eschaton posted:

at least one of the advantages of a good ORM is that it can enforce constraints at both the database and application level by letting them be specified in one place

this never works in practice because some rear end in a top hat writes a script to directly update or insert rows

your db constraints should be exactly as strict (or stricter) than your application constraints

pseudorandom
Jun 16, 2010



Yam Slacker

TheFluff posted:

I don't seem to have made the difference between a query builder and an ORM clear. A query builder has an API that maps very closely to SQL statements - the goal is to manipulate a SQL AST. It's a metaprogramming tool, focused on generating programs (queries). An ORM on the other hand has an API that focuses on abstracting away the SQL in favor of an API that focuses on models and their relationships. It's a mostly declarative data modeling tool, based on the assumption that if you describe the models (tables) and the relationship between them then it's straightforward to generate a fairly limited set of functions to traverse those relationships. This assumption obviously does not hold, and in fact breaks down pretty much as soon as you see a many-to-many relationship. You end up restricted to an incredibly small subset of SQL - the forms that the ORM knows how to translate into simple model relationships.

I've used both and the ORM style is extremely limiting while not really making things any easier than the query builder style. Most query builders also come with things like model classes and that sort of thing too. Like, seriously, if your SQL toolkit can't even represent a semi-join without falling all over itself, it's loving useless. Even Django lets you do that, although it's awkward and I really wish I could have a real query builder instead of their janky poo poo.


This is a better way of stating what I edited out in my previous post.

I have never worked with an actual ORM, only a query builder (Diesel)--based on me now understanding the difference as explained in this quote--all of my career experience has been writing raw SQL. With this limited experience, a query builder really only makes sense to me in a strictly typed language where it can enforce types and objects/structures. An ORM seems limiting in all cases I can imagine (especially in loosely typed languages), and a query builder seems like a more complex and limiting way to write SQL but with possible benefits from language-level constraints. Per my previous comment, maybe I haven't worked on a large enough team or enterprise-y enough project to understand the offers of these tools.

distortion park
Apr 25, 2011


galenanorth posted:

They told me that whether I need a Home Occupation License would depend on how much money the business makes. I said "I have no idea" and they said they needed an estimate but redirected me toward a customer service desk for public works which connects to a bunch of permit offices, since I'd need a permit if I'm working from home, before I could answer. In all likelihood, yes, I need a permit for working at home even working from a computer, since they didn't have a favorable reaction when I told them the business essentially sells data in spreadsheet form. It's really annoying and I'd wish I'd known I'd need apartment manager permission at the outset

That's hosed up.

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.

MononcQc posted:

if you can’t replace a resource’s storage from a database to a remote service without changing all the loving application logic everywhere then you hosed up your isolation and abstraction layers and you gotta go back and rethink that interface

the view or controllers in an app should have no loving clue whether you’re using an ORM or not for the data model or handling. if you do, congratulations you’ve built everything on top of a leaky abstraction.

go sit in a corner and think about what you’ve done

this

DELETE CASCADE posted:

the object-relational impedance mismatch isn't a real thing, just write the drat sql (using a query builder obvs not raw strings)

https://twitter.com/dril/status/181225396694560769

JawnV6
Jul 4, 2004

So hot ...
feels like i share this all the time but i worked with perl that talked to SQL and the folks had pulled out every last perl trick e.g. undef $\ so a s// op would slurp the entire file in one shot, just horrific

but the real masterpiece was
AND = "AND"
OR = "OR "

when i took over i deleted the space after OR on a lark, which broke everything because it would always append some operation then chop()chop()chop() it off if it was the last, so their lengths being equal was a critical component of the whole thing

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

JawnV6 posted:

feels like i share this all the time but i worked with perl that talked to SQL and the folks had pulled out every last perl trick e.g. undef $\ so a s// op would slurp the entire file in one shot, just horrific

but the real masterpiece was
AND = "AND"
OR = "OR "

when i took over i deleted the space after OR on a lark, which broke everything because it would always append some operation then chop()chop()chop() it off if it was the last, so their lengths being equal was a critical component of the whole thing

lmao that's perl af

Captain Foo
May 11, 2004

we vibin'
we slidin'
we breathin'
we dyin'

JawnV6 posted:

feels like i share this all the time but i worked with perl that talked to SQL and the folks had pulled out every last perl trick e.g. undef $\ so a s// op would slurp the entire file in one shot, just horrific

but the real masterpiece was
AND = "AND"
OR = "OR "

when i took over i deleted the space after OR on a lark, which broke everything because it would always append some operation then chop()chop()chop() it off if it was the last, so their lengths being equal was a critical component of the whole thing

Holy $_it

Corla Plankun
May 8, 2007

improve the lives of everyone

JawnV6 posted:

when i took over i deleted the space after OR on a lark, which broke everything because it would always append some operation then chop()chop()chop() it off if it was the last, so their lengths being equal was a critical component of the whole thing
lmfao i remember switching to python and thinking it was the best poo poo ever that .join() existed so i didnt have to janitor endings anymore

DaTroof
Nov 16, 2000

CC LIMERICK CONTEST GRAND CHAMPION
There once was a poster named Troof
Who was getting quite long in the toof

Corla Plankun posted:

lmfao i remember switching to python and thinking it was the best poo poo ever that .join() existed so i didnt have to janitor endings anymore

uhh

Feisty-Cadaver
Jun 1, 2000
The worms crawl in,
The worms crawl out.
perl is a write once, never read sort of language

though a million years ago I did use a perl package to talk to us robotics modems and send pages to staff (when pagers were still a thing)

edit: and the source was kinda mostly readable, so good jerb random internet guy who wrote it

Feisty-Cadaver fucked around with this message at 02:35 on Apr 12, 2019

Soricidus
Oct 21, 2010
freedom-hating statist shill
the only difference between perl and python is that bad perl is written by graybeard sysadmins while bad python is written by scientists. they’re equally unreadable and equally unmaintainable

Feisty-Cadaver
Jun 1, 2000
The worms crawl in,
The worms crawl out.
I am literally right now trying to understand a pile of python written by a tech artist and it’s not a fun happy time.

a critical part of the asset pipeline so of course there’s no tests at all

PierreTheMime
Dec 9, 2004

Hero of hormagaunts everywhere!
Buglord
one of our teams built an api-driven service, wrote dozens of python scripts and configs for it and then immediately forgot about documenting the endpoints or the service itself. they’ve been using these scripts to manually manage data files and processing. none of the scripts have error handling and every failure just results in a splunk log id in the response json someone manually goes to read and handle over lengthy periods

I’d been asked to automate their process, but was immediately told that their funding had ended and they were unable to modify or help at all, so the only way I can decouple the service from their pile of poo poo is to dive into it and tease out everything I needed. it’s been an experience

gonadic io
Feb 16, 2011

>>=

PierreTheMime posted:

one of our teams built an api-driven service, wrote dozens of python scripts and configs for it and then immediately forgot about documenting the endpoints or the service itself. they’ve been using these scripts to manually manage data files and processing. none of the scripts have error handling and every failure just results in a splunk log id in the response json someone manually goes to read and handle over lengthy periods

I’d been asked to automate their process, but was immediately told that their funding had ended and they were unable to modify or help at all, so the only way I can decouple the service from their pile of poo poo is to dive into it and tease out everything I needed. it’s been an experience

Be glad it's Python and not, say, a c++ binary

Aramoro
Jun 1, 2012




gonadic io posted:

Be glad it's Python and not, say, a c++ binary

We have a service which is critical for deploying our SaaS customers. It was all written in C# by someone who left the company, someone else wrote something in LUa that interacts with it, they also left. We have no documentation for either part and no one else really knows C# or LUA. We just sorta cross our fingers and hope it continues to do whatever it is that it does.

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE
c tp s: just discovered the saml2 single sign on integration that exactly one customer uses (or doesn't use, as it would seem) doesn't actually work and probably hasn't worked in a very long time

Sagacity
May 2, 2003
Hopefully my epitaph will be funnier than my custom title.
three years ago: it is _imperative_ that this feature is added because otherwise the customer will _not_ sign their _very large contract_

(read receipt requested, red exclamation point added to e-mail)

Shaggar
Apr 26, 2006

PierreTheMime posted:

one of our teams built an api-driven service, wrote dozens of python scripts and configs for it and then immediately forgot about documenting the endpoints or the service itself. they’ve been using these scripts to manually manage data files and processing. none of the scripts have error handling and every failure just results in a splunk log id in the response json someone manually goes to read and handle over lengthy periods

I’d been asked to automate their process, but was immediately told that their funding had ended and they were unable to modify or help at all, so the only way I can decouple the service from their pile of poo poo is to dive into it and tease out everything I needed. it’s been an experience

if its etl stuff just rewrite it all in ssis

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE

Sagacity posted:

three years ago: it is _imperative_ that this feature is added because otherwise the customer will _not_ sign their _very large contract_

(read receipt requested, red exclamation point added to e-mail)

i wasn't around when it was added but according to eyewitness accounts this is more or less exactly how it went down

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE
it also seems like what happened is that they disabled it on their end without telling us about it - we never noticed it was broken even though there is the occasional attempt to use it, because what happens is that the user clicks log in, gets taken to the customer's sso login page and hit with some error message about this application not being authorized or something along those lines. from our perspective the user just leaves our application.

TheFluff fucked around with this message at 14:42 on Apr 12, 2019

Shaggar
Apr 26, 2006
if the idp is saying it doesn't recognize the service provider (your application) you should check:
That the sso server admins didn't blow away your service provider configuration (this is called relying party in adfs)
that the service provider is sending the correct entity/realm identifier OR that its sending the correct reply url.

Aramoro
Jun 1, 2012




TheFluff posted:

c tp s: just discovered the saml2 single sign on integration that exactly one customer uses (or doesn't use, as it would seem) doesn't actually work and probably hasn't worked in a very long time

Our biggest SAML problem is that customers continually gently caress up their ADFS and then wonder why it doesn't work. I would saying 90+% of the time it's the customers config issue. The other 10% is us breaking something trying to support a customers broken config that they won't change.

Like the one customer we had using SSO that wanted certain things to require authorisation, and make the user verify their identity against ADFS, except it was SSO...so. That was a pain to implement and more of a pain to explain to the customer how they had to setup their ADFS to make it work.

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I had a horrible idea and decided to try to get objective c working on my n64

I got it to build and link against the gnu runtime but couldn’t figure out how to initialize it since I’m using a nonstandard crt0 and none of the generated objc constructors got called. It just crashes trying to look up a class the first time I send a message lol

Arcsech
Aug 5, 2008

Aramoro posted:

Our biggest problem is that customers continually gently caress up and then wonder why it doesn't work.

ftfy

seriously tho usually this indicates a usability problem but in this case saml is the usability problem

Arcsech fucked around with this message at 16:07 on Apr 12, 2019

Shaggar
Apr 26, 2006
people confuse sso and federation because adfs can do both. they assume adfs will be easy because ad is easy and don't understand federation requires application support and sso requires proper domain configuration.

PierreTheMime
Dec 9, 2004

Hero of hormagaunts everywhere!
Buglord

Shaggar posted:

if its etl stuff just rewrite it all in ssis

i wish, it's a "hey let's reinvent the wheel and inhouse our etl and visualization code but not document it or communicate it properly." we do plenty of licensed stuff which is simple enough, this is the same but worse in every aspect

Zlodo
Nov 25, 2006

Luigi Thirty posted:

I had a horrible idea and decided to try to get objective c working on my n64

I got it to build and link against the gnu runtime but couldn’t figure out how to initialize it since I’m using a nonstandard crt0 and none of the generated objc constructors got called. It just crashes trying to look up a class the first time I send a message lol

maybe they work like the c++ global constructors, which are just function pointers stored in a section called .ctor and you just call them all in a loop?

I had to do something like this way back then on a PlayStation game (we needed to make a build for a sony demo compilation disc but for some reason I forgot I had to tweak the crt0 to add this)

prisoner of waffles
May 8, 2007

Ah! well a-day! what evil looks
Had I from old and young!
Instead of the cross, the fishmech
About my neck was hung.

Luigi Thirty posted:

I had a horrible idea and decided to try to get objective c working on my n64

I got it to build and link against the gnu runtime but couldn’t figure out how to initialize it since I’m using a nonstandard crt0 and none of the generated objc constructors got called. It just crashes trying to look up a class the first time I send a message lol

i love every one of luigi's horrible ideas. next step is clearly to get your n64 running a server with an objective-c based web framework

TheFluff
Dec 13, 2006

FRIENDS, LISTEN TO ME
I AM A SEAGULL
OF WEALTH AND TASTE

Shaggar posted:

if the idp is saying it doesn't recognize the service provider (your application) you should check:
That the sso server admins didn't blow away your service provider configuration (this is called relying party in adfs)
that the service provider is sending the correct entity/realm identifier OR that its sending the correct reply url.

I just received confirmation from the account manager that we can go ahead and remove support for it instead :getin:

It's not adfs either, btw, I think it's shibboleth. it's a very special snowflake thing, we have tons of customers using oauth

TheFluff fucked around with this message at 16:58 on Apr 12, 2019

Aramoro
Jun 1, 2012




TheFluff posted:

It's not adfs either, btw, I think it's shibboleth

We've got exactly 1 customer using Shibboleth they're just the worst.

Not as bad as our single Websphere customer, they have a test environment they use to test all the releases on Wildfly but move everything to Websphere for production. An absolutely baffling workflow, and one that means we need to go on Websphere training courses whenever they release a new version.

Private Speech
Mar 30, 2011

I HAVE EVEN MORE WORTHLESS BEANIE BABIES IN MY COLLECTION THAN I HAVE WORTHLESS POSTS IN THE BEANIE BABY THREAD YET I STILL HAVE THE TEMERITY TO CRITICIZE OTHERS' COLLECTIONS

IF YOU SEE ME TALKING ABOUT BEANIE BABIES, PLEASE TELL ME TO

EAT. SHIT.


prisoner of waffles posted:

i love every one of luigi's horrible ideas. next step is clearly to get your n64 running a server with an objective-c based web framework

I once spent two months improving a J2ME emulator running in PPSSPP (PSP emu).

It was the best J2ME emulator I found and it did sortof help me run some old phone games on x86 :shobon:

Luigi Thirty
Apr 30, 2006

Emergency confection port.

prisoner of waffles posted:

i love every one of luigi's horrible ideas. next step is clearly to get your n64 running a server with an objective-c based web framework

doc block convinced me that even if I don’t have a full runtime I can still write my own objc_msgSend and add object orientation features where they will do the most good since obj-c is effectively just bolted onto ansi c

I actually did find an embedded objective c framework targeting nintendo handhelds but not the n64

Carthag Tuek
Oct 15, 2005

Tider skal komme,
tider skal henrulle,
slægt skal følge slægters gang



Luigi Thirty posted:

doc block convinced me that even if I don’t have a full runtime I can still write my own objc_msgSend and add object orientation features where they will do the most good since obj-c is effectively just bolted onto ansi c

I actually did find an embedded objective c framework targeting nintendo handhelds but not the n64

:aaaaa:

ps idk if you know mike ash's blog but hes got a ton of great entries about the internals of the objc runtime (lately he's writing about swift but just go back a bit, its not high frequency):
https://www.mikeash.com/pyblog/?tag=fridayqna

e: https://www.mikeash.com/pyblog/friday-qa-2012-11-16-lets-build-objc_msgsend.html

Beamed
Nov 26, 2010

Then you have a responsibility that no man has ever faced. You have your fear which could become reality, and you have Godzilla, which is reality.


Luigi Thirty posted:

doc block convinced me that even if I don’t have a full runtime I can still write my own objc_msgSend and add object orientation features where they will do the most good since obj-c is effectively just bolted onto ansi c

I actually did find an embedded objective c framework targeting nintendo handhelds but not the n64

L..link?!

Adbot
ADBOT LOVES YOU

Luigi Thirty
Apr 30, 2006

Emergency confection port.

uh... I got the GNU runtime working, this is quite possibly the most cursed thing I have ever made



Beamed posted:

L..link?!

https://github.com/ObjFW/ObjFW

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