Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
abraham linksys
Sep 6, 2010

:darksouls:

coffeetable posted:

the mistakes you make in structuring your app are going to dwarf the effects of any suboptimal choice of technology

there is only one exception to this, and it is mongodb

mongodb is the only technology choice so bad you might as well hire a few extra engineers so you'll have enough manpower for the inevitable emergency migration off of it

Adbot
ADBOT LOVES YOU

more like dICK
Feb 15, 2010

This is inevitable.

MononcQc posted:

I'm looking for a new avatar (mine is over a year outdated) and have totally 0 ideas of what to pick that would fit PL poo poo so I am turning to this thread



I'm guessing product placement may work but eeeh





Any frame from "Erlang The Movie"

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
make an av where the squid is answering the telephone

title text: "I believe I did, Bob"

Shaggar
Apr 26, 2006

Pollyanna posted:

how is that, im thinking of making my job app tracker in ko

does it play well with an sql database? or should I use json instead

well for this project I wasn't allowed to generate any pages on the server, so its all static html and js w/ a rest api returning json. It works very well tho. I defined a bunch of models w/ default values for fields and then when the page is loaded knockout binds the model to the page and then theres an ajax call to get the real data from the server. then I stick the data into the knockout mapper which auto maps the json data into the model fields. when the fields are updated knockout detects it and updates the values on the page.

if you're generating the pages server side you probably don't need it unless you want to update parts of the page independently in which case ur still doing json.

you're either gonna generate the json or the page content from ur model ur getting out of sql either way.

RICHUNCLEPENNYBAGS
Dec 21, 2010

coffeetable posted:

good on you for giving authors a buck through safari instead of exploiting sites like library genesis!

don't thank me, thank my employer.

Symbolic Butt
Mar 22, 2009

(_!_)
Buglord

biochemist posted:

anyone working on this?

https://stripe-ctf.com/account

i don't know poo poo about data structures so i'm hopeless

I'm probably missing some better solution but for the first one looking up sets sounds simple enough.

MononcQc posted:

I'm looking for a new avatar (mine is over a year outdated) and have totally 0 ideas of what to pick that would fit PL poo poo so I am turning to this thread



I'm guessing product placement may work but eeeh

just wanna say that I showed lyse to a friend and he was like "oh man I know this is rad just by looking at this dude's drawings" :3:

Common Coder
Jul 25, 2012


i like the cover because i would want to shoot darts at the eyes of people who own this book

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

MononcQc posted:

I'm looking for a new avatar (mine is over a year outdated) and have totally 0 ideas of what to pick that would fit PL poo poo so I am turning to this thread
forget PLs use this

tacodaemon
Nov 27, 2006



it might not be pl specific but this is the finest of all technology-related images



e: oh wait i forgot the license youll have to use as your custom title

Copyright (C) 1999, Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this image under the terms either:
  • the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version, or
  • the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts.

These images are distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You can find a copy of the GNU General Public License and the GNU Free Documentation License via the preceding links. If you have trouble downloading it, write to the Free Software Foundation, Inc., 59 Temple Place, Fifth Floor, Boston, MA 02110-1301 USA.

tacodaemon fucked around with this message at 05:20 on Jan 23, 2014

Maluco Marinero
Jan 18, 2001

Damn that's a
fine elephant.

coffeetable posted:

it doesn't matter, flip a coin and get to work. this early on, the mistakes you make in structuring your app are going to dwarf the effects of any suboptimal choice of technology

i say this as someone who umm'd and ah'd over which frameworks to use in this same thread not very long ago

So true. Especially with these front end frameworks. Spent a year working on Angular stuff but after hitting serious performance bottlenecks using it the right way, I'm done with that noise.

You're not going to be able to find out the things you REALLY need to know about a piece of tech til you actually build poo poo with it.

double sulk
Jul 2, 2010

dehumanize yourself and face to rails

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Gazpacho posted:

DATABASES DATABASES DATABASES DATABASES DATABASES
____/

Sapozhnik
Jan 2, 2005

Nap Ghost
web 2.0 is dumb, server side logic and no javascript every day

get the gently caress off my lawn

skeevy achievements
Feb 25, 2008

by merry exmarx
how do you feel about the practice of websites that dynamically generate entire client applications in javascript, mr dog

fritz
Jul 26, 2003

tacodaemon posted:

it might not be pl specific but this is the finest of all technology-related images




flipper all tastefully covering up the groin tip

Blotto Skorzany
Nov 7, 2008

He's a PSoC, loose and runnin'
came the whisper from each lip
And he's here to do some business with
the bad ADC on his chip
bad ADC on his chiiiiip
fsf really does have a fetish for portraying linux as the junior partner

Shaggar
Apr 26, 2006
gpl 3 is some hosed up fascist bullshit

Shaggar
Apr 26, 2006

Mr Dog posted:

web 2.0 is dumb, server side logic and no javascript every day

get the gently caress off my lawn

web 2.0 is dumb as poo poo, knockout just makes some of it easier. The cool thing about knockout is you don't have to fill it with ajax, you can have your server generate the javascript model and content and put it all on the page and then just let knockout handle things like adding dynamic fields and stuff. Legitimate stuff you would normally do w/ jquery but is still gay as balls javascript that you want to do as little of as possible.

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Otto Skorzeny posted:

fsf really does have a fetish for portraying linux as the junior partner

compensating i guess

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Shaggar posted:

web 2.0 is dumb as poo poo, knockout just makes some of it easier. The cool thing about knockout is you don't have to fill it with ajax, you can have your server generate the javascript model and content and put it all on the page and then just let knockout handle things like adding dynamic fields and stuff. Legitimate stuff you would normally do w/ jquery but is still gay as balls javascript that you want to do as little of as possible.

all i do is have the webapi server emit json/xml/ and then let the frontends consume that however they wish

Shaggar
Apr 26, 2006
yeah webapi2 is great and ez and if someone else is writing the webs they can do whatever, but if its me im gonna make it as painless as possible for me and the user.

Nomnom Cookie
Aug 30, 2009



Shaggar posted:

gpl 3 is some hosed up fascist bullshit

this is true, apache license ftw

Cybernetic Vermin
Apr 18, 2005

software as a service sort of shat all over the gpl ideal so they more or less had to do gpl3 or admit that things werent working out, though the end result was the same

we live in the hilarious world where google is an free software darling because they never show you even the binaries, which due to the mental limitations of the average nerd means they get perceived as more open than old-style vendors like apple and microsoft who actually ship stuff to people

Malcolm XML
Aug 8, 2009

I always knew it would end like this.

Cybernetic Vermin posted:

software as a service sort of shat all over the gpl ideal so they more or less had to do gpl3 or admit that things werent working out, though the end result was the same

we live in the hilarious world where google is an free software darling because they never show you even the binaries, which due to the mental limitations of the average nerd means they get perceived as more open than old-style vendors like apple and microsoft who actually ship stuff to people

sounds like u havent heard of agplv3


the worst of all licenses

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
i thought gpl 3 existed because rms spazzed out when he heard that people couldn't hack their tivos

Gazpacho fucked around with this message at 18:45 on Jan 23, 2014

Shaggar
Apr 26, 2006
haha so much linq abuse. linq is so cool. never doing a for loop ever again

Nomnom Cookie
Aug 30, 2009



yeah gpl3 is for tivo agpl3 is for google

gonadic io
Feb 16, 2011

>>=

Shaggar posted:

haha so much linq abuse. linq is so cool. never doing a for loop ever again

ONE OF US

now use bind on option types!

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

Shaggar posted:

haha so much linq abuse. linq is so cool. never doing a for loop ever again
you ever had a play with F#?

baby i got a |> ready for you

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY
and also a single-pass compiler, but lets not talk about that

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde

Shaggar posted:

haha so much linq abuse. linq is so cool. never doing a for loop ever again
sounds like you're doing a bad thing

Gazpacho
Jun 18, 2004

by Fluffdaddy
Slippery Tilde
we need a clippy emote

Malcolm XML
Aug 8, 2009

I always knew it would end like this.


mapM_ :(

gonadic io
Feb 16, 2011

>>=
in what world is

code:
foreach (Foo foo in foos) {Console.Writeline(foo);}?
better than
code:
foos.ForEach(Console.Writeline);
??

sure if you've just got some code block involving foo there the first is more clean (mostly because of bad lambda syntax) but that's not the case in every situation!

and the argument about whether or not your ForEach should return an expression or just perform a side-effect is completely nonexistant too - see the differences between:
- map (pure function returns an expression)
- mapM (side-effecting (monadic) function returns an expression)
- mapM_ (side-effecting function doesn't return anything)

gonadic io fucked around with this message at 20:10 on Jan 23, 2014

Shaggar
Apr 26, 2006

i don't think im actually using ForEach im just using stuff like GroupBy and Select and ToDictionary for transforming data.

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

AlsoD posted:

in what world is

code:
foreach (Foo foo in foos) {Console.Writeline(foo);}?
better than
code:
foos.ForEach(Console.Writeline);
??

sure if you've just got some code block involving foo there the first is more clean (mostly because of bad lambda syntax) but that's not the case in every situation!

LINQ expressions are supposed to be free of side effects, because procedurally-minded devs playing with lazily-evaluated side-effects is a recipe for disaster. of course there's nothing enforcing that and people do xs.Select(x => spray_state_everywhere(x)) all the time, but the C# team feel that a ForEach() would just be encouraging people

if you really want that syntax, you can still do xs.ToList().ForEach(x => poop(x))

gonadic io
Feb 16, 2011

>>=
hmmmmm if only there were some way of statically knowing which expressions performed side effects and possibly even some way to have some rules about where they can or can't appear????

gonadic io fucked around with this message at 20:23 on Jan 23, 2014

Zombywuf
Mar 29, 2008

Then the language could nicely let us break those rules because rules are hard.

coffeetable
Feb 5, 2006

TELL ME AGAIN HOW GREAT BRITAIN WOULD BE IF IT WAS RULED BY THE MERCILESS JACKBOOT OF PRINCE CHARLES

YES I DO TALK TO PLANTS ACTUALLY

AlsoD posted:

hmmmmm if only there were some way of statically knowing which expressions performed side effects and possibly even some way to have some rules about where they can or can't appear????

was just adding in a reply to your edit, but yeah that's the thing. map/mapM/mapM_ is fine because anyone working in haskell knows what a pain state is and has had lazy evaluation drilled into them since day one. in contrast, the majority of .net devs probably dont know what a side-effect is, and all LINQ's laziness means to them is that they need to scatter some ToList()'s around to stop VS complaining

Adbot
ADBOT LOVES YOU

gonadic io
Feb 16, 2011

>>=
talking about breaking rules; i was having a fun read about the safe uses of unsafeCoerce* and unsafePerformIO** the other day. perhaps they should be renamed to probablyUnsafeX instead?

* this will apparently be fixed in the next version of ghc but at the moment:
code:
newtype Age = Age Int -- Age gets removed at compile time
intToAge :: Int -> Age
intToAge = Age -- guaranteed to have no runtime cost

intsToAges, intsToAges2 :: [Int] -> [Age]
intsToAges = map Age -- still needs to traverse the list so O(n)

intsToAges2 = unsafeCoerce
and since [Int] and [Age] have the same runtime representation intsToAges2 is safe and is back to getting compiled out

**: mostly for IO that only happens once and you don't care when for example reading config files or for printing trace statements

gonadic io fucked around with this message at 20:28 on Jan 23, 2014

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