Kris Jenkins (@krisajenkins@mastodon.social) Profile Banner
Kris Jenkins (@krisajenkins@mastodon.social) Profile
Kris Jenkins (@[email protected])

@krisajenkins

4,669
Followers
1,094
Following
1,215
Media
17,971
Statuses

Host of Developer Voices, lifelong programmer, producer of bleepy-bloop noises.

London
Joined December 2008
Don't wanna be here? Send us removal request.
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Today I learned that raspberries make great Lego Afros.
Tweet media one
79
4K
6K
@krisajenkins
Kris Jenkins (@[email protected])
6 years
The idea that you can’t be a great software engineer without a CS degree is nonsense. The idea that there’s no value in spending three years studying the fundamentals of our field is also nonsense.
50
1K
3K
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Okay Washington Post, you got it. 👍
Tweet media one
31
2K
3K
@krisajenkins
Kris Jenkins (@[email protected])
4 years
Q. What are Story Points? A. Story Points are a way of making developers deliver faster by asking them for a random number, and then saying, “That seems a little high,” until they say a smaller number.
42
672
2K
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Reminder: ‘Going for a walk’ is a pro debugging technique.
31
892
2K
@krisajenkins
Kris Jenkins (@[email protected])
7 years
I have a stack. All I need now is a good acronym... 🤔
Tweet media one
98
636
2K
@krisajenkins
Kris Jenkins (@[email protected])
5 years
Maybe instead of, "doing agile," we should ask, "where's your feedback loop?" Do you have a feedback loop at all? Is it fast? Is it simple? And does it actually involve end-users?
16
552
1K
@krisajenkins
Kris Jenkins (@[email protected])
8 years
This is your return type: Int This is your return type on microservices: IO (Logger (Either HttpError Int)) Microservices: Know the risks.
11
433
578
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Blog Post: What is Functional Programming? (Hint: It's not map, filter and reduce.)
47
279
437
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Elm: Wait, I can't define my own Ord instance? PureScript: Wait, I have to define my own Ord instance? JavaScript: 100 > "3" 😂
6
212
384
@krisajenkins
Kris Jenkins (@[email protected])
6 years
I think this new feature in #PostgreSQL 11 is going to be great for enterprise environments.
Tweet media one
8
171
368
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Bad news for vi fans.
Tweet media one
8
203
345
@krisajenkins
Kris Jenkins (@[email protected])
8 years
In Haskell, you can feel like an amateur but it still works. In JavaScript you can feel like an expert but it still breaks.
4
170
304
@krisajenkins
Kris Jenkins (@[email protected])
4 years
Choose a language where refactoring is easy enough to be enjoyable, or this will happen to you.
Tweet media one
14
61
299
@krisajenkins
Kris Jenkins (@[email protected])
3 years
Duplication is cheaper than the wrong abstraction, it's true. The right abstraction is still cheaper than both of those. Sometimes it's so much cheaper I've seen people build entire businesses from one insight. Duplicate where appropriate but don't stop hunting for the pattern.
10
43
246
@krisajenkins
Kris Jenkins (@[email protected])
9 years
Some programming languages are good *if* you're disciplined. This is backwards. Computers are good at discipline, humans are not.
16
234
233
@krisajenkins
Kris Jenkins (@[email protected])
6 months
Zig might be the most ambitious language we’ve looked at on Developer Voices - it’s trying to replace C, compete with LLVM and be the foundation of the whole compilation story. It’s a feast for language fans… 🎧 📺
6
41
238
@krisajenkins
Kris Jenkins (@[email protected])
7 years
OH: "They're doing some impressive ETL stuff." "What's 'ETL'?" "Extract, transform, load. It's the Enterprise name for foldM."
4
75
180
@krisajenkins
Kris Jenkins (@[email protected])
4 years
The year is 2098. A mother waves to her son as he enters the playground. "Have a good day!" she calls. "Don't forget to like and subscribe!" No-one remembers the origin of this phrase. It's just something your parents always said when people left.
1
37
181
@krisajenkins
Kris Jenkins (@[email protected])
8 years
#TIL : July (the seventh month) is an hour behind July (the zero-seventh month). In #JavaScript -land at least.
Tweet media one
8
156
170
@krisajenkins
Kris Jenkins (@[email protected])
8 years
For some Friday afternoon fun, here’s a Raycaster written in @elmlang with @derkyjadex :
Tweet media one
5
48
156
@krisajenkins
Kris Jenkins (@[email protected])
7 years
JavaScript's Object.freeze() only freezes top-level properties. In which case it might be better named Object.frosting().
4
59
155
@krisajenkins
Kris Jenkins (@[email protected])
7 years
It’s quite funny that the type: String -> String …is actually more vague than: a -> a
6
56
151
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Don’t get too attached to any one programming language. Find ones you love and love ‘em, but remember they exist to serve, not define you.
7
103
148
@krisajenkins
Kris Jenkins (@[email protected])
6 years
It’s finally happened: A publisher has approached me asking if I want to write a course on Jenkins. Bravo. 10/10 for research effort. 👏👏👏
5
8
149
@krisajenkins
Kris Jenkins (@[email protected])
5 years
Sorry. I couldn't resist.
Tweet media one
1
45
140
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Here’s my @oredev talk about #PureScript , and the big ideas it embodies. Ideas I hope make it into mainstream programming soon. But you don’t need to wait - you can have it all today. 😎
9
38
143
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Okay, here's the true difference: Junior developer: Has keyboard-shaped bruises on their forehead. Senior developer: Has keyboard-shaped calluses on their forehead.
1
30
139
@krisajenkins
Kris Jenkins (@[email protected])
2 years
I wish Rust had type holes. Heck, I wish every language had type holes.
10
13
137
@krisajenkins
Kris Jenkins (@[email protected])
2 years
JavaScript Maps in a nutshell: Me: Save this under the key `[1,2]`. JavaScript: Done. Me: What's under the key `[1,2]`? JavaScript: Nothing. Never seen that key before in my life. 🤦‍♂️
15
10
131
@krisajenkins
Kris Jenkins (@[email protected])
6 years
It looks like they’re roaring, but they’re actually all laughing because their day rate is 2k and they can’t be fired.
@auchenberg
Kenneth Auchenberg 🛠
6 years
The last existing team of COBOL developers 😂 Source: Unknown
Tweet media one
51
1K
3K
1
37
131
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Any TDD system with 100% coverage contains an ad hoc, informally-specified, bug-ridden, slow implementation of a type checker.
5
89
131
@krisajenkins
Kris Jenkins (@[email protected])
6 years
This I promise you: Hiring people to maintain an Elm or PureScript app is not your biggest problem. Your biggest problem is the amount of maintenance your JavaScript app needs.
2
42
127
@krisajenkins
Kris Jenkins (@[email protected])
9 years
Spotify API docs: "The field filter tag:hipster can be used in album searches to retrieve only albums with the lowest 10% popularity."
3
221
124
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Shout to anyone still on their first-to-sixth programming languages. 😎 #firstsevenlanguages
2
39
121
@krisajenkins
Kris Jenkins (@[email protected])
7 years
I saw the best minds of my generation gradually moving towards Haskell.
4
33
120
@krisajenkins
Kris Jenkins (@[email protected])
8 years
I’ve dealt with massive changes to types, and those were good mornings. I’ve dealt with massive changes to tests, and those were bad weeks.
2
47
118
@krisajenkins
Kris Jenkins (@[email protected])
3 years
Today's spicy open-source take: the people who give you their work for free don't owe you a good goddamn thing. If you're dependent on their effort, pay their rent, pay their bills, buy them some of that free time you want a slice of. *Then* you can start making demands.
4
22
117
@krisajenkins
Kris Jenkins (@[email protected])
7 years
This is about 20% of frontend programming.
Tweet media one
7
62
117
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Bob Martin hates him! Local man gets 100% test coverage of null pointer exceptions for FREE!
3
41
116
@krisajenkins
Kris Jenkins (@[email protected])
8 years
I am writing a site in Elm. It has a contact page. I am using a lens library. I have just defined `contactLens`. /exits, stage right.
5
20
114
@krisajenkins
Kris Jenkins (@[email protected])
4 years
Refactor often. Always leave code better than you found it. Good software is made of a few big improvements and a thousand small ones.
2
21
110
@krisajenkins
Kris Jenkins (@[email protected])
9 years
A programmer has a problem and thinks, "I know, I'll use microservices!" Now they have a pr o b l em.
6
176
112
@krisajenkins
Kris Jenkins (@[email protected])
1 month
Which languages have first-class support for creating finite state machines? 🤔
77
7
109
@krisajenkins
Kris Jenkins (@[email protected])
9 years
Gonna write a "Should I Use MongoDB?" app that asks you 10 questions about your needs then loses all your answers. #bitingsatire
3
133
101
@krisajenkins
Kris Jenkins (@[email protected])
3 months
I'm thrilled to be able to say this: This week I'm joined by @simonpj0 , who has to be one of the smartest, nicest and most infectiously-enthusiastic people in the whole of computing. 📺
2
19
102
@krisajenkins
Kris Jenkins (@[email protected])
9 years
You are in a room. There is tea here. > DRINK TEA You win. Play again? > Y
8
118
101
@krisajenkins
Kris Jenkins (@[email protected])
3 months
What tricks are databases pulling to parallelize billion-row queries and answer them in seconds? Join me & #DuckDB co-creator (& DB professor) Hannes Mühleisen for a delightful journey beyond the query planner. 🎧 📺
5
15
98
@krisajenkins
Kris Jenkins (@[email protected])
1 year
I'm happy to say I've just been promoted at Confluent. I'm now a Staff Developer Advocate. I asked if I could be a Broadsword Developer Advocate instead, but they said a mage class can't be trusted with melee weapons, so Staff it is. 😊
Tweet media one
8
3
98
@krisajenkins
Kris Jenkins (@[email protected])
8 years
“the most important change to Java 8 is the new support for lambda expressions, which puts Java squarely at the forefront of FP” Nope.
16
85
95
@krisajenkins
Kris Jenkins (@[email protected])
5 years
Programming ideas that need to die, episode #43 : If an open source project comes from Google it is *automatically* good. It may be good. It may be bad. The G stamped on the side doesn't get it a free pass.
6
15
90
@krisajenkins
Kris Jenkins (@[email protected])
8 years
I have a pet theory that the worse the language, the more that language's community will champion TDD.
17
101
89
@krisajenkins
Kris Jenkins (@[email protected])
7 years
My wife thinks I kindly make her a cup of tea without asking. Actually, game theory tells me my maximum downside is having two cups of tea.
1
30
86
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Protip: Today is Unsubscribing Friday, when every retailer you’ve ever signed up to will email you an unsubscribe link. 😉
0
25
82
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Today in "JavaScript is a Tire Fire":
Tweet media one
4
53
83
@krisajenkins
Kris Jenkins (@[email protected])
3 years
You're a smart programmer. You're used to dealing with ambiguous specifications. Try my son's homework...
Tweet media one
15
8
85
@krisajenkins
Kris Jenkins (@[email protected])
8 years
It’s finally happened: I got an out-of-the-blue email from someone assuming I could fix their Jenkins setup. I’m amazed it took this long.
3
11
85
@krisajenkins
Kris Jenkins (@[email protected])
9 years
It is the future. Tiny robots, small enough to repair a human cell, teem through your body in their trillions, throwing runtime exceptions.
3
76
84
@krisajenkins
Kris Jenkins (@[email protected])
8 years
Updating a largish project to @elmlang 0.17. 79 files changed 643 insertions(+) 829 deletions(-) And when it recompiled, it worked. 😎
2
24
80
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Kids! Are your parents sending secret messages about parenting? Know the signs: brb - I'm so tired. lmao - I'm so tired. rofl - I'm so tired. fml - I'm so tired. yolo - I'm so tired. lol - Please let me sleep.
1
21
81
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Data modelling is 50% of what we do. Unless you ignore it. In which case, coping with bad data models is 813% of what we do.
2
55
81
@krisajenkins
Kris Jenkins (@[email protected])
7 years
He’s making a list… (Okay, so probably a Lisp.) He’s checking it twice. (So it’s not a pure function. I’m guess Santa’s using elisp.)
1
26
78
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Anakin: I'm not afraid. Yoda: You will be. (Yoda commits a function that takes 8 String arguments.)
3
37
78
@krisajenkins
Kris Jenkins (@[email protected])
5 years
New #Brexit plan: 1. We ask to extend A50 by 1 week. No more. 2. On the 29th March we reaffirm our intention to leave. 3. On April 1st we shout, "APRIL FOOL!" really loud. Brexit is cancelled. UK's place in comedy history is reaffirmed. The rest of Europe says, "Ya got me!" 😁
1
28
74
@krisajenkins
Kris Jenkins (@[email protected])
8 years
OH: “Uncle Bob is the Donald Trump of the software industry.”
9
38
75
@krisajenkins
Kris Jenkins (@[email protected])
1 year
This is the single most offensive thing a company has ever done to me. Confluent have just published a podcast congratulating themselves on how great their episodes have been over the past year & I’ve been totally erased. It’s as though I never existed. Cheap shot CFLT. 😞
Tweet media one
17
8
77
@krisajenkins
Kris Jenkins (@[email protected])
4 months
Well this is worth a little fanfare— #Zig is first episode of Developer Voices to go through 100k plays. 🥳 Thanks again Loris Cro - you made it a great episode. ❤️ ICYMI, you can viewCount++ (and learn about a very interesting language) here: 😁
Tweet media one
3
12
76
@krisajenkins
Kris Jenkins (@[email protected])
10 years
How beginners see #Haskell 's error messages: http://t.co/MmnICQtwbF
Tweet media one
7
120
73
@krisajenkins
Kris Jenkins (@[email protected])
5 years
My daughter asked for help with the last two words of her homework. She’s only 5, but I swear she’s trolling me...
Tweet media one
4
4
73
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Ah, but I'd rather work with badly-written Elm than typically-written JavaScript. Some languages help you refactor a system incrementally, no matter what state it starts in, while some simply don't care if you fail.
@martinfowler
Martin Fowler
6 years
I believe that the principles of good programming are more important than what language we code in. I'd rather work with well-written JavaScript than badly-written Smalltalk.
71
2K
4K
3
18
74
@krisajenkins
Kris Jenkins (@[email protected])
7 years
#HaskellX . Anyone who asks “Should we?” will be shown the door. 😄
Tweet media one
1
15
73
@krisajenkins
Kris Jenkins (@[email protected])
6 years
If you actually run your Haskell programs, you’re doing it wrong. Real Haskell code is just one huge Lens, to be held up to the light and admired.
4
8
73
@krisajenkins
Kris Jenkins (@[email protected])
6 years
An interesting thing we still don’t know about programming: how long can someone stay sharp? Is programming like footballing, where you’re past your prime at 30; or like jazz, where most don’t hit their stride ‘til 50? As always, my money’s on jazz. 😎
@channingwalton
Channing Walton
6 years
I just turned 50. I’ve been programming for about 38 years, since starting with a ZX81, Spectrum, and BBC Micro. That puts me in a very tiny minority, given the average length of experience with programming is currently around 6 years if the last poll I read is to be believed.
30
10
68
10
11
71
@krisajenkins
Kris Jenkins (@[email protected])
6 years
“Learning Elm has made me a better JavaScript programmer.” - My brother-in-law, whom I badgered about FP for nearly two years.
1
15
69
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Wanted: Builder, to extend our kitchen. Culture fit essential. Must value our vision more than money. We have ping pong & snacks.
2
16
71
@krisajenkins
Kris Jenkins (@[email protected])
1 year
Today I'm launching a new podcast looking at the future of software by talking directly to the devs who are trying to get us there. We kick off with London's hippest new language designer, Louis Pilfold, the creator of Gleam. 🎧 📺
2
22
70
@krisajenkins
Kris Jenkins (@[email protected])
5 years
On $CURRENT_PROJECT we have a mechanism that publishes the frontend state to a gist and gives you the gist ID. Bug reports are coming in with a hash that lets you restore the tester's state. It is absolutely glorious. 😎
3
13
70
@krisajenkins
Kris Jenkins (@[email protected])
7 years
@smdiehl 's description of JavaScript has rapidly become my favourite.
Tweet media one
2
34
67
@krisajenkins
Kris Jenkins (@[email protected])
3 years
`jq` is up there with `sed` and `awk` as tools that are essential, powerful, and ever so slightly bonkers.
6
4
68
@krisajenkins
Kris Jenkins (@[email protected])
7 years
I've been using Windows as a dev environment for a few months now, and I stand by every bad word I ever said about it. 😜
4
10
68
@krisajenkins
Kris Jenkins (@[email protected])
3 years
Why did no-one tell me that haskell-language-server had gotten this good?!?
6
3
66
@krisajenkins
Kris Jenkins (@[email protected])
7 years
"Group X are genetically superior." By some startling, unfathomable, astronomical coincidence, the author was a member of group X.
5
14
67
@krisajenkins
Kris Jenkins (@[email protected])
5 years
Hey I just met you, And this is crazy, But here's an infinite list stored in finite memory, So call me lazily.
0
7
67
@krisajenkins
Kris Jenkins (@[email protected])
1 month
I love the ideas in #Erlang , but I’ve never quite gelled with the language. So when I heard someone was porting the runtime to #OCaml , my ears pricked up. Leandro Ostera joins me this week to explain how he's borrowing BEAM's best bits. 😅 📺
3
16
64
@krisajenkins
Kris Jenkins (@[email protected])
5 years
I started writing a code comment explaining why I was using `unsafePartial` in some PureScript code and now I'm not using `unsafePartial` anymore. 😊
2
4
67
@krisajenkins
Kris Jenkins (@[email protected])
5 years
Q1. What’s your least-favourite monad? Q2. Under what circumstances would it become your favourite?
Tweet media one
1
14
67
@krisajenkins
Kris Jenkins (@[email protected])
6 years
The PureScript Prelude! My beauty! My love! I say to the PureScript Prelude, "Thou art so elegant, so graceful, so balanced. I shall compose odes in your honour!" And she whispers back to me, "Then, my love, your odes are semigroupoid."
2
8
65
@krisajenkins
Kris Jenkins (@[email protected])
6 years
Exhaustive pattern match checking is such a wonderful thing. It's one of those rare things where you feel like the programming language is on your side. ❤️
3
8
64
@krisajenkins
Kris Jenkins (@[email protected])
9 years
Haskell, Elm, Linux, PostgreSQL. I would have thought HELP has a fair claim on, "the world's most advanced development stack."
3
45
63
@krisajenkins
Kris Jenkins (@[email protected])
5 years
Doing the same thing over and over again and expecting different results is the definition of insanity. Doing *almost* the same thing over and over again and expecting different results is just normal debugging.
2
4
64
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Started reading Orwell's 1984. So far it's mostly a warning against using update-in-place databases for government records.
1
24
62
@krisajenkins
Kris Jenkins (@[email protected])
7 years
The reason monads are hard to understand is, unlike the rest of computer science, our ancestors didn't evolve to hunt and gather them.
2
20
61
@krisajenkins
Kris Jenkins (@[email protected])
7 years
I'm sorry npm. I was too hard on you. I can see that now. I'm running maven and I can see that I was too hard on you now. I'm sorry.
2
13
62
@krisajenkins
Kris Jenkins (@[email protected])
8 years
The @elmlang badges I had made are here & they look fab! Won't be going to LambdaConf, but they'll find a home...
Tweet media one
8
6
62
@krisajenkins
Kris Jenkins (@[email protected])
7 years
Doing some type-level ASCII art. (I think these should be officially known as “Gonzalez Diagrams” after @GabrielG439 .)
Tweet media one
2
15
62
@krisajenkins
Kris Jenkins (@[email protected])
8 years
The story so far: Stressed client. Tight deadline. Rush job. @elmlang . Early delivery. Happy client. Clean codebase. Proud me.
1
19
62
@krisajenkins
Kris Jenkins (@[email protected])
4 years
How to Haskell: 1. This isn't working. 2. Add in type annotations. 3. It’s working! 4. Delete the type annotations. You must take your secrets to the grave.
2
7
60
@krisajenkins
Kris Jenkins (@[email protected])
7 years
The radio today said that the #DressLikeAWoman thread had a woman in an astronaut costume. It wasn't a costume. She is a FUCKING ASTRONAUT!
2
26
60