« first day (1888 days earlier)      last day (3101 days later) » 

user15026
12:04 AM
Did I just TeamView into a customer's machine to help an older lady with her Microsoft Word settings? Yes I did. And I'd do it again. (The benefits of working for a small ISP, you can do stuff like that for some older customers and no one calls it "out of scope".)
 
user20683
@ThomasOwens I seem to recall you like EDM
 
12:21 AM
I'm voting to close this question as off-topic because it seems to concentrate on the hardware side, not (yet?) on programming. I suppose Arduino is the proper place to ask. (Isn't that where Raspberry programmers hang out?) — Jongware 47 secs ago
 
ooh, LinkedIn's email spam finally sent me a decent looking job opening
ugh, when a classmate pops up on LinkedIn and they're a "director"
what am I doing
 
user55340
@LightnessRacesinOrbit how about a former entry level contractor that you worked with showing up as "director of technology at Friend Finder"?
 
user55340
12:41 AM
Piano Phase is a piece of music written in 1967 by the minimalist composer Steve Reich for two pianos. It is his first attempt at applying his "phasing" technique, which he had previously used in the tape pieces It's Gonna Rain (1965) and Come Out (1966), to live performance. Reich further developed this technique in pieces like Violin Phase (also 1967), Phase Patterns (1970), and Drumming (1971); this latter work marks his last use (so far) of the phasing technique. == CompositionEdit == Reich's phasing works generally have two identical lines of music, which begin by playing synchronously, but...
 
user55340
 
@MichaelT ahaha I read that as "FriendFace" to begin with
 
user55340
Hmm... adafruit.com/category/168 - I've gotta think about this and the projects that I could do with it.
 
@MichaelT oooh
 
user55340
12:53 AM
@LightnessRacesinOrbit Yea.
 
user15026
@MichaelT that looks like a lot of potential for fun....
 
user55340
One of my projects is a hue (the color changing light) weather app that does a time based "this is what the weather will be today" 'movie'
 
user55340
So its in effect a 0 spatial x 1 time dimension display. If I can get that as a 1 spatial, I don't need the time dimension.
 
Am I the only person who's never had the "offer-on-the-spot" thing at any job? I mean everywhere I've worked they couldn't do that if they wanted just because of policies. Even though a variety were basically clearly going to make an offer.
 
user114359
@JimmyHoffa The only time I had that happen the hiring manager said "I'm going to give you an offer" but the actual letter came the next day.
 
1:06 AM
@enderland you spend too much time in here. I've had technical interviews and have learned if they don't do it up proper I'm unlikely to take an offer from them - but lots of places don't do technical interviews as a matter of course
@Snowman I've had very clear indications along those lines but never an outright "Come sit down, we're going to make you an offer right here" because those things are constructed by a combination of HR folks I never interview with
@Snowman my first job was working on an old 90's news website where the original creator had an "articals" section which was referenced endlessly throughout the back-end code to the point that fixing it would have been too heinous so it just lived on.. page after page, referencing...articals...
You all suck, I'm still the only person who has touched any queries for the SEDE post other than @maple_shaft (good on ya). Oh well. Flagator Drone coming in for a landing...
6
A: Community list of Data Explorer queries

Jimmy HoffaContent to moderate List here any queries that pull questionable content that may need moderator flagging or user moderation such as close votes/deletion/open votes/undeletion/edit approval etc. Comments stating "+1" with little other content ...excluding closed posts downvote comments (com...

 
user55340
I had some that you pulled into others.
 
user55340
Btw, clicking on this at work made me go "hmm..."
 
user55340
17
Q: What is the most effective way to start a riot in my prison?

BulliedByModsFor an achievement you need to stop a riot of 50 or more prisoners in your prison. However, I seem to be ineffective at pissing off my prisoners to a point where they riot. So what would be the most effective way to make them rage to the point where they riot?

 
user114359
@MichaelT gotta love Arqade clickbait titles
 
user55340
@Snowman You remember where I work... right?
 
user55340
1:21 AM
So yea... one of those "I wonder if anyone is monitoring the network here" things.
 
1:44 AM
@JimmyHoffa If I wasn't so busy at work right now I would just write queries for fun
SEDE queries are fun
 
hi all
 
hello stranger
 
i am a bbackend developer, may i ask that
what is the latest technology that web development should use
 
Ask on the site?
 
because i feel asp.net is sucks... need to coordinate html c# and the javascript together
yes
 
1:46 AM
no that would be closed
 
sometimes it not working well
 
you can ask here in chat though
you just did actually
 
user114359
0
Q: Web development consideration

Ryan Chongi am a asp.net programmer which i learned 7 years ago, since i graduated, i worked as backend developer which focus on the c#. However, i have a mind set to start up the web development business which provide solution to the end user. May i know what kind of technology i should use since i am out...

 
yes
 
user114359
Probably that question, but here
 
1:47 AM
it ask me to come here so i am here to ask
because i am intend to start up my web development business
i am intend to make the offline system online
 
hmm
 
i realized my country many offline system, so i am intend to convert it to online
make everything online is the good goals for the business
 
user114359
@RyanChong Given what you asked in your question, and please don't be offended, but I think you need to learn a bit more before starting a business. You really need to be an expert on those systems and how to run a business
 
it has been years since I have used .NET, I am afraid my knowledge is outdated
the last web technology I used was ASP.NET
 
same here
i am using .net also
but i am seeing those beautiful web page , i am afraid that if i dont chase the latest technology i will be outdated
 
user114359
I don't do much with .NET either, but I think you really just need to pick up the different technologies (ASP.NET, Linq, C#, etc) and just code. Do some projects, learn how everything works.
 
If you are going to stick with Microsoft stack, then learn ASP.NET MVC
it is more current
 
user114359
Personally, I learn by doing. And the best way to "do" is to pick up a project that uses the technologies you want to learn and make it work.
 
user55340
I'd suggest picking one new technology per project.
 
user114359
@MichaelT what's that site that RobertHarvey is always linking with programming projects and challenges?
 
1:50 AM
michael, we are programmer, we no need to learn so many technology
 
Yes, or you will overwhelm yourself
 
user55340
If you go "Oh, I'm going to learn noSQL and node and everything else" at once you'll get overwhelmed.
 
then you lose motivation
 
we need to focus on one technology, and make it be expert
thats why i am intend to pick up one technology and master it
 
@RyanChong Well expert is a strong word
 
1:51 AM
make the skills godlike
 
user55340
> "Seymour Cray, the designer of the Cray supercomputers, says that he does not attempt to exceed engineering limits in more than two areas at a time because the risk of failure is too high. Many software projects could learn a lesson from Cray. If your project strains the limits of computer science by requiring the creation of new algorithms or new computing practices, you're not doing software development, you're doing software research."
 
@RyanChong Remember this wisdom my friend, "Perfection is the enemy of good enough"
 
user55340
Perfect code never ships.
 
user114359
Another good idea is once you are intermediate on a particular language or technology is to look at a popular open-source project that uses it. Pick it apart, see how the experts do things. Maybe you can fix a bug and submit a pull request, that's good experience, a good way to network, and you can put it on a resume.
 
1:52 AM
no need to be expert or godlike
just be good
 
user55340
Never shipping code means that you will have difficulty selling it in the first place.
 
user114359
@MichaelT never shipping code means never getting paid
 
thats why i need to ship my skilsl now
any web development skills is good currently?
 
user55340
Though I joke about that... seriously, there's lots of code "shipping".
 
need to know what is the advantage for each technology , so i can adapt it and apply it
 
user114359
1:54 AM
@RyanChong just about any skill is useful. Web, mobile, even "old" stuff like desktop and mainframe are still in heavy use.
 
@RyanChong ASP.NET MVC is a good thing to learn on the server side if you are familiar with ASP.NET.
 
will it be more simplied?
i dont like microsoft stuff because they focus on microsoft friendly not user friend
 
@RyanChong Also learn Web Design, specifically HTML5, CSS3 and Responsive Design
 
@RyanChong Hmmm
i hate to break this to you. but Microsoft is the most user friendly platform out there
 
1:56 AM
is it? But dream weaver is the best when i in college ~.~
visual studio lag like shit and very hard to learn last time
so i am feeling pain when i in college
 
Eww Dreamweaver... i remember that
 
user114359
@maple_shaft Truth. I use different development environments, database tools, etc. and the MS tools tend to be the easiest to use.
 
got any web developer here???? lol
 
user55340
MS has a nice, integrated, end to end system for their technology.
 
user55340
I've a Java back end web guy.
 
1:59 AM
I am an architect so I dont code anymore, I just draw diagrams and go to meetings
lol
 
ok time to work see u guys
will take a look on mvc
 
user55340
My front end design skills are... utilitarian. Fortunately, making it look pretty for internal applications beyond the basics isn't a necessary skill. Proper use of jQuery makes it look better than 90% of whats out there on the internal web as is.
 
@MichaelT That is true, the Internet doesn't set the bar very high
 
user55340
@maple_shaft and the intranet sets it lower.
 
@RyanChong good luck
 
user55340
2:02 AM
The thing is, it doesn't need to look fancy when your users are all other developers in other groups.
 
user55340
And trying to make it look fancy for the non-developers in other groups confuses them more.
 
i take fancy as a matter of pride
 
user55340
Last two projects were both front-end-ish. Both jQuery based. Current one is for other internal developers. The other one was for one user and she didn't have big demands.
 
user55340
She was rather surprised it worked as well as it did.
 
user114359
> Please don't cross-post, particularly with terrible questions.
 
user55340
2:05 AM
(the user was the woman who maintains all the forms that the department has to fill out - updating old forms as needed... so its basically "upload pdf or word document" and make sure that it becomes available on the right date - jQuery with a date picker... other parts were all gravy)
 
user114359
Comment just came up on a CV review
 
user55340
Given the opportunity, I'd like to go back to that application and reapply what I've learned about jQuery in the past 2 months on it.... but it works.
 
user55340
Oh... today I found out I am an svn expert.
 
user114359
@MichaelT congratulations. I am too, which means I get to fix other people's mistakes.
 
user55340
@Snowman heh. I'm the go to person for fixing all the little things now across multiple groups.
 
2:26 AM
@Lundin: Doesn't look on-topic here to me. Questions such as this are the reason for Programmers.SE's existence. And I don't see what "their meta" has to do with it; I was talking with three site moderators and two high-profile contributors. Is their opinion for some reason unsatisfactory to you? — Lightness Races in Orbit 36 secs ago
 
oh great thanks for that Duga
yes okay you all caught me exagerrating. SLIGHTLY>
 
user55340
@Duga you know you need to just make it so that all of gnat and Light's comments get posted here. ;-)
 
user114359
@LightnessRacesinOrbit Any question at that site might get closed for completely arbitrary reasons, no matter with what some people on their meta might say. It may be that the question is on topic there (today/depending on mood/location of the planets) but I still wouldn't recommend anyone to use that site. The question is on-topic here, so there is no reason to move it anyhow. — Lundin 12 hours ago
 
user114359
Astrology determines what is on-topic at Programmers.
 
user55340
@Snowman is Astrology on topic on Astronomy?
 
user114359
2:33 AM
8
A: Should we add non-physical and/or astrology questions to the off-topic list?

Donald.McLeanIn no way, shape, or form should astrology be on-topic. This should be added to the FAQ to make it perfectly clear. However, I think we should make it slightly more generalized in the off-topic list something more along the lines of: Questions about any field that is normally categorized as "o...

 
2:50 AM
I wouldn't want to be mean because you asked your question well, but this should be on Programmers.SE, not on SO, because it is opinion-based and about "which framework should I use". — Jacque Goupil 12 secs ago
 
user55340
@Duga and Programmers.SE is for opinion based and what framework should I use?
 
3:19 AM
Sep 22 at 13:32, by MichaelT
Duga is a bot that posts likely problematic comments mentioning programmers that come from SO.
 
user114359
@LightnessRacesinOrbit MichaelT is a bot
 
@Snowman bottom*
 
user114359
4:00 AM
Should I buy this for myself?
 
aw man, I thought I'd just debunked the moon landings
suddenly realised "earthrise" made no sense whatsoever
turns out the moon's libration is somewhat greater than I thought - enough for a periodic earthrise observable from about 20% of the lunar surface!
there goes being famous
 
4:22 AM
 
user114359
@RobertHarvey meh. As long as their avionics don't use IE6 you'll be fine.
 
Where else are they cutting corners? I'd like the wings to stay on, thank you very much.
 
user114359
4:35 AM
@RobertHarvey it still gives me the same error and there is a better place to post this. — user202729 2 mins ago
 
user114359
@RobertHarvey > "Not the site I moderate..."
 
If it were a C# problem I could have solved it in the comments. Java is just different enough to make me an invalid.
 
user114359
@RobertHarvey I know Java well but the poor quality of the question and incorrect formatting (check the history) makes me not care.
 
user114359
It's not like the formatting help is hidden when you ask a question
 
user114359
Wiring error (item the first) and way too much trust (item the second) - NEVER work on a circuit without VERIFYING that it's really, truly dead - or you may become that way sooner rather than later. Take a voltmeter and see if the light circuit is dead with the 20 amp circuit "off" - if so turn the 20 amp circuit on and see if it's dead then. One of those things is probably not true. — Ecnerwal 2 hours ago
 
4:41 AM
@Snowman Psh. Young people think they can get anything they want instantly by pushing a button. Then they're surprised when they get rebuffed.
 
user114359
I love the electrical questions on DIY.SE. "The wiring is all jacked up, I didn't test the circuit was dead, and it arced when I did something"
 
user114359
Rule #1 about houses: whoever built it was drunk and bribed the inspector.
 
That is pretty amusing.
 
 
2 hours later…
7:12 AM
What are some great meaningful and insightful search queries I can give against Moby Dick text.
^ that file size is slightly huge - so you are warned...
The idea is to demonstrate a search algorithm - okapibm25 - its not the best fit. However the idea is to get someone started with text mining.
Plus for starts, can someone briefly explain that story... :|
 
"Call me Ishmael."
Moby-Dick; or, The Whale (1851) is a novel by Herman Melville considered an outstanding work of Romanticism and the American Renaissance. A sailor called Ishmael narrates the obsessive quest of Ahab, captain of the whaler Pequod, for revenge on Moby Dick, a white whale which on a previous voyage destroyed Ahab's ship and severed his leg at the knee. Although the novel was a commercial failure and out of print at the time of the author's death in 1891, its reputation as a Great American Novel grew during the 20th century. William Faulkner confessed he wished he had written it himself, and D. H....
 
 
2 hours later…
8:54 AM
well Please ask these question in a more relevant forum.. Programmers will be a more relevant place for this question.. — Minato 15 secs ago
@GuidoG The creator of language/sql server engine. Your question is why and not how? I suggest to ask this question in programmers.stackexchange.com Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development.lad2025 21 secs ago
 
9:52 AM
Would it be OKAY to use a single repository class to do many operations,

Like start workflow, CRUD to Database, CRUD to active directory in a single respository class
then I have web services that do nothing but call these repositories
OR is it better to separate each layer ?
 
 
2 hours later…
Image not found ?
 
12:00 PM
I found it just fine
 
Welcome to Stack Overflow! No-one here is a webmaster. SO is a community moderated q&a platform. Questions should have one or more working answers, and focus on specific programming problems. Your question however is a very broad architectural topic. You might find an answer over on Programmers, where this kind of question is more on topic. — simbabque 29 secs ago
 
12:16 PM
@LightnessRacesinOrbit I would never troll with reputation as yours :)
 
