Massassi Forums Logo

This is the static archive of the Massassi Forums. The forums are closed indefinitely. Thanks for all the memories!

You can also download Super Old Archived Message Boards from when Massassi first started.

"View" counts are as of the day the forums were archived, and will no longer increase.

ForumsDiscussion Forum → Wookie06's Computing and Electronic Thread
123
Wookie06's Computing and Electronic Thread
2015-08-29, 10:33 AM #81
Programming is the dumbest, most finicky final step in the authorship of software. It's the base transcription of ideas using practices so terrible that entire industries exist around writing programs that scan code for common mistakes (so much for creativity).

Alan Kay has spent his entire career trying to reinvent or even abolish computer programming, because right now programming as a 'discipline' frankly isn't one.

Hand wringing about writing the best code or the prettiest code is the literal opposite of what Hardy was talking about. This is in fact the sort of useless navel gazing that he despaired being condemned to. Do you really think the guy who some day proves P=?NP is undecidable will really care that his paper is a thousand page blob of sixteen different branches of mathematics instead of God's one page proof? Dry his tears on his fields medal, I bet.
2015-08-29, 10:50 AM #82
Whether or not we are in complete agreement or diametric opposition to each other rests solely on how narrowly or broadly one interprets the scope of the word 'programming'.
2015-08-29, 11:01 AM #83
Which brings me back to my original point, which was never rebutted. Pretty much all your arguments depend on defining the activity of 'programming' in a much narrower sense than what should have obviously been implied by what I wrote here:

Originally posted by Reverend Jones:
As far as your claim that the language doesn't matter (so long as your son gets some exposure), I guess it just depends whether or not you care to impart the idea of programming as abstraction and as a way of organizing analytical ideas, rather than simply rearranging pieces in a mechanical fashion in order to achieve a desired effect. You don't need an education for the second one, and it certainly is far better than nothing--but there's so much more to programming than tinkering and debugging. (See my post ITT about SICP.)
2015-08-29, 11:06 AM #84
And yes, using Alan Kay's ideal utopia in which what you consider to be 'programming' is all but abolished is still programming to me. In fact, this was pretty much my entire point: that there is more to the general activity of 'programming' than tinkering and debugging.
2015-08-29, 11:50 AM #85
There's more to software development than the human-assisted translation of requirements into executable code, yes. Programming being that particular subset of software development.

I'd say software development is about 10% marketing, 20% programming, and 70% elaborate tooling to defend against well meaning juniors who like to "refactor" code into broken garbage.
2015-08-29, 12:00 PM #86
Personally, I thought Jon`C was the perfect choice to voice Mr. Potato head in Toy Story.
>>untie shoes
2015-08-29, 12:07 PM #87
This is how Wookie started this thread (my emphasis):

Quote:
So I've had a variety of topics that I'd wanted to discuss with those of us still remaining here so I'm just going to use this thread for that purpose.

The first thing I'd like to bring up is retro-computing and kids. Growing up in the 80s I have a huge nostalgic connection with old computers and from time to time I find myself following various topics down the internet rabbit hole. What I would like is your opinion on is there any value to these old computers as a means to introducing my son (9 years old) to programming and basic principles and if not what would be the best way to do so?

When I was a kid I was getting very proficient with BASIC but never moved past that just due to other interests and circumstances. I want to encourage my son to be more than just a user and delve into actually creating things on a computer. How would you suggest I facilitate that keeping in mind that I don't really have the ability to teach that myself anymore?


Doesn't really sound like software development to me. Sounds like dicking around and exploration.

Also, I re-iterate Carmack's point:
Quote:
My wife managed programmers for years, and she has opinions about pragmatic developers, which usually involve Java or C++. I tend to think that worrying about our 10 year old's future career prospects is a bit premature, and want to focus on developing abstract programming skills. :-)


Are you still against having kids learning about computing by playing with Racket?
2015-08-29, 12:32 PM #88
I stand by one of my first posts in this thread:

Procedural reasoning is the most important skill in software development (since that's how computers really work, even if your language hides it). Most people get enough exposure to functional reasoning from precalculus, but they get zero exposure to procedural reasoning. So yes, I'm opposed to teaching Lisp or Racket or even Prolog. You should teach a procedural language.
2015-08-29, 12:35 PM #89
BASIC is a better introductory language than Lisp.
2015-08-29, 1:05 PM #90
Well, that is actually a really good point. It's actually the most contentious point Carmack brings up when he posted about his son's game to the Racket Google Group:
Quote:
The idea that you functionally compose images like this:

(place-image image-1 x y
(place-image image-2 x y
(place-image image-3 x y)))

Which draws image1 on top of image2 on top of image 3, which is backwards from the "painters order" that would draw image 3, then image 2, then image 1.

This imperative, side-effect-ing code is a little less clear to a beginner with the OOP and DC concepts, but It better represents what actually happens, and it is much easier to modify the code without worrying about the nesting.

(send dc draw-bitmap imag3 x y)
(send dc draw-bitmap imag2 x y)
(send dc draw-bitmap imag1 x y)


On the other hand, he had positive things to say about using the REPL to draw pictures:
Quote:
He reacted very positively to the initial "intro to racket with pictures", which was a contributing factor to settling on Racket. Java / C# work seemed to feel more like homework, but changing numbers and colors in the REPL had him smiling and excited.


So perhaps your point is rather salient, and Racket is good to the extent that it is interactive and straightforward like Basic or Smalltalk, and bad to the extent that it allows and probably encourages functional abstraction like most Lisps do.
2015-08-29, 1:05 PM #91
Avery1 nos dat C is teh best.
? :)
2015-08-29, 1:21 PM #92
I'd be interested to hear more from Felleisen, since he's been working on Racket for the last 20 years, expressly for the purposes of pedagogy. John Carmack tried it out on his son, and had a great experience, but ran into the question of whether imperative or functional reasoning is most suitable for beginning programmers right away.

Racket can certainly be programmed in an imperative way (as in Carmack's second code snippet), and is listed as a multi-paradigm language on Wikipedia. But, if it's true (as you seem to allude) that trying to teach fancy abstractions (functional or otherwise) beyond those of Basic or or Algol can do more harm than good--so that the learner fails to learn to adequately reason about the underlying abstraction used by all hardware--then the decision to build a pedagogical programming environment on top of Lisp could certainly be called into question.

That said, Racket has a sophisticated system for dropping the user into specialized language environments (which seem to emphasize interactivity through a REPL and the ability to output graphics directly), which may or may not encourage a functional style of programming. I'd venture to guess that this aspect is more fundamental to Racket than the ability to write sophisticated macros in Lisp style. In a way, though, I believe the two styles are supposed to work in tandem: advanced users use macros, perhaps to design specialized languages within Racket, whereas beginners are simply consumers of these sandboxes.
2015-08-29, 1:22 PM #93
Originally posted by Mentat:
Avery1 nos dat C is teh best.


It's flaws have been a boon to hackers for decades.

On the one hand, the language represents a powerful set of features that map well to the underlying hardware. On the other hand, the language was originally conceived on the PDP-11, and its design reflects this.
2015-08-29, 2:06 PM #94
I found that C was quite useful for learning the basic fundamentals of programming in a relatively small amount of time. I'm certainly not saying that it's the best language (there's likely no such thing), but it was general enough to be useful for a wide range of tasks & small enough to not be overwhelming. In college, VB killed any interest I had in programming, & that wasn't renewed until I ran in to C/C++ & Java. I really don't think that learning something like C would be overwhelming for a kid, so long as you don't lock them in their room with K&R (maybe Absolute Beginner's Guide To C).
? :)
2015-08-29, 2:15 PM #95
Yeah, I have similar feelings. There's definitely something about the C language (and K&R) which hits some kind of optimum. It was a joy to learn, since the language is compact but powerful, and definitely manageable for a teenager (if not a 10 year old).

As a teenager, I thought C++ was gross compared to straight C. I had absolutely no interest in learning Java.
2015-08-29, 2:17 PM #96
You can also say the same thing about Scheme, though. Both languages were documented by Guy Steele, and both are minimal.
2015-08-30, 3:23 PM #97
Originally posted by Reverend Jones:
I'm not sure that Carmack ever hinted that he'd like for his son to become a professional programmer.


Yeah, I totally misread that.

As for my delving into programming, I haven't done anything more yet. I will again now that I have some great resources thanks to the direction I received here. I have even begun thinking about a mobile app as a tangible goal to work towards. I also have moved a small desk and little used laptop into the guest bedroom to give me a nice little dual monitor setup that's great for learning to code. It also is a bit less solitary than going to the basement desktop.

I'm also trying to get back into some old, unfinished games. Started Starcraft again. I was deep into the expansion years ago before getting stuck. Mechcommander too. Never got into that one but I really like it now. I've got tons of old uncompleted games. PC and console.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2015-09-06, 9:52 AM #98
It's funny that my limited recent experience with programming has already benefited me. I'm fairly nerdy about my budget spreadsheet and while I had it down to a decent presentation, there were some flaws that kept it from being really good. My exposure to the logic functions in Python made me think about ways to improve my spreadsheet and I further improved it. I have eliminated unnecessary redundant entries and added logical functions that improve the functionality as a budget and register. These improvements will make it much easier to use on my phone which has become my normal way of updating it now. Unfortunately, nobody gets as excited as I do about my beloved spreadsheet but I'm proud of it, dammit!
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2016-02-07, 10:57 AM #99
So, my aged desktop is really showing it's age lately. I bought this thing around '07. It's a refurbished HP that I bought from Tiger Direct that originally had XP Media Center Edition installed. One of the motivations of the purchase was to use the Media Center features with an Xbox 360 and along those lines I later installed Windows 7 for the improved Media Center.

Since Microsoft has virtually abandoned Media Center if I still want the feature, which I do since the PC is really my only option for over the air reception (generally only important once a year on a Sunday in February), I need to keep this PC running. My plan is to relegate this thing to the garage at some point where it will just be used for occasional online access and extended live TV to the living room 360 (and perhaps occasional legacy gaming).

I finally got this up and running but put playing it on hold until after I resolve some of these issues:


I have been having some problems with this thing and was forced to do several improper shut downs and make various other utility attempts before I was able to get a clean Safe Mode start up and shut down to settle this thing down a bit. I would like to reinstall Windows 7 but I think it would be a good idea to replace the aging hdds in this thing first.

I need SATA II 3.0 gbps drives. I see "white label" 2TB drives on Amazon for about $50. Does anyone have any advice on a specific drive I should look at? Two 2TB drives would virtually eliminate any real need for me to continue using the several external hdds that seem to be causing some problems on the USB ports.

I am also thinking about installing a new USB card. All of my USB ports on the machine are on the motherboard. Typically one each for mouse, keyboard, and printer and a hub with several drives connected. The drives seem to be causing problems as my keyboard cuts in and out frequently until I disconnect the hub. Perhaps the hub is the problem, I don't really know but I may just add a 3.0 capable card anyway. Thoughts?

Lastly, some thoughts on networking. I've been planning for awhile to upgrade the home network. I have a central location in the home where my plan was to mount a wireless router and then run hard lines to rooms where I would like physical connections. In the past, at another house, I then used a small four or five port switch in the living room where there are several devices. I liked that as I only need one line ran. Are there drawbacks to this method? I ask because I can see actually using three switches now, one in the living room, one in the basement, and one in the garage. Potentially more in the future.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2016-02-11, 11:44 AM #100
Originally posted by Jon`C:
Programming is the dumbest, most finicky final step in the authorship of software. It's the base transcription of ideas using practices so terrible that entire industries exist around writing programs that scan code for common mistakes (so much for creativity).

Alan Kay has spent his entire career trying to reinvent or even abolish computer programming, because right now programming as a 'discipline' frankly isn't one.

Hand wringing about writing the best code or the prettiest code is the literal opposite of what Hardy was talking about. This is in fact the sort of useless navel gazing that he despaired being condemned to. Do you really think the guy who some day proves P=?NP is undecidable will really care that his paper is a thousand page blob of sixteen different branches of mathematics instead of God's one page proof? Dry his tears on his fields medal, I bet.



I think there are people who get way too wound tight about conventions and apply their own particular use case or experience as an absurd absolute. Linus Torvalds does that a lot.

Practice is relevant to the application. Are you writing a quick script that you will never use again? Don't sweat readability. Are you working with other people on a codebase that will have to be maintained? Use a consistent style guide. Consistency is far more important than any individual preference.

The worst thing about coding is the tools. They are awful, especially if you do anything open source. Everything is developed with the attitude, of "The documentation is already being an active developer with our particular configuration."
2017-02-02, 8:16 PM #101
So I'm just reviving this because I don't want to make a new thread every time I have something to say generally related to the topic.

Here's a silly thing. For over twenty years I've obsessed over a stupid enhanced audio CD, the soundtrack for Shadows of the Empire. The CD contains a simple multimedia presentation about the project. My PC at the time could not read the enhanced files even though it was totally up to snuff back then. A powerful Pentium 133 MHz. Anyway, over the years I only ever had one computer that could access the files and I managed to copy them off and run them separate from the CD. Later on they ended up on a portable hard drive that I dropped so I figured I lost them again. Every computer I have now can't read the files on the disc. Well, with all the various upgrades and copying files on different drives I found a copy again a few months back. I even still have the same old PC from the 90s but without going to the trouble of plugging it in to the network and seeing if my computers with 10 can talk to it I had no way to run it. Windows 10 doesn't want anything to do with it. But a couple nights ago I came up with a weird idea.

Windows 3.11 runs in DOS and I had already downloaded some image files sometime back so what if I could run that in DOSBox and then try to open the files there? Well, the 3.11 I downloaded was a bunch of zipped up virtual floppy disks and I don't have the software to access those. Archive.org has it but it freezes a few seconds into running it. Googling turned up a download at some oldgames site. Scanned it for viruses, copied it to my DOSBox folder, ran the preconfigured windows.bat file and started using Windows 3.11. Dropped my Shadows folder into the DOSBox folder and ran it from 3.11 and what do you know? A completely underwhelming multimedia presentation for the Shadows of the Empire franchise ran flawlessly.

I tried a few old CD roms. One needed a newer version of Windows (damn you Yoda Stories!). A couple of others needed more memory but another ran near flawlessly. The finicky and equally underwhelming Star Trek The Next Generation Interactive Technical Manual. It even installed Quicktime 2.0.

This is the kind of silly stuff I allow myself to get sucked into when I have far more important things to do.
"I would rather claim to be an uneducated man than be mal-educated and claim to be otherwise." - Wookie 03:16

2017-02-02, 11:06 PM #102
There was a symposium held in honor of Nicklaus Wirth's 80 birthday in 2014, and one of the speakers was Vint Cerf.

Cerf's entire talk was dedicated to the question of just exactly how many of today's digital data will be completely unreadable in the distant future, and what we might do to alleviate this problem:

Quote:
Preservation of digital information is a challenge. Complex digital objects are created using a wide range of applications. These run on various operating systems and rely on a variety of infrastructure elements for their operation. To correctly render these complex objects for hundreds to thousands of years into the future, one may need to preserve the source code, executable code, operating systems and even simulators of various hardware components. This paper is a speculative exploration of ideas to accomplish the objective, using simple concepts that may be sufficient to guide a robust and long-lived digital library design.


slides: http://wirth-symposium.ethz.ch/slides/cerf.pdf
video / audio: http://www.multimedia.ethz.ch/conferences/2014/wirth/?doi=10.3930/ETHZ/AV-8019592e-392f-4855-92f0-8661624d2049&autostart=false
123

↑ Up to the top!