HNHacker News
TopNewBestAskShowJobs

gwillz

173 karma · joined January 15, 2018

submissionscomments
gwillz··on Why We Chose Rails to Build Gitlab
Yeah I've thought the exact same thing before and I've actually tried both.

The clear difference is that migrations are easily reversible. Good migration libraries can also reverse data migrations.

A folder of SQL scripts was very refreshing, but no way could I use that system in a production environment. There's just too many edge cases to keep in your head.

gwillz··on Show HN: Markdown Presenter with React/TypeScript
Hey thanks. MDN says Chrome is still using the prefixed webkitRequestFullscreen so I've added support for this.

But weirder is my Chromium supports the non-prefixed requestFullscreen, when apparently it shouldn't?

shrug.

gwillz··on Inside the C Standard Library
That's interesting because the contrast is around 12:1 - which is well above the AAA accessibility guidelines for small text.

Perhaps the font and weight are contributing factors?

gwillz··on Front End Development Topics to Learn in 2019
This is exactly my gripe with it all. There's always 10 different solutions to the same problem, often in 10 different packages.

Typically, I've seen it come about because often package creators have no interest in maintaining their invention. Their PR list is huge, all the tickets are just questions about "why isn't my PR merged?". So someone else creates an alternate or a fork, but so does everyone else.

I don't think anyone _wants_ a thousand packages, but there's a disconnect or miscommunication that's holding us all back.

gwillz··on Show HN: Markdown Presenter with React/TypeScript
That's a real bummer. I only have the latest FF an Chrome to test with. Past that I can't guess what's wrong.
gwillz··on Show HN: HTML5 Video Player in TypeScript
+1 for conditionally removing the volume bar.

Mobile is (typically) a single mode application situation, as in, there's no need to control volumes of simultaneous applications separately. It would also be easy to argue that almost no-one needs that feature.

gwillz··on Things I Learned from Chris Dixon about Startups (2015)
This echos a lot of hard lessons that I had during my time as a founder. While a lot of this is great advice, I'm frustrated by the advice of "if people reject you and things are hard, then things are going well". Because I believe there's more depth to people's rejection of your idea/product/business and they could have valid reasons.

My real issue is how to weed out the legitimate feedback from the bad. No one has ever told me how to identify the difference. It's typically, "yay" means you've done well and "nay" also means you're doing well. When really, either of those responses could be a false positive - but which?

gwillz··on How to architect a Qt/C++ Application
Hey thanks, I'm really enjoying this series. It's nice to read a clear approach after the many revisions to the C++ standard.

Keen to see more on the QtQuick/QML stuff. I keep reading things about how great it is but never had the time to get into it.

For your "good-to-know topics" perhaps a brief direction for deploying applications? Bonus points for mobile deployment.

gwillz··on The melting pot of JavaScript (2017)
I was reading something on HN recently and I ended up on this wiki article.

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

It got me thinking about it. JSON is annoyingly simple at times, yes. But that also protects it from some pretty gnarly stuff seen in XML and YAML. I suspect it's a considerable contributor as to why it's the choice transport format.

I wouldn't toss it in with XML just yet.

gwillz··on O-bahn Busway
That's a really cool insight to driving habits. I always thought Adelaide had the worst drivers in the country. At least, that's what the statistics say.

Maybe we don't cut off people as much, but we sure can't do a zip merge without someone getting upset.

gwillz··on O-bahn Busway
The Obahn is pretty good. It's capacity is lacking though, because it's so popular. When they were first testing it they pushed the buses up to 120km/h but they shook so horrifically that they lowered the operating speed to something like 80.

A lot of people criticised the tunnel extension into the city. After all, it only saved ~5 minutes of travel time. I don't think most people in Adelaide fully appreciate public transport yet.

Adelaide is often called the 20 minute city because you can just drive anywhere in under that. But that's changing as our population grows. I really hope there are more projects like this that get funded.

Adelaide used to have _the most extensive tram network in Australia_. It was pulled up around the same time as Sydney pulled theirs but Melbourne didn't (because they're the original hipster). Sydney had the money to reinstall theirs but not Adelaide. There's a lot of politics around fixing our trams - we almost dropped 40 million on a building a right hand turn.

https://mobile.abc.net.au/news/2017-12-01/why-was-adelaides-...

gwillz··on Chrome 72 Beta: Public class fields, user activation and more
Vast majority != you. Unless you're obscenely overweight or some sort of hive mind, I can't imagine OP was suggesting that you're not a serious developer.

I also think you right. Compilers don't always go well with programming inductees. This is why Python and Ruby are so popular as introductory courses. But this is why I think Javascript has done so well because it doesn't _need_ compiling, which is great for new-comers. When things level up and get complicated, enter JS compilers. It's a 'best of both worlds' sort of thing.

gwillz··on Reasons Python Sucks
Idk, maybe because your arguments are bit shallow?

I like 'self'. There's a lot to complain about magical 'this' of every other language - especially in Javascript. Specifying self makes it really clear if it's a member method or a standalone function.

Python really likes the idea of 'seek forgiveness, not permission', aka. abusing try/except. But it's kind of nice:

  # seek permission
  if 'key' in map:
      fn(map['key'])
  else:
      whatever()

  # seek forgiveness
  try:
      fn(map['key'])
  except KeyError:
      whatever()
Just pray that 'fn()' doesn't also throw a KeyError.
gwillz··on Controversial Australian encryption laws could pass parliament soon
It honestly sounds like satire.

He's not entirely dumb and I've always got the impression that he's not a fan of his own party.

I suspect he knows exactly what he was saying and how stupid it was. But behind him everyone was aggressively nodding their heads.

gwillz··on HTTP Problem Statement (1995)
> rather than believing that HTTP-NG is the universal transport for all applications

Joke's on you, we did that anyway.

gwillz··on Accelerated “Ray Tracing in One Weekend” in CUDA
Short version: simulated photons in reverse.

Imagine light rays coming out of your eyes. For every ray that hits an object, draw rays to every light source from that hit point.

Light in reverse.

In-between those two steps you can figure out intensity and colour of light, the colour of objects, roughness, transparency, refraction, reflectivity, etc etc. You can even bounce multiple rays to other objects for global illumination and whatever.

gwillz··on MS Paint IDE
> Superiority

> It's not Eclipse.

Shots fired.

gwillz··on Australia's anti-encryption law will merely relocate the backdoors: Expert
Touché.
gwillz··on Optical fibre made in orbit should be better than the terrestrial sort
Careful there, spoilers.
gwillz··on Australia's anti-encryption law will merely relocate the backdoors: Expert
It's nick-picking - 25 million citizens. As of last month or whatever.

Also +1 for a good template.

gwillz··on Five Eyes' Statement of Principles on Access to Evidence and Encryption
+1 for 'sycophant' - thanks old mate Turnbull for the English lessons.

On topic though, I'm too disappointed in Australia not being able to properly about privacy properly. It's come up a few times and the discussions almost made a difference - the ISP data retention policy, the medical database, something-something about the big banks. There are occasionally little stories that largely go unnoticed about the government quietly asking around for back doors and whatnot.

But every time we roll over and show our belly.

Why is it so hard to convince people this is an important issue?

gwillz··on Redux vs. The React Context API
Yes, and I'm really excited to see it. Not to say I don't already use react-redux, it's simply a good academic process to write your own.

It's good to know that everyone is together with bringing on async rendering. Thanks for your efforts!

gwillz··on Redux vs. The React Context API
It's quite trivial to hack your own react-redux using the new context api. It makes a lot of sense too - you get type safety, redux state management, and the redux dev tools. Although I do worry that old-mate react-redux hasn't transitioned yet for a good reason.

Anyway, as soon as I realised that the two are complimentary, I was always kind of upset at articles like this that misled me for so long.

gwillz··on Ask HN: Are you doing async programming with Python?
Yes - and it was great fun!

There was a post on HN that was asking about real-world examples of asyncio code that wasn't `asncio.sleep()`. I think my project is pretty good example for that - and a strange example too because it involved a lot of hardware interfaces.

I've been meaning to open-source the project ever since we axed it. I was the only real programmer on the job, so I'm itching for feedback on it. So if anyone's interested I'll post it here.

I had actually written it 3 times over. First as raw socket server, then in twisted, then on top of asyncio.

So yes, asyncio is a bit of a mess. It's documentation is a bit odd and I have several gripes. What helped we was realising that there was an 'async way' and an 'callback way' to everything in asyncio. So not mixing the two together and ignoring the callback parts really _really_ helped.

I don't know if this is true, but I recall reading somewhere that asyncio was not designed with coroutines initially and this explains the dual-personality of the library. I can't find any evidence that asyncio existed before 3.3, so I can't back that up.

gwillz··on Best Practices with CSS Grid Layout
I don't believe python 2.7 could ever do async. Async was only possible in 3.3 when `yield from` landed and then was bastardized into coroutines through decorators.

3.5 released true asnyc/await based on the `yield from` form and then 3.6 allowed for async generators.

You were close and your point remains. Although I don't think new tags are the right choice. I think HTML learnt a while ago that more tags doesn't solve everything.

I do really enjoy python async. It's cool to see a feature develop from a hack like that but a language first approach could have avoided some headaches. This is where Grid wins, it's a fresh take without requiring to maintain backwards compatibility with previous attempts.

gwillz··on Ask HN: Learning multiple languages vs. mastering one
Everyone has an opinion about which language is better or worse. It didn't actually matter, they all suck in some way or another.

https://wiki.theory.org/index.php/YourLanguageSucks

You'll find something you like over the others. But it's all just syntax at the end of the day.

The real mastery is programming paradigms. Some languages lend themselves to particular methods and some just can't, or can't do some easily, but just knowing that is important too.

I believe there was a HN about this a while ago but I can't find it.

gwillz··on Are There Any Tetris Games for Mac?
http://www.victornils.net/tetris/

Literally the first thing I install on a fresh box.

gwillz··on Bike-share schemes improve safety; helmet laws do not
I like that distinction between accident and injury. It can be hard to seperate effects of helmets from helmet laws but that certainly helps. Thanks!
gwillz··on Bike-share schemes improve safety; helmet laws do not
Could it be argued that enforcing helmets, and its effect of decreasing riding numbers, has helped reduce accident numbers? Because perhaps people who refuse to wear helmets shouldn't be on the road. If you were to still include the numbers of those people leaving bike riding, would numbers be in favour of helmets?

It's hard for me to face stats like these. I can't imagine a world without helmets, much like cars without seatbelts.

Why are people trying so hard to kill mandatory helmets, can they honestly do that much damage?

gwillz··on Most Important Penetration Testing Commands Cheat Sheet for Linux Machine
Confused as to why this is titled for pen-testing. Where's /var/log/btmp and nmap?
← PreviousPage 3 of 3