« first day (5090 days earlier)      last day (136 days later) » 
00:00 - 14:0014:00 - 23:00

00:44
oh nice thanks
01:20
I thought you folks might appreciate this: youtube.com/shorts/glrirH2PnB8?si=36QVgpiS4PiGUe_T
Enjoy!
01:42
@naturallyInconsistent sometimes when I learn a programming language I think I pretty much am a Markov process -_-
@ACuriousMind recovers from liver blow, in vain
_doubt_
I mean you don't seem to be like that. But if you are into having everything laid out essentially mathematically, you should not be using the standard resources. You might want to check out the original, 1980s, SICP, with both lecture videos and textbook. And their lecture videos are sooooo watchable; it is like they had 2010s videoing tech, whereas C-SPAN has 1970s videoing tech today.
I'm too impatient when it comes to code - it's like cooking food :P you just want to eat so you wander about with the (numerical) recipe bouncing off walls of "no, better not do that, that's not tasty" rather than analysing it. I find it quite different to doing maths or physics even though in principle it could be approached in a similar way
Oh, that's surprising.
Miao miao is very much interested in all the numerical quirks. How to do them stably and quickly, and most importantly, keeping as much precision as possible.
And luckily, it has a payoff that renormalisation trickery is mildly related to that.
02:00
I think CS can definitely be an art but sadly a lot of the time it's pragmatism to get the numbers out
bit like cooking food... I mean, sure, amazing knife skills and Michelin star cooking is great but sometimes you just want the calories and nutrients
imho physics is more like oil painting - you're setting out to make something pretty when you sit down to do it
Well, miao miao's been watch Kaze Emanuar optimise Super Mario for Nintendo64 and making it so many times faster, by removing old "optimisations" that ended up being totally wrongheaded
@qwerty no, no, most physics students just want to quickly get a prediction they can compare with experiment
@naturallyInconsistent those are the engineers :p
You can treat all 3 subjects with the same level of artistry or same level of cavalier
@naturallyInconsistent oh boy how i do not fall into this camp XD
@naturallyInconsistent oo :)
02:05
With you two, it is more of, how can you learn to be a bit more like them?
Anyway, to round it out a bit more, N64 is misunderstood by their original game developers. Prior to N64, all computer systems had CPU << RAM, whereas N64 had CPU >> RAM. This means that all the ugly hacks like loop unrolling, ends up making performance way worse. They should have tried to make the CPU run a lot more (with the wonderful upshot that the code also looks much cleaner) rather than save CPU cycles by using more memory. Even just the computation of sine cosine deserved its video
i have been trying to get more practical :P but i always wind up somewhere else hehe
@SillyGoose trust your own intuition above someone else's :)
I wish someone had told me that when I started research.
02:20
@SillyGoose I'm not talking about practical. I'm talking about being able to handle ambiguity
maybe we're more naturally consistent than inconsistent :p
 