12:50 PM
@JimmyHoffa I think I also underestimate how much technical knowledge I might have conveyed through the related discussion, too
@Snowman hackerrank.com is what robert mentions all the time, I think
 
1:12 PM
@Ignacio :P
 
1:33 PM
@RyanChong learn OWIN - ASP.NET MVC has moved to using it largely and all the web stuff really has as it's the latest hosting technology - something of a replacement for ASP.NET - more underlying than MVC but more extensible and easy to attach into the whole application pipeline. It's the latest MS stack web tech.
@enderland I'm sure; I just mean regarding why you expected them to be more technically demanding. Most interviewers touch on technical stuff very lightly and more then not just poke rote stuff "What are some design patterns" "Why do you use a String(Builder|Buffer)" "What are the 4 words that every member of the church of OO has memorized to claim their membership" "What's the difference between is-a and has-a"
@MichaelT true, you get a cookie
oh I almost forgot
Happy Coffee Day
Damn daylight savings, it's all bright and sunny and crap when I'm driving in now, I don't feel all bright and sunny yet, I need that extra hour of slow dark for my body to rest on it's feet
 
I'm looking at Enterprise Architect...still not what I'm looking for. Where are all the good tools to take code and make pretty pictures?
 
1:50 PM
@ThomasOwens ...you think good coders have anything to do with creating enterprisey diagram garbage from their code? No, all you're going to find in that arena is really expensive stuff that corporations use to make non-technical people think they're understanding the code via pie-chart.
 
@JimmyHoffa How are people supposed to understand code, then? Do you just throw them at a couple hundred thousands lines of code per application? That's dumb. We all know that code is design, but every design has multiple views. How do I generate those other views that aren't text?
 
2:07 PM
@ThomasOwens who are "people" ? Tools like enterprise X are going to generate diagrams for managers. You want diagrams for engineers, you're going to have to wade into a pile of half-shod tools done by engineers for engineers and as you know, when we create things for other engineers we only half-ass it because they can figure it out amirite
 
@JimmyHoffa Enterprise Architect isn't for managers. It's for model based engineering. Which I think is kind of the wrong approach - it's too much pictures up-front, code later.
The fact that there are no tools for engineers done right is problematic. Especially given how there's so much complex software in everything.
 
@ThomasOwens it's for enterprise junk which is for managers; good engineers don't do that junk which is why you're looking at it and thinking The Hell? Pleh.
 
@JimmyHoffa So how do I explain my 300,000 lines of code application to someone brand new, if I don't have tools to generate graphical representations or facilitate better code browsing?
That's an engineering problem that good engineers must do.
When you're dealing with mission critical or life critical software, "go read the code" just doesn't cut it. At review time, you need to be able to stand up and explain your code to others. Code reading is only part of it - representing the code visually is the other, and that piece is missing from everything.
 
@ThomasOwens did something ever give you the impression there were good diagramming tools for code? All instances I've ever seen - across multiple huge code base enterprise environments - are downright terrible, just bilking cash from enterprise corps so they can claim to have the bestest enterprisey tooling.
Perhaps it could come in handy, but the motivation behind creating such tools that I've ever seen has been $$$ not an actual engineering motivation. Enterprise environments engineers don't get to choose tools anyways, it's managers, so that's who they have to market to
 
@ThomasOwens pen and paper for the diagrams
 
2:17 PM
the diagrams you refer to in those environments - have always been manually created IME
 
and a smart phone to digitize them
 
how detailed of an explanation/diagram are you referring to?
 
Right now, my workflow for diagramming is having my IDE open on one monitor and Dia on the other.
 
which is flawed yes because for life critical you want it to be an exact document of what the code is actually doing
but there just aren't tools for such that I've seen because frankly - code is feckin' complex. Damned bloody complex.
 
But it's such a mechanical process.
Without automation, it's error prone.
 
2:19 PM
How is a diagramming tool supposed to know which details to bring to the forefront and which details aren't supremely relevant?
 
@JimmyHoffa That should be up to the user after generation. I should be able to hide details, but not make changes that make my diagram incorrect.
 
@ThomasOwens what problem are you trying to solve here?
 
For example, I may generate a sequence call that shows the execution of a particular method. I may then remove certain method calls since they are extraneous.
@enderland Reverse engineering code to produce documentation.
 
@ThomasOwens this seems reasonable but I think you'd end up with something so large and detailed.. I don't know, again you're focusing on things an engineeer would want in a tool that would be so complex it would require management buy in to pay for it - and managers don't care about such, they just want to know they're being enterprisey so the motivation for people to create such tools is..
 
2:21 PM
@ThomasOwens why do you need documentation?
 
@enderland To provide a guide so that when someone new is handed an existing product that is 300,000 lines of code, they can understand it.
Have visual representations and English-language descriptions of code to go along with the actual code to help people.
 
@ThomasOwens I don't think that, unless you are doing something like doxygen, that any documentation at this level of detail will be trustworthy (imo at lesat)
 
@enderland Which is why it shouldn't be done the way I'm doing it now - an IDE on one screen and Dia on the other.
Every visual representation of the code should be generated from the code.
 
@ThomasOwens see in most enterprisey environments incorrectness is a matter of fact, so accuracy to the actual code implementation isn't strived for
 
But is that actually valuable? I'm not sure I'm seeing how having fancy pictures/diagrams of code is really helpful vs just... looking at the code
 
2:23 PM
after all, the code is rarely correct in such place, why should the documentation be
 
I get that a high level architecture diagram can be useful (with descriptions of the types of things most of the bigger pieces use) but at the level you are describing I might as well just read the code
 
@enderland he wants high level architecture diagrams that aren't misrepresenting the underlying implementation like most of us have ("Look at this fancy diagram of how well factored our system is!" "yeah...sure, our code is that well designed...riight..")
 
@enderland Absolutely. When you have 15 packages, isn't it easy to see that package x is where function y is implemented to narrow down what you need to read from 300,000 lines of code to 1000 lines of code?
 
Stateless classes should always be static... Is this true ?
 
@ThomasOwens the truth is I think you're looking for a tractor because you're living in a land of behemoth nasty monsters. The real solution is make smaller shit. a 300kloc system should be 30 10kloc systems and your problem isn't a problem
 
2:25 PM
@JimmyHoffa That is true.
And our newer things are actually built that way.
 
"Where is function Y implemented?" - well, it does X and all the X stuff is in system Z...
 
Unfortunately, when you're working with software that's 15 years old.
Maybe I am asking the wrong question.
 
@ThomasOwens I feel like this is an XY problem but I can't really figure out what the core problem is :)
 
IDEs allow you to navigate code easily. So if I need to produce a document to accompany my code to help people understand it, what should that document actually look like?
 
@enderland the core problem is his tractor is too small for the pile of garbage he's trying to build with, he's complaining nobody makes bigger tractors
 
2:28 PM
@Ignacio what language are you talking about? In general, no, classes should not be “static” even if stateless/immutable.
 
@amon C#
 
@amon do recall static in .NET and Java are vastly different
 
so are you all experienced in Java only :(
 
@Ignacio I would still say no - that is not an excuse for static
@Ignacio no, we only know rail here
 
@Ignacio Then no, static should only be used for classes that only serve as a kind of namespace rather than a class. I.e. for classes that hold no data. This is different from classes that hold no state.
E.g. I might have a MyDecimal class that holds an immutable number. All operations on that MyDecimal return a new instance, so its immutable/stateless. But you'll still want to create MyDecimal instances, so you can't use static classes.
 
2:32 PM
@amon I don't agree with the "have no data" part
there's a lot of reasons for static classes - I like to use static generic classes to hold data that's type-keyed because the generic creates a single instance of the class (static) per type parameter so you end up with a thread-safe type-keyed dictionary constructed by the compiler
but realistically there's more reasons not to use statics than reasons to use them
@Ignacio put it this way: Don't use static classes unless you have an explicit reason to enforce that there's never more than one instance of it
which is a very rare scenario and requires a pretty complex set of rules around what you want out of the type
 
@JimmyHoffa In my opinion, the only acceptable kind of data or state on a class level is a singleton instance pointer. Everything else introduces unmaintainable, untestable global state into a system.
 
@amon you mean on a class level static? err? I'm not sure I understand your statement
 
@JimmyHoffa first expression => ouch, ewwww, press close button as fast as I can
 
@JimmyHoffa static classes are uninstantiable and can only contain static functions/static member variables, which makes testing difficult (mocking etc.). You can't do any kind of DI. You can't conveniently pass a class around as a value. Ergo, static classes are even more evil than singletons.
 
So I got another cup of coffee. I think I'm going to take another walk through my problem. Maybe someone here can elaborate. Should I throw a text description up as a gist and let people read it or walk through it in chat?
 
2:40 PM
@JimmyHoffa I would start again after you both agree on statics :)
 
(I think we are talking about "static class Foo { }" rather than "static Foo myfoo = ...;")
 
@amon ok I see what you're talking about now - yes I'm familiar with that point and I don't disagree with it at all. I very rarely if ever use static classes (or static anything) - like I said though I do use it for thread-safe type-dictionary behaviour occasionally - and only as a very specific type of device for something that's not necessarily going to be tested
I used such to create my DI container for instance so it holds construction registrations in separate instances by type to improve performance over using a concurrent dictionary
but in actual domain code - I basically never use static anything
Long story short, if you have to ask about the usage of static - you shouldn't be using it.
 
Happy Coffee Day Progs
@JimmyHoffa How does one learn then?
 
@JimmyHoffa it's about concepts not usage :S - at least for me
 
@Ampt read about it, mess with it (mess with everything! Just not in production code.) and learn all the design techniques to avoid it, read about the pain points people have with it and try to think up solutions to them using it, read about the ways people love to use them and try to think up ways to accomplish their goal without it. Critical analysis basically and practice
@Ignacio What concept exactly? The concept of static? Do you know understand the mechanics behind it? Or is there a different concept you're pondering over?
 
2:50 PM
@JimmyHoffa So if you have to ask about the usage of static you should be using it everywhere?
talk about mixed messages early in the morning :P
 
OK. I'm thinking more about it. I think that it's my workflow and what I'm producing when is the problem.
 
@Ampt rtfm, experiment, teach, understand. At least that's my approach. In that order. Can't overemphasize bullshitting^H^H teaching on Programmers/SO/…
 
Yes, I know it has no instance in memory, it's only once loaded within an app domain, and will be shared across all threads,

what if a class has no data and no state, then should it be static ?
 
@Ignacio Usually yes, with one exception: when you need dynamic method dispatch, e.g. for the Visitor Pattern or some other design patterns.
 
@Ignacio Nope. Those are orthogonal concerns. A class should be static when you desire it's specific mechanics for some particular reason. Whether a class has state or data don't matter. Making it static means it can't be replaced in testing as @amon pointed out, as well as the more dangerous fact people learn from experience: Over time it will be used as static and then cannot have data/state added to it safely and it becomes painful to maintain
Just because it doesn't have state or data is no reason to elevate it to static, that's like saying just because a user is really careful you should elevate their privileges on production to admin; it makes it easier for you and others because they ask you and others to do less for them now just like static asks it's users to do less. But later, you may well regret it. Give users admin privileges when there is specific reason and desire for them to have those privileges. Make classes static when their is specific reason and desire for them to have those mechanics.
Like I said earlier, generic static classes give a specific useful benefit which I use sometimes because I want that specific behaviour. Honestly I'm not sure I can think of a time when I specifically want the behaviour of a static class that's non-generic though, but if the desire arose to enforce only a single instance of a certain type ever - that's when I would reach for static
Anytime I don't explicitly want to enforce that there are no more than one of that type, I wouldn't use static on a class. Even then I may just privatize the constructors for the class and publicize a static accessor on it that made available a single instance of it.
@Ignacio does that help at all?
 
3:00 PM
newbie developers, they add class with name X, add some methods to it and think they are doing OOP, infact they are just creating functions in a class with no state or method which it holds,

they don't do any unit testing, no there classes are just static classes (not following singleton) in that case i think static is the way to go forward
@JimmyHoffa I am going to copy this all, we will continue it some other time, time to leave now, thanks for the help :)
 
@Ignacio so you were asking to argue not to get advice? ;P
 
