(Part 2) Best operating systems books according to redditors

Jump to the top 20

We found 1,339 Reddit comments discussing the best operating systems books. We ranked the 335 resulting products by number of redditors who mentioned them. Here are the products ranked 21-40. You can also go back to the previous section.

Next page

Subcategories:

Unix operating system books
BSD operating system books
Solaris operating system books
Linux operating system books
Macintosh operating system books

Top Reddit comments about Operating Systems:

u/samort7 · 257 pointsr/learnprogramming

Here's my list of the classics:

General Computing

u/talebowl · 38 pointsr/learnprogramming

Lots of different ways to do this. However, a couple of things before we start.

You (customer) may think you have told me what you want, but in fact, you have told me what you think you want. You will change your mind. I will misinterpret you. You will explain things later on in the process that are totally contrary to what you have explained before. Requirements will change (I'll look up some numbers quoted in some of the classes I took about how large a part of the requirements is actually not or seldom used tomorrow). This may read as kind of condescending towards customers, but it isn't meant as such. We just need to keep in mind that communication is HARD. And you need lots of communication for an IT project.

So, given that requirements will change, it'd sure be nice to have (good, frequent) feedback. That is an important part of the "Agile" methodology of software development. The classical way of developing software is sometimes called waterfall. You make up requirements, you plan, you develop, you test, you deliver. Project over. In processes in line with the Agile methodology you do those same things (albeit maybe differently), but you do them in small pieces. You divide your requirements into 2 week to 2 month (commonly) "sprints", pieces of time in which you go through this process, and thus you get more frequent feedback from your client (you may not ask for testing/feedback at every sprint, again, the key is good communication). A very important thing to remember here, is that there isn't one waterfall or one agile. There are tonnes of processes, some standardized, some adapted to suit individual needs. Experiment, talk to others, find what works for you and your team.

As for the higher-level architecture of your code: read a good book on design patterns. For Object Oriented programming, I like Shalloway & Trott's "Design Patterns Explained". I'm nearing the end of a course on design patterns using this book, and I really enjoyed it.

Disclaimer: This is sort of pieced together from (what I think are) the most important parts of my education (in my third (last) year of Bachelor Applied Computer Science) so far. It is very incomplete.

Bottom line is: you never stop learning. Asking the question you asked here is important. Be curious. Does this last part make me sound arrogant?

EDIT: Wrong link formatting.

u/DpkgDan · 33 pointsr/jailbreak

I would definitely take a look at The iOS Hacker's Handbook. It's an excellent resource for understanding the fundamentals of jailbreaking.

u/varelsa · 15 pointsr/linux

You need a strong grasp of C programming, I'd recommend:

1: Join the Linux kernel mailing list: http://www.tux.org/lkml/

2: Read a book like this: http://www.amazon.com/Programming-4th-Edition-Developers-Library/dp/0321776410/ref=sr_1_sc_4?ie=UTF8&qid=1415153633&sr=8-4-spell&keywords=Crogramming

3: This is a cool site: http://www.learn-c.org/

Cultural immersion is also important, I would find relevant channels on irc.freenode.net and make friends there where you will find amazing free support from the community.

Once you're a little more comfortable in the language I would start trying to read the kernel source code, or maybe try to fix bugs that are posted about any programs that you are interested in learning more about.

u/whoamiamwho · 15 pointsr/jailbreak

I personally have no experience, but I've heard good things about iOS hackers handbook. It's most likely not current but it might be a good start.

u/[deleted] · 14 pointsr/programming

This might be a good step by step way of doing it:

u/wadcann · 12 pointsr/linux

>Why does Linux limit itself to this file name size?

What should it be? Posix requires it to be capped at NAME_MAX. That could be anything, but on my Linux distro happens to be 255. You could increase that and recompile your libs and apps if you wanted, but the Posix folks happened to choose to put a compile-time constant length on things back when. They probably did that because it makes handling some things more convenient. I imagine that somewhere, there's code that statically-allocates stuff of NAME_MAX + 1 length, so jacking up NAME_MAX to, say, 1MB would probably cause some programs to use a lot of memory...so that hasn't been done.

As to why Linux uses 256 instead of NAME_MAX + 1 in the header, go look at your system headers. On my system, /usr/include/x86_64-linux-gnu/bits/dirent.h has the following:

char d_name[256]; / We must not include limits.h! /

I imagine that 256 is used rather than NAME_MAX + 1 because they don't want to have the kernel header depend on that other header; maybe it creates a dependency loop, where limits.h depends on dirent.h and visa versa to find various constants. I'm not sure which standard "owns" NAME_MAX, but perhaps it's something that the kernel provides and libc is responsible for setting based on the kernel. It does seem a bit odd that there isn't a constant defined in the kernel headers (that libc defines NAME_MAX to on Linux) that is also used here and anywhere else a filename might show up, but I expect that the kernel folks had a reason for that.

EDIT: note also that the Windows API has a similar such restriction:

>>What is the maximum length of a file name?
>
>Windows usually limits file names to 260 characters. But the file name must actually be shorter than that, since the complete path (such as C:\Program Files\filename.txt) is included in this character count. This is why you might occasionally encounter an error when copying a file with a very long file name to a location that has a longer path than its current location.

Huh...I thought that they had a maximum path length of 1024 characters (or bytes; don't recall) but then I haven't done Windows programming for a while now...seems that 260 is correct, though.

>As a side note: any links to really good resources or articles for Unix/Linux systems programming in C would be much appreciated.

Seems like a pretty broad range of material, if you just want articles. I mean...you might want to narrow down what you're looking for a bit. I think that Advanced Programming in the Unix Environment is probably a worthwhile book to go through, if you just want a "C on Unix" book.

u/IOvOI_owl · 12 pointsr/mac

I might get downvoted, but if you really want to understand how the system works you can pickup a textbook on Unix/Linux OS for beginners, just make sure it is not distribution specific. >90% of what you will read there will be applicable to MacOS. I am now going through this book: http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356 You can find online if you want ;) This way you will learn not only about MacOS, but about the whole family of Unix like operating systems. I am using linux pc at work, but I have a mac at home.

u/TrumpLyftAlles · 11 pointsr/csharp

> Are the books any good?

It's been years since I looked at them but they used to be mediocre.

Bonus Data! Microsoft Visual C# Step by Step (9th Edition) (Developer Reference) 9th Edition from Microsoft Press has 11 reviews averaging to 3.7 out of 5.

This search for C# on Amazon shows C# books ranked by average customer review. Some of them are too old. I don't know what to recommend.

I find it amusing, though, that C# 6.0 in a Nutshell is 1136 pages long. That's a BIG friggin' nutshell. :)

u/LinuxStreetFighter · 11 pointsr/sysadmin

Yes, there is a lot of growth for Linux administrators.

I can't speak for the LPIC but you should get The Linux Bible and The Linux Command Line and Shell Scripting Bible and work through those. Then take the RHCSA and RHCE.

The Linux Bible

Linux Command Line and Shell Scripting

I don't know where you're located where junior administration can't lead into auditing or information security but you should build a lab and start building that knowledge and gaining experience. Chris Sanders has great books on the subject and an amazing website.

http://chrissanders.org/

He uses Linux for network monitoring and analysis.

There are also a slew of magazines and podcasts out there to keep you motivated, entertained, and educated. Jupiter Broadcasting is something I really enjoy. They took me from a Linux fan into an enthusiast into a professional. Linux Unplugged, Linux Action Show, TechSnap... Even the quirky BSD guys are awesome.

Linux Format is a great magazine, Admin is good, Linux Journal is hit or miss for me but it hits the spot when I'm looking for something off the wall or a project.

There are also subs on this site that are helpful and fun. /r/linuxadmin is interesting, /r/linuxmasterrace is GOAT, /r/linux is... Linux... /r/gentoo is beardly, /r/archlinux is -- READ THE WIKI.

If you get those books, which I can't recommend enough, start playing with Python too. Don't get Learn Python the Hard Way, get something like Python Crash Course which is significantly better. Your mileage may vary, this is just my opinion.


Good luck! Best thing to do is get a distro and start learning. Read the man pages/wikis, and then post a question. That will help you a lot in the coming days ;)

u/tragoh · 10 pointsr/csharp

C# in a nutshell is a good reference to learn the ins and outs of the language without muddying up the concepts with opinionated frameworks and patterns.

https://www.amazon.com/C-6-0-Nutshell-Definitive-Reference/dp/1491927062

Learning the languages capabilities is only half the battle, and once you have the syntax down you really want to supplement that with a book that teaches you how to write C# as the language designers intended. The following is a little old but written by some of the original members of the .net team and fairly timeless

https://www.amazon.com/Framework-Design-Guidelines-Conventions-Development-ebook/dp/B0017SWPNO

I've worked with several great C++ developers who thought they knew C# but we're really still just writing C++ without ever really learning to embrace the language. Don't be like that

u/cheeseprocedure · 9 pointsr/sysadmin
  1. Make sure you have backups that do not reside on the VPS. (Look into rsync/rdiff-backup if you're unfamiliar with them.)
  2. Don't run X on your production server ;)
  3. Keep up on security updates. If you're on Ubuntu, for example, you can subscribe to the relevant mailing lists (http://www.ubuntu.com/usn) and set up a cron entry to update your apt repository/email you with available updates (Google "ubuntu server update notification" for umpteen thousand helpful writeups).
  4. Ideally you'd have a testbed (whose OS/software configuration is the same as the VPS) where updates are applied and ensure services keep ticking along afterwards; that may be overkill, but it's good practice :)
  5. Keep your system configuration files in a source control system; etckeeper is a great option: http://evilrouters.net/2011/02/18/using-etckeeper-with-git-on-ubuntu
  6. Use keys for SSH login.
  7. Don't run services as root.
  8. Don't allow root to login via SSH.
  9. There's many tools for automatically parsing/acting upon syslogs; check out logwatch, fail2ban, and OSSEC.
  10. If you're running third-party Web packages (WordPress, PHPbb, etc.), keep them up to date. They're a big, fat, juicy target for script kiddies and botnets.
  11. Pick this up for some light reading: http://www.amazon.com/Power-Tools-Third-Shelley-Powers/dp/0596003307
u/Freeky · 9 pointsr/programming

Maybe a more concrete example will help. Here's a snapshot of the memory use of my main work machine:

Mem: 3269M Active, 2797M Inact, 1320M Wired, 362M Cache, 828M Buf, 169M Free

It's FreeBSD, but illustrative of how vaguely modern VM's work; as you suggest, it's not just "memory in use" and "memory that's free", there's a hierarchy through which pages are run through depending on use. In FreeBSD's case, Active is directly mapped into processes read-write, or cached stuff which has been recently used and likely to be wanted at a moment's notice.

Inact is inactive memory; the next level down. This mostly includes cached data which can either be pushed back into Active quickly if it's needed, or flushed out relatively quickly, or further migrated down the chain.

Cache is the next level down from Inactive; it's read-only, not directly mapped into anything, and almost as cheap to reuse as Free (but more expensive to reactivate than Inact if it is needed), which is where it's cycled next if there's sufficient memory pressure. Some Free is obviously good; a quick pool of pre-zeroed memory is pretty important.

Wired and Buf are mostly kernel; in my case most of Wired is ZFS's own kernel-malloc backed cache, but it also includes anything else that can't be swapped out, like vital kernel code and certain userspace things. e.g. gpg will try to lock memory which is sensitive and shouldn't hit unencrypted swap.

Point being; how much memory does this machine really have free? 169MB? What about the 362MB of Cache which is more or less ready for any new use? And I can probably dump most of that Inact without much trouble. And who's to say how much Active really needs to be there; without much memory pressure it's sure not going to work too hard working out what doesn't really need to be there.

It's been ages since I read the book, and I'm also tired and on prescription medication, so E&OE.

u/InAQuietCorner · 7 pointsr/learnprogramming

I like this cheatsheet and this book: Learning the vi and Vim Editors.

Edit: I forgot about Vim Adventures!

u/Veiocity · 7 pointsr/csharp

John Sharp's Microsoft Visual C# Step by Step is a great book. It teaches beginner, intermediate, and advanced concepts.

u/istarian · 7 pointsr/linuxmint

You just have to jump in and do stuff. Using it as your primary OS or always for a particular task (e.g. always use it for internet browsing) is a good way to become familiar with a linux desktop environment.

As for the command, whenever you want to:

u/CannonBall7 · 7 pointsr/osx

This might be a bit too deep for what you're looking for currently, but Jonathan Levin is actively writing a series of books on OS X Internals. Worth checking out and much more up to date than Amit Singh's book.

u/nsgf · 6 pointsr/programming

Same here (but also got a copy of "Advanced Programming in the UNIX Environment" by W. Richard Stevens, Stephen A. Rago
http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949).

u/coned88 · 6 pointsr/BSD
u/necroforest · 6 pointsr/compsci

Stinson; Cryptography: Theory and Practice is my preferred crypto book. Very math heavy, as opposed to a lot of crypto resources i see that are hand-wavy.

u/arusso23 · 5 pointsr/sysadmin

IMO, you should be familiar with 3 things: Virtualization, Linux and Networking. If you want to be a Windows Admin, definitely look into getting your MCITP too.

For virtualization, I would start with VirtualBox. It's not an enterprise solution by any means, but you'll understand the basic idea and it will allow you to run Linux/Windows/etc... without needing a separate box. And snapshots are great for when you want to try something new. Once you move along, you can try installing VMware server 2.0 (I think it's still free and available). If you find you like virtualization, take a look at VMware vSphere.

For linux, I recommend this book. Personally, I like Debian and Fedora Core, but you should at least know one Red Hat based distro (like Fedora). The book is well written, and has some good examples to get you started.

If you aren't very familiar with networking, you should get your CCNA. It probably wont help you pull much of a bigger salary in it of itself, but it will definitely get your feet wet in the world of networking -- but dont be fooled, it only scratches the surface of networking.

If you're looking to be more windows-centric, you should look at getting your MCITP. Personally, I haven't been able to get through the certification process, but I have skimmed through the topics, and it's definitely worth your time if you're serious about being a Windows admin.

I haven't had any experience with Network+ and Security+ certs, but from the comments I have read on the sysadmin reddit over the past few months, I get the impression they aren't worth the time. YMMV on that one though, and if anyone who has them thinks they are worth it, let me know why I am wrong.

When I was getting my feet wet, I picked up small business clients who were willing to tolerate my growing pains since I came cheap and worked nights/weekends for them. Although it only gave me a limited amount of experience, it allows you to put into practice what you are learning, be it linux or windows. Just be sure and always CYA and backup data/configurations before you do anything you're not familiar with.

Sorry, this may be a little bit more long term than you were hoping for, but hopefully you will find something valuable in it.

u/sanedave · 5 pointsr/unix

The approach I took is to start with commands and languages using regular expressions: find, grep, sed, awk, python or perl, etc. These are very powerful and useful commands.

Two books I highly recommend are [Unix Shells by Example] (http://www.amazon.com/UNIX-Shells-Example-4th-Edition/dp/013147572X/ref=sr_1_1?ie=UTF8&qid=1374157897&sr=8-1&keywords=unix+shells) and [A Practical Guide to Linux] (http://www.amazon.com/Practical-Guide-Commands-Editors-Programming/dp/013308504X/ref=sr_1_1?s=books&ie=UTF8&qid=1374157979&sr=1-1&keywords=practical+guide+to+linux)

Also check out (PDF warning!) [Advanced Bash Guide] (www.tldp.org/LDP/abs/abs-guide.pdf)

These all are excellent, and very useful.

u/Sampo · 5 pointsr/Suomi

Jos haluaa käyttää ja konffata linuxia ja apuohjelmia sujuvasti komentoriviltä niin Linux Command Line and Shell Scripting Bible. Jos haluaa aloittaa perehtymisen siihen miten kerneli toimii ja miten sitä voi itsekin sorkkia, niin ensimmäinen kurssi on käyttöjärjestelmät ja kirjaksi joku Operating systems niminen oppikirja.

u/cdarwin · 5 pointsr/cpp

The first book you need is Advanced Programming in the UNIX Environment. This is the bible for socket programming (among other things).

This book is based on C. A good resource is The Indispensable Guide to C.

Hope this helps.

u/GobTotem · 5 pointsr/linux4noobs

I am a beginner too and just finished this book TLCL.Another one i would recommend is shell scripting bible.For most part use google to learn about commands and man page is your friend. I am more of a book kind of guy so never used video resources. Most important you should know where to look for help when stuck.

u/mariox19 · 5 pointsr/programming

I second Hackers by Steven Levy. I also recommend The Chip. It's not specifically about programming, but it's a great read.

As to Neal Stephenson, I realize this is sacrilege, but I don't enjoy his novels. I've tried a couple. However, In the Beginning Was the Command Line is a terrific essay.

u/taricorp · 4 pointsr/AskComputerScience

Any in-depth discussion of cryptography is going to be heavy on discrete math. I took an undergraduate course using this book, which seemed to offer a pretty gentle introduction to the mathy bits (based on simpler ciphers) before diving into modern crypto.

I haven't personally dealt with Bruce Schneier's book, but it looks like a solid resource. It does seem to assume a fair amount of programming background though.

----

In any case, I'd recommend picking up a book on crypto, and be prepared to deal with a certain amount of math. In particular, modular arithmetic and certain subsets of probability are heavily used.

u/TheIceCreamPirate · 4 pointsr/jailbreak

Some of the well known jail breakers are writing a book on that right now, but it isn't finished.

http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp/1118204123

u/rupturefunk · 4 pointsr/C_Programming

For a beginner I'd recommend Programming in C, it's written in a clear and readable way, with useful exercises, and does a great job explaining the basic stuff.

Secondly, Pointers on C is a fantastic second book, and very much underrated. Much more focused around pointers and memory, and integrates that stuff into it's code examples from the start. This book was massively useful to me when I wan learning, but, it can be hard to get a copy for a reasonable price.

u/hyperbolist · 4 pointsr/vim

And here are links to buy "Learning the vi and Vim Editors" from O'Reilly and from Amazon, in case you don't want to steal some learning material.

u/construkt · 4 pointsr/IWantToLearn

The best thing you can do is read (at least that is the way I learn the most, the fastest)! That being said, there are tons of free videos on youtube that go over networking and how it works. Figure out ways to apply your knowledge by setting up a network of your own and making it rad.

I think learning unix/linux is the way to go if you are into servers, but that is my bias. I am not a fan of Windows. In reality, you end up doing a lot of the same tasks when adminning, regardless of platform. Servers are just computers that run services (like http, ftp, nntp, email, etc). You basically just have to learn how to install, configure and run those services and learn best practices about installing and configuring the OS to do what you want it to do the best.

I highly recommend going into linux/unix adminning. I am not a huge windows fan. That being said, there are jobs there and if you can tolerate working with windows, it might not be a bad route to go if you want to be an admin for the rest of your life. I think nix admins end up doing more development work in the long run (which is more fun imo). As far as learning nix, I highly recommend unix power tools. I am sure there are tons of tutorials as well, but this book gives you a good idea about how to interact with the command line and gives you a great introduction to many of the tools available to you and when to use them. Setting up servers just means installing some services and getting them running in a smart way. There is usually a lot of documentation available for the service you are downloading and about how to configure it.

Regarding programming, pick a language and start using it for everything you can! When you install a service, pick a program that is made in that language to run on it (i.e., install/configure apache and then run a program written in python on it!). I highly recommend starting out with python, but choose whatever you want. Python has a ton of free documentation and ton of well-written apps available. Its syntax rules will force you into writing better looking code, which will carry over to other languages you will learn in the future. Learn python the hard way, dive into python, MIT OCW, Khan Academy. Pick an open source project and start helping out any way you can! At first, it might just be updating documentation, then you might fix some small/easy bugs and soon you will be fixing things and helping direct the way you want to see the project go (or perhaps start your own project!).

If it gives you any hope - I have worked it helpdesk, sys admin jobs, run IT departments and now work as a programmer, all without (much) formal training. I have taken courses over the years, but I think you can a lot just by reading, watching videos and then finding ways to apply that knowledge!

edit: I don't know where you live, but if you can, find local user groups to participate in and talk to locals. You may be able to find a job in the field and have a real way to apply that knowledge on a daily basis.

If you have any questions or need ideas about projects to start, please feel free to ask.

u/DBA_HAH · 4 pointsr/cscareerquestions

I've never used Django so I'm making some assumption here based on my Rails experience. Their feedback is pretty good.

  1. You're not using inheritance in obvious places like a WeightedItem and a UnitItem should be children of a parent Item class (or some other better named class). I would put all similar methods in the parent class (item name, description) and then the business logic for calculating the price can go in the children classes. It's possible they wanted the Item class here to be abstract (so you will never have an Item object, only items of the subclasses).
  2. The Promotion and Coupons implementation feels odd to me, maybe someone else can comment on it though. I've never designed a checkout app so I haven't really thought about it but it seems that there must be a better way to handle this.
  3. They are correct in that your controller/views should not handle much business logic at all, controllers are just for using the parameters from your views and the data from your models to route what gets show to the user, what gets stored in the backend, etc. If you're putting business logic in a controller that's usually a sign that you need another model.

    ​

    cart_items = CartItem.objects.all()
    total = cart_items.aggregate(Sum('price'))['pricesum'] or 0
    coupons = Coupon.objects.filter(total_spending_threshold
    lt=total)

    Apply coupon if necessary

    if request.method == 'POST' and request.POST.get('coupon', '') != '':
    total -= Coupon.objects.get(pk=request.POST['coupon']).discount

    All of this should certainly be in a model. You might want a Cart model that holds Items. The Cart would then have a method you call total_price that would do the calculation inside that model and the controller would simply access that data.

    A Cart could also hold coupons and discounts too in whatever implementation they end up being.

    I would rework this controller quite a bit, I would create new routes so you have a `cart' controller with a 'reset' route separate from the 'checkout' route, no need to send those requests to the same controller action and use an IF statement to determine where to send it.

    So really your checkout action should basically be

    context = {
    'items': cart.items,
    'total': cart.total_price,
    'discounts': cart.discounts
    }

    return render(request, 'checkout/index.html', context)

    Having an action 'unitItems' that sits under the route 'checkout/unit_items.html' that isn't used for actually checking out is a bad design choice. If this view is used to view an individual item, just have it be its own path like '/items/item_description' or whatever.

    Same goes for 'addUnitItemToCartItems', this should just be a simple 'Cart.addItem(item)' line of code in your controller and then all the business logic goes in your Cart class. You could either return an error from that method or have something like Cart.errors that you check after (not sure what the best practice is in Django).

    Also you'll see the advantage of designing everything the way I told you is you will only need a single "addItemToCart" action and only a single "viewItem" action, no need to duplicate your code to handle for weighed/unit priced items. Any of those logical differences will occur in the classes which won't matter to the controller because they will all share the same interface that they inherit from the abstract parent Item class.

    My advice to you would be to get this book Design Patterns Explained. It's a bit expensive and "old", but the design patterns in it are timeless and get you thinking in the right way for OOP design. Another book that was hugely beneficial for me was Practical Object-Oriented Design in Ruby, but if you're focusing on Python maybe you can find something similar in that realm.

    My biggest tips for you would be 1. if you're repeating code like you did several times in your unitItems vs weighedItems implementation, then it's time to stop and figure out how you can DRY it up (Don't Repeat Yourself) 2. Models are for business logic, views/helpers are for display, models are for business logic.

u/gtranbot · 3 pointsr/learnprogramming

For an intro to general Unix wizardry, I'd recommend Unix Power Tools. It covers all the basic Unix tools, and shows how they can be used together effectively.

To be a real Unix master, you should also learn Perl. If you want to go farther and master Perl you can't go wrong with that.

Once you know the basics of Perl, get the Perl Cookbook, which has many great recipes for doing things like in your list. In fact, if I recall, that very example might be in the book; if not, one very close to it is.

I always had a hard time learning from man pages. They're great for reference once you've already got your bearings, but in my opinion these books will serve you far better.

u/reverendj1 · 3 pointsr/linux4noobs

I like to use nano for simple file editing, such as changing a config. For programming, I switched from Gedit to Atom to Vim. This book is what finally made Vim click for me. Following along with that book, after a week, I was just as productive in Vim as I had been in Atom, after using it for 1-2 yrs. My main reason for switching to Vim is that Vi/Vim are a pretty standard default install on most distros, so you're pretty much guaranteed to have it everywhere. I've never tried using emacs, so I can't say anything good or bad about it.

u/DevOnTheLoose · 3 pointsr/csharp

Here are my two recommendations based on what you're starting with:

https://amzn.com/1430249358 - Beginning C# Object Oriented Programming by Dan Clark

It's circa 2013, but that shouldn't matter too much. The point of this book is to get you understanding the fundamentals which haven't changed a bit in a while. I can't speak to the effectiveness of this book, personally (I came from C++, so for me it was more about learning how inheritance patterns in C# differed and this book wouldn't have worked for me), but I've recommended it to other people looking to get a start in programming and it has been well received. The goal with this book is to get to the point where you can read a serious book on C# and this provides that pretty well.

After that, head right over to:

https://amzn.com/1491927062 C# 6.0 in a Nutshell - by Joseph Albahari and Ben Albahari (O'Reilly Press).

I own every edition of the C# in a Nutshell series and have read each (speed reader - lots of skimming/scanning since each edition has a lot of repeat content). I'm a huge fan of the "in a Nutshell" books - the "signal to noise" ratio of these books is very high - they're excellent books for people who prefer/are best at learning via books - think of it as an "AP Course". It'll take you a while to get through (the last guy who successfully completed both took 9 months front to back at about 20 hours a week using a strategy that involved reading the book about 4 times [topic for another post] -- it was for a job, so he had no choice but to learn). When you're done, though, you'll understand a large percentage of C# code and be able to write many different kinds of applications.

From there, it's time to head toward the particular discipline you'll be developing most frequently with (ASP.Net MVC, etc) or target certain areas (multithreading/thread safety is usually a good place to go next if you have no particular target).

u/naradrinis · 3 pointsr/learnprogramming
u/mipadi · 3 pointsr/apple

Mac OS X Internals: A Systems Approach by Amit Singh is the canonical guide. It focuses on how the operating system works, but that'll provide a lot of insight into how things work at the hardware level, too.

u/JasonZX12R · 3 pointsr/linux4noobs

I have been a Unix admin for 5+ years and I am always finding cool tricks with commands I have been using for years. Or built in shell commands even, such as:

http://www.amazon.com/Bash-Shell-Conquering-Command-Line/dp/1590593766/ref=sr_1_1?ie=UTF8&qid=1319107875&sr=8-1

Is one of the books I have been going back over.

u/liveyourheart · 3 pointsr/learnprogramming

apply, and be up front about about your java background. honestly, java and c# share a ton of similarities. Brush up on a book (this may not be a bad idea anyway as c# and .net jobs are available about anywhere).
Worst case scenario, you learn something new (and can now compare and contrast c# and java) and get some interview experience.

edit: I really enjoyed C# 6.0 in a nutshell. There are a ton of more economic resources out there. Most employers outside of the really big tech companies care more about your passion for learning and your soft skills than if you can deliver a perfect solution on a whiteboard.

u/masterm · 3 pointsr/linux4noobs

You probably want the full package which includes having a desktop/window manager. Use a popular distro because you will need help (and a popular distro has more resources/support available). Use the terminal all the time. Read all the time. Fuck with everything

Read this: http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356

u/BrotherChe · 3 pointsr/Unexpected

Just because textbooks and reference books can be dry doesn't mean they're not creative.

Here's another and another. O'Reilly published books have a couple clever or "funny" ones.

u/professorlamp · 3 pointsr/learnprogramming

If you're not a complete beginner then go for The C programming language .

If you need to get up to speed on both programming and C, then I'd recommend something a bit more friendly such as Programming in C

u/get-postanote · 3 pointsr/PowerShell

Nothing is every really outdated, as you never know what you are going to encounter in a target / assigned environment and even have to continue to deal with legacy OS, PS versions and now cross platform. That cross platfomr bit, as far as in depth stuff, no refrence really exists, yet.

​

Why are not all the built-in help files and ps1/psm1, etc., not a good reference point and well as all the docs on the MS PowerShell GtiHub and docs site as well as these handy resources and one of the other top PS books that been around: for years now:

Windows PowerShell in Action, Second Edition Second Edition

​

And coding in general -just becasue the more your script , eventually understand real coding practices is paramount. Look to this reference. It's not PowerShell specific, but for wrapping you head and goals around coding practices.

Code Complete (Developer Best Practices)

​

PowerShell Documentation

https://docs.microsoft.com/en-us/powershell

https://docs.microsoft.com/en-us/powershell/module/?view=powershell-6

​

Other free eBook references

https://leanpub.com/u/devopscollective

http://www.powertheshell.com/cookbooks

​

Windows PowerShell Survival Guide

https://social.technet.microsoft.com/wiki/contents/articles/183.windows-powershell-survival-guide.aspx

​

DevOps Collective Videos

https://www.youtube.com/playlist?list=PLfeA8kIs7CocGXuezOoYtLRdnK9S_Mq3e

​

Cheet Sheets

https://github.com/PrateekKumarSingh/CheatSheets/tree/master/Powershell

​

PowerShell Best Practices

https://blogs.technet.microsoft.com/heyscriptingguy/tag/best-practices

https://blogs.technet.microsoft.com/heyscriptingguy/2014/05/28/powershell-best-practices-simple-scripting

https://www.digitalshadows.com/blog-and-research/powershell-security-best-practices

https://ptgmedia.pearsoncmg.com/images/9780735666498/samplepages/9780735666498.pdf

https://www.digitalshadows.com/blog-and-research/powershell-security-best-practices

https://github.com/PoshCode/PowerShellPracticeAndStyle

https://gallery.technet.microsoft.com/scriptcenter/PowerShell-40-Best-d9e16039

https://www.microsoftpressstore.com/store/windows-powershell-best-practices-9780735666498

​

​

​

u/Righteous_Dude · 3 pointsr/CompTIA

I will be taking the current version of the Linux+ test instead of the beta of the new version.

  1. I recommend, first, learning from a book that covers many of the Linux commands and their command-line options. I'm using "Linux Pocket Guide - Essential Commands, 3rd edition" by Daniel Barrett published by O'Reilly. People who took the current exam or the beta have said that an exam-taker should know details about the commands and their options.

  2. After that, you can learn from one of the books written for the current version, for the topics that the current version and the new beta version have in common. I evaluated the exam-prep books for the current version in this post.

  3. I don't recall which topics are in the new objectives but not in the current objectives. You can at least read Wikipedia articles on such topics so that you have some understanding of them. You can also search on the Web for some relevant keywords and there are probably educational articles out there.

  4. I also recommend having a CentOS or Ubuntu system installed on a PC, or installed in a VM, so that you can get some hands-on experience. That experiential learning can help you recall things when you are in the exam room.




u/sbicknel · 3 pointsr/vim

Don't overlook the included user manual. :help usr_toc will take you there. It is based on the book "Vi IMproved--Vim," which is also available free in PDF format on the Internet because it is published under the Open Publication License. The book is dated, but the manual is up-to-date and tracks with the book very closely.

Derek Wyatt's tutorial videos are good, but there is another vim video tutorial set at Vimcasts.

If you would rather read, but don't want to dig into a five-hundred page book, "A Byte of Vim" may be more manageable. Several of these resources are listed in this subreddit's sidebar.

Several books are now available that cover Vim nicely: "Learning the Vi and Vim Editors," "vi and Vim Editors Pocket Reference," "Hacking Vim 7.2," "Practical Vim: Edit Text at the Speed of Thought," and a brand new book: "Pro Vim," all available on Amazon.

u/darthsabbath · 3 pointsr/learnprogramming

So these are complicated topics. I know more about the iOS side of things, but I'll try to point you towards some Android resources too.

For iOS, a good place to start would be to pick up an iPhone 4. It had fewer exploit mitigations and jailbreaking it was a lot easier. I highly recommend The iOS Hacker's Handbook. It's old, but the same basic concepts apply, especially for older versions of iOS. If you brick a newer iPhone and have to reinstall, you'll lose your jailbreak. With an iPhone 4, all installable versions of iOS are jailbreakable, so if you brick it you can always get back in. If you look at the iPhone Wiki you can see some writeups of some jailbreaks. Evasi0n 6 or 7 might be a good place to start. Get an iPhone 4 running iOS 6 or 7 and try to reimplement the kernel vulnerabilities used by them.

iOS and macOS share a lot of common code, and macOS is a much easier target since you can run it in a VM and it isn't as locked down. So that might be a good place to start to learn how to attack Apple's OSes. Here are some good walkthroughs of some macOS exploits:

u/Jeff-J · 3 pointsr/Gentoo

Books that I find very useful:

Beginning Portable Shell Scripting: From Novice to Professional

From Bash to Z Shell: Conquering the Command Line

Unix Power Tools, Third Edition

The UNIX Programming Environment

Running Linux (mine is old, but still useful)

I have bought lots of other useful books from O'Reilly.

Anything written by Michael W Lucas.

u/ucsdrake · 3 pointsr/linuxquestions

I realize this has more than the OP was looking for (ie the other shells). but UNIX Shells By Example is by far my favourite book I've come across in terms of learning scripting, might want to check it out.

u/foxostro · 3 pointsr/programming

I have read [The Design and Implementation of the FreeBSD Operating System](http://www.amazon.com/Design-Implementation-FreeBSD-Operating-System/dp/0201702452/ref=sr_1_1?ie=UTF8&s=books&qid=1256868970&sr=8-1 "The BSD Book"). I agree that the operating system is much more elegantly designed than Linux. Well, it's just that this is a piss poor reason to actually use FreeBSD.

Of course, one has no trouble understanding why Apple chose to use BSD as the basis of Darwin.

u/goomba870 · 2 pointsr/linuxmasterrace

> unix power tools book

This?

u/CSMastermind · 2 pointsr/AskComputerScience

Senior Level Software Engineer Reading List


Read This First


  1. Mastery: The Keys to Success and Long-Term Fulfillment

    Fundamentals


  2. Patterns of Enterprise Application Architecture
  3. Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
  4. Enterprise Patterns and MDA: Building Better Software with Archetype Patterns and UML
  5. Systemantics: How Systems Work and Especially How They Fail
  6. Rework
  7. Writing Secure Code
  8. Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries

    Development Theory


  9. Growing Object-Oriented Software, Guided by Tests
  10. Object-Oriented Analysis and Design with Applications
  11. Introduction to Functional Programming
  12. Design Concepts in Programming Languages
  13. Code Reading: The Open Source Perspective
  14. Modern Operating Systems
  15. Extreme Programming Explained: Embrace Change
  16. The Elements of Computing Systems: Building a Modern Computer from First Principles
  17. Code: The Hidden Language of Computer Hardware and Software

    Philosophy of Programming


  18. Making Software: What Really Works, and Why We Believe It
  19. Beautiful Code: Leading Programmers Explain How They Think
  20. The Elements of Programming Style
  21. A Discipline of Programming
  22. The Practice of Programming
  23. Computer Systems: A Programmer's Perspective
  24. Object Thinking
  25. How to Solve It by Computer
  26. 97 Things Every Programmer Should Know: Collective Wisdom from the Experts

    Mentality


  27. Hackers and Painters: Big Ideas from the Computer Age
  28. The Intentional Stance
  29. Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine
  30. The Back of the Napkin: Solving Problems and Selling Ideas with Pictures
  31. The Timeless Way of Building
  32. The Soul Of A New Machine
  33. WIZARDRY COMPILED
  34. YOUTH
  35. Understanding Comics: The Invisible Art

    Software Engineering Skill Sets


  36. Software Tools
  37. UML Distilled: A Brief Guide to the Standard Object Modeling Language
  38. Applying UML and Patterns: An Introduction to Object-Oriented Analysis and Design and Iterative Development
  39. Practical Parallel Programming
  40. Past, Present, Parallel: A Survey of Available Parallel Computer Systems
  41. Mastering Regular Expressions
  42. Compilers: Principles, Techniques, and Tools
  43. Computer Graphics: Principles and Practice in C
  44. Michael Abrash's Graphics Programming Black Book
  45. The Art of Deception: Controlling the Human Element of Security
  46. SOA in Practice: The Art of Distributed System Design
  47. Data Mining: Practical Machine Learning Tools and Techniques
  48. Data Crunching: Solve Everyday Problems Using Java, Python, and more.

    Design


  49. The Psychology Of Everyday Things
  50. About Face 3: The Essentials of Interaction Design
  51. Design for Hackers: Reverse Engineering Beauty
  52. The Non-Designer's Design Book

    History


  53. Micro-ISV: From Vision to Reality
  54. Death March
  55. Showstopper! the Breakneck Race to Create Windows NT and the Next Generation at Microsoft
  56. The PayPal Wars: Battles with eBay, the Media, the Mafia, and the Rest of Planet Earth
  57. The Business of Software: What Every Manager, Programmer, and Entrepreneur Must Know to Thrive and Survive in Good Times and Bad
  58. In the Beginning...was the Command Line

    Specialist Skills


  59. The Art of UNIX Programming
  60. Advanced Programming in the UNIX Environment
  61. Programming Windows
  62. Cocoa Programming for Mac OS X
  63. Starting Forth: An Introduction to the Forth Language and Operating System for Beginners and Professionals
  64. lex & yacc
  65. The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference
  66. C Programming Language
  67. No Bugs!: Delivering Error Free Code in C and C++
  68. Modern C++ Design: Generic Programming and Design Patterns Applied
  69. Agile Principles, Patterns, and Practices in C#
  70. Pragmatic Unit Testing in C# with NUnit

    DevOps Reading List


  71. Time Management for System Administrators: Stop Working Late and Start Working Smart
  72. The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services
  73. The Practice of System and Network Administration: DevOps and other Best Practices for Enterprise IT
  74. Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale
  75. DevOps: A Software Architect's Perspective
  76. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
  77. Site Reliability Engineering: How Google Runs Production Systems
  78. Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry
  79. Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation
  80. Migrating Large-Scale Services to the Cloud
u/PM_ME_UR_DICK_PICS__ · 2 pointsr/jailbreak

Just learning a couple of languages won't do if your only concern is learning how to exploit. Learning how operating systems work is equally important if not more, though learning a programming language is an obvious first step.

  • Start with C then C++ and finally Objective-C. If learning C seems boring/hard take a look at Python first as you'll need it anyway for scripting.

  • Then you'll have to learn ARM/ARM64 to reverse engineer stuff.

    Now, I don't know if these are absolutely necessary but they are helpful anyway.

  • Learn and use Linux/BSD the hard way™, using OS X or Windows won't get you too far IMO (I'd actually include easy distros like Ubuntu into that category). Though OS X is almost a necessity to know how iOS works and interact with it, also important since the two have so much in common.

  • You can buy a book to get a general knowledge about binary exploitation, for that you can use this. It's outdated now so I don't know the current state of affairs, you can substitute it for a more modern book.

  • You'll have to get an iOS specific book. Though again it's outdated.

  • Take a look at these tools. Libimobiledevice is awesome

  • After all that you can use some Wargames/CTFs for practicing your skills, e.g http://overthewire.org, http://wechall.net, http://io.smashthestack.org, https://exploit-exercises.com. Though you can ignore this step I guess

  • Start from old iOS, iOS 4 or 5 seem sweet spot.

    Also check out http://winocm.moe/research/2013/09/20/resources-for-getting-started/, I might have repeated what she said.
    https://www.theiphonewiki.com/wiki/Up_to_Speed is also useful. However The iPhone Wiki again, is outdated.
u/hizinfiz · 2 pointsr/jailbreak

This might be a good starting point, but I have no idea how outdated the information is. There's another book that was released last year but I can't remember the name of it.

Edit: Found it

/u/modalbony

u/random_account_538 · 2 pointsr/MLPLounge

I've been slowly working my way back through this book to make sure I still remember everything. They have a newer edition out for it, so get that if you decide to pick it up. It's not a light read, and assumes you already know a fair bit about C, but it teaches things that are crucial to practical programming.

As for GTK+, there aren't too many good books on it unfortunately - at least that I've seen yet. I picked up a "Foundations of GTK+ development" book when I first started learning it. It gets you going, but leaves out a lot of what I would consider important details for more advanced things. For example printing is only very breifly covered. If there's one thing users are going to want it's printing support..

u/AlSweigart · 2 pointsr/learnpython

WHY DO YOU ASK MAINTAINS THE PROPER ATTITUDE OF A DECENT THING?

:)

> From experience, one book is barely enough to get your feet wet

Ha! Definitely. I keep getting ideas for other books I should write.

I'd recommend the following as good general books to read. They're all good no matter what type of programming you do:

u/CatZeppelin · 2 pointsr/linux4noobs

It's a great book, many intro to Operating Systems classes use it. Although, a bit pricey (£112) they're plenty of copies that can be purchased used with a more manageable price tag.

There's also The Design and Implementation of the FreeBSD Operating System that is better served after reading Tanenbaum's primer.

u/ergotron · 2 pointsr/linux

I agree that from what I know about Time Machine it's super easy for the average user to successfully use. I think that's really important. You shouldn't have to understand Linux to keep your stuff safe.

Speaking of car analogies, have you read In the Beginning was the Command Line...?

u/rpetre · 2 pointsr/linux

Read a lot. Man pages, guides, examples, source code. Experiment. True, with only one machine you probably won't get to get exposed to, say, networking stuff (you can emulate complex networks using VMs, but you still need to know a lot to set up such an environment). Still, there's a lot of things to learn about the system just by mucking with it. Having a machine you can reinstall whenever you want helps a lot, get an old PC or laptop and use it as a test bed if you don't have a spare server, making it a webserver today, a mailserver tomorrow, a firewall the next day and so on.

Take any problem as a challenge to dig deeper and understand why. Granted, in the Google age, the solution to most problems are just a search and a copy-paste away, but getting to understand what happens with the machine and what's the most elegant way to control it takes a lot of research and practice and failures. Learning "why" is way more important than learning "how", since tools evolve and change and the manuals are always close, but knowing what to look for is a skill that takes time to develop.

Speaking of failures, try to come up with as many ways as you can to make things fail and try to find solutions to most of them. Good sysadmins understand failure and actively explore ways to prevent or handle it.

If you don't mind reading thick books, I heartily recommend Evi Nemeth's Linux Administration Handbook (pretty hands-on) and Tom Limoncelli's Practice of System and Network Administration (about the mentality and processes and non-technical stuff). You might find the latter a bit boring, since it has zero scripts and commands in it, but sooner or later in your career you'll love it.

I'll stop because I ranted too much already, but as a final word, keep in mind that SA is primarily about maintaining infrastructure that helps people, so don't get too caught up by the tech to forget that service availability comes first, shiny toys second ;)

u/xgunterx · 2 pointsr/linux
u/satysin · 2 pointsr/C_Programming

If you are a total beginner then read C Programming Absolute Beginner's Guide, Third Edition by Greg Perry & Dean Miller
https://www.amazon.co.uk/Programming-Absolute-Beginners-Guide-Guides/dp/0789751984

If you have some basic experience in another language such as Python, Visual Basic, JavaScript, etc. then read Programming in C, Forth Edition by Stephen Kochan
https://www.amazon.co.uk/Programming-Developers-Library-Stephen-Kochan/dp/0321776410

If you are comfortable programming in another language such as Java, C#, Python, etc. then read The C Programming Language, Second Edition by Kernighan & Ritchie (also known as the K&R book)
https://www.amazon.co.uk/C-Programming-Language-2nd/dp/0131103628

u/comrad_gremlin · 2 pointsr/gamedev

Great advice, totally agree.

I think it's a mix of experience and knowing what is possible to make. The book that helped me is Design Patterns Explained, by Allan Shalloway and James R. Trott. It's not really game-oriented, but it's about programming, so I definitely use patterns described there. They also give explanation on UML diagram and try to answer the question you've asked, "How does one design code"

u/too_clever_username · 2 pointsr/books

This book was originally posted as an essay on Stephenson's web site, but was later published as a 160-page paperback.

u/randomguy186 · 2 pointsr/sysadmin

I always recommend sysadmins read The Practice of System and Network Administration.

For PowerShell, I'm fond of Windows PowerShell In Action. It's written by the language designer, so it's not for the faint of heart. It'll give you a thorough foundation in the language but you'll find no cookbook here.

u/nhasian · 2 pointsr/linux4noobs

I got this one a few years ago and it really helped: http://www.amazon.com/Learning-Vim-Editors-Arnold-Robbins/dp/059652983X

u/dklyons81 · 2 pointsr/math

When I took the class in college, we went off Stinson's Cryptography: Theory and Practice and I got a lot out of that.

I also really enjoyed Disappearing Cryptography, which is actually about steganography and watermarking.

u/ReddestDream · 2 pointsr/jailbreak

>What exactly do you mean by watching it to see CPU? I'm quite familiar with Top -u, but is there a way to view just that processes CPU? I kind of want to watch it through my computer while browsing and see what happens.

You need to get its PID first. My favorite way to do that is with System Status from the App Store, which lists running processes with PIDs (although you can't kill them or anything).

Then use:

top -pid PID

To see just that process's stats.

>Does that Jetslammed tweak have anything related to this or help this?

Jetslammed can change a launchdaemon's HighWaterMark RAM limit, the limit of sustained RAM usage at which Jetsam automatically kills the daemon.

http://newosxbook.com/articles/MemoryPressure.html

The HWM can also be changed manually, but, in the end, it doesn't really help that much unless a daemon is only dying due to exceeding its HWM.

It can still be killed for other reasons if the system is low on memory.

It doesn't actually keep discoveryd from EVER being killed, so it doesn't really solve the issue of very large hosts (>300 KB) files causing random website disconnects due to discoveryd dying, leading to DNS failure.

It really just fixes it so that you can have Wifried and a small ad blocking hosts file at the same time since Wifried + even a small hosts file (like Light UHB) will cause discoveryd to use about 9-10 MB, exceeding the 8 MB HWM limit for a long period of time, causing discoveryd to be automatically killed, causing Wifried to re-initialize Wifi, causing random Wifi disconnects, which is even more problematic than even a DNS failure.

Wifried with Jetslammed raises the HWM for discoveryd to 12 MB from 8 MB, preventing the HWM killing of discoveryd with Wifried + small ad blocking hosts file. A large hosts file will exceed even this new limit, but, in that case, where discoveryd uses 20 MB or more, it will be killed by the system anyway for other reasons not related to the HWM.

>So do I have the correct Light UHB? Is that the one you use? I guess I might try reinstalling and maybe see. Haven't had an issue since its crash and (haven't checked today) haven't seen it anywhere near the top when running "top".

I use Light Untrusted Hosts. I've watched discovery's PID for about a month now. It's not being jetsam killed anymore even if I load a LOT of tabs and really stress it out. It never goes over 8 MB (the HWM) for any sustained period of time (even 8 MB requires A LOT of DNS activity), and never reaches enough RAM usage that the system would think to kill it to free memory (10-20 MB). Gamed (the GameCenter daemon) uses more memory than discoveryd with Light UHB . . .

>-unrelated- I love learning about all this stuff and your fountain of knowledge so far. Mind if I asked where you learned so much? I've been learning a lot about daemons lately, especially locationd and backboardd. I'm just curious as to where I can learn more about this stuff, learn how to read crash logs as so far it's just from the little experience I have, etc. I just can't find any good resources..

I've used OS X since it was in beta, and iOS is secretly just OS X in disguise with a TouchUI, a few processes missing, and a few processes added.

This book has been helpful to me in understanding jailbreaking, although it is a bit dated:

http://www.amazon.com/iOS-Hackers-Handbook-Charlie-Miller/dp/1118204123

Also a bit dated, but you may like it if you have a Mac:

http://www.amazon.com/Learning-Unix-OS-Going-Terminal/dp/1449332315/ref=sr_1_1?s=books&ie=UTF8&qid=1418694791&sr=1-1&keywords=OS+X+unix

This wiki is also good. Many devs post on it:

https://theiphonewiki.com/wiki/Main_Page

u/snowlovesnow · 2 pointsr/C_Programming

Programming in C by Stephen G. Kochan

Hands down the best beginner book

A new version (4th) was just released this past August.

Any experienced programmer will tell you so. The K&R book is an excellent resource however Programming in C is much better suited for an absolute beginner.

u/smitcolin · 2 pointsr/sysadmin

Cryptonomicon or for that matter any of Neal Stephenson's early work like In the Beginning ... was the Command Line

u/ccjitters · 2 pointsr/linuxquestions

There are a couple things i'd recommend to start with. First, figure out how you learn best. For me it's physical books. I get bored and distracted with videos and pdf's get forgotten about. I'd definitely getting some decent reference material. Here are some of my favorites:

  • The Python Pocket Reference

  • The Bash Pocket Reference

  • The Linux Pocket Reference

  • The Linux Bible

  • Literally anything by No Starch Press They're excellent books, fun to read and look great on a shelf.


    Kali on a raspberry pi is fine but i would not recommend starting with Kali. It's not a beginners Distro. If you can, i'd recommend picking up a cheap 2.5" hard drive for your laptop and swapping it with the Windows drive, or dual booting works too. Install a linux distro and eat your dogfood. Ubuntu and Linux Mint are great for beginners, with Mint and the cinnamon desktop being very similar to Windows 7.

    Centos or Fedora are also good. Fedora is based on Red Hat Enterprise linux, so it's very similar to what you'd find in an business enterprise environment. Centos takes it further though. It's literally just RHEL without branding or paid support.

    All of these (apart from RHEL) are free and all would be a good jumping off point. The only real difference between them all is the package manager and Desktop environment. Red Hat uses 'yum' while Debian uses 'apt'.

    Once you find one you like start practicing. Nearly all utilities you'll find will have a graphical user interface but the command line is always going to be more extensible/powerful. If nothing else get the Linux and Bash pocket references and test administering your own system. Try using the command line for python instead of IDLE. Learn to reboot/shutdown, install/update/upgrade/search with your package manager, try to make your system faster and document everything you do. EVERYTHING.

    You'll be a pro in no time.

    (I'm serious about the documenting. It's important. If you don't believe me check out some of the stories u/patches765 posts in r/talesfromtechsupport. It's like documentation is his superpower.)
u/ezrock · 2 pointsr/IAmA

> Should I avoid the Microsoft world if I am certain on focusing in the direction of linux?

Assuming you are considering systems administration... In short, yes, avoid MS, and get to know Linux (when I say linux, I usually mean all of the Unix-like OSes). Most of the great sysadmins I know have OSX or Linux on their workstation, and work administering Linux systems. I can't think of anyone that knows both MS and Linux and prefers working with MS - although I am sure they exist. At the end of the day, it comes down to what you prefer, but there are a lot of arguments to be made for getting to know linux. #1 is the server market share, and #2, the F/OSS philosophy.

> What is the lowest "entry-level" job that I can get my feet wet while I study?

With linux, hmmm, good question... there are a couple of entry points. I'd start by teaching yourself. Again, it depends on what you are into. One entry level position would be tech support at a hosting company that hosts linux servers for their clients. The guys that you get on the phone/email when you have this service for example. Their tech support is usually tiered, so tier 1 is doing easy stuff and tier 3 is doing the hardcore stuff. I even poked around a found a listing. That's a great way to get your feet wet. That, or a linux-based startup that has a team and needs more hands.

> I know this is pretty far out, but how's the hiring like for linux positions? When the time comes, should I work with a recruiter, or sell myself to a start-up or company directly?

I wouldn't think it is so far out. If you are a "computer-person" smart and you got yourself a book like this and practiced a bit until you were good enough, you could get an entry-level job pretty damned quickly, I think. The market is quite hot in big cities. For proof, pick a big city, go to craigslist and type in linux under jobs. I picked LA In my opinion, there is nothing wrong with recruiters, it's nice having someone whose job is to get you a job. I've used them to hire and to be hired in my past. Just remember, they're salespeople, and they're selling you, so they are often put in a position where they are trying to persuade you.

>What should I get started on reading? What books would you recommend for a beginner? (I'll take "advance" ones too, I'll save them for the future). Also, if you know of any online communities or websites, I appreciate those as well.

As far as resources... That book above is great. It depends on what you want to know. The RHCT/E course material is great for practical sysadmining:
This is old, but I used it. Almost all of this stuff is good.
This is a classic, but it's quite old.

Online, no better place to start than:
http://www.reddit.com/r/sysadmin/top/

/r/linux

http://code.reddit.com/wiki/help/faqs/sysadmin

u/too_many_puppies · 2 pointsr/linux

In college I took a class that used this book as the text book. I loved that class and my knowlege and love of linux/unix definately benefited.
http://www.amazon.com/Programming-Environment-Addison-Wesley-Professional-Computing/dp/0321525949/ref=sr_1_1?ie=UTF8&qid=1334773536&sr=8-1

u/4221 · 2 pointsr/books

It's an essay he wrote back in 1999, about 150 pages only. I just found a link. I've got it on the kindle myself. dont think its available in danish, sorry. all you teacher needs is an IBAN number though, so youll be fine. just use this as the "main" source and back the rest up with your links.

EDIT: Amazon link if you have to pay for it so your teacher will accept it as a book: http://www.amazon.com/Beginning-was-Command-Line-Neal-Stephenson/dp/0380815931

u/archover · 2 pointsr/archlinux

> How Linux Works

Came here to say this!

This book really hit the sweet spot for me. Covered Linux in just the right balance of concepts and details. I would read a bit, then try it on the computer. Really helped!

http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356

u/zubzub2 · 2 pointsr/AskReddit

>On a related note fuck tcsetpgrp.

Get yourself a copy of Advanced Programming in the Unix Environment, Second Edition. One of the few computer books I recommend reading.

It contains pretty concise (well, the book is big, but there's not much fluff) summaries of a lot of Unix systems stuff, including a lot of gotchas. Reading that earlier would have saved me a not insignificant amount of time on Unix systems later.

u/dmbuddy · 2 pointsr/linuxadmin

I really enjoyed both of these books when I was starting out. Even now they are super helpful. https://www.amazon.com/gp/aw/d/0134277554/ref=dp_ob_neva_mobile

https://www.amazon.com/gp/aw/d/1491927577/ref=dp_ob_neva_mobile

If you don’t know Linux at all the 2nd book gives you a good overview of things.

u/massysett · 1 pointr/linux

Interactive or scripted?

Interactive

u/DEiE · 1 pointr/learnprogramming

Design Patterns is the de facto standard, although Design Patterns Explained is probably better as an introduction.

u/joedonut · 1 pointr/linuxadmin

UNIX Shells by Example by Ellie Quigley. Reviews here.

u/iFappster · 1 pointr/learnprogramming

Start with finishing this whole book. Start to finish. It is so amazingly helpful: https://www.amazon.com/gp/aw/d/B00EANJ09U/ref=pd_aw_sbs_351_1?ie=UTF8&psc=1&refRID=ZHNDKD9899ZNDSAXDA4V. Even if you aren't an absolute beginner. Then, once you are done with that, read + complete the exercises for this book: https://www.amazon.com/gp/aw/d/0321776410/ref=pd_aw_fbt_14_img_2?ie=UTF8&psc=1&refRID=78FY6PWRFXNDM0DQ2DGW you will literally look back at this post, and laugh at how much more you know after reading these books. I promise.

For pointers, they literally just "point" at that address in memory. The: 1234 cherry st.. That address is actually considered a pointer. Just imagine your computer pointing a finger at that address in its physical memory. Like I could physically point to your house on a map, using the address you give me..

u/unSatisfied9 · 1 pointr/learnprogramming

I just found the following book, and I think it actually looks a bit better than the C# 6.0 in a nutshell book. I'd appreciate if someone could give his/her personal opinions on it.



http://www.amazon.com/gp/product/1509301046?psc=1&redirect=true&ref_=ox_sc_act_title_1&smid=ATVPDKIKX0DER

u/Ben_Aperture · 1 pointr/linux

I much appreciate your answer. I will take into account ir. I started using Linux about a year and a half ago, coming from windows. I just thinked that I could find a good alternative for Windows, and I moved to Ubuntu MATE. I was fascinated by its velocity, security and how it's packages worked. At the first time, I was dual-booting, but then I removed windows and started to just use Linux. I've been using Linux casually for a lot of time, and now I'm going serious. I want to learn bash scripting and python. I have got a fantastic Spanish Python book, (I'm learning a lot because of it), and now I'm looking for some bash and Linux books by O'Reilly and I've found this book https://www.amazon.es/gp/aw/d/0596009658/ref=mp_s_a_1_1?__mk_es_ES=%C3%85M%C3%85Z%C3%95%C3%91&qid=1520884449&sr=8-1&pi=AC_SX236_SY340_QL65&keywords=O%27Reilly+bash&dpPl=1&dpID=513EprgSOcL&ref=plSrch and this other one https://www.amazon.es/gp/aw/d/1491927577/ref=mp_s_a_1_3?__mk_es_ES=%C3%85M%C3%85Z%C3%95%C3%91&qid=1520884734&sr=8-3&pi=AC_SX236_SY340_QL65&keywords=O%27Reilly+Linux&dpPl=1&dpID=51AbKrNDvaL&ref=plSrch
Would you recommend me this books to learn?
I'm Spanish, so the prizes should be different

u/lqjfsf1234 · 1 pointr/cscareerquestions

Learning how to write device drivers for something like Linux is a good way to get started with the kind of low-level coding you're talking about without having to write a full blown OS from scratch.

This book about FreeBSD is pretty good too - http://amzn.com/0201702452 . It's pretty old, but apparently a new version is due out in September.

u/TravisO · 1 pointr/csharp

Originally MS published a great beginner series called "Learn {thing} Visually" and there was a book for each subject. Instead of teaching boring fundamentals of coding, it started by making simple Windows forms which were drag and drop and slowly taught the programming. I use to buy a stack of these books (they were like $13 on Amazon) and anytime somebody had a series interest I would get one from my trunk and give them the book.

Apparently this series was replaced with the "step by step" series:
https://www.amazon.com/dp/1509301046/

u/RealityMan_ · 1 pointr/sysadmin

I just saw you said low on funds, but if you have a birthday or something coming up these two books have been great resources for me, and others that have taken a dive into it.

https://www.amazon.com/Linux-Bible-Christopher-Negus/dp/111821854X

https://www.amazon.com/Linux-Command-Shell-Scripting-Bible/dp/111898384X/ref=pd_sbs_14_img_1?_encoding=UTF8&psc=1&refRID=J9RW2JJ25KF0HEW2DDNK

One thing I'd say is DON'T BE DISCOURAGED. There's a lot to Linux, and it'll feel like you are drinking through a fire hose sometimes with concepts, everyone has been there, and I'm still very much there. In addition to reading a butt load, one thing that helped me take the edge of was getting a box up with something I'd use. My personal pet project back in the day was setting up a redhat instance and run a ventrilo server. It helped me learn things like security, package management, patching, getting real comfortable with things like awk and sed. I didn't expose it to the internet except for a few whitelisted IPs but it kept me learning for a long time, and made it fun.

u/ioscreation · 1 pointr/jailbreak

Maybe this book would be of some help? I just ordered this for myself and from what I've heard about it, it's a very good book to learn about how iOS works & how to defeat it.

[Book](iOS Hacker's Handbook https://www.amazon.com/dp/1118204123/ref=cm_sw_r_cp_api_C0VCybEAQFC95)

u/Arabgunner06 · 1 pointr/learnprogramming

I would suggest Microsoft Visual C# Step by Step. I haven't read this version of the book but the 2013 edition was very well written so I would bet this one is just the same. Although it isn't directed to game development, having a solid grasp on C# will allow you to learn unity much quicker. If you have any questions feel free to shoot me a PM and I will try to help!

u/perror · 1 pointr/cryptography

I really love 'Cryptography: Theory and Practice (3rd)' by Douglas Stinson. For me, this is one of the best introduction to the mathematical part of the cryptography.

u/zappbwr · 1 pointr/osx

Depends how good you are at C++.

Mac OS X Internals: a systems approach
Chapter 10

http://www.amazon.com/Mac-OS-Internals-Systems-Approach/dp/0321278542/

Or this tutorial/writeup:
http://wagerlabs.com/writing-a-mac-osx-usb-device-driver-that-impl

u/miyakohouou · 1 pointr/learnprogramming

As others have said, K&R is great for learning the C language. In addition to that, Algorithms in a Nutshell is a nice reference because it has sample code in C for a lot of major data structures and algorithms, so you can see how the language is used to implement CS concepts you might already be familiar with.

I would also highly recommend one or both of Advanced Programming in the Unix Environment or The Linux Programming Interface, which will get you up to speed on POSIX.

u/aiokko · 1 pointr/learnprogramming

I learned with the 7th edition of the Microsoft Step by Step book and found it an excellent introduction to the language. I also went into C# with prior programming experience, so I wanted something more wholesome than a introductory programming book. I would recommend it if you're already familiar with programming.

As far as Unity goes, there are a ton of tutorials out there for both 2D and 3D, just do a quick google search. Their tutorials page also has a couple of 2D-specific tutorials that should help you along. I wouldn't recommend using a book to study Unity, as in my experience tinkering around with the game engine is far more useful for learning. Set up your own projects and learn by discovery.

edit: I'm just going to toss this in here, but Monogame was a big help for me in learning how to program both C# and games. If you're more interested in 2D game development, this might be a good way to go. Monogame is going to be substantially more programming-heavy than Unity, however.

u/ndguardian · 1 pointr/csharp

I have actually been using this book to learn C# and it has been helping immensely. It even tells you where in the book to begin based on your programming experience. Big book, but it really breaks everything down and lets you know how everything works.

u/maredsous10 · 1 pointr/ECE

My General Thought

I find it is best to learn and get exposure from several book/media sources coupled with actual application of things learned.

----

Introductory Texts/Links

Short Intro
http://heather.cs.ucdavis.edu/~matloff/unix.html

C Programming: A Modern Approach
http://knking.com/books/c2/index.html

Head First C (Different Presentation Style, check amazon preview)
http://www.amazon.com/Head-First-C-David-Griffiths/dp/1449399916/

Programming in C
http://www.amazon.com/Programming-C-4th-Developers-Library/dp/0321776410/

PDF Tutorial
http://phy.ntnu.edu.tw/~cchen/pdf/ctutor.pdf
Original Here > http://www.tutorialspoint.com/cprogramming/index.htm

C The HardWay (Mostly complete)
http://c.learncodethehardway.org/book/

Zed's K&R Critique
http://c.learncodethehardway.org/book/krcritique.html

Practical C Programming
http://shop.oreilly.com/product/9781565923065.do

Ben Klemens Modeling with Data book has a short C introductory section.
http://ben.klemens.org/pdfs/gsl_stats.pdf

-----

Reference
Harbison and Steele C Reference Manual
http://www.careferencemanual.com/

Plan on developing on Linux?
The Linux Programming Interface: A Linux and UNIX System Programming Handbook
http://www.amazon.com/dp/1593272200/

Didn't get Pointers?
http://www.amazon.com/dp/1449344186/

21st Century C, This book got dogged a lot, but I think its a nice text.
http://www.amazon.com/21st-Century-Tips-New-School/dp/1449327141

K&R Scan (If you want an idea what's inside K&R)
http://www.iups.org/media/meeting_minutes/C.pdf

-----

Need an Editor?
VIM Book
ftp://ftp.vim.org/pub/vim/doc/book/vimbook-OPL.pdf

Vim Video Tutorials
http://derekwyatt.org/vim/

-----

Back in the Day
I used these books years ago. They're somewhat dated, but still useful and cheap.
Programming in ANSI C
http://www.amazon.com/Programming-ANSI-Hayden-Books-library/dp/0672484080
Advanced C: Tips and Techniques (Hayden Books C Library)
http://www.amazon.com/Advanced-Techniques-Hayden-Books-Library/dp/067248417X/

----

C Language Basics
How do I read/write files
How things are implemented at a lower level
Compiler Options and Functionality
What is a make file?
Debugging... How to do it... How do I use a standard debugger like GDB?



u/rez9 · 1 pointr/linux

So basically read the O'Reilly books: Learning the Unix... and Unix Power Tools.

u/brakkum · 1 pointr/bash

I really love this book, has tons of great info in it. Might be able to find it online somewhere.

https://www.amazon.com/Linux-Command-Shell-Scripting-Bible/dp/111898384X/ref=pd_lpo_sbs_14_t_0?_encoding=UTF8&psc=1&refRID=KDKCH1GWS30M5R9G2Z3A

Otherwise, come up with a simple task you want to accomplish, and try and break it down into small steps. Then do some reading on basic bash commands and try and piece it together from there!

u/mikeeusa · 1 pointr/redhat

It is.

\>I don't know where they get the idea.

​

That's because you are ignorant regarding US law in this area. The FSF is not a legislative body, relying on their proclamations is not wise. A sister organization, the SFConservancy, was headed for the longest time by a non-lawyer...

​

( https://www.amazon.com/Open-Source-Licensing-Software-Intellectual/dp/0131487876 )

​

\>p46 "As long as the project continues to honor the terms of the licenses under which it recieved contributions, the licenses continue in effect. There is one important caveat: Even a perpetual license can be revoked. See the discussion of bare licenses and contracts in Chapter 4"

--Lawrence Rosen

​

\>p56 "A third problem with bare licenses is that they may be revocable by the licensor. Specifically, /a license not coupled with an interest may be revoked./ The term /interest/ in this context usually means the payment of some royalty or license fee, but there are other more complicated ways to satisfy the interest requirement. For example, a licensee can demonstrate that he or she has paid some consideration-a contract law term not found in copyright or patent law-in order to avoid revocation. Or a licensee may claim that he or she relied on the software licensed under an open source license and now is dependent upon that software, but this contract law concept, called promissory estoppel, is both difficult to prove and unreliable in court tests. (The concepts of /consideration/ and /promissory estoppel/ are explained more fully in the next section.) Unless the courts allow us to apply these contract law principles to a license, we are faced with a bare license that is revocable.

--Lawrence Rosen

​

\>p278 "Notice that in a copyright dispute over a bare license, the plaintiff will almost certainly be the copyright owner. If a licensee were foolish enough to sue to enforce the terms and conditions of the license, the licensor can simply revoke the bare license, thus ending the dispute. Remeber that a bare license in the absence of an interest is revocable."

--Lawrence Rosen

​

Lawrence Rosen - Open Source Licensing - Sofware Freedom and Intellectual property Law

​

​

​

\>p65 "Of all the licenses descibed in this book, only the GPL makes the explicity point that it wants nothing of /acceptance/ of /consideration/:

\>...

\>The GPL authors intend that it not be treated as a contract. I will say much more about this license and these two provisions in Chapter 6. For now, I simply point out that the GPL licensors are in essentially the same situation as other open source licensors who cannot prove offer, acceptance, or consideration. There is no contract."

--Lawrence Rosen

​

----

\>David McGowan, Professor of Law, University of Minnesota Law School:

​

\>"Termination of rights

​

\>[...] The most plausible assumption is that a developer who releases code under the GPL may terminate GPL rights, probably at will.

​

\>[...] My point is not that termination is a great risk, it is that it is not recognized as a risk even though it is probably relevant to commercial end-users, accustomed to having contractual rights they can enforce themselves.

​

​

​

u/thehumanhead · 1 pointr/sysadmin

It's old, but I enjoyed Powershell in Action Second Edition when I was learning. It explained in depth the how/why/mechanics of PS which was important in helping me remember as opposed to "this is what you do for this" instruction.

u/OrangeOctoberLibra · 1 pointr/linux4noobs

Read Books: I recommend this, this and this.

u/RAGSdale83 · 1 pointr/sysadmin

I was introduced to this book while going through my IT Networking classes. I found that it helped me to understand the *nix environment a lot more.

http://www.amazon.com/Linux-Administration-Handbook-2nd-Edition/dp/0131480049

With that said - I want to grab the book that /u/Letmefixthatforyouyo mentioned. His description made me curious about that book.

u/cozichooseto · 1 pointr/cs50

CS50 used to recommend this book to read and do exercises along side online content: Programming in C

One of the best textbooks I ever read.

u/icedevil6 · 1 pointr/sysadmin

First I took a few of our VBScripts and translated them to POSH. Then I read a book. Then I started automating some of our AD processes and generating reports. Then I started developing custom tools for PDQ Inventory (things like getting the creator of a computer account, getting warranty information, deleting a computer account from AD).

It all just sort of snowballed for me because once you get an understanding of what Powershell can do, you start to realize how much more efficient you can be. It was easy for me to pick up because I went to school for CS and spent plenty of time writing code, but it can be just as easy for a traditional Windows admin to pick up as each GUI operation is essentially a POSH cmdlet.

u/americio · 1 pointr/csharp

For a quick overlook, this. And for a little bit more detail, this one.

u/ncgreco1440 · 1 pointr/gamedev

> I do NOT know C#

C# in a Nutshell

IMHO, the best book for learning C# from absolute beginner to advanced topics. Not all stuff will be usable in Unity however. But most stuff in that book will be applicable.

u/ep1939 · 1 pointr/learnprogramming

Excellent book: https://www.amazon.com/Programming-C-4th-Developers-Library/dp/0321776410

If I had to restart from the beginning, knowing nothing about computers or programming, that would be mys starting point.

K&R is just not a good programming book for beginners in 2018.

u/one_is_the_loneliest · 1 pointr/opensource

> There has been pretty wide spread reporting on the kid hacking and getting 90 GB of private data

What I saw reported was:

  • kid "hacked" Apple
  • kid downloaded 90GB data

    Nothing said what he hacked or downloaded, just that he hacked something and downloaded "data". That could very well be a honeypot.

    > In China Apple has the China government keep the data instead of Google and not sure how good they are at security but I am sure a lot better then Apple at least.

    Again, source? With Apple being worth ~$1T, I'm sure they can hire a competent sysadmin.

    > Google has several of those people including Ken Thompson, Rob Pike and a bunch of other ones

    And they stopped working on Plan9 when they got hired, that was my point.

    > Here is why they get all the best engineers.
    >
    > https://www.cnbc.com/2018/09/12/23000-millennial-and-gen-z-workers-listed-their-dream-employers.html

    People want to work there because they pay really well. I wanted to work there when I was doing my undergrad, but that that faded and now I wouldn't take a job from them even if offered. I've read too many horror stories from people who worked there that it's just not worth my time.

    I do not trust Google, though I use their tech when it makes sense. I develop in Go, use Angular for some projects, and build stuff on Kubernetes. I also use competitor tech, like Rust and React.

    > We had AirPort extremes for example and replaced with Google WiFi.

    Why not something more mainstream like Linksys or Trendnet?

    > Google owns all the IP others use

    That's just not true.

    Oh, and they have retaliated with their own set of patents when challenged. They don't seem to want the publicity of being a patent troll. I think of this more as a business decision and less of a "we're the good guys" decision.

    > Waymo did with Uber.

    There are plenty of companies worse than Google, like Oracle (sued Google and a ton of others). I'm not saying that Google is "bad" (yet), just that they're not "good".

    > Only GOOGL gets voting and that means Brin and Page control, completely. They can NEVER be fired.

    What happens when they leave?

    > completely broken patent system in the US

    Agreed, we desperately need to fix (or completely eliminate) our patent system. Patents on software and designs are ridiculous.

    > Now what I find fascinating is that Google gave away majority of their IP. Poor business but good for everyone.

    No, it's a good business move. Their business is user data and mindshare, and that's how you get tech fanboys. It's a brilliant business move IMO.

    > BTW, my previous generation OS idle is David Cutler. But obviously before NT.

    I'm a fan of Kirk McKusick, if for nothing else than The Design and Implementation of the FreeBSD Operating System.

    I'm pretty hyped about Redox though.
u/pleasedothenerdful · 1 pointr/sysadmin

From what I've read on /r/PowerShell, Windows Powershell in Action is the next one to read after Learn PS Toolmaking IAMOL.

u/i_build_minds · 1 pointr/crypto

As you say: Having an M.Sc in Crypto may provide a good foundation, but what, if any, specialist qualification or knowledge it provides is questionable.

The biggest personal milestones have been reading Stinson's work, and being able to understand and synthesize results on my own within that body of work. For example, with FHE, being able to port some of the claims into CUDA.

That said, it'd be interesting if there were ways to attest to the knowledge and practice of individuals on the subject. Right now it seems almost purely reputation based.

u/SweatyAcademic · 1 pointr/linux

>shell prompt

If you have money, this one is a good option

These two are good and available for free, I suggest you start with them.

> administration

This one is the best.

u/StuartPBentley · 1 pointr/lua

I second Programming in Lua as a recommendation - it is the book to learn Lua, written by the main architect behind the language itself (Roberto Ierusalimschy). The first edition is available online, but I personally recommend at least the second edition (of which I personally have a signed copy) - the fourth edition, the latest, sounds like a good pick (the description says it's been completely re-organized, based on Roberto's experience from decades of teaching Lua).

As for an environment to learn it in, I recommend Cloud9, which gives you an entire Linux integrated development environment for free (you may also want to pick up the Linux Pocket Guide, which is a good reference for learning how to get around on the command line).

u/-zb- · 1 pointr/learnprogramming

To clarify, you mean this right?

u/jezzmo · 1 pointr/sysadmin

First :
How Linux Works: What Every Superuser Should Know
http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356

Second:
UNIX and Linux System Administration Handbook
http://www.amazon.com/dp/0131480057/ref=rdr_ext_tmb



u/empleadoEstatalBot · 1 pointr/argentina

> For those who prefer video lectures, Skiena generously provides his online. We also really like Tim Roughgarden’s course, available from Stanford’s MOOC platform Lagunita, or on Coursera. Whether you prefer Skiena’s or Roughgarden’s lecture style will be a matter of personal preference.
>
> For practice, our preferred approach is for students to solve problems on Leetcode. These tend to be interesting problems with decent accompanying solutions and discussions. They also help you test progress against questions that are commonly used in technical interviews at the more competitive software companies. We suggest solving around 100 random leetcode problems as part of your studies.
>
> Finally, we strongly recommend How to Solve It as an excellent and unique guide to general problem solving; it’s as applicable to computer science as it is to mathematics.
>
>
>
> [The Algorithm Design Manual](https://teachyourselfcs.com//skiena.jpg) [How to Solve It](https://teachyourselfcs.com//polya.jpg)> I have only one method that I recommend extensively—it’s called think before you write.
>
> — Richard Hamming
>
>
>
> ### Mathematics for Computer Science
>
> In some ways, computer science is an overgrown branch of applied mathematics. While many software engineers try—and to varying degrees succeed—at ignoring this, we encourage you to embrace it with direct study. Doing so successfully will give you an enormous competitive advantage over those who don’t.
>
> The most relevant area of math for CS is broadly called “discrete mathematics”, where “discrete” is the opposite of “continuous” and is loosely a collection of interesting applied math topics outside of calculus. Given the vague definition, it’s not meaningful to try to cover the entire breadth of “discrete mathematics”. A more realistic goal is to build a working understanding of logic, combinatorics and probability, set theory, graph theory, and a little of the number theory informing cryptography. Linear algebra is an additional worthwhile area of study, given its importance in computer graphics and machine learning.
>
> Our suggested starting point for discrete mathematics is the set of lecture notes by László Lovász. Professor Lovász did a good job of making the content approachable and intuitive, so this serves as a better starting point than more formal texts.
>
> For a more advanced treatment, we suggest Mathematics for Computer Science, the book-length lecture notes for the MIT course of the same name. That course’s video lectures are also freely available, and are our recommended video lectures for discrete math.
>
> For linear algebra, we suggest starting with the Essence of linear algebra video series, followed by Gilbert Strang’s book and video lectures.
>
>
>
> > If people do not believe that mathematics is simple, it is only because they do not realize how complicated life is.
>
> — John von Neumann
>
>
>
> ### Operating Systems
>
> Operating System Concepts (the “Dinosaur book”) and Modern Operating Systems are the “classic” books on operating systems. Both have attracted criticism for their writing styles, and for being the 1000-page-long type of textbook that gets bits bolted onto it every few years to encourage purchasing of the “latest edition”.
>
> Operating Systems: Three Easy Pieces is a good alternative that’s freely available online. We particularly like the structure of the book and feel that the exercises are well worth doing.
>
> After OSTEP, we encourage you to explore the design decisions of specific operating systems, through “{OS name} Internals” style books such as Lion's commentary on Unix, The Design and Implementation of the FreeBSD Operating System, and Mac OS X Internals.
>
> A great way to consolidate your understanding of operating systems is to read the code of a small kernel and add features. A great choice is xv6, a port of Unix V6 to ANSI C and x86 maintained for a course at MIT. OSTEP has an appendix of potential xv6 labs full of great ideas for potential projects.
>
>
>
> [Operating Systems: Three Easy Pieces](https://teachyourselfcs.com//ostep.jpeg)
>
>
>
> ### Computer Networking
>
> Given that so much of software engineering is on web servers and clients, one of the most immediately valuable areas of computer science is computer networking. Our self-taught students who methodically study networking find that they finally understand terms, concepts and protocols they’d been surrounded by for years.
>
> Our favorite book on the topic is Computer Networking: A Top-Down Approach. The small projects and exercises in the book are well worth doing, and we particularly like the “Wireshark labs”, which they have generously provided online.
>
> For those who prefer video lectures, we suggest Stanford’s Introduction to Computer Networking course available on their MOOC platform Lagunita.
>
> The study of networking benefits more from projects than it does from small exercises. Some possible projects are: an HTTP server, a UDP-based chat app, a mini TCP stack, a proxy or load balancer, and a distributed hash table.
>
>
>
> > You can’t gaze in the crystal ball and see the future. What the Internet is going to be in the future is what society makes it.
>
> — Bob Kahn
>
> [Computer Networking: A Top-Down Approach](https://teachyourselfcs.com//top-down.jpg)
>
>
>
> ### Databases
>
> It takes more work to self-learn about database systems than it does with most other topics. It’s a relatively new (i.e. post 1970s) field of study with strong commercial incentives for ideas to stay behind closed doors. Additionally, many potentially excellent textbook authors have preferred to join or start companies instead.
>
> Given the circumstances, we encourage self-learners to generally avoid textbooks and start with the Spring 2015 recording of CS 186, Joe Hellerstein’s databases course at Berkeley, and to progress to reading papers after.
>
> One paper particularly worth mentioning for new students is “Architecture of a Database System”, which uniquely provides a high-level view of how relational database management systems (RDBMS) work. This will serve as a useful skeleton for further study.
>
> Readings in Database Systems, better known as the databases “Red Book”, is a collection of papers compiled and edited by Peter Bailis, Joe Hellerstein and Michael Stonebreaker. For those who have progressed beyond the level of the CS 186 content, the Red Book should be your next stop.
>
> If you insist on using an introductory textbook, we suggest Database Management Systems by Ramakrishnan and Gehrke. For more advanced students, Jim Gray’s classic Transaction Processing: Concepts and Techniques is worthwhile, but we don’t encourage using this as a first resource.
>

> (continues in next comment)

u/0b_101010 · 1 pointr/learnprogramming

Check out this Crash Course series, it's quite informative: https://www.youtube.com/watch?v=O5nskjZ_GoI.

If you want to go deeper, check out some of the free Computer Architecture courses on the Internets.

Alternatively, if you want to be a Linux/Windows power user, there are some good books out there, like this.

u/solid7 · 1 pointr/learnprogramming

It will teach you the semantics of the posix interface and introduce you to some canonical utilities. That information is relevant today (we still use sed, make, etc..). Given the choice, I'd probably opt for a book specific to linux, freebsd, etc.. kernels alongside something like unix power tools.

u/write_your_own_os · 1 pointr/programming

I know that Harvard University uses Programming in C, by Stephen Kochan.

u/mantrout · 1 pointr/linux4noobs

Online tutorials can answer any questions you might ever have, but when learning something new I like the condensed nature of a well written book on a subject. For shells, I thought this book was excellent, and still reference it from time to time:
http://www.amazon.com/Bash-Shell-Conquering-Command-Line/dp/1590593766/ref=sr_1_1?ie=UTF8&qid=1290060461&sr=8-1

also.... ZSH FOR LIFE!

u/jijilento · 1 pointr/learnprogramming

I just got c# 6.0 in a nutshell for Christmas, as I'm trying to get my .NET game up. I'm only about 200 pages in but I find it pretty effective. My first introduction to C# was through this video tutorial, which is good but not even a fraction of what you learn with the book.

u/nbrenckle · 1 pointr/linux

Any of the OReilly books are excellent. And if you are looking to learn programming/scripting, I'd go with whatever installs easiest on your iMac, which might be OSX. Also, you can check out Linux Administration Handbook (or the general 'Unix' one) http://www.amazon.com/Linux-Administration-Handbook-2nd-Nemeth/dp/0131480049/ref=pd_sim_b_2

u/criis · 1 pointr/crypto

I really liked Cryptography: Theory of Practice. It's like reading a math book with useful real world examples. :)

The book is not so programming related but really, cryptography is pretty much just applied discreet math. Most of the exercises require programming but it's fairly trivial.
In my opinion the hard part isn't the programming; it's understanding the math behind.

Good luck finding what you're looking for.

u/arewegoing · 1 pointr/csharp

I found Visual Studio C# Step by step to be a good book for people who are just starting or are even on intermediate level.

u/rbatra · 1 pointr/learnprogramming

UNIX Shells by Example by Ellie Quigley is a great text to pick up shell scripting.

u/BobDenver · 1 pointr/linux

I've read Open Source Licensing: Software Freedom and Intellectual Property Law. It's pretty good. Available online here.

However, also published in 2004.

u/moustachium · 1 pointr/sysadmin

thanks! I posted this question over at the spiceworks forum and got this:
http://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356/
looks about right. For those coming from Unix:
http://www.amazon.com/Mac-OS-X-Unix-Geeks/dp/B0085SGHCO/

u/CaptainStack · 1 pointr/learnprogramming

My dad was working his way through this to learn PowerShell"

http://www.amazon.com/Windows-PowerShell-Action-Second-Edition/dp/1935182137/ref=sr_1_fkmr1_3?ie=UTF8&qid=1374727827&sr=8-3-fkmr1&keywords=O%27riley+powershell

Honestly though, I don't see why you need to learn PowerShell at your level of programming. Command lines are great, but I would think someone of your experience should get something a little more pure and basic. What do I mean by this? You should be learning about programming as a way of thinking, not about specific tools.

I'm reading through "Think Python" right now, which is unique in that it's more about programming and less about Python. I think it's a great way to learn how to think like a programmer without being bogged down in specific technologies. You won't need anything but a basic Python interpreter. It's also free. Check it out here:

http://www.greenteapress.com/thinkpython/

u/RunninADorito · 1 pointr/cscareerquestions

Here's the one I was thinking of: http://www.amazon.com/Unix-Power-Tools-Third-Edition/dp/0596003307


You don't need the book, but I like learning from practical examples and then using that as a jumping off point. If you like starting with examples for learning - this is the book for you.

u/ben174 · 1 pointr/vim

Same problem here. No idea on how to fix, unfortunately. I grabbed the O'Reilly book, then played vimgolf religiously for a couple weeks, then forced myself to use vim as my only IDE/text editor for a month, and now it feels more natural to me than any other editor I've used.

u/lilgreenwein · 1 pointr/unix

If you're looking for a book I highly recommend Unix Shells by Example:

http://www.amazon.com/UNIX-Shells-Example-4th-Edition/dp/013147572X/ref=la_B001H9RV1E_1_2?ie=UTF8&qid=1346897356&sr=1-2

I like it because it's light on the banter and explanation that's so common with tech books, and heavy on the examples. It's had a permanent spot on my work bookshelf for the last 10 years

u/Amperture · 1 pointr/TwoBestFriendsPlay

So, this was a thought frequently at the back of my mind, but I never did bother to investigate why the fuck O'Reilly uses pencil sketches of ugly animals as their book covers.

So I went to their website, and a few things stuck out to me.

  • The Horrid Little Monkey is actually the primary logo for their website
  • The Horrid Little Monkey is their mascot for their book to learn how to use vim which coincidentally is my favorite text editor
  • They have a page dedicated to explaining why they use ugly animals as mascots, and the explanation boils down to the cover designer is basically just Plague

    >And, as I investigated the attributes of the real animals, I quickly discovered that there were intriguing correspondences between specific technologies and specific animals. That resonance grew and expanded as I learned more about both the technologies and the animals.

    >I was so energized and inspired that I spent an entire weekend working on the covers without much sleep.

    >At the end of the weekend, I gave several sketches to my neighbor to take into the office.
u/5HT-2a · 0 pointsr/applehelp

> HFS+ definitely still gets fragmented to hell. The OS since 10.4 defragments important files, but large hard drives can get very fragmented.

This is actually a pretty interesting subject. If you've ever read Mac OS X Internals: A Systems Approach, Singh covers it very well.

u/guiltydoggy · 0 pointsr/osx

For starting, you can read John Siracusa's many articles on OS X at Ars Technica. They are both informative and entertaining and stay at a pretty high level.

To get more in depth and really in the weeds, there's this.

u/ossobsv · 0 pointsr/opensource

"If you dare speak about a subject we dislike, we will have you disbarred"
Very convincing counter-argument.
Yes, your side constantly threatens me with disbarment.
My legal theory is sound, however, and I am not looking for clients.
I just want the programmers to know their rights so they do not get "CoC"'d

Here are 3 attorneys who do give their names and in their writing come to similar conclusions: The GPL is revocable from the free-taker.
>>https://scholarship.law.duke.edu/faculty_scholarship/1857/
>>https://www.amazon.com/Open-Source-Licensing-Software-Intellectual/dp/0131487876
>>https://papers.ssrn.com/sol3/papers.cfm?abstract_id=243237

u/LtGerome · 0 pointsr/linux_gaming

Not meritless. If they wish to be sued they can ignore it.
The GPL is revocable in cases where there is no attached interest (such as here).
This goes for much of the linux-kernel code aswell.

>Presumably they checked with their lawyers, who decided it was meritless guff from some crappy little troll, and chose to ignore it. That would be my instinct too.

Go and FUCK yourself. Your instinct is wrong. You don't know what the FUCK you are talking about when it comes to law. I do (I am a licensed attorney. )

Where does your "instinct" come from? Have you done even an hour of legal study? No? Then how about you SHUT your FUCKING mouth? Your uneducated lay opinion is WORTHLESS.



( https://www.amazon.com/Open-Source-Licensing-Software-Intellectual/dp/0131487876 )
>p46 "As long as the project continues to honor the terms of the licenses under which it recieved contributions, the licenses continue in effect. There is one important caveat: Even a perpetual license can be revoked. See the discussion of bare licenses and contracts in Chapter 4"
--Lawrence Rosen

>p56 "A third problem with bare licenses is that they may be revocable by the licensor. Specifically, /a license not coupled with an interest may be revoked./ The term /interest/ in this context usually means the payment of some royalty or license fee, but there are other more complicated ways to satisfy the interest requirement. For example, a licensee can demonstrate that he or she has paid some consideration-a contract law term not found in copyright or patent law-in order to avoid revocation. Or a licensee may claim that he or she relied on the software licensed under an open source license and now is dependent upon that software, but this contract law concept, called promissory estoppel, is both difficult to prove and unreliable in court tests. (The concepts of /consideration/ and /promissory estoppel/ are explained more fully in the next section.) Unless the courts allow us to apply these contract law principles to a license, we are faced with a bare license that is revocable.
--Lawrence Rosen

>p278 "Notice that in a copyright dispute over a bare license, the plaintiff will almost certainly be the copyright owner. If a licensee were foolish enough to sue to enforce the terms and conditions of the license, the licensor can simply revoke the bare license, thus ending the dispute. Remeber that a bare license in the absence of an interest is revocable."
--Lawrence Rosen

Lawrence Rosen - Open Source Licensing - Sofware Freedom and Intellectual property Law



>p65 "Of all the licenses descibed in this book, only the GPL makes the explicity point that it wants nothing of /acceptance/ of /consideration/:
>...
>The GPL authors intend that it not be treated as a contract. I will say much more about this license and these two provisions in Chapter 6. For now, I simply point out that the GPL licensors are in essentially the same situation as other open source licensors who cannot prove offer, acceptance, or consideration. There is no contract."
--Lawrence Rosen

----
>David McGowan, Professor of Law, University of Minnesota Law School:

>"Termination of rights

>[...] The most plausible assumption is that a developer who releases code under the GPL may terminate GPL rights, probably at will.

>[...] My point is not that termination is a great risk, it is that it is not recognized as a risk even though it is probably relevant to commercial end-users, accustomed to having contractual rights they can enforce themselves.

u/Tony_T_123 · 0 pointsr/cscareerquestions

Man, I wish I could find a programming job where I can use Linux. Every place I've applied has been Windows or Mac.

Also, for a learning suggestion: check out the book "How Linux Works" it's by far the best book I've read on Linux. It takes you from total beginner to intermediate level. Just make sure you get the 2nd edition, it added a lot more stuff.

https://www.amazon.com/How-Linux-Works-Superuser-Should/dp/1593270356

u/lavidaesbella · -1 pointsr/learnprogramming

You should not look the source code of the libs if you want to learn how C works, their code it's full of complex concepts of C programming like a lot of preprocessor, abstract structures and complex algorithms (dynamic programming, divide and conquer, backtracking, etc).

If you don't know how UNIX programming works you should start there, like process control, file and dir management, threading, networking. A lot more useful to learn pure C than the standard libs implementations.

For UNIX programming read this: Stevens

To improve your knowledge in C: K&R and as a complement king.

If you insist in reading library implementation take a look at OpenBSD libs implementation (much clutter-less than GNU).

Oh, and also do yourself a big favor and learn Vim reading learning vim.

Knowing the basics of C language and UNIX programming is the way to become a true programmer/hacker.

u/mikeeusa00 · -1 pointsr/redhat

Yes one can, in the USA.

Gratuitous licenses are revocable. Always have been, and currently are as-well.
If you want to secure terms you must pay for them.


David McGowan Esq. made a correct statement of the law:

>David McGowan, Professor of Law, University of Minnesota Law School:

>"Termination of rights

>[...] The most plausible assumption is that a developer who releases code under the GPL may terminate GPL rights, probably at will.

>[...] My point is not that termination is a great risk, it is that it is not recognized as a risk even though it is probably relevant to commercial end-users, accustomed to having contractual rights they can enforce themselves.


----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----

Lawrence Rosen Esq. got it right the first time:
( https://www.amazon.com/Open-Source-Licensing-Software-Intellectual/dp/0131487876 )

>p46 "As long as the project continues to honor the terms of the licenses under which it recieved contributions, the licenses continue in effect. There is one important caveat: Even a perpetual license can be revoked. See the discussion of bare licenses and contracts in Chapter 4"
--Lawrence Rosen

>p56 "A third problem with bare licenses is that they may be revocable by the licensor. Specifically, /a license not coupled with an interest may be revoked./ The term /interest/ in this context usually means the payment of some royalty or license fee, but there are other more complicated ways to satisfy the interest requirement. For example, a licensee can demonstrate that he or she has paid some consideration-a contract law term not found in copyright or patent law-in order to avoid revocation. Or a licensee may claim that he or she relied on the software licensed under an open source license and now is dependent upon that software, but this contract law concept, called promissory estoppel, is both difficult to prove and unreliable in court tests. (The concepts of /consideration/ and /promissory estoppel/ are explained more fully in the next section.) Unless the courts allow us to apply these contract law principles to a license, we are faced with a bare license that is revocable.
--Lawrence Rosen

>p278 "Notice that in a copyright dispute over a bare license, the plaintiff will almost certainly be the copyright owner. If a licensee were foolish enough to sue to enforce the terms and conditions of the license, the licensor can simply revoke the bare license, thus ending the dispute. Remeber that a bare license in the absence of an interest is revocable."
--Lawrence Rosen

Lawrence Rosen - Open Source Licensing - Sofware Freedom and Intellectual property Law



>p65 "Of all the licenses descibed in this book, only the GPL makes the explicity point that it wants nothing of /acceptance/ of /consideration/:
>...
>The GPL authors intend that it not be treated as a contract. I will say much more about this license and these two provisions in Chapter 6. For now, I simply point out that the GPL licensors are in essentially the same situation as other open source licensors who cannot prove offer, acceptance, or consideration. There is no contract."
--Lawrence Rosen

----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
Some notes:
A license without an attached interest is revocable in the US (other countries have different laws, which is why many OSS repos kept out of the US in the past, it is also why the FSF is both a 501(c)(3) charity and also requires copyright assignment to them for any contribution they accept (otherwise an author who was still the copyright owner of the code could rescind the license to the code)).

Opensource friends like to bring up the recent district court decision in california to try to argue the the GPL is a contract. (It's also interesting that they started adding CoC's right after said decision, to push out the men who created OpenSource) They are wrong. Acquiescing to a preexisting duty is insufficient for consideration. They like to quote this part:

>"Not so. The GNU GPL, which is attached to the complaint,provides that the
Ghostscript user agrees to its terms if the user does not obtain a commercial
license" (Artifex v. Hancom, Case No.16-cv-06982-JSC, page 4 line 17)


This is false on its face.

The GNU GPL contains no such language.

The /business agreement writing/ that Artifex wrote up and posted on its webpage includes such language. The court here is conflating "The GNU GPL" with the writing Artifex published on it's webpage. It is an error on the courts case. A typo by whomever who drafted the decision perhaps (conflating Artifex's contract language with the GPL itself).

The court goes on to allow Artifex to recover on either breach-of-contract grounds (for the amount a commercial license is worth) OR to go forward with a statutory copyright infringement action. If the GPL alone was a contract, there would simply be two different state-law breach of contract theories to pursue (breach of the "business offer" writing or breach of the GPL "contract", and the court would dispose of the case that way).

u/mikeeusa0 · -1 pointsr/opensource

Some decisions I have made regarding my GPC-Slots 2 game:


I had chosen, as was my want, to rescind the license I extended from a
few choice individuals. I can do this because GPC-Slots 2 is my
copyrighted work. I built it. I never transferred the copyright over to
anyone.


The individuals are:
"JohnDoe" from 8chan (he knows who he is)
comphacker from here, reddit (if he violates, I'll know who he is after
the subpoenas during discovery)
Leigh Honeywell
Alex "Skud" Bayley
the "Geek feminist" collective (I believe they are identifiable, and a
small group, so no harm using this closed-class identification)


I will continue to rescind the license from anyone who adds a "Code of
Conduct" anywhere near my code (to "fight sexism".). I wholeheartedly
/support/ sexism, as-long as it is not against men. Since men are now
being assaulted as thanks for their ceaseless decades-long work on
opensource by people who did not put in the time, men should /support
sexism/ by revoking license to their gratis licensed copyrighted code
from any project that adds a "Code of Conduct".


--MikeeUSA--
(electronic signature)


----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
----- ----- ----- ----- ----- -----
Some notes:
A license without an attached interest is revocable in the US (other
countries have different laws, which is why many OSS repos kept out of
the US in the past, it is also why the FSF is both a 501(c)(3) charity
and also requires copyright assignment to them for any contribution they
accept (otherwise an author who was still the copyright owner of the
code could rescind the license to the code)).


Opensource friends like to bring up the recent district court decision
in california to try to argue the the GPL is a contract. (It's also
interesting that they started adding CoC's right after said decision, to
push out the men who created OpenSource) They are wrong. Acquiescing to
a preexisting duty is insufficient for consideration. They like to quote
this part:


\> "Not so. The GNU GPL, which is attached to the complaint,provides that
\> the
Ghostscript user agrees to its terms if the user does not obtain a
commercial
license" (Artifex v. Hancom, Case No.16-cv-06982-JSC, page 4 line 17)


This is false on its face.


The GNU GPL contains no such language.


The /business agreement writing/ that Artifex wrote up and posted on its
webpage includes such language. The court here is conflating "The GNU
GPL" with the writing Artifex published on it's webpage. It is an error
on the courts case. A typo by whomever who drafted the decision perhaps
(conflating Artifex's contract language with the GPL itself).


The court goes on to allow Artifex to recover on either
breach-of-contract grounds (for the amount a commercial license is
worth) OR to go forward with a statutory copyright infringement action.
If the GPL alone was a contract, there would simply be two different
state-law breach of contract theories to pursue (breach of the "business
offer" writing or breach of the GPL "contract", and the court would
dispose of the case that way).


----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
----- ----- ----- ----- ----- -----


David McGowan Esq. made a correct statement of the law:


\> David McGowan, Professor of Law, University of Minnesota Law School:


\> "Termination of rights


\> [...] The most plausible assumption is that a developer who releases
\> code under the GPL may terminate GPL rights, probably at will.


\> [...] My point is not that termination is a great risk, it is that it
\> is not recognized as a risk even though it is probably relevant to
\> commercial end-users, accustomed to having contractual rights they can
\> enforce themselves.


----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -----
----- ----- ----- ----- ----- -----


Lawrence Rosen Esq. got it right the first time:
(
https://www.amazon.com/Open-Source-Licensing-Software-Intellectual/dp/0131487876
)


\> p46 "As long as the project continues to honor the terms of the
\> licenses under which it recieved contributions, the licenses continue
\> in effect. There is one important caveat: Even a perpetual license can
\> be revoked. See the discussion of bare licenses and contracts in
\> Chapter 4"
--Lawrence Rosen


\> p56 "A third problem with bare licenses is that they may be revocable
\> by the licensor. Specifically, /a license not coupled with an interest
\> may be revoked./ The term /interest/ in this context usually means the
\> payment of some royalty or license fee, but there are other more
\> complicated ways to satisfy the interest requirement. For example, a
\> licensee can demonstrate that he or she has paid some consideration-a
\> contract law term not found in copyright or patent law-in order to
\> avoid revocation. Or a licensee may claim that he or she relied on the
\> software licensed under an open source license and now is dependent
\> upon that software, but this contract law concept, called promissory
\> estoppel, is both difficult to prove and unreliable in court tests.
\> (The concepts of /consideration/ and /promissory estoppel/ are
\> explained more fully in the next section.) Unless the courts allow us
\> to apply these contract law principles to a license, we are faced with
\> a bare license that is revocable.
--Lawrence Rosen


\> p278 "Notice that in a copyright dispute over a bare license, the
\> plaintiff will almost certainly be the copyright owner. If a licensee
\> were foolish enough to sue to enforce the terms and conditions of the
\> license, the licensor can simply revoke the bare license, thus ending
\> the dispute. Remeber that a bare license in the absence of an interest
\> is revocable."
--Lawrence Rosen


Lawrence Rosen - Open Source Licensing - Sofware Freedom and
Intellectual property Law

u/detaer · -2 pointsr/askscience

These books, third one optional are a great start to be a freedomm-beard / community troll like myself. I can't say its a glorious life but it pays the bills. Being able to throw together a cluster of computers for some interesting distributed database / model crunching is pretty damn cool. I would also suggest a copy of virtualbox and ubuntu for a beginner's linux desktop and debian for servers. Freebsd is pretty dame great, and cent/rhel is not a bad place to go either. Its also unix with a U not eunuch with an e.

http://www.amazon.com/Linux-Administration-Handbook-Evi-Nemeth/dp/0130084662
http://www.amazon.com/Practical-Guide-Commands-Editors-Programming/dp/0131367366/ref=pd_sim_b_2
http://www.amazon.com/Learning-Vim-Editors-Arnold-Robbins/dp/059652983X/ref=pd_sim_b_23

I understand this is not so much a scientist bit of content here, but having systems competency if you plan on doing research that does any model analysis is pretty valuable.

u/selandro2 · -7 pointsr/unix

Is that why his paper refuting the idea that the GPL is revocable has not materialized in 6 months?

​

Is Moglen more learned about the law than Lawrence Rosen, Sapna Kumar, and David McGowan?

​

https://scholarship.law.duke.edu/faculty_scholarship/1857/

https://www.amazon.com/Open-Source-Licensing-Software-Intellectual/dp/0131487876

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=243237

​

It's always argument from ignorance with you people.

​

Tell me where is the promised paper from Moglen refuting the above? Tell me. Why did it never materialize?

​

TELL ME YOU FUCKING PIECE OF SHIT.

​

I need you to inform me, how obeying a pre-existing legal duty is valid consideration. Tell me. Explain it. I need you to inform me how NOTHING:ZERO:FREE is valid consideration. Can you. I need you to enlighten me as to how Illusory Promises are now enforceable suddenly in the USA.