/tech/ - Technology

Technology & Computing


New Reply
Name
×
Sage
Subject
Message
Files Max 5 files32MB total
Tegaki
Password
[New Reply]


Putin's given us the boot! Read about it here: https://zzzchan.xyz/news.html#66208b6a8fca3aefee4bf211


Nocom.png
[Hide] (4.7MB, 3840x2160)
Seemed like it would be a good idea for users both old and new.

[Materials to avoid]
Codecademy and other flashy looking sites (KhanAcademy might be okay)
"fishy" Youtube videos such as those from FreeCodeCamp
"Learn X in 24 hours/three days!"
Anything that deviates too far from a specification (Very obvious if you're reading a spec. in parallel with a primary learning resource)
Most blogs, especially anything on Hacker News that isn't being written by someone obviously trustworthy and/or qualified

[Searching]
You should use a metasearch engine. Not only are they better for your privacy, but I've observed better results than single engines like DDG or Yandex.
https://searx.space/
Bookmark 3-4 reliable instances at the top of your browser and rotate between them or use an add-on such as LibRedirect.

Hacker News has lots of developers and skilled people posting on it. If there's a particular project/idea you're interested in its worth looking it up with their search engine.
https://hn.algolia.com/
My case: Researching CPU architectures/features -> "Cache associativity" into HN -> https://news.ycombinator.com/item?id=33427349 -> https://en.algorithmica.org/hpc/cpu-cache/associativity/
Some interesting comments and an extremely useful resource, both from simple curiosity.

For some additional perspective its worth acknowledging various discussions, even in less-than-desirable places. It can accentuate your understanding and knowledge.
https://desuarchive.org/g/
Templates:
https://desuarchive.org/g/search/text/TEXT GOES IN HERE/ - Look for posts based on keywords
https://desuarchive.org/g/search/subject/TEXT GOES IN HERE/type/op/ - Look for threads based on titles
https://desuarchive.org/g/search/TEXT GOES IN HERE/test/type/op/ - Look for threads based on keywords

[Studying]
Marty Lobdell - Study Less Study Smart - https://yewtu.be/watch?v=IlU-zDU6aQ0
Get yourself a nice notebook and some pens. More effective at retaining knowledge than typing into a document. I use Pilot size 10 pens because of their low writing resistance (Can use them for longer periods of time).
Get yer books from the high seas - https://libgen.rs/ and https://archive.org/

--

If you've got anything else to say/have materials you like you should post them here!
is brilliant.org good? ive seen it shilled on several good hobby channels not trying to advertise but can somebody give me the best discount code i actually want to try this myself
and what about refocus.me seen that stuff on ads as well but looks expensive?
Replies: >>9135 >>9136
>>9133
It seems extremely simple for the introductions of various courses and tracks and anything more advanced requires a subscription so I'm unsure of their quality
>>9133
>payfagging
Just download a book and do the exercises
ScratchCat-Small.png
[Hide] (20KB, 500x500)
reposting from the containment thread
Is there a decent introduction to computer science and/or programming? I was recommended the CS50 course from Harvard: https://cs50.harvard.edu/x/2022/
I remember somebody showing me this website, too:
https://teachyourselfcs.com/
Python_Crash_Course,_2nd_Edition_(Eric_Matthes)_(z-lib.org).pdf
(6.7MB)
>>9155
that's good if you like wasting ytour time
this is all you need
>>9155
Scratch is actually quite a nice tool. It teaches core programming concepts (variables, procedural execution, conditional statements, loops, etc.) and has audiovisual capabilities. Really it can be thought of as a language with powerful input and graphical libraries built into it. I've seen people create 3D physics engines and raytracers using Scratch before.
I skimmed through that CS50 course out of curiosity about two weeks back and it looks abysmal. Scratch is easy enough to learn on your own and if you're going to study C you should use King's book. Its quite high quality and is more than enough of a reason to choose C as a first real language (Yeah, not to many people think of the available educational resources and their quality as a reason for choosing a language, huh?). I have no idea what the state of Python education is and I'm not really all that interested in learning it until I have to, but its a simple enough language that I think most resources will be alright. HTML, CSS, and Javascript can be learned on w3schools.

Big word of advice: If this is your first time learning a language, keep track of important terminology. With C for example keep track of words like "Variable (also known as Object)", "Declaration", "Statements", "Assignment", etc. as you first start off. The list will build up extremely quickly and it'll make understanding the language and its standard easier (if that's what you want to do later).
sickos.jpg
[Hide] (23.8KB, 622x622)
>>9163
> standard C for noobs
Replies: >>9165
>>9164
CS50 is trying to teach C after Scratch. If they're going to learn it, they should learn it correctly, and with the standard close to their hearts. Its [the standard] not a good resource for learning from nothing, but it IS good for exact clarification and details, especially if you want them efficiently (quickly) during programming. I've found that using it in combination with King's book has made my web searches (Which really means Stackoverflow) fall close to 0.
mathematics_for_machine_learning.pdf
(16.6MB)
I hate neuron networks. I have no idea how to implement that. But matrix math I can do.

< Learn How AI Works By Maths of Vectors.
W3Schools_logo.svg.png
[Hide] (69.9KB, 1200x1133)
>>9163
>w3schools
What a shitty looking website to learn basic HTML and CSS. It's best to look up the lessons with the older design via a web archive, but some of the newer lessons might not be on it.
https://web.archive.org/web/20160114172322/https://www.w3schools.com/
A mirror that cuts the cruft and cookies out completely would be nice, but that would violate ToS.
Replies: >>9624
>>9618
Speaking of w3schools they also have tutorials for various languages including C https://www.w3schools.com/c/index.php
Replies: >>9653
>>9624
I would never use W3Schools for learning C. The only good resource for learning C is C: Modern Approach, 2nd edition. It's even better than K&R or C Primer Plus because C: Modern Approach teaches you which stdlib functions are unsafe and other things that aren't taught by most other books.
Replies: >>9655
>>9653
(cont)
K&R is good for example code and exercises but seriously get C: Modern Approach, 2nd edition for actually learning C.

I recommend learning a high-level "scripting" language first (I recommend Lua, Perl, Ruby or Python). When you are ready to learn C, I highly recommend reading about compiler options; https://nullprogram.com/blog/2023/04/29/
I recommend: CFLAGS = -std=c99 -Wall -Wextra -Wformat=2 -fverbose-asm -Og -g -ggdb
When you are learning to code, I also recommend that you enable -pedantic  flag. Also, use either GCC or Clang (I recommend using Clang on Windoze).  You probably want to use splint/cppcheck/Clang's scan-build to find common programming errors. Get the gdb debugger and use either address sanitizer OR Valgrind. Strace can be useful as well. You need to know 

Also, learn to use and write makefiles: https://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/ or https://makefiletutorial.com or https://nullprogram.com/blog/2017/08/20/ 
Always use include guards: http://www.cs.kent.edu/~nmadi/CS2/Notes/include_guard.html and http://faculty.cs.niu.edu/~mcmahon/CS241/c241man/node90.html 

P.S.
The #c IRC channel's home page is here: https://www.iso-9899.info/wiki/Main_Page (if you need an IRC client, install Weechat or Irssi or Hexchat (GUI))


More resources:
Sorry for barfing these here...
Articles (read especially the ones on memory and undefined behavior)
* The Ten Commandments for C Programmers: https://www.lysator.liu.se/c/ten-commandments.html
* Read about undefined behavior: https://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html
* Smashing the Stack for Fun and Profit: https://insecure.org/stf/smashstack.html
* What every programmer should know about memory: https://lwn.net/Articles/250967/
* A Guide to Undefined Behavior in C and C++: https://blog.regehr.org/archives/213
* What Every Computer Scientist Should Know About Floating-Point Arithmetic: https://dl.acm.org/doi/10.1145/103162.103163 or https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html
* https://godbolt.org (compiler explorer)

References
* CERT C Coding Standard: https://wiki.sei.cmu.edu/confluence/display/c/SEI+CERT+C+Coding+Standard
* https://suckless.org/coding_style/
* https://en.cppreference.com/w/

