« first day (1068 days earlier)      last day (2631 days later) » 
03:00 - 21:0021:00 - 00:00

9:00 PM
Ruby transcends time, space, and brains.
@WorldEngineer Haskell trascends those things, Ruby does something else completely to them..
I've known some good Rubyists.
I've known some horrible rubyists
but I've found online a variety of rubyists that tend to be quite good
There is a lot of neat stuff that can be done in ruby. But it is also the domain of quick and dirty without realizing the problems.
@MichaelT One could say it realizes the problems, quite well in fact, and that's sort of the problem.
9:05 PM
To program ruby well takes significant discipline. Discipline to not use the quick and dirty things. Discipline to make a good API. Other languages force this discipline on you - you can't do it any other way. Ruby doesn't. And thus, developers without discipline in ruby make a big mess.
@MichaelT does Java have easy to use generics?
@JimmyHoffa Not particularly compared to others.
In C# people always solve this problem with generics (in general)..
Q: Are Protected Auto-Caste Methods Ok?

Mike GI often have superclasses that contain a more abstracted form of a class as a member variable than my subclasses need. I find my code littered ((ClassName)variableName).methodName(). Is the best way to solve this to create a protected/private method called something like getVariableNameAsClass()?...

@JimmyHoffa Java would be similarish
But I guess the more appropriate solution is actually that his interfaces aren't generalized enough or may likely violate LSP...
that is to avoid casts everywhere
9:07 PM
I'm comparing it to other JVM languages were the generics are much easier to deal with.
his question is clearly asking if his solution is good, when he should really be asking how to solve his problem (because his solution is not optimal)
Answer the question that he really needs to ask.
His question is missing information to give good guidance on correcting the generalization of his abstract class, and I don't know java well enough to speak to an appropriate technical solution with generics
@WorldEngineer Thanks @World, I was just looking around at different chat rooms.
@Leatherwing This room is less active than many but more densely informative.
9:12 PM
with a slight chance of being opinionated
Fortunately, chat cannot be closed for "primarly opnion based" nor "too broad"... nor even "career and education suggestions" or "what next" or "resource request"
@MichaelT it can for being too insane though
This room was placed in timeout for 1 second; the topic of this room is "General discussion for programmers.stackexchange.com"; - conversation should be limited to that topic.
@WorldEngineer So that means no more monad discussions?
> MORE INFORMATION: The reason I need to caste is because all of the subclasses of Line use an Output class, so I put the getters and setters that relate to the Output class in the base class. The issue is that an AudioLine uses and AudioOutput, and needs to define additional methods that use the more specific features.
Yeah, LSP as I figured
but I'm busy scripting some groovy.. oh fiddlesticks I want the rep (it probably won't be much...)
I give, @WorldEngineer show all the knowledge you've learned trolling around here, tell him about the LSP and why he should avoid it then the tricky part: How to solve LSP violations after the design has already been laid out.
@MichaelT no, I was demonstrating.
9:18 PM
@WorldEngineer and I was joking.... it goes back to that monads damage the brain and make you want to use vertical monitors.
He should probably use a generic member there, and the subclasses inherit and specify which one, such as:
AudioLine : Line<AudioOutput>
problem solved, in the Line base class it can have a generic constraint saying where T : Output and then do anything it needs to do, and in the subclasses they get their properly concrete type
(Does java have generic constraints?)
@JimmyHoffa maybe? I've not done Java in ages
and I never used Generics, the book we used was too old.
I first learned of them when I started "Effective Java".
I then rapidly found myself using Python for reasons I won't specify.
Hello again
Hello Joel
Is Microsoft Visual C# 2010 Express the best program to compile C# applications?
Microsoft Visual in general I mean
9:27 PM
@JoelKidd There's a 2012 version
Oh snap
it's the best thing to use for Windows
Is it express?
there should be one
I hate the Microsoft site
Everythings messy, I can never get what I want easily :P
9:27 PM
on Mac or Linux you'd use MonoDevelop or Xamarin Studio
Ahh I see, I have a Mac so I may do that
Resharper is also an option I believe for Windows
Which is better MonoDevelop or Xamarin Studio?
@JoelKidd neither, they are the same thing
Ah lol :p
Will the 2012 edition of Visual Studio work normally with Windows 7 btw?
Or is it just made for Win 8 desktop apps?
9:28 PM
not sure
win 8 can go to hell
C# is going well btw! :P
I've been practising straight since the last time I was in the chat :D
I'm going to try and find the 2012 edition now
@JoelKidd I like windows 8
it's a little odd at first but it does work
you want the "desktop" version
@WorldEngineer (see... monads do cause brain damage. ;-)
Desktop version of 2012?
@MichaelT no, I think that's the SPARC assembly
9:31 PM
"Visual Studio Express 2012 for Windows Desktop"?
@JoelKidd There's a Windows 8 version
and a Desktop version
Ahh yes
Again though, that's Visual Studio and not C#
Does it include c#?
I dont want a whole load of poo I don't need, just a 2012 C# express program
@JoelKidd It'll include C#
Then I shall download it now, thanks
Also, when I've finished making an application, let's say I've just built a crazy large application
Should I use something else other than the publish option?
Because if C# is so popular, I don't download many programs that use that installer
Is it better to use something like install shield?
C# is for general purpose development of real industry software; that means deployment options are as countless as the environments people write software for, so don't worry too much about how to package it up, do whatever you want on that end; it can be packaged countless ways for deployment
and for *nix there's also SharpDevelop as an IDE for C# but I think that's a bit outdated by now
9:40 PM
I see, ok thanks
9:56 PM
Alright programmers, I have reached an impasse in my design. I have a class which represents a message. There are actually 2 different types of messages, but the operations performed by and on those messages are all the same. Or so I thought. I was implementing the code and was about 3/4 of the way through when I got a code smell.
There were a few methods in this class which had dual behavior, that is they would check which kind of message it was before performing an operation. The parameters were the same and the returns were as well, but what happened on the back end changed. So now I have code that creates this class and doesn't really care which kind it is, but what they do has to change.
Does using two classes that inherent the exact same methods and expose no new methods from the abstract class make sense, or is there a better way to do this?
There are other places in the code that care about which kind of message it is... but not many and those already all work
@Ampt post as a question on the main site, diagrams would be ideal. Use Draw.io if you want.
alright, I'll do that tomorrow then
@Ampt Dependency Inversion: instead of having the accessing methods decide what to do with the message when it's a different message, expose the functionality on the message, and make specific implementations on the different types of methods (the same for anywhere else doing that switching behaviour) or make a 3rd party that will execute that behaviour for you so the messages have specific functionality per type, and that type-specific stuff is called by a mediating object
(I do not know the mediator pattern, I am not referring to that, I just used the term to reference what a 3rd party object would do in this case)
I don't think you need a 3rd party though, I think you just need to make your messages smarter if they have type specific logic.
from what I understand there I would guess that two different classes would be correct? They would be specific implementations of the different types of methods
@Ampt Yep.
You were spot on pretty much but I think you were suggesting creating different types of message processors to handle the logic for different message types which would be wrong
10:08 PM
I may post this as a question anyway because I do think it's an interesting problem
By all means do
I'm just taking a leap
not different types of message processors, just different types of messages themselves
with more information and more eyes than mine you may well get a much better suggestion
Ah then yeah you were on the same page as me.
...unless you want to use a monad....just saying...
room topic changed to The Whiteboard: General discussion for programmers.stackexchange.com [good-beer] [horror-stories] [monads] [my-code-is-compiling] [programmers]
get your monads outa here
10:18 PM
@Ampt They aren't my monads...
@GlenH7 question for a "real engineer"
10:42 PM
What's your question? I love the post but the question-ness of this question is questionable. — World Engineer 3 hours ago
wish all the mod notices be like that. Time to create a new repository of useful poetic comments I guess
Q: Repository of useful pro-forma comments

Pekka 웃Every tag has its questions that make the same mistake(s) over and over and over again. (But some tags more than others.) That's where Benjol's pro forma comments script comes in. The only downside to this great script is that it uses local storage, so if you switch browsers or machine, you lose...

@gnat I'm very good at writing like that. I just don't do it all that often on SE.
The soundness of Programmers mods can be soundly declared unsound.
@MichaelT chat can be closed "for educational purposes", just ask Lounge C++ guys
Q: Lounge C++ frozen by mod?

Tony The LionSeriously why is Lounge C++ being frozen by Mod Gordon? I mean really? Because we're not on-topic?

@gnat That was less educational and more "OMG FIRE FIRE FIRE!!!!!"
in C++ one never free()
Yannis Rizos has frozen this room.
Yannis Rizos has unfrozen this room.
10:51 PM
@WorldEngineer power games I guess (and no, I don't mean at mod side only; mature community has a lot of power itself, it's only natural them wishing to "measure" it agains mods). Lebensraum, drang nach Osten, stuff like that
Hey, I finally found out how I can do that. I guess that counts as educational, doesn't it?
World Engineer has frozen this room.
However some interesting things can be done.
World Engineer has unfrozen this room.
@YannisRizos I learned a bit during this blackout. Message you're typing suddenly disappers... you get scared, then it returns back on unfreeze
you evilnazis :)
10:54 PM
@gnat pot kettle black :P
given what I heard about Lounge hyper-activity, freezing should have brought them into berserk mode that's for sure
yeah but they earned it
@WorldEngineer I didn't learn details to make my own mind on that. But reading MSO discussion was entertaining
@KonradRudolph You can use: "Remarkably stupid." "Asinine." "Pure dumbassery." "The work of a true git." A web search finds many more insults that don't attack millions of bystanders (meta discussion too!). But here, why not just use "wholly unjustified to the point of being ridiculous" (your words)? That's rhetorically and emotionally stronger than any of these generic insults (or your original), and may even yield productive discourse. Btw I have no opinion on the Lounge issue. :)Eliah Kagan Jul 31 at 23:31
@gnat who didn't love berserk mode?
@JimmyHoffa Not I, didn't play enough Doom or Doom II
I was playing Marathon at the time
11:00 PM
while they were talking about NSFW I was thinking could this rule bent to youtube clips?
on topic!
I prefer this version:
wrong version
@WorldEngineer version control broken? but these are on-topic anyway!
not so much that, badge farming on steam and this game pushes the system to the limit
so slow and weird browser behavior
There we go
@WorldEngineer this version is better indeed. Much better
@gnat This guy has real talent, I saw him live once
11:12 PM
and completely on topic
did a panel at DragonCon about 6 years ago
@gnat no, Kagato
whose real name I've forgotton
I've seen Coulton in passing
along with Jason Mamoa (who is huge) and James Marsters (who is not)
@WorldEngineer the guy who made animation? the one you posted really rocks
@gnat yeah, Nick Nickenbock I think is his name
11:16 PM
I see
gotta get to MSO check my "baby" born today
like a real baby it took almost 9 months to give birth. I sure remember how it started, Jan 1 2013
Q: Answers quality in hot questions

gnatFor few recent months, I've got a habit of downvoting answers which quality doesn't look OK to me. These probably can be generally described as low effort and/or these lacking relevance to question asked. Opinionated slogans, claims that are not backed up by appropriate references or by ...

and all the rest was like pregnancy
at least there was quite some vomiting when I studied crap brought from copllider
it's 21 now :)
Q: In hotness formula, discard answers when voting evidence indicates that these are not good data points

gnatIn current version of “hot” questions formula (Qanswers * Qscore)*, all answers are assumed to equally contribute to question "hotness score", including even those downvoted into oblivion. Suggest to discard answers when there is a strong evidence that these do not provide good data points for a...

I should have give it a title... Sue
And he said: "Son, this world is rough
And if a man's gonna make it, he's gotta be tough
And I knew I wouldn't be there to help ya along.
So I give ya that name and I said goodbye
I knew you'd have to get tough or die
And it's the name that helped to make you strong."

He said: "Now you just fought one hell of a fight
And I know you hate me, and you got the right
To kill me now, and I wouldn't blame you if you do.
But ya ought to thank me, before I die,
For the gravel in ya guts and the spit in ya eye
03:00 - 21:0021:00 - 00:00

« first day (1068 days earlier)      last day (2631 days later) »