Sometimes You Go Back To Bed
In this week’s episode of Getting Work To Work, Chris Martin talks about owning your schedule and the importance of taking care of your physical and mental health. As creative professionals, it can be easy to push your needs aside for the sake of the work, but sometimes you go back to bed to hit the reset switch.
And I’m Back

I’m delighted to be part of Clark College for another year. This marks my fourth year at the college teaching web development. Here’s a list of all the courses that I have taught:
- Intro to Programming and Problem Solving with Python (CTEC 121)
- HTML Fundamentals (CTEC 122)
- JavaScript (CTEC 126)
- Business Web Practices (CTEC 165)
- PHP with SQL 1 (CTEC 127)
- PHP with SQL 2 (CTEC 227)
- API & Advanced Integration (CTEC 228)
- WordPress Development (CTEC 260)
Why I didn’t Look at Your Resume
If you’re looking for a new gig or career, I wanted to share this list of hiring red flags publicly. These things to watch out for will vary by industry and company, but if you’re looking for a position at a startup, an agency, or something in the online industry, this list may help you avoid ending up in the immediate ‘no’ pile.
Generalists vs. Specialists
In this week’s episode of the Getting Work To Work podcast, Chris Martin talks about whether an artist should be a generalist or a specialist. As a creative generalist with interests in multiple subjects including filmmaking, web design and development, photography, teaching and more, Chris struggles with the advice of picking one pursuit and doing only that.
I Do Not Agree
Going to shit
2015 is when web development went to shit. Web development used to be nice. You could fire up a text editor and start creating JS and CSS files. You can absolutely still do this. That has not changed. So yes, everything I’m about to say can be invalidated by saying that.
Read “The Sad State of Web Development” >
I’m a 2016-2017 IBM Champion for Cloud
Late on Friday, I received an email from IBM letting me know that I was named an IBM Champion for Cloud. I’m honored to be part of this inaugural group of individuals. A huge thank you to those people who nominated and encouraged me to start using Bluemix.
What is Professional?
In this week’s episode of Getting Work To Work, Chris Martin responds to listener feedback, discusses whether professional is a label or an attitude, share wisdom from books by Steven Pressfield and Austin Kleon, and encourages creative professionals to create work daily regardless of whether it is “professional” or not.
The Joy Effect
Using the Slack API with Python – A Simple Example
Here is a simple Python program that can be used to:
- Test the API
- Get a list of Slack Users
- Get a list of Slack Channels
- Get information about a Slack Channel
- Post a message to Slack Channel
Students in my Intro to Programming and Problems Solving class at Clark College learn how to build this and other things using Python.
Have fun with it!
# CTEC 121 / Intro to Programming and Problem Solving
# Lab - Using the Slack API
# by Bruce Elgort, 2016
# pip install slackclient to install SlackClient library
from slackclient import SlackClient
import json
def test_slack(sc):
# use for debugging
print("Testing API")
print(80 * "=")
print (sc.api_call("api.test"))
def get_channel_info(sc,channel):
# get info about the channel
print("Getting Channel Info")
print(80 * "=")
print (sc.api_call("channels.info", channel=channel))
def get_list_of_channels(sc):
print("Getting List of Channels")
print(80 * "=")
# get list of channels
channels = sc.api_call("channels.list")
channels = json.dumps(channels)
channels = json.loads(str(channels))
return channels
def display_channels(channels):
print("Display Channels")
print(80 * "=")
for i in channels['channels']:
print("Channel:",i['name'])
def post_message(sc,text,channel,icon_url,username):
print("Posting Message to Slack")
print(80 * "=")
# post a message into the #general channel
print (sc.api_call("chat.postMessage",channel=channel,text=text,username=username,icon_url=icon_url,unfurl_links="true"))
def get_users(sc):
print("Get Users")
print(80 * "=")
#call the users.list api call and get list of users
users = (sc.api_call("users.list"))
users = json.dumps(users)
users = json.loads(str(users))
return users
def display_users(sc,users):
print("User List")
print(80 * "=")
# display active users
for i in users['members']:
# don't display slackbot
if i['profile']['real_name'] != "slackbot":
# don't display deleted users
if not i['deleted']:
# display real name
print (i['profile']['real_name'])
def main():
# define variables
token = "your token"
channel = "a channel id"
username = "Username to use display for message function"
icon_url = "icon url for message function"
# connect to Slack
sc = SlackClient(token)
# test slack
test_slack(sc)
# get channel info
get_channel_info(sc,channel)
# get list of channels
channels = get_list_of_channels(sc)
# display channels
display_channels(channels)
# post message
post_message(sc,"Visit http://slack.com",channel,icon_url,username)
# get users
users = get_users(sc)
# display users
display_users(sc,users)
main()