HN user

iLoch

1,652 karma
Posts17
Comments644
View on HN
news.ycombinator.com 9y ago

Ask HN: What database should we use for our “big data” problem?

iLoch
3pts3
github.com 9y ago

HolographicJS – Build Holograms with JavaScript and Microsoft HoloLens

iLoch
2pts1
github.com 9y ago

HolographicJS – Build Holograms with JavaScript and Microsoft HoloLens

iLoch
4pts0
github.com 9y ago

C++/WinRT – A standard C++ language projection for the Windows Runtime

iLoch
1pts0
news.ycombinator.com 10y ago

Ask HN: How would you rank 500M rows of data in 5 seconds?

iLoch
2pts6
github.com 10y ago

React Three UI – Experimenting with React as an Interface for 3D UIs

iLoch
27pts10
medium.com 10y ago

React is the new jQuery (in the best way)

iLoch
2pts0
github.com 11y ago

React-native-multipeer – Insanely easy mesh networking in React Native

iLoch
1pts0
news.ycombinator.com 11y ago

Ask HN: Are there any NLP projects that use context?

iLoch
5pts4
github.com 11y ago

React-Native-camera – A Camera Module for React Native

iLoch
1pts1
news.ycombinator.com 11y ago

Ask HN: Does anyone have a copy of the React Native alpha build?

iLoch
4pts5
medium.com 11y ago

Does Facebook know you're a liar?

iLoch
2pts0
customs.halotracker.com 11y ago

Halo's matchmaking system has been down for days so I made an app

iLoch
1pts0
news.ycombinator.com 11y ago

Ask HN: Why do the majority of JS developers prefer spaces over tabs?

iLoch
8pts24
news.ycombinator.com 12y ago

Ask HN: What's going on with Google's WHOIS record?

iLoch
3pts2
news.ycombinator.com 12y ago

Ask HN: What's going on with Google's WHOIS record?

iLoch
1pts3
news.ycombinator.com 12y ago

Ask HN: Why haven't we automated government?

iLoch
2pts2

Actually I was trying to find a simple question, and I came across an example of the same sort of spouting of Chinese government propaganda. Check this out: https://www.quora.com/Are-children-in-China-taught-about-the...

I think it's interesting to ask people who are educated in China what they think about the Tiananmen Square Massacre. For instance, what do they think about this photo? https://i.imgur.com/0zAQqAO.png

Though, this line of questioning may be met with hostility. So I suppose you could ask them why they're angry about evidence of a massacre of their own people.

I just bought an Ableton Push. I plan on cracking open a beer and learning to use it after work. I figure if I'm going to entertain myself I might as well be learning too. I find making music to be both engaging and relaxing.

With regards to taking an instruction and converting it into a state representation, I think creating music is very similar to programming. Coming from a web background, I've seen experiments like React Music which I think are really interesting. If the question becomes "how can we best represent the changing state in code?" Then I think that's a question that can be solved for both interface programming and music programming at the same time. This is why I find React Music interesting: React's declarative syntax makes it easier to understand what the final product is going to look like. Can the same thing be done for programming sound, in a way that represents the final product in a more naturally understood way?

I've spoken about this before on here. We developed on HoloLens for a couple months. Working on the HoloLens app was actually my first foray into 3D development, and also required converting ThreeJS JSON into Unity models which was a mess.

The user experience --------------

HoloLens is mesmerizing. I'm not big into VR or anything, and will often make the arguement that VR hype will die out and is a fad. But there's something very different about what Microsoft is doing. The ability to incorporate reality as a first class citizen in your 3D applications (or vice versa) is groundbreaking. People often complain about the FOV when they first try it out, and I had the same complaint, but your brain is able to compensate once it gets used to it, and then you stop noticing it. That's something you don't get from a short trial of it at a tech demo. The user inputs are indeed very clumsy still. We'll need vast improvements in this area before HoloLens can feel immersive. But the amazing thing is that this first pass isn't that bad. It can track your hands and it's a computer that sits on your head. I mean, come on! I'm only 22 and even I think that's amazing.

The developer experience ------------------------

One of the major short comings of HoloLens development is its dependency on Unity. C# isn't the problem. I love C# and use it daily now for web development. The problem is Unity uses .NET 2.0, and good luck finding C# libraries that are compatible. So for every new thing you want to do, you're going to have to find a "Unity compatible" C# library, which is very annoying.

Unity will work for what you need most of the time, but it turns out if you want to try something custom (like your own gestures) then you're out of luck, because the Unity APIs are limited in that way.

I suppose I'm mostly just not a fan of Unity's component model. Constantly switching between adjusting settings in the IDE and coding feels like a bad way of developing.

Okay, so maybe you want to try something a little lower level. Microsoft offers a C++ API as well, and for the most part this is what you want if you need to harness the limited power of the HoloLens. I haven't played around with all of the APIs, but I know of one in particular that left a bad taste in my mouth (this applies to Unity too) -- the spatial anchor API. For those of you who are unfamiliar, the spatial anchor API is the only way to acquire a durable and persistent reference to a real world location. This is done (I think) with sensor data (orientation, lighting, and images captured by the 4 on board spatial mapping cameras.) This is really an incredible feat of engineering, however it produces a binary which is around 15MB. Far too large to store in a database at scale. I'd like to see MS open up raw access to those sensors so middleware developers can try their hand at improving this aspect of HoloLens.

If C++ isn't your thing, there's a library called HoloJS. You guessed it, it's a JS runtime for HoloLens with access to native libs. I actually started my own variation on this (called HolographicJS) before Microsoft released theirs, but I'm happy they've taken over.

The future ----------

So what does this all mean for a device that seemly has its share of problems to overcome? Well, after trying it I'm fairly confident that MR as Microsoft calls it, is here to stay. The ability to mix reality with virtual reality, and augment that with a layer of environmental understanding is really incredible. I think we're just scratching the surface of the possiblities.

HoloLens is the first in a new field of devices that I believe will come to replace all forms of computers we currently use: phones, laptops, desktops, tablets, etc. Even things like IOT devices. Why spend time building your own interfaces when you can just augment the users'?

If v2 had better FOV and improved input tracking, I'd consider it a major success. But if it also included improved spatial mapping and a reliable GPS, that could bring us into a whole new world, quite literally.

The way I see it, the first company to solve outdoor use of an MR device, and solve what I'm calling the "universal spatial map" problem, will run the world of tomorrow.

Imagine every machine being capable of interfacing with you without the need for a screen or separate device. Imagine walking down the street, gesturing to a restaurant and placing an order before you even get inside.

Further down the line. What if we could transfer consciousness out of a dying car crash survivor into a computer. What if that person could then be virtually transferred back to the scene of the accident, to be greeted by those who are augmented.

Anyway, that's all crazy futurism; but the point is that reality starts with what is being done with HoloLens, and I think it's an incredible thing to be a part of.

To me, HoloLens feels like the Apple II.

Google Contributor would be your primary competition. I think typical users just aren't ready to pay for access to regular websites.

I've had the (still fairly unique) opportunity of actually having to make very different considerations with regards to user experience. This came in the form of designing for HoloLens. I bring this up because I believe in 5 years we'll be much closer to realizing the potential of VR and MR (mixed reality, like HoloLens.)

I do think VR devices will live a short life and die off. VR (in the form of a single purpose device) doesn't really have a place once a device can provide both augmentation and a totally virtual experience. I don't think we're far away from that.

Certainly what we'll see is a uptake in MR devices. I suspect future iterations of HoloLens and other MR devices will bring forth a desire to experience and incorporate MR. Some businesses are already jumping on the opportunity, but in my opinion the technology isn't quite there. In the case of HoloLens, it's clear it still lacks a real understanding of intuitive input.

I think one of the big mistakes people make when considering new UX patterns in 3D space is that not everything is designed for 3D space. And conversely, not everything designed for 2D interfaces works in 3D. You can't just move your app to VR. Certainly you'd think it would be rather strange if a restaurant provided its menu as a stack of blocks. Some interfaces are indeed better suited for 2D, so for that reason I believe there is a place for some 2D interfaces in a mixed reality future.

The other big mistake I've found people make is the idea that in order for something to have great UX, it should mimic real life. Perhaps this is true in some cases, and if you're building a product that's designed to mimic real life then that's probably the best choice. But new experiences will undoubtedly emerge (more often than not, I suspect), experiences which are foreign in concept to us now because its simply not possible in our physical world, and that will be a real test for UX experts out there.

One thing we will need to focus on is understanding what it means for an interaction to be discoverable. A lot of people seem to think voice is intuitive, but I don't think that could be further from the truth unless you've got a general intelligence to talk to. No one thinks automated answering systems are user friendly. Even with general intelligence it can be hard to put your intention into words when it comes time to "take an action."

Personally I think the optimal solution for these types of interfaces will be a mixture of context awareness and neural impulses. If I can look at a TV, and the device can see what I'm looking at (on board camera also sees a TV) then it has an understanding of what actions I might be interested in performing. At that point it can show options in 2D above the TV or however you want to lay it out. I'd then be able to look at the option I want (device tracks pupils and knows with accuracy what I'm looking at) and think about touching it. This impulse acts as an "invoke" action on the current thing I'm focused on.

If this stuff becomes possible, then that's about as low friction as I can think of without interfacing with the brain. Will be be there in 5 years? Hard to say. I'd be willing to bet we might have something that gets us partly or mostly there, and may have to be tethered to a secondary device like a phone for additional processing.

We've been working with Orleans for a few months to build out the next iteration of our infrastructure. I have nothing but good things to say about it. One of my favourite aspects of developing with Orleans is its single-threaded nature. Because a grain can by default only process one call at a time on a single thread, it's easy to make guarantees about data consistency inside that grain regardless of how many processes are reading/writing to it at once.

The idea of a stateful grain is also really powerful and something we're harnessing extensively: if everything is a grain, all of your data is already cached in the activated grain so there's no need for a separate caching system. Additionally, any updates to the data are immediately available to the "cache" before you send it to the database. So transient data can be cached even if you're not sure you eventually want to persist the data. This allows you to do partial application of data to grains, and then eventually commit the data to storage (in the case where writing is expensive.) This of course is totally possible with more traditional architecture, but its impossibly simple in Orleans and it's hard to go back once you get to use it.

I also want to give a big thanks to the folks who are active in the Orleans Gitter channel. Honestly probably the most helpful open source community I've ever encountered. They're extremely thorough and always willing to help.

I think a lot of companies would like you to believe that though, because the novelty of their product depends on it.

There is universal agreement about tipping at restaurants. Tips of 15% (or 20%?) are definitely customary, expected, priced-in. People who don't leave tips after experiencing decent service are definitely not paying their fair share.

Is this a joke? Not only is it not universal, it's not even customary. The agreement you have with the restaurant is this: you sit down, are served, eat food, and pay. Baseline service is free, that's what you're paying the restaurant for. If the person waiting on me has a problem with me not tipping, they're welcome to take their wage issue up with their employer. I can only say this as someone who supports fair wages for service industries though. I believe a lower minimum wage for restaurant/bar services is a problem. But absolutely under no circumstance will I provide a compulsory tip. It's not my job to pay the employees.

There is a secondary agreement you have with the waiting staff: if you go above and beyond your job description to provide excellent service, you may be rewarded as recognition. Even then, many countries believe that excellence to be part of the job, so tips are not accepted.

Tip if you're provided with above standard service, don't if you're not. What's hard about that?

React VR 9 years ago

I don't think the other subcomments actually address your concerns, so here's my take: Javascript is the language known by every web developer. Right there, they're opening up their developer audience to a much larger group of people than is possible with C++ or even C#.

"Hard to scale large codebases" isn't really an argument, large code bases are hard in every language, JS isn't really an exception here.

Low level stuff (GC, perf, memory) has been, and will continue to be a problem for Javascript. You can mitigate a lot of the problems with well designed code. React attempts to minimize a lot of those problems with solutions that work for most general use cases (and now with Fiber, we're getting even more granular control.)

Until React moves to Web Assembly you're always going to have overhead when using JS. But let me know when you've got a solution for VR in a web browser that's not JS and I'll give it a try.

React VR 9 years ago

The React team has been working on an improved rendering engine called Fiber. This is an oversimplification but Fiber essentially breaks down per-frame rendering into several sub rendering tasks, allowing for smarter multi-threading (in the case of web workers) and even single threading (the renderer now returns control of the main thread much faster and more frequently, allowing for more opportunities to do GC and other operations without as much of a negative effect.)

An example of Fiber in action is here: https://www.youtube.com/watch?v=Qu_6ItnlDQg

What this amounts to for React developers is the introduction of explicit priority rendering, which can be very useful in VR environments. So for example, updates to your UI from external processes (such as an XHR) can be set to lower priority than updates to the hand model that's controlled by the controllers.

The Penny Must Die 9 years ago

Not a fan of the "they cost more to make than they're worth" argument. How much does it cost to make a $100 bill?

Nevertheless, we Canadians have been without pennies for a few years now. I have no complaints, just less change, which is nice.

I wouldn't consider it a ticking time bomb. They provide a (false) guarantee to the end user that other users won't be able to capture whatever you sent beyond the time given for them to view it. (This is false because anyone can take a picture of their phone's screen.) Users would understand the very reasonable difference between users having general access to this "expired" data vs. the police. Most people should expect that the police have special privileges in this case, and I don't think there'd be any backlash if this became broader knowledge. Their promise to their users is to provide them with the secrecy of a "secret note", not government proof secure encrypted messaging.

Lenses are generated on the device. They're not uploaded to Snapchat servers.

Context is very important when you're quoting people: "... and if they've been "good" data miners..."

And regardless of whether or not a filter is generated on device, facial data is being used, and so I'm weary that it could be sent to a server. If it's not, fine, but that's subject to change.

From the support site: "Snapchat servers are designed to automatically delete Snaps after they've been viewed by all recipients."

So when authorities get involved, I'm sure Snap says "sorry, can't do anything for you"?

My only disagreement is that its all fake usernames

Plenty of people have added their real names in addition to their usernames. But even if they don't, contact lists often have real names.

I'm not sure if that's how you use Snapchat, but personally (and I may be in the minority) I only add people I've either met, or who are in some capacity a celebrity. You can also typically see how close a friend someone is by how many connections they have to other friends in a user's network. Snap users (like Facebook users, I think?) also tend to mostly interact with people they're actually friends with. So at the very least I think the data Snap has is at least as high quality as FB's (and I'm not at all disappointed we're comparing more with Facebook than Twitter, as the latter has had a much more positive market story.)