Zajt | Hello! Is this UML diagram https://go.gliffy.com/go/share/sm4frpobsubifu6j6jv8 a correct example of the factory method design pattern? |
rindolf | Zajt: is this homework? |
Zajt | rindolf kind of, it's from school work but the purpose is not to make a UML diagram. I just try to explain the pattern by making this figure, but needs to be sure that it's correct so I don't miss anything in it |
rindolf | Zajt: ah |
rindolf | Zajt: it figures that it is schoolwork |
SPEEDRAC1ST | UML's main purpose is to keep CS profs employed and students busy |
rindolf | SPEEDRAC1ST: heh |
iawc | Though the profs still suffer a concussion when doing both at the same time. |
Zajt | rindolf what do you mean? |
rindolf | Zajt: UML and Design Patterns are not oof much interest elsewhere |
SPEEDRAC1ST | design patterns became a buzzword recently |
SPEEDRAC1ST | also, "anti-pattern" |
Zajt | yeah but did you read what I wrote above? I do it for a report in school so I have not an exercise that says "Write this UML-diagram", but I have done it myself just to illustrate the problem. But I want to make sure it's correct what I have done |
Groogy | design patterns and anti-pattern are super old buzzwords |
Groogy | what do you mean recently |
Groogy | the last 30 years? |
SPEEDRAC1ST | recently there was a resurgence of those |
Groogy | lol okay |
SPEEDRAC1ST | "we're kewl, we use JavaScript design patterns" |
Groogy | Designu-patteru-jutsu |
SPEEDRAC1ST | are you a pattern-ninja? |
Groogy | HAI! |
SPEEDRAC1ST | then join our innovative revolutionary startup which has lots of hype and VC monies |
Groogy | Actually I think it is good to read about design patterns and anti-patterns, to just have in back of your mind. But to actively try and "apply" the "molds" is not really the intent of it |
SPEEDRAC1ST | some of those are neat. the ones that are about complexity management, and organization |
SPEEDRAC1ST | but most are barely necessary |
SPEEDRAC1ST | but overall, WTF would one need design patterns to make yet another web app? |
rindolf | SPEEDRAC1ST: is it a disruptive startup? |
SPEEDRAC1ST | it's about to disrupt at least 3 industries |
rindolf | SPEEDRAC1ST: heh |
rockman37 | Has anyone made a webapp for making webapps yet? |
bookworm | WordPress |
rockman37 | Hah. |
Groogy | but from a glance it looks like you have what I would expect out of a factory |
SPEEDRAC1ST | AI can drive cars, but can't make web apps yet |
rockman37 | My friend's friend is apparently working on a mobile app for making mobile apps. |
rockman37 | (Which my friend plans to use to make a mobile app.) |
PlanckWalk | There are tons of apps for making apps |
SPEEDRAC1ST | PlanckWalk: none of them are functional, since an emulator is required to run one |
SPEEDRAC1ST | also, they don't solve the distribution problem |
merijn | Hell, people can't even make decent apps yet... |
SPEEDRAC1ST | define decent |
SPEEDRAC1ST | Instagram and Snapchat are totally decent for uploading food pics and duckface pics |
merijn | SPEEDRAC1ST: They're several gigabytes larger than they should be |
ongy | snapchat? isn't that exclusively for sexting? |
ongy | you have phone apps that are multiple gigabytes? |
SPEEDRAC1ST | merijn: so is all software these days, except for embedded |
SPEEDRAC1ST | ongy: if you include the SDK, yes |
merijn | ongy: I'd like to introduce you to my friend, the hyperbole :) |
SPEEDRAC1ST | mobile apps themselves are 100s of MB |
rockman37 | Which is still huge for a program. |
rts-sander | these apps take hundreds of terabytes to display a single button! |
rindolf | merijn: are they a boy or a girl? ;) |
rockman37 | fuck buttons |
Groogy | well something I guess? I don't really know the task you are having from your teacher |
merijn | rts-sander: Ah, I see you too have downloaded slack? |
merijn | rindolf: Probably a boy, hyperbole is constantly 1-upping people ;) |
SPEEDRAC1ST | Groogy: Zajt: http://www.developermemes.com/wp-content/uploads/2013/03/java-problem-factory.jpg |
rindolf | merijn: :) |
rockman37 | SPEEDRAC1ST: rofl |
rindolf | SPEEDRAC1ST: heh, still funny |
rts-sander | hahaha Java is verbose hahahaha |
merijn | rts-sander: I refuse to download atrocities that spend 500+MB memory just to run IRC >.> |
rockman37 | I refuse to download atrocities full stop. |
merijn | irssi is taking 8MB after running for, like, 2 weeks straight in 15 channels... |
rts-sander | lightweight software is the best! |
SPEEDRAC1ST | merijn: Firefox sometimes takes 2+GB of RAM |
rts-sander | lets port it all to web applications |
xssposed | what about weechat |
ongy | I had chrome at >3G. fun times |
xssposed | i use it a lot |
xssposed | its nice |
SPEEDRAC1ST | Facebook tab sometimes eats 100s of MB running all of the tracking and ad JS code |
Groogy | I've had weechat running for more than a mount without restart |
Groogy | 25mb |
SPEEDRAC1ST | rts-sander: heard of progressive web apps? |
merijn | ongy: WTF are you doing? Chrome is at, like, 1GB for me with 40 or so tabs open in 4 windows |
Batholith | Chrome likes to eat RAM, that is known |
Zajt | haha SPEEDRAC1ST |
rindolf | here kwin_x11 consumes more RAM than firefox - no idea why |
xssposed | there's an extension that counteracts Chrome's hunger for RAM. i forget the name of it, but it saves 90% |
merijn | Chrome's memory usage is increased a bit by the fact that it uses 1 process per tab, but it's not that drastic. Most of the gross memory usage that people blame on Chrome is just really "websites being shitty in the 2010s" |
rockman37 | rindolf: Is it huge, or is Firefox small? |
xssposed | has my browser running faster |
rindolf | rockman37: well, i recently restarted ff |
rockman37 | rindolf: Ah. |
rindolf | xssposed: heh, nice nickname |
SPEEDRAC1ST | websites also have gotten a lot fatter |
SPEEDRAC1ST | probably due to ads |
rockman37 | We should stop feeding them or something. |
xssposed | rindolf: heh, ty |
* rindolf | recently reduced the HTML of his site |
rindolf | using https://github.com/kangax/html-minifier |
SPEEDRAC1ST | also, JS frameworks and libs are 100+K LoC |
rindolf | SPEEDRAC1ST: are they webscale? |
SPEEDRAC1ST | maybe. they're responsive for sure |
rindolf | http://shlomifishswiki.branchable.com/slash-dev-null_is_WebScale/ |
SPEEDRAC1ST | webscale is usually said about databases |
rindolf | SPEEDRAC1ST: both responsive and progressive? Impossibru |
rindolf | you can only have at most 1 |
SPEEDRAC1ST | progressive is the new buzzword, gotta replace them to keep the hype alive |
merijn | Man, the one JS keyword that pisses me off the most is "isomorphic", because that's not what isomorphic means, you jackasses |
rindolf | SPEEDRAC1ST: are progressive web apps webscale enough? |
ongy | I want a /dev/null directory to copy things into... |
SPEEDRAC1ST | rindolf: come on. webscale is so 5 years ago :) |
rindolf | ongy: use asynchronous writes |
okuu | merijn: I edited the “isomorphism” tag on Stack Overflow to explicitly refer to, you know, isomorphisms. :-p |
rindolf | SPEEDRAC1ST: heh |
merijn | okuu: <3 |
merijn | ongy: Why? |
SPEEDRAC1ST | merijn: is it a reserved keyword? |
merijn | SPEEDRAC1ST: No, it's "running the same code on the client as on the server", or some shit |
SPEEDRAC1ST | JS's scope pisses me off the most. something as simple as accessing a variable inside foreach is complicated |
SPEEDRAC1ST | merijn: oh, you mean buzzword |
merijn | s/'s scope// |
merijn | SPEEDRAC1ST: Yeah, I haven't had my coffee yet |
okuu | SPEEDRAC1ST: But there is an excuse - JavaScript was designed in 10 days! |
rindolf | ongy: mount /dev/null as /home |
okuu | Errr, designed and implemented. |
SPEEDRAC1ST | okuu: because Netscape managers rejected a Scheme-based language. and Self-based one too |
okuu | rindolf: Double-checking my solutions to my topology handout. |
merijn | I respect Brendan Eichman, because for something designed and implemented in 10 days JS is an impressive feat. But as language...god...fuck it |
merijn | okuu: Sounds more fun that figuring out how to formulate my API to work with 3 slightly different libraries that don't have a common API :) |
SPEEDRAC1ST | merijn: he proposed to use Scheme, Netscape said "no way". Then he decided to prank them with JS. and now we're paying for it |
ongy | rindolf: still a file, so I can't access /home/ongy |
ongy | merijn: because I wanted to direct an output directory to /dev/null before and it didn't work |
okuu | merijn: At least I'm allowed (in fact, required) to make sense. |
merijn | okuu: Trying to make my library play nicely with pipes, conduits, and just regular old forM/mapM...it's...tricky :p |
rindolf | SPEEDRAC1ST: it needed to resemble Java |
merijn | ongy: I don't quite understand what "copying to /dev/null" is supposed to do, though? |
rindolf | merijn: oooh - buzzwords |
mniip | but those are words |
merijn | rindolf: Hmm? |
ongy | merijn: why are you doing that? is it something you want others to use? |
rindolf | merijn: "pipes", "conduits" |
okuu | rindolf: Haskell plumbing libraries. |
merijn | rindolf: They are haskell libraries :) |
ongy | merijn: ignore all output that should be written there. sometimes I need that |
merijn | ongy: Because I use a mix of pipes and conduits in different projects and I find myself reinventing the same boilerplate |
merijn | ongy: And I wanna be done with it once and for all |
SPEEDRAC1ST | I've learned about Cloud Haskell a few months ago |
SPEEDRAC1ST | I guess they chose the name for marketing reasons |
mniip | merijn, that "once and for all" bit sounds unconvincing |
okuu | rindolf: Basically, so that you can replace “going crazy debugging” with “doing crazy with types” when doing stream processing. Although the “going crazy debugging” is sometimes not completely avoided. |
merijn | mniip: Why? |
rindolf | okuu: heh, sounds nasty |
okuu | rindolf: Yeah, but it's how Haskellers think. |
rindolf | okuu: haskellers are crazy? |
okuu | rindolf: Everyone is crazy in their own way. |
mniip | I must say haskell debugging sucks |
rindolf | okuu: true |
iawc | okuu: Haskell is just an API for common structures. |
mniip | why does everyone try to mimic imperative program debugging |
merijn | okuu: To be fair, conduits/pipes DO make some tasks that are really obnoxious in other languages really nice |
iawc | Or is that Ruby? |
mniip | functional semantics need to reflect respectively in the debugger |
iawc | They seem the same in a way. |
rockman37 | iawc: Ruby and Haskell? |
merijn | rindolf: Basically, they abstract over "I want to stream process data from a pipe/socket/file/whatever in constant memory" |
SPEEDRAC1ST | sounds like a job for a queue |
okuu | merijn: Then it turns out you want to backtrack, and everything goes to hell. |
rindolf | rockman37: reminds me of that guy who said Visual Basic was essentially the same as C++ |
merijn | okuu: So, don't do that then :) |
merijn | okuu: I have plenty of cases where I don't need that |
merijn | okuu: If you need backtracking, use STM or something |
okuu | merijn: I have to admit, when you don't need to backtrack, pipes and conduit are very nice. |
rindolf | rockman37: and then went on to try to create a lossless audio compression that could compress a 40 MB WAV file into 20 kB |
rockman37 | rindolf: Well, I wouldn't touch either :p |
merijn | SPEEDRAC1ST: Yeah, except that all the annoying bits of getting data, putting them in queues, adapting your code to read from them, etc. has all been done for you |
rockman37 | rindolf: Lossless? |
mniip | something something yoctoparsec |
rindolf | rockman37: yes |
SPEEDRAC1ST | merijn: by the corresponding libraries? |
merijn | SPEEDRAC1ST: They're basically a bunch of tools for turning stuff like a parser for a single object you wrote into one that gets fed data on demands and output an object every time it finishes (with further tools to incrementally process those) |
merijn | SPEEDRAC1ST: It's not earth-shattering rocket science. It's just a bunch of really convenient tools that I haven't found an adequate replacement for in other languages |
okuu | merijn: Probably because they aren't conveniently expressible in other languages. :-p |
mniip | everything is possible when you have programmable semicolons |
rindolf | rockman37: i think he was the one who was going on about that Planet Source Code thingy |
okuu | SPEEDRAC1ST: Think iterators on steroids. |
SPEEDRAC1ST | merijn: OK. I haven't had that exactly problem, but if I had I'd use something like Elixir's GenStage |
rockman37 | Programmable semicolons sound nasty. |
rockman37 | rindolf: Haven't heard of that. |
mniip | rockman37, ish, perl does that all the time |
rockman37 | "4.3 million lines of source code examples and apps to build from." Hmm... |
rockman37 | mniip: Interesting. |
iawc | howdy do dat? |
mniip | anyway, I remotely remember someone saying that monads (their do-block syntax specifically) are just programmable semicolons |
rindolf | rockman37: under a contradictory licence |
rockman37 | rindolf: Serves users right, I say. |