« first day (1460 days earlier)      last day (3516 days later) » 
00:00 - 19:0019:00 - 23:00

user41796
7:00 PM
@enderland I did. :-)
 
user41796
@MichaelT That's crazily over the top
 
user41796
Used way too many coats for the poly finish.
 
@GlenH7 the really funny thing is how much he went through to hand out a $20 bottle of whiskey
at that much work, he could have at least gone with Jack Single Barrel
 
user41796
@JimmyHoffa Yeah, definitely could have upped his game there too
 
Gentalman's is good sure, but... not good enough to warrant that kind of effort
 
7:09 PM
oh weird unexpected mod perk, I can delete my messages older than 2 minutes?
 
user55340
@enderland yep. And edit them too.
 
@enderland you can delete or edit my messages older than 2 minutes too - also you can purge edit history of a chat message - so I wouldn't be able to view history on your (removed) above
 
@JimmyHoffa Oh cool let me try this! delete * from chat where userid=22076
oops!
 
EOF
 
@JimmyHoffa but only before removing it, otherwise the last value is always there
 
user41796
7:11 PM
@enderland Shouldn't that be '%monad%'?
 
user55340
We're collecting blue names again...
 
to completely hid a message requires changing it to something else, then purging history
 
Hmmmm
 
@enderland there's a button for that
 
Yeah I never even noticed that until just recently
@MichaelT that's pretty awesome
 
user41796
7:20 PM
@enderland We expect you to pick a superior drink if you go down that route... :-)
 
Neither of us drink though, bwahahahaha. though my brothers would love to get one of those
 
user41796
So show 'em some love....
 
user15026
@MichaelT I'mma lady and I still would like that :P
 
user55340
A groom's cake is a wedding tradition originating in Victorian England, but observed more often in the modern age in the American South. While a wedding cake may often be decorated in white and light in texture or color, the groom's cake can take a variety of forms, many incorporating chocolate or fruit. Cheesecake sometimes serves as a groom's cake. The groom's cake is often served at a table separate from the wedding cake at a wedding reception or wedding breakfast, though it may be served as a dessert for a rehearsal dinner. == History == Originally, the groom's cake was a British tradition...
 
user55340
> One tradition was to cut a piece of the cake and put it in a small box, then present the box to an unmarried woman attending the wedding. The woman was not expected to eat the cake, but rather to put it under her pillow. Superstition held that this tradition would help an unmarried woman find a husband.
 
user15026
7:22 PM
@MichaelT What a waste of cake!
 
user55340
Some may consider the lack of cake to be a good trade off for finding a husband.
 
user41796
@MichaelT Whereas some may prefer to just have the cake.
 
user55340
> Originally, the groom's cake was a British tradition. The groom's cake was often richer than the bride's, since the addition of flavors like chocolate, fruit, and especially alcohol were better served to "the stronger sex" with the stronger stomach. During the Victorian era, the first groom’s cakes were heavy and dense fruit cakes. A characteristic recipe for the groom's fruit cake was published in the “The British Baker" in 1897.
 
user55340
Hmm... were are those cupcakes?
 
user15026
I still need to make them
 
7:29 PM
C-C-COMBO BAKER
 
user15026
I just keep forgetting to get the alcohol I need :P
 
@MichaelT I kinda want to try that technique for making the box with something
not sure if it'd be used for that but maybe christmas gifts or something?
I'm off 60% of october
 
user41796
@AshleyNunn That could be the tag line for this room...
 
user15026
@GlenH7 Very true :)
 
@AshleyNunn looking forward to being able to get some for my wife in a few days
baby almost ready to come out
 
user15026
7:34 PM
@AJHenderson Oh nice. :)
 
Sweet :D
 
user55340
 
user55340
My take on strong/weak language features.
 
@MichaelT how about throwing performance in there? ;)
 
user15026
I had a friend who had a baby three months ago and about a month after she had him she was like "I need someone to go alcohol shopping with me" because her husband doesn't drink and stuff so I was like PICK MEEEE. It was a fun adventure
 
7:36 PM
and actually, most recent version of C# can do quite a lot of implicit type stuff with dynamics, so that's a bit dated
 
@MichaelT Wait, how does C score lower than Java in pointers?
 
user55340
@Ampt pointers allow you to subvert the type system.
 
user55340
Thus, having pointers is a weak type language feature.
 
user41796
void * FTW!!!
 
user55340
int main(void) {
	float f = 0.1;
	int i = *(int*)&f;
	printf("%d",i);
	return 0;
}
 
user55340
7:38 PM
I can also do some rather nasty stuff with Perl's scalar (which is a union) that confuses people.
 
user55340
Thus, it scores lowish on the untagged union metric too.
 
user55340
But, the thing that I'm trying to point out there is that weak/strong isn't one thing.
 
user55340
Though its still flawed at some level:
 
user55340
>
For example, someone who believes that a type system is "strong" if type errors are impossible at runtime would characterize C# as "weakly" typed, because C# allows the developer to insert type conversions that will fail at runtime. (example: short x = (short)(object)(123.ToString());) Someone who believes that a type system is "strong" if it encourages writing programs where the compiler finds many but not all type errors at compile time would characterize C# as strongly typed for the same reason. If the same feature of the type system can be reasonably characterized as both "strong" and
 
@MichaelT Of course Lippert beat us both to the punch, saying exactly - as always - what needed to be said, in this case that "strong typing" is a made up term with numerous definitions none of which agreed upon and basically a term that lacks specificity necessary when talking about type systems
Granted people know so little about type system... there should be an undergrad class on them or something
it's very helpful to understand type systems - that classifies as one of those post-grad things that you genuinely do use in industry
 
user55340
7:48 PM
Survey of Type Systems would be a good class to have... not so much 'we're interested in the language padigrims' but just the type system offered.
 
@JimmyHoffa typing is covered in some undergrad programs
not as it's own course though I suppose
but in reasonable depth
 
user55340
In my classes, the type system was glossed over in the compilers (it was just something you had)... and it was also only touched on in Theory of Programing Languages which were more about OO / Procedural / Functional / Declarative concepts.
 
@MichaelT exactly. Knowing multiple paradigms is useful, but knowing the underlying decisions and tradeoffs made for at least the type system you're living in is almost necessary if you want to make the best decisions you can in your language
 
@MichaelT we wrote our own compiler
 
@AJHenderson so what's "strong typing" ?
 
user55340
7:51 PM
@AJHenderson 536... Prof. Fischer taught it when I took it.
 
@MichaelT it's unbelievably weird that you still remember teachers and their names. I have been out of school a lot less time than you and frankly remember bupkis mostly
 
user55340
@JimmyHoffa there were a number of good professors who were ones that you learned from... he also looked like a hyperactive chipmunk in his younger days.
 
user41796
@JimmyHoffa I still remember a few; it's the ones that made a really strong impression.
 
@JimmyHoffa personally, I would classify it as a language where type is strongly associated with the data structure such that you can detect invalid operations (but that may allow that to be overridden anyway), but I also realize that isn't the only definition people might argue for
I'd classify C# as strongly typed
even though it allows you to break from that if you want to
 
7:54 PM
@AJHenderson thing is the term just has no real definition, it's thrown about a lot but is totally ambiguous. People use it as a blanket term referring to one of numerous features of a type system, but without agreement on which feature means the term can't be used to effectively communicate anything concrete
strong typing is like a coke in the south
 
@JimmyHoffa yeah, I know, it's more of a spectrum
 
woot I think I implemented AMDs "correctly" :D
need to walk the spec some more to test myself
actually I think there are test scripts out there...
 
8:18 PM
 
@MichaelT Amazon customers don't seem to like this book very much.
 
