HN user

paulkoer

187 karma
Posts6
Comments48
View on HN
Google Pixel Buds 6 years ago

I guess if both have the pixel buds then you don't necessarily need the phone?

I get that its not quite the smooth experience (yet?) that we want it to be but that we're approaching this previously unbelievable futuristic thing is amazing to me!

Senior Software Engineer | VISA Sponsor | €60K-€85K | On-Site | Full-time | Munich, Germany

Smart Reporting is one of the world’s top startups in digital health. Our mission is to enable AI assisted diagnostics for the benefit of doctors and patients around the world. Already today, our award-winning software is used by thousands of doctors and institutions, including some of the world’s leading experts in radiology.

As a Senior Software Engineer, you will be an essential part of the rapidly growing development team at Smart Reporting. You will bring your entire experience to bear as we strive to build a high performance, high quality cloud-based medical product for AI driven precision medicine.

https://www.workable.com/j/51E3108EC5

Senior React Engineer | VISA Sponsor | €60K-€85K | On-Site | Full-time | Munich, Germany

Smart Reporting is one of the world’s top startups in digital health. Our mission is to enable AI assisted diagnostics for the benefit of doctors and patients around the world. Already today, our award-winning software is used by thousands of doctors and institutions, including some of the world’s leading experts in radiology.

As a Senior React Developer, you will be an essential part of the rapidly growing development team at Smart Reporting. You will bring your entire experience to bear as we strive to build a high performance, high quality cloud-based medical product for AI driven precision medicine.

Apply here: https://www.workable.com/j/18AC657108

Senior React Engineer | VISA Sponsor | €60K-€85K | On-Site | Full-time | Munich, Germany

Smart Reporting is one of the world’s top startups in digital health. Our mission is to enable AI assisted diagnostics for the benefit of doctors and patients around the world. Already today, our award-winning software is used by thousands of doctors and institutions, including some of the world’s leading experts in radiology.

As a Senior React Developer, you will be an essential part of the rapidly growing development team at Smart Reporting. You will bring your entire experience to bear as we strive to build a high performance, high quality cloud-based medical product for AI driven precision medicine.

Apply here: https://www.workable.com/j/18AC657108

Senior Full-Stack Engineer | VISA Sponsor | €50K-€85K | On-Site | Full-time | Munich, Germany

Smart Reporting is one of the world’s top startups in digital health. Our mission is to enable AI assisted diagnostics for the benefit of doctors and patients around the world. Already today, our award-winning software is used by thousands of doctors and institutions, including some of the world’s leading experts in radiology.

As a Senior Fullstack Developer, you will be an essential part of the rapidly growing development team at Smart Reporting. You will bring your entire experience to bear as we strive to build a high performance, high quality cloud-based medical product for AI driven precision medicine.

Apply here: https://www.workable.com/j/51E3108EC5

Senior Full-Stack Engineer | VISA Sponsor | €50K-€85K | On-Site | Full-time | Munich, Germany

Smart Reporting is one of the world’s top startups in digital health. Our mission is to enable AI assisted diagnostics for the benefit of doctors and patients around the world. Already today, our award-winning software is used by thousands of doctors and institutions, including some of the world’s leading experts in radiology.

As a Senior Fullstack Developer, you will be an essential part of the rapidly growing development team at Smart Reporting. You will bring your entire experience to bear as we strive to build a high performance, high quality cloud-based medical product for AI driven precision medicine.

Apply here: https://www.workable.com/j/51E3108EC5

I second this. I used to think practicing gratitude was stupid, or at least not really worth my time. I have recently picked up stoicism and one key techniques seems to be "practicing negative visualization" - basically imagining how much worse of you could be. I found that once I really think through all the hardships that I could find myself in I appreciate my current situation much more and feel much happier.

Curiously, I think I also get more done now because I feel better, am in a better mood and spend less time anguishing about all the things which are not perfect or could somehow be better. It has also made me aware that many people do find themselves in various hardships and my appreciation for my situation has really grown again through this.