Books:
* Advanced Programming in the Unix Environment aka APUE (or The Linux Programming Interface)
* Hacking: The Art of Exploitation, 2nd edition by Jon Erickson
* 21st Century C, 2nd Edition by Klemens
* Agner's optimization manuals: https://agner.org/optimize/
* Programming from the Ground Up Book https://savannah.nongnu.org/projects/pgubook
* Professional Assembly Language by Richard Blum
* https://lazyfoo.net/tutorials/SDL/ (not really a book but still...)
* https://beej.us/guide/bgnet/ (Network/Sockets Programming) 



Python 3
>https://www.python.org (be sure to check out "Library Reference" and "Tutorial" sections)

I recommend Python 3 for new programmers for these reasons:
* It's popular. There are a lot packages/libraries and it's easy find help when you encounter problems.
* As an interpreted dynamic high-level languages, Python gives you immediate feedback!
* There are also a lot of jobs available for Python programmers, and there are a lot of FOSS projects to contribute to.

Before you can write any code, you need to:
1. Install Python 3 (duh). On GNU/Linux, it's (almost) always installed by default (but remember to install tk and python-pip as well).
2. You need to get a text editor or an IDE. Popular choices are:
>Notepad++ or Kate or Geany
>VSCode (but it has telemetry enabled! There is also VSCodium that has telemetry code disabled) Also, Atom is dead!
>NeoVim or GNU Emacs (Be sure to go through the tutorial that NeoVim and GNU Emacs have).
3. (optional but highly recommended) Install pylint (the package is probably called "python-pylint" or similar) and use it to check your code.