user55340
It made a lot more sense in combination with the undergraduate class.
 
user55340
Without that context, it can be a difficult read... Dragon book is probably better if you don't have the class background.
 
8:45 PM
@MichaelT that seems to be the case with a lot of text books written by the professor teaching the class
 
Yeah, the teacher can be there to rescue those concepts described inadequately in the book.
 
well not just that, but they tend to think of it in terms of filling in the gaps they aren't covering in class
I've certainly seen some where the book is very clearly written to correspond with the class
very specifically
 
.NET Fact Of The Day: The most common time for GC to collect is on allocation. If you have any bit of code you know does lots of heap allocations for whatever reason, keep in mind GC may be collecting frequently there as collection is often the first thing that kicks off as soon as the CLR decides it's within one of it's tolerance-ranges for heap available to the process
 
Microsoft has already done the leg work for you. Why not simply adopt their standards? Every development team should have a coding standard. Everyone on the team should follow it, and it should be enforced by a code formatter or some sort of linting program. There are many reasons why this is a good thing; consistency is the most important one. Not being regarded as amateurs is another. — Robert Harvey 4 mins ago
Too harsh?
 
user41796
@RobertHarvey That's harsh?!?
 
8:55 PM
Well, the amateurs thing.
 
@AJHenderson using blocks are so far removed from having any relation with GC... ok, well generally....
 
user41796
@RobertHarvey pfffft
 
Sometimes a little ego poke can go a long way. Most of the time, not so much.
 
@AJHenderson if you believe using adds determinism to GC - disavow yourself of that truth right now because it's commonly believed, and 100% wrong.
 
@JimmyHoffa they ensure destructors are called to make sure that things are disposed, I suppose they could hang out until the GC next goes, but you could trigger it if you wanted then
 
8:57 PM
@AJHenderson finalizers - not destructors (destructors have deterministic behaviour, finalizers do not)
 
All using does is call Dispose() when you leave the using block.
Has nothing to do with garbage collection.
 
and finalize is unrelated
 
and a using only disposes as well as the IDisposable's Dispose method per the implementor of that given class. If it doesn't GC.SuppressFinalize and it has a finalizer, the object stays pinned and the using had no effect on your GC behaviour
that GC.SuppressFinalize call is the entirety of how a using effects GC, and it's not always there (usually not necessary as only the lowest layer unmanaged resource should implement a finalizer) - as such using usually has 0 effect on GC
 
in essence like the "try with resources" in java (which is a clone of the using block)
 
9:00 PM
Ah, well if you use using like this
using (Font font1 = new Font("Arial", 10.0f))
{
    byte charset = font1.GdiCharSet;
}
 
I'm pretty sure we have some things that do manual garbage collection periodically to grab anything that has been disposed, I know we've made a lot of specialized alterations for garbage collection in our framework, but I don't go poking around in that particular code often
 
The font1 variable gets scoped to the using block, so it gets deallocated when execution leaves the block.
 
@AJHenderson it's sugar that expands to:
 
I know when we weren't using using blocks, we had the GC think it couldn't touch things that it could and it would think they were small, so it wouldn't touch them, but really they had pointers to big things
 
//the line of code inside the using parens
try
{
  // the code in the using block
}
finally
{
  (yourVariableFromTheUsing as IDisposable).Dispose()
}
 
9:02 PM
yeah, that I knew, I just forgot that dipose doesn't actually dispose without telling GC to collect explicitly
it just marks the thing as dead
 
@AJHenderson haha yes well... GC can't collect objects with a finalizer - unrelated to the using just remember - EVERYTIME YOU IMPLEMENT A FINALIZER YOUR CREATING AN OBJECT THAT CANNOT BE MOVED AROUND IN MEMORY
 
and actually, if I was thinking more clearly, I think that was floating around, I just have baby on the brain at this point
 
objects that can't be moved around play hell for your heap because they're like mile markers, the heap grows upwards and as you add immovable posts you stop it from shrinking bit by bit
@AJHenderson haha yeah, that'll ruin a lot of things
 
@JimmyHoffa now that one I don't think I knew
I knew the upsides of iDisposable but not that it prevented it from being moved. So that really makes it even more critical that once you implement it you need to make sure it is called even more than if it wasn't implemented (if I'm understanding you right)
 
no it's the finalizer tham makes it immovable
finalizer and IDisposable are orthogonal
 
9:06 PM
ok, what's the difference between the disposal and the finalizer, I should know this, but my memory is flaking
 
hmmmm so enderland's "find a dream job" saga continues! ha
 
is that the ~ thing
 
@AJHenderson yeah - finalizers are referenced from GC because the assumption is: You wrote a finalizer, so you have something that you absolutely cannot allow to leak - and no one is responsible for except you - so GC holds a reference to your finalizable object to execute the finalizer if it goes out of scope. Finalization is a last ditch effort of the GC to stop resources from leaking.
 
disposal is determenistic in the user code, while finalizer is purely for the GC
 
It won't move your object if it has a finalizer because then the reference to your object from the finalization queue would be invalidated
 
9:08 PM
oh right, that jogged my memory
 
When you GC.SuppressFinalize you are telling GC to remove the pin and reference from the finalization queue to your object, make it movable, and when GC comes around it can compact or collect the instance depending on whether it's a GC root or not
 
Based on my readings of finalizers, it seems like they're difficult to get right, and that you shouldn't rely on them as a mechanism for proper cleanup. That's why using and IDisposable exist; otherwise, you could simply write a finalizer for each of your classes that uses unmanaged resources, and dispense with using altogether.
 
@RobertHarvey except for the aforementioned issue of GC not accurately judging size
our specific problem was that SQL Connections and contexts associated with our units of work show up as small to the GC
but are in reality massive
or potentially massive
so GC ignores them
we have to dispose them to say "no, clean these up... really"
because it bumps up their priority
from what we've observed
it still isn't necessarily immediate, but it makes it go faster
 
Well, all the GC measures is the memory footprint. And technically SQL Connections are unmanaged resources.
 
and GC can't know what the unmanaged pointer is pointing to
 
9:13 PM
all I know for sure is before implementing disposable on them, resources leaked, after disposable and using blocks, memory clears up quicker, particularly from explicit collection calls
 
GC has nothing to do with that
 
Do you force a garbage collection?
 
the using blocks did
 
yeah, I think we forced a GC at some point, I last worked on that stuff like a year and a half ago though
so it's a bit sketchy in my head at this point
I'd have known it a lot better a year and a half ago though ;)
well, using tells GC that it can be collected, but I think we still needed an explicit call to make it collect everything since just marking it as disposed doesn't trigger a collection
 
no using makes the code call dispose on the object that cleans up the unmanaged
 
9:17 PM
oh, so the disposal cleans up the unmanaged, but then the disposed object (at a small size) can hang around
gotcha
 
exactly
 
@AJHenderson what does GC.Collect() do and what is the big glaring reason everyone always tells you never call GC.Collect() ? guesses?
 
I can give a hint: if an object survives a sweep then it promotes to the next generation
 
user55340
@ratchetfreak this isn't math.SE.
 
user55340
;-)
 
9:25 PM
no THIS! IS! CHAT!
sorry I couldn't help myself
 
psr
hint: pressing the send button puts what you typed into the chat room.
 
@AJHenderson this is, unsurprisingly, how many people learn about using() and Dispose is because they're running out of DB connections in their pool or something and their app is now just locking up on DB connection requests but people don't know why their app is getting choked up and blocking here and there - they read, wrap their DB connections in using()s and the issue goes away. They never dig any deeper and just tell themselves "Ah, using cleans up memory resources."
 
user55340
@amon mean = Mongo, ExpressJS, AngularJS, Node.JS
 
