Wallet Ninja Review

wallet-ninjaAt the local mall, there’s a kiosk for “As Seen on TV” items. In a bright yellow and triangular shaped package stood the Wallet Ninja. It reminds me of an old photography saying. “The best camera is the one that you have with you.” It’s the same with tools. My mobile phone has replaced so many tools. It’s a camera, but it’s also a flashlight, GPS, compass, music player and more. What if the Wallet Ninja (a credit card shaped multitool) worked the same way? Since it was only $10, I thought that it would be cool to try it.

Continue reading “Wallet Ninja Review”

Free Template Tuesday #6 – Tumult Hype “FPS”

The function is triggered with the “requestAnimationFrame” method. (Since browser compatibility has dramatically improved in the last few years… http://caniuse.com/#feat=requestanimationframe …I now feel comfortable using this method.) When a new frame is ready to be drawn, a function can be run. The “calculating” function runs itself with the requestAnimationFrame(calculating) line, This cause a loop, which continues indefinitely.

The function doesn’t launch itself though, which is a job for the following line…

22
calculating();

The FPS value is displayed onscreen with an element. The ID for this element is “fps-text”. Again, you don’t have to use the same name. The point is that a unique element ID is needed. The inner HTML code is replaced with the value of the “fps” variable.

By displaying text in this manner, the value changes too quickly to be easily legible. The problem is clear – the difference between the frames is not always the same number. Actually, it’s changes frequently. There are many ways to solve this problem. Here’s the way shown in the template…

24
25
26
setInterval(function(){ 
hypeDocument.setElementProperty(Needle, 'rotateZ', (fps*3)-180, 0.25);
}, 500);

This is skeuomorphism. Like a fuel gauge in a classic car, a “Needle” element will rotate based on the fps value. There are two ways this normalizes the FPS value. A “setInterval” with a 500 millisecond delay slows things down. But also, by using the Hype “set” JavaScript API, the transition can be animated. With the “easein” timing function, the needle slowly moves towards the new FPS number. This keeps the gauge from flickering back and forth.

Even if you’re not into game development, this is a neat way to animate the display of data.

While this is not perfect, as the gauge doesn’t do a good job of displaying low frame rates, it is an easy way to highlight problems with your project. If the needle is below the halfway mark, there’s a problem with performance. The FPS is way too low. Like many web development projects, this problem has multiple issues. In addition to the difficulty of getting the most accurate value, the FPS code should be lightweight. Otherwise, the FPS value recorded is skewed.

A possible solution is presented in Part II of this project. But here, I’m going to leave it unsolved. That’s a great way for you to learn. How would you improve upon this project?

Anyway, here’s a download link to the FPS Hype Template.

Even if JavaScript is something that makes you break out with night terrors, the template can be useful for performance testing. How do gradients affect animation? If all of the circle elements use solid colors instead of gradients, is the Physics based animation smoother or basically same? What happens to the FPS value when the elements stop moving? What happens to the FPS value when an element is dragged across the screen? How is the animation on mobile vs. desktops? By adding, removing or changing the test elements, you can better learn about how Hype works. This knowledge can lead to much better looking projects.

Tesla Model 3 – The Long Wait

Tesla Model 3 - BlueAfter some fairly harsh words about pre-ordering Tesla’s Model 3, I’m surprised to have had such a change of heart. After carefully researching the alternatives, the Model 3 is not perfect — but it’s a lot better than the competition. At some point in the near future, I will need a new car. I feel that it should be an electric car. Tesla is clearly the leader in that market. I now find myself in a really long line, a line with several hundreds of thousands of people ahead of me. The car is not even expected to start shipping until late 2017. It’s going to be a long wait.

Continue reading “Tesla Model 3 – The Long Wait”

The Hydroponics Experiment (Part 6 – Mulligan)

Burpee Heirloom Tomato Seeds PackageAfter watching my lettuce slowly decay, it took me a while to regain the motivation necessary to continue with this project. When I started this project, I thought hydroponics would be easier and less stressful than app or web development. Perhaps, for those with experience, it is. But for me, it’s been quite frustrating. Yet, I decided to try a do-over. I did learn some important lessons during my first attempt at hydroponics. Perhaps a mulligan — with tomato seeds instead of lettuce seeds – would yield better results.

Continue reading “The Hydroponics Experiment (Part 6 – Mulligan)”

The Hydroponics Experiment (Part 5 – Recalculating)

Little Gem Lettuce GrowingSince this is my first shot at hydroponics, some mistakes are to be expected. Although, after battling with a few recent issues, I started losing enthusiasm with this project. My imagination hit reality. I wasn’t seeing big leafy lettuce. Instead, I started seeing green slime on the Jiffy pods. I started wondering if I should just have gotten an AeroGarden. There certainly would have been less fuss. But instead of giving up, the project just needed some rethinking.

Continue reading “The Hydroponics Experiment (Part 5 – Recalculating)”