My experience with Triplebyte

This article reviews my personal experience with Triplebyte, which is widely advertising at Linkedin now. I am not working for them and I was not asked nor compensated in any way to write this. My motivation is to discuss their approach, which is very interesting, and to provide second opinion to what seem to be mostly negative reviews found online. Their approach is very suitable for some engineers but not for everyone, and hopefully this article would help others to decide whether it would work for them.

It started with a click on one of those banners asking you to take a quiz…
Continue reading »

Uncategorized 2 Comments

How to send and receive data between your IoT device and Android device using USB

Four ways to send and receive data between your IoT device and Android device using USB

I develop IoT devices such as smart home controllers for fun. Those devices are usually based on microcontrollers such as ATMEGA/ATTINY and lack meaningful input/output options. After investigating numerous ways of communicating with those devices I decided to use an Android device as a controller. This worked well, so I would highly recommend if you develop a smart device – a sensor, a controller or an IoT device – consider making it communicate with Android devices. This way an Android app you develop could read and process the data from the sensor, or you can even use Android device as a controller for your IoT device.

This has a number of benefits comparing to other options – such as using a separate touch screen – and the price and availability being the most. Android tablets are widely available, and a cheap noname Android tablet could be purchased for around $20. Despite the price tag it would still pack decent processing power and memory (comparing to your IoT device), a color touch screen, battery backup and a number of connectivity interfaces. It is also supported by the mature development community. Thus the number of Android devices on market and the easiness of development makes it an attractive option from technical and business perspective.

While a typical Android tablet packs a number of hardware interfaces which could be used to communicate with Android, this article would focus on using the USB interface because it has obvious advantages:
Continue reading »

Uncategorized Comments Off on How to send and receive data between your IoT device and Android device using USB

Custom date configuration in KDE Plasma Digital Clocks

The new Digital Clock widget in KDE5 is nice, but lacks certain valuable configuration options. Notably:

  • You can only choose between three fixed date formats (short, long and ISO). Short and ISO formats do not include weekdays, so they are not very useful. Long format includes everything, but takes too much space since both the weekday and month are spelled in full. A much more preferred would be format like “Wed, Aug 9”
  • There is no way to make the date font smaller than time font through settings

However both of those options could be still customized.
Continue reading »

Uncategorized 4 Comments

Why your app can’t see SD Card on Android Marshmallow

On Android Marshmallow just having the READ_EXTERNAL_STORAGE in your AndroidManifest.xml is not enough anymore to read the SD Card. Your app now needs to explicitly request this permission from the user. This is true even if your app was built with targetSDKVersion well below Marshmallow.

This can be fixed in the application by adding the following code into your main activity (or into an activity which attempts to access SD Card).
Continue reading »

Uncategorized Comments Off on Why your app can’t see SD Card on Android Marshmallow

How to fix USB error on ATTINY85 and V-USB at 16MHz with internal oscillator

When compiling V-USB for attiny85 clocked at 16MHz using PLL (internal oscillator), the device was not recognized with “Device not accepting address” error messages in the kernel log.

The problem was that setting clocks in V-USB to 16000 (16MHz) only works with a crystal oscillator. When using internal oscillator, this setting does not work, and you need to set 16.5Mhz frequency by using the following in usbconfig.h

#define USB_CFG_CLOCK_KHZ       16500

After recompilation the device recognized properly, and worked correctly.

Hopefully this would save you a few hours of investigation.

Uncategorized Comments Off on How to fix USB error on ATTINY85 and V-USB at 16MHz with internal oscillator

Karaoke Lyrics Editor version 2.2 released

A few minutes ago a new version of Karaoke Lyrics Editor – a free, open-source (GPLv3) software to create and edit Karaoke lyrics in many formats, with optional export to CDG and Video formats.

screenshot_20161224_221220

This version introduces several long-requested features, which will help you to make the editing faster.
Continue reading »

Uncategorized 1 Comment

How to fix hiDPI issues when installing OpenSuse 42.2 Leap RC1in five steps

I have purchased ASUS Zenbook UX305. It is a good Ultrabook which good Linux support and hiDPI screen. Unfortunately the support of hiDPI screens in modern Linux distributions is still lacking. Thus I decided to write down this post to help others struggling with similar problems when installing OpenSuSE on laptops with high definition resolution screens. After applying the suggested fixes you will get a functional Linux Ultrabook.

opensuse

Continue reading »

Linux Comments Off on How to fix hiDPI issues when installing OpenSuse 42.2 Leap RC1in five steps

SDK Design Goal #8: Design for Synergy

This is the last  article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?.

You have made your core technology available for licensing. Because you followed the recommendations, your first SDK has been very successful on market. Licensees praised it for its easiness of use and quick integration, its features and robustness. However your product contains more than just the core technology – you have your support libraries, the rendering engine, a driver. And unexpectedly, your licensees start asking you to make available those other technologies as well. You may wonder, why? After all, creating a driver, or a rendering engine should be an easy task comparing to creating your core technology. And if someone doesn’t want to do this, it is available from other companies – there are even free, open-source versions! So why do the licensees ask for that?
Continue reading »

Uncategorized Comments Off on SDK Design Goal #8: Design for Synergy

SDK Design Goal #7: Design for Troubleshooting

This is a eights article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?.

No matter how good your SDK is, and how easy to integrate you made it, some licensees will still encounter issues during the integration. Those issues, ranked by the occurrence rate, would fall in one of the following categories:

  • Invalid SDK usage (for example incorrectly installed or configured SDK, invalid API usage, incorrect license used);
  • Environment issues (for example, lack of permissions to open the requested file);
  • Lack of required system resource issues (lack of memory, disk space);
  • Bugs in the SDK triggered by otherwise valid usage;
  • Baseline issues (such as hardware issues, corrupted or infected operating system, etc).

There is little you can do for the last two categories. But the rest of the issues the SDK should handle as gracefully as possible. This means the licensee should know not only that the SDK cannot perform the requested operations, but also why the SDK cannot do that.
Continue reading »

Uncategorized Comments Off on SDK Design Goal #7: Design for Troubleshooting

SDK Design Goal #6: Design for Purpose

This is a seventh article in the SDK Design Goal series. Please see the introduction article “How to present the licensed technology the right way?.

We already discussed in the previous article, SDK Design Goal #5: Design for Extra Functionality, that when you initially develop your technology to be used internally, usually only the API necessary for the internal use is exposed. Thus you know extra work is needed when the technology is prepared for licensing, and now you are trying to decide which functionality should be available from your SDK.

Here you got a dilemma: Continue reading »

SDK tsar Comments Off on SDK Design Goal #6: Design for Purpose