@ratchetfreak is this the part where you kick @MichaelT into a pit of lolcats?
 
@MichaelT TIL. But I wonder why anyone would use the name “mean” to market something. None of it's meanings (hah) are remotely positive.
 
user55340
9:28 PM
Its in contrast to LAMP.
 
user55340
(Linux, Apache, MySQL, Php/Perl/Python)
 
psr
@amon lean and mean
 
user55340
Find a word that matches the first letter of each key part of the technology stack and name it that.
 
user55340
I'm still waiting for someone to place Express with something that begins with O.
 
@MichaelT Oracle, Windows, Node.js :o
 
user55340
9:30 PM
There's also LYME (Linux, Yaws, Mnesia, Erlang) which is a disease...
 
user55340
LYME and LYCE are solution stacks composed entirely of free and open-source software to build high-availability heavy duty dynamic web pages. The stacks are composed of: Linux, the operating system; Yaws, the web server; Mnesia or CouchDB, the database; Erlang, the functional programming language. The LYME and LYCE bundles can be and are combined with many other free and open-source software packages such as e.g. netsniff-ng for security testing and hardening, Snort, an intrusion detection (IDS) and intrusion prevention system (IPS), RRDtool for diagrams, or Nagios, Collectd, or Cacti, for monitoring...
 
user55340
And I'm not joking about that one.
 
user55340
 
@MichaelT an unfortunate end, if ever there was one...
 
@MichaelT Sounds like as much fun as driving a toaster through a car wash.
 
9:34 PM
@RobertHarvey says the one who's not written a line of Erlang :P
 
There's a reason for that. I don't program traffic lights or phone switches.
 
I don't know how I feel about Erlang, but I love RabbitMQ, so... Ya.
 
@RobertHarvey because you haven't spent the time, don't pretend it's because of some deep seated hatred of the unknown. That's other developers, for you it's just because Erlang is emailed to your trash box to do list, but it's too far down
 
I'm a Linux admin, and I want to build a product from the ground up for fun (and maybe profit), but I need help from a dev. Any ideas?
crickets
 
@Soviero huh? Yes, many.
 
9:43 PM
@JimmyHoffa I mean, do you know anyone who would want to work together on something that is essentially a hobby until it proves itself to be otherwise.
 
@Soviero Oh, yeah there's lots of people on the internet like that, you should check there.
 
psr
There tends to be a lot more ideas than developers to make them into products. Probably because the idea part is a lot faster.
 
@JimmyHoffa looks around Isn't that where I am?
 
@Soviero you're in the internet? Whoa! Tell me, what do you see? Is it cool? Everything glows green doesn't it? I knew it!
 
@JimmyHoffa No, it looks more like a blank white room with a bunch of cats and coffee everywhere...
 
user55340
9:45 PM
c2.com/cgi/wiki?IdeasAreWorthless is an important read for people with ideas.
 
@Soviero weird. Really though, plenty of people have ideas for devs to work on - you are not unique, you are not special, and you probably don't have some masterful valuable genius product idea, just because the pet rock dude had a good idea that seems stupid doesn't mean you're dumb enough to have good ideas.
 
@MichaelT Hey, I burned over $10,000 of my own money trying to start something before finally giving up. That's why I said it was a hobby, more or less.
 
user55340
Its more of a "I've got lots of ideas of my own that I should be working on..." (rather than playing openTTD)
 
@JimmyHoffa No, you guy's are missing me. I don't even have an idea, I just want to building something for fun... ;)
 
@Soviero oh, you want to write code? We can help there. Go write code, when you have a problem let us know.
 
9:48 PM
@JimmyHoffa I've run into a problem... I don't know what to build.
 
psr
@Soviero - So what's your pitch on why someone would want to work on your thing instead of their own thing?
 
:D
@psr No, I want to work on THEIR thing. (Wait, what did I say?)
 
