Just another legen….dary morning with Scenyo

For those who doesn’t know Scenyo – click

I woke up, got dressed, picked the keys. Walking to the Sennyo. Unlocked the doors, started the engine. I’m driving to work. I parked. Stopped the engine. Removed the card. I got out of the cat. Started walking to work. I pressed the “lock” button on the card. Nothing happened. Cat is not locked! I entered the car. I started the engine. Engine stars so card should work. “Just in case” I keep extra batter below the seat. I changed the batteries.  I got out of the car. I pressed the “lock” button. Nothing happened! I closed all doors. Checked if there is something valuable in the car. I went to work. I sit on the PC and googled “Renault won’t lock”. Surprice ….. 10000000 resuls. Clicked first result. Simple explanation: car card do not work below 5 degrees! IT JUST DOESN”T WORN IN COLD! So, what had happened ? In my house is hot, while I walk to the car, card is still hot. But on the way to work it get cold! Cat doesn’t have enough time to warm and card is too cold to operate! Simple solution is to put the card next to hot skin, e.g. under the arm. Or remove it from the slot after the engine start. Put it in your warm pocker 🙂

Topic in UK Renault forum: http://www.renaultforums.co.uk/archive/index.php/t-2293.html

Posted in Cars, renault, Scenic | Leave a comment

MTB statistic 2015

Statistic from 2014

Wheelset Superstar, switch hubs, Placenti TL28 rimsa.

Tyre levers

Tyre levers…again

gps holder

Bike carrier for roof.

Roof bars.

Shoes, 5.10 impact2 high.

Castelli jacker , size L, little too big for me 🙁

Backpack

inner tires and glue

Tires – maxxis dhf & dhr2

Knee protection

Enduro fee – http://www.endurowarriors.com/#!challenge/c24tn

KRIVA jersey

Cutters

Rear derailleur (mine is unusable …)

Bottom bracket removal tool.

GXP bottom bracker (replacement)

Rear shock.  RS Monarch rc3+ 🙂

Glasses

Front and read lights

 

 

Posted in mtb | Leave a comment

BDD, behat, gherking language … and more

I will just paste some chat logs with everzet. This happened year or two ago.

Here is nice place to say “Hey, everzet, thanks for the time :)”

It’s about behat.org

(02:17:55 PM) po_taka-work: i haave 2 links:
(02:18:28 PM) po_taka-work: <a href=”/thumbs.php?act=edit” id=””>Edit thumbs</a>
(02:18:28 PM) po_taka-work: <a href=”users.php?act=edit&login_id=5″>Edit</a>
(02:18:48 PM) po_taka-work: When i do {Then I follow “Edit”} it click 1st link
(02:18:56 PM) po_taka-work: why ? it should click 2nd
(02:22:25 PM) everzet: it uses partial match
(02:22:30 PM) everzet: so it finds both
(02:22:34 PM) everzet: but clicks on first one
(02:23:44 PM) everzet: you can create your own step definition in this case, which will click proper link
(02:23:56 PM) everzet: but instead, i would propose
(02:24:03 PM) everzet: to pause and think a little
(02:24:21 PM) everzet: what you have here is a UX problem
(02:24:47 PM) everzet: you have one specific edit link and one unspecific
(02:24:59 PM) everzet: so this could be an opportunity to fix it
(02:25:13 PM) everzet: yes, Behat helps you with that too
(02:25:17 PM) everzet: 🙂
(02:25:21 PM) po_taka-work: ok, tnx 🙂
(02:25:34 PM) po_taka-work: one more question, i have fields for date
(02:25:48 PM) po_taka-work: but date should be relative, eg tomorrow, yesterday etc…
(02:26:13 PM) po_taka-work: so i use beforeScneario hook to change text in Steps with proper date
(02:26:30 PM) everzet: DON’T use hooks to change steps
(02:26:36 PM) po_taka-work: why ?
(02:26:39 PM) everzet: DON’T change steps in runtime
(02:26:56 PM) everzet: cuz it could lead to strange problems
(02:27:45 PM) everzet: so, show me your step in feature
(02:28:00 PM) po_taka-work: i need dates 🙁 and dates like ‘tomorrow’, ‘yesterday’, ‘after 2 dats’
(02:28:00 PM) po_taka-work: if u dont change steps i should write code for every case
(02:28:26 PM) po_taka-work: now its
(02:28:26 PM) po_taka-work: Then I fill in “appointment_date” with “{?:date, +2 day, d.m.Y}”
(02:28:35 PM) po_taka-work: Then I fill in “appointment_date” with “{? : date, +2 day, d.m.Y}”
(02:28:47 PM) everzet: you see
(02:28:54 PM) po_taka-work: {? }  is my keyword for variable 🙂
(02:28:55 PM) everzet: you obviously have problem here
(02:29:09 PM) everzet: your steps are too technical
(02:29:30 PM) everzet: Shouldn’t it be
(02:30:09 PM) everzet: Then I set appointment date to tomorrow
(02:30:10 PM) everzet: ?
(02:30:21 PM) everzet: or
(02:30:33 PM) everzet: Then I set an appointment date to yesterday
(02:30:35 PM) everzet: or
(02:30:52 PM) everzet: Then I set an appointment date 2 days ahead
(02:31:40 PM) po_taka-work: and handle it in featureContext ?
(02:32:21 PM) everzet: yes, add new step definition, and you can even use another, more technical steps from it (or even Mink api directly)
(02:33:02 PM) po_taka-work: but then when i test is it really saved with that date
(02:33:04 PM) everzet: this is the whole idea of Gherkin/Behat/cucumber – research/define your domain area by describing application features
(02:33:19 PM) po_taka-work: i should write new step for “Then i should see tomorrow”
(02:33:25 PM) everzet: yes
(02:33:53 PM) everzet: you should write tests for your domain, because no one can do it for you, because no one can know your domain better than you
(02:34:47 PM) po_taka-work: ok i will think about it,
(02:34:47 PM) po_taka-work: But why there is a option to change steps ?
(02:35:01 PM) everzet: to change steps?
(02:35:57 PM) everzet: you mean nodes API ?
(02:36:01 PM) po_taka-work: (02:25:57 PM) everzet: DON’T change steps in runtime
(02:36:16 PM) everzet: it’s NodeTree
(02:36:23 PM) everzet: it’s used by parser to fill nodes
(02:38:11 PM) everzet: or can be used to create node-tree by hand to dump it later into feature
(02:38:40 PM) everzet: but it’s not here to modify features runtime
(02:38:47 PM) everzet: *in_runtime
(02:38:58 PM) po_taka-work: ok got it
(02:40:16 PM) po_taka-work: is it good to create new step definitions like ones from minkContext,
(02:40:25 PM) po_taka-work:  but i will use ‘ for parameters instead of ”
(02:40:37 PM) po_taka-work: and i will have logic
(02:40:50 PM) everzet: wha?
(02:41:07 PM) po_taka-work: wait, i will write example
(02:41:08 PM) po_taka-work: 2 min
(02:41:26 PM) everzet: http://docs.behat.org/guides/2.definitions.html#step-execution-chaining ?
(02:49:19 PM) po_taka-work: http://pastebin.com/YR2M3eqN
(02:50:54 PM) po_taka-work: this way i can use
(02:50:54 PM) po_taka-work: I fill “element” with “some text”
(02:50:54 PM) po_taka-work: I fill “element” with ‘tomorrow’
(02:51:00 PM) po_taka-work: is this ok ?
(02:59:03 PM) po_taka-work: are there IRC logs, book, forum or something familiar, probably i’m not the first one asking these things 🙂
(03:05:16 PM) everzet: I fill “element” with ‘tomorrow’
(03:05:19 PM) everzet: looks ok to you?
(03:05:29 PM) everzet: for me it looks totally unreadable
(03:05:49 PM) everzet: users don’t think about filling forms this way
(03:05:53 PM) everzet: *usually
(03:05:54 PM) everzet: 🙂
(03:06:05 PM) everzet: it depends from what point you’re describing your feature
(03:06:15 PM) l3l0 [~lelo@afq192.neoplus.adsl.tpnet.pl] entered the room.
(03:06:34 PM) everzet: but usually it’s something like “I choose tomorrow in birthday datefield”
(03:06:40 PM) everzet: or something like that
(03:08:38 PM) everzet: got it?
(03:08:50 PM) po_taka-work: yes, but it sounds like a lot of code
(03:08:56 PM) everzet: no it’s not
(03:09:10 PM) everzet: 1. keep your definitions short
(03:09:13 PM) everzet: 2. reuse them
(03:09:17 PM) everzet: 3. define your domain
(03:09:39 PM) everzet: yes, eventually you will have a lot of definitions to define your domain area of project
(03:09:44 PM) everzet: but after that
(03:09:48 PM) everzet: you will just use it
(03:12:02 PM) po_taka-work: ( fill, view, choose, value is ) x ( tomorrow, yesterday, next week, last week) = code i should write and reuse ?
(03:13:47 PM) po_taka-work: every 1 in different steDefinition ?
(03:13:52 PM) everzet: why?
(03:14:07 PM) everzet: you can’t create one single step definition, which will use strtotime() ?
(03:14:24 PM) everzet: THIS IS code reuse
(03:14:39 PM) po_taka-work: each one for (fill, view, choose) … right ?
(03:15:57 PM) everzet: why ?
(03:16:20 PM) everzet: ok
(03:16:25 PM) everzet: let’s start from different point
(03:16:34 PM) everzet: imagine that you don’t have Mink and predefined steps
(03:16:53 PM) everzet: describe feature in YOUR OWN words, that fit domain logic, that you’re describing
(03:17:05 PM) everzet: I go to event creation page
(03:17:40 PM) everzet: I set event date to tomorrow
(03:17:51 PM) everzet: I fill event name with “New event”
(03:18:17 PM) everzet: I press “Save”
(03:18:20 PM) everzet: see?
(03:18:31 PM) everzet: highly readable
(03:18:38 PM) everzet: no technical details
(03:18:41 PM) everzet: highly reusable
(03:18:48 PM) everzet: domain-oriented
(03:18:51 PM) everzet: this is your aim
(03:19:05 PM) po_taka-work: got it
(03:19:24 PM) po_taka-work: i tried to move logic to gherkin, witch is bad
(03:19:34 PM) everzet: YES
(03:19:35 PM) everzet: 🙂
(03:19:39 PM) everzet: you got it
(03:20:03 PM) everzet: and don’t worry, there wouldn’t be much step definitions at the end
(03:20:13 PM) everzet: you will just define your domain dictionary and that’s it
(03:21:06 PM) everzet: but in the process, you’ll get amazing feature descriptions, that you will be able to gloriously show to anyone, even to your mom 😉
(03:21:43 PM) everzet: and as a consequense, you will understand every important aspect of your domain (project)
(03:21:43 PM) po_taka-work: tnx, u spend 1 hour to this, awesome 🙂
(03:22:58 PM) everzet: np, love to help
(03:24:43 PM) elblinkin [~elblinkin@cpe-74-68-143-213.nyc.res.rr.com] entered the room.
(03:52:21 PM) po_taka-work: its ok to have complex technical step and call it from other ‘simple’ steps. But never use it in gherkin, right ?
(03:52:21 PM) po_taka-work: gherkin: Then set event date for tomorrow
(03:52:21 PM) po_taka-work: in step definition i can call “Then i fill <element> with <{tomorrow}>”
(03:54:18 PM) Stof: po_taka-work: you don’t even need to make it a step if you never use it as a step. It could be a protected method of the FeatureContext called by the steps
(03:55:06 PM) po_taka-work: yes, i should just call the method
(03:55:08 PM) po_taka-work: tnx Stof
(04:00:11 PM) everzet: po_taka-work: but there’s nothing wrong in, for example, calling internal Mink steps from your domain definitions. It could even help reusability
(04:02:09 PM) po_taka-work: yea, i hope i got it, tnx again

Posted in BDD, Programming, Testing | Leave a comment

Pedal pin gone :(

Every biker know the pain of lost pin 🙁

Here is my example. Repair is incoming!

IMAG2018

I bought different size of pins ( total cost ~1 euro )

IMAG2019

If you are lucky, just screw the pin.

If you are not very lucky, screw the ping using pliers.

If you are not lucky, use small hammer.

If you are not luck at all, there is some work to be done.

IMAG2020

We will fix the pedal using the idea of “delta” pedals.

Repair the hole, using small drill. Start with very very small. You can make hole bigger, but can’t make bigger hole smaller.

IMAG2021

Even the surface using resp. Around 20 seconds of work.

IMAG2022

Picture above = work done.

 

IMAG2023

Use tap carving to repair the curve.

IMAG2025

Repeat the step with the resp.

IMAG2027

Here is one too long pin.

IMAG2028

Pin mounted.

IMAG2029

Here is mounted pin, but it is too short.

IMAG2030

If pint can’t hold by itself, use nut. Smaller nut is better.

IMAG2032

Example with nut.

IMAG2035

In my case 8mm pin fitter perfectly 🙂

IMAG2038

 

I’m shoping form local shop ITT, total cost of pins: 0.3 euro.

Posted in mtb, Repairs | Leave a comment

not enough space and Android

May be I am one of the few with non-rooted phone. I was very close to perform rooting. All I want is to delete unused apps. There are some factory apps witch I don’t use. I disabled these apps. After a few weeks i had about 100MB of free space. Some apps require more than 100MB just for update.

I started to look in phone options. I saw button “uninstall updates”. I “uninstalled updated” on one disabled app. It free about 30MB of space. The strange thing is that, this app restored old version without internet. So … these “default” apps versions are saved somewhere. I removed updated of all disabled apps. At the end I had ~500MB of free space.

Rooting is rescheduled 🙂

Posted in Android | Leave a comment