I'm ready for advice, now that I better understand my problem.
So, here's my current workflow. And by "my current workflow", I mean how things are structured right now on projects. And I have the power to influence this whole workflow if things are broken in it. Let's assume a greenfield development project at first.
I'm handed a set of requirements that describe what the software system must do and are allocated to sub-systems: things on the hardware, things in the air, things on the ground, test and support tools, etc. I go through and understand these requirements and likely derive other requirements from stakeholders to put a nice box around what I'm building. My requirements get approved and I start designing.
Designing has a few forms: myself at my computer/IDE, myself and one or perhaps two coworkers at a computer/IDE, myself with pen and paper or whiteboard, or myself with coworkers at a whiteboard/conference room. It can be assumed that everything valuable gets digitized - photographed or scanned and stored electronically in a defined location. Source code in version control.
At some point, for each software product, my work needs to be reviewed. There needs to be an initial design review (think PDR) and a detail design review (think CDR). These are technical/engineering reviews, though. Not programmatic/managerial. Those are at a much higher level than just software, unless only software is being delivered to a customer.
At the initial reviews, the question is "will this solution meet the given requirements in the intended environment?" At the detail review, the question is "is everything done to implement the solution?" Effectively, at the end of the final review, anyone should be able to go to a build server, produce the executable software, and load it onto the target hardware for a final and complete integration and acceptance testing process.
Along the way, there's this very poorly defined "design data" component. Clearly, one component is the source code. But that's likely to be insufficient. It doesn't capture design decisions made along the way very well - what does the software look like and why were certain decisions made.
To capture a description of a design, the IEEE has a standard. It's nicely called "IEEE Standard for Information Technology - Systems Design - Software Design Descriptions". It doesn't say much about the content of what a software design description (SDD) looks like physically or electronically, but it does provide guidance for what types of things to consider capturing.
Effectively, it says things like "document the context that your system lives in - the hardware environment, the users, other software - and treat your thing as a black box" or "write about the information that your software system needs to function or produces as output" or "write about your interfaces - hardware, software, protocols, user interfaces, etc". Pretty generic stuff, really. And standard.
 
It recommends using formal design notations, but doesn't specify it. However, the things captured in this SDD need to somehow be synchronized with the code (the actual, real, implementable design that is being implemented when you get a build). So how, throughout the process, do you evolve this data effectively?
Regardless of how you capture your system's interfaces, state transitions, data flows, class hierarchy, package structure, deployment structure, sequences, whatever, the representation of these things must stay in sync with the actual design. You can do it by hand, the way I'm doing it now, with your code open on one screen and a diagramming tool on another and writing. But that's both time consuming and error prone.
 
There are tools to auto-generate code from visio-like diagrams, but they're terrible. Mostly, I've seen them not be kept up to date.
 
@Telastyn That's the wrong way, though.
 
I think so, but not all do.
 
Your code is your actual design. You want to design description (your pictures and written English, as necessary) from your design (your code).
 
3:26 PM
from a process perspective, I've seen a task for each story to "update design docs", which then gets reviewed/QA'd like anything else and the story isn't done until that is shown as complete to the team's satisfaction.
 
And not just once in the project. You probably want to do it iteratively.
@Telastyn Yeah, that makes sense. But when you dig deeper, how do you actually do "update design docs"?
Ideally, there should be tools that consume source code and spit out pictures and then you write text about why your code (and therefore your pictures) look the way they do. Done.
Some pictures may need to be made by hand, like a deployment diagram, though.
 
human takes decisions/changes and versions the doc, adding changes by hand. If there's automagical diagramming tools, great. I've done that with Entity Framework's data model for example. But in my experience, they largely don't have the right granularity, and aren't good for teaching humans about the system.
 
user55340
@RobertHarvey out of close votes again.
 
but I'm also of the opinion that design docs are largely useless, because they lie and rot.
 
That's the conclusion I'm coming to. But it still feels wrong, especially when you look at the environments that have mission critical or life critical things. When you have to hand extract details from your source code into diagrams, if you make a mistake, you could get through a review with an error.
 
3:31 PM
sure.
 
user55340
(So far, two on deleted posts)
 
hence the "reviewed/QA'd like everything else". If you're in mission critical or life critical things, then a layered approach to testing to reduce risk is prudent.
 
@Telastyn I think the appropriateness of a design description depends on the software being installed. Some systems are small and simple enough that they don't need it. But if you're at a criticality where you're doing formal, non-advocate go/no-go on the approach reviews, you likely need to extract your source code into pictures to make it easier to discuss.
 
I disagree. Every step away from code is a step in the telephone game.
 
What about when you start dealing with multi-disciplinary people? Other engineers building physical (mechanical or electrical components) may not be able to read your code.
 
3:33 PM
let me rephrase, I disagree that it is necessary. It can often be useful
if they can't read the code, why are they doing reviews?
 
I still don't understand the core problem here
 
@enderland Did you read my massive wall of text?
 
@ThomasOwens yeah, I'll reread it again though
 
@Telastyn Behavior level. If software is reading from hardware, there needs to be joint reviews between the people building the customer hardware and the people building the software that reads it.
 
it still feels like its ... someone (maybe management? the IEEE standard?) is dictating "you must provide pictorial documentation of your code" and you are trying to solve that problem
 
3:36 PM
@enderland Yes. That's how you describe your design.
 
or are you asking, "how do you validate code meets its consumer needs?" (whether that consumer is end user, other code, etc)?
 
You have two pieces: your design and your design description.
 
sorry... Why? Something like that should be pretty clear in its test requirements, and the interface between the two should be clearly defined by one party (even if both are involved in negotiating it).
 
@ThomasOwens I'm still missing the "value add" aspect of this. is it checking a checkbox? what benefit is this providing?
 
why do hardware people at all care how the software is designed to do that?
 
3:37 PM
@enderland The benefit comes when your project is no longer a greenfield project.
 
if you are using requirement documents (whether use cases or formal requirements, or whatever), you can have some sort of validation process that the code does those - if you need something else then it should be a requirement too ?
 
Someone else is using your component in a different system, deriving a new component from it, or otherwise making changes.
 
user55340
... And now I'm sad to be out of close votes.
 
@enderland What do you mean by "if you need something else then it should be a requirement too".
 
user55340
-1
Q: Can perl be self documenting?

dsollenI'm mainly a java developer, I've touched a number of other languages, but I just started working on a Perl program this Monday for the first time. It is a prototype, they admit that it's rather quick-and-dirty and not very clean, I already see some minor issues (passing around variables that ar...

 
3:41 PM
I guess I still don't understand the root problem. I think I understand your proposed solution but I can't understand what is causing problems (maybe an example of this would help?)
 
The fact that there exists a technical PDR and CDR (including subject matter experts from outside the project team) drives the fact that you need some description of your design. Going in with source code is likely to be ineffective.
@enderland At different points in the project, one must generate descriptions of the designs. Right now, it's a painstaking manual process that can be very error prone.
 
"one must generate descriptions" <--- why? why must this happen?
 
@enderland What else do you bring into PDR or CDR?
 
and followup why, why is that different than the user requirements / use cases /etc ?
 
Would you really bring 10k lines of code into a CDR?
@enderland The user requirements are what the thing does. Your design is how it does it. Your design description is alternate views of your design.
When I go into a room to do a formal review (we aren't talking a code review here), I don't think it's appropriate to bring in source code.
 
3:45 PM
Just to clarify - CDR is - en.wikipedia.org/wiki/… ?
 
Kind of.
Yeah, that description actually works.
 
honestly, I don't know how anyone other than developers will have any meaningful feedback on a code design that is not expressed in the form of user requirements/cases/whatever-your-flavor
 
@enderland What do you mean? Participants in the review I'm talking about are other developers.
 
oh
so more like a code review for 10k LOC all at once?
 
The review is systems and software engineers ensuring that the software that exists is ready to be built and go to the very last round of quality assurance and acceptance testing.
@enderland Yeah. Code changes are peer reviewed along the way. This is a full-up software component reivew.
Document changes are also peer reviewed by at least one other person on the project team. This is a full-up review to say "here is what we were told to build, here is what we built that achieves each of these requirements, and here's why we did what we did". The document is essentially a readable version of the review.
 
3:49 PM
so the core problem is, "how do you represent 10k LOC to a group of technical people (unfamiliar with the code base) in such a way as to perform a meaningful review?"
 
@enderland Closer.
I have tools to represent SLOC. You have data flow diagrams and ER diagrams and UML models, and screenshots of user interfaces, and deployment diagrams.
It's a matter of actually generating those representations. How do you generate multiple representations of 10k+ LOC to a group of technical people such that they can understand that what you've built meets the requirements and why it is designed in the manner that it is?
Early on, it's easy. But these representations also need to be readable. Taking a picture of a whiteboard and uploading it to a controlled network drive is easy. But it may not be complete and detailed enough. And it's not easy to update if your code changes.
I could sketch out data flows for a handful of use cases in a few hours. Dia is slower than pen and paper. Both are error prone. But is this approach really the best thing that we have?
 
Every time I hear someone say "documentation is useless, because it's already obsolete by the time you finish writing it," I wonder if they're really saying "Documentation is hard, and I don't really want to do it." Which is true, of course.
 
@RobertHarvey Obsolete documentation is useless. But part of the problem is that making and updating documentation is hard (well, more time consuming than actually challenging).
 
user114359
@RobertHarvey depends on what the documentation is for. I am using some documentation right now for a stable interface. I'd be lost without it.
 
All of our documentation here is the auto-generated stuff that Visual Studio (or perhaps Resharper) provides. If you write a method called Foo(bar), it will literally write "Foos the bar."
 
3:56 PM
@RobertHarvey That sounds utterly useless.
 
The real documentation is the business domain research that the interns did, which is incomplete.
 
That's the other side of this. The documentation that is produced should actually be useful. It should make it easier to navigate, understand, or talk about the thing that matters most - the code.
@RobertHarvey Correct, but incomplete is better than incorrect.
 
True that.
 
It can be completed over time. Assuming you include time for documentation in your process.
For example, I have like 8 primary use cases for a piece of software. I may only have time to diagram 4 of them out in terms of data flow or sequence. But that's better than 0, 1, 2, or 3. Hopefully, I would prioritize - have information about the most critical (tied to the highest priority requirements) or most complex use cases.
 

« first day (1888 days earlier)      last day (3101 days later) »