Stop being so hard on yourself and cut yourself some slack - if you're the perfectionist type (like me) it does a lot more harm than good!

This is a really awesome library to generate typesafe sql queries right from the C++ source code. Example usage:

  auto res = db(select(foo.name, foo.hasFun)
                .from(foo)
                .where(foo.id > 17 and foo.name.like("%bar%")));
If you're writing SQL queries in C++ code check it out!
Dance in a Year 13 years ago

So the obvious question: What did you focus on that let you improve way more than other people? I do write code and learn something new every day and while I would say that I have improved a lot in the last few years I am still ways away of where I would like to be. Somehow I have the feeling this is not going to change.

I imagine that everyone has to decide specifically where they want to improve and figure out how to work precisely on that, but I would be interested to hear what exactly has worked for you?

Here is a simple suggestion to end the lawsuit madness: The loosing party must bear all costs of the process. This is how it works in Germany. Added benefit: The expected value for suing people over the most ridiculous things is suddenly negative.

Re 2: Well, sometimes you need them, but they do throw exceptions on empty lists, so if you don't know for sure that the list is non-empty it is definitely a bad idea to use them. I just thought a warning would be in order when presenting them. This is a point where Haskell's type safety (can't know at compile time if a list is empty or not) falls short and I think a lot of Haskellers try to avoid such functions for this reason. For example the Xmonad code uses zippers in a few places instead of lists which always have one element.

There's a few more points that I can't go into in detail due to lack of time (reason for use of recursion instead of loops, if / case statements, purity) and I do appreciate the effort and can imagine that it will prove useful but I felt obliged to point out these things. If I can see them it's not a good sign ;)

I am afraid this is not a very good guide. I am by no means a Haskell expert, but even I can pick out a number of things which are not done very well and are not idiomatic Haskell. For example:

myMap func [x] = [func x]

myMap func (x:xs) = func x:(myMap func xs)

myMap does not deal with the empty list, will throw an exception if it is called with one, and there is no reason for it. (Just replace myMap func [x] = [func x] with myMap func [] = []).

Several functions that throw exceptions on empty lists (head, last) are introduced without any warning (such functions are considered bad style by many Haskellers).

-- Haskell has a very strong type system, and everything has a type signature.

I believe a 'type signature' is the annotation, and no, not everything in Haskell has a type signature. Everything has a type.

-- if statements

If is not a statement in Haskell, it is an expression. Same with case 'statements'.

There were quite a few more, see discussion on the Haskell reddit: http://www.reddit.com/r/programming/comments/1h917l/learn_x_...

Not all have been fixed. I love the idea of this, but I think these issues should be addressed before people actually use this to 'learn' Haskell.

Edit: corrections

For those interested in an experience report I'll copy and paste the post from the developer from http://www.reddit.com/r/haskell/comments/1ha5dd/rss_reader_w... (go there for some additional discussion):

<--- 8< ---->

Hi, I'm developer of this RSS reader and want to share with you why Haskell is a big win for my project.

First. Haskell is a fast compiled language. Most RSS readers are written in Python, Ruby or PHP. And they're all quite slow or requre a ton of servers to handle the load. With Haskell I'm able to quickly implement complex features and don't think much about performance.

Second. Haskell is very high level and handles concurrency well. It's not a problem to write very generic code or spawn thousands of threads.

Third. There a many good libraries now (much more than 10 years ago ;).

I want to thank Bryan O'Sullivan, Michael Snoyman and all other package authors for their efforts on making Haskell true platform.

I'm especially like text, riak, aeson, http-conduit and warp packages. They're used 24x7 under load and I haven't found any major problems with them.

And few quirks.

Unfortunately not all packages are equal in quality. Many libraries are toys or don't work well under load. But at least there are libraries to take some code from.

Bindings to C libraries (as well as C libs itself) are evil. I've had problems with almost every C package I've tried (curl, regex-pcre, hsdns).

Long-lived ByteStrings can cause memory fragmentation and ten-fold performance drops. So I'm using Text for everything except I/O.

Haskell was missing fast malformed html/xml parser. But it took only a couple of days to write fast-tagsoup package that parses tens of MB/sec.

In general with Haskell I can quickly write high level code that runs fast. And (at least for my project) I'm seeing that most tasks now are CPU bound (due to fast SSDs), not I/O. So compiled yet high-level languages shold gain more popularity now.

If you have some questions about reader implementation details feel free to ask me.

PS: reader is profitable, so I'm thinking it could be counted as a Haskell success story ;)

</--- 8< --->

The only way public demonstrations are going to have an effect is for them to be massive and concentrated. That does not mean widespread protests are a bad idea per se, but that if none of the protests actually have mass, they are going to be ignored by both officials and your fellow citizens as a temporary annoyance for which they will hold little sympathy.

This statement sounds a little defeatist and gives an excuse for not participating in demonstrations (since the required massive scale is likely not reached, one might be better of not going).

Actually demonstrations, even if they do not effect immediate change, will still have a number of positive outcomes. First, they will likely be reported on in the news (at least that would be the case in Germany), raising awareness. Second, demonstrators will meet like minded individuals with whom they can network and form strategies. Third, demonstrators will realize that they are not isolated and feel more empowered as a result. Last, it will at least remind the public and politicians that some people do care about this.

Is any of this enough to affect change? Likely not. But it is a first step and if we can't even go demonstrate against this then we might as well stop caring. The possibility that demonstrations will not have the immediate effect we desire should not stop us.

yes, in this case there is no need to do anything. The Haskell Platform is vetted packages + an easy way to get it all installed (which can be slightly tricky otherwise).

As a soon-to-be graduate in Germany I can second all of your guesses. ANYONE I know is going to either join BigCorp Inc or staying at Uni. I had a feeling for a long time that that was not for me and I started looking into doing a startup. For now I am not ready so I am going to work for one, but I am really the odd one among my peers. Parents also think it's weird when you had this opportunity to work for a big name. So in Germany a lot of it is definitely cultural and perception, I imagine its similar in the UK.

Wait ... by applying the overdraft fee aren't you effectively overdrawing your account even more? There should be an overdraft fee for that! Kinda weird they haven't figured that out yet...

TL;DW (too long, didn't watch)

Strong correlation between income inequality within nations [1] and a number of measures that measure 'wellbeing of society' (life expectancy, education, crime, health, trust and aggregate measures). Plotting these measures against the GDP per person (richness of nation) shows weak or no correlation.

Bottom line: More unequal societies have more social problems.

[1] ratio between wealth of top 20% and wealth of bottom 20%.

EDIT: economic problems -> social problems in bottom line

On one hand I feel the same - Shen looks incredibly nice. And it features a lot of things that I hope Clojure will have in the future (such as an optional static type-systems and high portability due to Clojure in Clojure). Then on the other hand a language's usefulness is to a large degree determined by having a minimal viable userbase - you just cannot write every library yourself. And by being highly pragmatic, running on the JVM and so forth (and probably many other things I don't comprehend) Clojure has achieved just this. So I think right now its the most practical Lisp. If Shen has a lot of nice features maybe we can learn from it!

Macros in Perl6 15 years ago

This is interesting. You can manipulate the AST in other languages of course, for example Python. However these ASTs are so difficult to handle that programmers don't really want to work with them (see point 12. on bottom of the page http://norvig.com/python-lisp.html).

I think Paul Graham wrote that any language implementing macros with Lisp-power will effectively have to introduce something that is 'as bad or worse than the parenthesis'. [1] It will be interesting to see how this will play out in Perl6.

However the example given in this article is pretty limited, so I think we can't really tell based on that. It also begs the question 'Why not use a function?', i.e. it is not a case where one needs a macro. It will be interesting to see how Perl6 handles real macro use cases where you have to do heavy AST manipulation. I think here the Lisp syntax is really showing its strengths because you don't have to think in terms of a different representation that you don't have in front of you.

[1] See text after the 1-9 list. http://www.paulgraham.com/icad.html

Edit: Better source for [1].