Having worked with teams consisting of 100% remote, 100% in-person, and folks who do a little of both, I can understand why many organizations have a hard time with remote collaboration. This series will cover all the things I learned over the years collaborating remotely. In this first part, I talk about video conferencing. Often the most painful aspect of remote working.
Sean Fioritto from his blog:
Most of these tools you think you have to have are solving problems you don’t have NOR WILL YOU EVER HAVE.
I get decision fatigue just thinking about it.
Ricky Jones for the Courier Journal:
I love Trump, but not for the same reasons David Duke pulls him to his bosom. I love Trump because with every win he exposes the GOP and America for what they are. Trump doesn’t vote for himself – Americans do. Republicans and the country both need to deal with that truth.
Often I run into a string where all I want is to match everything up to a given character. So given the following test string:
This is my string with a pipe | and everything after it is stupid.
Using Ruby as my reference language, I might do something like this in an interactive ruby session (aka: IRB) or on Rubular.com:
str = 'This is my string with a pipe | and everything after it is stupid.' str.match(/^.*(?=\|)/).first
Which would produce the following in Ruby:
"This is my string with a pipe "
Lets break down the different parts of the expression
^.*(?=\|) and what they're doing:
^start at the beginning of the string
.*match anything from the current position
(?=\|)only if followed by a pipe character
The last part of the expression is what's known as a positive look-ahead
(?=). Using a look-ahead is like attaching a condition to an existing regular expression. I'm telling my expression to return the match only if it's followed by characters matched by an additional expression.
As always, use regular expressions responsibly.
Carrierwave doesn't clean up empty directories when you delete a record with an existing upload. It deletes the file, but not the containing directory. That is a task you can handle with an ActiveRecord callback.
Let say there is a model called 'Post' that you can attach an image to. The code would look like the following:
class Post < ActiveRecord::Base mount_uploadeder :image, ImageUploader after_destroy :delete_empty_upload_directory private def delete_empty_upload_directory FileUtils.rm_rf(Rails.root.join('path', 'to', 'your', 'uploads', self.id.to_s)) if self.image end end
Simple, nice, and easy.
In an email from Screenr, a web-based app for recording your screen:
As you might already know, Screenr’s recording capability is based on Java RE (Runtime Environment), which is rapidly becoming antiquated. For example, Google Chrome doesn’t support Java RE anymore. So Screenr can’t run there. And on other browsers, Java support is also limited, causing constant problems for users.
Because we at Screenr pride ourselves on providing a superior customer experience, these issues are simply unacceptable. And there’s no way around them.
Before Droplr implemented screen recording in their app, I used Screenr. It was useful and their free tier allowed some quick and dirty screen recording with minimal friction.
Admitting defeat is hard. But completely ignoring the competitive field for apps like this is the real reason why Screenr is shutting down. I guess blaming Java platform and quitting is easier than adapting your software to use better, newer technology.
Peter Welch via Mashable:
Every programmer occasionally, when nobody's home, turns off the lights, pours a glass of scotch, puts on some light German electronica, and opens up a file on their computer. It's a different file for every programmer. Sometimes they wrote it, sometimes they found it and knew they had to save it. They read over the lines, and weep at their beauty, then the tears turn bitter as they remember the rest of the files and the inevitable collapse of all that is good and true in the world.
The truth of this is both sobering and hilarious.
This is a guide I wrote a couple years ago. I thought it would be useful for those beginning to use Git for themselves or in a team. Sorry for passive voice ;)