/srv/irclogs.ubuntu.com/2015/01/09/#ubuntu-unity.txt

tsdgeosSaviq: so i found why the dash tests were failing08:57
tsdgeosand it sucks :D08:57
Saviqtsdgeos, hit me08:57
tsdgeosbasically the precission of some widths goes crazy and since we're clicking on 0x0 after the million transformations of pos into pos into pos08:57
tsdgeoswe end up clicking on 0, -0,0000somthing08:57
tsdgeosi.e. out of the area08:58
Saviq..08:58
Saviqdoesn't our mouseClick default to the middle these days?08:58
tsdgeosyeah08:58
tsdgeosnope08:58
tsdgeosit does with http://paste.ubuntu.com/9697260/08:58
Saviqwell, yeah, that's what I meant08:58
tsdgeosand i'll be proposing the change upstream too08:58
Saviqyeah, makes total sense08:58
tsdgeosso we don't need the overrides of mouseClick on UnityTestCase08:59
tsdgeosit's actually a bug in somewhere08:59
Saviqright08:59
tsdgeossince printing widths08:59
tsdgeossome has with 64008:59
tsdgeosand the child has 639.99999999999908:59
tsdgeoswhich is what starts all the crap08:59
tsdgeosbut to be honest it's not like a user will notice08:59
tsdgeosbecause if he's clicking *so* into the border08:59
tsdgeoshe'll expect it to fail if the click doesn't register09:00
tsdgeosso i'd say click on the middle and carry on09:00
Saviq+109:06
Saviqtsdgeos, are you proposing that change? I just rebuilt our vivid silo but could just as well wait for that09:08
tsdgeosSaviq: i am if you give me 10 mins09:08
Saviqkk09:08
tsdgeosi'm also changing all those that had width/2, height/2 to have nothing09:08
tsdgeoslooks much cleaner09:08
tsdgeoswhen reading09:08
Saviqagreed09:08
tsdgeosSaviq: and if you can get someone to review https://code.launchpad.net/~aacid/unity8/enterSpreadTest/+merge/245928 we'll get rid of the other flacky test09:10
tsdgeosmzanetti: ↑ ?09:10
mzanettiack09:10
Saviqtsdgeos, mzanetti, already done09:11
tsdgeosSaviq: https://code.launchpad.net/~aacid/unity8/mouseClickMiddle/+merge/24593209:20
Saviqtsdgeos, o/09:20
tsdgeoshmmm09:22
tsdgeoswot, lots of tests failing now09:22
tsdgeosgive me a sec :D09:22
Saviqtsdgeos, yeah, fails here, too09:23
tsdgeosi think i copy pasted something wrong09:23
Saviqtsdgeos, but actually, trunk fails for me too, at least in PreviewActions09:24
Saviqhmm no09:25
Saviqah,09:25
Saviqmake install09:25
Saviqor well, make09:25
tsdgeosoh lol09:28
tsdgeossomehow i dropped the ! from09:28
tsdgeosif (qtest_events.mouseClick(item, x, y, button, modifiers, delay))09:28
tsdgeosSaviq: ok, should be fine now09:45
Saviqtsdgeos, tx, testing09:45
Saviqtsdgeos, now, are you venturing into the AP test flakiness at all?09:59
tsdgeosSaviq: i'll give it a go yeah10:04
Saviqthanks10:04
Saviqmzanetti, btw, did LP notify you about bug #1408819 ?10:08
ubot5Error: Launchpad bug 1408819 could not be found10:08
Saviqhttps://bugs.launchpad.net/ubuntu-rtm/+source/unity8/+bug/140881910:08
mzanettinope10:08
Saviqmzanetti, crash when tapping on the top quicklist item in rtm10:08
Saviqmzanetti, has there been changes to launcher backend in vivid that are not in rtm?10:08
mzanettiack, fixing10:08
mzanettinot that I know of10:08
=== karni is now known as karni-away
mzanettiinvestigating10:09
Saviqmzanetti, yeah, that's what I thought, so not even sure we're to blame, hopefully the stacktrace will help10:09
Saviqit basically crashes in url-dispatcher10:09
mzanettiif it's 100 reproducible it should be clear soon10:09
Saviqin utf8 encoding/decoding... but not every time ¿?10:10
Saviqit is10:10
Saviqbut only rtm10:10
Saviqcan get you a set of dbgsym packages if you want10:10
mzanettilet me see10:11
Saviqurl = 0x281ceb0 "tu.calculator/calculator/current-useA"10:12
Saviqmzanetti, looks suspicious ↑10:12
mzanettiit does :)10:12
mzanettibut it doesn't happen if you just normally click the icon?10:13
mzanetti(battery won't let me turn on my rtm device yet)10:13
Saviqmzanetti, yeah, does not10:14
Saviqmzanetti, and actually for me it only happens the second time I try10:14
mzanettihmm... for me it doesn't happen at all :/10:14
mzanettinope... not happening10:17
mzanettimeh10:17
mzanettihah. got it reproduced on krillin. not on mako with rtm though... strange10:21
tsdgeosSaviq: i've updated the MR a bit10:25
Saviqmzanetti, right, yeah, it seems to be krillin specific indeed10:26
Saviqheh, /me just understood what's happening... my touchpad does kinetic scrolling *internally*10:27
mzanettiSaviq: ?10:28
Saviqwhich means that if I scroll in one window and move with the mouse (not touchpad) or something changes under the cursor... the scrolling happens on whatever is currently under the cursor10:28
mzanettioh yeah... have that too10:28
mzanettiesp. alt+tab goes crazy :D10:29
Saviqright, like WTF10:29
Saviqit actually generates events for *multiple seconds* after I stopped touching it10:30
mzanettiýep10:30
Saviqwho thought of that ;/10:30
mzanettidepends on how strong you flick10:30
Saviqwouldn't think Apple did that10:31
mzanettihmm... tbh I haven't had this in KDE with same hardware10:31
=== karni-away is now known as karni
Saviqmzanetti, doubt that, you must've just not noticed it, it's definitely hw (well, driver)10:37
mzanettihmm... hard to believe too... because atm I scale my qtcreator font like twice a day because of this10:39
mzanettiit might be that the driver didn't do it back then10:39
Saviqyeah, it's probably a change between utopic and vivid or something10:40
mzanettihappened already in utopic for me10:40
mzanettinot sure about trusty - but that's the time I switched to unity10:40
Saviqmzanetti, when https://ci-train.ubuntu.com/job/ubuntu-landing-024-1-build/29/console completes, it'll be ready for testing10:43
mzanettiack10:43
MacSlowWhy can't I call a public Q_INVOKABLE method from an object returned by ListModel.get(i) like someListModel.get(i).method(), but only directly from the object itself myObject.method(), which was added to the ListModel with someListModel.append(myObject)?10:45
MacSlowI can easily access and change regular/public properties via someListModel.get(i).property10:46
MacSlowSaviq, mzanetti, tsdgeos: ^ any idea?10:50
tsdgeosMacSlow: are you registering the object metatye?10:51
tsdgeosmetatype10:51
MacSlowtsdgeos, in my mock's plugin I do the usual qmlRegisterType<MockNotification>(...) if that's what you mean10:52
tsdgeoscan't think of a reason really10:54
MacSlowtsdgeos, I don't use Q_DECLARE_METATYPE in my mock and thus follow the real implementation, which also does not use it for the Notification object/class.10:57
MacSlowmaking this qmltest work with the mocked Notification is a real pain11:00
SaviqMacSlow, prolly best to push some code11:00
MacSlowtsdgeos, Saviq: just pushed the current state... if some one can help out... I'm basically lost and don't know why it's not working11:04
MacSlowthat's the branch lp:~macslow/unity8/swipe-dismiss-snap-decisions11:04
Cimimzanetti, got my launcher stuck 2 px on screen when hidden, is it something you think can happen with current code or was due to mterry's refactor for the edge demo?11:04
mzanettiCimi: hmm... haven't seen it before11:05
Cimimight be his branch then11:05
Cimimzanetti, http://paste.ubuntu.com/9697734/11:06
Cimimzanetti, unless you can quickly spot an issue here, I will ask him11:07
mzanettilooking11:07
SaviqMacSlow, tests/mocks/Unity/Notifications/MockNotificationTypes.h:41: Warning: Property declaration rawActions has no READ accessor function or associated MEMBER variable. The property will be invalid.11:07
mzanettiCimi: hmm... might well be this, yes, but can't tell where. line 71/72 from the paste look suspicious as it influences the move delta below11:08
SaviqMacSlow, tryNotifications doesn't work btw11:09
Cimimzanetti, ok, will ask him11:09
Cimithanks11:09
MacSlowSaviq, I know... that's what I'm trying to fix11:09
MacSlowSaviq, the split between rawActions and actions is because of the way actions have to be passed in via the qmltest11:10
SaviqMacSlow, you're using a ListModel, that's why11:11
SaviqMacSlow, ListModel really isn't geared towards storing objects, it basically is a proxy to properties11:12
Cimimzanetti, shall we use 0 in the test comparison? https://code.launchpad.net/~mzanetti/unity8/fix-left-edge-on-spread/+merge/24340011:13
SaviqgetRaw isn't even documented11:13
MacSlowSaviq, getRaw() is needed/used because QML can't deal with QSharedPointers directly11:15
SaviqMacSlow, I know, but ListModel does not have a getRaw method11:15
Saviqat least not one that would do what you expect it to11:15
MacSlowSaviq, so I've to change from ListModel to ListView?!11:16
SaviqMacSlow, no, you need a custom mock Model11:16
MacSlowSaviq, *sigh* yet more mocking... all that code just to get close() to work11:17
SaviqMacSlow, ListModel is a very dumb thing11:17
* MacSlow goes in a corner and cries11:17
mzanettiCimi: whatever :)11:18
SaviqMacSlow, as you're just reusing the same Notification objects, you can probably just reference them directly11:18
* davmor2 throws wet sponges at macslow to hide his tears......don't let the code see it is destroying your soul ;)11:20
SaviqMacSlow, but I imagine sooner or later you'll want your mock model to be smarter, so you'll need an actual mock model at some point anyway11:20
facubatistaHolas11:20
MacSlowdavmor2, :)11:21
MacSlowSaviq, I wouldn't mind the amount of work, if the cost-benefit relation was reasonable... but in this particular case (for the swipe-to-dismis qmltest) it's appallingly bad11:22
SaviqMacSlow, that's why I'm saying - go for a shortcut11:23
SaviqMacSlow, you have static Notification objects on which the .close() method is called11:24
Saviqaah wait11:24
Saviqnow I get it11:24
Saviqit's the real implementation that requires getRaw to work11:24
MacSlowyes11:24
SaviqMacSlow, still, put all the Notification objects in a list11:24
SaviqMacSlow, and in getRaw11:24
SaviqMacSlow, iterate over that, and find the one with the right nid11:25
Saviqinstead of trying to pull it out of the ListMoel11:25
SaviqModel, even11:25
Saviqtsdgeos, hum, mouseClickMiddle got a segfault11:25
tsdgeosyeah, but it's old code i guess something got weird11:26
tsdgeoslet the new code run11:26
Saviqah11:26
Saviqok let's see11:26
tsdgeosactually i'm not sure it's a segfault11:27
tsdgeoswhen we get segfaults the log says "Segmentation Fault" usually11:27
tsdgeosin this case it's "killed"11:27
Saviqactually not segfault11:27
Saviqwth11:27
tsdgeosno idea who killed it11:27
Saviqthere was a test failure too11:27
tsdgeosyep11:27
tsdgeosthat's what the other change fixes11:27
Saviqbut yeah, let's see the new run11:27
Saviqkk11:27
SaviqMacSlow, see what I mean?11:27
tsdgeoswe're clicking exactly in the middle of the two buttons of the categories11:27
tsdgeosand once in a while it goes to "the other" button11:28
tsdgeosthat was a valid 0,0 that should not have been blindly replaced :D11:28
Saviq:)11:28
MacSlowSaviq, hm... not really sure... first I'd like to actually see the notifications being added in the tryNotification part11:28
MacSlowSaviq, getting the methods (close() and invokeAciton()) to work would come second then11:29
SaviqMacSlow, your getRaw implementation depends on ListModel to give the model up, but it's not possible11:29
SaviqMacSlow, so put all the Notification { } declarations you have in a list11:29
Saviqor an object so you can reference them by name and not by id11:29
MacSlowSaviq, ok11:30
Saviqand then in getRaw you just go: return dataDict[mockModel.get(id).nid]11:30
Saviqassuming that your keys will be nid11:30
MacSlowSaviq, I see11:30
Saviqor well, nid is integer, so a list would work, too11:31
mzanettire11:44
mzanettiCimi: ok, pushed (sorry, my internet connection broke down for the last 10 minutes)11:45
mzanettiSaviq: ok, added some debug stuff. the line that crashes is:11:45
mzanettiQDesktopServices::openUrl(getUrlForAppId(appId));11:45
mzanettiwhereas the passed argument is always: "appid://com.ubuntu.calculator/calculator/current-user-version"11:46
Saviqmzanetti, so it looks like we need to push the bug down to qtubuntu?11:49
mzanettiI'd say so...11:49
mzanettiintersting thing though:11:49
mzanettiI installed url-dispatcher-tools and tried to do "url-dispatcher appid://com.ubuntu.calculator/calculator/current-user-version"11:50
mzanettinow I can't repro any more11:50
Saviqright11:53
Saviqstill, please comment on your findings and bump to qtubuntu, maybe add a url-dispatcher task to boot11:53
mzanettiSaviq: done. why is this private?11:58
=== MacSlow is now known as MacSlow|lunch
greybackdednick: could you please merge qtmir trunk into 1355173.trust-prompt-suspend12:22
greybackmzanetti: busy? Could I add a review to your plate: https://code.launchpad.net/~gerboland/qtmir/acquire-wakelock/+merge/24594212:53
mzanettigreyback: ack13:15
greybackmzanetti: thanks!13:15
Saviqmzanetti, coredump13:23
mzanettiSaviq: ?13:25
=== MacSlow|lunch is now known as MacSlow
Saviqmzanetti, coredumps potentially include private data13:25
mzanettiah13:25
mzanettiI lost the connection to my question13:25
Saviqmzanetti, so bugs are created private by default13:25
mzanettiack13:25
Saviqmzanetti, I usually un-private them after they're retraced and the coredump removed, but the retracer doesn't seem to be keen on getting there13:27
Saviqah actually it's done now13:28
mzanettiyep, a minute ago13:28
Saviqmore like over an hour, but yeah13:29
Saviq(private→public is manual)13:29
Saviqgreyback, deeep sleep13:56
greyback:D oopsie13:56
Saviqgreyback, and missing c in checkDashFocusDoesNotAquireWakeLock13:57
greybackthank you typobot13:58
Saviqnw13:58
tsdgeoscan't we run autopilot tests on the destktop anymore?13:58
tsdgeosi get to run them fine on the phone13:58
tsdgeosbut desktop13:58
tsdgeosPYTHONPATH=../tests/autopilot autopilot run unity8.indicators.tests.test_indicators.IndicatorPageTitleMatchesWidgetTestCase.test_indicator_page_title_matches_widget13:58
Saviqtsdgeos, https://code.launchpad.net/~saviq/unity8/no-sigstop-main/+merge/24575813:58
tsdgeosRan 14 tests in 0.007s13:58
tsdgeosOK13:58
tsdgeosah that makes sense13:58
Saviqtsdgeos, ah those13:58
Saviqtsdgeos, those never ran on X1113:58
tsdgeosreally?13:59
Saviqtsdgeos, they only have phone scenarios13:59
tsdgeosoh13:59
Saviqtsdgeos, FWIW, those are integration tests, so shoulnd't even live in unity814:03
Cimimterry, did you see my comment?14:14
Cimioh yes14:14
Cimijust saw mail14:14
mterry:)14:16
tsdgeosit's amazing how often these autopilot tests fail in CI14:17
tsdgeosbut running on my phone that is exactly the same setup as CI14:17
tsdgeoscan't reproduce :/14:17
davmor2tsdgeos: I bet it is not the exact same setup though14:24
tsdgeosdavmor2: well i'd like to know what CI does other than flashing and running autopilot that may make it break14:25
greybacktsdgeos: how about if some background process is using lots of CPU (e.g. apport/whoopsie) - maybe that destabilizes the AP test run?14:25
tsdgeosgreyback: but why those would be running in CI?14:26
greybacktsdgeos: dunno, just hypothesizing14:26
tsdgeossure :)14:26
davmor2tsdgeos: network setup, initial flashing, password and developer mode, the fact that it's behind a restrictive firewall, no cellular except through mocking etc etc14:27
SaviqCimi, hey, got an update on bug #1363400 ?14:27
ubot5bug 1363400 in ubuntu-system-settings (Ubuntu RTM) "[wizard] allows to "Continue" without connecting to network" [High,Triaged] https://launchpad.net/bugs/136340014:27
Saviqdednick, and for you - update on bug #1372061 ?14:28
ubot5bug 1372061 in unity8 (Ubuntu) "SMS notification: time format not translatable" [High,In progress] https://launchpad.net/bugs/137206114:28
davmor2Saviq: what happens if you are not at home when you setup the wifi and you don't want to connect?14:29
Saviqdavmor2, you skip ;)14:29
davmor2Saviq: and is that not what the continue does is you don't select a network?14:30
Saviqdavmor2, continue != skip14:30
Saviqdavmor2, but the actual issue is that you get a popup for the password, but still can press continue14:31
davmor2Saviq: fair enough :) Skip is an odd term when there is a continue button too, yes I want to continue, I don't want to skip the phone setup14:32
Saviqdavmor2, you're on a page to set up your wifi, not the whole phone14:32
davmor2Saviq: :)14:33
mzanettidednick: where can I find the messages.py mentioned in the comments here? https://code.launchpad.net/~nick-dedekind/unity8/lp1385331.led/+merge/24141714:54
mzanettitsdgeos: do you know? ^14:57
tsdgeospfff14:57
tsdgeosit was in a pastebin14:57
mzanetti:D14:57
tsdgeosand in my phone but i think i deleted it14:57
tsdgeoslet me check14:57
tsdgeosmzanetti: i *think* it's this one http://paste.ubuntu.com/9530101/14:59
mzanettiI'll just run it. what can possibly go wrong :D15:00
tsdgeosyou need some extra python stuff though15:00
tsdgeoswell the imports15:00
tsdgeospython will complain if you don't have them15:00
mzanettiright... it's python2 and we only have 3 on the phone it seems15:02
Saviqmzanetti, 2to3 should help here15:03
mzanettioh, nice15:03
mzanettiit wasn't much though, already adjusted15:03
mzanettistill a useful hint :)15:03
mzanettiI fail to find this one: cannot import name MessagingMenu, introspection typelib not found15:08
tsdgeosgir1.2-messagingmenu-1.015:08
tsdgeosi think15:08
tsdgeosmzanetti: ↑15:08
mzanettithanks! working now15:12
dednickmzanetti: https://dl.dropboxusercontent.com/u/85539674/messaging_menu.py15:16
dednickah. bit late!15:16
mzanetti:)15:16
Saviqdednick, if you missed my question, any update on bug #1372061 ?15:19
ubot5bug 1372061 in unity8 (Ubuntu) "SMS notification: time format not translatable" [High,In progress] https://launchpad.net/bugs/137206115:19
dednickSaviq: woops. forgot about that one :/ code is ready. testing did not go well.15:20
Saviqdednick, any case, lower prio than the prompt one15:20
Saviqdednick, let's get back to it later15:21
dednickSaviq: since the translations are moving to the sdk now i had to fudge them in to test it, but couldnt get it to pick up.15:21
dednickbut technically it should work! think it's just my knowledge of the translation system failing me.15:22
Saviqdednick, I could help if you linked a branch to the bug :)15:23
dednickSaviq: give me a sec.15:24
Saviqsure15:24
CimiSaviq, I cannot fix it on my side...15:24
CimiSaviq, requires changes in network manager side I think15:25
SaviqCimi, is anyone looking at it?15:25
CimiSaviq, nope15:26
CimiSaviq, we can chase again Wellark but he said is not doable...15:26
Cimiin the timeframe15:26
SaviqWellark, Cimi, can you please update the bug with any status/findings15:27
dednickSaviq: https://code.launchpad.net/~nick-dedekind/ubuntu-ui-toolkit/lp1378821.time-translation15:27
dednickhttps://code.launchpad.net/~nick-dedekind/ubuntu-settings-components/lp1378821.time-translation15:27
Saviqdednick, thanks15:27
dednickhttps://code.launchpad.net/~nick-dedekind/unity8/lp1378821.time-translation15:27
dednickSaviq: the ubuntu-settings-components is just a fix for text alignment. since it's a bit screwed when things get translated these days15:28
Saviqkk15:28
mterryCimi, I already fixed the launcher-2px thing, you can continue that review if you like15:34
greybackdednick: note, menus may have been bolted into indicators, so that HUD would index both?15:39
Cimimterry, cool thx!15:39
dednickgreyback: not sure about that. but it doesn't seem like the right approach to me.15:41
greybackdednick: was just a thought. But agreed it's a weird design15:41
dednickgreyback: yeah, i mean inicators are just essentially menus so i guess it makes some logical sense. in the world of the "global menu" anyway.15:43
greybackdednick: true15:45
mzanettielopio: hey16:52
elopiomzanetti: hello.16:52
mzanettiI'm testing a silo with your branch and I'm getting this error: http://paste.ubuntu.com/9699519/16:52
mzanettiam I doing something wrong?16:52
mzanettiseeing that it passed in jenkins16:52
elopiomzanetti: let me see the code.16:54
elopiomzanetti: probably you should do autopilot3 run.16:54
elopiobut unity8 helpers still need to be compatible with python2, so I probably forgot that part.16:54
mzanettielopio: oh, that looks better16:54
mzanettielopio: what does that mean? you want to fix it or should we merge it (the test passes with python3)?16:55
elopiomzanetti: I just need to add the stupid super parameters that py2 needs. Give me a minute.16:56
elopiothat's a good catch, and I better fix it before you merge it.16:56
mzanettielopio: wait a second16:56
mzanettiSaviq: this is the only issue I found with the silo ^^16:56
mzanettiwanna do another rebuild?16:56
mzanettielopio: or well, if we break something we have to fix it anyways...16:57
mzanettielopio: ok... Saviq seems to be away. I'll do the rebuilding then. feel free to fix&push16:59
Saviqmzanetti, elopio I'd rather land it and re-merge next week, nothing's using it, it's a new helper etc.16:59
mzanettiah, there he is :)16:59
mzanettiack. works for me16:59
elopiomzanetti: Saviq: ok. works for me too.16:59
elopioI'll push it to a new branch.16:59
elopiomzanetti: Saviq: I've already pushed it to my branch. Should I revert it, or it won't cause any problems?17:00
mzanettiI don't think it will. the silos keep a copy17:00
Saviqelopio, it's fine, leave it there17:00
Saviqelopio, we'll just do another MP from the same branch17:00
Saviqelopio, or well, land the same MP again, actually17:00
elopioSaviq: ok then. It's ready.17:01
elopiomzanetti: thanks for checking it.17:01
mzanettiSaviq: done. spreadsheet updated17:02
Saviqmzanetti, thanks17:02
mzanettielopio: no worries17:02
Cimimzanetti, for monday https://code.launchpad.net/~mzanetti/unity8/fix-left-edge-on-spread/+merge/24340017:18
Cimimzanetti, the enterSpread test fails17:19
mzanettiCimi: ack, thanks17:19
=== alan_g is now known as alan_g|EOW
Saviqgreyback, still around?18:52
greybackSaviq: back now22:57
Saviqgreyback, nothing pressing, when you want to just tell me if I'm talking bullshit in https://code.launchpad.net/~saviq/qtmir/openurl-keep-bytearray/+merge/24601722:58
greybackSaviq: ok22:58
greybackSaviq: that makes the crash go away?22:59
Saviqgreyback, couldn't reproduce with that, and debugs as per https://bugs.launchpad.net/ubuntu-rtm/+source/qtmir/+bug/1408819/comments/10 confirm it's ok23:00
ubot5Launchpad bug 1408819 in qtmir (Ubuntu RTM) "unity8 crashed with SIGABRT in g_assertion_message() when launching calculator from quicklist" [Critical,In progress]23:00
Saviqgreyback, and it kinda makes sense, the QByteArray from encoded() can be deleted as soon as you take the constData() out of it23:01
Saviqgreyback, qtubuntu seems to have avoided that by just putting url.encoded().constData() directly in the call to urld23:01
Saviqso there's no way the QBA would be deleted before it returns23:01
greybackSaviq: I see your point. Was pondering if the temporary QByreArray could really be deleted by then - and probably yeah, since it's a temporary23:02
Saviqyeah exactly23:03
Saviqnow it'd be interesting to find out a way to unit-test this...23:04
greybackunit testing C++ object lifetimes? Have fun with that23:11

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!