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

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

eschaton posted:

I went looking for a nice lightweight CLOS persistence framework with lazy loading and it looks like what I want is actually UCL-GLORP

so yeah, I'm about to use Hunchentoot with GLORP, can people please come up with better names for technology poo poo?

NihilCredo posted:

Lots of development in 2015 seems to be about constantly learning new, totally essential open-source plugins and packages that you're supposed to discover through sheer memetic osmosis more than by any structured process.

"What, you don't even Squazzle your assemblies or check them in Hoobilai before you Dripr them to a Kanoozer stack? You just compile and run? Jesus do you write COBOL programs for AS/400 or something?"

(Say what you will about boring-rear end '90s enterprise software, but if somebody says that they're having good/bad results with MegaCorp Distributed Database Mapping Manager 5.0, I don't have to hit up Google to figure out if it's a tool that I care about.)

Adbot
ADBOT LOVES YOU

Shaggar
Apr 26, 2006

ComradeCosmobot posted:

Probably because then they'd have to include a Java runtime in order to compile .NET programs.

they could use the pom and then write their own build system in c# that implements everything. the pom is really the most important part because its the only user facing component. If they can keep procedural stuff out of the project definition then it doesn't matter what they use to build it behind the scenes.

Bloody
Mar 3, 2013

ill start the github

DONT THREAD ON ME
Oct 1, 2002

by Nyc_Tattoo
Floss Finder

Shaggar posted:

gradle is a real good way to spot someone who has no idea what the gently caress they're doing. to use gradle you have to first look at maven and then decide "well this would be better if I implemented all the build logic myself for each individual project"

the project my project depends on uses something called buildr because 'we don't trust maven'

Xarn
Jun 26, 2015

hifi posted:

Someone's already done it if you are talking about Linux

Yes, and I am gonna roll my own anyway. :v:

There are actually (very, very horrible) reasons to do so, and I am not planning on full support anyway. Just coloring, gently caress cursor movement and poo poo.

Series DD Funding
Nov 25, 2014

by exmarx
console color codes don't have an official color associated with them other than the truecolor ones. you can probably get away with the xterm defaults though

Luigi Thirty
Apr 30, 2006

Emergency confection port.

now that I can draw arbitrary lines, I want to rotate a square on my Atari, so a 68000 without floating-point trying to do a simple 2D transformation of 4 points

how did we do anything involving sin/cos before hardware floating point

i've got a 1024-entry sine and cosine table but being unfamiliar with them i'm not sure how to bash my points' x/y coordinates into it to get the transformed points out yet

Shaggar
Apr 26, 2006

MALE SHOEGAZE posted:

the project my project depends on uses something called buildr because 'we don't trust maven'

that's the worst

HoboMan
Nov 4, 2010

Luigi Thirty posted:

now that I can draw arbitrary lines, I want to rotate a square on my Atari, so a 68000 without floating-point trying to do a simple 2D transformation of 4 points

how did we do anything involving sin/cos before hardware floating point

i've got a 1024-entry sine and cosine table but being unfamiliar with them i'm not sure how to bash my points' x/y coordinates into it to get the transformed points out yet

how did you build your table?

this explains it sorta: http://myhandbook.info/table_sin.html
just round to the nearest entry to start out

Luigi Thirty
Apr 30, 2006

Emergency confection port.

HoboMan posted:

how did you build your table?

this explains it sorta: http://myhandbook.info/table_sin.html
just round to the nearest entry to start out

1024 sine wave samples between 0 and 65535

i figured it out, i guess. (input * (table value)) / 32768 gives the integer value i'm looking for

ComradeCosmobot
Dec 4, 2004

USPOL July
i saw a book on 68000 assembly at a savers today and thought of getting it b/c of luigi thirty's posting but decided not to since i don't have anything that has one in it

would be cool to do amiga development one day tho but there's no way id be as good as the demoscene about that

Luigi Thirty
Apr 30, 2006

Emergency confection port.

I'd buy an Amiga but there's just so goddamn many models and upgrade paths and the technical wizardry is all written for PAL machines anyway so I'd rather use WinUAE

with the Atari it's not as much of an issue since nearly every game worth playing targeted the 1040ST hardware baseline. not much targeted the STE and its hardware blitter outside of really late European games and the demoscene iirc

fritz
Jul 26, 2003

