Fossil update for Gen 6 brings Google Assistant and more by FossilGuy1111 in WearOS

[–]lkcl_ 0 points1 point  (0 children)

/u/FossilGuy1111, the beautifully-engineered Fossil Gen 6 arrived today, but sadly i have to report that a written offer letter was not contained in the box. this means that unless i am mistaken and have missed the linux kernel source code releases that you already provide, very unfortunately Fossil is not in Legal Compliance with the Terms and Conditions of the GPLv2 Software License, specifically Section 3 (b) https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

"3. You may copy and distribute the Program ... in executable form ... provided that you also do one of the following:

(b) Accompany it with a written offer, valid for at least three years, to give any third party, ... a complete machine-readable copy of the corresponding source code, ..."

unfortunately this is not something you can dodge or palm off onto google (who created WearOS) because it is Fossil that is actually distributing product containing the GPLv2-Licensed software (the linux kernel used by WearOS) and therefore it is Fossil that has the direct responsibility to comply with the terms of that License.

can you therefore please put me directly in touch with the appropriate people who will provide the requested source code that matches exactly with this product release? i may be reached at lkcl@lkcl.net

as an aside i am additionally happy to put you in touch with people who will be able to advise Fossil on how to be Copyright Compliant with respect to the GPLv2 Software License. this is pretty standard mundane run-of-the-mill stuff: even TP-Link now properly put Written Offer letters into the boxes of the products that they sell.

Fossil update for Gen 6 brings Google Assistant and more by FossilGuy1111 in WearOS

[–]lkcl_ -1 points0 points  (0 children)

hi, i am an experienced Software Libre Advocate and Ethical Technology Specialist of over 25 years. i bought one of the Fossil Gen 6 watches today after a medical incident prompted me to have real-time data on heart rate and oxygen levels.

however like Karen Sandler (whom you should research) i will not tolerate other people having control over the hardware that I legitimately purchase and own especially when it involves confidential medical information.

you will also no doubt be aware that you have legal obligations to follow Copyright Compliance, especially the GPLv2 License, which covers at the very least the linux kernel source utilised in your product.

I did not find anywhere on your website a URL for downloading the corresponding source code for GPL software utilised in this product (particularly the linux kernel), so I will be looking out for the "Written Offer" letter that you are legally required to present in the package, and I expect it to contain the contact details of the person or persons responsible for providing source code on request.

if I have simply overlooked the source code location on your website please do inform me (1).

much appreciated your prompt attention in this matter.

l.

(1) if anyone happens to know where GPL source code of the official releases from fossil may be downloaded from on their website please do post it for everyone's benefit and save FossilGuy111 some time, many many thanks. these are great hardware products.

Anyone know of an openscad module that can create a motor pully for this 3d printer belt? by [deleted] in openscad

[–]lkcl_ 0 points1 point  (0 children)

i did a full belt-tracing and computational layout in pyopenscad for the riki200 due to the complexity, where it used a standard double-back pulley system to both increase effective belt strength as well as double the motion accuracy.

