HNHacker News
TopNewBestAskShowJobs

bsurmanski

250 karma · joined February 12, 2015

Brandon Surmanski

Computer Engineering Graduate from the University of Ottawa, Canada

Software Engineer at Google

Working on the OWL programming language: https://github.com/bsurmanski/wlc

twitter: bsurmanski

submissionscomments
bsurmanski··on Single Family Homes in Santa Clara County: March 2018 Report
Nothing stops that, but presumably there is a "Max price" you are actually willing to pay. If more than one person uses the absurd bid strategy then you're screwed, so the incentive is to just put down your true Max price willing to pay.
bsurmanski··on Lyft says nearly 250K of its passengers ditched a personal car in 2017
FYI, you can get a California ID card; identical to a driver license without the permission to drive.

https://www.dmv.ca.gov/portal/dmv/detail/idinfo/idcard

bsurmanski··on Bitcoin Takes Bigger Wall Street Stage with Smooth CME Debut
kind of. But the miners have a financial incentive to follow the system. The system is built in such a way that it's in their best interest to follow the system (except in a coordinated 51% attack, then the system falls apart).
bsurmanski··on Bitcoin Takes Bigger Wall Street Stage with Smooth CME Debut
From my understanding, the main benefit is zero trust transactions. You can make a digital transaction without trusting anyone, especially the other party.

The downside is this guarantee has some trade-offs. Mainly transaction speed is super slow (10m to confirm a transaction went through) and transaction fees are very high (especially now with the "bubble", it's something above 10$/transaction). Furthermore, all transactions are public record, which isn't desirable if you're a fan of privacy. The value is very volotile right now, making it hard to really budget out your net worth.

IMO, if you can just trust a third party (eg, credit card processing), then you get much better guarantees. (Fast payment, relative privacy, low transaction fees), with the further benefit of chargebacks. If someone steals money from your Bitcoin wallet, you're screwed, with a credit card you phone them up and they undo it.

Actually, even with Bitcoin you need to trust a third party: the exchange. Many people hold their money in the exchange, and there have been multiple cases where they've lost a bunch of user's money. IMO a real bank or credit card processor is more trust worthy than a crypto exchange.

That's all to say that currently crypto makes no sense for real transactions. That's not to say the issues are unfixable, for example Monero provides privacy guarantees.

As well, other uses may be valid, the main case is "a hold of value", like gold. IMO, crypto has no intrinsic value (not even decorative like gold) and is very volotile, so it's up to you to decide whether it's going to last.

Lastly, there are novelty uses like ethereum's trusted computation platform. That's a complicated topic in itself but pretty much each of these uses has a counterpart with much better guarantees if you can use a trusted third party.

bsurmanski··on Buys/Sells temporarily disabled on Coinbase
> Not even the internet was so disrupting as the blockchain technologies will become.

The internet was a paradigm shift for how we communicate. It seems like blockchains are just sort of an opportunity to do things a different way.

From my perspective the main advantage of the blockchain is zero-trust transactions. Everything that can be done on the blockchain can be done easier/better off the blockchain as long as you choose to trust someone.

And currently from my perspective, no one is seriously using a blockchain for anything but speculation.

In your opinion, what makes the blockchain comparable or more influential to the internet?

bsurmanski··on Flaw crippling millions of crypto keys is worse than first disclosed
This article focuses on Estonian ID cards, but presumably this affects the symmetric encryption of Bitcoin wallets as well, correct?

If the crypto can be broken for ~1000$, as mentioned, that seems like a serious problem...

bsurmanski··on Google Has Spent Over $1.1B on Self-Driving Tech
Here's an article from February covering the California DMV reports: https://www.wired.com/2017/02/california-dmv-autonomous-car-...
bsurmanski··on Facebook Profit Jumps 71% Year-over-Year
Slang for "doing very well".

Ex: "You got an A on that midterm? Dang Carl, you're Killing it!"

bsurmanski··on CoinDash’s ICO Website Has Been Hacked
But do they eliminate the middleman? At least for Bitcoin, it takes an hour for any confidence that a transaction is truly valid. I'm not going to wait around for an hour just to grab my morning coffee.

So obviously there's going to need to be a credit backed middle man to guarantee your transaction so the seller doesn't get screwed by a double spend.

Eth is slightly better, but it still takes something on the order of 10m to confirm a transaction, and it doesn't look like it can get anywhere near the speed needed for a coffee purchase.

bsurmanski··on Binary Puzzle
Why? Is this a property to guarantee there are no duplicate binary numbers, or an arbitrary rule to make the puzzle tractable?
bsurmanski··on Verizon is killing Tumblr’s fight for net neutrality
Not if Netflix makes a special exclusivity deal. You can bet that some businesses will make as many deals as possible to keep down the competition, if it's legal.
bsurmanski··on Verizon is killing Tumblr’s fight for net neutrality
I don't think your 'small rural town' metaphor is solved by removing net neutrality. From the provider's point of view, who cares if someone is using up 1000 packets of youtube or 1000 packets of nytimes? They cost the same from the provider's stand point (unlike 1kg lobster vs 1kg of bread for a restaurant). Filtering by content doesn't change anything, network providers can already charge by amount of traffic. If they can't provide enough, they can raise prices, free market style.

The issue with removing net neutrality is that it enables censorship and removes 'the free market' of the internet. The internet provider doesn't like your political blog? Well now they can wall it off under a addon package just like cable TV. Facebook makes an exclusive deal with the internet provider? Now Twitter is locked behind an addon package or completely unavailable.

You might say, "well people will just use a different internet provider!". The problem with that is that many places in the USA only have one, maybe two providers to chose from; So it's not like a restaurant where they can just go somewhere else.

You might say, "well more internet providers will be created if no-one likes the current ones!". But its very expensive to create a network of fiber optic cables. Billions of dollars, maybe trillions. A start-up can't just 'interrupt' the market. And usually when a new internet provider is created, they have to lease the big-company lines just work. And you can bet if they make that deal with existing companies they'll have to accept big-company's traffic policies.

bsurmanski··on Sculpture of Housing Prices Ripping San Francisco Apart
The one thing that is missing from the article is a top view of the sculpture. Although I believe it, I would like to see the sculpture align to the outline of the city.
bsurmanski··on Computer Crash Wipes Out Years of Air Force Investigation Records
I would consider it progress.

The only data loss to Google that I was able to find was [0], where a single datacenter was hit by lightning 4 times in short succession, and 0.000001% of disk space in said datacenter was lost. And only because the lost data consisted of recent writes that had yet to be backed up. And only because the lightning affected the AUX power systems in a way that they have since committed to fixing (or perhaps have fixed).

IMO, cloud storage is the most reliable way to store data, and Google the most reliable. I never know if I'm going to drop my laptop and lose all work. Or if the harddrive in my server is going to give up and burst into flames. But the great thing about cloud storage is that it abstracts away hardware components and failures so it's somebody else's problem. And they worry a lot more about data loss than I do. Cloud data storage is designed with the assumption that hardware is faulty. Spread redundant copies of data to geographically isolated datacenters, and you're much safer than some admin of averagejoe.com keeping his data on a single harddrive in his closet.

[0] - https://status.cloud.google.com/incident/compute/15056#57195...

bsurmanski··on Toronto is poised to become a producer of tech startups
Okay, I tried to graph out taxes between Toronto and SF.

check it out: https://github.com/bsurmanski/TorontoSFTax

It looks like between 60k-200k, taxes in Toronto are actually lower. Between 200k-700k, it is cheaper in SF. At 300k, Toronto tax is about 1.5% more, and at 400k, Toronto tax is about 2% more.

But being realistic, most people in tech would pay less tax in Toronto.

edit: This calculation also does not take into account any other taxes (such as sales tax, or property tax), and is not adjusted for cost of living. SF has an edge in sales tax (8.75% in SF vs 13% in Toronto), but Toronto has a huge edge in cost of living (according to [0], Toronto is 32% cheaper), and property tax (1.14% in SF vs 0.7% in Toronto).

[0] - https://www.expatistan.com/cost-of-living/comparison/san-fra...

bsurmanski··on Toronto is poised to become a producer of tech startups
don't forget social security. Social security is 5.65%, whereas the equivalent in Canada is the Canadian Pension Plan, which is 4.95%. And you have great medical insurance built right in. [0]

[0] - http://www.investopedia.com/financial-edge/0411/do-canadians...

bsurmanski··on Toronto is poised to become a producer of tech startups
speaking as someone who has lived in both the Bay area and Toronto, I think Toronto has a chance.

The Bay area is a nice place to work in your 20s, but it's not a good place to settle down. With housing prices, homeless population, just a general grime over most things.

Toronto's the type of city you can move to when you thinking of settling down and starting a family. Very clean and friendly. Cheap enough to afford. That and not every Canadian wants to get a visa and live 4000km from everyone they've ever known.

bsurmanski··on New Kid on the Blockchain
One of the 'selling points' of Ethereum is the 'global computer' aspect. Essentially Ethereum is designed so that you can put programs on the block chain. Programs that can be called transactionally and where the result of the program is guaranteed to be correct.

Why is this important? Well, lets imagine a dice game. If on a traditional server, the program can cheat and give an unnatural edge to the site-owner. With ethereum programs, you can look at the source and know that said dice program is 'fair'. At the same time, from the perspective of the programmer, the blockchain ensures the users can't cheat you, either.

Now this sounds cool, but I can say from first hand experience that this is actually kinda trash. Last I looked into this (around October), programs were limited to a very low number of clock cycles before the program cancelled out.

How long a program would be too long? Through experimentation I found that a program more than about 30-40 lines of their C-like language would regularly hit the limit. What happens when you hit the operations limit? the program rolls-back without any effect, eating your transaction fee. Now, you can pay for more operations, but there is a limit. Even with the max number of operations you can't do too much. You can store values on the block chain, but any write or update takes up an substantial amount of 'gas' (the unit of currency for computation and storage).

So to imagine the limits, their 'global computer' acts like a coin-op machine where each quarter gets you 40-50 bytes of storage OR maybe 500 clock cycles on a virtual CPU. But, if the program tries to use more than a quarter, everything is rolled-back and your quarter is gone. (There is (last I checked), no way to know if your program will go over. Just trial and error).

Not only that, but (last i checked), the programs were compiled to a bytecode and there was no dissembler. Meaning that if someone wants to verify a program, they need the exact source code and exact compiler the dev used, and must MD5 the results.

Beyond that, there isn't really any good testing tools. Last i checked, the only way to run a program is to deploy it. So, you have to setup your own private chain to test on and continuously deploy and wait and test. There was a way to sort-of put debug prints in your program, but remember how I mentioned that a program that fails rolls-back? Well, it won't output anything either. And there were operations (some undocumented) that would simply crash the program. Index-out-of-bound? Silently crash program. AND the act of debug-printing would take up valuable storage (pushing your program over the edge of the limit).

In summary, the 'global computer' is so limited to be practically useless and the development process is (currently) a fate worse than hell.

/rant

bsurmanski··on Time for a Guaranteed Basic Income?
What happens in the case I am working in a foreign country on a visa? In that case, I can imagine the home country would refuse GBI because I am no longer resident, and the host country would refuse because I am not a citizen.

If that is the case, I can imagine that GBI would put a drag on workers abroad. Maybe people would even refuse to emigrate because they wouldn't be able to afford the few years without GBI before they are a citizen in their new country.

bsurmanski··on U.S. Will Track Secret Buyers of Luxury Real Estate
So, even Mark Zuckerberg can't afford a house in the bay area. /sarcasm
bsurmanski··on Kashmir: A statically typed Lispy language compiling to Go
Is this intended as a human-written language, or as a target for machine generated Go?

In my mind, the second one is where this language can really find it's niche.

bsurmanski··on Google loses data as lightning strikes
As mentioned in the article, it only affected recently written data of 'Google Compute Engine' services. GCE allows user to launch VMs and generate arbitrary data on the server.

Normally, Google redundantly distributes out data to at least 3 different geographically distinct locations. Check out the 'BigTable' white paper [0] for more info.

For 99% of cases (and pretty well all user cases), this would not cause data lose. The key here is that the data was generated on the servers and did not have a chance to duplicate before the event.

[0] http://research.google.com/archive/bigtable-osdi06.pdf

bsurmanski··on Bitcode (iOS, watchOS)
LLVM is a great tool, but I've had trouble in the past with version compatibility. I wrote a compiler that used LLVM as a backend (I used LLVM versions 3.4-3.6). The problem was that each minor version of LLVM slightly changed the API. It was things like removing parameters from methods, renaming methods, removing the need for some methods completely, or adding/removing some static-link libraries. If you only wish your tool to be compatible with a single version of LLVM, its not a problem, but attempting to support a selection of minor versions ended up being a pain. These minor versions would come out 3-4 times a year and I would need to find what broke each time, and if there was even an equivalent solution in the new version.

I didn't work on the level of IR, so I didn't come across any problems there, but I wouldn't be surprised if the IR syntax changed slightly across minor versions.

bsurmanski··on Reconsidering Functional Programming
yeah, that is actually what I was saying. I just provided an alternative way of looking at it where you pipeline the dependent operations instead of running them at the same time.

eg: instead of:

    foreach actor(find collisions -> find response -> do movement)
do:

    foreach actor(find collisions) -> 
    foreach actor(find response) -> 
    foreach actor(do movement)

That way you may modify the primary data structure directly in the 'do movement' response without any conceptual 'data races'. It really just off loads the information lost from 'mutability' to the secondary data structures of collision lists and the like.
bsurmanski··on Reconsidering Functional Programming
That was my initial thought too, but I think it's still a useful realization. at least one place in which this would make sense is physics response.

If your actors has a single 'update' method, the first actor would check for collisions and move before any other actors had a chance to do anything. This gives certain actors preferential treatment in movement.

Of course, you could instead plan out the dependencies better; do all collision detection before all physics response. But this is just a different way to look at 'immutability'

bsurmanski··on Android’s 10 Millisecond Problem explained
do you mind elaborating on this? What would be off limits, and what in assembly would allow a garbage collector free of false retention vs C?
bsurmanski··on NASA's Curiosity Rover Finds Biologically Useful Nitrogen on Mars
I'm not a scientist, but I imagine that they would use the emission spectrum[0] of the various elements. Perhaps they could sample the spectrum of all of the stars and that might give a reasonable approximation.

[0] http://en.wikipedia.org/wiki/Emission_spectrum

bsurmanski··on The economy of weirdness
I would say that the 'economy of weirdness' is closer to simple supply and demand. Too much weirdness lowers the demand of more weirdness, and thus the 'value' in a given scenario.

Weirdness is 'different', and as such requires a certain level of cognitive load to process. Too much weirdness can be overwhelming bordering on abrasive.

Looking at it from another point of view, if you have an action movie where it is 2 hours of explosions, you will eventually get bored of all of the explosions. 'weirdness' works similarly. There needs to be some pacing to your weirdness.

bsurmanski··on Gravitational Lensing to Observe Ancient Earth
Coincidentally, something like this was asked on reddit.com/r/askscience recently.

http://www.reddit.com/r/askscience/comments/2y93cz/if_we_wer...

(if we were far enough from the earth, could we see the dinosaurs)

One comment claimed that the lens would be the limiting factor. If using traditional glass lens, they calculated that it would need a diameter of 4 light years to be able to see the dinosaurs. They furthermore claimed that a lens of this size would gravitationally collapse, and thus would not be feasible.

I don't believe gravitational lensing was mentioned as of my reading.

bsurmanski··on Pebble Reveals Pebble Time Steel and a Smartstrap System
I like the idea of smart watches, but I don't see why there would be a demand for them. Specifically, I can't think of a single "killer app" that would make a smart watch better than the phone that everyone is currently carrying around.

Can someone enlighten me? Whats going to be the killer app for smart watches?

← PreviousPage 2 of 3Next →