OT: Computer Programming

avatar for san_jose_guy
san_jose_guy
old thread:
Computer Programming, Closed
https://www.tuscl.net/discussi…

Apache Hadoop
https://en.wikipedia.org/wiki/…

Apache Kafka
https://en.wikipedia.org/wiki/…

Anyone use these, have experience with or opinions about them

SJG

Comments

last comment
avatar for SanchoRG
SanchoRG
Texas
5 years ago
I prefer Nginx
https://en.wikipedia.org/wiki/…

What does Nginx do, and why do you like it over the above two?

Thanks,
SJG
avatar for SanchoRG
SanchoRG
Texas
5 years ago
Nginx handles static content better, which is most anything I program. Apache is better for dynamic content.
avatar for DenimChicken
DenimChicken
5 years ago
Those Apache projects have nothing to do with the traditional Apache web server. Sure they could be..involved...behind the scenes but. Nevermind.


FRMOS with great multithreaded, ULL cache targetting, avx512 optimized code makes things fast.
^^^^ Agreed, and thanks for the info. That was also my perception of the above software things.

SJG
Practical Usage of Regular Expressions: An introduction to regexes for translators Paperback – February 20, 2018
by Anthony Rudd

Introducing Regular Expressions 1st Edition
by Michael Fitzgerald (Author)

Learning Ruby: The Language that Powers Rails 1st Edition
by Michael James Fitzgerald

SJG
IO

http://iolanguage.com/

https://en.wikipedia.org/wiki/…

Practical Haskell : a real world guide to programming / Alejandro Serrano Mena. (2019)

Game Development with GameMaker 2 Studio 2 : make your own games with gamemaker language. (2019)

The Rust programming language / by Steve Klabnik and Carol Nichols ; with contributions from the Rust Community. (2019)

The audio programming book / edited by Richard Boulanger and Victor Lazzarini ; foreword by Max V. Mathews. (2011)

On Git Hub
https://github.com/IoLanguage/…

https://github.com/IoLanguage/…


From Simple IO to Monad Transformers
by J Adrian Zimmer (Author)

This is a short ebook written for Haskell programmers who wish to become comfortable with the concept of monad. It is formatted for reading on small or large screens. The author is a math Ph.D. with decades of experience teaching abstract concepts to beginners, including teenagers.

The Io Programming Language
https://www.youtube.com/watch?…

http://peru
gini.cps.udayton.edu/teaching/…


Machine Learning with R: Expert techniques for predictive modeling, 3rd Edition Paperback – April 15, 2019
by Brett Lantz

wiki guide to Io
https://en.wikibooks.org/wiki/…

Ozone, intro to Io
https://ozone.wordpress.com/20…


The AWK Programming Language 1st Edition
by
Alfred V. Aho (Author),
Brian W. Kernighan (Author), Peter J. Weinberger (Author)

Concepts of Programming Languages (10th Edition) 10th Edition
by Robert W. Sebesta

Coral Dev Board I/O Programming Using Python Kindle Edition
by Agus Kurniawan

Io language was created by Steve Dekorte in 2002

http://dekorte.com/

Lots of online info, and Io looks extremely interesting. To me it looks like Forth, as well as SmallTalk.

But zero books I can find about it!

SJG
^^^ based on what I see it looks wonderful. Still like to find some books and first hand accounts.

Not interested in it for general purpose, but for some small embedded applications, and maybe running with no operating system underneath.

They say it is like SmallTalk, fine. Or I see it as also like Oberon. But I also see it as the new Forth.

And of course I want to add complied C++ to its interpreter, not just write in its interpretive stuff. And highly object oriented is ideal.

SJG

Joe Bonamassa Official - "Midnight Blues" - Beacon Theatre Live From New York
https://www.youtube.com/watch?…
So let me look some more at "Io".

What processors, what compilers?

Cross compilers?

Download and then use make to compile Io (its interpreter and runtime stuff)
http://iolanguage.org/guide/gu…

Here is source code, on GitHub ( I think run by Google )
https://github.com/IoLanguage/…

Linux Build Instructions
https://github.com/IoLanguage/…

Everything for this must be GNU, and they want on Windows for you to build using Cygwin

http://www.cygwin.com/

But can you cross compile? Mostly I want to use Io on ARM processors. But I will not want to compile it there, want to compile on a PC, probably using Linux.

Io links
http://iolanguage.org/links.ht…

GNU C complier ( GCC )

https://gcc.gnu.org/

GCC 7.5 released [2019-11-14]

GCC 9.2 (changes)
Status: 2020-02-28 (regression fixes & docs only).
Serious regressions. All regressions.


Says these are the GNU GCC targets

https://gcc.gnu.org/install/sp…

so for example:

aarch64*-*-*

https://gcc.gnu.org/install/sp…

Talk about some corrective for Cortex-A53

Special stuff about MS-DOS
DOS

Please have a look at the binaries page.

You cannot install GCC by itself on MSDOS; it will not compile under any MSDOS compiler except itself. You need to get the complete compilation package DJGPP, which includes binaries as well as sources, and includes all the necessary compilation tools and libraries.

All the GNU complier manuals

https://gcc.gnu.org/onlinedocs…

GNU Fortran Manual
https://gcc.gnu.org/onlinedocs…

Talks about Fortran 2003, 2008, and 2018 !!

So this is the manual for all of the GCC compilers ( G Compiler Collection )
https://gcc.gnu.org/onlinedocs…

for example, special options for the BlackFin processors, I guess on all GCC compliers:

Specifies the name of the target Blackfin processor. Currently, cpu can be one of ‘bf512’, ‘bf514’, ‘bf516’, ‘bf518’, ‘bf522’, ‘bf523’, ‘bf524’, ‘bf525’, ‘bf526’, ‘bf527’, ‘bf531’, ‘bf532’, ‘bf533’, ‘bf534’, ‘bf536’, ‘bf537’, ‘bf538’, ‘bf539’, ‘bf542’, ‘bf544’, ‘bf547’, ‘bf548’, ‘bf549’, ‘bf542m’, ‘bf544m’, ‘bf547m’, ‘bf548m’, ‘bf549m’, ‘bf561’, ‘bf592’.

Blackfin processors could be very useful, for some stuff:
https://en.wikipedia.org/wiki/…

Offical Blackfin, lots of part numbers, with datasheets
https://www.analog.com/en/prod…

Sometimes you have to accept single source solutions. But I would be concerned that this Blackfin unnecessarily could get you into a single source solution.

SJG
Here is IA 64. As I know this is Intel, and what it is, is in the later Pentiums when they added the full on 64 bit mode.

https://gcc.gnu.org/onlinedocs…

This is 68000 and Coldfire options
https://gcc.gnu.org/onlinedocs…

More about AArch64
https://gcc.gnu.org/onlinedocs…

Special options for AMD GCN, like for PC Gaming, great images
https://www.amd.com/en/technol…

https://gcc.gnu.org/onlinedocs…

Extensions to C language
https://gcc.gnu.org/onlinedocs…

Extensions to C++ language
https://gcc.gnu.org/onlinedocs…

talks about HSA language and D language, also Go language and G++.

From all of this I see that C/C++ is heavily used, as is Fortran. But Pascal does not exist. And Ada is really very secondary.

Compiling C++
https://gcc.gnu.org/onlinedocs…

C compiler options summary
https://gcc.gnu.org/onlinedocs…

I am getting the impression that cross compilation options are just built in. If you can get the compiler running on your machine, then you can compile for any of the vast array of supported processors.

This is 1 million times better than how it would be on commerical proprietary software development tools!

No I am not suggesting that this is easy. I know that it is not. But at least the people driving it are thinking the right way!

SJG
Now we talk about Floating Point
https://gcc.gnu.org/onlinedocs…

Some targets have 128 bit integers
https://gcc.gnu.org/onlinedocs…

Some support for Complex numbers.
https://gcc.gnu.org/onlinedocs…

That might be done in a manner which is not useful.

Says their is some float128 !! Not sure how this really plays out though.


__float128 is available on i386, x86_64, IA-64, and hppa HP-UX, as well as on PowerPC GNU/Linux targets that enable the vector scalar (VSX) instruction set. __float128 supports the 128-bit floating type. On i386, x86_64, PowerPC, and IA-64 other than HP-UX, __float128 is an alias for _Float128. On hppa and IA-64 HP-UX, __float128 is an alias for long double.
__float80 is available on the i386, x86_64, and IA-64 targets, and supports the 80-bit (XFmode) floating type. It is an alias for the type name _Float64x on these targets.
__ibm128 is available on PowerPC targets, and provides access to the IBM extended double format which is the current format used for long double. When long double transitions to __float128 on PowerPC in the future, __ibm128 will remain for use in conversions between the two types.

Power PC does also involve IBM.

Look at this chip package:
https://upload.wikimedia.org/w…

PowerPC list
https://en.wikipedia.org/wiki/…

Special ARM options

SJG
So let me try to look at the GCC linker:

https://gcc.gnu.org/onlinedocs…

talks about ASM relations
https://gcc.gnu.org/onlinedocs…

Still taking effort to make progress in learning about this.

Enumerator Attributes
https://gcc.gnu.org/onlinedocs…

https://gcc.gnu.org/onlinedocs…

^^^^ I don't think that is a good thing to do. Microsoft pushes this, came from them.

So try to get back to linking issues:
https://gcc.gnu.org/onlinedocs…

Looking for overlay capabilities in linker. Not seeing it.

Starting at the top again:
https://gcc.gnu.org/

GNU origins and operating system
http://www.gnu.org/gnu/thegnup…

https://gcc.gnu.org/onlinedocs…

look at this, quad precision math library?
https://gcc.gnu.org/onlinedocs…

Quad precision, meaning 4 times 4 bytes, 16 bytes, 128 bits?

But this is in software. Still useful. About 33 decimal digits precision, plus the exponent.

Suggests that one way or another, there will be the needed hardware.

SJG

Led Zeppelin – No Quarter [1975/05/24 @ London, England] Earl's Court Extended Version, I could listen to this until the vinyl wears out!
https://www.youtube.com/watch?…
So let me try to look up their linker this way:

https://en.wikipedia.org/wiki/…

Well they talk about Dynamic Linking, but they fail to talk about the importance of this in these interpretive langauges, being able to expand them.

They don't even talk about doing overlay linking, except for one thing. IBM 360 has more data in the output file, so you can remove some stuff from a linked program, and then put other stuff in, without have to recreate all the object files.

This, ld, should be the GNU linker manual
https://sourceware.org/binutil…

And then here, talked about with Linux

https://linux.die.net/man/1/ld

There is stuff about dynamic linking. Maybe they let you tell the machine how to do Virtual Memory swaps. That would be good, but still cannot really see that for sure.

Not sure what this is:
https://linux.die.net/man/5/sl…

Unix is multi-user and it has Virtual Memory, so it is going to be more complex.

UK based, FreeRTOS, looks good, scalable
https://freertos.org/

Kernel
https://freertos.org/FreeRTOS-…

Real-time embedded components and systems : with Linux and RTOS / Sam Siewart, John Pratt. (2016)
Making embedded systems : [design patterns for great software] / Elecia White (2012)
Building embedded Linux systems / Karim Yaghmour (2008)
Embedded Linux system design and development / P. Raghavan, Amol Lad, Sriram Neelakandan (2006)
Open-source robotics and process control cookbook : designing and building robust, dependable real-time systems / by Lewin A.R.W. Edwards (2005)
Embedded system design / by Peter Marwedel (2003)
The art of programming embedded systems / Jack G. Ganssle (1992)

Another book, back early 90's, which I cannot now find.

SJG
Think Julia : how to think like a computer scientist / Ben Lauwens and Allen B. Downey (2019)

SJG


Introduction to artificial intelligence / Philip C. Jackson, Jr. (2019)

SJG

TJ Street
https://tuscl.net/photo.php?id…
^^^STFU or out me on ignore!
Hands-on full stack development with Go : build full-stack web applications with Go, React, Gin, and GopherJS / Mina Andrawos (2019)

Introduction to artificial intelligence / Philip C. Jackson, Jr. (2019)

Clean Ruby : a guide to crafting better code for Rubyists / Carleton DiLeo (2019)

Computational thinking / Peter J. Denning and Matti Tedre. (2019)

C++ templates : the complete guide / David Vandevoorde, Nicolai M. Josuttus, Douglas Gregor (2019)
788 pages

SJG
How fast I can learn is completely dependent on how fast I can read mountains of books.

This is why I also need my Organization. It will serve as a Think Tank with lots of sections, to help in reading lots of books, and as a repository of all different types of expertise.

SJG

Tom Petty & the Heartbreakers - I Won't Back Down - 10/2/1994 - Shoreline Amphitheatre (Official)
https://www.youtube.com/watch?…
So if they overlay linkers are no more, I think you could still write C/C++ extensions to these interpretive langauges, and then have the extensions loaded when needed, and the I think dump them when no longer needed.

SJG

Eric Clapton Layla 2008
https://www.youtube.com/watch?…

crosby stills nash young almost cut my hair CSNY 1974
https://www.youtube.com/watch?…

TJ Street
https://tuscl.net/photo.php?id…
https://tuscl.net/photo.php?id…

Pleaser 10"

https://pleasershoes.com/colle…

https://pleasershoes.com/produ…
Functional Programming for Dummies, by John Paul Mueller.

Author is of quite some renown.

Must have libraries for Python:

PyAudio -

PyQtGraph -

TkInter - GUI

PrettyTable -

SQLAlchemy -

Toolz - lots of stuff good for Functional Programming

ClouderaOryx - Machine learning for Apache Hadoop

funcy - all stuff inspired by Clojure, for doing functional programming

SciPy - all stuff for scientific computing

XGBoost - Gradient Boosting Machine, for Python, R, Java, C++

SJG
John Paul Mueller, lots of books which all look good:
https://www.amazon.com/John-Pa…

Machine learning for dummies / by John Paul Mueller and Luca Massaron.

Yes readily available

Anaconda, and IDE for doing Python data science work.
https://www.anaconda.com/

But except for the individual edition, it is not free.

SJG
Some are looking more to C++ for Functional Programming.

https://www.amazon.com/Functio…

Mostly this is due to the Standard Template Library. And in my view, this is the right way.

Now C++ is not interpretive. Some things really do need an interpretive language. But in my view the popularity of many of these interpretive languages is not based on solving real issues, it is based on specious reasons for making the choice.

Interested to know what you think.

SJG
NumPy
https://numpy.org/

Mueller Lists Programming Paradigms

Imperative
Procedural
Object-Oriented
Declarative

and the Functional Programming is built upon Declarative Programming.

SJG
Seven Concurrency Models in Seven Weeks
When Threads Unravel
by Paul Butcher

The Pragmatic Programmers ( This publisher and this series are always really good )

https://www.amazon.com/Seven-C…

SJG
avatar for SanchoRG
SanchoRG
Texas
4 years ago
link your github
So I read the above and he gives examples and discussion based on using Clojure. I feel that this demonstrates my contention that these new functional programming languages are not really helpful but are more of a hindrance. What he shows works, but the reason that it works is that what you need for concurrency is already built into Clojure. Okay, but if it is not a class assignment and instead it is a real work application, you need tools, not toys. You are responsible for the entire application from top to bottom, and for the careful judgements used in making it.

You can write it all yourself, or you can use library modules to do all of these things. But that still gives you a great deal more ability to tailor the result to your actual need than you would get from using Clojure, Scala, Lisp, Scheme, Prolog, Erlang, or Elixir.

I read all the discussions and examples and I can relate it to things I was responsible for decades ago. The concepts involved are very important. But I still see most of these new languages as gimmicks.

And then you have books like:
https://www.amazon.com/Clojure…

Totally disingenuous. They say you can do this and this and this. But they forget to tell you that the reason this is so is simply that others have already written the code to do these things and this is what is inside of Clojure. For a real world application much more is expected of the people responsible for it.

And then there is the loss of control of how it works via the Java Virtual Machine. Can't do stuff that way, not acceptable. If things are to be farmed out to multiple CPU's, you need to decide when and how this will be happening.

Good to see you here SanchoRG.

SJG

Buddy Guy - Knock on Wood
https://www.youtube.com/watch?…
I really think that good libraries, Class Libraries, for C++, but also for things like R, Python, or Ruby, are the better way to go, than these specialized Functional Programming languages like Clojure or Scala.

Here is one:
https://www.actor-framework.or…

SJG
Seven Concurrency Models in Seven Weeks
When Threads Unravel
by Paul Butcher

Yes, so he talks about threads and locks.

He talks about Functional Programming, but out of its original context of Artificial Intelligence, in the context of Concurrency. And the central thing seems to be immutable variables.

My view is that you can make things to do this in any Object Oriented language, if you wish to.

He talks about Clojure and a lot of the concepts which underly it.

He talks about Actors, which in my view is a phenomenal way to go. He explains that it does not depend on immutable state variables, just on keeping them private.

Now he does his examples in Elixir. But remember that Elixir runs on their BEAM operating system. While I respect the great things which have been done with Elixir, I still do not think it hte best available way.

The he talks about CSP, Communicating Sequential Processes, the language Go, and a new library for Clojure. Not really impressive to me.

Then he gets into Data Parallelism and GPU ( Graphics Processing Units )

SJG
author talks about:

https://en.wikipedia.org/wiki/….

https://en.wikipedia.org/wiki/…

This I go along with whole heartedly.

Talks about GPU in a laptop. Well I'm not so interested in that in a laptop or desktop, but rather in the servers used for production environments.

SJG
More books from Pragmatic Programmers:

Good Math by Mark C. Chu-Carroll
https://www.amazon.com/Good-Ma…

Seven Web Frameworks in Seven Weeks
https://www.amazon.com/Seven-W…

https://www.amazon.com/Seven-M…

and then Nathan Marz
https://www.amazon.com/Big-Dat…

SJG

Deep Purple - New York 1973 - Full Concert
https://www.youtube.com/watch?…
Lopes, Cristina Videira, author
Title Exercises in programming style / Cristina Videira Lopes
Imprint Boca Raton : CRC Press, 2021

CRC Press is always no nonsense.

SJG

Plus Size
https://www.foxylingerie.com/p…
Lopes, Cristina Videira, author
Title Exercises in programming style / Cristina Videira Lopes
Imprint Boca Raton : CRC Press, 2021

This is an unusual and uncommonly abstract book. Shows the history of programming paradigms, with examples written in Python and detailed commentary. At this time I don't need to spend much time with this.

SJG

Yazidi and Esoteric Islam matters
https://tuscl.net/discussion.p…

Boob Out
https://tuscl.net/discussion.p…
ESS JAY GEE

Computer coding once had much better gender balance than it does today. What went wrong?

Did stripping pay more?

I agree with you. What people say is that it was the rise of the Internet. Because of this, computer programmers started to have greater social status and to get better pay. So what they say is that the women were chased out. People have written about this and have tried to do something to get back to better balance.

I have not read this but I want to. I know that it talks about a great deal of sexism in work places. I am not surprised that they are seeing this.

https://www.thriftbooks.com/w/…

SJG
Not taking sides on this, but I think Shevinsky wants to say that the men don't want to see the women as equals. Rather they want to hire them as strippers, literally.

Other accounts of men being interviewed for a position and being unwilling to talk with female interviewers, staying silent until they can present him with a male.

These guys do this even though the women are the hiring manager and the company founder.

Okay, but I listen to this and I listen to some of what Shevinsky says and I see these as only quasi-technical positions. They pertain more to consumer marketing and canned programming environments, and so the men don't want to be cast into that role, a role they see as more suitable for women.

But I also know that there are many men who don't know the difference and who could only function in that kind of a realm themselves.

This is why I want to read Shevinsky and a lot of other related things which are coming.

Shevinsky just made a video on the Google Campus where she was walking down their halways and through their doorways, and she was noting that they could have offered her a job if they wanted to, but they didn't. I found her position to be a bit much. But still I want to read and understand before I take a position.

SJG
TensorFlow for dummies, by Matthew Scarpino (2018)

SJG

Why 'Sports Illustrated Swimsuit' will only work with brands that 'prove they are creating change for women'

https://www.yahoo.com/lifestyl…

Weather Report - Live at Montreux (1976) [Remastered]

https://www.youtube.com/watch?…
Erlang and Elixir for Imperative Programmers, by Wolfgang Loder (2016)

My view is still that it is better to learn from and understand these langauges, but not to use them. Don't want to use their BONE virtual machine, can't write everything their way.

Instead put the time in and make a nice C++ class library, accessible through C/C++, R, Python, or Ruby. Use this for you Imperative Programming. And it is inside of the mechanics of your class library that your multiprocessing and hot swap capabilities reside.

SJG
Want to post add a comment?Join Now