محتوای ارائه شده توسط Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones. تمام محتوای پادکست شامل قسمتها، گرافیکها و توضیحات پادکست مستقیماً توسط Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones یا شریک پلتفرم پادکست آنها آپلود و ارائه میشوند. اگر فکر میکنید شخصی بدون اجازه شما از اثر دارای حق نسخهبرداری شما استفاده میکند، میتوانید روندی که در اینجا شرح داده شده است را دنبال کنید.https://fa.player.fm/legal
Player FM - برنامه پادکست
با برنامه Player FM !
با برنامه Player FM !
پادکست هایی که ارزش شنیدن دارند
حمایت شده
<
<div class="span index">1</div> <span><a class="" data-remote="true" data-type="html" href="/series/biscuits-jam-2787342">Biscuits & Jam</a></span>


In the South, food and music go hand in hand. They define much of what we think of as Southern culture, and they say a lot about our past, our present, and our future. Each week, Sid Evans, Editor in Chief of Southern Living, sits down with musicians, chefs, and other Southern icons to hear the stories of how they grew up, what inspires them, and why they feel connected to the region. Through honest conversations, Sid explores childhood memories, the family meals they still think about, and the intersection of food and music in their lives. Always surprising, always engaging, Biscuits & Jam is a celebration of the South—and the people who are moving it forward every day. New episodes every Tuesday.
Episode 006: All Wrapped Up in Twitter
Manage episode 222839732 series 2463849
محتوای ارائه شده توسط Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones. تمام محتوای پادکست شامل قسمتها، گرافیکها و توضیحات پادکست مستقیماً توسط Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones یا شریک پلتفرم پادکست آنها آپلود و ارائه میشوند. اگر فکر میکنید شخصی بدون اجازه شما از اثر دارای حق نسخهبرداری شما استفاده میکند، میتوانید روندی که در اینجا شرح داده شده است را دنبال کنید.https://fa.player.fm/legal
Christoph tries to get a handle on his #clojure tweet-stream habit.
- NOT tic-tac-toe
- Follow
#clojure
tweet stream and see it print out in the terminal - "We like reinventing things."
- "The terminal is the best UI out there."
- Does Twitter have an API?
- Websocket? Nope! Requires a big "E" plan: "enterprise".
- PubSub? Nope! Not from Twitter.
- Alas, we must poll the
/search/tweets.json
endpoint - Problem: we're going to keep getting results we've already seen
- Avoid duplicates? Let's use core cache.
- Once again, we use
loop
andrecur
for our main loop - Time for an API wrapper, but what does the wrapper do?
- HTTP POST form-encoded parameters
- Ack!
401 Access Denied
- "An important step in any API exploration is your first 401 response."
- "OAuth?" "Oh....auth..."
- Meet OAuth, the API bouncer.
- Make an
auth
function to call the OAuth endpoint and get an auth token - Have
auth
return a "handle" with the auth token. Other wrapper functions will needhandle
. - Need to keep
handle
around. Put that in the app state too. - Let the exceptions fly!
- "Exceptions are an exceptionally accepted way of handling exceptional circumstances."
- "I caught what you meant."
- Make a
fetch
function that does the I/O work. - Create a
search
function that takeshandle
andquery
- Look for pure logic and move it into its own function, then it's easy to test.
- Transform args to
search
into a "request description" and havefetch
operate on that. - "Twitch, I mean Twitter. You know, that Internet thing that starts with t-w-i-t."
- Different layers of the wrapper:
- Top-level functions used by the application. Sole job: sequence internal functions
- Pure transforms from args to "request description"
- A
fetch
function that follows the "orders" of the "request description"
- "The point of testing this code is not to test if Aleph works or Twitter works. The logic is in the translation function, so that's why we test it."
- "Our hero, the Twitch wrapper, is poised and ready to fetch data on our behalf. What will happen next?"
Clojure in this episode:
loop
,recur
Thread.sleep
get
try
,catch
->
Related projects:
118 قسمت
Manage episode 222839732 series 2463849
محتوای ارائه شده توسط Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones. تمام محتوای پادکست شامل قسمتها، گرافیکها و توضیحات پادکست مستقیماً توسط Christoph Neumann and Nate Jones, Christoph Neumann, and Nate Jones یا شریک پلتفرم پادکست آنها آپلود و ارائه میشوند. اگر فکر میکنید شخصی بدون اجازه شما از اثر دارای حق نسخهبرداری شما استفاده میکند، میتوانید روندی که در اینجا شرح داده شده است را دنبال کنید.https://fa.player.fm/legal
Christoph tries to get a handle on his #clojure tweet-stream habit.
- NOT tic-tac-toe
- Follow
#clojure
tweet stream and see it print out in the terminal - "We like reinventing things."
- "The terminal is the best UI out there."
- Does Twitter have an API?
- Websocket? Nope! Requires a big "E" plan: "enterprise".
- PubSub? Nope! Not from Twitter.
- Alas, we must poll the
/search/tweets.json
endpoint - Problem: we're going to keep getting results we've already seen
- Avoid duplicates? Let's use core cache.
- Once again, we use
loop
andrecur
for our main loop - Time for an API wrapper, but what does the wrapper do?
- HTTP POST form-encoded parameters
- Ack!
401 Access Denied
- "An important step in any API exploration is your first 401 response."
- "OAuth?" "Oh....auth..."
- Meet OAuth, the API bouncer.
- Make an
auth
function to call the OAuth endpoint and get an auth token - Have
auth
return a "handle" with the auth token. Other wrapper functions will needhandle
. - Need to keep
handle
around. Put that in the app state too. - Let the exceptions fly!
- "Exceptions are an exceptionally accepted way of handling exceptional circumstances."
- "I caught what you meant."
- Make a
fetch
function that does the I/O work. - Create a
search
function that takeshandle
andquery
- Look for pure logic and move it into its own function, then it's easy to test.
- Transform args to
search
into a "request description" and havefetch
operate on that. - "Twitch, I mean Twitter. You know, that Internet thing that starts with t-w-i-t."
- Different layers of the wrapper:
- Top-level functions used by the application. Sole job: sequence internal functions
- Pure transforms from args to "request description"
- A
fetch
function that follows the "orders" of the "request description"
- "The point of testing this code is not to test if Aleph works or Twitter works. The logic is in the translation function, so that's why we test it."
- "Our hero, the Twitch wrapper, is poised and ready to fetch data on our behalf. What will happen next?"
Clojure in this episode:
loop
,recur
Thread.sleep
get
try
,catch
->
Related projects:
118 قسمت
همه قسمت ها
×به Player FM خوش آمدید!
Player FM در سراسر وب را برای یافتن پادکست های با کیفیت اسکن می کند تا همین الان لذت ببرید. این بهترین برنامه ی پادکست است که در اندروید، آیفون و وب کار می کند. ثبت نام کنید تا اشتراک های شما در بین دستگاه های مختلف همگام سازی شود.