Luigi Thirty posted:

how did we do anything involving sin/cos before hardware floating point

CORDIC

jony neuemonic
Nov 13, 2009

i got my cd pipeline built and working. :toot:

pretty shameful that i can outdo my dayjob in a couple hours on a sunday afternoon tho.

Asymmetrikon
Oct 30, 2009

I believe you're a big dork!
what're you running with? jenkins? bamboo?

planning on building out a cd pipeline at work, would like tips and tricks ty

jony neuemonic
Nov 13, 2009

bitbucket pipelines (which is just using docker under the hood) because it's lightweight and simple for a solo project, and because we use bamboo at work so it's at least sort of in the same family. the deployment piece is just the new dotnet cli and an upload script for elastic beanstalk.

honestly the hardest part was getting the archive into a format elastic beanstalk was happy with because, i dunno, i had some kind of mental block against using the zip command properly. it's not even a complicated format.

jony neuemonic
Nov 13, 2009

i guess as far as tips just keep it as simple as possible. you can really go down the rabbithole with complicated builds but you're just going to end up with something brittle that no one really understands or uses properly.

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
after struggling with code coverage, again, i have come to the conclusion that code coverage as a metric is useless, at least on a project level.

i just, you know, like a number that says "your code is x% [implicitly good]"

fortunately i'm not the only one who seems to think that, so it's possible that it's not just a terrible programmerpinion

EVGA Longoria
Dec 25, 2005

Let's go exploring!

Wheany posted:

after struggling with code coverage, again, i have come to the conclusion that code coverage as a metric is useless, at least on a project level.

i just, you know, like a number that says "your code is x% [implicitly good]"

fortunately i'm not the only one who seems to think that, so it's possible that it's not just a terrible programmerpinion

I came into a project running our website, and they were super proud of 100% test coverage and a micro service architecture.

I've spent the past year and a half ripping apart everything they were proud of and rebuilding it using standards. feels good, man

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
Also reading "" discussion "" " on testing is like the third most stupid thing to read after whitespace and editor wars

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





i followed this blogpost to get a ci system my coworkers can't screw up by manually installing things on the jenkins master. pretty good so far

Workaday Wizard
Oct 23, 2009

by Pragmatica
what's the opinion on confluent+samza? i want to make a log analysis system (like a SIEM) that must be scalable, and they looks like they fit the bill

have you ever tried that combination? what was your experience?

Linkedin had some great talks about it and it looks like it's serving them well but they have the guy who invented it so it doesn't count

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

EVGA Longoria posted:

I came into a project running our website, and they were super proud of 100% test coverage and a micro service architecture.

I've spent the past year and a half ripping apart everything they were proud of and rebuilding it using standards. feels good, man

micro services is a standard

Sweevo
Nov 8, 2007

i sometimes throw cables away

i mean straight into the bin without spending 10+ years in the box of might-come-in-handy-someday first

im a fucking monster

Luigi Thirty posted:

I'd buy an Amiga but there's just so goddamn many models and upgrade paths and the technical wizardry is all written for PAL machines anyway so I'd rather use WinUAE

back in the day the only models publishers cared about were the 500 and 1200, so everything was designed to run on those and if it worked on any other models then that was a coincidence (although compatibility between models was very good).

a stock 1200 or a 500 with a 1mb upgrade will run 95% of games. demoscene stuff quickly went 1200-only, and most things written after about 1995 need a RAM upgrade as well, but ram upgrades for the 1200 fetch silly money and are not worth it when you can just emulate it.

jesus WEP
Oct 17, 2004


coverage % is silly because you end up writing bullshit tests to cover your getters and other dumb crap like that

EVGA Longoria
Dec 25, 2005

Let's go exploring!

Finster Dexter posted:

micro services is a standard

one website lived in 4 or 5 different services. not the api backends, i mean the actual pages were split amongst these different services

oh no blimp issue
Feb 23, 2011

St Evan Echoes posted:

coverage % is silly because you end up writing bullshit tests to cover your getters and other dumb crap like that

a good code coverage tool would probably let you ignore setters and getters

Finster Dexter
Oct 20, 2014

Beyond is Finster's mad vision of Earth transformed.

EVGA Longoria posted:

one website lived in 4 or 5 different services. not the api backends, i mean the actual pages were split amongst these different services

Trade-offs. That strategy allows you to deploy different versions of different services without affecting other services. It does create more complexity on the development side, especially if they were idiots and didn't conform to SRP and created stupid dependencies. Unless your web app is just huge, that's probably not how I would approach it, but it would be so dreamy if the projects I'm in charge of right now had followed that. Our web app is a bunch of "tabs" that each have their own set of pages, and it would've been nice if they were loosely coupled modules as opposed to a monolithic nightmare application.

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

Awia posted:

a good code coverage tool would probably let you ignore setters and getters

i agree, but as far as i can tell, java has no good coverage tools by that definition

qntm
Jun 17, 2009

Awia posted:

a good code coverage tool would probably let you ignore setters and getters

why would you want to ignore those, that's basically a signal of a field that can be completely scrapped because it's unused

Luigi Thirty
Apr 30, 2006

Emergency confection port.

Sweevo posted:

back in the day the only models publishers cared about were the 500 and 1200, so everything was designed to run on those and if it worked on any other models then that was a coincidence (although compatibility between models was very good).

a stock 1200 or a 500 with a 1mb upgrade will run 95% of games. demoscene stuff quickly went 1200-only, and most things written after about 1995 need a RAM upgrade as well, but ram upgrades for the 1200 fetch silly money and are not worth it when you can just emulate it.

oh then it's not different from the ST (a 1040 or 520 with a 1MB upgrade will run 95% of games since they were all publishers cared about) except that it costs 3 times as much on eBay

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

qntm posted:

why would you want to ignore those, that's basically a signal of a field that can be completely scrapped because it's unused

thinking about it more, it's more like i don't want to see them when i'm searching for classes that have logic to be tested. i'm sure that the getters and setters will get "exercised" and covered by tests when testing other classes.

my first instinct when seeing low coverage is to write a test specifically for that thing, when actually i should be writing a test for the thing that uses that thing.

Bloody
Mar 3, 2013

St Evan Echoes posted:

coverage % is silly because you end up writing bullshit tests to cover your getters and other dumb crap like that

coverage % is a silly target for optimization because it is an intermediate measure of test quality. it is generally not very hard to achieve high %age coverage with many undetected bugs and prioritizing coverage %age over test quality is a great way to get a lot of crap tests. code coverage is the BMI of software

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
Java code:
//this is a class with 0% coverage
class Person() {
	private String name;

	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name = name;
	}
}

//this is what i want to write
@Test 
testPerson() {
	Person p = new Person();

	p.setName("Chome");
	assertEquals(p.getName(), "Chome");
}
yay, 100% test coverage, i am smart

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
and you don't even need that assertEquals there, just call the getter and you have "100% coverage"

Jerry Bindle
May 16, 2003
we had a training where a guy stood up and talked about how testing is the least significant contributor to overall code quality. More important: correct design, review, etc. the next subsequent training sessions were all about TDD, idk if we've ever had one about how to design or hold effective reviews.

Mao Zedong Thot
Oct 16, 2008


itt conflating "code coverage" with "you must get 100% code coverage because thats better than 99 better than 98 better than..."

qntm
Jun 17, 2009

Wheany posted:

and you don't even need that assertEquals there, just call the getter and you have "100% coverage"

this sort of ties into what I said a page back

qntm posted:

if you're writing something whose behaviour is complicated then you need unit tests

if you're writing something whose behaviour is simple enough that writing unit tests feels like a waste of time, that may be a cue that you should find a way to avoid writing that code at all, because the simplest code is no code (and if you can't find a way, then maybe your PL or framework is bad, in which case comiserations)

in this case I'd be asking "why aren't you just using a String directly", and the answer is obviously because this is a contrived example where a Person should have more complicated behaviour than that. for example, are you sure you're okay with a Person object having a null name

qntm
Jun 17, 2009
basically my sermon is: don't take low coverage figures as a cue to write pointless tests, take it as a cue to delete pointless code

Adbot
ADBOT LOVES YOU

gonadic io
Feb 16, 2011

>>=

qntm posted:

this sort of ties into what I said a page back


in this case I'd be asking "why aren't you just using a String directly", and the answer is obviously because this is a contrived example where a Person should have more complicated behaviour than that. for example, are you sure you're okay with a Person object having a null name

It's a perfectly valid name https://www.wired.com/2015/11/null/

  • Locked thread