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
Malcolm XML
Aug 8, 2009

I always knew it would end like this.

rotor posted:

well they really are for the most part, clopen sets are fairly unusual

not really

Adbot
ADBOT LOVES YOU

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip

Soricidus posted:

a fandom is a homomorphic functor over cogroupoids

you know they make preparation-ζ to treat those

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
the generalized product is the only thing i have ever seen from category theory that is slightly useful, the rest is the mathematical version of smearing poo poo on a canvas and giving it a pretentious title

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

Subjunctive posted:

I like Casey Muratori's talk on API design and evaluation a lot. anyone know of other good resources in the same vein?

https://www.youtube.com/watch?v=NHtJLABTdCE

suffix
Jul 27, 2013

Wheeee!

tef posted:

a story: a feature request written like software fanfic.

kanban: we have a number of post-it notes and we move them from left to right

agile: we have no long term plans and you need to keep up with our improvisation

(compare: waterfall, we only have to think everything out in advance before doing it)

sprint (theory): like a tiny release cycle, where you start with planning, code for a week or so, and then maybe a breakdown at the end

burndown chart: a chart that goes down in number to show progress

sprint (practice): whatever management has said to do today, we're agile you know

scrum™ - we paid for an agile consultant and someone on our team has a certificate too

continuous integration - we have a build server

continuous deployment - the cron job to build things does make && make install

tef have you considered putting this up on your blog or something?

i sometimes want to link it when we're discussing ~our workflow~

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

suffix posted:

tef have you considered putting this up on your blog or something?

i sometimes want to link it when we're discussing ~our workflow~

that is... perfect.

especially now that i've almost completed a university course called "Agile Software Engineering" which is full of agile and scrum and kanban and now i have to write a few essays on those subjects and why all of those things are great.

also #noestimates

PleasureKevin
Jan 2, 2011

my workplace is switching to GDF - game development framework, for all software, even non-games

it kind of makes sense. instead of having a list of features for each release, you just work on a feature, and when it's done you mark it "done" and it gets put in the next monthly release.

and there's these "gates" that everything goes through, like inception, design development, approval, something something (making these up). so that avoids getting these tickets that are like "make the search better" and you have 2 weeks till code lock to figure out what that means and do it.

and maybe it keeps the work more constant. in "agile" sometimes it seems like the dev gets 5 tickets and they're all "change this to blue" and they finish the sprints work in 2 hours and watch youtube for the literal rest of the month. or otoh you can have 5 massive tickets that all have to be done by deadline and they hold the whole release back by two weeks when they're not done.

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer
fire ur scrum master

ahmeni
May 1, 2005

It's one continuous form where hardware and software function in perfect unison, creating a new generation of iPhone that's better by any measure.
Grimey Drawer
stories should have points that designate how long of a burn they're supposed to be

PleasureKevin
Jan 2, 2011

ahmeni posted:

stories should have points that designate how long of a burn they're supposed to be

and they should be on an exponential scale

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
for the whole course, i felt that yest, all of these things could work if the whole organization commits to them, but i've always seen them done halfassedly.

maybe the smallest, most low level thing that could promote agility is collective code ownership, but even that never seems to happen. every widget is someone's personal domain that nobody else touches.

then again, i've been a consultant for all my career so i've always been dropped into the middle of a project being all :confused: and then been ejected (at best) when it's almost done, but not quite.

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

PleasureKevin posted:

and they should be on an exponential scale

in the #noestimates (yes, the title was a hastag) lecture, the lecturer told that they use a "t-shirt scale" of S, M and L, where S is about 1 day of work, M is a few and L is more, and he said that only "S" tasks get done and larger ones have to be split into smaller bits. i agree on that if a task estimate is more than 2-3 days, it's usually a complete asspull. a 15-day task is basically "i have no idea how long this is going to take"

then the burndown chart goes down in a nice 45 degree angle, until there's 3 days left and then it becomes a horizontal line.

Cold on a Cob
Feb 6, 2006

i've seen so much, i'm going blind
and i'm brain dead virtually

College Slice
burndowns are a not-dumb feature of agile and the point is recalibrating your estimates based on performance. the estimates don't even have to be abstract, if your team of four achieves 150 hrs of work in the first dev cycle of 2 weeks and you've got 750 hours left then you can say it will probably take 5 more cycles or 10 weeks.

everyone focuses on the input side which is stupid, it's the results and recalibration that matter

Marsol0
Jun 6, 2004
No avatar. I just saved you some load time. You're welcome.

Wheany posted:

in the #noestimates (yes, the title was a hastag) lecture, the lecturer told that they use a "t-shirt scale" of S, M and L, where S is about 1 day of work, M is a few and L is more, and he said that only "S" tasks get done and larger ones have to be split into smaller bits. i agree on that if a task estimate is more than 2-3 days, it's usually a complete asspull. a 15-day task is basically "i have no idea how long this is going to take"

And you know that the biggest take away from that lecture was that if you want anything to get done you have to label it as a Small.

MononcQc
May 29, 2007

Wheany posted:

for the whole course, i felt that yest, all of these things could work if the whole organization commits to them, but i've always seen them done halfassedly.

maybe the smallest, most low level thing that could promote agility is collective code ownership, but even that never seems to happen. every widget is someone's personal domain that nobody else touches.

Time to go back to Alistair Cockburn regarding methodologies:

quote:

  • Problem 1. The people on the projects were not interested in learning our system.
  • Problem 2. They were successfully able to ignore us, and were still delivering software, anyway.

quote:

  • Almost any methodology can be made to work on some project.
  • Any methodology can manage to fail on some project.
  • Heavy processes can be successful.
  • Light processes are more often successful, and more importantly, the people on those projects credit the success to the lightness of the methodology.

People are a first-order effect of software development. Many methodologies do not, or used not to care about them to this level, but gave people second-order importance. Cockburn says:
  • People need good communication channels: the closer you are, the better the results
  • People are inconsistent. Methodologies requiring disciplined consistency are fragile
  • People vary from day to day, and from group to group. This is often unaccounted for.
  • People are good citizens, and needs to be fostered for “a few good people stepped in at key moments.” to happen.
Of course if you mention people in an Org, “The Influence of Organizational Structure on Software Quality” by Microsoft is mandatory reading.

The idea stems from Conway’s Law, in The Mythical Man Month. The law states:

quote:

Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure.
The study was conducted by looking at the Windows Vista code base (over 50 millions lines of code), and compared it with the following other code quality metrics.

What they found out was that the organizational structure of the company in large projects was a far better predictor of the quality quality and defect rate of the final project than any technical metric (code churn, cyclical deps, code complexity, code coverage, etc.). Who owns the code, who works on it, focus, alignment on objectives, and who contributes to it has a much bigger effect than code itself.

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
that "They were successfully able to ignore us, and were still delivering software, anyway." quote is probably the one i have been looking for for a while now.

software happens regardless of discipline or structure or methods

Cybernetic Vermin
Apr 18, 2005

Wheany posted:

that "They were successfully able to ignore us, and were still delivering software, anyway." quote is probably the one i have been looking for for a while now.

software happens regardless of discipline or structure or methods

certainly my experience is that software development runs a lot quicker if you ignore as many meetings as possible, so i don't find this finding terribly surprising

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
so, i've had some time to look into newlib's approach to reentrancy [newlib is a libc implementation designed for embedded stuff]. it seems... problematic.

basically, any function that needs a struct _reent to encapsulate some state (eg. errno) in a thread-local fashion in order to be reentrant is broken by default - they have a _REENT macro that boils down to a pointer (impure_ptr) to a single statically allocated struct _reent, and thus everything blows up if you actually use the function reentrantly.

their suggested fix is to make a table of struct _reents and hack your rtos kernel so that you point impure_ptr at the appropriate element in the table for the currently executing task/thread whenever you do a context switch. ok fine whatever, this makes things thread-safe but i think it will still blow up if the function is called re-entrantly from an interrupt service routine (or signal handler i guess, though anything running on an OS with sysv signals will run glibc or bsd libc rather than newlib). now of course like a good little embedded guy i reflexively don't make any function calls from inside an isr so i'm not affected, but that's kind of a heck of a caveat! the way around this would be for each function which needs a reentrancy structure to allocate one locally on the stack, though this would eat a shitload of memory really fast. i can understand why they chose the particular tradeoffs they did, but it would have been nice if it were a documented part of each function that uses a struct _reent rather than a footnote on their website.

