Hacker Newsnew | past | comments | ask | show | jobs | submit | billsix's commentslogin

I teach a class on computer graphics, where I want to embed my working source code into my web based explanations, so perhaps the following could help you

I have my source code in one directory, and in another I use Sphinx to make the documentation. In the documentation, I reference certain sections of code, which you can do by line number, or you can do by some pattern to begin and end.

Since I control all my source code, I put in comments with certain flags for regions of code.

I can then reference said section of code as follows

  .. literalinclude:: ../../src/demo06/demo.py
     :language: python
     :start-after: doc-region-begin define uniform scale
     :end-before: doc-region-end define uniform scale
     :linenos:
     :lineno-match:
     :caption: src/demo06/demo.py
https://github.com/billsix/modelviewprojection/blob/master/b...

The generated book is here https://billsix.github.io/modelviewprojection/

For your purposes, using a third party's code, I would make a new git repository, and copy the current status of their code in, I would then annotate the sections that I want to with comments, And then generate the documentation using Sphinx, referencing you annotations of their code


I've liked Jonathan Bartlett's books, his newest is "Learn to Program with Assembly"


Seconded; his books are a very good introduction to assembly programming.


Off topic but Kill Bill 1 and 2 were great but I hope they stop at Kill billfive


Nice! PortableGL is also great, OpenGL api that is defined in entirely in C and writes the “framebuffer” into an SDL window

https://github.com/rswinkle/PortableGL


Minor correction/clarification, the library doesn't depend on SDL, it just writes into a 32 bit color frame buffer, but all the demos/examples use SDL for getting it to the screen since that's the best option. The test suite just writes frames to disk as png images to compare against expected for example.


It's an implementation, not an API.


... and it is opengl-ish, namely seriously castrated (shaders). Borrowing maths from Mr. Bellard's tinygl.


Depends on how you define castrated. It's not like using C or C++ is really limiting and using a C++ math library (like my own rsw_math or more complete glm) lets you basically write it in GLSL. It's not like there's anything you can't do.

And the only math from Bellard's TinyGL that I use is his clipping code, maybe 80 lines of code give or take. Not to diminish Bellard at all, if anything I'm saying any problems with PortableGL are mine not his.


My bad, I used "castrated", it is not what I really wanted to say. I should have said a subset of opengl features. Namely, it is not a software GL implementation you can run an opengl4 3D game on (only those horrible c++ diarehas which are llvm with things like llvmpipe or the other one from intel are supposed to be able to do so).


Yeah PortableGL will never be completely fully featured, not even for OpenGL 3.3 since I'll definitely never do the geometry shader and probably not the transform feedback. But specifically it'll never have the earlier immediate mode stuff, or some of the big 4.0 stuff like the tessellation shaders. I have been meaning to add the DSA functions where they make sense. They'd be really simple to implement.

Actually a few days ago someone sent me a pull request adding an interesting project to my README

https://github.com/rswinkle/PortableGL/commit/e0652b4dff266d...

So now if I were to try to sum up all the OpenGL software implementations I can think of,

TinyGL (and modern improved forks) = OpenGL 1.1-1.3 ish

osmesa = OpenGL 2.1 using Mesa 7.0.4's swrast

PortableGL = OpenGL 3.x-ish

Mesa = 2 software renderers still included, gallium based softpipe and llvmpipe and I think one or both support the latest OpenGL 4.6 but I could be wrong. swrast and Intel's gallium/llvm based OpenSWR have both been removed from mainline Mesa, and the latter only supports 3.3 core-ish (https://www.openswr.org/)

I'm sure there are others out there. I've actually never tried to use "Stand alone" Mesa. I really should to see how it performs if nothing else, but I still say nothing beats the single header library for ease of use.


I tried building it from source a year ago on multiple tagged releases and it failed to build. Been using minidlna instead, which I’ve been pleased with.


i'd would recommend using a prebuilt docker image or rebuilding it to fit your needs. For my setup i am maintaining my own image with tini init system and some minor added scripts.


I love Lineage and used it as my main phone OS but since my carrier required in February for VoLTE to work, I can’t receive or make phone calls anymore.


You may have to call your carrier and have them change some things. I had trouble with AT&T a couple times, but then they had me turn off the phone, sent some data to it, then turn it back on. All good now.


Which phone / carrier? I've been using VoLTE on a Pixel 4a with AT&T, and have heard other devices working with T-mobile as well.


Moto g7 plus on straight talk (using att sim I think)


I haven't gotten VoLTE on my XZ2 Compact with Lineage 17.1 and Telenor Sweden to work either. If I have it enabled, I can't do phone calls at all, when forcing 2G/3G calls, at least those work. But I do miss HD Voice.


If your SIM card is really old, some carriers need you to get a new SIM card for VoLTE to work, no matter what phone you have. Also, this is probably a dumb question, but are you on the latest build of LineageOS?


Yeah I update it every week


Device dependent. Too old and volte won't work. Also, Samsung devices typically will not have working volte on LOS and other custom roms.


VoLTE works for TMobile.


Good to know, thank you!


Graphics programming where applied linear algebra is built from the ground up

http://billsix.github.io/modelviewprojection/intro.html

Most of it is done but I’m updating the content in web form weekly


I use a “squash” alias to make it simpler for me

https://github.com/billsix/dotfiles/blob/master/.gitconfig


When implementing Python's yield in scheme, I found it straightforward to add the equivalent of send!

https://billsix.github.io/bug#_make_generator


I remember while learning Smalltalk how surprised I was when if statements and loops weren’t syntax of the language, but methods on objects. True and False are singletons of a Boolean class, which has a method ifTrue:ifFalse which take lambdas as arguments. For loops, a lambda which returns True or False has a method whileTrue: which takes a lambda as an argument.

Although I like Python, and I don’t know JS well, I really enjoyed learning Smalltalk, even though I will likely never use it professionally.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: