These are chat archives for AvaloniaUI/Avalonia

29th
Nov 2015
Steven Kirk
@grokys
Nov 29 2015 08:08
ok, so i think #334 is actually an OmniXAML bug
just preparing a unit test to send to @SuperJMN
Steven Kirk
@grokys
Nov 29 2015 08:34
just filed a bug in the end as i think i found the source of the problem: SuperJMN/OmniXAML#61
José Manuel Nieto
@SuperJMN
Nov 29 2015 10:36
Nice reporting, guys!! I'll fix the bugs as soon as possible.
By
By the way, has anyone tried to run Perspex on a Raspberry Pi?
Steven Kirk
@grokys
Nov 29 2015 10:41
i think someone got it working there
José Manuel Nieto
@SuperJMN
Nov 29 2015 10:51
I might get one, then!
Darnell Williams
@Seeker1437
Nov 29 2015 10:52
I bought one on saturday
Errm
Friday*
José Manuel Nieto
@SuperJMN
Nov 29 2015 11:19
how has been your experience?
Is Mono the only way to get .NET running there?
Darnell Williams
@Seeker1437
Nov 29 2015 11:23
Oh I'm actually still waiting for it to come in.
SHould be coming monday or mabe not because I never got my sipping confirmation :(
Seriously?
Darnell Williams
@Seeker1437
Nov 29 2015 13:33
I like the idea
I would use it too with how often I write code over TeamViewer using my iPad....
Nikita Tsukanov
@kekekeks
Nov 29 2015 14:53
@grokys You can update to R# 10.0.1, it seems that they have fixed PCL issues
So it shouldn't complain about unreferenced stuff anymore
Steven Kirk
@grokys
Nov 29 2015 14:54
yeah, already have
Darnell Williams
@Seeker1437
Nov 29 2015 15:05
same x3
My issue is still with HTML Renderer though
git is being shitty or something
isn't there something we can do to try and prevent that?
Nikita Tsukanov
@kekekeks
Nov 29 2015 15:12
1) checkout htmlrenderer from our fork
2) create "perspex" branch
3) do something about these files
Actually, you don't need a separate branch, just use https://github.com/Perspex/HTML-Renderer/tree/perspex-pcl
You should now have push rights to that repo
Darnell Williams
@Seeker1437
Nov 29 2015 15:15
Okay
Thanks
Nikita Tsukanov
@kekekeks
Nov 29 2015 15:21
Argh
LinkedList from BCL sucks
It doesn't allow you to break the chain
Steven Kirk
@grokys
Nov 29 2015 15:40
have you every tried to use dotMemory unit?
i've started setting up some leak tests but it's saying that the control i'm checking for is referenced by a local var when it isn't as far as i can see
Nikita Tsukanov
@kekekeks
Nov 29 2015 15:54
@grokys Perspex/Perspex#335
Mouse transparency may wait for the beta1
Steven Kirk
@grokys
Nov 29 2015 15:59
cool! might be worth creating a generalized undo/redo framework at some point but that's good for now
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:00
It has generalized helper
The thing is that there is nothing else for it to apply to
Steven Kirk
@grokys
Nov 29 2015 16:00
yeah, true
i think i've worked out the problem with the memory tests
now to actually find some
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:04
Hello guys
quick question
Steven Kirk
@grokys
Nov 29 2015 16:04
hi!
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:05
I've looking for a UI framework for an ARM device that I have here...
Found Perspex... I was sold on my first look at it heheheh
so
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:05
Is it capable of running GTK or drawing using EGL?
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:06
GTK no, EGL == OpenGL?
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:06
Embedded OpenGL
A wrapper around opengl stuff
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:07
nop, probably due to the lack of the framebuffer
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:07
Ehm
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:07
the device has no framebuffer from linux exposed, but it has Cairo to draw on it so I can grab the byte[]
Steven Kirk
@grokys
Nov 29 2015 16:07
we currently have Direct2D, Skia and Cairo renderers
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:07
and call their underlying method for draw
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:07
Mkay, so you can draw images
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:07
yes
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:08
I recommend to look into libperspesk and see if you can use sw-renderer provided by Skia
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:08
I can draw stuff on its screen by calloing this:
        [DllImport("libgedi.so", EntryPoint = "HW_LCD_DrawPicture")]
        private static extern int NativeDraw(uint x, uint y, uint w, uint h, byte[] abBGR);
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:08
Oh, great
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:09
this is the only way to draw stuff on the hardware actually
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:09
That's fine
Our cairo backend is a bit unmaintained and I'm not sure that we won't drop it in fawor of Skia backend
So it's better to try to build libperspesk for your device
And implement a small native wrapper around that HW_LCD_DrawPicture
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:14
I'm kinda noob on GFX...
also
does libperspesk work on ARM?
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:15
Well, it works on Android
Haven't tried to build it for desktop linux arm
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:15
ic
and what are the dependencies on it?
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:16
Skia
libfreetype and some other stuff
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:17
Skia depends on Chromium IIRC...
I'm asking those dumb questions because the device is very restrictive...
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:18
Nope it's the other way around
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:18
I couldn't use GTK for example, since gnome libs are not there
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:18
Chromium depends on skia
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:18
hummm
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:18
So you are using your own toolchain and libs instead of Debian
That might be problematic
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:19
not mine actually, from the device manufacturer...
its a payment terminal, which accept credit/debit cards
I have Mono built for that
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:19
Well, at least it doesn't run some ancient 2.4 Linux kernel
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:20
Linux (none) 2.6.32.9 #1 PREEMPT Thu Jul 9 15:36:08 CST 2015 armv6l GNU/Linux
init mono release
Mono JIT compiler version 3.12.1 (master/c84d28c Qua Dez 24 15:13:44 BRT 2014)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       normal
        Notifications: epoll
        Architecture:  armel,vfp+fallback
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:20

3.12.1

Try to compile Mono 4.2

3.12 might have issues with running perspex
BTW, our cairo backend uses gtk libs
so you won't be able to use it out of the box
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:22
hummm
I see
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:23
$ ldd libperspesk.so 
        linux-vdso.so.1 =>  (0x00007ffd89590000)
        libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f50b4938000)
        libGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1 (0x00007f50b469c000)
        libEGL.so.1 => /usr/lib/x86_64-linux-gnu/mesa-egl/libEGL.so.1 (0x00007f50b446f000)
        libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007f50b4136000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f50b3f1b000)
        libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f50b3cdc000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f50b3abe000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f50b37af000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f50b34a6000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f50b30dc000)
        libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f50b2eb6000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f50b2c8c000)
        libglapi.so.0 => /usr/lib/x86_64-linux-gnu/libglapi.so.0 (0x00007f50b2a62000)
        libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007f50b2850000)
        libXdamage.so.1 => /usr/lib/x86_64-linux-gnu/libXdamage.so.1 (0x00007f50b264c000)
        libXfixes.so.3 => /usr/lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007f50b2446000)
        libX11-xcb.so.1 => /usr/lib/x86_64-linux-gnu/libX11-xcb.so.1 (0x00007f50b2244000)
        libxcb-glx.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-glx.so.0 (0x00007f50b202c000)
        libxcb-dri2.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri2.so.0 (0x00007f50b1e27000)
        libxcb-dri3.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-dri3.so.0 (0x00007f50b1c24000)
        libxcb-present.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-present.so.0 (0x00007f50b1a20000)
        libxcb-sync.so.1 => /usr/lib/x86_64-linux-gnu/libxcb-sync.so.1 (0x00007f50b181a000)
        libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f50b15fb000)
        libxshmfence.so.1 => /usr/lib/x86_64-linux-gnu/libxshmfence.so.1 (0x00007f50b13f8000)
        libXxf86vm.so.1 => /usr/lib/x86_64-linux-gnu/libXxf86vm.so.1 (0x00007f50b11f2000)
        libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007f50b0fe5000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50b0de0000)
        libxcb-xfixes.so.0 => /usr/lib/x86_64-linux-gnu/libxcb-xfixes.so.0 (0x00007f50b0bd9000)
        libwayland-client.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-client.so.0 (0x00007f50b09ca000)
        libwayland-server.so.0 => /usr/lib/x86_64-linux-gnu/libwayland-server.so.0 (0x00007f50b07b8000)
        libgbm.so.1 => /usr/lib/x86_64-linux-gnu/libgbm.so.1 (0x00007f50b05aa000)
        /lib64/ld-linux-x86-64.so.2 (0x000055ed65fc6000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f50b0393000)
        libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007f50b018f000)
        libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f50aff88000)
        libffi.so.6 => /usr/lib/x86_64-linux-gnu/libffi.so.6 (0x00007f50afd80000)
        librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007f50afb78000)
Darnell Williams
@Seeker1437
Nov 29 2015 16:23
omg I am trying to iterate over a node list but somehow the XmlNodeList is not being seen as null...
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:24
You may ignore X11 stuff since it won't used
And GL stuff too
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:24
ah ok...
was about to cry here hehehehe
Steven Kirk
@grokys
Nov 29 2015 16:24
@ImaBrokeDude System.Xml.Linq is a lot easier to use than System.Xml
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:24
I'll try to make a headless build and see what deps does it have
Steven Kirk
@grokys
Nov 29 2015 16:25
one leak fixed! TreeView should now get freed
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:25
thanks @kekekeks that should be perfect! :)
I need find a good doc about cross compilling and create a toolchain to ARM... the manufacturer said that anything that works on a RaspiPI should work on it except X11 and 3D stuff like OpenGL
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:29
Well if it could run Debian's userspace that would be great
Steven Kirk
@grokys
Nov 29 2015 16:31
someone managed to get perspex working on raspberry pi
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:33
@galvesribeiro make sure that you can't just take debian userspace libs
Because that will simpify things a lot
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:33
sorry, I don't know what Debian userspace is o.O
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:34
Everything that isn't kernel
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:34
I think we can run user code there... I have mono running fully there with the current apps...
Extract busybox from this archive and try to run it on your device
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:35
let me setup a linux VM here and try it, 1m
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:35
7z shoud be able to read deb packages
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:36
ah ok
1m
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:36
Can you provide me with a link to that device page on manufacturer's website?
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:38
You want to run perspex on that?
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:38
o.O
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:38
That's a bad idea, you'll run out of RAM in no time
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:39
I want a UI framework which can easy the development of GUI. I found perspex so I came here...
I see
there are other manufacturers as well, but they have pretty similar hardware
do you recomend any other?
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:39
C++ and Qt
of wxWidgets
Something that works for embedded
I remember times when you could write in C# for WinMobile device with 32MB RAM
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:40
C++ and QT isn't an option unfortunatelly... we are running Mono there pretty well... the problem with QT is the dependencies...
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:40
But that was .NET Compact Framework and it used winforms
Steven Kirk
@grokys
Nov 29 2015 16:41
yeah, i'd say 64mb of ram is too small :(
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:41
Our test app on desktop uses 92MB
It might be caused by GTK and Cairo, but still
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:42
WinForms would be the easiest way here... the problem is that it depends on libgdi and it has tons of dependencies, so the manufacturer are not willing to port all then... also, there is no framebuffer as well...
Steven Kirk
@grokys
Nov 29 2015 16:42
yep, that will hopefully decrease but you get the idea...
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:42
ic
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:42
Well, Managed.Windows.Forms depend on X11
and libcairo
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:43
cairo is already on the device but only with the buffer surface and PNG support
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:45
blob
See? Only managed heap is 10MB
That doesn't include jitted code
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:46
yeah I saw :(
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:46
Total memory footprint will be 20MB or something
And that excludes drawing surfaces and stuff
$ ldd build/Linux/x86_64/libperspesk.so 
        linux-vdso.so.1 =>  (0x00007ffd849f6000)
        libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007f151b433000)
        libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f151b218000)
        libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007f151afd9000)
        libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f151adbb000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f151aaac000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f151a7a3000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f151a3d9000)
        libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007f151a1b3000)
        libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007f1519f89000)
        /lib64/ld-linux-x86-64.so.2 (0x00005576482af000)
        libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f1519d73000)