Some books/resources:
Beginner
>Be sure to learn Python 3 (Python 2 is dead! And as a result, some tutorials/books are obsolete!).
* Think Python 2nd edition: https://greenteapress.com/wp/think-python-2e/ (gratis. suitable for the absolute beginner)
* Automate the Boring Stuff with Python: https://automatetheboringstuff.com (gratis. more practical)
* Learning Python by Mark Lutz (warning: this book is huge!)
* Learn Python the Hard Way by Zed Shaw 
* Try finding a MOOC (for example here: https://www.mooc.fi/en/#courses)

Intermediate/Advanced
* Fluent Python by Luciano Ramalho
* Programming Python by Mark Lutz
* Python Cookbook by David Beazley and Brian K. Jones

What can Python be used to do?
A lot of things. Examples:
* System maintenance, automation and Web scraping (check out Automate the Boring Stuff with Python (and the libs it uses). Also: Scrapy)
* GUIs (it comes with TKinter but you can also use PyQT)
* Games (PyGame) and Visual novels (RenPy, Katawa Shoujo was made using this.) 
* Pictures (Pillow)
* Math, scientific computing & data-science (Matplotlib, NumPy, SciPy and Pandas. See also: Jupyter)
* AI, Deep learning/machine learning, etc. (PyTorch, TensorFlow, Keras and OpenCV-python)
* Language and linguistics (NLTK, Stanza, spaCy)
* Web programming (Django and Flask)


Tips for all Python programmers
* Use version control like Git (https://www.atlassian.com/git/tutorials) or Fossil because keeping track of copies/backups is hard and prone to errors (you can lose your work).
* Using venv or virtualenv is recommended when you install Pypi/Pip packages, See: https://opensource.com/article/19/4/managing-python-packages
* Try running "import this" in interactive Python console.
* Style guide: https://peps.python.org/pep-0008/
* If you gotta go fast: https://www.pypy.org
* You can find exercises at these sites: https://exercism.org ; https://adventofcode.com ; https://projecteuler.net ; https://leetcode.com/problemset/all/  ; https://www.codewars.com/ ; https://edabit.com/ 
* Code examples: https://rosettacode.org/wiki/Python
Tcl
Someone wrote this copypasta:
Tcl is the best scripting language for the real but still productive hacker
(some of the fattest Schemes are not far), as long as you don't need a specific
library not easily available;

* Extremely small - whole syntax/grammar is described in 12 rules in a single
  man page (Tcl(n)) of 150 lines and there's no reserved keyword.

* Homoiconic through strings (like almost every language with eval) but most
  importantly, through "list-like" strings.

* Official man pages! No web garbage like cppreference nor lackluster
  "minimalist" stuff like pydoc (compare pydoc print with man n puts, for
  example).

* Kind of "unfashionable" language meaning basically no poz.

* At least two implementations with jimtcl being a quite thorough embedded one.

* One of the simplest if not the simplest interaction with C, letting you write
  C plugins very easily (with critcl and swig to help).

* Comparable in speed to cpython, a bit slower than Perl 5 and Lua. Has a
  WIP/dead LLVM compiler (tclquadcode) for a big speedup in the far and
  uncertain future.
  https://wiki.tcl-lang.org/page/Tcl+Performance for more.

* Cool type system that is superficially "everything is a string" (like sh)
  but in reality "everything is a tagged union with on-the-fly conversion when
  needed and a unique string representation". Allows for some very cool things
  like editing dictionaries as lists or lists as strings and transparent
  serialization (puts $mydict $chan <=> set mydict [read $chan]).

* Talking about types, multiprecision arithmetic is transparently handled,
  allowing you to do expr {42 ** 1000} if you just want to.

* Very powerful introspection through info (mainly). Allows for stuff like
  getting the name/body/arglist of a procedure, get all the registered
  procedures, know if a variable exist, get information on the stack frames and
  their content, etc...
  Together with trace, you can write an internal debugger in few lines. See
  https://wiki.tcl-lang.org/page/Full+program+trace+onwards for an example.

* Procedure arguments are passed by pointer with a copy-on-write system: don't
  modify the argument and you don't get any memory copy. To you, it just looks
  like regular passing by value.

* On the subject of simplicity, no need for an actual garbage collector,
  reference counting is enough because you cannot make circular references.

* Modifying the procedure arguments is done via upvar: in Tcl, a variable
  reference is just a name (string) with a relative stack frame number, quite
  elegant considering the language's concepts.

* If you use at least the builtin extensions (thread, http, tdbc, tcltest,
  msgcat) and the very basic tcllib/tclX/tclUdp/tklib packages, you're almost
  set for life. Personally, I also recomment the very convenient tclreadline,
  tdom, pipethread, tablelist and tclcurl.
  Some more here: https://core.tcl-lang.org/jenglish/gutter/

* Channels is one of the cleanest I/O implementation I've ever used with some
  cool features:
  * Transformations allowing filters like deflate/zlib/gzip or TLS to be put on
    a channel (see transchan for the API).
  * Reflected aka virtual channels, to make your own channels. Basically like
    glibc/BSD's unportable fopencookie/funopen or CL's gray streams.
  * Centralize a lot of ioctl/fcntl shit and even more (like defining the EOF
    char) in chan blocked/configure/pending.
  * Integration with the event loop via chan event/postevent allows for a
    nice callback oriented approach to sockets and pipes.
  * Other third-party channel types include pty (expect), random, memory or
    fifo (memchan).

* Builtin event loop (see after, vwait, socket -server and chan event)
  for powerful and seamless concurrency/command scheduling.

* An elegant thread extension consisting of an interpreter per thread and no
  raw access to other thread's memory. Comes with both simple (thread) and
  performant (tsv) synchronization/communication facilities.

* Finally a sane, light and portable (even more with Tile) GUI toolkit: Tk.

* One of the fastest Unicode aware regex implementations, written by Henry
  Spencer himself. Has its own greater-than-POSIX-ERE syntax called ARE, not as
  complete as PCRE (lacking lookbehind constraints, most importantly), but
  still great for an hybrid NFA/DFA engine.
  cf https://github.com/mariomka/regex-benchmark/pull/44.

* uplevel (eval a script in a different stack frame) and tailcall (replace
  the current procedure with another command) let you augment the language by
  implementing control structures and keywords yourself.  Inferior to CL's
  synergy between unhygienic macros, "naked AST" style homoiconicity, symbols
  as first-class objects, gensym and quasi-quoting, but still quite powerful.

* Safe interpreters let you do very fun things like config files in Tcl with
  limited access to the machine and master interpreter.

* Recent versions (>= 8.5) really embraced FP with:
  * Real lambdas (but not closures, these have to be emulated) through apply.
  * Purer hash maps (dict) than ugly sticking-out-like-a-sore-thumb arrays.
  * Lisp style prefix arithmetic (allowing for * 3 [+ 1 2] instead of
    expr {3 * (1 + 2)}) including sane behaviour for more than two (reduce)
	or zero (neutral element) arguments.
  * Builtin map/filter (lmap) with 8.6.
  See https://wiki.tcl-lang.org/page/Functional+Programming for more.

* Multiple more-or-less powerful OO systems (now based on the builtin TclOO):
  [incr Tcl] for C++ style OO, XoTcl for a take on CLOS or Snit for something
  Tk oriented.

* All of the above with the same advantage of CL: it does not enforce nor
  preach a particular way of programming, unlike the ML family that comes with
  the "everything is immutable" ball and chain that often gets in the way
  instead of helping (because, big surprise, modifying data is often an
  essential part of efficient and intuitive algorithms/programs while recursing
  only makes sense when manipulating recursive data types; which arrays -
  arguably THE modern big-cache-and-SIMD-CPU friendly structure - aren't).

* Biggest inconvenient are the near-death state of the language/community
  (practical consequences: no LSP/SLIME equivalent, bugs accumulating, lack of
  maintainted libraries) and the design warts/"features" (e.g. list <=> string
  relation preventing possible differentiation between x, {x} and {{x}}).
  As someone who knows a bit of CL, the language itself is less powerful
  (e.g. macro vs uplevel, lambda vs apply) but the standard library quality is
  miles ahead for a lot of common OS interfacing tasks (in CL, you need at
  least UIOP, osicat, usocket, cl-ppcre to compare; and Ltk for Tk).

Basically, a mix of Lisp and Scheme that somehow managed to end up very good
and getting even better with time.


I could continue all day, but you should just try it. Some more talk about it:
* https://wiki.tcl-lang.org/page/What+is+Tcl
* https://wiki.tcl-lang.org/page/Tcl+Articles
* https://colin-macleod.blogspot.com/2020/10/why-im-tcl-ish.html
* https://yosefk.com/blog/i-cant-believe-im-praising-tcl.html
* http://antirez.com/articoli/tclmisunderstood.html

Where to begin:
* man n Tcl (or man 3tcl Tcl on some distros like Debian)
* https://wiki.tcl-lang.org/page/TCL+for+beginners
* https://wiki.tcl-lang.org/page/Tcl+Tutorial+Lesson+0
* https://wiki.tcl-lang.org/ for everything, this is where the Tcl community lives
* Rosetta Code for examples/exercises


My page: https://wiki.tcl-lang.org/page/q3cpma
Replies: >>9661
>>9656
>Basically, a mix of Lisp and Scheme that somehow managed to end up very good
and getting even better with time.
Name literally one thing written in tcl not Expect

>Homoiconic through strings
Treating numbers as strings is why it is stupidly slow even by scripting language standards
<1+1+1
is literally
<((("1".to_int + "1".to_int).to_string).to_int + ("1".to_int)).to_string
muh simplicity
Replies: >>9680
>>9661
OpenMSX emulator uses Tcl for scripting. I guess that's the most common use (embedded in C, not standalone).
Replies: >>9694
>>9680
>MSX is a standardized home computer architecture, announced by ASCII Corporation on June 16, 1983
>1983
Did you ride in here on a fucking dinosaur. Go back to your carehome.
Replies: >>9712
Good thread, thanks for creating it OP.
I'll contribute by listing some beginner resources for fullstack web development
I'm trying to make a guide but the word filter keeps popping up. It's getting really annoying, I wish there were a list available to look up.
Prerequisites: Be somewhat familiar with using Linux or MacOS. Also make sure you have some sort of text editor or IDE.

Section I Preliminary: 
https://developer.mozilla.org/en-US/docs/Learn
Start here for a quick overview. Hand holds you quite a bit but is still useful for the very basics. Once you get past the Javascript portion you can use the latter tutorials as references and move on to the next section.

Section II: Beginner
Pick one to start from:
 
https://www.theodinproject.com/
This one is the most popular of the bunch but is still quite the challenge. You'll learn almost everything you need to start your full stack web development journey. The best thing about this program is that it doesn't hand hold you and encourages you to work on your own projects. Once you get to the Full Stack Javascript course, I'd recommend using it as a secondary resource and moving on to section III.

https://www.appacademy.io/course/app-academy-open
Have yet to try this one, but I've heard good things about it (The free, open online program, not the bootcamp). The curriculum looks nice so you can probably give it a look, and use it as a primary/secondary resource. It also is primarily a full-stack webdev curriculum but with the added computer science topics.

Section III: Novice
https://fullstackopen.com/en/
This is the last course you'll take to move on from beginner to novice. This course teaches you all about the big boy stuff like React, NodeJS, and Typescript.

From here, you will probably have enough knowledge to search and make your own path from now on. To start, maybe look into some more documentation on javascript apis/frameworks and implement them into your own projects. Or maybe you want to look into some more back-end server-side technology in other languages. For that, I'd suggest learning about Python, SQL, and PHP:
Python:
https://www.fullstackpython.com/
Another overview site. I'd recommend learning Python first before taking a look at this one (Python is easy so that shouldn't take too long)
PHP: 
https://phptherightway.com/
https://www.phptutorial.net/
SQL: 
For this one, I'd recommend checking into the book 'Learning SQL' by O'reilly and then maybe looking into some intro to databases book. The hardest part of SQL is not the SQL itself but creating and managing the nightmarish databases.
https://sqlzoo.net/wiki/SQL_Tutorial
https://www.sql-practice.com/
https://www.sqlcourse.com/beginner-course/
https://sqlbolt.com/

Some additional resources:
https://eloquentjavascript.net/ -> Additional resource to learning Javascript
https://javascript.info/ -> Same as above
https://developer.mozilla.org/en-US/docs/Web -> #1 reference to all things front-end webdev
https://learnxinyminutes.com/ -> basic overview/reference to programming syntax. Has small tutorials on navigating and using some software as well 
https://learn-anything.xyz/ -> As the name implies, search up what technology you would like to know more about and it gives you a start on where to look. (Mind you, I mentioned a 'start'. This is not very extensive in its searches)
https://devdocs.io/ -> Combines multiple API documentations into one easily accessible web document. I found this to be a very useful resource for when I needed to search something up.
https://github.com/chubin/cheat.sh -> Name says it all. Very useful for searching up commands and programs.
And then obviously there is Stackoverflow for help too.

The best way to learn something is to practice and to make your own things. Yes books and tutorials point you in the right direction, but you'll never truly learn until you make things on your own. 
I recommend you to try making your own site using a free web host such as these: 
https://blog.fc2.com/en/
https://neocities.org/
https://www.angelfire.lycos.com/ (Oldie, can't believe it's still up after all these years)
And then eventually self hosting or using VPS.  For this, check out https://landchad.net/
31115f499b9b5df40453b8df9d6dd74f4a6d6517318742b734c90c5947cb1f26.jpg
[Hide] (19.2KB, 157x201)
Wow, guess it's a site error. The word filter only appears when you attach an image to a message.
parrots.jpg
[Hide] (663KB, 1125x927)
>>9694
Tcl is pretty old too. And yet it's still useful. And those old MSX games are still fun.
>>9155
I will second https://teachyourselfcs.com/. Although I've only done SICP (and I really liked it), the rest looks like the undergraduate curriculum at my university, which imo has like the 2nd best undergraduate cs program. 

As for the 1st best cs program, here is a random link where a guy reviews a bunch of MIT OCW courses. https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/

Threads like this tend to become dumps of a million books and stuff which would take decades to acutally review, so please try to curate stuff.
lfs-logo.png
[Hide] (15.8KB, 192x75)
Do you think Linux From Scratch is a decent self-teaching tool for learning about how a GNU+Linux distro all works from start to finish?
Replies: >>9907 >>9908
>>9904
>LFS
It teaches you the components of a typical GNU/Linux distro and it does it well. However, you should not actually run your LFS distro as your daily driver because you are the only maintainer and it takes a ton of work to make everything work and to get updates (security & otherwise) in timely fashion,
>>9904
I went through half of it and installed Gentoo instead. I suggest doing the same as most of the time is spent doing the same thing as in Gentoo.
I don't know where to post this, but how should I write a software license? If I ever finish a videogame, I want to sell it but distribute the source code with it.

I want a license that allows people to use the source code as they want and create mods for it, but not sell it or redistribute it or release modified versions of it.
>>10018
Why not just GPL like id Software used to do? Even with projects like Freedoom around people still buy those games to use the game data with various source ports and mods.
Replies: >>10021
>>10019
Because GPL lets people redistribute my game for free and even sell it.
Replies: >>10024 >>10034
>>10021
Only the parts you as the rights holder license under GPL, the actual game data (levels, models, music etc) can remain proprietary if you want.
Replies: >>10029
>>10024
The source belongs to the people who buy the game, not anybody else.
Replies: >>10030
>>10029
What if the sources belong to the people who buy the game and want to share it for free?
Replies: >>10031
>>10030
Then I won't bother releasing source, it's more effort anyway.
>>10021
People do that with proprietary games all the time too, anyway. (Piracy)
Replies: >>10037
>>10034
People can't pirate the source code of a closed source game.
Replies: >>10040
>>10037
What is the difference if the only income sources is from sales? If your game is pirated, compared to releasing your source, you lose the same amount of money. Are you implying people would compile your source instead of pirating because it is illegal?
Replies: >>10041 >>10057
>>10040
I don't think games with nonfree assets generally lose money from being open source, in fact the enduring popularity and sales of old id Software titles is definitely in large part due to the power and convenience of source ports.
>>10018
>but how should I write a software license?
I think you need a lawyer (who has experience in software and copyright related matters)  to make sure that it's actually enforceable. I recommend you find a widely used license instead. Also, I do not think you can take a software license that's used by some company/organization and just change the name of the company/org and put your name on it or can you? *


As other posters have said, you can use AGPLv3 (recommended) or GPLv3, and then release the assets for the game under a proprietary license (i.e All Rights Reserved). You can alternatively use an open-source (but not Free Software license) license that disallows derivative works. Something like Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International aka CC BY-NC-ND 4.0. However, pls note that the FSF says that you should not use Creative Commons for code (but I forgot their reasoning).
>https://creativecommons.org/choose/
>https://creativecommons.org/licenses/by-nc-nd/4.0/

Or you can use VVVVVV license (idk?): https://github.com/TerryCavanagh/VVVVVV/blob/master/LICENSE.md
Or you can do what Id Software did and release the game under a free software license after a few years.
Or you could initially just have a level editor that creates .map files or .wad files and release the source code later (you would be even smarter than Id!) And/Or You could also do what Factorio and Gmod do and have a Lua API. And you can always release the src later, after a few years?

Other (hopefully) helpful pages:
>https://spdx.org/licenses/
>https://www.gnu.org/licenses/license-list.html
>https://opensource.org/licenses-old/category/ * (read "Non-reusable licenses" section)
>>10042
>>10042
>However, pls note that the FSF says that you should not use Creative Commons for code (but I forgot their reasoning).
Link: https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software

Actually, I made a mistake in the first post. Commons Attribution-NonCommercial-NoDerivatives 4.0 International is probably not what you want, since mods and source ports probably count as derivative works.

Another option would be to use Attribution-NonCommercial-ShareAlike 4.0 International but that means that others can publish your game for free... Hmm... This is not very easy question. I think you might want to use CC BY-NC-ND 4.0 initially and then release your game as AGPLv3 or something? But that's not quite what you want, either.
>>10040
If I spend 5 years working on a game then I am simply not interested in giving other people the permission to sell any part of it or redistribute it for free or sell their own bootleg version of my game or compete with my game by using my code. I would imagine that I'm doing something exceptional by giving owners of the game access to the full source code, but this autistic freetardism is doing an excellent job at convincing me not to do it.

>>10042
>lists of licenses
While this is nice, it doesn't help me because I can't read legalese. I need a non-lawyer summary of intent for a license if I'm going to use an existing one.

I guess I'll just have to write my own and check it through a lawyer.
Replies: >>10062 >>10067
>>10057
>or compete with my game by using my code
Id specifically licensed their engines to studios and yet were still massively successful despite that. If your game isn't special in its own right it will be buried by others on the market regardless of the availability of your code.
>I'm doing something exceptional by giving owners of the game access to the full source code
By the standards of gamedev perhaps, but secret sauce doesn't benefit anyone in the long run.
Replies: >>10063
>>10062
Your opinion doesn't matter.
Replies: >>10065
>>10063
you came here asking questions nigga and you got answers :^)
Replies: >>10066
>>10065
All I've gotten is shit opinions that are unrelated to the question.
>>10057
Anony, tell me. Are you making a game for passion, or are you making it ((( just for profit )))? If it is the former, you would not be so paranoid about your "((( intellectual property )))", right?
Replies: >>10068
>>10067
I'm going to make a wild guess that you've never made, let alone released, anything of note.
Replies: >>10069 >>10076
me.png
[Hide] (46.8KB, 194x184)
>>10068
Ackshually bitch I'm John Carmack, as my old pal John "I'm gonna ram it" Romero used to say, suck me.
>>10018
>>10042
You want a easy to read (but lawyer friendly) EULA/ToS for the source code and the compiled game itself. Since you're going the proprietary route, you'll be frowned upon here, even if the code's well written and without DRM. You have to go back. 
>>>/v/
reddit2.png
[Hide] (726.8KB, 800x800)
>>10068
You know there are plenty of elaborate games that are free (as in price or/and as in freedom), right? Cave Story, Dwarf Fortress, etc, etc. Hell, not even games, but any other form of art, or even things like software (GNU, Linux kernel, etc., which were initially made by just 1 person as a passion project). That proves there are people making games or whatever for passion.
Usually, imageboard users are more inclined to being less jewish and more sovlful, ie. they would be more likely to make a passion project without thinking too much of profit (a notable example is Katawa Shoujo, etc). If you have a normie jewish I *trans heart* MONEY mentality, what are you even doing on a place like this? Shoo, go back to where you came from, filthy R*dditor!
Does anyone have any additional suggestions for someone trying to learn x86_64 assembler as their first "low level" language? I saw the book in the op.
Replies: >>10155 >>10170
>>10093
Check out compiler explorer. https://godbolt.org It's one of the most useful tools for examining asm.
Snap!.png
[Hide] (11.7KB, 1187x652)
snap_forbanner.png
[Hide] (9KB, 940x188)
>>9155
>>9163
There's a similar project that has more advanced features called Snap! by UC Berkeley. The one advantage though is that it can run offline on any OS (it's a local webapp), while Scratch's offline "app" still doesn't support Linux.
>>10093
Read either Assembly Language Step-by-Step: Programming with Linux by Jeff Duntemann or Programming from the Ground Up Book (https://savannah.nongnu.org/projects/pgubook).
842px-Standard_Model_of_Elementary_Particles_Gravity_Hadron.svg.png
[Hide] (383.6KB, 842x1199)
Photons are trans particles. The are really waves that identify as particles. 

Think about it: It's called the photo-electric effect not the photo-magnetic effect, but people still use the speed of radio waves in all these equations. Radio waves are magnetic induction and are subject to gravity so they have a slower speed the infinity. In the case of photons, they actually have infinity speed as predicted by classical mechanics. Light and Magnetism are not the same thing, but if you ask a Quantist person they insist that they are.

The Aether Theory, that space acts like a volume of liquid and allows for disturbances like photons and EMF to travel though it, is much more succinct. I've spent most of my life wonder where all the photons come from in an atom. It turns out that there are no photons, just taps on skin of drum when an Electron change it's band or is ionised. It's all so simple now.
Replies: >>10268
>>10267
no such thing because theyre not waves or particles they just overlaps because both are incomplete models and no one has come up with a real unified atomic model, anyone thats done retard level highschool chemistry knows these models are only used for practical reasons not theoretical neither are even considered as anything close to reality
[New Reply]
55 replies | 14 files
Connecting...
Show Post Actions

Actions:

Captcha:

Select the solid/filled icons
- news - rules - faq -
jschan 1.4.1