I have never really used Apple Script, but recently had the desire to backup all my Apple Photos to my local NAS. I currently have all my photos organized in a Folder -> Album structure so pulled this Apple Script together together to get this done. Create a new Apple Script (*.scpt) and select the source Photos Folder and a location to save the files on your filesystem. Note: Slashes in the name case folders to be created 🙁
I have always enjoyed the concept of being immersed into a virtual world. One of my first experiences with VR was in roughly 1993 when our local arcade introduced a game from one of the OG gaming founders John Waldron called Dactyl Nightmare on a 1000CS. After that experience, I have always wanted to build a motion sim which gets you as close to reality as possible.
Last year I took the first steps and decided to put the initial blocks in place and start with sim platform that I could eventually add motion to. I purchased a Fanatic wheel base and thought it would be a great learning experience to build the steering wheel from scratch. Many of the components can be built versus bought which is what is keeping me motivated to eventually get the entire system together.
Designing, building and then using something you have made, has been one of the most rewarding and personally satisfying activities I have found in my life so far. I was born a tinkerer, always disassembling, trying to understand and improve or recreate.
My favorite TV show is “How it’s made”.
I have way too many expensive tools, printers, cutters and machines, and not a single one has made a significant return on the investment … but, what I have learned using them has been 10x …
Its not just the tool, its the tools to use the tool, the software to design the product, the process to start, run or finish the machine or product, the prep work, consideration and the functionality.
This weekends challenge, a better hook for a bicycle:
Want to laser cut one of your own or remix it? Check it out on Thingiverse
This is a vertical based bike hook for bicycles with aero (deep) front rims. Currently there are not many wheel hooks that keep the front wheel vertical and that don’t scratch the rim when putting the bike up.
The hook is lasercut using a glowforge and medium draft board (the material thickness is important as all the slots need to interlock). Assembly is slotting the parts together and installation requires two screws/anchors into the wall.
It was specifically designed for a Reynolds AR80, however, I believe other wheels with similar dimensions, depths or profiles should fit.
Over the past few years I have found myself re-implementing and re-writing basic features of server, web, mobile or service components. Registration, Login, Forgot Password, Notifications, Search, Help, FAQ, Contact Us, Maps are just a few I can think of, where half way through the development everything seems familiar and I have a case of deja vu. No doubt I have written or implemented a library or service which performs this specific function.
While developing the Changd app I found myself in one of the deja vu moments while writing the email notification service, and decided to pause development, and fix the root cause. After multiple Github issues to support a variety of notification providers, I came across Apprise, a python library which supports multiple notification provides. Since there was not a Node.js implementation, I decided to use Apprise as inspiration and influence for a Node.js library which I aptly named “Reach”.
These are the notes/process I used when developing the Node Reach SDK package:
The “Standard” Release Process
Here is my understanding of the steps that are most commonly expected to be run when publishing a new version of an npm package.
- Safety Checks:
- git pull
- git status
- npm ci
- npm test
- npm run build
- npm version
- Or by hand:
- Update version in package.json & package-lock.json
- git commit -am ‘2.0.0’
- git tag v2.0.0
- npm publish
- git push
- git push –tags
One of the benefits of Quantum Computing is their ability to generate truly random numbers.
Since classical computers are deterministic machines, governed by algorithms, they are inherently predictable. Therefor any number generated by a classical computer, even if it seems complex is actually based on a set of conditions or algorithm, which therefor makes it a “pseudo random number”, rather than truly random.
To generate truly random numbers you need to rely on a physical processor or phenomena that are unpredictable, examples of this include radioactive decay, electronic noise or even atmospheric noise.
Since QC is essentially based on a physical process and the probabilistic nature of quantum mechanics, its qubits can exist in a superposition state, this means they can represent a combination of 0 and 1 simultaneously, this state/property can be harnessed by QRNG (Quantum random number generators) to produce truly random numbers.
As a fun project, I decided to build a small physical QRNG using an Arduino, laser diode, beam splitter and two photo resistors. The basic premise is that you pulse the laser, it sends a wave/particle (both!) through the beam splitter, 50% of the time it should hit one of the two photo resistors, providing you with a random string of “1”s or “0”s.
While a very simple, basic and small example, it is a fun experiment. Check out OpenQbit.com if you would like to build your own. To make this a little easier, I laser cut a template/outline for the beam splitter for holding each of the components.
Enjoy Randomness? Check out these blog, sites, references: http://www.reallyreallyrandom.com
Non Quantum RNG generator using zener noise: http://www.reallyreallyrandom.com/zener/breadboard/
Nice video explaining the seed variables used and middle squares: https://www.khanacademy.org/computing/computer-science/cryptography/crypt/v/random-vs-pseudorandom-number-generators
This is another blog post of a series around the enterprise mobility IT team at SAP. We are an internal team focused on managing mobile devices, mobile applications, and developing custom apps for SAP’s 100,000 employees. I believe we have some unique stories, software, tools, and insights to help others in the community considering, or currently undertaking, some of the challenges which surround mobility and its adoption in the enterprise.
As the enterprise mobility team, we manage over 100 different mobile apps at any given time. This includes volume purchase apps, consumer versions of apps listed in our MDM, and custom-developed apps. In my last post about Relay, our custom real-time chat application, we have seven different components that need to be managed and maintained for this single app (iOS, Android, Web, macOS, Linux, Windows, and Server). A good majority of our custom apps are similar, and have multiple components, all of which have independent release cycles and potentially different teams that manage them. We initially used an excel spreadsheet to track and manage these applications and their corresponding components. This became a logistical challenge as our portfolio and responsibilities grew. Our commitment to our end users also grew during this time, and we wanted to provide a consistent support experience across operating systems and apps. We took this opportunity to step back and look at the process holistically, and decided to redesign how we managed and supported apps that we were responsible for. We also defined some essential services and features each of the apps should have, independent of their platform. I touched on this in a previous blog, but from a support perspective each app should include:
Source Code: https://github.com/paschmann/blockchain_origin