If you write software, chances are you’ve come across Continuous Integration, or CI. You might never have heard of it – but you wonder what all the ticks, badges and mysterious status icons are on open-source repositories you find online. You might hear friends waxing lyrical about the merits of CI, or grumbling about how their pipeline has broken again.
Want to know what all the fuss is about? This article will explain the basic concepts of CI, but will focus on an example, since that’s the best way to understand it. Let’s dive in. Continue reading “Continuous Integration: What It Is And Why You Need It”
Cloud based IDEs and development tools have grown over the years, though most have limitations in their free tiers and may not be fully compatible with other services such as GitHub. [Aadi Bajpai] loved using PythonAnywhere and to collaborate using GitHub, so he made a update server that automatically updates the running code once you make a push to Github
PythonAnywhere gives you access to a python shell over a web browser, and also lets you run a web app that can be accessed via a custom sub-domain. Even though it does not have direct integration with GitHub, you can drop to the bash shell to and get access to a git client.
For this hack, [Aadi Bajpai] utilizes the webhooks from GitHub that are triggered when a push event is detected. A flask server running on PythonAnywhere is written such that once triggered by the get POST request, it locally executes a git pull from the repository. There a bit more work that allows adding a bit of security sauce to the recipe but it is a pretty elegant solution and can be used for other cases as well.
Setting up alert notifications has been demonstrated to be an interesting task, though integrating Discord or Slack for notifications adds a little more bragging rights.
Last year, we saw quite a bit of media attention paid to blockchain startups. They raised money from the public, then most of them vanished without a trace (or product). Ethics and legality of their fundraising model aside, a few of the ideas they presented might be worth revisiting one day.
One idea in particular that I’ve struggled with is the synthesis of IoT and blockchain technology. Usually when presented with a product or technology, I can comprehend how and/or why someone would use it – in this case I understand neither, and it’s been nagging at me from some quiet but irrepressible corner of my mind.
The typical IoT networks I’ve seen collect data using cheap and low-power devices, and transmit it to a central service without more effort spent on security than needed (and sometimes much less). On the other hand, blockchains tend to be an expensive way to store data, require a fair amount of local storage and processing power to fully interact with them, and generally involve the careful use of public-private key encryption.
I can see some edge cases where it would be useful, for example securely setting the state of some large network of state machines – sort of like a more complex version of this system that controls a single LED via Ethereum smart contract.
What I believe isn’t important though, perhaps I just lack imagination – so lets build it anyway.
Continue reading “Yes, You Can Put IoT On The Blockchain Using Python And The ESP8266”
In the world of Internet of Things, it’s easy enough to get something connected to the Internet. But what should you use to communicate with and control it? There are many standards and tools available, but the best choice is always to use the tools you have on hand. [Victor] found himself in this situation, and found that the best way to control an Internet-connected car was to use the Flask server he already had.
The remote controlled car was originally supposed to come with an Arduino, but the microcontroller was missing upon arrival. He had a Raspberry Pi around, and was able to set that up to replace the Arduino. He also took the opportunity to use the expanded functionality of the Pi compared to the Arduino and wrote a Flask server to control it, which is accessed as if you are communicating with a chat bot. Sending the words “go left/forward” to the Flask server will control the car accordingly, for example.
The chat bot itself contains some gems as well, and would be useful for any project that makes use of regular expressions. It also seems to be easily expandable. The project also uses voice commands, and does so by making extensive use of Mozilla’s voice recognition suite. If you want to get deep in the weeds of voice recognition on your own though, you can also explore TensorFlow at your leisure.
When it comes to choice of metals that can be melted in the home foundry, it’s a little like [Henry Ford]’s famous quip: you can melt any metal you want, as long as it’s aluminum. Not that there’s anything wrong with that; there’s a lot you can accomplish by casting aluminum. But imagine what you could accomplish by recycling cast iron instead.
It looks like [luckygen1001] knows a thing or two about slinging hot metal around. The video below shows a fairly expansive shop and some pretty unique tools he uses to recycle cast iron; we were especially impressed with the rig he uses to handle the glowing crucibles from a respectful distance. The cast iron comes from a cheap and abundant source: car disc brake rotors. Usually available free for the asking at the local brake shop, he scores them with an angle grinder and busts them into manageable chunks with a hammer before committing them to the flames. The furnace itself is quite a thing, running on a mixture of diesel and waste motor oil and sounding for all the world like a jet engine starting up. [luckygen1001] had to play with the melt, adding lumps of ferrosilicon alloy to get a cast iron with better machining properties than the original rotors. It’s an interesting lesson in metallurgy, as well as a graphic example of how not to make a flask for molding cast iron.
Cast iron from the home shop opens up a lot of possibilities. A homemade cast aluminum lathe is one thing, but one with cast iron parts would be even better. And if you use a lot of brake rotors for your homebrew cast iron lathe, it might require special handling.
Continue reading “Move Over Aluminum: Cast Iron For The Home Foundry”
Many productive hackers bleed a dark ochre. The prevailing theory among a certain group of commenters is that they’re full of it, but it’s actually a healthy sign of a low blood content in the healthy hacker’s coffee stream. [Bharath] is among those who enjoy the caffeinated bean juice on a daily basis. However, he’d suffer from a terrible condition known as cold coffee. To combat this, he built an app-enabled, wirelessly chargeable, self-heating coffee mug.
We know that most hackers don’t start off planning to build objects with ridiculous feature lists, it just happens. Is there an alternate Murphy’s law for this? Any feature that can be added will? The project started off as some low ohm resistors attached to a rechargeable power bank. A insulated flask with a removable inner stainless steel lining was chosen. The resistors were fixed to the outside with a thermal epoxy.
However, how do we control the resistors? We don’t want to burn through our battery right away (which could end up more literally than one would like), so [Bharath] added a Linkit One microcontroller from Seeed Studio. With all this power at his disposal, it was natural to add Bluetooth, a temperature sensor, and app control to the cup.
After getting it all together, he realized that while the insides were perfectly isolated from the liquids held in the flask under normal use, the hole he’d have to cut to connect to the charging circuit would provide an unacceptable ingress point for water. To combat this he added the wireless charging functionality.
With his flask in hand, we’re sure the mood boost from not having to slog through the dregs of a cold container of coffee will produce a measureable improvement in productivity. Video after the break.
Continue reading “Hackaday Prize Entry: Wirelessly Charged Self-Heating Coffee Mug”
[ZPriddy] was looking for a way to control his Nest thermostats with Amazon Echo. He didn’t want to settle for using AWS or some other hosted service. [ZPriddy] wanted something that he could host and manage completely on his own. The end result is what he calls EchoNestPy.
[ZPriddy] started by learning how to use the Alexa Skills Kit (ASK). ASK is the official SDK that allows enthusiasts to add functionality to their Amazon Echo. Unfortunately for [ZPriddy], most of the example code he found was designed to be used on Amazon Lambda, but that didn’t stop him. After finding a few examples of Amazon Echo requests and responses, he was on his way.
[ZPriddy] chose to implement a simple web server using Flask. The web server listens for the Amazon requests and responds appropriately. It also Oauth2 authentication to ensure some level of security. The server is capable of synchronizing the temperature of multiple Nest devices in the same home, but it can also increment or increment the temperature across the board. This is accomplished with some simple voice commands such as “Tell Nest that I’m a little bit chilly”. If you like Amazon Echo hacks, be sure to check out this other one for controlling WeMo devices. Continue reading “Control Nest Devices With Amazon Echo”