|
Kevin Mitnick P.E. posted:what got me started though, is when you were pearl clutching about an fd wrapper having a vtable and how it was so much better to write and maintain code to avoid that Agreed, the fact that there is a part that is slow means we can make every part slow. Have you heard the good word of Electron yet? -------------- gently caress that's a terrible start of new page Xarn fucked around with this message at 13:30 on Dec 5, 2018 |
# ? Dec 5, 2018 13:26 |
|
|
# ? Apr 24, 2024 18:52 |
|
Powerful Two-Hander posted:same on all of this except for In an ideal world we would actually co-ordinate updates to the same areas of code but lol as if we have any idea what parts of the code the sprints will be touching with their seemingly unrelated bug fixes. We just accept it and catch the issues in QA. Probably.
|
# ? Dec 5, 2018 13:28 |
|
echinopsis posted:ok so this web app idea I have I have decided im using heroku, using python and postgresql Django is very rad
|
# ? Dec 5, 2018 14:07 |
|
AggressivelyStupid posted:Django is very rad if you mean the guitarist or the movie character i agree, the web framework is just a web framework
|
# ? Dec 5, 2018 14:11 |
|
TheFluff posted:no, but arm can at least in theory be run as either endianness. not sure if anyone actually does that tho. Lots of embedddd RISCs can do this but it's all little endian these days. Your primary source of big endian computers in 2018 is probably old SPARC Solaris boxes.
|
# ? Dec 5, 2018 14:24 |
|
we still have a solaris server on a rack specifically because it is big endian and relatively fast. we used it on a codebase that was written with big endian in mind, and nothing was abstracted so porting it to a little-endian arch was impossible. well it was possible, but it was 1+ million lines of C and it was just easier to find an old solaris machine to run the job it needed to every 4 months.
|
# ? Dec 5, 2018 14:33 |
|
Spime Wrangler posted:ctps: so i'm writing a program in kotlin that does a lot of graph manipulation and needs a really solid hierarchical layout algorithm for visualization. i'm drawing things using tornadofx/javafx and mostly need a system for putting Node A at position (x1, y1) and Node B at position (x2, y2) etc. in a pretty way. there's what claims to be an igraph java interface but it's also old as hell, you might be able to hack apart whichever igraph layout thing works best, also maybe prefuse: http://prefuse.org/doc/api/overview-summary.html or graphstream : http://graphstream-project.org also digging around, what part of things are only allowing png output? my reading of graphviz suggests it supports stuff like svg
|
# ? Dec 5, 2018 15:43 |
|
Spime Wrangler posted:ctps: so i'm writing a program in kotlin that does a lot of graph manipulation and needs a really solid hierarchical layout algorithm for visualization. i'm drawing things using tornadofx/javafx and mostly need a system for putting Node A at position (x1, y1) and Node B at position (x2, y2) etc. in a pretty way. the last time I did a graph thing I did a litterrall command line call to graphviz. it was really stupid but it worked and I could get whatever format I wanted.
|
# ? Dec 5, 2018 15:49 |
|
if you can use javascript then https://d3js.org/ can do all sorts of crazy visualisations and can either auto generate node positions based on a hierarchy or take them as specific coordinates and then wire them up for you or just do boring bar graphs
|
# ? Dec 5, 2018 16:00 |
|
Soricidus posted:you don’t mention jgraphx. it might meet your needs. ignore all the mentions of swing, you can use the layout code by itself in a javafx gui. (or just embed a swing widget if you want to use their rendering) I have no intention of touching swing so I didn't look too closely at that option. looks like they have a decent algo so I might give that a shot before going hog wild. fritz posted:there's what claims to be an igraph java interface but it's also old as hell, you might be able to hack apart whichever igraph layout thing works best, also maybe prefuse: http://prefuse.org/doc/api/overview-summary.html or graphstream : http://graphstream-project.org well by PNG i'm more referring to image formats in general. doing a command-line call to graphviz, saving a svg, loading an svg, parsing it for node locations, and then converting all that into my coordinate system for every redraw in a completely separate visualization seemed a little too hacky. Powerful Two-Hander posted:if you can use javascript then https://d3js.org/ can do all sorts of crazy visualisations and can either auto generate node positions based on a hierarchy or take them as specific coordinates and then wire them up for you trying to avoid javascript for now. I have a javascript heavy project or two that I have to jump into soon enough so I'm trying to keep this one clean for when I need a palate cleanser gonadic io posted:instead of rewriting the whole thing, what about forking graphviz and hikacking the bit where it turns whatever internal representation into a png pretty sure I'm more likely to reimplement the algorithm from scratch than spool up on the toolchain and surgery necessary to make this happen. I sure as heck aint posting in the good programmer thread!
|
# ? Dec 5, 2018 19:43 |
|
Xarn posted:Agreed, the fact that there is a part that is slow means we can make every part slow. please, tell me more about your elegant avoidance of extraneous copies by way of move constructors
|
# ? Dec 5, 2018 19:46 |
|
c++ is the programming language for masochists who memorized digits of pi for fun as a child and now want to combine their love of trivia with their love of self-harm and get paid for it to boot
|
# ? Dec 5, 2018 19:47 |
|
Kevin Mitnick P.E. posted:c++ is the programming language for masochists who memorized digits of pi for fun as a child and now want to combine their love of trivia with their love of self-harm and get paid for it to boot
|
# ? Dec 5, 2018 19:51 |
|
C++ has the worst goddamn standard library, hopefully we can at least agree on that Love to have a string type and text formatting routines that are completely and utterly worthless
|
# ? Dec 5, 2018 20:00 |
|
Kevin Mitnick P.E. posted:c++ is the programming language for masochists who memorized digits of pi for fun as a child and now want to combine their love of trivia with their love of self-harm and get paid for it to boot Ooh, maybe I should put more effort into learning it Sapozhnik posted:Love to have a string type and text formatting routines that are completely and utterly worthless Same, haskell's standard string is a linked list and it's formatting is 1) usually done with manual ++ing, or 2) there is a lesser known library based on printf contorted into haskell's type system
|
# ? Dec 5, 2018 20:10 |
|
C++ standard library is good As long as you avoid std::string, formatting via streams, any attempts at i18n and other things I am forgetting right now.
|
# ? Dec 5, 2018 20:10 |
|
People don't though, that's the problem Some are even perverted enough to use boost
|
# ? Dec 5, 2018 20:16 |
|
Real talk, I actually use Python a lot for scripting and when I don't care for efficiency, and I am completely ok with the fact that my scripts need orders of magnitude more cycles than a proper code would. At the same time, I make my living by writing software that needs high-throughput and already needs 70+ gigs of ram when using strongly typed ints that need only 4 bytes of memory, so yes, I am kinda sceptical of the "just 16 bytes overhead, who cares" approach.
|
# ? Dec 5, 2018 20:16 |
|
Kevin Mitnick P.E. posted:please, tell me more about your elegant avoidance of extraneous copies by way of move constructors just for fun heres a serious answer too yeah it doesn't really matter how fast your code is. do something simple and correct in a decent language like java and your code will never be the bottleneck in a "query db, make http requests, repeat" loop. oh no everything is only half as fast as if i subjected myself to c++--idgaf. i guess it will just have to take 10 unnecessary microseconds between my 1ms db call and my 50ms http call "but my code is very important and does things with bytes and it really really matters how fast i shuffle records from disk to ram and back. a factor of 2x is competitive advantage". nope, you're just ignoring the opportunity cost of using c++, the algorithmic and architectural improvements you could have made but didn't while preemptively optimizing every line you touch. i'm sure it's very satisfying to know that every byte is doing the work of a word and you've bled every bubble out of the pipeline, but it doesn't matter and it's not worth it p.s. now if you are doing realtime and can't afford STW ever, or can afford young gen collections but not STW full collections, java will give you a problem. use C, or if you really can't live without whips and chains, rust
|
# ? Dec 5, 2018 20:17 |
|
Spime Wrangler posted:well by PNG i'm more referring to image formats in general. doing a command-line call to graphviz, saving a svg, loading an svg, parsing it for node locations, and then converting all that into my coordinate system for every redraw in a completely separate visualization seemed a little too hacky. graphviz has a plain text out format that is literally just a list of nodes and edges though, that seems by far the simplest option. you could even just capture stdout without having to save / load a file
|
# ? Dec 5, 2018 20:22 |
|
Xarn posted:Real talk, I actually use Python a lot for scripting and when I don't care for efficiency, and I am completely ok with the fact that my scripts need orders of magnitude more cycles than a proper code would. dude i once spent a day rewriting nested n-dimensional arrays to a flat array with indexes calculated by hand, cause that's what you have to do if you're using java and don't want to alloc a million little blocks of memory when the profiler shows that poo poo matters. you know what didnt matter, the vtable pointer in the handler class
|
# ? Dec 5, 2018 20:25 |
|
Kevin Mitnick P.E. posted:
Slowing down our code so that it takes twice as long in computation is literally adding an hour of runtime....
|
# ? Dec 5, 2018 20:39 |
|
Xarn posted:Real talk, I actually use Python a lot for scripting and when I don't care for efficiency, and I am completely ok with the fact that my scripts need orders of magnitude more cycles than a proper code would. Performance is nice. Until you enter into an environment where sending off your bits and bytes takes magnitudes longer than any code ever would.
|
# ? Dec 5, 2018 20:51 |
|
A problem I am running into with Java is that I have an orm running in every one of my service processes and when that takes up 300mb of memory for each instance and you are running on an under powered server that starts to add up fast. Especially if it is a tiny http thing that just know how to handle a handful of requests but it has to know about the entirety of my sprawling schema. (Yeah I am defective enough to use java for hobby projects) Python is nice for quick throwaway stuff, node is alluring as well esp with typescript, but it has a pathological obsession with DO NOT BLOCK EVER FOR ANY REASON EVERYTHING MUST BE CONTINUATION PASSING STYLE which is just like, I just want a goddamn one off file transformation ok (Yes async await is a thing but the core node io stuff does not use promises and async await had its own issues, like gfy if you want a useful stack trace for example)
|
# ? Dec 5, 2018 20:56 |
|
Lime posted:graphviz has a plain text out format that is literally just a list of nodes and edges though, that seems by far the simplest option. you could even just capture stdout without having to save / load a file lmao you're right. thanks for catching my oversight of that option, i'd never seen that in years of bouncing off graphviz (mostly via networkx in python). we'll see how that works (probably really good) Spime Wrangler fucked around with this message at 21:01 on Dec 5, 2018 |
# ? Dec 5, 2018 20:57 |
|
Fun fact: OpenSSL has support for Big-Endian X86
|
# ? Dec 5, 2018 21:00 |
|
Sapozhnik posted:C++ has the worst goddamn standard library, hopefully we can at least agree on that Do you even php, bro?
|
# ? Dec 5, 2018 21:56 |
|
lmao try doing string manipulation in latex youd thnnk that it would have some stuff built in, but not really. the best you get is like car/cdr and some lexical ordering that can be cobbled together for more userfriendly functions or you could use any of a number of packages that may or may not break if used with other packages, who knows! Carthag Tuek fucked around with this message at 22:10 on Dec 5, 2018 |
# ? Dec 5, 2018 22:06 |
|
Kevin Mitnick P.E. posted:just for fun heres a serious answer too it's you you're the reason why text editors take 30 seconds to start on machines massively more powerful than 30 years ago on which they took 30 milliseconds
|
# ? Dec 5, 2018 22:29 |
|
Krankenstyle posted:lmao try doing string manipulation in latex I just had flashback to writing my thesis, make it stop.
|
# ? Dec 5, 2018 22:30 |
|
ratbert90 posted:Fun fact: OpenSSL has support for Big-Endian X86 Removed 4 years ago, and was less support for Big-Endian X86 and more support for a particular virtual operating system. http://opensslrampage.org/post/83031733755/remove-support-for-big-endian-i386-and https://en.wikipedia.org/wiki/Stratus_VOS#Programming_for_VOS
|
# ? Dec 5, 2018 23:34 |
|
The_Franz posted:it's you some people* take the whole premature optimization is the root of all evil to mean never think about performance at all * web devs
|
# ? Dec 6, 2018 00:04 |
|
compiling my entire java backend application is still faster than whatever insanity webpack needs to do to compile half a dozen js files
|
# ? Dec 6, 2018 00:07 |
|
ulmont posted:Removed 4 years ago, and was less support for Big-Endian X86 and more support for a particular virtual operating system. The first post is from the LibreSSL project. The code still exists in OpenSSL as far as I know.
|
# ? Dec 6, 2018 00:14 |
|
The_Franz posted:it's you pretty sure i only said 2x is fine. let me go on record as saying that 1000x is not fine
|
# ? Dec 6, 2018 00:15 |
|
Xarn posted:Slowing down our code so that it takes twice as long in computation is literally adding an hour of runtime.... ok. doesn't matter
|
# ? Dec 6, 2018 00:21 |
|
incredibly hot take: realtime systems exist
|
# ? Dec 6, 2018 00:38 |
|
Kevin Mitnick P.E. posted:what got me started though, is when you were pearl clutching about an fd wrapper having a vtable and how it was so much better to write and maintain code to avoid that well, it is. and it was just the easiest example that came to mind. what I was really thinking of was JNI, where an object reference can either be a local or global reference (extremely important difference) depending on where it comes from, and nothing about the type reflects this. with lightweight wrappers, you can make this "soft" property "hard" and eg avoid implicitly converting a global reference into a local reference. not to mention all the raii wrappers you can write, to dispose of references you no longer need (jvm is terribly miserly), or to represent the raw data of a java array or string. this is probably meaningless to you but you had to dickwave Kevin Mitnick P.E. posted:i really like the fd example because no matter how skinny you make it in userspace the kernel still has a struct file, which, aside from being vomit-inducingly bloated by c++ standards, includes a vtable pointer this argument is so poorly thought out I could believe you were negging me. kernel code and state is, by definition, 100% overhead, that kernel writers try to keep as low as possible. look at it, so bloated that the whole thing fits on my lovely little screen, and almost all fields are perfectly self-explanatory that said, enjoy your paid hobby of overriding virtual methods with one-liners that throw "unsupported operation" Kevin Mitnick P.E. posted:yeah it doesn't really matter how fast your code is. do something simple and correct in a decent language like java and your code will never be the bottleneck in a "query db, make http requests, repeat" loop. I wonder what the db, http client, tls client, cryptographic framework, tcp stack and network driver are written in probably nodejs idk Kevin Mitnick P.E. posted:"but my code is very important and does things with bytes and it really really matters how fast i shuffle records from disk to ram and back. a factor of 2x is competitive advantage". nope, you're just ignoring the opportunity cost of using c++, or maybe, I'm writing a cryptographic protocol in a real-time code path. or a filesystem activity monitor for rolling back ransomware damage. not everyone works the night shift at the turd shunting yard, you know
|
# ? Dec 6, 2018 01:10 |
|
love to read constant back one forth volleys consisting solely of “my kind of programming is the only real kind of programming”
|
# ? Dec 6, 2018 02:26 |
|
|
# ? Apr 24, 2024 18:52 |
Krankenstyle posted:
This is the worst thing about LaTeX. It would be so good if it just had package-level namespacing, and maybe a build system that automatically downloaded needed packages from CTAN, but that's not the world we live in. Also, Xarn posted:I just had flashback to writing my thesis, make it stop.
|
|
# ? Dec 6, 2018 03:22 |