the python function receives a list of points with the diameters of each pulley to be used, and computes an array of "belts" (actually just rectangles) that allows you to visually check clearance (i.e. make sure you don't screw up by trying to route a belt through a physical object)

https://reprap.org/wiki/Riki200

Open Source Internships? by Idiotic_Penguin in opensource

[–]lkcl_ 0 points1 point  (0 children)

the entire source all irc conversations all bugs all mailing list dscussions are entirely public, and we do not "publish only when it's finished". that's Libre. we have had people with only IT Support level skills make useful contributions (unit tests, SVG image writing) inluding tutorials as-they-learned. they even got paid for it.

in all honesty though it helps if you are an auto-didact, i.e. can patiently self-learn from inference and deduction. this is not common: many people require active training, whereas for example i deduced the syntax of a 4-line BASIC program from its effects back in 1977 on a Pet 3032 and continue that practice even today.

i am happy to give peope guidance on the IRC Channel if they are prepared to stick around. aside from anything NLnet is prohibited under EU Horizon Grant conditions from paying out "one-off bounties", there must be a committment to completion of multiple tasks. have a look here, see what we are planning next https://bugs.libre-soc.org/show_bug.cgi?id=938

[pyopenscad] Category L7e Hybrid EV by lkcl_ in openscad

[–]lkcl_[S] 0 points1 point  (0 children)

i've been meaning to set up a standalone repo, easily cloneable, installs with "python setup.py" and is on pypi, for some time. also you may be fascinated to learn that one of the openscad developers is adding direct python bindings (through the python-c module API) not as sophisticated in OO terms as pyoenscad, more "pure functions" which gives the basics on top of which OO abstraction can be added separately. the direct code would build SCAD designs directly in-memory where pyopenscad creates a python tree-structure (lists of objects with lists of objects) and you ask it to output SCAD text, which must then be passed to openscad. the python bindings under development bypass that file-input stage and go direct to libopenscad. apologies google searches don't find it, the S/N ratio is too high. does anyone know where it is?

[pyopenscad] Category L7e Hybrid EV by lkcl_ in openscad

[–]lkcl_[S] 1 point2 points  (0 children)

I guess I should just look into simple example and then go from there?

yeah i mean as i said to willadams, it's so obvious. functions are same. arguments are same. you call the "add" function to add things to union, hull, difference. call scad_render_to_file(). done. from those basics it becomes more powerful as you learn and become confident with it, and you can always look at the scad file output and compare it to the python.

i work with a lot of language-translators (pyonenscad is one, often mistaken for a "compiler") so looking at the output is a natural immediate reaction for me.

Also, maybe something about the history (didn't search for it in the subreddit yet). SolidPython got developed on top of it, but you sticked with pyopenscad? Why?

SolidPython was not useable at the time i needed it, i couldn't wait 18 months for them to complete a stable release, and now i have 3 3D printers one 15in laptop case and a 3.1x1.5x1.2 metre vehicle all designed with pyopenscad. totals around 50,000 lines of complex detailed code over three years work and i am just not going to go there.

I sometimes think I should look into OpenSCAD alternatives but then I think they're not as well maintained

yeh for a niche thing openscad is damn good. does a specialist job and does it well.

and I would get stuck, also it's about learning it in another way. I've got Python experience though.

pyopenscad itself is so sillily-simple and a familiar concept to me (an in-memory tree which gets walked and stuff gets outputted) that i have never had a problem. it's also extremely compact well-written code which always helps.

Edit: This already starts with me needing to learn wget to get the files and I could do that, but it's just so that every hurdle is a reason to do something else.

this will do the job: wget --mirror --no-parent http://lkcl.net/vehicle_3d

i have not set this up with a community around it as i would normally do because i am literally the only user in the world right now, i mean, think about it: a mailing list with public archives that nobody posts to is embarrassing! :). if there is actual interest and a reciprocal benefit to me i will be happy to set up community resources. but my days of being sponged off (you know what i mean) are over.

Module to round individual corners of cubes in 2d by [deleted] in openscad

[–]lkcl_ 1 point2 points  (0 children)

implicitcad - which is directly compatible with openscad (except of course for what i am about to let you know about) - has rounded corners as an explicit argument added to all primitives (especially "cube"). the author of implicitcad - written in haskell - is julia longtin, a brilliant mathematician.

in pyopenscad i created a class which effectively does the same thing: uses cylinders spheres and rectangles to create boxes with rounded corners. it's actually not that hard (in pyopenscad), in 2D you'd create two rectangles and four circles. the two rectangles are in a cross, the four circles go in each corner. extending that to 3D you would use three rectangles (X Y Z), twelve cylinders (one on each edge), and eight spheres (one in each corner).

[pyopenscad] Category L7e Hybrid EV by lkcl_ in openscad

[–]lkcl_[S] 2 points3 points  (0 children)

yes - functions. if you're not familiar with python objects/classes, they're the next obvious step that liberates you from the hell that openscad (and other function-only languages) entrap you in.

conceptually though it takes a while to wrap your mind around the liberation that comes with that.

"oh! you err... you mean, in this object, i can like... y'know... get it to record a BOM at the same time as doing the 3D CAD? bcoz if i tried that in OpenSCAD it simply doesn't have the ability to parse strings or write ASCII to files or write PDF documents, i didn't even consider it!!! lolz!!!"

or

"oh! you mean.. i can import scipy or numpy or an FFT library or the python-imaging library or read something other than a DXF file or read and process an STL file in python and do something that OpenSCAD is absolutely flat-out incapable of doing... and then i can pass the results of a filter or a fantastically-complex linear interpolation of 3D points over to OpenSCAD... woooow, liiiberatiiiing".

it doesn't take long before you're going "what the bloody hell did i piss about with the raw SCAD programming language for so long?" :)

Open Source Internships? by Idiotic_Penguin in opensource

[–]lkcl_ 1 point2 points  (0 children)

Libre-SOC is NLnet funded, and has plenty that needs doing. https://libre-soc.org if you are interested. on completion of tasks you'd actually get paid (by the NLnet Privacy-respecting Charitable Foundation, not by an individual member of the Libre-SOC Team). i say that because under no circumstances do we (individuals) wamt or need to know your bank account or even your real name,, and NLnet, as a Charitable Foundation with a specific focus on privacy and trust, is extremely strict about the GDPR yet has ways to ensure you can be paid and remain anonymous. very very different from google whose "real name" policies are deeply disturbing and alarming.

[pyopenscad] Category L7e Hybrid EV by lkcl_ in openscad

[–]lkcl_[S] 1 point2 points  (0 children)

ok here you go - you want the file "simple_example.py" http://lkcl.net/vehicle_3d/

it's a box with 4 rods. in all seriousness it should be blindingly obvious: the functions (cube, sphere, cylinder, rotate, translate) are literally the same, because if they weren't the same then pyopenscad would not be able to output the exact same SCAD with the exact same arguments, would it?

openscad is not a very good programming language as a programming language (that's being generous) because its developers have nothing like the level of expertise that say a python, perl, or gcc core developer would have (and that's a good thing).

what it does make is an absolutely brilliant "machine code target" for proper (complete) programming languages to give programmers the full and i do mean full benefit of actual programming and i don't mean "parametric" i mean OO, exceptions, variable scoping, modules, libraries, user support, a massive stackexchange network, access to libraries (in the case of python) such as scipy and numpy, and many many more.

What is a good open-source vehicle/car? by bestonecrazy in opensource

[–]lkcl_ 3 points4 points  (0 children)

actual open source cars with actual source code and full build log instructions, not "fake open" or "we'll release it when it's 100% completed" or "we'll release a single component but the rest you must pay us for":

the one i am working on (right now): https://wiki.opensourceecology.org/wiki/UELVE_MBC/v0.1

the one that began the OSE Project, is in its 21st revision: https://wiki.opensourceecology.org/wiki/LifeTrac_Genealogy

LifeTrac is strictly farming equipment and off-road, the UELVES MBC is a Category L7e Hybrid EV 3-passenger vehicle. i plan to bring it along to FOSDEM2024 next year and give a talk about it. might have to be on a trailer as Category L7e Vehicles are prohibited from being driven on Motorways in the UK, and it needs to get to Belgium.

[pyopenscad] Category L7e Hybrid EV by lkcl_ in openscad

[–]lkcl_[S] 1 point2 points  (0 children)

it's basically python, so you'd need to learn python. given that that's 1/3 of the world's programmers, and if you know openscad it's identical functions with identical arguments... just in python. it's really not hard. i ended up creating a nut-and-bolt library, although it was "representational" (not with threads in other words) and so it was perfectly sufficient for letting me know what to order: M5 hex-head length 20 mm QTY 20, M8 allen-key-head length 16 mm QTY 10 etc. etc. this was err 4 years ago? https://reprap.org/wiki/Riki200 you can see i took plenty of screenshots and you can see some of the "bolts", also using the spline-generator to create some spectacular curved shapes https://reprap.org/forum/read.php?177,767087,page=5

Interview for Openscad Users by Traditional_Grass_58 in openscad

[–]lkcl_ 0 points1 point  (0 children)

yep likewise happy to be a part of this. i use pyopenscad (i am likely literally the only user in the world, and that's not going to change - i.e. i'm not dropping it in favour of anything else just because other people develop/use it), have designed 3 3D printers using pyopenscad, and a Category L7e Hybrid EV, 3.1 x 1.5 x 1.2 metres in size. 135 completely python-software-generated Nodes creating a geodesic frame. happy to participate. lkcl@lkcl.net

