Thursday, June 23, 2016

Weloop Tommy AKA GoClever Chronos eco

I just bough an GoClever Chronos ECO  white better known as WeLoop Tommy. Cost? 80zł (about €20).
What is it?

User perspective:
This is a peble watch but cheaper. Has worse support, not many apps support it. Can last for 20 days (haven't verified that). Has no colors. Is some kind of a smart-watch.
I do already have Xiaomi MiBand which is way better - but has no display screen (what is not an issue at all).

My perspective:
An nRF51822 with nice display (LCD? everybody claims this is an eInk screen but I am not sure yet).
Display to put onto your hand that supports BT4.0 communication out-of-the-box.
SOme kind of open (?) source firmware.
No longer supported hardware.
It should last for 20+ days (probably shorter than MiBand).
No API (but the community does a good job - I hate manufacturers being so much dicks and not releasing the software).

Next steps?
- Flash it with OSS
- Communicate with it
- Write own communication module
- Display own information on the screen
- Release as open source

Friday, June 10, 2016

How valve f*cked their steam family sharing feature...

Introduction

I was using steam for years. Since the Half Life 2 game (which was distributed using steam that displayed an ad). A long time ago it was.
Some time ago steam introduced steam sharing. A great feature at first. It was so promising:

  • I could be sharing my own games with my son - just like with the games that were on CD/DVD media
  • I had the ability to control what my son can share (just like with CD/DVD where I would give only the media I wanted)
  • I was the owner of quite a library which had its value... but now it seems that they can do whatever they want to and users can do nothing about it.

How I have used it.

I have been buying games onto my own account and sharing them to my son so that I could control what he can play.
We have been using 2 devices and 2 separate steam accounts. We had a single family library.
We had separate user accounts on the machines with credentials stored so that after logging into own account steam was starting up (downloading petabytes of update data and DRM's) and we were able to just (wait... and then...) play.
We have used 2-step authentication and complex passwords for increased security - but it was OK since the credentials (and machines) were stored.

What happened and why valve is evil.

One day steam just changed the way family sharing works. Without any notice or whatever.
They restricted the library so that only a single person can use it at a time. Once I start a game (different than my son is playing), my son is kicked off (after 5 minutes).
They introduced dozens of bugs causing my son to be flooded with messages he doesn't understand and suggestions of buying the games that are already bought by me.
Finally... they damaged the credentials store system. Once I log-out on a device and my son logs into his own separate account, he gets logged into... my own steam account instead of his own. He has access to my "steam wallet" and most of the things there. When trying to switch the account we need to authorize the machine again (that one is random) with 2-step authorization.

What is wrong about it.

Valve changed the logic driving the family sharing. At first it worked differently so valve cheated in a way.
They lost my trust.
They prevented my son from playing.
Steam support sees nothing wrong about it and claims that they can't even move games from mine account to my son's account.
DRM's took first place here before the user.
Origin did several mistakes. Same did ubisoft. I refused to buy any titles from ubi. I got Assasin's creed from GOG but no other titles. Steam now entered into this sick group.

What is the final result?

I trust to illegal games way more than I trust to legal vendors.
I believe that legal vendors became DRM providers ignoring users. GOG seems to be a good exception here.

Dear steam... you f*cked it up and did it well.

Wednesday, April 27, 2016

Protractor within the code development process (especially testing)

Short intro: Protractor is a tool to simulate user actions on a web page allowing page testing. It is a good option for pages using angular.JS. Since recently many services are moved to web pages - it is gaining on popularity.
In bellow I'll try to introduce some topics easily for a newbie to understand and then describe my experience with the tools.

Let start with the test object. It is usually a web page with:
  • front-end written in html + javascript + css
  • javascript framework like angular.JS or backbone.JS or ... - if you have angular.JS then protractor is probably good for you
  • front-end's back-end - usually static content mixed with semi-dynamic or dynamic content... might be simple HTML, JAVA or something similar... unfortunately might be php, perl, shell, powershell or any other crap
  • backend - usually JAVA or similar running within the application server (application container or whatever you call it) - often Oracle's Weblogic (former BEA), IBM WebSphere (quite expensive and sux a bit), TomCat, JBoss or other
  • database - often Oracle database or something like Apache Cassandra, MySQL or MariaDB, PostGreSQL, MongoDB, ...
And the goal for protractor lies in (the items in bold):
  • Unit tests - usually written by the developers
  • Integration tests - often written (partially) by the developers
  • API Tests - sometimes written by the developers, often not in place and combined with integration tests
  • Smoke tests - quick tests executed just to see if the development code is working someway - might be executed manually but should be (semi)automatic
  • Automatic test suite - tests executed on a dedicated environment, triggered by "having new source" - usually executed automatically as a part of continuous integration
    • automated code quality check (static analysis)
    • code acceptance
    • code building
    • code deployment (onto test environment)
    • automated tests execution
    • tests report
    • measures and metrics
    • tests verdict (go or no-go)
  • Nightly tests - executed from time to time (schedule based or whenever there are resources available, rarely event based) - full set of tests that runs over several hours (or even days)
  • Acceptance tests (good if you are starting with good feature definition and well designed code as acceptance might be partially automated) - usually focused on the front-end only
I'll try to fill the list with more layers of the development process as the list is not complete.

Reason to move everything onto web pages is simple. Internet is accessible all the time and (almost) everywhere. It is difficult to run an app on the device only (it requires installation, platform compatibility, version checking, storage handling and many more things to handle). Your browser can handle much of that so costs can be reduced. Code is installed only on the server, it is always the latest version, platform is known (well... browsers are the new version of platforms here and their compatibility is not full).


Since the complexity of such applications is very high - we need tools to verify those. During the tests you should usually focus on a single element to verify. This applies to user interface testing as well. We have the following layers used in user interface tests:
  • User interface you interact with
    • This is the web page and server that it runs on
  • Definition of the operations you want to perform on the interface
    • This defines data to be entered
    • and steps to perform
    • and verification of the actions that happen afterwards
  • Mocks!
    • Instead of having all the layers of your application you should have a stub that emulated those layers
    • You must have a clear definition of layers inter-communication
    • You must focus on a single layer only (and its closest neighbors)
Web page is often tested within an actual web browser.
We simulate user actions using browser's built-in interface to do such.
Communication with this interface is usually handled by "selenium".
Selenium does what it is said by the next layer which might be, for example, the protractor with tests written in a language called jasmine.

More information to be added later :)

Tuesday, April 12, 2016

Scrum points and tine - question often asked

It is a very common question to be asked: Why estimate in scrum is given in scrum points instead of time/money.

This answer is my personal opinion and many might disagree with some of the points - feel free to comment bellow.

In short - it is by purpose to disconnect fixed money, fixed content, fixed time, fixed work-hours, high expectations, uncertain estimate and unpredictable future. Without it estimation would be used as fixed price and no one would take the risk into account.

Thursday, March 24, 2016

Lenovo MIIX 3-1030 and clean reinstall of Windows 10

Since we can upgrade windows 8.1 to Windows 10 for free (but there might be some catch in it) and Lenovo MIIX 3-1030 comes with Windows 8.1... then why not?
After upgrading it I tried to do a clean install. There is an issue though - the clean install is not that simple as it might seem.
First of all I suggest to make a picture of the "windows information" and its serial number. Just in case.

Windows authentication
Microsoft didn't provided serial numbers of Windows 10 to consumers... yet. Device authentication is based on some magic. Probably the serial number of your processor or motherboard.
Conclusion: No serial number is needed.
By the way - you will be probably restricted in the number of activations allowed - so don't reinstall the system too frequently or use an already-authenticated backup for that.

Media for clean install
You need to download media creation tool from Microsoft. Then choose option to install on another PC. I recommend creation of USB media. Preferably two of such just in case.
And you can use 32-bit version of windows as the device has only 2GB of RAM and there would be little benefit for you from 64-bits (as an assembler-experienced developer I can say that there is a benefit but it is barely used). I am not even sure whether it would authenticate with 64-but version.
You might also wish to decrypt your drive if it I encrypted with microsoft's encryption bitlocker (which is already cracked anyway and NSA knows how to bypass that).

Connecting your bootable media
You need to connect the USB pen-drive (or card reader or whatever media) to your computer. For me putting memory card into memory slot was not enough - BIOS was not seeing this during booting process. But it worked fine to put the pendrive into keyboard's USB port.

Booting up
You need to enter the "bios" settings. This is a touch-screen thing and you need to power-off your device, then power it on keeping "volume up" pressed (probably volume down would work too, I haven't tested).
Ensure that you have secure boot disabled... we don't need this crap.
Remember to keep your device plugged-in a it might drain your battery during installation.
I have chosen correct boot source (the second option) and it worked well. Still it would be nice if booting from SD worked - but it is not.

Installation
Tricky part. Touch screen is not working by default (at least for me) so I had to use the keyboard and touch-click plate. But I have connected a mouse - as there are 2 USB ports available on our keyboard.
Installation for me included option "advanced", then format of the large drive (which was 28GB in my case)... then waiting for a long time.

Configuration
After restart we are asked for the user account. You don't need Microsoft account - but the button is well hidden (seems as normal text with tiny font on the bottom... it is gray-or-blue on gray background).
I suggest disabling all the options for data sharing with Microsoft. At first I had nothing against... until I realized what amount of data they receive and how they are using the access to control my computer more than I can.

Drivers
After bootup windows wouldn't have touch-screen working, nor the battery icon shown. Screen would work at maximum brightness only.
The trick is to intall intel's driver 4rm101af.exe
It does handle all the things.
I have first installed the acpidriver.exe and it wasn't enough to see the battery status. After intel driver was installed I had:
- touch screen working
- display brightness working
- battery interface (and battery icon) working

Next steps are to update everything and go through all the configuration you need.
And we end with a cleanly installed windows 10 without Lenovo's bloatware.

Known issues (section added on 2016-04-16):
The memory card is un-mounting after waking up from sleep.
This is an issue within the Windows itself. Memory card itself is still mounted and visible within the system but the volume (let's say "the drive letter") is not there. Solution is to disconnect and reconnect the card. I believe that it has something to do with timing as for some users on the internet it worked to change the card, clean it up or do similar magic.

Good luck and let me know if it worked for you.

Monday, March 14, 2016

Witcher 3 (any game) stuck at 24/28/30 fps...

So I wanted to play the Witcher 3 - great slavic (Polish) game. Tried 4k resolution but it gave me only 25 fps. Unfortunately it is due to my poor system's performance.
After lowering the resolution to 1080... I got 30 fps (+/- 1fps). The reading was too precise and it wasn't what I expected after 25fps@4k.
Reason is that my display works on 30fps.
Solution: go to windows display settings, go to the advanced options, choose monitor display modes and choose the one that has 60Hz. Restart the game. Make sure that you have fps limit set to 60 or "unlimited" in the options.
Also remember that 1920x1080 resolution with the best antialiasing is worse than 4k (3840x2160 that is 4x1920x1080). And nVidia sux. With nVidia 60fps is better than 30fps. And drivers tend to hang. And nVidia sux.
If I helped you - please, leave a comment bellow :)

Niepotrzebne rzeczy dla dziecka/chłopca

Moja latorośl (syn - co jest znaczące) ma już 8.5 roku. Ostatnio zabrałem się za porządki u niego w pokoju i postanowiłem spisać jakich rzeczy mamy zbyt wiele. Inaczej mówiąc: na jakie rzeczy mamy nadmiar i ktoś wyrzucił niepotrzebnie pieniądze na zbędne wydatki i niewłaściwe prezenty. Oto one:
  • puzzle
Na początek fajne. Synek świetnie sobie radził z układaniem puzzli do 100 elementów. Później  jednak zapał mu osłabł - a kupowanie kolejnych "bo kiedyś tak ślicznie układał" to... powstrzymam się od komentarza.
  • gry typu memory - wystarczy jeden zestaw
Jedna z fajniejszych rzeczy dla dziecka. Super się w to gra rodzic-dziecko. Można też włączyć do gry obrazki bardziej skomplikowane jak np. flagi. To może niesamowicie uczyć i wyrobić pamięć dziecka. A także zręczność - małe dziecko zazwyczaj karty przesuwa i rozrzuca... odpowiednio pracując z dzieckiem wyćwiczymy też zręczność. Problem się pojawia jeśli dziecko ma już kolejny zestaw na półce a używa i tak tylko jednego. Jeśli dziecko wygrywa z rodzicami w grze na 64+ pary to można przeskoczyć na inne zabawy.
  • książeczki
W dzisiejszych czasach książki odchodzą do lamusa. Dzieci czytają książki bo muszą. A takie małe z kartonu, często niewymiarowe z jakimiś maskotkami i udziwnieniami utrudniającymi postawienie ich gdziekolwiek - to jest najgorsza rzecz, którą się prędzej czy później wywala.
Masz odrębne zdanie? Masz do tego prawo. Ale nie kupuj z tego powodu rodzicom dziecka śmieci tylko dlatego, że uważasz, że to coś bardzo wartościowego i papier jest lepszy od dziecka a dziecko należy posadzić przy książce żeby czytało.
Nasz syn super radzi sobie z czytaniem. Na co dzień jednak wygrywają wynalazki takie jak gry komputerowe, filmy (ach ta TV... najlepiej by było gdyby już dziś zniknęła), zabawy na dworze (jeśli jest pogoda), robienie czegoś z rodzicami.
Jak już to do czytania polecam serię "franklin" o przygodach żółwia. Wolał bym aby opisywały przygody chłopca ale nawet o żółwiu niosą sporą wartość dla dziecka.
  • lego (ale trochę trzeba mieć)
Bardzo edukująca zabawka. Niestety przegrywa z grą minecraft pod względem kształtowania wyobraźni.
Trochę lego potrzeba ale powyżej skrzyni to już przesada.
Polecam gry z serii LEGO - ale tylko na kontroler i z rodzicem.
  • pluszaki - jeśli jest ich więcej niż pare
Jeden ukochany miś czy lala to super sprawa. Sto pluszaków to przesada.
  • słodycze
Zawsze mnie zastanawiało dlaczego kolega przynosi do pracy dla kolegów słodycze. Chodziło o prezenty. Jego 3 córki dostawały z byle okazji słodycze i je odkładały. Ile można żreć węglowodany? Dzieci rzygają już słodyczami albo dostają cukrzycy.
  • karty do "gry" z firmy panini
Dziecko się z tego cieszy. I kolekcjonuje. Ogląda. Czyta.
Problem w tym, że idzie na to kupa kasy a koniec końców kilkaset (tysięcy?) kart trafia do śmietnika lub na allegro.

Co więc kupować?
Polecam unikać nadmiaru czegokolwiek. I unikać kupowania czegoś tylko dla prezentu.
Sam lubię karty podarunkowe - szczególnie do sklepów typu decathlon.