2 hours later…
123
123
05:24
Hello Everyone...
06:09
@naturallyInconsistent one thing that numerical analysis and its intro section on computer arithmetic taught me, it was that those early cs people were really smart, and really miser when it comes to bit allocation xD
not a bit to be wasted
@nickbros123 That's because every bit is ridiculously expensive. They had no choice. When you are doing experiments with gold, you know you have to be careful, because you are burning your wallets doing those experiments.
yeah, Id assume. I think a long time ago a rocket blew up because of a numerical approximation error or something
I did some high performance computing and it was ridiculous how cavalier some researchers treated compute time. I felt pretty bad because it's supposed to be quite resource intensive. I've heard similar arguments with streaming music/video versus having a downloaded copy.
06:26
Some of us started programming on a 1MHz 6502 - in assembler! :-)
5
@JohnRennie respect++
They were not the good old days - trust me on this :-)
I don't know what that is but sounds extremely impressive xD
@JohnRennie tough times create strong men
06:30
One of the students I coach is learning Arduino assembler and asking me how to do signed 16 bit multiplications in assembler, and I'm thinking WTF!! :-)
my python addled brain cannot comprehend this
I think it's a form of torture used now that profs are no longer allowed to flog students.
hi
@JohnRennie there's also the punch card people
06:49
@qwerty Look up Ben Eater's videos. The world's crappiest video card is pretty cute.
I alternate between thinking Ben Eater's are absolutely awesome and thinking that he clearly has too much free time :-)
@qwerty won't those people be easily self-selected out of academia? Like, they won't be able to publish results quickly enough, when compared against their peers
@JohnRennie If you think of it only as educational, then it kinda makes sense. Hopefully, YT is making it so that he is profitably doing so
It is, however, so visually pleasing to see all his wires going in nicely straight and parallel lines.
@naturallyInconsistent Hhhhhhhmmmmmhnmm. well if you "hire" ~10 PhD students to Markov chain / throw stuff at the wall, something will stick right? :) the Amazon can burn
@naturallyInconsistent I'm just envious of his dedication. I have to construct simple circuits in a breadboard as part of tutoring the students but my wiring descends in a chaotic mess very quickly. How he manages to keep everything so tidy and organised amazes me.
@naturallyInconsistent ooo ok will do
06:57
@JohnRennie there were some videos where he commented about how he did it; by lots of measuring and cutting. There is thus a whole lot of wires cut to all kinds of specifically measured lengths.
Yes, the amount of work it involves must be tremendous!
@qwerty I really don't think some academics being wasteful would be that level of wasteful as to burn the Amazon. That kind of stuff is dwarfed by bitcoin and ML bros.
It is indeed tremendous. But that's the price to pay to be beautiful like art is.
@naturallyInconsistent yes but it's the old argument of whether any of the stuff we individuals do against XYZ (pollution, global warming whatever big global problem) really "matters" and we've all heard the debate before :)
@qwerty uugh, plz no... I'm actually a Patreon of SimonOxfPhys and he had such a depressing list of all those stupid arguments.
:') we are all drops in the ocean and yet there is a ocean
07:05
That's also why im so pushy when it comes to irresponsible arguments. Almost everything has consequences. Not everything, of course, but I'm not going to just not push back on abject nonsense.
@JohnRennie oh how I miss doing random stuff with the breadboard. that was my favourite activity up until 9th grade. I once made a water level detector, remember being very proud of it :)
@nickbros123 there is no reason why you cannot pick it back up again. Though, of course, you have to pass exams so for now you can focus on them, but you can pick it up as a hobby later on~
@nickbros123 Buy yourself an ESP32. It is the single most enjoyable way to waste time ever invented.
I disagree. For him, theoretical maths would be an even more enjoyable way to waste time. So, maybe he should get a Raspberry Pi so that he would have access to the Mathematica inside, and then he can play with beautifully notated symbolic manipulations suitable for quantum perturbations.
@JohnRennie Damn. I used to use IC 555. This thing looks like James bond tech compared to that lol
07:15
They are only $5 - the USB cable to connect it to your PC probably costs more!
how do you get into this stuff, hardcore? I know how to implement written out circuit diagrams, on simple integrated circuits- simple stuff like annoying my mom with piezoelectric speakers, or goofy stuff around with light detectors. but not much more
@nickbros123 Too much free time :-)
07:37
@JohnRennie have you seen the 1997 version of 12 Angry Men?
:-)
@qwerty I find it depends very much on the language you're working with. Writing something with weak and dynamic typing like Python is not very math-like, but languages with strong static type systems (C++, Rust, or even Haskell, though Haskell is perhaps cheating as an example here) feel to me much more like the careful mathematical construction of maps with well-defined domains and codomains
@think_meaning_builds I know of the film, but I'm really only interested in science fiction. I find the real world rather depressing, so why would I want to watch a file about it?
George C Scott gave a powerful performance.
(btw he's one of only a few who has turned down the academy award)
@JohnRennie please see 12 Angry Men. It is not about depressing reality
@think_meaning_builds I've seen 50s one
@ACuriousMind ahh. I've only ever learnt python, SQL, mathematica, tiny bit of FORTRAN... nothing like C or Haskell
07:47
@think_meaning_builds do u think there is reasonable doubt or r the defenders clutching for straws (without spoiling the movie)?
I'm a strong believer in static typing and algebraic type systems - if the type system is powerful enough, getting the types right makes many classes of errors completely impossible, and it forces you to really think through the structure of the problem you're solving
I sorta wiki-walked into data typing recently and it seemed like different disciplines doing set theory with different names
there are set-based formulations of formal type theory and those that try to eschew the notion of sets and take the logic of type theory as foundational, but really you don't need formal type theory to understand most programming language type systems :P
@think_meaning_builds why would you be specifically talking about the 1997 version? Are there significant differences from the 1957 version?
on a slight tangent, to give a generous interpretation of one frequent poster's messages on here recently, it felt a bit like reading through compiler errors with how many inputs are "allowed" into a function F ...
07:53
@qwerty C should be seen as different from C++
@naturallyInconsistent I haven't touched much of either :(
Dec 12, 2018 at 22:20, by ACuriousMind
Do you want to see an object system bolted on to the manual memory management, with a Turing complete sublanguage where you'll write boilerplate code that generates more tedious boilerplate code for you? Go for C++! (don't @ me :P )
@ACuriousMind oh? why not?
@qwerty That's actually good. Start learning programming from nicer languages, and then map them to these old ones
@naturallyInconsistent you're going to say Haskell right? I've just started doing more SQL and I need to learn R next
07:57
@qwerty I don't know what kind of languages you would find as nice, though. I'm not sure that you would like Haskell, though that seems to be an obvious thing to try. SICP used Scheme, and that is nice too. R is probably a bit way out there, but it is great for statistics. I wonder why you said Mathematica but don't seem excited.
You can do beautiful stuff in Mathematica, and make the maths-adjacent bits be presented as traditional script form.
@qwerty Because all you really need is an understanding of how functions work. In the algebraic typing mindset, a program is essentially just a function $P : A\to Z$, where $A$ is the space of possible inputs and $Z$ is the space of possible outputs. All programming is is breaking the task of implementing $P$ down into smaller, more manageable functions.
For instance, if you can find a way to write $A = B\times C$ and define functions $f_B : B\to X, f_C : C\to Y, m : X\times Y \to Z$, then you can write the program as $p(a) = p((b,c)) = m(f_B(b),f_C(c))$
@naturallyInconsistent I dunno, it never struck me as that beautiful? I used it a lot in undergrad, before I really knew how to code though. iirc it can handle some symbolic computation (?) stuff - I guess that's cool?
@ACuriousMind virgin void myfunction(int x) {} , vs chad def myfunction(x):
@ACuriousMind ooo. processing
some of my friends harp on about julia
like its the 2nd coming of christ
i think he writes "C:\>Julia" on terminal and gets off on the ascii logo
08:08
hahaha
I think we all have our favourite language and it's rarely a logical preference. The first language I learned was Basic, then Fortran then Lisp, all of which are horrible or pointless or both. Then when I learned C I finally had a tool I could use to actually get things done. Forty years later C remains my favourite language.
@nickbros123 I mean...the dynamic typing languages have their uses, especially for quickly writing some script that just works, but I deeply dislike them for any larger projects because refactorings become extremely tedious since typing changes result only in runtime errors, so you either need extremely high test coverage or manually test every single feature.
When I refactor a project in a strongly statically typed language, I get a bunch of syntax errors and usually once I have fixed all the syntax errors it just works again
C is strictly typed but luckily you can abuse pointer casting to evade those annoying restrictions that the language wants to impose on you :-)
do people here have a favourite language(s)?
For those of us who program for money whatever works is good, but I always feel most comfortable when I can program in C.
08:18
I think you can already tell that I do ;) Haskell is beautiful, but for actually doing things I prefer Rust these days
the borrow checker is my friend
A student asked me if Rust is hard. Since I don't know Rust I Googled for it and found many long and detailed articles all of which boil down to: "Yes".
@ACuriousMind It is annoying to have to remember what type of object a function sends back every time
Especially for huge complicated structures
@Slereah You don't have to remember, the compiler will tell you if you get it wrong :)
Well not in Python
that's why I prefer static typing!
08:27
Category theory is inspired by programming
has anyone heard of an old language called LANSA? apparently at my work the really old stuff is all written in it but no one knows it these days
oh lord
it's IBM's COBOL, essentially :P
hahaha what could go wrong
@ACuriousMind I agree. I just like python a lot cuz it's really easy to get small things done, plots and stuff and also cuz many other people have done my work for me
I mean, I mainly work in what is essentially SAP's COBOL so I'm not one to judge :P
08:37
I only program right now for my numerical analysis class
@qwerty well, that's unfortunate. we two modules specifically upon how to use Mathematica efficiently to solve theoretical physics problems. Very nice features of the language are presented. For example, if you write a Hamiltonian function that takes in (x,p) and gives you (x+dx,p+dp) for however many particles in phase space you have, then there is already a pre-written function that can take this Hamiltonian function and generate the entire history of trajectories for you.
Why do people use matlab thou
@nickbros123 because for its initial development they hired a LOT of mathematicians to make it run fast. The evidence is extremely clear: the mathematicians had never done any coding prior to that and made a TONNE of beginner programmer mistakes when defining the language itself.
@naturallyInconsistent I think that Mathematica is paid licence is also a main drawback
@qwerty That's why, Raspberry Pi. Cheap and good.
@JohnRennie That's sad. Rust is really nice.
08:43
I keep thinking that i should learn Rust, but the reality is I have no use for it.
I mean...that doesn't mean it's not hard, especially initially when you have to learn that the borrow checker is not your enemy ;)
Most of the PC code I write these days is for Windows and the hard bit is the interaction with the Windows API not the actual code.
@naturallyInconsistent lol. My Numerical analysis professor loves matlab. But I make sure I submit my assignments in every other language except matlab. So far I'm done with Python, C++ and C. Next assignment I'm planning to learn and do it on Julia xD xD
@JohnRennie The Fortran you saw must be F77. From F90 onwards the language is totally different, and is closer to C than to F77. A prof of mine told meow that when someone decided to convert their modern Fortran code into C, the code ran way slower; lack of pointers means that Fortran compiler optimisations are aggressive
In theory Rust does have libraries to use the Win32 API, but you'd spend all your time struggling to do what is dead easy in C(++).
08:45
@nickbros123 I'm also considering picking up Julia.
@naturallyInconsistent it was 1980, so it probably wasn't even F77. It would have been whatever version IBM mainframes ran in the 1970s.
We had a massive Hartree-Fock program we used for calculating molecular wavefunctions, and that was written in Fortran.
@JohnRennie Well, the language wasn't changing very much at the time, IIRC.
@JohnRennie I'd wonder why you'd not do what Mozilla folks used Rust by. I mean, they had to have some GUI too. A way out is: why would you want to touch GUI from Rust? I mean, you could have just implemented the raw computing power stuff in Rust, and then used some other language to deal with the GUI.
But if most of the man hours is involved in interfacing with the GUI, and if you can't do that in Rust, why learn Rust?
I straight up told my colleague that I can program in Matlab, but it is one of those rare programming languages that I specifically refuse to program in. I'd use awk and more, just no to Matlab.
@JohnRennie why would you be writing GUI interfacing code these days? My CS colleagues point out that the smart way these days is to make a tiny website and so you wouldn't have to deal with WinAPI
Yes, write everything in HTML/CSS. It's that classic case of when you've learned how to use a hammer everything looks like a nail.
08:57
Nah, even though HTML+CSS is finally Turing complete, I don't mean to use that craziness. Instead, I mean that you can use it for a rudimentary GUI so that you don't have to deal with Win32 API, which, as you admitted, is so annoying that you would have to spend most of your code dealing with it.
there may be a misunderstanding here - I'm not sure if what John is doing with the WinAPI is GUI stuff
Some GUI, but also more kernely stuff.
The (dis?)advantage of the Win32API is that it has been unchanged since 1993 when NT 3.1 was released. As de facto standards go it is pretty standard!
Good luck getting unix code from 1993 to compile in the current version of Ubuntu.
Why would you be asking students to touch kernel code???
I mean, if you want to complain about how, if all one knows is HTML+CSS, that once one learnt "how to use a hammer everything looks like a nail.", you should not be suspiciously tied to Win32 API when proclaiming about that!
09:17
The point of the hammer metaphor is that you are using the hammer in tasks for which it does not work efficiently. If (and only if) you're writing code for Windows the Win32 API is the most efficient tool available.
If I was writing code that had to run on Linux and OSX as well as Windows then I agree you'd look for something else. But that is almost never the case for me.
I'm not trying to make a sweeping generalisation. I'm saying what works for me.
This all started with me saying I would like to know Rust but keep being put off by the fact I have no application for it.
If MS rewrote Windows in Rust I'd switch to Rust in a flash :-)
I'd have to point out that even on Windows programming, Win32 API is usually not the way to go. The recommended frameworks that people suggest, are WinForms and WPF.
Graphical APIs go through fashions as developers keep looking for some way to make their apps more visually distinctive. These days you very rarely see apps using the stock graphical objects exposed by the Win32 api.
But this is not a matter of efficiency. It's a matter of marketing.
I think one or both of Winforms and WPF are built on DirectX and in fact that bypasses a lot of the Win32 API and hits the kernel directly.
If I seem like I'm criticising Rust then I'm really not. I strongly approve of the core principles of Rust and I would like a world where Windows was written in Rust.
It's just that if I put in a lot of effort to learn Rust I will simply forget it all in a few months because I don't have the occasion to use it.
I'm not trying to deny what you are saying. I'm just trying to point out that if your maintaining and writing of your own code is mostly in the Win32 API parts, then maybe you are doing something wrong? People who just want a tiny, almost-static presentation of their computed outputs or whatnot, make a tiny web interface, and proceed to forget about that for a decade.
I'm also looking at the hello world code examples for Win32 API, WinForms and WPF, and both WinForms and WPF are much shorter than the Win32 API's version.
09:34
@JohnRennie MHz? Luxury! The first machine I used was an IBM 360 model 20. en.wikipedia.org/wiki/IBM_System/360 The clock speed was on kilohertz. You could sit a AM radio on the CPU and hear it processing. :)
@PM2Ring I would have to point out that if you had access to something that exotic, you have no recourse to be saying that we had had luxury.
The huge neural networks used in GPTs need lots of floating point numbers, but not a lot of precision. So the latest GPUs provide 8 bit floating-point arithmetic.
@naturallyInconsistent IBM donated that machine to a museum. The museum gave free access to schoolkids.
So I was programming for several years before I ever had the chance to use a machine with a monitor. All my input/output was with punch cards & a line printer.
09:51
@PM2Ring ooh, which museum?
@qwerty The Powerhouse Museum, when it was the Museum of Applied Arts & Sciences (MAAS). Still in Harris St, Ultimo, but in an old TAFE building closer to Central station.
I thought it might be it!! but i did a quick google and couldnt find mention of it at all
I'm not sure what happened to that old IBM 360. I used it 1973 to 1976.
Not many of those old machines survived. Those machines were leased, not sold. At one stage, IBM had a policy of trashing their old machines so competitors couldn't learn their secrets. :(
:( that's pretty sad. i wonder if these people would know acms.org.au
they have a page on the IBM 360 in aus 50years.acs.org.au/heritage-projects/…
@RyderRude I want to see the mash-up: Twelve Angry Men In Black.
10:23
@PM2Ring it will be about a trial of aliens :)
@PM2Ring cool
Some of the aliens are disguised as humans. And some of the humans are disguised as aliens.
fqq
fqq
11:02
@ACuriousMind and then you need monads to actually do stuff :)
@ACuriousMind static type checking in python gets you some of the way there, but it's too easy to ignore and the type system is not robust enough
Also I guess it kind of defeats the point of using a dynamically typed language. It's a good gateway drug though
@fqq I don't like how they're trying to bolt on a type system to Python. Type hinting was tolerable, but the more recent developments are getting rather messy. IMHO.
When I first came to Python, I quickly fell in love with duck-typing. I found it liberating to not have to worry about types all the time.
I do appreciate the power of types. But if you're doing something big & complex that really needs a strong type system, maybe you should be using a different language.
OTOH, I came to Python after using a whole bunch of languages, some of which had quite robust typing, like Pascal.
I guess it's ok to start coding in Python because it's so easy. But then it's probably a Good Idea to learn a language that teaches you the value of types. And gives you some awareness of what your program is doing with memory. And then come back to Python when you know how to program responsibly. ;)
I still love C, but I've hardly touched it for several years, so I'm a bit rusty...
I found C fairly easy to learn. But it was my 4th or 5th language. And I already understood pointers, from several years of using IBM 360 assembler.
11:22
@fqq I mean, sure, in the pure functional languages you do, but you can have an algebraic type system (e.g. Rust) without being functionally pure and forcing users to do monads necessarily
fqq
fqq
@PM2Ring like what? you can still ignore types completely, no? and it does not really interfere with duck typing, although I agree that it's not as good as e.g. rust traits
also, the scariest part around monads is that every one acts as if they're scary, imo - in terms of bind (or "the Kleisli extension") they are a rather straightforward concept
fqq
fqq
@ACuriousMind yes, rust is a good compromise in this sense and the type system is great
11:38
@PM2Ring You did some HLASM'ing? :P
@fqq I ignore the typing stuff in my own code. But it gets mentioned a lot in chat.stackoverflow.com/rooms/6/python
I only know that I worked on a z/OS machine that apparently had executable modules running on it that weren't recompiled from source since the days they ran on S/360. IBM takes backward compatibility terribly seriously.
@Amit I first used PL/I on the IBM 360. Then after a year or so, I learned some assembler. As an exercise, I translated some of my smaller assembler programs to machine code by hand. ;)
I still remember a few opcodes...
me too probably... :P
"0x47F0" is something important right? :P
@Amit That's an unconditional branch. :)
11:49
yes... oh right usually it was 47FE
'cause R14 contains the return address
A few years later, I did some assembler on 8 bit machines: Z80. And then after a few more years, I did assembler on the Motorola 68000 & 68030, on the Amiga.
So you know how superior the IBM assembler was...
@Amit Ok. 47 is the branch opcode, the F is the four condition bits. IIRC. :)
yes, the condition mask
@Amit It was pretty innovative at the time. And most later assemblers followed in its footsteps, to an extent. But it also had some weird stuff, like packed & unpacked numeric types.
11:54
yes... I think I read somewhere that the packed stuff was tailor made to a specific use.. maybe for COBOL?
68000 assembler was pretty good, compared to the messy stuff happening in the Intel world at that stage. We had a nice flat 32 bit memory space. Intel had all sorts of crazy stuff happening.
@Amit I forget. I haven't thought about this stuff for a few decades.
It's like Intel never designed the machine language with the idea that anyone would need to do a lot of direct programming with it in mind (Idk to what degree that's true, that's just how it seems)
They expected people doing low-level stuff to tolerate that crazy shit to maximize performance with minimal RAM.
@Amit I mean, that's true - it's not optimized to be written by people, it's optimized to be read by the computer
that's why people invented the higher programming languages once systems were powerful enough to host compilers
At that time, a large proportion of serious programming was done in assembler. And a lot of hackers wouldn't take you seriously if you didn't have at least some assembler skills. ;)
I guess we have a parallel situation today. Some peopke have the attitude that if you only know Python or JavaScript, you aren't a real programmer. ;)
12:03
@ACuriousMind Yes, today it goes without saying. But Intel 8086 was launched in 1978, it seems that even then they preferred optimization for performance over for coding. Maybe it's not that surprising indeed, IBM started a few decades before that, so they stuck to a certain arch for various reasons, like backward compatibility.
@Amit My point is that it was not designed for people even back then when it was clear people would have to use it - the purpose of assembly is that it uses your given chip architecture as efficiently as possible, not that it's easy for people to read or write
it's not that they didn't know that people would write it, but you simply couldn't sacrifice performance
it took us decades until compilers were at a point where they now often generate more efficient assembly than most assembler programmers would
Doing IO on the 360 in assembler was a bit daunting. Device drivers hadn't really been invented, and we didn't have the RAM to support them. So your application code had to do its own explicit low-level interrupt stuff with the CPU.
SVC something
how did you all learn so much computer science? just as a hobby?
There's very little science in this specific conversation I think
This is a bit more like talking about how old cars used to be 😅
12:12
you know what I mean! :p
This stuff is usually a result of just working with various techs over a long period of time
No different than a senior mechanic being able to explain to you in painful details how old cars used to be
Learning 360 assembler from the manuals was "fun". It helped to have access to people who already knew that stuff.
I wanted to be a l33t superh4ck0r when I was a little girl just cos my big brother was into it. I wanted him to teach me but he said "no one taught me!" and chucked a massive Linux book at me 😅 then I got into physics instead, because you didn't need a personal computer to mess with equations
Although assembler coding can be very tedious, it can also be very rewarding. Apart from it being faster, and more efficient in RAM usage, it can be very satisfying to know that the CPU is doing exactly what you're telling it to do. You never get quite that same sense of power & control with higher level languages. ;)
I agree, at least up to microcode!! :P
12:23
@qwerty That's a bit mean. Books are pretty usefil, but interacting with a good teacher is pretty important, too.
@Amit I was never quite crazy enough to dabble with microcode. :)
@PM2Ring I'd love to learn it or more about it someday. I've always been curious how computers work at that sort of level
maybe I'll go to that computer museum for inspiration lol
It was easier in the old days. Things are a lot more complex on modern machines.
@PM2Ring Yea me neither, I only mentioned this because when I learned it existed, I started realizing that I don't come close to the hardware as I thought :P there's also a lot of stuff that the hardware is doing to optimize execution that imply things aren't really as we imagine them to be, even when we program in ASM... speculative execution is one notable example.
I learned a bit about logic gates before I learned coding. It can be fun designing logic circuits to do simple computational tasks.
A few years ago, I got into doing stuff like that in Conway's Game of Life, using gliders as bits. It was fun.
@qwerty I learned the basics in school and then I just kept going because it was interesting; I've never read a book on CS or programming, all just tutorials on the web and blogs and stuff
12:33
@qwerty I had learnt about computers by then, but Feynman on computing was a good book. Speaking of which, I should finish it.
@ACuriousMind you have no interest in the books?
But I am always extremely sceptical of simplistic online tutorials as a guide to programming. Sure, one can quickly pick up how to solve simple problems, e.g. code up the Sieve of Eratosthenes or Towers of Hanoi or whatnot. However, people who only know that, are unlikely to be able to reason properly about their programs. Having a structured course teach how to think about various programming paradigms is a thing that is as important as the standard physics canon.
@PM2Ring when all you had was 8 bits, every architecture was simple~
@PM2Ring I think having your own PC with admin rights and all is probably most important. just to be able mess things up on your on terms and really explore. apparently gen z and later is very computer illiterate as they just use apps on phones
@qwerty I've learned like 8 programming languages without reading a book, I just don't see why I would have to :P
12:42
@ACuriousMind see, programming IS different to maths! ;)
@ACuriousMind But usually the result of that would be that you would code roughly in the same way over all of them, when in fact the point of having different languages is to learn totally different ways of approaching any problem.
@qwerty I mean I understand the math parts already, I don't need to read them again :P e.g. I learned Haskell specifically because I had heard it was much closer to how one would express things in mathematics
@naturallyInconsistent Why? If you're following good resources, they will teach you the idiomatic ways of each language
@ACuriousMind True, but how often do you find good resources? Most tutorials only give you the most rudimentary bits of how to get the most basic bits to work.
E.g. all the good Rust tutorials teach you how to reason about your code so you don't have to fight the borrow checker every step; there's no reason a book would be any better or worse at this
@naturallyInconsistent sure, 80% of all resources are bad
but that doesn't change if you bind the resource into a book :P
@qwerty have you?
12:47
@think_meaning_builds not at all. I only know it by reputation
@qwerty Definitely. Although I had a lot of freedom in my early days, I definitely advanced a lot faster when I could sit in front of a monitor, rather than waiting for my deck of punch cards to be processed.
I've always like web developing more interesting than programming. There must be some strip about that
Making me some kind of monster idk
@ACuriousMind hey if you say that, that means 20% of physics and maths podcasts are excellent for understanding LQG and ST 😜
@qwerty oh, maybe I'm being unclear here - I'm not talking about these horrible video tutorials
just good old fashioned text
12:52
@qwerty I do a lot of coding on my phone. But I'm either doing Sage / Python stuff on the SageMathCell server. Or doing JavaScript. It's frustrating not being able to do serious stuff on the phone OS without hooking it up to a PC.
and certainly not the idiot's guides or the for dummies
@ACuriousMind Ive heard haskell requires category thery as a prereq. is that true?
The canonical Rust intro even calls itself "the book", so I guess technically I've read "a programming book" :P
@nickbros123 no. And ACM just said so too.
@nickbros123 no, absolutely not, see my earlier remarks here and here
12:55
hmmm. someones been trying to gatekeep it i guess :)
Doing JavaScript on a phone is a bit annoying, since phone browsers generally don't give you a dev console. But I mostly avoid JS unless I need it, because writing in JS makes me want to punch people... ;)
@naturallyInconsistent the market for those are entirely tech illiterate boomers 10-20years ago
@qwerty OUCHIESSS kitty is no boomer
I don't even remember what I learned Python from, but I do remember that I learned it to write a script to mass process some images for our high school yearbook because the other tool we were using always ran out of memory when trying to downsize the images to produce the final pdf
no one remembers where they learnt python from
i think evolutionarily we have that baked in
12:58
I learned Python from the official tutorial.
@naturallyInconsistent I don't think she was implying that :P
It's python, you can learn it from anywhere
It's not rocket science
or rocket surgery
Vanilla python is made to pump out fast code
@PM2Ring lol. doing anything on the phone makes me wanna punch people. Id say youre a monk for being able to code on the phone
13:01
@Slereah what's spicy python?
I was an ok Python coder when I joined SO, but I definitely improved by writing SO answers, and reading code written by the experts I found there.
@PM2Ring have you seen 12 angry men?
@ACuriousMind indeed I wasn't, @naturallyInconsistent ! :)
@think_meaning_builds Certainly. A couple of times. (The original version). But my memory of it is a little fuzzy. I think I last saw it ~15 years ago.
@Slereah my feeling when I learnt python from griffiths QM..
13:05
@PM2Ring the 1997 version is better in my opinion
@PM2Ring oh, sure, the thing that makes you actually good at writing code is a) talking about it b) having done it long enough to have seen all the possible failure modes of bad code
And there's a never-ending supply of bad code failures on SO. ;)
@PM2Ring a lot of the changes in society are missing in the the 1957 version
@think_meaning_builds i will.check it out
@think_meaning_builds Well, sure. You have to watch it with its historical context in mind. That's easier for someone my age. ;)
13:10
I think i maybe learned python in highschool out of this website automatetheboringstuff.com/#toc xD
I recall thinking that the hardest part of Python was figuring out how to install it and packages :P
7 mins ago, by think_meaning_builds
@PM2Ring a lot of the changes in society are missing in the the 1957 version
@SillyGoose I mean...that is the hardest thing about Python :P
that's why it's so popular
you're all smarter than me, it took me AGES to figure out how to structure it and write modules semi nicely
also hard was what do you call numpy, import numpy, as what?? np? really??
and basically not have flat code
13:25
@think_meaning_builds Ah I see thanks
@ACuriousMind it ztill hurtzzz
@qwerty rubs wound
I'm currently learning SQL for the second time with a lot of help from chatgpt, I await my shunning xD
@qwerty have you read Kuth's Concrete math?
@think_meaning_builds no, should I? :)
Yup, I would suggest it :)
@qwerty if your work does not naturally use a database, don't use SQL? (But if it does, definitely do.)
13:28
@naturallyInconsistent it does
I think practically speking I should learn R above all else
@qwerty I mean...flat code works :P
I regularly find hundreds of lines of procedural, non-modularized code at work
@nickbros123 I've only heard good things. I found out recently you can knit together R and Latex, and compile it sorta together. kinda cool
@qwerty I think u can knit any language and latex, can you not?
@ACuriousMind it's harder to do unit testing though?
13:32
unit tests are a rather modern phenomenon :P
@nickbros123 i hadn't heard of it before! probably you can
I don't think that's what's being meant. It is more usual that Python and R code allows you to have some text labels be LaTeX and then it would typeset those for the graphs for you.
if you understand that you need unit tests and that this implies a certain structure of the code, you're already a better programmer than many authors of the code I have to look at (although, to be fair, since I write code analysis tools I have to look at exceptionally horrible code more often than most other people, I'm not getting an average sample :P)
@naturallyInconsistent right, I was thinking of something else perhaps, like getting codeblock and output from a, for eg, cpp file into a latex document. My friend used to write cpp code for Num. analysis. assignments and latex it neatly. I just hack it using jupiter notebook blocks and render it as pdf :P
@nickbros123 Knuth's own was Tangle and Weave
which has the C (and a little of C++) variant, called CTANGLE and CWEAVE
Together it is called CWEB
13:37
CWEB
Knuth's own was in Pascal
weave is the CLI command to compile a CWEB
I understand these things but applying it consistently and working out how to do so is another story :p my entire week has been asking chatgpt how to do xyz and hitting on answers in a random walk. I haven't worked out how to unit test SQL
maybe the problem is that you're a) asking ChatGPT and b) trying to unit-test SQL :P
haha ok but it was really helpful for ideas and debugging!! and as for not unit testing but then how else do you check it's spitting out things correctly and you've caught everything you want to catch?
13:40
jupyter notebook ^^
decent job on the latex stuff ngl
@qwerty well, if you're really writing raw SQL instead of using a database framework from another language that then generates the actual SQL, I think you're out of luck - you just have to test the query manually and see if it works
It certainly doesn't help that the code I'm writing tends to require a lot of LaTeXified physics equations to make clear, and I don't have the luxury of doing it in Mathematica. And C is too low level and wrong language, R isn't too good for non-stats stuff, and Python isn't for doing bigger projects.
@naturallyInconsistent yeah the thing I saw was Rweave I think
if you're using a framework, it depends on that framework whether there's any kind of automated testing available
Yeah, when I had access to Jupyter, it is quite nice to use.
13:43
e.g. the language I work in has SQL integrated directly into the language and there's a testing framework with which you can fill the database with suitable test entries during the unit tests, but the details of this are bespoke to ABAP and will not be useful for any other language or context in which SQL is used
is this like pandas for python?
oh yay there is weave for julia
and rust may have some equivalents
@qwerty kind of; what are you using to write this SQL I keep hearing about?
I'm currently writing in dBeaver for db2
ah, so indeed raw SQL
I don't have a lot of experience with that but I don't think there's unit tests for that
13:48
RIP :D
yeah I'm sure there's 101 to do things/access the db/grab data, each of them cleverer than the next
this is why I'm less patient with code than physics ;p
i am wondering why i haven't heard of parameter estimation sooner :P
it seems to be kind of underlying a lot of things
@SillyGoose what do you mean?
00:00 - 14:0014:00 - 23:00

« first day (5090 days earlier)      last day (136 days later) »