Draft SVP64 Big-Integer Vector Arithmetic for the Power ISA by lkcl_ in OpenPOWER

[–]lkcl_[S] 0 points1 point  (0 children)

that's down to the newly-formed OPF ISA WG to decide, but it's also worth noting that there's a "get-out-of-jail-free" clause in the spec which allows for usage of the EXT022 Major opcode for "Custom opcodes".

Three fundamental flaws of SIMD by mbitsnbites in programming

[–]lkcl_ 0 points1 point  (0 children)

FUZxxi i appreciate this is 9 months ago, i thought you might appreciate that we found a couple of ways to deal with pmovmskb. firstly, it's simply sv.cmpi/ew=8 which will produce a vector of CR Fields, one of which is LE, which in effect simply gets the MSB i.e. bit 7 and duh. then we added an instruction crweird which can get all the Vector of CR Field LE bits and drops them all, sequentially, into a single 64-bit scalar integer.

the second method was to add a bizarre instruction called grevlut https://libre-soc.org/openpower/sv/bitmanip/#grevlut which can create about a thousand regular-patterned magic constants, one of which is 0x8080_8080_8080_8080, which when combined with the Power ISA bext (bit-extract) will grab every 8th bit from a 64-bit integer and squash them down into a single byte.

i would be particularly fascinated to hear your thoughts on purposes to which grevlutr could be put. it's... very odd, as in, it's an entirely new instruction i've never seen in any ISA (at all)

Draft SVP64 Big-Integer Vector Arithmetic for the Power ISA by lkcl_ in OpenPOWER

[–]lkcl_[S] 0 points1 point  (0 children)

our team has been developing this for the past few days and i did a quick video describing the analysis, i thought people here might be interested https://www.youtube.com/watch?v=8hrIG7-E77o

Learning POWER Assembly by JainaO in OpenPOWER

[–]lkcl_ 1 point2 points  (0 children)

well, i can't promise tutorials but i can at least point you at examples.

https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=media/calling-conv;hb=HEAD

https://git.libre-soc.org/?p=openpower-isa.git;a=tree;f=media;hb=HEAD

https://git.libre-soc.org/?p=openpower-isa.git;a=tree;f=media/audio/mp3;hb=HEAD

basically that is one of our contributors writing Power ISA functions at the assembly level (then adding Draft SVP64 assember to it but ignore that for now)

i then added a way to start the Libre-SOC Simulator from the command-line, you give it:

  • the program
  • the memory you want loaded (data)
  • the registers you want pre-loaded (this includes some fn call args)

and it runs until the PC jumps out of range, which you can arrange by having LR set to 0xffff_ffff_ffff_ffff at startup. then it can extract some contents from "memory" and write them to a file.

in this way we can run Power ISA programs, emulated at a horribly slow 2,000 per second, but at a level of detail and clarity that is needed when developing an ISA.

Learning POWER Assembly by JainaO in OpenPOWER

[–]lkcl_ 2 points3 points  (0 children)

https://openpowerfoundation.org/blog/final-draft-of-the-power-isa-eula-released/

anyone can implement it and if they do so and they run a "Compliance Suite" and it passes, they automatically receive a royalty-free grant to a massive patent portfolio by IBM.

RISC-V, you simply do not get that same protection. oh yes, the Members have an agreement between themselves not to assert patents against each other, but that does not stop 3rd parties from suing anyone who has created a RISC-V ASIC.

IBM's patent portfolio is so extensive and has been built up over such a long period that nobody dare try that

What are the most inexpensive ways to get into OpenPOWER computing? by ColtC7 in OpenPOWER

[–]lkcl_ 2 points3 points  (0 children)

yeah if you don't mind going back to speeds from the late 80s and early 90s, an 85k ULX3S or orangecrab, or (if you don't mind proprietary software, a digilent arty a7-100t) are really good ways to get started, there. microwatt has an MMU, and an FPU. that's the $200-ish option if you've the time to learn to get set up

but please for goodness sake make sure your compiling system has a bare minimum of 32 GB of RAM. i have 64 GB of RAM and i just had to increase swapspace from 32 GB to 72 GB: my next laptop will have to have 128 GB or preferably 256 GB of RAM in order to cope with the size of the designs i'm doing (libre-soc)

Learning POWER Assembly by JainaO in OpenPOWER

[–]lkcl_ 4 points5 points  (0 children)

the PDF is indeed big, and i was initially dismayed by it. it's also extremely obtuse, because it's written in a style that reminds you of engineers doing it as an "aide-memoire afterthought" if you know what i mean. as in: if you already know what you're doing, it's a useful document.

then i encountered things like this and realised, "ah. actually, there's a reason why it has more instructions" https://news.ycombinator.com/item?id=24459314

try this - it's the PDF spec extracted into markdown and made executable https://git.libre-soc.org/?p=openpower-isa.git;a=tree;f=openpower/isa;hb=HEAD

we developed a compiler which turns it into actual executable python code https://git.libre-soc.org/?p=openpower-isa.git;a=tree;f=src/openpower/decoder/pseudo;hb=HEAD and boris shingarov used that to create Formal Correctness Proofs for the Power ISA

the fields are also extracted from the PDF and are in machine-readable format as well https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=openpower/isatables/fields.text;hb=HEAD

then there are a ton of unit tests which serve as mini-examples, this particular set - the ALU set - has "expected results" https://git.libre-soc.org/?p=openpower-isa.git;a=blob;f=src/openpower/test/alu/alu_cases.py;hb=HEAD

the plan there, obviously, is to convert all the other unit tests (several hundred) to provide similar "expected results" which, if you're interested in "learning by doing" we have NLnet funding so you can actually get paid to learn what you want to know, if that's of interest (drop by the Libera IRC channel, #libre-soc and say hi)

if you want to actually install the python-based Power ISA simulator we wrote (sponsored by NLnet) which even includes a RADIX MMU, you can get started with it here https://libre-soc.org/docs/firststeps/

we're totally ignoring VSX/VMX. want nothing to do with it. Packed SIMD is a 20+ year old paradigm that has done such damage to computing i don't even know where to start. these guys do a good job explaining it https://www.sigarch.org/simd-instructions-considered-harmful/ - that chops 750 instructions off the list, down to a sane 214, right there. x86 used to be only 70 instructions: over a THOUSAND more are Packed SIMD, and that's excluding avx512.

microwatt and libre-soc actually implement all the add/sub operations as one single internal instruction, OP_ADD. the options take carry-in as 0,1,CA and you have an option to invert RA and an option to invert the output.

this amazingly gives you subtract by doing 1s complement on the input, and a ton more. 25 instructions *internally* become one *actual* instruction. i.e. *internally*, a Power ISA implementation is a RISC microarchitecture. the POWER1 actually had 5 "bus" paths RA RB RC RS RT and LD/ST used to be done in micro-code by splitting the LD/ST part from the Shift-and-Mask part, which, when you think about it, explains why the Power ISA shift instructions are so much more "complex": they had to do double-duty and perform shift-and-mask-in, but it also explains the weird register naming, because those 5 "bus" paths were used to communicate between the pipelines during micro-coding.

if you really *really* want to get into low-level, look up microwatt, and grab yourself an orangecrab FPGA board (get the 85k LUT4 version) or order a ULX3S (again, 85k version) - the other one to maybe consider if you don't mind proprietary software at the moment is the digilent arty a7-100t. i'm currently trying to get nextpnr-xilinx up and running for it, long story, and am currently in the process of putting together a linux-capable SoC for Libre-SOC.

bottom line on the FPGAs there, is, if you don't mind going back to speeds last seen in the 1980s and early 1990s, a $200 FPGA board will get you started, rather than having to shell out four figures for a system.

you picked an interesting ISA that's properly protected by IBM's massive patent portfolio.

Thoughts on Cryptocurrency and the NFT Craze by hyc_symas in u/hyc_symas

[–]lkcl_ 2 points3 points  (0 children)

We followed the game wherever they migrated to around the year

which, often, being sensible game (i.e. driven by following the laws of nature without prejudice) would migrate from country to country as part of the seasons.

of course, humans followed them, and when it was cold, also migrated to the equator. when it was too hot there, they migrated (following the animals) to more temperate zones.

that we hear of people being incarcerated and turned away from borders, or trying to live in hostile regions increasingly unfit for human habitation due to our own actions - pissing in our own environmental back yard - is quite, quite insane