Are you over 18 and want to see adult content?
More Annotations
A complete backup of https://mundotecnico.info/viewtopic.php?t=13896
Are you over 18 and want to see adult content?
A complete backup of http://fr.tunisie.gov.tn/
Are you over 18 and want to see adult content?
A complete backup of http://www.fexerdev.com/about/
Are you over 18 and want to see adult content?
A complete backup of https://www.setedit.de/SetEdit.php?spr=13&Editor=169
Are you over 18 and want to see adult content?
A complete backup of https://www.10bestdesign.com/firms/
Are you over 18 and want to see adult content?
A complete backup of https://es.whotwi.com/torrentyadong/tweets
Are you over 18 and want to see adult content?
A complete backup of https://www.creta.gr/company/mygiakis-pan/14053
Are you over 18 and want to see adult content?
Favourite Annotations
A complete backup of www.bbc.com/russian/features-51612618
Are you over 18 and want to see adult content?
A complete backup of www.df.cl/noticias/internacional/conexion-a-china/oms-dice-que-ya-no-usa-categoria-pandemia-pero-que-virus-
Are you over 18 and want to see adult content?
A complete backup of www.timesnownews.com/sports/cricket/article/sa-vs-aus-2nd-t20i-live-streaming-when-and-where-to-watch-south
Are you over 18 and want to see adult content?
A complete backup of www.infobae.com/sociedad/policiales/2020/02/21/horror-en-puerto-deseado-dos-hombres-asesinaron-a-un-nene-de
Are you over 18 and want to see adult content?
Text
A WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want toLEARNING GO
Learning Go. I have an idea, so I’ve decided to learn Go as a way of piggybacking the idea. In this case, if the idea doesn’t pan out, I at least learned Go in the process. I’m starting by taking the tour on the Go website. It has an interactive “playground” aside the walkthrough, so you can write, run, and see results of INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I TESTING V-ON="$LISTENERS" IN VUE.JS A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vwA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want toLEARNING GO
Learning Go. I have an idea, so I’ve decided to learn Go as a way of piggybacking the idea. In this case, if the idea doesn’t pan out, I at least learned Go in the process. I’m starting by taking the tour on the Go website. It has an interactive “playground” aside the walkthrough, so you can write, run, and see results of INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I TESTING V-ON="$LISTENERS" IN VUE.JS A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem THINKING ABOUT A “TEST MODE” Blog; RSS; Twitter; Email; Cushion Thinking about a “test mode” Mar 23rd, 2021. Continuing my work on Cushion’s new invoice form, I caught myself doing what I often do—spending more time on potentially unnecessary details instead of taking the next steps to launch. At the same time, because I’m no longer reliant on Cushion’s income, being able to spend time on these details without RESPONSIVE IMAGES FOR DIFFERENT LAYOUTS Responsive images for different layouts. Oct 13th, 2020. I made a ton of progress on Cushion’s homepage this weekend, focusing mainly on the feature zigzag. Each feature section focuses on one of Cushion’s main features, like scheduling, budgeting, etc., and includes an accompanying image to represent that feature. TROUBLESHOOTING THE DATABASE UPGRADE Troubleshooting the database upgrade. Feb 14th, 2021. In the previous post, I wrote about upgrading Cushion’s production Postgres database from 9.5 to 12. I did this because Heroku notified me that they were deprecating support for 9.5. For the first couple days after the upgrade, everything seemed to be okay, but then Monday happened. A FLEXIBLE WAY OF USING NUXT.JS WITH CONTENTFUL CMS A flexible way of using Nuxt.js with Contentful CMS. Oct 8th, 2020. As mentioned in the previous post, I use Contentful as the CMS for my personal site, but I’m starting to migrate Cushion’s marketing website to Contentful as well. For my personal site, it was my first time integrating the CMS, so I mainly focused on powering the blog. WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. DITCHING LOCAL-FIRST AND TRYING OUT NODE.JS Blog; RSS; Twitter; Email; Cushion Ditching local-first and trying out Node.js Apr 21st, 2014. I started building out more of the UI for Cushion, including the form for creating a new project.I got antsy and felt the need to be able to change the data I’ve been working with. JONNIE HALLMAN (@DESTROYTODAY) With SCA regulation going into effect at the end of the year, I prioritize migrating to the Stripe customer portal, which means redesigning the account section. JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vwA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want toLEARNING GO
Learning Go. I have an idea, so I’ve decided to learn Go as a way of piggybacking the idea. In this case, if the idea doesn’t pan out, I at least learned Go in the process. I’m starting by taking the tour on the Go website. It has an interactive “playground” aside the walkthrough, so you can write, run, and see results of INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I TESTING V-ON="$LISTENERS" IN VUE.JS A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vwA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want toLEARNING GO
Learning Go. I have an idea, so I’ve decided to learn Go as a way of piggybacking the idea. In this case, if the idea doesn’t pan out, I at least learned Go in the process. I’m starting by taking the tour on the Go website. It has an interactive “playground” aside the walkthrough, so you can write, run, and see results of INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I TESTING V-ON="$LISTENERS" IN VUE.JS A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem THINKING ABOUT A “TEST MODE” Blog; RSS; Twitter; Email; Cushion Thinking about a “test mode” Mar 23rd, 2021. Continuing my work on Cushion’s new invoice form, I caught myself doing what I often do—spending more time on potentially unnecessary details instead of taking the next steps to launch. At the same time, because I’m no longer reliant on Cushion’s income, being able to spend time on these details without RESPONSIVE IMAGES FOR DIFFERENT LAYOUTS Responsive images for different layouts. Oct 13th, 2020. I made a ton of progress on Cushion’s homepage this weekend, focusing mainly on the feature zigzag. Each feature section focuses on one of Cushion’s main features, like scheduling, budgeting, etc., and includes an accompanying image to represent that feature. TROUBLESHOOTING THE DATABASE UPGRADE Troubleshooting the database upgrade. Feb 14th, 2021. In the previous post, I wrote about upgrading Cushion’s production Postgres database from 9.5 to 12. I did this because Heroku notified me that they were deprecating support for 9.5. For the first couple days after the upgrade, everything seemed to be okay, but then Monday happened. A FLEXIBLE WAY OF USING NUXT.JS WITH CONTENTFUL CMS A flexible way of using Nuxt.js with Contentful CMS. Oct 8th, 2020. As mentioned in the previous post, I use Contentful as the CMS for my personal site, but I’m starting to migrate Cushion’s marketing website to Contentful as well. For my personal site, it was my first time integrating the CMS, so I mainly focused on powering the blog. WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. DITCHING LOCAL-FIRST AND TRYING OUT NODE.JS Blog; RSS; Twitter; Email; Cushion Ditching local-first and trying out Node.js Apr 21st, 2014. I started building out more of the UI for Cushion, including the form for creating a new project.I got antsy and felt the need to be able to change the data I’ve been working with. JONNIE HALLMAN (@DESTROYTODAY) With SCA regulation going into effect at the end of the year, I prioritize migrating to the Stripe customer portal, which means redesigning the account section. JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vw BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everythingA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want to INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I TESTING V-ON="$LISTENERS" IN VUE.JS A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vw BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everythingA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want to INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me UPGRADING TO RUBY 2.7.1 Upgrading to Ruby 2.7.1. Continuing my journey to modernize Cushion, I spent this weekend upgrading Ruby to the latest version (2.7.1) as well as updating a handful of other Ruby gems in the process. This is yet another situation where I’m forever thankful of Cushion’s test coverage. I can’t imagine upgrading Ruby, let alone a single gem WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I TESTING V-ON="$LISTENERS" IN VUE.JS A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but THINKING ABOUT A “TEST MODE” Blog; RSS; Twitter; Email; Cushion Thinking about a “test mode” Mar 23rd, 2021. Continuing my work on Cushion’s new invoice form, I caught myself doing what I often do—spending more time on potentially unnecessary details instead of taking the next steps to launch. At the same time, because I’m no longer reliant on Cushion’s income, being able to spend time on these details without TROUBLESHOOTING THE DATABASE UPGRADE Troubleshooting the database upgrade. Feb 14th, 2021. In the previous post, I wrote about upgrading Cushion’s production Postgres database from 9.5 to 12. I did this because Heroku notified me that they were deprecating support for 9.5. For the first couple days after the upgrade, everything seemed to be okay, but then Monday happened. RESPONSIVE IMAGES FOR DIFFERENT LAYOUTS Responsive images for different layouts. Oct 13th, 2020. I made a ton of progress on Cushion’s homepage this weekend, focusing mainly on the feature zigzag. Each feature section focuses on one of Cushion’s main features, like scheduling, budgeting, etc., and includes an accompanying image to represent that feature. CHECKERED PATTERN FOR LOADING IMAGES, REVISITED Blog; RSS; Twitter; Email; Random Checkered pattern for loading images, revisited Apr 26th, 2020. This past week, I decided to continue backfilling my blog with posts that I found on the 2013 version of my website. In doing so, I rediscovered an old post about using Photoshop’s checkered canvas for loading images.. I still love the idea, and actually still use the checkered icon for my WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Redirecting the Heroku “Open app” button to a custom domain. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab DITCHING LOCAL-FIRST AND TRYING OUT NODE.JS Blog; RSS; Twitter; Email; Cushion Ditching local-first and trying out Node.js Apr 21st, 2014. I started building out more of the UI for Cushion, including the form for creating a new project.I got antsy and felt the need to be able to change the data I’ve been working with. JONNIE HALLMAN (@DESTROYTODAY) With SCA regulation going into effect at the end of the year, I prioritize migrating to the Stripe customer portal, which means redesigning the account section. JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vw BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me JONNIE HALLMAN (@DESTROYTODAY) A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Redirecting the Heroku “Open app” button to a custom domain. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab BETTER SLEEP FOR BRIGHTER DAYS An obsessively engineered mattress at a shockingly fair price. Try sleeping on a Casper for 100 days, with free delivery and painlessreturns.
JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vw BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me JONNIE HALLMAN (@DESTROYTODAY) A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Redirecting the Heroku “Open app” button to a custom domain. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab BETTER SLEEP FOR BRIGHTER DAYS An obsessively engineered mattress at a shockingly fair price. Try sleeping on a Casper for 100 days, with free delivery and painlessreturns.
BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everythingA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want to REDESIGNING THE FLOW FOR IMPORTING TRACKED TIME INTO Redesigning the flow for importing tracked time into invoices. May 4th, 2021. For the past week (or more!), I’ve been working on Cushion’s flow for importing tracked time into invoices. This is a more involved part of my current big rock, which is rebuilding the invoicing form from the ground up. As I’ve mentioned in previousposts, this
TROUBLESHOOTING THE DATABASE UPGRADE Troubleshooting the database upgrade. Feb 14th, 2021. In the previous post, I wrote about upgrading Cushion’s production Postgres database from 9.5 to 12. I did this because Heroku notified me that they were deprecating support for 9.5. For the first couple days after the upgrade, everything seemed to be okay, but then Monday happened. REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Blog; RSS; Twitter; Email; Cushion Redirecting the Heroku “Open app” button to a custom domain Jun 10th, 2020. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years.. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab BETTER SLEEP FOR BRIGHTER DAYS An obsessively engineered mattress at a shockingly fair price. Try sleeping on a Casper for 100 days, with free delivery and painlessreturns.
WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. INTRO TO INTEGRATIONS Blog; RSS; Twitter; Email; Cushion Intro to integrations May 24th, 2015. Several weeks into building Cushion, I started thinking about integrations.Obviously, I was ahead of myself, but I knew integrations would play a vital role in the success of Cushion.DESTROY TODAY
Destroy Today is a partnership between builders. Its focus is on solving problems through products crafted with close attention to design and user experience. JONNIE HALLMAN (@DESTROYTODAY) With SCA regulation going into effect at the end of the year, I prioritize migrating to the Stripe customer portal, which means redesigning the account section. JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vw BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me JONNIE HALLMAN (@DESTROYTODAY) A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Redirecting the Heroku “Open app” button to a custom domain. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab BETTER SLEEP FOR BRIGHTER DAYS An obsessively engineered mattress at a shockingly fair price. Try sleeping on a Casper for 100 days, with free delivery and painlessreturns.
JONNIE HALLMAN (@DESTROYTODAY) Jonnie Hallman is a design engineer based in Brooklyn, NY, working at Stripe during the day and building Cushion at night. My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for 100VW AND THE HORIZONTAL OVERFLOW YOU PROBABLY DIDN’T KNOW Blog; RSS; Twitter; Email; Random 100vw and the horizontal overflow you probably didn’t know about Jul 16th, 2020. If you use width: 100vw on a website, there’s a good chance the horizontal scrollbar is visible for many users. Setting an element’s width to 100vw does tell the browser to span the entire viewport width, but what is considered the viewport? ? Many assume that width: 100vw BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everything INLINE FORMS AND THE WEIGHT OF THE NEXT BIG TASK Inline forms and the weight of the next big task. Apr 3rd, 2021. When I’m at a point with Cushion where I need to move onto the next big part of a task, I have a tendency of finding smaller tasks to tackle first while side-eyeing the bigger task, like Pee Wee and the snakes. It’s not that I don’t want to move onto the next big task, but INTEGRATION TESTING THE INVOICE PAGE WITH CYPRESS Integration testing the invoice page with Cypress. Dec 24th, 2020. Yesterday, I finally set up integration testing for Cushion’s invoice page, using Cypress. Previous to this, I had been relying on a combination of unit tests, which focus on the individual parts more than the whole picture, and manual integration testing, which isactually me
BURNING OUT AND FINDING STABILITY Burning Out and Finding Stability. Earlier this year, I experienced my first panic attack. It was easily the worst experience of my life. I’d like to think that I’m a mentally strong person, especially after being independent for so long, but this broke me. The perfect storm of uncertainty, pressure, and overwhelming responsibility led me JONNIE HALLMAN (@DESTROYTODAY) A designer and developer based in Brooklyn, working at Stripe, on thestripe.com website.
RELOADING RUBY WITH SINATRA::RELOADER Reloading Ruby with Sinatra::Reloader. For a while, I didn’t work on the Ruby side of Cushion dev, so now that I’m back in the weeds (or actually the most pristine part of the codebase), I quickly grew tired of restarting the Ruby service whenever I made a change. A while back, I tried using Shotgun to reload Ruby automatically, but I REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Redirecting the Heroku “Open app” button to a custom domain. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab BETTER SLEEP FOR BRIGHTER DAYS An obsessively engineered mattress at a shockingly fair price. Try sleeping on a Casper for 100 days, with free delivery and painlessreturns.
BUILDING THE INLINE FORM SYSTEM Building the inline form system. Apr 7th, 2021. After detailing the design approach for inline forms in the previous post, I spent the past few days building the first one, for clients. I’m thrilled with the implementation, which avoids repetition and keeps the main form clean. Along the way, I built several components that make everythingA WEEK OF CLEANUP
A week of cleanup. Apr 15th, 2021. This past weekend, I wrapped up the inline forms for Cushion’s new invoice form. As expected, laying this early groundwork paved the way for the rest of the inline forms, so I was able to knock one out each day. Since all of these forms were a substantial amount of work for one stretch, I didn’t want to REDESIGNING THE FLOW FOR IMPORTING TRACKED TIME INTO Redesigning the flow for importing tracked time into invoices. May 4th, 2021. For the past week (or more!), I’ve been working on Cushion’s flow for importing tracked time into invoices. This is a more involved part of my current big rock, which is rebuilding the invoicing form from the ground up. As I’ve mentioned in previousposts, this
TROUBLESHOOTING THE DATABASE UPGRADE Troubleshooting the database upgrade. Feb 14th, 2021. In the previous post, I wrote about upgrading Cushion’s production Postgres database from 9.5 to 12. I did this because Heroku notified me that they were deprecating support for 9.5. For the first couple days after the upgrade, everything seemed to be okay, but then Monday happened. REDIRECTING THE HEROKU “OPEN APP” BUTTON TO A CUSTOM Blog; RSS; Twitter; Email; Cushion Redirecting the Heroku “Open app” button to a custom domain Jun 10th, 2020. While looking for areas to improve on Cushion’s infra side, I realized a shortcoming with Heroku’s admin panel that I had begrudgingly put up with for the past six years.. In the pipeline section, each environment has a handy “Open app” button, but this simply opens a tab BETTER SLEEP FOR BRIGHTER DAYS An obsessively engineered mattress at a shockingly fair price. Try sleeping on a Casper for 100 days, with free delivery and painlessreturns.
WELL, THIS IS EMBARRASSING Well, this is embarrassing. While clicking through my Cushion account yesterday, I noticed that my account’s preference for the weekly summary email was enabled, but I didn’t recall receiving one recently. At first, I wondered if I accidentally stopped the weekly scheduled job that sends all the emails, but no—it’s still there. INTRO TO INTEGRATIONS Blog; RSS; Twitter; Email; Cushion Intro to integrations May 24th, 2015. Several weeks into building Cushion, I started thinking about integrations.Obviously, I was ahead of myself, but I knew integrations would play a vital role in the success of Cushion.DESTROY TODAY
Destroy Today is a partnership between builders. Its focus is on solving problems through products crafted with close attention to design and user experience. JONNIE HALLMAN (@DESTROYTODAY) With SCA regulation going into effect at the end of the year, I prioritize migrating to the Stripe customer portal, which means redesigning the account section.DESTROYTODAY.COM
* Blog
* RSS
AT NIGHT.
My work focuses on building thoughtful, intuitive, and delightful interactions for the web, with a devotion to process, transparency, and sharing what I learn. At Stripe, I work on the Site team, which is responsible for stripe.com . We recently launched a colorful newredesign
.
I also lead development of the landing pages for Stripe Checkoutand Stripe Terminal
, as well as the Stripe Blog redesign.
Before Stripe, I freelanced primarily for startups, focusing on animated marketing websites. For Casper, I built the homepage animations for casper.com to introduce their new sheets. Read about the Casper homepage I also worked with Dropbox to build the websites for Carousel and Mailbox—their short-lived photo and email apps. Read about the Carousel website My greatest hit was the FiftyThree Pencil landing page—a collaboration with the FiftyThree team to debut their first piece ofhardware.
Read about the Pencil page After riding the freelance roller coaster for several years, I built my own app to bring peace of mind to freelancers by visualizing their schedule and income from a bird’s eye view. Visit the Cushion website In addition to building for the web, I also love writing (andspeaking
)
about the process. Below are a few of my more popular posts: Burning Out and Finding StabilityJune 4, 2019
Building the Casper homepageJanuary 5, 2016
Building the Carousel website with DropboxApril 15th, 2014
Book Covers, Model Airplanes, and My Dad January 5th,2014
Building the Pencil Page with FiftyThreeNovember 21st, 2013
/> Video tag not supported. Download the video here.
Off the web, my wife and I run a shared studio space in our neighborhood, where we work alongside a handful of our freelancer friends. Come on down to Design Town THAT’S IT FOR NOW. NEED MORE? Read the blog , where I document the process of building this site from scratch, as well as share a behind-the-scenes look at mywork.
Subscribe to the RSS feed , because RSS feeds are cool again and it’s the best way to be notified of new posts. Follow me on Twitter , where I announce new work, blog posts, and the occasional observation/joke about design, code, or my disdain for San Francisco. Contact me via email, especially if you run a design or dev conference in a warm climate, like Palm Springs or Hawaii…Details
Copyright © 2024 ArchiveBay.com. All rights reserved. Terms of Use | Privacy Policy | DMCA | 2021 | Feedback | Advertising | RSS 2.0