Blog 2020/7/26
<- previous | index | next ->
Blog 2020/7/26
<- previous | index | next ->
Some recommended books for improving as a software developer
Most software books are too language specific and go out of date too quickly. What I find has stayed with me are books about bigger concepts, such as systems thinking and complexity, and also so-called "soft skills" such as management and psychology.
These are all really about developing empathy for other people :)
| {:deps {org.clojure/clojure {:mvn/version "1.10.0"} | |
| com.taoensso/nippy {:mvn/version "2.14.0"} | |
| org.apache.commons/commons-compress {:mvn/version "1.18"}}} |
| ; The Expression Problem and my sources: | |
| ; http://stackoverflow.com/questions/3596366/what-is-the-expression-problem | |
| ; http://blog.ontoillogical.com/blog/2014/10/18/solving-the-expression-problem-in-clojure/ | |
| ; http://eli.thegreenplace.net/2016/the-expression-problem-and-its-solutions/ | |
| ; http://www.ibm.com/developerworks/library/j-clojure-protocols/ | |
| ; To begin demonstrating the problem, we first need some | |
| ; "legacy code" with datastructures and functionality: |
| ;; Clojure 1.5.1 | |
| => ; coll (fn [f acc]) renvoie (reduce f acc coll) | |
| => ; coll (fn [f init]) renvoie (reduce f init coll) | |
| => (defn fnil [f init] init) | |
| WARNING: fnil already refers to: #'clojure.core/fnil in namespace: cljug.core, being replaced by: #'cljug.core/fnil | |
| #'cljug.core/fnil | |
| => (reduce + 0 nil) | |
| 0 | |
| => (fnil + 0) | |
| 0 |
| ; Stumbling towards Y (Clojure Version) | |
| ; | |
| ; (this tutorial can be cut & pasted into your IDE / editor) | |
| ; | |
| ; The applicative-order Y combinator is a function that allows one to create a | |
| ; recursive function without using define. | |
| ; This may seem strange, because usually a recursive function has to call | |
| ; itself, and thus relies on itself having been defined. | |
| ; | |
| ; Regardless, here we will stumble towards the implementation of the Y combinator. |
| import javax.net.ssl.SSLParameters; | |
| import javax.net.ssl.SSLSocket; | |
| import javax.net.ssl.SSLSocketFactory; | |
| import java.io.*; | |
| /** Establish a SSL connection to a host and port, writes a byte and | |
| * prints the response. See | |
| * http://confluence.atlassian.com/display/JIRA/Connecting+to+SSL+services | |
| */ | |
| public class SSLPoke { |