Luna is what I'm calling my project to take back my photos.
You can follow along with the code here: https://github.com/issackelly/luna
The repository and the data models are the first step in any code base.
I'm not yet going to cover many of the choices that I made in the project (pipenv, dj-database-url, celery, etc). In this installment, I'll be describing the folder structure and the basic model setup at backend/backend/models.py .
The project is a pair of small applications. A "backend" application built on Python 3 and Django 2 ...
Digital Photos are probably the most personal digital-relics from my life.
Tech companies want this foothold, and I'm going to try to opt-out with as few compromises as possible.
From a data perspective, my photo and video collection is the most complex and interesting of data sets that I interact with regularly.
This is an opportunity to explore and to use the data in interesting ways. I can build interesting things on top of it, and use the data to experiment with different approaches, UI patterns, or technologies in a way that is meaningful to me.
The fact that ...
Radiolab seems to make their page out of javascript. that made it slightly more annoying to find the right download link, but otherwise it's straight forward.
import time
import requests
from bs4 import BeautifulSoup
import os.path
def download(href, title, extension="mp3", dirname='.'):
print(href, title, extension, dirname)
filename = "%s.%s" % (title, extension)
filename = filename.replace("/", "-")
# todo, path management
local_filename = os.path.join(dirname, filename)
if not os.path.exists(dirname):
print("making dir %s" % dirname)
os.makedirs(dirname)
local_filename = os.path.join(dirname, filename)
r = requests.get(href, stream=True)
with open(local_filename, 'wb') as f:
for ...
Today in desert island podcast scraping:
99 Percent Invisible
import time
import requests
from bs4 import BeautifulSoup
import os.path
def download(href, title, extension="mp3", dirname='.'):
filename = "%s.%s" % (title, extension)
filename = filename.replace("/", "-")
# todo, path management
local_filename = os.path.join(dirname, filename)
if not os.path.exists(dirname):
print("making dir %s" % dirname)
os.makedirs(dirname)
local_filename = os.path.join(dirname, filename)
r = requests.get(href, stream=True)
with open(local_filename, 'wb') as f:
for chunk in r.iter_content(chunk_size=1024):
if chunk: # filter out keep-alive new chunks
f.write(chunk)
return local_filename
for i in range(1 ...
I'm Issac. I live in Oakland. I make things for fun and money. I use electronics and computers and software. I manage teams and projects top to bottom. I've worked as a consultant, software engineer, hardware designer, artist, technology director and team lead. I do occasional fabrication in wood and plastic and metal. I run a boutique interactive agency with my brother Kasey and a roving cast of experts at Kelly Creative Tech. I was the Director of Technology for Nonchalance during the The Latitude Society project. I was the Lead Web Developer and then Technical Marketing Engineer at Nebula, which made an OpenStack Appliance. I've been building things on the web and in person since leaving Ohio State University's Electrical and Computer engineering program in 2007. Lots of other really dorky things happened to me before that, like dropping out of high school to go to university, getting an Eagle Scout award, and getting 6th in a state-wide algebra competition. I have an affinity for hopscotch.