HNHacker News
TopNewBestAskShowJobs

pixie_

1,447 karma · joined October 21, 2011

submissionscomments
pixie_··on REST is the new SOAP
Too bad the first thing people do when consuming a REST API is to put a RPC wrapper around it (or find software that with auto-gen a wrapper for them)

Subconsciously no one wants to deal with your carefully constructed REST URLs. They just want a function name and some parameters.

pixie_··on REST is the new SOAP
What's funny is that most consumers of REST APIs do it through a wrapper that turns it back into a statically typed RPC. REST truly is a useless middleman that no one realizes they just don't need.
pixie_··on REST is the new SOAP
Are you assuming REST is easier than RPC to develop and/or consume?

After moving to a REST based API there were endless meetings between co-workers of what is and isn't a good REST url. Our clients often come to us with dumb mistakes. Unlike RPC where the parameters go in a single place. With REST the parameters are spread across the verb, url, header, query param, etc..

pixie_··on REST is the new SOAP
I agree 100% with this article. A simple RPC API spec takes minutes to define. 'Rest'ifying takes much longer, there are a million little gotchas, no real standard. Everyone has a different opinion of how it should be done. Data is spread across verbs, urls, query params, headers, and payloads. Everyone thinks everyone else doesn't 'get' REST. If you try to suggest something other than REST in the office you become the subject of a witch hunt. It really is a cargo cult of pointlessness. My co-workers have spent sooo much time trying to get swagger to generate documentation correctly as well as generate client side APIs, and there are countless gotchas we are still dealing with. It really is SOAP 2.0, when a simple JSON/RPC protocol would of done fine. Don't get me started with conflating http server errors with applications errors. And trying to do action like requests with a mindset optimized for CRUD. How much time have we wasted figuring out the 'standard' way to do just a login API call RESTfully. Please comment below how to do it, I love the endless debate of what is REST and what is not.
pixie_··on Drinking 3-4 Cups of Coffee Is “More Likely to Benefit Health Than to Harm It”
We have an open position for you on the team to use machine learning to root out fraud ;)
pixie_··on Drinking 3-4 Cups of Coffee Is “More Likely to Benefit Health Than to Harm It”
Seems like an old school system that sucks as it is and is ripe for disruption.
pixie_··on Drinking 3-4 Cups of Coffee Is “More Likely to Benefit Health Than to Harm It”
There's enough anecdotal evidence here to fuel a study in it of itself. I'm surprised there isn't an app out there where you can opt into any number of studies. Surely there's potential for an app like this.. Anyone want to get together and build it?

* edit - maybe it's just an app where you like 'Facebook' all your medical history, and post daily diets, health issues like headaches, acne, etc...

All the data is public and accessible by anyone to trend. There would be no usernames though, everyone just has a guid and all the guids can find people like themselves and chat with anonymity.

pixie_··on Swagger is now the OpenAPI Specification
Is there any standard as to how to do some of these thing - API versioning? actions like login/logout? doing a GET on multiple IDs? spinal casing? common response object format? application specific error codes?
pixie_··on Microsoft acquires AltspaceVR
https://en.wikipedia.org/wiki/Microsoft_V-Chat

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

Third time is the charm right?

* Not trying to be too snarky :P I played Cards Against Humanity in Altspace and had a pretty good experience, didn't feel much different from playing it at a bar.

pixie_··on The rise and fall of Ext JS
Really interesting article. I used ext js for a project and found the components worked better than anything I've ever used. The grid is super powerful and polished. Setting up a server backed customized drop down is super easy. Lookups are powerful. Trees and charts are powerful. Their dialog builder works super well. A lot of the components can be built, positioned, embedded with a purely declarative json syntax. If it stayed under the BSD license I have no doubt we would all be using it today. For building super data heavy internal enterprise apps it's amazing. Check out their component examples here -

http://examples.sencha.com/extjs/6.2.0/examples/kitchensink/...

Unfortunately I wouldn't recommend using it due to the licensing mess. So depressing.

pixie_··on China Bans Bitcoin Executives from Leaving Country, Miners “Preparing for Worst”
The network self adjusts to generating a block every 10 minutes. This will have no effect on block generation rate.
pixie_··on Writing a SQLite clone from scratch in C
LINQ is like flying a plane. It will take you where you need to go extremely fast, but will also crash you into the ground if you don't know what you're doing.. Personally I get immense value from it daily, but I know when not to use it as well.
pixie_··on Ending the cult of the CEO
Like hoodies and hackathons, not like hacking into stuff.
pixie_··on Ending the cult of the CEO
I'd say the CEO acts as the primary role model and the employees/company often reflect the attitude of the CEO. Think of the workplace stereotypes of amazon - customer focused, google - side projects, spacex - mission, uber/oracle - aholes, apple - design, microsoft - developers , facebook - hackers, etc.. the CEO sets the tone and if you agree with it you'd probably like working there :)
pixie_··on Is Matter Conscious?
It's great taking the time to read a large insightful article, and then coming to the comments to see an insightful post like this.
pixie_··on “Eurocentric modernist” thinking is exploding
While I don't agree with everything in this article, I have come to the realization recently that our society has has a real lack of compassion almost ingrained in it.

I can only really speak for America, but the pervasive feeling I get is almost 'every man for himself' or 'I've got mine jack'

Any sort of hand out is looked down on, getting anything for free is wrong. These are ideas that are just ingrained in our society it seems for better or worse

We spend a pitiful amount of money on basically every social service and it's easy to get a feeling for how low we value them.

I'm sure everyone feels the health care system does not really care about helping people. Insurance is tough to come by, people go broke paying medical bills. Health care workers are poorly paid. Even R&D investing is super risky and almost guaranteed not to pay off unless your investing in some new hair loss treatment or erection pill.

Education, also a place we entrust to teach our young to be the best is invested in the least. Being a teacher is not a successful or prestigious position. The support you get from the administration and parents is almost non-existent. Burn out rates are high. We value public education so low, we just don't care that anyone is educated except ourselves and our own children.

We see taxes as wasteful. No one really sees them as helping the common good. Or the more we pay the more we help our own society. We just see the potential waste, or if a single dollar is not spent the right way then all taxes are wrong.

This almost black and white thinking of right and wrong is the same attitude we instill on our law enforcement and judicial system. The compassion there is almost non-existent. Prison is not about rehabilitation it is about punishment. We don't care about criminals and they deserve to basically live in hell for their crimes.

Ok.. one more point. I've just had this feeling for a while and want to write it all down... Homelessness... In LA there are tent cities in downtown. It just follows the same line of reasoning as my previous points - as a society we just don't care about the 'collective' everyone else as long as we are good. Doing anything to help or comfort another human being that is not our direct friend or relative is not in our best interest.

The lack of compassion we have turned into a virtue - it makes us stronger, tougher, more resistant, but does it? At least that is the line of thinking. I am so ingrained in this society that when I see any sort of hand out I automatically think that is bad, that people should work for what they have, and anything else for any other reason is just wrong...

It is such an asshole attitude that we are basically a country of assholes. Some more that others of course. And it has now personified itself to the point where we 'a group of assholes' have elected an asshole as president. What is wrong with us?

pixie_··on Visual Studio Code 1.10
It's everything a scroll bar does and more. Yea you can kind of get to know the structure of your code which is nice and sometimes when I open up a file and the mini-map is dense I already know I'm getting into a big file.

One of the most useful features for me (not sure if VS Code has this), but when I double-click/select a word, all other words with the same name are highlighted in the minimap. It's crazy useful for me, like a double-click/search/find all instances, it helps me jump around code very quickly.

pixie_··on Announcing TypeScript 2.2
I don't get the 'maintaining type definitions is hard' argument. It's super easy to do, especially when coupled with typewriter which will automatically generate types for your server side DTOs. Also having typings saves you an incredible amount of time with fast refactoring, auto-complete, and of course the type checking which saves countless hours of debugging the dumbest mistakes.

When you start talking about getting into code bases that you didn't personally write. The time savings and productivity benefits that TypeScript brings are immense.

pixie_··on Announcing TypeScript 2.2
Woo :) whenever I have to work with an old javascript code base now I always add typings to it first. It makes it orders or magnitude easier to work with and refactor after that.
pixie_··on Elon Musk: Humans must merge with machines or become irrelevant in AI age
They take him seriously because his next move is to often start a company like CyborgX. In which he'll hire the best people in whatever technical field is relevant and have them figure out the details. Space, solar, cars, tunnels, etc..
pixie_··on Updates to our Google Voice apps
Same here. They pushed me from voice to hangouts for all the group SMS and MMS support. So now I have some chat history in voice and some in hangouts which is impossible to search through unlike with voice. Now they want me to go back to voice.

What the hell is going on at Google? Is there anyone with an actual strategy for anything? I thought about getting Google Fi, but right on their page they said if you move from Voice to Fi you can't go back.

