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 { |