That's with GL/X11 excluded
You probably only need libpng12 and libfreetype
And disable opengl initialization in native code
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:50
yeah, but the memory of 1 app running is too big anyway :(
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:50
Well, you aren't expected to run multiple apps on that device
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:50
no
also, the screen is small, and with few controls
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:51
Yup
I'm not sure that you need UI framework at all
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:51
you are suggesting drawing by hand?
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:52
yep
That's a payment terminal after all
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:52
this is how we are working today
and its becoming hard to maintain
yes
but a payment terminal kinda of "diferent"
let me show you something
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:53
You can create some basic framework of your own
It's not that hard
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:53
You don't actually need bindings, mouse handling, etc
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:54
yes, I don't
just touch and keyboard
this has a pretty similar OS and Hardware
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:55
Try to use wxwidgets
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:55
requires GTK :(
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:56
Ehm
Since when?
GTK is one of their backends
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 16:56
wxWidgets currently supports the following primary platforms:
•Windows XP, Vista, 7, 8 and 10 (32/64 bits).
•Most Unix variants using the GTK+ toolkit (version 2.6 or newer or 3.x).
•Mac OS X (10.7 or newer) using Cocoa (32/64 bits) or Carbon (32 only).
ok
ic
DirectFB is the dependency, which we don't have :(
Nikita Tsukanov
@kekekeks
Nov 29 2015 16:57
You can take directfb and adapt it to use your HW_LCD_DrawPicture
Basically you need to implement directfb api on top of HW_LCD_DrawPicture
Or patch directfb to support HW_LCD_DrawPicture
Which might be a lot easier
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:03
With perspex you'll need to implement windowing platform anyway
Better try to patch directfb
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:03
ok
will have a look on it with the manufacturer... thanks for the help
I was hoping we could use Perspex, looks an awesome project. Good work guys!
would be good if you guys have it working on CoreCLR
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:05
Yep, we are planning to port once they release things like .NET Standard Platform
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:05
nice
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:05
The main issue is that we are using GTK# bindings which won't run on coreclr
Steven Kirk
@grokys
Nov 29 2015 17:06
yeah, with the standard platform hopefully we'll get .net core almost for free
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:06
ic
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:09
I'm considering implementing windowing part in native code
So we won't depend on bindings at all
This also will allow to run on Android without xamarin (it will be tricky through)
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:10
interesting
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:10
The idea is to build libmono and ship desktop assemblies
and handle android interaction from native code
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:11
I would not rely on mono anymore...
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:11
It won't rely on mono if we'll manage to get coreclr running on android
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:11
I want to move away from it on our devices as soon as we have coreCLR running on ARM
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:17
@grokys
We should add "commercial embedded devices support" to "What to do when it's time to become evil" list
Gutemberg Ribeiro
@galvesribeiro
Nov 29 2015 17:17
lol
Steven Kirk
@grokys
Nov 29 2015 17:17
haha
that'll be a job for you! ;)
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:24
@grokys are we merging #335 ?
And it's time to prepare announcement post
I'll record a video of perspex running on mobile devices tomorrow
Any thoughts what else should be included in the video?
Steven Kirk
@grokys
Nov 29 2015 17:29
yeah, go ahead and merge it
ha, really? isn't that video demonstrating a bug rather than a feature?
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:30
What bug?
Steven Kirk
@grokys
Nov 29 2015 17:30
the fact that there's no design mode and the whole application runs in the designer!
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:30
You can now set up an actual data context
that will be available in designer
Live preview!
Steven Kirk
@grokys
Nov 29 2015 17:30
haha
Johan Larsson
@JohanLarsson
Nov 29 2015 17:31
you guys work hard
Steven Kirk
@grokys
Nov 29 2015 17:31
not sure what else to put in the video - most of the improvements are not directly visible...
Johan Larsson
@JohanLarsson
Nov 29 2015 17:32
I wrote one of the most retarded things ever: a streaming double.TryParse that does not allocate substrings.
Well, actually it does allocate strings
BTW, why do you need it?
These objects won't ever leave nursery
Steven Kirk
@grokys
Nov 29 2015 17:36
i believe there's a big push in .net core to reduce allocations
maybe you should see if they want your changes
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:45
hey guys, I have to solve some shitty tasks in my daily job
Darnell Williams
@Seeker1437
Nov 29 2015 17:47
Like what.
?
ipad keyboard is weird
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:47
It's awesome
Especially in split mode
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:47
like redoing a window with lots of validations and syncing Oracle databases
Darnell Williams
@Seeker1437
Nov 29 2015 17:48
i forgot how to go to split mode
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:48
something that a woman there in the office has been into for 2 weeks, but in 3 days
Darnell Williams
@Seeker1437
Nov 29 2015 17:48
woe, you rock
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:48

like redoing a window with lots of validations and syncing Oracle databases

I thought slavery was banned a hundred years ago or something

José Manuel Nieto
@SuperJMN
Nov 29 2015 17:49
It really exists
slavery priced 36K € a month, but still slavery
Darnell Williams
@Seeker1437
Nov 29 2015 17:50
can i borrow some from you lolol jk jk
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:50

36K € a month

wat

Darnell Williams
@Seeker1437
Nov 29 2015 17:50
i would love some slavery
maybe she is trying to milk them
Steven Kirk
@grokys
Nov 29 2015 17:51
36K € a month!!!!!!
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:51
@kekekeks that's what I'm being paid
Steven Kirk
@grokys
Nov 29 2015 17:51
you mean a year?
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:51
hey, sorry
haha
change month by year
oh my god, I'm too tired
Steven Kirk
@grokys
Nov 29 2015 17:51
haha
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:52
I mean 36,000€ annual brute salary
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:53
Well, considering first-world prices it's slavery
Steven Kirk
@grokys
Nov 29 2015 17:53
i was gonna say... for 36K a month i think i could handle oracle dbs
if spain is anything like italy, that's not a bad salary tbh
Darnell Williams
@Seeker1437
Nov 29 2015 17:53
I make $28,100 being a billing agent :(
annually
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:54
haha, it's not a bad salary
Steven Kirk
@grokys
Nov 29 2015 17:54
i saw a dev job here the other week for €21,000
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:54
There are devs who are working for $300/month in eastern europe, you know
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:54
but I'm working on the weekend just to finish something
the project is a big bogged down...
still, I cannot save more than 200-300€ each month. Madrid is a bit expensive.
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:56
The point is that there always be people who are doing the same job as you and earning 10 more or less than you
José Manuel Nieto
@SuperJMN
Nov 29 2015 17:56
haha, you're making me feel happy!
lucky for me
but at the same time, sad for those people!
pls stop!
Nikita Tsukanov
@kekekeks
Nov 29 2015 17:56
People in silicon walley are making approximately 1.5 times more than in NY, for example
And some guy in India is earning $0.5/hour
For the same job
Steven Kirk
@grokys
Nov 29 2015 18:10
i'm trying to get to the bottom of the massive unmanaged memory leaks on the animation tab in TestApplication
i've narrowed it down to LinearGradientBrushImpl and RadialGradientBrushImpl
fixed one leak i think, but it's not solved the problem
Wiesław Šoltés
@wieslawsoltes
Nov 29 2015 18:12
blob
This message was deleted
@kekekeks Would it be possible to hide designer if root object is Application ?
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:12
Should be
Wiesław Šoltés
@wieslawsoltes
Nov 29 2015 18:13
Or just display message like in WPF
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:13
But it needs to be detected by name
Darnell Williams
@Seeker1437
Nov 29 2015 18:14
Interesting
Wiesław Šoltés
@wieslawsoltes
Nov 29 2015 18:15
ApplicationDesigner2.PNG
I have changed root from Application to UserControl and designer switched to edit mode
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:15
I mean, by root object's name
It will be hardcoded in VS extension
Wiesław Šoltés
@wieslawsoltes
Nov 29 2015 18:29
This message was deleted
@kekekeks I was testing the undo/redo for TextBox
and found that you can undo Text value before binding is applied :worried:
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:32
It tracks the whole history of textbox values
We probably need to somehow check if value was set by user input
And discard the history if it was set from binding, etc
Please, file an issue
Steven Kirk
@grokys
Nov 29 2015 18:33
ok, well i've fixed the linear/radial gradient render problem on d2d
can't work out what's causing the leaks though...
Wiesław Šoltés
@wieslawsoltes
Nov 29 2015 18:34
@kekekeks filled #336
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:35
Should we still support Cairo backend? I'm planning to add OS X support to libperspex after I'll finish mobile window manager stuff
Steven Kirk
@grokys
Nov 29 2015 18:35
i think we should keep it around, and see if anyone comes forward to maintain it
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:35
BTW, @donandren, text input isn't implemented for iOS, if you can do something about that, that would be great
Steven Kirk
@grokys
Nov 29 2015 18:35
put out a request for a maintainer on the release notes maybe
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:36
I'm not sure that we need it at all
We won't be able to use it with coreclr, for example
Steven Kirk
@grokys
Nov 29 2015 18:36
the main advantage of it is that it's all native code
i dunno, we don't have to keep it around forever if nobody wants to maintain it
but there are probably some people who want it
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:37
Well, I need to fix Skia drawing first
It still has some issues with text rendering and tile brushes
Steven Kirk
@grokys
Nov 29 2015 18:41
i'm starting to wonder if this leak we're seeing on d2d's linear/radial brush are a bug in sharpdx...
Johan Larsson
@JohanLarsson
Nov 29 2015 18:46
@kekekeks I don't need it for perf but I need to figure out the end of the double in a string.
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:46
Ehm...
Johan Larsson
@JohanLarsson
Nov 29 2015 18:46
Started like an experiment, got fun, got relly hairy
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:46
You don't need full double parser for that
Regex should be sufficient
Johan Larsson
@JohanLarsson
Nov 29 2015 18:47
It is nontrivial
Steven Kirk
@grokys
Nov 29 2015 18:47
This message was deleted
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:50
[0-9]+(\.[0-9]+(E\+[0-9]+)?)?
Something like that
[0-9]+([.,][0-9]+(E\+[0-9]+)?)?
some time
but that does nmot handle localization and thousands
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:51
Localization only affects decimal separator char
Johan Larsson
@JohanLarsson
Nov 29 2015 18:51
also .1 is a valid double
It affects thousand separator
you need (e|E)[+-]?[0-9]+
Nikita Tsukanov
@kekekeks
Nov 29 2015 18:52

https://github.com/JohanLarsson/Gu.Units

Nice lib that should be supported on compiler level

Try to contact roslyn guys
Johan Larsson
@JohanLarsson
Nov 29 2015 18:53
yeah would be sweet
regex is nontrivial but def not impossible
or the problem is impossible to solve regex or not abc1edf <- valid or not?
I parse that as 1 and throw if no unit can be parsed after that
not very interesting
Steven Kirk
@grokys
Nov 29 2015 23:19
YES! fixed the leak in linear/radial gradient brushes! finally
Perspex/Perspex@417ab4d
no idea why disposing the gradient stops object with a using around the creation of the brush prevents the problem, but disposing at the same time as the brush doesn't