How to Learn Haskell
This is a recommended path for learning Haskell based on experience helping others.
haskell  learn  functional  programming  development 
19 days ago
NixOS Linux
The Purely Functional Linux Distribution

NixOS is a Linux distribution with a unique approach to package and configuration management. Built on top of the Nix package manager, it is completely declarative, makes upgrading systems reliable, and has many other advantages.
deployment  distribution  linux  os  functional 
25 days ago
How I Start.
How I Start is a mix between a collection of development tutorials and The Setup. The purpose is to both fill a gap in tutorials and give a peek at how some of the top developers do their work.

Often tutorials and books are overly generic, leaving it up to the reader to wade through all the tools and styles available to a language on their own. These articles are meant for a user who is comfortable with a language in its REPL (if available) or building individual modules, but may not be comfortable taking the step to producing an application or library that is ready to be consumed by others or deployed to production.
programming  howto  development  reference 
4 weeks ago
4clojure – Welcome!
4Clojure is a resource to help fledgling clojurians learn the language through interactive problems. The first few problems are easy enough that even someone with no prior experience should find the learning curve forgiving. See 'Help' for more information.
clojure  interactive  programming  tutorial  development  challenge 
4 weeks ago
Parens of the Dead
A screencast series of zombie-themed games
written with Clojure and ClojureScript.
clojure  games  tutorial  cljs  development  programming  video 
4 weeks ago
James Shore: The Art of Agile
Crunch Mode
24 Feb, 2005

"Crunch Mode"
Software Profitability, February 2005
by Jim Shore

Dear clients and colleagues:

The front page of the Wall Street Journal has an article today (Feb 24th) about the recent spate of overtime lawsuits in technology companies. The charge is being led by programmers at Electronic Arts, who are alleging that they are owed overtime pay as compensation for mandatory overtime.

Regardless of whether overtime pay is required or not, software organizations are famous for requiring their programmers to work long hours in order to meet deadlines. "Crunch mode" starts as a week or two of extended overtime and often continues for months. "Crunching" takes a heavy toll on workers, damaging personal relationships and health. It's also hard on code: tired programmers under pressure are much more likely to incur design debt, which erodes your software investment.

This cost is worth it, though, because at least crunching allows teams to meet their deadlines. Right?

Actually, no. That's the irony of the situation. Tom DeMarco reports in his book Slack that extended overtime has no effect on productivity:

The best predictor of how much a knowledge worker will accomplish is not the hours he or she spends, but the days. The twelve-hour days don't accomplish any more than the eight-hour days. Overtime is a wash. [DeMarco, p64]
How could overtime not increase productivity? There are several reasons. First, as I previously mentioned, tired programmers under pressure incur design debt. Just a few weeks of adding design debt noticeably increases the cost of development.

Second, crunching leads to burned-out workers. Some of these workers turn into "zombies:" ex-stars who do barely enough to avoid being fired. Those who don't turn into zombies, leave, incurring turnover costs as the organization hires and acclimatizes new workers.

The final reason crunching doesn't increase productivity is that employees who know they're going to be working late aren't as careful with their time. Rather than being seen as rude or uncooperative, they'll succumb to non-essential interruptions, like attending a three hour meeting. "After all," they reason, "after hours is when I'm really productive." They'll also use work hours for all the personal things they no longer have time for, like picking up the dry cleaning, dropping the kids off at daycare, and going to the dentist.

If crunching doesn't increase productivity, then it's easy to see why teams get trapped in months of crunch time. The teams go into crunch mode because they're behind. Crunching doesn't make them go any faster, though, so they don't catch up. Months of crunch time ensue as more and more deadlines are missed.

There's only one way out of this, and that's to not get into it. When you find that estimates were wrong, take the bull by the horns and admit it to your customer. Go ahead and sprint over a weekend to see if you can catch up. The occasional sprint can be a great team-building exercise. But if you're still behind after your sprint, stop running. Don't incur the costs of crunching.

Jim Shore

(The discussion of the costs of overtime in this article was inspired by Tom DeMarco's "Overtime" chapter in Slack, ISBN 0-7679-0768-X.)
productivity  management  development 
5 weeks ago
TLDR pages
Simplified and community-driven man pages
reference  cli  tools  unix 
6 weeks ago
Pete Savage: My open source story
Photography for an event: Darktable (photo editor)
Writing a technical book about Git: Git (version control), LaTeX (typesetting), Geany (text editor)
Putting together a video for a church event: Blender (video editing)
Recording a video podcast: Kdenlive (video editing), Cinelerra (video editing)
Recording and mixing music: Ardour (multitrack recording), jack (audio subsystem), Hydrogen (drum editor), LinuxSampler (sampling software)
Creating a visual novel game: Python (scripting some tools), Ren'Py (visual novel engine)
links  opensource  Resources  from pocket
10 weeks ago
Otto by HashiCorp
Development and Deployment Made Easy
Meet the Successor to Vagrant
devops  deployment  vagrant  hashicorp  cloud  programming  development 
october 2015
The Prayer That Changed My Life | Dan Kuiper

For most of my life I believed that the definition of prayer was simply talking to God. So, whenever I prayed, I talked. And talked and talked and talked. I told God all the things I wanted. Yes, I also offered Him praise for being God; I thanked Him for all the blessings in my life; I asked forgiveness for doing and saying things I shouldn't have done or said. But, most of all, I told Him all the things I wanted.

And I did all the talking.

I found that my prayer time was becoming more and more shallow. God seemed more and more distant. And with more and more frequency I was coming away empty.

Then one day, as I once again found myself talking incessantly as I went through the motions of prayer, it dawned on me. Prayer is, by definition, communication with God. Not to God. With God. That suggests that both parties be involved in both speaking and listening. Hmmm.

I've done enough premarital counseling to know that two people can't have much of a relationship if one person is doing all the talking and the other is doing all the listening. That kind of relationship certainly wouldn't be based on love. And without love, there could be no intimacy. And what has been the Creator's greatest desire since the beginning of time? To have a loving, intimate, relationship with His children.

For me, that loving, intimate relationship began the first day my prayers became two-way communication with God. It is when my prayers began to include my listening as well as talking that God's active presence in my life became real. That is when I discovered that His Word, His truth, His promises were meant for me.

If you have found your prayer life has become routine; if you've been pouring your heart out to God only to find that nothing ever changes; if your alone time with God leaves you feeling more alone, perhaps it's time to give Him the floor.

Instead of giving Him a list of all the things you want, let Him share with you what He wants. Rather than telling Him your plans for your life, let Him share with you His plan. Instead of offering Him words of praise, let Him offer words of praise to you.

When you give God a voice you will find that it is intoned with biblical truths. Listen intently to His words and imagine them coming from His mouth. Allow His Word--Scripture that you may have kept locked between your ears--to sink into the depths of your heart.

He has so much to share with you...

Oh, my child. How good it is to spend time with you. I treasure these moments. That's because I treasure you. I paid a very high price for you, you know!

I am honored when you bring your requests to Me. You need never be concerned that your desires aren't important; if something matters to you, it matters to Me.

I want you to lay your burdens before Me. But often before you leave, you pick them all up again and take them with you. I want you to know that you can leave them with Me. You can trust Me with whatever burdens and heartaches you have. I want to carry them so you don't have to. It is when you let them go that I will give you what I long for you to experience in times of trouble--rest for your soul.

I know that sometimes you don't feel worthy to be in My presence because of things you've done or said. You're ashamed because you've sinned against Me. You have not always been faithful to Me. But I want you to know this: I will always be faithful to you. I will not only forgive you, but, if you ask, I will help you to forgive yourself. It is not my plan that you go through life cowering under a cloud of shame and regret. My desire is to prosper you, to give you hope and a future. I long for you to walk with confidence and assurance, knowing that you are fully forgiven and fully loved. Remember, nothing can ever separate you from My love.

Remember, my child, that my lap is always open. I look forward to spending time with you. That’s because I love you. And not because of anything you’ve done. But because of who you are. You. Are. Mine
christianity  religion  life 
october 2015
Separating Programming Sheep from Non-Programming Goats
But it's still a little disturbing that the act of programming seems literally unteachable to a sizable subset of incoming computer science students. Evidently not everyone is as fascinated by meaningless rules and meaningless conclusions as we are; I can't imagine why not.
humor  science  programming  development 
september 2015
- Joel on Software
Everyone thinks they're hiring the top 1%.


if you wait around to see who sends you a resume, you're already missing out.
business  culture  jobs  programming  development 
september 2015
« earlier      
3d actionscript algorithms all_android analyzer android android_2.1 android_apps android_dev announcements apache api app applications apps art article articles as3 automation aws backbone backup bash book browser business c c++ canvas challenge chat christianity cli clojure cloud cms code collaboration communication community company comparison compiler computing courses cpan css data database debug debugging demo deployment design development devops docker documentation editor education elasticsearch encoding encryption entrepreneurship erlang explore facebook featured_article feedproxy finance firefox flash font format framework free freelance fun functional game gamedev games general_news git github go golang google government graphics graphite graphs gui hardware haskell haxe health history hosting how-to html html5 http humor ide ie internet interpreter jabber java javascript job_board jobs journal language languages learn library life links linux logs math messaging missions mobile modernperl monitoring mozilla music nagios network news nodejs nosql open_source opensource optimization os oscon paas patterns pdf performance perl perl5 perl6 php plugin politics postgresql productivity profile programmers programming project-management psychology puppet python qa queue read reference releases religion remember remote rom rss ruby samsung_moment scala sdx search security server service share shell social software software_news softwaredevelopment ssh standards statistics storage svg sysadmin taskrunner technology technology/internet testing tools tutorial tutorials ui uncategorized unicode unix use utf-8 ux video vim virtualization visual_design vm web web_developers web_tech webdesign webdev work xml

Copy this bookmark: