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
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?

Luigi Thirty posted:

oh my god my new goal is to get a Spectre GCR

it's a cartridge that plugs into your atari and with the help of a set of Mac Plus ROMs it can run system 6 on an 8MHz ST AND includes a GCR <-> MFM translator that lets a stock Atari disk drive read 800K Mac disks

I know a couple people with the Spectrum hardware, people without the GCR model had to do weird things to talk Macs into formatting disks as 720KB MFM with HFS and copy software onto them

of course the cracks for the Spectrum software that let you use it with ROM images were very popular as well

there were also a couple equivalents for Amiga, but I think the Amiga drives could at least read and write Mac disks

Adbot
ADBOT LOVES YOU

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?

tef posted:

then you get to "EDSLS"

all the power of a library, except without being able to interoperate with other code, or, using a familiar syntax

unless you're talking about implementing DSLs with macros in Common Lisp or Scheme of course

Soricidus
Oct 21, 2010
freedom-hating statist shill
gradle would've been fine it it was just maven with nicer syntax

instead, it is:
• a convoluted dsl based on a language nobody uses or understands
• a great way to end up with a build system that's more complex than your business logic
• hot garbage

it's really bad

java optionals are too little too late. they don't do much to help because the main source of problematic nulls is other people's code, which doesn't use optionals. they also manage to have an even more cumbersome syntax than @Nonnull which is quite a feat!

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


HoboMan posted:

lol same with the strings

what is you mean by OUTPUT? because I know of no alternate to using a DataTable

You can specify the parameter direction in c# as .output and then in the proc itself have the matching parameter as an output (@fart bool OUTPUT in the proc declarations), when you execute the value of that var in the proc will be returned to the c# object

it is way neater than using a data table for one value and it also means you can reuse the proc in other procs as you can pass variables to and from procs in sql but can't easily take a table output from a proc as input into another proc

you do have to cast the parameter.value explicitly to its type in c# though as sql doesn't return a defined type automatically because it's stupid

edit: you can actually make a parameter an input and an output, i guess to confuse the poo poo out of everyone that has to work out why @Butt both returns and accepts values

Powerful Two-Hander fucked around with this message at 09:40 on Oct 6, 2016

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
@ExitOnly Butt

redleader
Aug 18, 2005

Engage according to operational parameters

HoboMan posted:

can someone recommend a book on SQL development? like optimizing queries, best practices, how to think about reads and writes? everything i've seen looks like it's for someone who doesn't even know what an RDBMS is. (i am working on SQL server 2014)

if you wanna huff database performance farts, check out this site which goes into pretty deep detail on db indexes. it's database-agnostic in that it covers all of the major dbs, and points out implementation quirks/weirdnesses and terminology differences. also available in book form

as sql server in particular gets your rocks off, you'll at some point need to dig into some execution plans. pick up this and read through it over a few days/weeks/months. note that execution plans are obtuse as gently caress and difficult to figure out, especially if you only need to look at them occasionally

red gate actually publish a buttload of sql server (and related) ebooks, so you could have a browse and see if anything interests you there

SET STATISTICS IO, TIME ON and execution plans are your sql server perfect troubleshooting bread and butter

special mention goes to sql sentry plan explorer, which is a much nicer and more powerful tool for reading/interpreting execution plans

general advice: watch out when writing functions in join conditions/WHERE clauses - this can easily turn a quick index seek into a full table scan, and can happen easily if you're not looking. an annoying variant on this is the 'surprise! your column data types don't match and there's now an implicit conversion running on every row in the table!'

also try to simplify your queries, by rewriting or by breaking an operation up into multiple queries using temp tables (WITH clauses and views don't count!). simpler queries are easier for the query optimizer to work on and are easier to get good statistics on, meaning the optimizer can check more potential plans with more appropriate row estimates, possibly giving a quicker plan. i recently had a statement with an OR condition that was performing a table scan. by breaking it up on the OR into two separate statements joined by a UNION, i was able to get the optimizer to do a couple of seeks on some sensible indexes - the alternative would have been to introduce a really gross, highly specific, specialized index to the base table, which i wasn't going to do because that would be stupid

i like databases :blush:

redleader
Aug 18, 2005

Engage according to operational parameters
idk if you do firefighting or on call or whatever, but if you do you will wanna consider learning this stuff on the clock - it's not something you're likely to pick up easily when a client is on the phone complaining about their slow site

in this situation you'll want to know how to quickly figure out if any indexes have blown up and how to rebuild them, because indexes are like 90% of the solution to a slow db. again, maybe practice this at work sometime?

Lutha Mahtin
Oct 10, 2010

Your brokebrain sin is absolved...go and shitpost no more!

https://medium.com/friendship-dot-js/i-peeked-into-my-node-modules-directory-and-you-wont-believe-what-happened-next-b89f63d21558#.uw7554xnh

has this been posted yet

Bloody
Mar 3, 2013

I love poes law

MrMoo
Sep 14, 2000

The Pantone bloggers again disrespecting the poor rouge node.js developers.

Powerful Two-Hander
Mar 10, 2004

Mods please change my name to "Tooter Skeleton" TIA.


holy gently caress two stupid things today:

1. a major system that process hundreds of thousands of records per day has no keys on any db tables and every column is varchar because the devs "didn't want to think about what type something should be". I actually shouted 'are you loving kidding me' out loud

2. i sent the new dev off to rewrite the file download component for an app, two weeks later they've come back with a half finished upload component that duplicates existing functionality wtf

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat

Sapozhnik posted:

yeah that's cool

even better is this thing called java.util.Optional because that actually uses the Java type system to accomplish exactly the same thing. Well, almost. I guess a static analysis pass to catch uses of null is good too.

that doesn't help when your function takes a parameter and it should not ever be null.

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

jfc just burn it all down at this point

Captain Foo
May 11, 2004

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


holy lmao

HoboMan
Nov 4, 2010


https://i.imgur.com/3R4d0cZ.png

:newlol:

Shaggar
Apr 26, 2006

eschaton posted:

I wanna hear the shaggarpinion on coderush

ive never used it

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat
im the guy fieri image in a text document

HoboMan
Nov 4, 2010

ok we have a table that has a terminal id a user id and a login timestamp.
i need to get all the times someone logged in more than once on the same day on the same terminal. i have some garbage that i tossed together, but it's got dupes and poo poo in it and i just generally can't conceptualize this in sql properly
help?

Shaggar
Apr 26, 2006

javascript is the worst and web "development" is the worst and Microsoft was trying to protect us from this for years. Then a bunch of retards decided to write failfox and chome and led us to this horrible state of affairs.

Shaggar
Apr 26, 2006
if you ever got mad at IE not doing something its litterrallly your fault that web 'development" is such poo poo

The MUMPSorceress
Jan 6, 2012


^SHTPSTS

Gary’s Answer

Finster Dexter posted:

Does MUMPS count as a DSL?

i guess if you take the "domain specific" part literally, yes, cuz it was designed basically for healthcare databases and it's really good at that and nothing else. but its a proper full-blown language and not a lang-on-top like the stuff you typically call a "dsl".

Bloody
Mar 3, 2013

i wanted to rant at length a bit more about DSLs specifically with respect to hardware design languages

the incumbent HDLs (VHDL, verilog, systemverilog) are widely accepted as absolute trash. they are uselessly verbose and full of all sorts of exciting gotchas, non-features, and sharp corners. this is not particularly surprising, as they are old languages designed by hardware engineers. it's also worth noting that they were originally defined as hardware description languages, rather than synthesis languages. as a result, huge portions (maybe the majority of?) each language is strictly for simulation - if you use more than like 10% of the language, your synthesis tool will fail, sometimes silently.
further, even in that remaining 10% of the language, you're pretty much stuck to predetermined patterns of writing code, because anything even remotely unusual will probably confuse the synthesis tool, leading to wildly unexpected garbage. the always-brilliant dan luu wrote a bunch more about verilog weirdness here: http://danluu.com/why-hardware-development-is-hard/

so our languages are bad, and this is widely recognized. enter many people trying to solve that problem. unfortunately, inexplicably, (nearly?) everybody chooses to implement their new HDL as a DSL in something else. such nightmares include:
* tools that synthesize a subset of C++ (vivado HLS, among others)
* a python DSL (MyHDL)
* a scala DSL (Chisel)
* a million haskell DSLs (Lava, Hydra, CLaSH)
the common thread here is the idea of "what if we bolt on synthesis features to an existing language" which is literally the root problem with verilog and vhdl. here is a language, now only use an arbitrary subset of it. now you also get the added benefit of more translation layers between your design and your horrorshow synthesis results! (because of the exciting way in which fpga development works, all of these languages have to compile to some minimal set of verilog or vhdl to actually be synthesized, because synthesis is extremely closed-source and terrible. vivado HLS may synthesize to some proprietary pile of rear end, because it is a first-party tool)

there are many other aborted hdls (like JHDL, a java synthesis language!), but they are all abandonware


if you're ever wondering what computer programming would've looked like without open source, just look at hardware development

Bloody
Mar 3, 2013

probably the most common hdl other than verilog or vhdl is "pile of ad-hoc perl scripts that spew verilog/vhdl"

MrMoo
Sep 14, 2000

Powerful Two-Hander posted:

holy gently caress two stupid things today:

1. a major system that process hundreds of thousands of records per day has no keys on any db tables and every column is varchar because the devs "didn't want to think about what type something should be". I actually shouted 'are you loving kidding me' out loud

So a MongoDB developer?

Arcsech
Aug 5, 2008

Bloody posted:

probably the most common hdl other than verilog or vhdl is "pile of ad-hoc perl scripts that spew verilog/vhdl"

Itym tcl scripts

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

MrMoo posted:

So a MongoDB developer?

They should add a chapter to SQL Antipatterns about MongoDB.

Chapter 83: MongoDB

CRIP EATIN BREAD
Jun 24, 2002

Hey stop worrying bout my acting bitch, and worry about your WACK ass music. In the mean time... Eat a hot bowl of Dicks! Ice T



Soiled Meat

Bloody posted:

probably the most common hdl other than verilog or vhdl is "pile of ad-hoc perl scripts that spew verilog/vhdl"

i did a lot of vhdl stuff in college and the language was fine but the tooling was terrible.

Mr SuperAwesome
Apr 6, 2011

im from the bad post police, and i'm afraid i have bad news

is this real or a joke i can't tell

hackbunny
Jul 22, 2007

I haven't been on SA for years but the person who gave me my previous av as a joke felt guilty for doing so and decided to get me a non-shitty av

CRIP EATIN BREAD posted:

im the guy fieri image in a text document

I dunno it's not that farfetched

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

Mr SuperAwesome posted:

is this real or a joke i can't tell

It's somebody's lame rear end joke

jony neuemonic
Nov 13, 2009

it's a joke you lunatics.

Bloody
Mar 3, 2013

https://github.com/search?q=http.re...&utf8=%E2%9C%93

only result is a russian(?) translation of op

Mr SuperAwesome
Apr 6, 2011

im from the bad post police, and i'm afraid i have bad news
re ide and gitchat just use git at the command line and vim, its p great

Su-Su-Sudoko
Oct 25, 2007

what stands in the way becomes the way

Mr SuperAwesome posted:

re ide and gitchat just use emacs and magit, its p great

geonetix
Mar 6, 2011


Mr SuperAwesome posted:

re ide and gitchat just use git at the command line and vim, its p great

anything else is just wrong

MSPain
Jul 14, 2006

Mr SuperAwesome posted:

re ide and gitchat just use git at the command line and vim, its p great

Shaggar
Apr 26, 2006

Mr SuperAwesome posted:

re ide and gitchat just use git at the command line and vim, its p great

lol

Mao Zedong Thot
Oct 16, 2008



https://twitter.com/steveklabnik/status/783321843793010688

HoboMan
Nov 4, 2010

tef posted:

just one thing: don't use auto increment, use uuids

yeah we got guids for most primary keys (except the tings our last dba built out is all autoincrementing ints since they hated guids because they are annoying to type out)


Finster Dexter posted:

It's worth noting that you if you're using GUID primary keys you should still have an autoincrement clustering key to avoid bonkers fragmentation.

huh?

Adbot
ADBOT LOVES YOU

Mao Zedong Thot
Oct 16, 2008


Mr SuperAwesome posted:

re ide and gitchat just use git at the command line and vim, its p great

  • Locked thread