HN user

BJanecke

65 karma

[ my public key: https://keybase.io/otherben; my proof: https://keybase.io/otherben/sigs/vXsGkDnDi5lQry2LpckuM542IIRPpTMtdERHeVH9rQc ]

Posts11
Comments58
View on HN

There is nothing about learning how basic data structures and algorithms work that won't help you in your day to day development.

You might be "fine" without it in a certain category of job, but rather than be dismissive about it you could be excited about having a massive wealth of information that you can use to do your job better.

There will always be something else to learn, wether it be how to apply Domain Driven Design to your work or how to work with graphs when munging data. It's always worth it.

[edit] Run on sentence

Sony Aibo 9 years ago

He writes about Design, and also likes to call it a game of constraints(paraphrasing).

Just like the other non programming book on the list(Thinking Fast and Slow) GEB is a lot about perception to me.

Understanding that nothing is purely logical nor is it purely expressionistic; by pigeonholing your perception of any design whether it be Code, Math or Art to either Logic xor Expression you are blinding yourself

The other angle for GEB is design

I read GEB along with Design of Design years ago following my mentor at the times suggestion, I would highly recommend doing this. Think of it as the Gödel, Escher, Bach, Brooks (Although Brook's writing style can be laborious at times) Recognizing patterns in all design work helped my understand my own design process better.

* Douglas Hofstadter - Gödel, Escher, Bach: an Eternal Golden Braid

* Fred Brooks - Design Of Design

* Fred Brooks - The Mythical Man month

* Eric J. Evans - Domain Driven Design

* Design Patterns: Elements of Reusable Object-Oriented Software

* Kent Beck - Extreme Programming Explained

* Kent Beck - Planning Extreme Programming

* Michael C. Feathers - Working Effectively with Legacy Code

* Daniel Kahneman - Thinking, Fast and Slow

[EDIT] Correct the author for legacy code

I have always held the belief that everyone is entitled to their own life and can do with it as they please. This exchange reinforces that.

I respect that, and accept that you have the right to your own life. You and your life have had great meaning to me and I will forever be thankful for that.

I'd suggest you pay a visit to your nearest ER and have the staff there give you some advice. Melancholic depression, fairly often is a symptom of other known health problems, that we as humans have ways of alleviating. I'm sure you've spent time and effort towards trying to solve what you are wrestling with now, but if you would like to give it one more chance the best possible thing you could do is pay your nearest ER a visit.

I think that's really cool, although

// Find the first foo with bar foos.map(f => f.bar).uniq().orderBy(f => f.baz)[0]

does the same basic thing, the ability to collapse and display intent is incredibly rad for lack of a better word

Software

The Mythical Man Month && Design Of Design by Fred Brooks

Everything else

Hitchhikers Guide (Existentialism does not have to be edgy) The Foundation Series (Bureaucracy and Institutionalization will never undermine Ingenuity) Dune Series (Plans within plans)

What does that mean?

Go read https://www.digitalocean.com/business and https://status.digitalocean.com/ if that doesn't put you at ease send them an email.

However it shouldn't matter. Droplets are essentially just on demand "vps's" most of the operations work is done by your operations team(in this case I imagine this is you). Where your hosts(machines, containers, vps's whatever you want to call them) are shouldn't matter very much, what is important is that you have repeatable infrastructure, so that when you spin up a new VPS anywhere(AWS, DO, Vulcan, Your Garage) you can get up and running again fairly quickly.

[edit] Added status page

Kotlin Is Better 9 years ago

Kotlin is really nice and I am very happy to have more than one great/fun/productive language however I feel like mentioning typescript might be worthwhile (yes I know it's "just" a superset of JS and you have a personal gripe with whatever you think JS is but hear me out).

* Runs everywhere js/asm

* MIxed bag of tooling, but generally you can find something amazing and you won't have to venture to sourceforge or similar to submit a patch

* Doesn't suffer from the coljure/scala "We can totally use other JVM libraries but we only really do that If we have no other option"

* Absolutely beautiful generics and spot on inference

   ```
    function pluck<T>(key: keyof T, from: T[]) {
       return from.map(item => item[key]);
     }
   ```
* First class functions

* Incredible flexibility

   * sketch in js then annotate  

   * decide on strict nulls

   * decide on implicit types

   * various approaches to composition 
* Amazing IDE support(VSCode)(This technically falls under tooling ;))

* One of the few cross-platfrom languages that feel pretty much identical on all the platforms

[edit] Formatting

This is fairly dangerous advice and amounts to. "Hey folks, I think it's a great idea to friction weld parts of your code together"

It's not YAGNI or duplication, if you can't understand why we program to an interface and not an implementation then you just very seriously need to go look at your codebase and decide to extend a core bit of functionality, one that usually comes to mind is Authentication/Entitlement

So generally, I write a test when I want to make an assumption an certainty. If I can't be certain that something is doing what it's supposed to I write a test for it, make sense?

So

``` Int => add(x, y) => x + y; ```

Doesn't get a test, however

``` Int => formulateIt(x, y) => (x * y)^y ```

Does

Obviously appreciating that NASA has some sensitive data but just for a second also try and appreciate how would this play out for someone who works in the financial industry, where unauthorised sharing of sensitive data is not only a breach of contract with your employer/clients but a crime(insider trading) in almost all countries.

Or imagine how the people who enforce these new regulations can exploit this.

Query from the traveller at the border what their job is, if in the financial industry request that they relinquish their email find something that could tip you off and go buy stock. If they don't you lose nothing, you deport them, you do your job.

I understand that you might want to tear this apart, but keep in mind the person that requests your data will often not be the person viewing it, so you are in no position to just "Take some names" and then ensure that your data remains confidential.

This is terrifying.