HN user

ganonm

816 karma
Posts35
Comments129
View on HN
www.ianvisits.co.uk 6mo ago

London cracked mobile phone coverage on the Underground

ganonm
5pts0
disneyparks.disney.go.com 4y ago

Disney announce business plan to develop residential communities

ganonm
14pts10
github.com 4y ago

Guava Idea Graveyard

ganonm
2pts0
massivelyop.com 5y ago

The Game Archaeologist: Neocron

ganonm
2pts1
developer.oculus.com 5y ago

Oculus Quest draw call cost analysis

ganonm
2pts0
sites.psu.edu 5y ago

BLC1: A candidate signal around Proxima

ganonm
17pts7
brilliant.org 6y ago

Burnside's Lemma

ganonm
1pts0
medium.com 6y ago

Programming a Binary Search Using Sentinel Values

ganonm
1pts0
unity3d.com 7y ago

Tricks for writing allocation free code in Unity3D

ganonm
2pts0
en.wikipedia.org 7y ago

E number

ganonm
3pts0
inspirobot.me 7y ago

Listen to totally meaningless quotes read over zen music

ganonm
1pts0
www.theguardian.com 7y ago

Poker player bets $100k he can last 30 days in pitch black solitary confinement

ganonm
111pts44
en.wikipedia.org 7y ago

Center Pivot Irrigation

ganonm
2pts0
ai-build.com 7y ago

3D printed designer furniture

ganonm
1pts0
docs.oracle.com 7y ago

Java Random Access Marker Interface (declares no methods)

ganonm
1pts0
en.wikipedia.org 7y ago

Star Wars Despecialized Edition

ganonm
4pts0
en.wikipedia.org 7y ago

Harmonic drive used by 6-axis industrial robots

ganonm
2pts0
en.wikipedia.org 7y ago

Ultrasonic Cleaning

ganonm
1pts0
en.wikipedia.org 7y ago

Harmonic drive

ganonm
1pts0
medium.com 8y ago

Diagnosing and resolving a mysterious JVM safepoint issue

ganonm
2pts0
typealias.com 8y ago

Kotlin generic type covariance and contravariance explained

ganonm
2pts0
www.bbc.com 8y ago

Bajau people evolved bigger spleens for free-diving

ganonm
3pts0
www.slideshare.net 8y ago

OS caused Large JVM pauses: Deep dive and solutions

ganonm
1pts0
io9.gizmodo.com 8y ago

Amazon wants to make $1B TV adaptation of Three Body Problem

ganonm
12pts0
lukehalliwell.wordpress.com 8y ago

Horrible doors on British trains (2010)

ganonm
34pts62
medium.com 8y ago

I Got Scammed by a Silicon Valley Startup (2016)

ganonm
1pts0
github.com 8y ago

Show HN: Ergodox EZ layout optimised for Vim users

ganonm
1pts0
www.theguardian.com 8y ago

San Francisco passes regulations to cut down on delivery robots

ganonm
4pts0
www.theguardian.com 8y ago

Scientists attempt to cure Hunter syndrome by permanently altering DNA

ganonm
4pts0
cssguidelin.es 8y ago

CSS guidelines

ganonm
2pts0

I've been using the XReal One Pros for coding work for a few months now, and have had a great experience.

For me, the ergonomic benefits are the selling point, not the display quality. Not having to sit hunched over a laptop screen for several hours means I can work almost anywhere. Sometimes I'll use it in a cafe. Other times I just lie down in bed. I also make use of speech to text, so I just need to be able to press a hotkey and reach the track pad.

On the topic of display quality, it's important to use Better display to upscale the output to the XReals to high DPI - that gives noticeably better quality when it's downscaled to the (lower) native resolution of the XReals.

It's probably not got the entertainment factor of Guitar Hero, but I'm working on an Android app that connects via Bluetooth/USB MIDI and teaches you sight reading. It starts with individual notes, then progresses to intervals, triads and more complex chords. All of these are exercise based, so you can pick and choose areas to focus on.

The notes are all rendered according to conventional music notation standards as per Elaine Gould's book "Behind Bars". Writing this code was not straightforward, but worth the effort as it's very flexible.

Progress is tracked intelligently, i.e. accuracy and response times are recorded per note, and exercises can be directed towards improving weak spots. This was all borne out of a frustration I had with how long it takes, and how much material is needed to make progress with sight reading skills.

I'm hoping to release it soon (next few months - it's mostly finished), but slightly concerned it's too niche. I guess it will mostly appeal to serious but beginner/intermediate pianists who want to put in the hard yards to develop sight reading abilities to an advanced level.

Keep in mind that the present value depends somewhat on the discounted future earnings, which by definition extends to the end of time. That being said, the associated time discounting heavily reduces the impact of earnings envisaged say 100 years from now (a 5% discount rate would mean ~13k USD in 100 years is worth about 100 USD now, and that's probably generous given historic market returns).

So, the US doing extremely well 100 years from now vs. the US doing very badly 100 years from now could have a non-trivial impact on the perceived value of US assets. I suspect that the large uncertainty about what the world will look like in 100 years means there is just some sort of seldom changing value baked into assets to account for this, but it nonetheless exists, and could change if there was some huge geopolitical shift.

And before you mention anyone on earth would be dead in 150 years, yes that's true, however you can always sell it to someone later on who will be alive in 150 years (or sell it to someone who can later sell it to someone etc. etc.).

You should look at Unity's high definition render pipeline. It uses physically based lighting so you can just e.g. look up the brightness of a particular light, enter it in, then it will render as you would expect.

And yes, you're right about it being enabling. Anecdotally, I've heard that people coming from e.g. photography background find HDRP insanely easy to get good results and pick up quickly.

Godot 3.3 5 years ago

Apologies, misread your comment as "won't frustum cull by default".

Godot 3.3 5 years ago

This is wrong. Unity has frustum culling enabled by default. You are correct that it only operates at whole model level though.

Occlusion culling in Unity is fairly straightforward. Simply requires a bake. It also supports 'occlusion areas' where you can give it a hint to do a higher resolution occlusion bake e.g. if you think the player will likely be in that area.

Edit: originally misread parent as stating Unity didn't frustum cull by default. Parent comment is correct.

This is totally incorrect. Individual options contracts are indeed written against 100x of the underlying asset but this has absolutely nothing to do with the relationship between the price (premium) paid per contract and that of the underlying share. To given an example, you could find a put option whose premium is actually equal to the current market value of the underlying (i.e. a merely 1 to 1 relationship) or one that's so far out of the money that it's a 1 to 1000 relationship. Without knowing more details about the precise options SoftBank bought, we cannot infer how much market cap in underlying shares the $4bil corresponds to.

I agree, and the proposed solution which is to limit point gains/losses to one point per game feels like throwing the baby out with the bathwater. Specifically, convergence takes a long time, the result of which is that a very good player on e.g. a new account (smurf) will end up being the cause of a lot of unbalanced games for an awful long time.

Having played a lot of ranked LoL, I saw a few recurring but irrational gripes players had with the Elo based system:

- "I get matched with bad teammates and they drag me down". On average your teammates are the same Elo as you. All players get their fair share of games where they are/aren't the underdog side. On average, it averages out. Deal with it.

- "I've been stuck at the same Elo for ages but I should be higher". Nope, Elo only cares if you win or lose. It doesn't care about kill/death ratio, creep score or how many ganks you pull off. Focus on winning more. Incidentally, focusing on winning instead of secondary metrics like kills/CS was one of the biggest mindset differences between high/low Elo players.

"I should be higher Elo but I play support roles so can't climb". It may be true that you climb slower but here's the rub - think of your matchups as you being compared to the enemy team's support player. The other four roles on each team are actually a constant factor (by symmetry arguments you could not consistently find that your four teammates are any better/worse than the enemy support player's teammates). As a result, the only remaining factor in the statistical equation is you weighed up against the enemy support player. If you can provide even a slight statistical advantage towards winning vs them then you will climb the Elo ladder.

The Sharpe ratio should be mentioned here. It allows an apple to apples comparison between the performance of different assets in terms of expected return against variance (risk). In an efficiently priced market, assets will be priced to lie on a straight line of unit return vs unit risk. The line itself passes through the y-axis (zero risk) at a point called the 'risk free rate'. This is a hypothetical point but a close proxy in the real world is e.g. US treasury bills. In the game, I assume the bank always pays interest on deposits so it _is_ the risk free rate (0.05%).

Plotting the different strategies, then fitting a straight line (passing through the risk free point) would allow us to say "strategies falling above the line have market beating Sharpe ratios and strategies falling below are underperforming".

I am going to suggest you watch a few episodes of 'Only Fools and Horses'. It's an 80s sitcom set in Peckham, South London. The show is practically considered a national treasure in the UK and most people who grew up in the UK are very familiar with it.

The reason I suggest it is that it showcases a very particular dialect of British English that many people struggle with (even native English speakers) if they aren't familiar with it. The show was so popular in fact that many modern colloquial British English phrases/words can trace their appearance to this show, not because the show invented them, but because the show exposed so many people to this dialect.

Some examples of words/phrases popularised by OFAH: dipstick, wally, cushty, lovely jubbly.

See http://www.bbc.co.uk/comedy/onlyfools/lingo/ for more.

If you want to master modern British English, check it out. It's also hilariously funny.

I propose a less effective, but easier to implement, way to optimise who to test. It relies upon a simple result from network/graph theory that I will outline here.

Assume, if you will, that typical social networks contain a small number of people who are highly connected (hubs) and a large number of people who are much less connected (spokes). The hubs could be e.g. your GP/physician, your teacher, or even just your popular friend. It would not be surprising if these people have a much high transmission rate for a virus than people who have a much smaller social circle - all other things being equal, and also crucially, they often connect mutliple sub-networks (GP is a good example here).

We would of course like to ensure that we test (perhaps regularly) the people who are at the center of these networks - the hubs. How do we find out who these people are? It turns out that you can do this probabilistically. First, I pick someone at random from the population. I then instruct them to pick a contact/friend at random. The person they pick is statistically much more likely to be a 'hub' than a 'spoke', even though we have no explicit knowledge of the network and carried out this process randomly. A good way to visualise this is to imagine a toy network of say one person in the middle, connected to everyone else, and 10 other people, all connected to the person in the middle but nobody else. You can see that in 10/11 cases, a 'spoke' is selected who then goes on to select the 'hub' (what we want) whereas in only 1/11 cases the hub is initially chosen, who then chooses one of the other 10 contacts at random.

A practical implementation of this could be to choose N people at random and send them a letter or text message instructing them to pick e.g. the (modulo) 5th person from their contacts list whose name begins with R. They would then contact this person and inform them that they should present themselves at a doctor and be tested should they develop any symptoms. There are obvious optimisations to be made here in terms of name distributions and other subtleties of course, and certainly providing a list of fallback randomiser instructions, if they can't find someone fitting that criteria.

Bottom line is, even if many people don't comply, you can increase the probability that you end up prioritising testing of people who are very connected, and thus likely to spread disease, which can be invaluable when your testing capacity is constrained.

I'd highly recommend reading SQL Antipatterns. It's a very approachable book that illustrates how to design a database schema by taking commonly encountered scenarios and first showing you the naive approach. After explaining why this is bad, it then shows you the recommended way of doing it and why this way works better.

I think 'learning from how not to do something' is a really powerful pedagogical technique that should be more widespread.

- The JVM running on a unikernal is the most ubiquitous backend deployment. Kotlin is the most popular backend language.

- Server-side rendering is ubiquitous. Previously, motivations for client side rendering were to minimise network bandwidth requirements and to avoid server-side statefulness, reducing RAM and CPU requirements. By 2030, memory and compute resources are so cheap that the inherent advantages of server side rendering make it a no brainer for the most part.

- Discovery of extraterrestrial life will occur in mid to late 2020s, most likely in the form of Martian microbes. The James Webb Space Telescope will likely acquire strong evidence of organic lifeforms on multiple exoplanets. Even more surprising discoveries may be made in this area.

- Anti aging therapies become mainstream. By 2030, people in developed countries can expect to live an additional 10-15 years in good health. Reaching 'actuarial escape velocity' becomes a serious possibility for many people alive now. Governments realise the time will come when they will have to step in and bail out pension funds who have unwittingly sold annuities. There will be a group of people who were old enough to get an annuity before they became prohibitively expensive/unavailable and who were young enough to reach actuarial escape velocity. They will be labelled 'the luckiest generation ever'. This may not become totally apparent until 2030s or 2040s.

- Real time ray tracing becomes standard by late 2020s. Games are indistinguishable from reality. A murder case where defendant claims 'they thought they were ingame' makes the news headlines.

- Spacex's Starlink constellation is a massive commercial success. Partly due to this, and partly due to ubiquitous aerial drone-based delivery, it becomes not only possible, but increasingly desirable for many people to live in remote areas.

- Development of space based industry is slower than people hoped. Full exploitation of cheap launch capabilities provided by SpaceX won't be seen until 2030s. Blue Origin will catch up with Spacex's capabilities by mid 2020s. Private space launch industry will no longer be a one horse race.

- Electric cars overtake ICEs in developed nations. Several incumbents who don't react in time will go bankrupt and be acquired by electric car manufacturers. As such, the brands won't disappear, the executive boards however will be out of a job.

- Cryptocurrency will remain off the radar for most of 2020 until, due to major war involving a wealthy, developed country, millions of people will rush to buy Bitcoin to save what they can of their wealth. Price of one Bitcoin will quickly exceed $100,000 during this period.

- People will become increasingly afraid to post their physical likeness (appearance and voice in particular) on the internet due to a surge in deep-fake powered identity theft.

- North Korea will not collapse. The West will reluctantly accept it as a nuclear armed state. It will gradually normalise relations with the outside world and may even follow the same path China took, becoming a prosperous country in the process.

Running Tips 7 years ago

I've been a lifelong runner and a great psychological trick I've shared with people to help get you into your shoes and out the door is this:

"Have you ever regretted going on a run?"

Invariably, the answer is no. It's amazing how effective this is at getting you to just suck it up, no matter how cold it is outside, and get running. You'll be glad you did.

I released ModularPro, a tool for the Unity game engine to massively improve the process of assembling modular assets during level design. It started as a side project and I ended up releasing it in the Unity store. Would be great to get some feedback from anyone who actually does level design for a living to see if they think it would be useful for them.

YouTube: https://youtu.be/MvYTbIU1d-c

Store page: https://assetstore.unity.com/packages/tools/level-design/mod...

Citymapper 7 years ago

So if currently the recommended route is simply a function of journey time, could a map have a more sophisticated utility function that takes into account other variables like number of connections, mode of transport and pollution levels etc. Initially the weights of each variable would be unknown (100% to minimising transit time as a sane default) but over time would infer the weights by offering you a range of choices and learning from your preferred selections.

One major flaw with this is that perhaps the map system relies on caching precomputed partial solutions which would be impossible if, in general, every user has slightly different preferences. I've noticed that (AFAICT) Google maps doesn't take into account individual walking speeds when calculating routes for example.

I impulse purchased the carrying case they released recently... Tbh not very happy with it. The molded foam inside the case only fits the keyboard but not the silicone wrist rests, which imo are vital. The space efficiency of the case is pretty poor too so it doesn't easily fit in a suitcase or weekend bag. I mostly end up just piling the keyboard into a bag loose.

Yep totally agree, in fact sometimes when people see it and ask me questions about it, I suggest they stand at my desk and lay their hands on the two islands. Even without typing a single character they almost invariably react extremely positively to the ergonomic pose.

This is a very good question and it did in fact occur to me when I was designing the keyboard layout. Partly due to this concern I stuck with a QWERTY layout for alphabetic characters, so I'd at least retain some familiarity with traditional keyboards. Besides that, I'm typing on my laptop right now and often plug in a traditional keyboard if I'm gaming, so I haven't found lack of familiarity with a traditional keyboard a problem.

It's not just about improving the bandwidth (although that is nice), the one thing I wouldn't trade that the Ergodox gives me is a very low error rate in typing. This is hard to achieve with a traditional keyboard, especially when you starting throwing special characters into the mix that require two-handed contortions.

I've heard the refrain "you don't spend most of your time typing when programming" so many times it's almost become a trope. I personally spend enough time typing during a typical day (working or otherwise) that I really appreciate the benefits of a highly optimised keyboard setup, although of course YMMV. I don't think the argument holds water.