Hacker News new | past | comments | ask | show | jobs | submit | more electronstudio's comments login

I have been teaching kids games programming with Python. I have compiled some of the material I created into a book here: https://github.com/electronstudio/pygame-zero-book

The only way I have found to maintain interest is to do fewer toy examples and more full-size games, but that also inevitably leads to the kids not understanding so much of what they are doing. I think ultimately you have to accept that some kids will be interested in coding and some will not, no matter how 'fun' you make it.


Location: London, UK

Remote: Yes

Willing to relocate: No

Technologies: Java, Kotlin, Python, Swift, OpenGL.

Résumé/CV: https://electronstudio.co.uk/public/cv2019-redacted.pdf

Email: hn@electronstudio.co.uk

I have made: PC games, desktop applications, Android games/apps, iOS games/apps, back-end servers, network protocols. I also teach and do sys admin.

I'm open to work on any sort of project. I place highest priority on finding an interesting project with reliable team mates rather than any particular technology.


You have a short memory. Netscape Navigator 3 had a >75% market share. Mozilla, which became Firefox, was a total rewrite, but that rewrite was done by the same people and was released as Netscape 6 - 9.


A majority of early adopters (of computers and internet connections in general) running some early version of this doesn't seem very relevant. I really don't think this ancient history (browser history does not go back much further than this) is working against Firefox today.


Since Red Hat make Red Hat and Red Hat also make CentOS, could Red Hat not simply ask Red Hat not to put in those references in the first place? Or when they do put them in to always include a flag to easily remove them?


Why ever would they do that?

The purpose of RHEL is not to build CentOS. It's to sell RHEL. Red Hat helps with CentOS because CentOS drives business to RHEL. That doesn't mean that Red Hat benefits by diluting their branding. Red Hat didn't become the biggest name in enterprise Linux by not putting their name on the product they're selling.


6th formers are aged 16-18. I think 6th graders are much younger?


Correct. 6th form (lower sixth and upper sixth) is the two academic years prior to going to uni in the UK. 16-18 year olds.


It's an England and Wales thing, not a UK thing.


> I think 6th graders are much younger?

About 11-12 years old.


Yes, usually 11-12.


Is it still an Electron app? The only reason for using Electron is surely because you don't have the manpower to develop a proper native app. But then how have you got the manpower for a rewrite?!


Yes. The biggest change here is moving away from direct DOM API usage to React and not having multiple instances of a browser window inside of electron.

Considering this took _two years_ it's kinda incredible they couldn't rewrite it natively in that amount of time or less. I'm guessing the only reason this took two years is due to the incremental approach they initially took.


The post shows a wireframe that says it is still an Electron app, which blows my mind because the last language anyone should use to build a native app is JavaScript.


If they had done just that and only that - taken IPv4 and added more bits - we might all be using IPv6 now. Instead they used the opportunity to cram every feature but the kitchen sink in there, so none of the hardware vendors were interested in implementing it and the backbones were slow to adopt it. So we got mass adoption of NAT instead of mass adoption of IPv6.


They removed, not added features. The hardware problems had more to do with other things.


Yeah it’s the feature changes that made it problematic.

They removed NAT, which made laymen deployment difficult. I can’t just plug an IPv6 router behind another router (or 3-4 levels of routers) and expect it to just work. In IPv4, DHCP+NAT handles that just fine. In IPv6 I need to worry about address assignment. I don’t care about P2P connectivity issues- the NAT trade-off of using STUN/TURN techniques works for me.

They replaced ARP, and replaced DHCP with SLAAC then realised that people like DHCP so added a version of DHCP back. Except it’s still not the same so has it’s own quirks.

Then there’s the difficulty of supporting multiple IPv6 WANs in one router in a useful fashion. SLAAC takes too long for a PC to detect a dead WAN and use the other WAN range. And there’s no ability to do policy based routing (eg prefer YouTube via dsl, prefer VoIP via fibre) without using NAT+ULA.

Don’t get me wrong, there’s a lot of great things about not using NAT, but there’s a lot of real world scenarios where using NAT is the preferred trade-off.

IPv6 originally decided they didn’t want NAT, and tried to force people into their one way of doing things. They just needed to support both, and then IPv6 deployments wouldn’t be so complicated. They added NAT and DHCPv6 far too late in the game. Even Android doesn’t support DHCPv6 yet and it’s 2019!


I don't see how NAT could be removed. It was never added to IPv4, but we use it anyway. The addressing standard gets no say in this.


You are correct there’s nothing in the core IPv6 spec itself about NAT. However the goal of IPv6 - to make all devices globally reachable - resulted in pretty much everyone not implementing NAT support until way too late in the game. And resulted in related specs required to implement NAT not appearing for years/decade after IPv6 was created.

Linux/Iptables support wasn’t until Linux 3.7 & iptables 1.4.18 [1]. So that’s only from 2013, when IPv4 NAT has been possible for well over a decade before that.

Also to do NAT66 you really need a ULA address space, that wasn’t defined until 2005 [2]. RFC1918 addresses for IPv4 were set in 1996.

The tooling, support code, supporting RFCs, and UIs for doing IPv6 NAT has been neglected. It’s a halfway house.

1. http://tldp.org/HOWTO/Linux+IPv6-HOWTO/ch18s04.html 2. https://tools.ietf.org/html/rfc4193


> They removed NAT, which made laymen deployment difficult. I can’t just plug an IPv6 router behind another router (or 3-4 levels of routers) and expect it to just work.

Is this common, plugging consumer routers with NAT several layers deep? I haven’t seen that in the wild. The only time I myself tried it didn’t work for some unknown reason.

My only real gripe with IPv6 is the fact that Duplicate Address Detection seems broken on many Wi-Fi networks (clients for some reason see their own traffic as traffic from another node and trigger DAD, which shuts down IPv6 access). I’ve seen this on routers from multiple vendors and I believe it’s some bug in their broadcast/multicast implementations.


Re consumers, I can’t comment on how common they are, but people will have the ISP router, and then their router. They should ideally bridge but that doesn’t always happen, either due to just not knowing you should do that, or the ISP router/modem is a piece of junk that doesn’t support bridging or has quirks.

In the commercial/business space it’s more common to see 3 deep. I see it every day. Petroleum in particular often has ISP Router -> Site Firewall/Router -> ServiceProvider Router, because the fuel tank monitoring equipment is behind its own router so the vendor can get remote access/send data back over VPNs they manage.

In retail environments, especially malls and concession stands within department stores, it’s common to be plugged into their network, which you’ll want your own firewall protecting your PCs etc. I’ve also seen businesses at the same office building pool resources and share the one internet connection, with each having their own firewall/router behind the primary site firewall/router.

There’s also hotspots, where the business both puts that infrastructure on a separate network from their back office, and the hotspots themselves are doing NAT too.

Also some payment processors these days are pushing for organisations to install their own router behind the customers network and route all payments via that (Rather than customer managed IPsec VPNs or straight TLS over the Internet).

Yeah it’s definitely common.


Mobile carrier NAT, mobile device hotspot NAT, vmware NAT - that's the most I've seen so far.

But IPv6 in home networks replaces the unreachability-because-of-NAT by unreachability-because-of-filtering. The usual home router protects your clients, and if it's not your box, you're out of luck.


I was really looking forward to getting IPv6 on my home network. It turns out my ISP are using DHCP-PD, which means the prefix I get assigned is dynamic, so essentially useless for hosting. I can't believe with such a large address space ISPs are still deciding use dynamic allocation.


I recently taught a class[0] on Python programming for children where we used the Mu[1] editor. Mu bundles Python with the editor in a single download so it is very easy for beginners to get started.

[0] https://github.com/electronstudio/pygame-zero-book/

[1] https://codewith.mu/


I was involved with the development of Mu (testing and feature suggestions only, not any real development).

I think it's probably one of the best IDEs I've seen, aimed at beginners and children.

The basic Windows install comes with a load of useful external libraries as well, so beginners don't have to tackle the pip minefield.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: