HN user

gk_brown

123 karma
Posts25
Comments30
View on HN
github.com 2y ago

Show HN: Kilo – Lightweight REST for Java

gk_brown
3pts0
github.com 3y ago

Show HN: Sierra, a DSL for building Java Swing applications

gk_brown
100pts33
github.com 7y ago

Show HN: Lima, a Swift-based DSL for responsive iOS development

gk_brown
37pts20
gkbrown.org 7y ago

Show HN: You Don’t Need GraphQL

gk_brown
1pts3
github.com 8y ago

Show HN: Kilo – a lightweight REST client library for iOS and tvOS

gk_brown
1pts0
gkbrown.org 8y ago

Show HN: Simplify auto layout in iOS with MarkupKit

gk_brown
1pts0
gkbrown.org 8y ago

Show HN: MarkupKit 4.2 adds binding expression formatters

gk_brown
1pts0
gkbrown.org 8y ago

Show HN: Live preview of markup documents in MarkupKit 4.1

gk_brown
1pts0
gkbrown.org 9y ago

Show HN: A Lightweight Alternative to JAX-RS

gk_brown
1pts0
gkbrown.org 9y ago

Show HN: MVVM in iOS

gk_brown
2pts0
gkbrown.org 9y ago

Show HN: Simplifying Auto Layout in iOS

gk_brown
3pts0
gkbrown.org 9y ago

Show HN: JTemplate – Template-Driven REST Services for Java

gk_brown
1pts0
gkbrown.org 9y ago

Show HN: HTTP-RPC – A Lightweight Multi-Platform REST Client Framework

gk_brown
2pts0
gkbrown.org 9y ago

Show HN: MarkupKit – Declarative UI for iOS

gk_brown
6pts0
github.com 10y ago

Show HN: Lightweight cross-platform web services

gk_brown
1pts0
github.com 10y ago

Show HN: A Java framework for building microservices?

gk_brown
1pts1
gkbrown.org 10y ago

Show HN: Simplify iOS auto layout with markup

gk_brown
4pts0
gkbrown.org 10y ago

Show HN: Periodic table implemented using auto layout

gk_brown
1pts0
github.com 10y ago

Show HN: MarkupKit – Declarative UI for iOS applications

gk_brown
2pts0
gkbrown.org 10y ago

Show HN: Using Templates to Transform Web Service Results into Markup

gk_brown
3pts0
gkbrown.org 10y ago

Show HN: Parameterized JDBC Queries Using the HTTP-RPC Parameters Class

gk_brown
2pts0
github.com 10y ago

Show HN: WebRPC – a simple alternative to REST and SOAP

gk_brown
19pts13
github.com 10y ago

Show HN: WebRPC – Cross-platform RPC over HTTP

gk_brown
2pts1
gkbrown.wordpress.com 10y ago

Show HN: MarkupKit – Declarative UI for iOS Applications

gk_brown
23pts5
gkbrown.wordpress.com 10y ago

Show HN: MarkupKit – Declarative UI for iOS Applications

gk_brown
3pts0

I understand the GraphQL pitch - I just don't buy it. From my experience, you don't generally need that level of flexibility. Most callers probably want the full set of data returned by your API. Those that don't can easily ignore it or filter it out client-side. So GraphQL is basically a big, unnecessary hammer.

Hi all. I'm the author of this project on GitHub. It seems like it might be a good foundation for building microservices in Java. However, I'm not a microservices expert, so I was wondering what others with more experience in this space think. Thanks!

That sounds cool. WebRPC isn't meant to be an "everything to everyone" solution. It's main advantage is simplicity and low overhead. It allows you to quickly and easily build a service tier that is consumable by multiple clients. But if your requirements scale beyond what WebRPC provides, Thrift sounds like a great option.

If you are implementing a REST service, then I agree with you 100%. WebRPC is simply a different interpretation. In WebRPC, GET means "get the result of executing this method". POST basically means the same thing, but the arguments are passed in the message body (just like an HTML form).

The client libraries all use POST internally - GET is primarily useful for testing and debugging (so you can easily execute a method in the browser).

Not sure. The client libraries don't work with sockets directly. The Java client uses HTTPURLConnection, the Objective-C/Swift client uses NSURLSession, and the JavaScript client uses XMLHttpRequest. You'd have to check the documentation for each of those to see what they might be doing under the hood, or what options you might have for configuring them. Same goes for the server, which just sits on top of a servlet container. You'd have to see the container docs to see what your options are.

WebRPC is a lot lighter than XML-RPC (or JSON-RPC). It's really just a thin layer on top of HTTP. Arguments are passed in the query string (or as form parameters, if POSTing), and the response value is returned directly as JSON. There's no body or envelope to parse. This makes WebRPC services really easy to consume by any client that supports HTTP and JSON (which is pretty much most platforms). WebRPC services are also really easy to test, since you can execute a method and get the results back simply by typing a URL in your browser.

I haven't used Thrift myself, but I just took a quick look at the docs. My initial reaction is that Thrift seems to be a bit heavier. WebRPC doesn't require any intermediate interface definitions and doesn't create language-specific client proxies. Method invocations are all dynamic (although you could easily wrap the invocation API in a statically typed adapter if you wanted to).

WebRPC isn't meant to be a replacement for REST - just an alternative. Sometimes it's simply more convenient to think in terms of "methods" than "resources".

I've been antenna-only for 6+ years now. My first antenna cost $60 and was OK. After a couple of years, I replaced it with a $100 version that is much better. I rarely ever have any issues with it.

When I got my TiVo a few years ago, you could buy a lifetime subscription. I think it was about $300, which seemed pretty reasonable. I've had the unit for almost 4 years so I've definitely broken even on it.

They still seem to offer a lifetime plan, but now it costs $600. That's a bit harder to justify.

XAML was definitely one of the inspirations for MarkupKit. It was also inspired in part by MXML (Apache Flex), FXML (JavaFX), and to some extent HTML. It's also conceptually similar to the markup language used to build Android applications, though I don't have much experience with that.

Some additional information and examples:

Implementing Radio Button-Like Behavior in iOS Applications

https://gkbrown.wordpress.com/2015/08/10/using-lmtableview-t...

Creating Custom Table View Cells in Markup

https://gkbrown.wordpress.com/2015/08/19/creating-custom-tab...

Using UIStackView with MarkupKit

https://gkbrown.wordpress.com/2015/09/29/using-uistackview-w...

MarkupKit Examples

https://gkbrown.wordpress.com/2015/08/14/markupkit-examples/

A Practical Example Using MarkupKit and WebRPC

https://gkbrown.wordpress.com/2015/09/08/a-practical-example...

Things may have changed recently, but online YP searches have typically been just as frustrating. Most of the time, the top search results are paid promotions nowhere near me and sometimes not even relevant to my search.