3
13
4
3
2
4
3
0
7
5
19

cross-posted from: https://programming.dev/post/22672085

Earlier this year I gave this talk which is about how programmers can get the most of the Fediverse, particularly for dotnet/MAUI developers - some of the killer features which are available and how to use them. The focus of the examples are with dotnet/MAUI, but these things would undoubtedly also be available for other languages/ecosystems, I was just using dotnet/MAUI to illustrate the underlying functionality available to us here. This recording would be good for anyone who isn't familiar with these features (maybe anyone you want to convince to come here, or just if you feel you don't know everything that is available).

The first part of the recording is a different talk about MAUI, and the first link below will be where my talk starts, and then some more links for other key points, if you just want to see the parts you don't already know about.

Following these recording links will be links to resources that I talked about...

30:06 start/MAUI Lemmy community

31:31 overview of talk

33:20 what is the Fediverse?

38:15 Lemmy

42:08 Mastodon

43:40 Mastodon dotnet.social

46:33 Mastodon Local timeline

48:01 Mastodon Federated timeline

60:11 Mastodon Lists

56:28 Mastodon hashtags

56:25 Mastodon pinned posts

1:00:20 follow Twitter accounts from Mastodon

1:01:51 how to use Lemmy from Mastodon

1:07:25 Mastodon's killer feature for dev's - github bots

1:10:47 Guide to Mastodon for .NET and MAUI people

1:13:15 Pixelfed, UI comparison

1:15:41 Maho Pacheco's repo (federate static website, etc.)

1:17:52 Microsoft DevBlogs

Links to resources from this talk

Creating MAUI UI's in C#

fediverse.party

.NET MAUI @ programming.dev

.NET MAUI Mastodon bot

.NET Mastodon bot

@SmartmanApps@dotnet.social

Join dotnet.social

Join dotnet.social and auto-follow @SmartmanApps@dotnet.social

How to follow multiple hashtags in a column

@Microsoft@bird.makeup

Github bots by Carlos Sanchez of Microsoft...

Dotnet github bot

MAUI github bot

MastodonGitHubBot repo

Guide to Mastodon for dotNetMAUI and dotNet peeps

Github repo of Maho Paheco of Microsoft

Maho's guide to implement ActivityPub in a static site (or any website)

Follow Maho's blog from Mastodon (or almost any Fediverse service!)

Follow Microsoft DevBlogs (federated thanks to Maho)

2

cross-posted from: https://programming.dev/post/22672085

Earlier this year I gave this talk which is about how programmers can get the most of the Fediverse, particularly for dotnet/MAUI developers - some of the killer features which are available and how to use them. The focus of the examples are with dotnet/MAUI, but these things would undoubtedly also be available for other languages/ecosystems, I was just using dotnet/MAUI to illustrate the underlying functionality available to us here. This recording would be good for anyone who isn't familiar with these features (maybe anyone you want to convince to come here, or just if you feel you don't know everything that is available).

The first part of the recording is a different talk about MAUI, and the first link below will be where my talk starts, and then some more links for other key points, if you just want to see the parts you don't already know about.

Following these recording links will be links to resources that I talked about...

30:06 start/MAUI Lemmy community

31:31 overview of talk

33:20 what is the Fediverse?

38:15 Lemmy

42:08 Mastodon

43:40 Mastodon dotnet.social

46:33 Mastodon Local timeline

48:01 Mastodon Federated timeline

60:11 Mastodon Lists

56:28 Mastodon hashtags

56:25 Mastodon pinned posts

1:00:20 follow Twitter accounts from Mastodon

1:01:51 how to use Lemmy from Mastodon

1:07:25 Mastodon's killer feature for dev's - github bots

1:10:47 Guide to Mastodon for .NET and MAUI people

1:13:15 Pixelfed, UI comparison

1:15:41 Maho Pacheco's repo (federate static website, etc.)

1:17:52 Microsoft DevBlogs

Links to resources from this talk

Creating MAUI UI's in C#

fediverse.party

.NET MAUI @ programming.dev

.NET MAUI Mastodon bot

.NET Mastodon bot

@SmartmanApps@dotnet.social

Join dotnet.social

Join dotnet.social and auto-follow @SmartmanApps@dotnet.social

How to follow multiple hashtags in a column

@Microsoft@bird.makeup

Github bots by Carlos Sanchez of Microsoft...

Dotnet github bot

MAUI github bot

MastodonGitHubBot repo

Guide to Mastodon for dotNetMAUI and dotNet peeps

Github repo of Maho Paheco of Microsoft

Maho's guide to implement ActivityPub in a static site (or any website)

Follow Maho's blog from Mastodon (or almost any Fediverse service!)

Follow Microsoft DevBlogs (federated thanks to Maho)

[-] SmartmanApps@programming.dev 6 points 5 months ago

Python does have OOP but you are not at all forced to use it.

Not as an individual, but I'm talking about a situation precisely where the individual choices of teachers are ignored, in some cases by school admins, in some cases by faculty choices. Fortunately I also ran a computing club, in which I was autonomous with how I ran it, and I taught my computing club students C#/MAUI... but even then still saw some of the issues you run into with teaching students. e.g. I told them to install Visual Studio ready for next week, showed them where it was, what workloads to install, and then the next week one of the students had installed Blend for Visual Studio, not Visual Studio. "Look, it has Visual Studio in the name!". (sigh)

I think weakly typed variables will actually help beginners as it is less to think about to start off with

No, that's exactly the problem to start with. Another rule of teaching (see below for the full list I'm quoting these from) is "never let the first impression be a wrong one". If you let students think they can use variables for anything, then you run into problems when they can't. This is why teaching them with strong types first is better - they learn you need to be careful with how to use them, THEN maybe you can let them have some more freedom like Python allows.

In other languages it is considered good style to use indentation anyway

Yes, but in those languages it's optional. In Python it's mandatory, and if someone's code isn't working it's far easier to spot a missing bracket than a missing space.

[-] SmartmanApps@programming.dev 8 points 5 months ago

Why do you even have to mention OOP?

Because I was saying why it's a bad choice to teach to Year 7. I already said if it was up to me I'd teach them Pascal.

C# is object oriented too

Yes, I know, but in this case it's the lesser of 2 evils, for the other reasons I gave.

Python is comparatively easier as it’s nearly literally pseudo-code

And as I just said to someone else, students even struggle with pseudo code.

e.g no need for semi-colon, brackets

And I already said that's one of the drawbacks - indenting has to be EXACT or your program doesn't work anymore.

As for indentation being exact, IMO that’s on you

It's not on me - it's in the language itself to begin with. I have no control over it.

Beginners should be given a proper development environment to work in that helps them as much as possible. Modern editors and IDEs point out syntax errors and indentation errors are incredibly basic

Now see if you can get the school admin's to install those ones. As I said, that's the root issue to begin with - the school admin's.

If they are working in an environment that doesn’t even point that out to them, they have been setup incorrectly

Now see if you can get the school admin's to fix it. Welcome to the struggle the teachers face in teaching what WE want to teach them.

[-] SmartmanApps@programming.dev 8 points 5 months ago

It looks like pseudo code

P.S. as a teacher, I can tell you I have seen students who even struggle to write pseudo code. It's like trying to teach them Greek (not all students, but some, and we need to cater to the lowest common denominator).

[-] SmartmanApps@programming.dev 9 points 5 months ago

I just replied to someone else with the same question. Less can go wrong (but in either case a non-OOP language, like Pascal, is a much better starting point. You should only ever teach students one concept at a time).

[-] SmartmanApps@programming.dev 18 points 5 months ago
  • object-oriented (this is their FIRST proper programming language - they don't even know how to write loops yet and you want us to teach them OOP at the same time?! And as it turns out, I had one student who literally could NOT work out how to use a loop - kept writing 20 variables for 20 iterations. i.e. her variables never varied!)
  • variables are weakly-typed (use it for anything, whether it's what you first used it for or not, Python doesn't care)
  • indentation has to be exact (i.e. no brackets, just exact indentation). I had one student whose program wasn't working, and it even took ME a while to find what was wrong with it (a missing space).

I think there was more, but that's what I remember off the top of my head. If it was up to me then I would've used Pascal - that's what it's designed for! But at least C# has strongly-typed variables, and doesn't care about your indentation (and unfortunately there was no non-OOP language choice available - I'm not sure how this got in the curriculum when every teacher knows you only teach one concept at a time). As I said, many other teachers felt the same way, but couldn't get it past their school admin's.

[-] SmartmanApps@programming.dev 25 points 5 months ago* (last edited 5 months ago)

I, as a teacher, have had to learn several languages, but that's not the dumb reason bit. The dumb reason bit was WHY I had to teach Python, which once I learnt it (so I cold teach it) I could see right away was NOT a suitable language for teaching to Year 7 (who up to now have only used Scratch). I was teaching the U.K. curriculum, and I found out that teaching C# was also allowed - still not ideal, but better than Python for learners -but pretty much all schools were teaching Python. When I dug into it I found I was far from alone in not wanting to use Python... and I also found out the reason schools were teaching Python. It was because from an ADMINISTRATIVE point of view it was much easier for the schools to have us teaching Python. In other words, the office-workers who didn't have to teach it, only had to admin it, were forcing everyone to teach Python because they wanted the lower overhead that came with installing/maintaining that vs. C#. ARGH! All the teachers who wanted to teach C# were running into exactly the same road-block.

[-] SmartmanApps@programming.dev 11 points 7 months ago

For the people saying Python is beginner friendly, no, it isn't. I had to teach it to high school students (I had no choice in the language). Having to have exact indenting, whilst also not caring at all about how you use your variables, not to mention is OOP, is all a bit much for some students, some of whom don't even fully grasp how to use loops yet. One step at a time.

[-] SmartmanApps@programming.dev 8 points 10 months ago

People also forget that smartphones existed before iPhones and MP3 players existed before iPods.

[-] SmartmanApps@programming.dev 7 points 10 months ago

Look for every time Apple has said "reimagined" and you'll find a feature that Android had 5 years earlier.

[-] SmartmanApps@programming.dev 12 points 10 months ago

I actually was a teacher for a while (Computer Science and Maths), and I still do tutoring. When I started working with Xamarin, with no prior .NET/C#/GUI experience (just shell scripts and programs in DOS and Unix), it became clear as day to me that no-one at Microsoft had the slightest idea how to teach things. That hasn't changed even now. The documentation is horrendous - they don't even follow basic grammar rules like spell out an acronym in full the first time, so first time you hit one and you don't know what it is, now the document is useless (because they haven't linked to any assumed background knowledge either - have you tried Googling COM to find out what it is?). When I told someone there (who I won't name) they said "it's near impossible to cater for all levels". No it isn't - you start with the fundamentals (or link to them) and build your way up to the more advanced.

Microsoft documentation...

Here's my blog on writing a MAUI UI in C# which illustrates how to write a document (though I realised later I missed linking a few things and still need to go back and fix those) - Creating MAUI UI's in C#

It's also an issue with their templates - there's no such thing as a "blank" MAUI app. They stuff a bunch of stuff in there which violates "teach one concept at a time". I was so relieved when I found out how to make my own templates! (shell be gone! XAML be gone!)

Here are the basic rules of teaching...

I would add to that (for documentation) always spell out your acronyms in full the first time, link to any assumed knowledge, have step-by-step instructions, and make sure you cover different uses from basic to advanced (and don't damn well use Foo Bar - use a real world example).

[-] SmartmanApps@programming.dev 6 points 10 months ago

The disagreement was actually all over whether the question was about a switch or a button, and so some people were answering as though it was a switch, and some people were answering as though it was a button - switches and buttons do indeed have opposite approaches usually (a switch usually shows the current state - such as "on" - but a button shows what action will be triggered by pressing it, such as "play").

[-] SmartmanApps@programming.dev 10 points 10 months ago

This whole thread is about buttons

view more: next ›

SmartmanApps

joined 1 year ago