How about a Holla Forums literature recommendation thread?
I'm currently reading Database System Concepts 6th edition (500 pages in atm), and it's very good, would recommend. It's a long read, but covers everything and then some.
I'm looking for a good book covering the concepts and best practices pertaining to backend web development. Thanks to the above book, I mostly understand SQL, database schema design, and so on, but there are gaps in my knowledge pertaining to stuff like routing, POSTing files to a server, and so on and so forth. I'm looking for a good book that could hopefully cover all my bases.
It's a pretty interesting language, and figure it would be worth knowing about for some projects I have planned in the future. I'm quite deep in the functional programming meme space, and haven't programmed C++ for a few years, so it's an interesting perspective.
Tyler Cook
I program Ada at work, and it is a mess once you see some real world code. It don't feel safe either, just strong types but that is all. You can do I/O like it is the wild west, not controlled like in Haskell or even force to handle possible exception like Java. I don't like the Pascal-like syntax either, feels even more verbose than Java.
Jordan Butler
The purely functional approach that haskell takes can make i/o quite disgusting to use in the real world too. You basically start piling on abstractions and abstractions and then handing newer developers a list of academic papers on monad transformers before they can understand how things really work. Eventually that particular project was written in Erlang, and everyone felt happier. (Erlang doesn't have the type safety, but there are some tools you can run on your code to get some limited typing guarantees).
Aiden Young
I would not say disgusting, but it is painful sure and a bit of a meme language. I still expect something more in Ada when it comes to I/O, maybe not like in Haskell but something. I have worked in Erlang too, but despite its lack of types it is still quite ok due to its fault tolerant design (as claimed). Depending on project type I would chose Erlang over Ada. The problem I have with Ada is that is claims to be THE safest language to program in, when it really isnt. It is also not as fun to program in as Erlang if you want to compare languages.
anyone have unix systems programming book recommendations? I've been trying to read advanced programming in the unix environment and it's been giving me a hard time tbh, wondering if there are any options that are slightly easier to read
Henry Ortiz
Are you implying that you've already read The Unix Programming Environment and The Practice of Programming, both by Kernighan and Pike?
Mason Turner
I have not
Gavin Watson
/r/ing tech approved fiction
Evan Murphy
snow crash
Joshua Johnson
Right to Read by Richard Stallman
Carter Sullivan
Permutation City by Greg Egan
Tyler Ramirez
Okay user, I'm reading the Unix Programming Environment right now. It seems to be rather outdated, is there a recent edition? I can't seem to find one. For example, I tried to use od -cb to read the bytes associated with one of my directories, only to find out that it wasn't readable, as directories had stopped being readable many years ago.
Jordan Nelson
.. current year after all.
Elijah Evans
No. It was the point for you to dive into how things used to be and why. And it gets to system programming right away. The things haven't actually changed this match, I even used a program from this book to monitor who is logging to a Solaris server and screwing my stuff.
Otherwise you can try "Linux System Programming", it seems to be okay, though not as thorough as "Advanced Programming in the Unix Environment".
In most modern UNIXen it still works. I guess it depends on the implementation of open() syscall. If you want to go exactly by the book you can run UNIX v7 in QEMU emma.nfshost.com/v7x86/vm.html
Eli Sullivan
www.catb.org/esr/writings/taoup/
Levi Robinson
Actually, most things by greg egan are pretty good, though they can get a bit kool-aidy at times.
Michael Allen
okay, here's a source of confusion for me. The ISO C standard (for example) defines a number of headers that the operating system must provide implementations for, like stdio. The implementations are not provided in the header files, only the definitions (?), so these functions and system constants must be implemented/declared elsewhere. Yet, if we want to call something like write() (which is a system call?), we don't need to provide an implementation in our C source code, we can just import the header. These functions are implemented by the operating system (I think); does the compiler know where to find the implementations for these standard library header files? I'm wondering why we don't need to explicitly include them.
Dominic Russell
The standard library does not get compiled each time you compile a program. Yes No, the compiler does not deal with that, the linker does. For things not in the standard library you have to tell the linker about them, usually by passing -llibrary to the compiler. You should #include them, so the compiler can do type checking.
Justin Mitchell
I can see how that would be a waste of resources, and how it'd be more optimal to have the implementations pre-compiled and ready to go. I'm assuming that's the rationale, anyway. I think I phrased my question poorly: I know that there's a write() system call, but then there's also these wrapper functions of the same name as the system calls. If I do:
#include "stdio.h" and then call printf to send the desired text to stdout, what is the call to printf? This is a call to a wrapper function, which itself makes the system call, correct?
I don't have a very good understanding of the compilation process, what a preprocessor, linker, etc., do, so I think I'll have to expand my reading on that as well. The source of confusion right now for me is how implementations for these standard library header functions are found when we haven't explicitly imported stdio.c (for example).
Noah Jones
printf is a precompiled function provided by the C runtime. It is exactly equivalent to calling fprintf(stdout, ...), where stdout is a global of type FILE*, a stdio file handle. Stdio is a wrapper for system calls, with difference that it uses buffering (cf. man setbuf). Stdio is recommended over raw syscalls for speed, because it tries to minimize the number of read()/write() system calls. Note that since stdio is really just a wrapper it is possible to convert from it to fd (fileno) and also the reverse (fdopen).
Leo Rivera
Going to read this over some upcoming weekends. It has been a long time since I've studied OS internals, so this will be a refresher and a first in-depth look at the design of BSD.
Mason Allen
Look no further.
Thomas Gray
absolute openbsd
Parker Butler
LARPing CIA nigger
Brayden Evans
You fucking retard, what do you think the focus of a compiler is? Anyways chaper 8 cover code gen and 9 and 11 cover optimization.
Grayson Scott
Also: The user who wanted to know more about the compilation process will be well served by reading chapter 1, and subsequent ones for greater detail. I see what I'm dealing with though, you're a comsci dropout who has interned the idea that the dragon book is out of reach, because you personally found it difficult. Not everyone shares the same restricted nature of your cognitive abilities, so drop that pretence.
Ryder Hall
Go read the RFPs.
Robert White
Shut up and read Andrew Appel's books, faggot.
Henry Edwards
what material should I be familiar with before getting into this? need to take things one step at a time
Aiden Evans
Familiarity with computer architecture is a must, and some exposure to assembly language programming. If you have that, then I'm sure you could start with the dragon book and see where you get stuck. There's a lot of directions you can go in this area though. There are theoretical issues concerning the grammars and of languages (Sipser's book is good), books on typing theory, programming language design etc...
Juan Ramirez
what book(s) do you recommend? I'll add them to my queue I guess, but I have no immediate shortage of reading material.
Brody Ward
Hah, you'll never fully empty the queue. I'm pretty certain we all just have to accept dying before ever getting around to reading all the interesting books/texts out there. I guess it is a priority queue. Not niggers though, they don't have that problem.
Anyways, the first book is pretty good for understanding how the hardware works, the second is a good book on operating systems. Enqueue both, but the second book is probably more of what you're after.
Jack Young
ugh, meant the first. The reason is that it covers some basic assembly programming, and will explain the various addressing modes, calling conventions and memory layout. Those all vary somewhat depending on the architecture you're targeting, but the concepts remain the same.
First time I've seen science fiction use quantum mechanics in a way that isn't just a cheap justification.
Robert Campbell
Anybody have good recommendations for books on machine learning and genetic algorithms? I'm looking for something with practical examples, language doesn't matter. I tried Programming Collective Intelligence but got burned because it has all these examples that rely on third-party web APIs that don't exist anymore.
Justin Turner
I remember reading that book a while back and learning absolutely nothing, it was basically pop trash.
The friendliest overview of AI is the first book. It's an overview of the subject, so it doesn't get too heavy on details. It definitely touches on genetic algorithms and ML.
The next three books are great for machine learning, but you really need to have a good mathematics background. Advanced calculus + Linear Algebra are essential prerequisites (Be familiar with things like a Jacobian or Hessian matrix, Gradients etc). Books at this level don't have many practical examples though, although Haykin had some matlab experiments. I'm sure there are some books in between, but they'll be Python books which use libraries designed by people who can understand the material in the last three books.
I guess it depends if you want to use machine learning to solve problems, or gain academic understanding of the techniques. In either case, Russel and Norvig will be helpful.
Brayden White
(meant to include as well)
Carter Howard
Thanks, I'll check out all four of these.
I didn't get an EE degree for nothing.
Leo Edwards
Ah you should be fine then. Simon Haykin has an EE background, so you might like his book over Bishop's.
Josiah Fisher
One more book to consider. I haven't read it myself, but it comes well recommended. Again, it falls in the advanced category.
Adam Harris
anyone want to start a book club? I'm reading the Unix Programming Environment atm, and I was reading a book on networking, but I haven't been finding the time of late. If anyone would like to discuss the concepts or anything as we read, I'd be all for it.
Hunter Bennett
Best fantasy adventure novel I've ever read
Gavin Brown
Reading some random man pages sound more interesting.
Thomas Garcia
here's as good a place as any.
reading UPE, came across this line:
if test -t 2>&1
This line is intended to test whether the standard output is a terminal. Now, I'm used to seeing test being supplied an argument in the form of a file. No argument is supplied here, so would this command test the file descriptor of the terminal if it wasn't being piped into another command, or the file descriptor of the of the other command (process?) if it was?
Why do we redirect stderr to stdout in this case? This is redirecting stderr from the test command to the stdout of the test command, correct?
Brandon Diaz
Check your shell's man page. I'm using pdksh (OpenBSD) and it says the argument is optional, and defaults to stdout. However POSIX seems to discourage this use, calling it "historical". pubs.opengroup.org/onlinepubs/9699919799/utilities/test.html The stderr redirection is weird, because it normally just goes to your terminal. Maybe he just wants to make sure, in case there's any chance it was redirected previously to another file. Anyway there's missing context to this line, since using "if" by itself like this will cause the shell to dump you into PS2 and wait for you to type the rest of the if-statement. BTW my PS1 starts with $? (the exit code of last command).
Jackson Brown
The tech support sticky is more suitable.
Nope. "if" just checks the exit code of the command that follows it. Since "test -t 2>&1" is a full command it's a valid conditional. You need to finish it off with a "then", of course, but that's often put on a separate line. In something like if [ "$v" = "test" ], [ is the command, and may be provided by /usr/bin/[. Unix is crazy.
Jonathan Russell
Yeah, the rest is on separate line probably. That's why I was thinking there's more to this than just that fragment. To make it fit on single line in this form, you'd have to use semicolons: if test -t ; then true; fi But my favorite/shorter way is: test -t && true (replace true with whatever fits...)
Hunter Martin
Of course there's more to it than just that fragment, but the rest is probably irrelevant. That line contains everything necessary to make the fragment work.
Don't use either of those in a script people might have to read later. Readability is more important than code golfing.
Joshua Hill
It's hard to start book clubs for technical material. Many people here are at different levels, and we're all motivated by very specialized interests.
Human Communication: Nonviolent Communication: A Language of Life ISBN: 1892005034
Jason Mitchell
Since writing that post, the inanities of the Bourne shell have finally pushed me over the edge, and I've started a small module to do shell scripting in Python. wget example.org -O page.html becomes run.wget("example.org", O="page.html") and v=$(xclip -o) becomes v = capt.xclip(o=True) curl example.org | grep domain > results will probably become run(pipe.curl("example.org") | pipe.grep("domain") > "results") but that's pretty ugly.
I don't know yet if any of this is a good idea.
Wyatt Martinez
What would be an good practical introductory text on topic of Machine Learning and Data Science? What would make a good project to study this field?
Samuel Taylor
Why not: run(pipe(curl("example.org"), grep("domain")), "results") Run takes two arguments: what to run and an optional output file (defaults to terminal). Pipe takes the sequence of commands as arguments, piping the result from one into the other and returning the result to run.
Joseph Gray
pipe(curl("example.org"), grep("domain")) is impossible, because curl and grep are external commands and have to be dynamic. run.curl and capt.curl work with getattr fuckery. But yeah, not doing crazy things with the syntax might be better. The only way I've found to avoid needing some kind of lazy command builder for pipes is by using del to execute commands when they're garbage collected, and that's a step I'm not willing to take.
Josiah Cook
Bumping this thread.
Are there any recommended books on how to keep large projects maintainable? I'd like to become a better programmer. I can write smaller programs decently, but I have no idea about how to structure code properly.
libgen.io has essentially every book ever published in English for free and you should use it instead of random .pdf downloads If you have some free space you can download one or more of their torrents and help back up the collection.
Christian Jackson
Can't you just make a fifo and redirect stdout there?
Liam Rivera
Clean Code and Clean Architecture by Robert C. Martin perhaps. The Pragmatic Programmer: From Journeyman to Master is also good. And try to avoid stuff like GoF.
Tyler Myers
Thank you user. Someone should compile a Holla Forums reading list.
Henry Lewis
Is Clean Coder also good?
David Mitchell
but why?
Michael Sanchez
The Clean Coder is about soft skills rather than programming or design, how to behave with colleges, argue with boss, plan career and stuff like that. As an autistic person I find this book helpful as it's not very clear for me what I'm expected to do in certain situations. It has some "progressive" drawbacks though.
Isaiah Peterson
Have you read "A survival guide for people with Asperger Syndrome" by Marc Segar?
Okay, thank you, will download that too.
Ryder King
I gave up about halfway through that book. It should be renamed into "how to make Java not blow up in your face", because most of it is only relevant to Java (and similar languages).
I also find some of the advice rather questionable. For example, he recommends making every self-contained action into its own method. The problem with this is that every time I see a method declaration my mind immediately thinks this method will be used more than once, but it won't. Other languages offer much better ways than bloating the namespace.
Ryan Reyes
Which happens to be 90% of all written programs.
Which makes a lot of sense for TDD. Also this approach helps to detect dead code later on more easily. Like what? Bloated namespace indicates bad design. You should refactor your class into several classes or interfaces.
Joseph Jackson
Just started this, really liking it
On a related note what's the best eBook reader for android?
Dominic Diaz
This works well enough that I haven't bothered looking for something better: f-droid.org/app/org.sufficientlysecure.viewer You can't properly change the text size even for epubs, though.
Jayden Fisher
Does anyone have a PDF of Structure and Interpretation of Classical Mechanics (SICM) 2nd Edition? I was able to find a PDF of the first edition, but not the second one.
Dylan Reed
libgen.io
Samuel Jenkins
That's the first place I looked, but they only have the first edition.
Ian Clark
I'll attempt the read the first book, then. I was trying to read "Neural Networks for Pattern Recognition" by bishop, but chapter 2 is just nearly incomprehensible to me
Anthony Johnson
bump
Luke Phillips
I would imagine that Holla Forums is interested in mathematics, especially fun things like puzzles and combinatorial game theory. Oh, and the obligatory recommendation for SICP, of course.
Brandon Perez
I want to get started with Verilog so I can dick around with FPGAs, what books does Holla Forums recommend?
Isaiah Green
use this random .io bullshit instead of some other random bullshit
Jaxson Parker
smfh this machine learning stuff is hard lmao I settled on "Pattern Recognition and Machine Learning". Direct quote: What did he mean by this?
I'm definitely missing the probability as far as prerequisite material goes, but what else is needed? I've taken all of the calculus and linear algebra, but that's not what I'm getting stuck on.
Jaxson Martinez
Rude. Libgen is only hosting on .io because they give zero shits about abuse. Their collection is structured and very large.