I would easily pay $5 a month or more for a company that could give me a single number and not be terrible. I think if Google actually charged for a lot of their free stuff it wouldn't be so shit/never updated/abandoned/etc.. - like an Amazon Prime type thing.

pixie_··on Track Donald J Trump's Electoral Promises with Trump Tracker
I wonder if people actually think he's going to do what he said. The guy has a history of talking bullshit to get what he wants. He just said all the right things and made a bunch of promises to become president. He doesn't care about following through. Why would he? His promises were a means to an end. Trump has a history of fucking people over and now it's our turn.
pixie_··on Time to Dump Time Zones
We need permanent daylight savings time. Yesterday sunset was around 6pm in LA. Today it will be at 5pm. At least I had a little bit of daylight after work, now it's just depressing.
pixie_··on George Hotz cancels his Tesla Autopilot-like ‘comma one’
Tesla probably has a dozen people whose sole job is to interact with NHTSA.
pixie_··on Static typing will not save us from broken software
Interesting, thanks. It seems pretty 'statically' typed to me. Kind of like TypeScript on the surface, but underneath the tooling and transpilers it is not. What do you think?
pixie_··on Static typing will not save us from broken software
Are these cases easy in ClojureScript -

I change the property 'Part' to 'PartList' on my DTO and now I need to find all places that Part is referenced and update them.

I have a function that takes a 'User' as a parameter, but I don't know what the property is called for the display name. Is there an easy way of figuring it out without running the app? REPL wouldn't help because I dont even know how to create a User object (this is a very large code base that I didn't write myself)

I add a new parameter to a render() function and I need to find out all the places the function is called so I make sure to update them.

I make a spelling mistake calling a function or referencing a property. Do I get any instant alert to the error or do I have to run the app, or run REPL on it?

If I'm changing tons of code across many files I don't want to have to run/REPL for every little thing to validate that I didn't make a dumb mistake. Ideally the mistake is caught as soon as I type it. Does ClojureScript have this?

pixie_··on Static typing will not save us from broken software
I spent 10 hours yesterday refactoring and adding features to a client side enterprise application that is well over 20k lines of TypeScript over tons of files.

Yesterday was a pretty productive day for me. TypeScript easily caught hundreds of little errors as I coded and refactored which I fixed just a quickly. Most of the time when I tested my changes things just worked. I thought to myself every time TypeScript found something, 'wow I just avoiding another runtime error, thanks'

Maybe people don't write or maintain client side software at scale. I don't know. But there's so little cost to having static typing I don't know why you wouldn't want it. I am easily an order of magnitude more productive with it. I code faster, my code works first time around more often, other people can understand my code easier, and my tests don't have to worry about validating types so they can be more logic oriented.

There is zero chance anyone would of been able to be as productive as I was yesterday if that code base was dynamically typed. Not even close.

pixie_··on Colonizing Mars: A Critique of the SpaceX Interplanetary Transport System
Musk said 5% of SpaceX is working on the project and that number will increase over time. That's already 250 of the smartest engineers in the world working full-time on the Mars project. They've already test fired the Raptor engine for the rocket and produced a full scale tank of the fuselage for testing. These guys aren't going for 'exploration' like Zubrin wants, they're going for full scale colonization.

Every ship produced is a new member of the fleet that continually moves between both planets. Opening up an interplanetary transportation corridor. If you're someone with the spirit of a colonist, an explorer, an adventure seeker (there are many in the world with that attitude) then Mars is going to be the place you want to prove yourself on. It is romantic, risky, badass, and there are no shortage of people who are going to take the challenge.

An ever increasing number of ships leave every 2 years, and you always have the option to come back. I can easily see people doing fundraisers to go, universities offering scholarships, governments setting up stations to claim some land, companies sponsoring infrastructure projects to say they have a presence on Mars, etc..

pixie_··on Announcing TypeScript 2.0
Having a parameter 'user' doesn't infer what properties are on it. If you're going to document what properties it has you might as well create a type definition for it.

Duck typing (or checking types at runtime) is verbose and forces you to handle type mismatches at runtime. Which means you will probably end up throwing an error anyways when types end up missing the properties you expected.

If your code relies on properties added dynamically that might be useful for you, but god help anyone working with your code.

pixie_··on Announcing TypeScript 2.0
When you start typing user.. your brain is thinking about what type user is and the properties on it. How about not just keeping that knowledge in your brain, but write it down as a type definition so others can work with your code without having to become Sherlock Holmes.
← PreviousPage 2 of 13Next →