POPULARITY
This show has been flagged as Clean by the host. Standard UNIX password manager Password management is one of those computing problems you probably don't think about often, because modern computing usually has an obvious default solution built-in. A website prompts you for a password, and your browser auto-fills it in for you. Problem solved. However, not all browsers make it very easy to get to your passwords store, which makes it complex to migrate passwords to a new system without also migrating the rest of your user profile, or to share certain passwords between different users. There are several good open source options that offer alternatives to the obvious defaults, but as a user of Linux and UNIX, I love a minimal and stable solution when one is available. The pass command is a password manager that uses GPG encryption to keep your passwords safe, and it features several system integrations so you can use it seamlessly with your web browser of choice. Install pass The pass command is provided by the PasswordStore project. You can install it from your software repository or ports collection. For example, on Fedora: $ sudo dnf install pass On Debian and similar: $ sudo apt install pass Because the word pass is common, the name of the package may vary, depending on your distribution and operating system. For example, pass is available on Slackware and FreeBSD as password-store. The pass command is open source, so the source code is available at git.zx2c4.com/password-store. Create a GPG key First, you must have a GPG key to use for encryption. You can use a key you already have, or create a new one just for your password store. To create a GPG key, use the gpg command along with the --gen-key option (if you already have a key you want to use for your password store, you can skip this step): $ gpg --gen-key Answer the prompts to generate a key. When prompted to provide values for Real name, Email, and Comment, you must provide a response for each one, even though GPG allows you to leave them empty. In my experience, pass fails to initialize when one of those values is empty. For example, here are my responses for purposes of this article: Real name: Tux Email: tux@example.com Comment: My first key This information is combined, in a different order, to create a unique GPG ID. You can see your GPG key ID at any time: $ gpg --list-secret-keys | grep uid uid: Tux (My first key) tux@example.com Other than that, it's safe to accept the default and recommended options for each prompt. In the end, you have a GPG key to serve as the master key for your password store. You must keep this key safe. Back it up, keep a copy of your GPG keyring on a secure device. Should you lose this key, you lose access to your password store. Initialize a password store Next, you must initialize a password store on your system. When you do, you create a hidden directory where your passwords are stored, and you define which GPG key to use to encrypt passwords. To initialize a password store, use the pass init command along with your unique GPG key ID. Using my example key: $ pass init "Tux (My first key) " You can define more than one GPG key to use with your password store, should you intend to share passwords with another user or on another system using a different GPG key. Add and edit passwords To add a password to your password store, use the pass insert command followed by the URL (or any string) you want pass to keep. $ pass insert example.org Enter the password at the prompt, and then again to confirm. Most websites require more than just a password, and so pass can manage additional data, like username, email, and any other field. To add extra data to a password file, use pass edit followed by the URL or string you saved the password as: $ pass edit example.org The first line of a password file must be the password itself. After that first line, however, you can add any additional data you want, in the format of the field name followed by a colon and then the value. For example, to save tux as the value of the username field on a website: myFakePassword123 username: tux Some websites use an email address instead of a username: myFakePassword123 email: tux@example.com A password file can contain any data you want, so you can also add important notes or one-time recovery codes, and anything else you might find useful: myFake;_;Password123 email: tux@example.com recovery email: tux@example.org recovery code: 03a5-1992-ee12-238c note: This is your personal account, use company SSO at work List passwords To see all passwords in your password store: $ pass list Password Store ├── example.com ├── example.org You can also search your password store: $ pass find bandcamp Search Terms: bandcamp └── www.bandcamp.com Integrating your password store Your password store is perfectly usable from a terminal, but that's not the only way to use it. Using extensions, you can use pass as your web browser's password manager. There are several different applications that provide a bridge between pass and your browser. Most are listed in the CompatibleClients section of passwordstore.org. I use PassFF, which provides a Firefox extension. For browsers based on Chromium, you can use Browserpass with the Browserpass extension. In both cases, the browser extension requires a "host application", or a background bridge service to allow your browser to access the encrypted data in your password store. For PassFF, download the install script: $ wget https://codeberg.org/PassFF/passff-host/releases/download/latest/install_host_app.sh Review the script to confirm that it's just installing the host application, and then run it: $ bash ./install_host_app.sh firefox Python 3 executable located at /usr/bin/python3 Pass executable located at /usr/bin/pass Installing Firefox host config Native messaging host for Firefox has been installed to /home/tux/.mozilla/native-messaging-hosts. Install the browser extension, and then restart your browser. When you navigate to a URL with an file in your password store, a pass icon appears in the relevant fields. Click the icon to complete the form. Alternately, a pass icon appears in your browser's extension tray, providing a menu for direct interaction with many pass functions (such as copying data directly to your system clipboard, or auto-filling only a specific field, and so on.) Password management like UNIX The pass command is extensible, and there are some great add-ons for it. Here are some of my favourites: pass-otp: Add one-time password (OTP) functionality. pass-update: Add an easy workflow for updating passwords that you frequently change. pass-import: Import passwords from chrome, 1password, bitwarden, apple-keychain, gnome-keyring, keepass, lastpass, and many more (including pass itself, in the event you want to migrate a password store). The pass command and the password store system is a comfortably UNIX-like password management solution. It stores your passwords as text files in a format that doesn't even require you to have pass installed for access. As long as you have your GPG key, you can access and use the data in your password store. You own your data not only in the sense that it's local, but you have ownership of how you interact with it. You can sync your password stores between different machines using rsync or syncthing, or even backup the store to cloud storage. It's encrypted, and only you have the key.Provide feedback on this episode.
This may be one of the most significant episodes of the Smart Cleaning School Podcast. Let's recap for the newer listeners. I have run cleaning companies for the last 18 years in both Upstate New York and the Indian Valley of Pennsylvania. I struggled like you in my first solo cleaning business from 2005 to 2008 as an Initializer. I worked like a madman like you as a Stabilizer from 2009 to 2014. Then I OPTIMIZED my solo cleaning company into a business that provided my family full-time income through part-time cleaning without the drama of employees. I was cleaning 2 days per week and keeping $60,000 profit per year. 90% of our clients were residential. This 13-year period created the ISO Model, which stands for Initialize, Stabilize, and Optimize. I was the boss and could control my schedule. I had freedom and it was awesome! But I had no roadmap for others to also follow! Our family wanted to go back home to the Philly Area. We sold that optimized solo cleaning company in 2018 for $80,000 with a 2-year owner-finance payback contract. This provided around $2,000 per month income from a business we sold to get us up and running in the Philly Area. I had freedom and it was awesome! But I had no roadmap for others to also follow!I started the second solo cleaning company before the pandemic in 2019. I got involved in local networking and joined the Indian Valley Chamber of Commerce. I also launched this podcast in October of 2019. We grew through the pandemic as my business model moved from 90% residential in NY to a 50/50 split in PA with commercial. I cruised through the ISO Model in 18 months to $70,000 profit per year on 2 cleaning days per week. I did it again and much, much faster! I had freedom and it was awesome! But I had no roadmap, just a podcast for others to follow!I rebranded in the September 2021 to Carfagno Commercial Cleaning and the C3 Experience! I had the mental, time, and money margin to invest into the proper systems for hiring and building a team. I made a ton of mistakes. I studied leadership as my primary role shifted from cleaner/salesman to leader. The C3 Team has grown to 10 part-time team members 18 commercial locations. We are about to cross $200k in revenue for the first time. Our next goal is 32 locations in the niche of professional, financial, and medical office spaces under 25,000 square feet in the Indian Valley. This will likely be around $350k revenue with around 20 total team members, 2 field supervisors, and a field leader (operations). I work from home and barely clean except to cover or onboard a new office. We went to Florida the past 2 Februarys as a family. This is a new level of freedom and it is awesome!I recently recorded podcast episode #400! And guess what?! I have a roadmap now! It took me 18 years, 2 optimized solo companies, selling 1 and scaling 1 to extract the path to success and freedom for a solo cleaner. In my experience coaching solos over the past 7 years, I have noticed that solos feel so low. You struggle with the 2 UNDERS and 2 OVERS. You feel Underpaid, Underappreciated, Overworked, and Overwhelmed! Does that sum it up pretty well?! It doesn't have to be that way. You can have freedom as an optimized solo cleaner. In other words, you too can earn full-time income through part-time cleaning without the drama of employees. You just need a roadmap to get there! It's called the Solo Elite Membership Roadmap.Read the rest of this article at the Smart Cleaning School website
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Mode collapse in RL may be fueled by the update equation, published by TurnTrout on June 19, 2023 on LessWrong. TL;DR: We present an advantage variant which, in certain settings, does not train an optimal policy, but instead uses a fixed reward to update a policy a fixed amount from initialization. Non-tabular empirical results seem mixed: The policy doesn't mode-collapse, but has unclear convergence properties. Summary: Many policy gradient methods allow a network to extract arbitrarily many policy updates from a single kind of reinforcement event (e.g. for outputting tokens related to weddings). Alex proposes a slight modification to the advantage equation, called "action-conditioned TD error" (ACTDE). ACTDE ensures that the network doesn't converge to an "optimal" policy (these almost always put infinite logits on a single action). Instead, ACTDE updates the network by a fixed number of logits. For example, suppose R(pizza)=10 and R(cookies)=11. In this case, PPO converges to a policy which puts arbitrarily many logits on cookies, even though the reward difference is small. By contrast, under ACTDE, the network converges to the softmax-over-reward policy {pizza: 27%, cookies: 73%}, which seems more reasonable. Then, Michael Einhorn shares initial results which support Alex's theoretical predictions. Using a similar architecture and Q-head loss function to ILQL for a small transformer trained in a prisoner's dilemma, Michael Einhorn collected initial data on ACTDE. Unlike PPO, ACTDE-trained policies did not mode collapse onto a single action and instead learned mixed strategies. We're interested in additional experiments on ACTDE. We hope that, by using ACTDE instead of advantage, we can automatically mitigate "reward specification" issues and maybe even reduce the need for a KL penalty term. That would make it easier to shape policies which do what we want. The advantage equation implies arbitrary amounts of update on a single experience In PPO, the optimization objective is proportional to the advantage given a policy π, reward function R, and on-policy value function vπ: Alex thinks this equation is actually pretty messed up, although it looked decent at first. The problem is that this advantage can oscillate forever. To explain, let's consider a simple bandit problem—one state ("We had a") and two actions ("wedding" and "party") with rewards R(“We had a wedding”)=1 and R(“We had a party”)=.5. The failure which happens is: The policy tries out the "wedding" action, receives strong reinforcement of R=1, and increasing logits on that action because its advantage was positive. The policy learns that its value is high (vπ(s)=1). The policy eventually tries out the "party" action, receiving less reinforcement at R=.5, decreasing the logits on "party" (because its advantage was negative). The policy learns that the original state's value is low (vπ(s)=.5). The policy tries out "wedding" again, receives positive advantage relative to the low original state value. The logits go up on "wedding", and the value is once again high (vπ(s)=1). This continues to happen, which means that "wedding" gets arbitrarily high logits. This flaw is easiest to see formally. Initialize the t=0 tabular value function vπ0 to 0, and the policy π0 to be 50/50 for “party”/“wedding”. Let γ=1, and we update the value function v using tabular TD learning (with learning rate α=1). So, for example, if the system takes the “wedding” action, its new value function vπ1(s)=1. If the system then takes the “party” action, the value snaps back to vπ2(s)=.5. The policy update rule is: If the advantage Aπ(s,a)=n, then action a becomes n bits more probable under π (i.e. we add n to π's logits on a). So, if π0(s,“ wedding”)=.5 and advantage Aπ0(s,“ wedding")=1, then π1(s,“ wedding”)=.73. Episode-by-episode: t...
Link to original articleWelcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Mode collapse in RL may be fueled by the update equation, published by TurnTrout on June 19, 2023 on LessWrong. TL;DR: We present an advantage variant which, in certain settings, does not train an optimal policy, but instead uses a fixed reward to update a policy a fixed amount from initialization. Non-tabular empirical results seem mixed: The policy doesn't mode-collapse, but has unclear convergence properties. Summary: Many policy gradient methods allow a network to extract arbitrarily many policy updates from a single kind of reinforcement event (e.g. for outputting tokens related to weddings). Alex proposes a slight modification to the advantage equation, called "action-conditioned TD error" (ACTDE). ACTDE ensures that the network doesn't converge to an "optimal" policy (these almost always put infinite logits on a single action). Instead, ACTDE updates the network by a fixed number of logits. For example, suppose R(pizza)=10 and R(cookies)=11. In this case, PPO converges to a policy which puts arbitrarily many logits on cookies, even though the reward difference is small. By contrast, under ACTDE, the network converges to the softmax-over-reward policy {pizza: 27%, cookies: 73%}, which seems more reasonable. Then, Michael Einhorn shares initial results which support Alex's theoretical predictions. Using a similar architecture and Q-head loss function to ILQL for a small transformer trained in a prisoner's dilemma, Michael Einhorn collected initial data on ACTDE. Unlike PPO, ACTDE-trained policies did not mode collapse onto a single action and instead learned mixed strategies. We're interested in additional experiments on ACTDE. We hope that, by using ACTDE instead of advantage, we can automatically mitigate "reward specification" issues and maybe even reduce the need for a KL penalty term. That would make it easier to shape policies which do what we want. The advantage equation implies arbitrary amounts of update on a single experience In PPO, the optimization objective is proportional to the advantage given a policy π, reward function R, and on-policy value function vπ: Alex thinks this equation is actually pretty messed up, although it looked decent at first. The problem is that this advantage can oscillate forever. To explain, let's consider a simple bandit problem—one state ("We had a") and two actions ("wedding" and "party") with rewards R(“We had a wedding”)=1 and R(“We had a party”)=.5. The failure which happens is: The policy tries out the "wedding" action, receives strong reinforcement of R=1, and increasing logits on that action because its advantage was positive. The policy learns that its value is high (vπ(s)=1). The policy eventually tries out the "party" action, receiving less reinforcement at R=.5, decreasing the logits on "party" (because its advantage was negative). The policy learns that the original state's value is low (vπ(s)=.5). The policy tries out "wedding" again, receives positive advantage relative to the low original state value. The logits go up on "wedding", and the value is once again high (vπ(s)=1). This continues to happen, which means that "wedding" gets arbitrarily high logits. This flaw is easiest to see formally. Initialize the t=0 tabular value function vπ0 to 0, and the policy π0 to be 50/50 for “party”/“wedding”. Let γ=1, and we update the value function v using tabular TD learning (with learning rate α=1). So, for example, if the system takes the “wedding” action, its new value function vπ1(s)=1. If the system then takes the “party” action, the value snaps back to vπ2(s)=.5. The policy update rule is: If the advantage Aπ(s,a)=n, then action a becomes n bits more probable under π (i.e. we add n to π's logits on a). So, if π0(s,“ wedding”)=.5 and advantage Aπ0(s,“ wedding")=1, then π1(s,“ wedding”)=.73. Episode-by-episode: t...
Welcome to The Nonlinear Library, where we use Text-to-Speech software to convert the best writing from the Rationalist and EA communities into audio. This is: Mode collapse in RL may be fueled by the update equation, published by Alex Turner on June 19, 2023 on The AI Alignment Forum. TL;DR: We present an advantage variant which, in certain settings, does not train an optimal policy, but instead uses a fixed reward to update a policy a fixed amount from initialization. Non-tabular empirical results seem mixed: The policy doesn't mode-collapse, but has unclear convergence properties. Summary: Many policy gradient methods allow a network to extract arbitrarily many policy updates from a single kind of reinforcement event (e.g. for outputting tokens related to weddings). Alex proposes a slight modification to the advantage equation, called "action-conditioned TD error" (ACTDE). ACTDE ensures that the network doesn't converge to an "optimal" policy (these almost always put infinite logits on a single action). Instead, ACTDE updates the network by a fixed number of logits. For example, suppose R(pizza)=10 and R(cookies)=11. In this case, PPO converges to a policy which puts arbitrarily many logits on cookies, even though the reward difference is small. By contrast, under ACTDE, the network converges to the softmax-over-reward policy {pizza: 27%, cookies: 73%}, which seems more reasonable. Then, Michael Einhorn shares initial results which support Alex's theoretical predictions. Using a similar architecture and Q-head loss function to ILQL for a small transformer trained in a prisoner's dilemma, Michael Einhorn collected initial data on ACTDE. Unlike PPO, ACTDE-trained policies did not mode collapse onto a single action and instead learned mixed strategies. We're interested in additional experiments on ACTDE. We hope that, by using ACTDE instead of advantage, we can automatically mitigate "reward specification" issues and maybe even reduce the need for a KL penalty term. That would make it easier to shape policies which do what we want. The advantage equation implies arbitrary amounts of update on a single experience In PPO, the optimization objective is proportional to the advantage given a policy π, reward function R, and on-policy value function vπ: Alex thinks this equation is actually pretty messed up, although it looked decent at first. The problem is that this advantage can oscillate forever. To explain, let's consider a simple bandit problem—one state ("We had a") and two actions ("wedding" and "party") with rewards R(“We had a wedding”)=1 and R(“We had a party”)=.5. The failure which happens is: The policy tries out the "wedding" action, receives strong reinforcement of R=1, and increasing logits on that action because its advantage was positive. The policy learns that its value is high (vπ(s)=1). The policy eventually tries out the "party" action, receiving less reinforcement at R=.5, decreasing the logits on "party" (because its advantage was negative). The policy learns that the original state's value is low (vπ(s)=.5). The policy tries out "wedding" again, receives positive advantage relative to the low original state value. The logits go up on "wedding", and the value is once again high (vπ(s)=1). This continues to happen, which means that "wedding" gets arbitrarily high logits. This flaw is easiest to see formally. Initialize the t=0 tabular value function vπ0 to 0, and the policy π0 to be 50/50 for “party”/“wedding”. Let γ=1, and we update the value function v using tabular TD learning (with learning rate α=1). So, for example, if the system takes the “wedding” action, its new value function vπ1(s)=1. If the system then takes the “party” action, the value snaps back to vπ2(s)=.5. The policy update rule is: If the advantage Aπ(s,a)=n, then action a becomes n bits more probable under π (i.e. we add n to π's logits on a). So, if π0(s,“ wedding”)=.5 and advantage Aπ0(s,“ wedding")=1, then π1(s,“ wedding”)=2/3. Episod...
In this week’s episode of The Breakout Growth Podcast Sean Ellis and Ethan Garr chat with Arjun Mahadevan, Co-Founder and CEO of doola, a launchpad for your first or next business. Most founders want to spend their time finding Product/Market Fit, but unfortunately, the work of just running a business itself can often get in the way. Doola looks to help founders remove these distractions by offering a “business-in-a-box” solution. The company helps you form your LLC, then manage everything from bookkeeping and banking, to taxes and compliance. Other companies, like LegalZoom, offer business formation services, and certainly, lawyers and accountants can help with these processes too. But doola’s approach is about customer success and building a community where founders can find the support they need. Arjun says it’s both “high tech and high touch”.Arjun says doola has helped founders in 175 countries form their LLCs in the US, and his team is all about finding the highest-leverage opportunities that will result in a great product suite and community for the business owners they serve. So, if you are looking for some great inspiration and insights into how to optimize for sustainable growth, check out this episode of The Breakout Growth Podcast with Arjun Mahadevan, Co-Founder and CEO of doola. We discussed: * Business-in-a-Box; the doola backstory: (06:04) * Meeting the needs of Covid-driven eCommerce acceleration: (15:45) * Building for retention beyond LLC formation: (25:52) * Just-in-time user acquisition: (30:38) * White labeling doula via API: (34:55)And much, much, more . . . This is a public episode. If you would like to discuss this with other subscribers or get access to bonus episodes, visit seanellis.substack.com
2022-08-02 Weekly News - Episode 159Watch the video version on YouTube at https://youtu.be/AzEMIYR_PHcHosts: Eric Peterson - Senior Developer at Ortus Solutions Daniel Garcia - Senior Developer at Ortus Solutions Thanks to our Sponsor - Ortus SolutionsThe makers of ColdBox, CommandBox, ForgeBox, TestBox and all your favorite box-es out there. A few ways to say thanks back to Ortus Solutions: BUY SOME ITB TICKETS - COME TO THE CONFERENCE - Have a few laughs! Like and subscribe to our videos on YouTube. Help ORTUS reach for the Stars - Star and Fork our ReposStar all of your Github Box Dependencies from CommandBox with https://www.forgebox.io/view/commandbox-github Subscribe to our Podcast on your Podcast Apps and leave us a review Sign up for a free or paid account on CFCasts, which is releasing new content every week BOXLife store: https://www.ortussolutions.com/about-us/shop Buy Ortus's Book - 102 ColdBox HMVC Quick Tips and Tricks on GumRoad (http://gum.co/coldbox-tips) Patreon SupportGoal 1 - We have 37 patreons providing 100% of the funding for our Modernize or Die Podcasts via our Patreon site: https://www.patreon.com/ortussolutions. Goal 2 - We are 44% of the way to fully fund the hosting of ForgeBox.io News and AnnouncementsICYMI - Adobe Developer Week was two weeks ago! July 18-22ndThe Adobe ColdFusion Developer Week is back - bigger and better than ever! This year, our experts are gearing up to host a series of webinars on all things ColdFusion. This is your chance to learn with them, get your questions answered, and build cloud-native applications with ease.Gavin and Luis presented Monday - more great content to comeWhat are you waiting for? Register now!Site Link: https://adobe-coldfusion-devweek-2022.attendease.com/registration/form Recordings: Most recent videos https://www.youtube.com/c/adobecoldfusion/videos Blog - https://coldfusion.adobe.com/2022/07/all-devweek-2022-videos-now-posted-on-youtube/ICYMI - How does CFML really perform compared to other languages?I've talked about the TechEmpower performance benchmarks before, but I wanted to highlight them again. They are the closest thing the internet has to a giant cage match between nearly every language and framework out there. The benchmarks have a suite of tests, such as run 20 queries on a page and output some data, and every language and framework implements the same logic in their syntax and style. The tests literally take days to run in full and spin up each combination of language and framework in docker containers where they are hammered with oodles of traffic and then the juicy stats are recorded for sweet graphical comparisons.https://community.ortussolutions.com/t/how-does-cfml-really-perform-compared-to-other-languages/9325 117 ACF and Lucee roundtable (Part 3 – future CFML) with Charlie Arehart, Gert Franz, Mark Drew and Ben NadelCharlie Arehart, Gert Franz, Mark Drew and Ben Nadel talk about “ACF and Lucee roundtable (Part 3 – future CFML)” in this episode of ColdFusion Alive Podcast, with host Michaela Light.“We're gonna be talking about Adobe ColdFusion and Lucee and how they compare and contrast and all cool new features coming in the next five years that we prognosticate future performance. Improvements might be coming CFML engine updates and how you can best approach those confusion security. And we'll wrap up with some other questions about being a good CFML developer and conferences this year.”https://teratech.com/podcast/acf-and-lucee-roundtable-part-3-future-cfml-with-charlie-arehart-gert-franz-mark-drew-and-ben-nadel/INTO THE BOX - Updates1 month left until the start of the Pre-Conf, the Workshop and 2 days of 2 track content. ITB In Person Schedule Finalized on the WebsiteWorkshops are starting to fill up - don't miss your chance.https://intothebox.org/New Releases and UpdatesCFConfig - Now supports Scheduled Tasks in LuceeThanks to a sponsor, CFConfig now supports importing/exporting scheduled tasks for #Lucee Server (Adobe already had support)! Please give it a test with the latest version and remember, tasks need imported into the web context of Lucee! #CommandBox #CFML #ColdFusionhttps://www.forgebox.io/view/commandbox-cfconfigColdBox 6.8.0 Released!I am incredibly excited to announce the release of ColdBox v6.8.0 and its standalone companion libraries: CacheBox, LogBox and WireBox. This update includes some important fixes and we managed to squeeze some nice improvements!Bug COLDBOX-1134 Router closure responses not marshaling complex content to JSON COLDBOX-1132 New virtual app was always starting up the virtual coldbox app instead of checking if it was running already Improvement COLDBOX-1131 Updated Missing Action Response Code to 404 instead of 405 COLDBOX-1127 All core async proxies should send exceptions to the error log New Feature COLDBOX-1130 New config/ColdBox.cfc global injections: webMapping, coldboxVersion COLDBOX-1126 Funnel all out and err logging on a ColdBox Scheduled Task to LogBox TaskCOLDBOX-1135 Remove HandlerTestCase as it is no longer in usage.https://www.ortussolutions.com/blog/coldbox-680-released/Adobe CFML VS Code Extension released (in Public Beta)https://marketplace.visualstudio.com/items?itemName=com-adobe-coldfusion.adobe-cfml-lspWebinar / Meetups and WorkshopsICYMI - Ortus Webinar - July - Legacy Migration Follow Up: Using Coldbox with an Existing Code BaseJuly 29th 2022: Time 11:00 AM Central Time ( US and Canada )Dan Card will be presenting a follow up to his June webinar: Getting started with the Legacy Migration. Dan received some good questions, so July's Webinar: Legacy Migration Follow Up: Using Coldbox with an Existing Code Base with Dan Card. If you have a more traditional / legacy codebase, and are wanting to modernize with ColdBox, but don't know where to start, this webinar is just for you!with Dan CardRecording on CFCasts - https://cfcasts.com/series/ortus-webinars-2022/videos/legacy-migration-follow-up:-using-coldbox-with-an-existing-code-base Ortus Webinar - August - Ortus Team - Into the Box Preview and Q&AAugust 26th, 2022: Time 11:00AM Central Time ( US and Canada )Join some of the Ortus Core Team as they discuss all the great things coming to you from Into the Box, with the Pre Conference Online Sessions, Full Day Workshops and then the 2 day 2 track in Person Conference.The session will be informal, with Q&A from the chat, with maybe a couple of last minute surprise announcements.Register now: https://bit.ly/3cW6LlM Adobe WorkshopsJoin the Adobe ColdFusion Workshop to learn how you and your agency can leverage ColdFusion to create amazing web content. This one-day training will cover all facets of Adobe ColdFusion that developers need to build applications that can run across multiple cloud providers or on-premiseTUESDAY, AUGUST 9, 20229.00 AM - 4.30 PM AESTColdFusion WorkshopBrian Sappeyhttps://coldfusion-1-day-training.meetus.adobeevents.com/ WEBINAR - THURSDAY, AUGUST 18, 202210:00 AM PDTMaking Games with Adobe ColdFusionMark Takatahttps://making-games-with-adobe-coldfusion.meetus.adobeevents.com/FREE :)Full list - https://meetus.adobeevents.com/coldfusion/CFCasts Content Updateshttps://www.cfcasts.comJust Released LogBox 101 - 1 new videos - https://cfcasts.com/series/logbox-101 Episode 10 - Sending Logs to Slack with a Custom Appender https://cfcasts.com/series/logbox-101/videos/sending-logs-to-slack-with-a-custom-appender Ortus Webinars - https://cfcasts.com/series/ortus-webinars-2022 Ortus Webinar for July - Legacy Migration Follow Up: Using Coldbox with an Existing Code Base with Dan Card https://cfcasts.com/series/ortus-webinars-2022/videos/legacy-migration-follow-up:-using-coldbox-with-an-existing-code-base 2022 ForgeBox Module of the Week Series - 1 new Videohttps://cfcasts.com/series/2022-forgebox-modules-of-the-week 2022 VS Code Hint tip and Trick of the Week Series - 1 new Video https://cfcasts.com/series/2022-vs-code-hint-tip-and-trick-of-the-week Coming Soon LogBox 101 from Eric Peterson - 3 more videos left! Koding with the Kiwi + Friends More ForgeBox and VS Code Podcast snippet videos Box-ifying a 3rd Party Library from Gavin ColdBox Elixir from Eric Conferences and TrainingICYMI - Adobe Developer Week 2022 - Last Week!!!!July 18-22, 2022Online - Virtual - FreeThe Adobe ColdFusion Developer Week is back - bigger and better than ever! This year, our experts are gearing up to host a series of webinars on all things ColdFusion. This is your chance to learn with them, get your questions answered, and build cloud-native applications with ease.Speakers have been announcedAgenda has been announcedhttps://adobe-coldfusion-devweek-2022.attendease.com/registration/form https://www.youtube.com/c/adobecoldfusion/videos ICYMI - THAT ConferenceHowdy. We're a full-stack, tech-obsessed community of fun, code-loving humans who share and learn together.We geek-out in Texas and Wisconsin once a year but we host digital events all the time.WISCONSIN DELLS, WI / JULY 25TH - 28TH, 2022A four-day summer camp for developers passionate about learning all things mobile, web, cloud, and technology.https://that.us/events/wi/2022/ Our very own Daniel Garcia is speaking there Easier API Development and Testing - Use PostMan, Webhook.site, and ngrok to Enhance Your Workflowhttps://that.us/activities/sb6dRP8ZNIBIKngxswIt Into The Box 2022September 6, 7 and 8, 2022 in Houston, TexasOne day workshops before the two day conference!Sign up for the workshops before they fill up - couple are almost filledConference Website:https://intothebox.orgCF Summit - OfficialMirageOct 3rd & 4th - CFSummit ConferenceOct 5th - Adobe Certified Professional: Adobe ColdFusion Certification Classes & Testshttps://cfsummit.adobeevents.com/ https://www.adobe.com/products/coldfusion-family/certificate.html Registrations are now open.Ortus CF Summit Training WorkshopColdBox Zero to MegaHero : REST APIs + VueJS Mobile AppOct 5th and 6th - After CF Summit ConferenceLead by Luis Majano & Gavin PickinPrice: $799 - Early bird pricinghttps://www.eventbrite.com/e/ortus-cf-summit-training-workshop-tickets-375306340367Location: Aria - In the luxurious Executive Hospitality Suite like 2019The suite doubled it's prices but we're working hard to keep the costs to the attendees the sameInto the Box Latam 2022Dec 5th or 7thMore information is coming very soon.CFCampNo CFCAMP 2022, we're trying again for summer 2023TLDR is that it's just too hard and there's too much uncertainty right now.More conferencesNeed more conferences, this site has a huge list of conferences for almost any language/community.https://confs.tech/Blogs, Tweets, and Videos of the WeekGenerating common blog files with JasperAUGUST 1, 2022 / ROBERT ZEHNDERMy schedule has been full lately leaving little time for fun side projects, but one thing I really wanted to get working in Jasper was the ability to generate templates from CFML. Eleventy allows you to set the output file using the permalink attribute in the front matter and generate a template dynamically using liquid script. I would like Jasper to function in much the same way, but using CFML to generate the page.https://kisdigital.com/post/generating-common-blog-files-with-jasperChanging ColdBox module behavior without changing the moduleAUGUST 1, 2022 / WIL DE BRUINI have to admit, this title seems a little weird. How can I change some behavior in a module without changing the code? And why do I want to change this behavior?Let me start with the why. I am using a lot of box modules, but sometimes there are some pieces missing, or am I not happy with some default behavior. Many modules are very adaptable, for example using configuration settings or some interceptors. But sometimes this is not enough.In a Free and Open Source Software world we just clone a repo, modify some code and send a pull request to the authors. But what if they don't want your changes? I could fork the project, and create my own module, but from this moment on I am the maintainer of my own module. And sometimes other modules are depending on the module I want to fork, which is often not what I want. But there are other ways to change a module, and they work best for smaller changes.https://shiftinsert.nl/changing-coldbox-module-behaviour-without-changing-the-module/How to get a visitor's real IP in CFMLAUGUST 1, 2022 / WIL DE BRUINSome of our clients love it when we log a lot of security related info in their applications. So on every authentication request we want to log the user's IP and if we are denying access to some parts of the application we want to log this as well. So can we detect the real IP of our users with high confidence? The short answer: you can't trace all the bad guys and people who want to stay anonymous, but for the majority of users you can get some more info.https://shiftinsert.nl/how-to-get-a-visitors-real-ip-in-cfml/Gavin also has a GetRealIP() ForgeBox modulehttps://www.forgebox.io/view/getrealipOr in cbSecurityIntegrating ColdBox with Existing Code Series -3 -First Module / Include our CodeJULY 27, 2022 / DAN CARDRecently I did a webinar on Refactoring Legacy Code and the question came up about whether or not it was possible to use Coldbox with existing code without converting everything to a Coldbox module or making changes to the existing codebase. In the first installation in this series, we took a tour of the various elements which make up ColdBox. In the second installation, we looked at creating layouts, views, and routes in the main site. In this installation, we're going to start incorporating our existing code base and do so using a module.https://www.ortussolutions.com/blog/integrating-coldbox-with-existing-code-series-3-first-module-include-our-codeUse arraySet to Initialize an Array of a Specific SizeJULY 27, 2022 / MATTHEW CLEMENTEI recently learned about the function arraySet. It's a niche function, to be sure, but I nevertheless found that it served a useful purpose when creating arrays. How is it useful? The short answer is that arraySet, when combined with a mapping function, can be used to initialize an array of a specific size with a range of values. This is really handy for generating data when testing, putting together a demo, or if you just need some placeholder data while scaffolding an application.https://blog.mattclemente.com/2022/07/27/til-cfml-arrayset/CFML JobsSeveral positions available on https://www.getcfmljobs.com/Listing over 116 ColdFusion positions from 62 companies across 55 locations in 5 Countries.0 new jobs listed this weekOther Job Links Ortus Solutions https://www.ortussolutions.com/about-us/careers Tomorrow's Guides - Senior ColdFusion Developer - Remote (UK Based) https://www.tomorrows.co.uk/jobs.cfm There is a jobs channel in the CFML slack team, and in the box team slack now too ForgeBox Module of the WeekRoute VisualizerThe ColdBox Route visualizer will map out all your routing tables for any ColdBox 4+ application. Just drop into your modules folder or use the box-cli to installbox install route-visualizer --savedevOnce installed you can now visit the entry point /route-visualizer, if rewrites are enabled, or /index.cfm/route-visualizer, if rewrites are not enabled, and go
My guest today is Garry Tan, founder and managing partner of early-stage venture firm, Initialized Capital. Before starting Initialized, Garry was a partner at Y Combinator, employee number 10 at Palantir, and co-founder of YC backed blog platform Posterous. Our discussion covers what's missing in the investment world, how to best systematize venture investments, and what he learned from Paul Graham. Please enjoy my conversation with Garry Tan. For the full show notes, transcript, and links to mentioned content, check out the episode page here. ----- This episode is brought to you by Tegus. Tegus is the new digital hub for market intelligence. The Tegus platform empowers Investors and Corporate Development teams to invest smarter by pairing best-in-class technology with the highest quality user-generated content and data. Find out why a majority of the top firms are using Tegus on a daily basis. Head to tegus.co/patrick for your free trial. ----- This episode is brought to you by Lemon.io. The team at Lemon.io has built a network of Eastern European developers ready to pair with fast-growing startups. We have faced challenges hiring engineering talent for various projects - and Lemon.io offered developers for one-off projects, developers for full start to finish product development, or developers that could be add-ons to the existing team. Check out lemon.io/patrick to learn more. ----- Invest Like the Best is a property of Colossus, LLC. For more episodes of Invest Like the Best, visit joincolossus.com/episodes. Past guests include Tobi Lutke, Kevin Systrom, Mike Krieger, John Collison, Kat Cole, Marc Andreessen, Matthew Ball, Bill Gurley, Anu Hariharan, Ben Thompson, and many more. Stay up to date on all our podcasts by signing up to Colossus Weekly, our quick dive every Sunday highlighting the top business and investing concepts from our podcasts and the best of what we read that week. Sign up here. Follow us on Twitter: @patrick_oshag | @JoinColossus Show Notes [00:02:45] - [First question] - Why he's interested by software and the global brain [00:06:23] - How the shift from global to local manifests in his investing and company activities [00:11:42] - Ways to increase throughput that would benefit everybody in the investing world [00:17:13] - What software he would build if there were no limitations and what happens at the systems level of securing deals at Initialize [00:23:33] - Why there is no objective application process for early-stage capital and how much human judgment we can remove from approving funding [00:26:49] - Shared characteristics amongst new inventions he finds favorable [00:31:49] - Whether he's able to evaluate an idea without a prototype [00:33:33] - Why travel planning software was the worst idea of 2012 and what he sees as the bad idea of today [00:36:06] - The most common reasons for failure in these types of businesses [00:39:07] - Is big enabling technology shifts what manifests in successful outcomes? [00:40:37] - The role of media and how it intersects with investing [00:44:29] - What he attributes to the success of his firm and thriving in chaos [00:48:11] - Would he press a button that would have made his childhood easy, and whether he's met founders who haven't come across adversity in their lives [00:50:00] - His thoughts on the world today via the lens of his portfolio [00:53:12] - The kindest thing anyone has ever done for him
How to Get Out of Your Own Way: with Special Guest Steve HultquistHe will give you the tools to overcome the obstacle of You!#getoutofyourownway, #ogmandio, #overcomingobstacles, #coffeebreakshow, #VickieHelm, #SteveHultquist, #liveyourbestlifeHere are some of the key points from today's episode * Begin to see the root cause of the blocks in your life* Experience a shift in how you see what's happening* Start to understand ways you can see the situation differently* Change your language to change what you see* Initialize a process to develop new tools for living your best life05:11 What Are the Three Things That Get In Our Way and Block Us From Having What We Want?17:09 Why You Want to Stop Shoulding All Over Yourself22:01 How to Get the Results You Have Always Wanted and Dreamed About23:14 Where Our Current Education System Doesn't Serve Us, And How to Remedy That43:29 What Are Your Most Powerful Transformational Tools? You can connect with Steve Hultquist on his website"stevehultquist@me.comhttps://www.facebook.com/shultquisthttps://habitfindercoach.com/Steve is certified as both a Habit Finder coach with the Og Mandino Leadership Institute and a Higher Ground Leadership coach with the Secretan Center.Steve sees the world through a rare blend of an engineering mind with a deep love for people. He sees his purpose to develop a more abundant and loving world, and he approaches it with a mix of humor, wisdom, kindness, and love. He wants nothing more than for each person on the plant to grow into their highest and best selves. While he provides his expertise to Fortune 500 companies in helping them deploy technology to bring out the best in their employees, he also provides coaching to business leaders, teams, and entrepreneurial individuals looking to break through to the next level.You can reach out to Vickie here or on FB:https://www.facebook.com/groups/successsecretsforbusinessfamilyandlife/https://www.vickiehelm.comhttps://metadigmdigitalco.com/coffee-break-show-vickie-helm
System Diagnosis in Progress. Diagnostic Complete. Rebooting. Installing Updates. Searching for Target. Target Acquired. Beginning Review Sequence. Processing. ETA Feb 13th.
I’m starting a podcast today. Subscribe to https://sive.rs/podcast.rss.
I’m starting a podcast today. Subscribe to https://sivers.org/podcast.rss.
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 40: Euphoric Hardstyle Follow me for regular mixes! Download is enabled! Listen on Spotify: https://spoti.fi/2TTDOfH Listen on iTunes: https://apple.co/2F7D4bl Listen on Youtube: https://youtu.be/BLj-NftHDm4 Listen on Mixcloud: http://bit.ly/2I2hE2n Listen on Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com What’s up everybody, Matduke here, with the Hard & Loud Podcast Episode 40. Today I’ve made you a mix with the best new melodic hardstyle, going from euphoric to darker melodies. It’s a good one. As I say everytime, you can find this show for free on Spotify, iTunes, Soundcloud, Youtube and more. I’ve put links in the description for you. Also, I produce my own music, which you can find everywhere. Check out my free album Initialize to get started. Finally, I’m on Instagram as djmatduke, come meet me there. That’s it for the intro, now here’s an hour of uninterrupted music. Enjoy. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Wasted Penguinz - FML 4:48 Dave - Ganesha 7:59 Sephyx & TALON - Wild Love 11:38 Yuta Imai - Digital Dystopia 15:48 Adrenalize ft. ADN - Tomorrow 19:45 Psyko Punkz - Victorious 23:47 LNY TNZ - We Go Up (Da Tweekaz Remix) 27:05 Aftershock - Light The Fire 30:46 Code Black & Sub Sonik - Worlds Collide 33:37 Bass Modulators & Villain - The Pit 37:10 Wasted Penguinz - Evergreen 41:21 Crude Intentions - Back & Forth 44:52 RWND - M.A.R.C. 48:20 Sound Rush ft. LXCPR - Take It All 51:38 Frontliner - Dream Dust (2019 Edit) 54:38 Aftershock - Reaching For The Stars
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 39: Uk/Happy Hardcore Follow me for regular mixes! Download is enabled! Listen on Spotify: https://spoti.fi/2TTDOfH Listen on iTunes: https://apple.co/2F7D4bl Listen on Youtube: https://youtu.be/07PK64dbe0E Listen on Mixcloud: http://bit.ly/2E0cx1d Listen on Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com Hello friends, this is Matduke, bringing you the Hard & Loud Podcast Episode 39. This week, I’ve got a fresh mix of UK and Happy Hardcore for you. I hope you like it. For the newcomers, this show is on Spotify, iTunes, Soundcloud, Youtube, and more. Links are in the description. If you enjoy my mixes, you might also like my original music, which I’ve been releasing on Spotify, Apple Music and others. Get started with my free album, Initialize. Finally, find me on Instagram as “djmatduke”, and on other social media to stay updated about the show. Now, enjoy the music. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Michael Mansion vs Rob IYF & Al Storm - Rise Above 4:41 DJ Shimamura x Mitomoro - Open Your Heart feat. Lindsey Marie 9:25 Ganar - Falling 13:03 Firelite - Your Love (Rob IYF Remix) 16:34 Attic - Last Goodbye (Supersaw Remix) 20:54 Audiofreq - Desire (Audiophetamine Edit) 23:09 Technikore & Suae - Til I Burn 26:11 Swifty - With You 31:27 M-Project, Vau Boy - Toyshop (Scott Brown Edit) 34:39 Paul Elstak - Luv U More (Tweekacore X Gammer Flip) 38:31 lapix - Under Mebius feat. 藍月なくる 42:05 JTS, Lindsey Marie - Turn It Around 45:12 Nobody feat. MC Riddle - Be Water 48:57 Impact - Begin Again (Sam Auscore Remix) 54:02 Matduke - Completely 57:02 TheFatRat feat. Lola Blanc - Oblivion (Outforce Remix)
11409580_Oh__Lovely_Appearance_of_Death_Original_Mix 11428666_Flashes_Navar_Remix 11525993_Implant_Kasper_Koman_Remix 11558836_Soul_De_Anima_Thomas_Gandey_Last_Communication_Remix_Edit 11569908_Aakom_Original_Mix 11439923_Seven_Semitones_Percussion_Mix 11494259_Darwin_s_Theory_Original_Mix 11494266_It_s_Not_Over_Until_the_End_Original_Mix 11527164_After_Italiano_Original_Mix
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 32: Uk/Happy Hardcore Follow me for regular mixes! Download is enabled! Listen on Youtube: https://youtu.be/xVA7jIfDDcE Listen on Mixcloud: http://bit.ly/2S14drf iTunes: https://apple.co/2F7D4bl Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com Hey everybody, what’s up? I’m Matduke, and I’m back with a new episode of the Hard & Loud Podcast. This is episode 32, featuring UK and happy hardcore, with some freeform. I think you’ll like it. If you want to support me, please follow me on social media, rate the podcast, leave a comment, and check out my album, Initialize, on Spotify and Apple Music. Thank you and now, enjoy the show. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Andy Wilson & Ganah - Love of My Life 4:53 Darren Styles - Satellite (Technikore & JTS Remix) 9:02 Laidback Luke & Tujamo - S.A.X. (NA7 Hardcore Edit) 11:51 Scott Brown - Make You Scream 14:40 Infnite & M-Project - Jump (Hardbass-Core Mix) 17:07 nora2r - Fly Again 21:16 Srav3R - Grandwing 24:28 Scott Brown - Put Them Up 27:51 Avaxx & Kate Wild - Surrender (Technikore Mix) 31:37 Getty - Lovin' U 35:23 Olly P - I Want You 39:12 Getty - Bring The House Down 42:14 Daniel Seven - Blockchain 45:04 Technikore, Nathalie - Calling Out To You (Technikore Redux) 48:50 KO3 feat. YUC'e - Dreamland 53:21 Daniel Seven & Alaguan - B-Plan 56:11 Substanced - Blue Remembered Earth
Acquiring Behavior Through Inheritance A weekly podcast about programming, development, and design through the lens of amazing books, chapter-by-chapter. Sani Metz - Object-Oriented Design in Ruby “Inheritance is, at its core, a mechanism for automatic message delegation. It defines a forwarding path for not-understood messages.” Where to Use Inheritance Objects that share a common parent - The objects that you are modeling must truly have a generalization-specialization relationship. Bicycle Touring Company - FastFeet Bikes - Mountain and Road Bikes Bikes have an overall size, a handlebar tape color, a tire size, and a chain type. Only mountain bikes have shocks Only Road bikes have handlebar tape Create a new empty Bicycle Class Let RoadBike > Bicycle And MountainBike > Bicycle When in doubt put less code in the parent, it's easier to promote code later when you need a shared code. “The general rule for refactoring into a new inheritance hierarchy is to arrange code so that you can promote abstractions rather than demote concretions.” A superclass may have many subclasses, but each subclass is permitted only one superclass. This family tree image is, however, a bit misleading. In many parts of the biological world, it's common for descendants to have two ancestors. It's really useful to rails a NotImplementedError in the parent class in the methods that are required from their children, for example, default tire_size - “Creating code that fails with reasonable error messages takes minor effort in the present but provides value forever.” Initialize > Post Initialize to append any or overrode attributes from the parent initialize method. Initialize + post_initialize Closes with a mic drop - Initializing a new RecumbentBike is so DRY and painless! “Inheritance solves the problem of related types that share a great deal of common behavior but differ across some dimension.” “The best way to create an abstract superclass is by pushing code up from concrete subclasses.” “When your problem is one of needing numerous specializations of a stable, common abstraction, inheritance can be an extremely low-cost solution.” PICKS JP: Machine Learning with JavaScript John: Refactoring UI by Adam Wathan and Steve Schoger - Hard Wired Internet - Ran a Cat 5 Cable from my router - SO WORTH IT.
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 31: Hardstyle/Rawstyle Follow me for regular mixes! Download is enabled! Listen on Youtube: https://youtu.be/PDA75Um_fyU Listen on Mixcloud: http://bit.ly/2MeMQgb iTunes: https://apple.co/2F7D4bl Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com Hey guys, it’s Matduke with the Hard & Loud Podcast Episode 31. One hour of hardstyle and rawstyle at 155 bpm. I hope you like it. Follow my channel, rate the podcast on Youtube, iTunes, Soundcloud and Google, and don’t forget to come say hi on Twitter and Instagram. Also, check out my album, Initialize, on Spotify and Apple Music. Thank you for your support and now, enjoy the music. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 MYST - I'm Falling 2:59 Adaro - The Otherside 7:50 Christian Reindl Ft. Atrel - Claim Your Weapons (Enemy Contact Remix) 11:36 Level One - Don't Quit 14:36 RVAGE ft. Elyn - Planet 10 18:33 Hard Driver - Thank Me Later 21:39 The Prophet - Listen To Your Heart 25:46 Crypsis - Combination Style 28:53 Delete & Regain - Shitty Music 32:01 The Prophet & Sub Sonik - No Stopping Us 35:04 Digital Punk - Die Trying 38:50 E-Force & Adaro - Long Hard Summer 43:04 Delete & Killshot - Disco Weapon 46:56 E-Force & D-Sturb - Once Again 50:36 Frequencerz - Earthquake 54:03 Hard Driver ft. Zsen - Get It Started 56:53 Digital Punk & B-Front - The Supernatural
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 30: Hardtek/Frenchcore Follow me for regular mixes! Download is enabled! Listen on Youtube: https://youtu.be/vgZU8K-wM3A Listen on Mixcloud: http://bit.ly/2Vs2PvR iTunes: https://apple.co/2F7D4bl Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com What’s up guys, Matduke here with episode 30 of the Hard & Loud Podcast. This week is Hardtek and Frenchcore. Get ready. If it’s your first episode, be sure to subscribe on Soundcloud, Youtube, iTunes and most other podcasting platforms. Also, check out my album, Initialize, on Spotify and Apple Music. Thanks and now, enjoy the mix. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Quarks - Dualive 3:43 Tanukichi & Loctek - Laser Blade 6:24 Knife Party - LRAD (Tanukichi Hardtek Remix) 9:06 Kaijusquad - Slattern 12:23 Alryk - Spitfire 17:16 Kobaltik - Let's Kick 20:42 Tanukichi vs CriS3r - Obs 24:24 Dustvoxx - Launcher 28:59 Alryk - Here To Stay 33:31 Tanukichi - Hammer Pitch 36:23 Dustvoxx - Thanatos 41:16 Dustvoxx, Laur - Firelight (Neokontrol Remix) 46:16 Mat Weasel - Shine 50:08 Alryk - Bailar 54:47 The Mastery & Akasha - Evidence 59:00 Wreck Reality & Miss Enemy - It's A Riot
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 29: Happy Hardcore/Freeform Follow me for regular mixes! Download is enabled! Listen on Youtube: https://youtu.be/fs8sSRzLxpQ Listen on Mixcloud: http://bit.ly/2PS2leu iTunes: https://apple.co/2F7D4bl Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com Hey friends, how are you? I’m Matduke and I’m back this week with the Hard & Loud Podcast Episode 29. I’ve got a great mix of happy hardcore and freeform for you, you’re gonna love this one. To all the new people, don’t forget to subscribe to the podcast on your favorite platform. It’s available on iTunes, Soundcloud, Youtube and many more podcasting sites. If you haven’t checked it out, find my personal album, called Initialize, on Spotify and Apple Music. Thank you for your support and now, enjoy the music. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Darren Styles & Dougal ft. Jacob Wellfair - Home 3:45 S3rl - Pretty Rave Girl (Suae X Technikore Remix) 6:15 Srav3R - After Ascension 9:26 Will Sparks, Reece Low - Delusion Feat. Jacob Lee (Ryan Kore Remix) 13:18 ALRT - Give Me Everything 15:46 HENTAiCORE - Machine Made Decisions 18:24 Ganah - The Fallout 21:58 Daniel Seven - Resonate 24:14 East Clubbers - Walk Alone (Archari Remix) 28:32 Substanced - Legend (Alchemiist Remix) 33:01 Transcend - Journey Into Night 36:21 Moon Rush & Relect - Let's Go 39:05 Alaguan - There For You 42:39 Technikore & HORUTUNA - Underwater 46:03 Dougal - Headbanger 47:44 Getty - Watch Me 50:11 Relect - Fire 52:49 Getty - Get The Switch 55:44 Freezer - Trinity 58:33 Audiofreq - The Warrior
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 28: Euphoric Hardstyle Follow me for regular mixes! Download is enabled! Listen on Youtube: https://youtu.be/Kjpt2yQqbG8 Listen on Mixcloud: http://bit.ly/2BSWYaS iTunes: https://apple.co/2F7D4bl Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com Hey everybody, Matduke here, with the Hard & Loud Podcast Episode 28. This week is all about euphoric hardstyle, I’ve got lots of great new music to share with you. As most of you know, this podcast is on iTunes, Soundcloud, Youtube and most podcasting apps. Subscribe for free and stay updated. Also check out my new album, Initialize, available on all streaming platforms. Thank you and now, enjoy the music! Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Audiofreq - Power Up 3:15 Crystal Lake & D-Stroyers - Invaders 5:46 DJ Manian - Hold Me Tonight (Toneshifterz & Suae & Pulsar Remix) 9:06 Fanatics & Synthsoldier - BANGER 12:03 Kit Hype - Like Thunder 16:22 Da Tweekaz & TNT Ft. Matthew Steeper - Together 20:33 Brennan Heart ft. Trevor Guthrie - Won't Hold Me Down (Gravity) 23:53 Demi Kanon - Another Day 26:25 Primeshock - Everyday 29:36 Adrenalize ft. ADN - Get Up 33:30 TNT & LXCPR - The Remedy 37:06 Coone & TNT ft. Technotronic - Pump Up The Jam 40:26 RVAGE Ft. Diandra Faye - Free Fall 43:00 Atmozfears & Devin Wild Ft. David Spekter - Breathe 46:02 D-Block & S-Te-Fan - Gave U My Love 49:49 Rebourne - Split Second VIP 52:17 Brennan Heart & Galactixx - Partyfreak 55:03 Endymion - Rebels At Night 58:01 Dr Rude & Villain - Break The Floor (Crude Intentions Remix)
Matduke presents The Hard & Loud Podcast (Hardstyle, Happy Hardcore)
Ep. 27: Hardcore/Hard Psy Follow me for regular mixes! Download is enabled! Listen on Youtube: https://youtu.be/sK_ZUyqaYdc Listen on Mixcloud: http://bit.ly/2FzCqs3 iTunes: https://apple.co/2F7D4bl Google Play: http://bit.ly/2t6gfUd Contact: matduke@gmail.com What’s up everybody, this is Matduke, bringing you a new episode of the Hard & Loud Podcast. This is Episode 27, get ready for a mix of hard psy, hardcore and hardstyle. You can listen to my podcast on all the main platforms, iTunes, Soundcloud, Youtube and most podcasting apps. Also, check out my new artist album, Initialize. Alright, that’s it for the announcements, thank you for your support and enjoy the mix. Links Facebook: https://facebook.com/djmatduke Twitter: https://twitter.com/matduke Instagram: https://instagram.com/djmatduke/ Spotify: http://spoti.fi/2j09OcQ Soundcloud: https://soundcloud.com/djmatduke Mixcloud: https://www.mixcloud.com/matduke/ Youtube: https://youtube.com/user/djmatduke Twitch: https://twitch.tv/matduke Website: http://djmatduke.com/ Tracklist 0:00 Darren Styles & Tweekacore - Down With The E 4:42 Ben Nicky & Callum Higby - The Donk 7:11 Mark Sixma - Sinfonia (Moon Rush Edit) 9:27 Fox Stevenson - Miss You (Macks Wolf Remix) 13:27 Alex Prospect & Jakka-B - Snakebite 15:09 DJ Snake - Propaganda (Gommi Remix) 17:39 Srezcat - Go On 20:49 Lapix vs Camellia - Hypnotize 25:15 Sub Zero Project - The XPRMNT 28:51 Kayzo - More Than Ever 32:14 Blaster - Drop The Bomb 35:09 Yellow Claw & Aazar - Everyday a Victory 37:57 Yultron and Gammer - Sleep At Night 39:33 Jekyll - Back & Forth 42:42 Darren Styles, Gammer, Dougal - Burning Up 45:37 Snavs & Yellow Claw - Jungle Fever (K3V Remix) 47:49 Spyro - Johnny 50:24 Krowdexx - Rebellion 53:55 Warface - Doom Slayer 57:34 Rebelion ft. Sovereign King - Wall Of Death
This week on BSD Now, we clear up some ZFS FUD, show you how to write a NetBSD kernel module, and cover DragonflyBSD on the desktop. This episode was brought to you by Headlines ZFS is the best file system (for now) (http://blog.fosketts.net/2017/07/10/zfs-best-filesystem-now/) In my ongoing effort to fight misinformation and FUD about ZFS, I would like to go through this post in detail and share my thoughts on the current state and future of OpenZFS. The post starts with: ZFS should have been great, but I kind of hate it: ZFS seems to be trapped in the past, before it was sidelined it as the cool storage project of choice; it's inflexible; it lacks modern flash integration; and it's not directly supported by most operating systems. But I put all my valuable data on ZFS because it simply offers the best level of data protection in a small office/home office (SOHO) environment. Here's why. When ZFS first appeared in 2005, it was absolutely with the times, but it's remained stuck there ever since. The ZFS engineers did a lot right when they combined the best features of a volume manager with a “zettabyte-scale” filesystem in Solaris 10 The skies first darkened in 2007, as NetApp sued Sun, claiming that their WAFL patents were infringed by ZFS. Sun counter-sued later that year, and the legal issues dragged on. The lawsuit was resolved, and it didn't really impede ZFS. Some say it is the reason that Apple didn't go with ZFS, but there are other theories too. By then, Sun was hitting hard times and Oracle swooped in to purchase the company. This sowed further doubt about the future of ZFS, since Oracle did not enjoy wide support from open source advocates. Yes, Oracle taking over Sun and closing the source for ZFS definitely seemed like a setback at the time, but the OpenZFS project was started and active development has continued as an ever increasing pace. As of today, more than half of the code in OpenZFS has been written since the fork from the last open version of Oracle ZFS. the CDDL license Sun applied to the ZFS code was https://sfconservancy.org/blog/2016/feb/25/zfs-and-linux/ (judged incompatible) with the GPLv2 that covers Linux, making it a non-starter for inclusion in the world's server operating system. That hasn't stopped the ZFS-on-Linux project, or Ubuntu… Although OpenSolaris continued after the Oracle acquisition, and FreeBSD embraced ZFS, this was pretty much the extent of its impact outside the enterprise. Sure, NexentaStor and http://blog.fosketts.net/2008/09/15/greenbytes-embraces-extends-zfs/ (GreenBytes) helped push ZFS forward in the enterprise, but Oracle's lackluster commitment to Sun in the datacenter started having an impact. Lots of companies have adopted OpenZFS for their products. Before OpenZFS, there were very few non-Sun appliances that used ZFS, now there are plenty. OpenZFS Wiki: Companies with products based on OpenZFS (http://open-zfs.org/wiki/Companies) OpenZFS remains little-changed from what we had a decade ago. Other than the fact that half of the current code did not exist a decade ago… Many remain skeptical of deduplication, which hogs expensive RAM in the best-case scenario. This is one of the weaker points in ZFS. As it turns out, the demand for deduplication is actually not that strong. Most of the win can be had with transparent compression. However, there are a number of suggested designs to work around the dedup problems: Dedup Ceiling: Set a limit on the side of the DDT and just stop deduping new unique blocks when this limit is reached. Allocation Classes: A feature being developed by Intel for a supercomputer, will allow different types of data to be classified, and dedicated vdevs (or even metaslabs within a vdev), to be dedicated to that class of data. This could be extended to having the DDT live on a fast device like an PCIe NVMe, combined with the Dedup Ceiling when the device is full. DDT Pruning: Matt Ahrens described a design where items in the DDT with only a single reference, would be expired in an LRU type fashion, to allow newer blocks to live in the DDT in hopes that they would end up with more than a single reference. This doesn't cause bookkeeping problems since when a block is about to be freed, if it is NOT listed in the DDT, ZFS knows it was never deduplicated, so the current block must be the only reference, and it can safely be freed. This provides a best case scenario compared to Dedup Ceiling, since blocks that will deduplicate well, are likely to be written relatively close together, whereas the chance to a dedup match on a very old block is much lower. And I do mean expensive: Pretty much every ZFS FAQ flatly declares that ECC RAM is a must-have and 8 GB is the bare minimum. In my own experience with FreeNAS, 32 GB is a nice amount for an active small ZFS server, and this costs $200-$300 even at today's prices. As we talked about a few weeks ago, ECC is best, but it is not required. If you want your server to stay up for a long time, to be highly available, you'll put ECC in it. Don't let a lack of ECC stop you from using ZFS, you are just putting your data at more risk. The scrub of death is a myth. ZFS does not ‘require' lots of ram. Your NAS will work happily with 8 GB instead of 32 GB of RAM. Its cache hit ratio will be much lower, so performance will be worse. It won't be able to buffer as many writes, so performance will be worse. Copy-on-Write has some drawbacks, data tends to get scattered and fragmented across the drives when it is written gradually. The ARC (RAM Cache) lessens the pain of this, and allows ZFS to batch incoming writes up into nice contiguous writes. ZFS purposely alternates between reading and writing, since both are faster when the other is not happening. So writes are batched up until there is too much dirty data, or the timeout expires. Then reads are held off while the bulk linear write finishes as quickly as possible, and reads are resumed. Obviously all of this works better and more efficiently in larger batches, which you can do if you have more RAM. ZFS can be tuned to use less RAM, and if you do not have a lot of RAM, or you have a lot of other demand on your RAM, you should do that tuning. And ZFS never really adapted to today's world of widely-available flash storage: Although flash can be used to support the ZIL and L2ARC caches, these are of dubious value in a system with sufficient RAM, and ZFS has no true hybrid storage capability. It's laughable that the ZFS documentation obsesses over a few GB of SLC flash when multi-TB 3D NAND drives are on the market. And no one is talking about NVMe even though it's everywhere in performance PC's. Make up your mind, is 32GB of ram too expensive or not… the L2ARC exists specifically for the case where it is not possible to just install more RAM. Be it because there are no more slots, of limits of the processor, or limits of your budget. The SLOG is optional, but it never needs to be very big. A number of GBs of SLC flash is all you need, it is only holding writes that have not been flushed to the regular storage devices yet. The reason the documentation talks about SLC specifically is because your SLOG needs a very high write endurance, something never the newest NVMe devices cannot yet provide. Of course you can use NVMe devices with ZFS, lots of people do. All flash ZFS arrays are for sale right now. Other than maybe a little tuning of the device queue depths, ZFS just works and there is nothing to think about. However, to say there is nothing happening in this space is woefully inaccurate. The previously mentioned allocation classes code can be used to allocate metadata (4 KB blocks) on SSD or NVMe, while allocating bulk storage data (up to 16 MB blocks) on spinning disks. Extended a bit beyond what Intel is building for their super computer, this will basically create hybrid storage for ZFS. With the metaslab classes feature, it will even be possible to mix classes on the same device, grouping small allocations and large allocations in different areas, decreasing fragmentation. Then there's the question of flexibility, or lack thereof. Once you build a ZFS volume, it's pretty much fixed for life. There are only three ways to expand a storage pool: Replace each and every drive in the pool with a larger one (which is great but limiting and expensive) It depends on your pool layout. If you design with this in mind using ZFS Mirrors, it can be quite useful Add a stripe on another set of drives (which can lead to imbalanced performance and redundancy and a whole world of potential stupid stuff) The unbalanced LUNs performance issues were sorted out in 2013-2016. 2014: OpenZFS Allocation Performance (http://open-zfs.org/w/images/3/31/Performance-George_Wilson.pdf) 2016: OpenZFS space allocation: doubling performance on large and fragmented pools (http://www.bsdcan.org/2016/schedule/events/710.en.html) These also mostly solved the performance issues when a pool gets full, you can run a lot closer to the edge now Build a new pool and “zfs send” your datasets to it (which is what I do, even though it's kind of tricky) This is one way to do it, yes. There is another way coming, but I can't talk about it just yet. Look for big news later this year. Apart from option 3 above, you can't shrink a ZFS pool. Device removal is arriving now. It will not work for RAIDZ*, but for Mirrors and Stripes you will be able to remove a device. I've probably made ZFS sound pretty unappealing right about now. It was revolutionary but now it's startlingly limiting and out of touch with the present solid-state-dominated storage world. I don't feel like ZFS is out of touch with solid state. Lots of people are running SSD only pools. I will admit the tiered storage options in ZFS are a bit limited still, but there is a lot of work being done to overcome this. After all, reliably storing data is the only thing a storage system really has to do. All my important data goes on ZFS, from photos to music and movies to office files. It's going to be a long time before I trust anything other than ZFS! + I agree. + ZFS has a great track record of doing its most important job, keeping your data safe. + Work is ongoing to make ZFS more performance, and more flexible. The import thing is that this work is never allowed to compromise job #1, keeping your data safe. + Hybrid/tiered storage features, re-RAID-ing, are coming + There is a lot going on with OpenZFS, check out the notes from the last two OpenZFS Developer Summits just to get an idea of what some of those things are: 2015 (http://open-zfs.org/wiki/OpenZFS_Developer_Summit_2015) & 2016 (http://open-zfs.org/wiki/OpenZFS_Developer_Summit_2016) Some highlights: Compressed ARC Compressed send/recv ABD (arc buf scatter/gather) ZFS Native Encryption (scrub/resilver, send/recv, etc without encryption keys loaded) Channel Programs (do many administrative operations as one atomic transaction) Device Removal Redacted send/recv ZStandard Compression TRIM Support (FreeBSD has its own, but this will be more performant and universal) Faster Scrub/Resilver (https://youtu.be/SZFwv8BdBj4) Declustered RAID (https://youtu.be/MxKohtFSB4M) Allocation Classes (https://youtu.be/28fKiTWb2oM) Multi-mount protection (for Active/Passive failover) Zpool Checkpoint (undo almost anything) Even more Improved Allocator Performance vdev spacemap log ZIL performance improvements (w/ or w/o SLOG) Persistent L2ARC What I don't think the author of this article understands is how far behind every other filesystem is. 100s of Engineer years have gone into OpenZFS, and the pace is accelerating. I don't see how BtrFS can ever catch up, without a huge cash infusion. Writing a NetBSD kernel module (https://saurvs.github.io/post/writing-netbsd-kern-mod/) Kernel modules are object files used to extend an operating system's kernel functionality at run time. In this post, we'll look at implementing a simple character device driver as a kernel module in NetBSD. Once it is loaded, userspace processes will be able to write an arbitrary byte string to the device, and on every successive read expect a cryptographically-secure pseudorandom permutation of the original byte string. You will need the NetBSD Source Code. This doc (https://www.netbsd.org/docs/guide/en/chap-fetch.html) will explain how you can get it. The article gives an easy line by line walkthrough which is easy to follow and understand. The driver implements the bare minimum: open, close, read, and write, plus the module initialization function It explains the differences in how memory is allocated and freed in the kernel It also describes the process of using UIO to copy data back and forth between userspace and the kernel Create a Makefile, and compile the kernel module Then, create a simple userspace program to use the character device that the kernel module creates All the code is available here (https://github.com/saurvs/rperm-netbsd) *** DragonFlyBSD Desktop! (https://functionallyparanoid.com/2017/07/11/dragonflybsd-desktop/) If you read my last post (https://functionallyparanoid.com/2017/06/30/boot-all-the-things/), you know that I set up a machine (Thinkpad x230) with UEFI and four operating systems on it. One, I had no experience with – DragonFlyBSD (other than using Matthew Dillon's C compiler for the Amiga back in the day!) and so it was uncharted territory for me. After getting the install working, I started playing around inside of DragonFlyBSD and discovered to my delight that it was a great operating system with some really unique features – all with that BSD commitment to good documentation and a solid coupling of kernel and userland that doesn't exist (by design) in Linux. So my goal for my DragonFlyBSD desktop experience was to be as BSD as I possibly could. Given that (and since I'm the maintainer of the port on OpenBSD ), I went with Lumina as the desktop environment and XDM as the graphical login manager. I have to confess that I really like the xfce terminal application so I wanted to make sure I had that as well. Toss in Firefox, libreOffice and ownCloud sync client and I'm good to go! OK. So where to start. First, we need to get WiFi and wired networking happening for the console at login. To do that, I added the following to /etc/rc.conf: wlans_iwn0=”wlan0″ ifconfig_wlan0=”WPA DHCP” ifconfig_em0=”DHCP” I then edited /etc/wpa_supplicant.conf to put in the details of my WiFi network: network={ ssid=”MY-NETWORK-NAME” psk=”my-super-secret-password” } A quick reboot showed that both wired and wireless networking were functional and automatically were assigned IP addresses via DHCP. Next up is to try getting into X with whatever DragonFlyBSD uses for its default window manager. A straight up “startx” met with, shall we say, less than stellar results. Therefore, I used the following command to generate a simple /etc/X11/xorg.conf file: # Xorg -configure # cp /root/xorg.conf.new /etc/X11/xorg.conf With that file in place, I could get into the default window manager, but I had no mouse. After some searching and pinging folks on the mailing list, I was able to figure out what I needed to do. I added the following to my /etc/rc.conf file: moused_enable=”YES” moused_type=”auto” moused_port=”/dev/psm0″ I rebooted (I'm sure there is an easier way to get the changes but I don't know it… yet) and was able to get into a basic X session and have a functional mouse. Next up, installing and configuring Lumina! To do that, I went through the incredibly torturous process of installing Lumina: # pkg install lumina Wow! That was really, really hard. I might need to pause here to catch my breath.
[caption id="attachment_1352" align="alignleft" width="300"] David Ince Certified Professional Life Coach & Founder[/caption] During the Podcast, I experienced some technical difficulties. I left them in the show because it pointed to the topic of discussion. Finding The Passion 99.9 percent of living is non-constant. Human beings have a very difficult time processing obvious change requiring a change in action or behavior. The big challenge many individuals face is adapting to seemingly life-altering change. Funny thing, when a change occurs we typically have a mental freak-out session. FREAKOUT MOMENTS Secondly, when a change occurs our emotional and spiritual self, becomes dumb to decision. Our previous life investment in whatever situation we are forced to change has the ability to for the pendulum wildly in the opposite direction. Here are a few of those life altering moments as an example: Loss of job/income Loss of relationship New unforeseen responsibilities Loss of control concerning some life aspect. One of two reactions typically follows. We do absolutely nothing until forced to take action, or immediate hyperactivity to correct the situation. David Ince fell into the scenarios previously described. His employer of twenty-five years decided the company was going in a different direction, of which David was not to be included. In a way, David explained it was a sigh of relief, as his passion for the occupation had all but died over the years. A LITTLE BONUS HELPS The experience David was going through may have been life kicking him in the pants to follow his earth path, as with the separation from his employer came with a bit of severance. Not everyone who experiences such a situation is blessed with a monetary compensation, but live for need versus want can help by building a nest egg for such life changes. Overall David’s reaction was contrary to the actions of most people. He decided to follow his heart and begin anew. Checking his ego resulted in finding g a path to fulfill his passion. Helping others to become better. The decision to change direction was slow and calculated versus pushing the pendulum hard. Meditation, soul searching, and counseling helped David find his pathway. Located in Barbados, you would think options are limited for Mr. Ince. With global social media and the internet available, geography is no longer a barrier. [caption id="attachment_1353" align="aligncenter" width="300"] Lens of Living[/caption] 5 Steps for Living your Passion Identify your passion What do you want to do with your discovered passion(Hobbie, business or charity) Identify how will you make your passion a reality? Make a Plan to bring your passion to life. Initialize your plan Today David is involved with coaching people to be better in their day to day life and overall journey. From Davie Ince - Managing Director at Living Successfully Inc [caption id="" align="alignnone" width="608"] LSI Living Successfully INC[/caption] Life is a continuum! Many persons do find themselves at this crossroad when life has thrown them the curve ball, it may not be as drastic as my case but still, the question remains, “what now?” It is here that you have an option; you can settle for less than the best by staying in an unfulfilling job, an uncomfortable situation or you can decide to live your passion and be the best that you can be. For me, after weighing my options I decided to go for it by launching my own business in personal development. It wasn’t without challenges, but it is rewarding and fulfilling, as I now help others grow and succeed in building businesses, developing their careers and living their passions. Now Go live The Billionaire LifeStyle
Do you have an application where you want multiple buttons for different user inputs? Maybe you have a timer and you want one button for minutes and another for hours. But there is a problem – you only have room for one button! In this tutorial, we are going to use Arduino to explore how to make one button have the functionality of two or more. Click here to join our 12-part HD Video Course. You Will Need: (1) Momentary push button (5) Jumper wires (1) Solderless breadboard (2) LEDs (2) 220 Ohm resistors Set Up The Circuit: To demonstrate making one button have the functionality of two or more, we will set up a simple circuit with 2 LEDs and a button. Based on how we press the button, different LEDs will illuminate. Follow the instructions and schematic below to get the circuit set up before we dive into the mechanics of the Arduino code. Using a jumper wire, connect any GND pin from the Arduino, to the ground rail on your breadboard. Place an LED on your breadboard, make sure to note which way the long leg is facing. Using a jumper wire, connect pin 13 from your Arduino to the breadboard in the same channel where you have the long leg of the LED attached. Now connect one side of the 220 Ohm resistor to the short leg of the LED, and connect the other leg to the ground rail on the breadboard. The orientation of the resistor doesn’t matter. Repeat this using pin 12, and another LED and resistor. Finally, place your push button on the breadboard. Depending on the style of your pushbutton, they often fit well straddling the long trench that goes through the breadboard. Connect a jumper wire from one side of the button to pin 2 on the Arduino. Connect a jumper wire from the other side of the button to the ground rail on the breadboard. That's it for the circuit setup. Now, when you press the push button (which will electrically connect both sides of the button), pin 2 to will have ground voltage applied. We will use this ground voltage input to trigger our different functions. Examine the Sketch: There are couple ways to implement the multi-function button press using Arduino. One way is to have the number of presses determine the output. For example, a single click might highlight the “hour” field of an LCD timer and a double click might highlight the “minute” field of the display. Another way that we can implement multiple functions with one button is for the user to hold down the button for different lengths of time with the length of the hold determining the output. For example, if the user holds the button for half a second and releases, something happens. If she holds it for 2 seconds, something different happens. This latter method of using button hold length time to determine separate functions is the strategy we will learn here. Before I go any further though, I would like to thank Steve for creating the base Arduino code that we will be using. Steve is a member of the Premium Arduino course (a couple of months ago, he was new to Arduino). While creating a home automation project, he was in need of using a single button to do multiple things, and came up with a very simple way to make it happen. Thanks Steve! Here is the complete sketch, I recommend looking it over first, and then we will discuss it piece by piece below. /*Using a Single Button, create mutliple options based on how long the button is pressed The circuit: * LED attached from pin 13 to ground through a 220 ohm resistor * LED attached from pin 12 to ground through a 220 ohm resistor * one side of momentary pushbutton attached to pin 2 * other side of momentary pushbutton attached to Ground * Note 1: on most Arduinos there is already an LED on the board attached to pin 13. * Note 2: In this circuit, when the button is pressed, Ground Voltage is what will be applied. Created DEC 2014 by Scuba Steve Modified JAN 2015 by Michael James Both members of https://programmingelectronics.com This code is in the public domain */ /////////Declare and Initialize Variables//////////////////////////// //We need to track how long the momentary pushbutton is held in order to execute different commands //This value will be recorded in seconds float pressLength_milliSeconds = 0; // Define the *minimum* length of time, in milli-seconds, that the button must be pressed for a particular option to occur int optionOne_milliSeconds = 100; int optionTwo_milliSeconds = 2000; //The Pin your button is attached to int buttonPin = 2; //Pin your LEDs are attached to int ledPin_Option_1 = 13; int ledPin_Option_2 = 12; void setup(){ // Initialize the pushbutton pin as an input pullup // Keep in mind, when pin 2 has ground voltage applied, we know the button is being pressed pinMode(buttonPin, INPUT_PULLUP); //set the LEDs pins as outputs pinMode(ledPin_Option_1, OUTPUT); pinMode(ledPin_Option_2, OUTPUT); //Start serial communication - for debugging purposes only Serial.begin(9600); } // close setup void loop() { //Record *roughly* the tenths of seconds the button in being held down while (digitalRead(buttonPin) == LOW ){ delay(100); //if you want more resolution, lower this number pressLength_milliSeconds = pressLength_milliSeconds + 100; //display how long button is has been held Serial.print("ms = "); Serial.println(pressLength_milliSeconds); }//close while //Different if-else conditions are triggered based on the length of the button press //Start with the longest time option first //Option 2 - Execute the second option if the button is held for the correct amount of time if (pressLength_milliSeconds >= optionTwo_milliSeconds){ digitalWrite(ledPin_Option_2, HIGH); } //option 1 - Execute the first option if the button is held for the correct amount of time else if(pressLength_milliSeconds >= optionOne_milliSeconds){ digitalWrite(ledPin_Option_1, HIGH); }//close if options //every time through the loop, we need to reset the pressLength_Seconds counter pressLength_milliSeconds = 0; } // close void loop Comments: At the top of the sketch, we find the comments. You should make it a habit to read the comments in a sketch before jumping into the mechanics of the code. The comments should lay the groundwork for what is going to happen in the program and will help you interpret the intent of the code as you begin to analyze it. Declare and Initialize Variables: After the comments, we start initializing and declaring variables. Since, we are going to be tracking time, we need to have a variable to record the length of time a button is being held. We do that with the pressLength_milliSeconds variable: //We need to track how long the momentary pushbutton is held in order to execute different commands //This value will be recorded in seconds float pressLength_Seconds = 0; Now, you might think that the variable name is really long and annoying. And I wouldn’t particularly argue with you – I mean, why would I include milliSeconds in the name of the variable? The reason I do this is because I think including the unit of measurement in the variable name is helpful when other people are trying to read your code. Writing code that other people can read is not only good for other people, but also future versions of yourself who forget what the heck you were thinking when you wrote the code! [End Rant] The next thing we need to set up are the parameters for when options will get executed. In this example, I have two variables for two options: // Define the *minimum* length of time, in milli-seconds, that the button must be pressed for a particular option to occur int optionOne_milliSeconds = 100; int optionTwo_milliSeconds = 2000; Each option is defined by the number of milliseconds that the button must be held for that specific option to get executed. In order to get my first option to happen, I have to hold the button for at least 100 milliseconds which is pretty much a short tap on the button. If I want the second option to happen, then I have to hold the button for at least 2000 milliseconds aka 2 seconds. If you wanted more options, you would add more variables here with their corresponding hold times. Our final initializations will be to specify pin numbers for our button and LEDs. //The Pin your button is attached to int buttonPin = 2; //Pin your LEDs are attached to int ledPin_Option_1 = 13; int ledPin_Option_2 = 12; Setup() the Sketch: The setup() for this sketch is pretty straight forward (if it’s not straight forward to you, make sure to check out our free 12-part Arduino Course, after which this setup will be very familiar to you). We want to make sure that the pin our push button is connected to is set as an INPUT_PULLUP: // Initialize the pushbutton pin as an input pullup // Keep in mind, when pin 2 has ground voltage applied, we know the button is being pressed pinMode(buttonPin, INPUT_PULLUP); We do this to make sure that the button pin is not floating (if you are wondering what the heck that means, you can read more on that here – but if you just roll with me until we get through this tutorial, you should be fine ). We also want to specify the pins that our LEDs are attached to as OUTPUTs, because we will be applying voltages to these pins in order to illuminate them: //set the LEDs pins as outputs pinMode(ledPin_Option_1, OUTPUT); pinMode(ledPin_Option_2, OUTPUT); Finally, it never hurts to start serial communications for debugging purposes. //Start serial communication - for debugging purposes only Serial.begin(9600); With setup() complete, now we can jump into the main loop of our sketch… The Main Loop(): We know we are going to have to measure the length of time the button is pressed, and then record it. To do this, we use a while statement whose condition requires the button pin to be in a LOW state (remember, when we push the button, pin 2 will have a ground voltage applied). //Record *roughly* the tenths of seconds the button in being held down while (digitalRead(buttonPin) == LOW ){ Once the button is pressed and held, the while statement starts executing. The first thing we do in the while statement is to delay 100 milliseconds, and then record that into our time tracking variable: delay(100); //if you want more resolution, lower this number pressLength_milliSeconds = pressLength_milliSeconds + 100; Keep in mind the first time through the loop, pressLength_milliSeconds will be equal to 0, so we are just adding 100 to the variable. It can be handy to know how long the button has been pressed as you add options. To make this easy, we want to print the current value of the pressLength_milliSeconds variable to the serial monitor window: //display how long button is has been held Serial.print("ms = "); Serial.println(pressLength_milliSeconds); Let’s ignore the rest of the code for a second, and imagine what happens if we keep holding the button. The first time through the while loop, we add 100 milliseconds to the time tracking variable and we print that value to the serial port. The next time through loop, we add another 100 milliseconds to the timer counter variable, and print this new value to the serial monitor. As long as the button is being held down, then we keep adding time to the pressLength_milliSeconds variable – this is the crux of the program. When we release the button, the while statement stops, because the condition is no longer met, and we stop adding time to pressLength_milliSeconds. So let’s pretend we held the button for three seconds, and then let go - what happens? Well, as we discussed, the while statement ends and the next line of code we encounter is an if statement. //Option 2 - Execute the second option if the button is held for the correct amount of time if (pressLength_milliSeconds >= optionTwo_milliSeconds){ digitalWrite(ledPin_Option_2, HIGH); } The condition of the if statement requires that the time we held the button be longer than or equal to the time we set for option number two. If you recall, option number two was set to occur with at least 2 seconds of button press time. Since we held the button for three seconds, this if statement will get executed. And all we do is write HIGH voltage to our “option 2” LED, making it illuminate. What if we had only held the button for one second – then what would happen? If this were case, then the first if statement condition would not have been met, but a subsequent else-if statement only requires the button hold time be 100 milliseconds or more – so the second else-if statement would get executed, which turns on the “option 1” LED. //option 1 - Execute the first option if the button is held for the correct amount of time else if(pressLength_milliSeconds >= optionOne_milliSeconds){ digitalWrite(ledPin_Option_1, HIGH); }//close if options Basically, if we hold the button a long time, the second option gets executed. If we hold the button a short time, the first option gets executed. If we wanted to add more options, we add the longer hold options at the top, and the shorter hold options at the bottom. I wouldn’t try to squeeze too many options in a small span of time or it might drive the end user crazy trying figure out the timing. Nor would I try to add more than three options for a single button within a given context, or else you chance making your potential end user want to beat you up. To finish up the sketch, we reset our button press timing variable to zero. This ensures that next time the button is pressed and held, we will start from time zero again. Try On Your Own Challenge: Add another option, which turns off both LEDs. Try adding it before the first option (you will have to adjust the timing) and then after each option. How tight can you squeeze the option time together? Experiment and determine what is a good rule of thumb. Download: PDF of this Arduino Tutorial
Welcome to our podcast. In the coming hour we will highlight the music of the acts and artists performing for the Thrill Recordings label. Our first set is by yours truely. It’s hard to give a summary about yourself but this set is taking you on a trip between the boundaries of raw house and […]