HNHacker News
TopNewBestAskShowJobs

bjconlan

140 karma · joined February 28, 2012

submissionscomments
bjconlan··on Ask HN: What is the most beautiful piece of code you've ever read?
As a student in 2001, Tim Sweeney's template recursive inheritance was next level for me:https://www.flipcode.com/archives/Vector_Math_Quaternions.sh...

About 10 years later you would find this stuff everywhere in boost but for the time this was spectacularly elegant for C++

bjconlan··on Day of the Tentacle
A little more 'evolved' (not scumm) but 'Grim Fandango' was also recently updated (well in the last few years) for newer platforms. Ron Gilbert & Co's Thimbleweed Park perhaps deserves a mention here too .
bjconlan··on Goodbye Joe
I'm glad that Joe (and the entire erlang team) got the deserved recognition while they were alive. I also appreciate the title because of the aforementioned film. I was always curious as to if the Simpsons' 'Hello Joe' was a nod to this.
bjconlan··on Documenting architecture: Wireshark, PlantUML and a REPL to glue them all (2017)
This is the greatest idea! I've been writing soapui test cases that show the communication flow between microservices and use cases to provide new developers (and product owners) some incite into how the application is hung together. Something like this is the logical next step and exactly what I was hoping I could derive from new-relic/open tracing/logs (but these are only as good as the technical details)

Nice work I look forward to delving deeper

bjconlan··on 8bitworkshop IDE: Designing Hardware with Verilog
Hey this is great! I still can't believe how hard this stuff is to do these days (lack of good 'newbie' tooling and tutorials with the exceptions)
bjconlan··on Clojure REBL [video]
So is this like exploring the web via a browser using hateoas & mime types? But instead exploring edn on rebl using clojure's 'new' data protocols? Feels old hat... But anything to shine a light on data oriented programming (and clojure sure is beautiful)
bjconlan··on Ask HN: What's a starting point for learning how to write programming languages?
I totally agree here, if you want low level I think j1 forth (http://www.excamera.com/sphinx/fpga-j1.html) and for lisp I really liked http://www.buildyourownlisp.com which uses modern C libraries so it polishes your C knowledge too.
bjconlan··on Zinc: Introduce minimal cryptography library
I wonder how these perform over libsodium's implementations. (Particularly regarding the assembly).
bjconlan··on Ask HN: As a CTO, what is your most frustrating problem with technical debt?
Yeah, I feel that this is by and large the scenario I've witnessed. Not necessarily pushed by slow/lazy engineers but those that are bored with tried and true solutions that have some 'difficult corners to chamfer'. I think the problem with developers is that they want to solve a problem in a very recognisable pattern playing into the Asperger's like nature held by most perfectionists but unfortunately ends up much like your have outlined (but now they have some hot new technology on there resume so moving onto different problems is usually more desirable than re-fixing the new problems they've introduced to solve again)
bjconlan··on 50+ real world use cases built on blockchain architecture
It's so reassuring that I'm not the only one with this view too. I love an audit trail as much as the next guy but all these systems seem to be shoehorned into an distributed public ledger system. (Without the need for being distributed)
bjconlan··on Linus Torvalds on aliasing
This is a very good question. I wonder if we're just rubbernecking the train wreck that is Linus' management style. All his responses come from A "care personally" perspective but I'm still not sure if this is what you would call "radical candor". Either way stay tuned. I really hope we don't loose Linus to burnout on things like this but some days I wish he was more tactful with his responses (particularly to people that look to be trying to "fix" a problem which is seemingly inline with standards even if said person doesn't realise the real world implications)
bjconlan··on Ions: Develop cloud applications by deploying to a running Datomic cluster
It seems Rich (yes and the team at cognitect) might have jumped the shark on this one. (Or this was released too early and the next conf. talk will clear up what the problem is and what it is that this is attempting to solve).

Either way it's rare for Rich not to describe to problem a little more before throwing a solution to it. Hopefully more will come to light in time.

The brief take away I see from this as a non AWS deployment based user is the ability to go beyond the current limitations of only having access to core library functions in the context of datomic. (I see that deployment of applications also plays a part in this but not sure what that solves exactly)

bjconlan··on Angular 5.0.0
Woah! static injector and typescript transforms! does this mean i can use angulars dependency injection framework for any typescript project without including any 'real angular' so i can start writing node services like i would with spring!? (or perhaps closer to dagger2?)
bjconlan··on Comparing C and C++ usage and performance with a real world project
I think what you have said here sums up the problem quite concisely. They might as well add core-foundation, qt-core and stllib based executables to the test for 'c' vs 'c++' to give a better cross section.
bjconlan··on Migration from Postgres to Datomic
Only on a pseudo transactional level. (I say pseudo because I can't be 100% of how data is represented from the README.md of the djangoevents project it might infact be 1:1 to Datomic's EAVT(B) like index.

They do share some commonalities such as:

- history/transaction subscriptions and queries

- Providing a Django ORM/Model like data access system via Datomic's 'Entity API' (although this is Django)

But Datomic isn't just 'event sourcing' (although it's a way to think about solving a problem).

It provides Prolog style queries, functions on the database, a GraphQL like API, Caching (Memcache) and robust Peer library (which also makes it hard for NON JVM languages to use Datomic as it uses a closed protocol... (although very likely uses Artimes/Hornet MQ's internal protocol))

I am talking from a Clojure/Datomic background (so my Django experience is old & limited) But I'm sure you could cobble together something to satisfy all these things for your stack, Datomic just does a beautiful job for Clojure (And I find Cognitect's strangle hold on the technology not great but I think they've loosened the licencing enough to make it acceptable for small businesses & startups which strikes a good balance).

bjconlan··on Ask HN: What is a “boring” web stack?
Haha, but there is always a way to make this less vanilla than people would expect. Ie adding Spring 5 (alpha) reactive web layer & I still love hateoas (spring/data-rest) but adds a little too much extra complexity for the benefit (on the client).

I miss well tested and 'best practice' pattern derived systems...

bjconlan··on Announcing TypeScript 2.0 Beta
I agree, I feel like this is becoming kotlin (not a bad thing) but the syntax is quite a divergence from es5+types less so with es6 but your sentiments are bang on
bjconlan··on Disruptor: High performance alternative to bounded queues (2011) [pdf]
I also really liked Trisha's presentation on this https://www.infoq.com/presentations/Concurrent-Programming-U....

Also want to append https://projectreactor.io/ which uses most if not all of the aforementioned technologies too.

bjconlan··on Venture Capital’s Answer to High-Priced Housing: Dorms for Grown Ups
The return of the flophouse... hopefully after the .com-2.0 crash maybe the homeless in SF will have a place to call home again.
bjconlan··on Why I will be using RISC-V in my next chip
I think my biggest concern is big blue, I'm sure they will have an eagle eye on this and make sure that as soon as someone accidentally adds support that falls close to one of their patients it will stifle the energy and progress of the community. The further they slide into the abyss the more desperation will drive moves like this... But only time will tell.
bjconlan··on OK: An implementation of the K5 programming language
Damit! Piped at the post with the name. (I had a working title of 'ohk' of my own k5 impl (based of rob pike's ivy) although like most things I do will probably never see the light of day.

A js implementation! This is something I can't wait to play with! Thanks!

bjconlan··on A Formula for the Number of Days in Each Month
Wow that's very clever!
bjconlan··on Atlassian Valued at $3.3 Billion
Hahaha, so true...
bjconlan··on Show HN: My new JavaScript MVC framework
The templating language reminds me a little of what spacebars (htmljs) probably looks like if a nice mustache facade wasn't put in front of it. (which goes back to Gee's comment about react... but I guess anything these days that promotes a 'virtual dom' will probably be tarnished with that brush from first glance)

I love the simplicity and independent direction this micro-framework provides. It's very 'non-magical' which I think makes it far more appealing.

If you end up solving the HATEOAS/ember-data sideloading/'embedded foreign key data loading' problem I think this will be my goto library (though this probably falls out of the microframework requirements also ;)

bjconlan··on Why do credit card forms ask for Visa, Mastercard, etc.?
I also did one in javascript (i've requested it be ammended to the accepted response but we'll see how it reviews) anyway here it is:

  function validateCC(ccNumber) {
    var ccNumber = ccNumber.replace(/ /g, '');

    console.log(
      /^3[4|7]\d{13}/.test(ccNumber) ? 'AMEX' :
      /^6011\d{12}/.test(ccNumber) ? 'Discover' :
      /^5[1-5]\d{14}/.test(ccNumber) ? 'MasterCard' :
      /^4[\d{12}|\d{15}]/.test(ccNumber) ? 'Visa' : 'Unknown',
      ccNumber,
      ccNumber.split('').reverse()
        .map(function (v, i) { return v * (1 + i % 2) })
        .reduce(function (agg, v) { return agg + v; }, '').split('')
        .reduce(function (agg, v) { return agg + +v; }, 0) % 10 === 0 ? '(valid)' : '(invalid)');
  }
btw to markup simply append 2 spaces to the front of the newline
bjconlan··on Koa – Next-generation web framework for Node.js
I don't think this yields the current thread/routine though does it? I think what you are seeing here is closer to express':

  function(req, res, next) {
    console.log('before');
    next(); // go to the next middleware handler
    console.log('after the middleware stack has been traversed');  
  }
bjconlan··on RocksDB – A persistent key-value store for fast storage environments
Wow, Awesome link, LMDB always seems to fly under the radar, SkyDB+LMDB. Genius. (and written in go! I'm sold... well will at least give it a bash)
bjconlan··on Bret Victor's live editable game in ClojureScript
Wow that is a great example! Kudos Chris.

I would also like to point some of the commenters to (fluxus) http://www.pawfal.org/fluxus/. It is a very nice example of this concept of the same thing, only using racket/plt scheme.

Live coding/reactive code are fantastic little ideas which I wish had been exposed to me earlier in my career.

← PreviousPage 5 of 5