tag:blogger.com,1999:blog-5569894.comments2023-11-08T13:18:07.006+00:00Distributed MemorySteve Gilhamhttp://www.blogger.com/profile/03622573187942388226noreply@blogger.comBlogger187125tag:blogger.com,1999:blog-5569894.post-69611838029119262362023-11-08T13:18:07.006+00:002023-11-08T13:18:07.006+00:00Some cross-purposes here
* the .XamlDesigner.fs r...Some cross-purposes here<br /><br />* the .XamlDesigner.fs reference is to the intermediate output (.obj) directory; I had not spotted the file itself being created in $(ProjectDir), there being no XAML in the project, amongst other things<br />* The '<' and '>' delimited text in e.g. 'true' have been stripped in the comment engine as invalid HTML, but I think I have managed to reverse engineer what they were<br />* Yes, I was building AOT, and just reporting the size of the entire publish folder.Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-77028275787776221232023-11-08T11:35:07.317+00:002023-11-08T11:35:07.317+00:00Hi Steve!
Firstly, thank you very much for the us...Hi Steve!<br /><br />Firstly, thank you very much for the using OpenSilver and providing the fantastic example of integration with F#. It is wonderful!<br /><br />Regarding the issue with the XAML preprocessor, you're correct about the failure due to its inability to generate F# code. To resolve this, you can bypass the preprocessor by adding the following line to your csproj file:<br />true<br /><br />As for the auto-generated file being placed in the project's root folder, that's quite unusual. A potential workaround could be to manually relocate this file to the intended 'obj' directory.<br /><br />After implementing these adjustments, the build process should proceed smoothly.<br /><br />After these two steps, the build should work!<br /><br />I tried to publish your example. I can not get 130 mb! It is much smaller.<br />Also, I have added these two properties to make it even smaller:<br />false<br />en-US;en<br /><br />The first one prevents generating .br and .gz for all assets. And the second one disables multiple localizations for Satellite assemblies.<br />As a result, I got 30 mb :) It is still noticeable, of course, and we will investigate how to make it smaller.<br /><br />Also, I have attempted to publish AOT version. It is 80 mb :)<br /><br />Your testing and insights are invaluable, and your blog post is a significant contribution to our community. Thank you once again for your support and for sharing your findings.<br />Яковhttps://www.blogger.com/profile/17591437010573850862noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-56547008912354474012021-03-26T05:17:14.215+00:002021-03-26T05:17:14.215+00:00man, this guy was an ogman, this guy was an ogJakesoulhttps://www.blogger.com/profile/00420733628285286553noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-2072799346043489812013-09-01T16:08:10.747+01:002013-09-01T16:08:10.747+01:00We've got grapes on the vines -- just a few no...We've got grapes on the vines -- just a few now that the birds have discovered them -- and a second crop of arugula is growing almost out of control. There's something completely awesome about being able to go into the back yard and just pick something to eat.TechNeilogyhttps://www.blogger.com/profile/06377881138289568562noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-2511612908398550852013-08-27T14:46:42.602+01:002013-08-27T14:46:42.602+01:00Yes does the whole job of making them part of the ...Yes does the whole job of making them part of the Async infrastructure -- and there's a similar transformation to extend the FSharpx.Task module, which is where I hit the problem of needing to make this conversion. In either case, it's all variations on the same core theme.<br /><br />Exactly where to draw boundaries of small functions composed, or larger monolithic functions is one of these matters of style (if you only ever call a function in a composition, do you keep it as a separate concern or not?). For a blog post I'd rather give the smallest nuggets of functionality and let people weld them together as they see fit for their particular needs.Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-63209073072081532822013-08-26T13:15:29.414+01:002013-08-26T13:15:29.414+01:00Or extend async {} so that you can directly use bo...Or extend async {} so that you can directly use both kinds of Task without Async.AwaitTask at all..<br /><br />[]<br />module Async =<br /> let inline AwaitUnitTask (task: Task) = <br /> // rethrow exception from preceding task if it fauled<br /> let continuation (t : Task) : unit =<br /> match t.IsFaulted with<br /> | true -> raise t.Exception<br /> | _ -> ()<br /> task.ContinueWith continuation |> Async.AwaitTask<br /><br /><br />type Microsoft.FSharp.Control.AsyncBuilder with<br /> member x.Bind (t : Task<'T>, f : 'T -> Async<'R>) : Async<'R> = x.Bind (Async.AwaitTask t, f)<br /><br /> member x.Bind (t : Task, f : unit -> Async) : Async = x.Bind (Async.AwaitUnitTask t, f)<br />Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-90543244518893735852013-08-07T00:24:29.069+01:002013-08-07T00:24:29.069+01:00Thank you... Thank you... Thank you...
I've b...<b>Thank you... Thank you... Thank you...</b><br /><br />I've been looking for a fix to this problem for months... and you provided the perfect and simple solution! <br /><br />Thanks for the more obvious search terms, which Google found for me.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-86156421451547674802013-07-11T03:23:27.829+01:002013-07-11T03:23:27.829+01:00Thank you man-bear. You are a god.Thank you man-bear. You are a god.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-89175096418920441582013-05-16T09:09:46.027+01:002013-05-16T09:09:46.027+01:00I would expect a relative path to work here just a...I would expect a relative path to work here just as it does for any other HintPath value. With libraries like that in known standard places (perhaps defined through environment variables rather than explicit C:\Program Files) absolute paths just seem more natural for this particular case.Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-90326502242994296722013-05-16T01:31:39.051+01:002013-05-16T01:31:39.051+01:00i like your solution but theres is a way to use re...i like your solution but theres is a way to use relative adresses?Albertonoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-70853666528948255642013-02-18T09:29:45.358+00:002013-02-18T09:29:45.358+00:00I was lucky enough to hit on the right combination...I was lucky enough to hit on the right combination of keywords to find an some page that described the fix, after a lot of on-again off-again attempts to find a resolution.<br /><br />As it had taken so much effort, it only seemed fair that I republished it as a blog with more obvious search terms in the title.Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-67632269349123617132013-02-17T19:21:19.207+00:002013-02-17T19:21:19.207+00:00Good job. It worked. How the heck did you ever t...Good job. It worked. How the heck did you ever track down that you had to register the Windows Time service in the first place - just curious. Great detective work!<br />Richharvardguynoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-19982122608897032342013-01-14T09:39:05.717+00:002013-01-14T09:39:05.717+00:00I tried but I get this:
"The following occur...I tried but I get this:<br /><br />"The following occurred: Access is denied. (0x80070005)"Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-42140368152495860992012-11-06T23:27:28.268+00:002012-11-06T23:27:28.268+00:00All this done, and handling missing files too (cod...All this done, and handling missing files too (code above updated).Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-11991926060415868462012-11-03T22:44:53.804+00:002012-11-03T22:44:53.804+00:00Thanks, dude :)Thanks, dude :)Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-37846278258987206872012-10-24T14:17:26.511+01:002012-10-24T14:17:26.511+01:00Without the exact source files I can't be cert...Without the exact source files I can't be certain what is going on -- but two things would cause a violation not to be visible:<br /><br />1) It's against a zero-length line, so change line 140 0f the script to<br /><br />$li.InnerText = " " + $_.InnerText<br /><br />2) The line number is not present in the file -- this could happen if generated files get changed after the StyleCop inspection. That seems less likely to me; and would require a bit more work in the script.<br /><br />Making everything visible at once should be a simple enough bit of extra Javascript.<br /><br />I'll get around to these eventually.<br /><br />Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-42428870351067286182012-10-18T13:46:43.525+01:002012-10-18T13:46:43.525+01:00Looks very good, except:
1) Use this XML file and...Looks very good, except:<br /><br />1) Use this XML file and your script says no violations for a few files even though there is a violation: http://pastie.org/private/dn9xbgienhklbivrocq<br /><br />2) It would be sweet if you could expand everything (all the code blocks and all the separate violations) by clicking one thing or hitting one button on the keyboard.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-62665257577424678352012-10-13T03:11:57.861+01:002012-10-13T03:11:57.861+01:00Changing fcompare to:
fcompare = lambda x,y: cmp(...Changing fcompare to:<br /><br />fcompare = lambda x,y: cmp(os.path.getmtime(x), os.path.getmtime(y))<br /><br />makes it a two-liner...Martin Jnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-25387913140718299012012-09-05T15:17:09.944+01:002012-09-05T15:17:09.944+01:00I found it useful to extend the functionality to t...I found it useful to extend the functionality to tuples:<br /><br />class PipeExtension[A](a: A) {<br /> def |>[B](func:A => B) = func(a)<br />}<br /><br />class TuplePipeExtension[A,B](a:(A,B)) {<br /> def |>[C](func:(A,B) => C) = func(a._1, a._2)<br />}<br /><br />class TriplePipeExtension[A,B,C](a:(A,B,C)) {<br /> def |>[D](func:(A,B,C) => D) = func(a._1, a._2, a._3)<br />}<br /><br />class QuadruplePipeExtension[A,B,C,D](a:(A,B,C,D)) {<br /> def |>[E](func:(A,B,C,D) => E) = func(a._1, a._2, a._3, a._4)<br />}<br /><br />class QuintuplePipeExtension[A,B,C,D,E](a:(A,B,C,D,E)) {<br /> def |>[F](func:(A,B,C,D,E) => F) = func(a._1, a._2, a._3, a._4, a._5)<br />}<br /><br />object ImplicitPipe {<br /> implicit def pipe[A](a: A) = new PipeExtension[A](a)<br /> implicit def tuplePipe[A,B](a:(A,B)) = new TuplePipeExtension[A,B](a)<br /> implicit def triplePipe[A,B,C](a:(A,B,C)) = new TriplePipeExtension[A,B,C](a)<br /> implicit def quadruplePipe[A,B,C,D](a:(A,B,C,D)) = new QuadruplePipeExtension[A,B,C,D](a)<br /> implicit def quintuplePipe[A,B,C,D,E](a:(A,B,C,D,E)) = new QuintuplePipeExtension[A,B,C,D,E](a)<br />}<br />Jamie Pullarhttps://www.blogger.com/profile/13869143472538504048noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-36181440328302227412012-05-28T00:28:25.895+01:002012-05-28T00:28:25.895+01:00Thanks for the fix. I looked all over the interne...Thanks for the fix. I looked all over the internet and mostly received offers to fix for a price to buy the software. Your's was free, easy, and worked!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-36088711159625918872012-05-24T19:05:07.326+01:002012-05-24T19:05:07.326+01:00I just fixed a system that had a broken Norton fir...I just fixed a system that had a broken Norton firewall on it that wouldn't let the time sync (same errors as mentioned on this post) and also wouldn't let any browser get to sites using https. Ripped out Norton, problem solved.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-9618863161801958572012-05-09T22:12:53.940+01:002012-05-09T22:12:53.940+01:00It's part of my standard repertoire, since it ...It's part of my standard repertoire, since it lets the order of my code consistently match the order of my operations. Scala code naturally does this when chaining methods or chaining higher-order function calls on collections, and the forward-pipe lets me keep the chain going:<br /><br />((1 to 300) map square<br /> map (_ % 85)<br /> |> (_.max)<br /> |> printlnD. Gateshttps://www.blogger.com/profile/17923571645335186078noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-40226688743100373542012-04-16T09:13:39.154+01:002012-04-16T09:13:39.154+01:00I see. Thanks for the reply!
Will Penguindrum ever...I see. Thanks for the reply!<br />Will Penguindrum ever be licensed here in Europe, though? We can only hope...Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5569894.post-1905312188816013932012-04-15T23:04:36.680+01:002012-04-15T23:04:36.680+01:00No Mawaru Penguindrum for the same reason as no Pu...No <i>Mawaru Penguindrum</i> for the same reason as no <i>Puella Magi Madoka Magica</i> -- they'll be along on DVD or BluRay in the fullness of time; meanwhile I've been watching as much as I can fit in from Crunchyroll alone.Steve Gilhamhttps://www.blogger.com/profile/03622573187942388226noreply@blogger.comtag:blogger.com,1999:blog-5569894.post-2524927853845164772012-04-15T20:01:33.236+01:002012-04-15T20:01:33.236+01:00No Mawaru Penguindrum? From such a big Utena fan?No Mawaru Penguindrum? From such a big Utena fan?Anonymousnoreply@blogger.com