Sapozhnik
Jan 2, 2005

Nap Ghost
how do you schedule a bottom-half if you don't call any functions from your isr

newlib is ehhhh. why do you need a libc beyond string.h and std(bool|def|int).h anyway. here, have a libc for bare-metal projects whose printf implementation requires a heap. i've whipped up several lovely sprintf implementations that understand %s, %d, %x without needing a heap to do it?

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
yeah i didn't pick it (it's the libc that cypress ships with psoc creator; extra lol in that they don't ship the source but just headers and .a's) and i have half a mind to ask some probing questions on their mailing list

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope

suffix posted:

tef have you considered putting this up on your blog or something?

i sometimes want to link it when we're discussing ~our workflow~

yeah, put it on a blog, i want to send it to the course instructor (after he has graded me :twisted:)

Destroyenator
Dec 27, 2004

Don't ask me lady, I live in beer
i did a scrum™ course and at one point the instructor asked "if you were given a project and you had the choice to pick either the team, the technology or the process, what would you pick?". the idea being that if you can pick a good team you could do COBOL and the worst possible process and you might still have a decent chance, but if you have a poo poo team nothing's gonna save you.

Stringent
Dec 22, 2004


image text goes here
I'd pick process tbh

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord
I'd pick the bikeshed

Wheany
Mar 17, 2006

Spinyahahahahahahahahahahahaha!

Doctor Rope
it's a trick question, you don't actually get to choose any of those

MononcQc
May 29, 2007

The team is the expected answer, but the best answer is "I'd change jobs for a substantial raise and decision power over more than one element in this list"

Captain Foo
May 11, 2004

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

MononcQc posted:

The team is the expected answer, but the best answer is "I'd change jobs for a substantial raise and decision power over more than one element in this list"

nice

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror
here's an interesting read about how they're improving arrays in the next version of the best language. the way they do it now is actually kind of inefficient. arrays in PHPNG are going to use less than half as much memory!

Bloody
Mar 3, 2013

Wow they must be atrocious now

Bloody
Mar 3, 2013

Have they considered implementing them as arrays

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

Bloody posted:

Have they considered implementing them as arrays

php arrays are infinitely better than the crippled "arrays" most languages have so it stands to reason there's some overhead involved in how they're handled internally. it's exciting to see that overhead being reduced so much tho

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror
if you have to tell your language how big your array is when you make it, or what kind of stuff you want to put in it, or it only lets you use indexes in a certain range, or it doesn't let you use string indexes, then YAPOS

Bloody
Mar 3, 2013

Lol surprise php doesn't know what arrays actually are and has confused them with a variety of different data structures, likely with all the downsides of each and none of the upsides!

Captain Foo
May 11, 2004

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

arrays don't have string indices by definition

I don't even program and I know that

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

Captain Foo posted:

bad, bare-bones implementations of arrays don't have string indices by definition

Joe Law
Jun 30, 2008

array has a meaning thats more than just "box i shove poo poo in and then fart out later somehow (maybe strings?????)"

Tiny Bug Child
Sep 11, 2004

Avoid Symmetry, Allow Complexity, Introduce Terror

Joe Law posted:

array has a meaning thats more than just "box i shove poo poo in and then fart out later somehow (maybe strings?????)"

most definitely. here is that definition: "An array is a data structure that contains a collection of zero or more elements. The elements of an array need not have the same type, and the type of an array element can change over its lifetime. An array element can have any type (which allows for arrays of arrays)." more here if you're interested

Progressive JPEG
Feb 19, 2003

sounds like theyre describing a void**, OP

M31
Jun 12, 2012
those php arrays sound pretty sweet to be honest. they should name them something different to set them apart from other plebeian languages, maybe something like "map"

Adbot
ADBOT LOVES YOU

MononcQc
May 29, 2007

PHP's arrays are a hybrid between arrays, sparse arrays, maps, and sets. They do it all with one data structure, so it's super expensive.

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