@Soviero I want a real-time online grocery store list that has an exposed RESTful API so refrigerator embedded sensor devices could update it if they were programmed to do so. Cool?
 
user55340
Pick a game from angelfire.com/games2/warpspawn - and implement it?
 
psr
@Soviero That's easier. Try, say, GitHub.
 
9:49 PM
oh just find an open source repo with some open issues and submit a pull request
 
@Soviero alright I'm done poking fun at you, how about you go work on project euler
that'll get you a long ways
 
@JimmyHoffa we actually had an issue with memory footprint and saw a reduction
 
psr
@AJHenderson He's not saying "using" is useless, just that it doesn't initiate garbage collection.
 
@AJHenderson of course you did, you started disposing of your unmanaged resources right away rather than letting them orphan for multiple GCs while being immovable causing heap bloat because they make compaction ineffective - between the heap bloat and the actual unmanaged resources (small - but your free blocks were probably huge) - and increased GC performance from your heap lacking all those pins, I'm sure you saw tons of improvement
 
user55340
(actually, Supper Duper Games is probably a better one - better licensing options if you want to go commercial: superdupergames.org )
 
9:52 PM
Yeah. I was just clarifying it wasn't running out of connections
 
@AJHenderson good on ya! Most places start running out of connections before they notice something amiss
 
@AJHenderson because you were actively cleaning up those you didn't need
 
@ratchetfreak no he wasn't - not before the using's. He means that they started profiling because the process was using 10 gigs of ram or something
not because - as I alluded - he exhausted his SQL Server connection pool
 
ah misread
it's late...
 
user55340
10:12 PM
Coffee alarm for those who need a cuppa to wake up in the morning.
 
user55340
@enderland do you have a dup for this over on workplace?
 
user55340
0
Q: I'm not sure if this is the right place to ask this, but is it normal for a junior programmer to be in this situation

BammaHammaAs stated in the title, I'm not entirely sure if this is the right place to ask this kind of question, but is it normal to be stuck on a project because you got dumped in without the information you need? I'm a junior developer and I'm supposed to be debugging this project, but the simple fact i...

 
@ratchetfreak at least I can feel better about not being the only one having lapses ;)
@JimmyHoffa and in fairness, it was a mix of active profiling and also running rather narrowly constrained VMs as we moved code from one code base to another and noticing utilization was going up
we're a cloud service provider, so we have really good statistical data on are app utilization
when former numbers weren't matching up with new code that should have been more efficient, we knew something was up
and went digging
 
@AJHenderson awesome. Good instrumentation is a killer app in distributed environments
 
@JimmyHoffa True enough.
@MichaelT Once you remove all the meta commentary and the opinions, there's not much of a question there.
 
user55340
10:29 PM
@RobertHarvey It really boils down to "if you are in over your head on any project, communicate this with your manager." which isn't a programmer specific problem.
 
psr
@MichaelT Do you think in general editing "Is it normal" questions to "what to do if" questions? "Is it normal" is a poll question.
 
user55340
@psr That would be an edit as a step in the right direction.
 
psr
@MichaelT I think it's a "what to do to maintain a legacy app that has no requirements and no possibility of getting the original requirements" question.
 
@psr hire a really good business analyst?
 
@psr hide your stapler, they're already on their way to collect it.
 
psr
10:37 PM
@AJHenderson Sometimes no one still working there knows what it does - which means that don't know what their customers actually are using. They need something like a forensic developer to determine the requirements.
 
@psr I wouldn't have any idea what that's like. Nope. None. This sounds utterly foreign to me. LALALALALALA
 
and figuring out what something is doing is pretty hard but finding out what it should be doing is part artform part praying for inspiration
 
@ratchetfreak and part a talent known as "Authoritative Speaking"
 
@JimmyHoffa aka pulling statements out of the colon
 
00:00 - 19:0019:00 - 23:00

« first day (1460 days earlier)      last day (3516 days later) »